为什么这些列单元格中的文本不居中?

2021-02-19 11:51

I有下面的示例表代码:\开始{table}[h!]\centering\resizebox{0.9\textwidth}{!}{%\begin{tabular}{@{c}ccccccc@{}\hlineamp;\hphantom{-----}&;\multico

解答动态

  • I提供了三种不同的口味。第一种方法使用包multirow和makecell在cell.
    中使用\\来拆分长标题,第二种方法仅使用包nicematrix,该包提供了强大的命令\Block,允许更紧凑的代码。该包还允许通用指令垂直拉伸所有单元格。
    最后,通过精确控制列的宽度,使它们具有相同的宽度,不管它们的内容是什么。
    行之间的间隔可以通过在\\as[7pt]之后添加垂直空格来增加。
    关于在单元格中使用换行符的说明:使用此功能非常好。这在这个简单的MWE中是没有必要的,但在现实世界中,如果你的长标题增长,它将扩大表和破坏布局。你自己试试看。

    美化的下一步是处理规则和标题(不是问题的一部分)。
    \documentclass[12pt,a4]{article}\usepackage{nicematrix}\usepackage{multirow}\usepackage{makecell}\begin{document}\begin{table}[h!]\定心\renewcommand{\arraystretch}{1.2}\begin{tabular}{@{c}ccccccc@{}\hlineamp;\multicolumn{3}{c}{\multirowcell{2}{Testword and\\large Text2}amp;\\\hline222224446666\\\hline Test-Row-149,740,000,83\\Test-Row-211,350,000,00\\Test-Row-310,280,000,00\\[6pt]%增加垂直间距\hline22222444666666\\\hline Test-Row-558,080,00amp;1,49\\Test-Row-6amp;23,25amp;0,00amp;0,00\\Test-Row-7amp;24,54amp;0,00amp;\Block{1-3}{Testword and\\large Text1}amp;\\\hline222224446666\\\hline测试行149,740,000,83\\Test-Row-211,350,0033,9023,78amp;0,000,00\\[7pt]%增加垂直间距\hline222224446666\\\hline Test-Row-558,080,0035,4927,95amp;0,00amp;27,77amp;23,29amp;0,00gt;{\centering\arraybackslash}p{1\textwidth}}\begin{table}[h!]中央\定定居居居\\定居居\\\定居居居居\ \\中央\更新命令{{\\\中央\\\中央\中央\\\中央\中央\\\中央\中央\\中央\中央\更新命令{{\ararlystrt}{{1.2}}{{1.2}\\Be开始{7{{{{文本2}}\\amp;amp;\\\hlineamp;22222amp;4446666\\\hline测试行-1amp;49,74amp;0,00amp;23,16amp;25,70amp;0,00\\Test-Row-310,280,0011133333555569,5459,140,00;1,49\\Test-Row-623,250,0027,7723,290,00&0,00\\\hline\end{tabular}%\caption{Intra Klassen Abweichung with multirow and makecell.\\所有宽度相同的列。}\label{选项卡:类内偏差3}\end{table}\end{document}

    • 使用w列类型和一些花哨的规则怎么样?
      \documentclass{article}\usepackage{lipsum}\usepackage{array}\usepackage[svgnames,table]{xcolor}\begin{document}\lipsum[47]\begin{table}[!h] \centering\arrayrulecolor{浅灰色!60!Lavender}\arrayrulewidth=1.2pt\setlength{\extrarowheight}{2pt}\begin{tabular}{@{}c!{\颜色{浅灰色!60!薰衣草}\v规则宽度2.4pt}*{3}{wc{1.25cm}}!{\颜色{浅灰色!60!薰衣草色}\v规则宽度6pt}*{3}{wc{1.25cm}}@{}\hlineamp;\multicolumn{3}{c}{Testword and large Text2}\\\ hline222224446666\\\ hline Test-Row-149,740,000,83\\Test-Row-211,350,0033,9023,780,0011133333555569,5459,14amp;0,00amp;35,49amp;27,95amp;0,00amp;27,77amp;23,29amp;0,00\\ hline\end{tabular}%\end{table}\end{document

      多列单元格的宽度比跨列单元格的总和宽。正如您的问题下面的注释中所提到的,您需要增加跨列的宽度,例如,按照下面的MWE中的操作来规定它们的宽度。
      使用siunitx包中定义的S列类型,规定表列宽=3.3em(估计为多列宽度的1/3)的列宽,并使用中定义的规则图书标签包装:
      \documentclass{article}%使用的文档类未知\usepackage{geometry}%页面布局未知\usepackage{booktabs,tablarx}\NewExpandableDocumentCommand\mcc{O{1}m}{\multicolumn{1}{c}{2}\usepackage[locale=DE]{siunitx}\begin{document}\begin{table}[ht]\centering\begin{tabular}{c*{3}{S[table format=2.2,table column width=3.3em]}*{S[table format=1.2,表列宽=3.3em]}@{}\topruleamp;\mcc[3]{Test word and large Text2}\\\ cmidrule(r){2-4}\cmidrule(l){5-7}amp;{22222}amp;{444}6666}\\ midruleTest Row-1amp;49,74amp;0,00amp;0,83\\Test-Row-2amp;11,35amp;0,00amp;0,00\\Test-Row-3amp;10,28amp;0,00amp;111}amp;33333}5555}{666666}\\\规则测试行558,08

      • End

      免责声明:

      本页内容仅代表作者本人意见,若因此产生任何纠纷由作者本人负责,概与琴岛网公司无关。本页内容仅供参考,请您根据自身实际情况谨慎操作。尤其涉及您或第三方利益等事项,请咨询专业人士处理。