![1 像素图像定位不准确](https://linux22.com/image/439360/1%20%E5%83%8F%E7%B4%A0%E5%9B%BE%E5%83%8F%E5%AE%9A%E4%BD%8D%E4%B8%8D%E5%87%86%E7%A1%AE.png)
此 MWE 发生了意外转变1x1.png
:
\documentclass{article}
\usepackage{graphicx, mwe}
\newcommand{\ig}[1]{%
\includegraphics[height=3cm, width=3cm]{#1}}
\setlength\parindent{0pt}
\begin{document}
\ig{example-image-a.pdf}%
\ig{example-image-a.pdf}%
\nointerlineskip%
% \ig{example-image-a.pdf}%
% wget https://upload.wikimedia.org/wikipedia/commons/c/ca/1x1.png
\ig{1x1.png}%
\ig{example-image-a.pdf}%
\end{document}
这是四个example-image-a.pdf
:
这是将左下角的图像替换为 1x1 像素的图像后的结果:
这是由于数值不准确造成的吗?除了使用更大的图像外,我还能做些什么来改善这种情况?是否有一个最小尺寸,我应该避免低于这个尺寸pdflatex
?我应该使用尽可能大的图像吗?
答案1
算法从来graphicx
没有被设计为提供 1 像素的精度,但由于您通过缩放像素图像知道想要什么结果,所以您可以强制它成为事实。
\documentclass{article}
\usepackage{graphicx}
\newcommand{\ig}[1]{%
\includegraphics[height=3cm, width=3cm]{#1}}
\setlength\parindent{0pt}
\begin{document}
\sbox0{\ig{example-image-a.pdf}}
\sbox2{\ig{1x1.png}}
\typeout{ht \the\ht0=\the\ht2}
\typeout{dp \the\dp0=\the\dp2}
\typeout{wd \the\wd0=\the\wd2}
\ht2=\ht0 % not needed here but can't hurt
\dp2=\dp0 % not needed here but can't hurt
\wd2=\wd0 % numerical accuracy
\ig{example-image-a.pdf}%
\ig{example-image-a.pdf}%
\nointerlineskip%
% \ig{example-image-a.pdf}%
% wget https://upload.wikimedia.org/wikipedia/commons/c/ca/1x1.png
\usebox{2}%
\ig{example-image-a.pdf}%
\end{document}