破坏源头的人物
如何在不换行的情况下输入百分比、美元、& 符号、下划线、大括号。
破坏源码的字符
LaTeX 保留了一些日常字符作为语法,在您想要的文字字符处键入一个字符要么会停止编译,要么会默默地破坏输出。每个保留字符都有一个转义符,整个集合可以放在一张小桌子上。
| 查尔 | 代码 |
|---|---|
| % | \% |
| $ | \$ |
| & | \& |
| # | \# |
| _ | \_ |
| { } | \{ \} |
| 〜 | \textasciitilde |
| \ | \textbackslash |
角色未转义的行为
% 开始注释,因此从它到行尾的所有内容都将被丢弃。这是常见的“我的句子消失了”错误:在报告中写入 50%,而该行的其余部分消失了,根本没有错误。 $ 切换数学模式,因此一个流浪者会默默地使文本变成斜体,或者引发远离拼写错误的错误。 & 是表格和 align 块中的对齐选项卡;在它们之外,它会失败并显示“对齐选项卡错位”。 ‘#’标记宏参数。 _ 和 ^ 属于数学模式,在文本中它们会引发“插入了 Missing $”,这有它自己的教训。 ~ 是一个不间断的空格,因此在 URL 或路径中键入的波形符会悄悄地变成空格。 \ 开始每个命令,这就是它无法转义自身的原因:\\ 是换行符,文字字符需要 \textbackslash。
实践中的逃逸
对于前六个字符,转义是反斜杠前缀,它在其他命令中的作用相同:
The run reached 87\% accuracy; results are in\texttt{results\_v2.csv}, and the job cost \$40.请注意,即使在 \texttt 内,下划线也需要转义。两个命令式转义符“\textasciitilde”和“\textbackslash”后面应跟“{}”或在接下来出现字母时加一个空格,这样命令名称就不会吞没后面的单词。
对于整个代码块、路径或 URL,请完全跳过转义。 \verb|...| 和 verbatim 环境完全按照键入的方式打印其内容,每个特殊字符都被解除,并且 url 包的 \url{...} 处理带有波浪号的链接。
最痛苦的角色是那些默默失败的角色,而“%”在该列表中名列前茅。粘贴文本是常见的罪魁祸首:URL、shell 命令和财务数据都带有保留字符。当 PDF 中缺少一个句子时,请在源代码的该行中搜索空的“%”,然后再搜索其他内容。