LaTeX2e
LaTeX2e と高校数学に関するブログ
12.09.2006
直角三角形

直角三角形を picture 環境で描画してみました。直角の記号(\Tyokkakukigou)や,角の内部に円弧を描き角の大きさを表示(\Kakukigou)させることができます。
\unitlength=8mm
\begin{picture}(5,5)
\Thicklines
\def\A{(0,0)}
\def\B{(4,3)}
\def\C{(4,0)}
\put(2,0){
\Put\A[w]{A}
\Put\B[n]{B}
\Put\C[e]{C}
\Hen_ko[0]\A\C{4}
\Hen_ko[0]\C\B{3}
\Drawline{\A\B\C\A}
\Tyokkakukigou\A\C\B
\Kakukigou\C\A\B<1.8>%{45\Deg}を入れると角度表示。<1>がデフォルト。1より大きくすると頂点から離れる。
}
\end{picture}
さいころ2個(6-6表)

さいころ2個の場合の数を考えるときによく使う表である。
\gyoudaka[5pt]{5pt}
\begin{Hyou}{|>{\gyousityuu}*{7}{C{1.4zw}|}}\hline
\sya[r]<\Hyoumidasi{{\scriptsize 大}}{{\scriptsize 小}}> &
{\scriptsize\saikoro{1}} & {\scriptsize\saikoro{2}} &
{\scriptsize\saikoro{3}} & {\scriptsize\saikoro{4}} &
{\scriptsize\saikoro{5}} & {\scriptsize\saikoro{6}}\\\hline
{\scriptsize \saikoro{1}} & (1,1) & (1,2) & (1,3) &
(1,4) & (1,5) & (1,6) \\\hline
{\scriptsize \saikoro{2}} & (2,1) & (2,2) & (2,3) &
(2,4) & (2,5) & (2,6) \\\hline
{\scriptsize \saikoro{3}} & (3,1) & (3,2) & (3,3) &
(3,4) & (3,5) & (3,6) \\\hline
{\scriptsize \saikoro{4}} & (4,1) & (4,2) & (4,3) &
(4,4) & (4,5) & (4,6) \\\hline
{\scriptsize \saikoro{5}} & (5,1) & (5,2) & (5,3) &
(5,4) & (5,5) & (5,6) \\\hline
{\scriptsize \saikoro{6}} & (6,1) & (6,2) & (6,3) &
(6,4) & (6,5) & (6,6) \\\hline
\end{Hyou}
2次関数のグラフ

2次関数のグラフは頂点周辺とそれ以外の部分では点の稠密度が違うようなので,頂点近辺とそれ以外の部分で分けてグラフを描画します。
xの範囲を指定する部分に注意してコードを書かなければならない。また,2次関数ではy=y1となるxの値は2つあり,小さい方をy,大きい方の値をYと表す。
\begin{zahyou}
[zikusensyu=\thicklines\arrowdrawline,arrowheadsize=2]
(-5,5)(-1,10)%(xの範囲)(yの範囲)
\Thicklines
\def\Fx{1,0,0}%2次関数の定義
\def\Gx{-1,4}%1次関数の定義
)\Gurafu\Fx[y]\ymax{-1}%2次関数yの最大値をとるxの値からx=-1までを描画
\Gurafu\Fx{-1}{1}%2次関数x=-1からx=1までを描画
\Gurafu\Fx{1}[Y]\ymax%2次関数x=1からyの最大値をとるxの値までを描画
\Gurafu\Gx\xmin\xmax%1次関数の描画
\GKouten\Fx\Gx\xi\xii%2次関数と1次関数の交点
\Kansuuti\Gx\xi\yi
\Kansuuti\Gx\xii\yii
\def\A{(\xi,\yi)}
\Put\A(-7pt,-2pt)[w]{A}
\def\B{(\xii,\yii)}
\Put\B(10pt,2pt)[e]{B}
\def\C{(0,4)}
\Put\C(8pt,3pt)[e]{C}
\end{zahyou}
直方体

