嵌套数组多列

嵌套数组多列
\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包,您无需嵌套tabulartabular只需在表序言中添加/定义您想要的行:

\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} 

在此处输入图片描述

相关内容