eigene Befehle in eigenen Umgebungen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: eigene Befehle in eigenen Umgebungen

von schmendrich » Mo 23. Mär 2009, 08:45

Toll,

vielen Dank, es funktioniert wunderbar.

Schmendrich

Re: eigene Befehle in eigenen Umgebungen

von sommerfee » Mo 23. Mär 2009, 08:16

schmendrich hat geschrieben:
\newcommand*\teilnehmer[1]{\renewcommand*\teilnehmerliste{#1}}
Bei Definitionen innerhalb von Definitionen muß der # ggf. verdoppelt werden, also:
\newcommand*\teilnehmer[1]{\renewcommand*\teilnehmerliste{##1}}
Gruß,
Axel

eigene Befehle in eigenen Umgebungen

von schmendrich » So 22. Mär 2009, 11:50

Hallo zusammen,

ich benötige einen Denkanstoß.

Ich habe mir für Vorlagen eine Umgebung definiert:
\newenvironment{protokoll}[3]
{
%alle möglichen Definitionen
}
Es gibt also eine Umgebung, die drei Parameter erwartet.
Bis hierhin funktioniert alles gut.
Nun gibt es noch einen neuen Befehl (danke Phi):
\newcommand*\teilnehmerliste{} 
\newcommand*\teilnehmer[1]{\renewcommand*\teilnehmerliste{#1}} 
Auch dieser Befehl funktioniert.

Nun zu meinem Problemchen: Ich möchte den Befehl auf die Umgebung Protokoll beschränken. Deshalb habe ich ihn zwischen die Klammern der eigentlichen Umgebungsdefinition geschrieben:
\newenvironment{protokoll}[3]
{
\newcommand*\teilnehmerliste{} 
\newcommand*\teilnehmer[1]{\renewcommand*\teilnehmerliste{#1}}
%alle möglichen weiteren Definitionen
}
Rufe ich jetzt \teilnehmerliste auf, wird mir an der Stelle im Dokument nicht #1 von \teilnehmer angezeigt, sondern #1 (der erste übergebene Parameter) der Protokollumgebung.

Wie gesagt, ist der Befehl global definiert, funktioniert er, nur in der Beschränkung auf die Protokollumgebung klappt es nicht.
Ein Einfügen der Befehlsdefinition zwischen die Klammern der Umgebungsdefinition scheint nicht auszureichen. Was muss man weiter beachten?

Danke
schmendrich

Nach oben