Verbatim-Code in Überschriften

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


chris

Verbatim-Code in Überschriften

Beitrag von chris »

Hallo,
in einer meiner Überschriften kommt der Backslash als Zeichen vor. Den kann man meines Wissens nur mit \verb=\= oder ähnlichen Verbatimbefehlen setzen. Wenn ich aber eine \section{... \verb=\= ...} einfüge, erhalte ich Fehler und auch keine gewünschte Ausgabe. Eine Verbatimumgebung darf also nicht in einem Argument vorkommen. Kennt jemand Möglichkeiten, wie ich so etwas bewerkstelligen kann?

chris

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2500
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Backslash

Beitrag von Stefan Kottwitz »

Hallo Chris,

verwende \textbackslash.

Viele Grüße,

Stefan

chris

vielen dank

Beitrag von chris »

danke, das klappt.

nochmal allgemein:
kann man irgendeine art von verbatim als argument verwenden, oder ist das grundsätzlich ausgeschlossen? ich hatte mal versucht ein \newcommand mit argument, das dann innerhalb einer verbatim umgebung übergeben wurde zu definieren, allerdings ohne erfolg. Ich habe dann eine umständlichere Lösung gefunden, aber grundsätzlich würde mich das interessieren.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Grundsätzlich ist es so, dass es so etwas wie "Zeichen" für TeX nicht gibt, es gibt nur Token. Ein Token besteht aus einem Zeichen :wink: und einer Zeichenklasse. Die Zeichenklasse wird bereits beim Einlesen des aufgrund des \catcode festgelegt und ist danach unveränderbar. Besitzt eine Anweisung (bzw. ein Makro) ein Argument, so wird das Argument mit den \catcode-Einstellungen gelesen, die vor der Abarbeitung der Anweisung gelten. Anweisungen wie \verb funktionieren so, dass sie eigentlich erst einmal kein Argument besitzen, sondern erst die \catcode-Einstellungen ändern und dann eine weitere Anweisung aufrufen, die das Argument einliest und später auch die \catcode-Einstellungen restauriert. Wird nun aber eine Anweisung wie \verb innerhalb eines anderen Argumente verwendet, dann hat man genau das Problem, dass das Argument von \verb bereits als Argument der anderen Anweisung gelesen und damit die Zeichenklassen festgelegt sind.

Nachdem ich nun also das Problem erklärt habe, dürfte die Antwort eigentlich klar sein. Nun gibt es verschiedene Tricks, um das Problem ein wenig zu entschärften. Das grundsätzliche Problem bleibt aber erhalten, so dass die Antwort weiterhin bleibt: Anweisungen wie \verb, die darauf angewiesen sind, die Standard-\catcode-Einstellungen nicht anzuwenden, sind in den Argumenten anderer Anweisungen problematisch und funktionieren nur im Einzelfall.

chris

thx

Beitrag von chris »

vielen dank für die ausführliche antwort

JoKo

Beitrag von JoKo »

Hallo miteinander,
bitte entschuldigt, dass ich diesen alten Thread nochmal ausgrabe, aber leider bin ich nicht sooo tief in der Materie drin, dass ich die ausführungen von KOMA verstanden habe.

Normalerweise vertiefe ich mich gerne in das Thema, nur aktuell sitzt mir ein Abgabetermin für meine Semesterarbeit im Nacken, daher kurz und schmerzlos:

Ich möchte eine Überschrift namens:
"Probleme bei der Ausführung der show()-Methode"

wobei "show()" quasi als \verb|show()| dargestellt werden soll, was ja, wie wir wissen, so nicht geht.

Kenn jemand einen Kniff, wie ich das hinkriege, evtl. mit einem kleinen Code-Schnipsel?

Danke,
Johannes

JoKo

Problem gelöst

Beitrag von JoKo »

Einmal genau hinschauen bei TexnicCenter, und schon ist das Problem garkeins mehr...
\section{Probleme bei der Ausführung der \texttt{show()}-Methode}
Für den \texttt-Tag gibts sogar nen Button, der mit dem "T" drauf...

MfG
Jo

Antworten