我可以在 Windows 中毫无问题地使用以下命令:
latexmk -lualatex -shell-escape "xxx.tex"
但如果文件名包含中文字符,则会失败:
latexmk -lualatex -shell-escape "中文.tex"
我尝试将默认代码页改为 65001,但无济于事。唯一的区别是现在它将所有中文字符显示为块,而不是一些奇怪的字符。
如何让它工作?
输出如下所示(注意奇怪的字符����):
Latexmk: This is Latexmk, John Collins, 17 March 2019, version: 4.63b.
Latexmk: In reading rule 'lualatex' in 'c:/Users/Jeff/thesis2.0/����NodeJs�ĵ��̴���ϵͳ�����ʵ��.fdb_latexmk',
destination has different name than configured...
Rule 'lualatex': File changes, etc:
Changed files, or newly in use since previous run(s):
'chapter4/sku-lock-design.tex'
...
----------------------
C:\texlive\2019\bin\win32\runscript.tlu:907: command failed with exit code 12:
perl.exe c:\texlive\2019\texmf-dist\scripts\latexmk\latexmk.pl -lualatex -shell-escape -enable-write18 -synctex=1 -interaction=nonstopmode -outdir=c:/Users/Jeff/thesis2.0 -f ����NodeJs�ĵ��̴���ϵͳ�����ʵ��
答案1
2020 年 5 月,texlive 2020 中添加了对 luatex 对 utf8 文件名的正确支持。在此之前它不起作用。
使用当前的 texlive 2020,我可以使用 lualatex 运行带有中文文件名的文件而不会出现问题:
This is LuaHBTeX, Version 1.12.0 (TeX Live 2020/W32TeX) (format=lualatex 2020.9.14) 19 SEP 2020 21:18
restricted system commands enabled.
**中文.tex
(./中文.tex
...
Output written on 中文.pdf (1 page, 2891 bytes).
但latexmk
失败了:
C:\Users\XXXX\Documents\tests>latexmk -lualatex 中文.tex
Rc files read:
NONE
Latexmk: This is Latexmk, John Collins, 13 September 2020, version: 4.70a.
Latexmk: Filename '5%.tex' contains character not allowed for TeX file.
Latexmk: Stopping because of bad filename(s).