Ich habe mich mal an ein erstes "Programmierungsbeispiel" zu \LaTeX rangesetzt. Ich möchte die Nummern, welche vor jeder \chapter stehen, bei bestimmten überschriften entfernen. Dazu habe ich folgende Umgebung implementiert:
\let\defaultthechapter=\thechapter \newenvironment{nochapternumber}{\newcounter{beforechap} \setcounter{beforechap}{\value{chapter}} \renewcommand{\thechapter}{}} {\setcounter{chapter}{\value{beforechap}} \renewcommand{\thechapter}{\defaultthechapter}}
In der Umgebung schreibt der Nutzer dann selbst seine \chapter. Ob ich das mit ins Kommando einarbeite, überlege ich noch. Am Ende der Umgebung wird der Counter für das Chapter auf den vorhergehenden Wert gesetzt und \thechapter wiederhergestellt.
Das Problem: Die Umgebung kann man auf diese Art und Weise nur einmal je Dokument benutzen, da der Counter "beforechap" dann natürlich schon definiert ist. Also möchte ich eine If-Abfrage verwenden, um zu prüfen, ob der Counter nicht schon definiert ist:
\newenvironment{nochapternumber}{\ifundefined{beforechap}\newcounter{beforechap}\fi\setcounter{beforechap}{\value{chapter}} [usw.]