02_用\(\LaTeX{}\) 排版文字
本文主体内容来自一份 (不太) 简短的 LATEX2ε 介绍。
文字是排版的基础。本章主要介绍如何在 \(\LaTeX{}\) 中输入各种文字符号,包括标点符号、连字符、重音等,以及控制文字断行和断页的方式。本章简要介绍了在 \(\LaTeX{}\) 中排版中文的方法。随着 \(\LaTeX{}\) 和底层 \(\TeX{}\)引擎的发展,旧方式(\(\texttt{CCT}\)、\(\texttt{CJK}\)等)日渐退出舞台,\(\texttt{xelatex}\) 和 \(\texttt{lualatex}\) 编译命令配合 \(\texttt{ctex}\) 宏包/文档类的方式成为当前的主流中文排版支持方式。
\(\LaTeX{}\)中的字符
空格和分段
空格键和 Tab 键输入的空白字符视为“空格”。连续的若干个空白字符视为一个空格。一行开头的空格忽略不计。行末的换行符视为一个空格;但连续两个换行符,也就是空行,会将文字分段。多个空行被视为一个空行。也可以在行末使用 \par
命令分段。
注释
- 用 % 字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,行末的换行符也不引入空格。
texstudio快捷键 Ctrl + T
快速注释/取消注释光标所在行。
\iffalse
和\fi
是一个常用的方法,适合注释大段文字或代码。
\iffalse
这里是被注释掉的内容。
无论是文字、公式还是代码,都会被忽略。
\fi
comment
宏包提供了方便的注释方式,可以直接注释任意内容。
在导言区引入宏包:\usepackage{comment}
\begin{comment}
这里是大段注释内容。
你可以注释多行文本或代码。
\end{comment}
特殊字符
以下字符有特殊用途,如 % 表示注释, $、^ 、_ 等用于排版数学公式,& 用于排版表格,等等。直接输入这些字符得不到对应的符号,还往往会出错:
# $ % & { } _ ^ ~ \
如果想要输入以上符号,需要使用以下带反斜线的形式输入,类似编程语言里的“转义”符号:
这些“转义”符号事实上是一些 \(\LaTeX{}\) 命令。其中 \^
和 \~
两个命令需要一个参数,加一对花括号的写法相当于提供了空的参数,否则它们可能会将后面的字符作为参数,形成重音效果。\\
被直接定义成了手动换行的命令,输入反斜线就需要用 \textbackslash
。
连字
西文排版中经常会出现连字(ligatures),常见的有 ff/fi/fl/ffi/ffl。
标点符号
中文的标点符号(绝大多数为非 ASCII 字符)使用中文输入法输入即可,一般不需要过多留意。而输入西文标点符号时,有不少地方需要留意。
引号
连字号和破折号
有三种长度的“横线”可用:连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash)。
它们分别有不同的用途:连字号 - 用来组成复合词;短破折号 -- 用来连接数字表示范围;长破折号 --- 用来连接单词,语义上类似中文的破折号。
省略号
提供了 \ldots
命令表示省略号,相对于直接输入三个点的方式更为合理。\dots
与 \ldots
命令等效。
拉丁文扩展与重音
支持用命令输入西欧语言中使用的各种拉丁文扩展字符,主要为带重音的字母:
更多可用的符号和重音见下表。
\(\LaTeX{}\) 标志
我们见到的所有错落有致的 \(\LaTeX{}\) 标志都是由以下命令输入的:
更多的 \(\LaTeX{}\) 标志可以使用 hologo
宏包提供的 \hologo
命令输入。
断行和断页
\(\LaTeX{}\) 将文字段落在合适的位置进行断行,尽可能做到每行的疏密程度匀称,单词间距不会过宽或过窄。文字段落和公式、图表等内容从上到下顺序排布,并在合适的位置断页,分割成匀称的页面。在绝大多数时候,我们无需自己操心断行和断页。但偶尔会遇到需要手工调整的地方。
单词间距
文字在单词间的“空格”处断行时,“空格”生成的间距随之舍去。可以使用字符 ~
输入一个不会断行的空格(高德纳称之为 tie,“带子”),通常用在英文人名、图表名称等上下文环境:
手动断行和断页
如果我们确实需要手动断行,可使用如下命令:
\\[⟨length⟩] \\*[⟨length⟩]
\newline
它们有两点区别:一是 \\
可以带可选参数\newline
不带可选参数;二是 \\
也在表格、公式等地方用于换行,而 \newline
只用于文本段落中。带星号的 \\
表示禁止在断行处分页。
断页的命令有两个:
\newpage
\clearpage
通常情况下两个命令都起到另起一页的作用,区别在于:第一,在双栏排版模式中 \newpage
起到另起一栏的作用,\clearpage
则能够另起一页;第二,在涉及浮动体的排版上行为不同。
有时候我们不满足于默认的断行和断页位置,需要进行微调,可以用以下命令告诉 \(\LaTeX{}\) 哪些地方适合断行或断页,哪些地方不适合:
\linebreak[⟨n⟩]
\nolinebreak[⟨n⟩]
\pagebreak[⟨n⟩]
\nopagebreak[⟨n⟩]
以上命令都带一个可选参数,用数字 n
代表适合/不适合的程度,取值范围为 0-4,不带可选参数时,缺省为4。
比如 \linebreak
或者 \linebreak[4]
意味着此处需要强行断行;\nopagebreak
或 \nopagebreak[4]
意味着禁止在此处断页。
以上命令适合给出优先考虑断行断页/禁止断行断页的位置,但不适合直接拿来断行或断页,使用 \cmd{newline} 或 \cmd{newpage} 等命令是更好的选择。因为 \newline
和 \newpage
会在断行/断页位置填充适当的间距,但 \linebreak
和 \pagebreak
不能,使用这些命令强行断行/断页可能会制造出糟糕的排版效果,并导致 \(\LaTeX{}\) 报 \(\texttt{Underfull \\hbox}\) 等警告。
断词
如果遇到了很长的英文单词,仅在单词之间的“空格”处断行无法生成疏密程度匀称的段落时,就会考虑从单词中间断开。对于绝大多数单词,\(\LaTeX{}\) 能够找到合适的断词位置,在断开的行尾加上连字符 -
。
如果一些单词没能自动断词,我们可以在单词内手动使用 \-
命令指定断词的位置:
参考文献
[1] Partl H, Hyna I, Schlegl E. 一份 (不太) 简短的 LATEX2ε 介绍[J]. 2024. https://github.com/CTeX-org/lshort-zh-cn
标签:02,LaTeX,字符,断行,断页,命令,排版 From: https://www.cnblogs.com/Invinc-Z/p/18673647