![如何用 kpfonts 编写 \nsupseteq?](https://linux22.com/image/343099/%E5%A6%82%E4%BD%95%E7%94%A8%20kpfonts%20%E7%BC%96%E5%86%99%20%5Cnsupseteq%EF%BC%9F.png)
\documentclass[9pt, a4paper]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper, total={170mm,257mm}, left=20mm, top=20mm,}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{kpfonts}
\begin{document}
$\nsupseteq \, \nsubseteq$
\end{document}
如果我尝试运行它(在 ShareLaTeX 中),那么的符号\nsupseteq
看起来会很奇怪,但\nsubseteq
不会。
我发现问题出在包装上kpfonts
。但我确实喜欢这个字体。
我该如何解决?
答案1
这是字体中的一个错误jkpsyb
;在 slot 中0x2B
有与 slot 中相同的符号0x29
,而不是 slot 中符号的类似物0x2A
。以下是字体表的相关部分:
底线表明了问题所在。
解决方法:
\documentclass[9pt, a4paper]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{a4paper, total={170mm,257mm}, left=20mm, top=20mm,}
\usepackage{amsmath}
\usepackage{kpfonts}
\renewcommand{\nsupseteq}{\not\mathrel{}\supseteq}
\renewcommand{\nsubseteq}{\not\mathrel{}\subseteq}
\begin{document}
$\nsupseteq \, \nsubseteq$
\end{document}
这会改变用于\not
否定的两个符号;只有改变错误的符号才会使它们不相似。
为什么奇怪\mathrel{}
?因为该kpfonts
包试图智取胜:它重新定义\not
为向前看,以查看后面是否有可以否定的符号。因此,\not\supseteq
我们将以无限循环结束,因为它将被翻译成,\nsupseteq
而这又被翻译成\not\supseteq
……
由于\notmathrel
均未\nmathrel
定义,因此不执行任何替换。连续关系原子之间没有空格,因此 的效果\not\mathrel{}<relation>
与 相同\not<relation>
。
请注意,不要amssymb
与 一起加载kpfonts
。