2

I'm trying to draw a chain of arrows going under and above each other, as depicted:

enter image description here

The issue isn't labelling the arrows, I can easily do that, but I don't know how to get them to curl, have the arrow head in the middle (ideally, though not necessary), and have one on top of the other. Any help is appreciated. If a solution exists without TikZ, I would prefer it.


For those interested, the above is an eigenvector of the Cartan generators of a Lie algebra acting on a state as a raising or lowering operator, used in the roots and weights method to classify all semi-simple compact Lie algebras.

  • Please add the code of what you have. This is a job for tikz-cd. Why don't you want that? – LaRiFaRi Nov 16 '14 at 14:29
  • @LaRiFaRi: The kets are just, e.g., | \vec{\mu} \rangle. For the arrows, all I know how to do is \rightarrow^{E_+}. The reason I said I preferred a solution without tikz-cd was because I'm not familiar with tikz at all, and would prefer a solution that I could understand. If you have a tikz-cd solution though, feel free to post it. – JamalS Nov 16 '14 at 14:36
  • @LaRiFaRi: \mathop{\xrightarrow{\hspace*{2cm}}}^{E_+} works better, but I still would like it curved, and I need an arrow below. – JamalS Nov 16 '14 at 15:38
  • 1
    As it is, in order to help you people had to copy your equations from the image. Had you posted an MWE, they could have copy-pasted your code and had the framework of the document, together with the maths, ready to work on. Believe me, that is a lot less annoying than switching back-and-forth between image-in-web-browser and code-in-editor because the OP has not done potential helpers the courtesy of sharing what they have done already. – cfr Nov 17 '14 at 1:40
3

Taking all the best from the prior answers, I've got your desired result here:

% 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}

enter image description here

  • 2
    I knew some gentle soul would come along! ;-) – egreg Nov 17 '14 at 11:01
  • @egreg Of course... I don't like the result (normal arrows are less distracting), but the OP still seemed to wait. – LaRiFaRi Nov 17 '14 at 11:57
5

A solution with 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}

enter image description here

Some good soul might help pushing the arrow tip at the center.

  • Could one use \lvert in lieu of \mathopen{|}? – Mico Nov 17 '14 at 10:10
  • @Mico Of course, provided amsmath is loaded. – egreg Nov 17 '14 at 10:59
3

If you want to consider using pstricks, it can be done with the psmatrix environment. I add the nccmath package, to have medium-sized formulae, esvectfor better looking vector arrows, and mathtools to define the pair of | … > delimiters. Alternatively, you can use the braket package, but you then lose the possibility (not used here) of fine-tuning the size of delimiters according to context.

\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} 

enter image description here

  • In case you're curious, it's called \ket. You can think of it as an element of a vector space. Anyway, thank you for your answer. – JamalS Nov 16 '14 at 16:20
  • Oh, and amusingly, the left pointing version, \langle, is called a 'bra.' :) – JamalS Nov 16 '14 at 16:25
  • I'm curious. I don't know much about Lie algebras, I must say. I changed \thing to \ket in the code (but maybe it conflicts with the braket package?). – Bernard Nov 16 '14 at 16:27
  • @Bernard Yes, it does. In fact, this package just does what you want to achieve here. You could replace your definition by this package (or leave it as it is, of course) – LaRiFaRi Nov 17 '14 at 9:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.