4

This is the original issue: Is there a way to use 13pt as the main document font size with the memoir document class?

I need a document with the 13pt font size in memoir due to 12pt being too small and 14pt too big...

But there is not a 13pt standard font size in memoir.....my first inexperienced attempt was to include the package \usepackage[fontsize=13pt]{scrextend}...

But as some people told me here...this may cause consequences after that are really hard to diagnose and solve. However, the author of the book I am editing liked very much the font size offered by the package mentioned above...

As a second attempt I have created a mem13.clo file which is basically a new font size 13pt for memoir ... and it includes an average values of the 12pt and 14pt font sizes...Had put it in the C:\Users\Adriano\AppData\Local\Programs\MiKTeX 2.9\tex\latex\memoir.

This is the code:

%% This is file `mem13.clo', generated as a convex 
%% combination of mem12.clo and mem14.clo
%%
%%   This work may be distributed and/or modified under
%%   the conditions of the LaTeX Project Public License, 
%%   either version 1.3 of this license or (at your 
%%   option) any later version.
%%   The latest version of the license is in
%%      http://www.latex-project.org/lppl.txt
%%   and version 1.3 or later is part of all distributions
%%   of LaTeX version 2003/06/01 or later.
%%
%%   This work has the LPPL maintenance status "maintained".
%%
\ProvidesFile{mem13.clo}%
       [2016/05/17 v0.01 memoir class 13pt size option]
\renewcommand{\normalsize}{%
   \@setfontsize\normalsize{13.2}{16.0}%
   \abovedisplayskip 13.2\p@ \@plus3\p@ \@minus7.5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.75\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\normalsize
\newcommand{\small}{%
   \@setfontsize\small\@xiipt{14.0}%
   \abovedisplayskip 11.5\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 10\p@ \@plus3.5\p@ \@minus5.5\p@
               \parsep 5.25\p@ \@plus2.5\p@ \@minus\p@
               \itemsep \parsep
%%               \itemindent\z@
              }%
   \belowdisplayskip \abovedisplayskip
}
\newcommand{\footnotesize}{%
   \@setfontsize\footnotesize\@xipt\@xiipt
   \abovedisplayskip 10.5\p@ \@plus2.5\p@ \@minus5.5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.25\p@ \@plus3.25\p@ \@minus3\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 6.25\p@ \@plus2.75\p@ \@minus2.5\p@
               \parsep 3.5\p@ \@plus2.5\p@ \@minus\p@
               \itemsep \parsep
%%               \itemindent\z@
              }%
   \belowdisplayskip \abovedisplayskip
}
\newcommand*{\miniscule}{\@setfontsize\miniscule\@viiipt{8.8}}
\newcommand*{\tiny}{\@setfontsize\tiny\@ixpt{10}}
\newcommand*{\scriptsize}{\@setfontsize\scriptsize\@xpt\@xipt}
\newcommand*{\large}{\@setfontsize\large{14.5}{20}}
\newcommand*{\Large}{\@setfontsize\Large{18.5}{23.5}}
\newcommand*{\LARGE}{\@setfontsize\LARGE{22}{27}}
\newcommand*{\huge}{\@setfontsize\huge{27}{33}}
\ifextrafontsizes
  \newcommand*{\Huge}{\@setfontsize\Huge{33}{40}}
  \newcommand*{\HUGE}{\@setfontsize\HUGE{40}{48}}
\else
  \let\Huge=\huge
  \let\HUGE=\huge
\fi
\setlength{\onelineskip}{16\p@}
\if@twocolumn
  \setlength\parindent{1em}
\else
  \setlength\parindent{1.5em}
\fi
\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@}
\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@}
\setlength\headheight{16\p@}
\setlength\headsep{.3in}
\setlength\topskip{13.2\p@}
\setlength\footskip{33\p@}
\setlength\maxdepth{.5\topskip}
\setlength\@maxdepth\maxdepth
\setlength\footnotesep{9\p@}
\setlength{\skip\footins}{11.9\p@ \@plus 4\p@ \@minus 2\p@}
\setlength\floatsep    {13.2\p@ \@plus 2\p@ \@minus 2\p@}
\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\intextsep   {14\p@ \@plus 4\p@ \@minus 4\p@}
\setlength\dblfloatsep    {14\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@}
\setlength\@fptop{0\p@ \@plus 1fil}
\setlength\@fpsep{10\p@ \@plus 2fil}
\setlength\@fpbot{0\p@ \@plus 1fil}
\setlength\@dblfptop{0\p@ \@plus 1fil}
\setlength\@dblfpsep{10\p@ \@plus 2fil}
\setlength\@dblfpbot{0\p@ \@plus 1fil}
\setlength\lxvchars{372\p@} % standard 390pt
\setlength\xlvchars{264\p@} %
\if@twocolumn
  \setlength\marginparsep{10\p@}
\else
  \setlength\marginparsep{7\p@}
\fi
\setlength{\marginparpush}{7\p@}
\endinput
%%
%% End of file `mem13.clo'.

This was the result...

enter image description here

As you can see...the supposedly 13pt is smaller than the 12pt...my question is...

Is there a way to set the font sizes for mem13.clo as the same font sizes used in the \usepackage[fontsize=13pt]{scrextend} package? Because the writer really enjoyed that font size and he is willing to keep it like that.

  • 3
    Real quick: Did you update the filename database of your MiKTeX distribution? If you did not, then placing mem13.clo in C:\Users\Adriano\AppData\Local\Programs\MiKTeX 2.9\tex\latex\memoir will do you no good: MikTeX won't be finding the file, meaning that it will use the default font size, which is 10pt. You should check the log file: is mem10.cls or mem13.cls being loaded in the document that sets 13pt as one of the document class options? – Mico May 27 '16 at 4:39
8

This is a little confusing to do. Remember that class options are not dynamic, so since 13pt is not hardcoded into the class, memoir does not recognize it. Instead we need to use the provided interface (page 3-4 in the memoir manual).

Firstly you need to place your mem13.clo in a place where LaTeX can find it. For testing it is easiest to just palce it in the same folder as your .tex file. If placed elsewhere, then as Mico says in a comment, you need to update the filename DB.

Secondly, we need to use the *pt option to tell memoir to use a user defined font size file, the name of which HAS to be declared BEFORE \documentclass, as placeing it after \documentclass after it will be too late (a macro like \normalsize or \normalfont might be issued by the class while loading).

This works:

\newcommand*{\anyptfilebase}{mem}
\newcommand*{\anyptsize}{13}
\documentclass[a4paper,*pt]{memoir}
\begin{document}
test
\end{document}

I have the mem13.clo in current dir, and in the log I can find the tell-tell

 (./mem13.clo)

showing that it was loaded.

Yes the interface it a little clunky, but that is due to the fact that we need the clo to be loaded by the class at the right time. Plus memoir does not support key=value class options

  • Done. The log file loads the 13pt font sizes, I have compared them it is really different from each other. Thanks @daleif – Adriano May 27 '16 at 17:06
  • I hope that this way does not create any problems in the future. What do you think? – Adriano May 27 '16 at 17:12
  • 1
    It is the solution that is specified in the manual, and I have no intention to change it. – daleif May 27 '16 at 18:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.