5

A brief search yielded no answers, so I'm posting this question:

Is there a way to get smallcaps to display correctly in (subsub...)section titles?

My problem in particular is in the following code:

\documentclass{article}
\newcommand*{\matlab}{\textsc{matlab}}

\begin{document}
 \section{\matlab}}
\end{document}

Instead of producing a smallcaps MATLAB in the title, it produces normal text - "matlab", i.e. what went into \textsc{} in the newcommand*{}{}.

It doesn't actually produce an error or warning and compiles, but doesn't give me the required output.

Anyone know of a work-around/solution?

6
  • 1
    Just to clarify: You want to keep bold for most of the section header material, but you want to preserve smallcaps for selected strings? And you want to do this Computer Modern fonts, which don't feature a bol-smallcaps weight/shape combination?
    – Mico
    Commented Apr 22, 2015 at 4:00
  • This is a missing bold font issue, in my point of view, as the compiler complains about a missing font small caps.... just saw that Mico was faster than me ;-)
    – user31729
    Commented Apr 22, 2015 at 4:02
  • See the tex.stackexchange.com/questions/55664/… and the answer by Steven B. Segletes, although it's a different question, the \fauxsc command might be of help here (or what Mico did ;-))
    – user31729
    Commented Apr 22, 2015 at 4:10
  • I just want "matlab" to appear as smallcaps - bold or not is not my primary concern, although unbolded would be nicer.
    – jamesh625
    Commented Apr 22, 2015 at 4:20
  • \newcommand*{\matlab}{{\sc matlab}}
    – Mark
    Commented Apr 22, 2015 at 4:26

2 Answers 2

8

What you're discovering is that the Computer Modern font family doesn't feature a bold/smallcaps weight/shape combination. To restore the "normal" weight for the smallcaps string, you need to preface it with an \mdseries directive.

enter image description here

\documentclass{article}
\newcommand*{\matlab}{\textsc{matlab}}
\newcommand*{\altmatlab}{{\mdseries\matlab}} % note the double pair of curly braces
%%% "\newcommand*{\altmatlab}{\textmd{\matlab}}" works too...
\begin{document}
 \section{A title that contains ``\matlab'' as a string}
 \section{A title that contains ``\altmatlab'' as a string}
\end{document}

Other font families, e.g., Times Roman, do feature a bold/smallcaps combination. If you were to use one of these font families, using the basic \matlab macro in section headers would be fine.

2

Also possible:

\documentclass{article}

\newcommand*\matlab{{\normalfont\textsc{matlab}}}

\begin{document}

  \section{A title that contains ``\matlab'' as a string}

\end{document}

You must log in to answer this question.

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