LINUX.ORG.RU

LaTeX: как работать с таблицами шире и выше страницы ?


0

0

Есть скрипт который генерирует pdf для вывода на печать, через LaTeX. это собственно говоря отчёты в виде таблиц. сейчас возникла необходимость вывести отчёт-таблицу у которой количество колонок может быть шире страницы, как и количество строк может быть выше страницы.

сама таблица достаточно простая:

Источник | Название | Число | Число | Число | ...

количество колонок "Число" - задаётся пользователем, и оно может быть шире страницы.

Может быть есть готовые пакеты ?

Пока вижу только такое решение:

по длине всё замечательно разбивается благодаря LongTable

по ширине - ширину колонок - фиксировать, тогда будет известно в генерирующем скрипте - сколько колонок на страницу влезет. Те что не влезают, печатать отдельными LongTable. то есть в выводе будет типа такого:

\longtable колонки с 1 по 4
\clearpage
\longtable колонки с 5 по 8

и в pdf:

Страница 1:
LongTable 1 строка 1, Колонки 1 | 2 | 3 | 4
LongTable 1 строка 2, Колонки 1 | 2 | 3 | 4
LongTable 1 строка 3, Колонки 1 | 2 | 3 | 4
LongTable 1 строка 4, Колонки 1 | 2 | 3 | 4

Страница 2:
LongTable 1 строка 5, Колонки 1 | 2 | 3 | 4
LongTable 1 строка 6, Колонки 1 | 2 | 3 | 4
LongTable 1 строка 7, Колонки 1 | 2 | 3 | 4
LongTable 1 строка 8, Колонки 1 | 2 | 3 | 4

Страница 3:
LongTable 2 строка 1, Колонки 5 | 6 | 7 | 8
LongTable 2 строка 2, Колонки 5 | 6 | 7 | 8
LongTable 2 строка 3, Колонки 5 | 6 | 7 | 8
LongTable 2 строка 4, Колонки 5 | 6 | 7 | 8

Страница 4:
LongTable 2 строка 5, Колонки 5 | 6 | 7 | 8
LongTable 2 строка 6, Колонки 5 | 6 | 7 | 8
LongTable 2 строка 7, Колонки 5 | 6 | 7 | 8
LongTable 2 строка 8, Колонки 5 | 6 | 7 | 8


тогда чтобы получить результирующую таблицу-простыню - страница 1 по ширине склеивается со страницей 3, 2 соответственно с 4 ну и по высоте результат первого склеивания соединяется с результатом второго.

ps: да, у меня есть принтер А3 :) но хотелось бы иметь возможность распечатывать и на А4 с последующим склеиванием...

Ну если таблица шире и выше страницы, то попробуй не до конца засовывать.

anonymous
()
Ответ на: комментарий от Davidov

> Может, xtab это умеет?

спасибо, попробую, но похоже что нет. вот из его документации:

"The table is only broken between rows — a row will not be split across pages."

Eshkin_kot ★★
() автор топика

А у меня нет принтера формата А3 :( Если таблица длинная, то нет проблем, это нормально. А вот с очень широкими похоже что не сложилось. В принципе очень широкая таблица будет читаться даже хуже: принадлежность строк последних столбцов их названию из первого столбца будет, скорее всего, определить труднее, чем ранее идущих. Вот и напрашивается возможное решение: пусть колонки 5,6,7,8 будут "отдельной" таблицей, причём самый последний столбец "9" будет повторением столбца "0" с именованием строки. А если наименований строк нет - то и того проще. Конечно, если так разделить одну таблицу на несколько, то будут проблемы с общим названием, но оно же в любом случае будет плохо смотреться, если окажется посередине широкой таблице в разрыве.

Есть ещё какие-то недостатки двух длинных таблиц вместо одной широкой длинной?

Андрей

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.