R markdown:我可以将pdf作为图像插入到r markdown文件中吗?

l01*_*110 12 r

我试图将pdf图像插入到r markdown文件中.我知道可以插入jpg或png图像.我只是想知道是否也可以插入PDF图像.非常感谢!

l01*_*110 11

对不起,我发现以前有类似的帖子: 在Rmarkdown文件中添加pdf文件

基本上,我可以使用类似下面的东西适用于html输出:
<img src="myFirstAlignment2.pdf" alt="some text" width="4200" height="4200">

类似下面的内容适用于pdf输出:(1)可能的解决方案 \begin{center} <br> \includegraphics[width=8in]{myFirstAlignment2.pdf} <br> \end{center} (2)可能的解决方案 ![Alt](myFirstAlignment2.pdf)

如果pdf文件不在您的工作目录中,myFirstAlignment2.pdf则应替换path\myFirstAlignment2.pdf.

  • 值得注意的是,如果您希望将此 .md 显示在网络上,则 pdf 会在 Safari 中按需要显示为图像,但不幸的是,此语法与 Firefox 或 Chrome 不兼容。这些程序无法识别带有图像标签的 PDF。相反,您必须使用 ```&lt;object data="/PATH/TO/images/TITLE.pdf" type="application/pdf" width="100%"&gt; &lt;/object&gt; ``` (3认同)
  • @Nova你很久以前就已经解决了这个问题,但这里有一个[可能的解决方案](https://tex.stackexchange.com/a/91442).这也适用于包含PDF输出的多页PDF:`\ includegraphics [page = 2] {myFirstAlignment2.pdf}` (2认同)

Rob*_*ith 9

如果您只是想将已从某些R分析导出的图像插入pdf图像,则还可以使用knitr引擎中的标准图像选项。

用类似的东西:

```{r, out.width="0.3\\linewidth", include=TRUE, fig.align="center", fig.cap=c("your caption"), echo=FALSE}
knitr::include_graphics("./images/imagename.pdf")
```
Run Code Online (Sandbox Code Playgroud)

不幸的是,您无法指定图像输出的初始尺寸(fig.width和fig.height),您需要在初始输出中预先定义这些尺寸,但可以在文档中指定图像的最终尺寸(宽度)。但是,如下所述,这仅限于按比例缩小。

如果文件位于相同的工作目录中,则当然也可以省去初始目录规范。只需注意操作系统在指定映像路径方面的差异即可。

一种替代方法是使用@hermestrismegistus在这篇文章中指出的Markdown语法:

![Image Title](./path/to/image.pdf){width=65%}
Run Code Online (Sandbox Code Playgroud)

也可以并排收集多个图像:

![Image Title](./path/to/image.pdf){width=33%}![Image2 Title](./path/to/image2.pdf){width=33%}![Image3 Title](./path/to/image3.pdf){width=33%}
Run Code Online (Sandbox Code Playgroud)

编辑:

在更广泛地使用文本引用之后,我发现使用r块和该include_graphics选项最为有用。也因为图像对齐(调整)方面的灵活性。

举个例子:

```{r image-ref-for-in-text, echo = FALSE, message=FALSE, fig.align='center', fig.cap='Some cool caption', out.width='0.75\\linewidth', fig.pos='H'}
knitr::include_graphics("./folder/folder/plot_file_name.pdf")
```
Run Code Online (Sandbox Code Playgroud)

该引用以后可以在文本中使用,例如,图\@ref(fig:image-ref-for-in-text)说明等等。

使用此格式时需要注意的一些重要事项:

  1. 您只能通过代码块将PDF图像扩展到原始文件中设置的out.widthout.height条件.pdf。因此,我建议将它们稍微设置在原始图像的较大一侧(请注意,任何图表文本都会相应缩放)。

  2. 文本参考代码(在这种情况下为image-ref-for-in-text)不能包含任何下划线(_),但可以包含破折号(-)。您将通过一条错误消息知道是否弄错了! Package caption Error: \caption outside float.

  3. 为了防止绘图漂移到文档的错误部分,但不幸的是,这种方式会生成一些空白,上面的示例包括fig.pos='H'。其中H表示“保持”位置。对于前一个Markdown选项,可以通过.在最后一个花括号后紧跟一个句点(句点)来实现相同的目的。

例:

![Image Title](./path/to/image.pdf){width=75%}.
Run Code Online (Sandbox Code Playgroud)

不幸的是,后一种选择会导致一些难看的停止。我更喜欢该include_graphics选项的另一个原因。


Fal*_*sio 6

关于最佳答案的评论,有一种方法可以使用第二个选项,并且输出不会很小。

使用下面的语法,高度是一个很大的数字。括号中的文本是其正常工作所必需的。

![Alt](./file.pdf){width=100% height=400}
Run Code Online (Sandbox Code Playgroud)


Ric*_*cky 5

在调整 pdf 大小方面,概述的答案都不适合我,因此使用 out.height 和 out.width 的代码块选项添加另一个答案来控制大小:

{r out.height = "460px", out.width='800px', echo=F}
knitr::include_graphics("./images/imagename.pdf")
Run Code Online (Sandbox Code Playgroud)