【问题标题】:Pass quote character to shell via Latex通过 Latex 将引号字符传递给 shell
【发布时间】:2015-02-17 12:16:00
【问题描述】:

我需要通过 Latex 将引号 (") 字符传递给 shell 以使用 printf 命令:

\makeatletter
\newcommand{\calcCorrelation}[1]{{\input{|"awk '
{
...
}
END{...
printf("\@percentchar.2f",r); 
}
' #1; 
"}
}}
\makeatother

我得到一个语法错误,因为 \@percentchar.2f 周围的引号没有通过。我怎样才能解决这个问题?提前谢谢!

【问题讨论】:

  • 你确定你需要从 Latex 进入你的 shell 来运行一个 awk 命令吗? Latex 提供了“计算”操作的重要来源。您只需要稍微搜索一下即可。
  • 是的,我很确定。 AWK-Shell-Script 使用存储在 csv 文件中的实验数据(路径通过参数 #1 传递)。我认为 Latex 无法进行这些计算,而且它不是为此而构建的。
  • 如果您的 awk 脚本不是动态的,请将其写入文件并使用 awk -f scriptname 调用。
  • " 未列为特殊字符,但 " 终止字符串。所以也许这可以工作:printf("'"'"\@percentchar.2f"'"'",r);

标签: shell awk latex


【解决方案1】:

尝试使用变量 -- 有点像以下:

\makeatletter
\newcommand{\calcCorrelation}[1]{{\input{|"awk -v pc="\@percentchar.2f" '
{
        ...
}
END {
        ...
        printf(pc,r); 
}
' #1; 
"}
}}
\makeatother

警告:在这种情况下,我不知道您是否需要/想要 \@percentchar.2f 周围的引号?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 2016-01-27
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    相关资源
    最近更新 更多