从其他字体导入符号而不浪费数学字母

从其他字体导入符号而不浪费数学字母

我希望从中导入一个符号newtxmath以供使用kpfonts无需使用数学字母表。如图所示这个问题如果人们愿意浪费一个数学字母表,那么这样做很容易,但在回答这个问题,egreg似乎说可以通过使用该pifont包来避免这种情况。

作为参考,这可行,但会用掉数学字母表:

\documentclass{article}
\usepackage{kpfonts}
\makeatletter
\DeclareSymbolFont{ntxletters}{OML}{ntxmi}{m}{it}
\re@DeclareMathSymbol{\newpartial}{\mathord}{ntxletters}{64}
\makeatother
\begin{document}
\[ \partial \newpartial \]
\end{document}

按照 (据我所知) egreg 的说明,我将得到以下信息:

\documentclass{article}
\usepackage{kpfonts}
\usepackage{pifont}
\makeatletter
\newcommand\Pimathsymbol[3][\mathord]{%
  #1{\@Pimathsymbol{#2}{#3}}}
\def\@Pimathsymbol#1#2{\mathchoice
  {\@Pim@thsymbol{#1}{#2}\tf@size}
  {\@Pim@thsymbol{#1}{#2}\tf@size}
  {\@Pim@thsymbol{#1}{#2}\sf@size}
  {\@Pim@thsymbol{#1}{#2}\ssf@size}}
\def\@Pim@thsymbol#1#2#3{%
  \mbox{\fontsize{#3}{#3}\Pisymbol{#1}{#2}}}
\makeatother
\newcommand{\newpartial}{\Pimathsymbol[\mathord]{ntxmmi}{64}}
\begin{document}
\[ \partial \newpartial \]
\end{document}

编译通过但出现以下错误消息:

Some font shapes were not available, defaults substituted.
Font shape `U/ntxmmi/m/n' undefined
(Font)  using `U/jkpexa/m/n' instead.

输出也是错误的,用 (下标?) 代替\oiintctrclockwisekpfonts我猜这个符号填满了字体的 64 个位置jkpexa

如果我正确理解了 egreg,那么这种方法对于上述链接的问题来说是不够的,因为提问者希望从 导入一个符号mathabx,而这不提供.fd文件。但据我所知,newtxmath 提供(至少一些).fd文件这里

(请注意,我使用的是 pdfLaTeX。不确定这是否足以成为标签。)

答案1

这仅适用于“Pi”字体的符号。

如果你不需要符号来尊重\boldmath,那就很简单了

\newcommand{\newpartial}{\mathord{\text{\usefont{OML}{ntxmi}{m}{it}\symbol{64}}}}

完整例子。

\documentclass{article}
\usepackage{amsmath}
\usepackage{kpfonts}

\newcommand{\newpartial}{}
\DeclareRobustCommand{\newpartial}{%
  \mathord{\text{\usefont{OML}{ntxmi}{m}{it}\symbol{64}}}%
}

\begin{document}

\[ \partial \newpartial \]

\end{document}

在此处输入图片描述

最好使用,\DeclareRobustCommand这样如果符号在某些移动参数中得到应用,.aux文件中就不会出现垃圾。

为了\boldmath

\documentclass{article}
\usepackage{amsmath}
\usepackage{kpfonts}
\usepackage{pdftexcmds}

\newcommand{\newpartial}{%
  \mathord{\text{\usefont{OML}{ntxmi}{\mediumorbold}{it}\symbol{64}}}%
}
\makeatletter
\newcommand{\mediumorbold}{%
  \ifnum\pdf@strcmp{\math@version}{bold}=0 b\else m\fi
}
\makeatother

\begin{document}

\[ \partial \newpartial \]

\boldmath
\[ \partial \newpartial \]

\end{document}

在此处输入图片描述

相关内容