使用循环时缺少数字

使用循环时缺少数字

我一直在尝试将多个 tex 文件读入表格。我有两组文件,编号分别为t_1.tex...t_10.texa_1.tex... a_10.tex

这是我目前拥有的代码:

\newcount\ii
\ii=0
\def\myline{}%
\loop
\ifnum\ii<10
\advance\ii by1
\edef\myline{%
\myline
\input{t_\the\ii.tex} & \input{a_\the\ii.tex}\\%
}%
\repeat

\begin{document} 
    \begin{tabular}{l l}
    \myline
    \end{tabular}
\end{document} 

我明白了Missing number, treated as zero. \repeat

有几篇类似的帖子这里这里。但我找不到我的情况存在这个问题。

感谢您的帮助。

答案1

这是我前段时间从 David Carlisle 那里学到的。(我分别创建了文件a_<i>.text_<i>.tex,内容a<i>和,t<i>其中 i=1,2,3。)\myline是递归定义的,即它“调用”自身,直到计数器达到临界值(本例中为 3)。

\documentclass{article}
\newcounter{ii}
\setcounter{ii}{0}
\def\singleline{\input{a_\number\value{ii}.tex} &
\input{t_\number\value{ii}.tex}\\}
\def\myline{\stepcounter{ii}%
\ifnum\value{ii}<4
\singleline
\myline
\fi}

\begin{document} 
\begin{tabular}{ll}
 \myline
\end{tabular}
\end{document} 

在此处输入图片描述

答案2

中的简单循环expl3。在最后一个参数中,\makeloop您可以指定循环模板,其中#1代表当前循环值。

\begin{filecontents*}{\jobname-a1.tex}
aaa1
\end{filecontents*}
\begin{filecontents*}{\jobname-b1.tex}
bbb1
\end{filecontents*}
\begin{filecontents*}{\jobname-a2.tex}
aaa2
\end{filecontents*}
\begin{filecontents*}{\jobname-b2.tex}
bbb2
\end{filecontents*}
\begin{filecontents*}{\jobname-a3.tex}
aaa3
\end{filecontents*}
\begin{filecontents*}{\jobname-b3.tex}
bbb3
\end{filecontents*}
\begin{filecontents*}{\jobname-a4.tex}
aaa4
\end{filecontents*}
\begin{filecontents*}{\jobname-b4.tex}
bbb4
\end{filecontents*}

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\makeloop}{O{1}mm}
 {
  \cs_gset:Nn \__rashid_loop_temp:n { #3 }
  \int_step_function:nnN { #1 } { #2 } \__rashid_loop_temp:n
 }
\ExplSyntaxOff

\begin{document}

\begin{tabular}{ll}
\makeloop{4}{\input{\jobname-a#1}\unskip & \input{\jobname-b#1}\unskip \\}
\end{tabular}

\bigskip

\begin{tabular}{ll}
aaa1 & bbb1 \\
aaa2 & bbb2 \\
aaa3 & bbb3 \\
aaa4 & bbb4 \\
\end{tabular}

\end{document}

我以前\jobname只是不破坏我的文件。

注意\unskip删除插入的空格\input(第二个表用于检查)。

\makeloop命令有一个可选参数,用于指定不同的起点:\makeloop[4]{7}{...}将使用值 4,5,6,7 创建一个循环。

在此处输入图片描述

相关内容