我有一个非常大的系统发育树,我非常想插入到我正在使用Rmarkdown和knitr编写的补充材料中。我不喜欢在页面上分割树木,我怀疑有人会打印出来,所以我想我只是在我生成的pdf中间有一个大页面。
问题是如何在A4文档中更改一页的页面大小?我是针对knitr的新手,我发现了全局纸张尺寸选项,但我很难找到设置Word中相应部分的方法。
(更新)嗨其他人有什么建议吗?我尝试了pdfpages包,但这似乎导致页面上同样小的数字,正在粘贴的pdf的大小,即如果我用20英寸的pdf数字然后将页面粘贴到使用\ includepdf然后我得到一个在20英寸20英寸的页面上有一个小得多的数字(与上面的\ eject示例相同)。看起来knitr或Latex强制图形具有特定的大小,而与页面大小无关。有任何想法吗?这是一个可重复的例子:
---
title: "Test"
output:
pdf_document:
latex_engine: xelatex
header-includes:
- \usepackage{pdfpages}
---
```{r setup, include=FALSE}
require(knitr)
knitr::opts_chunk$set(echo = FALSE,
warning=FALSE,
message=FALSE,
dev = 'pdf',
fig.align='center')
```
```{r mtcars, echo=FALSE}
library(ggplot2)
pdf("myplot.pdf", width=20, height=20)
ggplot(mtcars, aes(mpg, wt)) + geom_point()
dev.off()
```
#Here's some text on a normal page, the following page is bigger but has a tiny figure.
\newpage
\includepdf[fitpaper=true]{myplot.pdf}
答案 0 :(得分:3)
你应该可以像这样使用\ejectpage
:
---
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## R Markdown
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>.
When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
```{r cars}
summary(cars)
```
## Including Plots
You can also embed plots, for example:
```{r pressure, echo=FALSE}
plot(pressure)
```
Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot.
\eject \pdfpagewidth=20in \pdfpageheight=20in
```{r mtcars}
library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) + geom_point()
```
\eject \pdfpagewidth=210mm \pdfpageheight=297mm
Back
(由于某些原因,我只能记住A4高度,以mm为单位)
答案 1 :(得分:0)
在处理大型系统树时,我也面临着同样的困难。
基于hrbrmstr's answer,我想出了以下代码段。
诀窍是使knitr生成图形,但不立即将其包括在中间.tex中(因此fig.show="hide"
)。然后,由于图形路径是可预测的,因此可以在代码块后面插入一些乳胶。
但是,定位页码时不会考虑新的页面高度,因此它们倾向于打印在图像上。我试图多次克服这种行为,但最后我只是用\thispagestyle{empty}
将其关闭。
---
output: pdf_document
---
```{r fig_name, fig.show="hide", fig.height=30, fig.width=7}
plot(1)
```
\clearpage
\thispagestyle{empty}
\pdfpageheight=33in
\begin{figure}[p]
\caption{This is your caption.}\label{fig:fig_name}
{\centering \includegraphics[height=30in, keepaspectratio]{main_files/figure-latex/fig_name-1} }
\end{figure}
\clearpage
\pdfpageheight=11in