Latex三线表、多线表、内容跨行/跨列复杂表的详解与源代码

经典三线表

经典三线表主要采用booktabs宏包中提供的三个命令,即\toprule、\midrule以及\bottomrule来实现。通俗的讲,\toprule、\midrule以及\bottomrule命令实现的功能是画三线表中的上中下三道线,我们只需要在三条线之间填充内容。同行不同列的内容用&符号隔开,不同行之间用换行符\\实现。

画表的整体思路如下:用\toprule命令画第一道线——>输入第一行的内容“Item1&Item2&Item3&Item4”与回车符\\——>利用\midrule命令画第二道横线——>输入第二行内容“Data1&Data2&Data3&Data4”与回车符\\——>输入第三行内容“Data5&Data6&Data7&Data8”与回车符\\——>利用\bottomrule命令画第三道横线。至此,整个经典三线表已经画完。

效果

代码

\documentclass{article} 
\usepackage{float}%提供float浮动环境
\usepackage{booktabs}%提供命令\toprule、\midrule、\bottomrule
 
\begin{document}
 
%经典三线表
\begin{table}[H]
\caption{\textbf{Example 1}}%标题
\centering%把表居中
\begin{tabular}{cccc}%四个c代表该表一共四列,内容全部居中
\toprule%第一道横线
Item 1&Item 2&Item 3&Item 4 \\
\midrule%第二道横线 
Data1&Data2&Data3&Data4 \\
Data5&Data6&Data7&Data8 \\
\bottomrule%第三道横线
\end{tabular}
\end{table}
 
\end{document}

经典多线表

效果

对于\toprule、\midrule以及\bottomrule命令,最常见的用法为经典三线表,但偶然一次帮导师排版论文时用到多线表,于是突发奇想利用经典三线表命令制作多线表,事实证明是可行的。在利用经典三线表命令制作多线表时需要注意,画第一道线的\toprule命令与画最后一道线的\bottomrule命令是固定不变的,中间其他的线用\midrule画即可。

画表具体思路如下(以画四线表为例):用\toprule命令画第一道线——>输入第一行的内容“Item1&Item2&Item3&Item4”与回车符\\——>利用\midrule命令画第二道横线——>输入第二行内容“Data1&Data2&Data3&Data4”与回车符\\——>利用\midrule命令画第三道横线—>输入第三行内容“Data5&Data6&Data7&Data8”与回车符\\——>利用\bottomrule命令画第三道横线。至此,整个经典四线表已经画完。

\documentclass{article} 
\usepackage{float}%提供float浮动环境
\usepackage{booktabs}%提供命令\toprule、\midrule、\bottomrule
 
\begin{document}
 
%经典四线表
\begin{table}[H]
\caption{\textbf{Example 2}}%标题
\centering%把表居中
\begin{tabular}{cccc}%四个c代表该表一共四列,内容全部居中
\toprule%第一道横线
Item 1&Item 2&Item 3&Item 4 \\
\midrule%第二道横线 
Data1&Data2&Data3&Data4 \\
\midrule%第三道横线 
Data5&Data6&Data7&Data8 \\
\bottomrule%第四道横线
\end{tabular}
\end{table}
 
\end{document}

内容跨行表 

效果

通过上图可以看出,“Item1”、“Item2”、“Item3”均占据了两行内容,即产生了所谓的“内容跨行”。在这种情况下要引进宏包multirow所提供的命令\multirow{}{}{},该命令有三个参数,第一个参数为所跨行数,第二个参数为表格宽度,第三个参数为跨行内容。

在该例中,将两道横线中间的部分看做一个“大行”,第一个大行内部又分为上下两个“小行”。在上边的小行中,各列内容从左往右依次为:Item1、跨两行的Item2、跨两行的Item3、跨两行的Item4。在下边的小行中,各列的内容依次为:number、空白、空白、空白。注意,在第一小行与第二小行之间要采用换行符\\,对于没有跨行内容的大行可按常规思路写

代码

\documentclass{article} 
\usepackage{float}%提供float浮动环境
\usepackage{booktabs}%提供命令\toprule、\midrule、\bottomrule
\usepackage{multirow}%提供跨行命令\multirow{}{}{}
 
\begin{document}
 
%经典三线表
\begin{table}[H]
\caption{\textbf{Example 3}}
\centering
\begin{tabular}{cccc}%四个c代表该表一共四列,内容全部居中
\toprule%第一道横线
Item1& \multirow{2}{*}{Item2}& \multirow{2}{*}{Item3}& \multirow{2}{*}{Item4} \\%表格宽度参数采用*代表自动宽度
number&&&\\
\midrule%第二道横线 
Data1&Data2&Data3&Data4 \\
\midrule%第三道横线 
Data5&Data6&Data7&Data8 \\
\bottomrule%第四道横线
\end{tabular}
\end{table}
 
\end{document}

内容跨列表

效果

