使用符号而不使用包

使用符号而不使用包

我需要使用符号 \varheartsuit并且\vardiamondsuit在包中fdsymbol没有改变其他字体,所以我无法使用命令\usepackage{fdsymbol}

这个答案建议使用\DeclareSymbolFont\DeclareMathSymbol,但简单的替换在这里不起作用。

那么我怎样才能做类似的工作呢?

感谢您付出的时间和精力。

答案1

这是一个简短的工作示例:

\documentclass{article}
\DeclareFontFamily{U}{FdSymbolA}{}
\DeclareFontShape{U}{FdSymbolA}{m}{n}{<->FdSymbolA-Book}{}
\DeclareSymbolFont{extrasymbols}{U}{FdSymbolA}{m}{n}
\DeclareMathSymbol{\vardiamondsuit}{\mathord}{extrasymbols}{182}
\DeclareMathSymbol{\varheartsuit}{\mathord}{extrasymbols}{184}
\begin{document}
$\vardiamondsuit\varheartsuit$
\end{document}

解释:

\vardiamondsuit定义为FdSymbolA-Book.pfb中的第182个字符。

\varheartsuit定义为FdSymbolA-Book.pfb中的第184个字符。

结果:

在此处输入图片描述

答案2

补充@domperor 的回答,对于文本模式下的符号,\usefont可以使用该命令。

使用字体

平均能量损失

\documentclass{article}
\DeclareFontFamily{U}{FdSymbolA}{}
\DeclareFontShape{U}{FdSymbolA}{m}{n}{<->FdSymbolA-Book}{}
\newcommand\vardiamondsuit{{\usefont{U}{FdSymbolA}{m}{n}\char182}}
\newcommand\varheartsuit{{\usefont{U}{FdSymbolA}{m}{n}\char184}}
\begin{document}
x\vardiamondsuit\varheartsuit x
\end{document}

附录:

有各种包,例如fonttable,用于显示字体的内容。

或者您可以直接loop通过传统字体的 <=256 \chars(注意:一些 Unicode 字体有数千个字形):

一些字形

平均能量损失

\documentclass[12pt]{article}
\usepackage{xcolor}
%\usepackage{fdsymbol}
\DeclareFontFamily{U}{FdSymbolA}{}
\DeclareFontShape{U}{FdSymbolA}{m}{n}{<->FdSymbolA-Book}{}

%=============== font table labels
\newcommand\ftlabel[1]{{\usefont{OT1}{lmr}{m}{n}\scriptsize #1}}

%------------------- font table
\newcommand\displayglyphs{%
\count255 = 0
\loop  
\iffontchar\font\number\count255{%*
\ftlabel{[\number\count255 =}\colorbox{yellow!30}{\textcolor{red!70!blue!80}{{\large\char\number\count255}}}\ftlabel{] } %need space for line-breaking
}\fi
\ifnum\count255 < 256
\advance\count255 by 1
\repeat
}

%=====================================
\begin{document}
\usefont{U}{FdSymbolA}{m}{n}
\displayglyphs
\end{document}

相关内容