Как сделать таблицу в latex по ширине страницы

Обновлено: 08.07.2024

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

Эффект, который я пытаюсь достичь, заключается в том, что для одной строки на странице половина выравнивается слева, а другая справа.

Например, только сейчас следующие проблемы возникают.

Желаемый эффект заключается в том, что первая ячейка выровнена по левому краю, а вторая выровнена по правому краю. Вместо этого массив центрирован, без пробелов между ячейками.

Интересно, если вместо l и r вы можете попробовать попробовать p для вашего выравнивания. Это работает хорошо для меня:

p позволяет вам установить ширину столбца и попытаться заполнить вашу страницу, тогда как я думаю, что у l и r есть какой-то другой (возможно, тупой) метод определения того, насколько широким может быть что-то.

В вашем уравнении вы имеете P (S) P (S и V, C, S, J), и мне нужно было изменить это и на \& чтобы остановить его от мысли, что это начало другого столбца.

Там, где на eQmakebox на сайте LaTeX/Tables Wikibook есть мелодия, похоже, что это может помочь, хотя это немного эзотерическое по сравнению с чем-то общим, например \tabular. (LINK).

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

Итак, предположим, что этот пакет подключен. Тогда для задания горизонтальных линеек становится доступной, наряду с уже известными \hline и \cline , новая команда \hhline , в аргументе которой описывается как сама линейка, так и ее пересечения с вертикальными линейками. Вот первый пример ее использования:

\begin</p>
<p> <|c|cc|c|>\hline А & Б & В & Г\\ \hhline <|=|~~|-|>Д & Е & Ж & З\\ \hline \end

Аргумент команды \hhline устроен следующим образом. Во-первых, в нем сказано, что на территории первой колонки линейка должна быть двойной (символ =), на территории второй и третьей колонок линейки не должно быть вовсе (символ ~ - "тильда"), а на территории четвертой колонки линейка должна быть одинарной (символ -). Если в таблице колонок, то в аргументе \hhline должны присутствовать символов -, = или ~, имеющих тот же смысл, что и выше.

Вот пример таблицы, в которой используются эти возможности команды \hhline :

Подчеркнем, что команда \hhline обрабатывает пересечения линеек независимо от того, какие вертикальные линейки заданы в преамбуле. Забота о том, чтобы аргумент \hhline был согласован с преамбулой, лежит на вас.

Таблицы, простирающиеся на несколько страниц

Как уже отмечалось, окружения и рассматриваются LaTeX'ом как одна большая буква, и потому не разбивается по страницам. Можно, однако, создавать таблицы, в которых и разбиение на страницы, и определение ширины колонок происходит автоматически. Для этого надо подключить стилевой пакет и использовать окружение . Как и окружение , оно принимает один обязательный параметр — преамбулу (устроенную точно так же, как у ); внутри окружения действуют в точности те же правила записи текста, что и в окружении (в частности, допустимы команды \hline , \cline и \multicolumn ). Разница с окружением в том, что получаемая при этом таблица может занимать несколько страниц и иметь произвольную длину.

Опишем теперь некоторые особенности окружения , связанные с разбиением на страницы.

Во-первых, после первого запуска LaTeX'а колонки таблицы, определенной как , могут оказаться невыровненными (это связано с тем, что при первом проходе LaTeX читает такую таблицу не целиком, а по кускам, и выравнивает эти куски независимо друг от друга). Чтобы добиться выравнивания, надо запустить LaTeX еще раз-другой (если есть необходимость в повторном запуске, об этом будет выдано предупреждение).

