1 像素图像定位不准确

1 像素图像定位不准确

此 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}

在此处输入图片描述

相关内容