Ich möchte gerne Pfade, die über das hobby-Paket konstruiert werden, mit pgf-Standardelementen, wie Kreisbögen u.ä. kombinieren. Im Frontend-Layer funktioniert das auch problemlos, z.B.
Allerdings konnte ich im hobby manual nichts zur Konstruktion von hobby-Pfaden im Basic Layer, also zur Verwendung mit \pgfusepath, finden. Da es jedoch Situationen gibt, in denen ich die Pfadkonstruktion mit Basic-Layer-Befehlen vorziehe, frage ich mich: Gibt es ein Basic-Layer-Interface des hobby-Paketes? Oder gibt es eine andere Möglichkeit (zusammenhängende) Pfade aus hobby-Pfaden und Standardpfaden zu erzeugen?
Ich hab nicht wirklich Ahnung von den Basic-Layer Konstrukten ansich, aber ich vermute, ein Blick in pgflibraryhobby.code.tex lohnt sich wahrscheinlich. Dort gibt es Befehle wie \hobby@curveto und \hobby@moveto. Da die Befehle irgends offiziell dokumentiert sind, würde ich mich allerdings nicht darauf verlassen, dass sie immer bleiben, wie sie jetzt sind.
Ich hatte zwischenzeitlich Kontakt mit dem Autoren des hobby Paketes, Andrew Stacey, aufgenommen und wieder einmal die Erfahrung machen dürfen, wie unglaublich hilfsbereit (und schnell) die TeX-Community ist.
Andrew Stacey hat in der Entwicklungsversion mittlerweile ein Basic-Layer-Interface implementiert.
Diese ist auf TeX-SX launchpad page verfügbar (hobby.dtx runterladen und tex hobby.dtx ausführen um die entsprechenden Dateien zu generieren).
Die neue Syntax sieht folgendermaßen aus: Die Konstruktion eines Hobby-Pfades wird mit \pgfpathhobby eingeleitet und durch \pgfpathhobbyend abgeschlossen.
Der \pgfpathhobby Befehl überprüft, ob eine \bgroup (oder {) folgt, und wenn dem so ist, wird diese nachfolgende Gruppe als Liste von Key-Value-Paaren interpretiert und an die Konfiguration weitergeleitet (z.B. \pgfpathhobby{closed=true}).
Innerhalb der Hobby-Pfad-Konstruktion werden die einzelnen Punkte des Pfades durch \pgfpathhobbypt{<point specification>} angegeben, wobei dieser Befehl ebenfalls auf nachfolgende Gruppen prüft und diese ggf. als Liste von Key-Value-Paaren für diesen Punkt interpretiert (z.B. \pgfpathhobbypt{\pgfpoint{1cm}{2cm}}{tension in=2}).
Die Keys sind also die gleichen wie für den Frontend-Layer.
Mit dieser Syntax lässt sich das Beispiel aus meiner Frage folgendermaßen in den Basic-Layer übersetzen:
Ich hab nicht wirklich Ahnung von den Basic-Layer Konstrukten ansich, aber ich vermute, ein Blick in
pgflibraryhobby.code.tex
lohnt sich wahrscheinlich. Dort gibt es Befehle wie\hobby@curveto
und\hobby@moveto
. Da die Befehle irgends offiziell dokumentiert sind, würde ich mich allerdings nicht darauf verlassen, dass sie immer bleiben, wie sie jetzt sind.@Clemens Mit viel gutem Willen von Andrew Stacey hat sich eine sehr viel bequemere Lösung gefunden :) Siehe: meine Antwort weiter unten.
@carlton87 Cool :)