如何在定制旋转闸机周围留出足够的空间?

如何在定制旋转闸机周围留出足够的空间?

我使用该包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}

编译为 因此,现在否定式旋转闸门的间距似乎与非否定式旋转闸门的间距相同。

相关内容