Domanda

sto usando TikZ per disegnare diagrammi in LaTeX che quindi da isolare come file immagine di mettere on-line. La mia ipotesi è che c'è un modo per estrarre questi diagrammi direttamente, senza dover prendere in giro fuori del file .pdf finito. Come potrei fare per fare che? (Se è importante, sto usando TeXnicCenter.)

È stato utile?

Soluzione

In seguito il mio commento: Cirkuit convertiti TikZ diagrammi in immagini eseguendo qualcosa come la seguente sequenza di comandi:

pdflatex img.tex
pdftops -eps img.pdf
convert -density 300 img.eps img.png

Qui img.tex sarebbe un file LaTeX che segue questo modello:

\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}

Se si è in grado di utilizzare Cirkuit o un editor simile, o scrivere uno script per te di mettere il vostro schema in quel modello e eseguire gli strumenti appropriati, avrete un modo rapido per convertire il codice TikZ un'immagine PNG nell'elemento.

Per rispondere alla tua domanda in modo più diretto ... no, non so di alcun modo per convertire un TikZ schema direttamente in PNG senza passare attraverso un file PDF (o almeno DVI) a un certo punto.

Altri suggerimenti

mi sento di raccomandare il seguente approccio a voi. Posizionare l'immagine tikz in un file separato e utilizzare la classe 'standalone' per compilarlo standalone. Esso utilizza il pacchetto di 'preview' di cui le altre risposte. Per includere l'immagine nel documento principale di carico della 'standalone' pacchetto , prima di utilizzare \ ingresso sul file di immagine.

Questo vi permetterà di ottenere un unico PDF del quadro tikz senza margini. Allora puoi utilizzare un PDF-to-dire PNG Converter per ottenere un PNG (consigliato per la pubblicazione sul web di disegni). Il formato SVG sarebbe più bello, perché è un formato vettoriale, ma non tutti i browser potrebbe essere in grado di visualizzarlo.

Ecco qualche esempio di codice:

Il tikz file di immagine (ad esempio '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}

Il documento principale:

\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}

Poi compilare l'immagine e convertirla, per esempio con ImageMagick (ad esempio sotto Linux):

pdflatex pic
convert -density 600x600 pic.pdf -quality 90 -resize 800x600 pic.png

o provare SVG:

convert pic.pdf pic.svg

Si veda la sezione del manuale TikZ "Esternalizzazione Graphics". Questo consente di effettuare EPS o versioni PDF di grafica. Io uso i file EPS, convertirli in TIFF e può quindi mettere ovunque ne ho bisogno.

che sto utilizzando in genere qualcosa in queste righe:

\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}

Il file pdf generato contiene l'immagine standalone TikZ. Per convertirlo in qualsiasi altro formato di file, è sufficiente aprirlo con Gimp.

Io lo uso per regola Makefile creare file PNG e miniature da file .tex che contengono una tikzpicture ciascuno. Funziona in modo analogo alla creazione di immagini alla TeXample.net :

%.png: %.tex
        @sed 's/^\\begin{document}/\
\\pgfrealjobname{dummy}\\begin{document}\\beginpgfgraphicnamed{example}/' $< | \
sed 's/^\\end{document}/\\endpgfgraphicnamed\\end{document}/' > example.tex ; \
        pdflatex --jobname=example example.tex ; \
        gs -dNOPAUSE -r120 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -sDEVICE=png16m \
-sOutputFile=$@ -dBATCH example.pdf ; \
        convert -thumbnail 200 $@ $(addsuffix .thumb.png, $(basename $@)) ; \
        mv example.pdf $(addsuffix .pdf, $(basename $<)) ; rm example.*

ghostview (gs) può probabilmente essere sostituito da convert e si può sostituire con un altro example tempfile prefisso.

di Windows: Giusto per essere completamente esplicita per niubbi come me

Usa il pacchetto prewiew come Habi suggerito nella sopra nel codice lattice per rimuovere i margini.

Installa MiKTEX e Inkscape e utilizzare il seguente file bat:

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top