Ich möchte mit dem Paket listings und dem Befehl \lstinline eine Codezeile farbig hinterlegen. Das Beispiel fand ich hier:

Der Beispielcode lautet

Open in Online-Editor
\colorbox{blue}{\lstinline[basicstyle=\ttfamily\color{white}]|<List>|}

und ergibt ein blau hinterlegtes . Wenn ich jedoch einen Befehl der mit backslash beginnt

Open in Online-Editor
\colorbox{blue}{\lstinline[basicstyle=\ttfamily\color{white}]| \node |}

so darstellen will, erhalte ich eine Fehlermeldung: ! Improper alphabetic constant.

gefragt 16 Mai '15, 03:11

butts's gravatar image

butts
64921435
Akzeptiert: 72%

bearbeitet 13 Sep '15, 02:47

saputello's gravatar image

saputello
18.4k22352

1

Könntest Du bitte ein Minimalbeispiel einfügen? Also ein möglichst kurzes, aber komplettes Dokument, von \documentclass{...} bis zu \end{document}, was das Problem zeigt. Das vereinfacht die Bearbeitung erheblich und ist meist eine Garantie für eine Lösung. Und kann es wirklich sein, dass jemand mit 27 Fragen, der seit 1½ Jahren dabei ist, noch explizit darum gebeten werden muss?

(16 Mai '15, 05:02) saputello

Warum es nicht funktioniert

\lstinline ist eine Anweisung ähnlich \verb oder \url, die eine spezielle Verarbeitung des Arguments benötigt. Dazu muss die Anweisung u. a. die \catcode-Einstellungen diverser Zeichen ändern. Nur so ist es möglich, dass alle Token mit der korrekten Kategorie erstellt werden und beispielsweise \ nicht als Anfang einer Anweisung interpretiert wird.

Wird eine solche Anweisung innerhalb des Arguments einer anderen Anweisung verwendet, so werden die Token bereits beim Lesen des Arguments der äußeren Anweisung gebildet. Spätere Änderungen der \catcode-Einstellungen haben dann keinen Einfluss mehr. Daher funktioniert etwas wie \lstinline innerhalb einer Anweisung wie \colorbox nur so lange, solange im Argument von \lstinline und damit im Argument von \colorbox keine Zeichen verwendet werden, die für \lstinline einer speziellen Behandlung bedürfen.

Ganz ähnlich ist es übrigens mit der Umgebung lstlisting und Umgebungen, die darauf basieren. Deshalb bietet das Paket listings auch eine eigene Anweisung, um solche Umgebungen definieren zu können. Näheres ist der Anleitung zum Paket zu entnehmen.

Permanenter link

beantwortet 16 Mai '15, 05:19

saputello's gravatar image

saputello
18.4k22352

bearbeitet 16 Mai '15, 05:23

Was ist denn ein TOKEN ? Wie heißt denn die Anweisung, mit der die Umgebungen von listings definiert werden können ?

(16 Mai '15, 06:02) butts

@butt: Ein Token ist die kleinste Verarbeitungseinheit, also beispielsweise ein Zeichen einer bestimmten Kategorie. Näheres zu Zeichenkategorien ist beispielsweise »Was machen eigentlich \makeatletter und \makeatother?« zu entnehmen. Sollte man übrigens als TeX-Anwender wissen, weil man sonst die Funktion von Token-Registern nicht verstehen kann.

(14 Sep '15, 05:16) saputello

In der Doku zu listings findet sich im Abschnitt 5.1 listings inside arguments folgender Hinweis:

You have to put a backslash in front of each of the following four characters: \ { } %

Wenn ich also vor \node noch einen weitere backslash setze, dann funktioniert es.

Open in Online-Editor
\documentclass{scrreprt}
\usepackage{listings}
\usepackage{xcolor}
\begin{document}
\colorbox{blue!25}{\lstinline[basicstyle=\ttfamily\color{white}]|\\node |} 
\end{document}
Permanenter link

beantwortet 16 Mai '15, 06:16

butts's gravatar image

butts
64921435

bearbeitet 12 Sep '15, 16:16

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×15

Frage gestellt: 16 Mai '15, 03:11

Frage wurde angeschaut: 1,902 Mal

Zuletzt aktualisiert: 14 Sep '15, 05:16