原来的

原来的

原来的

提供的其余部分polynom.sty并不完整(如下图所示)。

替代文本


我的目标

当我上高中时,我的老师画了下面的图。:-)

因此,最后一步必须显示总余数并用 L 形曲线标记。

笔记

抱歉,之前的帖子我忘了放回-1/4原来的位置了,让你困惑了,现在没有错误了。:-)

替代文本


最少代码

\documentclass{article}
\usepackage{polynom,array}
\usepackage[table]{xcolor}


\makeatletter
\def\pld@ArrangeResult#1{%
    \ifx\pld@remainder\@empty
        \@tempcnta\pld@maxcol\relax
        \pld@InsertItems@do\pld@lastline
            {\pld@firsttrue\pld@PLD{\pld@R{0}{1}}}%
    \fi
    \ifnum\pld@currstage>\z@
        \pld@Extend\pld@allines{\pld@lastline\cr}%
    \else
        \pld@InsertFake\pld@lastline
    \fi
    \pld@iftopresult
        \def\pld@lastline{\pld@PrintPoly\pld@divisor%
        %====================================================================================
        \quad\smash{{\color{red}\rule[-6pt]{\arrayrulewidth}{17pt}}}\kern-\arrayrulewidth&}%
        %====================================================================================
    \else
        \let\pld@lastline\@empty
        \ifx B\pld@style\else
            \def\pld@lastline{\pld@leftdelim\strut\pld@rightxdelim&}%
        \fi
    \fi
    \expandafter\pld@AR@col\expandafter\pld@PLD
                           \expandafter\pld@lastline#1+\relax+%
    \pld@SplitQuotient
    \pld@iftopresult
        \let\pld@currentline\@empty
        \expandafter\pld@AR@col\expandafter\pld@PLD
                               \expandafter\pld@currentline
                                           \pld@quotient+\relax+%
        \expandafter\pld@AR@col\expandafter\pld@XPLD
                               \expandafter\pld@currentline
                                           \pld@shadow+\relax+%
        \edef\pld@subline{%
            \noexpand\cline{\tw@-\pld@maxcol}%
            \noalign{\vskip\jot}}%
        \pld@Extend\pld@currentline{\expandafter\cr\pld@subline}%
    \else
        \@tempcnta-\@tempcnta
        \advance\@tempcnta\pld@maxcol\relax \advance\@tempcnta\@ne
        \edef\pld@span{\the\@tempcnta}%
        \ifx B\pld@style
          \pld@AddTo\pld@lastline{%
            &\multispan\pld@span${}=%
            \pld@PrintPolyWithDelims\pld@divisor
            \expandafter\pld@IfSum\expandafter{\pld@divisor}{}{\cdot}%
            \expandafter\pld@IfSum\expandafter{\pld@quotient}\pld@true
                                                             \pld@false
            \pld@if \pld@leftdelim
                    \pld@PrintPolyShadow
                    \pld@rightdelim
              \else \pld@PrintPolyShadow \fi
            \pld@firstfalse
            \expandafter\pld@PrintRemain\expandafter{\pld@remainder}$}%
        \else
          \pld@AddTo\pld@lastline{%
            &\multispan\pld@span$\pld@leftxdelim\strut\pld@rightdelim
            \pld@div
            \pld@PrintPolyWithDelims\pld@divisor=
            \pld@PrintPolyShadow
            \ifx\pld@remainder\@empty\else
                +{}%
                \setbox\z@=\hbox{$\displaystyle
                  \frac{\let\strut\@empty\pld@firsttrue \expandafter
                        \pld@PrintRemain\expandafter{\pld@remainder}}%
                       {\let\strut\@empty\pld@PrintPoly\pld@divisor}$}%
                \dp\z@=\z@\box\z@
            \fi
            $}%
        \fi
    \fi
\expandafter\pld@AR@\pld@allines\relax}
\makeatother


\arrayrulecolor{red}
\arrayrulewidth=0.8pt
\def\strut{\rule[-6pt]{0pt}{12pt}}

\begin{document}
\polylongdiv[style=A]{\frac{3}{7}x^9+x^2-\frac{1}{4}}{\frac{9}{5}x^4-1}

\vspace{1cm}
\polylongdiv[style=A]{x^4-1}{x^2-1}
\end{document}

答案1

以下代码应该可以工作;我已添加了一些测试用例。为了使代码更简短,我没有添加您对输出样式的更改(红色,以及被除数和除数之间的横线而不是括号)。我对的更改和添加polynom已标记为!!!

\documentclass{article}
\usepackage{polynom,array}

