TeX 是先读取一整段然后根据文字宽度断行的,所以不能在段落中间改变文字宽度。(好吧,其实可以用 \parshape
改),所以不存在一个通用的命令可以在某页开始改变文字宽度,要改只能整段整段地改(用 \parshape
实现起来很麻烦)。\newgeometry
也需要另起一页。
可以用 changepage
宏包更改某些段落的文字宽度。
\documentclass{article}
\usepackage{changepage}
\usepackage{lipsum}
\begin{document}
\lipsum[1]
% 右边加宽 1cm
\begin{adjustwidth}{0cm}{-1cm}
\lipsum[2-6]
\end{adjustwidth}
\lipsum[7-10]
\end{document}
\enlargethispage
能起作用是因为,TeX 在构建段落时并不需要知道文字的高度,TeX 先“分段为行”,然后“组行为页”,分页是一行一行试出来的,所以让 TeX 多加几行到某页上很容易。
话说,为什么需要这样一个命令呢?
问 如何定义一个类似于\enlargethispage的命令,用于修改当前页的文字区域宽度?