我想要做的是将一个(或多个)字母编织在一个(或多个)字母周围。应该可以在数学中像在文本模式下一样使用它。
我的想法是这样的:
但迄今为止还没有任何效果。
我尝试过:
%braiding
\makeatletter
\newlength\@SizeOfCirc%
\newcommand{\CricArrowRight}[1]{%
\setlength{\@SizeOfCirc}{\maxof{\widthof{#1}}{\heightof{#1}}}%
\tikz [x=1.0ex,y=-1.0ex,line width=0.15ex, draw=black]%
\draw [->,anchor=center]%
node (0,0) {#1}%
(0,1.2\@SizeOfCirc) arc (85:-240:1.2\@SizeOfCirc);%
}%
\makeatother
但问题是它不是(水平)居中。
答案1
虽然这有点像 hack,但可能就足够了。我引入了语法\braid[horizontal-scale]{pointed quantity}{circled quantity}
。在 MwE 中,我将其全部设置在 TABstack 中,以便我可以设置 OP 提供的堆叠方程。
箭头只是包装\circlearrowright
中的一个amssymb
,上面覆盖着一个白色方框,以便为工作数量留出空间。数量嵌入在圆形箭头的拉伸版本(默认拉伸 = 3)中,\scriptstyle
这样就不会使物体的尺寸过大。
\documentclass{article}
\usepackage{amssymb,graphicx,xcolor,tabstackengine}
\newcommand\circcore[1][3]{\scalebox{#1}[3]{\kern-0.5pt\rotatebox[origin=center]{120}{%
\raisebox{-3.5pt}{\stackinset{c}{1.8pt}{t}{0pt}{\textcolor{white}{%
\rule{3pt}{2pt}}}{$\circlearrowright$}}}}}
\newcommand\braid[3][3]{%
\stackinset{c}{#1\dimexpr-3.5pt\relax}{c}{1pt}{$\scriptstyle#2\strut$}{%
\stackinset{r}{#1\dimexpr2.7pt\relax}{c}{1pt}{$\scriptstyle#3\strut$}{%
\circcore[#1]}}}
\TABstackMath
\begin{document}
\[
\tabbedShortstack{
\braid[5]{\gamma_1}{\gamma_2\times\alpha} ={}& \braid{\gamma_1}{\gamma_2}&
\braid{\gamma_1}{\alpha} &{}= 1\\
&=1 &=1&\\
\braid[5]{\gamma_2\times\alpha}{\gamma_1} ={}& \braid{\gamma_2}{\gamma_1}&
\braid{\alpha}{\gamma_1} &{}= 1\\
}
\]
\end{document}