
我多次使用以下類型的“填充數組”:
\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}