我的情况是将一个比率(分数形式而不是十进制形式)传递给每个表列定义。
以下代码无法编译。
\documentclass{article}
\usepackage{pgf}
\usepackage{array}
\usepackage{longtable}
\newcommand{\ratio}[2]%
{%
\pgfmathsetmacro\temp{(#1)/(#2)}%
\temp%
}
\newcolumntype{A}[1]%
{%
>{}%
m{#1\linewidth-2\tabcolsep-2\arrayrulewidth}%
<{}%
}
\begin{document}
\ratio{1}{2}
\ratio{2}{5}
\begin{longtable}{|A{\ratio{1}{2}}|A{\ratio{1}{2}}|}\hline
A & B \tabularnewline\hline
A & B \tabularnewline\hline
\end{longtable}
\end{document}
答案1
您不能\pgfmathsetratio
在这里使用,因为框的参数m
需要扩展为数字。假设您可以使用 e-TeX 扩展,那么您可以使用替代定义:
\makeatletter
\newcommand\ratio[2]{%
\strip@pt\dimexpr#1pt/#2\relax
}
\makeatother