Allgemeine Verwendung von asymptode:
Dein Beispiel ist fehlerhaft. size und draw müssen innerhalb der asy-Umgebung ohne Backslash geschrieben werden. Das folgende Beispiel funktioniert bei mir:
Öffne in Overleaf% Datei `testasy.tex'
\documentclass{scrartcl}
\usepackage[inline]{asymptote}
\begin{document}
\begin{figure}
\begin{asy}
size(3cm);
draw(unitsquare);
\end{asy}
\caption{Ein Quadrat}
\end{figure}
\end{document}
Wenn ich jetzt
pdflatex testasy.tex
asy testasy-1.asy
pdflatex testasy.tex
aufrufe, dann erhalte ich:

Ausgabe auf dem Terminal gibt es dabei nicht. Bei Problemen kann man zusätzlich Option -v beim Aufruf von asy angeben. Mit nur einem -v erhält man dabei normalerweise als Ausgabe nur
Processing testasy-1
Wrote testasy-1.tex
Gibt man -vv oder -v -v an, so erhält man sehr viel mehr an Ausgabe.
Ein häufiges Problem bei der Verwendung von asy ist, dass Ghostscript nicht gefunden wird. Dann sollte man testen, dass Ghostscript korrekt installiert und auch über PATH gefunden wird, also in einem beliebigen Terminalfenster der Aufruf gs -v bzw. gswin63.exe -v auch funktioniert.
Wird gemeldet, dass das Modul plain nicht gefunden wurde, dann ist dagegen asymptode selbst nicht korrekt installiert. Es kann dann plain.asy nicht finden. Verwendet man Vanilla TeX Live mit den voreingestellten Pfaden, dann ist diese Datei normalerweise in
/usr/local/texlive/2017/texmf-dist/asymptote/plain.asy zu finden. Bei Windows oder anderen TeX-Live-Versionen weicht der Pfadteil /usr/local/texlive/2017/texmf-dist ab. Dieser Teil entspricht normalerweise aber dem, was kpsewhich -var-value=TEXMFDIST ausgibt.
Einbindung in TeXworks:
TeXworks ist zumindest bei mir unter Linux nicht in der Lage ein Argument mit Platzhalter/Wildcard, also $basename-* für ein Executable zu verarbeiten. Wenn ich das mache, dann erhalte ich die Fehlermeldung:
error: could not load module 'testasy-*'
Dagegen funktioniert, wenn ich $basename-1 verwende. Um also Platzhalter verwenden zu können, benötige ich beispielsweise ein zusätzliches Skript:
#!/bin/sh
while [ $# -gt 0 ]; do
asy $1 || exit 1
shift
done
Wenn ich dann dieses Skript statt asy als Executable verwende, dann funktioniert es auch mit dem Parameter $basename-*.asy. Windows-Anwender müssen stattdessen eine PowerShell-Script (soweit ihre PowerShell für die Ausführung von Skripten konfiguriert wurde) oder einen CMD-Batch verwenden.
Theoretisch könnte man vermutlich auch ein TeXworks-Skript für die Ausführung von asy erstellen. Damit kenne ich mich aber nicht aus.
Einfacher ist die Verwendung von latexmk, das auch asymptode automatisch berücksichtigt.
beantwortet
26 Jan '18, 14:57
gast3
(ausgesetzt)
Akzeptiert-Rate:
53%
Hast Du denn im Menü
asymptoteauch ausgeführt nach dem Ausführen von pdfLaTeX? Und danach wieder pdfLaTeX?@stefan Das habe ich jetzt einmal gemacht. Wenn ich die Datei latexusage.tex im Menü asymptote kompiliere bekomme ich gleich dreimal in der Konsolenausgabe die Fehlermeldung
error: could not load module 'plain'
angezeigt.
@saputello Illustrator-Grafiken hatte ich eigentlich im EPS-Format erstellt. Im LaTeX-Code werden die dann auch im PDF angezeigt. Aber das will ich nicht mehr. Ich möchte das der Asymptote-Code zwischen
\begin{asy} ... \end{asy}ausgeführt wird.Hilft Dir die Antwort unten weiter?
@saputello Ja, alles klar soweit. Die beiden Backslashes waren wohl aus der TikZ-Woche zuvor übriggeblieben. ;) Ich bekomme jetzt auch aus TeXworks heraus die Grafik im PDF angezeigt.
Dann solltest Du vielleicht für die Antwort stimmen oder sie sogar akzeptieren.