Автономные диаграммы с TikZ? [закрытый]
Я использую TikZ для рисования диаграмм в LaTeX, которые я затем хочу изолировать как файлы изображений для размещения в интернете. Я предполагаю, что есть способ извлечь эти диаграммы напрямую, не дразня их из готового.файл PDF. Как бы я это сделал? (Если это имеет значение, я использую TeXnicCenter.)
6 ответов:
после моего комментария: Cirkuit преобразует диаграммы TikZ в изображения, выполнив что-то вроде следующей последовательности команд:
pdflatex img.tex pdftops -eps img.pdf convert -density 300 img.eps img.pngздесь
img.texбудет файл LaTeX, который следует этому шаблону:\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}Если вы можете использовать Cirkuit или аналогичный редактор, или написать сценарий для себя, чтобы поместить свою диаграмму в этот шаблон и запустить соответствующие инструменты, у вас будет быстрый способ конвертировать код TikZ в PNG изображение.
чтобы ответить на ваш вопрос более прямо... нет, я не знаю никакого способа преобразовать диаграмму TikZ напрямую в PNG, не проходя через PDF-файл (или, по крайней мере, DVI) на каком-то этапе.
Я бы рекомендовал вам следующий подход. Поместите изображение tikz в отдельный файл и используйте класс 'standalone' для его автономной компиляции. Он использует пакет "предварительный просмотр", упомянутый в других ответах. Чтобы включить изображение в основной документ, загрузите "автономный"пакета там сначала и используйте \input в файле изображения.
Это позволит вам получить один PDF изображения tikz без полей. Тогда вы можете используйте конвертер PDF-to-say PNG чтобы получить PNG (рекомендуется для веб-публикации чертежей). Формат SVG был бы лучше, потому что это векторный формат, но не все браузеры могут его отображать.
вот пример кода:
файл изображения tikz (например, ' 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}главная документ:
\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}затем скомпилируйте изображение и преобразуйте его, например, с помощью ImageMagick (например, под Linux):
pdflatex pic convert -density 600x600 pic.pdf -quality 90 -resize 800x600 pic.pngили попробуйте SVG:
convert pic.pdf pic.svg
см. раздел руководства Tikz "экстернализация графики". Это позволяет создавать EPS или PDF версии вашей графики. Я использую файлы EPS, конвертирую их в TIFFs, а затем могу поместить их туда, где мне нужно.
Я обычно использую что-то вроде этих строк:
\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}созданный pdf-файл содержит автономное изображение TikZ. Чтобы преобразовать ее в любой другой формат файла, просто откройте его в Gimp.
Я использую это, чтобы правило Makefile создавало файлы PNG и миниатюры .tex файлы, которые содержат по одному tikzpicture каждый. Он работает аналогично созданию изображений в 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), вероятно, можно заменить наconvertи вы можете заменитьexampleС другим префиксом tempfile.
Windows: просто чтобы быть полностью явным для таких нубов, как я
используйте пакет prewiew, как Habi предложил выше в вашем коде latex, чтобы удалить поля.
установите MIktex и Inkscape и используйте следующий файл 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
Comments