LaTeX における高校数学テンプレート

目次

ここは,LaTeX を用いて中等教育での教材(授業プリント)作りに適した出力を手軽に得るためのプリアンブル集 The Japanese Educational Preambles for LaTeX の配布ページである。 パッケージ(\usepackage{...} で読み込み)とは異なり,単なるプリアンブルの一部(\input{...} で読み込み)として作られている。

私は,高校教員の間で LaTeX を使うひとが増えることで,LaTeX で作られた教材を持ち寄る文化が生まれればと考えている。

背景

LaTeX で仕上げられた文書は美しい。 数学の教員免許を持っていれば,おそらく大学のレポートなどで使ったことがあるだろう。 しかし,LaTeX は論文や書籍のために整えられており,中等教育の教材のためにはやや大振りである。

そこで,中等教育での教材(授業プリント)作りに適した出力が手軽にできるテンプレートを整えることとした。

よければ,次も参照されたい。

解決

見本

TeX と書かれたソースから,同じタイトルを持つ PDF ファイルが出来あがる。 TeX ファイル (.tex) はテキストエディタ(Windows ならばメモ帳など)で開くことができる。

趣旨

この .tex ファイルの集まりは,日本における高等学校数学科の教材・板書案を書くための私家版プリアンブルである。 すなわち,日本における高等学校数学科教員を意識して作られている(中学校でも使えるだろう)。 LaTeX による教材作りに役立てば幸いである。

それぞれの表現は私が教材・板書案を作るにあたって実際に使っているものである。 教育効果を考えなおしたり,教育環境が変わったりすることによって手直しし,組版結果に大きな違いのある更新を行う可能性がある。 ただし,そのときは日付で版を管理し,私が活動しているかぎり,古い版も公開し続けることとする。

ダウンロード

  • 2024-12-18版
    • innerscript パッケージにより空白を整えた。
    • \marka* の高さを 0 から中身の高さへ変えた(ほかの \mark... も同じ)。
    • マニュアルに \rightgraphics\lefttext を載せた。
  • 2024-11-25版
    • jpnedumathsymbols パッケージと unicode-math パッケージとの衝突を避けた。
    • \vec の長さを微調整した。
    • マニュアルに \rightgraphics\lefttext を載せた。
  • 2024-11-24版
    • 多くの破壊的変更がある。ファイル名から up / lua を除いたため,双方を保存しておくことができる。
    • jephandoutstyle jepexamstyle の内部から \documentclass を除いた(Visual Studio Code LaTeX Workshop の挙動のため)。
    • LuaLaTeX 版のみに統合(upLaTeX 版を廃止)。
    • up/luajepplanstyle.tex を廃止。
    • \namefield を廃止。
    • \whitepage \zwspace \halfzwspace \zwsmash \halfzwsmash を廃止(\hspace* で代替)。
    • quotediv* を廃止(quotediv で代替)。
    • \displaysmash[...] の引数を必須からオプションへ変更。
    • quotegraphics* の名前を fullwidthquotegraphics に変更し,別の意味でquotegraphics* を定義。
    • \marka* の名前を \markascript に変更し,別の意味で \marka* を定義。\markb* \markc* \markd* \markalph も同様。\markc の線種を変更。
    • \emphを太字に変更(\em は非推奨)。
    • \theme{タイトル} 直後の自動改行を削除(手動で空行を挿入)。
    • \thinktoの矢印を変更(\rightarrowtriangle から \leadsto へ)。
    • \advanced \super \hyper \ultra にそれぞれ \heading... \subheading... を追加。
    • \level*{} の位置を調整。
    • \headingfree \subheadingfree の名前を \headingmanual, \subheadingmanual に変更(互換性のため旧名も保存)。
    • align** gather**jpnedumathsymbols パッケージへ移行(使用にあたっての変化はなし)。
    • thinkdiv** を追加。
    • jepheading の見出しを追加。
    • \linespace 系統の名前を \vsmash... \vspace...に統一(補完機能のため,互換性のため旧名も保存)。
    • \underbrace のバグを修正。
  • 2022-08-07版
    • \thinkdiv(*) の幅指定を修正し,text/handoutstyle 以外でも使えるようにした。
  • 2022-07-22版
    • \quotegraphics のバグを修正した。
  • 2022-07-21版
    • 初めて公開する版である。

古い TeX Live での使用

このプリアンブル集では,私が作ったパッケージをいくつか用いている。2022-07-20 よりも後の TeX Live ではおそらく収められているが,それよりも前のものには含まれない。 パッケージが足りないときは,次の5つのパッケージをインストールすれば動くようになる。

  • CTAN Yukoh Kusakabe
    • asternote
      • 角括弧囲い・アスタリスク付きの注釈記号を出力する。
    • hideanswer
      • スイッチ切り替えによって,単一のファイルから答えが書かれている文書と答えが書かれていない文書を生成する。
    • inlinelabel
      • インライン数式に数式番号を振る。
    • jpneduenumerate
      • 日本の中等数学教育における列挙表現を導入する。
    • jpnedumathsymbols
      • 日本の中等数学教育における数式表現を導入する。

補足

ここでは詳しい仕様の説明は省くが,それぞれでソースコードを読み,使いやすいように書き換えることはまったく差しつかえない。

そうして出来あがったものはぜひ公開していただき,高校数学の教材を LaTeX で書く文化が広まれば喜ばしいかぎりである。

設計思想

デザインについては次にまとめた。

