非正方形的符号 \not\square 看起来很糟糕

非正方形的符号 \not\square 看起来很糟糕

我很难找到一个适合非正方形的符号。我想得到一个划掉的正方形,但是

$\not\square$

命令没有将该行放置在正确的位置。

使用包 centernot 它会变得更好一点

\usepackage{centernot}
$\centernot\square$

现在,线条位于正确的位置,但并不像应有的那样对称:线条刚好到达正方形的顶部。有什么想法吗?

答案1

由于 是\not为了应用于数学关系而制作的,因此更好的语法应该是\mathord{\not\mathrel{\square}}。然而,虽然这解决了水平位置的问题,但垂直位置仍然不是理想的。

因此我建议一种“最佳”stackengine方法。

然而,OP 指出希望避免使用额外的包,因此我进行了编辑以提供本机的替代方案。

\documentclass{article}
\usepackage{amssymb,stackengine}
\begin{document}
\[
\textrm{Better: }\quad\mathord{\not\mathrel{\square}}
\]
\[
\textrm{Best: }\quad\ensurestackMath{\stackinset{c}{}{c}{}{/}{\square}}
\]
\[
\textrm{Alternative: }\quad\raisebox{1pt}{$\not\mathrel{\raisebox{-1pt}{$\square$}}$}
\]
\end{document}

在此处输入图片描述

答案2

通过让 TeX 进行计算,您可以避免任何猜测。

\documentclass{article}
\usepackage{amsmath,amssymb}

\makeatletter
\DeclareRobustCommand{\notsquare}{\mathord{\mathpalette\generic@not\square}}
\newcommand{\generic@not}[2]{%
  \sbox\z@{$\m@th#1/$}%
  \sbox\tw@{$\m@th#1#2$}%
  \sbox\z@{\raisebox{\dimexpr(\ht\tw@-\dp\tw@-\ht\z@+\dp\z@)/2\relax}{$\m@th#1/$}}%
  \vphantom{\usebox{\z@}}%
  \ooalign{\hidewidth\usebox{\z@}\hidewidth\cr$\m@th#1#2$\cr}%
}
\makeatother

\begin{document}

$\square\notsquare_{\square\notsquare}$

\end{document}

我使用是\mathord因为这样\square

在此处输入图片描述

答案3

您可以使用以下\square方式定义自己的符号作为覆盖:/\ooalign

在此处输入图片描述

\documentclass{article}

\usepackage{amssymb}

\newcommand{\notsquare}{
  \mathrel{
    \ooalign{
      $\square$\cr
      \hidewidth\raise.225ex\hbox{$/$}\hidewidth
    }
  }
}

\begin{document}

\[
  f \mathrel{\square} g \notsquare h
\]

\end{document}

以下是一个简短的课程\ooalign\subseteq+\circ作为单个符号(“开子集”)

相关内容