![¿Cómo configurar el ancho de una columna 'p' para que sea el ancho restante de una tabla?](https://rvso.com/image/391731/%C2%BFC%C3%B3mo%20configurar%20el%20ancho%20de%20una%20columna%20'p'%20para%20que%20sea%20el%20ancho%20restante%20de%20una%20tabla%3F.png)
Estoy intentando crear una tabla de dos columnas donde la segunda columna llena todo el ancho restante de la tabla hasta \columnwidth. Aquí hay un ejemplo simplificado de dónde intento comenzar:
\noindent \rowcolors[]{1}{}{gray!20}%
\begin{tabular*}{1\columnwidth}{@{\extracolsep{\fill}}cl}
column 1 header & \multicolumn{1}{c}{column 2 header}\tabularnewline
autosized column & This column should contain justified text, wrapping at the width of
the table instead of going past it\tabularnewline
some additional rows... & some additional justified text\global\rownum=0\relax\tabularnewline
\multicolumn{2}{p{1\columnwidth-2\tabcolsep}}{Justified footnotes
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare
sapien vel tellus rhoncus, placerat rutrum ipsum pretium.
Maecenas vel convallis erat. Morbi facilisis, nunc molestie consequat
consectetur, velit turpis facilisis dolor, non tempor mauris nunc
vitae risus. Nullam ante mauris, volutpat ut molestie eget, congue
non velit. Nullam id maximus ligula. }\tabularnewline
\end{tabular*}
Cuando se representa esto, la segunda fila de la tabla se extiende más allá del lado derecho de la tabla. Lo que idealmente me gustaría hacer es configurar la columna de la derecha que actualmente es de tipo 'l' para que sea de tipo 'p', pero luego necesito darle explícitamente un ancho, y no sé cuál es este ancho. En el caso de la celda de notas al pie en la parte inferior, es fácil, porque sé que abarca toda la tabla, que ya sé que es \columnwidth, así que simplemente resto los márgenes tabcolsep que todas las otras filas tienen en el medio, y es exactamente el ancho correcto.
En última instancia, no sé el ancho de la primera columna, porque puede contener muchas más filas y no sé qué fila es necesariamente la entrada más ancha.
¿Cómo puedo evitar que el texto de la segunda fila se desborde del lado derecho de la tabla y se ajuste correctamente, como lo haría una columna 'p'?
Respuesta1
Una forma de hacerlo es medir el ancho de la primera columna usando un cuadro de guardado. Esto significa ingresar la primera columna dos veces.
Configuré la tabla para que se extendiera a lo largo de toda la columna. Tenga en cuenta que los colores se extienden aún más.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{showframe}% MWE only
\newlength{\mywidth}
\begin{document}
\sbox0{\begin{tabular}{c}% measure first column + 2\tabcolsep
column 1 header \\
autosized column \\
some additional rows...
\end{tabular}}%
\setlength{\mywidth}{\dimexpr \columnwidth - \wd0}% do once
\noindent \rowcolors[]{1}{}{gray!20}%
\begin{tabular}{@{}cp{\mywidth}@{}}
column 1 header & \multicolumn{1}{c}{column 2 header}\\
autosized column & This column should contain justified text, wrapping at the width of
the table instead of going past it\\
some additional rows... & some additional justified text\global\rownum=0\relax\\
\multicolumn{2}{@{}p{\columnwidth}@{}}{Justified footnotes
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare
sapien vel tellus rhoncus, placerat rutrum ipsum pretium.
Maecenas vel convallis erat. Morbi facilisis, nunc molestie consequat
consectetur, velit turpis facilisis dolor, non tempor mauris nunc
vitae risus. Nullam ante mauris, volutpat ut molestie eget, congue
non velit. Nullam id maximus ligula. }\\
\end{tabular}
\end{document}