その他,現時点で導入を見送ったものについて書き留めておく。

  • mathtools パッケージの {showonlyrefs=true} ないし autonum パッケージは導入しないものとして設計している。

読み込むパッケージ

読み込むパッケージのうち,そのまま使うためのものは次のとおりである。

graphicx

画像ファイルを取り込む。PDF 形式にして取り込むことをすすめる。

画像ファイルを PDF にする方法は次で述べた。

adjustbox

画像ファイルを取り込むときの配置の自由度を上げる。

pxrubrica

ルビを振る。

cases

場合分けを表現する。

ulem

下線を引く。欧文では適切に改行してくれるが,和文では改行されない。

tasks

横並びの列挙を行う。

multicol

段組みを行う。

innerscript

いくつかの文字間隔や大きさを調整する(感性の問題もあるので、マニュアルを見てもらいたい)。2024-12-18 現在,そのまま用いるとエラーになるので注意されたし(2つめの記事を参照)。

行列の縦幅

クラスファイルに jlreq を使っているため,行列の括弧や cases 環境の括弧が大きくなりすぎる。

行列については,\renewcommand{\arraystretch}{0.7} としてしまうのが速い。場合分けには dcases 環境を代わりに用いる。

Typstjep のフォールバック

Typst における高校数学テンプレートを使うにあたり,typst の若さから頓挫することを心配する声もある。そこで,書いた原稿が活かせるよう,関数/マクロを置きかえることでほぼ同じ資料が実現できるよう,体裁を似せて設計した。しかし,typst 側をまったく The Japanese Educational Preambles for LaTeX と同様にしたわけではない。

Typstjep の原稿を移植するには,プリアンブルの最後(または jephandoutstyle.tex の最後)に次のように書き加える。

\geometry{top=21.125truemm,%20truemm,%
bottom=21.125truemm,%20truemm,%
left=31.94truemm,%25truemm,%
right=31.94truemm}
%
\setlength{\textwidth}{38\zw}
\setlength{\marginparwidth}{0\zw}
%
\DeclareRobustCommand{\headerstudy}{[学習]}
\DeclareRobustCommand{\headerfeature}{[特集]}
\DeclareRobustCommand{\headerquotation}{[記事]}
\DeclareRobustCommand{\headerexercise}[2]{[演習]\switchanswer{#1}{#2}}
%
\AtBeginDocument{%
\abovedisplayskip     =4\abovedisplayskip
\abovedisplayshortskip=4\abovedisplayshortskip
\belowdisplayskip     =4\belowdisplayskip
\belowdisplayshortskip=4\belowdisplayshortskip
\jot                  =4\jot
\setlength{\mathindent}{2\zw}%
\setlength{\baselineskip}{\jephandoutbaselineskip}%
}
%
\DeclareRobustCommand{\marka}[1]{\ensuremath{\underbracket{\hspace{0.2\zw}#1\hspace{0.2\zw}}}}
\DeclareRobustCommand{\markb}[1]{\ensuremath{\underline{\hspace{-0.1\zw}\underbracket{\hspace{0.2\zw}#1\hspace{0.2\zw}}\hspace{-0.1\zw}}}}
  • 字数を38字とし,傍注を消す。
  • 余白を調整する。
  • 別行建て数式上下の空きを増やす。
  • marka markb を書き換える。

導入を考えたが見送ったもの

文章の回り込み

次のようなパッケージがいくらかあるが,これらは使わないこととした。JEP-LaTeX では thinkdiv を含め LaTeX の Float(s) lost. エラーになることが多すぎるため,相性が悪いと考えた。

図表の配置

図表の配置をよりよくしてくれるパッケージは便利で,何度か導入を検討した。しかし,高等学校向けの教材では,図はキャプションや番号を付けて枚数は段落と相談して上手く収まる位置に置けばよいというのではなく,述べているすぐそばに置くほうが生徒にとって読みやすい。稀にしか使わないものは読み込みを長引かせるだけになるため,見送った。

行に番号を打つ

授業の中で資料上の位置を口頭で示せるよう,vruler パッケージを採用した。これは,実際の行とは関係なく番号を打つものである。

実際の行番号のほうが自然だとはじめは考えたが,たとえば資料ごとに「24」の指し示す位置が違うのであれば,かえって探す手間があるだろうと思い至った。つねに「24」ならばこのあたり,とわかっているほうが使いやすいだろう。

行番号は,「すべての行を丁寧に読む」ことを前提に,読んだ内容について問い合わせるには役立つ。いずれそうした用が生じるかもしれないので,調べた記事を残しておく。

参考

emath

emath は,壮大かつ高機能な教材作成用のマクロ集である。 これさえあればすべて足りる,というひとがほとんどかもしれない。 一方で,多くの表現や体裁が置き換えられてしまう。 私はある程度の裁量を残したかったために,The Japanese Educational Preambles for LaTeX とその他のパッケージを作った。

emath のグラフ描画機能は素晴らしいの一言であり,細かな要求にも応えてくれる。 私は,図は emath を使って PDF を作り,クリッピングしたうえで貼り付ける運用をしている。

emath を LuaLaTeX で使うには,訂正版 / 3. スタイルファイルの臨時版を上書きせねばならない。

  • http://emath.s40.xrea.com/
    • 大熊一弘
    • LaTeX 初等数学プリント作成マクロ emath
    • LaTeX 初等数学プリント作成マクロ emath
    • 参照 2022-07-22

TikZ

改訂