Esta pregunta no contiene ninguna referencia directa a TeX; sin embargo, me encontré con el problema mientras trabajaba con pdflatex
, específicamente al incluir eps
resultados en un pdf
archivo. Además, espero tener la mayor experiencia con respecto a los formatos de archivo eps
y pdf
en 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.pdf
y print-d_32.pdf
son los archivos que se muestran mal. Así es como se ve esto:
Mis observaciones
- Todos los archivos eps se ven bien en GSview.
- Todos los archivos pdf se ven bien en Google Chrome.
saveas
yprint-d
los archivos parecen idénticos en todas partes; esto no es sorprendente; es bastante sorprendente queprint
los 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
33
los archivos pdf se ven bien en Acrobat Reader. - El
print_32
archivo pdf se ve bien en Acrobat Reader (pero ese borde feo...). - A todos los demás archivos PDF (que no son
print
)32
les falta la imagen. El texto está en la posición esperada. - En
32
los archivos eps, los datos de la imagen se almacenan como un "patrón". - En
33
los 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!