如何在 \input 中转义双引号

如何在 \input 中转义双引号

我正在尝试调用包含多个(嵌套)引号的 shell 命令。例如,这是我在 shell 上写的内容:

$ python -c "print \"Hello World\""

产生Hello World。我发现这里\input当使用 启动时,可以从标准输出读取 。|然而,下面的结果并不是我想要的,这并不奇怪:

\input{|"python -c "print \"Hello World\"""} 

如同这个问题,以下操作可正常进行:

\immediate\write18{python -c "print \string\"Hello World\string\"" > \jobname.pyout}
\input{\jobname.pyout}

但需要临时文件。另外,使用\detokenize似乎可以与以下方法配合使用\write18

\immediate\write18{\detokenize{python -c "print \"Hello World\""} > \jobname.pyout}
\input{\jobname.pyout}

有没有不需要写入文件的解决方案?

相关内容