我正在尝试创建一个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}