Отрегулируйте ширину столбца массива для заполнения страницы

Отрегулируйте ширину столбца массива для заполнения страницы

Я пытаюсь использовать arrayсреду (подойдет любая, которая работает аналогично), которая автоматически растянет колонки до одинаковой ширины и распределит их по всей странице. Один пример:

\documentclass[12pt]{article}
\usepackage{amsmath}
\renewcommand{\u}[1]{\underline{#1}}

\begin{document}
\[\begin{array}{rrr}
    5 & 5 & 5\\
    \u{+4} &\u{+4} &\u{+4}
\end{array}\]
\end{document}

Все, что я знаю на данный момент, это вставить «поддельный» столбец между каждой парой столбцов и использовать , \hspace*{##cm}чтобы принудительно разнести столбцы, но это становится немного утомительным, если у меня есть, скажем, 7 столбцов в 13 строках, которые по той или иной причине не могут быть частью одной среды массива.

Есть ли полупростой подход к этой проблеме? Я искал, но не нашел ничего, что показалось бы мне очень полезным (возможно, я недостаточно знаком с жаргоном, чтобы ввести лучшие поисковые фразы).

решение1

Вы можете использовать tabular*и заполнить пробел. Чтобы иметь столбцы в математическом режиме, используйте arrayпакет и, >{$}как я сделал.

\documentclass[12pt]{article}
\usepackage{amsmath,array}
\renewcommand{\u}[1]{\underline{#1}}

\begin{document}
\begin{tabular*}{\linewidth}{>{$}r<{$}@{\extracolsep{\fill}}>{$}r<{$}>{$}r<{$}}
    5 & 5 & 5\\
    \u{+4} &\u{+4} &\u{+4}
\end{tabular*}
\end{document}

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

\documentclass[12pt]{article}
\usepackage{amsmath,array}
\renewcommand{\u}[1]{\underline{#1}}

\newcolumntype{R}{>{$}r<{$}}

\begin{document}
\begin{tabular*}{\linewidth}{R@{\extracolsep{\fill}}RR}
    5 & 5 & 5\\
    \u{+4} &\u{+4} &\u{+4}
\end{tabular*}
\end{document}

решение2

(Ответ обновлен с учетом последующих комментариев автора.)

Если я правильно понял ваши требования, вы хотите

  • числа в каждом столбце должны быть выровнены по десятичной точке

  • сами столбцы должны быть центрированы

  • автоматическая корректировка ширины столбцов и/или количества пробелов между столбцами таким образом, чтобы вся таблица занимала ширину текстового блока.

Одним из способов достижения этих целей является использование tabularxсреды, загрузка dcolumnпакета для выравнивания чисел по десятичному знаку и использование измененной (т. е. центрированной) формы Xтипа столбца для оформления заголовков каждой строки.

введите описание изображения здесь

\documentclass[12pt]{article}
\usepackage{tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\newcommand\mc[1]{\multicolumn{1}{Y}{#1}}

\usepackage{dcolumn}
\newcolumntype{d}[1]{D..{#1}} % "decimal-aligned" column type

\usepackage[normalem]{ulem} % for "safe underlining"
\renewcommand\u[1]{\uline{#1}}

\begin{document}
\hrule % just to illustrate width of text block
\smallskip\noindent
\begin{tabularx}{\linewidth}{ *{4}{d{2.0}} }
\mc{Header 1} & \mc{Header 2} & \mc{Header 3} & \mc{Header 4}\\
    5 & 5 & 5 & 5\\
    \u{+4} &\u{+4} &\u{+4} &\u{+4}\\
\end{tabularx}
\end{document}

Связанный контент