我有一份包含许多(1000 多个)包含图形的对象的文件。我希望根据是在奇数页还是偶数页,翻转tabular
这些对象的列顺序(1-2-3 -> 3-2-1)。tabular
tabular
为此,我使用了ifoddpage
包。每个tabular
对象出现两次,嵌入在\ifoddpage
条件语句中,该语句tabular
根据测试确定页面是偶数还是奇数来放置一个方向或另一个方向。
这是我正在做的一个基本示例,但实际文档中的图片尺寸略有不同:
\documentclass[11pt,a4paper,twoside]{book}
\usepackage{a4wide}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{array}
\usepackage{ifoddpage}
\usepackage{todonotes}
\begin{document}
\chapter{Test}
% Here starts the block for a single object
\checkoddpage
\ifoddpage
\begin{tabular}{m{0.3\textwidth} m{0.3\textwidth} m{0.3\textwidth}}
\missingfigure[figheight=0.185\textheight, figwidth=0.3\textwidth]{} & \missingfigure[figheight=0.185\textheight, figwidth=0.3\textwidth]{} & {\huge \textbf{word}} \newline \newline \newline {\huge other word} \\
\end{tabular}
\else
\begin{tabular}{m{0.3\textwidth} m{0.3\textwidth} m{0.3\textwidth}}
{\huge \textbf{word}} \newline \newline \newline {\huge other word} & \missingfigure[figheight=0.185\textheight, figwidth=0.3\textwidth]{} & \missingfigure[figheight=0.185\textheight, figwidth=0.3\textwidth]{} \\
\end{tabular}
\fi
% Repeat the above block ad nauseam
\end{document}
现在,这在理论上是可行的,但在实践中,每页上的第一个对象都是错误的。这是因为 放置\checkoddpage
了一个标签供\ifoddpage
参考。当页面底部剩余一点空间时,\checkoddpage
仍然可以将标签放在页面末尾,而对象则被推到下一页,方向错误。
所以我的问题是:有没有办法检查下一个对象是否会被推送到下一页并对此进行补偿,或者理想情况下\checkoddpage
根据即将出现的对象将标签向下推?
答案1
通常最好在段落的第一行进行检查,而不是在段落前的垂直模式下进行检查,这样检查与视觉结果的联系更加紧密。
可能\leavevmode
之前\checkoddpage
让它做正确的事情。