我想更改 Springer 的 svmono 类,以便使用 12pt 作为字体大小。我一直在这个论坛(和其他论坛)中寻找答案,但没有找到答案。
答案1
svmono.cls
有一些硬编码的设计选择;其中之一就是设置的使用10pt
。访问12pt
设置的一种方法是复制svmono.cls
,将其mysvmono.cls
重命名为 ,然后在副本中进行必要的更改。
要使用这些12pt
设置,可以小心使用另一个类中使用的定义,例如article
(svmono
构建于其上);必要的定义在文件中size12.clo
(在 下.../text/latex/base
)。
需要改变的线路是
% 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}%
应该替换为
% 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}%
以及以下部分% 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}}
%
应改为
% 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}}
%
这个新文件必须保存在本地 TDS 目录中,或者 TeX 可以找到的其他安全的地方。
提到修改的完整文件mysvmono.cls
太长,无法直接放在这里。
答案2
您确定要这样做吗?Publisher 的类旨在提供特定的外观,而并非真正为选择字体等一般选项而设计。特别是在这种情况下,虽然可以强制底层类article
加载 12pt 字体,但指定的所有标题和间距svmono
都是固定点大小,不适应 12pt。
话虽如此,你可以这样做
\documentclass[my12pt]{svmono}
\begin{document}
a\showoutput
\end{document}
如果你创建一个svmy12pt.clo
如下文件
\def\@rticle@options{12pt,twoside}
然后上面的文件显示
...\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
确认正在使用 12pt。
答案3
这就是我所做的。
%%overrides svmono font settings and makes font appear larger
\mag1200
%%overrides svmono font settings and makes font appear larger
\documentclass{svmono}
只需放大 pdf 输出,使其显示为 12pt,而无需更改文件.cls
。