如何表示垂直乘法/加法

如何表示垂直乘法/加法

如何在 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)您可能需要稍微摆弄一下它。\usepackagearray\\\phantom{foo}foo91

答案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操作员会排版在右侧。

相关内容