Anforderungen mit LaTeX nummerieren

Ich schreibe gerade an meiner Diplomarbeit und benutze natürlich LaTeX. Ich habe für mein Projekt Anforderungen definiert, die ich im Text erläutern möchte. Später bei der Bewertung möchte ich auf die Anforderungen verweisen und überprüfen, ob sie erfüllt sind. Anforderungen werden über mehrere Unterkapitel häppchenweise definiert. Später im Stil in Anforderung 2 im Kapitel 4.5.1 wurde definiert zu referenzieren wäre ziemlich lame und unelegant. Ich hätte die Anforderungen gerne alle kapitelübergreifend durchnummeriert. Mein erster Ansatz waren Nummerierungen in der Itemize-Umgebung. Ein neues Itemize müsste dann dort anfangen, wo das vorherige aufgehört hat. Beim Hinzufügen oder Entfernen von Punkten müsste man aber trotzdem wieder alles anpassen.

Dann stieß ich auf Counter. Schnell einen Counter für Anforderungen definiert:

\newcounter{anforderung}

Und ein Kommando um eine Anforderungsnummer zu erzeugen.

\newcommand{\anf}[0]{
    \refstepcounter{anforderung}
    (A\arabic{anforderung})
    \label{anf:\arabic{anforderung}}
}

Hier wird der Anforderungszähler um 1 erhöht und (A{Anforderungsnummer}) ausgegeben. Außerdem wird ein Label “anf:{Anforderungsnummer}” erstellt.

Das folgende Beispiel zeigt, wie man dieses Kommando jetzt benutzen kann:

\begin{itemize}
    \item[\anf] Eine coole Oberfläche ist Pflicht
\end{itemize}

In Anforderung \ref{anf:1} wurde definiert, dass eine coole Oberfläche sein muss.

Nachteil an dieser Lösung ist, dass man bei der Referenzierung immer noch wissen muss, auf welche Nummer man sich bezieht. Diese können sich natürlich im Laufe der Zeit noch verändern. Also gibt es dieses Kommando, um das Label fest zu definieren:

\newcommand{\anfl}[1]{
    \refstepcounter{anforderung}
    (A\arabic{anforderung})
    \label{anf:#1}
}

Das Beispiel sieht gleich viel besser aus:

\begin{itemize}
    \item[\anfl{oberflaeche}] Eine coole Oberfläche ist Pflicht
\end{itemize}

In Anforderung \ref{anf:oberflaeche} wurde definiert, dass eine coole Oberfläche sein muss.

Fertig gesetzt erscheint der Text dann so:

    (A1) Eine coole Oberfläche ist Pflicht

In Anforderung 1 wurde definiert, dass eine coole Oberfläche sein muss.

LaTeX ist toll <3.