在 LaTeX 命令后添加空格

在 LaTeX 命令后添加空格

我想从 LaTeX 调用一个命令,它看起来像这样:

bash -c "\myCommand -Tpdf #2.dot > #2.pdf"

\myCommand被字符串变量替换,但是后面的空格也被删除了,所以我得到了something-Tpdfbash 当然无法理解的。我怎样才能强制 LaTeX 在此字符串中留下空格?

\myCommand{}没有帮助

答案1

如果您想以可扩展的方式添加空格(这是系统调用所必需的),您可以使用定义如下的宏来\write18实现(实际上),因此可以扩展为单个空格。\space\newcommand*{\space}{ }\def\space{ }

因此,您可以像这样编写命令字符串:

bash -c "\myCommand\space -Tpdf #2.dot > #2.pdf"

需要显式添加空格,因为宏后面的空格会被删除,因为它们会作为宏名和后面文本之间的分隔符。通常添加的方式是{}在后面添加空格会保留后面的空格,但这只适用于排版忽略括号的文本。如果您希望将文本放在可扩展的上下文中,例如将其写入外部(辅助)文件、shell(如本例)或从中构建宏名(高级主题),则它们{}是不需要的,并且通常会造成麻烦。

相关内容