无法在 \directlua 中使用百分号

无法在 \directlua 中使用百分号

而以下工作:

\documentclass{article}
\usepackage{luacode}
\begin{document}
\directlua{token.set_macro("prjdatetime", os.date())}
\end{document}

当我想自定义日期和时间格式时遇到了麻烦:

\documentclass{article}
\usepackage{luacode}
\begin{document}
\directlua{token.set_macro("prjdatetime", os.date("\%Y"))}
\end{document}

错误是:

(./test.aux) (/usr/local/texlive/2023/texmf-dist/tex/latex/base/ts1cmr.fd)[\dir
ectlua]:1: invalid escape sequence near '"\%'.
l.4 ...ken.set_macro("prjdatetime", os.date("\%Y"))}

我正在使用的编译命令是:

lualatex --jobname=test escape.tex

版本:

lualatex --version
This is LuaHBTeX, Version 1.17.0 (TeX Live 2023)
Development id: 7581

请帮忙!谢谢!

答案1

感谢 Willie Wongs 的提示,我使用了以下解决方案:

\makeatletter\let\percentchar\@percentchar\makeatother
\directlua{token.set_macro("prjdatetime", os.date("\percentchar c \percentchar Z"))}

相关内容