【问题标题】:Fig caption above figure in R Markdown PDF [duplicate]R Markdown PDF中的上图标题[重复]
【发布时间】:2018-03-06 22:33:14
【问题描述】:

我想知道如何让我的标题出现在 R Markdown 中的数字上方。

这是一个工作示例:

---
title: "Practical"
output:
  pdf_document:
    fig_caption: yes
    latex_engine: xelatex
---

```{r fig1, echo=FALSE, fig.cap="\\label{fig:fig1}Caption"}
x <- 1:10
y <- 11:20
plot(x, y)
```

here 之前已经提出过这个问题,但建议的代码似乎对我不起作用。

【问题讨论】:

  • 这将取决于输出格式。请提供minimal working example,它将以您的预期格式(例如,pdf、html、docx)进行编译和呈现。
  • 在回答了这个问题后,我意识到它在很大程度上被之前发布的另一个帖子所复制。我已经修改了我的答案并在那里重新发布。

标签: r r-markdown figure


【解决方案1】:

当 RMarkdown 运行时,它使用 pandoc 将基础文档转换为 LaTeX 文档。因此,我们的 LaTeX 包可以在文档中使用,这有助于实现这样的高级定制。

在这种情况下,Floatrow package 可用于重新定位图上方的标题。这主要基于this previous answer。它可以通过在 YAML 中包含 header-includes 参数来加载,如下所示:


title: "Practical"
output:
  pdf_document:
    fig_caption: yes
    latex_engine: xelatex
header-includes:
   - \usepackage{floatrow}
   - \floatsetup[figure]{capposition=top}
---


```{r fig1, echo=FALSE, fig.cap="\\label{fig:fig1}Caption"}
x <- 1:10
y <- 11:20
plot(x, y)
```

【讨论】:

  • 我认为将 \usepackage{floatrow}\floatsetup[figure]{capposition=top} 放在 bookdown 模板的 preamble.tex 文件中在功能上是等效的,如果将 header-includes 传递给所有输出格式,则可能是首选?
  • 是的,您可以使用任何一种方法,如下所述:bookdown.org/yihui/rmarkdown-cookbook/latex-preamble.html。如果我的序言中有很多代码,我倾向于制作一个单独的文件。并不是说当您说passed to all output formats 时指定 LaTeX 包仅适用于 PDF 输出,因为 Word 和 HTML 在编译时不使用 LaTeX。希望有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 2016-04-29
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多