如何在 \write18 中转义特殊字符?

如何在 \write18 中转义特殊字符?

这就是我想做的事情(这只是一个例子,而不是真正的代码):

\immediate\write18{echo "price: $5.00" > temp.tex}
\input{temp.tex}

这是我所看到的temp.tex

price: .00

可能的解决方法是什么?

答案1

这里的“特殊”是指你的 shell 所特有的,所以它取决于你使用的 shell。如果我执行

echo "price: $5.00" 

在 bash 中我得到了

price: .00

所以我需要执行

echo "price: \$5.00" 

要得到

价格:5.00 美元

所以我需要

\immediate\write18{echo "price: \string\$5.00" > temp.tex}

进入$文件,但由于你将其输入回 TeX,\$所以你需要在文件中

\immediate\write18{echo "price: \string\\\string\$5.00" > temp.tex}

相关内容