更改选定数学字母的大小

更改选定数学字母的大小

我陷入了作者和出版商之间的争论,sty文件令人不快。:-)出版商重新定义\normalsize为 9.5pt,并相应地更改数学大小。lmodern对于大多数符号来说,使用这个不是问题,但和 存在问题bbmmathrsfs代码

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{mathrsfs,bbm}

\makeatletter
% taken from the sty file I must use
\renewcommand\normalsize{%
   \@setfontsize\normalsize{9.5}{13}%
   \abovedisplayskip9.5\p@\@plus2\p@\@minus5\p@
   \abovedisplayshortskip\z@\@plus3\p@
   \belowdisplayshortskip6\p@\@plus3\p@\@minus3\p@
   \belowdisplayskip\abovedisplayskip
   \let\@listi\@listI}
\DeclareMathSizes{9.5}{9.5}{\@viipt}{\@vpt}
\makeatother

\begin{document}

Hello world $\mathbbm{N}$, $\mathscr{B}$

\end{document}

返回可以理解的警告

LaTeX Font Warning: Font shape `U/rsfs/m/n' in size <9.5> not available
(Font)              size <9> substituted on input line 22.


LaTeX Font Warning: Font shape `U/bbm/m/n' in size <9.5> not available
(Font)              size <9> substituted on input line 22.


LaTeX Font Warning: Size substitutions with differences
(Font)              up to 0.5pt have occurred.

假设我无法更改字体,并且考虑到从视觉上看\mathbbm{N}$\mathscr{B}看起来都很好(9pt 和 9.5pt 之间的差异并不大),有没有办法告诉和TeX使用 9pt 大小?或者有没有办法抑制这两个数学字母的警告?\mathbbm\mathscr

答案1

您可以使用以下“第二层”补丁:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{mathrsfs,bbm}

\makeatletter

% taken from the sty file I must use
\renewcommand\normalsize{%
   \@setfontsize\normalsize{9.5}{13}%
   \abovedisplayskip9.5\p@\@plus2\p@\@minus5\p@
   \abovedisplayshortskip\z@\@plus3\p@
   \belowdisplayshortskip6\p@\@plus3\p@\@minus3\p@
   \belowdisplayskip\abovedisplayskip
   \let\@listi\@listI}
\DeclareMathSizes{9.5}{9.5}{\@viipt}{\@vpt}

\makeatother

% further patch:
% Adapted from "ursfs.fd":
\DeclareFontFamily{U}{rsfs}{\skewchar\font127 }
\DeclareFontShape{U}{rsfs}{m}{n}{%
   < -6> rsfs5
   <6-8> rsfs7
   <8- > rsfs10
}{}

% Adapted from "ubbm.fd":
\DeclareFontFamily{U}{bbm}{}
\DeclareFontShape{U}{bbm}{m}{n}
   {  <5> <6> <7> <8> <9> <10> <12> gen * bbm
      <9.5> bbm9 % <<< ADDED
      <10.95> bbm10%
      <14.4>  bbm12%
      <17.28><20.74><24.88> bbm17}{}
\DeclareFontShape{U}{bbm}{m}{sl}
   {  <5> <6> <7> bbmsl8%
      <8> <9> <10> <12> gen * bbmsl
      <9.5> bbmsl9 % <<< ADDED
      <10.95> bbmsl10%
      <14.4> <17.28> <20.74> <24.88> bbmsl12}{}
\DeclareFontShape{U}{bbm}{bx}{n}
   {  <5> <6> <7> <8> <9> <10> <12> gen * bbmbx
      <9.5> bbmbx9 % <<< ADDED
      <10.95> bbmbx10%
      <14.4> <17.28> <20.74> <24.88> bbmbx12}{}
\DeclareFontShape{U}{bbm}{bx}{sl}
   {  <5> <6> <7> <8> <9>
      <9.5> % <<< ADDED
      <10> <10.95> <12> <14.4> <17.28>%
      <20.74> <24.88> bbmbxsl10}{}
\DeclareFontShape{U}{bbm}{b}{n}
   {  <5> <6> <7> <8> <9>
      <9.5> % <<< ADDED
      <10> <10.95> <12> <14.4> <17.28>%
      <20.74> <24.88> bbmb10}{}



\begin{document}

Hello world $\mathbbm{N}$, $\mathscr{B}$

\Huge

Hello world $\mathbbm{N}$, $\mathscr{B}$

\footnotesize

Hello world $\mathbbm{N}$, $\mathscr{B}$

\end{document}

bbm但请注意,我在我的文件中找不到任何关于字体的提及pdftex.map,事实上,当我编译您的示例时,pdftex 使用 PK 字体 ( bbm9.600pk) 来表示从该字体绘制的字符。这意味着这些字体的轮廓版本不可用,因此使用上面显示的技巧需要在运行时为实际使用的每个新尺寸创建新的 PK 字体。

相关内容