跳至内容
Topos Uranos

摘要

本课讲授如何排版伴随学术文本的辅助部分:注释、引文和诗句。课程介绍用 \footnote 生成的脚注,注码放在标点之前或之后的不同惯例,以及用 \footnotemark 和 \footnotetext 把注码与注文分开的方法,它解决了表格中的脚注问题;说明为什么节标题中的脚注会出错,或者在加载 luatexja 的中文文档中进入目录、出现两次,可选参数如何避免这一问题,以及如何用 \thanks 为文档标题加注。课程讲授用 csquotes 宏包的 \enquote 排行内引文及其嵌套层次;用 quote 和 quotation 环境排独立引文;以及 \blockquote 命令,它根据引文的长短自行决定排在行内还是独立成段,并在末尾注明出处。最后介绍题记、用 verse 环境排诗歌,以及用 lineno 宏包为行编号,这是逐行评注的文本所必需的。

学习目标

  1. 按照文档所遵循的惯例,把脚注的注码放在正确的位置;当脚注不能写在原处时,把注码与注文分开。
  2. 为节标题或文档标题加注而不出错,且不让脚注进入目录。
  3. 用 \enquote 排行内引文,使用中文的引号及其嵌套层次,并能预测多出一层时产生的错误。
  4. 在行内引文与独立引文之间作出选择,并能预测 \blockquote 何时排成哪一种。
  5. 排版题记和诗歌,并为文本的行编号,以便评注并引用这些行,而不必手写行号。

脚注

脚注把会打断正文的内容移出正文:一个说明、一条旁及的信息、一处关于译文的提示。在应当出现注码的确切位置写 \footnote{…},其余的事由 LaTeX 完成:给注码编号,在同一页底部以相同的编号排出注文,并画出把它与正文隔开的短线。编号是自动的:在开头插入一条新脚注,其后所有脚注都会重新编号,因此编号从不手写。在 article 文档类中,编号贯穿整个文档。

注码的位置并非无关紧要。有两种惯例并存:西班牙语和法语的排版把注码放在标点之前,紧贴所注的词语;英语的排版则放在标点之后。中文出版物两种做法都有,要紧的是遵循出版方的规范并始终一致;本课的例子采用第一种。既然如此,\footnote 就紧接在词语之后、句号或逗号之前书写。还要注意紧贴书写:在西文中,词语与 \footnote 之间的空格属于正文,会使注码与词语分开,看上去像一个孤立的数字。

例题脚注

例子的页面很小,以便结果在不大的空间里同时显示正文和页脚;设定页面尺寸的 geometry 宏包将在文档结构单元中学习。第三、四行是中文设置,已在“文档的结构剖析”一课中说明:luatexja-fontspec 加入汉字排版功能,\setmainjfont 选择含有汉字的字体。中文用户也常用 ctex 宏包集(例如 ctexart 文档类)完成同样的设置。

LaTeX 代码
\documentclass{article}\usepackage[paperwidth=11cm,paperheight=6cm,margin=8mm]{geometry}\usepackage{luatexja-fontspec}\setmainjfont{Noto Serif CJK SC}\begin{document}译文依据 1927 年版\footnote{明显的排印错误已径改,不另注明。},但标明之处除外\footnote{这些地方采用手稿的读法。}。\end{document}
结果
结果

两个注码都紧贴词语,位于逗号和句号之前;每条注文都像一个句子那样以句号结束。

注码与注文分开

在某些地方,\footnote 不能完整地写出。典型的情况是表格:在 tabular 环境中(将在相应单元学习),注码会出现,但注文会无声无息地丢失。遇到这种情况,就把脚注拆成两部分:\footnotemark 在应有的位置放上下一个编号的注码,写在表格之外的 \footnotetext{…} 则以最后一个注码的编号排出注文。凡是完整的脚注不起作用的地方,都可以用这个办法。

例题表格中的脚注
LaTeX 代码
\documentclass{article}\usepackage[paperwidth=11cm,paperheight=6cm,margin=8mm]{geometry}\usepackage{luatexja-fontspec}\setmainjfont{Noto Serif CJK SC}\begin{document}实验室测得的相对密度:​\begin{tabular}{ll}水 & 1.00\footnotemark \\油 & 0.92 \\\end{tabular}\footnotetext{4 °C 的蒸馏水。}\end{document}
结果
结果

如果把 \footnote{4 °C 的蒸馏水。} 写在单元格里,数值旁会出现数字 1,页脚却没有任何注文。

标题中的脚注

在节标题中加脚注看似自然,却会出问题。原因在于节标题不只使用一次:LaTeX 把它排进正文,同时还把它写入辅助文件以生成目录,而脚注不应进入这些文件。在西文文档中,结果是一个看起来莫名其妙的错误(Use of \@xfootnote doesn't match its definition),即使文档中并没有目录。加载 luatexja 的中文文档却不报错,问题因此更隐蔽:脚注随标题原样写入辅助文件。

例题不能放在标题里的脚注
LaTeX 代码
\section{问题的由来\footnote{1900 年首次提出。}}

日志中没有任何错误,但辅助文件 .aux 记下了下面这一行:脚注随标题一起去了目录。文档没有目录时,这一行不产生影响;有目录时,从第二次编译起脚注出现两次,目录中的标题带注码 1,正文中的标题带注码 2,页脚并列两条相同的注文。

编译日志
\@writefile{toc}{\contentsline {section}{\numberline {1}问题的由来\footnote {1900 年首次提出。}}{1}{}\protected@file@percent }

解决办法是 \section 的可选参数,也就是已经学过的供目录使用的短标题:方括号中的内容进入目录,花括号中的内容只排在正文里。如果脚注写在长标题中而短标题省略它,脚注就出现在应在的位置,目录也保持干净。文档标题有专用的命令 \thanks,写在 \title 或 \author 之中,生成一条以星号而不是数字标记的脚注;它用于致谢、注明作者的单位,或说明本文是某次会议报告的修订稿。

例题文档标题和节标题中的脚注
LaTeX 代码
\documentclass{article}\usepackage[paperwidth=11cm,paperheight=11cm,margin=8mm]{geometry}\usepackage{luatexja-fontspec}\setmainjfont{Noto Serif CJK SC}\renewcommand{\contentsname}{目录}\title{论记忆\thanks{会议报告的修订稿。}}\author{李明}\date{}\begin{document}\maketitle\tableofcontents\section[问题的由来]{问题的由来\footnote{1900 年首次提出。}}\end{document}
结果
结果

目录中的标题没有注码;\thanks 的脚注带星号,节标题的脚注带数字 1,因为 \thanks 不占用编号。第五行把目录的标题改为中文,因为 article 文档类默认用英文的“Contents”;ctexart 会自动完成这一点。