¿Ha cambiado recientemente el manejo de los espacios en blanco por parte de \alltt (es decir, desde 2021)?

¿Ha cambiado recientemente el manejo de los espacios en blanco por parte de \alltt (es decir, desde 2021)?

Después de cambiarme a una computadora nueva (e instalar un sistema texlive actual (2024), noté que el diseño de mi documento estaba desordenado en varios lugares. Después de experimentar un poco, resultó que esto se debía al manejo de los espacios en blanco por parte del entorno alltt. Más precisamente:

  • Las pestañas aparentemente se convierten en espacios, antes se ignoraban.
  • si hay espacios antes de \end{alltt}, se agrega una línea en blanco adicional entre el código y el siguiente texto.

Como ejemplo:

 \begin{alltt}
[tab][tab] line 1
[tab] line 2
  \end{alltt}
More text

previamente resultó en

line1
line2
More text

pero ahora me da

  line1
 line2

More text

Intenté averiguar por qué y cuándo ocurrió este cambio, pero no pude encontrar ningún historial de versiones ni nada similar.

Una de las razones por las que pregunto esto es porque me pregunto si esto puede suceder cada vez que actualice mi instalación de texlive. Solía ​​pensar que (al menos para los comandos básicos) el código era estable, o al menos lo suficientemente estable como para no cambiar la salida de los documentos que funcionaban con la versión anterior.

Respuesta1

Siempre se suponía que el allttentorno debía honrar los espacios al comienzo de las líneas, pero hasta 2023 no lo hizo.pestañas.

Esto se solucionó en la versión 2023, lo que hizo que las pestañas se comportaran como espacios.

Puedes recuperar el antiguo comportamiento, pero esto debe ser una decisión 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: la primera línea debe tener dos pestañas iniciales y la segunda una única pestaña inicial (aquí aparecerán como múltiples espacios).

Eliminé el doble espacio antes \end{alltt}porque da como resultado una línea adicional. Nunca aplique sangría a entornos textuales, a menos que realmente desee aplicar sangría en la salida.

ingrese la descripción de la imagen aquí

Respuesta2

Antes del otoño de 2023, las pestañas en contextos textuales conservaban su comportamiento predeterminado: convertidas a espacios normales. Al comienzo de una línea, esto significaba que eran ignorados. Desde la versión de otoño de 2023, las pestañas se manejan explícitamente mediante configuraciones similares a las textuales, lo que permite controlarlas de la misma manera que los espacios. El comportamiento estándar ahora sigue el de los espacios: se conservan, de ahí el cambio.

información relacionada