借用符号,彰显风格

借用符号,彰显风格

例子演示了如何从 导入符号MnSymbol。我发现代码很长而且很复杂,不知道是否存在更优雅的方法。此外,可能还有一种方法不需要“浪费宝贵的数学字母资源”。

邮政建议一种方法(尽管不适用于MnSymbol)。据我所知,当字体“提供.fd文件”时,这种替代方法特别合适。这是什么意思?MnSymbol提供.fd文件吗?否则,创建这些文件有多难,以便可以使用更少的代码行导入符号?在哪些情况下应该使用pifont导入字体的方法,而不是不使用任何包的方法(如我的第一个链接所示)?

是否有其他特别适合导入符号的包?这个常问问题建议亚古西洛但它自 2009 年以来就没有更新过,而且似乎没有太多用过的

我对从 导入特别感兴趣MnSymbol,更具体地说,导入诸如、\ntriplesim等符号,但如果这个问题可以得到一般性的回答(针对任何字体),当然更好。\nlessgtr\ngtreqlessslant

答案1

以下是您提到的三个符号:

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}

\DeclareRobustCommand{\frommnsymbol}[3]{%
  %1 = atom type, #2 = mnsymbol font, #3 = character
  #1{\text{\usefont{U}{MnSymbol#2}{m}{n}\symbol{#3}}}%
}

%\DeclareFontFamily{U}{MnSymbolA}{}
%\DeclareFontFamily{U}{MnSymbolB}{}
%\DeclareFontFamily{U}{MnSymbolC}{}
\DeclareFontFamily{U}{MnSymbolD}{}
%\DeclareFontFamily{U}{MnSymbolF}{}

%\DeclareFontShape{U}{MnSymbolA}{m}{n}{
%    <-6>  MnSymbolA5
%   <6-7>  MnSymbolA6
%   <7-8>  MnSymbolA7
%   <8-9>  MnSymbolA8
%   <9-10> MnSymbolA9
%  <10-12> MnSymbolA10
%  <12->   MnSymbolA12}{}
%\DeclareFontShape{U}{MnSymbolB}{m}{n}{
%    <-6>  MnSymbolB5
%   <6-7>  MnSymbolB6
%   <7-8>  MnSymbolB7
%   <8-9>  MnSymbolB8
%   <9-10> MnSymbolB9
%  <10-12> MnSymbolB10
%  <12->   MnSymbolB12}{}
%\DeclareFontShape{U}{MnSymbolC}{m}{n}{
%    <-6>  MnSymbolC5
%   <6-7>  MnSymbolC6
%   <7-8>  MnSymbolC7
%   <8-9>  MnSymbolC8
%   <9-10> MnSymbolC9
%  <10-12> MnSymbolC10
%  <12->   MnSymbolC12}{}
\DeclareFontShape{U}{MnSymbolD}{m}{n}{
    <-6>  MnSymbolD5
   <6-7>  MnSymbolD6
   <7-8>  MnSymbolD7
   <8-9>  MnSymbolD8
   <9-10> MnSymbolD9
  <10-12> MnSymbolD10
  <12->   MnSymbolD12}{}
%\DeclareFontShape{U}{MnSymbolF}{m}{n}{
%    <-6>  MnSymbolF5
%   <6-7>  MnSymbolF6
%   <7-8>  MnSymbolF7
%   <8-9>  MnSymbolF8
%   <9-10> MnSymbolF9
%  <10-12> MnSymbolF10
%  <12->   MnSymbolF12}{}

\newcommand{\ntriplesim}{\frommnsymbol{\mathrel}{D}{"7E}}
\newcommand{\nlessgtr}{\frommnsymbol{\mathrel}{D}{"C0}}
\newcommand{\ngtreqlessslant}{\frommnsymbol{\mathrel}{D}{"C7}}

\begin{document}

$a\ntriplesim b$ $a\nlessgtr b$ $a\ngtreqlessslant b$

$X_{a\ntriplesim b}$ $X_{a\nlessgtr b}$ $X_{a\ngtreqlessslant b}$

\end{document}

我注释掉了未使用的字体。

字体声明直接借用自MnSymbol.sty。字母和代码是如何确定的?

我寻找MnSymbol.sty三个符号

\Decl@Mn@Char\ntriplesim             {MnSyD}{\mathrel}
\Decl@Mn@Char\nlessgtr               {MnSyD}{\mathrel}
\Decl@Mn@Char\ngtreqlessslant        {MnSyD}{\mathrel}

这决定了要使用的字母。不幸的是,MnSymbol没有使用符号的明确代码,但有一个技巧可以在不计算文件的情况下获取它们:latexdef -p MnSymbol后面跟着符号的名称将显示必要的代码。

> latexdef -p MnSymbol ntriplesim nlessgtr ngtreqlessslant

\ntriplesim:
\mathchar"377E

\the\ntriplesim:
14206

\nlessgtr:
\mathchar"37C0

\the\nlessgtr:
14272

\ngtreqlessslant:
\mathchar"37C7

\the\ngtreqlessslant:
14279

因此我可以提供表示中的最后两位数字作为字符代码\mathchar

相关内容