如何在 LaTex 中仅增加几行代码的行距?
答案1
这setspace
包裹提供通过环境或开关以非常一致(且简单)的方式更改行距的方法。以下是一个小例子:
\documentclass{article}
\usepackage{setspace}% http://ctan.org/pkg/setspace
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\lipsum[1]
\begin{doublespacing}
\lipsum[1]
\end{doublespacing}
\lipsum[1]
\end{document}
请注意,上面的示例中有一些隐藏的信息。由于 LaTeX 以段落为基础设置文本,因此您需要确保启动段落分隔符(通过空行或显式\par
),以使行距生效。这是由lipsum
包裹的\lipsum
上述命令。
应该对开关进行分组,以限制范围,例如
%...
\begingroup\onehalfspacing
% some paragraph text
% (maybe end with \par)
\endgroup
%...
提供的交换机和环境setspace
是
singlespacing
onehalfspacing
和doublespacing
。
但是,更通用的\setstretch{<num>}
宏是进行更通用的行距设置所需的接口。
setspace
为界面提供诸如\baselineskip
和 之类的元素\linespread
。请参阅为什么\linespread
因素是这样的?进行关于 的选择的一般性讨论<num>
。
Barbara 提到了在增加行距的段落上方/下方设置“等宽”间隙的选项。之所以不这样做,是因为 是\baselineskip
基于段落的。因此,更改后的段落具有不同的(较小的)\baselineskip
,因此在视觉上更接近。下面给出了一种使用一些“捏造”来纠正此问题的简单方法:
\documentclass{article}
\usepackage{setspace}% http://ctan.org/pkg/setspace
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\newlength{\fudgeheight}
\newcommand{\fudgestrut}{\leavevmode\rule{0pt}{\fudgeheight}}
\begin{document}
\lipsum[1]
\begin{doublespacing}
\lipsum[1]\global\setlength{\fudgeheight}{\baselineskip}
\end{doublespacing}
\fudgestrut\lipsum[1]
\end{document}
这里的想法是插入一个垂直支柱 - - 使用段落第一行内的\fudgestrut
增加\baselineskip
下列的行距变化。我确信这个过程可以在某种程度上实现自动化,但是用例不值得进行这样的调查。