数学の問題を作る

TeXで実際に文書を作ります。図やグラフはKETCindyを用います。

まず,ひな形ファイルをコピーして,適当に名前を変えましょう。

\begin{document} と \end{document} の間に本文を書きます。

バックスラッシュ \ は,Windowsでは¥にします。

-------------------------------------------------------------------------

\documentclass[uplatex]{jsarticle}

\usepackage{ketpic}

\usepackage{amsmath,newtxmath}

\usepackage{graphicx,color}

\usepackage{wrapfig}

\usepackage{setspace}

\setmargin{20}{20}{20}{20}

\pagestyle{empty}

\begin{document}

{\large 小テスト}

\begin{flushright} HRNO 氏名 \end{flushright}

【1】2次関数 $f(x)=2x^2-4x+3$ のグラフと直線 $y=x+1$ について,次の問に答えなさい。\\

(1) $f(x)$のグラフの頂点の座標を求めなさい。\\

(2) $f(x)$のグラフと直線$y=x+1$ を描き,交点の座標を求めて書き入れなさい。\\

\vspace{4cm}

\\

【2】AB=5,BC=7,CA=8 の△ABCがある。\\

(1) Aの大きさを求めよ。\\

(2) △ABCの面積を求めよ

\end{document}

-------------------------------------------------------------------------

できあがりは次のようになります。(実際にできるA4サイズのPDFの一部です。余白を削って表示しています。)

本文に書いた内容を説明しましょう。

{\large 小テスト}

大きめのフォントで「小テスト」を書きます。 \large はフォントサイズ指定です。

\begin{flushright} HRNO 氏名 \end{flushright}

「HRNO 氏名 」を右寄せで書きます。半角のスペースは無視されてしまいますので,ここのスペースは全角のスペースです。「氏名」のあとにも必要なだけ全角スペースを入れています。

【1】2次関数 $f(x)=2x^2-4x+3$ のグラフと直線 $y=x+1$ について,次の問に答えなさい。\\

$で挟んだ部分は数式です。 ^2 はスーパースクリプトになります。数式は MS-WORD の数式ツールで書くより簡単で,しかもきれいにできます。

末尾の \\ は改行の印(バックスラッシュ2つ)です。

TeXでは,ソース文書上で改行しても,PDFに書き出したときに改行されるとは限りません。したがって,明確に改行の指定をするのですが,このほかにもいくつかの方法があります。詳しくは Tips のページをごらんください。

\vspace{4cm}

4cmだけ行を空けます。

数学の問題プリントでは,解答スペースが必要になるでしょう。ここでは,\vspace{4cm} で4cmの行間をあけていますが,全角スペースと改行印を使って

\\

\\

\\

と,必要なだけ空行を入れることもできます。この方がどのくらいの行をあけたかが分かりやすいかもしれません。ワープロ的ですね。自分だけで使う分にはどちらでもよいでしょう。お好みで。

【2】の前の \\

全角スペースと改行の印です。これを書かないと,【2】が字下げされてしまいます。

図入りの解答例を作る

問題は文章だけなので簡単ですね。テスト後に,図入りの解答例を渡すことを考えましょう。【2】の三角形はまだよいとして手書きのグラフはなかなかきれいに描けません。そこで,KETCindyを使います。

2次関数のグラフと直線,交点の座標を描く

KETCindyのひな形ファイルを開き,スクリプトエディタの Drawスロットに次のスクリプトを書きます。図はスクリプトを実行したCinderellaの描画面です。

--------------------------------------------------

Fhead="fig";

Ketinit();

plotdata("1","2*x^2-4*x+3","x");

plotdata("2","x+1","x");

Letter([[-1.5,3/2],"e2","$\left(\frac{1}{2},\frac{3}{2}\right)$",[2,3],"e2","(2,3)",[1,1],"s","(1,1)",[0,3],"w2","3"]);Setax(["a"]);

Addax(1);

Windispg();

Setunitlen("7mm");

--------------------------------------------------

スクリプトの意味は次の通りです。

plotdata() でグラフを描きます。"1","2" はグラフの番号,その後が式と変数の指定です。かけ算の*を忘れないようにしましょう。

Letter(・・・) で文字を表示します。座標,"微小位置","表示文字" がワンセットです。座標と微小位置を調整して位置を変えることができます。

微小位置の w ,e は位置を東西南北と見なして 西(w) , 東(e) です。

$$で挟まれた部分は数式で,\left( は大きい左括弧,\frac{}{} は分数,\right) は大きい右括弧です。

