Как контролировать неправильные разрывы страниц longtable в latex() из пакета Hmisc?

Я использую Sweave и latex() из пакета Hmisc, чтобы вставить longtable в мой PDF.

Когда я делаю это в первый раз, таблица красиво накрывается, заполняя страницы таблицей.

Если я сделаю это снова, некоторые страницы будут заполнены только наполовину (например, страница 4 в PDF), что выглядит странно и как-то неправильно, потому что кажется ненужным местом.

Есть ли способ контролировать это? Или что я могу сделать, чтобы улучшить внешний вид? Особенно, если я добавлю текст и графики, это не будет хорошо смотреться с пустым пространством на странице 4.

\documentclass{article}

\usepackage{Sweave}
\usepackage{longtable}
\usepackage{booktabs}

\begin{document}
\SweaveOpts{concordance=TRUE}

I want to insert this longtable
<<tab.R,echo=FALSE,results=tex>>=
library(Hmisc)
#library(xtable)
x <- matrix(rnorm(1000), ncol = 10)
x.big <- data.frame(x)
latex(x.big,"",file="",longtable=TRUE, dec=2,caption='First longtable spanning several pages')
@

then write some text. Maybe add a graph...

And then another table
<<tab.R,echo=FALSE,results=tex>>=
latex(x.big,"",file="",longtable=TRUE, dec=2,caption='Second longtable spanning wrongly')
@

\end{document}

1 ответ

Решение

Не передавайте этот вопрос группе латекса, это проблема Hmisc/latex, которая добавляет \clearpage в текс каждые 40 строк по умолчанию. Проверьте параметр lines.page=40 из latex, Я не понимаю, почему было установлено это значение по умолчанию, но что-то вроде

latex(x.big,"",file="",longtable=TRUE, dec=2,
  caption='Second longtable spanning wrongly', lines.page=4000)

поможет вам решить проблему.

Другие вопросы по тегам