宏多项式中使用的变量类型?

宏多项式中使用的变量类型?

我想使用多项式宏,只是使用标准方法。但多项式的系数是由\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}

这产生了

enter image description here

而不是 $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}

enter image description here

正如 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}

enter image description here

相关内容