本期的主要内容有:

  • 目录的生成与定制

  • 章节标题格式的定制

  • 版面大小的定制

  • 页面风格的定制

中间还会穿插介绍一些页面控制的命令。 ---目录的生成与定制我们需要给它们来一个集合,就是制作目录。制作目录其实非常简单,只需要一个命令,就是 \tableofcontents 。这个命令放在哪里,目录就会出现在哪里。和交叉引用相同的一个特点是,目录的排版也需要两次编译。一方面是因为其中涉及到页码,另一方面是涉及到各个章节的标题。我们继续用上次的源代码给大家举例。

目录的内容显示为红色,是因为 hyperref 宏包的 colorlinks 选项。我们以后将默认载入这个宏包,告诉大家这些红色的文字都是可以点击跳转的,这也是我非常喜欢的一个特性。 如果我们使用带星号的章节命令,这个章节将不编号也不编目。这个时候对应的标签会被打到上一个章节中去,所以如果你用了这样的章节,就不要用交叉引用啦。效果如下:还有的时候,章节的标题特别长,可能会超出目录一行所能装下的量,这样直接编目会比较难看,比如这样:是不是丑哭了!!!所以我们需要短标题,在目录中显示短标题而在实际的文档中显示正常的标题,示例如下:大家注意第8行。我们在 \section 命令和小节标题之间加入了一个用方括号括起来的参数,这个就是显示在目录中的标题。这是 LaTeX 命令的一种用法,方括号中的内容叫做选项(options)。第2行中使用 hyperref 宏包时,我们就加入了 colorlinks=true 的选项。选项可以让命令以不同的形式表现出来,给大家多一些发挥的空间。如果涉及多个选项,需要把选项之间用半角逗号隔开。如果目录的介绍到这里就结束了,怎么能体现我的“满怀诚意”呢?目录对于图表而言也是可以用的。如果你的文档中有很多图表,也可以专门为它们建目录。对应的命令是 \listoffigures 和 \listoftables。它会收集对应图表中的标题来产生图表的目录。图表的插入我们将在下一期中介绍。 如果在想让目录单独占一页,只需要在 \tableofcontents 后面加上 \newpage 命令,就可以在目录之后强制分页。这个命令在其他地方也可以使用。 默认情况下,目录的深度是3级。也就是说,对于 ctexart/article 文类,只对 section,subsection,subsubsection 编目。如果你的文档结构用到了 paragraph 一级,那么它将不会被编入目录中,效果如下(某个小段是 paragraph,未编目):  但是只要你愿意,它也是可以被编入目录的。这就需要你的目录深度和编号深度都加一级。实现的方式是在导言区加入如下命令:

\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

这样设置的编号和目录深度就是4,“某个小段”也会被编号编目,效果如下:有时候我们还会遇到一个情况,就是一个小节我们想编目但是不想编号,该怎么办呢?前面我们提到过 \section*{一个不编号也不编目的小节} 可以生成一个不编号也不编目的小节,这里我们介绍一个让它也被编入目录的做法:\addcontentsline 命令。为了培养一下大家看文档的技能,我把这个命令的文档放在这里,大家先看一看,能不能理解它的使用方式呢?所以其实它的用法是这样的:在一个没有编号编目的小节命令后加上一句

 \addcontentsline{目录种类}{编目级别}{目录内容}

就可以了。举例如下(第14行):如果想要深度定制目录的形式,可以参考 titletoc 宏包的文档,里面提供了很多定制的方法,大家可以自己去探索。 ---章节标题格式的定制上一期我们提到过如何正确地生成章节标题,LaTeX 还会自动为它们编号。这里我们以中文文档为例(毕竟大家比较常用),介绍一下 ctex 宏包中简单的章节标题格式定制方法。如果是英文文档,可以直接调用 ctexheading 宏包或者给 ctex 宏包加上 heading 选项。它被包含在 ctex 宏包中,但可以独立在非 ctex 文类中使用,功能相同。 定制的基本方法是,用 \ctexset 命令来对某个级别的标题某个属性进行设置。标题的级别由高到低有以下七种,我们再回顾一下:

  1. part

  2. chapter

  3. section

  4. subsection

  5. subsubsection

  6. paragraph

  7. subparagraph

