如果目前頁空間不足,則錯誤偵測奇數/偶數頁

如果目前頁空間不足,則錯誤偵測奇數/偶數頁

我想寫:

  • 頁面外側的一些文字,
  • 頁面內側的一些其他文字。

為此,我利用了套件提供的( \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}

相關內容