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
listings
pacote 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
linewidth
opção (não mostrada).
BTW: não sei por que preciso usar
\mbox
in\mbox{{$\hookrightarrow$}\space}
. Além disso,~
em vez de\space
causar 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}