大島学習塾のブログ

教師のためのTeX小ワザ
2021年3月27日
全国の学校・学習塾の先生の皆さ~ん!
もうすぐ新年度が始まりますね~^^♪

新年度開始にともなって、新年度から使用する教材の準備に大忙しの先生方も多いのではないでしょうか??
私・大島も、今年度から中学の教科書が改訂されるので、塾で使う英語教材の全面改訂作業に追われております^^;

ところで、先生の皆さんは、パソコンで教材を作るときどんなソフトを使っていますか?
私はTeX(テフ)というソフトを使っています。
TeXは数学の先生以外にはあまり知られていないかもしれませんが、数式を含む文章の作成に力を発揮するソフトです。
分数や連立方程式、積分や行列など、普通のワープロソフトだと入力や表示が難しい数式も、TeXなら簡単に扱うことができます。
私は、大学1年生の頃からなので、もう20年以上もTeXを使っています。
大学・大学院時代はレポートや論文の作成に、学習塾の仕事を始めてからは教材の作成に、TeXを使い続けています。
TeXのイイところは何と言ってもその拡張性にあります!
自分で新しいコマンドを定義して便利に使ったり、文字や記号の出力位置を細かく調整できたりと、カユい所に手が届くソフトになっています^^♪
今回の記事では、私・大島が長年の教材作りの中で編み出した、便利なTeXの小ワザを2つご紹介しようと思います。
  • 今回の記事ではTeXの基本的な使い方の説明はしません。TeXの使い方にある程度慣れている方を対象にしています。

教材のサンプル

今回「小ワザ」をご紹介するために教材のサンプルを作成しました!
架空の教科書『New English』の1年生向けの対訳プリントを出力するソースコードを使って、「辞書」と「解答のON・OFF」の2つの機能をご説明しようと思います。

まずは、「本体」となるファイルです:
%% 英語プリント(サンプル)
\documentclass[a4paper,11pt,twoside]{jsarticle}

  \input{commands.tex}
  \input{dictionary.tex}

  \setcounter{gakunen}{1}

  \setcounter{switch}{1}%% '1'なら答えあり '0'ならなし

  \pagestyle{mystyle}

\begin{document}

  \input{unit_01.tex}%

\end{document}
自前で作成したコマンドなどは「commands.tex」というファイルに入れています。2・3年生向けのプリントでも同じファイルを読み込めば、デザインなどに統一感を持たせることができます。
「dictionary.tex」が今回ご紹介する「小ワザ」の1つめで、英単語の情報が書かれています。詳細は後述します。
カウンター「gakunen(学年)」には「1」を代入しています。ここを「2」や「3」に変えると、学年ごとに別の定義をしている箇所が切り替わって2・3年生向けの教材になります^^
「switch」というカウンターが「小ワザ」の2つめです。この値を「0」か「 1」に切り替えることで「生徒向け解答なし」と「教師向け解答あり」の2種類のプリントを1セットのソースコードから作ることができます。詳細は後述します。
あとは「内容」となるファイル「unit_01.tex」を読み込んでいます。
このように、「本体」では読み込みだけを行って、内容は別ファイルに書くのがメンテナンスのし易さという点からもオススメです!

続いて、「unit_01.tex」の中身です:
%% Unit 1

\Unit{1}{Welcome to Junior High School}{4~5}

\Part{自己紹介をしよう}

\NewWords{\WDhello\WDeveryone\\
\WDmy\WDname\\
\WDcall\WDplease\\
\WDfrom\WDJapan\\
\WDtwelve\WDyear\\
\WDold\WDlike\\
\WDpainting\WDwant\\
\WDjoin\WDart\\
\WDclub\\
\kugiri\\
\WDcallme\WDyearsold\\
\WDlikeing\WDwantto}

\Dl{Keita:}{Hello, everyone.}{こんにちは,みなさん。}

\Dl{}{My name is Keita Oshima.}{僕の名前は大島圭太です。}

\Dl{}{Call me Keita, please.}{僕のことはケイタと呼んでください。}

