LaTeX 初学者最容易困惑的,往往是“换行”和“分段”的处理。关键只有两点:空行会开始一个新段落,而 \\ 是折断一*行*,不是分段。理解这个区别,就能避免反复输入 \\ 来分段的典型错误。本页还会说明如何控制首行缩进和段落之间的间距。
空行开始新段落
在 LaTeX 中,一个或多个空行(包括只含空格或制表符的行)会分隔段落。反过来说,源文件中单独换一行,在输出中只会被当作 一个普通空格,句子仍然连在一起。在哪里断行由 LaTeX 自己决定;你在稿件中按下的换行键不会影响最终的断行位置。这体现了 LaTeX 将 *源码外观* 与 *输出外观* 分离的核心思想;空白处理的细节也会在“语法规则”页面中介绍。
请看下面的源码。前半写成了三行,但输出时会成为一个连续段落。只有出现空行的位置才会开始新段落。注意,连续放多个空行与放一个空行效果相同,仍然只产生一次段落分隔。
これらの 3 行は
ソースでは改行していますが、
出力では 1 つの段落になります。
空行をはさんだので、ここから新しい段落です。也可以不用空行,而写 \par 命令,效果完全相同。\par 在不能使用空行的地方很有用(例如自定义命令的定义内部),但普通正文中 空行更易读,所以通常更推荐空行。相反,在 \section{...} 的参数中或数学模式中不能放空行,否则会报错。
换行不是分段
这是最重要的一点。\\(两个反斜杠)和 \newline 是在段落内部强制折断*一行*的命令,并不是分隔段落的命令。\\ 只是标记“在这里结束这一行”,不会离开水平模式,也不会结束段落。因此,用 \\ 来分段是错误的。官方参考也明确说明:不要用 \\ 开始新段落;应在两个段落之间留一个空行。
为什么这是问题?因为用 \\ 分段时,不会产生首行缩进,不会加入段间距,而且上一行的末行也不会向右边界两端对齐。结果只是“看起来换了行”,但并不像真正的段落。经验规则是:段落边界一定用空行(或 \par),只有在同一段内部需要强制断行时才用 \\。
\\ 还有一些方便的扩展。像 \\[2ex] 这样 在方括号中加入长度,会在该行之后添加额外的竖直空白(也允许负值)。这常用于表格(tabular)或陈列公式环境中,用来拉开行距。形式 \\* 会在该断行处 禁止分页,把两行保留在同一页。注意,在没有可结束的“行”的地方(例如段落开头)使用 \\,会得到错误 There's no line here to end。
那么 \newline 和 \linebreak 有什么区别?在段落模式中,\newline 与 \\ 完全相同,会断行但不拉伸该行。相对地,\linebreak 会在该位置断行,同时拉伸行内空白,使文本两端对齐到右边界,因此强行对齐时词间距可能变得过大。写成 \linebreak[n](n 为 0 到 4)可以指定断行强度:4 为强制,1 只是“如果可能”的弱请求。在表格中也要记住:\newline 只在单元格内部换行,而 \\ 会结束整行。
控制缩进
默认情况下,LaTeX 会 缩进每个段落的第一行,但紧跟在标题(如 \section)之后的第一个段落不会缩进。这沿袭了英文传统排版。日文排版通常使用全角首行缩进,因此日文类会相应调整这些默认值。
要按段落切换缩进,可以用两个命令。把 \noindent 放在段落开头,会取消该段的缩进(继续一个被中断的段落时也有用)。相反,\indent 会强制缩进,内部输出一个宽度为 \parindent 的空盒子。二者放在段落中途都没有效果,因为缩进与否在段落开始时已经决定了。
缩进量本身由长度参数 \parindent 决定。标准类(单栏)的默认值是:正文 10pt 时 15pt,11pt 时 17pt,12pt 时 1.5em;双栏模式中为 1em。段落之间插入的竖直空白由长度 \parskip 决定,标准类默认值是 0pt plus1pt(基本为零,但可略微伸展)。要改变这些值,通常在导言区用 \setlength。
\setlength{\parindent}{2em} % 字下げを 2em に
\setlength{\parskip}{6pt} % 段落間に 6pt の空き块式段落与 parskip 宏包
在商务文档或类似网页的版式中,经常使用“块式段落”:没有首行缩进,段落 用竖直空白分隔。最朴素的做法是在导言区把 \parindent 设为 0,并给 \parskip 一个间距。最小写法如下。
\setlength{\parindent}{0pt}
\setlength{\parskip}{\baselineskip}但是手动增大 \parskip 会有副作用:目录、列表、图表周围等 复用段落间距的地方也会被拉开。parskip 宏包 会更干净地处理这个问题,只需写 \usepackage{parskip}。默认情况下,它把 \parindent 设为 0pt,把 \parskip 设为 .5\baselineskip plus 2pt,同时抑制目录等处的异常。带 plus 的可伸缩空白也有助于 LaTeX 找到更好的分页位置。如果想保留缩进,可以用 \usepackage[indent]{parskip} 这样的选项指定。
与分页和不可断空格的区别
段落分隔和 分页 是不同的。\newpage 会结束当前页并进入下一页,但不会分段。\clearpage 更进一步,会先输出所有等待中的浮动体(图和表),再换页。如果只是想开始新段落,不要使用这两个命令。更细的换行与分页控制会在“调整换行位置”和“调整分页”页面中介绍。
也有用于相反目的的工具,即防止断开。波浪号 ~ 是 不可断空格,会把空格两侧的内容保持在同一行,例如 Fig.~3 或 Dr.~Smith。\, 是细空格(thin space),常用于数字和单位之间。二者都 不是换行或分段命令,只是用于外观微调的空白,作用与换行、分段完全不同。
写稿时的段落节奏
实际写论文或报告时,可以给源码设一个简单约定:每个句子或分句在易读宽度处换行,只在真正换段的地方留空行。普通源码换行不会改变输出,所以源码中的换行应服务于编辑便利,而不是用于控制纸面上的断行位置。
如果想改变段落外观,先决定整篇文档的方针,再考虑是否在正文中散布 \\ 或 \vspace。小说、随笔和许多日文报告适合首行缩进;规格书、会议记录和来自 Web 的资料通常适合用 parskip 宏包实现块式段落。不论哪种风格,都不要用局部空白命令“制造”段落;在导言区一次性声明方针,才能让长文档保持可维护。
修改时先看段落意义
临近截止日期时,很容易只凭视觉增减空行或 \vspace。但在 LaTeX 中,段落就是文档结构的一部分。应先判断:一个段落是否包含两个以上主张,图表说明究竟属于前一段还是后一段,标题后是否需要短导入段。之后坚持规则:空行标记段落边界,\\ 只用于同一段内部的视觉换行。这样校对之后结构也不会崩坏。
- 正文段落 — 主张改变时插入空行,不要只为外观增加空行。
- 标题块、地址、诗行 — 只有当一个语义项目需要显示成多行时才使用
\\。 - 间距不满意 — 先用
\parskip或parskip宏包决定整篇文档的方针。 - 分页不满意 — 使用分页控制或浮动体位置调整,而不是段落命令。