\makeatletter
\def\pld@DivPoly@l{%
    \ifx\pld@remainder\@empty\else
        \pld@IfNeedsDivision\pld@remainder\pld@divisor
        {\pld@ExtendPoly\pld@quotient\pld@factor
         \pld@NMultiplyPoly\pld@sub\pld@divisor\pld@factor
         \pld@SubtractPoly\pld@remainder\pld@sub
         \expandafter\pld@DivPoly@l}%
        {\expandafter\pld@insert@remainder                       % !!!
         \pld@last@remainder+\relax\relax}                       % !!!
    \fi}
\def\pld@insert@remainder#1+#2\relax{%                           % !!!
    \ifx\relax#1\relax\else\pld@InsertItems\@empty\@empty{#1}\fi % !!!
    \ifx\relax#2\relax\else\pld@insert@remainder#2\relax\fi}     % !!!
\def\pld@SubtractPoly@l#1+#2\@empty#3+#4\@empty{%
    \ifx\relax#1\relax
        \let\pld@last@remainder\@empty                           % !!!
        \ifx\relax#3\relax \let\pld@next\@empty \else
          \pld@AddToPoly\pld@tempoly{#3}%
          \pld@if \pld@InsertItems{#3}{#3}{}\fi
          \def\pld@next{\pld@SubtractPoly@l\relax+\@empty#4\@empty}%
        \fi
    \else
    \ifx\relax#3\relax
        \pld@SubtractPoly@r#1+#2\@empty
        \let\pld@next\@empty
    \else
        \pld@IfMonomE{#1}{#3}%
        {\def\pld@temp{#1+#3}%
         \pld@CondenseMonomials\pld@true\pld@temp
         \ifx\pld@temp\@empty\else
             \pld@ExtendPoly\pld@tempoly\pld@temp
         \fi
         \pld@if \expandafter\pld@InsertItems\expandafter
                 {\pld@temp}{#3}{#1}\fi
         \def\pld@next{\pld@SubtractPoly@l#2\@empty#4\@empty}}%
        {\pld@IfMonomL{#1}{#3}%
         {\pld@AddToPoly\pld@tempoly{#3}%
          \pld@if \pld@InsertItems{#3}{#3}{}\fi
          \def\pld@next{\pld@SubtractPoly@l#1+#2\@empty#4\@empty}}%
         {\pld@AddToPoly\pld@tempoly{#1}%
          \pld@if \pld@InsertItems{#1}{}{#1}\fi
          \def\pld@next{\pld@SubtractPoly@l#2\@empty#3+#4\@empty}}%
        }%
    \fi \fi
    \pld@next}
\def\pld@SubtractPoly@r#1+\relax+\@empty{%
    \pld@AddToPoly\pld@tempoly{#1}%
    \def\pld@last@remainder{#1}}                                 % !!!
\makeatother
\def\strut{\rule[-6pt]{0pt}{12pt}}

\begin{document}
\polylongdiv{x^5-1}{x-1}

\polylongdiv{x^5-x^2}{x^2-1}

\polylongdiv{\frac{3}{7}x^9+x^2-\frac{1}{4}}{\frac{9}{5}x^4-1}

\polylongdiv{x^9+x^2-1}{x^4-x}

\polylongdiv{x^{15}+1}{x^5+x^3+x+1}

\polylongdiv{x^4-1}{x^2-1}
\end{document}

答案2

嗯,1/4 不是余数,而是第一个参数的最后一部分。您尝试更改的行是显示两个多项式的行。如果您使用稍微简单一点的参数,就可以看到这一点:

\documentclass{article}
\usepackage{polynom,array}
\usepackage[table]{xcolor}

\arrayrulecolor{red}
\arrayrulewidth=0.8pt
\def\strut{\rule[-6pt]{0pt}{12pt}}

\begin{document}
\polylongdiv[style=A]{x^3-1}{x^2+1}

\bigskip

\polylongdiv[style=B]{x^3-1}{x^2+1}

\bigskip

\polylongdiv[style=C]{x^3-1}{x^2+1}

\end{document}

编辑:好消息是其余部分可以访问:

\documentclass{article}
\usepackage{polynom}
\usepackage[table]{xcolor}

\arrayrulecolor{red}
\arrayrulewidth=0.8pt
\def\strut{\rule[-6pt]{0pt}{12pt}}

\makeatletter
\renewcommand*\polylongdiv[1][]{%
    \begingroup
    \let\pld@stage\maxdimen \polyset{#1}%
    \pld@GetPoly{\pld@polya\pld@polyb}%
                {\pld@LongDividePoly\pld@polya\pld@polyb
                 \pld@PrintLongDiv\\                   
   $\expandafter\pld@PrintRemain\expandafter{\pld@remainder}$%new
    \endgroup \ignorespaces}}
\begin{document}
\polylongdiv[style=A,stage=5]{x^3-1}{x^2+1}

\bigskip

\polylongdiv[style=A]{\frac{3}{7}x^9+x^2-\frac{1}{4}}{\frac{9}{5}x^4-1}
\end{document}

但我没有时间去寻找如何将其正确插入数组中。

相关内容