TeX Live 2023 排版异常
CCXXXI opened this issue · 7 comments
该问题可以在 GitHub Actions 环境下复现:
https://github.com/CCXXXI/thesis/actions/runs/4571401362
可能的相关错误消息:
https://github.com/CCXXXI/thesis/actions/runs/4571401362/jobs/8069659642#step:4:535
./main.tex:114: You can't use `macro parameter character #' in restricted horiz
ontal mode.
<argument> ...map_inline:xn {\l__ecnu_tmpa_tl }{##
1\hfil }\unskip
l.114 \begin{document}
加了 -f
强制生成的最终结果:
https://github.com/CCXXXI/thesis/suites/11934426081/artifacts/625338886
ECNUThesis-Undergraduate/ecnuthesis.cls
Lines 763 to 764 in 3fcb918
与当前版本不兼容,似乎原因在于
\tl_map_inline:xn
未找到定义,我不知道使用该函数具体目的何在,请问一下作者 @Koyamin
将其修改为
\hbox_to_wd:nn {#1} {\unskip #2 \unskip}
可使显示正常
为什么旧版没这个问题?(不重要,纯好奇
为什么旧版没这个问题?(不重要,纯好奇
可能要去翻一下 latex3 的提交记录了
最近也在用模版写论文,暂时还不方便用Tex Live 2023测试,抱歉。
ECNUThesis-Undergraduate/ecnuthesis.cls
Lines 763 to 764 in 3fcb918
\tl_map_inline:xn {<token list>} {<inline function>}
的作用是对的token list中的每个元素,都应用inline function。看到最后编译结果出现了“1”,应该是##
没有被正确转义。我猜原因是在该函数的参数xn
上,不妨改成nn
试试?
\hbox_to_wd:nn {#1}
{ \tl_map_inline:nn {#2} { ##1 \hfil } \unskip }
另外,无意中发现 \hbox_to_wd:nn
其实是可以直接使用的,仅需改成
\hbox_to_wd:nn {#1} {#2}
即可达到所需要的效果