为什么 FPeval 的结果在“&”之后消失

为什么 FPeval 的结果在“&”之后消失

我正在尝试使用该fp软件包,但结果令我深感困惑:

\documentclass[a4paper]{article}
\usepackage{fp}
\begin{document}
\begin{tabular}{r|l}
\FPeval\testing{2 + 2}
a & \testing
\end{tabular}
\end{document}

这不会编译:

This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018/Arch Linux) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode
(./mvce.tex
LaTeX2e <2018-04-01> patch level 5
(/usr/share/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texmf-dist/tex/latex/fp/fp.sty
`Fixed Point Package', Version 0.8, April 2, 1995 (C) Michael Mehlich
(/usr/share/texmf-dist/tex/latex/fp/defpattern.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-basic.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-addons.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-snap.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-exp.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-trigo.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-pas.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-random.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-eqn.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-upn.sty)
(/usr/share/texmf-dist/tex/latex/fp/fp-eval.sty))
No file mvce.aux.
( FP-EVAL ( FP-UPN ( FP-ADD ) ) )
! Undefined control sequence.
l.6 a & \testing

但是,删除&将会产生预期的结果。为什么会发生这种情况?我该怎么办?我应该使用不同的算术包吗?

这只是一个简化的示例。我实际上想跨与&边界多次使用结果\\,这就是为什么我不能直接移动FPeval使用结果的位置。

答案1

\testing是局部变量,在局部范围内(对应于 的每个单元格tabular)丢失。您需要将其设置为全局变量才能在不同的单元格中或在 之外使用它tabular

编辑:由于 egreg 强烈建议避免使用语法\global\let\testing\testing,因此我引入\localtesting\testing作为同一数据的本地和全局版本。

\documentclass[a4paper]{article}
\usepackage{fp}
\begin{document}
\begin{tabular}{r|l}
\FPeval\localtesting{2 + 2}\global\let\testing\localtesting
a & \testing
\end{tabular}

Look, I am even available outside the tabular: \testing
\end{document}

在此处输入图片描述

相关内容