How to change the svmono class of Springer to use 12pt as font size

svmono.cls has some hard-coded design choices; one of them is the use of 10pt settings. One way to acces 12pt settings is to make a copy of svmono.cls, rename it as mysvmono.cls, for example, and make the necessary changes in the copy.

To use the 12pt settings one can carefully use the definitions used in another class, for example article (which svmono is built upon); the necessary definitions are in the file size12.clo (under .../text/latex/base).

The lines that will need a change are

% no size changing allowed
\DeclareOption{11pt}{\OptionNotUsed}
\DeclareOption{12pt}{\OptionNotUsed}
% options for the article class
\def\@rticle@options{10pt,twoside}
% fleqn
\DeclareOption{fleqn}{\def\@rticle@options{10pt,twoside,fleqn}%

which should be replaced with

% no size changing allowed
%\DeclareOption{11pt}{\OptionNotUsed}
%\DeclareOption{12pt}{\OptionNotUsed}
% options for the article class
\def\@rticle@options{12pt,twoside}
% fleqn
\DeclareOption{fleqn}{\def\@rticle@options{12pt,twoside,fleqn}%

And the section under % fonts, sizes, and the like:

% fonts, sizes, and the like
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xpt\@xiipt
   \abovedisplayskip 10\p@ % \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ % \@plus3\p@
   \belowdisplayshortskip 6\p@ %\@plus3\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\normalsize
\renewcommand\small{%
   \@setfontsize\small{8.5}{10}%
   \abovedisplayskip 8.5\p@ % \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip \z@ %\@plus2\p@
   \belowdisplayshortskip 4\p@ %\@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \parsep \z@ \@plus\p@ \@minus\p@
               \topsep 6\p@ \@plus2\p@ \@minus4\p@
               \itemsep\z@}%
   \belowdisplayskip \abovedisplayskip
}
%
\let\footnotesize=\small
%
\renewcommand\Large{\@setfontsize\large{14}{16}}
\newcommand\LArge{\@setfontsize\Large{16}{18}}
\renewcommand\LARGE{\@setfontsize\LARGE{18}{20}}
%

which should be changed to

% fonts, sizes, and the like
% change to 12pt (GM: several lines)----start
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xiipt{14.5}%
   \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\normalsize
\renewcommand\small{%
   \@setfontsize\small\@xipt{13.6}%
   \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 9\p@ \@plus3\p@ \@minus5\p@
               \parsep 4.5\p@ \@plus2\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\footnotesize{%
   \@setfontsize\footnotesize\@xpt\@xiipt
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 6\p@ \@plus2\p@ \@minus2\p@
               \parsep 3\p@ \@plus2\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
\renewcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
\renewcommand\large{\@setfontsize\large\@xivpt{18}}
\renewcommand\Large{\@setfontsize\Large\@xviipt{22}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xxpt{25}}
\renewcommand\huge{\@setfontsize\huge\@xxvpt{30}}
\let\Huge=\huge
\newcommand\LArge{\@setfontsize\Large{18}{23.5}}
%

This new file must be saved in the local TDS directory, or somewhere else safe where TeX can find it.

The complete file mysvmono.cls with the modifications mentioned was too long to put it here directly.


Are you sure you want that? Publisher's classes are designed to give a specific look and are not really designed for general options like choosing fonts. In particular in this case while it is possible to force the underlying article class to load 12pt fonts, all the headings and spacing specified in svmono are at fixed point sizes and do not adapt to 12pt.

Having said that you can do

\documentclass[my12pt]{svmono}

\begin{document}

a\showoutput
\end{document}

if you make a file svmy12pt.clo that looks like

\def\@rticle@options{12pt,twoside}

then the above document shows

...\hbox(5.16667+0.0)x336.0, glue set 315.12506fil
....\hbox(0.0+0.0)x15.0
....\OT1/cmr/m/n/12 a
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0

confirming 12pt is being used.