Typesmith

特殊字符与注释

% $ & # _ { } ~ ^ \ —— 每个字符都有自己的脾气

入门约 15 分钟

十个「身怀绝技」的保留字符

在 LaTeX 里,有一批字符不能直接当作普通文字使用,它们各自带着排版任务。这批保留字符是:# $ % & _ { } ~ ^ \\。你只要直接敲它们,轻则输出变形,重则编译报错。

要输出它们的字面形式,需要在前面加一个反斜杠转义:\\% 输出 %、\\& 输出 &、\\# 输出 #、\\_ 输出 _、\\$ 输出 $、\\{ 输出 {、\\} 输出 }。

至于 ^ 和 \\,它们没有「一个反斜杠搞定」的写法,需要用命令 \textasciicircum{} 和 \textbackslash{} 输出——这一点非常反直觉,但初学者写代码文档时一定会遇到。

转义:把特殊字符当普通文字打出来
pdfLaTeX
编辑器加载中…
引擎:pdfLaTeX

点击「编译运行」生成真实 PDF

注意 \_ 和 \&:下划线与 & 在文字里必须转义。特别是下划线,很多初学者写文件名或变量名时直接打 _,结果直接编译失败。

注释:% 的第二重身份

% 除了要转义才能输出,它本身还是注释符:从 % 开始到本行结束的所有内容都会被编译器忽略,不会出现在 PDF 里。

注释有三个常见用法。其一,写备注:在代码旁边记下「这段在干嘛」,方便日后回看。其二,临时禁用:把暂时不想编译的一行前面加 %,比删掉更安全。其三,吃掉换行:如果 % 刚好放在行尾,它连同那个换行一起消失,可以防止不该出现的空格。

注意:注释只作用于同一行。下一行如果不加 %,依然会被正常编译。

注释的三种用法
pdfLaTeX
编辑器加载中…
引擎:pdfLaTeX

点击「编译运行」生成真实 PDF

把 % 放在行尾时,它连同这一行的换行符一起被吃掉,所以上一行与下一行会紧贴在一起。这个特性在拼接长字符串时很有用。

排版的细节:不换行空格、连字符与引号

~ 是不换行空格(也叫硬空格)。它输出一个和普通空格一样宽的空格,但禁止在这里断行。写 Section~1 就能保证「Section」和「1」永远待在同一行,不会一个在行尾一个在行首。

短横线有三种写法,长短和含义都不同:一个 - 是普通连字符(如 well-known);两个 -- 是半角破折号,表示数字范围或连接(如 1--10);三个 --- 是全角破折号(如 --- 引出解释)。

引号不能直接打英文双引号。LaTeX 用连续两个反引号 `` 开始、连续两个单引号 '' 结束,排版出来才是标准的中文引号效果「」。

不换行空格、破折号与引号
pdfLaTeX
编辑器加载中…
引擎:pdfLaTeX

点击「编译运行」生成真实 PDF

把窗口拖窄,观察 Section~1 是否被拆行;再对比 1--10 与 1-10 的横线长度差异。排版细节就在这里。

练习:修复一段报错的文字
pdfLaTeX

下面的文档直接编译会报错,因为正文里全是未转义的保留字符。把 50%、&、#1、_of_users 都正确转义,让句子原样输出。

编辑器加载中…

检查点(实时)

  • 百分号要写成 \%
  • 与符号要写成 \&
  • 井号要写成 \#
  • 下划线要写成 \_

🎯 目标效果

50% & #1_of_users say LaTeX is powerful.

引擎:pdfLaTeX

点击「编译运行」生成真实 PDF

练习:进阶:排一段规范的英文
pdfLaTeX

排一句话,要求同时用到:一个不换行空格 ~、一个表示范围的 -- 破折号、一对 `` '' 引号,以及至少一次 \% 转义。

编辑器加载中…

检查点(实时)

  • 使用不换行空格 ~
  • 用 `` 和 '' 写一对英文引号
  • 使用半角破折号 --
  • 至少转义一次 \%

🎯 目标效果

See Section 2, pages 3–8. He said “99% done” today.

引擎:pdfLaTeX

点击「编译运行」生成真实 PDF

完成所有练习的检查点会自动记录