18

Is there a way to access environment variables from within a LaTeX document? Suppose I define a variable in a batch file:

set MY_VAR=HelloWorld

How can I programmatically print the string "HelloWorld" inside my LaTeX document, without resorting to creating a new source document with the string in it?

11

You could use the write18 feature. For example:

\documentclass{article}
\immediate\write18{echo $MY_VAR > var.tex}
\begin{document}
\input{var}
\end{document}

Though, a file var.tex would be automatically created. You may have to enable the write18 feature, for instance by compiling with

pdflatex --enable-write18 filename.tex

or configuring your editor accordingly.

I just tested this example with the line

\immediate\write18{kpsewhich -var-value=TEXMFHOME > var.tex}

and got C:/Users/stefan/texmf as output in the pdf file.

13

A LuaTeX solution:

\edef \myvar{%
   \directlua{
     tex.sprint(os.getenv('MY_VAR'))
}}

\myvar

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.