我想要创建如下的表格:
但是我只想到了表格代码,却不知道如何添加这两个框。
\begin{table}
\centering
\begin{tabular}{lll}
1. & $(\lnot (\alpha \lor (\lnot \alpha)))$ & Assumption \\
2. & $\alpha$ & Assumption \\
3. & $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 2 \\
4. & $\bot$ & $\bot i$: 1,3 \\
5. & $(\lnot \alpha)$ & $\lnot i$, 2-4 \\
6. & $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 5 \\
7. & $\bot$ & $\bot i$: 1,6 \\
8. & $(\lnot (\lnot (\alpha \lor (\lnot \alpha))))$ & $\lnot i$:1-7\\
9. & $(\alpha \lor (\lnot \alpha))$ & $\lnot \lnot e$: 8 \\
\end{tabular}
\label{tab:mytable}
\end{table}
知道如何添加盒子吗?
答案1
这个logicproof
包装的设计有着明确的目标。
\documentclass{article}
\usepackage{logicproof}
\begin{document}
\begin{logicproof}{2}
\begin{subproof}
(\lnot (\alpha \lor (\lnot \alpha))) & Assumption \\
\begin{subproof}
\alpha & Assumption \\
(\alpha \lor (\lnot \alpha)) & $\lor$i: 2 \\
\bot & $\bot$i: 1,3
\end{subproof}
(\lnot \alpha) & $\lnot$i, 2-4 \\
(\alpha \lor (\lnot \alpha)) & $\lor$i: 5 \\
\bot & $\bot$i: 1,6
\end{subproof}
(\lnot (\lnot (\alpha \lor (\lnot \alpha))))
& $\lnot$i: 1-7 \\
(\alpha \lor (\lnot \alpha)) & $\lnot\lnot$e: 8
\end{logicproof}
\end{document}
答案2
一种方法是使用tikzmark
库。在以下 MWE 中,这些shift
值适用于标准article
文档类。对于其他类,您可能需要调整它们。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{table}
\centering
\begin{tabular}{lll}
1.\tikzmark{a1} & $(\lnot (\alpha \lor (\lnot \alpha)))$ & Assumption \\
2.\tikzmark{a3} & $\alpha$ & Assumption \\
3. & $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 2 \\
4.\tikzmark{a4} & $\bot$ & $\bot i$: 1,3 \\
5. & $(\lnot \alpha)$ & $\lnot i$, 2-4 \\
6. & $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 5 \\
7.\tikzmark{a2} & $\bot$ & $\bot i$: 1,6 \\
8. & $(\lnot (\lnot (\alpha \lor (\lnot \alpha))))$ & $\lnot i$:1-7\\
9. & $(\alpha \lor (\lnot \alpha))$ & $\lnot \lnot e$: 8 \\
\end{tabular}
\label{tab:mytable}
\end{table}
\begin{tikzpicture}[overlay, remember picture]
\draw ([shift={(6cm, 1em)}]pic cs:a1) rectangle ([shift={(5pt,-2pt)}]pic cs:a2);
\draw ([shift={(5.8cm, 0.8em)}]pic cs:a3) rectangle ([shift={(10pt,-2pt)}]pic cs:a4);
\end{tikzpicture}
\end{document}
答案3
带包裹tabularray
。
vline{2} = {1}{1-8}{solid}
,绘制第一条垂直线第 2 列、第 1 至 8 行。vline{2} = {2}{2-4}{red,solid},
,绘制第二条垂直线第 2 列、第 2 行至第 4 行。leftpos=0,rightpos=0
仅触及第一条 vline。
红色可以使相关的代码更加形象化。
\documentclass[border=5mm]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{counter}
\newcounter{mycnta}
\newcommand{\mycnta}{\stepcounter{mycnta}\arabic{mycnta}}
\begin{document}
\begin{tblr}
{
column{1}={cmd=\mycnta .},
%
vline{2} = {1}{1-8}{solid},
vline{2} = {2}{2-4}{red,solid},
vline{4} = {1}{2-4}{red,solid},
vline{4} = {2}{1-8}{solid},
%
hline{1,9} = {2-4}{solid},
hline{2,5} = {2-4}{red,leftpos=0,rightpos=0,solid},
}
& $(\lnot (\alpha \lor (\lnot \alpha)))$ & Assumption \\
& $\alpha$ & Assumption \\
& $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 2 \\
& $\bot$ & $\bot i$: 1,3 \\
& $(\lnot \alpha)$ & $\lnot i$, 2-4 \\
& $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 5 \\
& $\bot$ & $\bot i$: 1,6 \\
& $(\lnot (\lnot (\alpha \lor (\lnot \alpha))))$ & $\lnot i$:1-7\\
& $(\alpha \lor (\lnot \alpha))$ & $\lnot \lnot e$: 8 \\
\end{tblr}
\end{document}
答案4
使用{NiceTabular}
和nicematrix
TikZ 通过使用 PGF/Tikz 节点创建的框架来绘制框架nicematrix
。
\documentclass{article}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{table}
\centering
\begin{NiceTabular}{lll}
1. & $(\lnot (\alpha \lor (\lnot \alpha)))$ & Assumption \\
2. & $\alpha$ & Assumption \\
3. & $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 2 \\
4. & $\bot$ & $\bot i$: 1,3 \\
5. & $(\lnot \alpha)$ & $\lnot i$, 2-4 \\
6. & $(\alpha \lor (\lnot \alpha))$ & $\lor i$: 5 \\
7. & $\bot$ & $\bot i$: 1,6 \\
8. & $(\lnot (\lnot (\alpha \lor (\lnot \alpha))))$ & $\lnot i$:1-7\\
9. & $(\alpha \lor (\lnot \alpha))$ & $\lnot \lnot e$: 8 \\
\CodeAfter
\begin{tikzpicture}
\draw (1-|2) rectangle (8-|last) ;
\draw ([xshift=1mm]2-|2) rectangle ([xshift=-1mm]5-|last) ;
\end{tikzpicture}
\end{NiceTabular}
\label{tab:mytable}
\end{table}
\end{document}