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ü
asymptote
auch 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.