Los archivos

Los archivos

Esta pregunta no contiene ninguna referencia directa a TeX; sin embargo, me encontré con el problema mientras trabajaba con pdflatex, específicamente al incluir epsresultados en un pdfarchivo. Además, espero tener la mayor experiencia con respecto a los formatos de archivo epsy pdfen este SE. Así que espero que esta pregunta esté relacionada con el tema. He investigado un par de preguntas más sobre la conversión de la salida de MATLAB; sin embargo, ninguno de ellos parecía abordar el problema específico que enfrento, o la cantidad de detalles de la pregunta era extremadamente limitada.

Mi problema es: algunos elementos gráficos no se muestran en Acrobat Reader. El texto se muestra bien y si los elementos se muestran o no depende de la rutina de exportación y su tamaño. No parece ser un problema de cultivo. No veo ese problema en otros espectadores. Entonces probaré la solución deCiertos archivos EPS no se convierten con epstopdf, pero ...

... mi pregunta es, ¿por qué sucede eso de todos modos? ¿Es eso un error en Acrobat Reader? En epstopdf? ¿En MATLAB? ¿O esa cadena de herramientas utiliza una característica que es mejor evitar porque se sabe que causa problemas?

Como dije, he reducido el problema a uno que es independiente de pdflatex.

Así genero los archivos en MATLAB, espero que el código sea comprensible para cualquiera.

for dim = 32 : 33
    im = rand(dim);
    suf = sprintf('_%d.eps', dim);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    saveas(gcf, ['saveas' suf]);
    system(['epstopdf saveas' suf]);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    print(gcf, ['print-d' suf], '-deps');
    system(['epstopdf print-d' suf]);

    close all;imagesc(im);axis off;text(0, 0, 'Text');
    print(gcf, ['print' suf]);
    system(['epstopdf print' suf]);
end

Los archivos

saveas_32.pdfy print-d_32.pdfson los archivos que se muestran mal. Así es como se ve esto:

ingrese la descripción de la imagen aquí

Mis observaciones

  • Todos los archivos eps se ven bien en GSview.
  • Todos los archivos pdf se ven bien en Google Chrome.
  • saveasy print-dlos archivos parecen idénticos en todas partes; esto no es sorprendente; es bastante sorprendente que printlos archivos tengan un borde feo que tendría que recortar manualmente; No me gustaría hacer eso.
  • Todos los demás archivos (no print) PDF se ven bastante perfectos en términos de composición.
  • Todos 33los archivos pdf se ven bien en Acrobat Reader.
  • El print_32archivo pdf se ve bien en Acrobat Reader (pero ese borde feo...).
  • A todos los demás archivos PDF (que no son print) 32les falta la imagen. El texto está en la posición esperada.
  • En 32los archivos eps, los datos de la imagen se almacenan como un "patrón".
  • En 33los archivos eps, los datos de la imagen se almacenan como java.awt.image.BufferedImage.

Información de versión

GSView 5.0

GPL Ghostscript 9.20 (2016-09-26)

MATLAB Version: 9.1.0.441655 (R2016b)
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 14393)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 
64-Bit Server VM mixed mode

MATLAB's Ghostscript:
It seems that MATLAB does not ship with Ghostscript any longer. 
From pdf files saved with MATLAB, I find this:
Apache FOP Version 2.2.0-SNAPSHOT: PDFDocumentGraphics2D
I cannot see if this is used to generate eps output, too.

C:\>which epstopdf
/Program Files/MiKTeX 2.9/miktex/bin/x64/epstopdf

C:\>epstopdf --version
MiKTeX EPS-to-PDF Converter 2.9.6200 (MiKTeX 2.9.6210 64-bit)

From EPS files, which are converted using this tool:
MiKTeX GPL Ghostscript 9.19

Adobe Acrobat Reader DC 2015.023.20056

Chrome Version 55.0.2883.87 m (64-bit)

Respuesta1

La respuesta es simple y el comentario de @samcarter me hizo encontrarla. Fue la configuración de pantalla en mi instalación de Adobe Reader. Tenía activado "Reemplazar colores del documento" (recuerdo haber jugado con esta configuración una vez), y aunque esto no cambia mucho en un documento normal (y ciertamente no elimina imágenes), sí elimina mi ejemplo 32x32 (o imágenes más pequeñas). Supongo que la diferencia entre 32x32 y 33x33 es que los últimos se codifican como mapas de bits (y no se reemplazan), mientras que los primeros se codifican como patrones de una forma (y se reemplazan). Esta debe ser una distinción que hace el codificador inicial (en este caso, MATLAB), como se ve esa diferencia en los archivos eps.

¡Al desactivar esa opción, se recuperan mis imágenes!

ingrese la descripción de la imagen aquí

información relacionada