我正在尝试创建具有以下布局的表格:
以及生成表的代码:
\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 节点)。