表格环境中单元格之间的描边

表格环境中单元格之间的描边

我需要您在图片中看到的内容:这些是来自表格环境的单元格,我想在单元格之间绘制笔划,有点像 Xypic 中的笔划。我本来可以这样做,xymatrix但我不知道如何左对齐,而且右下角的单元格需要额外的一列,xymatrix因此该表格的第 5 列和第 6 列之间也需要额外的空间,而我更希望它是对称的。

图片

如果我tikz单独使用,我会花很长时间使它看起来像一个表格环境(文档中还有其他表格,我希望它们看起来都一样)。

因此,我认为最简单的方法是允许在表格(或 tabularx 或 longtable)的两个单元格之间绘制笔触的代码,方式类似于xymatrix。即,我首先构建表格,它看起来与所有其他表格一样,然后我在不更改表格的情况下添加笔触。

有人做过这个吗?

答案1

感谢 David Carlisle(谢谢 David,你太棒了!!)我成功创建了这张表。它在 XeLaTeX 中的样子如下:

在此处输入图片描述

使用以下代码,在我安装了非常新的(只有几天)的包并在调用包后立即tikzmark请求:\usetikzlibrary{tikzmark}tikz

\begin{tabular}{lccclcc}
\textsc{kanji}&
\tikzmarknode{a}{{\japanese 国}}&
\tikzmarknode{d}{{\japanese 道}}&
&\textsc{kanji}&
\tikzmarknode{g}{{\japanese 葡}}&
\tikzmarknode{j}{{\japanese 萄}}\\[6pt]
\textsc{phonology}&
\tikzmarknode{b}{/koku/}&
\tikzmarknode{e}{/dō/}&
&\textsc{phonology}&
\tikzmarknode{h}{/bu/}&
\tikzmarknode{k}{/dō/}\\[6pt]
\textsc{morphology}&
\tikzmarknode{c}{\{country\}}&
\tikzmarknode{f}{\{road\}}&
&\textsc{morphology}&
\multicolumn{2}{c}{\tikzmarknode{i}{\{grape\}}}
\end{tabular}

\begin{tikzpicture}[overlay,remember picture]
\draw [-,overlay,remember picture] (a.south) -- (b.north);
\draw [-,overlay,remember picture] (b.south) -- (c.north);
\draw [-,overlay,remember picture] (d.south) -- (e.north);
\draw [-,overlay,remember picture] (e.south) -- (f.north);
\draw [-,overlay,remember picture] (g.south) -- (h.north);
\draw [-,overlay,remember picture] (h.south) -- (i.north);
\draw [-,overlay,remember picture] (j.south) -- (k.north);
\draw [-,overlay,remember picture] (k.south) -- (i.north);
\end{tikzpicture}

也许有人可以帮我调整笔画的长度?请注意,汉字和第二行之间的笔画比第二行和第三行之间的笔画长。我怎样才能使笔画长度相等?

相关内容