Die Codezeilen, die ich in einem Lstlisting schreibe, sind manchmal zu lang. Deshalb kommt am Ende ein Zeilenumbruch. Manchmal sind diese Umbrüche aber nicht gut gewählt und können den Code deutlich unleserlicher machen.
Gibt es eine Möglichkeit,vordefinierendie Orte, an deneneine Pausesollte erscheinenwenn es notwendig ist?
Mein Dokument:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{listings}
\lstdefinestyle{General} {
basicstyle=\small\ttfamily,
breaklines=true
}
\lstset{style=General}
\begin{document}
\begin{lstlisting}
This is a very long listing which eventually needs a break at the end of this beautiful line.
\end{lstlisting}
\end{document}
In diesem Fall erfolgt der Zeilenumbruch nach „break“. Es wäre toll, den Umbruch beispielsweise nach „listing“ zu definieren. Oder vielleicht einen zweiten nach „beautiful“, wenn genügend Platz vorhanden ist (vielleicht nach dem Ändern einiger Dokumenteinstellungen wie Ränder oder Format). In diesem Fall sollte der erste ignoriert werden.
Antwort1
- Vielleicht verstehe ich Ihre Frage falsch, „manchmal sind diese Unterbrechungen nicht gut gewählt“ macht bei typischem Listing-Material nicht viel Sinn.
- Der Inhalt einer Auflistung wird behandelt
verbatim
(also buchstäblich, so wie er ist). - Daher können Sie manuelle Zeilenumbrüche hinzufügen, wo immer Sie möchten.
- Außerdem
listings
bietet das Paket automatische Zeilenumbrüche (Sie haben diese aktiviert). Ich habe den automatischen Zeilenumbruch mit einem$\hookrightarrow$
zusätzlichen Standardeinzug markiert. - darüber hinaus können Sie
linewidth
optional (nicht dargestellt) dies ändern.
Übrigens: Ich weiß nicht, warum ich
\mbox
in verwenden muss\mbox{{$\hookrightarrow$}\space}
. Auch~
anstelle von\space
hat einen Fehler verursacht.
\documentclass{book}
\usepackage{listings}
\lstdefinestyle{myListingStyle}
{
basicstyle = \small\ttfamily,
breaklines = true,
postbreak = \mbox{{$\hookrightarrow$}\space} % See https://tex.stackexchange.com/questions/116534 for example
}
\begin{document}
\begin{lstlisting}[
style = myListingStyle,
caption = {Natural/Automatic line break.}
]
This is a very long listing which eventually needs a break at the end of this beautiful line.
\end{lstlisting}
\begin{lstlisting}[
style = myListingStyle,
caption = {Manual line break.}
]
This is a very long listing which eventually
needs a break at the end of this beautiful line.
\end{lstlisting}
\end{document}