
Я хотел бы поставить:
- какой-то текст на внешней стороне страницы,
- какой-то другой текст на внутренней стороне страницы.
Для этого я использую тест ( \checkoddpage
) \ifoddpage
, предоставляемый пакетом changepage
. Он работает довольно хорошо, за исключением случаев, когда оказывается, что на текущей странице, где вставляется код, недостаточно места, как указано в следующем MWE (первые два подходят, последние два нет).
\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}