我在文档中使用电子表格环境来显示带有计算的表格。由于命令对每一行都重复,因此我想通过 \newcommand 定义一个命令,该命令一次代表一行。我希望这样可以整理代码。
不幸的是,命令的参数总是被解释为文本字段的内容。如何在 \newcommand 中定义参数应被解释为数字字段?
下面是一个最小的例子和命令基本思想的例子。
提前致谢,
BR克里斯托夫
最小示例:
\documentclass{scrlttr2}
\usepackage{spreadtab}
\usepackage{numprint}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{siunitx}
\renewcommand{\familydefault}{\sfdefault}
\nprounddigits{2}
\STsetdecimalsep{{,}}
\begin{document}
\begin{spreadtab}{{tabularx}{\textwidth}{c|X|N{4}{2}|N{4}{2}}}
\hline
@\tiny Quantity & @\tiny Description & @\multicolumn{1}{r|}{\tiny Unit price} & @\multicolumn{1}{r}{\tiny Quantity * Unit Price} \\ \hline
3 & @Product 1 & :={2.5} \,EUR &:={[-3,0]*[-1,0]} \,EUR \\
\hline
2 & @Product 2 & :={5.5} \,EUR & :={[-3,0]*[-1,0]} \,EUR\\
\hline
3 & @Product 3 & :={1.0} \,EUR & :={[-3,0]*[-1,0]} \,EUR\\
\hline
\multicolumn{3}{l}{@Total} & :={sum(d1:[0,-1])} \,EUR \\ \hline
\end{spreadtab}
\end{document}
新命令的基本思想:
\newcommand{\newentry}[3]{#1 & #2 & #3 \,EUR & :={[-3,0]*[-1,0]} \,EUR \\ \hline}
在这种情况下,#1 应该处理数字字段。#3 和带有产品公式的第 4 列应该处理数字和文本字段。#2 应该只处理文本字段。表中的新条目应该用 \newentry{1}{Product 4}{25.00} 生成。
答案1
发布此问题后,我发现了过去有关此主题的一些问题。在此主题的帮助下,我能够解决问题:电子表格中的文本替换
BR克里斯托夫