这似乎是苹果 pdfKit 的一个 bug。然而,由于这个问题仅有的如果xelatex
使用的话就会发生这种情况(与 配合得很好pdflatex
),我希望这里有人可以帮助提供某种解决方法,使其能够在装有 Apple pdfKit 的 Mac 上运行。
自从 High Sierra 以来,我在使用 Apple 的 pdfKit 时遇到了很多问题,我真的不想等待他们来修复它。
要求:
我需要使用,xelatex
因为我正在使用 iOS 字体。
我需要一个模糊版本的图像,以便将其包含在 pdf 文档中。对于下面介绍的 MWE,我使用包中的 pdf并使用ImageMagickmwe
创建(详细信息如下)两个 .png 文件。一个是图像,另一个是。convert
normal.png
blur.png
结果:
创建正常图像和模糊图像后:
\includegraphics{normal.png}
\includegraphics{blur.png}
\includegraphics{normal.png}
根据使用的引擎产生以下结果:
- 使用
pdflatex
结果如下正确的视图(在 TeXShop、Preview 和 Acrobat 中),其中显示所有三幅图像:正常、模糊、正常。
- 使用
xelatex
产生以下视图(在 TeXShop 和预览中),其中模糊图像是不是显示:
笔记:
- 无论使用哪个选项,Acrobat 中的视图都很好!也就是说,Acrobat总是显示三幅图像。
- iOS 和 Safari 浏览器上的 Dropbox 应用也能够正常显示。我认为 Safari 会使用与 Preview 相同的 pdfKit,但似乎存在差异。
系统:
MacOS Catalina V 10.15.7
convert --version
:版本:ImageMagick 7.0.8-6 Q16 x86_64 2018-07-09https://www.imagemagick.org 版权所有:© 1999-2018 ImageMagick Studio LLC 许可证:https://www.imagemagick.org/script/license.php 功能:密码 DPC HDRI 模块代表(内置):bzlib freetype jng jpeg ltdl lzma png tiff xml zlib
提供图像(输出自
convert
)以供参考
列出文件pdflatex
:
*File List*
article.cls 2019/12/20 v1.4l Standard LaTeX document class
size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
graphicx.sty 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
graphics.sty 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
iftex.sty 2020/03/06 v1.0d TeX engine tests
l3backend-pdfmode.def 2020-08-07 L3 backend support: PDF mode
supp-pdf.mkii
epstopdf-base.sty 2020-01-24 v2.11 Base part for package epstopdf
epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live
normal.png Graphic file (type png)
blur.png Graphic file (type png)
normal.png Graphic file (type png)
***********
列出文件xelatex
:
*File List*
article.cls 2019/12/20 v1.4l Standard LaTeX document class
size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
graphicx.sty 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 2014/10/28 v1.15 key=value parser (DPC)
graphics.sty 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)
trig.sty 2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg 2016/06/04 v1.11 sample graphics configuration
xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex
iftex.sty 2020/03/06 v1.0d TeX engine tests
l3backend-xdvipdfmx.def 2020-08-07 L3 backend support: xdvipdfmx
ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
normal.png Graphic file (type bmp)
blur.png Graphic file (type bmp)
normal.png Graphic file (type bmp)
***********
代码:
在运行下面的 MWE 之前,您需要创建两个必要的图像:
cp /usr/local/texlive/2020/texmf-dist/tex/latex/mwe/example-grid-100x100bp.pdf normal.pdf
convert normal.pdf normal.png
convert -filter Gaussian -blur 0x2 normal.pdf blur.png
该问题并不特定于某个图像,因此您可以根据需要使用自己喜欢的图像。
\documentclass{article}
\usepackage{graphicx}
\usepackage{iftex}
\ifXeTeX
\def\EngineUsed{xelatex}%
\else
\def\EngineUsed{pdflatex}%
\fi
%\listfiles
\begin{document}
Output using \EngineUsed.
\par
%% ----------------------------------
\fbox{%
\includegraphics{normal.png}
\includegraphics{blur.png}
\includegraphics{normal.png}%
}%
\end{document}
答案1
在支持用于模糊图像的 SoftMask 的 16 位灰度图像的 FlateDecode 预测过滤器方面肯定存在一些问题(无论是在 PDFKit 还是 dvipdfmx 中)。
作为此问题的解决方法,使用以下 dvipdfmx 选项应该会有所帮助
-C 0x20
或者,您可以插入以下 \special 指令(在第一页)
\special{dvipdfmx:config C 0x20}
在您的 TeX 文件中控制 dvipdfmx 行为。