我正在尝试使用该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}