Linux 系統使用 R markdown 和 LaTeX 生成中文 PDF 的基本配置
阿新 • • 發佈:2018-12-16
本人工作中需要在 Linux 系統中自動化生成 PDF 報告。網上有很多介紹如何在 Windows 系統中使用 R Markdown 生成 PDF 的文章,很少有 Linux 系統下的介紹文章。因此記錄下自己的一些心得體會,希望對大家有幫助。
準備工作
安裝 TeX Live
安裝 R 包 rmarkdown 和 knitr
# knitr 會自動一起安裝
install.packages('rmarkdown')
配置中文字型
-
獲取字型
- 從 Windows 字型庫複製字型
C:\Windows\Fonts
- 從 Windows 字型庫複製字型
-
複製到 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=
生成 PDF
-
開啟編輯器,輸入以下 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')
-
檢視結果檔案
test_pdf_zh.pdf