1.6 PDF文档

在输出pdf文档之前,得先确保你已经安装了tinytex包,详见第1.1节

1.6.1 中文文档

一般而言,大家会在pdf中使用中文和英文。如果你在元数据处将输出格式设定为output: pdf_document,很遗憾,即使你在文档中写有中文也不会正常输出。

对此,你需要下载rticles包。下载完成后,在新建rmarkdown文件时选中From Template,从中找到CTeX Documents模板即可。

中文文档模板

图 1.17: 中文文档模板

新建文件中已经将元数据设置好了,之后你只要根据需要适当修改即可。

1.6.2 目录

你可以通过toc选项来设置目录,并根据toc_depth选项来控制目录深度(默认为2),即最多展示到第几级标题。number_sections控制是否为标题编号。

1.6.3 图与表

在元数据处,可以预先设置一些关于图片的参数。

  • fig_width/fig_height

    用于控制图片的宽度与高度,默认为6.5x4.5。

  • fig_crop

    控制是否启用pdfcrop,若系统中有,则默认为true

    官方文档介绍可通过tinytex::tlmgr_install("pdfcrop")进行下载,并需配合ghostscript使用。

    这一块我并不了解,仅仅是将pdfcropghostscript下载过来罢了,不知道具体的使用方法。

  • fig_caption

    在渲染图片时是否生成标题,默认为true

  • dev

    用于渲染图片的图形设备,默认为pdf

    即使设置了dev: png,在正文中导入.jpg图片也能正常显示。

output:
  rticles::ctex:
    fig_width: 7
    fig_height: 6
    fig_caption: true
    dev: pdf
    fig_crop: true

除了在元数据处设置一些参数,还可以再代码块中进行设置,这在第1.3.9节已经介绍过了。这里重新提及仅针对latex的相关设置。

  • out.width/out.height

    控制图片在输出文档中的宽与高,会进行适当放缩(与物理意义上的fig.widthfig.height略有不同)。对于latex输出,可以设置为0.8\\linewidth3in8cm40%(等价于0.4\\linewidth)。

  • out.extra

    对于latex输出,out.extra表示的额外参数将会被输入到\includegraphics[]中,例如out.extra='angle=90'表示图片旋转90度。

  • resize.width/resize.height

    参数值将会被输入到\resizebox{}{}中,用于调整TikZ图形的大小。

  • fig.env

    设置图片环境,例如fig.env = 'marginfigure'在latex中表示\begin{marginfigure}。这个选项要求与fig.cap配合使用,即图片得有标题。

    很遗憾,当outputctex时会报错,而当outputpdf_document时则正常,不知原因。

  • fig.scap

    短标题,其参数值会被输入到\caption[]中,通常会在“List of Figures”中展示。

    在元数据处设置lof: true就可以召唤出插图清单了。注意lof: true不在output里面,而是与它同一个级别。

  • fig.lp

    将被输入到\label{}中的图片标签前缀。

  • fig.pos

    用于\begin{figure}[]的图片位置参数,可选值为'H'(放置在当前位置,即尽可能靠近代码块)、't'(放置在页面顶部)、'b'(放置在页面底部)、'p'(放置在单独一面)、'!H'(强制放置在当前位置),默认为''

  • fig.ncol、fig.subcap、fig.sep

而对于表格,和html文档类似,可在元数据处指定表格的打印形式,可选值有defaultkabletibble、和自定义函数。

1.6.4 语法高亮

第1.5.3节中的语法高亮。