Ich verwende TikZ, um Diagramme in LaTeX zu zeichnen, die ich dann als Bilddateien isolieren möchte, um sie online zu stellen. Ich verwende TeXnicCenter, um die Quellen zu bearbeiten.
Gibt es eine Möglichkeit, diese Diagramme direkt zu extrahieren, ohne sie aus der fertigen PDF-Datei extrahieren zu müssen?
Antworten:
Folgen Sie meinem Kommentar: Cirkuit konvertiert TikZ-Diagramme in Bilder, indem es etwa die folgende Befehlsfolge ausführt :
Hier
img.tex
wäre eine LaTeX-Datei, die dieser Vorlage folgt:\documentclass{article} \usepackage{tikz,amsmath,siunitx} \usetikzlibrary{arrows,snakes,backgrounds,patterns,matrix,shapes,fit,calc,shadows,plotmarks} \usepackage[graphics,tightpage,active]{preview} \PreviewEnvironment{tikzpicture} \PreviewEnvironment{equation} \PreviewEnvironment{equation*} \newlength{\imagewidth} \newlength{\imagescale} \pagestyle{empty} \thispagestyle{empty} \begin{document} \begin{tikzpicture} % (your TikZ code goes here) \end{tikzpicture} \end{document}
Wenn Sie Cirkuit oder einen ähnlichen Editor verwenden oder ein Skript für sich selbst schreiben können, um Ihr Diagramm in diese Vorlage einzufügen und die entsprechenden Tools auszuführen, haben Sie eine schnelle Möglichkeit, TikZ-Code in ein PNG-Bild zu konvertieren.
Um Ihre Frage direkter zu beantworten ... nein, ich kenne keine Möglichkeit, ein TikZ-Diagramm direkt in PNG zu konvertieren , ohne irgendwann eine PDF-Datei (oder zumindest DVI) durchzugehen.
quelle
Ich würde den folgenden Ansatz empfehlen. Platzieren Sie das betreffende TikZ-Bild in einer separaten Datei und
standalone
kompilieren Sie es mithilfe der Klasse eigenständig. Es verwendet daspreview
in den anderen Antworten erwähnte Paket. Um das Bild in das Hauptdokument aufzunehmen, laden Sie zuerst dasstandalone
Paket dort und verwenden Sie dann den\input
Befehl in der Bilddatei.Auf diese Weise erhalten Sie ein einzelnes PDF des TikZ-Bildes ohne Ränder. Dann können Sie beispielsweise einen PDF-zu-PNG-Konverter verwenden, um ein PNG zu erhalten (empfohlen für die Veröffentlichung von Zeichnungen im Internet). Das SVG-Format wäre besser, da es sich um ein Vektorformat handelt, das jedoch möglicherweise nicht von allen Browsern angezeigt werden kann.
Hier ein Beispielcode. Die TikZ-Bilddatei (zB
pic.tex
):\documentclass{standalone} \usepackage{tikz} % all other packages and stuff you need for the picture \begin{document} \begin{tikzpicture} % your picture code \end{tikzpicture} \end{document}
Das Hauptdokument:
\documentclass{article} % or whatever class you are using \usepackage{standalone} \usepackage{tikz} % All other packages required \begin{document} % Text text text % somewhere where you want the tikz picture \input{pic} % Text text text \end{document}
Dann kompilieren Sie das Bild und konvertieren es zB mit ImageMagick:
oder versuchen Sie es mit SVG:
quelle
inkscape
.Siehe den TikZ-Handbuchabschnitt „Externalisierung von Grafiken“. Auf diese Weise können Sie EPS- oder PDF-Versionen Ihrer Grafiken erstellen. Ich verwende EPS-Dateien, konvertiere sie in TIFFs und kann sie dann überall ablegen.
quelle
Ich benutze im Allgemeinen etwas in dieser Richtung:
\documentclass{article} \usepackage[pdftex,active,tightpage]{preview} %\setlength\PreviewBorder{2mm} % use to add a border around the image \usepackage{tikz} \begin{document} \begin{preview} \begin{tikzpicture} \shade (0,0) circle(2); % background \draw (0,0) circle(2); % rim \draw (.75,1) circle(.5); % right eye \fill (.66,.9) circle(.25); % right pupil \draw (-.75,1) circle(.5); % left eye \fill (-.66,.9) circle(.25);% left pupil \fill (.2,0) circle (.1); % right nostril \fill (-.2,0) circle (.1); % left nostril \draw (-135:1) arc (-135:-45:1) -- cycle; % mouth \end{tikzpicture} \end{preview} \end{document}
Die generierte PDF-Datei enthält das eigenständige TikZ-Bild. Um es in ein anderes Dateiformat zu konvertieren, öffnen Sie es einfach mit Gimp.
quelle
Ich verwende diese Makefile-Regel, um PNG-Dateien und Miniaturansichten aus .tex-Dateien zu erstellen, die jeweils ein Tikzpicture enthalten. Es funktioniert ähnlich wie beim Erstellen von Bildern auf TeXample.net :
Ghostview (
gs
) kann wahrscheinlich durch ersetzt werdenconvert
und Sie können es durch einexample
anderes Tempfile-Präfix ersetzen .quelle
Windows: Nur um für Noobs wie mich ganz explizit zu sein
Verwenden Sie das Prewiew-Paket, wie Habi oben in Ihrem Latexcode vorgeschlagen hat, um Ränder zu entfernen.
Installieren Sie MIktex und Inkscape und verwenden Sie die folgende bat-Datei:
cd = "C:\Path to tex" pdflatex input-file-name.tex "C:\Program Files (x86)\Inkscape\inkscape.exe" input-file-name.pdf --export-plain-svg=output-file-name.svg
quelle