\pslinewidth
我需要中的值(不带尾随单位)\psunit
。我已按如下方式操作,但对准确性感到失望。
\documentclass{article}
\parindent=0pt
\usepackage{pstricks}
\pstFPdiv\Temp
{\the\pslinewidth}
{\the\psunit}
\begin{document}
\the\pslinewidth% prints 0.8pt
\Temp% prints 0.028116799998875328
\psset{linewidth=\Temp}
\the\pslinewidth% prints 0.80014pt
\end{document}
\pslinewidth
是否有内置宏可以获取任意 的值(不带尾随单位)\psunit
?该值对于调整绘图域非常有用,这样可以避免域边缘附近的曲线笔触被裁剪。
真实情况如下。注意:\Temp
其中一半\pslinewidth
与上面的例子不一样。
\documentclass{article}
\usepackage{pst-func}
\def\Left{-1}
\def\Bottom{-1}
\def\Right{1}
\def\Top{1}
\psset{unit=2cm,linewidth=20pt}
%half of linewidth tickness
\pstFPdiv\Temp{\the\pslinewidth}{\the\dimexpr2\psunit\relax}
\pstFPsub\LEFT\Left\Temp
\pstFPsub\BOTTOM\Bottom\Temp
\pstFPadd\RIGHT\Right\Temp
\pstFPsub\TOP\Top\Temp
\begin{document}
\section*{Without extending the plotting domain}
\begin{pspicture*}[showgrid](\Left,\Bottom)(\Right,\Top)
\psPolynomial[coeff=-1 0 2,linecolor=red]{\Left}{\Right}
\end{pspicture*}
\section*{With extending the plotting domain}
\begin{pspicture*}[showgrid](\LEFT,\BOTTOM)(\RIGHT,\TOP)
\psPolynomial[coeff=-1 0 2,linecolor=red]{\Left}{\Right}
\end{pspicture*}
\end{document}
我接受了赫伯特的回答,这意味着没有这样的内置宏。
我还想强调的是
- 赫伯特的方法不如我的方法准确。
- Herbert 方法中的长度不能传递给只接受无单位值的函数。但我的方法中的值可以传递给此类函数。
答案1
\documentclass{article}
\usepackage{pst-func}
\psset{unit=2cm,linewidth=20pt}
\newdimen\Left \Left=-1\psxunit
\newdimen\Bottom \Bottom=-1\psxunit
\newdimen\Right \Right=1\psyunit
\newdimen\Top \Top=1\psyunit
\advance\Left by -0.5\pslinewidth
\advance\Bottom by -0.5\pslinewidth
\advance\Right by 0.5\pslinewidth
\advance\Top by 0.5\pslinewidth
\begin{document}
\section*{With extending the plotting domain}
\begin{pspicture*}[showgrid](\Left,\Bottom)(\Right,\Top)
\psPolynomial[coeff=-1 0 2,linecolor=red]{-1}{1}
\end{pspicture*}
\end{document}