Die gefährlichste Abbildung in einem Manuskript ist die, die vor drei Überarbeitungen von Hand erstellt wurde. Wenn sich die Analyse ändert und das PNG nicht, lügt der Artikel stillschweigend. Die Lösung: Legen Sie den Code ins Manuskript und lassen Sie jedes Kompilieren das Diagramm aus den Daten neu erzeugen – Quarto führt ihn aus, Folio Writer orchestriert.
Schreiben Sie an beliebiger Stelle in einem Folio-Dokument eine ausführbare Zelle, statt ein Bild einzufügen:
```{python}
#| label: fig-eos
#| fig-cap: "Third-order Birch–Murnaghan fit to the P–V data."
import pandas as pd, matplotlib.pyplot as plt
d = pd.read_csv("Research/pv-data.csv")
plt.plot(d.V, d.P, "o"); plt.plot(d.V, fit(d.V))
plt.xlabel("V (ų)"); plt.ylabel("P (GPa)")
```
Kompilieren Sie mit Renderer = Quarto, und die Zelle läuft: Die CSV-Datei wird gelesen, die Anpassung gezeichnet, und die fertige Abbildung landet im PDF – oder in der Word-Datei oder im HTML –, nummeriert, beschriftet und mit @fig-eos referenziert wie jede andere Abbildung. R funktioniert genauso:
```{r}
#| label: fig-spectra
#| fig-cap: "Raman spectra by pressure step."
library(ggplot2)
ggplot(read.csv("Research/spectra.csv"),
aes(shift, intensity, color = factor(P))) + geom_line()
```
Aktualisieren Sie die Datendatei, kompilieren Sie neu, und jede Abbildung ist aktuell. Kein Exportschritt, kein „Welches Skript hat Abbildung 3 erzeugt?“, keine veralteten Diagramme – das Manuskript ist die Pipeline.
brew install quarto) und den kostenlosen Folio Helper, mit dem die sandboxed App aus dem App Store Ihre lokalen Werkzeuge ausführen kann.pip install jupyter matplotlib pandas). Folio Writer verweist Quarto automatisch auf einen Jupyter-fähigen Interpreter, sodass Zellen mit einem Python ausgeführt werden, das sie tatsächlich ausführen kann – nicht mit dem python3, das zufällig als Erstes im PATH steht.knitr und rmarkdown – Quartos Standard-Engine für R.Quarto-Zellenoptionen fahren als #|-Kommentarzeilen mit. Fünf davon decken fast jeden Bedarf eines Manuskripts ab:
```{python}
#| label: fig-eos # cite it as @fig-eos
#| fig-cap: "Compression curve with third-order fit."
#| echo: false # figure in the paper, code not
#| fig-width: 6.5 # inches, match the journal column
#| warning: false # keep library chatter out of the PDF
...
```
Für ein ganzes Manuskript, in dem nie Code ausgegeben werden soll, legen Sie es einmal im Metadaten-Dokument fest statt pro Zelle:
execute: echo: false warning: false
#| cache: true hinzu – Quarto führt sie nur erneut aus, wenn sich der Code der Zelle ändert, sodass ein Neukompilieren nach einer Textänderung Ihr Modell nicht neu anpasst.
Drei Ursachen decken fast jeden Fall ab. Falscher Renderer: Code wird nur ausgeführt, wenn im Kompilierfenster als Renderer Quarto eingestellt ist – unter pandoc oder Typst werden Zellen als wörtliche Codeblöcke durchgereicht (gewollt: Diese Pipelines führen nie etwas aus). Fehlende Engine: Kompilieren ▸ Externe Tools einrichten… prüft Ihre Werkzeuge; für Python-Zellen brauchen Sie Jupyter im Interpreter (pip install
jupyter), für R brauchen Sie knitr + rmarkdown. Annahmen über Pfade: Zellen laufen mit dem Projekt als Arbeitsverzeichnis, lesen Sie Daten also als Research/pv-data.csv ein, nicht über einen absoluten Pfad von Ihrem anderen Rechner – projektrelative Pfade halten das Manuskript außerdem für Mitautoren reproduzierbar.
Ausführbare Zellen und gewöhnliche Abbildungen existieren nebeneinander. Ein Foto oder ein handgezeichnetes Schema bleibt ein normales Markdown-Bild; die aus Daten abgeleiteten Diagramme werden zu Zellen. Die Manuskriptprüfung von Folio Writer überwacht sogar die statische Sorte – sie markiert eine Abbildung, die älter ist als das Skript, das sie zeichnet –, sodass eine Abbildung, egal welchen Weg sie nimmt, nicht stillschweigend veralten kann.
Weil der Quarto-Renderer derselbe ist, der die Zeitschriftenformate antreibt, funktionieren dynamische Abbildungen auch in Verlagsvorlagen: Fügen Sie eine Zeitschriftenerweiterung hinzu (AGU, Elsevier, Copernicus …), setzen Sie quarto-to: in den Metadaten, und die kompilierte Einreichung enthält Abbildungen, die aus Ihrer lebendigen Analyse erzeugt wurden – reproduzierbar aus den einfachen Dateien im Projekt, von jedem, mit einem Befehl.