最近写论文要用到Latex,新手的Latex之旅大概是从Google开始的。

一般会议都会给出一个Latex模板,所以整体的排版这些不用太操心。遇到的主要问题都集中在表格的设计上。虽然绝大部分科技论文都会用三线表格,展现方式也很明了,但是实际情况总是纷繁复杂的。

例如,第一列往往是header column,划分出很多种情况,比如对实验方法的上层分类,第二列为具体的实验方法,以后为各自的实验结果。每一行对应一个实验方法。有时,受限于篇幅宽度,往往需要将实验方法名称或上层分类的名称折叠,如图:

我们需要将第一列折叠,以适应文档宽度。

以下为几种折叠方法:

  • 使用tabularx 而不是tabular(Latex排版)

    \begin{tabularx}{X}
    \hline
    A very very long context to display.\\
    \hline
    \end{tabularx}
  • 自定义\tabincell命令。在tabincell里可以使用\\换行。从tabincell的定义可以看出,实际上它是在当前单元格里嵌套了一个tabular。

    \newcommand{\tabincell}[2]{\begin{tabular}
    {@{}#1@{}}#2\end{tabular}}
    ....
    \begin{tabular}{m{1cm}}
    \hline
    \tabincell{l}{A very \\very long \\contex to display.}\\
    \hline
    \end{tabular}
  • 使用\multirow换行。\multirow中用width参数限制列宽,超出部分会直接换行
    \multirow{row_number}{width}{A very very long  context to display.}

以上方法百度或者Google都能轻易查到。这个方法可以完全适用于图1。因为 被折叠的内容的高度并没有超过它本身的行高。当折叠之后的文本比原本的行高更高时,前两种方法是可以实现自动调整行高的,因为其内容并没有跨行。

但是我们往往会遇见到的情况是,我们需要单元格内换行,而同时,又需要合并行。例如图2中的第二类结果:

当我们合并了上下两行后,以上三种方法都没办法自动调整行高,使其自适应于文本的高度。

此时问题转换成,如何调整some longer category name的行高了。同时,只调整下半部分的行高,而不影响上半部分的行高。


搜了很多调整行高的方法:

  • 用盒子来进行基线调整(whatever这种方法对于本来就不熟悉latex的人来说完全是噩梦,根本看不懂)
  • 某博客上看到的
    A very very long context to display\\[3pt](行高)

    对这个用法不了解,尝试了一下,感觉它是调整行距而不是行高的?因为它会将最后一列的下行距拉开,此时会造成排版不一的问题

  • 使用\renewcommand{\arraystretch}{倍数}命令,但是该命令只对整个列表适用,而不能单独改变某几行的行高

综合来看,勉强能用的应该是第三种方法,于是尝试对图2下半部分重新建一个表,通过嵌套的方式加入原标当中,效果如图:

发现下半部分整体往右移动了。因为对于嵌套表格来说,被嵌套的表格的左边框是其边界,应与上文的内容对齐。即:

而表格即使是左对齐,也会留有一定的空白,使得被嵌套表格较上文往右移动了。

所以最终,我直接将两个表格并列了。(手动围笑

然后连个tabular放在一个table环境里。其实两个tubular之间是有一点点距离的,但是勉强算解决了吧 ;-),代码见下:

\documentclass{article}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{array}
\usepackage{booktabs}
\newcommand{\tabincell}[2]{\begin{tabular}
{@{}#1@{}}#2\end{tabular}}
\begin{document}\begin{table}\begin{tabular}{m{1.1cm}m{3cm}m{0.7cm}m{0.7cm}m{0.7cm}m{0.7cm}m{0.7cm}}\noalign{\smallskip}\hline\noalign{\smallskip}\multicolumn{2}{c}{\multirow{3}*{\textbf{Method}}}&\multicolumn{5}{c}{Test result}\\\cmidrule(l){3-7}&&\multicolumn{4}{c}{sub}&sub\\\cmidrule(l){3-6}\cmidrule(l){7-7}&&A&B&C&D&All\\     \noalign{\smallskip}\hline\noalign{\smallskip}\multirow{5}*{\tabincell{l}{Super\\category\\name}}&Method name&result&result&result&result&result\\&Method name&result&result&result&result&result\\&Method name&result&result&result&result&result\\&Method name&result&result&result&result&result\\&Method name&result&result&result&result&result\\\noalign{\smallskip}\hline\noalign{\smallskip}\end{tabular}\renewcommand{\arraystretch}{2}\begin{tabular}{m{1.1cm}m{3cm}m{0.7cm}m{0.7cm}m{0.7cm}m{0.7cm}m{0.7cm}}\multirow{2}{1.1cm}{Some\\ longer \\ category \\ name}&Method name&result&result&result&result&result\\&Method name&result&result&result&result&result\\\noalign{\smallskip}\hline\noalign{\smallskip}\end{tabular}\end{table}
\end{document}

【Latex 表格】换行+行高相关推荐

  1. LaTeX表格自定义行高+自定义列宽+大表格自适应页面宽度

    一.自定义行高 默认行高效果 自定义行高效果:看起来更美观.大方些 实现方式:在LaTeX表格中的\begin{table}和\begin{tabular}之间插入命令\renewcommand\ar ...

  2. excel自动调整列宽_办公软件操作技巧012:如何调整excel表格的行高与列宽

    在日常工作中,我们经常会使用excel编辑电子表格,但有时默认的行高与列宽与单元格内数据内容的高度和长度会不太匹配,如下图,这时就需要调整表格的行高和列宽,那么今天就来和大家分享几种调整excel表格 ...

  3. 计算机做表格的行高和列宽,表格中列和行的插入与删除及行高和列宽的调整——想象力电脑应用...

    大多数数据输入到工作表后都需要进行管理和格式设置,以获得更好的显示效果,也便于分辨各类型的数据.这里我们将介绍行或列的插入与删除和行高和列宽的调整. 一.行或列的插入与删除 在输入数据时,如果遗漏了某 ...

  4. html设置表格行高和列宽,怎么在腾讯文档中设置表格的行高和列宽

    摘要 腾兴网为您分享:怎么在腾讯文档中设置表格的行高和列宽,云集,虚拟机,我的世界,卫星云图等软件知识,以及cad2009,kmp,mt4,usb转串口驱动,wifi吸粉,csgo动态组名,亿方云,单 ...

  5. 【LaTeX】表格调整行高、列宽、合并显示等操作

    常规表格: 如上图所示,表格内容都太贴了,看着难受! 1. 样式一: 这样就舒服多了!!! 上述表格的操作: (1)调整行高: \usepackage{array} % 需要该宏包 \renewcom ...

  6. 调整表格的行高_Word表格无法调整行高?尽然是这个原因,90%的人都可能遇到...

    今天,老婆编辑一篇word文档,可是却被其中的表格弄得晕头转向,还给我撒了一把火.哎,难啊! 我得总结一下word表格中的这个异类,免得有更多的同胞们像我一样被"火烤". Word ...

  7. html表格固定行高_Excel表格向Word复制不变形,Word表格向Excel复制不变形,一次全掌握。...

    Excel情报局 生产搬运分享Excel基础技能 OFFICE知识新青年 用1%的Excel基础搞定99%的日常工作 做一个有文艺范的Excel公众号 Excel是门手艺 玩转需要勇气 听歌阅读 Ex ...

  8. C# winform表格datagridview行高自动设置问题

    在winform设置datagridview表格列宽可以采用将属性-布局-AutoSizeColumnMode属性设置为fill,但是在设置行高的AutoSizeRowsMode时,并没有fill属性 ...

  9. python xlwt 设置表格的行高方法

    我们在用xlrd xlwt操作excel表格的时候希望能设计出好看的表格,列宽的话较为简单: sheet3.col(1).width = 256*72   #设置列宽,256为基准数, 行高的话用如下 ...

最新文章

  1. C# 世界坐标 页面坐标 PageUnit PageScale
  2. 宝塔linux_宝塔面板建站基础教程:如何安装宝塔面板及建立博客网站
  3. NSInputStream和NSMutableURLRequest-实现保存文件到服务器
  4. SCCM 2016 配置管理系列(Part 12 )
  5. C# 调用Word(PrintOut) 直接打印,出现“第一节的页边距设于可打印区域之外,是否继续”...
  6. python主函数入口_python类 + mian()函数
  7. Ubuntu 创建启动器
  8. Linux进程优先级取值范围,Linux中使用nice和renice命令:改变进程优先级
  9. xcode中c语言清屏函数,浅谈iMac
  10. 《电子数据取证》读书笔记-第一章
  11. 计算机主机技术标准规范,数据中心机房建设,需要依据哪些国家标准和行业标准或规范?...
  12. 产品经理日常工作之PRD文档
  13. R语言4.04安装教程
  14. vue使用axios下载文件
  15. Scikit-learn中的Lasso/LassoCV以及R^2可决系数的分析与讨论
  16. 【算法】只有五行的Floyd最短路算法
  17. 深入理解JVM的对象创建过程
  18. 关于android架构的英文资料,第十五期:英语流利说 Android 架构演进
  19. android nfc读取公交卡信息_手机NFC可以复制小区用的门禁卡吗?
  20. EnglishPlayer ---- 英语听写工具发布了!

热门文章

  1. Long和Integer相互转换
  2. 计算机核心期刊的终审环节,7 本中文核心期刊投稿经验分享 总有一款适合你
  3. 通过神经网络实现线性回归模型预测水泥强度
  4. 作业调度算法【平均周转时间、平均带权周转时间、先来先服务FCFS、短作业优先SJF、高优先权(级)算法FPF、高响应比优先算法HRRN】
  5. thinkphp6 使用PhpOffice导入Excel表格(上传文件)
  6. 飞桨 x Graphcore IPU适配方案深度解读与硬件介绍 | 洞见AI硬件
  7. html5 放风筝,萧山5个放风筝绝佳地
  8. 2022第二届中国新能源汽车功能安全创新国际峰会
  9. Gitee上传代码教程
  10. Linux 下的dd命令使用详解以及dd if=/dev/zero of=的含义