算术/长度计算

算术/长度计算

我想定义一个新命令,在表格单元格内容前后添加垂直“填充”。我从接受的答案中窃取了使用规则/支柱的想法这个问题

我的概念是这样的

\newcommand{\vpad}[2]{
   \rule{0pt}{\baselineskip + #1}              % top padding
   \rule[-0.4*\baselineskip - #2]{0pt}{0pt}}   % bottom padding

我知道在很多情况下这行不通,但目前这不是问题所在。我的问题是关于涉及的算术表达式\baselineskip和命令参数。显然我的语法不正确。那么,这种事情的正确语法是什么?

编辑
我开始认为这样的事情0.4*baselineskip - #2是不允许的。如果是这样,也许我必须接受“-4pt - #2”。否定是允许的吗?

答案1

在 (La)TeX 中有多种计算方程式的方法。(因此,我创建了该adjcalc包作为软件包的一部分adjustbox,以便用户可以选择他们想要的方式。)

你可以 1)使用eTeX 宏例如\dimexpr,,\glueexpr2)calc包裹或 3)pgfmath包裹

最简单的方法是使用\dimexpr ... \relax。它会扩展为计算结果。\relax可以用作结束标记,在扩展中也会被删除。这需要 eTeX(扩展 TeX),它是所有主要 TeX 发行版的一部分。

\newcommand{\vpad}[2]{
   \rule{0pt}{\dimexpr\baselineskip + #1\relax}              % top padding
   \rule[\dimexpr-0.4*\baselineskip - #2\relax]{0pt}{0pt}}   % bottom padding

相关内容