LaTeX中常用表格制作方法总结

article/2025/10/24 18:56:12

文章目录

  • 前言
  • 最基本的无线表格: tabbing
    • 基本语法
  • 一般表格: tabular/array
    • 基本语法
    • 基本调整命令
  • 科研论文: 三线表(`toprule`)
    • 基本语法
  • 广泛应用: 定宽表(`tabularx`)
    • 简单介绍
    • 基本语法
  • 跨页长表格(`longtable`)
  • MISC
  • 参考

前言

很多 LaTeX \LaTeX LATEX初学者对于表格的制作都比较抵触, 因为不仅用到很多代码, 往往费大功夫出来的表格并不合自己的心意, 下面 总结一下 LaTeX \LaTeX LATEX中常用表格的制作方法, 这几种都是我平时常常用到的, 希望能帮到大家, 文中例子/代码等内容参考自刘海洋老师的《 LaTeX \LaTeX LATEX入门》.

最基本的无线表格: tabbing

利用制表位进行表格的排版, 但是不会出现表线, 另外这个环境对于制表位比较灵活, 需要考虑很多因素(制表位的相对位置)才能制作出一个精美的表格. 一般来说不是很常用.

基本语法

\begin{tabbing} 
格式\hspace{3em} \= 作者 \\ 
Plain \TeX \> 高德纳 \\ 
\LaTeX \> Leslie Lamport 
\end{tabbing}

1

一般表格: tabular/array

其中tabular用于文本环境中, array用于数学环境中, 不过tabular也可以用于数学环境(但是如果表格中含有中文, 不加上\text{}的话不会完全显示).

基本语法

\begin{tabular}[<垂直对齐>]{<列格式说明>} 
<表项>&<表项>&...&<表项>\\
......
\end{tabular}

下面是一个具体的例子

\begin{tabular}{|c|r@{.}l|}\hline收入 & 12345&6 \\ \hline 支出 & 765&43 \\ \hline 节余 & 11580&17 \\ \hline
\end{tabular}

2

在上面这个例子中, 我们采用tabular环境进行表格的设计, 这里要注意的是列格式的选取, 除了最为常用的c,l,r分别代表居中对齐, 左对齐和右对齐外, 还有|用来加上表列分割线, 以及@{}用来自定义格式, 本例中使用了小数点(.)来进行分割, 用来将表项内容按小数点对齐(同时消除了表项之间的默认间距), 其他列格式如下:

  • *{<计数>}{<列格式说明>}: 重复多个表列的列格式说明;
  • p{<列宽>}: 用于指定列宽, 可以换行.

对于tabular/array环境, 其列格式说明还可以进行自定义, 这一功能极大地方便了表格的制作.

例如, 如果我想对某一列输入公式, 一般的做法是直接在每一个cell中加上$$,但是这是很重复机械的工作, 下面我们来看如何自定义列格式, 使得公式输入变得简单1.

% 下面这条命令加入导言区
\newcolumntype{C}{>{$}c<{$}}
% --------------------------
\begin{table}[H]
\centering
\begin{tabular}{|c|C|C|} % 这里还可以用上面提到的*{<计数>}{<列格式说明>}进行简化: {|c|*{2}{C|}}\hline新的横坐标&\cos \theta & -\sin \theta \\\hline新的纵坐标&\sin \theta & \cos \theta \\\hline
\end{tabular}
\caption{坐标旋转变换}
\end{table}

3

同样地, 对于刘海洋老师书中的这个例子, 也可以用列格式定制来简化表格的实现:

\[
\begin{array}{|c|*{3}{r@{.}l|}} % 相当于 |c|r@{.}l|r@{.}l|r@{.}l| \hline\text{收入} & 12345&6 & 5000&0 & 1020&55 \\ \hline\text{支出} & 765&43 & 5120&5 & 98760&0 \\ \hline \text{节余} & 11580&17 & -120&5 & -97739&45 \\ \hline 
\end{array}
\]

采用下面的简化命令:

% 下面两行放入导言区
\newcolumntype{L}{>{$}l<{$}}
\newcolumntype{R}{>{$}r<{$}}
% --------------------------
\begin{table}[H]
\centering
\begin{tabular}{|c|*{3}{R@{.}L|}} \hline收入 & 12345&6 & 5000&0 & 1020&55 \\ \hline支出 & 765&43 & 5120&5 & 98760&0 \\ \hline 节余 & 11580&17 & -120&5 & -97739&45 \\ \hline 
\end{tabular}
\end{table}

