输入订单表

输入订单表

我有一张输入订单表,例如:

  1. \input{something}
  2. \input{another thing}
  3. \input{some other thing}
  4. ...

我想制作一个类似的命令,\myinput{}这样如果我使用\myinput{24}那么它将在主 tex 中输入我的第 24 个 tex。

我知道我可以这样\myinput{}定义

\ifnum #1=1 \input{...}
\else\ifnum #1=2 \input{...}
\else\ifnum #1=3 \input{...} 
\fi 

但是这太长了...我怎样才能使这个命令更简短?

答案1

从文件列表中定义一个序列并使用\seq_item:Nn

\begin{filecontents*}{aa}
I am file aa
\end{filecontents*}
\begin{filecontents*}{xyz}
I am file xyz
\end{filecontents*}
\begin{filecontents*}{cc}
I am file cc
\end{filecontents*}

\documentclass{article}

\ExplSyntaxOn

\NewDocumentCommand{\varinput}{m}
 {
  \file_input:n { \seq_item:Nn \g_ngiap_varinput_seq { #1 } }
 }

\seq_new:N \g_ngiap_varinput_seq

\NewDocumentCommand{\varinputlist}{m}
 {
  \seq_gset_from_clist:Nn \g_ngiap_varinput_seq { #1 }
 }

\ExplSyntaxOff

\varinputlist{aa,xyz,cc}

\begin{document}

\varinput{1}

\varinput{3}

\varinput{2}

\end{document}

在此处输入图片描述

相关内容