我应该如何表达我的长度计算以尽量减少舍入误差?

我应该如何表达我的长度计算以尽量减少舍入误差?

我有一个如下的输入文件。

% Test.tex
\documentclass{article}
\usepackage{pstricks}
\psset
{
 linewidth=0.01
}

\newcommand\All{0.1}
\newcommand\Left{-\All}
\newcommand\Right{\All}
\newcommand\Bottom{-\All}
\newcommand\Top{\All}

\newlength\AllPadding\setlength{\AllPadding}{0mm}
\newlength\LeftPadding\setlength{\LeftPadding}{\AllPadding}
\newlength\RightPadding\setlength{\RightPadding}{\AllPadding}
\newlength\BottomPadding\setlength{\BottomPadding}{\AllPadding}
\newlength\TopPadding\setlength{\TopPadding}{\AllPadding}


\topmargin=\dimexpr\TopPadding-72.27pt\relax
\oddsidemargin=\dimexpr\LeftPadding-72.27pt\relax
\paperwidth=\dimexpr\Right\psxunit-\Left\psxunit+\RightPadding+\LeftPadding\relax
\paperheight=\dimexpr\Top\psyunit-\Bottom\psyunit+\TopPadding+\BottomPadding\relax

\special{papersize=\the\paperwidth,\the\paperheight}


\headheight=0pt
\headsep=0pt
\parindent=0pt
\topskip=0pt
\pagestyle{empty}

\pagecolor{yellow}
\begin{document}
\pspicture(\Left,\Bottom)(\Right,\Top)
\psframe(\Left,\Bottom)(\Right,\Top)
\endpspicture
\end{document}

它是用以下批处理文件进行编译的。

rem Automate.bat takes an input file name without extension.
latex %1
dvips %1
gswin32c -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%1.pdf %1.ps
pdftops -eps %1.pdf

我得到的结果如下。

在此处输入图片描述

请注意,由于计算纸张尺寸时的舍入误差,黑色边框外存在多余的条纹。根据给定的设置,多余的条纹可能出现在左侧、右侧、顶部和底部。即使肉眼无法注意到多余的条纹,但只要有办法,我就会尽可能地将其去除。

如何表达我的长度计算以摆脱多余的条带?

答案1

dvips -D10000 %1并将gswin32c ... -r10000 ...在转换中使用更高的精度。但仍会有舍入误差。

相关内容