我想使用多项式宏,只是使用标准方法。但多项式的系数是由\FPeval
或\pgfmathrandominteger
命令生成的 => 多项式的结果不是预期的结果...
\begin{document}
\pgfmathrandominteger{\VRcoeffa}{-5}{-1}
\pgfmathrandominteger{\VRcoeffb}{-5}{-1}
\pgfmathrandominteger{\VRcoeffc}{-5}{-1}
\pgfmathrandominteger{\VRcoeffd}{-5}{-1}
$f(x)=\polynomial[reciprocal]{\VRcoeffa,\VRcoeffb,\VRcoeffc,\VRcoeffd}$\par
\FPeval\VRcoeffa{(0-1)} \FPclip\VRcoeffa{\VRcoeffa}
\FPeval\VRcoeffb{(0-3)} \FPclip\VRcoeffb{\VRcoeffb}
\FPeval\VRcoeffc{(0)} \FPclip\VRcoeffc{\VRcoeffc}
\FPeval\VRcoeffd{(0-12)} \FPclip\VRcoeffd{\VRcoeffd}
\FPeval\VRcoeffe{(1)} \FPclip\VRcoeffe{\VRcoeffe}
\FPeval\VRcoefff{(0-1)} \FPclip\VRcoefff{\VRcoefff}
$f(x)=\polynomial[reciprocal]{%
\VRcoeffa,%
\VRcoeffb,%
\VRcoeffc,%
\VRcoeffd,%
\VRcoeffe,%
\VRcoefff%
}$
\par
$\polynomial[reciprocal]{-1,-3,0,-12,1,-1}$
\end{document}
我怀疑我对 LaTeX 的变量类型管理一无所知(我不太习惯 LaTeX……但我正在尝试 ;o)。提前感谢您的帮助!
**** 编辑 ****
这与pgfmath.
扩展问题无关。这是 MWE。
\documentclass{article}
\usepackage{polynomial}
\begin{document}
\newcommand{\vl}{-3}
$\polynomial[reciprocal]{1,\vl}$
\end{document}
这产生了
而不是 $x-3$
答案1
正如评论中所述,这是一个错误,因为\vl
在检查之前没有扩展 MWE 中的系数-
。尝试在序言中包含来自\makeatletter
和\makeatother
之后的代码(包括这些命令)\usepackage{polynomial}
,如下面的修改后的 MWE 所示。(我还删除了,[resiprocal]
因为它不相关)。
如果这可行,请告诉我,以便我可以将更正后的版本上传到 CTAN(重新学习如何正确打包之后:)。
\documentclass{article}
\usepackage{polynomial}
\makeatletter
\def\shpol@getcoeff#1{% Parse the coeffs and store in #1-vars
\shpol@numcoeff=0%
\@for\shpol@coeff:=#1\do{%
\advance\shpol@numcoeff by 1\relax%
\expandafter\edef\csname shpol@coeff\romannumeral\shpol@numcoeff\endcsname{\shpol@coeff}%
}%
}
\makeatother
\begin{document}
\newcommand{\vl}{-3}
$\polynomial{1,\vl,-4}$
\end{document}
正如 B.Gravouil 所指出的,传递某些命令的扩展版本存在问题。例如, Ams-packets 中的\dfrac
和\tfrac
在此修复后不起作用。但是,\frac
按预期工作,在这种情况下的解决方法是使用它的\displaystyle
和版本。\textstyle
\newcommand{\vl}{-3}
\newcommand{\fl}{\frac{2}{3}}
\begin{document}
\begin{itemize}
\item $\polynomial{1,\vl,\frac{2}{3}}$
\item $\displaystyle\polynomial{1,\vl,\frac{2}{3}}$
\item $\polynomial{1,\vl,\displaystyle\frac{2}{3}}$
\item $\polynomial{1,\fl,\frac{2}{3}}$
\item $\displaystyle\polynomial{1,\fl,\frac{2}{3}}$
\item $\polynomial{1,\fl,\displaystyle\frac{2}{3}}$
\item $\polynomialfrac{1,2,3}{2,\vl,4}$
\end{itemize}