[\directlua]:1: 无效的转义序列 - 请使用无 \string 解决方案

[\directlua]:1: 无效的转义序列 - 请使用无 \string 解决方案

我必须将不同的字符串从 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}

相关内容