使用 \XeTeXpicfile 处理 CMYK 图像时尺寸错误

使用 \XeTeXpicfile 处理 CMYK 图像时尺寸错误

当使用 XeTeX 包含图像时,\XeTeXpicfile我注意到输出图片的尺寸是错误的。我创建了以下 MWE:

\nopagenumbers
% The TeXbook, p. 311
\def\hidehrule#1#2{\kern-#1%
  \hrule height#1 depth#2 \kern-#2 }
\def\hidevrule#1#2{\kern-#1{\dimen0=#1
    \advance\dimen0 by#2\vrule width\dimen0}\kern-#2 }
\def\makeblankbox#1#2{\hbox{\lower\dp0\vbox{\hidehrule{#1}{#2}%
    \kern-#1 % overlap the rules at the corners
    \hbox to \wd0{\hidevrule{#1}{#2}%
      \raise\ht0\vbox to #1{}% set the vrule height
      \lower\dp0\vtop to #1{}% set the vrule depth
      \hfil\hidevrule{#2}{#1}}%
    \kern-#1\hidehrule{#2}{#1}}}}

\def\pic#1{\setbox0=\vbox{\XeTeXpicfile #1 width 8cm}
  \vbox{\leavevmode\copy0\kern-\wd0\makeblankbox{.25pt}{.25pt}}}

\pic{test-cmyk300.jpg}
\bigskip
\pic{test-cmyk72.jpg}
\bigskip
\pic{test-rgb300.jpg}
\bye

请下载测试-cmyk300.jpg测试-cmyk72.jpg测试-rgb300.jpg并观察 XeTeX 的输出。(附注:这是干草车三联画

您会注意到,即使width 8cm给出了参数,300 DPI 的 CMYK 图像也会被放大。一种解决方法是将图像分辨率设置为 72 DPI,在这种情况下,尺寸正好合适。使用较低的 DPI 设置,图像也会缩小。RGB 图像不存在此问题。

这是 XeTeX 的一个错误吗?

答案1

这是 XeTeX 的一个错误,已修复。请参阅 http://tug.org/pipermail/xetex/2015-February/025727.html

答案2

经过进一步调查,结果发现这是 xdvipdfmx 中的一个错误,并且固定的,感谢 Akira Kakuto。

相关内容