Use números armazenados em um comando pelo spreadtab

Use números armazenados em um comando pelo spreadtab

Meu objetivo é criar um comando para armazenar números e calcular na tabela.

\begin{table}[h]
  \npthousandsep{,}
  \STautoround*{0}
\begin{spreadtab}{{tabular}{| l | r | r | r |}} \hline
                        & @\textbf{Current Arrangement} & @\textbf{New Arrangement} & @\textbf{Difference} \\ \hline
    @Base Salary (SGD)  & 50000.00                      & 60000.00                  & c2-b2\\ \hline
\end{spreadtab}
\end{table}

Mas, por algum motivo, tenho que carregar o número do código. Por exemplo, uso \newcommand{\BASESALARYAMOUNT}{50,000.00}para substituir parte da mesa. Devido à existência de ,, eu uso xstringpara excluí-lo com o seguinte comando. Mas não funciona.

\newcommand{\BASESALARYAMOUNT}{50,000.00}
\newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}
\begin{table}[h]
  \npthousandsep{,}
  \STautoround*{0}
\begin{spreadtab}{{tabular}{| l | r | r | r |}} \hline
                        & @\textbf{Current Arrangement} & @\textbf{New Arrangement} & @\textbf{Difference} \\ \hline
    @Base Salary (SGD)  & \BASESALARYAMOUNT             & 60000.00                  & c2-b2\\ \hline
\end{spreadtab}
\end{table}

Alguma solução? Obrigado

Responder1

Aqui está uma abordagem stringstrings, se bem entendi o problema do OP. A macro \convertchar[q]{\BASESALARYAMOUNT}{,}{}remove o caractere de vírgula \BASESALARYAMOUNTe armazena o resultado \thestringpara recuperação posterior.

\documentclass{article}
\usepackage{spreadtab,numprint,stringstrings}
\begin{document}
\newcommand{\BASESALARYAMOUNT}{50,000.00}
\convertchar[q]{\BASESALARYAMOUNT}{,}{}
\begin{table}[h]
  \npthousandsep{,}
  \STautoround*{0}
\begin{spreadtab}{{tabular}{| l | r | r | r |}} \hline
                        & @\textbf{Current Arrangement} & @\textbf{New Arrangement} & @\textbf{Difference} \\ \hline
    @Base Salary (SGD)  & \thestring            & 60000.00                  & c2-b2\\ \hline
\end{spreadtab}
\end{table}
\end{document}

insira a descrição da imagem aqui

Responder2

Em vez de usar \newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}, descobri \StrDel{\BASESALARYAMOUNT{}}{,}[\baseamount]que pode resolver o problema. Isso poderia excluir os ,números e armazenar a nova string no arquivo \baseamount.

informação relacionada