====== 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]]