我正在准备 pdf 格式的 R Markdown 文档。在文档中我有几个表。我使用 pander 包来格式化表格。假设我有数据框 DF,我想将其转换为 pdf 输出中的表格。为了在 r 代码块中实现这一点,我更改了表标题前缀的 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")
```
输出不是我想要的方式。我想:
在表格上方放置表格的标题(caption)
以匹配表格长度的方式格式化表格标题的长度(在表格边界内换行文本)
将 table 稍微移到下面“试着做一张 table !!!”不属于 r 代码块的文本。请注意,与表格标题相比,“尝试制作表格”文本更接近表格。
更新 1:
This link将直接到原始输出。而不是那个,我想要to make something like this .
更新 2:
关于 this GitHub web page ,可以找到有关将标题放在表格顶部的选项的问题。 @daroczig说这不是与迎合有关的问题。然而,他建议如何实现。我应该将@daroczig 建议的下面提供的代码行放在哪里?
\usepackage{floatrow}
\floatsetup[table]{capposition=top}
\floatsetup[figure]{capposition=top}
最佳答案
好吧,这不是 pander
,甚至也不是 markdown 问题,因为 Pandoc 的 mardown 有一个 definite syntax关于放置标题的位置:它应该放在表格下方在 markdown 中。
但是在将 markdown 转换为 HTML 或 PDF 之后,您可以自由地(重新)放置该标题,因为 Pandoc 将 markdown 表格转换为常规的 table
LaTeX 环境,这可能是通过上面引用的 floatrow
包轻松定制。
不幸的是,这不再可能,因为 Pandoc 使用 longtable
而不是 table
或 ctable
,其中标题的位置由 Pandoc 定义版本:它曾经将标题放在表格下方,但由于 recent commit , 标题放在表格上方。有关详细信息,请参阅 related thread在 Pandoc 的邮件列表上。
关于r - 如何定位和格式化表格标题的长度 [R Markdown, pander package],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27493079/