SATySFiを大学のレポート課題で使っています

はじめに

今年も始まりましたSATySFi Advent Calendar 2022

今日は1日目の記事です。

今年もSATySFi関係の記事を充実させていきましょう。

そろそろSATySFi v0.1.0のリリースがあるということで、これからも楽しみですね(去年もこれ書いたような気がするけど来年こそは……)。

依存関係解決の話をしようと思ったのですが、ちょっと執筆時間が無いのと「これはOCamlの話では…?」となってやめました。

今年は一年を通してSATySFiでレポートを書き続けていた年でした。そのことについて少し書いてみようと思います。

大学のレポートの要件

自分は筑波大学情報学群情報科学類に所属しており、レポート課題が課される講義は情報数学・確率論・線形代数微分積分などの数学分野です。 これらの講義では指定された演習課題を毎週とき、その解答を書いてPDFファイルで提出、という形でした。SATySFiは数式の組版も綺麗に行うことができてこういう時に数式組版機能のありがたさを実感しますね。

それ以外の講義では穴埋め式のdocxレポートテンプレートが配られるか、授業支援サービスのフォームに書くかしか無く、SATySFiを使う余地が無かったです。残念。

GitHubを使ったレポート管理

複数の環境で作業をすることもあり、レポート類はGitHubのプライベートリポジトリで管理をしています。 適切なリポジトリ名を付けることができなくて困っており、今はtsukuba-[履修した年次]-[授業名のローマ字表記]みたいな感じで管理しています。誰か良い方法を教えてください。

GitHubのプライベートリポジトリでレポートを管理している様子

さて、GitHubでは最近templateという便利機能が使えるようになっており、これは「元リポジトリへの還元を前提としていないfork」みたいな感じです。

改造を前提としたSATySFiのクラスファイルをこのtemplate機能が使えるリポジトリ(puripuri2100/satysfi-class-template)として公開しているため、これを授業ごとにGitHub上で複製してその後必要な改造を施して使っています。

よく使う数学系のコマンドをクラスファイル内に定義してしまえたり、「課題を解き、解答解説を見て答え合わせをし、その両方を書け」のような指定があるときには+kotaeawase : [block-text; block-text]のようなコマンドを定義して使えたりして便利です。

よく使っていたパッケージやコマンドなど

monaqaさんによるazmathパッケージにはとてもお世話になりました。

azmathパッケージのなかでも+alignコマンドや\pmatrixコマンドをよく使いました。 このコマンドで使う、math list形式での引数の書き方が便利でとても良かったです。 「幅が定まっていればmath list listである必要はない」というのはかなりコロンブスの卵でしたね。

実際のレポート

こういう感じでレポートを書いていました。

問題番号を+sectionコマンドに対応させることで入れ子になるような小問などの構造を表すことができて良かったです。

実際のレポート

おわりに

軽めの記事になりましたが、実際にSATySFiを使っているとどういう雰囲気なのか、というのを少しは伝えられたでしょうか(伝えられていたら嬉しい)。

syntax errorやtype errorによって自分のtypoに気が付けるというのは凄く良い体験なんだな~と思いながらレポートを書いています。 来年はもっとレポート課題が増えるでしょうから頑張っていきたいと思います。