当使用 XITS(与 xelatex 一起使用)时,\not
某些命令的显示过高。例如:
\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\def\nerode{\equiv}
\begin{document}
\huge$\not\models \not\nerode \not\equiv$
\end{document}
被展示:
也就是说,只有 (\not\equiv
可能本身就是一个字形)才能正确打印。将上面的结果与下面的结果(没有unicode-math
和XITS Math
)进行比较:
有什么办法可以解决这个问题?
谢谢!
答案1
unicode-math
应在可用时加载预定义的否定符号,因此\not\equiv
与相同\nequiv
,但似乎并非所有别名都得到了处理(\not\vDash
有效但无效\not\models
)。
unicode-math
简单定义\not
以便检查下一个 csname,如果存在该名称n
或not
前缀的 csname,它将使用它,否则它只会放置斜线。
一个简单的修复方法是定义\n…
那些不适合你的 csnames,例如:
\let\nnerode\nequiv
\let\nmodels\nvDash
答案2
通常\not
这只是一个穷人的解决方案,将斜线状字形与后面的关系符号叠加在一起。但是,可以通过连字符来选择正确的字形,从而改善结果。这里的情况可能就是这样\not\equiv
。
两个否定字符均可直接使用。在unicode-math-table.tex
宏名称中可以找到:
- ≢: U+2262 与以下内容不同:
\nequiv
- ⊭:U+22AD 不正确:
\nvDash
因此可以直接使用它们:
\documentclass{article}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\begin{document}
$\nvDash\nequiv$ % standard names (unicode-math-table.tex)
$⊭≢$ % direct
\end{document}