在按选项设置有两列的文件中,如果包有效,twocolumn
则最后一页不能按包平衡。balance
lineno
\documentclass[twocolumn]{book}
\usepackage{lipsum,balance}
\usepackage[switch]{lineno}
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\chapter{the first}
\end{@twocolumnfalse}
]
\linenumbers
\lipsum[1-8]
balabala
\balance
\end{document}
生成:
显然,最后一页是不平衡的。那么,如何在lineno
工作的基础上平衡最后一页呢?
有时候pbalance
会起作用,但是当有figure*
参数的图形时,pbalance
很难调整好。
\documentclass[twocolumn]{book}
\usepackage{lipsum,pbalance,stfloats,graphicx}
\usepackage[switch]{lineno}
%\shrinkLastPage{2.2in}
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\chapter{the first}
\end{@twocolumnfalse}
]
\linenumbers
\lipsum[1]
\par
\begin{figure*}[b]
\centering
\includegraphics[width=0.4\textwidth]{example-image-a}
\end{figure*}
\lipsum[2-8]
balabala
\end{document}
生成:
答案1
你可能想尝试pbalance
包裹。警告:作者指出它是黑客行为并且属于测试版,因此它并不总是有效并且有时软件包会直接放弃;但它至少在测试文档上能起作用。
尝试 1
我们首先尝试按照文档进行操作,然后加载pbalance
,这将为我们提供测试文档
\documentclass[twocolumn]{book}
\usepackage{lipsum,pbalance}
\usepackage[switch]{lineno}
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\chapter{the first}
\end{@twocolumnfalse}
]
\linenumbers
\lipsum[1-8]
balabala
\end{document}
输出朝着正确的方向:
尝试 2
第一次尝试几乎起作用了,但我们似乎可以将另一行从左列移到右列。根据文档,我们可以通过手动调整\shrinkLastPage
。所以让我们试着目测一下断点应该在哪里。经过反复试验,我决定4.1in
\documentclass[twocolumn]{book}
\usepackage{lipsum,pbalance}
\usepackage[switch]{lineno}
\shrinkLastPage{4.1in}
\begin{document}
\twocolumn[
\begin{@twocolumnfalse}
\chapter{the first}
\end{@twocolumnfalse}
]
\linenumbers
\lipsum[1-8]
balabala
\end{document}
而这一次几乎完全平衡了。
其他注意事项
由于您使用了book
文档类,我假设您最终会使用它来平衡每个章节的最后一页。就目前情况而言,该pbalance
包无法做到这一点。
然而,它使用的技巧可以手动实现,而且可能比\newpage
按照我的评论建议使用. 基本上:在内容文档稳定后,请先编译文档。然后发出\enlargethispage{<len>}
你应该把\balance
(最后一页的第一栏)放在那里消极的手动确定长度以使两列保持平衡。对每一章重复此操作。