
간격과 관련하여 의 기본 정의는 \not\models
만족스럽지 않습니다.
\documentclass{article}
\usepackage{unicode-math}
\begin{document}
$a\models b$
$a\not\models b$
\end{document}
준다
나는 그것이 부족하기 때문이라고 생각합니다 \mathrel
. 수동으로 추가하면 올바른 간격이 제공됩니다. 물론 매번 이것을 입력하는 것은 허용되지 않으므로 이를 수행하기 위해 a를 정의하려고 합니다 \notmodels
.
unicode-math가 이전 버전을 일부 변경 \not
하고 \NewNegationCommand
.
그러나 아마도 순진한
\documentclass{article}
\usepackage{unicode-math}
\NewNegationCommand\models{\mathrel{\not\models}}
\begin{document}
$a\models b$
$a\notmodels b$
\end{document}
제공 :TeX 용량을 초과했습니다. 죄송합니다. [의미 중첩 크기=500]. $a\not모델
끝없는 재귀를 의심하면서 시도해 보았습니다.
\documentclass{article}
\usepackage{unicode-math}
\edef\ysnm{\not\models}
\NewNegationCommand\models{\mathrel{\ysnm}}
\begin{document}
$a\models b$
$a\notmodels b$
\end{document}
그러나 그것은 다음을 제공합니다 :누락된 { 삽입됨. $a\not모델, 나는 그것이 꽤 불안하다고 생각합니다.
세 번째 시도
\documentclass{article}
\usepackage{unicode-math}
\AtBeginDocument{
\newbox\boxnm
\setbox\boxnm=\hbox{$\not\models$}
\NewNegationCommand\models{\mathrel{\copy\boxnm}}
}
\begin{document}
$a\models b$
$a\notmodels b$
\end{document}
공장…
그러나 나는 이것이 매우 당혹스럽다고 생각한다.
어떻게 하면 더 나은 방법 으로 이 문제 에서 벗어날 수 있습니까 ?
답변1
기호를 부정하는 것은 고통스럽습니다 unicode-math
. :-(
하지만 탈출구가 있습니다.:-)
\documentclass{article}
\usepackage{unicode-math}
\Umathchardef\altnot=3 \symsymbols "0338
\NewNegationCommand{\models}{\models\mathrel{\mkern1mu}\altnot\mkern-1mu}
\begin{document}
$a\models b$
$a\not\models b$
$a\notmodels b$
\end{document}
구문은 다음과 \NewNegatedCommand
같습니다.
\NewNegatedCommand{\foo}{<code>}
\foo
부정할 관계 기호는 어디에 있습니까? 이는 조합 \not\foo
과 명령을 모두 정의합니다 \notfoo
.
여기서는 충돌을 피하기 위해 작은 컨을 사용합니다.
그건 그렇고, 이것은 LuaLaTeX에서 \mathoverlayaccent
조합이 \not\models
작동하기 때문에 (잘못된 간격을 제공하더라도) XeTeX의 버그인 것 같습니다.
\NewNegationCommand{\models}{\mathrel{\notaccent\models}}
하지만 출력이 만족스럽지 못함
이 솔루션은 \altnot
XeLaTeX 및 LuaLaTeX 모두에서 작동합니다.
답변2
이유는 묻지 마세요. 다음은 작동합니다(기본적으로 수동으로 하나의 확장을 수행합니다).
\documentclass{article}
\usepackage{unicode-math}
\NewNegationCommand{\models}{\mathrel{\not⊧}}
\begin{document}
$a\models b$
$a\notmodels b$
\end{document}