This thread can shed some light on the problem you're having. Обратите внимание, что последняя версия pandoc (1.13.2) теперь помещает заголовки таблиц сверху в pdf-выход.
Следующие примеры с pandoc-1.12.3
К сожалению \usepackage{floatrow}
предложения не работает для longtable
(таблиц среды, созданной в LaTeX writer for pandoc), потому что это не float
среды.
---
header-includes:
- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{floatrow}
- \floatsetup[table]{capposition=top}
output: pdf_document
---
| id| age|sex | zone|
|--:|---:|:---|----:|
| 1| 59|m | 2|
| 2| 54|m | 2|
| 4| 73|f | 2|
Table: This is a table
Эта таблица дает следующий латекс:
\begin{longtable}[c]{@{}[email protected]{}}
\toprule\addlinespace
id & age & sex & zone
\\\addlinespace
\midrule\endhead
1 & 59 & m & 2
\\\addlinespace
2 & 54 & m & 2
\\\addlinespace
4 & 73 & f & 2
\\\addlinespace
\bottomrule
\addlinespace
\caption{This is a table}
\end{longtable}
Что делает таблицу вы описали - заголовок не реагирует на \floatsetup
в заголовке YAML).
разместить заголовок в верхней части, \caption{}
могут быть перемещены. Я лично не знаю простого способа заставить заголовок longtable
сверху (но я не эксперт LaTeX).
\begin{longtable}[c]{@{}[email protected]{}}
\caption{This is a table} \\
\toprule\addlinespace
id & age & sex & zone
\\\addlinespace
\midrule\endhead
1 & 59 & m & 2
\\\addlinespace
2 & 54 & m & 2
\\\addlinespace
4 & 73 & f & 2
\\\addlinespace
\bottomrule
\end{longtable}
Вы можете использовать xtable
пакет для создания таблиц, которые находятся в table
среды, которая реагирует на \floatsetup
в преамбуле (хотя пакет также дает возможность поместить подпись на Вверх).
```{r results = 'asis'}
library(xtable)
# Preset some options for printing your xtables
options(xtable.caption.placement = 'bottom', # notice \floatsetup overrides
xtable.include.rownames = FALSE,
xtable.comment = FALSE,
xtable.booktabs = TRUE)
xtable(
data.frame(
id = c(1L, 2L, 4L),
age = c(59L, 54L, 73L),
sex = c('m', 'm', 'f'),
zone = rep(2L, 3)),
caption = 'This is a table')
```
Протест во всем этом является то, что все необработанного LaTeX, который подается в pandoc будет удален, если вы решили компилировать в HTML ... облом.
Для * pdf * вы можете использовать пакет 'floatrow' (LaTeX) с' \ floatsetup [table] {capposition = top} ' – daroczig
Спасибо за этот комментарий @daroczig. Я вижу, как это будет работать после опции 'keep_tex: true' в латексе, но не уверены в том, как реализовать это решение в RMarkdown.Например, размещение '\ usepackage {floatrow}' в преамбуле yaml не работает ... – RobinLovelace
Вы должны добавить эту строку (и директиву 'usepackage') в преамбулу LaTeX, а не в YAML. См. http://tex.stackexchange.com/a/194569/2878 – daroczig