使合并单元格(标题)下的列宽度相同

使合并单元格(标题)下的列宽度相同

在下表中,我将前两列合并为一列,使其仅作为第一行的标题,而下方的其余行的寄存器状态(0 和 1)仍为两列。我怎样才能使从第二行到最后一行的前两列宽度相等?现在的显示方式是第一列非常窄,第二列占据了标题的剩余宽度。

我目前正在使用的代码:

\begin{table}[h]    
\centering
\caption{Registers GPIO\_PORT\_MODE\_L/H\_x control.}  
\label{tab:GPIOX_AF}    
\begin{tabular}{|cc|l|}
\hline
\multicolumn{2}{|l|}{GPIO\_PORT\_MODE\_L/H\_x} & Function             \\ \hline
\multicolumn{1}{|c|}{0}           & 0          & GPIOX function       \\ \hline
\multicolumn{1}{|c|}{0}           & 1          & Alternate function A \\ \hline
\multicolumn{1}{|c|}{1}           & 0          & Alternate function B \\ \hline
\multicolumn{1}{|c|}{1}           & 1          & Alternate function C \\ \hline
\end{tabular}
\end{table}

答案1

我建议您将可变宽度的c列类型替换为固定宽度的w列类型。接下来,按照下面给出的代码中的详细操作,开始计算可用的\mylen通过测量字符串的宽度来确定第 1 列和第 2 列(称为)的宽度GPIO\_PORT\_MODE\_L/H\_x

在此处输入图片描述

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{array} % for 'w' column type
\newlength\mylen

\begin{document}

\begin{table}[h]

% Calculate *usable* width of columns 1 and 2
\settowidth\mylen{GPIO\_PORT\_MODE\_L/H\_x}
\mylen=\dimexpr\mylen-2\tabcolsep-1\arrayrulewidth\relax
\mylen=\dimexpr\mylen/2\relax

\setlength\extrarowheight{2pt} % for a less-cramped "look"
\centering
\caption{Registers GPIO\_PORT\_MODE\_L/H\_x control.}
\label{tab:GPIOX_AF}

\smallskip
\begin{tabular}{ | wc{\mylen} | wc{\mylen} | l | }
\hline
\multicolumn{2}{|c|}{GPIO\_PORT\_MODE\_L/H\_x} & Function \\ \hline
0 & 0 & GPIOX function       \\ \hline
0 & 1 & Alternate function A \\ \hline
1 & 0 & Alternate function B \\ \hline
1 & 1 & Alternate function C \\ \hline
\end{tabular}
\end{table}
\end{document} 

相关内容