\include 模式而不是文件名

\include 模式而不是文件名

我对 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.texprefix02-name.texprefix03-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}

相关内容