更改现有文档类的字体大小

更改现有文档类的字体大小

我真的很喜欢 tufte-book 文档类,但我真的不喜欢屏幕上的字体那么小。

我想将字体大小重新定义为大一点。我以为在 tufte-common.def(第 341 - 380 行)中编辑以下内容可以解决问题,但是当我重新运行 pdflatex 时... 不行。

%%
% Set the font sizes and baselines to match Tufte's books
\renewcommand\normalsize{%
   \@setfontsize\normalsize\@xpt{14}%
   \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@
   \abovedisplayshortskip \z@ \@plus3\p@
   \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
   \belowdisplayskip \abovedisplayskip
   \let\@listi\@listI}
\normalbaselineskip=14pt
\normalsize
\renewcommand\small{%
   \@setfontsize\small\@ixpt{12}%
   \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus2\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\footnotesize{%
   \@setfontsize\footnotesize\@viiipt{10}%
   \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
   \abovedisplayshortskip \z@ \@plus\p@
   \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
   \def\@listi{\leftmargin\leftmargini
               \topsep 3\p@ \@plus\p@ \@minus\p@
               \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
   \belowdisplayskip \abovedisplayskip
}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viipt\@viiipt}
\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
\renewcommand\large{\@setfontsize\large\@xipt{15}}
\renewcommand\Large{\@setfontsize\Large\@xiipt{16}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xivpt{18}}
\renewcommand\huge{\@setfontsize\huge\@xxpt{30}}
\renewcommand\Huge{\@setfontsize\Huge{24}{36}}

我尝试将 @xpt{14} 改为 16,等等。有没有办法用 tex 文档中的几行代码将类中的所有字体大小都增加 +2?这比编辑包的源代码要好。

答案1

如果类不支持不同的字体大小设置,那么最好的解决方案确实是自己编写一个小包,将所有必要的设置放在其中,然后覆盖类中的内容。

从历史上看,LaTeX 有大量的缩写,以节省空间(在某些情况下还可以节省处理时间)。虽然它们不再真正需要,但它们仍然存在,并在很多地方使用。但绝对有必要将它们视为常量,而不要试图通过修改\p@或调整某些内容\@xpt——这很可能会造成严重破坏。

而是用“正常”值替换定义和设置,例如,

\renewcommand\normalsize{%
   \@setfontsize\normalsize{10}{14}%
   \abovedisplayskip 10pt \@plus 2pt \@minus 5pt
   ...
}
\renewcommand\small{%
   \@setfontsize\small{10.95}{12}%
   ...
}
\renewcommand\scriptsize{\@setfontsize\scriptsize{7}{8}}
\renewcommand\tiny{\@setfontsize\tiny{5}{6}}
\renewcommand\large{\@setfontsize\large{10.95}{15}}
\renewcommand\Large{\@setfontsize\Large{12}{16}}
\renewcommand\LARGE{\@setfontsize\LARGE{14.4}{18}}
\renewcommand\huge{\@setfontsize\huge{20.74}{30}}
\renewcommand\Huge{\@setfontsize\Huge{24}{36}}

现在需要注意的是,在上述定义中,第一个数字是字体大小,第二个数字是使用的基线跳跃。因此,您可能需要调整两者以适应(以及您使用的字体)。因此,毫不奇怪,您只更改了第二个,但\@xpt字体没有改变。

另外那些常量\@xipt不一定是整数,它们在 LaTeX 中的定义是:

 \def\@vpt{5}
 \def\@vipt{6}
 \def\@viipt{7}
 \def\@viiipt{8}
 \def\@ixpt{9}
 \def\@xpt{10}
 \def\@xipt{10.95}
 \def\@xiipt{12}
 \def\@xivpt{14.4}
 \def\@xviipt{17.28}
 \def\@xxpt{20.74}
 \def\@xxvpt{24.88}

以适应 Computer Modern 字体提供的尺寸。如果您使用其他连续尺寸的字体,则可以使用其他数字,例如 11 或 13。

最后,其他尺寸(例如作为您使用的字体大小的一部分设置的\normalsize\small在视觉上可能取决于您使用的字体大小的尺寸)因此将它们相互关联地考虑是有意义的。

答案2

 \@setfontsize\normalsize\@xpt{14}%

表示将字体设置为 10pt,基线为 14pt(\@xpt缩写只是为了节省一点空间和时间,我认为你把它改成了

 \@setfontsize\normalsize\@xpt{16}%

这是 10pt 字体,16pt 基线,你想要

 \@setfontsize\normalsize{12}{16}%

或类似的东西。

请注意,如果您使用数学,则需要进行设置以匹配。

答案3

我用了:

\makeatletter
\renewcommand\scriptsize{\@setfontsize\scriptsize{7}{8}}
\renewcommand\tiny{\@setfontsize\tiny{5}{6}}
\renewcommand\small{\@setfontsize\small{12}{14}}
\renewcommand\normalsize{\@setfontsize\normalsize{14}{18}}
\renewcommand\large{\@setfontsize\large{10.95}{15}}
\renewcommand\Large{\@setfontsize\Large{12}{16}}
\renewcommand\LARGE{\@setfontsize\LARGE{14.4}{18}}
\renewcommand\huge{\@setfontsize\huge{20.74}{30}}
\renewcommand\Huge{\@setfontsize\Huge{24}{36}}
\makeatother

例如。

相关内容