我真的很喜欢 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
例如。