穿过表格单元格的垂直实线

穿过表格单元格的垂直实线

我正在尝试创建具有以下布局的表格:

在此处输入图片描述

以及生成表的代码:

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{table}[h]
\begin{center}
    \begin{tabular}{c|cccc}
        0 & -69.2 & 0.549 & 40.1 & $\vert$ \\
        0.5 & -68.2 & 0.551 & 38.5 & $\vert$ \\
        1 & -74.1 & 0584 & 38.3 & 0.0418 \\
        1.5 & -74.9 & 0.576 & 37.7 & $\vert$ \\
        2 & -74.1 & 0.571 & 39.7 & $\vert$ \\
        2.5 & -75.5 & 0.566 & 45.2 & $\vert$ \\
        3 & -73.6 & 0.565 & 48.4 & $\vert$ \\
    \end{tabular}
\end{center}
\end{table}

\end{document}

(注意:我省略了标题)。值 0.0418 上方和下方的虚线垂直线应表示该值适用于所有行。它只是通过在每个单元格中放置一个“$\vert$”手动创建的。但是,我认为它看起来很糟糕。相反,我希望值 0.0418 上方和下方的线是实线,并延伸到包含 0.0418 的单元格上方和下方的所有单元格。

非常感谢所有帮助!:)

答案1

可能不是最好的解决方案,但它确实有效

\documentclass{article}
\begin{document}
\begin{table}[h]
    \begin{center}
        \begin{tabular}{c|cccc|c}
            0 & -69.2 & 0.549 & 40.1 & ~~ & \\
            0.5 & -68.2 & 0.551 & 38.5 &  & \\
            1 & -74.1 & 0584 & 38.3 & \multicolumn{2}{r}{0.0418}  \\
            1.5 & -74.9 & 0.576 & 37.7 & &\\
            2 & -74.1 & 0.571 & 39.7 & &\\
            2.5 & -75.5 & 0.566 & 45.2 &  &\\
            3 & -73.6 & 0.565 & 48.4 &  &\\
        \end{tabular}
    \end{center}
\end{table}
\end{document}

关键是使用命令\multicolumn。使用~代表空格的 ,您可以移动垂直线的位置。

在此处输入图片描述

答案2

在此处输入图片描述

\documentclass{article}

\begin{document}
\begin{table}[ht] % <---
    \centering    % <---
        \begin{tabular}{c|cccc}
            0 & -69.2 & 0.549 & 40.1                    & \rdelim{]}{7}{1cm}[0.0418] \\
            0.5 & -68.2 & 0.551 & 38.5                  &  \\
            1 & -74.1 & 0584 & 38.3                     & \\
            1.5 & -74.9 & 0.576 & 37.7                  &  \\
            2 & -74.1 & 0.571 & 39.7                    &  \\
            2.5 & -75.5 & 0.566 & 45.2                  &  \\
            3 & -73.6 & 0.565 & 48.4                    &  \\
        \end{tabular}
\end{table}
\end{document}

使用 TIKZ

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand\tikzmark[1]{\tikz[remember picture,overlay] \coordinate (#1);}

\begin{document}
\begin{table}[ht] % <---
    \centering    % <---
        \begin{tabular}{c|cccc}
            0 & -69.2 & 0.549 & 40.1                    & \tikzmark{a} \\
            0.5 & -68.2 & 0.551 & 38.5                  &  \\
            1 & -74.1 & 0584 & 38.3                     & \\
            1.5 & -74.9 & 0.576 & 37.7                  &  \\
            2 & -74.1 & 0.571 & 39.7                    &  \\
            2.5 & -75.5 & 0.566 & 45.2                  &  \\
            3 & -73.6 & 0.565 & 48.4                    & \tikzmark{b} \\
        \end{tabular}

    \tikz[remember picture,overlay]
    {\draw ([yshift=2ex]a) -- (b) node[xshift=0.7em,midway,fill=white] {0.0418};}
\end{table}

\end{document}

答案3

作为补充@js 比布拉答案(+1)。使用的是array包和表环境(用于正确的减号和w列类型)和 TikZ 库tikzmark(全部用于练习和各种答案):

\documentclass{article}
\usepackage{array}
\usepackage{tikz}
\usetikzlibrary{tikzmark}

\begin{document}
    \begin{table}[ht]   % <---
\[
    \begin{array}{l|ccc w{c}{6ex}}
    0   & -69.2 & 0.549 & 40.1  & \tikzmarknode{A}{\vphantom{0}}   \\
    0.5 & -68.2 & 0.551 & 38.5  &   \\
    1   & -74.1 & 0.584 & 38.3  &   \\
    1.5 & -74.9 & 0.576 & 37.7  &   \\
    2   & -74.1 & 0.571 & 39.7  &   \\
    2.5 & -75.5 & 0.566 & 45.2  &   \\
    3   & -73.6 & 0.565 & 48.4  & \tikzmarknode{B}{} \\
    \end{array}
%
    \tikz[remember picture,overlay]
    {\draw (A.north) -- node[fill=white] {0.0418} (B);}
\]
    \end{table}
\end{document}

在此处输入图片描述

笔记:为了得到上述结果,MWE 应该编译两次!

答案4

使用{NiceTabular}nicematrix环境类似于经典的{tabular}array但在单元格和行下创建 PGF/Tikz 节点。因此,可以(在 中\CodeBefore)使用这些节点使用 Tikz 绘制您想要的任何规则。

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

\begin{table}[h]
\centering
\begin{NiceTabular}{c|cccc}
\CodeBefore
  \tikz \draw (1-|5.5) -- (last-|5.5) ; 
\Body
0 & -69.2 & 0.549 & 40.1 \\
0.5 & -68.2 & 0.551 & 38.5 \\
1 & -74.1 & 0584 & 38.3 & \colorbox{white}{0.0418} \\
1.5 & -74.9 & 0.576 & 37.7 \\
2 & -74.1 & 0.571 & 39.7 \\
2.5 & -75.5 & 0.566 & 45.2 \\
3 & -73.6 & 0.565 & 48.4 \\
\end{NiceTabular}
\end{table}

\end{document}

您需要多次编译(因为nicematrix使用 PGF/Tikz 节点)。

上述代码的输出

相关内容