-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy path802-appendix-makebook.Rmd
209 lines (143 loc) · 8.84 KB
/
802-appendix-makebook.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# 如何制作本书 {#chap:makebook}
## 准备工作
本模板使用 bookdown 实现了由 R Markdown (Bookdown) -> Markdown (Pandoc 标准) -> \LaTeX -> PDF 的一系列转换,其中用到的依赖有:
- R
- pandoc
- xetex
需要安装这些软件,才可以使用。
### Linux 下使用
下面以深度操作系统 20.2 版本为例说明。
参考[官网](https://mirrors.tuna.tsinghua.edu.cn/CRAN/)安装最新版R语言。
```{.bash numbers=none}
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key 'E19F5F87128899B192B1A2C2AD5F960A256A04AF'
```
安装稳定版的源,把源`deb http://cloud.r-project.org/bin/linux/debian buster-cran40/`写入到 */etc/apt/sources.list* 文件。并更新。
```{.bash}
$ sudo su
# echo "deb http://cloud.r-project.org/bin/linux/debian buster-cran40/" >> /etc/apt/sources.list
# exit
$ sudo apt-get update
```
安装过程中,请确保当前 `rstudio` 的版本高于 1.0.0, `texlive` 为2015年后的版本, `pandoc` 的版本高于 2.0.0。
```{.bash numbers=none}
$ sudo apt-get install r-base r-base-dev \
libcurl4-openssl-dev libxt-dev libssl-dev libmagick++-dev libgit2-dev pandoc make
```
下面是安装`TinyTex`,关于`TinyTex`的详细介绍,见[谢益辉的文章](https://yihui.name/tinytex/)。
```{.bash numbers=none}
$ curl -sL "https://yihui.org/tinytex/install-bin-unix.sh" | sh
```
如果`TinyTex`不能满足,请参考相关软件官网,下载最新版本的texlive。我的[博客](https://my.oschina.net/bubifengyun/blog/1936119)记录了如何安装最新版 texlive,有需要的可以去看看。[pandoc官网](https://github.com/jgm/pandoc/blob/master/INSTALL.md)有其安装教程。R 语言的安装方法[官网镜像](https://mirrors.tuna.tsinghua.edu.cn/CRAN/)也可找到,这里就不赘述了,有问题可以邮件联系。
第一次编译,可能需要安装很多软件,请静静等待。后面,直接运行下面这条语句,实现编译。
```{.bash numbers=none}
$ make
```
### Windows 下使用
略
### 苹果操作系统下使用
主要涉及`R`、`pandoc`、`TinyTex`三个软件。`TinyTex`作为`TexLive`的替代品,安装量比较小。
下面以macos 10.11 为例,介绍本人的安装方式。由于该操作系统版本较低,很多软件无法正常安装,甚至需要从源码开始。
`pandoc`可以从[官网](https://pandoc.org/installing.html)下载直接安装。也可以通过源码安装。
```{.bash numbers=none}
$ brew install --build-from-source pandoc
```
下面是安装`TinyTex`,关于`TinyTex`的详细介绍,见[谢益辉的文章](https://yihui.name/tinytex/)。
```{.bash numbers=none}
$ curl -sL "https://yihui.org/tinytex/install-bin-unix.sh" | sh
```
并配置PATH,支持系统调用。打开文件 */etc/profile*,加入
```{.bash}
PATH="~/Library/TinyTex/bin/x86_64-darwin:"$PATH
export PATH
```
重新打开终端,或者输入`source /etc/profile`。
另外还需要安装本程序需要的几个软件,
```{.bash numbers=none}
$ brew install --build-from-source freetype imagemagick@6 cairo xquartz wget
```
下面安装R软件,由于brew 版的R默认不支持cairo,需要从官网下载,参考官网,安装适合本操作系统的[R3.6.3版本](https://cran.r-project.org/bin/macosx/),点击安装。后在编译中发现`biber`版本不可用,需要更换为适合MacOS 10.11 的版本,后在[官网](https://master.dl.sourceforge.net/project/biblatex-biber/biblatex-biber/current/binaries/OSX_Intel/biber-darwinlegacy_x86_64.tar.gz)下载了darwinlegacy的版本。安装完成后终于能够成功编译。
对于macos 10.15 catalina系统来说,安装有点类似,下面只贴代码,不作解释。
```{.bash numbers=none}
$ brew cask install xquartz
$ ln -s /opt/X11/include/X11 /usr/local/include/X11
$ brew install --build-from-source pandoc freetype imagemagick@6 cairo wget
```
接着官网下载安装最新版的R。
## 编译模板
### 第一种编译方法 —— 命令行编译
模板默认使用GNUMake构建,后续如无特殊说明,默认执行命令的文件夹以及当前文件夹均为本模板的根目录。对于部分用户,第一次编译可能需要下载很多文件,最好联网编译,简言之**首次编译请联网**。如果第一次编译成功,后面再次编译则不需要联网。
```{.bash numbers=none}
$ make
```
### 第二种编译方法 —— RStudio编译
在已经安装 RStudio 的前提下,也可手动编译。打开 RStudio 软件,在弹出的界面,左上角点击 File->Open Project,选中 *./deepin-bible.Rproj* 文件打开,点击右上角靠下的一栏,有个 `Build` 格,会出现 `Build Book` 等按钮。
点击 `Build Book` 就会生成 PDF 书籍了,位于 *./\_book/deepin-bible.pdf* 。本质上讲,第二种编译方法是调用的第一种编译方法,只不过方便懒得写命令行的用户。
### 字数统计
如果需要统计字数,先生成文件,然后执行如下命令,特别提醒**先编译书籍才可以统计字数**。
```{.bash numbers=none}
$ make wordcount
```
### 本书编译的 R 各包信息
```{r echo=FALSE}
sessionInfo()
```
## 文件布局
使用 `tree` 命令所得。为了篇幅,删除了部分文件名。
```{.block2 caption="模板文件布局" label=intro:folder numbers=none}
.
├── bib
│ ├── book.bib
│ └── packages.bib
├── bin
│ ├── linux_x64
│ └── linux_x86
├── _bookdown.yml
├── css
│ └── style.css
├── deepin-bible.Rproj
├── images
│ ├── about-us_img-2.jpg
│ └── zhifubaozhifu.png
├── imakeidx.ist
├── index.Rmd
├── latex
│ ├── content.tex
│ └── template.tex
├── LICENSE
├── Makefile
├── _output.yml
├── README.md
├── _render.R
├── rmd
│ ├── 000-intro.Rmd
│ └── 899-appendix-history.Rmd
├── sjtuthesis.cfg
└── sjtuthesis.cls
```
## 主要文件介绍
### \LaTeX 模板文件
格式控制文件控制着论文的表现形式,包括 *./sjtuthesis.cfg* 和 *./sjtuthesis.cls*。
其中,“ cls” 控制论文主体格式,“ cfg” 为配置文件。上述文件全部来自最新(2018-12-12)[上海交通大学学位论文 \LaTeX 模板](https://github.com/sjtug/SJTUThesis)
### 各章源文件
主要位于 *./rmd/* 文件夹。另外目录和模板的内容以 \LaTeX 形式存放在 *./latex/* 文件夹下。各文件的详细说明见附录\@ref(chap:chapters)。
### 配置文件
主要为 *./index.Rmd* 文件,另外两个配置文件(*./\_bookdown.yml*、*./\_output.yml*)没有特殊需求不需要更改。
对于 *./index.Rmd* 文件,书名、作者等信息直接更改为自己的即可。由于本文采用的上海交大论文模板,一些配置不建议修改。如果想修改书籍字体,比如 `classoption: [doctor, openright, twoside, fontset=adobe]` ,就表示中文字体修改为 adobe 系列的字体。可供选择的中文字体:fandol(Fandol 开源字体)、windows(Windows 系统下的中文字体)、mac(macOS 系统下的华文字体)、ubuntu(Ubuntu 系统下的文泉驿和文鼎字体)、adobe(Adobe 公司的中文字体)、founder(方正公司的中文字体),默认根据操作系统自动配置。
如果打算使用本文的英文模板,可采用如下方式,在`classoption: [doctor, openright, twoside, fontset=adobe]`添加 "english",比如`classoption: [doctor, openright, twoside, fontset=adobe, english]`。
### 图片文件夹 images {#intro:fig}
images 文件夹放置了需要插入文档中的图片文件(支持PNG/JPG/PDF/EPS格式的图片),可以在按照章节划分子目录。
模板文件中使用`\graphicspath`命令定义了图片存储的顶层目录,在插入图片时,顶层目录名“ images” 可省略。
### 参考文献数据库bib {#intro:bib}
目前参考文件数据库目录只存放一个参考文件数据库 *./bib/book.bib*,而 *./bib/packages.bib* 是书籍编译参考的包信息。
关于参考文献引用,可参考附录\@ref(chap:latex)中的例子。
### 辅助文件
- *./deepin-bible.Rproj* 项目文件,方便使用 rstudio 打开,如果仅使用 `make`,可以不要。
- *./\_render.R* 渲染文件,复制自[谢益辉Bookdown中文模板](https://github.com/yihui/bookdown-chinese),致谢。
- *./Makefile* `make` 的文件,综合[上海交通大学学位论文 \LaTeX 模板](https://github.com/sjtug/SJTUThesis)和[谢益辉Bookdown中文模板](https://github.com/yihui/bookdown-chinese)。
- *./\_book/* 最终生成文件所在文件夹。
- *./\_bookdown\_files/* 过程中生成的文件所在文件夹。
- *./bin/*,*./imakeidx.ist* 是索引引擎及索引模板文件。
- *./css/* 用于生成非 PDF 书籍的模板,编译本书暂时用不到。
## 关于在线网页的制作
参考网页:
- https://bookdown.org/yihui/bookdown/github.html