截断数字

截断数字

我想截断我的表中的数字,以便将小于阈值的数字T显示为<T。我以为该siunitx包有这个功能,但我错了。我确信这是一个简单的宏,但我对 LaTeX 中的宏还不熟悉。

\documentclass[11pt]{article}
\begin{document}

% threshold 0.001

\begin{table}
\begin{tabular}{rr}
input   & desired output \\
0.0009  & <0.001 \\
0.001   &  0.001 \\
0       & <0.001 \\
\end{tabular}
\end{table}

\end{document}

答案1

使用xparsecollcell

\documentclass[11pt]{article}

\usepackage{collcell}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand \myminimum { m m }
  {
    \fp_compare:nNnTF { #2 } < { #1 }
      { $<$#1 }
      { #2 }
  }
\ExplSyntaxOff


\begin{document}

\begin{table}
  \begin{tabular}{r>{\collectcell{\myminimum{0.001}}}r<{\endcollectcell}}
    input   & \multicolumn{1}{r}{desired output} \\
    0.0009  &  0.0009 \\
    0.001   &  0.001 \\
    0       &  0 \\
  \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

\myminimum用于输出的变体\num,具有转发到的可选参数\num

\ExplSyntaxOn
\NewDocumentCommand \myminimum { O{} m m }
  {
    \fp_compare:nNnTF { #3 } < { #2 }
      { \mode_if_math:TF { < } { $<$ } \num [{#1}] { #2 } }
      { \num [{#1}] { #3 } }
  }
\ExplSyntaxOff

相关内容