Pasar por un archivo intermedio '.ps' ayuda

Pasar por un archivo intermedio '.ps' ayuda

Utilizo Inkscape para crear gráficos que exporto a PDF para incluirlos en documentos LaTeX (con \includegraphics y usando pdflatex). No me di cuenta de que algo andaba mal hasta que alguien me dijo que mis figuras no se muestran correctamente en Mac OS X. Las partes gráficas básicas, por ejemplo cuadros o círculos que tienen una configuración de opacidad inferior al 100%, no se muestran en absoluto.

El problema parece estar en pdflatex ya que el PDF exportado desde Inkscape solo se muestra bien en una Mac. Como uso Linux y, a veces, Windows, ¡nunca me di cuenta de que había algún problema!

Después de intentar descubrir qué podría causar el problema, me topé

\includegraphics PDF, problema de color y Inkscape → PDF → incluir gráficos → XeLaTeX → colores cambiados

Sin embargo, esto no resolvió mi problema.

Una pregunta similar se hizo enDegradado de opaco a transparente perdido en la figura del PDF incrustadopero ahora realmente se dio la respuesta.

Descubrí que la conversión del PDF exportado a PS y luego nuevamente a PDF resuelve el problema, pero la calidad gráfica es bastante mala después.

¿Qué me perdí? Gracias por cualquier sugerencia.

A continuación se muestra un ejemplo de trabajo mínimo:

\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}

El gráfico incluido se puede descargar aquí:https://www.dropbox.com/s/mrtj0c3u0ng6a39/test_diagram.pdf

Inkscape: 0.48.3.1 r9886
pdfTeX, versión 3.1415926-2.4-1.40.13 (TeX Live 2012/Debian)

Respuesta1

También he visto este problema si las imágenes de Inkscape se incrustan pdflatexy luego se muestran en un visor basado en PDFKit. (PDFKit es el motor de renderizado de PDF integrado de OS X y lo utilizan Skim, Preview y muchos otros programas).

Aparentemente, Inkscape tiene una forma "inusual" de especificar transparencias, que no sobreviven a la incrustación realizada por pdflatex.

La única solución que me ha funcionado de manera confiable es "desinfectar" el PDF aplanando las transparencias. Utilizo Ghostscript (a través del ps2pdfwrscript) con el dHaveTransparencies=falseinterruptor para este propósito:

ps2pdfwr -dCompatibilityLevel=1.4 -dHaveTransparency=false test_diagram.pdf sanitized.pdf

La desventaja es que esto se reduce a rasterizar la imagen. La resolución predeterminada para esto es 720 ppp, lo que debería estar bien para la mayoría de los casos de uso. Sin embargo, si necesita una calidad mejor (o inferior), también puede especificar la resolución:

ps2pdfwr -dCompatibilityLevel=1.4 -r1200 -dHaveTransparency=false test_diagram.pdf sanitized.pdf

A 1200 ppp, su imagen de ~5 KiB aumenta a ~78 KiB en su versión rasterizada. Sin embargo, las transparencias PDF son una fuente demuchosProblemas extraños si se trata de dispositivos de salida, no sólo si son producidos por Inkscape. Véase, por ejemplo: El uso de opacidad en TikZ hace que toda la página se vuelva "más tosca" cuando se imprime. Por tanto, considero que este es el precio a pagar.

Respuesta2

Parece funcionar aquí, modifica la opacidad alfa en lugar de la opacidad general.

http://www.inkscapeforum.com/viewtopic.php?f=28&t=15739&p=65180#p65180

Estoy usando pdftex e Inkscape 0.91

Respuesta3

Tuve el mismo problema con Inkscape/Mac OS/LaTeX. Pude solucionar esto rasterizando solo las partes problemáticas de la imagen y dejando el resto vectorizado. Para hacer esto, abrí el archivo SVG, seleccioné los objetos en cuestión en Inkscape e hice Editar -> Hacer una copia de mapa de bits y luego lo guardé como PDF. No pude solucionar este problema con Inkscape 0.91, pero funcionó con Inkscape 0.48.

Respuesta4

Pasar por un archivo intermedio '.ps' ayuda

Al igual que RalfB, descubrí que convertir primero a PS y luego a PDF hacía que el látex fuera más feliz. Usar este script ayudó:

inkscape foo.svg --export-ps=foo.ps
pstopdf foo.ps -o foo.pdf

Luego simplemente compila tu archivo de látex como de costumbre.

Debe darse el caso de que la conversión de Inkscape a '.pdf' esté arruinando algo, en comparación con su conversión a '.ps', como mencionó Daniel.

Resultados

Aquí hay imágenes de antes y después, que muestran que la transparencia deseada está presente en el ps:

Antes (svg -> pdf)

Antes del ps intermedio

Después (svg -> ps -> pdf)

Después del ps intermedio

información relacionada