我正在尝试构建这样的布局:
首先想到的是嵌套的tabular
s,以及这类作品。
但是,如何将第 1-4 行与||
跨越第 5-19 行的(最左边的)行分隔符对齐?
\documentclass{article}
\begin{document}
\begin{tabular}{ c }
${\{ \mathit{emp} \}}$ \\
\texttt{barrier b = new barrier(2);} \\
\begin{tabular}{c||c}
${\{ \mathit{left} \}}$ & ${\{ \mathit{right} \}}$ \\
\texttt{wait(b)} & \texttt{wait(b)} \\
\texttt{wait(b)} & \begin{tabular}{c||c}
${\{ \mathit{left}' \}}$ & ${\{ \mathit{right}'' \}}$ \\
\texttt{remove(b,1)} & \texttt{remove(b,1)} \\
\end{tabular} \\
\end{tabular} \\
\end{tabular}
\end{document}
答案1
问题似乎是您的表格目前还不够复杂。在草图中,我尝试突出显示您需要的内容:
- 3 列(绿色),你可能想到的是
- 4 个块(深紫色),合并 2 列(col1+2、col2+3、col2+3、col1+2)
因为您想要一个中间类似矩阵的表示,所以使用nicematrix
类似于表格的包也许会更成功。
这里有一些代码,显示了基本结构,可以帮助您继续前进。我建议 1) 在此粗略级别上进行扩展,直到您拥有布局,2) 开始用您的内容替换 ABC 等的内容,3) 也许在开始时使用宏定义来增强矩阵/表格结构和公式的可读性(宏从左上角用您的公式替换 ABC 等)。即从简单开始,使其正确,然后对其进行扩展。
\documentclass{article}
\usepackage{nicematrix}
% you may need to compile at least twice for proper display
\begin{document}
$\begin{bNiceArray}{c|c|c} % centering all columns; | for inidcation
\Block{1-2}{ABC} & & \\ % see R#1
& \Block{1-2}{DEF} \\ % see R#2
GGG & HHH & III \\ % just to display something
\end{bNiceArray}$
% R#1: \Block spans 1 row, 2 columns; & & indicate the tab stops
% R#2: same, but starting to merge at col 2
\end{document}
两次编译后的结果:
PS:如您所见,列宽会自动调整,即取决于写入的“文本”数量。请参阅第三部分作为示例。