Rmarkdown安装配置、输出PDF正文中文以及图片中文配置

原创 2018年04月14日 22:58:20

如果想用R的markdown做HTML或者word,OK,直接安装Rmarkdown即可(在安装此包之前需要安装knitr包),也不用担心中文乱码的问题。
实际上用上面得到的HTML或者word转化为也OK,然而对于有完美主义者的人来说,绝不会这么做,因为这样得到的PDF太垃圾,图简直TMD太糟糕。
事实上,好的东东是要付出代价的。

配置

  1. 安装 R、Rstudio 、 pandoc(转化格式功能)、MiKTeX(小型LaTeX)
  2. Rstudio 中最好配置一下配置编码格式utf-8
  3. Rstudio中将编译器设置为 xeLaTeX , Tools -- Global Options -- Sweave,配置如下:
    这里写图片描述
  4. 需要注意rmd 里的 yaml 栏设置(代码开头设置),在 rmd 文件的同一路径下放header.tex文件(tex文件的基本信息)。

Rmd 文件


---
title: "PDF测试"
author: "douzi"
date: "2018/4/14"
CJKmainfont: Microsoft YaHei
output:
  pdf_document:
    includes:
      in_header: header.tex
    keep_tex: yes  
    latex_engine: xelatex
---

以上就是rmd 里的 yaml 设置,一定要注意换行的空格,设置了默认的编译器为xeLaTeX还需要这个参数latex_engine:xelatex

header.tex

注意:

  • header.tex文件一定要是UTF-8 格式
  • header.tex一定要与rmd放在同一路径下

header.tex文件内容

%\documentclass{article} 
\usepackage[BoldFont,SlantFont,CJKsetspaces,CJKchecksingle]{xeCJK}
\setCJKmainfont[BoldFont=SimSun]{Microsoft YaHei} % 设置为雅黑字体
\setCJKmonofont{SimSun} % 设置缺省中文字体
\parindent 2em   % 设置段首缩进

注意:
\documentclass{article} 千万不能加上,因为 knitr 使用的 md 转 tex 的编译器 pandoc 在生成 tex 的时会自动加上该设置, 多此一举会报错。

上述的一切足以输出一个高质量的PDF,而问题往往没有折磨容易解决。

pdf中的图确实是高清,正文也确实是中文,可惜可惜的是,图!TMD中文给我整哪里去了,八嘎!恶心极了!

这里写图片描述

表急,搜了好久,终于逆袭了!

那就是showtext,love u!

表说话,安装就对了。

在代码中加入fig.showtext = TRUE, fig.align='center',同时,需要library(showtext)showtext::showtext.begin()showtext::showtext.end()

“`{r fig.showtext = TRUE, fig.align=’center’,echo=FALSE, message=FALSE, warning=FALSE}
library(showtext)
showtext::showtext.begin()
ggplot(data= china_edge_avg_url_rt, aes(x=date, y=avg_url_rt, group=CDN_ISP, shape=CDN_ISP, color=CDN_ISP )) +
#geom_smooth(size=1)
geom_line(linetype = 2,size =1) +
geom_point(size =2)+
xlab(”) +
ylab(‘平均响应时间:ms’) +
labs(title=’xxxxxxxxxxxxxxxxxxx’)+
theme(legend.position=”top”,axis.text.x = element_text(angle = 60, hjust = 0.5, vjust = 0.5),
text = element_text(color = “black”, size = 13),plot.title = element_text(hjust = 0.5))
showtext::showtext.end()

这里写图片描述

OK!完美!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012111465/article/details/79945372

怎样知道我的程序是否运行在DELPHI?

function IsAppRunningInDelphi : boolean; var   hKernelDll : THANDLE;   proc_IsDebuggerPresent : TPro...
  • laoli
  • laoli
  • 2001-10-05 14:16:00
  • 933

Rmarkdown输出PDF的中文支持问题解决

用Rmarkdown制作PDF时,如果里面有中文字符,在生成PDF的时候经常会出错。因此常有一些几种方式处理:   (1)将.rmd文件生成md,然后用pandoc生成PDF (2)用Rstudio生...
  • u014032673
  • u014032673
  • 2014-12-16 09:51:17
  • 3147

Rmarkdown关于PDF报告的中文输出问题

最近喜欢上了Rmarkdown,关于rmarkdown生成报告的问题,其实在生成html,word都是没有问题的,只要基本配置好,都不会出问题,但是我们想生成PDF而且是含有中文的时候,就有问题了。 ...
  • zhuangailing
  • zhuangailing
  • 2018-01-09 21:44:35
  • 508

RStudio+Markdown+Pandoc的中文配置

之前的博客有写到过Markdown轻量级标记语言,也提到过RStudio,还有神奇的Pandoc。今天就介绍一下用RStudio来搭配Markdown的写作环境,并利用Pandoc来导出Word或者P...
  • clheang
  • clheang
  • 2015-02-11 15:30:10
  • 9067

Rmarkdown转换PDF

想试试R语言自动化报告,结果出现中文各种报错。 网上查了些方法,记录下~ 安装pandoc地址:https://code.google.com/p/pandoc/downloads/list 需要...
  • wendaomudong_l2d4
  • wendaomudong_l2d4
  • 2017-07-29 16:08:05
  • 604

markdown转pdf

md文件转pdf现在markdown越来越成为IT行业的里面的主流,而不准备在code上多花功夫的我,自然希望借助其来多写点有用的文档。最近在学李沐大神的mxnet的框架时,作为学习资料,clone下...
  • gcaxuxi
  • gcaxuxi
  • 2017-09-01 08:58:19
  • 17651

Atom编写Markdown并导出PDF

1. Markdown文件简明语法如果你熟悉markdown语法,请跳过这段。作为一个代码工作者,难免要碰到写文档的事情。写文档的时候难免要在文档中插入代码。可是Word也好,有道云笔记也好,都存在一...
  • martinwangjun
  • martinwangjun
  • 2016-05-17 23:36:49
  • 14167

将markdown文件转换为pdf

最近在用markdown写技术随笔,感觉很好,可有时候需要吧markdown文件转换为pdf,在网上查了查,这个可以用pandoc来实现, 可感觉太麻烦,还要安装pdflatex:  ...
  • sundaydashu
  • sundaydashu
  • 2012-11-29 11:48:50
  • 14100

#R_Knitr#Markdown如何保存为PDF

转载自:http://www.cnblogs.com/MikeZhang/archive/2012/11/29/markdown2pdf_20121129.html 最近在用markdown写技...
  • duqi_yc
  • duqi_yc
  • 2013-02-21 22:46:38
  • 2380

pandoc将含有中文的markdown文件转成pdf时的问题及思考

1 问题我写了一个markdown文件,里面含有中文字符,我想利用pandoc将其转换为pdf格式,采用下面命令:pandoc -f markdown_github my.md -o test.pdf...
  • RobertChenGuangzhi
  • RobertChenGuangzhi
  • 2016-04-17 21:47:41
  • 3845
收藏助手
不良信息举报
您举报文章:Rmarkdown安装配置、输出PDF正文中文以及图片中文配置
举报原因:
原因补充:

(最多只允许输入30个字)