Exportieren von Inkscape nach LaTeX – über TikZ

Exportieren von Inkscape nach LaTeX – über TikZ

Ich kenne mich mit TikZ nur in den Grundzügen aus, da ich es nur verwendet habe, um ein hübsches Flussdiagramm für eines meiner Dokumente zu erstellen. Ich habe kürzlich erfahren, dass man Inkscape verwenden und nach TikZ exportieren kann.

Welche Einschränkungen gibt es beim Workflow Inkscape->TikZ? Gibt es zwingende Gründe, sich die Zeit zu nehmen, TikZ zu lernen (wobei mir gesagt wurde, dass die Lernkurve ziemlich steil ist), anstatt einfach von Inkscape nach TikZ zu exportieren?

Antwort1

Bearbeiten:@XiaodongQi kommentiert darunter

In der neueren Version von Inkscape sind die gleichen Optionen nicht mehr verfügbar. Beim Speichern des PDFs gibt es jedoch ähnliche Optionen.

Sie können Ihre Inkscape-Abbildungen als PDFs speichern und sie mit in Ihr Dokument einfügen \includegraphics. Wenn Ihre Abbildungen Text enthalten, können Sie die Option PDF+LaTeX aus dem Inkscape-Menü „Als PDF speichern“ auswählen. Dadurch wird stattdessen eine pdf_tex-Datei erstellt. Sie verwenden \inputdiese Datei und TeX übernimmt den Schriftsatz.

In Inkscape:

Bildbeschreibung hier eingeben

Speichern aus Inkscape nach Auswahl von „Als PDF speichern“. Inkscape schreibt die Datei topview.pdf_tex:

Bildbeschreibung hier eingeben

Im Dokument:

\begin{figure}[h]
\centering{
\resizebox{75mm}{!}{\input{images/topview.pdf_tex}}
\caption{Top view.}
\label{fig:topView}
}
\end{figure}

Ausgabe:

Bildbeschreibung hier eingeben

Dies ist eindeutig ein Bild, das mit Tikz gezeichnet werden könnte, aber ich habe mich dagegen entschieden, aus Gründen, die Sie in Ihrer Antwort an @HarishKumar dargelegt haben – die längere Lernkurve bei Tikz und eine Vorliebe für WYSIWYG bei gelegentlicher Verwendung. Wenn Sie eine präzise Platzierung benötigen (Linien, die sich tatsächlich an den Ecken treffen), können Sie dies möglicherweise mit den Snap-to-Funktionen von Inkscape tun. Diese habe ich noch nicht ausprobiert.

Antwort2

Verwenden Sie nach dem Exportieren (beschrieben von Ethan Bolker) den folgenden Codeausschnitt, um das von Inscape generierte Bild einzubetten:

\begin{figure}
\def\svgwidth{\linewidth}
\input{img/filename.pdf_tex}
\caption{}
\end{figure}

Verwenden \def\svgwidth{desired width}statt \resizeboxwillBehalten Sie die Schriftgröße beiDies ist die empfohlene Vorgehensweise, die im Kopf der generierten Datei beschrieben wird:

%% Creator: Inkscape 0.91_64bit, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file '_masks.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%%   \input{<filename>.pdf_tex}
%%  instead of
%%   \includegraphics{<filename>.pdf}
%% To scale the image, write
%%   \def\svgwidth{<desired width>}
%%   \input{<filename>.pdf_tex}
%%  instead of
%%   \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%%   \usepackage{import}
%% in the preamble, and then including the image with
%%   \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%%   \graphicspath{{<path to file>/}}
%% 
%% For more information, please see info/svg-inkscape on CTAN:
%%   http://tug.ctan.org/tex-archive/info/svg-inkscape
%%

Antwort3

Als weitere Alternative gibt es ein WerkzeugSVG2TikZ(früher Inkscape2TikZ), mit dem TikZ-Code generiert werden kann.

Wenn Sie das Python-Paket aus dem GitHub-Repository installieren, können Sie ein SVG (das aus Inkscape exportiert werden kann) mit TikZ wie folgt in TeX-Quellcode konvertieren:

svg2tikz a.svg > a.tex

Es kann auch als Inkscape-Erweiterung installiert werden.

verwandte Informationen