2

I have a document like this, that is compiled normally:

\documentclass{article}

\usepackage{booktabs}
\usepackage{tabularx}

\newenvironment{myenv}
               {\tabularx{\columnwidth}{X}\toprule}
               {\bottomrule\endtabularx}

\begin{document}

\begin{myenv}
    Foo\\
\end{myenv}

\end{document}

I also need to \usepackage[italian]{babel}, but if I do so and then compile I get the following error:

! Misplaced \noalign.
\bottomrule ->\noalign 
                       {\ifnum 0=`}\fi \@aboverulesep =\aboverulesep \global...
l.16 \end{myenv}

and in the PDF output the table has two \bottomorules, the first one aligned with the table, and the second one moved to the left:

enter image description here

How can I solve this?

Update: the error occurs only if babel is used in italian, all the other languages I tried work well.

2
  • I must say that even if you load [italian,english] so that english is the main language, you have the error, whereas with [english]  alone, there's no error. That's very strange.
    – Bernard
    Commented Sep 8, 2020 at 11:06
  • 1
    Depending on the document, the alternative way to define languages can be a solution. Perhaps not so complete, but in many cases will be enough: \usepackage{babel} \babelprovide[import,main]{italian}. Commented Sep 8, 2020 at 14:54

1 Answer 1

3

The problem is etoolbox which is loaded by italian. It inserts a hook in the end-environment code and tabularx doesn't like this.

With the development version of latex, which you can use by calling pdflatex-dev it works, its hook code is more robust.

Alternatively you could try the b-argument of xparse:

\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}
1
  • pdflatex-dev doesn't work for me, but etoolbox does. Thanks for the explanation too!
    – Ntakwetet
    Commented Sep 8, 2020 at 19:34

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .