Latex 中的动态大小表格

Latex 中的动态大小表格

为了看起来更美观一些,我写了一个表格,如下:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{titlesec}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{makecell}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{multirow}
\usepackage{enumitem}

\begin{document}

\begin{table}[ht]
    \centering
    \setlength{\tabcolsep}{2pt}
    \renewcommand{\arraystretch}{1.5}
    \begin{tabular}{p{0.3\textwidth}>{\centering}p{0.12\textwidth}>{\centering}p{0.12\textwidth}>{\centering}p{0.12\textwidth}>{\centering}p{0.12\textwidth}>{\centering\arraybackslash}p{0.12\textwidth}}
        \hline
        & \multicolumn{2}{c}{\textbf{ONE}} & \multicolumn{2}{c}{\textbf{TWO}} & \textit{Total} \\
        & $Obs$ & $Exp$ & $Obs$ & $Exp$ & \\
        \hline
        \textbf{First Line} & 4 & 22 & 1 & 2.31 & 17 \\
        \textbf{Second Line} & 5 & 1.79 & 9 & 5 & 28 \\
        \hline
        \centering \textit{Total} & \multicolumn{2}{c}{22} & \multicolumn{2}{c}{23} & \\
        \hline
    \end{tabular}
    \caption{Some caption}
    \label{tab:onetab}
\end{table}

\end{document}

现在,此代码生成了一个非常干净且可读的表格,但不太灵活。问题是它不灵活,但它的列具有固定大小。我怎样才能使它动态化(即仅依赖于\textwidth)并使其使用所有可用的水平空间?

一种可能的合适解决方案是使用 tabularx 环境,但我无法使用这种表格来做到这一点。

答案1

使用该包的一种可能性tabularray

\documentclass{article}

\usepackage{booktabs}
\usepackage{tabularray}

\begin{document}

\begin{table}[ht]
    \begin{tblr}{
      colspec={@{}X[4,l,font=\bfseries]X[c]X[c]X[c]X[c]X[c]},
      row{1}={font=\bfseries},
      row{2}={font=\itshape},
      cell{1}{6}={font=\itshape},
      cell{5}{1}={c,font=\itshape}
    }
        \hline
        & \SetCell[c=2]{h} ONE & & \SetCell[c=2]{h} TWO & & Total \\
        & Obs & Exp & Obs & Exp & \\
        \hline
        First Line & 4 & 22 & 1 & 2.31 & 17 \\
        Second Line & 5 & 1.79 & 9 & 5 & 28 \\
        \hline
        Total & \SetCell[c=2]{h} 22 & & \SetCell[c=2]{h} 23 & & \\
        \hline
    \end{tblr}
    \caption{Some caption}
    \label{tab:onetab2}
\end{table}

\end{document}

在此处输入图片描述

相关内容