非居中表格对齐

非居中表格对齐

我正在尝试构建这样的布局:

代码

首先想到的是嵌套的tabulars,以及这类作品。

更多代码

但是,如何将第 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:如您所见,列宽会自动调整,即取决于写入的“文本”数量。请参阅第三部分作为示例。

相关内容