如何在Rmarkdown bookdown pdf:document2中获取图形标题中的换行符

如何在Rmarkdown bookdown pdf:document2中获取图形标题中的换行符,r,r-markdown,knitr,bookdown,R,R Markdown,Knitr,Bookdown,我正在RStudio中使用knitr编写一个rmarkdown bookdown:pdf:document2文档。 我有两个绘图,与gridExtra并排绘制,并标记为A和B。我想在图形标题的输出中添加一条换行符,如fig.cap所定义,位于A和B的标题之间,但我被难住了。我试过: \n-忽略,好像它不在那里 \\n-未定义的控制序列 \\\@tempf的n-参数有一个额外的} \\\\n-打印“\n”(这里有点傻) 双空间-什么也不做 出于绝望,我甚至尝试了HTML样式的新行,我不知道如何在这

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

\n-忽略,好像它不在那里

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

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

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

双空间-什么也不做

出于绝望,我甚至尝试了HTML样式的新行,我不知道如何在这里显示,但我没想到它们会起作用,也没有

这在乳胶中是可能的,所以肯定有一种方法

注意:这不是重复的,因为它询问如何在代码中跨行分割块头中的长标题,我询问如何在输出中这样做

苏珊娜

---
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)
```
您可以通过插入适当的LaTeX命令来实现这一点,但我个人的看法是,输出不是很好看

选项1:标题包 通过将
-\usepackage{caption}
添加到标题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)
```

详见。

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

---
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的回答是直接的。甚至打赌T-,-USSPACKEAGE(保证金=8Pt] {SimFig},我相信易慧勰的答案对未来读者试图解决同一问题更有帮助。@ SJCowtan,请考虑将此标记为可接受的答案。