%3F.png)
depois de mudar para um novo computador (e instalar um sistema texlive atual (2024), percebi que o layout do meu documento estava bagunçado em vários lugares. Depois de algumas experiências, descobriu-se que isso se devia ao tratamento dos espaços em branco pelo ambiente alltt. Mais precisamente:
- aparentemente as guias são transformadas em espaços, antes eram ignoradas.
- se houver espaços antes de \end{alltt}, uma linha extra em branco será adicionada entre o código e o texto seguinte.
Como um exemplo:
\begin{alltt}
[tab][tab] line 1
[tab] line 2
\end{alltt}
More text
anteriormente resultou em
line1
line2
More text
mas agora isso me dá
line1
line2
More text
Tentei descobrir por que e quando essa mudança aconteceu, mas não consegui encontrar nenhum histórico de versão ou algo semelhante.
Uma razão pela qual estou perguntando isso é porque estou me perguntando se isso pode acontecer sempre que eu atualizar minha instalação do texlive. Eu costumava pensar que (pelo menos para os comandos básicos) o código era estável, ou pelo menos estável o suficiente para não alterar a saída dos documentos que funcionavam com a versão anterior.
Responder1
O alltt
ambiente sempre foi suposto prestigiar espaços no início das linhas, mas até 2023 não prestou homenagemguias.
Isso foi corrigido na versão 2023, fazendo com que as guias se comportassem como espaços.
Você pode recuperar o antigo comportamento, mas esta deve ser uma decisão consciente.
\documentclass{article}
\usepackage{alltt}
\usepackage{showframe}
\makeatletter
\AddToHook{env/alltt/begin}{\let\@xobeytab\relax}
\makeatother
\begin{document}
\begin{alltt}
line 1
line 2
line 3
line 4
\end{alltt}
More text
\end{document}
Nota: a primeira linha deve ter duas tabulações iniciais e a segunda uma única tabulação inicial (aqui elas aparecerão como múltiplos espaços).
Removi o espaço duplo antes \end{alltt}
, porque resulta em uma linha adicional. Nunca recue ambientes literalmente, a menos que você realmente queira recuo na saída.
Responder2
Antes do outono de 2023, as guias em contextos literais permaneciam com seu comportamento padrão: convertidas em espaços normais. No início de uma linha, isso significava que eles foram ignorados. Desde o lançamento do outono de 2023, as tabulações são explicitamente tratadas por configurações semelhantes às literais, permitindo que sejam controladas da mesma forma que os espaços. O comportamento padrão agora segue o dos espaços: eles são preservados, daí a mudança.