php生成pdf中文断码_Rmarkdown导出中文PDF解决方案
總的來說,通過Rmarkdown輸出中文版pdf報告,要解決以下兩個核心問題:
- 安裝TinyTex
- 安裝任一LaTeX套件(TeX LiveCTeXMiKTexMacTeX)
2. PDF中文顯示問題,下面兩種方案中更推薦后者:
- 在YAML中寫入LaTeX的一些設置;
- 使用rticles包中的CTeX Documents模板
下面以事件先后順序為線索詳細介紹Rmarkdown輸出中文版pdf報告的解決方案。
Rmarkdown導出PDF
首先需要解決的是創(chuàng)建Rmarkdown并導出PDF的問題。
安裝好R語言與Rstudio之后,通過菜單欄File >>New File >>R Markdown可以直接在Rstudio上創(chuàng)建一個新的Rmarkdown文檔,第一次創(chuàng)建會彈出對話框提示需要安裝以下R包,點擊Yes即可
再次點擊菜單欄File>> New File>> R Markdown,彈出以下對話框點擊OK后,可以成功地創(chuàng)建Rmarkdown文件
但是如果要導出PDF,會出現(xiàn)報錯pdflatex not found
根據(jù)報錯需要安裝相應的LaTeX環(huán)境,此處有多種方案可以選擇
- 安裝一個常用的TeX集成編輯環(huán)境,如TeX Live,CTeX,MiKTex,MacTeX任選其一即可,安裝過程比較漫長;
- 比較簡單的方式是,使用謝益輝大神的開發(fā)的TinyTeX包,能很好的兼容Rmarkdown,安裝相對比較方便快捷,參考TinyTeX中文文檔,直接在Rstudio控制臺輸入以下命令即可:
一臺電腦上同時存在多種TeX環(huán)境會產(chǎn)生沖突,因此益輝大神建議安裝TinyTex之前需要卸載電腦中的其他 LaTeX 套裝(TeX Live 或 MiKTeX 或 MacTeX)。
考慮到后續(xù)論文寫作需求,我選擇了安裝目前比較常用的TeX Live。經(jīng)歷了漫長的TeX Live安裝并重新啟動Rstudio之后,Rmarkdown文件就可以正常導出成PDF了,但還不能顯示中文。
PDF中文解決方案
完成上述步驟后,接下來解決中文輸出的問題,有兩種方案可以選擇:
方案一,在原有的Rmarkdown模板基礎上,在YAML中加上命令調(diào)用LateX的xeCJK包,即把原有的Rmarkdown文件頭改成如下格式:
--- title: "中文" CJKmainfont: Microsoft YaHei output:pdf_document:includes:header-includes:- usepackage{xeCJK}keep_tex: yeslatex_engine: xelatex ---上述方法能夠解決中文顯示的問題,但是原始Rmarkdown模板是基于英文寫作習慣設計,如果全篇用中文寫作會很奇怪,且模板格式比較單一。
因此強烈安利方案二,謝益輝大神寫的Rmarkdown的模板包rticles,里面的CTeX Documents就是支持中文pdf的模板,除此之外還有適用于不同期刊的Rmarkdown模板,通過以下命令即可安裝:
install.packages("rticles")此時再次創(chuàng)建新的Rmarkdown文檔,會出現(xiàn)很多新的模板,選擇CTeX Document即可
此外,原有CTeX Document模板的頁邊距較大,可以在YAML中加入geometry選項調(diào)節(jié)頁邊距:
--- title: "R語言簡介" author:- PurePlayer documentclass: ctexart geometry: "left=2.5cm,right=2cm,top=3cm,bottom=2.5cm" output:rticles::ctex:fig_caption: yesnumber_sections: yestoc: yes classoption: "hyperref," ---然后就可以導出自動生成目錄、頁眉、標題序號的PDF了,至此大功告成!
歡迎關注我的知乎|簡書|CSDN|微信公眾號PurePlay , 會不定期分享量化金融與R干貨。
總結
以上是生活随笔為你收集整理的php生成pdf中文断码_Rmarkdown导出中文PDF解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 二进制 定义_在Java中,我
- 下一篇: php做游戏登录服务器,游戏登陆服务器p