
Ich verwende häufig die folgende Art von „aufgefülltem Array“:
\setlength{\fboxrule}{0pt}
\setlength{\fboxsep}{3pt}
\fbox{
\ensuremath{
\begin{array}{|l|l|}
\hline
A & B\\
C & D\\
\vdots & \vdots \\
E & F\\
\hline
\end{array}
}
}
Ich möchte einfach schreiben können, z. B.
\begin{DRS}
A & B\\
C & D\\
\vdots & \vdots \\
E & F\\
\end{DRS}
(oder dasselbe mit einem Befehl statt einer Umgebung), aber ich kenne keine saubere Methode, dies einzurichten. Das Problem ist, dass fbox ein Befehl und Array eine Umgebung ist, daher bin ich mir nicht sicher, wie ich die beiden richtig mischen soll. Ich könnte es möglicherweise zusammenhacken, z. B. mithilfe des Environ-Pakets (das ich gerade bei der Suche zu diesem Thema gefunden habe), aber es wäre schön zu wissen, wie man das richtig macht.
Danke!
Bearbeiten: Dies ist die Art von Bild, die ich erstelle (mithilfe verschachtelter DRSs):
Antwort1
Wenn Sie etwas Polsterung benötigen, fragen Sie explizit danach:
\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}
Die Bedingung ist erforderlich, um die Umgebung sowohl im Textmodus als auch im Mathematikmodus verwenden zu können. Sie funktioniert in beiden Modi: Am Anfang prüfen wir, ob der Mathematikmodus aktiv ist, am Ende nur, ob der Bedingungstyp aktiv ist, \ifDRSmath
und dieser Trick vermeidet eine $
falsche Ausgabe.
Antwort2
Sie können entweder eine normale Umgebung verwenden \newenvironment
(wie in der DRSX
Umgebung unten) oderDas environ
Paket(wie in der DRS
Umgebung):
\fbox{}
Es ist nicht erforderlich , ein normales Produkt zu verwenden, \hline
da dies auch funktioniert.
Code:
\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}