LaTeX 代码的输入依赖于一些整数参数

LaTeX 代码的输入依赖于一些整数参数

假设我有大量.tex文件,名称为1.tex2.tex...N.tex(其中N= 某个整数)。

我想编写一个 LaTeX 文档,在其中设置一些参数,例如:

howMany = 10, from = 21

然后,当我编译此文件时,我获得了包含输入文件、、、21.tex的内容的 pdf 输出。如果或我想在 pdf 输出中显示一些错误消息。22.tex...30.texhowMany > Nfrom + howMany > N

用 LaTeX 可以做到这一点吗?

答案1

是的!我定义了一个命令\MultiInput[<ini>]{<num>}{<name template>},它从<ini>(默认为1)循环到<ini>+<num>-1,用当前数字替换#1in<name template>并检查文件是否存在。如果存在,则文件已输入,否则它会打印!ERROR!到 PDF 文件并在控制台中显示错误消息。

下面的代码产生:

在此处输入图片描述

\RequirePackage{filecontents}
\begin{filecontents}{file_1.tex}
Hello
\end{filecontents}
\begin{filecontents}{file_2.tex}
World
\end{filecontents}

\documentclass{article}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand \MultiInput { O{1} m m }
  {
    \int_step_inline:nnn {#1} {#1+#2-1}
      {
        \file_if_exist:nTF {#3}
          { \input {#3} }
          {
            !ERROR!
            \msg_error:nnn { azonips } { file-not-found } {#3}
          }
      }
  }
\msg_new:nnn { azonips } { file-not-found }
  { File~`#1'~not~found. }
\ExplSyntaxOff
\begin{document}
\MultiInput{1}{file_#1.tex}

\MultiInput{2}{file_#1.tex}

\MultiInput{3}{file_#1.tex}

\MultiInput[2]{1}{file_#1.tex}
\end{document}

相关内容