我已经发布了这个问题,但是它缺少MWE,所以我决定删除旧问题并发布一个新问题,因为旧问题几乎必须被完全重写。
我正在尝试使用.Rmd
将knitr
研究报告排版为pdf。我想包含在ggplot
中创建的图形。
如果我包含out.width
或out.height
块选项,则该图不会出现在输出pdf文档中。
这是MWE:
1)数据创建:
datas <- data.frame(x = rep(1:30), y = rep(40:69))
save(datas, file = 'datas.RData')
2)主文件-file.Rmd
:
---
author: "NN"
title: "Title"
fontsize: 14pt
geometry: margin=2cm
output: pdf_document
header-includes: |
\usepackage{caption}
\usepackage{bookman}
\usepackage{multirow}
\usepackage{array}
\usepackage[htt]{hyphenat}
\usepackage{booktabs}
\usepackage{longtable}
\usepackage[table]{xcolor}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{colortbl}
\usepackage{pdflscape}
\usepackage{tabu}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage[normalem]{ulem}
\usepackage{makecell}
\captionsetup[table]{width=\textwidth}
\renewcommand{\tablename}{Tablica}
\renewcommand{\figurename}{Slika}
---
```{r setup, echo = F, include = F}
library(knitr)
library(kableExtra)
# knitr setup
opts_chunk$set(prompt = T, background = '#E5E8E8', dpi = 600, fig.width = 12, dev = 'pdf')
options(digits = 3)
# packages
library(tidyverse)
library(data.table)
library(wrapr)
library(readxl)
library(magrittr)
library(psych)
library(ggpubr)
# loading the data
load('datas.RData')
```
sample text
```{r desk_stat, child = 'file_d.Rmd'}
```
3)子文件(包含情节的文件)-file_d.Rmd
:
```{r, fig.cap = '\\label{bar-znanje-visina}Some label.', cache = T, out.width = '.49\\linewidth'}
ggplot(datas,
aes(x = x)) +
geom_bar()
```
如果使用这些选项对它进行排版,则.md
文件中的图像将包含在其中:
<embed src="figure/unnamed-chunk-1-1.pdf" title="\label{bar-znanje-visina}Some label." alt="\label{bar-znanje-visina}Some label." width=".49\linewidth" type="application/pdf" />
输出的pdf看起来像这样:
如果我在没有out.width
选项的情况下排版输出,则.md
文件中的图像将包含在以下内容中:
![\label{bar-znanje-visina}Some label.](figure/unnamed-chunk-1-1.pdf)
输出的pdf看起来像这样:
我正在用.pmd编织.Rmd文件
Rscript -e 'library(knitr); opts_knit$set(out.format = "latex"); knit("file.Rmd")'
会话信息:
R version 3.4.3 (2017-11-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Manjaro Linux
Matrix products: default
BLAS: /usr/local/lib64/R/lib/libRblas.so
LAPACK: /usr/local/lib64/R/lib/libRlapack.so
locale:
[1] LC_CTYPE=en_US.utf8 LC_NUMERIC=C
[3] LC_TIME=hr_HR.UTF-8 LC_COLLATE=en_US.utf8
[5] LC_MONETARY=hr_HR.UTF-8 LC_MESSAGES=en_US.utf8
[7] LC_PAPER=hr_HR.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=hr_HR.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] kableExtra_0.9.0 knitr_1.20 nvimcom_0.9-72
loaded via a namespace (and not attached):
[1] Rcpp_0.12.16 rstudioapi_0.7 xml2_1.2.0 magrittr_1.5
[5] hms_0.4.2 rvest_0.3.2 munsell_0.4.3 viridisLite_0.3.0
[9] colorspace_1.3-2 R6_2.2.2 rlang_0.2.0 plyr_1.8.4
[13] stringr_1.3.0 httr_1.3.1 tools_3.4.3 htmltools_0.3.6
[17] rprojroot_1.3-2 digest_0.6.15 tibble_1.4.2 readr_1.1.1
[21] evaluate_0.10.1 rmarkdown_1.9 stringi_1.1.7 compiler_3.4.3
[25] pillar_1.2.1 scales_0.5.0 backports_1.1.2 pkgconfig_2.0.1
编辑:更新
我尝试排版Yihui的最小.Rnw
example字体,效果很好。我还尝试修改它,以便它显示来自MWE的图形,并且它也可以工作。我还注意到,在编译keep_tex = true
文件时,设置.Rmd
不会执行任何操作。没有创建tex
文件。
答案 0 :(得分:1)
如果您总是编织成pdf,则可以尝试在代码块设置中设置out.width = '49%'
。您也可以尝试在代码块中调整fig.width =
设置,该设置采用以英寸为单位的图形宽度大小。如果所有方法都不起作用,我还将在gridExtra软件包的grid.arrange()
函数中take a look
您的问题也无法重现。在Win10机器上运行您的代码时,得到以下输出。
答案 1 :(得分:1)
使用knitr::knit()
比使用rmarkdown::render()
更容易。您可以直接调用
Rscript -e 'rmarkdown::render("file.Rmd")'
或间接使用littler
包中的示例脚本
render.r file.Rmd
在命令行上。