我有经典的 tex 布尔值:
\newif\ifprintanswers
\printanswersfalse
我还有可以读取一些环境变量的 luacode:
\begin{luacode}
if os.getenv('C') == '1' then
tex.print(\printanswerstrue)
end
\end{luacode}
但我无法让\printanswerstrue
命令按预期执行(即切换布尔状态为 true)。相反,我总是收到一条消息,指出“不完整 \iffalse;第 xxx 行之后的所有文本都被忽略。”
答案1
我从来不用 luacode 环境的一个原因是它们是一个组,所以就像你拥有的一样,\begin{center}\printanswerstrue\end{center}
在环境结束时它又变为 false,
\directlua{%
if os.getenv('C') == '1' then
tex.print("\string\\printanswerstrue")
end
}