Adicionar linhas à tabela com macro (os campos de cálculo resultam iguais para cada linha)

Adicionar linhas à tabela com macro (os campos de cálculo resultam iguais para cada linha)

Eu uso como modelo de macro deste artigo:Adicionar linhas à tabela com macro. Tudo funciona bem se os valores nas células não forem calculados. Caso contrário, os resultados do cálculo serão os mesmos para cada linha. Como evitar este problema? Referência do arquivo de log:https://yadi.sk/i/vgnoGKni3SLZGD.

   \documentclass[oneside,final,14pt]{report}
\usepackage[T1,T2A]{fontenc}
 \usepackage{mathptmx}
\usepackage[utf8]{inputenc}
\usepackage{float}
\usepackage{extsizes}
\usepackage{mathtext}
\usepackage{underscore}
\usepackage{enumerate}
\usepackage{enumitem}
\usepackage{titlesec}
\usepackage{times}
\usepackage {listing}
\usepackage{microtype}
\usepackage{xstring}
\usepackage {etoolbox}
\usepackage {expl3}
\usepackage[parse-numbers=true,round-precision=4,round-mode=figures,exponent-product=\cdot]{siunitx}
\usepackage{siunitx} % Provides the \SI{}{} command for typesetting SI units, набор значений единиц измерения
\usepackage {calculator}
\usepackage {fp}
\usepackage {tikz}
\usepackage[space]{grffile}% дополнение, чтобы были пробелы в именах
\grffilesetup{% дополнение, чтобы имена файлов могли быть кириллицей (под Windows)
  encoding,
  filenameencoding=cp1251
}

\titleformat{\chapter}[display]{\normalfont\bfseries}{}{0pt}{\huge}

\titlespacing*{\chapter}{0pt}{-50pt}{40pt}

 \usepackage{verbatim}
 %Поддержка отступов
\usepackage{vmargin}
% Работа с надписями
\usepackage{boxedminipage}
%Для окрашивания текста и не только
\usepackage{xparse}
\usepackage[titletoc,toc,page]{appendix}
\usepackage{ifthen}
\usepackage{arrayjobx}
\usepackage {ifpdf}
\usepackage{pgfplots}
\usepgfplotslibrary{external}
%Ссылки и закладки содержание всатвка текста
\usepackage{filecontents}
 %control over PDF bookmarks
\usepackage[nameinlink]{cleveref}

\usepackage{indentfirst}
\usepackage{titlesec}
\usepackage{soul}
%Математический пакет
\usepackage{amssymb,amsmath}

\usepackage {rotating}
\usepackage{amscd}
%Для обращения к цвету по имени
\usepackage{color}
\usepackage{xcolor,colortbl}
\usepackage{tabularx}

\usepackage{amssymb,amsfonts,amsmath,amsthm} % математические дополнения от АМС
\usepackage{indentfirst} % отделять первую строку раздела абзацным отступом тоже

\usepackage{multirow} % улучшенное форматирование таблиц
\usepackage{ulem} % подчеркивания
% стиль для для страницы (колонтитулы)
\usepackage{fancyhdr}
%Для списка литературы по ГОСТ
\usepackage[strict]{csquotes}
\makeatletter
\usepackage[english,main=russian]{babel}
\usepackage[square,numbers]{natbib}
%\bibliographystyle{gost2008}
\bibliographystyle{utf8gost705u}
\usepackage{makecell}
\usepackage{amsmath}
\usepackage{amssymb,amsfonts,textcomp}
\usepackage{color}
\usepackage{array}
\usepackage{supertabular}
\usepackage{hhline}
\usepackage{hyperref}
\setlength\tabcolsep{1mm}
\usepackage{tocloft}
\setlength{\cftbeforetoctitleskip}{-15pt}
\usepackage{epstopdf}
\usepackage[space]{grffile} \grffilesetup{encoding,filenameencoding=cp1251}
\usepackage{pdfpages}
\usepackage{xparse}
\usepackage{ifmtarg}% http://ctan.org/pkg/ifmtarg


\begin{document} 

