2014-12-15 3 views
2

Я готовлю документ R Markdown в формате pdf. В документе у меня есть пара таблиц. Я использовал pander пакет для форматирования таблиц. Предположим, что у меня есть фрейм данных, DF, который я хочу преобразовать в таблицу в формате pdf. Чтобы добиться этого в блоке r-кода, я изменил panderOptions для префикса таблицы, чтобы напечатать его на неанглийском языке, а в следующей строке я вызываю функцию pander с указанным аргументом caption.Как разместить и форматировать длину заголовка таблицы [R Markdown, пакет 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. Обратите внимание, что текст «Попробуйте сделать таблицу» ближе к таблице ближе к названию таблицы.

Update1:

This link направит к первоначальному выходу. Вместо этого, я хочу to make something like this.

UPDATE2:

На this GitHub web page, можно найти вариант эмиссии относительно разместить название на верхней части таблицы. @daroczig сказал, что это не проблема, связанная с пандером. Однако он предложил, как это можно достичь. Где я должен помещать строки кода, приведенные ниже, которые предложил @daroczig?

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

Не уверен, но он не похож на вариант или, по крайней мере, не включен в [эти примеры] (https://github.com/Rapporter/pander/blob/master/README.md#caption). Вы пробовали использовать kable из knitr или xtable или другого пакета?Интересно, что когда я пытаюсь использовать kable (DF, format = 'pandoc', caption = "Table caption") 'в консоли, надпись печатается над таблицей, но когда я вязать надпись, добавляется ниже. Должна быть вещь pandoc .. – rawr

+0

@rawr thx для предложений. Я пробовал kable и xtable, но безуспешно. Я оглядывался, я узнал, что пакет пандер имеет кучу вариантов, и я полагал, что некоторые из них могут сделать это ... –

ответ

1

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

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

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

+0

thx для уточнения. У меня есть идея, как я могу решить проблему 2. и 3. из моего поста (особенно 2.)? –

+1

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