pgf-tikz / pgf

A Portable Graphic Format for TeX
https://pgf-tikz.github.io/
1.09k stars 105 forks source link

Make mindmaps more versatile #1164

Open claell opened 2 years ago

claell commented 2 years ago

I hope, this can also be used for feature requests.

Currently, the mindmap package is a bit limited in its versatility.

Especially, there is no option to automatically position the nodes in a way that there is no overlap between them.

Also, out of the box, there is no real option to create concept maps, where a child can be connected to multiple parent nodes (see https://tex.stackexchange.com/questions/41620/tikz-mindmaps-sharing-children for workarounds, but there should probably be a more integrated way to achieve this).

Possibly, I should also create separate issues for each of the items.

muzimuzhi commented 2 years ago

Especially, there is no option to automatically position the nodes in a way that there is no overlap between them.

Technically, mindmap library provides nothing more than a decoration circle connection bar, a customized to-path, and a set of styles, mostly node appearance styles.

Node positioning is controlled by the underneath layout mechanism(s), among which are normal node, node tree (child operation), graph (graphs library), and graph drawing (graphdrawing library which requires LuaTeX). Only graphdrawing library avoids overlapping. Community package forest maybe another option but I never used it for mindmap.

Though settings specifically for tree (like styles level <n> concept) is provided, with some config mindmap will work with any mechanism which is based on tikz nodes. Maybe settings for graphdrawing could be provided as well.

Also, out of the box, there is no real option to create concept maps, where a child can be connected to multiple parent nodes

True and it seems to me the answers to the linked tex-sx question already did the job rather good. Considering currently mindmap only creates single-root map, some manual work is unavoidable.

claell commented 2 years ago

Alright, thanks for the insights!

So to subdivide this:

The first point was about node positioning. Apparently, this is not really supported in cases one uses the grow cyclic option (and possibly other suitable options for mindmaps as well) and doesn't want to use LuaTeX. Is this a technical restriction? Else, I can probably create a new issue for that.

The second point about concept maps: Should I also create an issue for that? So that mindmap can support multi-root mindmaps?

hmenke commented 2 years ago

So is this a feature request or a bug report? You didn't even bother to use the issue templates.

  1. You're going on about grow cyclic “not working” with LuaTeX, but you don't provide a MWE.

  2. Mindmaps are trees and leaves in a tree only have a single parent. https://en.wikipedia.org/wiki/Tree_(data_structure)

claell commented 2 years ago

Due to an apparent bug or quirk in GitHub (I think related to signing in when creating an issue), I wasn't offered with the templates here as usual. That is why this wasn't created with a template. I hope, the context made it clear that this is thought as a feature request, so the label you set is correct. 🙂

  1. No, I am saying automatic node positioning - that avoids overlapping, sorry forgot to add that above - (in combination with grow cyclic) doesn't work apart from LuaTeX.
  2. I know that mindmaps normally only have a single parent. However, I got the impression that the mindmap library is actually rather a concept map library (at least the nodes are called concept, and you can manually create concept maps with it). So, how to best proceed with that? Should I add a request for a concept map library, a rename of the mindmap library or a feature addition to the mindmap library knowing that the feature is not really a mindmap, but might still be in scope of the library?