In einem
früheren Artikel habe ich über das Schreiben von mathematischen Notizen zu LaTeX in Vim gesprochen. In diesem Artikel werde ich Ihnen zeigen, wie Sie mit Inkscape Zeichnungen für diese Abstracts erstellen und über Ihren selbst erstellten Hotkey-Manager sprechen.
Einige Beispiele
Lassen Sie mich zunächst einige Beispiele für die Zahlen zeigen. Sie sind für komplexe Analysen, Differentialgeometrie, Elektrodynamik und meine Bachelorarbeit über elliptische Kurven gemacht. Ich habe sie während eines Vortrags - außer natürlich für meine Dissertation - mit Inkscape gezeichnet. Beginnen wir also damit.





Was ist Inkscape?
Inkscape ist ein Open-Source-Vektorgrafik-Editor, der für alle wichtigen Plattformen verfügbar ist. Dies ist eine kostenlose, aber möglicherweise weniger funktionale Alternative zu Adobe Illustrator. Es kann zum Entwerfen von Flyern und Logos verwendet werden, wie in der folgenden Abbildung dargestellt. Es ist jedoch auch ein leistungsstarkes Werkzeug zum Zeichnen geometrischer Formen.

Warum inkscape?
Die gängigsten Lösungen zum Hinzufügen von Zeichnungen zu LaTeX-Dokumenten sind TikZ, PSTricks und Asymptote. Eines haben sie gemeinsam: Sie arbeiten alle in Teams, dh Sie schreiben nur Code, der bestimmt, wie eine Figur gezeichnet wird. Zum Beispiel der TikZ-Code:
\begin{tikzpicture} \coordinate (A) at (1, 3); \draw[thick, ->] (0, 0) -- (A); \node[above right] at (A) {$A = (1, 2)$}; \end{tikzpicture}
zeigt folgendes Bild an:

