
Conheço apenas o básico do TikZ, tendo-o usado apenas para produzir um lindo fluxograma para um de meus documentos. Aprendi recentemente que você pode usar o Inkscape e exportar para o TikZ.
Quais são as limitações do fluxo de trabalho Inkscape->TikZ? Existe algum motivo convincente para dedicar um tempo para aprender o TikZ (que, segundo me disseram, tem uma curva de aprendizado bastante acentuada) em vez de simplesmente exportar para o TikZ do Inkscape?
Responder1
Editar:@XiaodongQi comenta abaixo disso
As mesmas opções não estão mais disponíveis na versão mais recente do Inkscape. Mas existem opções semelhantes ao salvar o PDF.
Você pode salvar suas figuras do Inkscape como PDFs e colocá-las em seu documento com a extensão \includegraphics
. Se você tiver texto em suas figuras, você pode selecionar a opção PDF+LaTeX no menu salvar como pdf do inkscape. Isso criará um arquivo pdf_tex. Você \input
esse arquivo e o TeX faz a composição.
No inkscape:
Salvando no inkscape após selecionar salvar como pdf. O Inkscape grava o arquivo topview.pdf_tex
:
No documento:
\begin{figure}[h]
\centering{
\resizebox{75mm}{!}{\input{images/topview.pdf_tex}}
\caption{Top view.}
\label{fig:topView}
}
\end{figure}
Saída:
Esta é claramente uma imagem que poderia ser desenhada com o tikz, mas optei por não fazê-lo, pelos motivos que você explicou em sua resposta a @HarishKumar - a curva de aprendizado mais longa do tikz e uma preferência pelo wysiwyg para uso ocasional. Se você precisar de um posicionamento preciso (linhas realmente se encontrando nos cantos), poderá fazer isso com os recursos de encaixe do Inkscape. Ainda não experimentei.
Responder2
Após a exportação (descrita por Ethan Bolker) use o seguinte trecho para incorporar a imagem gerada pelo Inscape:
\begin{figure}
\def\svgwidth{\linewidth}
\input{img/filename.pdf_tex}
\caption{}
\end{figure}
Usando \def\svgwidth{desired width}
em vez de \resizebox
vontadepreservar o tamanho da fonte. Esta é a forma recomendada descrita no cabeçalho do arquivo gerado:
%% Creator: Inkscape 0.91_64bit, www.inkscape.org
%% PDF/EPS/PS + LaTeX output extension by Johan Engelen, 2010
%% Accompanies image file '_masks.pdf' (pdf, eps, ps)
%%
%% To include the image in your LaTeX document, write
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics{<filename>.pdf}
%% To scale the image, write
%% \def\svgwidth{<desired width>}
%% \input{<filename>.pdf_tex}
%% instead of
%% \includegraphics[width=<desired width>]{<filename>.pdf}
%%
%% Images with a different path to the parent latex file can
%% be accessed with the `import' package (which may need to be
%% installed) using
%% \usepackage{import}
%% in the preamble, and then including the image with
%% \import{<path to file>}{<filename>.pdf_tex}
%% Alternatively, one can specify
%% \graphicspath{{<path to file>/}}
%%
%% For more information, please see info/svg-inkscape on CTAN:
%% http://tug.ctan.org/tex-archive/info/svg-inkscape
%%
Responder3
Como outra alternativa, existe uma ferramentaSVG2TikZ(costumava ser Inkscape2TikZ), que pode ser usado para gerar código TikZ.
Se você instalar o pacote Python do repositório GitHub, poderá converter um SVG (que pode ser exportado do Inkscape) para o código-fonte TeX usando TikZ da seguinte maneira:
svg2tikz a.svg > a.tex
Também pode ser instalado como uma extensão do Inkscape.