LaTeX/常见问题解答
LaTeX 的默认边距可能看起来太大。在大多数情况下,这是首选的默认值,并且可以提高可读性。
如果您仍然不同意,您可以轻松地使用以下方法更改它们
\usepackage{geometry}
% or
\usepackage[margin=1.5in]{geometry}
|
请参见 页面布局。
太多一行或两行的段落看起来不太好。
请记住 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 can also be written résumé.
|
这需要
- 您的文本编辑器支持并设置为以 UTF-8 保存您的文件;
- 在序言中添加
\usepackage[utf8]{inputenc}
行。
避免使用 latin1。请参见 特殊字符。
在您的序言中添加以下几行
\usepackage[utf8]{inputenc}
\usepackage{marvosym}
\DeclareUnicodeCharacter{20AC}{\EUR{}}
|
有些人不喜欢 \paragraph{...}
将标题与内容写在同一行的方式。这实际上在很多文档中都很常见,并没有看起来那么奇怪。
但是,有一些方法可以绕过默认行为;请参见 \paragraph 换行符 了解更多信息。
您一定是使用 OT1 编码(默认编码)的变音符号(例如重音)。切换到 T1 编码
\usepackage[T1]{fontenc}
|
如果您在更改字体编码后遇到难看的锯齿字体,那么您没有可用的 Type1 兼容字体。安装 Computer Modern Super 或 Latin Modern(软件包名称可能是 lm)。要使用 Latin Modern,您需要包含软件包
\usepackage{lmodern}
|
请参见 字体 以获取解释。
您确实应该避免手动换行和分页。TeX 引擎负责这些。手动格式化的一大问题是它不是动态的。即使它第一次看起来很正确,如果您在手动格式化之前更改了任何内容,内容很可能最终会呈现得很糟糕。
建议在文档的分节最高层级(例如,部分或章节)中使用分页符(尽管当您开始一个新的部分或章节时,LaTeX 通常会为您执行此操作)。当您手动插入分页符时,您应该使用 \clearpage
或 \cleardoublepage
,这将打印当前浮动图片,然后开始一个新页面。
如果您绝对必须手动插入换行符或分页符,您应该在确保完成文档后执行此操作,这样以后您就不必再回来更新它了。
TeX 有一条不直观的规则:如果控制序列(命令)后面没有一对花括号(无论中间是否有参数),那么后面的空格字符将被忽略。LaTeX 不会打印任何空格,并且命令(例如 TeX 或 LaTeX 的徽标)会与后面的单词连在一起。
要解决这个问题,请在命令后面使用一对花括号,即使没有参数。例如
\LaTeX is great. % BAD !
\LaTeX{} is great. % GOOD !
|
(技术解释:控制序列名称只能由字符码为 11 的字符组成,默认情况下即为 A-Z 和 a-z。TeX 通过反斜杠知道控制序列名称的起始位置,并在遇到第一个非字符码为 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{...}
将在其他斜体文本中以常规字体正确打印强调的文本。
习惯使用 Microsoft Word 或 LibreOffice 等所见即所得文字处理软件的用户经常会对图形感到沮丧。答案很简单:图形不是图片!
如果您使用 \includegraphics
而不将其包含在 figure 环境中,它将与文字处理软件中的行为相同,将图片放置在源代码中放置图片的位置。
图形是一种浮动对象,它是一种虚拟对象,LaTeX 可以将其放置在与创建位置不同的位置,这有助于防止文本因图片和表格而变得杂乱。
有关更多详细信息,请参阅导入图形和浮动对象、图形和标题。
您很可能在某个时候使用了 \raggedleft
、\raggedright
或 \centering
,并忘记将其关闭。这些命令是开关——它们一直处于活动状态,直到作用域结束,或者如果没有作用域,则直到文档结束。有关更多信息,请参阅段落对齐。
LaTeX 会为您做一些工作,但不是所有工作。特别是关于标点符号,您可以随意做您想做的事情。每种语言的标点符号规则都不同。在英语中,标点符号之前没有空格,之后有一个空格。
有很多规则,但您可以快速查看维基百科。
这是 Babel 的一个限制。删除.aux文件(或清理项目),然后尝试再次编译。
如今,使用搜索引擎和复制粘贴网页内容来“学习”非常普遍。与任何编程语言一样,这通常是一种不好的方法,会导致缺乏控制、意外结果以及很多沮丧。真正学习 LaTeX 并不难,而且也不需要很长时间。本书中的大多数章节都专门针对特定的用法,因此基础知识实际上很快就能学会。
如果您对某个特定软件包感到沮丧,请确保阅读其官方文档,这通常是最好的信息来源。在网上找到的内容,即使在这本书中,也不如官方文档那么准确。不准确的信息可能会导致错误,而您却不知道原因。
您花在学习上的时间是值得的,并且它很快就会弥补您如果没有正确学习而一直卡住而损失的时间。
这个有用的功能大多数新手都了解,尽管它在大多数所见即所得文字处理软件上都可用。两个标记(例如单词、标点符号)之间的不间断空格可以防止处理器在它们之间插入换行符。这对一致阅读非常重要。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...
|
请注意,这与通常的文本括号不同。
A sentence. ($A$, $B$, and $C$ are not concerned, but we do not mean the $(A, B, C)$ family.)
|
光栅(位图)图形缩放效果很差,并且经常会产生锯齿或低质量的结果,与文档质量冲突,特别是在打印时。
使用矢量(线型)图形代替,无论是通过 LaTeX 的原生绘图工具还是通过从您的绘图或图表工具导出矢量格式,都将产生更高质量的结果。在可能的情况下,您应该优先考虑 PDF、EPS 或 SVG 图形而不是 PNG 或 JPG。
尝试使用默认的 tabular 环境拉伸表格,通常会导致意外结果。不错的 tabu 软件包将实现您想要的功能,甚至更多。或者,如果您无法使用 tabu 软件包,您可以尝试 tabularx 或 tabulary 软件包。参阅表格。
即使表格章节相当长,也值得一读。最终,你只需要了解你选择的环境的一些知识。
一些 LaTeX 编辑器具有表格助手功能。此外,许多电子表格应用程序具有 LaTeX 导出功能(或插件)。同样,有关更多详细信息,请参阅表格。
LaTeX 有时写起来很麻烦,特别是如果你没有使用合适的编辑器。请参阅编辑器以了解一些有趣的选项。
你可以定义别名以缩短一些命令。
\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}
|
安装 文章详细介绍了如何在 100 MB 以内手动安装一个功能齐全的 TeX 环境,包括 LaTeX 和其他功能。