[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#668562: XeLaTeX fails to work if babel/french is used



Hilmar Preuße a écrit le 16/04/2012 23:22 :
Dear Daniel,

http://bugs.debian.org/668562

The following minimal example can't be compiled using XeLaTeX. The
error message is:

! Improper discretionary list.
\-  ...ulthyphenchar \else \hyphenchar \font \fi }
                                                   {}{}
l.6 http://www.debian.org/\-
                             doc/\-manuals/\-debian-{}reference/\-
? s

----------------------

\documentclass{article}
\usepackage[french]{babel}
\usepackage{xeCJK}

\begin{document}
http://www.debian.org/\-doc/\-manuals/\-debian-{}reference/\-
\end{document}

As this works for other languages (like spain, english) we suspect a
problem in frenchb.ldf. The problem can be reproduced using the
pre-release of TL 2012, which has been recently uploaded to Debian
unstable. The log for the XeLaTeX run is attached.
If you need help, please call back. Please keep the bug in Cc.

Regards,
   Hilmar

Dear Hilmar and Sun,

I have analysed the bug which occurs when babel/french is used in conjunction with xeCJK.sty. I cc this email to Sun Wenchang, the author of xeCJK.

AFAIK, french is the only babel language which uses the "XeTeXinterchartok" mecanism (in order to add proper spacing before the `:;!?' punctuation signs), that's why the bug doesn't occur with other babel languages.

One big problem is that xeCJK assigns "\XeTeXcharclass" 4 to 6 to various ASCII characters instead of creating its own classes with "\newXeTeXintercharclass". When babel/french uses "\newXeTeXintercharclass" to create its own classes, it gets classes already used by xeCJK and unpredictable results occur, one of them is that "\-" becomes "\ -" which causes the bug pointed out by Hilmar.

Sun, could you please change this and assign all the classes you need with \newXeTeXintercharclass?

Best regards,
--
Daniel Flipo



Reply to: