1

I'm using the Latino Elongated LET font with XeTeX and I can't get small capitals to display:

\documentclass{scrbook}

\usepackage{fontspec}
\newfontfamily\lelong{Latino Elongated LET}
\newfontfamily\lelongsc[SmallCapsFeatures={Letters=SmallCaps}]{Latino Elongated LET}

\begin{document}

\lelong \scshape Small capitals

\lelongsc \scshape Small capitals

\newfontinstance\scshape[Letters=SmallCaps]{Latino Elongated LET}

\lelong \scshape Small capitals

\end{document}

gives me three lines with normal characters:

small caps failure

How can I get small capitals? It is possible that this font is lacking sc functionalities?

Note:

The third attempt (\newfontinstance) gives a warning in the logs:

Package fontspec Warning: OpenType feature 'Letters=SmallCaps' (+smcp) not available for font "Latino Elongated LET Plain:1.0/ICU" at 10.95pt, with script 'Latin', and language 'Default'.

5
  • 1
    I get the message that small caps are not present in the font. You can't have what is not in the font.
    – egreg
    Commented Jun 8, 2011 at 15:15
  • have you checked if the font really has the small caps feature with a otfinfo -f /path/to/font?
    – henrique
    Commented Jun 8, 2011 at 15:15
  • @egreg: OK, so maybe I need another Latino Elongated font?
    – raphink
    Commented Jun 8, 2011 at 15:18
  • @henrique: the file is a ttf, so I can't run that. Is there an equivalent for true type/T1 fonts?
    – raphink
    Commented Jun 8, 2011 at 15:19
  • @Raphink a few truetype fonts do have opentype features that can be displayed with otfinfo... If it doesn't, the font simply lacks the functionality and you can't have smallcaps with it. (Some commercial fonts come in bundles with a separated file for smallcaps... if that is the case, you'll need to create a \newfontface to use it.)
    – henrique
    Commented Jun 8, 2011 at 15:30

3 Answers 3

4

The font is a TrueType font that doesn't have "small caps" functionality. That is, the font just doesn't have any small caps.

5
  • Are you sure it doesn't contain small caps in a private Unicode area? Commented Jun 8, 2011 at 16:14
  • @Andrey: that was actually my question, I'd love to know how to know that.
    – raphink
    Commented Jun 8, 2011 at 20:01
  • 1
    @Raphink Open the font with fontforge or another utility (I have OTM_Light) and look at the glyphs. I can confirm that there is nothing in the PUA.
    – egreg
    Commented Jun 8, 2011 at 20:12
  • OK, thanks. I don't have fontforge. I thought fontconfig had a tool for that, maybe fc-cat can tell me this?
    – raphink
    Commented Jun 8, 2011 at 20:17
  • @Raphink fc-cat only lists fonts known to the font library of fontconfig. Look at fontforge.sourceforge.net
    – egreg
    Commented Jun 8, 2011 at 20:22
2

You can cheat:

\newcommand\fakesc[1]{\scalebox{0.7}{\MakeUppercase{#1}}}

Some things to note:

  • This requires the graphicx package
  • Uppercase letters in the fakesc scope get lost. (Although I'm sure some TeX-fu can fix that...
  • The actual amount of scaling should probably depend on the exact font used...
1
  • I've actually cheated already in another way. Eventually, I'll see about purchasing the OTF version of the font which I believe has proper sc.
    – raphink
    Commented Jun 8, 2011 at 20:02
1

I found a cleaner solution:

  • open the TTF in fontforge;
  • create small caps;
  • save the font as OTF;
  • use the new font;
  • remember to not distribute non-free modified fonts on github ;-)
2
  • So long as the font licence allows you to do this.
    – egreg
    Commented Jul 20, 2011 at 9:19
  • The font doesn't allow me to redistribute, but can it prevent me from making private changes? Isn't that the same as stretching it in inkscape for example?
    – raphink
    Commented Jul 20, 2011 at 9:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .