
Estou tentando fazer uso do array
ambiente (qualquer coisa que opere de forma semelhante seria suficiente) que esticará automaticamente as colunas para que tenham largura uniforme e se espalhem por toda a página. Um exemplo:
\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}
Tudo o que sei fazer no momento é inserir uma coluna 'falsa' entre cada par de colunas e usá-la \hspace*{##cm}
para forçar as colunas a se espalharem, mas isso fica um pouco tedioso se eu tiver, digamos, 7 colunas em 13 linhas que , por um motivo ou outro, não podem fazer parte de um único ambiente de array.
Existe uma abordagem semi-simples para este problema? Estive pesquisando, mas não encontrei nada que parecesse muito útil (pode ser que eu não esteja familiarizado o suficiente com o jargão para inserir também as melhores frases de pesquisa).
Responder1
Você pode usar a tabular*
e preencher o espaço. Para ter colunas no modo matemático, use array
package e >{$}
como eu fiz.
\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}
Você pode simplificar, conforme sugerido por Mico, definindo um novo tipo de coluna:
\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}
Responder2
(Resposta atualizada para incorporar os comentários de acompanhamento do OP.)
Se eu entendi seus requisitos corretamente, você quer
os números dentro de cada coluna serão alinhados decimais
as próprias colunas serão centralizadas
ajuste automático às larguras das colunas e/ou à quantidade de espaços em branco entre colunas para que toda a tabela ocupe a largura do bloco de texto.
Uma maneira de atingir esses objetivos é usar um tabularx
ambiente, carregar o dcolumn
pacote para alinhar os números decimais e usar uma forma modificada (isto é, centralizada) do X
tipo coluna para compor os cabeçalhos de cada linha.
\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}