# Smaller font for subscript within subscript in math mode

How to get smaller font for subscript within subscript in math mode? For example, I want the subscript $c$ to be much smaller than it is in the following example:

\documentclass{article}
\begin{document}
$a_{b_{c}}$
\end{document}


But "\scriptstyle" or "\scriptscriptstyle" is not working for some reason for subscripts within subscripts, i.e.

\documentclass{article}
\begin{document}
$a_{b_{\scriptscriptstyle c}}$
\end{document}


has the same result for the size of $c$. So have to make $c$ even smaller?

• Both your examples work properly for me (i.e., giving me the b in \scriptstyle and the c in \scriptscriptstyle ). – Steven B. Segletes Nov 30 '16 at 17:58
• They produce the same result because they are they same. The first subscript is written using \scriptstyle, while the second (nested) one is written using \scriptscriptstyle. – Werner Nov 30 '16 at 17:58
• Ok, but how to make $c$ even smaller? – Andreas K. Nov 30 '16 at 17:59
• Yes, I mean even smaller than it is. – Andreas K. Nov 30 '16 at 18:02
• If you make math items even smaller than \scriptscriptsize (the equivalent of \tiny in text mode), you should also be prepared to hand out magnifying glasses to the would-be readers of your documents. – Mico Nov 30 '16 at 18:06

For even smaller, you could scale the sub-subscript:

\documentclass{article}
\usepackage{scalerel}
\begin{document}
$a_{b_{\scaleto{c}{1pt}}}$
\end{document}


If you need consistency across a range of subscripts, you may wish to add a normalizer like a \mathstrut:

\documentclass{article}
\usepackage{scalerel}
\begin{document}
$a_{b_{\scaleto{c\mathstrut}{2pt}}}$
$a_{b_{\scaleto{g\mathstrut}{2pt}}}$
\end{document}


Here, \scaleto from the scalerel package operates on its arguments in math mode by default, unlike \scalebox of the graphicx package, which operates in text mode.

You can use \DeclareMathSizes; declare also other sizes if needed.

\RequirePackage{fix-cm} % arbitrary font scaling
\documentclass{article}

\DeclareMathSizes{10}{10}{7}{4}

\begin{document}
$a_{b_{c}}$
\end{document}


Compare to the standard and decide for yourself if it's worth the trouble. I wouldn't go below four points.

• Hello @egreg, can you tell me how to reduce di size of the subscript b please? I tried with \DeclareMathSizes{10}{5}{7}{4}, but an asterix appears where there was the letter a. – Gennaro Arguzzi Feb 8 '19 at 16:52
• @GennaroArguzzi You're saying that at 10pt size you want normal math to be 5pt, first order scripts 7pt and second order scripts 4pt. Which doesn't really make sense, does it? – egreg Feb 8 '19 at 17:00
• thank you so much for the clarification, now I know the meaning of the various parameters. – Gennaro Arguzzi Feb 8 '19 at 17:03
• @GennaroArguzzi The size for base symbols: in $a_{b_{c}}$, a has the size dictated by the second argument. – egreg Feb 8 '19 at 17:12
• @GennaroArguzzi \DeclareMathSizes{<current font size>}{<size for textstyle>}{<size for scriptstyle>}{<size for scriptscriptsize>}. If the current size is 10pt, math will use the sizes declared with \DeclareMathSizes{10}{x}{y}{z}. See tex.stackexchange.com/q/295861/4427 – egreg Feb 8 '19 at 18:08

Using someone's idea in How to get an even smaller font? to scale \scriptscriptstyle content down by 30%:

\documentclass{article}

\usepackage{graphicx}

\begin{document}

$a_{b_c}$

$a_{b_{\scalebox{.7}{$\scriptscriptstyle c$}}}$

\end{document}