
Ich möchte Listings verwenden, um Bash-Befehle so zu formatieren, dass zu lange Zeilen automatisch mit einem Backslash umbrochen werden. Ich kenne die prebreak
Option, aber es scheint unmöglich zu sein, einen wörtlichen Backslash an zu übergeben prebreak
.
Ich habe gelernt vondiese Antwortdass ich mit Backslashes angeben könnte \textbackslash
, die Verwendung jedoch die folgende Warnmeldung erzeugt:
LaTeX Font Warning: Font shape `OMS/cmtt/m/n' undefined
(Font) using `OMS/cmsy/m/n' instead for symbol `textbackslash' on input line 8.
Dies ermöglicht zwar immer noch die Dokumentkompilierung, es sieht jedoch so aus, als würde die \textbackslash
Formatierung gemäß der basicstyle
Option irgendwie vermieden. Wie im folgenden Beispiel zu sehen ist, ist Listings durchaus in der Lage, manuell eingegebene Backslashs korrekt zu formatieren.
Ist es möglich, lange Zeilen in Listen automatisch durch einen korrekt formatierten Backslash zu unterbrechen?
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\begin{document}
% Automatic line break
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,breakatwhitespace,prebreak={\textbackslash}]
long string of text to test line breaking for the listings package
\end{lstlisting}
% Manual line break
\begin{lstlisting}[basicstyle=\ttfamily,breaklines,breakatwhitespace]
long string of text to test line breaking for the \
listings package
\end{lstlisting}
\end{document}
Antwort1
Ich habe zwei Antworten auf meine Frage gefunden, die beide eine korrekte Formatierung von Backslashes für den automatischen Zeilenumbruch bei Auflistungen ermöglichen:
CampasAnregungDas Hinzufügen
\usepackage[T1]{fontenc}
zur Präambel behebt das Stilproblem, wenn\textbackslash
für die Option verwendet wirdprebreak
.Eine alternative Lösung wurde indie Frageauf die ich in meiner eigenen Frage verwiesen hatte. Obwohl diese Frage das Return-Symbol betraf, enthält der von ihnen bereitgestellte Beispielcode eine andere Methode zum Angeben von Backslashs mit
\char`\\
. Es stellt sich heraus, dass das Festlegenprebreak
mit\char`\\
zu einem korrekt formatierten Backslash führt, ohne dass verwendet werden muss\usepackage[T1]{fontenc}
.
Es war sehr hilfreich, etwas über zu erfahren \char
, da ich davon ausgehe, dass es in Zukunft notwendig sein könnte, Sonderzeichen an Optionen zu übergeben. Für diese spezielle Situation und für das Schreiben mit LaTeX im Allgemeinen werde ich jedoch wohl bei der Verwendung von bleiben, \usepackage[T1]{fontenc}
da die in beschriebenen Vorteilediese Antwort.