什么原因造成以下差距?

什么原因造成以下差距?

我尝试通过附加操作删除所有可能的空白,%但间隙仍然存在。是什么原因导致这些间隙?

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{graphicx}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=.5]{example-grid-100x100pt}}

\begin{document}
\begin{pspicture}(2\wd\IBox,2\ht\IBox)%
    \rput[bl](0,0){\usebox\IBox}%
    \rput[bl](\wd\IBox,0){\psscalebox{-1 -1}{\usebox\IBox}}%
    \rput[bl](\wd\IBox,\ht\IBox){\psscalebox{1 -1}{\usebox\IBox}}%
    \rput[bl](0,\ht\IBox){\psscalebox{-1 1}{\usebox\IBox}}%
\end{pspicture}
\end{document}

在此处输入图片描述

答案1

图像的边界框信息显示0 0 100 100,因此图像高度为 100bp。默认分辨率为dvips600dpi;缩放至 50% 后为 416.66667 像素,截断为 416。

TeX 计算出图像的高度为 50.1875pt,这是相同的,但显然 EPS 包含会截断,而规则定位会四舍五入。所以如果我编译

% arara: latex
% arara: dvips
% arara: ps2pdf

\documentclass[border=12pt]{standalone}
\usepackage{graphicx,picture}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=.5]{example-grid-100x100pt}}

\begin{document}
\fboxsep=0pt
\fbox{\usebox{\IBox}}
\the\ht\IBox
\end{document}

在此处输入图片描述

如果我改为跑步

% arara: latex
% arara: dvips: { options: "-D 10000" }
% arara: ps2pdf

\documentclass[border=12pt]{standalone}
\usepackage{graphicx,picture}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=.5]{example-grid-100x100pt}}

\begin{document}
\fboxsep=0pt
\fbox{\usebox{\IBox}}
\the\ht\IBox
\end{document}

顶部的填充物比较好,侧面的填充物比较差。

在此处输入图片描述

如果我传递 EPS 图像,eps2eps这样就可以计算出一个边界框,然后我会在example-grid-100x100pt-hires.eps序言中得到

%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 100 100
%%HiResBoundingBox: 0.000000 0.000000 99.600000 99.600000

现在输入

% arara: latex
% arara: dvips
% arara: ps2pdf

\documentclass[border=12pt]{standalone}
\usepackage{graphicx,picture}
\newsavebox\IBox
\savebox\IBox{\includegraphics[hiresbb,scale=0.5]{example-grid-100x100pt-hires}}

\begin{document}
\fboxsep=0pt
\fbox{\usebox{\IBox}}
\the\ht\IBox
\end{document}

生产

在此处输入图片描述

没有间隙,高度计算正确。

答案2

这似乎与 无关pstricks。这似乎与您正在导入的图像有关。

请尝试以下操作:

\documentclass[pstricks,border=12pt,12pt]{standalone}

\usepackage{graphicx}
\newsavebox\IBox
\setlength{\fboxrule}{4pt}
\setlength{\fboxsep}{0pt}
\savebox\IBox{\fbox{\includegraphics[scale=5.5]{example-grid-100x100pt}}}

\begin{document}
\begin{pspicture}(2\wd\IBox,2\ht\IBox)%
    \rput[bl](0,0){\usebox\IBox}%
%    \rput[bl](\wd\IBox,0){\psscalebox{-1 -1}{\usebox\IBox}}%
%    \rput[bl](\wd\IBox,\ht\IBox){\psscalebox{1 -1}{\usebox\IBox}}%
%    \rput[bl](0,\ht\IBox){\psscalebox{-1 1}{\usebox{\IBox}}}%
\end{pspicture}
\end{document}

从输出来看,很明显您获得的空白来自您正在导入的图像本身。

在此处输入图片描述

相关内容