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

Я использую Sweave и latex() из пакета Hmisc, чтобы вставить длинную таблицу в свой 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}

person physh    schedule 10.07.2012    source источник
comment
вы знаете, что существует портал stackexchange, посвященный латексным вопросам — его можно найти по адресу tex.stackexchange.com. Я пометил ваш вопрос для переноса.   -  person epsilonhalbe    schedule 10.07.2012
comment
На самом деле, я не знал, я совсем новичок. Спасибо что подметил это! Пометив его для переноса, он автоматически появится на tex.stackexchange.com или мне придется снова спрашивать там?   -  person physh    schedule 10.07.2012
comment
это может занять некоторое время, но я думаю, что это будет перенесено, как только какой-нибудь модератор посмотрит в эту сторону.   -  person epsilonhalbe    schedule 10.07.2012


Ответы (1)


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

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

помогает обойти проблему.

person Dieter Menne    schedule 10.07.2012
comment
Большое спасибо, теперь таблица выглядит именно так, как должна. - person physh; 13.07.2012
comment
Потрясающе - спасибо! Это решение работает отлично. - person paleo13; 11.01.2021