====== Asymptote ======
Asymptote ist eine Vektorgrafik-Sprache. Zum Setzen von Texten und Labeln wird [[LaTeX]] benutzt.
===== Falsche Seitengröße bei Umwandlung von EPS -> PDF =====
Asymptote Version < 2.24 hat einen Bug beim Erzeugen von EPS-Dateien.
Zum Beispiel führen folgende Befehle mit Asymptote 2.23
import graph;
size(4cm, 4cm, false);
real f(real x) {
return x^2;
}
draw(graph(f, 1, 5));
yaxis( L = Label("$f(x)$", position=Relative(1)), autorotate=false, Left, arrow=Arrow(TeXHead));
xaxis( L = Label("$x$", position=Relative(1)), Bottom, arrow=Arrow(TeXHead));
zu einer EPS-Datei, die
%%BeginPaperSize: Letter
/setpagedevice where
{ pop << /PageSize [612 792] >> setpagedevice }
{ /letter where { pop letter } if }
ifelse
%%EndPaperSize
enthält. (Das Problem tritt nicht auf, wenn keine Achsen im Asymptote-Code enthalten sind.) Dadurch bekommt die PDF-Datei, die daraus mit epstopdf erzeugt wird, das Letter-Format. Ein ähnliches Problem mit anderem Code tritt auch unter Version 2.31, aber nicht in 2.32 auf. Der empfohlene Workaround ist direkt den PDF-Output von Asymptote zu benutzen. Eine andere Möglichkeit ist der [[http://tex.stackexchange.com/a/81771|automatische Aufruf von pdfcrop]] in der automatischen eps->pdf-Umwandlung. Dies war im zweiten Fall jedoch nicht erfolgreich und wird daher nicht empfohlen.
===== Fill verdeckt Achsen =====
Mit dem Befehl fill gezeichnete Füllungen überdecken standardmäßig die Achsen (unabhängig von der Aufrufreihenfolge). Möchte man dies nicht, können die Achsen mit above = true nach vorne geholt werden.
fill((0,0)--(0,1)--(1,1)--(1,0)--cycle);
xaxis(L = Label("$x$"), above = true);
===== Text mit Umlauten =====
Um Texte mit Umlauten in Asymptote zu schreiben, die korrekt durchsuchbar und kopierbar (d.h. T1 ohne Customcodierung) sind, werden folgende Befehle benötigt:
import unicode;
usepackage("fontenc", "T1");
usepackage("lmodern");
===== Dateien includieren =====
Andere Asymptote-Dateien lassen sich mit ''import'' inkludieren. Das ist zum Beispiel hilfreich um gemeinsame Definitionen in eine einzige Datei auszulagern. Die Datei common.asy wird so includiert:
import common;
===== Filltype =====
Die verschiedenen Filltypes (z.B. von ''Label'') werden [[http://asymptote.sourceforge.net/doc/Frames-and-pictures.html#Frames-and-pictures|hier]] in der Dokumentation beschrieben.
===== Grenzen (limits) der Zeichnung bestimmen =====
Mit den Funktionen
min(currentpicture, true)
max(currentpicture, true)
lässt sich das Minimum/Maximum der aktuellen Zeichnung bestimmen. Das ist z.B. praktisch um die Achsen etwas länger als benötigt zu machen:
import graph;
size(4cm);
path unitcircle=E..N..W..S..cycle;
draw(unitcircle);
xaxis("$x$", xmax=max(currentpicture,true).x + 0.5);
yaxis("$y$");
===== Schar von Funktionen plotten =====
Eine Schar oder Familie von Funktionen lässt sich wie [[https://web.archive.org/web/20191228093838/http://www.piprime.fr:80/693/asymptote-using-graph_asy-fig0270/|hier]] plotten.
===== Definierte Farbnamen =====
Asymptote kennt standardmäßig [[http://asymptote.sourceforge.net/doc/colors.png|diese Farbnamen.]]
Weitere Farben können durch Importieren von [[https://github.com/vectorgraphics/asymptote/blob/master/base/texcolors.asy|texcolor.asy]] oder [[https://github.com/vectorgraphics/asymptote/blob/master/base/x11colors.asy|x11colors.asy]] verwendet werden.
===== Debugging =====
Mit dem Befehl ''write()'' können Debugausgaben auf die Konsole geschrieben werden.
===== Links =====
* [[http://asymptote.sourceforge.net/|Asymptote Homepage]]
* [[http://math.uchicago.edu/~cstaats/Charles_Staats_III/Notes_and_papers_files/asymptote_tutorial.pdf|Asymptote Tutorial]]
* [[http://www.artofproblemsolving.com/Wiki/index.php/Asymptote_%28Vector_Graphics_Language%29|Asymptote im AOPS Wiki]]
* [[http://www.piprime.fr/asymptote/|Gallerie mit vielen Beispielen]]
* [[http://asymptote.sourceforge.net/asyRefCard.pdf|Asymptote Reference Card]]