Latex中的表格
作者:互联网
Latex中的表格
Latex中的表格相关说明
个人认为Latex编辑文档过程中,表格的处理是较为复杂和困难的。本文主要针对latex插入表格的方法进行讲解,主要涉及的内容包括基本语法命令、跨行跨列的单元格的设置、表格大小的设置。
1.1 一个较为复杂的例子:
- 具体代码:
\begin{table}[hp] %%参数: h:放在此处 t:放在顶端 b:放在底端 p:在本页
\renewcommand\arraystretch{1.2}
%\setlength{\abovecaptionskip}{0.cm}
%\setlength{\belowcaptionskip}{-0.cm}
\centering % 显示位置为中间
%%\caption{Parameters description} % 表格标题
%%\label{Table1} % 用于索引表格的标签
%字母的个数对应列数,|代表分割线
% l代表左对齐,c代表居中,r代表右对齐
\textbf{Table 2}~~Parameters description.\\ %%表的标题
\begin{tabular}{p{45pt}l|lll} %第一列设置宽度为45pt 全为左对齐 没有分割线
%\setlength{\tabcolsep}{20mm}
%\hline % 表格的横线
\toprule % 顶部线
Parameters & & Definitions & Value & Source \\%[3pt]只改一行 %%表格第一行标题 % 表格中的内容,用&分开,\\表示下一行
%\hline % 表格的横线
\midrule % 中部线
$\beta_{1}$ & & xxxxabcdxxx & 1 & Estimation \\ %%表格内容
\multirow{2}[2]{*}{$\alpha_{3}$} & & aaa1 & \multirow{2}[2]{*}{1} & \multirow{2}[2]{*}{Estimation} \\
& & bbb2 & & \\
$d_{1}$ & & xxxxabcdxxx & 1 & Estimation \\
\multirow{3}[2]{*}{$1/\theta(t)$}& $\theta_{0}$ & 1aaa & 1 & Estimation \\
& $\theta_{1}$ & 2bbb & 1 & Estimation \\
& $\theta_{2}$ & 3ccc & 1 & Estimation \\
\bottomrule % 底部线
%\hline % 表格的横线
\end{tabular}
\end{table}
- 生成表格:
1.2 相关说明
- 完成以上代码的执行需要添加两个宏包:
\usepackage{booktabs}
、\usepackage{multirow}
- 在不使用宏包{booktabs}时,命令
\toprule
、\midrule
、\bottomrule
将无法执行,也即不能正常显示表格中的横线; - 在不使用宏包{multirow}时,命令
\multirow
不能正常执行,也即跨行显示单元格显示效果错误;
- 在不使用宏包{booktabs}时,命令
1.3 命令解释
- 关于表格放置的参数:
- h:放在此处;t:放在顶端;b:放在底端;p:在本页
- 关于表格内容的对齐方式
- l:代表左对齐;c:代表居中;r:代表右对齐
- 关于表格的列数以及列与列之间是否需要分割线
- 字母的个数对应列数,|代表分割线
- 关于表格的边框(绘制三线表一般用顶部线、中部线和底部线)
\hline
:表格的横线\toprule
:顶部线\midrule
:中部线\bottomrule
: 底部线
- 关于表格中跨行或跨列问题:(
\multirow
和\multicolumn
命令都需要用到宏包\usepackage{multirow}
)
\multirow{number_of_rows}{width}{content}
:number_of_rows代表该表格单元占据的行数;width代表表格的宽度,一般用*
代表自动宽度;content则是表格单元里的内容。\multicolumn{number_of_columns}{alignment}{content}
:number_of_columns代表该表格单元占据的列数;alignment代表表格内容的偏移(l,c或r);content则是表格单元里的内容。
- 调节行高:
\renewcommand\arraystretch{1.2}
- 调节单列的列宽:
\begin{tabular}{p{45pt}llll}
:设置第一列宽度为45pt
- 表格大小调整:(
\resizebox{}
命令需要使用宏包\usepackage{graphicx}
)
\resizebox{宽度}{高度}[对象]
:宽度和高度可以设置固定值如7mm
等,另外宽度也可以使用\textwidth
、\tabcolsep
等进行。- 如果宽度或高度值的任一项用
!
给出,则其代表的选项的长度在被改变大小时会保持原有的宽高比例不变。 -
- 例如1:
\resizebox{2in}{!}{argument}
将对象的宽度改变为2英寸,高度将按比例进行放大或缩小。
- 例如1:
-
- 例如2:
resizebox{2in}{\height}{argument}
将对象的高度改变为2英寸,但保持原有高度不变。(\height
、\width
、\totalheight
、\depth
可以用来表示对象的原始尺寸)
具体用法:
- 例如2:
\resizebox{h-size}{v-size}{
\begin{tabular}
...
\end{tabular}
}
1.4 一个跨行且跨列的例子
- 代码:
\begin{table}[htbp]
\centering
\caption{ACO算法与仅对ACO算法的量化策略进行修改得到的压缩效果对比}
\begin{tabular}{cccc}
\cline{1-4}
\multirow{2}{*}{\textbf{Run ID}} & \multirow{2}{*}{\textbf{Dimension}} & \multicolumn{2}{c}{\textbf{Compression Rate}} \\
& & ACO & quan\_modified \\ \cline{1-4}
ERR174324 & \multicolumn{1}{c|}{8998$\times$96} & 44.2\% & 27.9\% \\
ERR174331 & \multicolumn{1}{c|}{8998$\times$96} & 44.0\% & 27.5\% \\
ERR2438054 & \multicolumn{1}{c|}{5998$\times$146} & 37.7\% & 36.6\% \\ \cline{1-4}
\end{tabular}
%\caption{ACO算法与仅对ACO算法的量化策略进行修改得到的压缩效果对比}
\label{tab:quan_result}
\end{table}
- 生成的表格:
思考:如何实现部分列加入竖线?观察上面例子中\multicolumn{1}{c|}的使用
参考文章
【1】Latex中表格问题
【2】resizebox 命令
【3】latex表格详细教程(table, tabular, multirow, multicolumn)
标签:Latex,表格,%%,tabular,multirow,multicolumn,Estimation 来源: https://blog.csdn.net/m0_49946797/article/details/119356892