![为什么 XeTeX 无法处理这个糟糕的 meme?](https://linux22.com/image/321019/%E4%B8%BA%E4%BB%80%E4%B9%88%20XeTeX%20%E6%97%A0%E6%B3%95%E5%A4%84%E7%90%86%E8%BF%99%E4%B8%AA%E7%B3%9F%E7%B3%95%E7%9A%84%20meme%EF%BC%9F.png)
平均能量损失
请使用下面链接的图像。
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\includegraphics{dank}
\end{document}
奇怪的是,只有这图片失败,仅有的使用 XeTeX 编译时(而不是 pdfTeX 或 LuaTeX):
ERROR: Dimension too large.
--- TeX said ---
<to be read again>
b
l.5 \includegraphics{dank}
--- HELP ---
From the .log file...
I can't work with sizes bigger than about 19 feet.
Continue and I'll use the largest value I can.
潮湿模因本身有点碍眼,所以我没有以内联方式显示。请检查 shasum 以确保下载时它仍然是同一个文件。
$ shasum dank.jpg
b889bc28b2ccd079073267159db0562f45b58e4d dank.jpg
这张图片有什么特别之处?为什么会失败?它的自然环境(如 LuaTeX 或 pdfTeX 所示)远低于 19 英尺。
答案1
原因是 dank.jpg 没有 JFIF,也就是 Exif 头。所以 XeTeX 的 jpeg 驱动无法读取密度,并假设它是 1DPI。因此它变得非常大。pdftex 的 jpeg 驱动也无法读取密度,因此假设它是 72DPI。解决方案:使用 ImageMagick 中的 convert 添加 JFIF 头。
convert -density 72x72 dank.jpg dank1.jpg
然后转换后的 dank1.jpg 就可以用于 XeTeX 了。
要确定这是否是给定图像的问题,请使用(从@egreg 的评论复制)identify -verbose dank.jpg | grep Resolution
:。