Avalie partes do LaTeX condicionalmente dependendo do estado Lua

Avalie partes do LaTeX condicionalmente dependendo do estado Lua

No LuaLaTeX, quero avaliar partes do documento condicionalmente, dependendo do estado de Lua.

Uma forma de avaliar peças condicionalmente em LaTeX é uma \if \else \ficonstrução. Uma abordagem simples para conectar isso a Lua seria:

\documentclass{article}

\newcommand{\luaif}[1]{\ifnum1=\directlua{if #1 then tex.sprint(1) else tex.sprint(0) end} }

\directlua{a = 1}

\begin{document}
\luaif{a == 1} true \else false \fi % -> true
\luaif{a == 2} true \else false \fi % -> false
\end{document}

Isso parece bastante hacky, no entanto.

Existem abordagens alternativas (melhores), talvez já incorporadas?

informação relacionada