页边距太宽
LaTeX 的默认页边距可能看起来太宽。在大多数情况下,这是一个首选的默认设置,有助于提高可读性。

如果你仍然不满意,你可以通过以下方式轻松调整它们:

\usepackage{geometry}
% 或者
\usepackage[margin=1.5in]{geometry}

有关页面布局的更多息,请参见 Page Layout

避免在源代码中使用过多的双行断开
太多的单行或双行段落看起来并不好。

记住 TeX 的规则:

  • 如果发现两个或更多连续的换行,TeX 会开始一个新段落。

  • 如果只发现一个换行,TeX 会在前后没有空格的地方插入空格。

你可能会想通过经常插入空行来提高源代码的可读性,但这会影响排版。解决方案很简单:在空行的开头加上注释。这样可以防止 TeX 识别为另一个换行——直到下一个换行符前的所有字符,包括注释所在的行,都会被忽略。

示例:

We are in the first paragraph here.
%
We are still in the first paragraph.

This time, this is another paragraph.

简化特殊字符输入
只要你的计算环境支持 UTF-8,你可以直接输入特殊字符,而不需要输入 TeX 命令来表示附加符号和其他扩展字符。例如:

  • R\'esum\'e 可以写作 résumé

这要求:

  • 你的文本编辑器支持并设置为以 UTF-8 格式保存文件;

  • 在导言区添加 \usepackage[utf8]{inputenc} 行。

避免使用 latin1 编码。更多关于特殊字符的内容,请参见 Special Characters

直接写入欧元符号
在导言区添加以下内容:

\usepackage[utf8]{inputenc}
\usepackage{marvosym}
\DeclareUnicodeCharacter{20AC}{\EUR{}}

LaTeX 段落标题与内容在同一行
有些人不喜欢 \paragraph{...} 这种将标题和内容写在同一行的方式。事实上,这在许多文档中是非常常见的,并不像一开始看起来那么奇怪。

然而,确实有办法绕过默认行为;详情请参见 \paragraph line break

字体难看/锯齿/位图或 PDF 搜索失败,复制/粘贴从 PDF 中的内容很乱
你可能正在使用带有 OT1 编码(默认)的变音符号(例如重音符号)。切换到 T1 编码:

\usepackage[T1]{fontenc}

如果在更改字体编码后字体仍然难看、锯齿状,那么你可能没有可用的 Type1 兼容字体安装 Computer Modern Super 或 Latin Modern(包名可能是 lm)。要使用 Latin Modern,需要包含以下包:

\usepackage{lmodern}

有关字体的解释,请参见 Fonts

手动排版:使用换行符和分页符
你应该避免手动插入换行符和分页符。TeX 引擎负责这些操作。手动排版的最大问题是它不是动态的。即使第一次看起来合适,如果你在手动排版之前修改了任何内容,内容很可能会渲染得很糟糕。

唯一推荐手动插入分页符的位置是文档的高级章节,例如部分或章节(尽管当你开始新的部分或章节时,LaTeX 通常会为你处理这一点)。当你手动插入分页符时,应该使用 \clearpage\cleardoublepage,这样可以在开始新的一页之前打印当前悬浮的图形。

如果你确实需要手动插入换行符或分页符,应该在确认文档已完成之后再进行操作,这样以后就不必回来更新它。

总是使用{}结束命令
LaTeX 有一个不太直观的规则,如果控制序列(命令)后面没有一对花括号(无论其中是否有参数),那么后面的空格字符会被忽略。LaTeX 不会打印空格,命令(比如 TeX 或 LaTeX 的标志)会和后面的单词连在一起。

为了解决这个问题,即使没有参数,也要在命令后加一对花括号。示例如下:

\LaTeX is great. % 错误!
\LaTeX{} is great. % 正确!

(技术解释:控制序列名称只能由 catcode 为 11 的字符组成,即默认情况下的 A-Z 和 a-z。TeX 通过反斜杠知道控制序列名称的开始,并且在遇到第一个非 catcode 11 的标记时知道控制序列名称的结束。这个字符会被跳过。由于连续空格被合并为一个单独的空格,因此不会计算空格。)

可以通过使用 xspace 包定义宏,动态地插入空格。

如果命令后没有花括号并且有空格,额外的空格将会被附加。如果有花括号,则不会打印额外的空格。

示例:

\usepackage{xspace}
\let\latexold\LaTeX
\renewcommand{\LaTeX}{\textrm{\latexold}\xspace}
...
\LaTeX is followed by a space.
\LaTeX{} is followed by a space.
\LaTeX{}is not followed by a space.

避免使用粗体和下划线
从排版的角度来看,通常不建议在段落中间使用粗体或下划线格式。这已成为传统文字处理软件用户的常见习惯,因为这两种功能非常容易访问(与斜体一起)。

然而,粗体和下划线往往会使文本过于突出,分散读者的注意力。当你开始阅读一个包含粗体词语的段落时,通常会首先读到强调的部分,从而破坏了内容的顺序和思路的组织。斜体不那么显眼,也不会比普通字符更具重量,因此通常更适合用来强调少量文本。

粗体和下划线的原始和更合适的用法是用于特殊部分,如标题、目录、词汇表等(事实上,在专业环境中,几乎不使用下划线)。

LaTeX 有一个宏 \emph{...} 用于使用斜体强调文本。它应该优先于 \textit{...},因为 \emph{...} 可以正确地在其他斜体文本中打印强调文本,且使用常规字体

