每次出现新页面时,有没有办法自动镜像 parbox?
我有一个\documentclass{book}
由两个并排的 组成的\parbox
。我希望其中一个\parbox
始终保持“外部”,另一个始终保持“内部”。页面应该基本上互相镜像。
梅威瑟:
\documentclass{book}
\usepackage{lipsum}
\begin{document}
\noindent
\parbox[t][][t]{.7\linewidth}{\lipsum[1]}\hfill
\parbox[t][][t]{.25\linewidth}{\lipsum[2]}
\noindent
\parbox[t][][t]{.7\linewidth}{\lipsum[8]}\hfill
\parbox[t][][t]{.25\linewidth}{\lipsum[9]}
\end{document}
答案1
这些宏是可选的。它们在这里的唯一作用是,如果空间不足以容纳整个内容,则\parbox
强制使用。对齐由 处理。(如果没有 ,则应使用。)\newpage
\switchcolumn*
\parbox
\sloppy
\documentclass{book}
\usepackage{lipsum}
\usepackage{paracol}
\setcolumnwidth{.7\textwidth,.25\textwidth}
\columnsep=.05\textwidth
\twosided[pc]% swap margins and columns
\begin{document}
\begin{paracol}{2}
\noindent\parbox{\columnwidth}{\lipsum[1]}
\switchcolumn
\noindent\parbox{\columnwidth}{\lipsum[2]}
\switchcolumn*
\noindent\parbox{\columnwidth}{\lipsum[8]}
\switchcolumn
\noindent\parbox{\columnwidth}{\lipsum[9]}
\end{paracol}
\end{document}
这是使用 ifoddpage 包的解决方案。它需要运行两次,因为\checkoddpage
将页码存储在辅助文件中。\makebox
用于在测试之前强制更改页面。
\documentclass{book}
\usepackage{lipsum}
\usepackage{ifoddpage}
\newcommand{\swapboxes}[2]% #1 = wide text, #2 = narrow text
{\noindent\makebox[\textwidth]{\checkoddpage
\ifoddpageoroneside
\parbox[t]{.7\textwidth}{#1}\hfill\parbox[t]{.25\textwidth}{#2}%
\else
\parbox[t]{.25\textwidth}{#2}\hfill\parbox[t]{.7\textwidth}{#1}%
\fi}}
\begin{document}
\swapboxes{\lipsum[1]}{\lipsum[2]}
\swapboxes{\lipsum[8]}{\lipsum[9]}
\end{document}