可以达到一样的效果. 更多的列格式定制方法, 还请参考1.
4

基本调整命令

  1. 修改行高:\renewcommand\arraystretch{2}这条命令将默认的行高(1)调整为2, 使表项看起来更为宽松;
  2. 使用makecell宏包定制行的高度, 使用\Gape[<高度>]{内容}进行调整;
  3. 使用\multicolumn进行表格的合并, 使用\vline进行竖直拆分;
  4. ...

科研论文: 三线表(toprule)

在科技文档中,数据表经常被表现为一种只有三种横线的形式,即三线表。为了美观,三线表顶部和底部的两条横线比较粗,而中间分隔表头与数据的线则较细2.

需要用到booktabs宏包, 进行三根不同粗细表线(\toprule, \midrule, \bottomrule)的绘制. 具体还有很多微调定制的方法, 不过一般来说用不到的.

基本语法

% 导言区
% \usepackage{booktabs}
\begin{tabular}{ccccc}
\toprule
序号 & 性别 & 年龄 & 身高/cm& 体重/kg\\
\midrule
1 & F & 14 & 156 & 42 \\
2 & F & 16 & 158 & 45 \\
3 & M & 14 & 162 & 48 \\
4 & M & 15 & 163 & 50 \\
\bottomrule
\end{tabular}

这 里 需 要 注 意 一 点 , 在 三 线 表 中 最 后 一 行 一 定 要 加 上 \\ , 否 则 会 出 现 报 错 . \color{red}这里需要注意一点, 在三线表中最后一行一定要加上\verb=\\=,否则会出现报错. ,线\\,.

广泛应用: 定宽表(tabularx)

简单介绍

这个表格除了排版行看起来比较长的表格之外, 还可以实现很多意想不到的功能, 例如制作复杂的论文封面等. 我本科时候就用这个环境做了一个跟Word模板一模一样的 LaTeX \LaTeX LATEX模板, 效果(自认为)还是不错的.

基本语法

\begin{tabularx}{<宽度>}[<垂直对齐>]{<列格式说明>} 
<表项>&<表项>&...&<表项>\\
......
\end{tabularx}

这里的宽度参数主要采用\textwidth来设置, 就是一页的宽度, 对于很多宽度较大的表格, 采用定宽表格搭配三线表能有很好的显示效果. 参数中的列格式说明可以采用默认的X列格式说明符, 即弹性宽度,

X列格式说明符表示自动延伸的表列, 可以与其他列说明符一起使用. X 列格式很好地处理了间距问题,表项内容会按一个定宽的 \parbox 盒子排版,可以自动换行,内部默认是左对齐的2.

下面是一个调用示例

\begin{tabularx}{\textwidth}{|c|X|X|X|X|X|}\hline数字 &1&2&3&4&5\\\hline 字母 &A&B&C&D&E\\\hline 天干 & 甲 & 乙 & 丙 & 丁 & 戊 \\\hline
\end{tabularx}

6

如果想要将内容设置为居中对齐, 那么就需要自己定义一个列格式, 由于tabularx环境包含array环境(array环境的二次开发), 这里我们就可以采用array中自定义列格式的方法, 即

\newcolumntype{C}{>{\centering\arraybackslash}X}

一个例子2:

\begin{table}[H]
\centering
\begin{tabularx}{.7\textwidth}{|c|C|C|C|C|C|}\hline数字 &1&2&3&4&5\\\hline 字母 &A&B&C&D&E\\\hline 天干 & 甲 & 乙 & 丙 & 丁 & 戊 \\\hline
\end{tabularx}
\end{table}

5

跨页长表格(longtable)

\begin{longtable}[<水平对齐>]{<列格式说明>} <表头>
\endhead
<第一页表头>\endfirsthead
<表尾>
\endfoot
<最后一页表尾>
\endlastfoot <表项>&<表项>&...&<表项>\\ ......
\end{longtable}

需要注意的是,longtable 得到的长表格,是把跨页时需要的长度信息保存在 .aux 辅助文件中,供下一次编译时控制表格宽度和表线。因此,一般需要编译两到三 次,才能得到正确的表格。

这里就不进行示例演示了,大家可以参考2.

MISC

