在 bookdown Latex 表格的表格标题中包含 % 符号

问题描述 投票:0回答:2

我无法在

knitr::kable
Rmarkdown 文档中的
bookdown
函数生成的表格标题中包含“%”符号。例如下面的代码:

---
title: "Test of table caption with percent symbol"
output: 
  bookdown::pdf_document2: default
  pdf_document: default
---

```{r}
df = data.frame(id=1:3,names=letters[1:3])

knitr::kable(df,caption="This captions has a % symbol",booktabs=TRUE)
```

产生以下结果:

但是,如果我从标题中删除“%”符号或使用

pdf_document
而不是
bookdown::pdf_document2
,则输出格式正确。

能够在图形标题中包含“%”和 LaTeX 特有的其他符号的最佳解决方案是什么?另外,我需要一个适用于多种输出格式(例如,除了 PDF 之外,DOC 和 HTML)的解决方案。

r-markdown knitr bookdown kable
2个回答
3
投票

我为自己的问题找到了两种解决方案。一种是使用标题参考:

---
title: "Test of table caption with percent symbol"
output: 
  bookdown::pdf_document2: default
  pdf_document: default
---

(ref:mycap) This captions has a % symbol

```{r}
df = data.frame(id=1:3,names=letters[1:3])

knitr::kable(df,caption="(ref:mycap)",booktabs=TRUE)
```

另一种是在

format="pandoc"
中设置
knitr::kable

---
title: "Test of table caption with percent symbol"
output: 
  bookdown::word_document2: default
  bookdown::pdf_document2: default
  pdf_document: default
---

```{r}
df = data.frame(id=1:3,names=letters[1:3])

knitr::kable(df,caption="This captions has a % symbol",booktabs=TRUE,format="pandoc")
```

这些解决方案会在页面上产生一些不同的表格位置,如果从

bookdown::pdf_document2
切换到
pdf_document
,标题参考解决方案将不起作用,但否则输出是相同的。


0
投票

对我来说,唯一对

format=latex
有用的是:

knitr::kable(df,
caption='This and that with 1\\char"25\\, of total.', format = "latex")

说明:

  • 在内部,

    %
    符号是
    \char"25

  • bookdown首先会生成一个.tex文件,所以需要在

    \
    前面添加一个
    \char"25
    才能转义它。

  • 这会“吃掉”

    %
    之后的空间。所以我加了一个空格(
    \,
    ),但当然也逃脱了(
    \\,
    )

© www.soinside.com 2019 - 2024. All rights reserved.