[XeTeX] Fontspec and testing smallcaps presence

James Crippen jcrippen at gmail.com
Wed Apr 22 00:17:06 CEST 2009


I'm hacking on a Biblatex style and there's the following little macro
to detect whether smallcaps are available in a font:

\renewcommand*{\mkbibacro}[1]{%
    \ifcsundef{\f at encoding/\f at family/\f at series/sc}
       {#1}
       {\textsc{\MakeLowercase{#1}}}}

It's supposed to convert acronyms to smallcaps when possible. This
doesn't work as intended with fonstpec fonts. For example, if I set
Linux Libertine or Hoefler Text as the main font and then run some
text through this macro, I get smallcaps. But if I switch the main
font to Times or Georgia, I get lowercase letters, indicating that it
*wrongly* detected smallcaps where there weren't any available.

(BTW, I'm using TeXLive 2008, XeTeX 0.999.6 with Fontspec v1.18 on Mac
OS X 10.5.6. And Biblatex v0.8c.)

Any suggestions on how to make this work properly for fontspec fonts?

Thanks,
James


More information about the XeTeX mailing list