访问文档内的环境变量

访问文档内的环境变量

有没有办法从 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

相关内容