我使用该包turnstile
,但仅用于定义我自己的宏,因为它没有定义否定的旋转门,并且它的旋转门太高了。
我的非负向旋转闸门对我来说看起来不错(没有turnstile
定义的那样高)。我的负向旋转闸门看起来不错本身也是,但是周围的间距都错了。
cancel
按照描述使用包这里,在我看来是错误的,因为该条跨越了水平条下方或上方的任何文本,而不是仅仅跨越垂直笔划。
一位 MWE 表示:
simpleturnstile.sty
\RequirePackage{xparse}
\RequirePackage{etoolbox}
\RequirePackage{graphicx} % \reflectbox
\RequirePackage{mathtools} % \mathmakebox
\RequirePackage{turnstile} % turnstiles
\let\oldm@dels\models% standard |= symbol
\newlength{\m@delsheight}
% \models, \Models
\RenewDocumentCommand{\models}{O{{}} O{{}}}{% |- relation
\settoheight{\m@delsheight}{\f@size$\oldm@dels$}%
\ensuremath{%
\mathrel{\resizebox{!}{\m@delsheight}{$\sststile{\mathrm{#1}}{\mathrm{#2}}$}}%
}}
\NewDocumentCommand{\Models}{O{{}} O{{}}}{% |= relation
\settoheight{\m@delsheight}{\f@size$\oldm@dels$}%
\ensuremath{%
\mathrel{\resizebox{!}{\m@delsheight}{$\sdtstile{\mathrm{#1}}{\mathrm{#2}}$}}%
}}
% \bimodels, \biModels
\newcommand{\bimodels}{\ensuremath{% -||- relation
\mathrel{\reflectbox{\models}\,{\models}}%
}}
\newcommand{\biModels}{\ensuremath{% =||= relation
\mathrel{\reflectbox{\Models}\,{\Models}}%
}}
% \notModels (negated \Models)
\newsavebox{\notModelsb@x}
\NewDocumentCommand{\notModels}{O{{}} O{{}}}{\sbox{\notModelsb@x}{\Models[#1][#2]}%
\ensuremath{%
\mathrel{\mathmakebox[\widthof{\notModelsb@x}][l]{\not\rlap{\usebox{\notModelsb@x}}}}%
}}
simpleturnstile.tex
\documentclass{article}
\usepackage{simpleturnstile}
\begin{document}\Huge
$\{\alpha\} \notModels \beta$
$\{\alpha\} \notModels[CPC] \beta$
$\{\alpha\} \notModels[CPC][\Gamma] \beta$
\end{document}
编译simpleturnstile.tex
结果:
我怎样才能在否定旋转栅门周围留出适当的空间?
[编辑] 我设法使旋转栅门缩放,但我仍然需要修复否定栅门周围的间距。
答案1
我不太明白为什么,但似乎\widthof
无法正确计算已保存框的宽度\notModelsb@x
,因此找到另一种方法来计算框的宽度似乎更合适。正如@Circumscribe指出的那样,\notModelsb@x
可以使用来获取的宽度\wd\notModelsb@x
。在您的文件中simpleturnstile.sty
,我将部分替换\notModels
为
\newsavebox{\notModelsb@x}
\NewDocumentCommand{\notModels}{O{{}} O{{}}}{%
\sbox{\notModelsb@x}{\Models[#1][#2]}%
\ensuremath{%
\mathrel{\mathmakebox[\wd\notModelsb@x][r]{\not\usebox{\notModelsb@x}}}%
}}
按照simpleturnstile.sty
上面的修改,得到以下示例
\documentclass{article}
\usepackage{simpleturnstile}
\begin{document}\Huge
\begin{tabular}{lll}
$\{\alpha\} \notModels \beta$ & $\{\alpha\} \notModels[CPC] \beta$ & $\{\alpha\} \notModels[CPC][\Gamma] \beta$ \\
$\{\alpha\} \Models \beta$ & $\{\alpha\} \Models[CPC] \beta$ & $\{\alpha\} \Models[CPC][\Gamma] \beta$
\end{tabular}
\end{document}