Definieren neuer Umgebungen mit einem Befehl

Definieren neuer Umgebungen mit einem Befehl

Ich könnte etwa Folgendes tun:

Stattdessen habe ich Folgendes, wo ich denselben Code viele, viele Male wiederhole:

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

Ich würde es gerne etwas „automatisieren“, zB:

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

Natürlich lässt sich das nicht kompilieren, sonst würde ich hier nicht fragen.

Gibt es eine Möglichkeit, dies zu tun, oder muss ich kopieren und einfügen und die erforderlichen Änderungen vornehmen?

Antwort1

Für Listen empfehle ich Ihnen, das enumitemPaket und die newlistintegrierte Funktion zu verwenden.

Bildbeschreibung hier eingeben

Wenn Sie viele davon haben, könnten Sie verwenden

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

aber ich sehe darin keinen großen Wert.

Code:

\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} 

Code 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} 

Antwort2

\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}

Die Verwendung des Pakets bietet jedoch enumitemnoch weitere Möglichkeiten.

verwandte Informationen