ProgramingTip

LaTeX의 반복

bestdevel 2020. 12. 14. 20:37
반응형

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 코드를 루프로 만들려면 어떻게해야합니까?


다음과 같은 것이 테이블 형식의 본문을 처리합니다.

\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

pgfforpgf에서 제공하는 도구 인 package를 사용할 수 있습니다 . 기본 구문은 다음과 같습니다.

\foreach \n in {0,...,22}{do something}

특히,이 for 루프는 정수로 제한되지 않습니다. 예를 들면 다음과 같습니다.

\foreach \n in {apples,burgers,cake}{Let's eat \n.\par}

참고 URL : https://stackoverflow.com/questions/2561791/iteration-in-latex

반응형