从 Computer Modern 字体导入空集

从 Computer Modern 字体导入空集

我使用\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}

答案2

下面的答案受到该包的作者Anthony Phan在加载他的包时mathabx保留旧\emptyset符号(他称之为)的方式的启发(参见其文档的 TeX 源代码)。\voidsetmathabx

\documentclass{article}
\let\voidset=\emptyset
\usepackage{mathabx}
\let\emptyset=\voidset
\begin{document} 
$\emptyset$   
\end{document}

在此处输入图片描述

答案3

\emptyset使用包cancel在此处输入图片描述

\documentclass{article}
\usepackage{cancel, amsmath}
\usepackage{amssymb, mathabx} 
\begin{document}
\( \cancel{\bigcirc} \)
\end{document}

相关内容