Der Vorteil dieser Pakete besteht darin, dass das Zeichnen der Programmierung sehr ähnlich ist: Sie können Variablen verwenden, Berechnungen durchführen, Schleifen verwenden usw. Außerdem passen Zeichnungen gut in das Dokument, da der gesamte Text direkt in LaTeX eingegeben wird. Dies bedeutet, dass es einfach ist, Formeln einzugeben. Wenn Sie später die Schriftart des Dokuments ändern, werden alle Bilder automatisch entsprechend der neuen Schriftart geändert.
Für diese Vorteile müssen Sie jedoch für das Fehlen von visuellem Feedback und die geringe Geschwindigkeit bezahlen. Das Zeichnen komplexer Formen ist von Natur aus eine grafische Aufgabe und kann ohne grafische Oberfläche äußerst zeitaufwändig sein. Es ist nicht möglich, auf ein Objekt zu klicken und es zu ziehen, eine Kurve von Hand zu zeichnen oder Kontrollpunkte von Bezier-Kurven zu ziehen. Aus diesem Grund ist TikZ viel komplizierter und langsamer als Inkscape. Obwohl ich TikZ manchmal für komplexe Zeichnungen verwende, überwiegen in den meisten Fällen die Vorteile von Inkscape bei weitem die Vorteile von TikZ, insbesondere wenn Sie während einer Vorlesung unter Zeitdruck stehen.
Es ist vorbei mit, lass uns anfangen.
Betten Sie Inkscape-Zeichnungen in ein LaTeX-Dokument ein
Inkscape bietet wie TikZ die Möglichkeit, Text in einer Zeichnung mit LaTeX anzuzeigen. Dazu exportiert der Editor die Zahlen sowohl im PDF- als auch im LaTeX-Format. Im ersten Bild mit separatem Text und in der LaTeX-Datei - der Code, der für die korrekte Platzierung des Textes erforderlich ist. Sie arbeiten beispielsweise in Inkscape an einer Zeichnung wie der folgenden:
Riemanns TheoremUm diese Abbildung in ein LaTeX-Dokument aufzunehmen,
rufen Sie das Menü
Datei ›Speichern unter auf , wählen Sie als Erweiterung 'pdf' aus und klicken
Sie dann auf
Speichern . Das folgende Dialogfeld wird angezeigt:
Wenn Sie 'Text im PDF auslassen und LaTeX-Datei erstellen' auswählen, wird die Zeichnung als PDF + LaTeX gespeichert. Um Inkscape-Zeichnungen in ein LaTeX-Dokument einzufügen, können Sie der Präambel den folgenden Code hinzufügen:
\usepackage{import} \usepackage{xifthen} \usepackage{pdfpages} \usepackage{transparent} \newcommand{\incfig}[1]{
Angenommen, die Abbildung befindet sich in der
figures/riemmans-theorem.svg
, können Sie sie mit einfachem Code einfügen:
\begin{figure}[ht] \centering \incfig{riemmans-theorem} \caption{Riemmans theorem} \label{fig:riemmans-theorem} \end{figure}
Nach dem Kompilieren des Dokuments wird Folgendes angezeigt:

Wie Sie sehen können, wird der Text mit LaTeX gerendert, was sehr gut aussieht. Wenn Sie später die Schriftart ändern, wird sie entsprechend aktualisiert:

Mit einem solchen System können Sie Inkscape zeichnen und gleichzeitig LaTeX eingeben.
Erstellen und fügen Sie schnell Zeichnungen ein
Wenn ich während einer Vorlesung ein Kompendium schreibe, muss ich Zeichnungen im laufenden Betrieb hinzufügen, ohne den Fluss zu stören, dh keine Zeit damit verschwenden, Inkscape zu öffnen, das richtige Verzeichnis zu finden, LaTeX-Code einzugeben, um die Abbildung manuell einzufügen, und so weiter. Um dies zu vermeiden, habe ich Vim einige Tastaturkürzel zum Verwalten von Zeichnungen hinzugefügt. Wenn ich beispielsweise einen Bildtitel eingebe und
Ctrl+F
, geschieht Folgendes:
- Das Skript findet den Bildkatalog abhängig vom Speicherort der LaTeX-Stammdatei.
- Anschließend wird geprüft, ob eine Zeichnung mit demselben Namen vorhanden ist. Wenn ja, macht das Skript nichts.
- Wenn nicht, wird die Mustervorlage in das Verzeichnis
/figures
kopiert.
- Die aktuelle Zeile mit dem Titel des Bildes wird durch den LaTeX-Code ersetzt, um es einzufügen.
- In Inkscape wird eine neue Zeichnung geöffnet.
- Die Dateiüberwachung ist so konfiguriert, dass jedes Mal, wenn Sie ein Bild durch Drücken von
Ctrl+S
in einer SVG-Datei speichern Ctrl+S
es auch als PDF + LaTeX gespeichert wird. Daher wird der nervige PDF-Speicherdialog, den wir zuvor besprochen haben, nicht mehr angezeigt.
Schema in Aktion:

Wenn ich ein Bild bearbeiten möchte,
Ctrl+F
ich im normalen Modus
Ctrl+F
Ein Auswahldialog wird geöffnet, in dem Sie nach Mustern im aktuellen Dokument suchen können. Nach der Auswahl wird die Zeichnung in Inkscape geöffnet. Wenn ich es speichere, wird der Einfügecode in die Zwischenablage kopiert. Daher kann ich es erneut einfügen, wenn ich die Quelle gelöscht habe.

Mit diesen Tastenkombinationen können Sie Zeichnungen im laufenden Betrieb hinzufügen und öffnen. Sie müssen sich nicht daran erinnern, dass Sie für jedes PDF + LaTeX das richtige Verzeichnis auswählen oder Code zum Einfügen schreiben müssen. Die Barriere für das Hinzufügen eines neuen Bildes ist viel geringer als bei manueller Ausführung. Mein Bildverwaltungsskript wird
auf Github veröffentlicht .
Nachdem Sie das Management verstanden haben, sprechen wir darüber, wie Sie tatsächlich Formen in Inkscape zeichnen.
Zeichnen
Obwohl das Zeichnen in Inkscape normalerweise schneller als in TikZ ist, ist es immer noch langsamer als das Zeichnen von Hand. Der Prozess wird durch die in Inkscape integrierten Tastaturkürzel beschleunigt, reicht aber immer noch nicht aus.
Deshalb habe ich beschlossen, in Python einen hausgemachten Shortcut-Manager zu programmieren, mit dem Sie alle Tastaturereignisse abfangen können, bevor sie Inkscape erreichen. So habe ich die volle Kontrolle darüber, wie jeder Tastendruck interpretiert wird, was eine große Flexibilität bietet.
Formen zeichnen
Beginnen wir mit den in Inkscape integrierten Tastaturkürzeln. Beispielsweise aktiviert
r
das Rechteck-Zeichenwerkzeug,
e
zeichnet Ellipsen usw. Aus Sicht der Implementierung bedeutet dies, dass der Kombinationsmanager diese Tastaturereignisse „spielt“, dh sie einfach an Inkscape überträgt.
Anstelle der Standardverknüpfungen
p
für den Stift und
b
für die Bezier-Kurven verwende ich jedoch
w
und
f
, da sie mit der linken Hand etwas bequemer zu klicken sind, wenn Sie mit der rechten Maus klicken. Im Geiste linkshändiger Kombinationen habe ich auch
z
zum Abbrechen,
Shift+z
zum Löschen und
x
zum Umschalten des Schnappens abgeglichen, was normalerweise schwer erreichbaren
%
zugewiesen ist.
Tastenkombinationen für häufig verwendete Stile
Stilobjekte sind das zweithäufigste, was ich in Inkscape mache. Die Stile zum Zeichnen von Formen sind ziemlich einfach:
- Formen wie Rechtecke und Kreise sind normalerweise vielleicht schwarz, hellgrau, weiß oder transparent. mit Kontur.
- Linien (einschließlich Konturen) sind meist durchgehend, gestrichelt oder gepunktet. Sie können (sehr) fett oder normal breit sein und manchmal einen Pfeil auf einer oder beiden Seiten haben.
Die Kombination dieser Optionen ergibt die folgende Tabelle häufig verwendeter Stile:

Da ich diese Stile häufig verwende, möchte ich dies schnell tun, aber die Verwendung der Standardverknüpfungen von Inkscape nimmt zu viel Zeit in Anspruch. Sie möchten beispielsweise den Stil einiger Objekte wie folgt ändern:

Sie müssen
Ctrl+Shift+F
drücken, um das
Ctrl+Shift+F
zu öffnen und den Stil jedes Objekts zu aktualisieren, indem Sie darauf klicken, da dies in Inkscape nicht über Tastaturkürzel möglich ist. Das ist anstrengend. Idealerweise möchte ich eine solche Operation in Sekundenbruchteilen durchführen.

Hier kommen Tastaturkürzel ins Spiel, die aus zwei oder mehr gleichzeitigen Tastenanschlägen bestehen. Wenn ich beispielsweise gleichzeitig
s
und
f
drücke, wendet mein Kombinationsmanager einen durchgezogenen Umriss und eine graue Füllung auf die aktuelle Auswahl an. Wenn Sie einen fetten Umriss benötigen, drücke ich gleichzeitig
s+f+g
, wobei
g
fett bedeutet.
Somit entspricht jede Eigenschaft einem Schlüssel:
s
bezeichnet eine normale Kontur,
f
bezeichnet eine graue Füllung,
g
bezeichnet eine Dicke,
a
bezeichnet einen Pfeil,
d
bezeichnet Punkte,
e
bezeichnet eine gepunktete Linie usw. Hier ist eine vollständige Tabelle möglicher Optionen:

Einige Stile in dieser Tabelle entsprechen nur einem Schlüssel, z. B. dem Stil in der oberen linken Ecke: graue Füllung ohne Umriss. Dies kann ein Problem sein, da durch Drücken eines einzelnen
f
ein Bezier-Kurvenwerkzeug gestartet wird. Die Lösung besteht darin,
+ f
zu drücken, wobei das Leerzeichen als Platzhalter fungiert.
Mit solchen Kombinationen ist das vorherige Problem in wenigen Schritten gelöst:
f
+ s
macht das Rechteck grau und fügt einen festen Umriss hinzu;
f
+ h
+ e
bedeutet Polsterung und fett gepunktet
a
+ g
+ d
fügt einen Pfeil hinzu und verwandelt die Linie in eine fett gepunktete Linie.

Text hinzufügen
Da mathematische Formeln häufig in Zeichnungen enthalten sind, möchte ich
meine Schnipsel in Vim verwenden. Dazu drücke ich
t
, wodurch ein kleines Vim-Fenster geöffnet wird, in das ich den LaTeX-Code eingebe. Nach dem Beenden wird das Textfragment in Inkscape eingefügt:

Wie gesagt, dieser Text wird von LaTeX angezeigt, wenn Sie ein Bild in ein Dokument einfügen. Aber manchmal möchte ich LaTeX sofort anzeigen, was mit
Shift+T
:

Beide Optionen haben ihre Vor- und Nachteile. Grundsätzlich verwende ich die erste Methode, da der Text in einem LaTeX-Dokument angezeigt wird. Dies bedeutet, dass die Schriftarten immer übereinstimmen und Sie die in der Präambel des Dokuments definierten Makros verwenden können. Es gibt jedoch einen Nachteil: Manchmal ist es etwas schwierig, eine Textpositionierung durchzuführen. Da das Endergebnis in Inkscape nicht angezeigt wird, müssen Sie manchmal von Inkscape zum PDF-Viewer und zurück wechseln, um die Ergebnisse zu optimieren.
Speichern und Verwenden seltener Stile
Obwohl grundlegende Stile in 90% der Fälle ausreichen, möchten Sie manchmal einen speziellen Stil verwenden. Zum Zeichnen von Diagrammen auf Optiken ist es beispielsweise nützlich, Glas- und Balkenstile zu verwenden. Dazu müssen Sie zunächst in Inkscape einen Stil mit den folgenden Standardkombinationen erstellen:

Um diese Stile zu speichern, wähle ich eines der Objekte aus und drücke
Shift + s
. Dann gebe ich den Namen des neuen Stils ein, in diesem Fall 'Glas', und drücke zur Bestätigung die Eingabetaste. Jetzt ist der Stil gespeichert und später kann ich ihn verwenden.
Wenn ich nun ein Objekt auswähle,
s
drücke und 'glass' eingebe, wird der entsprechende Stil auf das Objekt angewendet. Es ist jedoch nicht erforderlich, den vollständigen Namen einzugeben, da der Stil sofort angewendet wird, wenn er allein mit den eingegebenen Zeichen übereinstimmt. Wenn ich beispielsweise nur einen Stil habe, der mit 'g' beginnt, reicht es aus, einen dieser Buchstaben einzugeben, um den Stil anzuwenden. Wenn Sie mehrere Stile haben, müssen Sie 'gl' oder sogar 'gla' eingeben.
In einer solchen Situation sind Abstürze, wenn Sie zu viele Zeichen eingeben, ärgerlich: Angenommen, die Eingabe 'gl' wird formatiert, aber Sie geben 'gla' ein - und dann wird a als ein anderer Befehl interpretiert. Daher wartet der Kombinationsmanager 500 ms, bevor er zum Standardmodus zurückkehrt. Diese Zeit reicht aus, damit eine Person sieht, dass der Stil angewendet wurde, und den Druckvorgang beendet.

Objekte hinzufügen und speichern
Das letzte Element meiner Einstellungen ist das Hinzufügen und Speichern von Objekten, was mit den Tasten
a
bzw.
Shift+a
erfolgt. Wenn Sie beispielsweise a drücken und 'ec' eingeben, wird eine elliptische Kurve hinzugefügt:

Als weiteres Beispiel: Durch Drücken von
a
und Eingeben von 'dg' wird ein Schlüsselloch, ein Schlüsselloch, hinzugefügt ('dg' ist ein Spiegelbild von 'kh' auf der Tastatur). Mit
Ctrl+-
Zahl von der angegebenen Form abgezogen werden:

Einige andere Beispiele: Blobs und 2D-, 3D-Achsen, die ich häufig in komplexen Analysen und Differentialgeometrien verwende.

Code
Wenn Sie es selbst ausprobieren möchten, werden das
Skript zum Verwalten von Zeichnungen in Vim und der
Inkscape-Tastaturkürzel-Manager auf Github veröffentlicht. Beide Skripte funktionieren nur auf Linux-Systemen. Der erste sollte sofort funktionieren, der zweite erfordert wahrscheinlich eine zusätzliche Konfiguration.
Fazit
Mit Inkscape können Sie einfach und schnell Illustrationen für Artikel, Bücher und Präsentationen erstellen. Sie sehen professionell aus und passen gut in das Dokument. Obwohl dies langsamer ist als das Zeichnen von Hand, ist Inkscape in den meisten Fällen schneller als TikZ. Meine Tastaturkürzel und ein Skript zum Verwalten von Zeichnungen in Vim beschleunigen die Arbeit noch mehr, sodass Sie während der Vorlesungen Figuren zeichnen und mit dem Dozenten Schritt halten können.