¿Cómo solucionar el problema de transparencia en la salida de PDF de Inkscape?

Estoy creando algunos histogramas para usar en un artículo científico. Se supone que la figura final son algunos gráficos, cada uno con dos conjuntos de datos trazados que muestran qué tan similares son. En mi ejemplo, usé Julia para generar dos conjuntos de datos y usé Gadfly para dibujar la superposición en un archivo SVG. Esto se logró superponiendo los histogramas con algo de transparencia en las barras. Abrí el archivo SVG en Inkscape y agregué descripciones de texto y luego lo guardé como pdf para usarlo en mi archivo tex. Sin embargo, el pdf no muestra la transparencia y solo coloca una capa encima de la otra sin interacción entre las dos. Por extraño que parezca, el panel de vista previa en miniatura en Evince muestra la imagen correctamente, lo que me llevó a pensar que era simplemente una deficiencia de Evince. Intenté ver el pdf en Okular, pero tanto la vista previa en miniatura como el pdf en sí no muestran la transparencia. Estoy un poco confundido en cuanto a dónde está realmente el problema.

Envié el SVG en cuestión aquí y la salida en PDF aquí . La miniatura en Evince parece imagen, que es lo que busco (excepto para las hormigas).

Realmente agradecería cualquier consejo al respecto. ¡Gracias por la lectura!

Importar el SVG a Open/Libre Office puede hacer eso: vea la edición de mi respuesta.

Respuestas (2)

Lamentablemente, el formato PDF disponible en Inkscape no es compatible con la transparencia. Para poder seguir creando un PDF con un dibujo de Inkscape que tenga objetos transparentes, primero tendremos que convertirlos a mapa de bits.

Para un solo objeto o grupo, esto se puede hacer con Filtro > Utilidades de transparencia > Borrador de luz .

Tenemos que ser conscientes de que este filtro no conserva los colores como se esperaba. Para obtener los resultados de dicha conversión, como se muestra a continuación, tuve que agregar otro 90% de opacidad a la propiedad de relleno y trazo del objeto de columnas.

ingrese la descripción de la imagen aquí PDF parcialmente convertido a mapa de bits con Light Eraser mostrado en Evince

Cuando usamos otra aplicación para convertir a PDF obtenemos resultados mucho mejores. Una aplicación de código abierto capaz de hacerlo sería Open/Libre Office , que permite la transparencia en la exportación de PDF (los objetos no se convierten en mapas de bits):

ingrese la descripción de la imagen aquí SVG importado a Libre Office, exportado a PDF como se muestra en Evince

¡Gracias por tu ayuda! He aceptado tu respuesta; sin embargo, la gente del foro de Inkscape tuvo una buena solución que pensé que la gente debería conocer: inkscapeforum.com/…
@Bobby: ¿publicar esta solución como una respuesta propia a su pregunta? Esto puede ayudar a otros.

Como se sugiere en (ver la segunda respuesta, no la primera)

http://www.inkscapeforum.com/viewtopic.php?t=15739

establecer el valor del canal alfa en lugar de la opacidad funciona.

Desafortunadamente, leí la solución después de terminar un diseño complejo que tenía cientos de formas. Por lo tanto, establecer manualmente la opacidad al 100% y luego establecer el valor del canal alfa en algo inferior a 255 no era una opción. Afortunadamente, la utilidad "sed" de los sistemas *NIX me salvó (tenga en cuenta que SVG no es más que un archivo de texto). Aquí está el comando que usé

sed 's/opacity:0\.\([0-9]*\)\(;fill[^ ]*fill-opacity:\)1/opacity:1\20\.\1/' input_with_opacity.svg > output_with_alpha.svg

Cambia entre valores de opacidad y canal alfa (llamado opacidad de relleno) para todos los objetos en el archivo. Por ejemplo, si tiene una línea

style="opacity:0.2;fill:#2bd9cf;fill-opacity:1;stroke:none;display:inline"

en el archivo original, se convertirá

style="opacity:1;fill:#2bd9cf;fill-opacity:0.2;stroke:none;display:inline"

en el nuevo archivo. Bueno, es posible que necesite algunos ajustes para sus archivos, pero no debería ser demasiado difícil hacerlo. Una advertencia es que es posible que deba desagrupar todos sus objetos antes de ejecutar esto, ya que el formato de "estilo" para los objetos agrupados puede ser diferente.