[XeTeX] Fake old-style figures & small-caps with XeTeX?

Ernest Adrogué eadrogue at gmx.net
Wed Jul 28 03:00:22 CEST 2010

27/07/10 @ 20:47 (+0100), thus spake cfrees at imapmail.org:
> On Tue 27th Jul, 2010 at 09:48, Khaled Hosny seems to have written:
> >On Tue, Jul 27, 2010 at 02:36:45AM +0200, Ernest Adrogué wrote:
> >>23/07/10 @ 17:12 (+0200), thus spake enrico.gregorio at univr.it:
> >>>>Hi!
> >>>>
> >>>>Is it possible to generate fake old-style figures & small
> >>>>capitals for fonts missing these glyphs with XeTeX.
> >>>>I used to use the mathpoz package that does exactly that,
> >>>>but something tells me it's not compatible with XeTeX.
> >>>
> >>>
> >>>I guess it's the "mathpazo" package, for Palatino. You can
> >>>substitute the text font with the TeX Gyre version:
> >>>
> >>>
> >>>\usepackage{mathpazo}
> >>>\setmainfont[Numbers=OldStyle]{TeX Gyre Pagella}
> >>>
> >>>
> >>>With declarations in this order, XeLaTeX should be happy: and indeed it is,
> >>>I've tried compiling the documentation of amsmath and all goes well.
> >>
> >>I'll have to study this in more detail.
> >>I thought that "mathpazo" generated the small-caps and old-style
> >>figures by itself, but it seems that it doesn't.
> >
> >Though there are some DTP and office applications that fake small caps,
> >I've never seen one that fakes oldstyle figure, I don't think it is even
> >possible.
> >
> >>                                         It simply selects
> >>another font wich is URW Palladio with real small-caps and old-style
> >>figures added. I don't know what's the point in having a version of
> >>URW Palladio without small-caps and another one with, all in the
> >>same LaTeX installation.
> >
> >Traditional TeX engines can only use small caps if they are in a separate
> >font.
> Just to clarify, this, you need separate TFM files, but it is perfectly
> OK for the small caps to be in the same font in the sense of being in
> the same pfb (or ttf for pdflatex which is not quite traditional, of
> course). This amounts to having them in separate fonts as far as TeX is
> concerned but the actual glyphs can all be in the same type 1 font.

Right now, I have two fonts with old-style numbers.
One, Linux Libertine, a true-type font.
Two, PFL Neu, a type 1 font based on URW Palladio.
These both have old-style figures in the same file, and I have seen
with Font Forge that the glyphs are labeled the same: zero.oldstyle,
one.oldstyle... etc.

However, I cannot use the old-style figures from the type1 font.
It prints a warning saying that the OpenType feature 'Numbers=OldStyle'
is not available.

Why can't XeTeX find the o.s. numbers? Is it a limitation of type 1

If I put the old-style glyphs in a different file, and load the font
with the SmallCapsFont=<file> option, then it still prints the warning
about old-style numbers not available, but you can actually get o.s.
figures selecting small-caps, e.g. \textsc{12345}. Whereas \textup{123}
uses normal figures. It's not ideal, but it works. The problem is that
it's inconsistent, because the true-type font is insensitive to
\textsc \textup as long as o.s. figures are concerned, it only  obeys
the OpenType feature "Numbers" option.

Any comment appreciated :)


More information about the XeTeX mailing list