您现在的位置是:首页 > 正文

Latex中的表格(1)

2024-04-01 00:38:51阅读 2

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不能正常执行,也即跨行显示单元格显示效果错误;
1.3 命令解释
  1. 关于表格放置的参数
  • h:放在此处;t:放在顶端;b:放在底端;p:在本页
  1. 关于表格内容的对齐方式
  • l:代表左对齐;c:代表居中;r:代表右对齐
  1. 关于表格的列数以及列与列之间是否需要分割线
  • 字母的个数对应列数,|代表分割线
  1. 关于表格的边框(绘制三线表一般用顶部线、中部线和底部线)
  • \hline:表格的横线
  • \toprule:顶部线
  • \midrule:中部线
  • \bottomrule: 底部线
  1. 关于表格中跨行或跨列问题:(\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则是表格单元里的内容。
  1. 调节行高
  • \renewcommand\arraystretch{1.2}
  1. 调节单列的列宽
  • \begin{tabular}{p{45pt}llll}:设置第一列宽度为45pt
  1. 表格大小调整:(\resizebox{} 命令需要使用宏包\usepackage{graphicx})
  • \resizebox{宽度}{高度}[对象]:宽度和高度可以设置固定值如7mm等,另外宽度也可以使用\textwidth\tabcolsep等进行。
  • 如果宽度或高度值的任一项用!给出,则其代表的选项的长度在被改变大小时会保持原有的宽高比例不变。
    • 例如1:\resizebox{2in}{!}{argument}将对象的宽度改变为2英寸,高度将按比例进行放大或缩小。
    • 例如2:resizebox{2in}{\height}{argument}将对象的高度改变为2英寸,但保持原有高度不变。(\height\width\totalheight\depth可以用来表示对象的原始尺寸)
      具体用法:
\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)

网站文章

  • ea 数据库生成java代码_Enterprise Architect Java代码生成文件导入

    我认为你应该避开代码生成模板.这里的问题是集合类的处理超出了正常的代码生成.如果某个类的成员类型是另一个包中的类,则EA会生成正确的import语句 – 但前提是这些类存在于模型中,而collecio...

    2024-04-01 00:38:25
  • JVM 性能调优

    JVM 性能调优

    在高性能硬件上部署程序,目前主要有两种方式:通过 64 位 JDK 来使用大内存; 使用若干个 32 位虚拟机建立逻辑集群来利用硬件资源。使用 64 位 JDK 管理大内存堆内存变大后,虽然垃圾收集的频率减少了,但每次垃圾回收的时间变长。 如果堆内存为14 G,那么每次 Full GC 将长达数十秒。如果 Full GC 频繁发生,那么对于一个网站来说是无法忍受的。对于用户交互性强...

    2024-04-01 00:38:17
  • 利用AI技术提升乳腺癌诊断准确率

    利用AI技术提升乳腺癌诊断准确率

    结论与影响: 该研究证明了AI技术在乳腺癌诊断中的应用潜力,为医学领域提供了更准确、更高效的诊断方法。实验结果显示,AI辅助诊断能够减少约30%的误诊和漏诊率,显著提高乳腺癌患者的生存率和生活质量。问...

    2024-04-01 00:38:10
  • 数学作文计算机,计算机也会老小学生作文

    数学作文计算机,计算机也会老小学生作文

    计算机也会老小学生作文今天,我一回到家里,爸爸妈妈就对我轮番“轰炸”。原来,我的数学考卷上面有许多计算做错了。我不信,拿出随身携带的.计算机又计算了一次,可是还是这一个数字。爸爸就抢过我的计算机也算了...

    2024-04-01 00:38:04
  • 学生宿舍管理系统的设计与实现(课程论文)

     学生宿舍管理系统的设计与实现 摘  要:现如今高校大学生越来越多,寝室压力巨大,学生不好管理。学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的。而且当查找某条记录时,由于数据量庞大,还只能靠人工去一条...

    2024-04-01 00:37:40
  • Spring扩展点

    Spring扩展点

    如何在所有Bean创建完后做扩展?方式一Spring在容器刷新完成后会注册ContextRefreshedEvent。所以可以自定义事件监听器监听该事件进行扩展。监听器实现:@Componentpub...

    2024-04-01 00:37:34
  • cannot import name ‘SGD‘ from ‘keras.optimizers‘ 报错

    将from keras.optimizers import SGD修改为 from tensorflow.keras.optimizers import SGD

    2024-04-01 00:37:28
  • HTTPS如何防止中间人攻击

    https如何防止中间人攻击

    2024-04-01 00:37:04
  • Linux系统下运行很慢如何解决

    Linux系统下运行很慢如何解决

    解决Linux系统下cpu占用率过高导致程序运行缓慢的问题

    2024-04-01 00:36:58
  • 微型前端简介

    微型前端简介

    重点(Top highlight)The first time I heard the term micro frontend, my eyes rolled into the back of my ...

    2024-04-01 00:36:30