현재 페이지에 공간이 충분하지 않으면 홀수/짝수 페이지가 잘못 감지됩니다.

현재 페이지에 공간이 충분하지 않으면 홀수/짝수 페이지가 잘못 감지됩니다.

나는 다음을 넣고 싶다:

  • 페이지 바깥쪽에 있는 일부 텍스트,
  • 페이지 안쪽에 또 다른 텍스트가 있습니다.

이를 위해 패키지 에서 제공하는 ( \checkoddpage) 테스트를 활용합니다 . 다음 MWE에서 지적한 것처럼 코드가 삽입된 현재 페이지에 충분한 공간이 남아 있지 않은 것으로 밝혀지는 경우를 제외하고는 꽤 잘 작동합니다(처음 두 개는 괜찮지만 마지막 두 개가 아님).\ifoddpagechangepage

\documentclass{book}
\usepackage[inner=10mm,outer=30mm]{geometry}
\usepackage[strict]{changepage}

\newcommand{\onouterside}{%
  \begin{minipage}[t]{0.3\linewidth}
    Some text supposed to be on the outer side.
  \end{minipage}
}
\newcommand{\oninnerside}{%
  \begin{minipage}[t]{0.75\linewidth}
    Some text supposed to be on the inner side.
  \end{minipage}
}
\newcommand{\test}{%
  \checkoddpage%
  \ifoddpage%
  \oninnerside
  \hspace*{11mm}%
  \onouterside
  \else%
  \hspace*{-20mm}%
  \onouterside
  \hspace*{11mm}%
  \oninnerside
  \fi%
}
\begin{document}
\test
\newpage
\test
\newpage
\rule{0.4pt}{.969\textheight}\par
\test
\newpage
\mbox{}
\newpage
\rule{0.4pt}{.969\textheight}\par
\test
\end{document}

홀수/짝수 페이지 테스트를 강력하게 만들려면 어떻게 해야 합니까? 텍스트의 세로 공간을 구해서 현재 페이지에 남아 있는 세로 공간과 비교해야 할까요? 그렇다면 후자를 어떻게 알 수 있을까요?

답변1

메인 수직 목록에서 어떤 작업을 하든 조심하세요:-)

이것은 더 안전한 수평 모드에서 테스트를 수행합니다.

\documentclass{book}
\usepackage[inner=10mm,outer=30mm]{geometry}
\usepackage[strict]{changepage}

\newcommand{\onouterside}{%
  \begin{minipage}[t]{0.3\linewidth}
    Some text supposed to be on the outer side.
  \end{minipage}
}
\newcommand{\oninnerside}{%
  \begin{minipage}[t]{0.75\linewidth}
    Some text supposed to be on the inner side.
  \end{minipage}
}
\newcommand{\test}{%
  \mbox{}\checkoddpage%
  \ifoddpage%
  \oninnerside
  \hspace*{11mm}%
  \onouterside
  \else%
  \hspace*{-20mm}%
  \onouterside
  \hspace*{11mm}%
  \oninnerside
  \fi%
}
\begin{document}
\test
\newpage
\test
\newpage
\rule{0.4pt}{.969\textheight}\par
\test
\newpage
\mbox{}
\newpage
\rule{0.4pt}{.969\textheight}\par
\test
\end{document}

관련 정보