根据这个答案https://tex.stackexchange.com/a/82121/16895 \not
被定义为(在unicode-math
)查找下一个 csname 并查看是否存在以n
或为前缀的 csname not
。
然而,当我使用以下 MWE
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\begin{document}
$a\not= b$ $a\neq b$
$\not\vdash$ $\nvdash$
$\not\vDash$ $\nvDash$
$\not\equiv$ $\nequiv$
\end{document}
我明白了
显然,的组合\not\...
不会产生与等效字形相同的结果。
我误解了上面的答案吗?或者否定符号的正确方法是什么(在大多数情况下,\not
出于可移植性原因,我更愿意使用,例如,\nequiv
在大多数字体中不可用,根据综合符号指南,它在几个包中可用,例如不在amssymb
)
答案1
在从 0.7e 版本到 0.7f 版本的过程中,unicode-math
发生了一些变化,并且定义
\cs_set_eq:NN \not \not_newnot:N
现在被unicode-math-table.tex
\UnicodeMathSymbol{"00338}{\not}{\mathaccent}{combining long solidus overlay}
我猜测加载顺序已经改变。
解决方法:
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\ExplSyntaxOn
\AtBeginDocument{\cs_set_eq:NN \not \not_newnot:N}
\ExplSyntaxOff
\begin{document}
$a\not= b$ $a\neq b$
$\not\vdash$ $\nvdash$
$\not\vDash$ $\nvDash$
$\not\equiv$ $\nequiv$
\end{document}