![显示长除法的更好方法?](https://linux22.com/image/274572/%E6%98%BE%E7%A4%BA%E9%95%BF%E9%99%A4%E6%B3%95%E7%9A%84%E6%9B%B4%E5%A5%BD%E6%96%B9%E6%B3%95%EF%BC%9F.png)
我目前正在尝试为我的学生创建一张有长除法问题的工作表,供他们练习。不幸的是,到目前为止,我能想到的最好的长除法显示方式是:
如果需要的话,这个方法可以奏效,但我想看看是否有人已经尝试过这个方法并想出了更好的方法。要创建这个方法,我只需输入:
$\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}