我使用\mathabx
包是因为我更喜欢它们的数学符号。除了空集符号($\emptyset$
在LaTeX
)。我想用标准的 Computer Modern 符号来更改它。但我不知道怎么做。有一些导入特定符号的示例,但我不明白。
例如,代码
\DeclareFontFamily{U}{matha}{\hyphenchar\font45}
\DeclareFontShape{U}{matha}{m}{n}{
<5> <6> <7> <8> <9> <10> gen * matha
<10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
}{}
\DeclareSymbolFont{matha}{U}{matha}{m}{n}
\DeclareFontSubstitution{U}{matha}{m}{n}
\DeclareMathSymbol{\abxcup}{\mathbin}{matha}{'131}
摘自问题标准 \cup 与 mathabx \cup。 问题从不同字体导入单个符号也有类似的代码。我该如何更改它们以获得标准的空集符号?
谢谢
答案1
为了完整起见,我提供了原始解决方案,假设所需的字体尚未由 TeX 加载。之后,我展示了一个简化的解决方案,因为cmsy
(Computer Modern 符号字体系列)已默认加载。
漫漫长路:
mathabx
在这里,加载后,我声明并定义了cmsy
字体系列,可在 TeXbook 第 431 页找到。 cmsy
是计算机现代符号字体系列在 TeX 中的名称。之所以称为字体“系列”,是因为字体有不同的大小,并\DeclareFontShape
根据请求的字体大小指示要使用哪个字形集(系列成员)。
我创建了一个Xcmsy
指向cmsy
字体系列的新符号字体。然后我将符号声明\cmemptyset
为类别mathord
,并位于Xcmsy
字体的第 59 个插槽中。
如果取消注释这两fonttable
行代码,您将看到以表格形式打印出来的 cmsy 字体,并且可以验证在插槽 59 处找到了空集字形。
\documentclass{article}
\usepackage{mathabx}
% =============================================
%Import symbols from font cmsy without importing the whole package
% =============================================
\DeclareFontFamily{U} {cmsy}{}
\DeclareFontShape{U}{cmsy}{m}{n}{
<-8> cmsy7
<8-9> cmsy8
<9-10> cmsy9
<10-> cmsy10}{}
\DeclareSymbolFont{Xcmsy} {U} {cmsy}{m}{n}
\DeclareMathSymbol{\cmemptyset}{\mathord}{Xcmsy}{59}
% =============================================
%\usepackage{fonttable}
\begin{document}
\centering
$\emptyset \cmemptyset$
%\tiny\fonttable{cmsy8}
\end{document}
捷径(仅适用于现代计算机):
因为 Computer Modern 已经被 TeX 加载为默认字体,所以之前的方法大部分都是多余的,答案可以简化(正如 GuM 所指出的):
\documentclass{article}
\usepackage{mathabx}
% =============================================
\DeclareMathSymbol{\cmemptyset}{\mathord}{symbols}{59}
% =============================================
\begin{document}
\centering
$\emptyset \cmemptyset$
\end{document}