Linhas obrigatórias de listagens em locais predefinidos

Linhas obrigatórias de listagens em locais predefinidos

As linhas de código que escrevo em uma listagem às vezes são muito longas. Portanto, no final ocorre uma quebra de linha. Mas às vezes essas quebras não são bem escolhidas e podem tornar o código muito mais ilegível.

Existe uma maneira depredefiniros lugares ondeuma pausadeveria aparecerse for necessário?

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

Neste caso a quebra de linha ocorre após “break”. Seria ótimo definir o intervalo após "listagem", por exemplo. Ou talvez um segundo depois de "bonito" se houver espaço suficiente (talvez depois de alterar algumas configurações do documento como bordas ou formato). Nesse caso, o primeiro deve ser ignorado.

Responder1

  • Talvez eu tenha entendido mal a sua pergunta, "às vezes essas pausas não são bem escolhidas" não faz muito sentido para um material de listagem típico.
  • O conteúdo de uma listagem é tratado verbatim(também conhecido como: literalmente, como é).
  • Portanto, você pode adicionar quebras de linha manuais onde quiser.
  • Além disso, o listingspacote oferece quebras de linha automáticas (você habilitou). Marquei a quebra automática de linha com um $\hookrightarrow$recuo padrão.
  • além disso, você pode alterar a linewidthopção (não mostrada).

BTW: não sei por que preciso usar \mboxin \mbox{{$\hookrightarrow$}\space}. Além disso, ~em vez de \spacecausar um erro.


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

insira a descrição da imagem aqui

informação relacionada