只要我不使用 \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
和。例如,如果您将文档的点大小选项从默认更改为,则必须手动修改字体分配。\font
10pt
11pt
你应该依赖字体选择方案,这并不难。首先,定义一个字体系列
\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}