4

The description environment allows an optional heading, like \item [<heading>] text, to be used. By default this makes the text <heading> bold.

I'm having the issue that this style of heading text is overriding my \textsc{}.

Why won't the description environment honor my \textsc{}?

Here's a picture:

enter image description here

And a MWE:

\documentclass[12pt]{book}

\begin{document}

This is normal text. \textsc{This is in small caps.}

\begin{description}
\item [\textsc{Why not small caps?}] Why isn't the text at left in small caps?
\end{description}

\end{document}
  • 4
    There is no small caps bold in the standard fonts. – egreg Feb 26 '15 at 21:08
  • 1
    \item [\mdseries\textsc{Why not small caps?}] will turn off bold, thereby making small caps accessible – Steven B. Segletes Feb 26 '15 at 21:09
  • @StevenB.Segletes: I think the design feature of description/itemize etc. lists is that the item - leadin is bold, to be an eye-catcher. – user31729 Feb 26 '15 at 21:15
  • @ChristianHupfer True. That's why I provide \fauxsc in my answer. – Steven B. Segletes Feb 26 '15 at 21:19
  • @StevenB.Segletes: Seen it already... A \fakesc solution ;-) – user31729 Feb 26 '15 at 21:20
4

You can fake bold small caps with my \fauxsc{}, first described at Fake small caps with XeTeX/fontspec?. There are three parameters for tuning the fauxsc font

\def\Hscale{.85}\def\Vscale{.72}\def\Cscale{1.10}

which define the horizontal scale on lc letters, the vertical scale on lc letters, and the horizontal scale on uc letters.

\documentclass[12pt]{book}
\usepackage{graphicx}
\newcommand\fauxsc[1]{\fauxschelper#1 \relax\relax}
\def\fauxschelper#1 #2\relax{%
  \fauxschelphelp#1\relax\relax%
  \if\relax#2\relax\else\ \fauxschelper#2\relax\fi%
}
\def\Hscale{.85}\def\Vscale{.72}\def\Cscale{1.10}
\def\fauxschelphelp#1#2\relax{%
  \ifnum`#1>``\ifnum`#1<`\{\scalebox{\Hscale}[\Vscale]{\uppercase{#1}}\else%
    \scalebox{\Cscale}[1]{#1}\fi\else\scalebox{\Cscale}[1]{#1}\fi%
  \ifx\relax#2\relax\else\fauxschelphelp#2\relax\fi}
\begin{document}

This is normal text. \textsc{This is in small caps.}

\begin{description}
\item [\fauxsc{Why not small caps?}] Why isn't the text at left in small caps?
\end{description}

\fauxsc{Why not small caps?} FAUX

\textsc{Why not small caps?} REAL
\end{document}

enter image description here

| improve this answer | |
  • Why not just fake the bold? Just shift and overstrike. – alexis Nov 19 '15 at 13:27
  • @alexis While either approach can be attempted, it is my experience that double-striked characters are much more prone to noticeable flaws than faking small caps via asymmetric stretching. – Steven B. Segletes Nov 19 '15 at 15:14
3

If you want to change the labels in a description to use small caps, the easiest way is to use enumitem:

\documentclass[12pt]{book}
\usepackage{enumitem}

\setlist[description]{font=\normalfont\scshape}

\begin{document}

This is normal text. \textsc{This is in small caps.}

\begin{description}
\item [It's small caps] as you clearly see
\end{description}

\end{document}

enter image description here

The reason why you don't get small caps is that the standard fonts have no bold small caps, so a substitute is used. Using \item[\textsc{x}] just adds \scshape to the default font, which is boldface. You might do

\item[\normalfont\textsc{x}]

but the best is to change the default font.

| improve this answer | |

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.