![上下弯曲的箭头链](https://linux22.com/image/301682/%E4%B8%8A%E4%B8%8B%E5%BC%AF%E6%9B%B2%E7%9A%84%E7%AE%AD%E5%A4%B4%E9%93%BE.png)
我正在尝试绘制一条上下相互交叉的箭头链,如下图所示:
问题不在于标记箭头,我可以轻松做到这一点,但我不知道如何让它们卷曲,让箭头位于中间(理想情况下,但不是必须的),并让一个箭头位于另一个箭头之上。任何帮助都值得感激。如果存在没有 TikZ 的解决方案,我会更喜欢它。
对于那些感兴趣的人,上面是一个李代数的 Cartan 生成器的特征向量,它作为上升或下降算子作用于状态,用于根和权重方法对所有半单紧李代数进行分类。
答案1
综合考虑先前的所有最佳答案,我得到了您想要的结果:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{decorations.markings}
\tikzset{middleArrowHead/.style={decoration={markings, mark= at position #1 with \arrow{>}}, postaction=decorate}}
\usepackage{braket} % defines \ket and \bra
\begin{document}
\[\begin{tikzcd}[every arrow/.append style={bend left, dash, middleArrowHead=.55}] % change the last value until the arrow position pleases you.
\ket{\vec{\mu}-\vec{\alpha}}
\arrow[start anchor={[yshift=1.5pt]east},end anchor={[yshift=1.5pt]west}]{r}{E_{+}}
& \ket{\vec{\mu}}
\arrow[start anchor={[yshift=-1.5pt]west},end anchor={[yshift=-1.5pt]east}]{l}{E_{-}}
\arrow[start anchor={[yshift=1.5pt]east},end anchor={[yshift=1.5pt]west}]{r}{E_{+}}
& \ket{\vec{\mu}+\vec{\alpha}}
\arrow[start anchor={[yshift=-1.5pt]west},end anchor={[yshift=-1.5pt]east}]{l}{E_{-}}
\end{tikzcd}\]
\end{document}
答案2
解决方案tikz-cd
\documentclass{article}
\usepackage{tikz-cd}
\newcommand{\ket}[1]{\mathopen{|}#1\rangle}
\begin{document}
\[
\begin{tikzcd}
\ket{\vec{\mu}-\vec{\alpha}}
\arrow[r,bend left,"E^{+}",
start anchor={[yshift=1.5pt]real east},end anchor={[yshift=1.5pt]real west}] &
\ket{\vec{\mu}}
\arrow[l,bend left,"E^{-}",
start anchor={[yshift=-1.5pt]real west},end anchor={[yshift=-1.5pt]real east}]
\arrow[r,bend left,"E^{+}",
start anchor={[yshift=1.5pt]real east},end anchor={[yshift=1.5pt]real west}] &
\ket{\vec{\mu}+\vec{\alpha}}
\arrow[l,bend left,"E^{-}",
start anchor={[yshift=-1.5pt]real west},end anchor={[yshift=-1.5pt]real east}]
\end{tikzcd}
\]
\end{document}
一些好心人可能会帮助推动箭头指向的中心。
答案3
如果您想考虑使用pstricks
,可以使用环境psmatrix
。我添加了nccmath
包,以便拥有中等大小的公式,esvect
以便更好地查看矢量箭头,并mathtools
定义 | … > 分隔符对。或者,您可以使用包braket
,但这样您就失去了根据上下文微调分隔符大小的可能性(此处未使用)。
\documentclass[pdf]{article}
\usepackage{pstricks-add}
\usepackage{esvect}
\usepackage{mathtools, nccmath}
\DeclarePairedDelimiter{\ket}\lvert\rangle
\begin{document}
\[ %
\psset{ArrowInside=->, ArrowInsidePos=0.57, arrowinset=0.2 , linewidth=0.5pt, arrows=c-c, offset=1ex, nodesep=3pt, arcangle=20, labelsep =2pt}
\begin{psmatrix}
%%% nodes
\ket{\vv{\mu} - \vv{\alpha}}\rnode{l1}{}\hspace{3em}\rnode{l2}{}\ket{\vv{\mu}}\rnode{r1}{}\hspace{3em} \rnode{r2}{} \ket{\vv{\mu} + \vv{\alpha}}
%%%arrows
\ncarc{l1}{l2}\naput{\medmath{E_+}}\ncarc{r1}{r2}\naput{\medmath{E_+}}
\psset{offset=0ex, nodesep=1.5pt}
\ncarc{l2}{l1}\naput{\medmath{E_-}} \ncarc{r2}{r1}\naput{\medmath{E_-}}
\end{psmatrix}
\]%
\end{document}