答え1
j もダメですか?
\documentclass{article}
\usepackage{amsmath}
\usepackage{l3draw}
\makeatletter
\NewDocumentCommand{\iheart}{}{\mathord{\mathpalette\iheart@{\imath{7}{1}}}}
\NewDocumentCommand{\jheart}{}{\mathord{\mathpalette\iheart@{\jmath{12}{2}}}}
\newcommand{\iheart@}[2]{\iheart@@#1#2}
\newcommand{\iheart@@}[4]{%
\vbox{\m@th\offinterlineskip
\sbox\z@{$\mkern1mu$}%
\ialign{##\cr\hidewidth\smallheart@{#1}{#3}\hidewidth\cr\noalign{\kern\wd\z@}\cr$#1#2$\cr}%
}%
\mkern#4mu
}
\ExplSyntaxOn
\cs_new_protected:Npn \smallheart@ #1 #2
{
\draw_begin:
\draw_transform_matrix_absolute:nnnn { 0.4 } { 0 } { 0.2 } { 0.3 }
\draw_path_moveto:n { 0cm, 0cm }
\hbox_set:Nn \l_tmpa_box { \boldmath$#1\mkern#2mu\heartsuit$ }
\draw_box_use:N \l_tmpa_box
\draw_end:
}
\ExplSyntaxOff
\makeatother
\begin{document}
$2\pi\iheart_{\jheart}+\jheart$
\end{document}
マクロはどのように動作するのでしょうか? まず、4 つの引数を持つための mathpalette のトリックをいくつか紹介します。
- いつも通り、現在の数学スタイル
- 文字をタイプセットする文字なので
\imath
、\jmath
- ハートの前の(数学の)カーン
- 組み合わせ後の数学カーンは、心臓の突出を補正するために考慮されていないため、
\hidewidth
ハートを文字に重ねたウィズを中に入れています\vbox
。\ialign
最後に、ハートは、\heartsuit
縮小とせん断を適用するアフィン変換の対象となる適切な数学スタイルの太字です。
おそらく、さまざまなパラメータについてさらに実験が必要になるでしょう。