![如何在表格環境中繪製特定寬度的水平線?](https://rvso.com/image/286996/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%A1%A8%E6%A0%BC%E7%92%B0%E5%A2%83%E4%B8%AD%E7%B9%AA%E8%A3%BD%E7%89%B9%E5%AE%9A%E5%AF%AC%E5%BA%A6%E7%9A%84%E6%B0%B4%E5%B9%B3%E7%B7%9A%EF%BC%9F.png)
我正在嘗試製作一個包含一些數字和總結果的表格,如下所示:
Age Female Male Total
----------------------------
Under 10 5 8 13
10-30 57 61 118
30-60 5 1 6
Over 60 3 0 3
--- --- ---
TOTAL 70 70 140
----------------------------
這三行---
代表一種跨越半行的下劃線。
如何繪製或指定表格線的長度?
答案1
該命令\cmidrule
在括號中有一個可選參數,您可以在其中指定要減少的一側。
以下是如何實現您的表格
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lrrr}
Age & Female & Male & Total \\
\midrule
Under 10 & 5 & 8 & 13 \\
10-30 & 57 & 61 & 118 \\
30-60 & 5 & 1 & 6 \\
Over 60 & 3 & 0 & 3 \\
\cmidrule(l){2-2}\cmidrule(l){3-3}\cmidrule(l){4-4}
TOTAL & 70 & 70 & 140 \\
\bottomrule
\end{tabular}
\end{document}
這是另一個具有固定列的版本,其中 的長度\cmidrule
減少了一個固定值:
\documentclass{article}
\usepackage{booktabs,array}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}}
\begin{document}
\begin{tabular}{l*{3}{R{1.2cm}}}
Age & Female & Male & Total \\
\midrule
Under 10 & 5 & 8 & 13 \\
10-30 & 57 & 61 & 118 \\
30-60 & 5 & 1 & 6 \\
Over 60 & 3 & 0 & 3 \\
\cmidrule(l{.7cm}){2-2}\cmidrule(l{.7cm}){3-3}\cmidrule(l{.7cm}){4-4}
TOTAL & 70 & 70 & 140 \\
\bottomrule
\end{tabular}
\end{document}
答案2
以下範例在總和之上新增一條規則。規則兩側的長度都增加了 的量\fboxsep
。 MWE 取自 karlkoeller 的回答。
\documentclass{article}
\usepackage{booktabs}
\newcommand*{\oline}[1]{%
\kern-\fboxsep
\vbox{%
\hrule
\kern1ex
\hbox{%
\kern\fboxsep
#1%
\kern\fboxsep
}%
}%
\kern-\fboxsep
}
\begin{document}
\begin{tabular}{lrrr}
Age & Female & Male & Total \\
\midrule
Under 10 & 5 & 8 & 13 \\
10--30 & 57 & 61 & 118 \\
30--60 & 5 & 1 & 6 \\
Over 60 & 3 & 0 & 3 \\
TOTAL & \oline{70} & \oline{70} & \oline{140} \\
\bottomrule
\end{tabular}
\end{document}