Как автоматически задать ширину столбцов и сохранить выравнивание?

Как автоматически задать ширину столбцов и сохранить выравнивание?

Как автоматически задать ширину столбцов и сохранить выравнивание, пожалуйста? Возможно ли задать выравнивание lc с помощью столбца X? Спасибо

\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}

решение1

Так?

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

(вертикальные линии введены для более простого наблюдения за шириной столбцов. В реальной таблице их можно удалить)

  • Не совсем понятно, что вы подразумеваете под словом «автомат».
  • Из приведенного MWE можно сделать вывод, что вам хотелось бы иметь таблицы с заданной шириной (= \textwidth).
  • Для столбца Xнужно использовать tabularxтаблицу. В ней можно использовать Xстолбцы (хотя бы один) и столбцы, определенные для tabularтаблиц.
  • Привлекательным вариантом является использование пакета tabularray.
  • Ниже приведены примеры использования tabularxи tblr(определены в 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}

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

решение2

Среда {NiceTabular}предоставляет необязательные аргументы ширины столбцов для горизонтального выравнивания: , и т. д nicematrix.XX[l]X[c]

\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}

Вывод кода выше

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