
Я мог бы сделать что-то вроде следующего:
Вместо того, чтобы сделать следующее, где я повторяю один и тот же код много-много раз:
\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
имеет несколько больше возможностей.