我正在尝试创建一个使用多列和多行的表,但遇到了一些图形问题。
正如您在下图中看到的,右上角缺少一条线,第二条水平线在单元格中间切断)
找到下面的代码。
\documentclass{article}
%Used to create Macro 1
\usepackage{array}
\usepackage{multirow}
%Used for \textsubscript
\usepackage{fixltx2e}
%Macro
\newcolumntype{"}{@{\hskip\tabcolsep\vrule width 1pt\hskip\tabcolsep}}
\makeatother
\begin{document}
\begin{table}
\centering
\begin{tabular}[ht]{|c"c|c|c|c|}
\hline
\multirow{2}{*}{\textbf{Change}} & \multicolumn{2}{c}{\textbf{Main}} & \multicolumn{2}{c}{\textbf{Sub}} \\ \cline{2-5}
& \textbf{P} & \textbf{A} & \textbf{P} & \textbf{A} \\ \hline
1 & U & R\textsubscript{ef} & R\textsubscript{ef} & U \\ \hline
2 & U & U & R\textsubscript{ef} & R\textsubscript{ef} \\ \hline
3 & G & P & P & G \\ \hline
4 & P & P & G & G \\ \hline
5 & A & A & N/A & N/A \\ \hline
6 & E & E & N/A & N/A \\ \hline
7 & E & E & N/A & N/A \\ \hline
8 & E & E & N/A & N/A \\ \hline
9 & E & E & N/A & N/A \\ \hline
10 & E & E & G & G \\ \hline
11 & E & E & G & G \\ \hline
12 & E & E & G & G \\ \hline
13 & R\textsubscript{ed} & R\textsubscript{ed} & N/A & N/A \\ \hline
\end{tabular}
\caption{X }
\label{table:X}
\end{table}
\end{document}
如果您需要任何其他信息,请发表评论,我会添加信息。
答案1
检查一下:
在表格规范中添加 | 作为
\begin{tabular}[ht]{|c|c|c|c|c|} %%instead of "
和
\multicolumn{2}{c|}{\textbf{Sub}} %%note the | after c
给予
\documentclass{article}
%Used to create Macro 1
\usepackage{array}
\usepackage{multirow}
%Used for \textsubscript
\usepackage{fixltx2e}
%Macro
\newcolumntype{"}{@{\hskip\tabcolsep\vrule width 1pt\hskip\tabcolsep}}
\makeatother
\begin{document}
\begin{table}
\centering
\begin{tabular}[ht]{|c|c|c|c|c|} %%added | here instead of "
\hline
\multirow{2}{*}{\textbf{Change}} & \multicolumn{2}{c}{\textbf{Main}} & \multicolumn{2}{c|}{\textbf{Sub}} \\ %added | after c \cline{2-5}
& \textbf{P} & \textbf{A} & \textbf{P} & \textbf{A} \\ \hline
1 & U & R\textsubscript{ef} & R\textsubscript{ef} & U \\ \hline
2 & U & U & R\textsubscript{ef} & R\textsubscript{ef} \\ \hline
3 & G & P & P & G \\ \hline
4 & P & P & G & G \\ \hline
5 & A & A & N/A & N/A \\ \hline
6 & E & E & N/A & N/A \\ \hline
7 & E & E & N/A & N/A \\ \hline
8 & E & E & N/A & N/A \\ \hline
9 & E & E & N/A & N/A \\ \hline
10 & E & E & G & G \\ \hline
11 & E & E & G & G \\ \hline
12 & E & E & G & G \\ \hline
13 & R\textsubscript{ed} & R\textsubscript{ed} & N/A & N/A \\ \hline
\end{tabular}
\caption{X }
\label{table:X}
\end{table}
\end{document}
对于较粗的垂直线,使用
\begin{tabular}[ht]{|c!{\vrule width 2pt}c|c|c|c|}
对于这样的输出:
答案2
{NiceTabular}
供参考,这里有一种使用创建该表的方法nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\newcolumntype{I}{|[tikz={line width=1pt}]}
\begin{table}
\centering
\begin{NiceTabular}{cIcccc}[hvlines]
\RowStyle[nb-rows=2]{\bfseries}
\Block{2-1}{Change} & \Block{1-4}{} % to prevent a vertical rule between "Main" and "Sub"
\Block{1-2}{Main} & & \Block{1-2}{Sub} \\
& P & A & P & A \\
1 & U & R\textsubscript{ef} & R\textsubscript{ef} & U \\
2 & U & U & R\textsubscript{ef} & R\textsubscript{ef} \\
3 & G & P & P & G \\
4 & P & P & G & G \\
5 & A & A & N/A & N/A \\
6 & E & E & N/A & N/A \\
7 & E & E & N/A & N/A \\
8 & E & E & N/A & N/A \\
9 & E & E & N/A & N/A \\
10 & E & E & G & G \\
11 & E & E & G & G \\
12 & E & E & G & G \\
13 & R\textsubscript{ed}& R\textsubscript{ed} & N/A & N/A \\
\end{NiceTabular}
\caption{X}
\label{table:X}
\end{table}
\end{document}
您需要进行多次编译(因为nicematrix
在后台使用了 PGF/TikZ 节点)。