2

I'm having some problems with missing font shapes. MWE:

\documentclass{article}

\usepackage[default]{lato}
\usepackage[T1]{fontenc}

\begin{document}

\section{Lato font}

\begin{itemize}
\item \textbackslash{}textsc \textsc{No Small Caps!}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Normal font}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Normal Font}}

\end{itemize}

\end{document}

This produces:

enter image description here

It's slightly better with the default font:

\documentclass{article}

\begin{document}

\section{Default font}

\begin{itemize}
\item \textbackslash{}textsc \textsc{Produces Small Caps}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Generates Small Caps, No Italics}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Small Caps, No Italics}}

\end{itemize}

\end{document}

enter image description here

A document I compiled with the same style files a few weeks ago worked with the Lato font, giving me combined italic/small caps without problem:

enter image description here

How can get my fonts to work again?

System info:

  • Debian Linux (testing)
  • texlive package 2017.20171128-1_all
  • texlive-fonts-extra 2017.20171128-1_all.deb
  • latex --version

pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian)
kpathsea version 6.2.3
Copyright 2017 Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.32; using libpng 1.6.34
Compiled with zlib 1.2.8; using zlib 1.2.8
Compiled with poppler version 0.57.0

2 Answers 2

4

Lato simply does not provide small caps anymore. From the manual

4.1.2 Smallcaps

Since the Lato font family doesn’t provide yet “real” smallcaps, faked ones were supplied by previous versions of the lato package (by scaling down uppercase letters), with a very poor result. Furthermore, there’s no convenient way to generate fake smallcaps with XeTeX or LuaTeX engines and native OpenType fonts.

For these reasons, faked small caps are no longer provided, starting with version 3.0 of the lato package. Anyway LaTeX should automatically substitute missing smallcap shapes by normal ones.

1
  • oh no! That's really too bad, the fake small caps looked quite acceptable to me. I would rather have fakes than none at all.
    – Tyler
    Commented Dec 13, 2017 at 1:48
4

It works if you load a font with both small-caps and italic small-caps.

For example,

\documentclass{article}
\usepackage{cfr-lm}
\begin{document}

\section{Latin Modern Roman}

\begin{itemize}
\item \textbackslash{}textsc \textsc{Produces Small Caps}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Generates Italic Small Caps}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Italic Small Caps}}

\end{itemize}

\end{document}

small-caps, italics & italic small-caps

At least, it works if the support package 'extends' NFSS appropriately. The above won't work with lmodern, for example, even though cfr-lm and lmodern use the same fonts.

\documentclass{article}
\usepackage{lmodern}
\begin{document}

\section{Latin Modern Roman}

\begin{itemize}
\item \textbackslash{}textsc \textsc{Produces Small Caps}

\item \textbackslash{}emph \emph{works as expected}

\item \textbackslash{}itshape\textbackslash{}scshape
  {\itshape\scshape Generates Small Caps, No Italics}

\item \textbackslash{}emph\{\textbackslash{}textsc{}\{\}\}
  \emph{\textsc{Also Generates Small Caps, No Italics}}

\end{itemize}

\end{document}

no italic small-caps

Italic small-caps are missing because they are not supported by NFSS and lmodern limits its support for Latin Modern to font dimensions supported by NFSS. The key problem here is that both small-caps and italic are coded as 'font shape', so they cannot be combined without trickery within the framework NFSS provides.

5
  • is there a way to search for available TeX fonts that provide italic small caps, other than looking through each one?
    – Tyler
    Commented Dec 13, 2017 at 2:55
  • @HenriMenke Oops - thanks for changing the picture.
    – cfr
    Commented Dec 13, 2017 at 3:56
  • @Tyler The Latex Font Catalogue has samples, but I doubt they cover this. I don't know of a good way to find them. You can't generate a font sampler to check, because different packages implement different interfaces for their NFSS extensions. So code which gets italic small-caps for one font may not get it for another. Not only this, but the shape codes used in the .fd files differ, too. But italic small-caps are not usual, so you are not going to find many of them regardless.
    – cfr
    Commented Dec 13, 2017 at 4:00
  • For some fonts, you can tell by their names. But this only really applies to those which use Karl Berry's naming scheme or the verbose scheme generated by autoinst et al. And many fonts are not named according to either schema. (However, such fonts are unlikely to have support for italic small-caps with traditional TeX engines, even if the fonts are there.)
    – cfr
    Commented Dec 13, 2017 at 4:04
  • The LaTeX font catalogue for Lato does show examples of sc it, but as pointed out by @HenriMenke this is now outdated. It would be nice to have a database that enabled searching by feature, for those of us with unusual requirements.
    – Tyler
    Commented Dec 13, 2017 at 12:21

You must log in to answer this question.

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