跳至内容
Topos Uranos

摘要

本课结束本课程的第二单元,即文本单元。它重建从段落及其符号通往脚注、引文和诗句的约定与操作之链,在每一环指出用到哪条原理、它在哪一课中确立;把已取得的成果放回课程计划中去衡量,并指明哪些只是略作预告的问题留给后面的单元;在结业测验中重复入门测验的各项技能;最后给出六道挑战题,难度高于各课的习题,要求综合几课的内容:诊断排版不当的文本,预测多语言文档的结果,以及根据描述规划文档。

学习目标

  1. 重建本单元各项约定与操作的顺序,指出每一项所依靠的原理。
  2. 说明所声明的语言、字体、逻辑标记以及引擎在每个段落结束时所作的决定之间的关系。
  3. 区分本单元已经确立的内容与只作了预告、将由后面单元展开的内容。
  4. 诊断能够编译却排版不当的文本,区分日志会提示的问题与只有阅读才能发现的问题。
  5. 根据描述,规划一份含有多种语言、脚注和引文的文档的导言区和正文。

本单元的收获

本单元的目标是从一份能够编译的文档,走到一篇按照排版规范和各语言约定排好的文本。这一目标的实现依靠导言所认定的前一单元的已知内容:引擎读取源文件的规则、声明的作用范围、内容与形式的分离、使用 Unicode 的 LuaLaTeX,以及编译的遍数。因此,走过的路可以读作一条分为四段的链。

段落、空格与符号

关于段落、空格与符号的一课区分了段落与断行:段落由空行或 \par 开始,断行则不开始新段落;并确立了段落的形式和段间的垂直距离由文档类决定。它按功能区分了空格:可伸缩、允许断行的空格,禁止断行的波浪号,以及分隔数位的细空格;并说明中文句末用全角句号,其后不加空格,句点后加大空格的问题只出现在西文段落中,luatexja 不改变这一设置。它区分了连字符、短破折号、长破折号和减号,并说明中文的破折号和连接号直接输入全角字符;用手工或 \enquote 排出多层引号(csquotes 没有中文样式,需要自己定义),以及省略号;还说明中文文档不受 babel 对数字的处理影响:公式中的逗号用花括号保护,百分号紧接数字。

语言与字体

关于语言与字体的一课解释了所声明的语言决定什么:断词、名称、日期以及某些键盘简写;中文本身的排版规则则由 luatexja 负责。它按所改变的内容区分了切换语言的三种方式,并把它们用于希腊语和拉丁语,还说明了在中文文档中希腊字母需要用 jacharrange 交还给西文字体。它介绍了三种字体族、为每种语言指定字体的 \babelfont,以及最有用的 OpenType 特性;并教人检查不缺任何字符和字形,在文档需要在其他计算机上编译时优先使用 TeX Live 自带的字体。

有意义的格式

关于有意义的格式的一课把内容与形式的分离贯彻到文本的细节。它区分了逻辑标记与视觉标记;研究了强调(嵌套时会反转,而汉字没有斜体,中文的强调一般用加粗或着重号)、字体的三个属性及其带参数的命令形式和声明形式,以及只以声明形式存在的字号。它确立了一个段落的行距和对齐方式在段落结束时才决定,由此可知,改变其中之一的编组必须包含段落的结尾。它建议定义表示功能的命令,介绍了用 enumitem 排列表和对齐方式,最后讲了不宜做的事。

注释、引文与诗句

关于注释、引文与诗句的一课排出了学术文本的附件:脚注(按本课采用的惯例,注码放在标点之前)、注码与注文分开以及标题中的脚注;用 \enquote 的行内引文,以及用 quote、quotation 和 \blockquote 的独立引文;题词;verse 环境中的诗句;以及用 lineno 给行编号,它的引用与所有引用一样需要编译两遍。

下图把四段汇成一条链。中间一列的每个节点是一项约定或一种操作,按彼此依赖的顺序编号,并用弧线连到它所用到的前面的环节;四周浮动的是支撑,即这条链一再求助的原理,每个支撑用实线连到依靠它的环节,用虚线连到确立它的环节,在前一单元中确立的支撑则画成圆环。点击一个支撑,会突出显示所有用到它的环节;每个环节都链接到讲解它的那一课。

