![偷工减料 - 如何删除 1 pt (0.3515 mm) 左右](https://linux22.com/image/286557/%E5%81%B7%E5%B7%A5%E5%87%8F%E6%96%99%20-%20%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4%201%20pt%20(0.3515%20mm)%20%E5%B7%A6%E5%8F%B3.png)
没有办法重新表述句子。例如,当我删除句子中的字母“i”时,一切都很完美。
所以我考虑把空白处的角落剪掉。这只涉及某一行。有什么想法吗?我猜这违反了排版规则,但是……
当我是 MS 用户时,我遇到过一次这种情况,我只是改变了空白的大小。
平均能量损失
\documentclass[12pt]{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Neither text reformulation nor deleting any characters is not the option (btw, is neither A nor B considered singular or plural?). Anyway, any idea????
\end{document}
这份文件只需要一页。我想在最后一行(希望是空格)上做一些改动,这样我仍然可以在那里保留四个问号。如果删除“considered”中的字母“i”,它就会起作用,所以我在寻找一些小窍门。
答案1
这个答案采取的是尝试在本地(困难点)解决问题的方法,而不是重置影响整个文档的全局参数。
此答案已修改,以采纳芭芭拉的建议,即优先在句号和逗号后提供较小的空格。我将原始解决方案保留在代码中作为注释。如果您取消注释该行并重新编译,您将看到芭芭拉的建议所带来的不同。(请注意,我颠倒了结果的顺序,以前是从最好到最差,现在是从最差到最好,因此在阅读芭芭拉的评论时要考虑到这一点)。
虽然乍一看似乎有所不同,但这个答案是基于我最近在仅排版一组中的第一个字母。我创建了宏\squeeze{}
,它将通过将所有空格转换为两个\hfil
s(但\hfil
逗号和句号后只能有一个空格)来压缩其内容。要使用它,只需确保段落的结尾是论点的结尾,论点的开头位于最后一行的某个位置。下面,我将说明压缩的开头不需要精确,但通常在论点中包含更多单词会使压缩更平缓地分布在更多空格上。
\documentclass[12pt]{article}
\def\squeeze#1{\squeezeit#1 \relax\relax}
% REVISED SOLUTION
\def\squeezeit#1 #2\relax{#1\if\relax#2\else
\findlast#1\relax\relax%
\if.\LastChar\hfil\else
\if,\LastChar\hfil\else
\hfil\hfil%
\fi
\fi
\squeezeit#2\relax\fi%
}
\def\findlast#1#2\relax{\def\LastChar{#1}\if\relax#2\else\findlast#2\relax\fi}
\parskip 1ex
% ORIGINAL SOLUTION (No \findlast and this \squeezeit below
% Uncomment old definition below, to see comparison
%\def\squeezeit#1 #2\relax{#1\if\relax#2\else{}\hfill\squeezeit#2\relax\fi}
\begin{document}
{\bfseries Goal: get 3 line expression down to two lines.}\par
Neither text reformulation nor deleting any characters is not the option
(btw, is neither A nor B considered singular or plural?). Anyway, any idea????\par
{\bfseries Marginal:}\par
Neither text reformulation nor deleting any characters is not the option
(btw, is neither A nor B considered \squeeze{singular or plural?). Anyway, any idea????}\par
{\bfseries Good:}\par
Neither text reformulation nor deleting any characters is not the option
(btw, is neither \squeeze{A nor B considered singular or plural?). Anyway, any idea????}\par
{\bfseries Better:}\par
Neither text reformulation nor deleting any characters is not the option
\squeeze{(btw, is neither A nor B considered singular or plural?). Anyway, any idea????}
\end{document}
答案2
您可以更改词间空间。至少有三种不同的方法可以将 MWE 变成 1 页文档。如果您添加
\spaceskip=0.95\fontdimen2\font plus \fontdimen3\font minus \fontdimen4\font
您将减少单词间空间的自然长度。 导致具有此新自然长度的 badness 最小的段落的换行符集与具有原始单词间空间的换行符集不同。 这允许您在页面上容纳更多内容
另一个选择是添加
\spaceskip=\fontdimen2\font plus \fontdimen3\font minus 1.2\fontdimen4\font
这使得单词之间的空间可以缩小一点。
可能最简单的解决方案是使用microtype
包裹。
\usepackage{microtype}
该软件包可以启用各种技巧,从而使排版效果略有改善,在这种情况下,可以将 2 页文档变成 1 页文档。
答案3
放在\hspace{-0.7mm}
“anyway”一词之前效果很好。您觉得呢?
(我可能应该更好地提到我想在本地解决问题,即在最后一行或更好的特定段落中。)
答案4
您可以在最后一段之前使用\enlargethispage{50pt}
或带星号的版本。然后在最后一段之后使用。\enlargethispage*{50pt}
\newpage