\changefontsizes
is not really explained in the documentation,
but is definitely in the experts section. So, hands off.
The correct way to change the size is to use the interface
\KOMAoption{fontsize}{11pt}
. Or if you are feeling funny you
can choose 10.999999 pt
. KOMA will look for an existing file
with predefined settings, and if it doesn't find one, it uses
\changefontsizes
. You can read more about the mechanism in Clemens' good answer to Using fallback calculation to setup font sizes.
What happens with \changefontsizes
? It takes one argument, the
desired font size for \normalsize
and does some calculations.
In theory, you can put in any number, even non integers, the
algorithm of scrextend
does its job, calculates the relative
sizes as well and uses those values as the now default ones. The
command issues a warning that it now uses fallback calculations.
One thing we see as well is that not every font is available in
every fontsize. LaTeX then decides to use next best font. I guess
we all have seen warning like
LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <3.7699> not
available
(Font) size <5> substituted on input line 47.
One thing we need to remember: Use the interface the
documentation describes, do not use internal or low-level or
package author commands to do your every days work.
\listfiles
\documentclass[11pt]{article}
\usepackage{scrfontsizes}
\makeatletter
\newcommand{\currentsize}{{\par current text size: \f@size pt\par}}
\newcommand{\currentfnsize}{{\par\footnotesize current footnote size: \f@size pt\par}}
\newcommand{\currentlargesize}{{\par\large current large size: \f@size pt\par}}
\makeatother
\newcommand{\explain}[1]{\bigbreak\emph{ #1:}}
\begin{document}
\explain{global option 12 pt}
\currentsize \currentfnsize \currentlargesize
\explain{Using the KOMA-interface}
\KOMAoption{fontsize}{11pt}\currentsize
\currentsize \currentfnsize \currentlargesize
\explain{\texttt{changefontsizes 11 pt}}
\changefontsizes{11}
\currentsize \currentfnsize \currentlargesize
\explain{You can even do
\texttt{changefontsizes 11.375 pt}}
\changefontsizes{31.375}
\currentsize \currentfnsize \currentlargesize
\KOMAoption{fontsize}{3.141596pt}
\currentsize \currentfnsize \currentlargesize
\end{document}
If the need for the use of a non standard size exists, it is
better to generate a clo
file and not calculate the values
every single time. You can also change that file and make
adjustments where you see fit. Package scrfontsizes
helps you
achieving this task.
\documentclass{minimal}%ok just this time
\usepackage{scrfontsizes}
\generatefontfile{texsx}{11bp}
\begin{document}\end{document}
You can now use the new font size, but need to define the prefix
(in our case texsx
) fix.
\makeatletter
\newcommand*{\@fontsizefilebase}{texsx}
\makeatother
\documentclass[fontsize=11bp]{scrartcl}
\usepackage{blindtext}
\begin{document}
\blindtext
\end{document}
\KOMAoption{fontsize}{11pt}
.changefontsizes
is for calculating relative sizes likefootnotesize
for non-standard base sizes. Meaning the calculated values overwrite the default/standard values.