复杂的表格结构缺乏间距

复杂的表格结构缺乏间距

下列的这个帖子,我在乳胶中有另一张表:

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{mathtools}
\usepackage{tabularx}
\usepackage[math]{cellspace}
\setlength{\cellspacetoplimit}{3pt}
\setlength{\cellspacebottomlimit}{3pt}
\newcolumntype{?}{!{\vrule width 3pt}}
\usepackage{makecell}

\begin{document}

\begin{table*}[!t]
\footnotesize
\centering
\caption{Example of a table}
\label{sth}
\begin{tabular}{>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}?>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}|>{$}Sc<{$}|}
\cline{2-11}
 & \multicolumn{5}{c?}{X^{tr} (\mathrm{english text})} & \multicolumn{5}{c|}{Y^{yu} (\mathrm{english text})} \\ \cline{2-11} 
\multirow{-2}{*}{} & \mathscr{A}_1 & \mathscr{A}_2 & \mathscr{A}_3 & \mathscr{A}_4 & \mathscr{A}_5 & \mathscr{A}_1 & \mathscr{A}_2 & \mathscr{A}_3 & \mathscr{A}_4 & \mathscr{A}_5 \\ \hline
\multicolumn{1}{|c|}{1} & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35  \\ \hline
\multicolumn{1}{|c|}{2} & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35  \\ \hline
\end{tabular}
\end{table*}

\end{document}

在此处输入图片描述

我的努力遇到了多个问题。

  1. 为什么第一列出现 -2*?
  2. 我试图摆脱垂直线和水平线,但我需要在中间保留一个粗体黑色分隔线。所以,我不知道要删除哪些线。
  3. 公式模糊地出现在线条中,所以我应该删除线条。我尝试在每个框周围留出额外的间隙。有没有更好的方法?我的方法似乎不适用于顶部的第一行。
  4. “英文文本”没有出现在第二行,因为它之间应该有空格。我试图将表格中的所有内容写成数学公式,但这会产生错误。有人可以解决这个问题吗?
  5. 在第二行中,字母 A 应该以大写字母显示。但事实并非如此。

我主要需要帮助来使此表更具可读性并解决生成的错误消息。请提出修改建议。

答案1

一些评论和意见:

  • 由于表中的几乎所有材料都应该处于数学模式,因此请使用array环境而不是tabular环境。

  • c列类型似乎适用于所有 11 个列。该cellspace包确实有其用途。但对于当前表,使用它的机制似乎有点过头了。

  • 要减小表格的整体宽度,请更改 的值\arraycolsep(假设您已按照我的建议使用环境array)。此参数的默认值为5pt;在下面的示例中,我将其设置为2.5pt

  • 由于该\multirow{-2}{*}{}指令,出现了“-2”字符串。它要实现什么目的?即使没有它,表格也运行良好。

  • 你的桌子没有任何垂直线。确实如此。见下文。

  • 使用包的画线宏booktabs代替\hline\cline

  • 不要使用\mathrm;使用\text{...}\textnormal{...}

  • 为了使\mathscr宏按预期运行,请加载提供数学脚本数学字母表的包。试用该mathrsfs包。

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{mathtools,array,mathrsfs,booktabs}
\usepackage[skip=0.333\baselineskip]{caption} % optional
\newcommand\msA{\mathscr{A}}
\begin{document}

\begin{table}[!t]
\setlength\arraycolsep{2.5pt} % default value: 5pt
\footnotesize
\captionsetup{font=footnotesize} % optional
\centering
\caption{Example of a table}
\label{sth}
$\begin{array}{@{}*{11}{c}@{}}
\toprule
 & \multicolumn{5}{c}{X^{tr} (\textnormal{english text})} 
 & \multicolumn{5}{c@{}}{Y^{yu} (\text{english text})} \\ 
\cmidrule(lr){2-6} \cmidrule(l){7-11}
 & \msA_1 & \msA_2 & \msA_3 & \msA_4 & \msA_5 
 & \msA_1 & \msA_2 & \msA_3 & \msA_4 & \msA_5 \\ 
\midrule
1 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 
  & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35  \\ 
2 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 
  & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35  \\ 
\bottomrule
\end{array}$
\end{table}

\end{document}

答案2

这是你想要的吗?

如果是的话,代码如下:

%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage[utf8]{inputenc}

\usepackage{mathtools}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage[math]{cellspace}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\setmathfont[version=setB,StylisticSet=1]{XITS Math}
\setlength{\cellspacetoplimit}{3pt}
\setlength{\cellspacebottomlimit}{3pt}

\usepackage{makecell}

\begin{document}
    \newcolumntype{?}{!{\vrule width 3pt}}
    \begin{table}[!t]
        \footnotesize
        \centering
        \caption{Example of a table}
        \label{sth}
        \begin{tabular}{>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}?>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}>{$}Sc<{$}}
            & \multicolumn{5}{c?}{$X^{tr} (\mathrm{english text})$} & \multicolumn{5}{c}{$Y^{yu} (\mathrm{english text})$} \\
             & \mathscr{A}_1 & \mathscr{A}_ 2 & \mathscr{A}_3 & \mathscr{A}_4 & \mathscr{A}_5 & \mathscr{A}_1 & \mathscr{A}_2 & \mathscr{A}_3 & \mathscr{A}_4 & \mathscr{A}_5 \\
            \multicolumn{1}{c}{1} & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35  \\
            \multicolumn{1}{c}{2} & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35 & 5413.35  \\
        \end{tabular}
    \end{table}

\end{document}
  1. 由于\multirow{-2}{*}{}。您的代码无法编译,因为您没有包multirow

  2. 删除全部|

  3. 你的选择

  4. 这是因为它处于数学模式,所以你需要手动添加空格,使用\,

  5. 您尚未定义在脚本模式下制作字母的命令。

相关内容