¿Cómo establecer automáticamente los anchos de las columnas y mantener las alineaciones?

¿Cómo establecer automáticamente los anchos de las columnas y mantener las alineaciones?

¿Cómo establecer automáticamente los anchos de las columnas y mantener las alineaciones, por favor? ¿Es posible configurar la alineación lc usando la columna X? Gracias

\documentclass{article}

\begin{document}
hdghdggggggggfhgfhdgfhd hggdgfh  gfhdgfhjghjhj hgfhdgjghjgd ghfhgdhgfh hgfdhghdgh hfghgdh fghgf fdghgd gfdhd
\begin{table}
\caption[]{Caption}
\label{pyttab}
\small
\centering
\begin{tabular*}{\textwidth}{lccc}
Parameter       & AAAA &  BBBBBBBBBBBBBB &  C\\
Parameter       & A &  B &  C\\
\noalign{\smallskip}\hline\noalign{\smallskip}
\end{tabular*}
\end{table}
\end{document}

Respuesta1

¿Como esto?

ingrese la descripción de la imagen aquí

(Se introducen líneas verticales para observar el ancho de las columnas de manera más simple. En la tabla real puede eliminarlas)

  • No está claro a qué te refieres con "automático".
  • Del MWE mostrado se puede concluir que le gusta tener tablas con el ancho prescrito (= \textwidth).
  • Para la columna Xnecesitas usar tabularxla tabla. En él puedes utilizar Xcolumnas (al menos una) y columnas definidas para tabulartablas.
  • Una opción atractiva es el uso del tabularraypaquete.
  • A continuación se muestran ejemplos de uso tabularxy tablas tblr(definidas en el paquete):tabularray
\documentclass{article}
\usepackage{lipsum}
\usepackage{tabularx}
    \newcolumntype{C}{>{\centering\arraybackslash}X}
    \newcolumntype{L}{>{\raggedright\arraybackslash}X}
    \newcolumntype{R}{>{\raggedleft\arraybackslash}X}

\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}
\lipsum[1][1-2]
    \begin{table}[ht]
\caption[short caption]{Caption}
\label{pyttab}
\begin{tabularx}{\textwidth}{|L|C|c|R|}
    \hline % ?
Parameter       & AAAA &  BBBBBBBBBBBBBB &  C\\
Parameter       & A &  B &  C\\
    \hline
\end{tabularx}
    \end{table}
    
\lipsum[1][3-5]
    \begin{table}[ht]
\caption[short caption]{Caption}
\label{tab:tblr}
\begin{tblr}{colspec={X[l] X[c] c X[r]}, vlines}
    \toprule % ?
Parameter       & AAAA &  BBBBBBBBBBBBBB &  C\\
Parameter       & A &  B &  C\\
    \bottomrule
\end{tblr}
\end{table}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

El entorno {NiceTabular}de nicematrixproporciona Xargumentos opcionales de ancho de columnas para la alineación horizontal: X[l], X[c], etc.

\documentclass{article}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage{nicematrix}

\begin{document}

\lipsum[1]

\begin{table}
\caption{Caption}
\label{pyttab}
\small
\centering
\begin{NiceTabular}{X[l]X[c]X[c]X[c]}[hvlines]
Parameter       & AAAA &  BBBBBBBBB BBBBB BBB BBB &  C\\
Parameter       & A &  B &  C\\
\end{NiceTabular}
\end{table}

\end{document}

Salida del código anterior

información relacionada