LINUX.ORG.RU

Разбить ячейки таблицы в Latex

 ,


0

1

Имеется длиннющая таблица из 5 колонок, простирающаяся не на одну страницу. В одной части таблицы первый столбец нужно разбить на два столбца. Если в преамбуле добавить дополнительный столбец, то нужно будет добавлять дополнительную ячейку в каждую строку, а их 100500. Есть ли какое-то простое решение, может, с подключаемым пакетом, чтобы ситуативно разбивать ячейки?

Самое простое это генерировать всю таблицу скриптом. Тогда вопрос типа «а как сделать, чтобы все нечётные строки на чётных страницах плясали и скакали» отпадут.

Да и тебе удобнее не забивать вручную 100500 латеховских строк, а какой-нить csv на вход скрипта подготовить. Хошь из базы данных, хошь ещё откуда.

Ну а если ты мазохист, то кастуй эдика и евгения.

anonymous ()

Вставить в таблицу еще одну таблицу, например. Я так и делал для верстки сложных таблиц.

Либо написать макрос, который для каждой ячейки будет http://texblog.org/2012/12/21/multi-column-and-multi-row-cells-in-latex-tables/\multicolumn + \cline писать, а когда надо — отключится, и ты будешь заполнять раздельно по 2 ячейки.

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Спасибо! Я тоже пришёл к выводу, что нужно вставить таблицу в таблицу.

Только не пойму, как это сделать правильно. На данный момент имеется такой кусок кода:

\hline
Датчик сигнализатора аварийного давления масла & 30.3829 & 30.3829 & 30.3829 & 30.3829\\
\hline
\multicolumn{5}{c}{ %
\begin{tabular}{|p{4}|p{4}|p{4}|p{4}|p{4}|p{4}|} %
&&&&&\\ %
\end{tabular} %
}\\
\hline

Но что-то здесь не то. То ли \multicolumn{5}{c}, то ли ещё что-то.

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

А зачем на 5 ячеек? Одну, которую надо разбить — в нее и вставляй таблицу. И позаботься об интервалах — надо обнулить кое-какие интервалы в ячейке, где вставляешь таблицу (уже не помню — \columnsep что ли + еще что-то — гугол в помощь).

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

А, нашел: \tabcolsep

Смотри стилевой файл, который я когда-то сварганил, чтобы бланковые тесты генерировать (вопросы + бланк для ответов + шаблон правильных ответов).

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Благодарю за все твои ответы! Действительно, что-то я намудрил с «мультиколумном», когда можно просто в первую ячейку вставить таблицу.

victorponomarev ()
Ответ на: комментарий от Eddy_Em

Вставить в таблицу еще одну таблицу, например

Прям даже какое-то html подобное решение. Тока стиль таблицы сразу не сменишь.

Вопрос на засыпку: а если поциентуТС завтра придётся разворачивать табличку на landscape, то как ему поступать?

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

Ясен пень, придется полностью переформатировать таблицу, т.к. ширина изменится. Как минимум нужно будет ширину каждой ячейки сменить. Ну или заранее делать в каких-нибудь относительных (от /pagewidth, например) единицах ширину столбцов — тогда и при смене формата страницы автоматом подтянутся ширины столбцов.

А вообще, таблицы — это зло. Их нужно стараться избегать.

Eddy_Em ☆☆☆☆☆ ()

Получилось разбить ячейки, но…

Вставил таблицу с обнулёнными горизонтальными интервалами:

\hline
Датчик сигнализатора аварийного давления масла & 30.3829& 30.3829& 30.3829& 30.3829\\
\hline
\begin{tabular}{@{\hskip 0cm} p{3.5cm}|p{4cm}@{\hskip 0cm}} %
Масло моторное основное&\textbf{Диапазон температур применения,~\textcelsius}: \par \begin{center} $-$25...$+$20 \par $-$25...$+$35 \par $-$20...$+$30 \par $-$20...$+$35 \par $-$15...$+$35 \par $-$15...$+$45 \par $-$10...$+$45 \par $-$5...$+$45 \par 0...$+$45 \end{center} \\ %
\end{tabular} %
& \textbf{СТО ААИ 003-98:}\par SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
& \textbf{СТО ААИ 003-98:}\par SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
& \textbf{СТО ААИ 003-98:}\par SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
& \textbf{СТО ААИ 003-98:}\par SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4\\

