字斟句酌
字母到单词
下面看看特殊字符的使用
\documentclass{article}%\usepackage{ctex} 不要同时使用这个包,否则会出错误,我也不知道为什么\usepackage [greek,english]{babel}\begin{document} \textgreek{abcde}\end{document}
\(\LaTeX\)在排版中会将单词中的一些字母连写为一个符号,即连字(ligature)。连字的有无和多少一般是由使用的字体决定的,在默认的Computer Modern或Latin Modern字体中,小写字母组合ff,fi,fl,ffi,ffl都有连字:
differ find flight difficlut ruffle
偶尔出于意义或美观的考虑,需要取消连字。此时可以使用空的分组,或借用\/命令
dif\/fer f\/ind
我试验了一下,发现空的分组没有什么效果,所以自己以后还是不要用空的分组。
\,命令产生很小的间距,注意\(\LaTeX\)并不会忽略以符号命名的宏前后的空格,所以在它前后都不要加多余的空格。
标点符号
除了在数学模式中表示减号,符号-在\(\LaTeX\)正文中也有多种用途:单独使用时它是连字符(hyphen);两个连用(--),是en dash,用来表示数字范围;三个连用(---),是em dash,即破折号
------
西文的省略号(ellipsis)使用\ldots或\dots命令产生,相比直接输入三个句号,它所略微拉开的间距要合理得多:
Good: One, two, three\ldots Bad: One, two, three...
\ldots与\dots命令在正文中是等价的,它们会在每个点后面增加一个小的间距,因而直接在\ldots后面再加逗号、句号、叹号等标点,也能得到正确的间距。
标准键盘上不能直接录入的标点符号有10个,它们占据了主键盘上面一排的一大半:
~ # $ % ^ & { } _ \
它们都有特殊作用,其中的许多我们已经熟知:数学模式符号$、注释符%、上标^、分组{}、宏命令。剩下的符号中,~是带子,#用在宏定义中,&用于表格对齐,而_表示数学模式的下标,要在正文中使用这些符号,大部分是在前面加,只有个别例外:
\# \quad \$ \quad \% \quad \& \quad \{ \quad \} \quad \_ \quad \textbackslash
文本中的空格起分隔单词的作用,任意多个空格与一个空格的功能相同;只有字符后面的空格是有效的,每行最前面的空格则被忽略,这样有利于复杂代码的对齐;单个换行也被看做是一个空格。
This is a shortsentence. This is another.
以字母命名的宏,后面空格会被忽略。如果需要在命令后面使用空格,可以使用 ,它表示两个普通单词间的空格距离;也可以在命令后加一个空的分组{},有时也可以把命令用一个分组包裹起来:
Happy \TeX ing. Happy \TeX\ ing. Happy \TeX{} ing. Happy \TeX ing.
西文的逗号、句号、分号等标点后面应该加空格,这不仅能保证正确的间距,也能保证正确的换行。这是因为标点后如果没有空格,就不能换行。\(\LaTeX\)在西文句末(包括句号.问号?和叹号!)后面使用的距离会比单词间的距离大些,这在上面的例子中已经可以看到。更确切地说,\(\LaTeX\)把大写字母后的点看做是缩写标记,把小写字母后的点看做是句子结束,并对它们使用不同的间距;但偶尔也有大写字母结束的句子,或小写字母的缩写,这时就必须明确告诉\(\LaTeX\)使用普通单词间的空格 ,或用@.指明.是大写字母后的句末。
有时也需要整体禁止这种在标点后的不同的间距,法语排版的习惯就是如此。此时可以使用\frenchspacing命令来禁止标点后的额外间距。
汉字后的空格会被忽略。使用xelatex编译中文文档时,汉字和其他内容之间如果没有空格,xeCJK宏包会自动添加。还有时需要完全禁用汉字与其他内容之间的空格(例如在本书所有\(\LaTeX\)代码中),这时可以使用\CJKsetecglue手工设置汉字与其他内容之间的内容为空(默认是一个空格):
\CJKsetecglue{}
在空格之中,最神奇的一种可能就是被称为幻影(phantom)的空格。幻影命令\phantom有一个参数,作用是产生与参数内容一样大小的空盒子,没有内容,就像是参数的一个幻影一样。偶尔可以使用幻影完成一些特殊的占位和对齐效果:
幻影\phantom{参数}速速隐形 幻影参数速速显形
空行,即用连续两个换行表示分段,段与段之间会自动得到合适的缩进。任意多个空行与一个空行的效果相同。分段也可以用\par命令生成,这种用法一般只在命令或环境定义的内部使用,而普通行文中不宜出现。与连续的空行类似,连续的\par命令也只产生一次分段效果。除了分段,也可以让\(\LaTeX\)直接另起一行,并不分段。有两种相关的命令:\\命令直接另起一行,上一行保持原来的样子;而\linebreak则指定一行的断点,上一行仍按完整一行散开对齐:
这是一行文字\\另一行 这是一行文字\linebreak 另一行
\\命令可以带一个可选的长度参数,表示换行后增加的额外垂直间距。如\\[2cm]。因此必须注意在命令\\后面如果确实需要使用方括号(即使括号在下),则应该在\\后面加空的分组以示分隔,否则会发生错误,这种情况在数学公式中非常常见:
\usepackage{amsmath}\begin{align*} [2 - (3+5)]\times 7 &= 42 \\{} [2 + (3-5)]\times7 &= 0\end{align*}