TikZ \foreach 루프 내에서 짝수/홀수 페이지를 테스트하는 방법

TikZ \foreach 루프 내에서 짝수/홀수 페이지를 테스트하는 방법

TikZ foreach 루프를 사용하여 문서를 만들고 있습니다. 다음은 스니펫입니다.

\documentclass{article}
\usepackage{tikz}
\begin{document}

\foreach \myi in {1,2,...,17}
  {
    hello(\myi)
    \clearpage
    \ifoddpage
      A
    \else
      B
    \fi
  }

\end{document}

그러나 이로 인해 다음과 같은 오류가 발생합니다.

! Extra }, or forgotten \endgroup.
\pgffor@collectargument ...fter {\pgffor@body {#1}
                                                  }\else \expandafter \long ...
l.14   }

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

답변1

\ifoddpage기본적으로 정의되어 있지 않습니다. 해당 패키지를 프리앰블에 추가하고 \checkoddpage검사를 호출하기 전에 추가해야 합니다 \ifoddpage.

\documentclass{article}

\usepackage{tikz,ifoddpage}

\begin{document}

\foreach \myi in {1,2,...,17}{%
  \clearpage
  \checkoddpage
  \ifoddpage
    A
  \else
    B
  \fi
  hello(\myi)
}

\end{document}

다음은 동일한 접근 방식입니다.refcount:

\documentclass{article}

\usepackage{tikz,refcount}

\newcounter{oddpagelabel}
\newcommand{\checkoddpage}{\stepcounter{oddpagelabel}\label{opl-\theoddpagelabel}}

\begin{document}

\foreach \myi in {1,2,...,17}{%
  \clearpage
  \checkoddpage
  \ifodd\getpagerefnumber{opl-\theoddpagelabel}
    A
  \else
    B
  \fi
  hello(\myi)
}

\end{document}

관련 정보