为什么 dvipdfmx 的输出看起来比 pdftex 的输出更好?

为什么 dvipdfmx 的输出看起来比 pdftex 的输出更好?

在屏幕上查看时,通过处理的文档看起来dvipdfmx比通过生成的文档更好pdftex

任何文档都会发生这种情况,即使是纯文本格式的文档。

我尝试过以下观众:

atril xpdf evince qpdfview mupdf okular gv zathura

它们各自在文档上产生不同的屏幕输出,通过dvipdfmx(或dvips+ps2pdf)和获得pdftex

如图所示,与 dvi 模式相比,pdf 模式下字体颜色为灰色,链接颜色模糊。

在此处输入图片描述pdftex.pdf 在此处输入图片描述dvipdfmx.pdf

$ pdffonts dvi.pdf 
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
FESNVM+CMSY10                        Type 1C           Builtin          yes yes yes      4  0
XZXPQO+CMR10                         Type 1C           Builtin          yes yes no       5  0
CSTOKE+CMR8                          Type 1C           Builtin          yes yes no       6  0
LXXLBC+CMBX10                        Type 1C           Builtin          yes yes no       7  0
LIFJYF+CMTI10                        Type 1C           Builtin          yes yes no      11  0
$ pdffonts pdf.pdf
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
IGWWSQ+CMSY10                        Type 1            Builtin          yes yes no       8  0
GVEKFU+CMR10                         Type 1            Builtin          yes yes no       9  0
JBEWTB+CMR8                          Type 1            Builtin          yes yes no      10  0
RRATMA+CMBX10                        Type 1            Builtin          yes yes no      11  0
YOSONK+CMTI10                        Type 1            Builtin          yes yes no      14  0

在其中一个主题中,有人建议通过 将 Type1 字体转换为 Type1C 字体ps2pdf,但问题是ps2pdf在创建 pdf 时会将字体转换为光栅图像,因此这不是一个合适的方法。此外,虽然转换后的文档更好,但与通过 获得的文档相比,它仍然有点模糊dvipdfmx

如果无法纠正 pdf viewer 或 pdftex,我会接受,但至少为什么pdftex我从和中获得的文档外观难道不一样吗dvipdfmx

笔记答案不应该假设改变字体 - 必须使用默认的 Computer Modern。

更新

pdftex这很奇怪:用和编译以下代码tex+dvipdfmx- 颜色完全不一样!也许这是理解这个谜团的关键?

1)dvipdfmx的代码:

\special{color push rgb 0 0 1}
\vrule width 5cm height 5cm
\special{color pop}
\bye

2)pdftex代码:

\input pdfcolor
\Blue
\vrule width 5cm height 5cm
\bye

在此处输入图片描述dvi 模式 在此处输入图片描述pdf 模式

\Black和!!!也一样

在此处输入图片描述 在此处输入图片描述

答案1

实际上有两个相互冲突的问题,一开始我以为是一个问题 - 因此弄乱了我的问题中的某些点。

根据最新披露的事实,我想将上述观众重新分为两类。

a) 以下查看器仅在颜色模型(rgb 与 cmyk)方面有所不同

gv mupdf

b) 以下查看器在颜色模型和字体处理方面有所不同(Type1 与 Type1C)

qpdfview evince okular xpdf atril zathura

1)颜色模型问题的答案:

分别使用\pdfliteral{0 0 1 rg}\pdfliteral{0 0 0 rg}表示蓝色和黑色

2)针对灰色外观问题的答案:使用以下方法转换文档ps2pdf(它不会产生光栅字体,正如我在问题中错误地写的那样)

ps2pdf -dPDFSETTINGS=/prepress -dAutoRotatePages=/None -dEmbedAllFonts=true -dSubsetFonts=true orig.pdf new.pdf

现在,当我比较 ps2pdf 的输出和 dvipdfmx 的输出时,发现有差异。

剩下要做的就是确保这个 ps2pdf 命令能够正常工作而不会丢失信息,即如何转换回 Type1 字体并将哈希值与原始字体进行比较?

摘要:除了颜色模型的问题之外,我推测这是 pdf 查看器和/或 pdf 库在处理 Type1 字体与 Type1C 字体时的一个错误,因为在使用 处理之前和之后 的输出gv看起来mupdf完全相同ps2pdf,正如它应该的那样。

相关内容