答案1
这是一种使用的可能性nicematrix
。请注意,必须编译两次。
\surr
定义一个接受三个参数的新命令,其中一个参数是可选的:
\surr[<nest level>]{<from row>}{<to row>}
嵌套级别默认为 1。\surr
应在 中使用命令\CodeAfter
。通过向相关行添加内容来创建箭头的额外垂直空间[1ex]
。如果需要,可以省略或更改。
要在命令中进行间距调整\surr
:
-3pt
是绘制线的当前行下方的距离。2mm
是嵌套垂直线之间的空间。3mm
是第一层嵌套的额外空间。
如果你想自动进行行编号,TeX.SX 上有几种解决方案,例如这里。
\documentclass{article}
\usepackage{nicematrix, tikz}
\newcommand{\surr}[3][1]{\tikz{
\draw[->]([shift={(0,-3pt)}]#2-2.south east)--([shift={({#1*-2mm-3mm},-3pt)}]#2-1.south west)|-(#3-1.west);
}}
\begin{document}
\begin{NiceTabular}{ll}
1. $A\lor B$ & AP\\
2. $(A\supset B)\bullet(B\supset C)$ & AP\\
3. $(A\supset C)$ & 2 Simp\\
4. $(B\supset C)$ & 2 Simp\\
5. $C\lor C$ & 1, 3, 4 CD\\
6. $C$ & 5 Taut\\[1ex]
7. $[(A\supset B)\bullet(B\supset C)]\supset C$ & 2--6 CP\\[1ex]
8. $(A\lor B)\supset\{[(A\supset B)\bullet(B\supset C)]\supset C\}$ & 1--7 CP
\CodeAfter
\surr{6}{2}
\surr[2]{7}{1}
\end{NiceTabular}
\end{document}