我已经为不同的实验生成了一堆文件(exp1.tex-exp10.tex),它们通过以下方式定义我的变量
\renewcommand{\minabserror}{\SI{0.01}{\meter}~}%
\renewcommand{\minabserrorat}{\SI{1.4}{\meter}~}%
因此,在我的浮动文本中,我可以写
\input{exp1}
The maximum rangee is \minabserror and occured at \minabserrorat.
\input{exp2}
The maximum range is \minabserror and occured at \minabserrorat.
,将会产生预期的结果。
当我在表格中执行此操作时
\begin{table}
\begin{tabular}{ccc}
number & minerror & location \\
\input{exp1}
1 & \minabserror & \minabserrorat \\
\input{exp2}
2 & \minabserror & \minabserrorat \\
\end{tabular}
\caption{my summary table}
\end{table}
,我的“变量”没有更新。
答案1
使用\gdef
代替\renewcommand
,它不是全局的,并且不会从一个表格单元格(与 一起使用\input
)延续到下一个表格单元格。但是,\gdef
(全局 def)会在该单元格分组中延续。
根据具体用途,很可能有更好的策略或设置。
exp1.tex
\gdef\minabserror{\SI{0.01}{\meter}~}%
\gdef\minabserrorat{\SI{1.4}{\meter}~}%
和exp2.tex
\gdef\minabserror{\SI{0.05}{\meter}~}%
\gdef\minabserrorat{\SI{1.9}{\meter}~}%
主要文件:
\documentclass{article}
\usepackage{siunitx}
\providecommand{\minabserror}{}
\providecommand{\minabserrorat}{}
\begin{document}
\begin{table}
\begin{tabular}{ccc}
number & minerror & location \\
\input{exp1}
1 & \minabserror & \minabserrorat \\
\input{exp2}
2 & \minabserror & \minabserrorat \\
\end{tabular}
\caption{my summary table}
\end{table}
\end{document}