
次のシンボルをどのように構築しますか?
答え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}
編集: フォント サイズが変わると矢印の位置がずれることに注意してください。これは、 および\raise
パラメータの TeX 演算の精度が低いことが原因である可能性があります\mkern
。よくわかりません。ただし、図に示すように、このコードはデフォルトのフォント サイズでは正常に動作します。それでも、位置ずれは fontsize を拡大したときにのみ明らかになります\Huge
。
答え2
必須Tiけ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}
これには、非常に適応性が高いという利点があります。矢印の先端のサイズを変更したり、シンボルを長くしたりする場合 (サンプル画像のように)、いくつかの数値を微調整するだけです。(ただし、正しいスケーリングを行うには、境界ボックスに多少注意が必要です。)