C 各章格式说明
Bookdown 编译各 Rmd
文件时,是按照文件名的字母排序拼接在一起的,故而我们不需要专门写一个文件来组织各章节,但是为了更好的利用这一排序规则,需要对文件名稍作调整。本模板的文件名采用如下命名方式, xxx-name.Rmd
。其中 xxx
表示从 000
到 999
,第一位表示第几部分,后两位如果为 00
表示该部分的简介,如果是其他数字则表示章节。name
是对应章节的名字。一章一个文件。
由于自身水平所限,部分格式实现起来费劲,就采用直接书写 代码的形式实现了。
C.1 章:前言
前言作为一章,不属于书主体内容,位于本书开头,需要一些特殊设定。命名为./rmd/000-intro.Rmd。 样式如下,
\frontmatter
\pagestyle{main}
# 前言
为什么要写这本书呢?起源于去武汉参观辛亥革命博物馆。
\include{latex/content}
解释
- 第1、2行,表示下面属于前言部分,采用罗马数字对前言编号,页面格式属于正文格式。
- 第4、6行,表示前言内容。
- 第8行,表示接下来为目录部分。
- 为了减少文件个数,把文件格式以及目录也放在该文件了,但也造成了文件不专用的问题。请根据爱好,自行斟酌。
C.2 前言后的部分章节
前言后的部分章节,属于标准的 Markdown 文件,框架示例如代码所示。
# 作者简介 {#author}
这将是是一群深度操作系统爱好者的杰作!!!
解释
- 第1行,标准 Markdown 语句,表示这是一章。
- 第3行,该章的具体内容,可以使用 或 Markdown 格式书写。
C.3 部分:第一部分简介
\mainmatter
\pagestyle{main}
\partquote{合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。}{老 \quad 子}
\partintro{
\quad\quad “话说天下大势,分久必合,合久必分”。
}
# (PART) Linux 及 Deepin 入门 {#part:intro -}
解释
- 第1、2行,表示下面属于本文正文部分,采用阿拉伯数字对正文编号,页面格式属于正文格式。
- 第4行,用于添加第一部分简介的名言警句。
- 第6-8行,表示第一部分简介的具体内容。
- 第10行,表示第一部分名称为Linux 及 Deepin 入门,标签为
part:intro
。
C.4 各部分内部的章
框架格式类似前言后的文件,如代码所示,略。
C.5 部分:附录及其他
\partquote{这只是万里长征走完了第一步,以后的路程更长,工作更伟大,更艰苦。务必使同志们继续地保持谦虚、谨慎、不骄不躁的作风,务必使同志们继续地保持艰苦奋斗的作风。}{毛泽东}
\partintro{
\quad\quad 附录及其他部分,首先引用了中国的一篇古文《愚公移山》,目的是告诉自己要坚持坚持再坚持;其次讲述了本书的制作步骤,方便后来人对模板进行改编和再创作;再次介绍了本书的大致框架设计,提醒需要注意的问题;再次列举了写作中常见的 \LaTeX 和 Bookdown 编写的示例;最后是常见问题解答以及本书的大事记。
}
# (PART) 附录及其他 {#part:others -}
# (APPENDIX) 附录 {#chap:appendix -}
解释
- 第1-5行,同框架示例 的介绍。
- 第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的回答 增加了和的支持,见算法。