这是对该问题的后续回答:mylatex.ltx 和带有变音符号和/或空格的文件名
我使用模板引擎 (jinja2)、python 脚本、包含数据和模板的 *.csv 文件生成 50 个 *.tex 文件。我在最新的 Linux 下使用 texlive 2021,它是最新版本。
编译文件夹中的 50 个 *.tex 文件似乎只需一行:
for i in *.tex; do pdflatex "$i"; done
我需要编译它们两次,这需要花费很多时间。所以我有一个不幸的想法,即预先制作一个格式,例如使用 mylatex.ltx,如下所示:
pdflatex --ini "&pdflatex" "mylatex.ltx" foo.tex
如果我没有使用包含变音符号的文件开始的话,这个方法本来可以起作用:
pdflatex --ini "&pdflatex" "mylatex.ltx" Bär.tex
David Carlisle 的解决方案如下:
pdflatex --ini "&pdflatex" "mylatex.ltx" \\input{\\detokenize{Bär.tex}}
但是,我获取了格式文件,将其放入包含所有 *.tex 文件的文件夹中并尝试运行:
for i in *.tex; do pdflatex "&mylatex" "$i"; done
无论我怎么尝试,这都不起作用。我主要收到以下错误消息:
for i in *.tex; do pdflatex "&mylatex" \input{\detokenize{$i}}; done
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021) (preloaded
format=mylatex) restricted \write18 enabled. entering extended mode ! I can't find
file input{detokenize{B�r.tex}}
要进行测试,只需获取任何 *.tex 文件并将其重命名为Bär.tex
。作为 MWE:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage{microtype}
\usepackage[T1]{fontenc}
\begin{document}
Es irrt der Menshc \dots
\end{document}
将 Bär.tex 放入一个空文件夹,生成格式,然后尝试循环。
(编辑:) 运行pdflatex "&mylatex" Bär.tex
都不起作用!
问题:
有人可以提供一种 shell / python / 任何文件或命令,在 Linux 下使用 for 循环运行,pdflatex "&mylatex" *.tex
编译给定文件夹中的所有 *.tex 文件,即使文件名包含变音符号和/或空格并使用格式文件?
第一步就是开始pdflatex "&mylatex" Bär.tex
工作。
顺便说一句:mylatexformat.ltx 也不起作用。