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?


2 Answers 2


You could use the write18 feature. For example:

\immediate\write18{echo $MY_VAR > var.tex}

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.


A LuaTeX solution:

\edef \myvar{%


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .