我一直在努力polynom
设计一个程序包来排版多项式长除法。这个polynom
程序包通过一步步的过程产生了很棒的长除法。但我有两个问题。让我告诉你我到底需要什么。
polynom
下面是我用for生成的输出\polylongdiv{X^3+X^2-1}{X-1}
但是,我希望用 0x 代替缺失的 x 的空格。可以这样做吗?我查看了文档,但找不到这样做的方法。
您可以在此处阅读文档:http://www.cs.brown.edu/system/software/latex/doc/polynom.pdf
我还意识到多项式在数学环境中没有格式化。那么有没有办法在数学环境中格式化这些方程式?我尝试在$
周围加上符号\polylongdiv{X^3+X^2-1}{X-1}
,但什么也没改变。数学环境中的方程式会产生类似这样的结果
我对乳胶还很陌生。所以请帮助我。
更新:@polgab 帮我解决了生成数学环境(如输出)的第二个问题。我现在只需要问题 1 的解决方案,即我希望用 0x 代替缺失的 x,而不是多项式生成的空格。
答案1
更改负责省略零项的内部宏,您就可以得到想要的结果(但您必须在输入中指定零项):
\documentclass{article}
\usepackage{polynom}
\makeatletter
\def\pld@CF@loop#1+{%
\ifx\relax#1\else
\begingroup
\pld@AccuSetX11%
\def\pld@frac{{}{}}\let\pld@symbols\@empty\let\pld@vars\@empty
\pld@false
#1%
\let\pld@temp\@empty
\pld@AccuIfOne{}{\pld@AccuGet\pld@temp
\edef\pld@temp{\noexpand\pld@R\pld@temp}}%
\pld@if \pld@Extend\pld@temp{\expandafter\pld@F\pld@frac}\fi
\expandafter\pld@CF@loop@\pld@symbols\relax\@empty
\expandafter\pld@CF@loop@\pld@vars\relax\@empty
\ifx\@empty\pld@temp
\def\pld@temp{\pld@R11}%
\fi
\global\let\@gtempa\pld@temp
\endgroup
\ifx\@empty\@gtempa\else
\pld@ExtendPoly\pld@tempoly\@gtempa
\fi
\expandafter\pld@CF@loop
\fi}
\def\pld@CMAddToTempoly{%
\pld@AccuGet\pld@temp\edef\pld@temp{\noexpand\pld@R\pld@temp}%
\pld@CondenseMonomials\pld@false\pld@symbols
\ifx\pld@symbols\@empty \else
\pld@ExtendPoly\pld@temp\pld@symbols
\fi
\ifx\pld@temp\@empty \else
\pld@if
\expandafter\pld@IfSum\expandafter{\pld@temp}%
{\expandafter\def\expandafter\pld@temp\expandafter
{\expandafter\pld@F\expandafter{\pld@temp}{}}}%
{}%
\fi
\pld@ExtendPoly\pld@tempoly\pld@temp
\pld@Extend\pld@tempoly{\pld@monom}%
\fi}
\makeatother
\begin{document}
\polylongdiv{X^3+X^2+0X-1}{X-1}
\end{document}