使用 overpic 时,是否可以根据变量计算“\put”的参数?

使用 overpic 时,是否可以根据变量计算“\put”的参数?

考虑以下示例(替换任何图像)。

\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}

顺便说一句,在这种情况下,表达式中的括号是无用的。

相关内容