我如何暂时更改默认字体大小命令?

我如何暂时更改默认字体大小命令?

可能重复:
本地切换不同的字体大小

我被字体问题难住了。我使用特定的文档类来写我的论文:字体大小12pt适合整个文档,但在第一页我想使用 的大小11pt。问题是,在第一页我使用了很多\large、等\Large\huge并且使用这个:

\begingroup \fontsize{11pt}{12pt}\selectfont ga bu zo meu \endgroup

不更新\large等等。

\large那么:有人知道如何暂时改变字体大小并更新用于、、\Large\LARGE的大小\huge吗?

我知道我可以使用 KOMA 脚本但它似乎与我的一个包不兼容。

! LaTeX Error: Command \l@addto@macro already defined.
            Or name \end... illegal, see p.192 of the manual.

我还知道我可以单独生成我的第一页并合并 PDF 文件,但我想存在一种简单的方法可以做到这一点。不是吗?

答案1

您可以定义一个命令,该命令使用文件中包含的标准字体大小命令的定义size11.clo,然后使用此命令在本地更改大小:

\documentclass[12pt]{article}

\makeatletter
\newcommand\FontSizesXI{%
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xipt{13.6}%
   \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\normalsize
\renewcommand\small{%
   \@setfontsize\small\@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\footnotesize{%
   \@setfontsize\footnotesize\@ixpt{11}%
   \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 4\p@ \@plus2\p@ \@minus2\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
\renewcommand\tiny{\@setfontsize\tiny\@vipt\@viipt}
\renewcommand\large{\@setfontsize\large\@xiipt{14}}
\renewcommand\Large{\@setfontsize\Large\@xivpt{18}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xviipt{22}}
\renewcommand\huge{\@setfontsize\huge\@xxpt{25}}
\renewcommand\Huge{\@setfontsize\Huge\@xxvpt{30}}
}
\makeatother

\begin{document}

\begingroup
\FontSizesXI
{\tiny Some \scriptsize test \footnotesize text \small showing \normalsize the \large ten \Large available \LARGE font \huge size \Huge commands. }
\endgroup

{\tiny Some \scriptsize test \footnotesize text \small showing \normalsize the \large ten \Large available \LARGE font \huge size \Huge commands.}

\end{document}

在此处输入图片描述

答案2

如果可以使用 KOMA-Script,则可以通过\let\l@addto@macro\relax加载 KOMA-Script 类后声明来解决兼容性问题。

\documentclass[11pt]{scrartcl}

\makeatletter

\let\l@addto@macro\relax

\newcommand{\l@addto@macro}{Hello!}% placeholder for package defining \l@addto@macro

\makeatother

\usepackage{lipsum}

\begin{document}

\section{foo}

\lipsum[1]

\changefontsizes{12pt}

\section{bar}

\lipsum[1]

\end{document}

在此处输入图片描述

相关内容