使用 Latex 进行长乘法

使用 Latex 进行长乘法

我正在编写一个程序,生成数学运算(+ - * /)期间执行的步骤并很好地解释它。

我读过了这里最好的答案是使用xlop包,它显示例如乘法(以纯文本形式):

    3 8 4
x     5 6
---------
  2 3 0 4
1 9 2 0
---------
2 1 5 0 4

乳胶:

\documentclass{article}
\usepackage{xlop}
\begin{document}
\opmul{384}{56}\qquad
\end{document}

但有没有办法创造乳胶像

    3 8 4
x     5 6
---------
  2 3 0 4

以下是使用 Plain-commands 的一种方法:


\vbox{
  \openup2pt
  \def\trule{\noalign{\smallskip\hrule\smallskip}}
  \halign{&\tabskip1em$\mathstrut#$\cr
          &   & 3 & 8 & 4 \cr
    \times&   &   & 5 & 6 \cr
    \trule
          & 2 & 3 & 0 & 4 \cr
    \trule
  }
}
\bye

虽然它尚未完全完成,但显示了流程中的一个“步骤”。所以我的意思是,是否可以使用包来xlop指定完成的程度和内容,或者我想从输出中省略什么?或者我需要使用完全不同的技术

答案1

中有一些选项xlop,有些比其他的更容易。有时查看软件包手册是个好主意。


姆韦

\documentclass[a5paper]{article}
\usepackage{xlop,geometry}

\newcommand\hole[1]{\_}

\begin{document}
\sffamily
\noindent
\begin{minipage}[c][3cm][t]{.16\linewidth}
\opmul{384}{56}
\vfill full result  
\end{minipage}
\hfil
\begin{minipage}[c][3cm][t]{.16\linewidth}
\opmul[displayintermediary=None]{384}{56} 
\vfill shortened 
\end{minipage}
\hfil
\begin{minipage}[c][3cm][t]{.16\linewidth}
\oplput(2,-0.7){3}\oplput(3,-0.7){8}\oplput(4,-0.7){4}
\oplput(1,-1.2){$\times$}
\oplput(3,-1.7){5}\oplput(4,-1.7){6}
\ophline(0,-1.95){5}
\oplput(1,-2.7){2}\oplput(2,-2.7){3}\oplput(3,-2.7){0}\oplput(4,-2.7){4}
\vfill\small\raggedright hard way, wrong or incomplete?
\end{minipage}
\hfil 
\begin{minipage}[c][3cm][t]{.16\linewidth}
\oplput(2,-0.7){3}\oplput(3,-0.7){8}\oplput(4,-0.7){4}
\oplput(1,-1.2){$\times$}
\oplput(3,-1.7){5}\oplput(4,-1.7){6}
\ophline(1,-1.95){4}
\oplput(1,-2.7){2}\oplput(2,-2.7){3}\oplput(3,-2.7){0}\oplput(4,-2.7){4}
\oplput(0,-3.7){.}\oplput(1,-3.7){.}\oplput(2,-3.7){.}\oplput(3,-3.7){.}\oplput(4,-3.7){←}
\ophline(0,-3.95){5}
\vfill\raggedright hard way,\\ but clear
\end{minipage}
\hfil
\begin{minipage}[c][3cm][t]{.16\linewidth}
\opmul[intermediarystyle.2=\hole,resultstyle=\hole]{384}{56}  
\vfill\raggedright easier and better?
\end{minipage}
\end{document}

相关内容