Eu uso o Inkscape para criar gráficos que exporto para PDFs para incluí-los em documentos LaTeX (com \includegraphics e usando pdflatex). Eu não percebi que havia algo errado até que alguém me disse que minhas figuras não são exibidas corretamente no Mac OS X. Partes gráficas básicas, por exemplo, caixas ou círculos que possuem uma configuração de Opacidade inferior a 100%, não são exibidas.
O problema parece estar no pdflatex, já que o PDF exportado apenas do inkscape é exibido perfeitamente em um Mac. Como uso Linux e às vezes Windows nunca percebi que havia algum problema!
Depois de tentar descobrir o que poderia causar o problema, tropecei
\includegraphics PDF, problema de cor e Inkscape → PDF → incluir gráficos → XeLaTeX → cores alteradas
No entanto, isso não resolveu meu problema.
Uma pergunta semelhante foi feita emGradiente opaco para transparente perdido na figura PDF incorporadamas agora a resposta foi realmente dada.
Descobri que a conversão do PDF exportado para PS e depois de volta para PDF resolve o problema, mas depois a qualidade gráfica fica muito ruim.
O que eu perdi? Obrigado por qualquer sugestão.
Abaixo está um exemplo mínimo de trabalho:
\documentclass[a4paper]{article}
\usepackage[pdftex]{color,graphicx}
\begin{document}
\begin{figure}[htb]
\begin{center}
\includegraphics[width=\columnwidth]{test_diagram}
\caption{Block diagram created with Inkscape 0.48}
\end{center}
\end{figure}
\end{document}
O gráfico incluído pode ser baixado aqui:https://www.dropbox.com/s/mrtj0c3u0ng6a39/test_diagram.pdf
Inkscape: 0.48.3.1 r9886
pdfTeX, versão 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian)
Responder1
Eu também vi esse problema se as imagens do Inkscape forem incorporadas pdflatex
e exibidas em um visualizador baseado em PDFKit. (PDFKit é o mecanismo de renderização de PDF integrado do OS X e usado pelo Skim, Preview e muitos outros programas).
Aparentemente, o Inkscape possui uma maneira "incomum" de especificar transparências, que não sobrevivem à incorporação feita pelo pdflatex
.
A única solução alternativa que funcionou de forma confiável para mim foi "higienizar" o PDF, achatando as transparências. Eu uso ghostscript (através do ps2pdfwr
script) com a dHaveTransparencies=false
opção para esta finalidade:
ps2pdfwr -dCompatibilityLevel=1.4 -dHaveTransparency=false test_diagram.pdf sanitized.pdf
A desvantagem é que isso se resume a rasterizar a imagem. A resolução padrão para isso é 720 dpi, o que deve ser adequado para a maioria dos casos de uso. Se, no entanto, você precisar de qualidade melhor (ou inferior), você também pode especificar a resolução:
ps2pdfwr -dCompatibilityLevel=1.4 -r1200 -dHaveTransparency=false test_diagram.pdf sanitized.pdf
A 1200 dpi, sua imagem de ~5 KiB aumenta para ~78 KiB em sua versão rasterizada. No entanto, as transparências em PDF são uma fonte demuitosproblemas estranhos quando se trata de dispositivos de saída – não apenas se produzidos pelo Inkscape. Veja, por exemplo: Usar a opacidade no TikZ faz com que a página inteira fique "mais grosseira" quando impressa. Portanto, considero este o preço a pagar.
Responder2
Parece funcionar aqui, ajustar a opacidade alfa do que a opacidade geral.
http://www.inkscapeforum.com/viewtopic.php?f=28&t=15739&p=65180#p65180
Estou usando pdftex e Inkscape 0.91
Responder3
Eu tive o mesmo problema com o Inkscape/Mac OS/LaTeX. Consegui lidar com isso rasterizando apenas as partes problemáticas da imagem e deixando o restante vetorizado. Para fazer isso, abri o arquivo SVG, selecionei o(s) objeto(s) em questão no Inkscape e fiz Editar -> Fazer uma cópia de bitmap e salvei como PDF. Não consegui chegar a lugar nenhum sobre esse problema com o Inkscape 0.91, mas funcionou com o Inkscape 0.48.
Responder4
Passar por um arquivo intermediário '.ps' ajuda
Assim como RalfB, descobri que converter primeiro para PS e depois para PDF tornava o látex mais feliz. Usar este script ajudou:
inkscape foo.svg --export-ps=foo.ps
pstopdf foo.ps -o foo.pdf
Em seguida, basta compilar seu arquivo latex normalmente.
Deve ser que a conversão do inkscape para '.pdf' esteja bagunçando alguma coisa, em comparação com sua conversão para '.ps', como Daniel mencionou.
Resultados
Aqui estão as fotos de antes/depois, mostrando que a transparência desejada está presente passando pelo ps: