我想根据循环中变量的变化来打印一些图像:如果变量group
为 1,则不应打印图像。但如果值为group
2,则应打印图像。所以我正在寻找一种“if”条件。
我已经查看了 LaTeX 中的 if 条件,但没有找到适合我的情况的解决方案(使用循环中变化的变量控制 if)。
\newcounter{group}
\newcounter{subj}
\newcounter{number_of_runs_simona}
\forloop{group}{1}{\value{group} < 2}{
\forloop{subj}{1}{\value{subj} < 2}{
\forloop{number_of_runs_simona}{1}{\value{number_of_runs} < 26}{
\centering
\textbf{\large Group \arabic{group}, Subject \arabic{subj}, Run \arabic{number_of_runs}}
\begin{figure}[!ht]
\centering
\includegraphics{\FILENAMEONE{\arabic{group}}{\arabic{subj}}{\arabic{number_of_runs_simona}}}
\end{figure}
\clearpage
}
}
}
仅当变量group
的值为 2 时,才应打印图“FILENAMEONE”。
非常感谢您的帮助。
答案1
像这样吗?
\documentclass{article}
\begin{document}
\newcount\group
\newcount\subj
\newcount\nors
\group=0
\loop
\advance\group by 1
\subj=0
{\loop
\advance\subj by 1
\nors=0
{\loop
\advance\nors by 1
{
group \the\group, subject \the\subj, run \the\nors
\par
\ifnum\group=2
\begin{figure}[h!]
\centering
\emph{includegraphics filenameone-\the\group-\the\subj-\the\nors}
\caption{Test of filenameone-\the\group-\the\subj-\the\nors}
\end{figure}
\par
\fi
}
\ifnum\nors<26
\repeat}
\ifnum\subj<2
\repeat}
\ifnum\group<2
\repeat
\end{document}
抱歉,我一直混合使用低级\if
命令和计数器定义,即使这可能是一种不好的做法。
我不确定\ifnum\value{group}=2
在您的情况下会如何工作,但也许这就是您需要围绕您的figure
环境来使您的原始示例正常工作的全部内容......
答案2
如果您不介意额外的包,pgffor
提供 foreach-loops 会很方便。
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgffor}
\begin{document}
test
\foreach \n in {1,...,2}{
\ifnum\n=2%
\includegraphics{pic}%
\fi%
}
\end{document}