我正在尝试创建一个看起来像两个并排的独立表格的表格。每个“表格”下方都应有文字说明表格的相关内容。每个“表格”下方的文字导致最后一列扩展(见图)。
我希望所有列的宽度相同,并且文本的长度不超过每个表格的宽度,但我似乎不知道如何做到这一点。
下面是我正在使用的代码。
\begin{table}[H]
\centering
\begin{adjustbox}{width=\textwidth}
\begin{tabular}{ccccccccc}
\cline{1-4} \cline{6-9}
\multicolumn{1}{|c|}{} &
\multicolumn{1}{c|}{\textbf{A}} &
\multicolumn{1}{c|}{\textbf{B}} &
\multicolumn{1}{c|}{\textbf{C}} &
\multicolumn{1}{c|}{\textbf{}} &
\multicolumn{1}{c|}{} &
\multicolumn{1}{c|}{\textbf{A}} &
\multicolumn{1}{c|}{\textbf{B}} &
\multicolumn{1}{c|}{\textbf{C}} \\ \cline{1-4} \cline{6-9}
\multicolumn{1}{|c|}{\textbf{A}} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{} &
\multicolumn{1}{c|}{\textbf{A}} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{0} \\ \cline{1-4} \cline{6-9}
\multicolumn{1}{|c|}{\textbf{B}} &
\multicolumn{1}{c|}{1} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{} &
\multicolumn{1}{c|}{\textbf{B}} &
\multicolumn{1}{c|}{1} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{0} \\ \cline{1-4} \cline{6-9}
\multicolumn{1}{|c|}{\textbf{C}} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{1} &
\multicolumn{1}{c|}{0} &
\multicolumn{1}{c|}{} &
\multicolumn{1}{c|}{\textbf{C}} &
\multicolumn{1}{c|}{1} &
\multicolumn{1}{c|}{1} &
\multicolumn{1}{c|}{1} \\ \cline{1-4} \cline{6-9}
\multicolumn{4}{l}{Transitive dependency} &
\multicolumn{1}{l}{\textbf{}} &
\multicolumn{4}{l}{Direct dependency}
\end{tabular}
\end{adjustbox}
\caption{Adjacency matrices}
\label{tab:adjacency_matrix}
\end{table}
答案1
欢迎来到 TeX.SE!
- 请始终提供 MWE(最小工作示例),这是一个小但完整的文档,以 和
\documentclass
开头end{document}
- 在序言中,MWE 应该只加载与您的问题相关的包。
像这样:
使用tblr
由包定义的表tabularray
,MWE 很简单:
\documentclass{article}
\usepackage{tabularray}
\begin{document}
\begin{table}[ht]
\centering
\begin{tblr}{hline{1-Y} = {1-4,6-Z}{solid},
vline{1-Z} = {1-Y}{solid}, %{solid},
colspec = {X[c, font=\bfseries] *{4}{X[c]}
X[c, font=\bfseries] *{3}{X[c]}},
row{1} = {font=\bfseries},
row{Z} = {font=\normalfont}
}
& A & B & C & & & A & B & C \\
A & 0 & 0 & 0 & & A & 0 & 0 & 0 \\
B & 1 & 0 & 0 & & B & 1 & 0 & 0 \\
C & 0 & 1 & 0 & & C & 1 & 1 & 1 \\
\SetCell[c=4]{c} Transitive dependency
& & & & & \SetCell[c=4]{c} Direct dependency
& & & \\
\end{tblr}
\caption{Adjacency matrices}
\label{tab:adjacency_matrix}
\end{table}
\end{document}
答案2
我觉得创建两个子表比将一个表拆分成两个更有意义。这可以subtable
通过subcaption
包。此外,p
在环境中使用列tabular
,您可以手动指定列的宽度(然后确保它们都具有相同的宽度)。
\documentclass{article}
\usepackage{subcaption}
\usepackage{array}
\begin{document}
\begin{table}
\captionsetup[subtable]{labelformat=empty}
\begin{subtable}{.5\textwidth}
\centering
\begin{tabular}{|*{4}{>{\centering\arraybackslash}p{5mm}|}}
\hline
& \textbf{A} & \textbf{B} & \textbf{C} \\ \hline
\textbf{A} & 0 & 0 & 0 \\ \hline
\textbf{B} & 1 & 0 & 0 \\ \hline
\textbf{C} & 0 & 1 & 0 \\ \hline
\end{tabular}
\caption{Transitive dependency}
\end{subtable}%
\begin{subtable}{.5\textwidth}
\centering
\begin{tabular}{|*{4}{>{\centering\arraybackslash}p{5mm}|}}
\hline
& \textbf{A} & \textbf{B} & \textbf{C} \\ \hline
\textbf{A} & 0 & 0 & 0 \\ \hline
\textbf{B} & 1 & 0 & 0 \\ \hline
\textbf{C} & 1 & 1 & 1 \\ \hline
\end{tabular}
\caption{Direct dependency}
\end{subtable}
\caption{Adjacency matrices}
\end{table}
\end{document}