【问题标题】:*Some* figure captions from RMarkdown not showing*一些*来自 RMarkdown 的图形标题未显示
【发布时间】:2015-02-11 05:35:08
【问题描述】:

基本上,我有一个这样配置的 Rmd 文档:

---
title: "Example"
author: "me"
date: "December 2014"
output:
  pdf_document:
    fig_caption: yes
    keep_tex: yes
--

然后,在文档中,我用ggplot2来展示一些图表,例如:

```{r myLabel, fig.cap='My Caption'}
qplot(1:10, 10:1)
```

现在,由于某种原因,我无法解释或调查比这更深入的内容,生成的 TeX 不包含图形环境,即使我使用 fig.env='figure' 强制它也是如此。相反,TeX 只有includegraphics 命令:

\includegraphics{journal_files/figure-latex/myLabel-1.pdf}

同一文档中的其他图形确实具有图形环境,带有标题。即,TeX 输出“Knit PDF”应该产生的是:

\begin{figure}[htbp]
\centering
\includegraphics{journal_files/figure-latex/myLabel-1.pdf}
\caption{My Citation}
\end{figure}

R Markdown 日志窗口只显示不相关的内容:

label: myLabel (with options) 
List of 2
 $ fig.cap: chr "My Caption"
 $ fig.env: chr "figure"

cropping journal_files/figure-latex/myLabel-1.pdf
PDFCROP 1.38, 2012/11/02 - Copyright (c) 2002-2012 by Heiko Oberdiek.

我该怎么做

  • 一旦我按下“Knit PDF”并进入 TeX(“R Markdown”输出窗口没有显示错误,甚至会回显 [missing] 标题!),找出到底发生了什么(调试日志?),
  • 或者,更好的是,有没有人遇到过这个问题并且知道 RStudio、knitr 和 pandoc 有什么问题?

【问题讨论】:

    标签: rstudio knitr pandoc r-markdown


    【解决方案1】:

    事实证明,解决方案非常简单:RMarkdown 编译器不显示两个连续数字的标题,如下所示:

    ```{r myLabel1, fig.cap='My Caption 1'}
    qplot(1:10, 10:1)
    ```
    ```{r myLabel2, fig.cap='My Caption 2'}
    qplot(1:10, 10:1)
    ```
    

    或者对于未与新段落中的文本分开的图形,如下所示:

    ```{r myLabel1, fig.cap='My Caption 1'}
    qplot(1:10, 10:1)
    ```
    As shown in Fig. 2, the inter-galactic distances are strongly correlated with the observed redshift ...
    

    在此设置中,没有字幕,并且没有在 TeX 文件中创建图形环境。

    相反,在两个绘图之间,必须至少有 两个 间距(换行符)字符。即,这很好用,两个字幕都显示:

    ```{r myLabel1, fig.cap='My Caption 1'}
    qplot(1:10, 10:1)
    ```
    
    ```{r myLabel2, fig.cap='My Caption 2'}
    qplot(1:10, 10:1)
    ```
    

    尽管这是一个可以包含内联图形的功能,但如果带有未显示的 fig.cap 参数的图形有警告消息,那就太好了。

    【讨论】:

    • Pandoc 文档中记录了这一点:johnmacfarlane.net/pandoc/README.html#images 这不是 错误(而是您想要做出的 选择),所以rmarkdown 对此无能为力。
    • 好吧,我无法从链接信息或任何其他地方推断出这个问题。另外,我认为,“编译器”输出至少应该提出一个警告,即在连续两行的开头放置三个反引号是无法正确处理的。
    • 文档说“在段落中单独出现的图像将呈现为带有标题的图形”,而a段落表示换行符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2014-09-01
    • 2017-02-10
    • 2021-12-20
    • 1970-01-01
    • 2019-07-15
    相关资源
    最近更新 更多