Во-вторых, вы имеете возможность сделать так, чтобы заголовок таблицы повторялся на каждой новой странице, на которой таблица продолжается. Для этого надо оформить заголовок в виде строки или группы строк (и/или команд \hline ), и при этом последнюю из этих строк надо завершить не командой \\ , а командой \endhead . Обычно, впрочем, повторяющийся заголовок не идентичен тому, который ставят в самом начале таблицы. Отдельный заголовок для начала таблицы также оформляют в виде одной или нескольких строк, последняя из которых завершается командой \endfirsthead . Кроме того, можно предусмотреть специальную группу строк, которая будет ставиться на каждой странице внизу таблицы — для этого надо записать строку или группу строк, завершив последнюю из них не командой \\ , как обычно, а командой \endfoot . Можно также предусмотреть отдельную группу строк, которая ставится внизу таблицы только на последней из занимаемых таблицей страниц. Для этого надо вместо \endfoot написать \endlastfoot . Группы строк, завершающиеся командами \endhead , \endfirsthead , \endfoot или \endlastfoot , должны стоять в начале окружения . Вот пример использования этих средств:


Этой таблице соответствовал такой исходный текст:

В таблице, оформленной с помощью , можно явно указать место разрыва страницы с помощью \newpage (а также \pagebreak в окружении или \nopagebreak ). Эти команды должны следовать непосредственно после \\ (можно с новой строки).

При этом автоматически нумеруемые таблицы можно обычным образом метить с помощью \label (и потом ссылаться на эти места с помощью \ref ), но необходимо соблюдать два ограничения:

  • метку нельзя ставить в строки, которые появятся на печати более одного раза (благодаря повторению заголовков на других страницах);
  • с команды \label не должна начинаться ни одна графа таблицы.

На автоматически нумерующийся заголовок выделяется по умолчанию 4 дюйма. Чтобы изменить этот размер, надо присвоить соответствующее значение параметру \LTcapwidth .

В отличие от окружения , таблица в окружении не рассматривается как одна большая буква, а сразу располагается между абзацами, по умолчанию - по центру. Чтобы таблица была прижата к правому краю, надо указать у окружения необязательный аргумент r (в квадратных скобках, между \begin и преамбулой); необязательный аргумент l даст таблицу, прижатую влево.

проблема в том, что даже при "\ small" таблица слишком велика, так как я использую:

в заголовке. Как я могу:

  • Сделать таблицу разомкнутой? и
  • Сделать таблицу меньше?

Мне бы хотелось, чтобы он был на всей странице.

ОТВЕТЫ

Ответ 1

Также, как и ранее упомянутый \singlespacing , чтобы уменьшить высоту таблицы, полезным способом уменьшить ширину таблицы является добавление \tabcolsep=0.11cm до команды \begin и выведение всех вертикальных линий между столбцами, Удивительно, сколько пространства используется между столбцами текста. Вы можете уменьшить размер шрифта до менее чем \small , но я обычно не использовал бы ничего меньше \footnotesize .

Ответ 2

Ответ 3

если он слишком длинный для одной страницы, используйте пакет longtable . и если он слишком широк для страницы, используйте p вместо l, r или c для спецификатора столбца. вы также можете пойти меньше \small , т.е. \footnotesize и \tiny . Я бы посоветовал пакет setspace для опций о том, как удалить двойное пространство, хотя это, вероятно, \singlespace или что-то в этом роде.

Ответ 4

Вы можете добавить \singlespacing рядом с началом вашей таблицы. Подробнее о дополнительных параметрах см. В инструкции пространств.

Ответ 5

Существует также среда singlespace :

Ответ 6

Если вы хотите таблицу меньшего размера (например, если ваша таблица выходит за пределы области, которая может быть отображена), вы можете просто изменить:

\usepackage[paper=a4paper] в \usepackage[paper=a3paper] .

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

802a2f76220c42faa7350fc40d84b38b.jpg

Хочу сверстать такую табличку:

Вот пока сделал так:

9d250d9f913a47d3b56ff056bbe5f9d8.jpg


вот результат:

Почему когда в ячейке текст "Однократного действия" переносится на следующую строку текст в объединенной (\multirow) ячейке с текстом "Место установки АПВ" не выравнивается как положено по середине?
Другая проблема - текст в последней ячейке заголовка (с текстом "Однофазное АПВ однократного действия") не переносится автоматически, поэтому я попробовал заключить этот текст в \parbox, но результат не очень красив.

Вроде простая таблица, которую в Word можно набрать за 2 минуты, я не опытен в tex/latex, но ломаю голову уже несколько дней. Подскажите.

Читайте также: