Hallo zusammen. Ich habe mich jetzt (gezwungenermaßen) seit einem halben Jahr mit LaTeX beschäftigt und möchte gerne die Grafiken in meiner Arbeit mit Asymptote erstellen. Ich habe schon viel im Netz darüber gelesen, aber nach dem Kompilieren der latexusage.tex wird eine PDF ohne die Grafiken angezeigt. In TeXworks habe ich einen Verweis auf ein weiteres Verarbeitungsprogramm (Asymptote) angelegt:

  1. Name: asymptote
  2. Befehl/Datei: C:/texlive/2017/texmf-dist/asymptote/binaries/i386-win32/texlive/asy.exe
  3. Argumente: $basename-*.asy

Aber alles ohne Wirkung. Wie bekomme ich denn nun die Grafik angezeigt?

Öffne in Overleaf
\documentclass{scrartcl}
\usepackage[inline]{asymptote}
\begin{document}
\begin{figure}
\begin{asy}
\size(3cm);
\draw(unitsquare);
\end{asy}
\caption{Ein Quadrat}
\end{figure}
\end{document}

Asymptote-Code wird nicht ausgeführt: "Package asymptote Warning: file `test_1-1.tex' not found on input line 8."

In der Konsolenausgabe steht: "error: could not load module 'plain' "

gefragt 25 Jan '18, 12:27

Delorian's gravatar image

Delorian
62412130
Akzeptiert-Rate: 14%

bearbeitet 28 Jan '18, 13:20

saputello's gravatar image

saputello
11.1k154365

Hast Du denn im Menü asymptote auch ausgeführt nach dem Ausführen von pdfLaTeX? Und danach wieder pdfLaTeX?

(25 Jan '18, 13:04) stefan ♦♦

@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.

(25 Jan '18, 14:40) Delorian

@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.

(25 Jan '18, 14:58) Delorian

Hilft Dir die Antwort unten weiter?

(02 Feb '18, 19:08) saputello

@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.

(04 Feb '18, 16:45) Delorian

Dann solltest Du vielleicht für die Antwort stimmen oder sie sogar akzeptieren.

(04 Feb '18, 19:20) saputello
Ergebnis 5 von 6 show 1 more comments

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:

Ergebnis

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.

Permanenter link

beantwortet 26 Jan '18, 14:57

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

bearbeitet 29 Jan '18, 03:27

Henri's gravatar image

Henri
15.7k133943

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×7
×3

gestellte Frage: 25 Jan '18, 12:27

Frage wurde gesehen: 5,301 Mal

zuletzt geändert: 04 Feb '18, 19:20