我使用 paracol 在对开页上分列打印文本。文本打印在跨页 paracol 环境占用的第一页的剩余部分上,但不打印在第二页上。如何在这样的环境之后在两页上打印文本,以便恢复人们可能期望的从背面到正面的流向?
梅威瑟:
\documentclass[twoside]{scrbook}
\usepackage{paracol}
\usepackage{blindtext}
\begin{document}
\leavevmode\thispagestyle{empty}\newpage%simply to illustrate the use of paracol on facing pages
\begin{paracol}[2]*{4}
text below
\switchcolumn
text below
\switchcolumn
no text below
\switchcolumn
text on following page --> :-(
\end{paracol}
\blindtext[5]
\end{document}
我的完整文档在 paracol 之后有一个非分页的新章节,但我将其从 MWE 中删除,因为看起来 paracol 的行为在没有它的情况下也是一样的。此外,paracol 中的文本比 MWE 中的文本复杂得多,因此无法用其他环境替换它。
答案1
首先,您需要将两页文本存储到保存框中,然后在另一个 paracol 中一次拆分一页。
\documentclass[twoside]{scrbook}
\usepackage{paracol}
\usepackage{lipsum}
\newlength{\remains}
\newsavebox{\twopagebox}
\begin{document}
\leavevmode\thispagestyle{empty}\newpage%simply to illustrate the use of paracol on facing pages
\begin{paracol}[2]*{4}
text below \thecolumn
\switchcolumn
text below \thecolumn
\switchcolumn
no text below \thecolumn
\switchcolumn
text on following page \thecolumn
\end{paracol}
\setlength{\remains}{\dimexpr \pagegoal-\pagetotal}% space remaining on page
\setbox\twopagebox=\vbox{\lipsum[1-12]}% two pages of text
\begin{paracol}[1]*{2}
\setbox0=\vsplit\twopagebox to \remains
\unvbox0
\switchcolumn
\setbox0=\vsplit\twopagebox to \remains
\unvbox0
\end{paracol}
\unvbox\twopagebox% print leftovers
\end{document}