3

我正在准备 pdf 格式的 R Markdown 文档。在文档中,我有几个表格。我使用pander包来格式化表格。假设我有数据框 DF,我想将其转换为 pdf 输出中的表格。为了在 ar 代码块中实现这一点,我更改了表标题前缀的panderOptions以便以非英语语言打印它,并且在下一行中,我使用指定的标题参数调用 pander 函数。

这是 R Markdown 代码的相关部分:

---
title: "Let's try!"
author: "Newbie_R"
date: "Monday, December 15, 2014"
output: pdf_document
---


```{r setoptions, echo = F, message=FALSE}
library (knitr)
library (pander)
opts_chunk$set(echo = F)
```


```{r DF}
    vm <- 3/2 + 4/2
    jl <- vm
    ik <- 2+4
    sr <- 3 + 4/2
    lb <- 4
    dk <- 3
    zb <- 3
    ss <- 2

    DF <- data.frame (VM = vm,
                       JL = jl,
                       IK = ik,
                       SR = sr,
                       LB = lb,
                       DK = dk,
                       ZB = zb,
                       SS = ss)

```
Try to make a table!!!



```{r panderTable}
    panderOptions("table.caption.prefix", "XXXXXX 1: ")
    pander (DF, caption = "This is a very long table's title that should be printed above the table; Also, I would like format it to match boundaries of a length of the table")
```

输出不是我想要的方式。我想要:

  1. 将表格的标题(标题)置于表格上方

  2. 以与表格长度匹配的方式格式化表格标题的长度(在表格边界内换行)

  3. 把桌子往下挪一点“试着做一张桌子!!!” 不属于 r 代码块的文本。请注意,与表格标题相比,“尝试制作表格”文本更接近表格。

更新1:

此链接将指向原始输出。而不是那个,我想做这样的东西

更新2:

这个 GitHub 网页上,可以找到关于将标题放在表格顶部的选项的问题。@daroczig说这不是与 pander 相关的问题。然而,他提出了如何实现这一目标。我应该把@daroczig建议的代码行放在哪里?

\usepackage{floatrow}
\floatsetup[table]{capposition=top}
\floatsetup[figure]{capposition=top}
4

1 回答 1

1

好吧,这不是一个pander甚至不是降价问题,因为 Pandoc 的 mardown 有一个明确的语法来放置标题:它应该放在markdown中的表格下方。

但是在将 markdown 转换为 HTML 或 PDF 之后,您可以自由地(重新)放置该标题,因为 Pandoc 将 markdown 表转换为常规的tableLaTeX 环境,可以通过上面引用的floatrow包轻松自定义。

不幸的是,这不再可能,因为 Pandoc 使用longtable而不是tableor ctable,其中标题的位置由 Pandoc 的版本定义:它曾经将标题放在表格下方,但由于最近的一次提交,标题放在表格上方。有关更多详细信息,请参阅Pandoc 邮件列表上的相关主题。

于 2014-12-15T23:24:21.407 回答