我看到了这个问题:从不同字体导入单个符号我试图弄清楚如何对 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}