如何构造以下符号(带箭头的子集)?

如何构造以下符号(带箭头的子集)?

如何构造以下符号?

在此处输入图片描述

答案1

以下是一次放大的尝试:

特殊子集 B

下面是生成它的代码。箭头宏的工作原理是直接从LaTeX 符号字体lasy)。要了解有关\ooalign和 朋友的更多信息,请参阅\subseteq + \circ 作为单个符号(“开子集”)

\documentclass{article}

\makeatletter
\newcommand{\rightarrowhead}{\mathrel{%
  \hbox{\let\f@size\sf@size\usefont{U}{lasy}{m}{n}\symbol{41}}}}

\newcommand{\leftarrowhead}{\mathrel{%
  \hbox{\let\f@size\sf@size\usefont{U}{lasy}{m}{n}\symbol{40}}}}
\makeatother

\newcommand\specialsubset{\mathrel{\ooalign{$\subset$\cr%
  \hidewidth\raise.800ex\hbox{$\rightarrowhead\mkern1mu$}\cr%
  \hidewidth\raise.800ex\hbox{$\rightarrowhead\mkern4mu$}\cr%
  \hidewidth\raise-0.440ex\hbox{$\leftarrowhead\mkern2.75mu$}}}}

\begin{document}
$A \specialsubset B$
\end{document}

编辑:请注意,当字体大小改变时,箭头的对齐会偏离;这可能是由于 TeX 算法对\raise\mkern参数的不精确造成的。我不确定。不过,如图所示,此代码在默认字体大小下运行良好。即便如此,错位只有在放大字体大小时才会真正显现出来\Huge

答案2

义务Z 解决方案。

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{scalerel}

\makeatletter
  \begingroup
    \setbox\@tempboxa=\hbox{$\subset$}
    \@tempdima=\dp\@tempboxa
    \newbox\@sarabox
    \global\setbox\@sarabox=\hbox{%
      \begin{tikzpicture} [baseline=0pt, line cap=round]
        \node (subset) at (0,-\@tempdima) [above left, inner sep=0pt, outer sep=0pt] {$\subset$};
        \begin{pgfinterruptboundingbox}
          \draw (-2.5pt,5.2pt) edge [arrows={-[length=1pt]>[sep]>}] +(1.5pt,0pt)
                (-3pt,-.2pt)   edge [arrows={[length=1pt]<-}]       +(1.5pt,0pt);
       \end{pgfinterruptboundingbox}
      \end{tikzpicture}%
    }
    \global\ht\@sarabox=\ht\@tempboxa
  \endgroup
  \newcommand*\sara{\mathrel{\scalerel*{\usebox\@sarabox}{\subset}}}
\makeatother

\begin{document}

\(A \subset B\),
\(X_{A \subset B}\)

\(A \sara B\),
\(X_{A \sara B}\)

\end{document}

MWE 输出

这样做的好处是适应性很强。如果您想更改箭头的大小或使符号更长(如示例图像所示),只需调整一些数字即可。(不过,为了正确缩放,需要小心处理边界框。)

相关内容