100 如何高效优雅地从mathabx宏包中偷出来\measuredangle的符号?

发布于 2025-07-25 15:46:10

背景介绍

这个链接中有一些「偷」符号的信息。但是似乎没有介绍如何寻找cmex这样的字体族名对「偷」的思路介绍,所以再开一个问题。

texdoc comprehensive得到的symbols-a4.pdf中有:
image.png

为了让代码尽可能「轻」,减少与其他宏包如amssymb的定义重复,我想把这个符号「偷出来」:

我使用了如下的思路:

CTAN下载mathabx包的.zip文件,文件的目录结构如下:

image.png

./texinput/mathabx.dcl中:

% line 202
\DeclareMathSymbol{\measuredangle} {0}{mathb}{"3E}

同时 一通乱点乱搜 可以找到在./texinput/mathabx.sty中:

% line 51
\mathabx@mathb
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}
\end@mathabx

然后或许得到了一个可行的MWE:

\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}%必须放前面...
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareFontSubstitution{U}{mathb}{m}{n}
\DeclareMathSymbol{\measuredangle} {0}{mathb}{"3E}
\begin{document}

\[ a \measuredangle b \quad \mathbb{E}(X) \]

\end{document}

image.png

问题:

  1. 如何找到并熟悉常见的如cmexAMSa类似的“字体族名”?
  2. 上面的操作是正确的吗?一次正确的优雅的高效的的「偷字符操作」是不是总是要找到宏包中对字符定义的这一段?\DeclareFontFamily\DeclareFontShape\DeclareSymbolFont\DeclareFontSubstitution\DeclareMathSymbol一个不能少?
\DeclareFontFamily{U}{mathb}{\hyphenchar\font45}
\DeclareFontShape{U}{mathb}{m}{n}{
      <5> <6> <7> <8> <9> <10> gen * mathb
      <10.95> mathb10 <12> <14.4> <17.28> <20.74> <24.88> mathb12
      }{}
\DeclareSymbolFont{mathb}{U}{mathb}{m}{n}
\DeclareMathSymbol{\measuredangle} {0}{mathb}{"3E}
\DeclareFontSubstitution{U}{mathb}{m}{n}

Side-Notes: 基于unicode-math是否有XeTeX的(或许更便捷的)方案来偷mathabx中的\measuredangle呢?

查看更多

关注者
0
被浏览
79
1 个回答
Thallo
Thallo 1小时前
这家伙不懒,但还是什么也没写

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览