Но это выглядит вот так — http://storage7.static.itmages.ru/i/14/0923/h_1411464812_5868376_8c56b92393.png То есть видно, что первые строки столбцов, следующих за первым столбцом (в котором находится таблица из двух столбцов), выравниваются по вертикальному центру первого столбца. Как убрать это выравнивание, чтобы нормально, по верху выравнивалось?

victorponomarev ()
Ответ на: Получилось разбить ячейки, но… от victorponomarev

Нашёл способ выравнивания: при помощи {\vskip XXpt}. Пример для части первых двух столбцов:

\hline
Датчик сигнализатора аварийного давления масла & 30.3829& 30.3829& 30.3829& 30.3829\\
\hline
\begin{tabular}{@{\hskip 0cm} p{3.5cm}|p{4cm}@{\hskip 0cm}} %
Масло моторное основное&\textbf{Диапазон температур применения,~\textcelsius}: \par \begin{center} $-$25...$+$20 \par $-$25...$+$35 \par $-$20...$+$30 \par $-$20...$+$35 \par $-$15...$+$35 \par $-$15...$+$45 \par $-$10...$+$45 \par $-$5...$+$45 \par 0...$+$45 \end{center} \\ %
\end{tabular} %
& {\vskip -85pt} \textbf{СТО ААИ 003-98:}\par {\vskip 15pt} SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
Это выглядит вот так — http://storage7.static.itmages.ru/i/14/0923/h_1411467041_7663918_6d54197f85.png

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

Иной вариант

Нет, всё-таки предыдущий вариант — это геморрой. При смене интервалов во «втором» столбце первого столбца изменяется высота последнего, а следовательно, выравнивание последующих столбцов, которые ориентируются на середину первого, также слетает.

С «мультиколумном» дела обстоят легче:

\hline
Датчик сигнализатора аварийного давления масла & 30.3829& 30.3829& 30.3829& 30.3829\\
\hline
\multicolumn{5}{|c|}{ %
\begin{tabular}{@{\hskip 0cm} p{3.5cm}|p{4cm}|p{4cm}|p{4cm}|p{4cm}|p{4cm}@{\hskip 0cm}} %
Масло моторное основное %
&\textbf{Диапазон температур применения,~\textcelsius}: \par \begin{center} $-$25...$+$20 \par {\vskip 15pt} $-$25...$+$35 \par {\vskip 15pt} $-$20...$+$30 \par {\vskip 14pt} $-$20...$+$35 \par {\vskip 14pt} $-$15...$+$35 \par {\vskip 15pt} $-$15...$+$45 \par {\vskip 15pt} $-$10...$+$45 \par {\vskip 15pt} $-$5...$+$45 \par {\hskip 5pt} 0...$+$45 \end{center} %
& {\vskip 1pt} \textbf{СТО ААИ 003-98:}\par {\vskip 15pt} SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
& {\vskip 1pt} \textbf{СТО ААИ 003-98:}\par {\vskip 15pt} SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
& {\vskip 1pt} \textbf{СТО ААИ 003-98:}\par {\vskip 15pt} SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 %
& {\vskip 1pt} \textbf{СТО ААИ 003-98:}\par {\vskip 15pt} SAE 5W-30 ААИ Б4/Д2,\par SAE 5W-40 ААИ Б4/Д2,\par SAE 10W-З0 ААИ Б4/Д2,\par SAE 10W-40 ААИ Б4/Д2,\par SAE 15W-З0 ААИ Б4/Д2,\par SAE 15W-40 ААИ Б4/Д2,\par SAE 20W-40 ААИ Б4/Д2,\par SАЕ 30 ААИ Б4,\par SAE 40 ААИ Б4 \\ %
\end{tabular}}\\
\hline

Выглядит всё так (+ код с подсветкой) — http://storage8.static.itmages.ru/i/14/0923/h_1411471274_4284844_741fc5af37.png

Надеюсь, кто-то провозится меньше времени, чем я.

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