Как расположить и отформатировать длину заголовка таблицы [R Markdown, pander package]

Я готовлю документ R Markdown в формате pdf. В документе у меня есть пара таблиц. Я использовал пакет 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")
```

Выход не такой, как хотелось бы. Я хочу:

  1. положение заголовка (подписи) таблицы над таблицей

  2. форматировать длину заголовка таблицы таким образом, чтобы она соответствовала длине таблицы (перенос текста в границы таблицы)

  3. переместите стол чуть ниже "Попробуйте сделать стол !!!" текст, который не является частью фрагмента кода r. Обратите внимание, что текст «Попробуйте создать таблицу» ближе к таблице, чем заголовок таблицы.

ОБНОВЛЕНИЕ1:

Эта ссылка указывает на исходный результат. Вместо этого я хочу, чтобы сделал что-то вроде этого.

ОБНОВЛЕНИЕ2:

На @daroczig сказал, что это не проблема, связанная со сводничеством. Однако он предложил, как этого добиться. Куда мне поместить приведенные ниже строки кода, предложенные @daroczig?

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

person Newbie_R    schedule 15.12.2014    source источник
comment
Не уверен, но это не похоже на вариант или, по крайней мере, не включен в эти примеры. Вы пробовали kable от knitr, xtable или другого пакета? Интересно, что когда я пробую kable(DF, format = 'pandoc', caption = "Table caption") в консоли, заголовок печатается над таблицей, но когда я вяжу, заголовок добавляется ниже. Должно быть вещь пандока ..   -  person rawr    schedule 16.12.2014
comment
@rawr thx за предложения. Я пробовал kable и xtable, но безуспешно. Я огляделся, я обнаружил, что в пакете сводничества есть множество вариантов, и я полагал, что должны быть некоторые из них, которые могут выполнить эту работу ...   -  person Newbie_R    schedule 16.12.2014


Ответы (1)


Что ж, это не pander и даже не проблема уценки, поскольку mardown Pandoc имеет определенный синтаксис о том, где поставить подпись: она должна располагаться под таблицей в уценке.

Но после преобразования уценки в HTML или PDF у вас была свобода (пере) разместить эту подпись в любом месте, так как Pandoc преобразовал таблицу уценки в обычную среду table LaTeX, которую можно легко настроить с помощью упомянутого выше пакета floatrow.

К сожалению, это больше невозможно, поскольку Pandoc использует longtable вместо table или ctable, где размещение заголовка определяется версией Pandoc: раньше заголовок помещался под таблицей, но поскольку недавняя фиксация, подписи размещаются над таблицами. Для получения дополнительных сведений см. соответствующую ветку в почтовой рассылке Pandoc.

person daroczig    schedule 15.12.2014
comment
спасибо за разъяснения. Есть идеи, как я могу решить проблему 2. и 3. из моего сообщения (особенно 2.)? - person Newbie_R; 16.12.2014
comment
@Newbie_R: К сожалению, #2 непросто с longtable, но, например, использование другой среды LaTeX (например, threeparttable) поддерживает эту настройку. Но с текущей версией pandoc вы вынуждены использовать longtable, поэтому ручное указание ширины заголовка - ваше последнее средство: \captionsetup{width=.75\textwidth} с caption пакетом LaTeX. О #3: это довольно простой вопрос LaTeX, вы можете использовать, например, \vspace{10mm}, чтобы везде оставалось 1 см свободного пространства. - person daroczig; 16.12.2014