# \ldots produces a square

Using XeLaTex and OpenType font Goudy Bookletter 1911, the command \ldots{} produces ❏ (without shadow).

My question is: why XeLaTeX does not find automatically a substitute ?

I guess that this square is meant to replace a character not present in font. With fontmatrix I can verify that the character U+2026 (ellipsis) is not present.

Here is the test case:

\documentclass{article}
\usepackage{fontspec}
\usepackage{xunicode}
\setromanfont{Goudy Bookletter 1911}

\begin{document}

Trois petits points \ldots{}

\end{document}


Now (epilogue question), I modify the test case to use the package babel.

Insert this line after the first:

\usepackage[french]{babel}


and the three dots are produced correctly. Hopefully this is the behavior expected. But, why this difference ?

-

The difference is that xunicode (that's loaded by the fontspec package, in the up-to-date TeX distributions, so it doesn't need to be loaded explicitly) defines \ldots to be

\char"2026


in text mode, while the french module for babel defines it to give

\FBtextellipsis


which sets the three dots "by hand", rather than relying on a particular glyph.

You can solve the problem of the missing character by saying

\renewcommand{\textellipsis}{.\kern\fontdimen3\font.\kern\fontdimen3\font.\@}


in the document preamble (which is what french does). Then

Three little dots~\ldots


will give what's wanted.

-
Thank you for this info. Your workaround works well when [french]{babel} is not used. For any font. – Couannette Dec 7 '12 at 10:11