文章目录

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

前言

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

最基本的无线表格: tabbing

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

基本语法

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

一般表格: 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}

在上面这个例子中, 我们采用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}

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

\[
\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.

基本调整命令

  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\LaTeXLATE​X模板, 效果(自认为)还是不错的.

基本语法

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

如果想要将内容设置为居中对齐, 那么就需要自己定义一个列格式, 由于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}

跨页长表格(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\LaTeXLATE​X入门》刘海洋. ↩︎ ↩︎ ↩︎ ↩︎

LaTeX中常用表格制作方法总结相关推荐

  1. latex 中表格怎么指定编号_科学网—latex中简单表格制作+标题+编号+固定位置 - 江亿平的博文...

    Type one: %%%%%%%%%%简单表格%%%%%%%%%% begin{tabular}{|c|c|} hline a & b \hline c & d\ hline end ...

  2. 怎么在Word中制作表格?简单的Word表格制作方法分享

    提到表格,大家第一时间想到的就是Excel表格,因为Excel本身就是一个制作表格的工具,但是你知道吗?Word也可以制作表格,而且方法也很简单,那么怎么在Word中制作表格呢?下面小编就为大家分享五 ...

  3. android 如何制作可编辑的表格,在手机wps中编辑表格的方法

    我们可以在手机版本的wps中对表格进行编辑,对于新手来说可能不知如何操作,下面就让学习啦小编告诉你如何在手机wps中编辑表格的方法,希望对大家有所帮助. 在手机wps中编辑表格的方法 首先,下载并安装 ...

  4. wps表格粗线和细线区别_学术论文表格制作方法解读

    一.表格的精选 我记得我以前写论文的时候错误认为导师会青睐那种一篇文章中表格越多越好的文章,其实不然.如果用一两句话即可说明的内容就不必列表格:如果采用多组数据表说明同一现象,造成了表格本身的重复,应 ...

  5. LaTex 中 控制表格的行距

    LaTex 中 控制表格的行距 一个比较简单的方法是:表格中,在\begin{table}下加上 \renewcommand\arraystretch{1.5} \begin{table*} \ren ...

  6. LaTeX中的中文处理方法

    LaTeX中的中文处理方法 在能够处理宽字节编码的xelatex出现之后,主要是用xelatex结合ctex宏包来处理中文. 以TexStudio举例. 打开设置. ①"构建"-& ...

  7. php制作网页教程pdf,php中pdf页面制作方法

    FPDF即"Free PDF",FPDF类库提供了基本的PDF创建功能,其源代码和使用权是免费的.本文主要和大家分享php中pdf页面制作方法,希望能帮助到大家. PDF格式文档优 ...

  8. Latex中三线表制作

    开头第一句总是想写一些废话,,,实验部分用到latex中的表格本来想用经典的三线表,但最后发现还是逃不过要学一下复杂的三线[毕竟漂亮真的很重要] 经典三线表 参考下面这个文章就可以啦,比较简单. 经典 ...

  9. latex中生成表格形式的参考文献表

    latex中生成表格形式的参考文献表 1. 引言 一般数据中的参考文献表从内容上看是文本字符串,从格式上看是由一个一个段落构成的.通常latex中的参考文献表是一个由list环境构成的文本块,内部的每 ...

最新文章

  1. Python 写了一个网页版的「P图软件」,惊呆了!
  2. ECCV 2018 StructSiam:《Structured Siamese Network for Real-Time Visual Tracking》论文笔记
  3. C语言字符串中最后一个单词的长度的算法(附完整源码)
  4. java如何把string转化E_java将string转为代码执行
  5. 你绝对干过的15件傻事儿
  6. linux进程创建过程,Linux 进程创建过程的分析
  7. mysql.socket没有_mysql启动找不见socket
  8. Spring boot 配置array,list,map
  9. 常见排序算法之插入排序
  10. 3G.处女座和小姐姐(三)(C++)
  11. MFC CImageList序列图的用法
  12. Safari插件机制研究(一)
  13. 想让游戏代入感更强,要靠他。。
  14. 二代身份证号码编码规则
  15. matlab中利用xy求取多项式z,matlab基础练习题
  16. SpringSecurity 简介
  17. Spring Cloud 是面面观
  18. nginx优化配置大全
  19. Android网络测试--Ping命令
  20. can通讯bdc_纯电动汽车网络总线 数据通信网络连接系统介绍

热门文章

  1. QGIS 3.4 3.6 另存栅格图层到GeoPackage出现覆盖问题 解决方案
  2. 6.042 Mathematics for Computer Science
  3. 1月4日编程基础hash
  4. if else 的个小案例~
  5. windosw应用提示内存不足
  6. EV: Using Git Bash
  7. Vmware下安装CentOS6的特别注意,一定要在虚拟机上电时候按DEL,选择操作系统启动方式...
  8. html实现平面地图效果,HTML5 光点组成的平面和立体世界地图
  9. Linux运维新主机挂载硬盘,linux运维:Linux下添加新硬盘+分区及挂载详细步骤图解...
  10. 2021年3月国产数据库排行榜:雏凤声清阿里三连 绝代双骄华为合璧