显示长除法的更好方法?

显示长除法的更好方法?

我目前正在尝试为我的学生创建一张有长除法问题的工作表,供他们练习。不幸的是,到目前为止,我能想到的最好的长除法显示方式是:

例子

如果需要的话,这个方法可以奏效,但我想看看是否有人已经尝试过这个方法并想出了更好的方法。要创建这个方法,我只需输入:

$\overline{)12345}$

任何关于如何使其变得更好的建议(使其看起来更像您在使用时看到的\longdiv)都会很棒。

答案1

您可以给出一个受 中使用的命令启发的命令的定义longdiv.sty;类似这样的定义:

\documentclass{article}

\newcommand\Mydiv[2]{%
$\strut#1$\kern.25em\smash{\raise.3ex\hbox{$\big)$}}$\mkern-8mu
        \overline{\enspace\strut#2}$}

\begin{document}

\Mydiv{56}{3678}\quad\Mydiv{3}{37678}

\end{document}

在此处输入图片描述

答案2

\smash右括号,这样它就不会向上推\overline:``

\documentclass{article}
\newcommand\showdiv[1]{\overline{\smash{)}#1}}
\begin{document}
\(\showdiv{12345} \)
\end{document}

在此处输入图片描述

如果你不喜欢右括号的曲率,你可以把它挤压一下(这里,我把它挤压得可能有点太多了,挤压到了原始宽度的 50%,只是为了演示)

\documentclass{article}
\usepackage{scalerel}
\newcommand\showdiv[1]{\overline{\smash{\hstretch{.5}{)}}#1}}
\begin{document}
\(\showdiv{12345} \)
\end{document}

在此处输入图片描述

如果你担心水平挤压字形会使笔画太细,那么只需将其中两个几乎重叠即可:

\documentclass{article}
\usepackage{scalerel}
\newcommand\showdiv[1]{\overline{\smash{\hstretch{.5}{)}\mkern-3.2mu\hstretch{.5}{)}}#1}}
\begin{document}
\(\showdiv{12345} \)
\end{document}

在此处输入图片描述

最后再添加一些收尾工作:

\documentclass{article}
\usepackage{scalerel}
\usepackage{stackengine}
\usepackage{xcolor}
\newcommand\showdiv[1]{\overline{\smash{\hstretch{.5}{)}\mkern-3.2mu\hstretch{.5}{)}}#1}}
\let\ph\phantom
\begin{document}
\setstackgap{S}{1.5pt}
\stackMath\def\stackalignment{r}
\(
\stackunder{%
  5 \stackon[1pt]{\showdiv{12345}}{2469}%
}{%
  \Shortstack[l]{{\underline{10}} \ph{1}23 {\ph{1}\underline{20}} \ph{12}34 {\ph{12}\underline{30}} %
   \ph{123}45 {\ph{123}\underline{45}} \ph{1234}0}%
}
\)
\end{document}

在此处输入图片描述

答案3

我曾经对此非常精通,并创建了一个基于 tikz 的解决方案:

\documentclass[border=4pt]{standalone}
\usepackage{calc}
\usepackage{tikz}

\newcommand{\longdivision}[2]{
    \settowidth{\dividendlength}{#1}
    \settowidth{\divisorlength}{#2}
    \settoheight{\dividendheight}{#1}
    \settoheight{\maxheight}{#1#2}
    \settoheight{\divisorheight}{#2}

    \begin{tikzpicture} [baseline=.5pt]
        \node at (-.5*\divisorlength-1pt,.5*\divisorheight) {#2};
        \node at (.5*\dividendlength+5pt,.5*\dividendheight) {#1};
        \draw [thick]  (0pt,-.22*\dividendheight) arc (-70:60:\maxheight*.41 and \maxheight*.82) -- ++(\dividendlength+7pt,0pt);
    \end{tikzpicture}
}

\newlength{\dividendlength}
\newlength{\divisorlength}
\newlength{\dividendheight}
\newlength{\divisorheight}
\newlength{\maxheight}

\begin{document}

\longdivision{$x^2+3x-5$}{$x-3$}

\end{document}

多项式长除法

我确信它可以改进,但我对此已经足够满意了(并且从未对括号+上划线解决方案感到满意)。

答案4

您可以使用longdiv“包”。我将包放在引号中,因为使用 加载它\usepackage{}不起作用,无论出于何种原因,您都必须使用 加载它\input longdiv.tex

然后您可以使用 进行长除法\longdiv{6584}{28}

之后,您可以使用包polynom进行多项式长除法,如下所示\polylongdiv{x^2+2x+4}{x-1}

相关内容