我正在调用一个脚本,在其中向 LaTeX 提供命令行输入:
pdflatex "\def\myvar{given_test} \input{figures.tex}"
然后在脚本中,我尝试使用这个“given_test”输入并打印它:
\textbf{filename: \myvar}
这会破坏 LaTeX,然后我尝试使用 detokenize
\textbf{filename: \detokenize{\myvar}}
这只会打印文本“\myvar”
下划线是必需的,因为我们正在从使用下划线作为文件标识符的更复杂的管道中读取。
那么我怎样才能读取里面的内容\myvar
而不破坏 LaTeX。
答案1
结合指导方针处理文本中的特殊 LaTeX 字符,你可以在 -ing\myvar
之前进行扩展:\detokenize
\documentclass{article}
\usepackage[T1]{fontenc}% http://ctan.org/pkg/fontenc
\def\myvar{given_test}
\begin{document}
\textbf{filename: \detokenize\expandafter{\myvar}}
\end{document}
答案2
改变你的管道来做这件事应该不难
pdflatex "\edef\myvar{\detokenize{given_test}}\input{figures.tex}"
例如figures.tex
这样的:
\documentclass{article}
\begin{document}
Here's the file name: \texttt{\myvar}
\input{\myvar}
\end{document}
并given_test.tex
包含
Hello World!
使用上述命令行进行编译
因此您会看到变量指向正确的文件名。
请注意,如果您需要\myvar
打字机字体以外的其他字体,请加载
\usepackage[T1]{fontenc}
在文件中变得必要。