我希望midrule
我的桌子的长度与宽度相同。使用我目前拥有的代码,这是我得到的输出:
您能帮我将其调整midrule
为与我的桌子宽度相同的尺寸吗?
这是我的代码:
\documentclass[article, english]{book}
\usepackage{booktabs}
\usepackage[table,x11names,dvipsnames,table]{xcolor}
\usepackage{multicol}
\usepackage{tabularx}
\usepackage{ctable}
\begin{document}
\begin{table}[ht!]
%\centering
\setlength\tabcolsep{12pt}
\rowcolors{2}{blue!20}{white}
%\begin{tabular}{@{}llll@{}}
\begin{tabularx}{\textwidth}{llll}
\rowcolor{blue!50}
\textbf{Freq} & \textbf{Board} & \textbf{\begin{tabular}[c]{@{}l@{}}PTT\\ ACC\end{tabular}} & \textbf{MAP} \\
136.0125 & 508 & -62.1 & -61.5 \\
173.9875 & 508 & -61.2 & -61.1 \\
380.0125 & 508 & -59.8 & -59.9 \\
519.9875 & 508 & -59 & -58.8 \\
764.0625 & 508 & -56.8 & -56.6 \\
869.8875 & 508 & -55.8 & -55.7 \\
\midrule[2pt]
136.0125 & 3511 & -61.9 & \cellcolor[HTML]{FE0000}-55.0 \\
173.9875 & 3511 & -61.7 & \cellcolor[HTML]{FE0000}-55.0 \\
380.0125 & 3511 & -59.7 & \cellcolor[HTML]{FE0000}-54.5 \\
519.9875 & 3511 & -58.7 & \cellcolor[HTML]{FE0000}-54.3 \\
764.0625 & 3511 & -56.5 & \cellcolor[HTML]{FE0000}-53.4 \\
869.8875 & 3511 & -55.5 & \cellcolor[HTML]{FE0000}-53.0
\end{tabularx}
\end{table}
\end{document}
答案1
默认行为或tabularx
是设置一个宽度由第一个参数给出的表格 -\textwidth
就你的情况而言。此外,它需要使用至少一个X
-column 才能拉伸到该宽度。如果没有提供,那么实际上就不需要了tabularx
。
为此,不要使用tabularx
,而是tabular
使用:
\documentclass{article}
\usepackage{booktabs}
\usepackage[table,x11names,dvipsnames,table]{xcolor}
\begin{document}
\begin{table}
\centering
\rowcolors{2}{blue!20}{white}%
\begin{tabular}{ *{4}{l} }
\rowcolor{blue!50}
\textbf{Freq} & \textbf{Board} & \textbf{\begin{tabular}[c]{ @{} l @{} }PTT \\ ACC\end{tabular}} & \textbf{MAP} \\
136.0125 & 508 & -62.1 & -61.5 \\
173.9875 & 508 & -61.2 & -61.1 \\
380.0125 & 508 & -59.8 & -59.9 \\
519.9875 & 508 & -59 & -58.8 \\
764.0625 & 508 & -56.8 & -56.6 \\
869.8875 & 508 & -55.8 & -55.7 \\
\specialrule{2pt}{0pt}{0pt}
136.0125 & 3511 & -61.9 & \cellcolor[HTML]{FE0000}-55.0 \\
173.9875 & 3511 & -61.7 & \cellcolor[HTML]{FE0000}-55.0 \\
380.0125 & 3511 & -59.7 & \cellcolor[HTML]{FE0000}-54.5 \\
519.9875 & 3511 & -58.7 & \cellcolor[HTML]{FE0000}-54.3 \\
764.0625 & 3511 & -56.5 & \cellcolor[HTML]{FE0000}-53.4 \\
869.8875 & 3511 & -55.5 & \cellcolor[HTML]{FE0000}-53.0
\end{tabular}
\end{table}
\end{document}
请注意使用\specialrule{<width>}{<above sep>}{<below sep>}
以避免有颜色的行之间出现彩色间隙。
答案2
正如我在评论中指出的那样,表格环境应至少具有一种 ˛X
类型的列。由于您的表格相对较窄,因此最好使用tabular
环境,而应关注列的设计。对于它们,我建议使用S
包提供的列类型makecell
,对于列标题使用\thead
包中的列makecell
。相反,midrule
我宁愿使用Xhline{<thiknes>}
来自makecel
:
\documentclass[article, english]{book}
\usepackage[table]{xcolor}
\definecolor{myred}{HTML}{FE0000}
\usepackage{siunitx}
\usepackage{booktabs, makecell, tabularx}
\renewcommand\theadfont{\bfseries}
\begin{document}
\begin{table}[ht!]
\centering
\setlength\tabcolsep{12pt}
\rowcolors{2}{blue!20}{white}
\begin{tabular}{S[table-format=3.4]
S[table-format=4.0]
S[table-format=-2.1]
S[table-format=-2.1]
}
\rowcolor{blue!50}
{\thead{Frequency}}
& {\thead{Board}}
& {\thead{PTT\\ ACC}}
& {\thead{MAP}} \\
136.0125 & 508 & -62.1 & -61.5 \\
173.9875 & 508 & -61.2 & -61.1 \\
380.0125 & 508 & -59.8 & -59.9 \\
519.9875 & 508 & -59 & -58.8 \\
764.0625 & 508 & -56.8 & -56.6 \\
869.8875 & 508 & -55.8 & -55.7 \\
\Xhline{2pt}
136.0125 & 3511 & -61.9 & \cellcolor{myred}-55.0 \\
173.9875 & 3511 & -61.7 & \cellcolor{myred}-55.0 \\
380.0125 & 3511 & -59.7 & \cellcolor{myred}-54.5 \\
519.9875 & 3511 & -58.7 & \cellcolor{myred}-54.3 \\
764.0625 & 3511 & -56.5 & \cellcolor{myred}-53.4 \\
869.8875 & 3511 & -55.5 & \cellcolor{myred}-53.0
\end{tabular}
\end{table}
\end{document}