emathで直方体を作ってみた。
zahyou環境が平面座標であるのに対して,Zahyou環境は空間座標である。
Zahyou環境はxの範囲,yの範囲,zの範囲を
(xの下限,xの上限)
(yの下限,yの上限)
(zの下限,zの上限)
の形で与える。
点は ¥def¥P{(1,2,3)} のように3次元ベクトルで与える。また,¥Drawlines などの座標平面で定義された多くのコマンドは頭に“iii”を付けることで定義される。
\Drawaxisfalse
\begin{Zahyou}(-1,5)(-1,5)(-1,10)
\def\O{(0,0,0)}
\def\A{(5,0,0)}
\def\C{(0,5,0)}
\def\D{(0,0,10)}
\def\E{(0,5,10)}
\def\G{(5,0,10)}
\def\F{(5,5,10)}
\iiiAddvec\A\C\B
\thicklines
\Kakutyuu{ABC}{O}{D}
\iiiDashline[50]{.15}{\G\C}
\iiiDrawlines{\G\B}
\iiiPut\O(-9pt,5pt)[w]{H}
\iiiPut\A(-7pt,0)[w]{E}
\iiiPut\C(7pt,0)[e]{G}
\iiiPut\D(-7pt,5pt)[w]{D}
\iiiPut\B(3pt,-7pt)[s]{F}
\iiiPut\E(7pt,5pt)[e]{C}
\iiiPut\G(-7pt,5pt)[w]{A}
\iiiPut\F(9pt,-5pt)[e]{B}
\end{Zahyou}
LaTeX2eの初等数学プリント作成マクロ emath
数式や図形,グラフのソースをいちから作るのは大変なので,私は数式作成にとても便利なマクロパッケージを使っています。
このマクロパッケージは emath といいます。このマクロパッケージをセットアップしておけば,中学,高校で使用する数式,図形,グラフが簡単に作れます。図形やグラフは正確なものを作れるので,非常に美しいできあがりです。
例えば,単位円上の動径も正確な角度で簡単に作れます。
ソースを下に示します。 注)“\”は“¥”と同じです。
\unitlength=4cm
\begin{zahyou}(-1.5,1.5)(-1.5,1.5)
\def\A{(1,0)}
\def\B{(-1,0)}
\def\C{(0,1)}
\def\D{(0,-1)}
\En\O{1}
\Candk\O{1}\O{30}\P\Q
\Candk\O{1}\O{45}\R\S
\Candk\O{1}\O{60}\T\U
\Candk\O{1}\O{120}\p\q
\Candk\O{1}\O{135}\r\s
\Candk\O{1}\O{150}\t\u
\Drawline{\O\Q}
\Drawline{\O\S}
\Drawline{\O\U}
\Drawline{\O\p}
\Drawline{\O\r}
\Drawline{\O\t}
\Drawline{\O\P}
\Drawline{\O\R}
\Drawline{\O\T}
\Drawline{\O\q}
\Drawline{\O\s}
\Drawline{\O\u}
\Hasen{\Q\t}
\Hasen{\S\r}
\Hasen{\U\p}
\Put\Q(5pt,4pt)[l]{30\Deg}
\Put\S(6pt,5pt)[l]{45\Deg}
\Put\U(3pt,8pt)[l]{60\Deg}
\Put\p[nw]{\framebox(0.25,0.15){ }\;}
\Put\r[w]{\framebox(0.25,0.15){ }\;\;\;}
\Put\t[w]{\framebox(0.25,0.15){ }\;\;}
\Put\P[w]{\framebox(0.25,0.15){ }\;\;}
\Put\R[sw]{\framebox(0.25,0.15){ }\;\;\;}
\Put\T(5pt,-15pt)[r]{\framebox(0.25,0.15){ }}
\Put\q(-5pt,-15pt)[l]{\framebox(0.25,0.15){ }}
\Put\s[se]{\;\;\framebox(0.25,0.15){ }}
\Put\u[e]{\;\;\framebox(0.25,0.15){ }}
\Put\A[se]{1}
\Put\B[sw]{-1}
\Put\C[ne]{1}
\Put\D[se]{-1}
\Suisen\Q\O\A\H
\Suisen\S\O\A\I
\Suisen\U\O\A\J
\Suisen\p\O\B\K
\Suisen\r\O\B\L
\Suisen\t\O\B\M
\Suisen\Q\O\C\1
\Suisen\S\O\C\2
\Suisen\U\O\C\3
\Suisen\P\C\D\4
\Suisen\R\C\D\5
\Suisen\T\C\D\6
\Hasen{\Q\u}
\Hasen{\S\s}
\Hasen{\U\q}
\Hasen{\p\T}
\Hasen{\r\R}
\Hasen{\t\P}
\Hasen{\P\u}
\Hasen{\R\s}
\Hasen{\T\q}
\def\d{(-0.8,.95)}
\def\e{(-1.1,0.8)}
\def\f{(-1.15,0.6)}
\def\dd{(-1.2,1)}
\def\gg{(1.4,0.3)}
\def\hh{(1.2,0.7)}
\def\ii{(1.2,-0.3)}
\PutStr\gg[e]{\framebox(0.3,0.3){ }}to\H
\PutStr\hh[e]{\framebox(0.3,0.3){ }}to\I
\PutStr\ii[e]{\framebox(0.3,0.3){ }}to\J
\def\jj{(-1.4,0.17)}
\def\kk{(-1.3,0.5)}
\def\ll{(-1.3,-0.3)}
\PutStr\jj[w]{\framebox(0.3,0.3){ }}to\M
\PutStr\kk[w]{\framebox(0.3,0.3){ }}to\L
\PutStr\ll[w]{\framebox(0.3,0.3){ }}to\K
\def\mm{(0.6,1.3)}
\def\nn{(0.2,1.2)}
\def\oo{(-0.3,1.2)}
\def\pp{(-0.5,-1.3)}
\def\qq{(-0.2,-1.09)}
\def\rr{(0.3,-1.1)}
\PutStr\mm[e]{\framebox(0.3,0.3){ }}to\1
\PutStr\nn[n]{\framebox(0.3,0.3){ }}to\2
\PutStr\oo[n]{\framebox(0.3,0.3){ }}to\3
\PutStr\pp[w]{\framebox(0.3,0.3){ }}to\4
\PutStr\qq[s]{\framebox(0.3,0.3){ }}to\5
\PutStr\rr[s]{\framebox(0.3,0.3){ }}to\6
\kuromaru{\Q;\S;\U;\p;\r;\t;\P;\R;\T;\q;\s;\u}
\end{zahyou}

