我对 LaTeX 还不太熟悉。我正在使用背页为了我的论文,并且为了让 Overleaf 以正确的顺序显示我的章节,我在每个章节旁边都添加了一个数字:
01-intro.tex
02-background.tex
etc.
然后,章节大纲文件如下所示:
\include{chapters/01-intro}
\include{chapters/02-background}
我想知道是否有办法包含模式而不是文件名。例如:
\include{chapters/*-intro}
\include{chapters/*-background}
因此,如果我更改文件名中的数字,包含仍将有效。是否有现有的命令可以执行此操作?不是很重要。只是好奇。我找到的文档似乎不支持。
答案1
当你写入\tryinput{prefix*-name}
时,TeX 将尝试输入文件prefix01-name.tex
或prefix02-name.tex
或prefix03-name.tex
或...或prefix99-name.tex
。第一个具有此名称的文件获胜并被读取。如果不存在这样的文件,则不会读取任何内容。
您可以\tryinput
通过以下代码定义宏:
\newcount\tmpnum
\def\thetmpnum{\ifnum\tmpnum<9 0\fi\the\tmpnum}
\def\tryinput#1{\tryinputA#1\relax}
\def\tryinputA #1*#2\relax{
\tmpnum=0 \let\nexti=\relax
\loop
\openin15=#1\thetmpnum #2
\ifeof15 \advance\tmpnum by1
\else \closein15
\edef\nexti{\noexpand\input #1\thetmpnum #2 }\tmpnum=100 \fi
\ifnum\tmpnum <99 \repeat
\nexti
}
%% test:
\tryinput{chapters/*-intro}