Итерация в LaTeX
Я хотел бы использовать некоторый поток управления итерацией, чтобы упростить следующий код LaTeX.
begin{sidewaystable}
caption{A glance of images}
centering
begin{tabular}{| c ||c| c| c |c| c|| c |c| c|c|c| }
hline
backslashbox{Theme}{Class} &multicolumn{5}{|c|}{Class 0} & multicolumn{5}{|c|}{Class 1}
hline
hline
1 &
includegraphics[scale=2]{../../results/1/0_1.eps}
&includegraphics[scale=2]{../../results/1/0_2.eps}
&includegraphics[scale=2]{../../results/1/0_3.eps}
&includegraphics[scale=2]{../../results/1/0_4.eps}
&includegraphics[scale=2]{../../results/1/0_5.eps}
&includegraphics[scale=2]{../../results/1/1_1.eps}
&includegraphics[scale=2]{../../results/1/1_2.eps}
&includegraphics[scale=2]{../../results/1/1_3.eps}
&includegraphics[scale=2]{../../results/1/1_4.eps}
&includegraphics[scale=2]{../../results/1/1_5.eps}
hline
... % similarly for 2, 3, ..., 22
hline
23 &
includegraphics[scale=2]{../../results/23/0_1.eps}
&includegraphics[scale=2]{../../results/23/0_2.eps}
&includegraphics[scale=2]{../../results/23/0_3.eps}
&includegraphics[scale=2]{../../results/23/0_4.eps}
&includegraphics[scale=2]{../../results/23/0_5.eps}
&includegraphics[scale=2]{../../results/23/1_1.eps}
&includegraphics[scale=2]{../../results/23/1_2.eps}
&includegraphics[scale=2]{../../results/23/1_3.eps}
&includegraphics[scale=2]{../../results/23/1_4.eps}
&includegraphics[scale=2]{../../results/23/1_5.eps}
hline
end{tabular}
end{sidewaystable}
я узнаю, что пакет forloop предоставляет for
петли. Но я не уверен, как применить его к моему делу? Или другие методы не по forloop?
Если я также хочу просто другой подобный случай, где единственное различие заключается в том, что каталог не работает от 1, 2, до 23, но в некотором произвольном порядке, таком как 3, 2, 6, 9,... или даже список строк, таких как dira, dirc, dird, dirb,.... Как мне сделать код LaTeX в циклы тогда?
2 ответа:
что-то вроде этого позаботится о теле вашей таблицы:
\newcounter{themenumber} \newcounter{classnumber} \newcounter{imagenumber} \forloop{themenumber}{1}{\value{themenumber} < 24}{ % \hline <-- Error here \arabic{themenumber} \forloop{classnumber}{0}{\value{classnumber} < 2}{ \forloop{imagenumber}{1}{\value{imagenumber} < 6}{ & \includegraphics[scale=2]{ ../../results/\arabic{themenumber}/\arabic{classnumber}_\arabic{imagenumber}.eps } } } \ \hline }
Я должен был прокомментировать первый
\hline
потому что это дало мне ошибку:You can't use `\hrule' here except with leaders.
Я не уверен, что это значит; если вы действительно не можете жить без двойной линии, я могу смотреть на это больше.
Также обратите внимание, что вы должны использовать
<
, например,<= 24
не будет работать.
что касается вашего обновления: я бы просто объявил команду, которая принимает аргумент, что вы зацикливаетесь. Что-то вроде этого:
\newcommand\fordir[1]{do something complex involving directory named #1} \fordir{dira} \fordir{dirb} \fordir{dirc} \dots