PythonとTexによる筆算(ひっさん)問題生成
PythonとTexを活用してひっ算ドリルを生成する方法
生成済みPDFはこちらのページから
生成例
Tex環境のインストール
久々にTeX環境を触ろうと調べたところ、最近はTeX Liveというディストリビューションが人気があるようです (公式ページ)。
インストールはこちらの日本語の解説ページに従えば問題ないと思います。
ネットワークインストールとISOファイルのダウンロードが選択できますが、フルインストールの場合はISOファイルからのインストールをお勧めします。理由はかなりインストールに時間がかかるため。自分はフルインストールを選択しましたが、8時間を要しました。そのためネットワークインストールの場合はパッケージを絞り込んだ方がいいと思われます。
Msys2の環境ではPATH環境変数は自動で設定されませんでしたが、こちらで設定すれば問題なく動作しました
インストールパッケージの選択
以下のパッケージ選択でとりあえず問題ありませんでした。必要なパッケージについては後から追加でインストールすればいいと思います
TeX環境テスト
インストール後、以下のコマンドが正常に終了し、sample2e.pdf
が生成されれば問題ないと思います
% ptex2pdf -l sample2e.tex
TeX生成プログラム (Math Monkey)
GitHubからclone
またはZIPファイルをダウンロードして展開します
% git clone https://github.com/udon-code/math_monkey.git math_monkey
Math Monkey
以下のような特徴をもっています
- texを出力
- 足し算、引き算
- 乱数を用いた問題で毎回異なる問題を生成
- 最大・最小の桁数を指定可能
- 桁上がり/桁下がりあり、なしの指定
- 使う数を2から最大20まで選択可能
- 答えページの生成
オプション
使用できるオプションは以下の通りです
オプション | 説明 |
---|---|
-h, –help | ヘルプを表示 |
-o file, –output file | 出力ファイル |
–title string | ドキュメントタイトル |
–name string | 名前欄の記載 (例: なまえ) |
-n num, –num_problem num | 生成する問題数 |
–answer | 答えも生成する。デフォルトは問題のみ |
-t {add,sub}, –type {add,sub} | add: 足し算, sub:引き算 |
–digits num | (最大)桁数 |
–min_digits num | 最小桁数。省略すると(–digits)と同じ桁数が設定されます |
–num_augend num | 使用する数字の個数。デフォルトは2個 |
–inc_carry_over | 桁上げを含む (デフォルトは含まない) |
–only_carry_over | 桁上げを含むものだけを生成 |
–exc_digits_incr | 最終段の桁上がりを含む |
使用例
(#
以下の説明は削除して実行)
3桁の足し算問題を100個生成 (桁上がりなし)
% python scripts/math_monkey.py \ #
-t add \ # 足し算
-o add_3digits_100.tex \ # 出力ファイル名
-n 100 \ # 100問出力
--digits 3 \ # 3桁 + 3桁
--min_digits 3 #
% ptex2pdf -l add_3digits_100.tex
3桁の引き算問題 (桁下がりあり)
% python scripts/math_monkey.py \ #
-t sub \ # 足し算
-o sub_3digits_100.tex \ # 出力ファイル名
-n 100 \ # 100問出力
--inc_carry_over \ # 桁下がりあり
--digits 3 \ # 3桁 - 3桁
--min_digits 3 #
% ptex2pdf -l sub_3digits_100.tex
10桁までの数10個の足し算 (答えも生成)
% python scripts/math_monkey.py \ #
-t sub \ # 足し算
-o sub_10digits_x10_10.tex \ # 出力ファイル名
-n 10 \ # 10問出力
--num_augend 10 \ # 10個の数
--inc_carry_over \ # 桁上がりあり
--digits 10 \ # 最大10桁
--min_digits 1 \ # 最小1桁
--answer # 答えも生成
% ptex2pdf -l sub_10digits_x10_10.tex
最近のコメント