正确使用图形
习惯于使用 WYSIWYG 文档处理器(如 Microsoft Word 或 LibreOffice)的用户常常在插入图形时感到沮丧。答案很简单:图形不是图片

如果你使用 \includegraphics 而没有将其包含在 figure 环境中,它会像在文字处理软件中一样,将图片直接放置在源代码中指定的位置。

图形是浮动对象的一种,浮动对象是 LaTeX 可以放置在其他位置的虚拟对象,而不是创建它的确切位置,这有助于防止文本中堆积图片表格

请参见 Importing Graphics and Floats, Figures and Captions 了解更多细节。

文本停止对齐
你很可能曾经使用过 \raggedleft\raggedright\centering 并忘记关闭它们。这些命令是开关——它们会保持活动状态直到作用域结束,或者如果没有作用域则直到文档结束。有关更多息,请参见 Paragraph Alignment

标点符号和空格的规则
LaTeX 会为你做一些工作,但不是所有事情。尤其是在标点符号方面,你可以自由地按照自己的方式操作。标点规则对于每种语言是不同的。在英语中,标点符号前没有空格,后面有一个空格。

有许多规则,你可以快速查看 Wikipedia 获取相关息。

Babel 语言更改后编译失败
这是 Babel 的一个限制。删除 .aux 文件(或清理项目),然后重新尝试编译。

快速或正确学习 LaTeX
如今,通过搜索引擎在网上“学习”并复制粘贴各种内容变得非常普遍。像每种编程语言一样,这通常是一个糟糕的方法,导致缺乏控制、意外结果以及很多沮丧。真正学习 LaTeX 并不难,且不需要花费太多时间。本书的大部分章节专注于特定的用法,因此基础部分实际上很快就能掌握。

如果你在特定包的使用上感到沮丧,请确保阅读它的官方文档,通常这是最好的息来源。在网络上找到的内容,即使是在本书中,也很少能和官方文档一样准确。不准确的息可能会导致错误,而你却不明白为什么。

你花的学习时间是值得的,且很快就能弥补如果不正确学习而不断被卡住的时间。

非断行空格
这个有用的功能对于大多数新手来说是陌生的,尽管它在大多数 WYSIWYG 文档处理器中都可用。两个标记(如单词、标点符号)之间的非断行空格可以防止处理器在它们之间插入换行符。它对一致的阅读非常重要。LaTeX 使用 ~ 符号作为非断行空格。

通常,你会在某些语言中的标点符号之间、单位和货币符号、首字母缩写等使用非断行空格。

例如,在法语排版中,所有由两个部分组成的标点符号前面需要加一个非断行空格。示例:

Il répondit~: «~Ce pain coûte-t-il 2~€~?~»

请注意,以这种方式书写法语可能会非常麻烦。幸运的是,Babel 使用 frenchb 选项可以为所有标点符号处理非断行空格。在上述示例中,只有欧元符号的非断行空格需要保留。

智能数学公式
所有由字母、变量或其他符号表示的虚拟对象都应该使用专门的格式。对于数学和许多其他领域,LaTeX 的数学排版是完美的。例如,如果你想引用对象 A,请写:

Speaking of $A$, let's say...

如果你想在一句话中提到多个对象,也是一样的:

Speaking of $A$, $B$ and $C$...

如果你引用一组对象,你仍然可以使用数学符号:

The family $(A, B, C)$ is...

请注意,这与常规文本中的圆括号是不同的。

使用矢量图形而非栅格图像
栅格(位图)图形在放大时表现不佳,且常常会产生锯齿状或低质量的结果,特别是在打印时,容易与文档的质量相冲突。

相反,使用矢量(线条导向)图形,无论是通过 LaTeX 的原生图形工具,还是通过从绘图或制图工具中导出矢量格式,将能产生更高质量的结果。尽可能的话,应该优先选择 PDF、EPS 或 SVG 图形,而不是 PNG 或 JPG。

拉伸表格
尝试使用默认的 tabular 环境来拉伸表格通常会导致意外的结果。美观的 tabu 包可以满足你的需求,并提供更多功能。或者,如果不能使用 tabu 包,你可以尝试 tabularxtabulary 包。有关表格的更多息,请参见 Tables

表格比你想象的要简单
尽管表格章节相当长,但它值得阅读。最终,你只需要了解关于你选择的环境的一些内容。

一些 LaTeX 编辑器提供了表格助手。另外,许多电子表格应用程序有 LaTeX 导出功能(或插件)。有关更多息,请参见 Tables

简化繁琐的代码(列表和长命令名)
LaTeX 有时会显得繁琐,尤其是在你没有使用合适编辑器时。请参见 Editors 以了解一些有趣的选择。

你可以定义别名来简化某些命令:

\usepackage{xspace}
\newcommand{\tss}[1]{\textsuperscript{#1}}
\newcommand{\tbs}[1]{\textbackslash\xspace}

这里,xspace 包非常有用,可以避免丢失空格。

对于列表,你可以尝试 easylist 包。现在写一个列表和以往一样简单:

\usepackage[ampersand]{easylist}
% ...

\begin{easylist}
& Item 1
& Item 2
&& Subitem 1
&&& Subsubitem 1
& Item 3
&& Subitem 1
\end{easylist}

减少 LaTeX 安装的大小
Installation 文章详细介绍了如何手动安装一个功能齐全的 TeX 环境,包括 LaTeX 和其他功能,安装大小不超过 100 MB。


Last modified: Wednesday, 23 April 2025, 12:43 PM