C 各章格式说明

Bookdown 编译各 Rmd 文件时,是按照文件名的字母排序拼接在一起的,故而我们不需要专门写一个文件来组织各章节,但是为了更好的利用这一排序规则,需要对文件名稍作调整。本模板的文件名采用如下命名方式, xxx-name.Rmd。其中 xxx 表示从 000999,第一位表示第几部分,后两位如果为 00 表示该部分的简介,如果是其他数字则表示章节。name 是对应章节的名字。一章一个文件。

由于自身水平所限,部分格式实现起来费劲,就采用直接书写 代码的形式实现了。

C.1 章:前言

前言作为一章,不属于书主体内容,位于本书开头,需要一些特殊设定。命名为./rmd/000-intro.Rmd。 样式如下,

\frontmatter
\pagestyle{main}

# 前言

为什么要写这本书呢?起源于去武汉参观辛亥革命博物馆。

\include{latex/content}

解释

  1. 第1、2行,表示下面属于前言部分,采用罗马数字对前言编号,页面格式属于正文格式。
  2. 第4、6行,表示前言内容。
  3. 第8行,表示接下来为目录部分。
  4. 为了减少文件个数,把文件格式以及目录也放在该文件了,但也造成了文件不专用的问题。请根据爱好,自行斟酌。

C.2 前言后的部分章节

前言后的部分章节,属于标准的 Markdown 文件,框架示例如代码所示。

# 作者简介 {#author}

这将是是一群深度操作系统爱好者的杰作!!!

解释

  1. 第1行,标准 Markdown 语句,表示这是一章。
  2. 第3行,该章的具体内容,可以使用 或 Markdown 格式书写。

C.3 部分:第一部分简介

\mainmatter
\pagestyle{main}

\partquote{合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。}{老 \quad 子}

\partintro{
\quad\quad “话说天下大势,分久必合,合久必分”。
}

# (PART) Linux 及 Deepin 入门 {#part:intro -}

解释

  1. 第1、2行,表示下面属于本文正文部分,采用阿拉伯数字对正文编号,页面格式属于正文格式。
  2. 第4行,用于添加第一部分简介的名言警句。
  3. 第6-8行,表示第一部分简介的具体内容。
  4. 第10行,表示第一部分名称为Linux 及 Deepin 入门,标签为 part:intro

C.4 各部分内部的章

框架格式类似前言后的文件,如代码所示,略。

C.5 部分:附录及其他

\partquote{这只是万里长征走完了第一步,以后的路程更长,工作更伟大,更艰苦。务必使同志们继续地保持谦虚、谨慎、不骄不躁的作风,务必使同志们继续地保持艰苦奋斗的作风。}{毛泽东}
\partintro{
\quad\quad 附录及其他部分,首先引用了中国的一篇古文《愚公移山》,目的是告诉自己要坚持坚持再坚持;其次讲述了本书的制作步骤,方便后来人对模板进行改编和再创作;再次介绍了本书的大致框架设计,提醒需要注意的问题;再次列举了写作中常见的 \LaTeX 和 Bookdown 编写的示例;最后是常见问题解答以及本书的大事记。
}
# (PART) 附录及其他 {#part:others -}

# (APPENDIX) 附录 {#chap:appendix -} 

解释

  1. 第1-5行,同框架示例 的介绍。
  2. 第7行,表示下面属于论文附录部分,采用天干顺序对附录编号

C.6 附录内部各章

框架格式类似前言后的文件,如代码所示,略。

C.7 后缀部分

相关代码为 形式,包括索引和参考文献等,由模板自动生成,不用关心。

本章完全照抄交大论文模板的 排版例子,除了动了标题和多了这行话,运行良好,但是部分地方会多出括号来,请对照原文删除。

以下是一个无序列表的例子,列表的每个条目单独分段。

使用环境可以创建行内无序列表。

行内无序列表条目不单独分段,所有内容直接插入在原文的段落中。

使用环境和创建有序列表, 使用方法无序列表类似。

使用环境可以创建行内有序列表。

行内有序列表条目不单独分段,所有内容直接插入在原文的段落中。

使用环境可创建带有主题词的列表,条目语法是。 可以使用参数控制列表的样式, 详细可以参考WikiBooks。 比如一个自定义样式的行内有序列表

这里有举一个长公式排版的例子,来自:

使用宏包可以方便地输入SI单位制单位,例如可以得到。

这是全文唯一的一个四级标题。在这部分中将演示了mathtools宏包中可伸长符号(箭头、等号的例子)的例子。

\[\begin{eqnarray} f(x) & \xleftrightarrow[]{A=B} & B \\ & \xleftharpoondown[below]{above} & B \nonumber \\ & \xLeftrightarrow[below]{above} & B \end{eqnarray}\]

又如:

