
Estoy tratando de hacer uso del array
entorno (cualquier cosa que funcione de manera similar sería suficiente) que estirará automáticamente las columnas para que tengan un ancho uniforme y se distribuyan por toda la página. Un ejemplo:
\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}
Todo lo que sé cómo hacer en este momento es insertar una columna 'falsa' entre cada par de columnas y usarla \hspace*{##cm}
para forzar que las columnas se extiendan, pero esto se vuelve un poco tedioso si tengo, digamos, 7 columnas en 13 filas que , por una razón u otra, no todos pueden ser parte de un único entorno de matriz.
¿Existe un enfoque semisimple para este problema? He estado buscando, pero no he encontrado nada que me haya parecido muy útil (puede darse el caso de que no esté lo suficientemente familiarizado con la jerga para introducir también las mejores frases de búsqueda).
Respuesta1
Puedes usar a tabular*
y llenar el espacio. Para tener columnas en modo matemático use array
el paquete y >{$}
como lo hice yo.
\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}
Puedes simplificar, como sugiere Mico, definiendo un nuevo tipo de columna:
\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}
Respuesta2
(Respuesta actualizada para incorporar los comentarios de seguimiento del OP).
Si entiendo sus requisitos correctamente, desea
los números dentro de cada columna se alinearán con decimales
las columnas mismas deben estar centradas
ajuste automático del ancho de las columnas y/o la cantidad de espacios en blanco entre columnas para que toda la tabla ocupe el ancho del bloque de texto.
Una forma de lograr estos objetivos es utilizar un tabularx
entorno, cargar el dcolumn
paquete para alinear decimalmente los números y utilizar una forma modificada (es decir, centrada) del X
tipo de columna para componer los encabezados de cada fila.
\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}