用于数学方程式的新的本地定义的数学字体

用于数学方程式的新的本地定义的数学字体

我想使用 mathcal 的数学字体,即:“pxtx”和“dutchcal”,这两个字体在这篇文章中有详细说明回答。但是,我不想更改标准数学字体,而只是在本地使用这些字体。我该怎么做?

一些额外的信息。感谢@Mico:

1)我使用 amsfont 包。下图中的 F 是标准的数学字体:

在此处输入图片描述

2)文档类:IEEEtran

3)pdfLaTeX

4)我使用\mathbb

答案1

我不确定我是否正确理解了您的问题。如果您需要在同一文档中使用两种不同的书法字母,最简单的方法是将一个加载为 ,将\mathcal另一个加载为\mathscrmathalpha(在较旧的安装中,您可能需要使用它的旧名称mathalfa。)

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[cal = pxtx, scr = dutchcal]{mathalpha}

\begin{document}

pxtx: \( \mathcal{ABC} \)

dutchcal: \( \mathscr{ABC} \)

\end{document}

字体示例

不过,我不确定你是否意味着你需要使用同一文档中的书法字母非常相似。(除非它是不同数学文字的样本,否则我想不出为什么。)

在这种情况下,请使用\DeclareMathAlphabet正确的系列和编码名称。我修改了以下代码mathalpha.sty

\documentclass{article}
\usepackage[T1]{fontenc}

% Based on the code from mathalpha.sty:

  \DeclareFontFamily{U}{dutchcal}{\skewchar \font =45}
  \DeclareFontShape{U}{dutchcal}{m}{n}{
    <-> dutchcal-r}{}
  \DeclareFontShape{U}{dutchcal}{b}{n}{
    <-> dutchcal-b}{}
  \DeclareMathAlphabet{\mdutchcal}{U}{dutchcal}{m}{n}
  \SetMathAlphabet{\mdutchcal}{bold}{U}{dutchcal}{b}{n}
  \DeclareMathAlphabet{\mdutchbcal} {U}{dutchcal}{b}{n}

  \DeclareFontFamily{U}{txcal}{\skewchar \font =45}
  \DeclareFontShape{U}{txcal}{m}{n}{
    <-> txr-cal}{}
  \DeclareFontShape{U}{txcal}{b}{n}{
    <-> txb-cal}{}
  \DeclareMathAlphabet{\mtxcal}{U}{txcal}{m}{n}
  \SetMathAlphabet{\mtxcal}{bold}{U}{txcal}{b}{n}
  \DeclareMathAlphabet{\mtxbcal} {U}{txcal}{b}{n}

\begin{document}

pxtx: \( \mtxcal{ABC} \)

dutchcal: \( \mdutchcal{ABC} \)

mathcal: \( \mathcal{ABC} \)

\end{document}

三个书法字母

如果你的某个软件包发生了变化\mathcal,而你需要恢复它,看到这个问题。\mathcal您还可以使用\let和 保存 的原始定义\renewcommand\mathcal

请注意,旧版 LaTeX 仅允许您声明有限数量的数学字母。解决此问题的一种方法是将脚本字体加载为文本字体(例如,来自 的 Fraktur 字体),并通过将其包装在来自oldgerm中在数学模式下使用它。\textamsmath

在带有 的现代工具链中unicode-math,您可以使用\setmathfontface创建任意数量的新数学字母表。您还可以使用\setmathfont[range=cal, Scale=MatchUppercase]{Some Font}\setmathfont[range=scr, Scale=MatchUppercase]{Another Font}加载新的脚本字母表。事实上,如果您不执行任何操作,它们将默认设置为相同的字体。

相关内容