【问题标题】:How to get a newline in a figure caption in Rmarkdown bookdown pdf:document2如何在 Rmarkdown bookdown pdf:document2 中的图形标题中获取换行符
【发布时间】:2018-12-19 11:29:50
【问题描述】:

我在 RStudio 中使用 knitr 来编写一个 rmarkdown bookdown:pdf:document2 文档。 我有两个图,与 gridExtra 并排绘制,并标记为 A 和 B。我想在图形标题的输出中添加一个换行符,如 fig.cap 所定义,位于 A 的标题和 B 的标题之间,但我很难过。我试过了:

\n - 就像不存在一样被忽略

\\n - 未定义的控制序列

\\\n - @tempf 的参数有一个额外的 }。

\\\\n - 打印“\n”(这里有点傻)

双倍空格 - 什么都不做

出于绝望,我什至尝试了 HTML 样式的换行符,但我不知道如何在此处显示,但我没想到它们会起作用,而且它们没有。

这在 LaTeX 中是可能的,所以肯定有办法......

注意:这不是 Split r chunk header across lines in knitr 的重复,因为它询问如何在 代码 中跨行拆分块标题中的长标题,我在问如何在输出

苏珊娜

---
title: "MRR captions"
author: "Susannah Cowtan"
date: "14 December 2018"
output:
  bookdown::pdf_document2:
    citation_package: natbib
    number_sections: no
    toc: no
    keep_tex: true
  bookdown::html_document2: null
header-includes: 
- \usepackage{float}
- \usepackage{booktabs}
fontsize: 11pt
papersize: A4
---

```{r knitr_setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

```{r plot-mtcars, fig.height = 3, fig.width = 4, fig.cap = "A: foo bar baz \nB: foobar"}
plot(mpg ~ wt, data = mtcars)
```

【问题讨论】:

标签: r r-markdown knitr bookdown


【解决方案1】:

您可以考虑使用子图而不是换行符,例如

---
title: "MRR captions"
author: "Susannah Cowtan"
date: "14 December 2018"
output:
  bookdown::pdf_document2:
    keep_tex: true
header-includes:
  - \usepackage{subfig}
---

See Figure \@ref(fig:plot-cars), which contains Figure \@ref(fig:plot-cars1) and Figure \@ref(fig:plot-cars2).

```{r plot-cars, fig.height = 3, fig.width = 4,, out.width='49%', fig.cap='Two plots', fig.subcap = c('foo bar baz', 'foobar')}
plot(mpg ~ wt, data = mtcars)
plot(cars)
```

【讨论】:

  • 请注意,这只是一个建议,并不打算直接回答原始问题。 @tarleb 的回答很直接。
  • 更好,- \usepackage[margin = 8pt]{subfig}
  • 相信Yihui Xie的回答对未来试图解决同样问题的读者更有帮助。 @SJCowtan,请考虑将此标记为已接受的答案。
【解决方案2】:

可以通过插入适当的 LaTeX 命令来做到这一点,但以我的拙见,输出看起来并不令人愉快。

选项 1:字幕包

通过将 - \usepackage{caption} 添加到 header-includes 来包含标题包,然后在标题中使用 \newline 命令。

```{r plot-mtcars, fig.height = 3, fig.width = 4, fig.cap = "A: foo bar baz \\newline{}B: foobar"}
plot(mpg ~ wt, data = mtcars)
```

选项 2:通过长线强制换行

添加足够的水平空白也会导致换行。但是,标题将不再居中显示。

```{r plot-mtcars, fig.height = 3, fig.width = 4, fig.cap = "A: foo bar baz \\hspace{\\textwidth}B: foobar"}
plot(mpg ~ wt, data = mtcars)
```

详情请见TeX stackexchange

【讨论】:

    猜你喜欢
    • 2021-09-30
    • 1970-01-01
    • 2019-01-27
    • 2018-12-10
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多