%20%5Calltt%EC%97%90%20%EC%9D%98%ED%95%9C%20%EA%B3%B5%EB%B0%B1%20%EC%B2%98%EB%A6%AC%EA%B0%80%20%EB%B3%80%EA%B2%BD%EB%90%98%EC%97%88%EB%82%98%EC%9A%94%3F.png)
새 컴퓨터로 이동한 후(그리고 현재(2024) texlive 시스템을 설치한 후) 내 문서의 레이아웃이 여러 곳에서 엉망이 된 것을 발견했습니다. 몇 가지 실험을 거친 후 이는 alltt 환경에서 공백을 처리하기 때문이라는 것이 밝혀졌습니다. 더 정확하게:
- 탭은 분명히 공백으로 바뀌었고 이전에는 무시되었습니다.
- \end{alltt} 앞에 공백이 있으면 코드와 다음 텍스트 사이에 빈 줄이 추가됩니다.
예로서:
\begin{alltt}
[tab][tab] line 1
[tab] line 2
\end{alltt}
More text
이전에 결과
line1
line2
More text
하지만 지금은 나에게
line1
line2
More text
왜, 언제 이런 변화가 일어났는지 알아내려고 노력했지만, 버전 기록이나 유사한 내용을 찾을 수 없었습니다.
제가 이것을 묻는 이유 중 하나는 texlive 설치를 업데이트할 때마다 이런 일이 발생할 수 있는지 궁금하기 때문입니다. 나는 (적어도 기본 명령에 대해서는) 코드가 안정적이거나 적어도 이전 버전에서 작동했던 문서의 출력을 변경하지 않을 만큼 충분히 안정적이라고 생각하곤 했습니다.
답변1
환경 alltt
은 항상 줄 시작 부분의 공백을 존중해야 했지만 2023년까지는 이를 존중하지 않았습니다.탭.
이 문제는 2023 릴리스에서 수정되어 탭이 공백처럼 작동하게 되었습니다.
예전의 행동으로 돌아갈 수 있지만 이는 의식적인 결정이어야 합니다.
\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}
참고: 첫 번째 줄에는 두 개의 초기 탭이 있어야 하고 두 번째 줄에는 단일 초기 탭이 있어야 합니다(여기서는 여러 개의 공백으로 표시됩니다).
\end{alltt}
추가 줄이 생기기 때문에 앞에 이중 공백을 제거했습니다 . 출력에서 들여쓰기를 정말로 원하지 않는 한, 환경을 그대로 들여쓰지 마십시오.
답변2
2023년 가을 이전에는 축어와 유사한 컨텍스트의 탭이 기본 동작(일반 공백으로 변환)으로 남아 있었습니다. 줄의 시작 부분에서 이는 해당 항목이 무시되었음을 의미합니다. 2023년 가을 릴리스부터 탭은 축어와 유사한 설정으로 명시적으로 처리되므로 공백과 동일한 방식으로 제어할 수 있습니다. 이제 표준 동작은 공간의 동작을 따릅니다. 즉, 보존되므로 변경됩니다.