其中需要注意,article 没有前两个级别的章节,对它们进行设置是没有作用的。我们可以定制的属性有如下几种:

  • numbering,控制是否编号。

  • name,设置章节的名字。名字可以分为前后两部分,即章节编号前后的词语,两个词之间用一个半角逗号分开;也可以只有一部分,表示只有章节编号之前的名字。

  • number,设置章节编号的数字输出格式。

  • format,控制章节标题的全局格式,作用域为章节名字和随后的标题内容。可以用于 控制章节标题的对齐方式、整体字体字号等格式。

  • nameformat,控制章节名字的格式,作用域为章节名字,包括编号。

  • numberformat,选项用于控制章节编号的格式,作用域仅为编号数字本身。

  • aftername,在控制章节编号与标题内容之间的距离,或者控制标题是否另起一行。

  • titleformat,控制标题内容的格式,作用域为章节标题内容。

ctex 宏包还提供如下的一些属性供大家选择,这些使用得比较少,需要使用的可以自行查阅 ctex 宏包文档来了解使用方式。

  • aftertitle

  • runin

  • afterindent

  • beforeskip

  • afterskip

  • indent

  • pagestyle

在对章节标题进行定制的时候,使用命令的方式通常是这样的:  如果仅对某个级别标题的某个属性进行设置,可以用“章节级别/属性=...”的方式。如果对某个级别的标题的多个属性都要修改,则可以用像上面 chapter 那样进行处理。 说了这么多,下面给大家举一些例子吧。首先,在 ctexart/article 中,默认的 section 标题是居中的。那么如果我们想把这个标题靠左,就可以用 section/titleformat = \raggedright 来设置,示例如下(第3--5行):如果想像数学课本一样把章节编号前加上一个 \S 符号,我们就可以这样:如果还不过瘾,想用“第X节”的方式来做这个标题,就可以这样(\chinese命令可以把对应的数字变成中文):这里几个简单的例子,大家应该可以明白这些命令是如何工作的了。注意 \ctexset 命令应该在导言区使用。其他的一些定制格式大家还可以继续去探索,遇到不明白的问题一定要看文档噢。 ---版面大小的定制在排版工作中,有一个非常重要的概念叫做版心。如果大家经常使用 MS Word 的话,应该能注意到页面四个角落里都有一个直角符号。那四个直角符号的顶点相连构成的区域就是版心。说白了就是我们安放正文的位置。在 LaTeX 中,我们一样可以定制版心的大小,需要的只是一个 geometry 宏包。 大家在前面的练习当中一定注意到了,LaTeX 默认的版心非常小。在加入了 geometry 宏包后,默认的版心会比原来大一点,看上去会感觉好一些(大家自己试试)。geometry 宏包可以加上若干选项,比如设置各个方向的页边距。例如,在导言区使用

\usepackage[left=1cm,right=1cm,top=2cm,bottom=3cm]{geometry}

就可以把左、右、上、下的边距分别调整为1厘米、1厘米、2厘米、3厘米。详细的使用方法可以看 geometry 宏包的文档,里面讲述了如何用它定制版面。 ---页面风格的定制对于一个页面,我们可能还需要页码等页眉、页脚信息。这个时候就需要我们来定制页面风格了。使用 \pagestyle 命令可以调用三种默认的页面风格:

  • plain:只有页底中央的页码;

  • empty:啥也没有;

  • headings:把章节的标题写在页眉处,同时有页码;

其中 headings 是默认的页面风格,依据文类的不同而有所改变,大家可以自己尝试一下。例如调用 plain 风格的命令就是 \pagestyle{plain},记得要在导言区使用。 如果需要深度定制各种页眉页脚,可以使用 fancyhdr 宏包。fancyhdr 宏包可以对页眉和页脚的左中右共六个位置显示的内容进行定义,大家可以查看 fancyhdr 宏包文档来尝试自己定制一个页面风格。 选自:https://zhuanlan.zhihu.com/p/24501131

点赞(35)

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部