我如何获得填充黑色的 < 和 \leq?

我如何获得填充黑色的 < 和 \leq?

我想定义一个顺序关系,其中我要区分要用黑色填充,这样在第一种情况下我有一个黑色的三角形,在第二种情况下我有一个黑色的三角形,下面有一条合适的线。我对和\leq不满意。\blacktriangleleft\overset{\blacktriangleleft}{-}

答案1

以下是\ooalign黑魔法:

\documentclass{article}
\usepackage{amssymb}

\newcommand{\bleq}{\mathrel{\mathpalette\bleqinn\relax}}
\newcommand{\bleqinn}[2]{%
  \ooalign{%
    \raisebox{.2ex}{$#1\blacktriangleleft$}\cr
    $#1\leq$\cr
  }%
}

\begin{document}
$a\bleq b\leq c$

$\bleq_{\bleq_{\bleq}}$
\end{document}

在此处输入图片描述

答案2

下面的例子\blackleq通过放置\blacktriangleleft减号并垂直居中结果来定义:

\documentclass{article}
\usepackage{amssymb}
\usepackage{color}

\makeatletter
\newcommand*{\blackleq}{%
  \mathrel{%
    \mathpalette\@blackleq{}%
  }%
}
\newcommand*{\@blackleq}[2]{%
  % #1: math style
  % #2: unused
  \vcenter{%
    \m@th
    \setbox0=\hbox{$#1\mkern3mu$}%
    \setbox2=\hbox{$#1\vcenter{}$}%
    \setbox4=\hbox{\raisebox{-\ht2}[.2pt][.2pt]{$#1-$}}%
    \hbox{$#1\blacktriangleleft$}%
    \nointerlineskip
    \kern\wd0 %
    \copy4 %
  }%
}
\makeatother

\begin{document}
\[
  < \blacktriangleleft \leq \blackleq
  \;\scriptstyle
  < \blacktriangleleft \leq \blackleq
  \;\scriptscriptstyle
  < \blacktriangleleft \leq \blackleq
\]
% Show bounding boxes
\setlength{\fboxsep}{0pt}%
\setlength{\fboxrule}{.1pt}%
\[
  \color{red}
  \def\x#1{\fbox{\color{black}$#1$}}
  \x{<}
  \x{\blacktriangleleft}
  \x{-}
  \x{\leq}
  \x{\blackleq}
\]
\end{document}

结果

评论:

  • 减号边界框的高度比减号本身的高度大很多。因此,减号被放入一个框(4)中,并升高到基线。

  • \mathpalette用于获取尺寸适配的当前数学样式。

  • 这取决于字体,是否\blacktriangleleft可用作填充较少的符号。CM 字体可以,但符号在 中太小,MnSymbol并且在 中斜率不同mathabx

相关内容