使 hhline 与 arydshln 协同工作

使 hhline 与 arydshln 协同工作

我正在尝试创建最优理论表(语言学中使用的一种特定类型的表)。这些表通常如下所示 - 重要的是第一列和第一行都与表的其余部分“分离”:

未加载 arydshln 包的已编译 MWE

(请注意,在较大的表格中,第 2 至第 n 列和行看起来与任何其他表格一样;也就是说,它们仅由一条线分隔)

有效的 MWE:

\documentclass{scrartcl}
%\usepackage{arydshln}
\usepackage{hhline}
%\usepackage{arydshln}
\begin{document}
\begin{tabular}{|r||c|}\hhline{|-||-|}
a & b\\\hhline{:=::=:}
c & d\\\hhline{|-||-|}
\end{tabular}
\end{document}

问题是我还需要在表格中使用虚线垂直线,而不是常规的 |。arydshln 包提供了此功能;它允许您在表格规范中使用 : 来获取虚线。

问题是,即使加载中此包(之前或者在 hhline 之后)搞乱了表格——下面只是将 MWE 中的任意一行注释掉:

已编译并加载 arydshln 的 MWE

我已经能够找到三个具有类似问题的参考文献,因为他们的发布者试图同时使用 arydshln 和 hhline:

但这些问题都通过使用不同的方法解决了,例如使用 TikZ 绘制“表格”。这对我来说不是一个选择;我真的希望在这里使用表格环境。是否有可能同时使用虚线垂直线(我需要 arydshln 来实现)并能够像第一张图片中那样将第一列和第一行与表格的其余部分“分开”?

答案1

tabu看起来非常强大,但我想在这种情况下你只需要一些相当简单的东西:

\documentclass{article}
\usepackage{hhline,tabu}
\begin{document}
  \newtabulinestyle { mystyle=.5pt on 1.5pt  off 1.5pt }
  \begin{tabu}{| r || *{3}{c|} c |[mystyle] c |}\hhline{|-||*{5}{-|}}
    a & b & e & f & i & j\\\hhline{:=::*{5}{=:}}
    c & d & g & h & k & l\\\hhline{|-||*{5}{-|}}
    m & n & o & p & q & r\\\hhline{|-||*{5}{-|}}
  \end{tabu}
\end{document}

使用 <code>hhline</code> 和 <code>tabu</code> 来表示破折号和间隙

相关内容