5

I use small caps with \textsc{} a lot, but cannot find a way to get it set in italics. This is primarily a problem inside environments such as theorems, where the theorem text is set in italics, so that \textsc{} gives upright small caps. I always load the fixltx2e (no longer necessary?) package after reading it enables italic small caps, but that does not seem to be the case. I get slanted small caps with slantsc, but since slanted looks rather unappealing for normal text, that does not solve much. Loading different combinations of the packages fixlte2e, fontenc with T1, and lmodern produces different results, none of which are what I want. I have the same problem with Palatino (using \usepackage[sc]{mathpazo}), except Palatino prints upright lowercase for slanted small caps. I get the warning "Font shape 'T1/lmr/m/scit' undefined(Font) using 'T1/lmr/m/n' instead", which I guess means small-caps-italic font is not available. Is there an easy fix, or is this where one needs other Latex flavors? (I use pdflatex in TeXLive on a Mac.)

Sorry if this is a duplicate -- I could not find the answer anywhere.

MWE:

\documentclass{article}
\usepackage{fixltx2e}
\usepackage[T1]{fontenc}
\usepackage{slantsc}
\usepackage{lmodern}
%\usepackage[sc]{mathpazo}
\usepackage{amsthm}

\newtheorem{theorem}{Theorem}

\begin{document}

\textsl{\textsc{gnu}'s not Unix} (\verb|\textsl{}|)   \par 
{\slshape gnu}'s not Unix        (\verb|{\slshape }|) \par 
\textit{\textsc{gnu}'s not Unix} (\verb|\textit{}|)   \par
\emph{\textsc{gnu}'s not Unix}   (\verb|\emph{}|)

\verb|\textsc{}| inside \verb|amsthm| theorem:
\begin{theorem}
  \textsc{gnu}'s not Unix.
\end{theorem}

\end{document}

MWE ouput

  • 1
    this may be what you're looking for: Italic shape needed in small caps fonts. – barbara beeton Dec 22 '15 at 17:53
  • 1
    I you want to consider using fourier, for maths, erewhon is an extension of Adobe Utopia which has small caps in all shapes and weights, superior/inferior figures and cyrillic. – Bernard Dec 22 '15 at 17:54
  • That's pretty much it, but I didn't read Werner's comment thoroughly enough, so I missed it. @egreg's solution below is easier to just cut and paste, so that's hopefully more useful to others later, too. – tanh Dec 22 '15 at 20:47
  • @Bernard Thanks, I was not aware of that font -- looks really good. – tanh Dec 22 '15 at 20:55
  • 2
    @tanh Unlike a forum, we (and StackExchange's entire model) like to keep answers separate from questions :) I've rolled back your question to its original content. – Sean Allred Dec 22 '15 at 21:15
6

The font definition file for Latin Modern doesn't define a scit shape, but you can add it, telling LaTeX to substitute scsl for it.

You may want to use fontaxes instead of slantsc.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{slantsc}
\usepackage{lmodern}
\usepackage{amsthm}

\newtheorem{theorem}{Theorem}

\AtBeginDocument{%
  \DeclareFontShape{T1}{lmr}{m}{scit}{<->ssub*lmr/m/scsl}{}%
}


\begin{document}

\textsl{\textsc{gnu}'s not Unix} (\verb|\textsl{}|)   \par
{\slshape gnu}'s not Unix        (\verb|{\slshape }|) \par
\textit{\textsc{gnu}'s not Unix} (\verb|\textit{}|)   \par
\emph{\textsc{gnu}'s not Unix}   (\verb|\emph{}|)

\verb|\textsc{}| inside \verb|amsthm| theorem:
\begin{theorem}
  \textsc{gnu}'s not Unix.
\end{theorem}

\end{document}

enter image description here

In order to have Palatino, load mathpazo for math and tgpagella for text:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{amsthm}

\usepackage{fontaxes}

\usepackage{mathpazo}
\usepackage{tgpagella}

\newtheorem{theorem}{Theorem}

\begin{document}

\textsl{\textsc{gnu}'s not Unix} (\verb|\textsl{}|)   \par
\textit{\textsc{gnu}'s not Unix} (\verb|\textit{}|)   \par
\emph{\textsc{gnu}'s not Unix}   (\verb|\emph{}|)

\verb|\textsc{}| inside \verb|amsthm| theorem:

\begin{theorem}
\textsc{gnu}'s not Unix and math is right
\[
\int_{-\infty}^{\infty} \exp(-x^{2})\,dx=\sqrt{\pi}
\]
\end{theorem}

\end{document}

enter image description here

You get very much alike output with

\usepackage{newpxtext,newpxmath}

Take your pick.

  • That works perfectly -- I'm in awe. Also, thanks for the tip on fontaxes! – tanh Dec 22 '15 at 18:19
  • Any idea how to get this to work for Palatino? Neither scsl nor scit are defined for pplx. – tanh Dec 22 '15 at 18:21
  • 1
    @tanh You may want to try loading tgpagella after mathpazo – egreg Dec 22 '15 at 18:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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