Líneas de ruptura de listados en lugares predefinidos

Líneas de ruptura de listados en lugares predefinidos

Las líneas de código que escribo dentro de una lista a veces son demasiado largas. Entonces al final se produce un salto de línea. Pero a veces estos descansos no están bien elegidos y pueden hacer que el código sea mucho más ilegible.

¿Hay alguna manera depredefinirlos lugares dondeun descansodebería aparecersi es necesario?

Mi documento:

\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}

En este caso el salto de línea se produce después del "salto". Sería fantástico definir la pausa después de "listar", por ejemplo. O tal vez un segundo después de "hermoso" si hay suficiente espacio (tal vez después de cambiar algunas configuraciones del documento como bordes o formato). En ese caso, se debe ignorar el primero.

Respuesta1

  • Tal vez no entendí bien su pregunta: "a veces estos descansos no se eligen bien" no tiene mucho sentido para el material de listado típico.
  • El contenido de un listado se trata verbatim(también conocido como: literalmente, tal como es).
  • Por lo tanto, puedes agregar saltos de línea manuales donde quieras.
  • Además, el listingspaquete ofrece saltos de línea automáticos (usted lo habilitó). Marqué el salto de línea automático con $\hookrightarrow$además la sangría predeterminada.
  • Además, puede cambiarlo linewidthcomo opción (no se muestra).

Por cierto: no sé por qué necesito usarlo \mboxen \mbox{{$\hookrightarrow$}\space}. Además, ~en lugar de \spaceprovocar un error.


\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}

ingrese la descripción de la imagen aquí

información relacionada