通过上图可以看出,“Resultsummary”占据了两列内容,即产生了所谓的“内容跨列”。在这种情况下要引进宏包multirow所提供的命令\multicolumn{}{}{},该命令有三个参数,第一个参数为所跨列数,第二个参数为内容格式,第三个参数为跨列内容。

在该例中,将两道横线中间的部分看做一个“大行”,第一个大行内部又分为上下两个“小行”。在上边的小行中,各列内容从左往右依次为:空白、跨两列的Resultsummary、空白(两列空白加一个跨两列的内容,实际上总共也是占了四列的空间)。在下边的小行中,各列的内容依次为:Item1、Item2、Item3、Item4。注意,在第一小行与第二小行之间要采用换行符\\,对于没有跨行内容的大行可按常规思路写。

代码

\documentclass{article} 
\usepackage{float}%提供float浮动环境
\usepackage{booktabs}%提供命令\toprule、\midrule、\bottomrule
\usepackage{multirow}%提供跨列命令\multicolumn{}{}{}
 
\begin{document}
 
%经典三线表
\begin{table}[H]
\caption{\textbf{Example 4}}
\centering
\begin{tabular}{cccc}%四个c代表有四列且内容居中
\toprule%第一道横线
&\multicolumn{2}{c}{Resultsummary}& \\%跨两列、内容居中、跨列内容为Resultsummary
Item1&Item2&Item3&Item4 \\
\midrule%第二道横线 
Data1&Data2&Data3&Data4 \\
\midrule%第三道横线 
Data5&Data6&Data7&Data8 \\
\bottomrule%第四道横线
\end{tabular}
\end{table}
 
\end{document}

内容跨行、跨列多线复杂表

效果

对于第一大行,将其分为上下两小行。上边小行从左往右依次是:空白、占据两列且加粗加下划线的Resultsummary、空白(两列空白加一个占据两列的数据,总共实际也占四列)。下边小行分别是Item1、Item2、Item3、Item4。注意,两小行之间需要用换行符\\。

对于第二大行,仍将其分为上下两小行。上边小行从左往右依次是:占据两行的Data1、Data2、Data3、Data4。下边小行分别是空白、number2、number3、number4。注意,两小行之间需要用换行符\\。

对于没有出现内容跨行与跨列情况的大行可按正常四路写即可

代码

\documentclass{article} 
\usepackage{float}%提供float浮动环境
\usepackage{booktabs}%提供命令\toprule、\midrule、\bottomrule
\usepackage{multirow}%提供跨列命令\multicolumn{}{}{}
 
\begin{document}
 
%经典三线表
\begin{table}[H]
\caption{\textbf{Example 5}}
\centering
\begin{tabular}{cccc}%四个c代表有四列且内容居中
\toprule%第一道横线
&\multicolumn{2}{c}{\textbf{\underline{Resulrsummary}}}& \\%跨两列;内容居中;跨列内容为Resultsummary通过\textbf{}与\underline{}命令分别对内容加粗、加下划线
Item1&Item2&Item3&Item4 \\
\midrule%第二道横线 
\multirow{2}{*}{Data1}&Data2&Data3&Data4 \\%Data1跨两行,自动表格宽度
&number2&number3&number4 \\
\midrule%第三道横线 
Data5&Data6&Data7&Data8 \\
\bottomrule%第四道横线
\end{tabular}
\end{table}
 
\end{document}

其他花里胡哨的表也是这些的组合

### 设置 LaTeX 三线的背景颜色 为了设置 LaTeX 格中的背景颜色,可以使用 `colortbl` 和 `xcolor` 包。这两个包提供了对格单元格着色的支持。 首先,在文档导言区加载必要的宏包: ```latex \usepackage[table]{xcolor} ``` 此命令允许使用 `xcolor` 的扩展功能来处理格的颜色[^1]。 定义自定义颜色以便于管理不同部分的颜色方案: ```latex \definecolor{lightgray}{rgb}{0.9,0.9,0.9} % 定义浅灰色 \definecolor{violet}{RGB}{238,130,238} % 自定义紫色 ``` 创建带有背景颜色的三线结构如下所示: ```latex \begin{table}[htbp] \centering \rowcolors{2}{white}{lightgray} % 交替行背景色 \begin{tabular}{|c|c|} \hline \rowcolor{violet}\textbf{Header 1} & \textbf{Header 2}\\ \hline Item A & Description of item A\\ Item B & Description of item B\\ \specialrule{.1em}{.05em}{.05em} % 使用特殊规则模拟三线效果 Item C & Description of item C\\ Item D & Description of item D\\ \hline \end{tabular} \caption{Example Table with Background Colors} \label{tab:example_table} \end{table} ``` 上述代码片段展示了如何应用不同的背景颜色到整个格的不同区域。注意这里使用的 `\rowcolors` 命令用于指定奇数行和偶数行之间的交替背景颜色;而 `\rowcolor` 则应用于特定行以覆盖默认样式。 对于更复杂的布局需求,还可以探索其他高级技巧或第三方宏包如 `booktabs` 来增强视觉现力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值