如何构造以下符号?
答案1
以下是一次放大的尝试:
下面是生成它的代码。箭头宏的工作原理是直接从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}
这样做的好处是适应性很强。如果您想更改箭头的大小或使符号更长(如示例图像所示),只需调整一些数字即可。(不过,为了正确缩放,需要小心处理边界框。)