涉及命令的算术表达式

涉及命令的算术表达式

简单的问题。我想这样做:

\newcommand{\scatterplotwidth}{0.5\linewidth}
....
\includegraphics[width=0.9\scatterplotwidth]{myfig}

没有 0.9 也可以。有没有办法让命令变量乘以 0.9?

答案1

您可以定义为维度参数,通过\scatterplotwidth加载一小部分电流\linewidth

\newcommand{\scatterplotwidth}{\dimexpr0.5\linewidth\relax}

然后\scatterplotwidth在需要长度的任何地方都是合法的,例如

\includegraphics[width=0.9\scatterplotwidth]{myfig}

顺便说一下,建议

\newlength{\scatterplotwidth}
\setlength{\scatterplotwidth}{0.5\linewidth}

不会给出相同的结果,因为在执行时的值\scatterplotwidth会被固定为的大小。\linewidth\setlength

基于长度参数的不同策略是定义一个新命令:

\newlength{\scatterplotwidth}
\newcommand{\scatterplot}[2][1]{%
   \setlength{\scatterplotwidth}{0.5\linewidth}%
   \includegraphics[width=#1\scatterplotwidth]{#2}%
}

将会被用作

\scatterplot{myfig}

或者

\scatterplot[0.9]{myfig}

在前一种情况0.5\linewidth下,(当前的 \linewidth) 将被使用,在后一种情况下,将应用缩放。

相关内容