Pregunta

Estoy usando TikZ para dibujar diagramas de látex que se desea aislar como archivos de imagen a poner en línea. Mi conjetura es que hay una manera de extraer estos diagramas directamente sin tener que molestar a sacarlos del archivo .pdf terminado. ¿Cómo voy a ir haciendo eso? (Si importa, estoy usando TeXnicCenter.)

¿Fue útil?

Solución

El seguimiento de mi comentario: Cirkuit convertidos en imágenes TikZ diagramas mediante la ejecución de algo parecido a la siguiente secuencia de comandos:

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

Aquí img.tex sería un archivo LaTeX que sigue a esta plantilla:

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

Si usted es capaz de utilizar un editor de Cirkuit o similares, o escribir una secuencia de comandos por sí mismo para poner su diagrama de acuerdo con la plantilla y ejecutar las herramientas adecuadas, usted tendrá una forma rápida de convertir el código TikZ en una imagen PNG.

Para responder a su pregunta más directamente ... no, no sé de ninguna manera de convertir un diagrama de TikZ directamente a PNG sin pasar por un archivo PDF (o al menos DVI) a algún momento.

Otros consejos

recomendaría el siguiente método para usted. Coloque la imagen TikZ en un archivo separado y utilizar la clase 'independiente' para compilarlo independiente. Se utiliza el paquete de 'vista previa' mencionado en otras respuestas. Para incluir la imagen en la carga principal del documento 'independiente' paquete primero y uso \ de entrada en el archivo de imagen.

Esto le permitirá obtener un único PDF de la imagen TikZ sin márgenes. Entonces tú puedes utilizar un PDF-a-decir convertidor de PNG para obtener un PNG (recomendado para la publicación web de dibujos). El formato SVG sería mejor, porque es un formato vectorial, pero no todos los navegadores podría ser capaz de mostrarlo.

A continuación, un código de ejemplo:

El archivo de imagen TikZ (por ejemplo '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}

El documento principal:

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

A continuación, compilar la imagen y la convierten, por ejemplo, con ImageMagick (por ejemplo, bajo Linux):

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

o tratar SVG:

convert pic.pdf pic.svg

Vea la sección del manual TikZ "La externalización de gráficos". Esto le permite hacer EPS o versiones en PDF de sus gráficos. Yo uso los archivos EPS, convertirlos a TIFF y luego se puede poner donde quiera que necesito.

En general estoy usando algo como lo siguiente:

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

El archivo PDF generado contiene la imagen independiente TikZ. Para convertirlo a cualquier otro formato de archivo, simplemente abrirlo con Gimp.

Lo utilizo para crear archivos Makefile regla y las miniaturas de los archivos PNG .tex que contienen uno tikzpicture cada uno. Funciona de manera similar a la creación de imágenes en 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) probablemente puede ser reemplazado por convert y se puede sustituir con otro example tempfile prefijo.

Windows: Sólo para estar completamente explícita para noobs como yo

Uso del paquete prewiew como Habi sugirió en el anterior en el código de látex para eliminar los márgenes.

Instalar MikTeX e Inkscape y use el siguiente archivo 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top