我想在表格环境中进行计算,我的表格如下所示
\documentclass{book}
\usepackage{array}
\usepackage{fp}
\begin{document}
\begin{tabular}{|*{4}{c|}}
\hline
a & b & c & d \\
\hline
\multicolumn{3}{|c|}{a} & b \\
\hline
\multicolumn{2}{|>{\centering\arraybackslash}p{0.5\textwidth}|}{a} & b & c\\
\hline
\end{tabular}
\end{document}
但现在我想用 FP 更改列宽和列数。我尝试了类似
\documentclass{book}
\usepackage{array}
\usepackage{fp}
\begin{document}
\begin{tabular}{|*{4}{c|}}
\hline
a & b & c & d \\
\hline
\multicolumn{3}{|c|}{a} & b \\
\hline
\FPmul\one{2}{2}
\FPdiv\two{1}{2}
\multicolumn{\one}{|>{\centering\arraybackslash}p{\two\textwidth}|}{a} & b & c\\
\hline
\end{tabular}
\end{document}
我收到以下错误:
( FP-MUL ) ( FP-DIV ) ! Misplaced \omit. \multispan ->\omit \@multispan l.13 ...ng\arraybackslash}p{ \two\textwidth}|}{a} & b & c\\
有什么帮助吗? :/
答案1
\multicolumn
应该作为单元格中的第一项出现。fp
计算使 TeX 开始一个单元格,因此为时已晚\multicolumn
。您可以改用xfp
:
\documentclass{book}
\usepackage{array}
\usepackage{xfp}
\begin{document}
\begin{tabular}{|*{4}{c|}}
\hline
a & b & c & d \\
\hline
\multicolumn{3}{|c|}{a} & b \\
\hline
\multicolumn{2}{|>{\centering\arraybackslash}p{\fpeval{1/2}\textwidth}|}{a} & b & c\\
\hline
\end{tabular}
\end{document}
对于\multicolumn
的第一个参数有\inteval
。