格式说明:
三级标题作为代码段标题;
代码段标题下附加段落:
功能性说明;
使用说明;
段落后放置代码块。
项目中设置R包CRAN镜像
getOption('repos')
获取当前cran站点;
identical
判断对象是否相等,unname
去除向量分量名称;
options(repos = r)
设置cran站点;
1 2 3 4 5 6 local({ r = getOption('repos' ) if (!length(r) || identical(unname(r['CRAN' ]), '@CRAN@' )) r['CRAN' ] = 'https://cran.rstudio.com' options(repos = r) })
逐个检查依赖包并进行安装
依赖包名称放在向量中;
system.file(package = <name_char>)
获取拓展包的目录。通过目录是否为空字符串来判断是否安装了该包;
lapply
将函数应用到拓展包名称向量中;
1 2 3 lapply(c('DT' , 'formatR' , 'svglite' , 'rticles' ), function (pkg) { if (system.file(package = pkg) == '' ) install.packages(pkg) })
对于只能依赖 github
进行安装的扩展包,使用带名称的字符向量进行记录,然后使用类似的方法安装:
1 2 3 4 githubs <- c('citr' = 'crsh/citr' ) lapply(names(githubs), function (pkg) { if (system.file(package = pkg) == '' ) remotes::install_github(githubs[pkg], upgrade = FALSE ) })
通过 identical
判断不同输出格式下是否输出
identical
判断对象是否相等;
knitr::pandoc_to()
获取本次编译输出的文档格式;
include
参数控制改代码块是否输出 。
1 2 3 ```{r fig.align='center', echo=FALSE, include=identical(knitr:::pandoc_to(), 'html'), fig.link='https://github.com/rstudio/bookdown'} knitr::include_graphics('images/logo.png', dpi = NA) ```
文字右(左)对齐
设置 type='flushright'
将代码块内的文字进行页面上的右对齐 ,类似地,type='flushleft'
为左对齐;
设置 HTML 输出格式时,右对齐语段的标签 html.tag='p'
;
1 2 3 4 ```{block2, type='flushright', html.tag='p'} Yihui Xie Elkhorn, Nebraska ```
Bookdown 创作中文书籍
主要是导出 PDF 时的相关配置,关键在于是否引入 ctex
宏包。
需要注意,影响 PDF 编译的配置散落在 RStudio IDE 各处,容易忽略的是 Project Options
-> Sweave
-> PDF Generation
-> Typeset LaTeX into PDF using
,该处需要使用 xelatex
,pdflatex
能用,但是会出一些问题。
方法一:
1 2 3 4 5 6 documentclass: ctexbook output: pdf_document: latex_engine: xelatex
方法二:
1 2 3 4 5 6 documentclass: book output: pdf_document: latex_engine: xelatex