Estoy usando TikZ para dibujar diagramas en LaTeX que luego quiero aislar como archivos de imagen para poner en línea. Estoy usando TeXnicCenter para editar las fuentes.
¿Existe alguna forma de extraer estos diagramas directamente sin tener que extraerlos del archivo PDF terminado?
latex
tikz
texnic-center
Qiaochu Yuan
fuente
fuente
Respuestas:
Siguiendo con mi comentario: Cirkuit convierte los diagramas TikZ en imágenes ejecutando algo como la siguiente secuencia de comandos:
Aquí
img.tex
habría un archivo LaTeX que sigue 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 puede usar Cirkuit o un editor similar, o escribir un script para usted mismo para poner su diagrama en esa plantilla y ejecutar las herramientas adecuadas, tendrá una forma rápida de convertir el código TikZ en una imagen PNG.
Para responder a su pregunta de forma más directa ... no, no conozco ninguna forma de convertir un diagrama TikZ directamente a PNG sin pasar por un archivo PDF (o al menos DVI) en algún momento.
fuente
Recomendaría el siguiente enfoque. Coloque la imagen de TikZ en cuestión en un archivo separado y use la
standalone
clase para compilarla de forma independiente. Utiliza elpreview
paquete mencionado en las otras respuestas. Para incluir la imagen en el documento principal, primero cargue elstandalone
paquete allí y luego use el\input
comando en el archivo de imagen.Esto le permitirá obtener un único PDF de la imagen TikZ sin márgenes. Luego puede usar, por ejemplo, un convertidor de PDF a 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 pueden mostrarlo.
Aquí un código de ejemplo. El archivo de imagen de TikZ (p. Ej.,
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}
Luego compile la imagen y conviértala, por ejemplo, con ImageMagick:
o prueba SVG:
fuente
inkscape
.Consulte la sección “Externalización de gráficos” del manual de TikZ. Esto le permite crear versiones EPS o PDF de sus gráficos. Utilizo archivos EPS, los convierto a TIFF y luego puedo colocarlos donde sea necesario.
fuente
Generalmente estoy usando algo en estas líneas:
\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 TikZ independiente. Para convertirlo a cualquier otro formato de archivo, simplemente ábralo con Gimp.
fuente
Utilizo esto para crear la regla Makefile para crear archivos PNG y miniaturas a partir de archivos .tex que contienen una imagen tikz cada uno. Funciona de manera similar a la creación de imágenes en TeXample.net :
ghostview (
gs
) probablemente pueda ser reemplazado porconvert
y usted puede reemplazarloexample
con otro prefijo de archivo temporal.fuente
Windows: solo para ser completamente explícito para novatos como yo
Utilice el paquete de vista previa como sugirió Habi anteriormente en su código de látex para eliminar los márgenes.
Instale 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
fuente