Hallo!
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}}
Kurz erklärt: Zuerst wird die implementation von \thechapter gespeichert. Dann wird, in der neuen Umgebung, die momentane Chapternummer in einen Counter gespeichert, und die implementation von \thechapter auf gar nichts gesetzt. Damit sind die Nummern weg.
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.]
Problem: LaTeX kennt angeblich das Kommando \ifundefined nicht (undefined control sequence). Was kann ich nun machen? Habt ihr Ideen?