$\lhd$ 里面有一个点

$\lhd$ 里面有一个点

我想制作一个新的符号,即$\lhd$,里面有一个点,类似于$\lessdot$。

我尝试遵循这个问题中的一些建议:水平相当于 \raisebox?

例如\newcommand{\lhdot}[0]{\adjustbox{lap={\width}{0.em}}{$\cdot$}\lhd}

但这个点的放置确实很奇怪......

任何想法,将不胜感激!

答案1

很可能您不想使用\lhd,它被归类为二元运算符而不是关系,而是使用\vartriangleleft

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

\makeatletter
\DeclareRobustCommand{\dotvartriangleleft}{%
  \mathrel{%
    \vphantom{\vartriangleleft}%
    \mathpalette\dot@vartriangle{{\vartriangleleft}{5mu}}%
  }%
}
\DeclareRobustCommand{\dotvartriangleright}{%
  \mathrel{%
    \vphantom{\vartriangleleft}%
    \mathpalette\dot@vartriangle{{\vartriangleright}{-5mu}}%
  }%
}
\newcommand{\dot@vartriangle}[2]{%
  \dot@@vartriangle#1#2%
}
\newcommand{\dot@@vartriangle}[3]{%
  \ooalign{$\m@th#1#2$\cr\hidewidth$\m@th#1\mkern#3{\cdot}$\hidewidth\cr}%
}
\makeatother

\begin{document}

$a\vartriangleleft b\dotvartriangleleft c$

$a\vartriangleright b\dotvartriangleright c$

$\scriptstyle\dotvartriangleleft\dotvartriangleright$

\end{document}

在此处输入图片描述

答案2

用堆栈完成;遵循数学风格。

\documentclass{article}
\usepackage{amsmath, amssymb,stackengine,scalerel}
\newcommand*{\lhdot}{\mathbin{\ThisStyle{\ensurestackMath{%
  \stackinset{c}{\dimexpr.8pt+.2\LMpt}{c}{\dimexpr.2pt-.5\LMpt}%
  {\SavedStyle\cdot}{\SavedStyle\lhd}}}}}
\begin{document}
\(a \lhd b\)

\(a \lhdot b~
\scriptstyle a \lhdot b~
\scriptscriptstyle a \lhdot b\)
\end{document}

在此处输入图片描述

答案3

一个简单的解决方案就是将\lessdot其自身堆叠在 之上\lhd

\documentclass{article}
\usepackage{amsmath, amssymb}
\newcommand*{\lhdot}{\mathbin{\ooalign{$\lhd$\cr$\lessdot$}}}
\begin{document}
\(a \lhd b\)

\(a \lhdot b\)
\end{document}

相关内容