I am trying to typeset the following kind of diagram :
This is an interaction diagram I would use in functional requirements analysis (drawn with MS Word). I tried to use the smartdiagram
package, this is a MWE of what I did :
\documentclass{article}
\usepackage[french]{babel}
\usepackage{smartdiagram}
\usesmartdiagramlibrary{additions}
\usetikzlibrary{babel}
\RenewDocumentCommand{\smartdiagramconnect}{m m}{%
\begin{tikzpicture}[remember picture,overlay]
\foreach \start/\end in {#2}
\draw[additional item arrow type,#1]
(\start) to (\end);
\end{tikzpicture}
}
\begin{document}
\smartdiagramset{/tikz/connection planet satellite/.append style={<->}}
\smartdiagramadd[constellation diagram]{System,E1,E2,E3,E4,E5,E6}{}
\smartdiagramconnect{->, bend right=15}{satellite3/satellite7}
\end{document}
Which gives :
To come closer to the original, here are a few points I would like to improve :
- Add text/label near arrows
- Change satellites shape to ellipse could be useful if text is larger (but I've seen there are workarounds to fit the text in modules)
- Individually change arrow types (->, <- or <->)
What I like in smartdiagram is that it cares of the formatting and it is easy to add nodes, even if some links need to be added by hand.
Is this achievable with this package (if so, any clue ?), or is plain tikZ a better way to go ?
By the way, if I activate babel package, \smartdiagramconnect
does not work anymore.
EDIT: The babel
issue is solved by adding \usetikzlibrary{babel}
in the preamble.
\usetikzlibrary{babel}
to the preamble help? I do get a reasonably nice output with the preamble\usepackage[french]{babel} \usepackage{smartdiagram} \usetikzlibrary{babel} \usesmartdiagramlibrary{additions}
.\usetikzlibrary{babel}
, it solves the babel-related error. I can edit this part of the question.