4

Excessive lines at the corner

alt text


Bad line spacing

alt text


Minimal Code

History: This code was done by @localghost at the LaTeX community site. He made a modification from ) to |.

\documentclass{article} \usepackage{polynom} \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\,\smash{\Big|}\kern-2pt&}% \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 \begin{document} \polylongdiv[style=A]{3x^9+x^2-1}{\frac{2}{5}x^4-1} \end{document} 

EDIT

See my answer (based on @Herbert's info).

10
  • where are those line corners are seen? Commented Jan 9, 2011 at 11:51
  • @Herbert, if you compile the code above, view the output and zoom-in near the top right corner, you will see the excessive lines. Commented Jan 9, 2011 at 11:58
  • @Herbert, 400% zoom will show the excessive. Commented Jan 9, 2011 at 11:59
  • @xport: this doesn't happen with my code changes ... Commented Jan 9, 2011 at 12:12
  • @Herbert, your solution only solves the spacing. Unfortunately, the vertical and horizontal rules now get separated using your setting. They should touch each other and make a GOOD corner. :-) Commented Jan 9, 2011 at 12:32

2 Answers 2

4
... \begin{document} \jot=10pt\def\strut{\rule[-2ex]{0pt}{3ex}} \polylongdiv[style=A]{3x^9+x^2-1}{\frac{2}{5}x^4-1} \end{document} 
2

Using @Herbert's info, I did some trial and error.

I changed \Big| to \rule{}. You can see the modification in the part enclosed by %===========================


alt text


\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^{30}-1}{x^8-1} \end{document} 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.