STEM補足ノート (LaTeX)
任意のSTEMソース資料から .tex ファイルとして学習資料を生成します。ユーザーは多肢選択式質問(AskUserQuestion)を通じてすべての選択を決定するため、構築前に質問をしてください。
対応ファイル(該当ステップに到達したら参照):
references/tooling.md: ソフトウェア、インストールコマンドとサイズ、変換コマンドreferences/questions.md: MCQ質問バンク(インテイクラウンド、コンパイル質問を含む)references/style-guide.md: レイアウト、ラベリング、解答形式、検証と矛盾ルールtemplates/formula_sheet.tex、templates/solutions.tex、templates/summary_notes.tex: コピー用プリアンブル
ワークフロー
1. ソースの棚卸し
- ユーザーが指定したファイル(フォルダまたは
@パス)をリストアップします。PDF、PNG/JPG、PPTX/DOCXに対応。 - 各PDFについて
pdfinfo(ページ数)とpdftotext -layoutを実行してセッションスクラッチパッドに取り込み、単語数をカウントします。1ページあたり約50単語未満の場合はスキャンまたは画像主体のファイルと判断:すべてのページを画像として読み取ります。テキストダンプは無価値です。 - スライドデッキは数式や図を画像としてのみ保持していることがよくあります。テキストが存在する場合でも、ページを表示してください。
2. ツールの確認(最初は読み取りのみ)
which pdfinfo pdftotext pdftoppm soffice tectonic pdflatex を実行します。不足しているものがあれば、最初のMCQラウンドでそのサイズと共に質問します(references/tooling.md参照)。MCQ回答なしにインストールしないでください。 LibreOfficeはOfficeファイルが存在する場合のみ必要です。ユーザーが質問で返答した場合(例:「ストレージはどのくらい?」)、回答してから再度質問してください。
3. インテイクMCQ
references/questions.mdのラウンドを、AskUserQuestion呼び出しごとに最大4問まで質問します。推奨オプションを最初に置き、「(推奨)」とマークします。ユーザーが選択した出力に対応する質問グループのみを質問します。コンパイル質問は常に最後に行います。 回答は文字通り読み取ります。自由記述回答は選択肢を上書きします。
4. すべてを読み取る
- PDF:
pagesを指定してReadツールを使用(1回の呼び出しで最大20ページ、大きな範囲は分割)、すべてのファイルの全ページ範囲読み取りを1つの並列バッチで発行します。Readツールにはpopplerのpdftoppmが必要です。 - 画像:直接読み取ります。
- PPTX/DOCX:スクラッチパッドでPDFに変換してから(
soffice --headless --convert-to pdf --outdir <scratchpad> file)、PDFとして読み取ります。 - すべての質問や例について、ソースファイル、スライド/ページ、問題番号、ソースが既に解答を提供しているか(完全または一部)、印刷された解答を記録します。
5. 解答と検証
- 対象範囲のすべての問題を解きます。非自明な問題(曲線近似、積分、モーメントバランス、多段階数値計算)については、スクラッチパッドで短い
python3スクリプトを使って数値を確認します。 - 印刷された解答と比較します。不一致がある場合は再確認し、文書内およびユーザーに矛盾を報告します。 印刷された解答に合わせて計算をねじ曲げることは決してしません。
- ソースの誤字(誤った符号、誤った項、矛盾したデータ)を脚注または「ここにある理由」ノートでフラグ付けします。
6. .tex ファイルを作成
templates/の該当テンプレートから開始:プリアンブルを保持し、%% TODOプレースホルダを置き換えます。references/style-guide.mdに従います:すべての項目にソース・スライド/ページ・問題番号をタグ付け、カバレッジテーブルを追加、各問題を完全に再記述、解答をボックスで囲みます。- ASCIIのみのソースを使用します。コメントは1行の
%コメントのみで、複数行のバナーコメントは使用しません。 - デフォルトの出力フォルダはソースの隣の
latex/です(ユーザーが別途選択しない限り)。
7. ユーザーが選択した場合のみコンパイル
- tectonic:
tectonic -X compile file.tex。MacTeX:latexmk -pdf file.tex。エラーを修正してクリーンになるまで再コンパイルします。 - ユーザーが停止を指示した場合は、即座にタスクを停止(TaskStop)し、再試行しません。
8. 報告
簡潔にリストアップ:作成したファイル、各ファイルの内容、スキップした問題(ソース内で既に解答済み)、発見した矛盾、コンパイル状況。コンパイルしなかった場合はその旨を明確に述べます。