7

With:

\documentclass{article}
\usepackage[hebrew,english]{babel}
\usepackage{lipsum}
\begin{document}
\lipsum
\end{document}

You get:

! Missing \endcsname inserted.
<to be read again> 
                   \protect 
l.6 \end
        {document}
? 

The suggestions here do not work around the problem.

  • One remark: I would define the language definitions as class options. They are forwarded to the packages, so each package (not only babel) will get the language. Or in other words: languages are document specific, not babel specific. This comment doesn't change anything for your problem. – knut Mar 24 '12 at 9:32
10

Hebrew babel redefines all the counter representation mechanism and lipsum relies on \roman for its inner workings.

You can change a macro in lipsum:

\usepackage{lipsum}
\makeatletter
\renewcommand\lips@dolipsum{%
  \ifnum\value{lips@count}<\lips@max\relax
    \addtocounter{lips@count}{1}%
    \csname lipsum@\romannumeral\c@lips@count\endcsname
    \lips@dolipsum
  \fi
}
\makeatother

so that it uses the primitive way of converting numbers to roman numerals.

Or you can use the similar kantlipsum package that doesn't suffer from the problem to begin with. (Disclaimer: I'm the author of kantlipsum.)

| improve this answer | |
  • 3
    ..or blindtext (Disclaimer: I'm the author of blindtext ;) ) – knut Mar 24 '12 at 9:29
  • Note to future readers: Changes to lipsum over the years have invalidated this workaround - but with newer TeX distribution, the original issue may be gone as well. – einpoklum Mar 7 at 9:39
  • @einpoklum Yes, now lipsum uses expl3 and no longer relies on \roman. – egreg Mar 7 at 9:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.