我必须将不同的字符串从 latex 传递到 lua 作为参数。我有一个针对命令中参数的解决方案,但在 pgf 键的情况下,它似乎不起作用。如果看起来像这个答案,则使用 \string 是不合适的directlua 中的 lua 代码会抛出无效的转义序列错误,因为它在 pgfkeys 参数中不方便用户使用
有什么办法可以避免这个问题
\documentclass{beamer}
\newcommand{\Contraintes}[1]{%
\directlua{ contraintes = "\unexpanded{#1}" }
}
\begin{document}
\pgfkeys{/Baq/.cd ,
contraintes/.store in = \contraintes,
contraintes = { 3 ~= 1 }
}
\begin{frame}
% this is working
%\Contraintes{ 2~=1 }
% alternatively this is not working
\directlua{
contraintes = "\unexpanded{\contraintes}"
}
\directlua{
tex.print ( contraintes )
}
\end{frame}
\end{document}
答案1
您可以使用
\unexpanded\expandafter{\contraintes}
或者可能更好
\detokenize\expandafter{\contraintes}