链的支柱

  • A读取源文件. 多个空格等于一个,一次换行等于一个空格,空行结束段落;控制词吞掉其后的空格。在前一单元中确立。 本单元中不加证明而采用。
  • B声明的作用范围. 声明一直作用到包含它的编组结束,其后的花括号并不限制它。在前一单元中确立。 本单元中不加证明而采用。
  • C内容与形式. 作者声明每样东西是什么,在别处作出的决定确定它的外观。在前一单元中确立。 本单元中不加证明而采用。
  • DUnicode 与字体. LuaLaTeX 以 Unicode 读取源文件,字体中没有的字符在 PDF 中缺失,日志会发出警告。在前一单元中确立。 本单元中不加证明而采用。
  • E编译遍数. 引用在一遍编译中写入辅助文件,在下一遍中使用。在前一单元中确立。 本单元中不加证明而采用。
  • F语言决定. 用 babel 声明的语言决定断词、名称、日期和某些简写;中文的断行、标点挤压和中西文间距则由 luatexja 决定。 确立于: 8. 语言决定什么.
  • G段落结束时. 一个段落的行距和对齐方式在段落结束时,按当时有效的值决定。 确立于: 18. 字号.
  1. 第 1 段 段落、空格与符号

    • 用空行分隔段落,把断行留给以行为单位的场合。
    • 在普通空格、波浪号、细空格和不加空格之间作出选择。
    • 在适当的位置写出连字符、短破折号、长破折号和减号。
    • 排出多层引号、省略号和数字。
    1. 段落与断行. 空行和 \par 结束段落,段落的形式由文档类决定;断行只结束一行,下一行没有缩进,也不受保护。

      依据: A (读取源文件). 证明于: 段落、空格与符号.

    2. 垂直间距. 弹性跳跃和 \vspace 在块与块之间增加间距,在页首会被删去;应当节制使用,因为段间距离由文档类决定。

      使用: 1. 段落与断行. 依据: C (内容与形式). 证明于: 段落、空格与符号.

    3. 波浪号与细空格. 波浪号是不允许断行的普通空格;细空格窄、固定且不可断开,用来分隔数位。

      依据: A (读取源文件). 证明于: 段落、空格与符号.

    4. 句点后的空格. LaTeX 在它认为结束句子的西文句点后加大空格;中文句末用全角句号,不受影响,西文段落要统一空格则写 \frenchspacing。

      使用: 3. 波浪号与细空格. 依据: A (读取源文件). 证明于: 段落、空格与符号.

    5. 连字符与破折号. 西文中连字符连接复合词,两个连字符得到范围用的短破折号,三个得到插入语用的长破折号;中文的破折号和连接号直接输入全角字符;减号只存在于公式中。

      依据: D (Unicode 与字体). 证明于: 段落、空格与符号.

    6. 引号与省略号. 中文分层使用双引号和单引号,\enquote 在定义中文样式后选择并闭合它们;省略号是一个符号,中文写作两个。

      依据: D (Unicode 与字体), C (内容与形式). 证明于: 段落、空格与符号.

    7. 小数与百分数. 公式中的逗号是标点,要用花括号保护;数位用千分撇或细空格分节,百分号紧接数字。

      使用: 3. 波浪号与细空格. 依据: A (读取源文件). 证明于: 段落、空格与符号.

  2. 第 2 段 语言与字体

    • 声明主语言和次要语言,并说明每一种决定什么。
    • 在 \foreignlanguage、otherlanguage 和 \selectlanguage 之间作出选择。
    • 按各自的规则、用合适的字体排出希腊语和拉丁语。
    • 指定字体和特性,检查不缺任何东西,优先使用可移植的字体。
    1. 语言决定什么. babel 按语言应用断词模式、名称、日期和简写;主语言是列表中的最后一种,或用 \babelprovide 的键 main 指定的那一种。

      使用: 4. 句点后的空格, 6. 引号与省略号, 7. 小数与百分数. 证明于: 语言与字体.

    2. 切换语言. \foreignlanguage 改变一小段文字的断词和简写;otherlanguage 还改变日期和名称,并会结束;\selectlanguage 从此处起改变一切。

      使用: 8. 语言决定什么. 依据: F (语言决定), B (声明的作用范围). 证明于: 语言与字体.

    3. 希腊语与拉丁语. 拉丁语是 babel 的一个选项;古希腊语用 \babelprovide 声明,需要含多调号希腊字母的字体,在中文文档中还要用 jacharrange 把希腊字母交还给西文字体。

      使用: 9. 切换语言. 依据: F (语言决定), D (Unicode 与字体). 证明于: 语言与字体.

    4. 字体族与 fontspec. 主字体、无衬线字体和等宽字体按名称指定,特性写在方括号中。

      依据: D (Unicode 与字体). 证明于: 语言与字体.

    5. 每种语言一种字体. 在方括号中写上语言后,\babelfont 指定的字体只作用于标记为该语言的内容。

      使用: 11. 字体族与 fontspec, 9. 切换语言. 依据: F (语言决定). 证明于: 语言与字体.

    6. OpenType 特性. 旧式或齐线数字、比例或等宽数字、小型大写字母和连字,都作为特性在字体声明中或在编组中启用。

      使用: 11. 字体族与 fontspec. 依据: B (声明的作用范围). 证明于: 语言与字体.

    7. 覆盖范围与可移植性. 一种字体只覆盖某些文字和字形;缺少的会在日志中提示,TeX Live 自带的字体在任何完整安装中都能编译。

      使用: 12. 每种语言一种字体, 10. 希腊语与拉丁语. 依据: D (Unicode 与字体). 证明于: 语言与字体.

  3. 第 3 段 有意义的格式

    • 优先使用逻辑标记,而不是视觉标记。
    • 预测嵌套的强调、字体属性的组合和字号。
    • 定义表示功能的命令。
    • 排列表、对齐段落,避免视觉标记。
    1. 逻辑标记. 每个格式标记对应文本的一种功能,其外观在一处定义中决定。

      依据: C (内容与形式). 证明于: 有意义的格式.

    2. 强调. \emph 以对比来突出:在直立文字中用斜体,在斜体中回到直立,在粗体中加上斜体;汉字没有斜体,中文的强调用加粗或着重号。

      使用: 15. 逻辑标记. 依据: B (声明的作用范围). 证明于: 有意义的格式.

    3. 字族、粗细与形状. 字体的三个属性相互独立,可以组合;每个命令都有对应的声明,缺少的形状会被替换并发出警告。

      使用: 11. 字体族与 fontspec, 16. 强调. 依据: B (声明的作用范围). 证明于: 有意义的格式.

    4. 字号. 字号只有声明形式;改变一个段落字号的编组必须包含段落的结尾。

      使用: 17. 字族、粗细与形状, 1. 段落与断行. 依据: B (声明的作用范围). 证明于: 有意义的格式.

    5. 有意义的命令. 为每种功能在导言区定义一个自己的命令,只需改一行就能改变它的外观。

      使用: 15. 逻辑标记, 16. 强调. 依据: C (内容与形式). 证明于: 有意义的格式.

    6. 列表. 按意义选用项目符号、编号或标签;enumitem 设定标签、间距和编号,\setlist 对整个文档进行设定。

      使用: 15. 逻辑标记. 依据: C (内容与形式). 证明于: 有意义的格式.

    7. 对齐. 对齐环境会增加垂直间距,对应的声明则不会,而且必须包含段落的结尾。

      使用: 18. 字号, 1. 段落与断行, 2. 垂直间距. 依据: G (段落结束时), B (声明的作用范围). 证明于: 有意义的格式.

    8. 不宜做的事. 手工加空格、用粗体冒充标题、加下划线,都是在模仿文字处理软件,而且会无声地失败。

      使用: 1. 段落与断行, 20. 列表, 19. 有意义的命令. 依据: C (内容与形式). 证明于: 有意义的格式.

  4. 第 4 段 注释、引文与诗句

    • 把脚注的注码放在正确的位置,在表格和标题中也是如此。
    • 写行内引文,并把长引文独立排出。
    • 排出题词和诗句。
    • 给文本的行编号并引用它们。
    1. 脚注. 注码紧贴所注的词语,按本课采用的惯例放在标点之前;\footnotemark 和 \footnotetext 把注码与注文分开。

      使用: 1. 段落与断行, 4. 句点后的空格. 依据: A (读取源文件). 证明于: 注释、引文与诗句.

    2. 标题中的脚注. 标题中的脚注会进入辅助文件,或者引起错误,或者在目录中再出现一次;可选参数使目录保持干净,\thanks 为文档标题加注。

      使用: 23. 脚注. 依据: E (编译遍数). 证明于: 注释、引文与诗句.

    3. 行内引文. \enquote 按语言和层次加上引号,默认允许两层。

      使用: 6. 引号与省略号, 8. 语言决定什么. 依据: F (语言决定), C (内容与形式). 证明于: 注释、引文与诗句.

    4. 独立引文. quote 用于短引文,quotation 用于多段引文,\blockquote 在引文超过三行时把它独立排出。

      使用: 25. 行内引文, 1. 段落与断行. 证明于: 注释、引文与诗句.

    5. 题词与诗句. 在 verse 中,\\ 分开诗行,空行分开诗节;题词连同出处放在一节的开头。

      使用: 1. 段落与断行, 26. 独立引文. 依据: A (读取源文件). 证明于: 注释、引文与诗句.

    6. 行号. lineno 给行编号,\linelabel 和 \lineref 不必写出数字就能引用它们,需要编译两遍。

      使用: 27. 题词与诗句. 依据: E (编译遍数). 证明于: 注释、引文与诗句.

走向结构. 这条链停在文本已经排好、需要一个框架的地方:章节、目录、内部引用和自己的导言区,这正是下一单元的内容。