考虑以下示例(替换任何图像)。
\documentclass{report}
\usepackage[percent]{overpic}
\begin{document}
\newcommand{\numberLeftOffset}{3}
\newcommand{\numberTopOffset}{7}
\newcommand{\numberSuitOffset}{7}
\begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
\put (7,93) {foobar}
\put (7,87) {barfoo}
\end{overpic}
% \begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
% \put (\numberLeftOffset,\numexpr(100 - \numberTopOffset) \relax) {foobar}
% \put (\numberLeftOffset,\numexpr(100 - \numberTopOffset - \numberSuitOffset) \relax ) {barfoo}
% \end{overpic}
\end{document}
在当前注释掉的行中,我尝试\put
根据上面设置的变量计算参数。但是,此操作失败并出现以下错误。
! Missing ) inserted for expression.
<to be read again>
\unitlength
l.16 ...et,\numexpr(100 - \numberTopOffset) \relax
) {foobar}
计算参数的正确方法是什么\put
?
答案1
表达式需要用括号括起来。否则,TeX 会将表达式中的右括号作为 的右括号\put
。
\begin{overpic}[width=2.5 in,grid,tics=10]{images/Strike.jpg}
\put (\numberLeftOffset,{\numexpr(100 - \numberTopOffset) \relax}) {foobar}
\put (\numberLeftOffset,{\numexpr(100 - \numberTopOffset - \numberSuitOffset) \relax}) {barfoo}
\end{overpic}
顺便说一句,在这种情况下,表达式中的括号是无用的。