Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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 ?

share|improve this question

1 Answer 1

up vote 3 down vote accepted

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.

share|improve this answer
    
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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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