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, 06:27

Delorian's gravatar image

Delorian
995
Akzeptiert: 40%

bearbeitet 28 Jan, 07:20

saputello's gravatar image

saputello
20.5k43458

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

(25 Jan, 07: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, 08: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, 08:58) Delorian

Hilft Dir die Antwort unten weiter?

(02 Feb, 13: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, 10:45) Delorian

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

(04 Feb, 13:20) saputello
Ergebnis 5 von 6 Alle anzeigen

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, 08:57

Ijon%20Tichy's gravatar image

Ijon Tichy
7.2k1919

bearbeitet 28 Jan, 21:27

Henri's gravatar image

Henri
12.8k42436

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×7
×3

Frage gestellt: 25 Jan, 06:27

Frage wurde angeschaut: 545 Mal

Zuletzt aktualisiert: 04 Feb, 13:20