填滿的兩列數組

填滿的兩列數組

我多次使用以下類型的“填充數組”:

\setlength{\fboxrule}{0pt}
\setlength{\fboxsep}{3pt}
\fbox{
\ensuremath{
\begin{array}{|l|l|}
\hline 
A & B\\ 
C & D\\
\vdots & \vdots \\
E & F\\
\hline 
\end{array}
}
} 

我希望能夠寫,例如,

\begin{DRS}
A & B\\ 
C & D\\
\vdots & \vdots \\
E & F\\
\end{DRS}

(或與命令而不是環境相同),但我不知道一種乾淨的方法來設定它。問題是 fbox 是一個命令,並排列一個環境,​​所以我不確定混合兩者的正確方法。我可以將它組合在一起,例如使用environ套件(我剛剛透過搜尋這個主題找到了它),但很高興知道執行此操作的正確方法。

謝謝!

編輯:這是我正在生成的圖像類型(使用嵌套 DRS):

在此輸入影像描述

答案1

如果您需要一些填充,請明確要求:

\documentclass{article}

\newif\ifDRSmath
\newenvironment{DRS}
  {\relax\ifmmode\global\DRSmathtrue\else$\fi
   \kern3pt\begin{array}{|l|l|}
   \noalign{\kern3pt}
   \hline\mathstrut}
  {\hline
   \noalign{\kern3pt}
   \end{array}\kern3pt
   \ifDRSmath\global\DRSmathfalse\else$\fi}

\begin{document}
\begin{DRS}
    A & B\\ 
    C & D\\
    \vdots & \vdots \\
    E & F\\
\end{DRS}
\begin{DRS}
    A & B\\ 
    C & D\\
    \vdots & \vdots \\
    E & F\\
\end{DRS}

\end{document}

需要條件才能在文字模式和數學模式下使用環境。在兩種模式下都可以工作:一開始我們檢查數學模式,最後只檢查數學模式\ifDRSmath,這個技巧將避免$錯誤地發出。

答案2

您可以使用普通\newenvironment(如DRSX下面的環境),或者environ包裹(如在DRS環境中):

在此輸入影像描述

無需\fbox{}像平常一樣使用\hline即可完成工作。

代碼:

\documentclass{article}
\usepackage{environ}

\NewEnviron{DRS}{%
    \setlength{\fboxrule}{0pt}
    \setlength{\fboxsep}{3pt}
    $\begin{array}{|l|l|}%
        \hline
        \BODY%
        \hline
    \end{array}$%
}

\newenvironment{DRSX}{%
    \setlength{\fboxrule}{0pt}
    \setlength{\fboxsep}{3pt}
    \begin{math}\begin{array}{|l|l|}%
        \hline
}{%
    \hline
    \end{array}\end{math}%
}


\begin{document}
\begin{DRS}
    A & B\\ 
    C & D\\
    \vdots & \vdots \\
    E & F\\
\end{DRS}
\begin{DRSX}
    A & B\\ 
    C & D\\
    \vdots & \vdots \\
    E & F\\
\end{DRSX}
\end{document}

相關內容