我想定义一个新命令,在表格单元格内容前后添加垂直“填充”。我从接受的答案中窃取了使用规则/支柱的想法这个问题。
我的概念是这样的
\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
,,\glueexpr
2)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