von feuersaenger » Fr 16. Dez 2011, 14:30
Hallo guy.brush,
danke fuer das Feedback.
Du hast schon recht, dass eine menge pgfplots abbildungen das uebersetzen betraechtlich verlaengern. Aus genau dem Grund hatte ich die "external" lib entwickelt - das verringert den zeitlichen Aufwand ganz betraechtlich, ohne das man sich zu viele Gedanken machen muss.
Was das problem mit der Neuerstellung angeht hast Du ganz sicher recht: wenn sich eine Option im Plot oder vielleicht das zugrundeliegende Datenfile von Dir aktualisiert wird, sollte natuerlich auch die Abbildung ersetzt werden. Das Problem ist jedoch unabhaengig von pgfplots. Mit anderen Worten: falls Du gnuplot oder matlab nehmen wuerdest, haettest Du genau dieselbe Anforderung. Tatsaechlich ist mit gnuplot noch eine weitere Anforderung drin: die Skalierung. Denn wenn man \includegraphics[width=8cm]{gnuplotgraphics.pdf} macht, werden dort die Fonts mitskaliert. Das muss natuerlich einheitlich sein, damit nicht bei einem plot die fonts groesser sind als beim naechsten. Klar, Loesungen gibt es auch hier. Aber wenn wirklich das Neuerstellen nach aktualisieren Dein einziger Grund ist, empfehle ich aus eigener Erfahrung die Verwendung von tikz/pgfplots. Hinweis: falls Du "make" verwendest, werden aktualisierungen an datenfiles auch noch automatisch erkannt und die zugehoerigen externen Graphiken neu erstellt.
Deine Sorge mit der Platzierung der automatisch erstellten .pdfs kann ich gut verstehen - das waere auch eine Katastrophe, wenn sich dann was verschieben wuerde. Tatsaechlich ist das mit grosser Sorgfalt entwickelt und getestet worden. Solltest Du wieder alles Erwarten da Schwierigkeiten finden, wird das mit sehr hoher Prioritaet behoben. Die automatische Externalisierung ist - nebenbei bemerkt - die allereinfachste und verlaesslichste Methode, um Teile der Achsenbeschriftung von der bounding box auszuschliessen und mit dem Rest des Dokuments auszurichten (vgl. Section Alignment in pgfplots manual und das 'trim axis right' feature).
Zu Deiner Anregung des Anpassens des Manuals: ich habe mir Dein Beispiel "as-is" in meine todo liste uebernommen. Ich hoffe, dass ich auch den bug noch fixen kann. In jedem Fall nehme ich die Anregung gerne auf (muss noch sehen, wann ich es schaffe).
Zu Deinen Minifragen:
(a) Es ist fast immer egal, in welcher Reihenfolge optionen auftauchen - es sei denn, dass eine option die andere Ueberschreibt, dann natuerlich nicht (beispiel: 'sharp plot,smooth' aktiviert 'smooth' und deaktiviert 'sharp plot').
In Deinem Fall ist es -wie in den meisten anderen - egal.
(b) 'yticklabel,' geht auch, ja.
(c) pgfplots skaliert standardmaessig so, dass der plot innerhalb von 'width' und 'height' reinpasst -- und damit den angezeigten plot moeglichst gut darstellt. Das verzerrt eigentlich immer die Achsen.
Wenn Du die Seitenverhaeltnisse gerne gleich haettest (d.h. x unit = y unit), kannst Du "axis equal" angeben.
Das "axis equal" ist besser als "x=1m,y=1cm" weil es automatisch die Vorgegebene Breite/Hoehe ausnutzt und die tatsaechliche Groesse der Units darauf optimiert.
(d) Hier ist noch ein Missverstaendnis zwischen \addplot und \addplot+ : das "+" bezieht sich nicht auf den vorhergehenden plot, sondern auf das, was man ohne Angabe von Optionen haette.
Sprich: wenn Du \addplot {x} schreibst, wuerde der aus der momentan eingestellten "cycle list" irgendwelche Optionen holen -- z.B. 'blue,mark=*'.
Die Faelle sind:
A] \addplot {x} --> dasselbe wie \addplot[blue,mark=*] {x}
die optionen wurden aus der cycle list geholt (wir nehmen einfach mal an, dass 'blue,mark=*' der aktuelle eintrag der cycle list ist. Das ist er im allgemeinen nicht).
B] \addplot[red] {x} -> wird genauso verwendet; es kommen keine automatisch erstellten optionen dazu
C] \addplot+[thick] {x} --> dasselbe wie \addplot[blue,mark=*,thick] {x}
Das "+" bedeuted, dass die optionen aus der cycle list geholt werden sollen, und dass alles innerhalb der eckigen klammern noch angehaengt wird.
Viel Spass damit!
Mit liebem Gruss
Christian
Hallo guy.brush,
danke fuer das Feedback.
Du hast schon recht, dass eine menge pgfplots abbildungen das uebersetzen betraechtlich verlaengern. Aus genau dem Grund hatte ich die "external" lib entwickelt - das verringert den zeitlichen Aufwand ganz betraechtlich, ohne das man sich zu viele Gedanken machen muss.
Was das problem mit der Neuerstellung angeht hast Du ganz sicher recht: wenn sich eine Option im Plot oder vielleicht das zugrundeliegende Datenfile von Dir aktualisiert wird, sollte natuerlich auch die Abbildung ersetzt werden. Das Problem ist jedoch unabhaengig von pgfplots. Mit anderen Worten: falls Du gnuplot oder matlab nehmen wuerdest, haettest Du genau dieselbe Anforderung. Tatsaechlich ist mit gnuplot noch eine weitere Anforderung drin: die Skalierung. Denn wenn man \includegraphics[width=8cm]{gnuplotgraphics.pdf} macht, werden dort die Fonts mitskaliert. Das muss natuerlich einheitlich sein, damit nicht bei einem plot die fonts groesser sind als beim naechsten. Klar, Loesungen gibt es auch hier. Aber wenn wirklich das Neuerstellen nach aktualisieren Dein einziger Grund ist, empfehle ich aus eigener Erfahrung die Verwendung von tikz/pgfplots. Hinweis: falls Du "make" verwendest, werden aktualisierungen an datenfiles auch noch automatisch erkannt und die zugehoerigen externen Graphiken neu erstellt.
Deine Sorge mit der Platzierung der automatisch erstellten .pdfs kann ich gut verstehen - das waere auch eine Katastrophe, wenn sich dann was verschieben wuerde. Tatsaechlich ist das mit grosser Sorgfalt entwickelt und getestet worden. Solltest Du wieder alles Erwarten da Schwierigkeiten finden, wird das mit sehr hoher Prioritaet behoben. Die automatische Externalisierung ist - nebenbei bemerkt - die allereinfachste und verlaesslichste Methode, um Teile der Achsenbeschriftung von der bounding box auszuschliessen und mit dem Rest des Dokuments auszurichten (vgl. Section Alignment in pgfplots manual und das 'trim axis right' feature).
Zu Deiner Anregung des Anpassens des Manuals: ich habe mir Dein Beispiel "as-is" in meine todo liste uebernommen. Ich hoffe, dass ich auch den bug noch fixen kann. In jedem Fall nehme ich die Anregung gerne auf (muss noch sehen, wann ich es schaffe).
Zu Deinen Minifragen:
(a) Es ist fast immer egal, in welcher Reihenfolge optionen auftauchen - es sei denn, dass eine option die andere Ueberschreibt, dann natuerlich nicht (beispiel: 'sharp plot,smooth' aktiviert 'smooth' und deaktiviert 'sharp plot').
In Deinem Fall ist es -wie in den meisten anderen - egal.
(b) 'yticklabel,' geht auch, ja.
(c) pgfplots skaliert standardmaessig so, dass der plot innerhalb von 'width' und 'height' reinpasst -- und damit den angezeigten plot moeglichst gut darstellt. Das verzerrt eigentlich immer die Achsen.
Wenn Du die Seitenverhaeltnisse gerne gleich haettest (d.h. x unit = y unit), kannst Du "axis equal" angeben.
Das "axis equal" ist besser als "x=1m,y=1cm" weil es automatisch die Vorgegebene Breite/Hoehe ausnutzt und die tatsaechliche Groesse der Units darauf optimiert.
(d) Hier ist noch ein Missverstaendnis zwischen \addplot und \addplot+ : das "+" bezieht sich nicht auf den vorhergehenden plot, sondern auf das, was man ohne Angabe von Optionen haette.
Sprich: wenn Du \addplot {x} schreibst, wuerde der aus der momentan eingestellten "cycle list" irgendwelche Optionen holen -- z.B. 'blue,mark=*'.
Die Faelle sind:
A] \addplot {x} --> dasselbe wie \addplot[blue,mark=*] {x}
die optionen wurden aus der cycle list geholt (wir nehmen einfach mal an, dass 'blue,mark=*' der aktuelle eintrag der cycle list ist. Das ist er im allgemeinen nicht).
B] \addplot[red] {x} -> wird genauso verwendet; es kommen keine automatisch erstellten optionen dazu
C] \addplot+[thick] {x} --> dasselbe wie \addplot[blue,mark=*,thick] {x}
Das "+" bedeuted, dass die optionen aus der cycle list geholt werden sollen, und dass alles innerhalb der eckigen klammern noch angehaengt wird.
Viel Spass damit!
Mit liebem Gruss
Christian