Scratch のコードは……
作るのは文字どおり子どもにもできるくらい簡単なのですが、教材の一つでも作ろうものならブラウザをスクリーンショットしてトリミングして貼り付けして…と 不毛な作業 との闘いになります。しかも 使い回しがほぼできない。ループの回数を変えよう、変数の名前を変えよう、このブロックとこのブロックの順番を入れ替えよう、などと思った日にはまたブラウザのScratchエディタからやり直しです。
あー、ふつうにテキストエディタで書けたらなぁ、できればついでに LaTeX で……と思っていたら何とそのものがありました。
というわけで紹介します。
つまらなくて苦労の多い作業を、楽で楽しい作業に変えて生産性を向上しましょう!
scratch3 パッケージ
texlive をふつうにインストールしてある環境ならたぶん入っていると思います。overleaf でもそのまま使えました。プリアンブルで \usepackage{scratch3}
とすれば準備完了。
例
Scratch コードは scratch
環境で書きます。\blockなんとか
というのが基本コマンドで、なんとかの部分がカテゴリを示し、見た目としては色や形が変わります。\blockmove
とか \blockinit
とかです。
scratchexample.tex
% プリアンブルは省略します。皆さんの環境に合わせてください。
% ここは document 環境内だとします。
\begin{scratch}
\blockinit{円周率を級数展開して求めたくなったとき}
\blockvariable{変数\selectmenu{pi}を\ovalnum{0}にする}
\blockvariable{変数\selectmenu{i}を\ovalnum{0}にする}
\blockrepeat{\ovalnum{10000}回繰り返す}{
\blockvariable{変数 \selectmenu{pi} を
\ovalnum{\(\frac{4\times(-1)^i}{2i+1}\)}ずつ変える}
\blockvariable{変数\selectmenu{i}を\ovalnum{1}ずつ変える}}
}
\blocklook{\ovalvariable{pi}と言う}
\end{scratch}
と書くと↓こんなのが描けます。