将长度乘以因子

将长度乘以因子

我正在尝试创建一个pspicture根据包含的图形的大小计算一些长度的图形,pspicture但我收到以下错误消息

非法计量单位(插入 pt)。

当使用\multiply具有这些长度之一的命令时(请参见末尾的最小示例)。前一个\multiply命令有效,我不明白为什么第二个\multiply命令不起作用。我真的希望有人能帮助我。

\documentclass{standalone}
\usepackage{pstricks}
\usepackage{graphicx}

\begin{document}
\begin{pspicture}(0cm,0cm)(17cm,24cm)
\newdimen{\FotoHeight}
\newdimen{\PictureHeight}
\PictureHeight=24cm
\settoheight{\FotoHeight}{\includegraphics[width=24cm]{picture.ps}}
\multiply\FotoHeight by 0.5 %This is working
\multiply\PictureHeight by 0.5 %This is throwing the error message
\end{pspicture}
\end{document}

答案1

不,两者都不起作用。

忽略pspicture不相关的,我们可以将示例简化为

\documentclass{article}

\newdimen{\FotoHeight}
\newdimen{\PictureHeight}

\begin{document}

\setlength{\PictureHeight}{24cm}
\setlength{\FotoHeight}{2cm}

\multiply\FotoHeight by 0.5 
\multiply\PictureHeight by 0.5

\end{document}

打印

.5 .5

很容易验证。不能对 使用非整数因子\multiply。因此两个维度都设置为零,并打印“非法”标记。

你应该做的是

\FotoHeight=0.5\FotoHeight
\PictureHeight=0.5\PictureHeight

顺便说一句,你不应该\newdimen在正文中声明pspicture(我怀疑你是否需要它),而是在文档序言中声明。

答案2

\documentclass{standalone}
\usepackage{pstricks}
\usepackage{graphicx}
\newsavebox\PBox
\newlength\FotoHeight 
\newlength\PictureHeight 

\begin{document}
\sbox\PBox{\includegraphics[width=24cm]{picture.ps}}

\setlength\FotoHeight{0.5\ht\PBox}
\setlength\PictureHeight{24cm}
\setlength\PictureHeight{0.5\PictureHeight}

\end{document}

相关内容