在表格中设置变量并在文档中稍后重复使用

在表格中设置变量并在文档中稍后重复使用

我正在编写一份涉及许多部分的信息表的文档,例如:

\textbf{Details:}
\begin{table}[H]
    \begin{center}
    \begin{tabularx}{\linewidth}{|X|c|c|c|c|c|}
        \hline
        \textbf{Number} & \textbf{Location} & \textbf{Duration (hr)} & \textbf{Labour (\$)} & \textbf{Equipment Hire/Purchase (\$)} & \textbf{Consumables (\$)} & \textbf{Total (\$)}\\
        \hline
                1 & In-house & 0.5 & 39 & 0 & 0 & 39\\
                2 & Out-house1 & 1 & 78 & 1000 & 500 & 1578\\
                3 & Out-house2 & 1.5 & 78 & 800 & 700 & 1617\\
        \hline
    \end{tabularx}
    \end{center}
\end{table}

然而,表中的数据稍后需要针对其中大约 50 个小表进行汇总,仅包含“位置”,“持续时间(小时)”和“总计($)”列。

我有两个要求:

  1. 将表中的条目设置为稍后可以调用的变量,因此我只需要在各个表中输入一次值,然后这些值就会自动在摘要中更新
  2. 这些条目应该是数学可操作的(即我应该只需要输入前 4 个数值,总数应该会自动计算

我的想法大致如下:

\textbf{Details:}
\begin{table}[H]
    \begin{center}
    \begin{tabularx}{\linewidth}{|X|c|c|c|c|c|c|}
        \hline
        \textbf{Number} & \textbf{Location} & \textbf{Duration (hr)} & \textbf{Labour (\$)} & \textbf{Equipment Hire/Purchase (\$)} & \textbf{Consumables (\$)} & \textbf{Total (\$)}\\
        \hline
                \entry{1}{1}{1} & \entry{1}{2}{In-house} & \entry{1}{3}{0.5} & \entry{1}{4}{\entry{1}{3} * 78} & \entry{1}{5}{0} & \entry{1}{6}{0} & \entry{1}{7}{\entry1{4} + \entry{1}{5} + \entry1{6}}\\
                % etc
        \hline
    \end{tabularx}
    \end{center}
\end{table}

我稍后可以在不同的表中使用它,如下所示:

\textbf{Summary:}
\begin{table}[H]
    \begin{center}
    \begin{tabularx}{\linewidth}{|X|c|c|c|}
        \hline
        \textbf{Number} & \textbf{Location} & \textbf{Cost (\$)} & \textbf{Duration (Hr)}\\
        \hline
                \entry{1}{1} & \entry{1}{2} & \entry{1}{7} & \entry{1}{3}\\
                \entry{2}{1} & \entry{2}{2} & \entry{2}{7} & \entry{2}{3}\\
                \entry{3}{1} & \entry{3}{2} & \entry{3}{7} & \entry{3}{3}\\
                \entry{4}{1} & \entry{4}{2} & \entry{4}{7} & \entry{4}{3}\\
                % etc
                \mulitcolumn{2}{r|}{Total} & sum(\entry{all}{7}) & sum(\entry{all}{3})\\
        \hline
    \end{tabularx}
    \end{center}
\end{table}

我努力了

\newcommand{\name}[1]{\def\showname{#1}}

仅当在同一个表中调用时才有效\showname,而在不同的表中调用则无效(尽管\newcommand在序言中存在)

任何帮助都将受到赞赏,感谢您的帮助!

答案1

我把这个帖子发到了 reddit 上,收到了一个链接到 gdef 的回复。查看后我发现对此评论的编辑正是我所追求的

相关内容