我正在编写一个程序,生成数学运算(+ - * /)期间执行的步骤并很好地解释它。
我读过了这这里最好的答案是使用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}