Auflistung von Bruchkanten an vordefinierten Stellen

Auflistung von Bruchkanten an vordefinierten Stellen

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 listingsbietet 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 linewidthoptional (nicht dargestellt) dies ändern.

Übrigens: Ich weiß nicht, warum ich \mboxin verwenden muss \mbox{{$\hookrightarrow$}\space}. Auch ~anstelle von \spacehat 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}

Bildbeschreibung hier eingeben

verwandte Informationen