我有一张表格,在每一行中,我都有一个值列表,现在我需要将每个值更改为其一半(用替换表格中的每个单元格值value/2
)。
现在,可以手动计算一半并将它们放在表中,但我想知道是否有办法在乳胶内部进行简单的数学运算,以便轻松替换值。
注意:如果在乳胶中可能的话,我正在寻找就地改变。
\small{$\pm$ std} & 17.28 & 25.82 & 24.85 & \textbf{40.62} & 33.99 & 42.13 & 32.7 & 21.46 & 17.64 \\
答案1
您可以使用collcell
和xparse
将数字更改为\fpeval{round(<number>/2,2)}
。
\documentclass{article}
\usepackage{xparse,xfp,collcell}
\ExplSyntaxOn
\NewDocumentCommand{\halveentry}{m}
{
\tl_set:Nn \l_tmpa_tl { #1 }
\regex_replace_once:nnN { ([0-9]*\.+[0-9]*) } { \c{fpeval}\cB\{round(\1/2,2)\cE\} } \l_tmpa_tl
\tl_use:N \l_tmpa_tl
}
\ExplSyntaxOff
\begin{document}
Original
\begin{tabular}{l *{9}{r}}
\small $\pm$ std & 17.28 & 25.82 & 24.85 & \textbf{40.62} & 33.99 & 42.13 & 32.7 & 21.46 & 17.64 \\
\end{tabular}
Halved
\begin{tabular}{l *{9}{>{\collectcell\halveentry}r<{\endcollectcell}}}
\small $\pm$ std & 17.28 & 25.82 & 24.85 & \textbf{40.62} & 33.99 & 42.13 & 32.7 & 21.46 & 17.64 \\
\end{tabular}
\end{document}
如果不想四舍五入到小数点后两位,请使用 just\1/2
而不是 of 。round(\1/2,2)