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.