Определение новых сред с помощью команды

Определение новых сред с помощью команды

Я мог бы сделать что-то вроде следующего:

Вместо того, чтобы сделать следующее, где я повторяю один и тот же код много-много раз:

\documentclass{article}
\usepackage{enumerate}
\newenvironment{enum1}{\begin{enumerate}[1.]}{\end{enumerate}}
\newenvironment{enuma}{\begin{enumerate}[a.]}{\end{enumerate}}
...

Мне бы хотелось иметь возможность «автоматизировать» это как-то, например:

\documentclass{article}
\newcommand{\newEnum}[1]{\newenvironment{enum#1}{\begin{enumerate}[#1.]}{\end{enumerate}}
\newEnum{1}
\newEnum{a}
...

Конечно, это не компилируется, иначе я бы здесь не спрашивал.

Есть ли способ это сделать или мне придется копировать, вставлять и вносить необходимые изменения?

решение1

Для списков я бы рекомендовал вам использовать пакет enumitemи newlistвстроенные в него возможности.

введите описание изображения здесь

Если у вас много таких, вы можете использовать

\newcommand{\DefineNewList}[3]{%
    % #1 = name
    % #2 = max depth
    % #3 = label
    \newlist{#1}{enumerate}{#2}
    \setlist[#1]{label*=#3}
}%

но я не вижу в этом большой ценности.

Код:

\documentclass{article}
\usepackage{enumitem}

\newlist{enumOne}{enumerate}{2}
\setlist[enumOne]{label*=\arabic*.}

\newlist{enumA}{enumerate}{2}
\setlist[enumA]{label*=\alph*.}

\begin{document} 

\begin{enumOne}
    \item First item in enumOne
    \item Second item in enumOne
\end{enumOne}

\begin{enumA}
    \item First item in enumA
    \item Second item in enumA
\end{enumA}

\end{document} 

Код Repeated Usage:

\documentclass{article}
\usepackage{enumitem}

\newcommand{\DefineNewList}[3]{%
    % #1 = name
    % #2 = max depth
    % #3 = label
    \newlist{#1}{enumerate}{#2}
    \setlist[#1]{label*=#3}
}%

\DefineNewList{enumOne}{2}{\arabic*.}
\DefineNewList{enumA}{2}{\alph*.}

\begin{document} 

\begin{enumOne}
    \item First item in enumOne
    \item Second item in enumOne
\end{enumOne}

\begin{enumA}
    \item First item in enumA
    \item Second item in enumA
\end{enumA}

\end{document} 

решение2

\documentclass{article}
\usepackage{enumerate}
\newcommand\newEnum[1]{%
  \newenvironment{enum#1}{\enumerate[#1.]}{\endenumerate}}
\newEnum{1}
\newEnum{a}
\begin{document}

\begin{enumerate}
\item foo
\item bar
\end{enumerate}

\begin{enum1}
\item foo
\item bar
\end{enum1}

\begin{enuma}
\item foo
\item bar
\end{enuma}

\end{document}

Однако использование пакета enumitemимеет несколько больше возможностей.

Связанный контент