用数学表达式设置变量

用数学表达式设置变量

我需要做如下的事情,

\includegraphics[width=(\textwidth - 50mm)/2]{myfig.eps}

我可以使用哪些关键字来搜索执行此操作?我搜索的所有内容都是关于数学输入而不是设置变量。

答案1

\includegraphics[width=\dimexpr(\textwidth - 50mm)/2]{myfig.eps} 

很难知道必须搜索 \dimexpr

答案2

LaTeX 方式:包calc

calc重新定义了\setlength\addtolength\setcounter\addtocounter以支持表达式。如果另一个包使用这些宏来设置长度和计数器以及用户提供的值,那么它将继承包 的功能calc。只需加载包即可,其他包甚至不知道calc

\usepackage{graphicx}
\usepackage{calc}
...
\includegraphics[width=(\textwidth - 50mm)/2]{myfig.eps}

eTeX 方式:\dimexpr

如果启用了 eTeX 扩展(通常是现在基于 LaTeX 的格式的默认设置),则可以使用 \dimexpr,其中需要 TeX 长度(参见 Herbert 的回答):

\includegraphics[width=\dimexpr(\textwidth-50mm)/2]{myfig.eps}

比较

  • 依赖项:软件包calc与 eTeX
  • eTeX \dimexpr、、\numexpr…… 是可扩展的。
  • \dimexpr\setlength如果内部未使用,则也可行,例如\vspace
  • 我预计calc速度会更慢,因为需要完成内部宏工作。
  • \dimexpr计算精度更高。
  • calc截断:5/2 = 2
    eTeX 轮次:5/2 = 3
  • 包中提供了额外的操作符calc\widthof,,,,,)。\heightof\totalheightof\maxof\minof

相关内容