我想在此代码中像第 2 节中一样列出除法总和。我怎样才能使用随机数来实现这一点,并且代码不会太乱,甚至根本不使用表格?
\documentclass{article}
\usepackage{amsmath}
\usepackage[makeroom]{cancel}
\usepackage{longdivision}
\usepackage{cancel}
\usepackage{xcolor}
\newcommand\Ccancel[2][black]{\renewcommand\CancelColor{\color{#1}}\cancel{#2}}
\begin{document}
\section{}
\longdivision[stage=0]{168}{3}
\longdivision[stage=1]{168}{3}
\longdivision[stage=2]{168}{3}
\longdivision[stage=3]{168}{3}
\section{}
\begin{tabular}{ccccc}
0&5&56&&\\
$3 \overline{)168}$
&
$3 \overline{)\Ccancel[red]{1}{^1}68}$
&
$3 \overline{)\Ccancel[red]{1}{{^1}\Ccancel[red]{6}{^1}}}8$\\
\end{tabular}
\end{document}
答案1
我不熟悉这个longdivision
包,但是鼠尾草包将让你处理随机数,我认为这样就不会那么混乱了。该sagetex
包将基于 Python 的计算机代数系统链接起来,称为智者用 LaTeX。下面是一个简单的例子:
\documentclass{article}
\usepackage{amsmath,sagetex}
\usepackage[makeroom]{cancel}
\usepackage{longdivision}
\usepackage{cancel}
\usepackage{xcolor}
\newcommand\Ccancel[2][black]{\renewcommand \CancelColor{\color{#1}}\cancel{#2}}
\begin{document}
\section{}
\longdivision[stage=0]{168}{3}
\longdivision[stage=1]{168}{3}
\longdivision[stage=2]{168}{3}
\longdivision[stage=3]{168}{3}
\section{}
\begin{sagesilent}
output = r""
for i in range(0,2):
big = randint(100,200)
small = randint(3,9)
output += r"\longdivision[stage=0]{%s}{%s}"%(big,small)
output += r"\longdivision[stage=1]{%s}{%s}"%(big,small)
output += r"\longdivision[stage=2]{%s}{%s}"%(big,small)
output += r"\longdivision[stage=3]{%s}{%s}\\\\"%(big,small)
\end{sagesilent}
\sagestr{output}
\end{document}
进入sagesilent
模式后,该行for i in range(0,2):
设置了 2 个随机问题,因为在 Python 中 range(a,b) 运行包含 a 但不包括 b。将 2 更改为 10,我们现在有 10 个问题,无需额外代码。大数字是介于 100 和 200 之间的随机整数(包括两者)。小数字是介于 3 和 9 之间的随机整数(包括)。它将此信息放入raw string
, r"" 中,这使我们能够处理诸如 之类的问题字符\
。
Sage 不是 LaTeX 发行版的一部分。最简单的尝试方法是使用免费的可钙帐户。在此站点搜索sagetex
更多示例。