\definecolor{danger}{HTML}{FE996B}
\definecolor{safety}{HTML}{9AFF99}
\definecolor{warning}{HTML}{FFA500}
\newcommand\dangColor[3]{
\FPeval{\tmp}{#1}
\FPeval{\tevdd}{#2+#3}
\FPifgt{\tmp}{#3}{\gdef\era{\cellcolor{warning}}}\else{\gdef\era{\cellcolor{danger}}}\fi
\FPifgt{\tmp}{\tevdd}{\gdef\era{\cellcolor{safety}}}\else{}\fi
\era}
\newcommand\foorows{}

\DeclareDocumentCommand{\addtotable}{m O{---} O{---}O{---}}{%
  \g@addto@macro\foorows{\hline\@gobble}% Insert horizontal rule and gobble first &
  \@for\tmp:=#1\do{%
    \expandafter\g@addto@macro\expandafter\foorows
      \expandafter{\expandafter&\tmp}%  
            }%
\expandafter\g@addto@macro\expandafter\foorows
      \expandafter{\expandafter&#3}
\expandafter\g@addto@macro\expandafter\foorows
      \expandafter{\expandafter&#4}
\expandafter\g@addto@macro\expandafter\foorows
      \expandafter{\expandafter&#2}
\FPeval{\neobhTd}{#2 *0.8}

\IfInteger{#2}{\def\neobhT{\num[round-mode = places, round-precision = 0, round-half = up]{\neobhTd}}}{\def\neobhT{---}}
\newboolean{b3}
\newboolean{b4}
\IfInteger{#3}{\setboolean{b3}{true}}{\setboolean{b3}{false}}
\IfInteger{#4}{\setboolean{b4}{true}}{\setboolean{b4}{false}}
\ifthenelse{\boolean{b3} \AND \boolean{b4}}
{\FPeval{\tevd}{#3+#4}
\def\tev{\num[zero-decimal-to-integer]{\tevd}}
\def\ku{\dangColor{\neobhTd}{#3}{#4}}
}
{
\def\tev{---}
\def\ku{}
}
\expandafter\g@addto@macro\expandafter\foorows
      \expandafter{\expandafter&\ku\neobhT}
            %%
\expandafter\g@addto@macro\expandafter\foorows
      {\expandafter&\ku\tev}
  \g@addto@macro\foorows{\\}%
}
\newcommand\tabKT{
\begin{table}[htb]
\centering
\resizebox{\textwidth}{!}{%
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
%\mycccc
\rowcolor[HTML]{96FFFB} 
Name 1 &\ Name 2 &\makecell{t1\textsubscript{n}, s} &\makecell{t2\textsubscript{r}, s}&\makecell{t3\textsubscript{b}, s}& \makecell{0,8·t\textsubscript{b}, s}&\makecell{t\textsubscript{e}, s}\\ \hline

\foorows
\hline
\end{tabular}%
}
\caption{My caption}
\label{my-label}
\end{table}
}
\addtotable{name,name}[140][30][120]
\addtotable{name,name}[600][48][400]
\addtotable{name,name}[800][120][200]
\tabKT

\end{document}

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Responder1

Algo assim?

\documentclass{article}
\usepackage{xparse}
\usepackage{siunitx}
\usepackage[table]{xcolor}

\sisetup{
  parse-numbers=true,
  round-precision=4,
  round-mode=figures,
  exponent-product=\ensuremath{{}\cdot{}},
  output-decimal-marker={,}
}


\definecolor{danger}{HTML}{FE996B}
\definecolor{safety}{HTML}{9AFF99}
\definecolor{warning}{HTML}{FFA500}

\ExplSyntaxOn
\NewDocumentCommand{\addtotable}{mmmmm}
 {
  #1 & #2 & #3 & #4 & #5
  & \cellcolor{ \yaroslav_color:nnn { #3 } { #4 } { #5 } } \fp_to_decimal:n { #5 * 0.8 }
  & \cellcolor{ \yaroslav_color:nnn { #3 } { #4 } { #5 } } \fp_to_decimal:n { #3 + #4 }
  \\
  \hline
 }
\cs_new:Nn \yaroslav_color:nnn
 {
  \fp_compare:nTF { #1 + #2 > #3*0.8 } { green } { red }
 }
\ExplSyntaxOff

\begin{document} 

\begin{table}[htb]
\centering

\begin{tabular}{|*{7}{c|}}
\hline
\rowcolor[HTML]{96FFFB}%
Name 1 &\ Name 2 & {$t1_n,s$} & {$t2_r,s$} & {$t3_b,s$} & {$0{,}8\cdot t_b,s$} & {$t_e,s$} \\
\hline
\addtotable{name}{name}{140}{30}{120}
\addtotable{name}{name}{600}{48}{400}
\addtotable{name}{name}{800}{120}{200}
\addtotable{name}{name}{1}{1}{12}
\end{tabular}

\caption{My caption}\label{my-label}

\end{table}

\end{document}

insira a descrição da imagem aqui

informação relacionada