\renewcommand 在表格中使用 \input

\renewcommand 在表格中使用 \input

我已经为不同的实验生成了一堆文件(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}

在此处输入图片描述

相关内容