有没有办法从 LaTeX 文档中访问环境变量?假设我在批处理文件中定义了一个变量:
set MY_VAR=HelloWorld
如何以编程方式打印 LaTeX 文档中的字符串“HelloWorld”,而无需创建包含该字符串的新源文档?
答案1
您可以使用 write18 功能。例如:
\documentclass{article}
\immediate\write18{echo $MY_VAR > var.tex}
\begin{document}
\input{var}
\end{document}
不过,会自动创建一个文件 var.tex。你可能需要启用 write18 功能,例如通过使用
pdflatex --enable-write18 filename.tex
或相应地配置您的编辑器。
我刚刚用以下代码测试了这个例子
\immediate\write18{kpsewhich -var-value=TEXMFHOME > var.tex}
并C:/Users/stefan/texmf
在 pdf 文件中得到输出。
答案2
LuaTeX 解决方案:
\edef \myvar{%
\directlua{
tex.sprint(os.getenv('MY_VAR'))
}}
\myvar