提问人:user2338823 提问时间:10/30/2023 最后编辑:user2338823 更新时间:11/18/2023 访问量:236
来自 Rmarkdown 的 pdf - landscape 和 aspectratio=169
pdf from Rmarkdown - landscape and aspectratio=169
问:
我从 Rmarkdown 文件制作了一个 PDF。 我希望以横向模式制作 pdf,以便它占据全屏。 横向模式有效,但不会占据全屏。我读过这篇文章,其中建议设置 aspectratio=169。这是我做不到的。
下面是一个可重现的例子:
---
title: "Testing landscape and aspect ratio"
output:
pdf_document:
number_sections: true
classoption:
- landscape
- "aspectratio=169"
header-includes:
- \usepackage{dcolumn}
documentclass: article
geometry: margin=1.5cm
---
```{r}
plot(rnorm(100))
```
我只试过.这确实使它成为横向的,但不会占据整个屏幕。classoption: landscape
下面是输出的屏幕截图:
这是我的会话信息():
> sessionInfo()
R version 4.3.1 (2023-06-16)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 11 (bullseye)
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.13.so; LAPACK version 3.9.0
locale:
[1] LC_CTYPE=en_IN LC_NUMERIC=C LC_TIME=en_IN
[4] LC_COLLATE=en_IN LC_MONETARY=en_IN LC_MESSAGES=en_IN
[7] LC_PAPER=en_IN LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_IN LC_IDENTIFICATION=C
time zone: Asia/Kolkata
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.43
loaded via a namespace (and not attached):
[1] compiler_4.3.1 tools_4.3.1 xfun_0.39
>
更新:我的 R 版本已更改,但此代码的输出仍然相同。
这是我的新sessionInfo():
> sessionInfo()
R version 4.3.2 (2023-10-31)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 11 (bullseye)
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.13.so; LAPACK version 3.9.0
locale:
[1] LC_CTYPE=en_IN LC_NUMERIC=C LC_TIME=en_IN
[4] LC_COLLATE=en_IN LC_MONETARY=en_IN LC_MESSAGES=en_IN
[7] LC_PAPER=en_IN LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_IN LC_IDENTIFICATION=C
time zone: Asia/Kolkata
tzcode source: system (glibc)
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_4.3.2
>
答:
您可以使用块选项。请参阅此帖子:“% 被转换为 \textheight 和 \linewidth 的比例因子)”out.extra='keepaspectratio=true'
---
title: "Testing landscape and aspect ratio"
output:
pdf_document:
number_sections: true
classoption:
- landscape
- "aspectratio=169"
header-includes:
- \usepackage{dcolumn}
documentclass: article
geometry: margin=1.5cm
---
```{r, out.extra='keepaspectratio=true', out.height='100%', out.width="100%"}
plot(rnorm(100))
```
结果:
评论
因为这是一个 base-R 图,所以您可以通过控制某些设置更轻松地执行一些您想要的事情。例如,为避免在绘图周围留出多余空间,请使用par()
par(mar=c(4,4,1,1)+.1)
plot(rnorm(100))
以前的答案针对的是图形方向/比例,而实际问题涉及页面方向/比例。此外,关于页面方向和大小/比率,我认为在这种情况下不适合控制页面大小,因为它意味着在实际使用 (LaTeX) 类时使用了 (LaTeX) 类(并且它不会识别参数)。aspectratio
beamer
article
aspectratio
为了满足您的请求,您可以使用几何包的规范,而不是为类指定选项,例如替换当前标头:
---
title: "Testing landscape and aspect ratio"
output:
pdf_document:
number_sections: true
classoption:
- landscape
- "aspectratio=169"
header-includes:
- \usepackage{dcolumn}
documentclass: article
geometry: margin=1.5cm
---
有了这个:
---
title: "Testing landscape and aspect ratio"
output:
pdf_document:
number_sections: true
header-includes:
- \usepackage{dcolumn}
documentclass: article
geometry: margin=1.5cm, paperwidth=24cm, paperheight=13.5cm
---
行的 和 参数告诉几何包为页面提供特定的尺寸/纵横比(16/9 纵横比由 13.5 = 9/16 * 24 或相反 24 = 16/9 * 13.5 这一事实确保)。当然,您可以更改确切的尺寸,这将影响相对字体大小和/或纵横比。此外,您不再需要该零件。paperwidth
paperheight
geometry:
classoption
请注意,为了澄清问题的某些方面,您必须知道将 RMarkdown 文档编译为 PDF 文件使用 LaTeX 文档准备系统。标题中的几个参数实际上涉及 LaTeX 将如何生成最终的 PDF(、、、)、几何(和 dcolumn)作为 LaTeX 包。documentclass
classoption
header-includes
geometry
关于这些值的选择:
和参数记录在LaTeX的“geometry”包中(参见例如
在CTAN上:https://ctan.org/pkg/geometry)。对于习惯于使用 LaTeX 的人来说,在这些行中“识别”LaTeX 选项是相对自然的,即使它们在 LaTeX 文档中的结构并不完全如此(但它们的名称是相同的)。paperwidth
paperheight
关于这些具体数字的选择,它是相对的 任意。要考虑的事项是:
- 这些尺寸表示 pdf 页面的物理大小(在 感觉,如果文档没有打印,它们的大小会是多少 适应打印机中的纸张)
- 如果这些尺寸减小...相对字体大小将增加 因为 LaTeX 会将相同的字体投射到较小的虚拟纸上,
- 如果这些尺寸增加......相对字体大小将 减少,因为 LaTeX 会将相同的字体投射到更大的字体上 虚拟纸,
- 它还可能影响页面上的图形显示,具体取决于图形尺寸的控制方式,
- 我从 16x9cm 尺寸开始处理,特别是纸张宽度和 PaperHeight,并估计字体太大了,不符合我的口味, 然后把它们翻了一番,觉得字体太小了,不适合幻灯片, 然后我最终尝试将 16x9cm 乘以 1.5 倍,这 给了我 24x13.5 厘米,我发现还可以。
- 但是可以任意改变这些尺寸(即使使用较小的 步数和比率与 16/9 不同),具体取决于目标 达到。
- 也可以指定不同的单位(pt = points, in = 英寸...
评论
fig.align='center'
beamer