使用 \IfEqCase 输出作为数值

使用 \IfEqCase 输出作为数值

我怎样才能将输出用作数字

\documentclass{article} 
\usepackage{xstring}
\newcommand{\CableType}{N2XSY}
\newcommand{\Ksc}{
                        \IfEqCase{\CableType}{
                        {N2XSY}{90}
                        {N2XSYRY}{90}
                        {N2XSYBY}{90}
                        {NA2XSY}{90}
                        {NA2XSYRY}{90}
                        {NA2XSYBY}{90}
                                 }
                        }
\begin{document}
\fpeval{2*\Ksc}
\end{document}

答案1

您不能xstring在需要可扩展性的地方使用命令。但是,您可以使用 来实现expl3

\documentclass{article}
\usepackage{xparse,xfp}

\ExplSyntaxOn
\cs_new_eq:NN \EqCase \str_case_e:nn
\ExplSyntaxOff

\NewExpandableDocumentCommand{\Ksc}{}{%
  \EqCase{\CableType}{
    {N2XSY}{90}
    {N2XSYRY}{90}
    {N2XSYBY}{90}
    {NA2XSY}{90}
    {NA2XSYRY}{90}
    {NA2XSYBY}{90}
  }%
}

\newcommand{\CableType}{N2XSY}

\begin{document}

\fpeval{2*\Ksc}

\end{document}

相关内容