如何从“fdsymbol”导入一些符号?

如何从“fdsymbol”导入一些符号?

我看到了这个问题:从不同字体导入单个符号我试图弄清楚如何对 fdsymbol符号进行操作:\neswarrow, \leftrightarrow, \nwsearrow, \updownarrow

我无法加载该 fdsymbol包,因为它破坏了一些amsmath符号:-(......

你能帮我吗?

谢谢你!

答案1

其中fdsymbol.sty没有槽号,必须手动计数。

有人发现

\fdsy@setslot{0}
\fdsy@DeclareSymbol{\rightarrow}{arrows}{\mathrel}

这意味着\rightarrow位于arrows符号字体的 0 号位置。查找所需的符号并计算得出

  • \leftrightarrow位于第 16 个位置
  • \updownarrow位于 17 号位置
  • \neswarrow位于 18 号位置
  • \nwsearrow位于 19 号位置

我们还发现

\DeclareSymbolFont{arrows}{U}{FdSymbolC}{m}{n}

因此我们还需要复制此字体的字体定义并取消定义\updownarrow

您可能想要更改缩放值。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}

\makeatletter
\def\fdsy@scale{1}
\newcommand\fdsy@mweight@normal{Book}
\newcommand\fdsy@mweight@small{Book}
\newcommand\fdsy@bweight@normal{Medium}
\newcommand\fdsy@bweight@small{Medium}
\DeclareFontFamily{U}{FdSymbolC}{}
\DeclareFontShape{U}{FdSymbolC}{m}{n}{
    <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@mweight@small
    <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@mweight@normal
}{}
\DeclareFontShape{U}{FdSymbolC}{b}{n}{
    <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@bweight@small
    <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@bweight@normal
}{}
\makeatother

\DeclareSymbolFont{fdarrows}{U}{FdSymbolC}{m}{n}
\SetSymbolFont{fdarrows}{bold}{U}{FdSymbolC}{m}{n}

\DeclareMathSymbol{\leftrightarrow}{\mathrel}{fdarrows}{16}
\let\updownarrow\relax
\DeclareMathSymbol{\updownarrow}{\mathrel}{fdarrows}{17}
\DeclareMathSymbol{\neswarrow}{\mathrel}{fdarrows}{18}
\DeclareMathSymbol{\nwsearrow}{\mathrel}{fdarrows}{19}

\begin{document}

$\leftrightarrow\updownarrow\neswarrow\nwsearrow$

\end{document}

在此处输入图片描述

相关内容