其他表格, 例如diagbox(由刘海洋开发, 采用斜线分割表头), tabu环境, xtab,ltxtable等环境, 都有其适用的表格绘制情形, 刘海洋老师的书中都有提及, 不过目前用到的基本本文都提到了, 大家感兴趣的话可以继续学习.

P.S. 一般地, 在使用上面的各种表格环境时候, 还要嵌套上table浮动体环境, 以便更精确的定位表格在页面中的位置以及添加labelcaption等, 在这里我就不再赘述了.

参考


  1. texdoc array; ↩︎ ↩︎

  2. LaTeX \LaTeX LATEX入门》刘海洋. ↩︎ ↩︎ ↩︎ ↩︎


http://chatgpt.dhexx.cn/article/km5MVKQI.shtml

相关文章

Latex 表格问题

在用latex做图片的时候发现问题没有很多&#xff0c;但是做表格的问题就非常多了&#xff0c;因此记录一下 首先导包需要 \usepackage{array} \usepackage{booktabs} \usepackage{caption} % 可有可无 然后制作简单表格参考该处&#xff1a; Latex基本表格绘制_爱摸鱼的派…

LaTeX表格制作

一些LaTeX中表格的使用方法如下&#xff1a; 1.table \documentclass{article}\begin{document}\begin{table}[h]\centering\begin{tabular}{|l|c|c|}\hlineSetting&\multicolumn{2}{c|}{A4 size paper}\\\hline&mm&inches\\Top&25&1.0\\Bottom&25&a…

LaTex中表格常用设置

推荐一个在线生成各种表格命令的工具&#xff1a;https://tablesgenerator.com/。 1.表格参数 table 后面加*表示双栏表格&#xff0c;如\begin{table*}...\end{table*}。 表格中常用选项[htbp]是浮动格式&#xff1a; h当前位置。将图形放置在正文文本中给出该图形环境的地…

Latex中的表格(2)

Latex中的表格 一、一个加脚注的三线表的例子二、一个表格中加注释的例子三、两个并排的两个表格的例子3.1 使用小页环境并排表格3.2 使用子表格并排表格 四、一个格式复杂的表格的例子五、一个长表格的例子 这篇文章主要罗列一些特殊的表格例子。内容来自&#xff1a;一篇北师…

【教程】在线生成LaTeX中的表格

【教程】在线生成LaTeX中的表格 当我们写论文时不可避免要用表格总结自己的实验结果。但是LaTeX中的表格操作实在是太麻烦了&#xff0c;所以有一个在线生成LaTex中的表格能大大提高生产力 本教程展示从Excel表格到LaTeX表格的整个过程&#xff0c;简单易用&#xff0c;不用自己…

LaTex(1):使用在线表格生成器工具生成LaTex表格及latex相关工具网站

目录 0 在线工具 1 常用命令&#xff1a; 1.0 编辑表格 1.1 Table—set size可以改变表格大小&#xff1a; 1.2 合并表格和拆分表格&#xff1a; 1.3 生成latex代码与复制代码&#xff1a; 2 示例 3. 相关工具网站 3.1 latex公式编辑器 0 在线工具 表格生成器网页&a…

latex表格手把手超详细教程(table, tabular, multirow, multicolumn)

最近写论文要用latex&#xff0c;实验部分需要画表格&#xff0c;于是百度看了两个多小时的博客&#xff0c;一无所获&#xff0c;全都写的乱七八糟的&#xff0c;越看越烦躁&#xff0c;于是谷歌五分钟&#xff0c;就学会了怎么画表格&#xff0c;下面是我最终画出来的表格&am…

Latex基本表格绘制

Latex基本表格绘制 文章目录 Latex基本表格绘制1.基本格式2.添加竖线和横线3.设置每一列的单元格格式4.常见的三线表5.table环境6.单元格合并7.斜线表头8.其他(2018.11.23)1.基本格式 \documentclass{article}\begin{document}\begin{tabular}{cc}%一个c表示有一列,格式为居中…

LaTeX表格Table使用解析

推荐一个在线生成表格命令的工具&#xff1a;LaTeX Table Generator 常用选项[htbp]是浮动格式&#xff1a; h当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够&#xff0c;这一参数将不起作用。 t顶部。将图形放置在页面的顶部。 b底部。将图形…

在 LaTeX 中插入表格

