我看到许多cls
文件使用plus
和minus
运算符来设置长度。我如何使用这些运算符(或某些等效宏)来执行如下操作?
\setlength{\lengtha}{.5\textwidth}
\setlength{\lengthb}{.5\textwidth}
\begin{tabular*}{\lengtha plus \lengthb}{cc}
a & b \\
\end{tabular*}
答案1
使用计算包装。包装说明:
\setcounter
添加中缀表达式来对 LaTeX 命令、\addtocounter
、\setlength
和的参数执行算术运算\addtolength
。
\documentclass{article}
\usepackage{calc}
\newlength{\lengtha}
\setlength{\lengtha}{.5\textwidth}
\newlength{\lengthb}
\setlength{\lengthb}{.5\textwidth}
\begin{document}
\begin{tabular*}{\lengtha + \lengthb}{cc}
\hline
a & b \\
\hline
\end{tabular*}
\end{document}
答案2
要执行具有长度的简单算术运算,您可以使用 e-TeX 原语\dimexpr
:
\documentclass{article}
\newlength{\lengtha}
\setlength{\lengtha}{.5\textwidth}
\newlength{\lengthb}
\setlength{\lengthb}{.5\textwidth}
\begin{document}
\noindent\begin{tabular*}{\dimexpr\lengtha+\lengthb\relax}{cc}
\hline
a & b \\
\hline
\end{tabular*}
\end{document}
欲了解更多详情,请参阅e-TeX 手册。
不同之处在于使用plus
和minus
在 TeX 中指定粘合:
<dimen>plus<dimen>minus<dimen>
其中plus<dimen>
和minus<dimen>
是可选的,如果不存在则设置为零;plus
引入可拉伸性,minus
引入可收缩性。