一篇文章的完整结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【次页】:12. 后记【标题页】:latex123【前页】:10. 数学排版目录索引
11. 一篇文章、一本书的完整结构
好了,写文章最后也要整理成册,这也是排版系统要负责的部份。如果只是简单几百、几千字的小文章,那很容易,只要个文章题目,章节标题,那也就够了。但如果是较正式的论文,那可能还有目录、参考文献、索引等等,甚至一本书籍的话,也要有个封面,及送印刷厂时要用到的裁切记号(crop marks)。如果要置放在网页上的,那还得注意网络超链接互动的问题,所以,这些细节算是满琐碎的,但却是必要的。
当然,个人也并不是什么排版、印刷的专家,只能谈谈我所知道的事项,如果需要补充或修正,请有这方面经验的朋友,不吝提供心得及指正。个人出版,这实际上不是梦,尤其网络发达的今日。
11.1 目录(Contents)
目录的问题,如果不讲究的话,使用 LaTeX 预设的就行了。就像第 4.4节所举的例子一样。但如果要做调整的话,除非熟悉 LaTeX 宏的写法、定义,否则就得使用现成的宏套件,例如minitoc可让目录更紧凑,titletoc更可做相当幅度的调整及美化。
在 LaTeX 文稿内,\tablofcontents 可以排版一般的章节目录。\listoffigures 指令可以排版图目录,\listoftables 指令则可排版表目录。但图表的话是指有进入浮动环境,使用 \caption 指令,有编号的图表而言。请注意,这些目录指令的置放位置会影响实际目录出现的顺序,没有特殊需求的话,一般的顺序是文、图、表。
11.1.1 更改目录标题名称
默认的情形下,在目录开头都会有个标题来引导,例如:Contents、List of Figueres及List of Tables等,但是这在中文的情形看起来会不相称,我们可以去更改默认值。更改 LaTeX 默认值得视原来这个值是以什么形式出现,在目录是以指令定义的形式出现,所以我们要使用 \renewcommand 这个指令去重定义他。
原来的这些Contents标题是怎么「弄」出来的呢?如果手头上没有相当的参考书籍,可以参考他的原始定义,例如这篇文章是使用report class,那么找一下:
/usr/share/texmf/tex/latex/base/report.cls % Unix-like 系统
C:\texmf\tex\latex\base\report.cls % DOS/Windows 系统
这个档(依安装的地方不同,可能会有不同的路径),搜寻 Contents 这个关键词,就可以发现,他们原来的定义是:
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
这样就清楚了,我们要重指定的是 contentsname、listfigurename 及 listtablename。其他的情形请依此类推。现在我们来把他改成中文:
\renewcommand\contentsname{目~录~}
\renewcommand\listfigurename{图~目~录}
\renewcommand\listtablename{表~目~录}
这里以CJK宏为例,由于我们需要中文环境,所以这些更改要放在 CJK 环境中,如果只是更改成其他英文字样,那我们置于 preamble 区就可以了。
11.1.2 目录的深度
通常,有编号的章节或有 caption 的图表才会编入目录中,但如果想让目录的结构更细,那么我们就得更改列入目录的深度。目录深度的表现形式是一种计数器(counter),他的名称是 tocdepth。以这篇文章的 report class 为例,他的默认值是(请自行查一下report.cls):
\setcounter{tocdepth}{2}
所以会计算到 subsection,以下的就不列入了(请参考第 3.4.4小节的章节深度标号)。我们只要在 preamble 区,使用 \setcounter 指令去重新指定,就会改变他的目录深度。
11.1.3 额外的目录
这是指没有编入目录,但想自行加进去的情形,例如:章节指令使用了星号就不会编号,图表目录没有使用 \caption 指令,也不编入目录了,这时我们可以使用 \addcontentsline 指令来把他们手动加进去。我们来看看文图表的三种不同情况:
\addcontentsline{toc}{章节名}{标题}
\addcontentsline{lof}{figure}{标题}
\addcontentsline{lot}{table}{标题}
这样就会把这些纳入目录,但是,这还是没有编号的。目录中所显示的页数,就是这些指令(图表)所在的页数。
11.2 交互参照(Cross References)
所谓的参照,指的是在文章某处提及某个其他的章节,或某个页数,甚至是某个图表,某个数学式子及某个列举项目,排版系统必需要有这样的功能来自动达成这种效果,而 LaTeX 本身提供了三个简单易用的指令来自动处理,他会自动计算相对的章节、页数。
当然,由于网络的发达,超链接上的交互参照也变得是不可或缺,但 TeX/LaTeX 毕竟是平面排版系统,并没有这样的原始功能,但我们可以经由宏套件来达成这样的目的,hyperef宏套件就是为此而写的,这样就可以让 LaTeX 排版的结果去转换成 PDF/HTML 格式的时候,也有超链接的功能。
广义的来说,包括目录的参照、文献参照、批注的参照及外部档案的参照(例如,参照某个外部档案的某个章节)都是属于交互参照的一部份,但这些议题我们另外单独讨论,因为他不在 LaTeX 所提供的三个基本参照的指令范围内。
11.2.1 一般的交互参照
LaTeX 提供了三组基本参照的指令:
\label{名称} % 置放于要被引用之处,以一个名称来标记他
\ref{名称} % 引用 \label 所标记处的章节