在多个 *.tex 文件的 »for 循环« 中运行 pdftex,使用格式,并点击带有变音符号和/或空格的文件名

在多个 *.tex 文件的 »for 循环« 中运行 pdftex,使用格式,并点击带有变音符号和/或空格的文件名

这是对该问题的后续回答: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 也不起作用。

相关内容