02_用LaTeX排版文字

02_用LATEX 排版文字

本文主体内容来自一份 (不太) 简短的 LATEX2ε 介绍

文字是排版的基础。本章主要介绍如何在 LATEX 中输入各种文字符号,包括标点符号、连字符、重音等,以及控制文字断行和断页的方式。本章简要介绍了在 LATEX 中排版中文的方法。随着 LATEX 和底层 TEX引擎的发展,旧方式(CCTCJK等)日渐退出舞台,xelatexlualatex 编译命令配合 ctex 宏包/文档类的方式成为当前的主流中文排版支持方式。

LATEX中的字符

空格和分段

空格键和 Tab 键输入的空白字符视为“空格”。连续的若干个空白字符视为一个空格。一行开头的空格忽略不计。行末的换行符视为一个空格;但连续两个换行符,也就是空行,会将文字分段。多个空行被视为一个空行。也可以在行末使用 \par命令分段。

image-20250114165512239

注释

  1. 用 % 字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,行末的换行符也不引入空格。

texstudio快捷键 Ctrl + T 快速注释/取消注释光标所在行。

  1. \iffalse\fi 是一个常用的方法,适合注释大段文字或代码。
\iffalse
这里是被注释掉的内容。
无论是文字、公式还是代码,都会被忽略。
\fi
  1. comment 宏包提供了方便的注释方式,可以直接注释任意内容。

在导言区引入宏包:\usepackage{comment}

\begin{comment}
这里是大段注释内容。
你可以注释多行文本或代码。
\end{comment}

特殊字符

以下字符有特殊用途,如 % 表示注释, $、^ 、_ 等用于排版数学公式,& 用于排版表格,等等。直接输入这些字符得不到对应的符号,还往往会出错:

# $ % & { } _ ^ ~ \

如果想要输入以上符号,需要使用以下带反斜线的形式输入,类似编程语言里的“转义”符号:

image-20250114170715995

这些“转义”符号事实上是一些 LATEX 命令。其中 \^\~两个命令需要一个参数,加一对花括号的写法相当于提供了空的参数,否则它们可能会将后面的字符作为参数,形成重音效果。\\被直接定义成了手动换行的命令,输入反斜线就需要用 \textbackslash

连字

西文排版中经常会出现连字(ligatures),常见的有 ff/fi/fl/ffi/ffl。

image-20250114171445216

标点符号

中文的标点符号(绝大多数为非 ASCII 字符)使用中文输入法输入即可,一般不需要过多留意。而输入西文标点符号时,有不少地方需要留意。

引号

image-20250114172016408

连字号和破折号

有三种长度的“横线”可用:连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash)。
它们分别有不同的用途:连字号 - 用来组成复合词;短破折号 -- 用来连接数字表示范围;长破折号 --- 用来连接单词,语义上类似中文的破折号。

image-20250114172526612

省略号

提供了 \ldots 命令表示省略号,相对于直接输入三个点的方式更为合理。\dots\ldots 命令等效。

image-20250114172739640

拉丁文扩展与重音

支持用命令输入西欧语言中使用的各种拉丁文扩展字符,主要为带重音的字母:

image-20250114173207428

更多可用的符号和重音见下表。

image-20250114173234392

LATEX 标志

我们见到的所有错落有致的 LATEX 标志都是由以下命令输入的:

image-20250114173523673

更多的 LATEX 标志可以使用 hologo 宏包提供的 \hologo 命令输入。

断行和断页

LATEX 将文字段落在合适的位置进行断行,尽可能做到每行的疏密程度匀称,单词间距不会过宽或过窄。文字段落和公式、图表等内容从上到下顺序排布,并在合适的位置断页,分割成匀称的页面。在绝大多数时候,我们无需自己操心断行和断页。但偶尔会遇到需要手工调整的地方。

单词间距

文字在单词间的“空格”处断行时,“空格”生成的间距随之舍去。可以使用字符 ~ 输入一个不会断行的空格(高德纳称之为 tie,“带子”),通常用在英文人名、图表名称等上下文环境:

image-20250114174307171

手动断行和断页

如果我们确实需要手动断行,可使用如下命令:

\\[⟨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 不能,使用这些命令强行断行/断页可能会制造出糟糕的排版效果,并导致 LATEXUnderfull \hbox 等警告。

断词

如果遇到了很长的英文单词,仅在单词之间的“空格”处断行无法生成疏密程度匀称的段落时,就会考虑从单词中间断开。对于绝大多数单词,LATEX 能够找到合适的断词位置,在断开的行尾加上连字符 -

如果一些单词没能自动断词,我们可以在单词内手动使用 \- 命令指定断词的位置:

image-20250114180103541

参考文献

[1] Partl H, Hyna I, Schlegl E. 一份 (不太) 简短的 LATEX2ε 介绍[J]. 2024. https://github.com/CTeX-org/lshort-zh-cn

posted @   Invinc-Z  阅读(149)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示