如何在 LaTeX 中显示垂直(列)乘法和加法。像这样: http://mathworld.wolfram.com/LongMultiplication.html
3 8 4
x 5 6
---------
2 3 0 4
1 9 2 0
---------
2 1 5 0 4
我使用了“数组”环境。但我遇到了右对齐问题。还有其他好主意吗?
答案1
这xlop 包做这种事。它确实警告说它使用了“法语惯例”,但至少对于乘法来说,它看起来不错。
免责声明:我最后一次做乘法是在 20 世纪 50 年代在学校的时候……
\documentclass{article}
\usepackage{xlop}
\begin{document}
\opmul{384}{56}\qquad
\end{document}
答案2
简单的表格环境怎么样:
\documentclass{article}
\begin{document}
\begin{tabular}{cccc}
& 1 & 2 & 3 \\
+ & & 3 & 4 \\
\hline
& 1 & 5 & 7 \\
\end{tabular}
\end{document}
如果您需要更改间距,可以使用@
说明符,它会自动将参数放在括号中作为列之间的空格(在本例中为细空格\,
)。
\documentclass{article}
\begin{document}
\begin{tabular}{c@{\,}c@{\,}c@{\,}c}
& 1 & 2 & 3 \\
+ & & 3 & 4 \\
\hline
& 1 & 5 & 7 \\
\end{tabular}
\end{document}
其他一些空格包括粗空格\;
和中空格\:
。还可以使用以下方法避免繁琐的重复列类型输入*{}{}
:
\begin{tabular}{c*{3}{@{\,}c}}
这样就产生了c
,然后3次@{\,}c
,合并为c@{\,}c@{\,}c@{\,}c
。
答案3
我认为最简单(最不复杂)的解决方案是使用\phantom
,如下所示:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}\begin{array}{c}
\phantom{\times99}384\\
\underline{\times\phantom{999}56}\\
\phantom{\times9}2304\\
\underline{\phantom\times1920\phantom9}\\
\phantom\times21504
\end{array}\end{equation*}
\end{document}
这里,仅对环境amsmath
而言是必需的equation*
;如果使用,则根本equation
不需要。允许多行方程式;开始新行。 并打印字符宽度的空格。 我通常发现可以很好地替代任何数字,但(例如,如果您有几个s)您可能需要稍微摆弄一下它。\usepackage
array
\\
\phantom{foo}
foo
9
1
答案4
对于这样的问题,最好让 TeX 为您进行计算。这是一个草稿解决方案,它不使用任何表格。它仍然缺少一个小的迭代宏需要完成,但我决定发布它,因为在开发阶段更容易理解代码。
\documentclass{article}
\usepackage{fp,intcalc}
\begin{document}
\def\multiplication#1#2{
\def\answer{\FPmul\temp{#1}{#2}
\parindent=0pt
\FPround\temp{\temp}{0}\temp}
\def\linea{#1}
\def\lineb{$\times$\hfill#2}
\def\linez##1##2##3{
\intcalcMul{#1}{##2}##3}
\def\Rule{\rule{1.5cm}{0.4pt}}
\begin{minipage}[t]{1.5cm}
\begin{flushright}
\linea\\
\lineb\\[-2pt]
\Rule\\
\def\Z{\phantom{0}}
\linez{#1}{3}{}\\
\linez{#1}{2}{\Z}\\[-8pt]
\Rule
\answer
\end{flushright}
\end{minipage}}
\multiplication{35670}{23}
\end{document}
为了演示目的,我使用了该fp
包和该intCalc
包来执行计算。最好使用该fp
包执行这些计算,以便正确处理小数。一种可能性是使用随机函数随机设置我假设的练习并生成答案。
在许多欧洲国家,x
操作员会排版在右侧。