Я хочу создать новый символ $\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}