【发布时间】:2018-03-24 16:54:32
【问题描述】:
我正在使用 bookdown 写论文。 Kable() 不会产生字幕,无论是在 bookdown 上下文中使用还是在 R 控制台中运行时。
当我在 R 中运行以下命令时,我得到一个没有标题的表格:
knitr::kable(
head(mtcars[, 1:4], 4), booktabs = TRUE,
caption = 'A table.'
)
markdown 输出如下所示:
| | mpg| cyl| disp| hp|
|:--------------|----:|---:|----:|---:|
|Mazda RX4 | 21.0| 6| 160| 110|
|Mazda RX4 Wag | 21.0| 6| 160| 110|
|Datsun 710 | 22.8| 4| 108| 93|
|Hornet 4 Drive | 21.4| 6| 258| 110|
我可以通过添加 format = 'pandoc' 来获得标题,但是表格在 bookdown 中无法正常工作(它不尊重页边距):
knitr::kable(
head(mtcars[, 1:4], 4), booktabs = TRUE,
format = 'pandoc',
caption = 'A table.'
)
上面给出了这个输出:
Table: A table.
mpg cyl disp hp
--------------- ----- ---- ----- ----
Mazda RX4 21.0 6 160 110
Mazda RX4 Wag 21.0 6 160 110
Datsun 710 22.8 4 108 93
Hornet 4 Drive 21.4 6 258 110
任何帮助将不胜感激!我的会话信息:
> devtools::session_info('rmarkdown')
Session info ------------------------------------------------------------------
setting value
version R version 3.4.2 (2017-09-28)
system x86_64, linux-gnu
ui X11
language
collate sv_SE.UTF-8
tz Europe/Stockholm
date 2018-03-24
Packages ----------------------------------------------------------------------
package * version date source
backports 1.1.0 2017-05-22 CRAN (R 3.4.0)
base64enc 0.1-3 2015-07-28 CRAN (R 3.4.0)
digest 0.6.12 2017-01-27 CRAN (R 3.4.0)
evaluate 0.10 2016-10-11 CRAN (R 3.4.0)
graphics * 3.4.2 2017-09-28 local
grDevices * 3.4.2 2017-09-28 local
highr 0.6 2016-05-09 CRAN (R 3.4.0)
htmltools 0.3.6 2017-04-28 CRAN (R 3.4.0)
jsonlite 1.5 2017-06-01 CRAN (R 3.4.0)
knitr * 1.20 2018-02-20 CRAN (R 3.4.2)
magrittr 1.5 2014-11-22 CRAN (R 3.4.0)
markdown 0.8 2017-04-20 CRAN (R 3.4.0)
methods * 3.4.2 2017-09-28 local
mime 0.5 2016-07-07 CRAN (R 3.4.0)
Rcpp 0.12.13 2017-09-28 cran (@0.12.13)
rmarkdown * 1.9 2018-03-01 CRAN (R 3.4.2)
rprojroot 1.2 2017-01-16 CRAN (R 3.4.0)
stats * 3.4.2 2017-09-28 local
stringi 1.1.5 2017-04-07 CRAN (R 3.4.0)
stringr * 1.2.0 2017-02-18 CRAN (R 3.4.0)
tools 3.4.2 2017-09-28 local
utils * 3.4.2 2017-09-28 local
yaml 2.1.14 2016-11-12 CRAN (R 3.4.0)
【问题讨论】:
-
为什么要输出到markdown?我假设如果您正在撰写论文,您希望最终结果是 PDF。因此,您可以使用 LaTeX 来生成表格。
-
这将有助于提供一个包含 YAML 和代码块标头的最小工作示例。以目前的形式,很难提供任何进一步的帮助。
-
我使用 markdown 和 knitr 来整合文本、表格、数字和引文,因为它比 LaTeX 更简单。然而,我对这个问题的解决方法是在 kable() 函数中添加“latex”格式规范,尽管我认为如果它按预期工作,那应该是不必要的,并且它有一些缺点(类似于使用“pandoc”格式如上面的帖子中所述)。
-
对于一个最小的工作示例,只需在 R 控制台中运行上面的第一个代码 sn-p 就足够了。它应该在表格上方输出一个“表格:表格”行,目前它没有。
标签: r-markdown knitr bookdown