答案1
unicode-math
已检查是否\npropto
已定义(在本例中未定义),并且只有在未定义时才会返回到套印。它使用原始定义(保存为\__um_oldnot:
),这在这里并不合适,与其重新定义\not
以执行其他操作作为后备,不如稍微作弊,重新定义已保存的\__um_oldnot:
以套印/
。
对于任何否定组合看起来不太好的命令,只需定义\n
xxx要做其他事情,下面的例子展示了一个默认定位,然后如果你定义\npropto
使用垂直笔触,效果如下,
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{mathtools}
\usepackage{unicode-math}
\ExplSyntaxOn
\def\__um_oldnot:#1{\mathrel{%
\mathchoice
{\rlap{$\displaystyle\mkern1mu/$}}%
{\rlap{$\textstyle\mkern1mu/$}}%
{\rlap{$\scriptstyle/$}}%
{\rlap{$\scriptscriptstyle/$}}%
{#1}}}
\ExplSyntaxOff
\setmathfont{Latin Modern Math}
\begin{document}
$a \not\propto b$
\newcommand\npropto{\mathrel{|\mkern-12mu\propto}}
$a \not\propto b$
\end{document}