\[\begin{align} \label{eq:none} & I(X_3;X_4)-I(X_3;X_4\mid{}X_1)-I(X_3;X_4\mid{}X_2) \nonumber \\ = & [I(X_3;X_4)-I(X_3;X_4\mid{}X_1)]-I(X_3;X_4\mid{}\tilde{X}_2) \\ = & I(X_1;X_3;X_4)-I(X_3;X_4\mid{}\tilde{X}_2) \end{align}\]

模板中定义了丰富的定理环境 algo(算法),thm(定理),lem(引理),prop(命题),cor(推论),defn(定义),conj(猜想),exmp(例),rem(注),case(情形), bthm(断言定理),blem(断言引理),bprop(断言命题),bcor(断言推论)。 amsmath还提供了一个proof(证明)的环境。 这里举一个“ 定理” 和“ 证明” 的例子。

上面的公式例子中,有一些细节希望大家注意。微分号d应该使用“ 直立体” 也就是用mathrm包围起来。 并且,微分号和被积函数之间应该有一段小间隔,可以插入得到。 斜体的\(d\)通常只作为一般变量。 i,j作为虚数单位时,也应该使用“ 直立体” 为了明显,还加上了粗体,例如。斜体\(i,j\)通常用作表示“ 序号” 。 其他字母在表示常量时,也推荐使用“ 直立体” 譬如,圆周率\(\uppi\)(需要upgreek宏包),自然对数的底\(\mathrm{e}\)。 不过,我个人觉得斜体的\(e\)\(\pi\)很潇洒,在不至于引起混淆的情况下,我也用这两个字母的斜体表示对应的常量。

可以很方便地插入PDF、PNG、JPG格式的图片。

插入PNG/JPG的例子如所示。 这两个水平并列放置的图共享一个“ 图标题” (table caption),没有各自的小标题。

这里还有插入EPS图像和PDF图像的例子,如图和图。这里将EPS和PDF图片作为子图插入,每个子图有自己的小标题。子图标题使用subcaption宏包添加。

更多关于 插图的例子可以参考。

图和图都有比较长图标题,通过对比发现,图的换行效果更好一些。 其中使用了minipage环境来限制整个浮动体的宽度。

当插图中组成部件由数字或字母等编号表示时,可在插图下方添加图注进行说明,如图所示。

图是一张流程图示意。使用tikz环境,搭配四种预定义节点(、、和),可以容易地绘制出流程图。

这一节给出的是一些表格的例子,如表所示。

下面一个是一个更复杂的表格,用threeparttable实现带有脚注的表格,如表。

具有将参考文献内容和表现形式分开管理的能力,涉及三个要素:参考文献数据库、参考文献引用格式、在正文中引用参考文献。 这样的流程需要多次编译:

参考文献数据库(thesis.bib)的条目,可以从Google Scholar搜索引擎、CiteSeerX搜索引擎中查找,文献管理软件Papers、Mendeley、JabRef也能够输出条目信息。

下面是在Google Scholar上搜索到的一条文献信息,格式是纯文本:

推荐修改后在bib文件中的内容为:

按照教务处的要求,参考文献外观应符合国标GBT7714的要求。 在模板中,表现形式的控制逻辑通过biblatex-gb7714-2015包实现,基于{Bib}管理文献。在目前的多数TeX发行版中,可能都没有默认包含biblatex-gb7714-2015,需要手动安装。

正文中引用参考文献时,用可以产生“ 上标引用的参考文献” , 如。 使用则可以产生水平引用的参考文献,例如。 请看下面的例子,将会穿插使用水平的和上标的参考文献:关于书的,关于期刊的, 会议论文, 硕士学位论文,博士学位论文,标准文件,技术报告,电子文献,用户手册。

总结一些注意事项:

原先ctexbook文档类和listings宏包配合使用时,代码在换页时会出现莫名其妙的错误,后来经高人指点,顺利解决了。 感兴趣的话,可以看看。 这里给使用listings宏包插入源代码的例子,这里是一段C代码。 另外,listings宏包真可谓博大精深,可以实现各种复杂、漂亮的效果,想要进一步学习的同学,可以参考 。

algorithmicx 比 algorithmic 增加了一些命令。 示例如算法和算法, 后者的代码来自。 algorithmicx的详细使用方法见。 使用算法宏包时,算法出现的位置很多时候不按照tex文件里的书写顺序, 需要强制定位时可以使用

这是写在算法前面的一段话,在生成的文件里它会出现在算法前面。

这是写在两个算法中间的一段话,当算法不使用时它也会出现在算法前面。

对于很长的算法,单一的算法块是不能自动跨页的 , 会出现的情况有:

解决方法有:

这是写在算法后面的一段话, 但是当算法不使用时它会出现在算法 甚至算法前面。

对于算法的索引要注意和的位置, 必须是先再, 否则会出现生成的编号跟对应算法上显示不一致的问题。

根据Werner的回答 增加了和的支持,见算法。