LaTeX2e の便利な使い方
私のLaTeX2e環境は結構快適です。
まず,TeXのソースを書くときに使うソフトは秀丸エディタ。もう10年近く愛用しているエディタです。テキストを入力するならWindowsに付属している「メモ帳」でもいいのですが,快適な入力を考えるなら秀丸エディタがおすすめです。
TeXのソースができあがったら,「TeXにかける」(コンパイルする)わけですが,いちいちDOS窓立ち上げてコマンドラインをたたくのは面倒です。秀丸のマクロからTeXのソースをコンパイルできるようにします。秀丸用のマクロとして有名なのは「飛鳥」です。私はこのマクロをキーボードの[F1]にキー割り当てしています。
秀丸でソースを書き上げたら,[F1]押してコンパイル(TeXにかける)。DOS窓が自動で立ち上がり数秒でコンパイル終了。dviファイル(*.dvi)が生成されるのでそれを表示させるソフト「dviout for Windows」を立ち上げます。dviout も秀丸のマクロ(飛鳥)から呼び出すことができるのでとっても快適です。これも適当なキー(Ctrl+T など)に割り付けておけばいいですね。
dviout に表示された文書に修正すべき箇所があれば,再びソースを手直して,また[F1]を押してコンパイルし,dviout をアクティブにすると即,更新される。ソースを修正したら[F1]→[Alt]+[Tab](dvioutをアクティブにする)の簡単なキー操作でTeXの文書を手際よく修正できる。
[F1]→[Alt]+[Tab]という簡単なキー操作の繰り返しが何と言っても LaTeX2e の便利な使い方のポイントです。
ちょっと難しそうに感じるけど
ここでは主に数式が多い文書を作成する場合を考えています。もちろん図形やグラフが入ってもかまいません。つまり理数系の文書を扱うことを前提にして話を進めます。
LaTex2eのセットアップは「LaTeX2e美文書作成入門」(技術評論社・奥村晴彦著)に付属しているCD-ROMを利用すれば簡単です。その他 LaTex2e に関する情報は TeX Wiki が大変参考になります。
さて,セットアップが完了したら,次はこのソフトの使い方ですが,最初は難しいと感じるかもしれません。それはこれまでのワープロソフトと見た目も使い方も根本的に違うからです。でも,心配はいりません。次第に慣れるし,ちょっとしたコツが分かればもう元のワープロ(Wordや一太郎)には戻れなくなるでしょう。難しいと感じるのはまずその外見(見た目)でしょう。
LaTeX2e は HTML と同じようにマークアップ言語です。エディタでテキスト文書を作り,それをコンパイルして(TeXにかけて)生成して得られたファイルが最終的なもの,つまり完成品です。あとはそれをこれまでのワープロソフトと同じように印刷すれば美しい文書が得られるわけです。
エディタでテキスト文書を作るとこんな感じになります。これを見ただけで最初はとんでもない難しいプログラムを書いているように感じるかもしれません。
¥documentclass{jarticle}しかし,難しく見えるコードもちょっとしたコツが分かってしまえば何とかなるものです。高校の数学で出てくる程度の数式であれば,覚えるTeXのコマンドは決して多くはないし,自分が必要としている書式のパターンさえ覚えてしまえばいいわけですから,そこまで少し努力すればサクサク使えるようになります。
¥begin{document}
¥framebox[.7cm]{¥textgt{2}}¥quad 次の三角比の値を単位円と三角比の表を利用して求めよ。¥hspace{2cm}{¥tiny <各2点>}
¥begin{edaenumerate}[n]
¥item $¥sin132¥Deg$
¥item $¥cos174¥Deg$
¥item $¥tan147¥Deg$
¥item $¥sin270¥Deg$
¥item $¥cos400¥Deg$
¥item $¥tan630¥Deg$
¥end{edaenumerate}
¥end{document}
上のソースをコンパイル(これを「TeXにかける」という)するとこんな感じになります。

