luatex 打印“〜”不间断空格问题

luatex 打印“〜”不间断空格问题

如何~通过 Lua 打印来复制字符?请参阅下面的 MWE。

\documentclass{scrartcl}

\usepackage{luacode}

\begin{document}
Hello \luadirect{s = ('First Last'):gsub(' ', '--'); tex.print(s)}.  % works
Hello \luadirect{s = ('First Last'):gsub(' ', '~'); tex.print(s)}.  % fails
Hello \luadirect{s = ('First Last'):gsub(' ', '\~'); tex.print(s)}. % fails

\end{document}


编辑:

为什么~下面的代码会产生一个新行?

   \begin{luacode*}
        token.set_macro('NAME','First~Last','global')
    \end{luacode*}
    \NAME

答案1

我发现理解 luatex 原语中的扩展通常\directlua比理解包装器中的扩展更容易luacode

\documentclass{scrartcl}



\begin{document}
\showoutput
Hello \directlua{s = ('First Last'):gsub(' ', '--'); tex.print(s)}.  % works

Hello \directlua{s = ('First Last'):gsub(' ', '\string~'); tex.print(s)}.  % fails


\end{document}

在此处输入图片描述

[将编辑后的答案移至新问题]

相关内容