Exportando do Inkscape para LaTeX - via TikZ

Exportando do Inkscape para LaTeX - via TikZ

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ê \inputesse arquivo e o TeX faz a composição.

No inkscape:

insira a descrição da imagem aqui

Salvando no inkscape após selecionar salvar como pdf. O Inkscape grava o arquivo topview.pdf_tex:

insira a descrição da imagem aqui

No documento:

\begin{figure}[h]
\centering{
\resizebox{75mm}{!}{\input{images/topview.pdf_tex}}
\caption{Top view.}
\label{fig:topView}
}
\end{figure}

Saída:

insira a descrição da imagem aqui

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 \resizeboxvontadepreservar 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.

informação relacionada