数式を作るなら絶対LaTeX
これまでMicrosoftのWordというソフトを使っていました。その前はJustsystemの一太郎です。Wordには「数式エディタ」,一太郎には「数式作成ツール」というソフトが付属しています。これらの付属ソフトで作った数式をWordや一太郎の本文に貼り付けて長い間,数学の試験問題などを作成してきました。
しかし,できあがったものがとにかく“美しくない”し,手間がかかる。サクッと問題を作り,印刷してどんどんプリントを配布するには Word+数式エディタ では限界を感じていました。特に類似問題を追加で作成するときの手間はストレスを感じます。今は改善されたのかも知れませんが,数式エディタはよくフリーズや強制終了してしまい,仕事のやる気を一気になくしてしまうこともありました。
そんなときに数式を作るなら絶対TeXがいい!ということを知り,使い始めたところ,とてもきれいな数式が作れるのでびっくりしました。動作が軽快である点も気に入りました。
TeX(てふ)をつくった人
TeX(てふ)を作ったのはアメリカの数学者ドナルド・クヌース(Donald Ervin Knuth)氏で,1974年にチューリング賞を受賞しています。なぜ数学者の彼が自ら組版ソフトを作ったかというと,自分の著作の組版を当時コンピュータで行ったところ,複雑な数式の印刷がうまくできなかったようです。それで自分で満足できる高品質な組版ができるシステムを自ら作ってしまったのです。
この組版システムをクヌースはTeXと名づけフリーソフトとして公開しました。TeXは広く研究者の間で利用され,論文をTeXを使って書くことが普及しました。TeXは複雑な数式の表現が得意です。また,数式を表現するときだけでなく,論文のような構成がしっかりしている文書を作るときも力を発揮します。もちろん,難しい学術論文じゃなく,簡単なA4の文書1枚を作るときや,数学や理科の試験問題を作るようなときにも大変役に立つソフトです。縦書き文書(古文・漢文)も軽くこなせるソフトですが,どちらかというと理系の文書作成の方が威力を遺憾なく発揮すると私は思います。