上下弯曲的箭头链

上下弯曲的箭头链

我正在尝试绘制一条上下相互交叉的箭头链,如下图所示:

在此处输入图片描述

问题不在于标记箭头,我可以轻松做到这一点,但我不知道如何让它们卷曲,让箭头位于中间(理想情况下,但不是必须的),并让一个箭头位于另一个箭头之上。任何帮助都值得感激。如果存在没有 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} 

在此处输入图片描述

相关内容