
정상적으로 컴파일된 다음과 같은 문서가 있습니다.
\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx}
\newenvironment{myenv}
{\tabularx{\columnwidth}{X}\toprule}
{\bottomrule\endtabularx}
\begin{document}
\begin{myenv}
Foo\\
\end{myenv}
\end{document}
가 필요 \usepackage[italian]{babel}
하지만 그렇게 하고 컴파일하면 다음 오류가 발생합니다.
! Misplaced \noalign.
\bottomrule ->\noalign
{\ifnum 0=`}\fi \@aboverulesep =\aboverulesep \global...
l.16 \end{myenv}
PDF 출력에서 테이블에는 두 \bottomorule
개의 가 있는데, 첫 번째는 테이블과 정렬되고 두 번째는 왼쪽으로 이동됩니다.
이 문제를 어떻게 해결할 수 있나요?
업데이트:이 오류는 babel이 이탈리아어로 사용되는 경우에만 발생하며, 제가 시도한 다른 모든 언어는 잘 작동합니다.
답변1
문제는 etoolbox
이탈리아어로 로드되는 것입니다. 최종 환경 코드에 후크를 삽입하는데 tabularx는 이를 좋아하지 않습니다.
작동한다고 호출하여 사용할 수 있는 개발 버전의 라텍스를 사용하면 pdflatex-dev
후크 코드가 더욱 강력해집니다.
또는 xparse의 b 인수를 사용해 볼 수도 있습니다.
\documentclass{article}
\usepackage[italian]{babel}
\usepackage{xparse}
\usepackage{booktabs}
\usepackage{tabularx}
\NewDocumentEnvironment{myenv}{b}
{\begin{tabularx}{\columnwidth}{X}\toprule #1 \bottomrule\end{tabularx}}
{}
\begin{document}
\begin{myenv}
Foo\\
\end{myenv}
\end{document}