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

一、经典三线表

1.1 效果图

1.2 分析

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

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

1.3 具体实现代码及详细注释

\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}

二、 多线表

2.1 效果图

 

2.2 分析

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

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

2.3 具体实现代码及详细注释

\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}

三、内容跨行表

3.1 效果图

3.2 分析

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

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

3.3 具体实现代码及详细注释

\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}

四、内容跨列表

4.1 效果图

4.2 分析

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

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

4.3 具体实现代码及详细注释

\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}

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

5.1 效果图

5.2 分析

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

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

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

5.3 具体实现代码及详细注释

\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}

 

 

左肩理想右肩担当,君子不怨永远不会停下脚步!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_37707218/article/details/107393636
今日推荐