Esta questão não contém nenhuma referência direta ao TeX; no entanto, me deparei com o problema ao trabalhar com pdflatex
, especificamente ao incluir eps
a saída em um pdf
arquivo. Além disso, espero o maior conhecimento em relação aos formatos de eps
arquivo pdf
neste SE. Então, espero que esta questão esteja no tópico. Pesquisei algumas outras questões sobre a conversão da saída do MATLAB; no entanto, nenhum deles parecia lidar com o problema específico que enfrento, ou a quantidade de detalhes da pergunta era extremamente limitada.
Meu problema é: alguns elementos gráficos não são exibidos no Acrobat Reader. O texto é mostrado corretamente e se os elementos são exibidos ou não depende da rotina de exportação e do seu tamanho. Não parece ser um problema de cultivo. Não vejo esse problema em outros espectadores. Então vou tentar a solução deCertos arquivos EPS não são convertidos com epstopdf, mas ...
... minha pergunta é: por que isso acontece, afinal? Isso é um bug no Acrobat Reader? Em epstopdf
? No MATLAB? Ou essa cadeia de ferramentas está usando um recurso que devo evitar porque é conhecido por causar problemas?
Como eu disse, reduzi o problema a um que é independente de pdflatex
.
É assim que eu gero os arquivos no MATLAB, espero que o código seja compreensível para qualquer pessoa.
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
Os arquivos
saveas_32.pdf
e print-d_32.pdf
os arquivos são exibidos incorretamente. Isto é o que parece:
Minhas observações
- Todos os arquivos EPS ficam bem no GSview.
- Todos os arquivos PDF ficam bem no Google Chrome.
saveas
eprint-d
os arquivos parecem idênticos em todos os lugares; isso não é surpreendente; é bastante surpreendente queprint
os arquivos tenham uma borda feia que eu precisaria cortar manualmente; Eu não gostaria de fazer isso.- Todos os outros arquivos (não
print
) PDF parecem perfeitos em termos de composição. - Todos
33
os arquivos PDF ficam bem no Acrobat Reader. - O
print_32
arquivo pdf fica bem no Acrobat Reader (mas aquela borda feia...). - Todos os outros arquivos PDF (não
print
)32
não têm a imagem. O texto está na posição esperada. - Nos
32
arquivos eps, os dados da imagem são armazenados como um “padrão”. - Em
33
arquivos eps, os dados da imagem são armazenados como java.awt.image.BufferedImage.
Versão informação
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)
Responder1
A resposta é simples, e o comentário de @samcarter me fez encontrá-la. Foram as configurações de exibição na minha instalação do Adobe Reader. Eu tinha "Substituir cores do documento" ativado (lembro-me de ter brincado com essas configurações uma vez) e, embora isso não mude muito em um documento normal (e certamente não remove imagens), remove meu exemplo 32x32 (ou imagens menores). Acho que a diferença entre 32x32 e 33x33 é que os últimos são codificados como bitmaps (e não substituídos), enquanto os primeiros são codificados como padrões de forma (e substituídos). Esta deve ser uma distinção que o codificador inicial (neste caso, MATLAB) faz, como você vê essa diferença nos arquivos eps.
Desativar essa opção traz de volta minhas imagens!