如何绘制直线来指示合并表格单元格中的重复值?

如何绘制直线来指示合并表格单元格中的重复值?

您能帮我完成以下工作吗:我希望指示值 2.00 垂直重复通过一条直线,就像此草图中一样(结果应该是一条实心的连续线,而不是像图片中那样不连续的线)。我在表格环境中工作。

我的想法

答案1

以下是 Tikz 的简短回答:

我创建了两个新命令,分别称为\upbar\downbar,它们相互连接,以便表格顶部、文本和表格底部的间距保持正确。如果条形图连接到表格的顶部和底部,它看起来就像一条垂直线,这不是您想要的。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}

\newcommand{\upbar}{\tikz[overlay] \draw (0,1em)--(0,0em);}
\newcommand{\downbar}{\tikz[overlay] \draw (0,.5em)--(0,-1em);}

\begin{document}
    \begin{tabular}{lcl}
        \hline
        foo & \downbar  & bar\\
        foo & \downbar  & bar\\
        baz & \upbar    & bat\\
        baz & label     & bat\\
        baz & \downbar  & bat\\
        baz & \downbar  & bat\\
        baz & \downbar  & bat\\
        baz & \upbar    & bat\\
        \hline
    \end{tabular} 

    \begin{tabular}{lcl}
        \hline
        A & \downbar & 3.45\\
        B & \upbar & 6.12\\
        C & 2.00 & 7.93\\
        D & \downbar & 0.31\\
        E & \upbar & 9.21\\
        \hline
    \end{tabular}
\end{document}

答案2

我有一个解决方案,你可能会觉得有用,尽管它会稍微影响表格格式。下面是解决方案:

\documentclass{article}
\usepackage{amsmath}

\begin{document}
    \begin{tabular}{lcl}
        \hline
        A & $\Big|$ & 3.45\\
        B & $\Big|$ & 6.12\\
        C & $2$ & 7.93\\
        D & $\Big|$ & 0.31\\
        E & $\Big|$ & 9.21\\
        \hline
    \end{tabular}
\end{document}

以下是两者的比较: 表格比较

本质上我只是把垂直条弄得“很大”,以至于 TeX 别无选择,只能将它们连接起来。希望这能有所帮助!

答案3

在英语和其他语言中,ditto markdouble prime(U+2033),通常用双引号代替。在法语和瑞士德语中, 是right guillemot。您也可以使用破折号。以下是四种方法(包括您要求的):

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{array}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{makecell}
\renewcommand\theadfont{\color{LightSteelBlue3}\mathversion{bold}}
\setcellgapes{5pt}
\makegapedcells
\begin{document}

  \begin{tabular}[t]{c >{\rule[-0.15ex]{0.4pt}{1.7ex}}c S[table-format = 1.2]}
\toprule
    A & & 3.45 \\
    B & & 6.12\\
    C &\multicolumn{1}{c}{200} & 7.93 \\
    D & & 0.31 \\
     E & & 9.21 \\
\bottomrule
  \end{tabular}
\qquad
  \begin{tabular}[t]{c >{$''}c<{$}S[table-format = 1.2]}
\toprule
    A & \multicolumn{1}{c}{200} & 3.45 \\
    B & & 6.12\\
    C & & 7.93 \\
    D & & 0.31 \\
     E & & 9.21 \\
\bottomrule
  \end{tabular}
\vskip 1cm
 \begin{tabular}{c >{\textemdash}cS[table-format = 1.2]}
\toprule
    A & \multicolumn{1}{c}{200} & 3.45 \\
    B & & 6.12\\
    C & & 7.93 \\
    D & & 0.31 \\
     E & & 9.21 \\
\bottomrule
  \end{tabular}
\qquad
 \begin{tabular}{c >{\guillemotright}cS[table-format = 1.2]}
\toprule
    A & \multicolumn{1}{c}{200} & 3.45 \\
    B & & 6.12\\
    C & & 7.93 \\
    D & & 0.31 \\
     E & & 9.21 \\
\bottomrule
  \end{tabular}
\end{document} 

在此处输入图片描述

答案4

\colorbox下面我使用背景覆盖了重复white。两个示例显示了使用booktabs以及没有,以及有偶数/奇数行的情况:

在此处输入图片描述

\documentclass{article}
\usepackage{xcolor,booktabs}
\begin{document}
\begin{tabular}{lc|cl}
  \hline
  A & &&  3.45 \\
  B & &&  6.12 \\
  C & &\llap{\makebox[0pt]{\colorbox{white}{2}}\hspace{\tabcolsep}} & 7.93 \\
  D & &&  0.31 \\
  E & &&  9.21 \\
  \hline
\end{tabular} \qquad
\begin{tabular}{lc|cl}
  \toprule
  A & &&  3.45 \\
  B & &&  6.12 \\
  C & &\llap{\makebox[0pt]{\colorbox{white}{2}}\hspace{\tabcolsep}} & 7.93 \\
  D & &&  0.31 \\
  E & &&  9.21 \\
  \bottomrule
\end{tabular}

\bigskip

\begin{tabular}{lc|cl}
  \hline
  A & &&  3.45 \\
  A & &&  3.45 \\
  B & &&  6.12 \\
  C & &\raisebox{.5\normalbaselineskip}[0pt][0pt]{\llap{\makebox[0pt]{\colorbox{white}{2}}\hspace{\tabcolsep}}} & 7.93 \\
  D & &&  0.31 \\
  E & &&  9.21 \\
  \hline
\end{tabular} \qquad
\begin{tabular}{lc|cl}
  \toprule
  A & &&  3.45 \\
  A & &&  3.45 \\
  B & &&  6.12 \\
  C & &\raisebox{.5\normalbaselineskip}[0pt][0pt]{\llap{\makebox[0pt]{\colorbox{white}{2}}\hspace{\tabcolsep}}} & 7.93 \\
  D & &&  0.31 \\
  E & &&  9.21 \\
  \bottomrule
\end{tabular}

\end{document}

调整\fboxsep会增加背景尺寸,因此也会增加垂直线到的距离2

相关内容