使用 LaTeX 进行多元多项式长除法

使用 LaTeX 进行多元多项式长除法

如何在 LaTeX 中排版使用多个变量的多项式长除法?我希望能够使用 2 个或更多除数进行多项式长除法。目前,我使用的软件包是:

\usepackage[psamsfonts]{amsfonts}
\usepackage{sudoku}
\usepackage{natbib}
\usepackage{amsmath, amsthm, amssymb}
\usepackage{epsfig}
\usepackage{makeidx}
\usepackage{array}
\usepackage{enumerate}
\usepackage[usenames]{color}
\usepackage{setspace}
\usepackage{latexsym}
\usepackage[dvips]{graphicx}
\usepackage{eucal}
\usepackage{polynom}

我知道我正在使用很多与我的问题无关的包,但我不想使用有冲突的包。

我以为这个polynom软件包是我的解决方案,但软件包中的免责声明之一是“目前不支持多元多项式”。

任何帮助将不胜感激。

答案1

基本示例:

以下是重现第 4 页中的除法算法的一个例子格罗布纳碱及其应用由凯特琳·莫兰 (Kaitlyn Moran) 使用array

在此处输入图片描述

笔记:

  • multirow用于将\sqrt{xy^2 + 1}术语置于两行中间。
  • \multicolumn{1}{c}{<text>}用于将内容置于单元格内

扩展示例

对于更复杂的情况(来自上述参考论文的第 5 页),其中有多个对齐点,我建议使用 来\hphantom{}保留适当的水平间距。最简单的方法是从底部开始,使用每个点的最宽项输入多项式。如下所示以红色显示:

在此处输入图片描述

从这个最宽的多项式开始,向上工作并将您不想打印的项放在 中以\hphantom{}获得适当的间距。在下面的代码中,我仔细对齐了代码,以便\hpantom{}更容易可视化。

另一个复杂之处在于水平线不会延伸到整个列的宽度,因此\cline{2-2}在这种情况下简单的方法不起作用。幸运的是,您可以使用包\cmidrule中的booktabs,它接受一个可选参数,允许在 的左侧和右侧进行修剪\cmidrule。由于这个语法不太标准,我将其包装在 中,\CMidRule{<left trim>}{<right trim>}{<columns>}您可以在其中指定每侧要进行多少修剪。所以\CMidRule{0.0ex}{0.0ex}{<columns>}相当于cmidrule{<columns>}

笔记

  • 红色部分仅用于说明对齐点,应将其删除。
  • 有关\phantom宏的更多详细信息,请参阅缩进与单词宽度相同举一个基本的例子,或者如何对齐普通文本;例如拆分矩阵、方程组、表格以实现更精细的用法。
  • 需要注意的一点是,如果尾随二元运算符(+、 或-)是 的一部分\hphantom{},则{}需要插入一个附加部分以确保它被视为二元运算符。请参阅二元运算符的幻像宽度
  • 中指定的修剪长度\CMidRule可以根据使用该包的代码各部分的长度来计算calc。但是,在这种情况下,使用实际数字来调整修剪更加灵活,并且代码更易于阅读。
  • 事实证明,包装cmidrule宏并不简单。在此特定情况下,此处介绍的先前解决方案似乎只有效,因为每行只使用一次此宏。当尝试每行多次使用此宏时,会出现问题,并在以下位置进行了讨论:将 \cmidrule 包装在宏中

代码:基本示例

\documentclass{article}
\usepackage{multirow}

\newcommand{\PhantC}{\phantom{\colon}}%
\newcommand{\CenterInCol}[1]{\multicolumn{1}{c}{#1}}%

\begin{document}
\[
\begin{array}{rr}
   a_1\colon  & \CenterInCol{y}\\
   a_2\colon  & \CenterInCol{-1}\\
xy + 1\PhantC & \multirow{2}*{$\sqrt{xy^2 + 1}$}\\
 y + 1\PhantC &\\
              & xy^2 + y\\\cline{2-2}
              & -y + 1 \\
              & -y - 1 \\\cline{2-2}
              & 2
\end{array}
\]
\end{document}

代码:扩展示例

\documentclass{article}
\usepackage{xcolor}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{xparse}
\usepackage{calc}

\newcommand{\PhantC}{\phantom{\colon}}%
\newcommand{\PhantSQ}{\phantom{\sqrt{\hspace{0.3ex}}}}%

% https://tex.stackexchange.com/questions/63355/wrapping-cmidrule-in-a-macro
\ExplSyntaxOn
\makeatletter
\newcommand{\CMidRule}{\noalign\bgroup\@CMidRule{}}
\NewDocumentCommand{\@CMidRule}{
    m % Material to reinsert before cmidrule.
    O{0.0ex} % #1 = left adjust
    O{0.0ex} % #1 = right adjust
    m  %       #3 = columns to span
}{
    \peek_meaning_remove_ignore_spaces:NTF \CMidRule
      { \@CMidRule { #1 \cmidrule[\cmidrulewidth](l{#2}r{#3}){#4} } }
      { \egroup #1 \cmidrule[\cmidrulewidth](l{#2}r{#3}){#4} }
}
\makeatother
\ExplSyntaxOff

\begin{document}
\[
\begin{array}{rll}
     a_1\colon  & \multicolumn{1}{l}{x+y}\\
     a_2\colon  & \multicolumn{1}{l}{1}           & r\\
  xy + 1\PhantC & \multirow{2}*{$\sqrt{x^2y + xy^2+y^2}$} \\\cline{3-3}
 y^2 + 1\PhantC &\\
    %
    &\PhantSQ           x^2y -     x                                         \\\CMidRule[3.0ex][9.0ex]{2-2}
    &\PhantSQ \hphantom{x^2y +{}}  xy^2 +    x + y^2                         \\
    &\PhantSQ \hphantom{x^2y +{}}  xy^2 -    y                               \\\CMidRule[9.0ex][5.0ex]{2-2}
    &\PhantSQ \hphantom{x^2y +     xy^2 +{}} x +    y^2 +     y              \\\CMidRule[16.0ex][5.0ex]{2-2}
    &\PhantSQ \hphantom{x^2y +     xy^2 +    x +{}} y^2 +     y              \\
    &\PhantSQ \hphantom{x^2y +     xy^2 +    x +{}} y^2 -     1              \\\CMidRule[20.0ex][5.0ex]{2-2}
    &\PhantSQ \hphantom{x^2y +     xy^2 +    x +    y^2 +{}}  y + 1          \\\CMidRule[25.0ex][1.0ex]{2-2}
    &\PhantSQ \hphantom{x^2y +     xy^2 +    x +    y^2 + y +{}}  1 &\to x+y \\\CMidRule[25.0ex][1.0ex]{2-2}
    &\PhantSQ \hphantom{x^2y +     xy^2 +    x +    y^2 + y +{}}  0 &\to x+y+1
  \\&\PhantSQ\color{red}x^2y +     xy^2 +    x +    y^2 + y + 1
   % Last line above should be removed -- used for alignment purposes only.
\end{array}
\]
\end{document}

相关内容