原  文&#xff1a;在 LaTeX 中插入表格 译  者&#xff1a;Xovee 翻译时间&#xff1a;2020-1024 在 LaTeX 中插入表格 在科研论文中&#xff0c;表格是最重要的内容之一。LaTeX 提供了许多定制化表格的功能&#xff0c;包括调整表格大小&#xff0c;合并单元格&#xf…

LaTeX表格处理

关于LaTeX中对表格的一些处理 在使用latex撰写文档时&#xff0c;可能会遇到表格太大超过页面范围&#xff0c;表格太小显示不美观&#xff0c;以及生成跨行表格&#xff0c;表头斜线等问题&#xff0c;以下是一些调整表格的命令。 调整表格大小 使用以下的latex命令之前&am…

latex画表格(自用)

绘制 latex 表格需要用到 table 和 tabular 环境。 其中table环境里写表格的标题&#xff08;caption&#xff09;、表格的偏移之类的。 tabular环境则是绘制表格的内容。 首先是table环境部分&#xff0c;\begin{center} 让表格居中&#xff0c;\caption{Table name.} 写表格…

Latex论文表格画法

参考 Latex论文表格画法 - 云社区 - 腾讯云 1、基本表格画法 \begin{table}[htbp] 表示表格的开始。中括号中的 htbp 表示的是表格的浮动格式。当然这个基本参数不仅仅只是对表格有用。需要注意的是&#xff0c;一般使用 [htb] 这样的组合&#xff0c;这样组合的意思就是Latex会…

LaTeX中的表格

LaTeX中的表格 这一节我们主要讨论LaTeX中表格的制作和排版问题。 &#xff08;1&#xff09;在LaTeX中&#xff0c;可以使用tabular环境生成表格。 &#xff08;2&#xff09;tabular环境需要一个指定列排版格式的必选参数。可以用l指定左对齐&#xff0c;用c指定居中对齐&a…

Latex 制作表格

Latex 制作表格 前言一、Latex三线表1、普通三线表2、跨页三线表 二、简单表1、基本需求表2、表格整体相关设置【表名及位置、表宽、注解、字号】1. 表格标题及位置2. 表宽设置3. 表格注解4. 字号设置 三、复杂表1、合并单元格2、斜线表头 五、常用表格模板代码总结 前言 Late…

Qt学习c++

Qt学习C 平台及版本Day01 HelloWorld程序生成Day02 分析第一个Qt程序1) main.cpp2) mainwindow.h和mainwindow.cpp Day03 Qt控件和事件Day04 信号和槽基本理解connect()函数实现信号和槽实例演示信号和槽机制 Day05 Qt QLabel文本框的使用QLabel文本框的信号和槽QLabel的常用方…

Qt学习基础

1. Qt是什么&#xff1f; Qt是一个基于C语言的图形用户界面&#xff08;GUI&#xff09;开发框架&#xff0c;Qt不仅仅可以进行GUI开发&#xff0c;除此之外Qt也能进行很多其它功能开发&#xff0c;包括但不限于多线程、数据库、图像处理、音视频处理、网络通信与文件IO等。 Qt…

Qt学习心得体会

Qt是一种跨平台C图形界面程序开发框架&#xff0c;在社会中各种行业都有着举足轻重的地位。 Qt为了实现对象与对象之间的通信&#xff0c;提出了信号与槽的概念。当一个对象发生改变会发送一个信号通知另一个对象执行一个函数&#xff0c;这个函数称为槽&#xff0c;信号只需要…

QT 学习笔记(二)

文章目录 一、标准信号和槽1. 准备工作1.1 main.c1.2 widget.cpp 2. 添加按钮2.1 widget.h2.2 widget.cpp2.3 运行结果 3. 信号和槽&#xff08;重点&#xff09;3.1 信号3.2 自定义槽3.3 widget.h3.4 widget.cpp3.5 运行结果 二、两个独立窗口1. 添加新窗口2. 自定义信号3. 窗…

Qt学习 - 总

Qt学习 学习中的错误常用快捷键杂项布局信号与槽数据库相关QSS选择器 {property:value}Qt样式表设置函数 setStyleSheet()QSS文本属性 事件QMouseEvent&#xff1a;鼠标事件键盘事件QWheelEvent&#xff1a;滚轮事件QCloseEvent&#xff1a;关闭事件QTimerEvent&#xff1a;超时…