Welche Umgebungen können bei newcommand benutzt werden?

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: Welche Umgebungen können bei newcommand benutzt werden?

von jago » Mi 8. Feb 2017, 09:49

Sorry für meine späte Reaktion.

Die Antworten haben mir auf jeden Fall weiter geholfen. Danke dafür.
Dabei belass ich es erstmal ;)

Liebe Grüße,
Jago

von Gast » Mo 23. Jan 2017, 16:55

Mit Hilfe von verbatim und ähnlichen Paketen kann man eigene Umgebungen definieren, die auf der verbatim-Umgebung basieren. Näheres ist der jeweiligen Paketanleitung zu entnehmen.

Für einen Befehl müsste man dagegen einen von \verb abgeleiteten Befehl definieren. Das ist aber nicht trivial. Solange der Code des Befehls nur zusätzlichen Code vor \verb ausführen soll, ist es kein Problem. Dann darf der neue Befehl das Argument nur nicht selbst anfassen:
\documentclass{article}
\newcommand*{\myverb}{Jetzt kommt ein Befehl: \verb}
\begin{document}
\myverb|\document|
\end{document}
Hier ist also \myverb erst einmal ein Befehl ohne Argument und erst das \verb am Ende von \myverb verarbeitet das Argument (bzw. ein davon aufgerufenes Makro).

Für einen Befehl, der danach noch etwas ausführen soll, geht das nicht so einfach. Da müsste man sich schon intensiv mit der Definition aus dem LaTeX-Kern befassen.

Da ich nicht weiß, was du tatsächlich vor hast, weiß ich leider auch nicht, ob dir das weiter hilft.

von jago » Mo 23. Jan 2017, 14:55

Ok vielen Dank auf jeden Fall für deine Antwort.

Gibt es vielleicht einen einfachen Weg das Problem zu umgehen?

Viele Grüße,
Jago

von Gast » Fr 20. Jan 2017, 15:46

verbatim und ähnliche Umgebungen und Befehle arbeiten mit catcode-Änderungen. Ein catcode gibt grob gesagt an, wie ein Zeichen der Eingabe zu behandeln ist, beispielsweise ob es einen Befehl einleitet oder ein Buchstabe ist oder eine Ziffer oder ein Leerzeichen oder sogar zu ignorieren usw.

Eine catcode-Änderung hat also direkte Auswirkungen darauf, wie ein Zeichen beim Einlesen verarbeitet wird. Bei \dummy{foo} wird foo bereits von \dummy eingelesen. Damit stehen die catcodes der Zeichen bereits fest, bevor sie in die Umgebung verbatim gestellt werden. Die catcode-Änderungen der Umgebung haben also keine Wirkung mehr darauf.

Das betrifft alle Umgebungen und Befehle, die mit catcode-Änderungen arbeiten.

Welche Umgebungen können bei newcommand benutzt werden?

von jago » Fr 20. Jan 2017, 15:31

Hallo zusammen,

wer kann mir sagen warum das erste Beispiel kompiliert wie erwartet, aber das zweite gar nicht?

Viele Grüße,
Jago
\documentclass{article}
\newcommand{\dummy}[1]{#1}
\begin{document}
\dummy{
\begin{center}
halloWelt
\end{center}
}
\end{document}
\documentclass{article}
\newcommand{\dummy}[1]{#1}
\begin{document}
\dummy{
\begin{verbatim}
halloWelt
\end{verbatim}
}
\end{document}

Nach oben