本人工作中需要在 Linux 系统中自动化生成 PDF 报告。网上有很多介绍如何在 Windows 系统中使用 R Markdown 生成 PDF 的文章,很少有 Linux 系统下的介绍文章。因此记录下自己的一些心得体会,希望对大家有帮助。
建议安装 TeX Live 最新版,链接为 http://tug.org/texlive/acquire.html,既可以网络方式安装,也可以直接下载 DVD 再安装。软件安装请参考官方版快速安装教程,或查看完整版文档在线英文文档、中文 PDF 下载页面,或者网上搜索安装方法。
install.packages(c('rmarkdown', 'knitr', 'caTools'))
获取字体
C:\Windows\Fonts
复制到 Linux 系统的字体库(二选一)
/usr/share/fonts
${HOME}/.fonts
检查字体是否安装成功 fc-list
$ fc-list
# 或者使用 fc-list :lang=zh 查看中文字体
/home/user/.fonts/AdobeFangsongStd-Regular (v5.010).otf: Adobe 仿宋 Std,Adobe Fangsong Std,Adobe Fangsong Std R,Adobe 仿宋 Std R:style=R,Regular
/home/user/.fonts/AdobeHeitiStd-Regular.otf: Adobe 黑体 Std,Adobe Heiti Std,Adobe Heiti Std R,Adobe 黑体 Std R:style=R,Regular
/home/user/.fonts/AdobeKaitiStd-Regular (v5.010).otf: Adobe 楷体 Std,Adobe Kaiti Std,Adobe Kaiti Std R,Adobe 楷体 Std R:style=R,Regular
/home/user/.fonts/AdobeSongStd-Light.otf: Adobe 宋体 Std,Adobe Song Std,Adobe Song Std L,Adobe 宋体 Std L:style=L,Regular
/home/user/.fonts/FandolBraille-Display.otf: Fandol Braille,Fandol Braille Display:style=Display,Regular
/home/user/.fonts/FandolBraille-Regular.otf: Fandol Braille,Fandol Braille Regular:style=Regular
/home/user/.fonts/FandolFang-Regular.otf: FandolFang,FandolFang R:style=Regular
/home/user/.fonts/FandolHei-Bold.otf: FandolHei:style=Bold
/home/user/.fonts/FandolHei-Regular.otf: FandolHei:style=Regular
/home/user/.fonts/FandolKai-Regular.otf: FandolKai:style=Regular
/home/user/.fonts/FandolSong-Bold.otf: FandolSong:style=Bold
/home/user/.fonts/FandolSong-Regular.otf: FandolSong:style=Regular
/home/user/.fonts/msyh.ttf: 微软雅黑,Microsoft YaHei:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,Arrunta
/home/user/.fonts/timesbd.ttf: Times New Roman:style=Bold,Negreta,tučné,fed,Fett,Έντονα,Negrita,Lihavoitu,Gras,Félkövér,Grassetto,Vet,Halvfet,Pogrubiona,Negrito,Полужирный,Fet,Kalın,Krepko,đậm,Lodia
/home/user/.fonts/timesbi.ttf: Times New Roman:style=Bold Italic,Negreta cursiva,tučné kurzíva,fed kursiv,Fett Kursiv,Έντονα Πλάγια,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Félkövér dőlt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itálico,Полужирный Курсив,Tučná kurzíva,Fet Kursiv,Kalın İtalik,Krepko poševno,nghiêng đậm,Lodi etzana
/home/user/.fonts/timesi.ttf: Times New Roman:style=Italic,cursiva,kurzíva,kursiv,Πλάγια,Kursivoitu,Italique,Dőlt,Corsivo,Cursief,kursywa,Itálico,Курсив,İtalik,Poševno,nghiêng,Etzana
/home/user/.fonts/times.ttf: Times New Roman:style=Regular,Normal,obyčejné,Standard,Κανονικά,Normaali,Normál,Normale,Standaard,Normalny,Обычный,Normálne,Navadno,thường,Arrunta
打开编辑器,输入以下 R Markdown 代码,以 UTF-8
编码保存为文件 test_pdf_zh.Rmd
。注意其中的 latex_engine: xelatex
用于设置 LaTeX 的引擎。更多 R Markdown 的用法请参考 https://rmarkdown.rstudio.com/
---
title: "R markdown 生成 pdf"
output:
pdf_document:
includes:
in_header: header.tex
latex_engine: xelatex
---
# R Markdown
Context
# 中文标题
中文内容
准备 header.tex
,同样文件以 UTF-8
编码,与test_pdf_zh.Rmd
文件放置在同一目录。该文件设置中文环境 ctex
,也可以自定义中英文字体。%
后的内容为注释。
A、 使用默认的 Fandol 字体
\usepackage[UTF8, fontset = fandol]{ctex}
B、使用 adobe 字体
\usepackage[UTF8, fontset = adobe]{ctex}
C、自定义字体
\usepackage[UTF8]{ctex}
\setmainfont{Times New Roman} % 设置英文字体
\setCJKmainfont{Microsoft YaHei} % 设置中文字体
启动 R,生成 pdf
library(rmarkdown)
render('test_pdf_zh.Rmd')