
Я часто использую следующий вид «дополненного массива»:
\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}