![使用 Spreadtab 命令中存储的数字](https://linux22.com/image/328856/%E4%BD%BF%E7%94%A8%20Spreadtab%20%E5%91%BD%E4%BB%A4%E4%B8%AD%E5%AD%98%E5%82%A8%E7%9A%84%E6%95%B0%E5%AD%97.png)
我的目标是创建一个命令来存储数字并在表中计算。
\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}
但出于某种原因,我必须从代码中加载数字。例如,我使用\newcommand{\BASESALARYAMOUNT}{50,000.00}
替换部分表格。由于 的存在,
,我使用xstring
以下命令将其删除。但它没有运行。
\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}
有什么解决办法吗?谢谢
答案1
如果我理解了原帖者的问题,这里有一个使用 的方法stringstrings
。宏\convertchar[q]{\BASESALARYAMOUNT}{,}{}
会从 中删除逗号字符\BASESALARYAMOUNT
,并将结果存储在 中,\thestring
以便以后调用。
\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}
答案2
\newcommand{\basesalaryamountno}{\StrSubstitute{\BASESALARYAMOUNT{}}{,}{}}
我发现,不使用\StrDel{\BASESALARYAMOUNT{}}{,}[\baseamount]
可以解决问题。这可以删除,
数字中的 并将新字符串存储在 中\baseamount
。