![嵌套数组多列](https://linux22.com/image/450618/%E5%B5%8C%E5%A5%97%E6%95%B0%E7%BB%84%E5%A4%9A%E5%88%97.png)
\begin{array}{ll}
1. (p \to q) \land (p \to r) & \text{premise} \\
2. p \to q & \land \text{-elim(1)} \\
3. p \to r & \land \text{-elim(1)} \\
\multicolumn{2}{l}{
\begin{array}{|ll|}
\hline
4. p & \text{assumption}\\
5. &
\end{array}
} \\
\end{array}
嗨,我有个小问题。我试图在第一个数组内创建第二个数组(即嵌套数组),但我遇到的一个烦人的问题是嵌套数组似乎无法占用多于一列。我希望嵌套数组内部的第二列靠近外部数组的第二列,但出于某种原因,多列根本不会将数组扩展到一列以上。
答案1
我建议不要明确使用array
,而是将其隐藏在新环境中。正式证明的每一行都使用 或 输入\fps
(\bfps
当需要页边距中的行时使用后者)。
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\newcounter{formalproof}
\newenvironment{formalproof}
{%
\begin{flushleft}%
\setcounter{formalproof}{0}%
\begin{tabular}{|r @{ } l l|}%
}
{\end{tabular}\end{flushleft}}
\newcommand{\fps}[2]{% formal proof step
\multicolumn{1}{r}{\stepcounter{formalproof}\theformalproof.} &
$#1$ &
\multicolumn{1}{l}{#2}
}
\newcommand{\bfps}[2]{% boxed formal proof step
\stepcounter{formalproof}\theformalproof. &
$#1$ &
#2
}
\begin{document}
\begin{formalproof}
\fps{(p \to q) \land (p \to r)}{premise} \\
\fps{p \to q}{$\land$-elim (1)} \\
\fps{p \to r}{$\land$-elim (1)} \\
\hline
\bfps{p}{assumption}\\
\bfps{?}{?}
\end{formalproof}
\end{document}
答案2
欢迎来到 TeX.SE!
通过使用tabularray
包,您无需嵌套tabular
。tabular
只需在表序言中添加/定义您想要的行:
\documentclass[border=3.141591]{standalone}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{colspec={r Q[l, mode=math] l},
cell{1-Z}{1} = {cmd=\arabic{rownum}. }, % for automatic numbering of rows
hline{4}, vline{1,Z} = {4-Z}{}, % added lines in table
}
& (p \to q) \land (p \to r) & premise \\
& p \to q & $\land$ -elim(1) \\
& p \to r & $\land$ -elim(1) \\
%
& p & assumption \\
& &
\end{tblr}
$
\end{document}
答案3
我提出基于的解决方案eqparbox
,并进行了一些改进:
\documentclass{article}
\usepackage{amsmath}
\usepackage{eqparbox}
\newcommand{\eqmathbox}[2][]{\eqmakebox[#1][l]{\ensuremath{\displaystyle#2}}}
\begin{document}
\[ \begin{array}{lll}
1. & \eqmathbox[M]{(p \to q) \land (p \to r) }& \text{premise} \\
2. & p \to q & \land \text{-elim(1)} \\
3. & p \to r & \land \text{-elim(1)} \\[0.5ex]
\multicolumn{3}{l}{
\hspace{-1ex} \begin{array}{|lll|}
\hline
4. & \eqmathbox[M]{p} & \text{assumption}\\
5. & &
\end{array}
} \\
\end{array}
\]
\end{document}