\Dl{}{I'm from Japan.}{僕は日本出身です。}

\Dl{}{I'm twelve years old.}{僕は12歳です。}

\Dl{}{I like painting.}{僕は絵をかくのが好きです。}

\Dl{}{I want to join the art club.}{僕は美術部に入りたいです。}
私自身が中学1年生に戻ったつもりで英語教科書風自己紹介文を作成してみました(笑)
これらのソースから作成されたプリントがコチラです:
教材の画像(解答あり)

(画像をクリックすると拡大します)

ちなみに今回の小ワザとは関係ありませんが、このプリントの「学習日・氏名」の欄はヘッダーに書いています。これは『美文書作成入門』で紹介されている小ワザですネ^^♪
「本体」の「switch」カウンターの値を「0」にしてコンパイルするとこうなります:
教材の画像(解答なし)

(画像をクリックすると拡大します)

このように同じソースコードからワンタッチで「解答あり・なし」を作成できるので便利です!
作成した教材のpdfファイルはコチラからご覧ください。

【小ワザその1】辞書

それでは「小ワザその1」からご説明しましょう!
ファイル「unit_01.tex」の中の
\NewWords{\WDhello\WDeveryone\\
\WDmy\WDname\\
\WDcall\WDplease\\
\WDfrom\WDJapan\\
\WDtwelve\WDyear\\
\WDold\WDlike\\
\WDpainting\WDwant\\
\WDjoin\WDart\\
\WDclub\\
\kugiri\\
\WDcallme\WDyearsold\\
\WDlikeing\WDwantto}
の部分に注目してください!この部分が教材の
英単語の画像

(画像をクリックすると拡大します)

の部分に対応しています。
まず、
\NewWords{
…
}
は見出しの出力です。次に、
\WDhello
というコマンドがあります。
このコマンドの定義は「dictionary.tex」の中に書かれています:
\def\WDhello{\Wd{hello}{へ{\gt ろ}ウ}{こんにちは,やあ}}
このように、「\WD+英単語のスペル」という名前でコマンドを定義しておいて、それを書いた箇所に対応する英単語の説明が出力される仕組みになっています。
先頭の「WD」という文字についてですが、例えば「big」という単語のコマンドを作る場合、「\big」という元々存在するコマンドを再定義してしまうと不便です。そこで「\WDbig」というコマンド名にして元のコマンド名に干渉せずに「big」という単語のコマンドが作れるように先頭に「WD」をつけています。
このように準備しておくと「\WDhello」と書くだけで、下の画像の赤い枠内の部分が出力されます:
英単語の画像

(画像をクリックすると拡大します)

「dictionary.tex」の中には他の単語に対応するコマンドもズラッと書かれています。つまり、表示させたい英単語の数だけコマンドを定義しているのです!
これがご紹介したい「小ワザその1」です!!
このように辞書ファイルを準備しておくと、教材の他の箇所で同じ単語を復習やヒントのために再度出力したい場合に便利です。
さらに、一度しっかりした辞書ファイルを作っておくと、それを利用して単語カードや小テストなどを簡単に作ることができます。
教科書改訂の度に、辞書ファイルに新しい単語をどんどん追加していった結果、私の使っている辞書ファイルには小学・中学で登場するほとんどすべての単語が登録されてしまいました^^
現在、新年度教材作成中ですが、大部分の英単語が既に登録されているので、新出単語のコーナーを作成するのは非常に楽です^^♪

【小ワザその2】解答のON・OFF

続いて「小ワザその2」解答のON・OFF機能についてご説明します!
「commands.tex」の中にこのように書かれています:
\newcounter{switch}
\newcommand{\ans}[1]{\ifnum\theswitch=1 #1\else\fi}
まず、解答のON・OFFを制御するカウンター「switch」を作成しています。
TeXには、「if文」などを使って処理を分ける機能もあります。
上で定義されている
\ans{内容…}
というコマンドは、もし「switch」の値が「1」なら「内容…」をそのまま表示して、もし「0」なら(実際には「1」以外の場合)なにもしない(「内容…」を表示しない)という処理を行います。
あとは原稿ファイルの方で、教師用のみに表示させたい部分を「\ans{}」の中に書いておけばOKです!
「本体」ファイルで「switch」の値を「1」にしてコンパイルすると「ans{}の内容…」を含むプリント(教師用)が出力されます。
また、「0」にしてコンパイルすると「ans{}」の部分で「何もしない」ので、「内容…」を含まないプリント(生徒用)が出力されます。
  • 「内容…」が消えることでレイアウトが崩れないような工夫は必要です。
サンプルのプリントだと、「赤字の和訳」の部分を「\ans{}」の中に書いています。
「switch」を「1」から「0」に切り替えると…
解答のON・OFFの画像

(画像をクリックすると拡大します)

このように「赤字の和訳」部分が消えて、生徒配布用のプリントが得られます。

この解答のON・OFF機能はもちろん英語以外の教材にも使えます。
当塾で作成している数学・理科の教材も同様の方法で解答の「あり・なし」版を同時生成しています!!

おわりに

以上、私が長年使っている「小ワザ」を2つご紹介しました!
TeXの本来の流儀からしたら邪道でダーティな方法かもしれませんが、便利なので今後も使っていくと思います^^;
教育の現場で教材作りに励んでいる先生方の参考になれば幸いです。

最後に、記事の中でも登場しましたが『美文書作成入門』という本をご紹介しておきます。TeXに関するオンラインマニュアルはかなり充実していますが、紙媒体のものを1冊手元に置いておくならこの本がオススメです!
私も、TeX初心者の頃からお世話になっていて、「第2版」「第4版」「第5版」「第6版」「第7版」が手元にあります。
今調べたら「第8版」が出ていることを知りました!
これはポチらねばっ!!:
SNSでシェア!
コメントを残す
お名前
メッセージ
コメント一覧 (2)
jogさん
2022-01-07 22:48:48
はじめまして。jogと申します。
LaTeXの記事を検索していて、たまたまたどり着くことができました。
英語の教材をLaTeXで作成していらっしゃることを知り、大変嬉しく感じています。
私の場合、解答なしで出力する時には文字色をWhiteにして消しています。
最近はサボって更新していませんが、よろしかったら下記のブログをご覧いただき、お気づきの点があればご教授ください。
http://jog.txt-nifty.com/blog/
大島学習塾さん
2022-01-08 12:48:33
jogさん、こんにちは。
コメントありがとうございます。
TeXで英語教材を作っている方がいらっしゃると聞いて私も嬉しいです^^

文字色をWhiteにする方法は良さそうですね、レイアウトの崩れに強そうです。こんど試してみますね!^^

ブログの方も拝見しました。
「TIPA」は私も単語カードを作ったりするときに使っています。
まだ隅々まで拝見したわけではありませんが、授業で使えそうなネタがあったら拝借させていただきます^^

今後とも当ブログをよろしくお願いします。