Cinderellaの画面では,座標軸と方眼が背景として表示されています。TeXの文書では,Addax(1)でちゃんとした座標軸が表示され方眼は表示されません。Setax(["a"]); は,座標軸に矢じりをつけます。

Setunitlen("7mm"); で書き出される大きさが決まります。文書に貼り付けてから具合が悪ければ直しましょう。

書き出す範囲は,SWとNEを対角とする白い矩形の内部です。SWとNEはマウスでドラッグすることができます。

Scilab経由でTeXのファイルを作って貼り込む

図ができたなら,スクリプトの最後に

WritetoSci(1);

を書きますと,Scilab用のファイル fig.sce がKETCindyの作業フォルダにできます。これをScilabで読み込み,「実行する」ボタンを押しますと,fig.tex ができます。

ファイル名を kaitou1.tex に変えて,\input{kaitou} でTeX文書に貼り込みます。

このとき,

\begin{wrapfigure}{r}{60mm}

\input{kaitou1}

\end{wrap figure}

とすると,右60mm のエリアに図が貼り込まれ,文章は図を回り込むようになります。

-------------------------------------------------------------------------

{\large 小テスト 解答例}

\\

【1】2次関数 $f(x)=2x^2-4x+3$ のグラフと直線 $y=x+1$ について,次の問に答えなさい。\\

(1) $f(x)$のグラフの頂点の座標を求めなさい。\\

(2) $f(x)$のグラフと直線$y=x+1$ を描き,交点の座標を求めて書き入れなさい。\\

\\

(1) $f(x)=2x^2-4x+3=2(x-1)^2+1$ であるから,頂点の座標は $(1,1)$\\

\begin{wrapfigure}{r}{60mm}

\input{kaitou1}

\end{wrapfigure}

(2) 連立方程式 $y=2x^2-4x+3,y=x+1$ より $y$ を消去すると\\

$2x^2-4x+3=x+1$\\

整理すると\\

$2x^2-5x+2=0$\\

左辺を因数分解すると\\

$(2x-1)(x-2)=0$\\

よって,$x=\dfrac{1}{2},2$\\

したがって,交点の座標は $\left( \dfrac{1}{2},\dfrac{3}{2} \right)$と$(2,3)$\\

図は右の通り\\

-------------------------------------------------------------------------

できたPDFは次の通りです。

次に【2】です。

こちらは,Cinderellaの作図機能を援用して図を作ります。

3つの円は,「固定した半径の円を描く」ツールを使って描きます。

まず,AB=5なので,半径を2.5とします。(5にすると大きな図になってしまいます) 中心は適当な場所でよいでしょう。中心がAになります。

次に,CA=8なので,半径を4をして,Aを中心に同心円を描きます。

次に,BC=7なので,はじめの半径2.5の円周上の適当なところを中心に,半径3.5の円を描きます。

半径3.5の円と半径4の交点を求めます。CとDの2つができますが,上図の場合は,DをCと考えればよいでしょう。

動かすモードにして,点Bを動かし,適当な位置にします。線分を描く必要はありません。

次にスクリプトです。

-------------------------------------------------------------------------

Fhead="fig";

Ketinit();

Listplot([A,B,D,A]);

Letter([A,"n","A",B,"w","B",D,"e","C",(A+B)/2,"w","5",(B+D)/2,"s2","7",(A+D)/2,"ne2","8"]);

Addax(0);

Windispg();

Setunitlen("10mm");

WritetoSci(1);

-------------------------------------------------------------------------

これで,画面上の3点A,B,Dが線分で結ばれ,頂点の名前と辺の長さが表示されます。

できたファイルを先ほどと同じようにしてScilabで処理します。

これを(2) の解答の中に読み込みます。

-------------------------------------------------------------------------

【2】AB=5,BC=7,CA=8 の△ABCがある。\\

(1) Aの大きさを求めよ。\\

(2) △ABCの面積を求めよ\\

\input{kaitou2}

\begin{spacing}{1.5}

(1) 余弦定理により\\

$\cos A=\dfrac{5^2+8^2-7^2}{2 \cdot 5 \cdot 8}=\dfrac{1}{2}$\\

よって,$A=60^\circ$\\

(2) 求める面積は $\dfrac{1}{2} \cdot 5 \cdot 8\sin 60^\circ=10\sqrt{3}$

\end{spacing}

-------------------------------------------------------------------------

ここで,\begin{spacing}{1.5} \end{spacing} は,行間を1.5行分にするためのものです。

分数の式が入っているので,そのままでは行が詰まった感じになります。

でき上がりは次のようになります。

< 戻る >