I need some help devising a method for further cases. I've searced tex.stackexchange.com for a solution but have so far not seen examples that help me much.
In writing my thesis, on musicology, I needed to create analytic diagrams, or networks if you will: see bottom picture. I've seen such diagrams made in LaTeX, but never one that hasn't involved way too many lines of code to be practical at any level except publishing – not to mention a degree in coding. So far i've been using Apple's Keynote for this and most of the time it is OK, especially the way it handles connecting lines to objects (like circles, adding arrows and manipulating the line.
But it is not an easy way to create networks larger than pentagons; everything from hexagons and up you have to create manually from a circle, that you divide into "cakes" corresponding to the number of corners you need, then connect the lines, delete the "cakes" and finaly attach the circles. Then to add to the insult, exporting the images is a pain: to keep things organised I need to create one Keynote file for each music example, ergo it contains several diagrams. The best way I've found to export this is to screenshot (!) the diagram in question then add it to my tex folder. The result cannot become 100% perfect whatever I do, and you might imagine my OCD sense tingling quite a bit…
My reasoning is thus: If I have to spend lots of time creating this manually anyway, why not make a TeX solution? I'm most likely heading for a PhD, and need this tool for many things and I think it would be a great tool for other musicologists.
To start off with the bare essentials: Is there some package that already provides the functionality needed to make an octatonic network as shown at the bottom?
I have quite a few ideas on what the language should look like for this to be an effective tool, but beggars can't be choosers, so I'll wait and see what you guys say first.
Best Answer
You could try Tikz. It is pretty easy to position the elements correctly by specifying the angle and the distance. The code shows a straight-forward implementation of your screenshot.