在表格中创建一条跨越一定范围的行(但不是所有行)的垂直线

在表格中创建一条跨越一定范围的行(但不是所有行)的垂直线

我对在表格中创建一条垂直线的方法很感兴趣,该垂直线跨越一系列行,但不是所有行。我在下面找到了一个解决方案,但是是否有其他解决方案,例如\cline允许您指定希望水平线跨越哪些列?

http://www.latex-community.org/forum/viewtopic.php?f=45&t=3849

跨越所有行的垂直线

\documentclass[a4paper]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\begin{document}

\begin{tabular}{c c|c c c c|}
  \multicolumn{2}{c}{} & Piano & Trumpet & Flute & Viola\\
  \multicolumn{2}{c}{}& \textbf{pno} & \textbf{tpt} & \textbf{flt} & \textbf{vla}\\
  \cline{3-6}
  Piano & \textbf{pno} & 0 & 0.5 & 0.25 & 0.75\\
  Trumpet & \textbf{tpt} & 0 & 0 & 0.25 & 0.5\\
  Flute & \textbf{flt} & 0 & 0 & 0 & 0.75\\
  Viola & \textbf{vla} & 0& 0 & 0 & 0\\
  \cline{3-6}
\end{tabular}

\end{document}

跨越多行的垂直线

\documentclass[a4paper]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\begin{document}

\begin{tabular}{c c|c c c c|}
\multicolumn{2}{c}{} & Piano & Trumpet & Flute & \multicolumn{1}{c}{Viola}\\
\multicolumn{2}{c}{}& \textbf{pno} & \textbf{tpt} & \textbf{flt} & \multicolumn{1}{c}{\textbf{vla}}\\
\cline{3-6}
Piano & \textbf{pno} & 0 & 0.5 & 0.25 & 0.75\\
Trumpet & \textbf{tpt} & 0 & 0 & 0.25 & 0.5\\
Flute & \textbf{flt} & 0 & 0 & 0 & 0.75\\
Viola & \textbf{vla} & 0& 0 & 0 & 0\\
\cline{3-6}
\end{tabular}

\end{document}

答案1

我最近一直在参考 easybmat 包,由于没有其他答案,我将再次参考。easybmat 的问题在于它必须位于 mathmode 内部...因此您必须在\text{}每个单元格或列定义中用 换行。但是,使用 BMAT,您可以放置​​任何您喜欢的行:

$\begin{BMAT}[5pt]{|ccccc|}{|cccc|}
* & * & * & * & * \\
* & * & * & * & * \\
* & * & * & * & * \\
* & * & * & * & *
\addpath{(1,1,0)ruld}
\addpath{(4,3,;)lldrrdll}
\end{BMAT} $

生成:

替代文本

相关内容