使用自定义字体有 Bug 吗?

使用自定义字体有 Bug 吗?

只要我不使用 \bf,我的字体就可以正常工作。从我第一次使用 \bf 的 $$ 开始,以及此后的每个实例,我得到的都是粗体字母,而不是我定义的字体。我该如何解决这个问题?

问题可能在于我定义了自己的字体。AMSFonts 用户指南提到了几种可用于定义新字体的字体系列。由于它没有说明如何定义新字体,因此我不得不想出一种方法来定义我自己的字体,我称之为\Cal

\documentclass{article}
\usepackage{amsfonts}

\newfam\calfam
\font\calten=eusm10
\font\calseven=eusm7
\font\calfive=eusm5
\textfont\calfam=\calten
\scriptfont\calfam=\calseven
\scriptscriptfont\calfam=\calfive
\def\Cal{\fam=\calfam}

\begin{document}
${\Cal O}$ ${\Cal O}{\bf a}b{\Cal O}$ ${\Cal O}$
\end{document}

第一个\Cal O显示正常;其余的则显示为粗体。请注意,b 不会显示为粗体:因此粗体显然以 a 结束。但是,此后 O 继续显示为粗体。如何才能\Cal O在整个文档中显示常规的 '?

提前致谢。更新:

我找到了答案: 我使用 \textit 或 \it、\bfseries 或 \bf 等有关系吗

{\bf foo}, for example, resets all font attributes which had been set earlier before it prints foo in bold face.

换句话说,当我使用 bf 时,我猜它会重置我在定义字体时未定义的一些变量。虽然知道如何定义字体以使其恢复正常会很好,但我想在此期间我必须使用更长的 \mathbf。

答案1

这是典型的“不要这样做”代码。用户永远不应该在 LaTeX 中使用说明\newfam和。例如,如果您将文档的点大小选项从默认更改为,则必须手动修改字体分配。\font10pt11pt

你应该依赖字体选择方案,这并不难。首先,定义一个字体系列

\DeclareFontFamily{U}{eus}{\skewchar\font'60}
\DeclareFontShape{U}{eus}{m}{n}{%
     <-6>eusm5%
    <6-8>eusm7%
    <8->eusm10%
}{}
\DeclareFontShape{U}{eus}{b}{n}{%
     <-6>eusb5%
    <6-8>eusb7%
    <8->eusb10%
}{}

U编码是预定义的,不应用“转换”)。然后你可以定义一个新的数学字母表

\DeclareMathAlphabet{\matheucal}{U}{eus}{m}{n}
\SetMathAlphabet{\matheucal}{bold}{U}{eus}{b}{n}

在文档中你将使用“正确”的语法

$\matheucal{O}$ $\matheucal{O}\mathbf{a}b\matheucal{O}$ $\matheucal{O}$

有了\SetMathAlphabet指令,数学字母表将遵守\boldmath声明,如果\usepackage{bm}给出,则遵守代码

\bm{\matheucal{O}}

在正常数学版本下也会产生粗体书法“O”。

不仅如此,您还可以确保书法字母在、和类似声明有效的环境中具有正确的大小\large,而基于您的方法则不会出现这种\small情况。\footnotesize\font

话虽如此,这个eucal包确实做了上面概述的事情;如果你声明

\usepackage{eucal}

然后使用时将输出 Euler calligraphic \mathcal;如果你想保留\mathcal使用 Euler calligraphic 的原始含义以及默认的 calligraphic(但你不应该这样做,因为形状彼此之间没有太大区别),请通过以下方式加载包

\usepackage[mathscr]{eucal}

这将使欧拉书法可用\mathscr

答案2

\bf在 LaTeX 中已弃用,\textbf如果需要直立,则应使用 ,如果需要粗体斜体数学,\bm则应使用 。\usepackage{bm}

由于您使用的是 LaTeX,因此包中已经有一个针对您的问题的解决方案eucal。这样,您可以完全避免使用“hack together”方法:

\documentclass{article}
\usepackage{amsfonts,eucal}
\usepackage{bm}

\begin{document}
${\mathcal O}$%
${\mathcal O}{\bm a}b{\mathcal O}$%
${\mathcal O}$
\end{document}

在此处输入图片描述

相关内容