Latex {multicols}{2}环境下插入单栏/双栏表格
背景
期刊模板中未给出表格插入,因此需要单双栏插入方式汇总。相比于图片和公式,此部分细节或者试错次数更多。
已经可以轻易地搜到许多教程,熟悉基本语法之后,若普通的功能满足不了需求,则这里可能提供相应的解决方式。
一般来讲,论文中的表格宽度和文字宽度是一致的,单栏就是单栏宽度,双栏就是双栏宽度。而普通的tabular环境貌似需要手动调整每列宽度,因此该方法不太实用。
相比之下,tabularx可以指定整体宽度,每列宽度自动适应,因此更适用一些。由此总结一些对齐/合并的操作方式。
前期准备
一般来讲都是先用excel绘制表格,建议使用Excel2LaTeX进行转换后,再修改。教程
\\usepackage{multirow} %合并行,貌似合并列的不用导入
\\usepackage{makecell} %实现单元格内换行
tabularx
默认与列宽设置
首先是默认情况,和tabular中的lcr类似,X也代表了列的设置,当然也可以用p{⟨width⟩}m{⟨width⟩}b{⟨width⟩}来设置。
lcr代表了水平对齐方式:左中右
pmb代表了纵向对齐方式:下中上,⟨width⟩为宽度设置
\\begin{table*}[htbp]\\centering\\caption{Add caption}\\begin{tabularx}{\\linewidth}{m{3cm}XXX}\\toprule& 1 & 2 & 3 \\\\\\midrule4 & 5 & 6 & 7 \\\\4 & 5 & 6 & 7 \\\\4 & 5 & 6 & 7 \\\\\\bottomrule\\end{tabularx}\\label{tab:addlabel}
\\end{table*}
{m{3cm}XXX}进行了列宽的设置,第一列为3cm,其余三列自动调整宽度
可以注意到,tabularx自动对齐方式为左对齐
居中对齐
如有需要,可进行居中对齐的设置:
在列设置前添加>{\\centering\\arraybackslash}实现居中,>\\arraybackslash的存在是因为>\\centering 等对齐命令会破坏表格环境里\\\\换行命令的定义,>\\arraybackslash 用来恢复之。
\\begin{table*}[htbp]\\centering\\caption{Add caption}\\begin{tabularx}{\\linewidth}{>{\\centering\\arraybackslash}m{6cm}>{\\centering\\arraybackslash}X>{\\centering\\arraybackslash}X>{\\centering\\arraybackslash}X}\\toprule& 1 & 2 & 3 \\\\\\midrule4 & 5 & 6 & 7 \\\\4 & 5 & 6 & 7 \\\\4 & 5 & 6 & 7 \\\\\\bottomrule\\end{tabularx}\\label{tab:addlabel}
\\end{table*}
合并单元格&换行
添加了合并行、列、换行的功能
\\begin{table*}[htbp]\\centering\\caption{Add caption}\\begin{tabularx}{\\linewidth}{>{\\centering\\arraybackslash}m{3cm}>{\\centering\\arraybackslash}X>{\\centering\\arraybackslash}X>{\\centering\\arraybackslash}X}\\toprule\\multicolumn{2}{c}{Input} & 2 & 3 \\\\\\midrule4 & 5 & 6 & 7 \\\\\\multirow{2}{*}{8} & \\multirow{2}{*}{\\makecell[c]{999 \\\\ 999}} & 10 & 11 \\\\& & 12 & 13 \\\\\\multirow{2}{*}{14} & \\multirow{2}{*}{15\\newline15} & 16 & 18 \\\\& & 17 & 19 \\\\\\bottomrule\\end{tabularx}\\label{tab:addlabel}
\\end{table*}
\\multicolumn{⟨n⟩}{⟨column-spec⟩}{⟨item⟩}
⟨n⟩表示合并个数
⟨column-spec⟩表示合并后的列格式,只允许出现lcrp
\\multirow{⟨n⟩}[⟨m⟩]{⟨width⟩}{⟨item⟩}
\\multirow{⟨n⟩}[⟨m⟩]{⟨width⟩}{⟨item⟩}
⟨n⟩ 为要合并的列数。
[⟨m⟩]表示该行单元格所占的纵向格子数。一般来讲不写[⟨m⟩],默认纵向居中。
⟨width⟩为合并后单元格的宽度,可以填 * 以使用自然宽度。
\\makecell[c]{⟨text⟩}允许单元格内换行
参考教程
参考1
参考2