【问题标题】:Knitr kable not producing captionsknitr kable 不生成字幕
【发布时间】: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


【解决方案1】:

在 markdown 中你看不到标题。 (但在 HTML 和 PDF 中)。正如@Mikey Harper 在他对您的问题的评论中已经提到的那样:您为什么全神贯注于输出降价?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 2018-04-20
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 2018-10-14
    相关资源
    最近更新 更多