センター試験のようなカタカナ四角マクロについて

名前: 岩熊哲夫
日時: 2015-01-08 16:10:06
IPアドレス: 130.34.32.*

岩熊@東北大です。 支援希望のためここを覗いてみたら,たまたまセンター入試関連の 質疑応答がありました。時期的なものでしょうか・・・さて・・・ 学内事情のため,センター入試のような形式の問題作成作業が 必要になりました。僕自身はサポート役なんですが・・・ で,ご担当の先生が pLaTeX 作成してくださったのに対し,協力者 みんなで改善作業を始めたところ,カタカナ四角の回答欄を あるところに一つ追加しなければならなくなりました。そうなると, それ以降のカタカナ四角欄が一つずつ全部ずれてしまいますので, 間違う可能性が非常に高くなります。しかも面倒・・・ そこで,サポート役として,下のようなマクロをやっつけ仕事で 作成しました。これで,カタカナ四角の追加・削除・相互参照が 楽にできるようになりました。下の例は,昨年度の数学の問題その ものを用いた例です。著作権関係は大丈夫だろうなということで・・・ ところが,txfonts を用いてみたところ \sqrt の中で引数を4回 実行するらしく,カウンタがずれてしまいます。苦肉の策だけ は,以下のファイルでしてありますが,みっともない限りです。 センター入試そのものは TeX 化されないという書き込みが, この Q and A の以前の記事にありましたので,こういったマクロ を作っておられる方はおられないとは思いますが,何かいい アイデアがあれば,ご示唆いただけますと幸いです。ただ, 現状のご担当の先生は txfonts を用いないため問題は生じて いません。 本年もよろしくお願いいたします。 以下は一応,pLaTeX, JLaTeX 両方で通ります・・・ \documentclass[fleqn]{jarticle} % % txfonts ではないときは下の一行を定義 % \def\AdjustSqrt{} % \usepackage{amsmath}% amsmath のときも上の一行を定義 % % txfonts のときは下の二行を定義 \usepackage{txfonts} \def\AdjustSqrt{\global\advance\kAnAc by -3} % % 文中などで display style の分数を使う場合 % always display style fraction \def\dfrac#1#2{\displaystyle{\frac{#1}{#2}}} % % 丸に入った数字 % ENCIRCLED numerals by Hideki ISOZAKI \def\MARU#1{{\ooalign {\hfill$\scriptstyle#1$\hfill\crcr$\bigcirc$}}} % % カタカナ箱を順に出すマクロ \global\newcount\kAnAc \def\ClearKana{\kAnAc=0} \ClearKana \makeatletter \def\Kana{\@ifnextchar [{\K@N@@}{\K@N@}} \def\K@N@{% \global\advance\kAnAc\@ne% \fboxrule=1.0pt\,\mbox{\fbox{~% \ifcase\kAnAc ×\or ア\or イ\or ウ\or エ\or オ\or% カ\or キ\or ク\or ケ\or コ\or サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\or マ\or ミ\or ム\or メ\or モ\or ヤ\or ユ\or ヨ\or ラ\or リ\or ル\or レ\or ロ\or ワ\or ヲ\or ン\or ×\fi% 1=ア 46=ン ~}}\,\fboxrule=0.4pt% } \def\K@N@@[#1]{% \batchmode% エラーを隠すために・・・ \,\mbox{\fbox{~% \ifcase\ref{#1} ×\or ア\or イ\or ウ\or エ\or オ\or% カ\or キ\or ク\or ケ\or コ\or サ\or シ\or ス\or セ\or ソ\or タ\or チ\or ツ\or テ\or ト\or ナ\or ニ\or ヌ\or ネ\or ノ\or ハ\or ヒ\or フ\or ヘ\or ホ\or マ\or ミ\or ム\or メ\or モ\or ヤ\or ユ\or ヨ\or ラ\or リ\or ル\or レ\or ロ\or ワ\or ヲ\or ン\or ×\fi% 1=ア 46=ン ~}\,\errorstopmode}% } \def\Klabel#1{\@bsphack \protected@write\@auxout{}% {\string\newlabel{#1}{{\the\kAnAc}{\thepage}}}% \@esphack} \makeatother % カタカナ箱マクロはここまで % \begin{document} \begin{center} \large\bf センター試験のような問題を作る場合 \end{center} \begin{itemize} \item \verb+\Kana+\,というのを使うと,\Kana から 始まって順に\Kana, \Kana\Klabel{u} となります。 カタカナのカウンタを使う度に増やしています。 センター試験に合わせて線を太くしました。 \item もし,例えば,あるカタカナ 四角に対して\,\verb+\Kana\Klabel{q1-1}+\,のようにしてカナの ラベルを直後の\,\verb+\Klabel+\,で 定義しておくと,それと同じカナを\,\verb+\Kana[q1-1]+\,で コピーできます。このときカタカナのカウンタは進みません。 また,センター試験と同様,線の太さは\Kana[u]のように細くなります。 \ClearKana \item 途中でまた\Kana から始めたい場合には\,\verb+\ClearKana+\,を 実行します。 \item マクロがいい加減なので,最初のコンパイルでのエラーを 隠してあります。二度目のコンパイルからは大丈夫です。 \item '{\tt txfonts}'をオプションとして用いる場合,\verb+\sqrt+\,の 引数にカナが入ると,\verb+\Kana+\,を4回実行してしまうようです。 そのため,平方根の中にカナを入れる場合は \begin{verbatim} \sqrt{\Kana}\AdjustSqrt \end{verbatim} のように,平方根実行直後にカウンタを3だけ減らすマクロを実行してください。 面倒ですが,他に手が無い。展開して定義? \end{itemize} \ClearKana % センター試験の番号の振り方 \def\labelenumi{[\theenumi]} \def\labelenumii{(\arabic{enumii})} \noindent {\bf 第1問} (配点 25) \begin{enumerate} % \item $a=\dfrac{1+\sqrt{3}}{1+\sqrt{2}}$, $b=\dfrac{1-\sqrt{3}}{1-\sqrt{2}}$とおく。 % \begin{enumerate} \item このとき \begin{eqnarray} && ab=\Kana\Klabel{q1:ab} \label{eq:1} \\ && a+b= \Kana\left( \Kana+ \sqrt{\Kana}\AdjustSqrt \right) \label{eq:2} \\ && a^2+b^2=\Kana\left(\Kana- \sqrt{\Kana}\AdjustSqrt \right) \label{eq:3} \end{eqnarray} である。 \item $ab=\Kana[q1:ab]$と$a^2+b^2 +4\left(a+b\right)=\Kana$から,$a$は \begin{equation} a^4 + \Kana \, a^3 - \Kana \, a^2 + \Kana \, a + \Kana = 0 \label{eq:4} \end{equation} を満たすことがわかる。式番号の引用のチェック:式(\ref{eq:1}) 式(\ref{eq:2})式(\ref{eq:3})式(\ref{eq:4})。 \end{enumerate} % \item 下の\Kana[q2:ta],\Kana[q2:te], \Kana[q2:ne],\Kana[q2:no],\Kana[q2:hi] には,次の\MARU{0}〜\MARU{3}のうちから当てはまるものを 一つずつ選べ。ただし,同じものを繰り返し選んでもよい。 \begin{displaymath} \MARU{0}\quad > \qquad\qquad \MARU{1}\quad < \qquad\qquad \MARU{2}\quad \ge \qquad\qquad \MARU{3}\quad \le \end{displaymath} $a$を定数とし,連立不等式 \begin{eqnarray} x-6a & \ge & -1 \label{ineq:1} \\ \left|x+a-1\right| & < & 6 \label{ineq:2} \end{eqnarray} を考える。 % \begin{enumerate} \item $x=1$が不等式(\ref{ineq:1})を満たすような$a$の値の範囲を 表す不等式は \begin{displaymath} a \, \Kana\Klabel{q2:ta} \, \dfrac{\Kana}{\Kana} \mbox{である。} \end{displaymath} \item $x=2$が不等式(\ref{ineq:1})を満たさないような$a$の値の 範囲を表す不等式は \begin{displaymath} a \, \Kana\Klabel{q2:te} \, \dfrac{\Kana}{\Kana} \mbox{である。} \end{displaymath} \item $a=0$のとき,連立不等式(\ref{ineq:1}), (\ref{ineq:2})の解は \begin{displaymath} \Kana \, \Kana\Klabel{q2:ne} \, x \, \Kana\Klabel{q2:no} \, \Kana \end{displaymath} である。 \item 不等式(\ref{ineq:2})の解と,連立不等式(\ref{ineq:1}), (\ref{ineq:2})の 解が一致するような$a$の値の範囲を表す不等式は \begin{displaymath} a \, \Kana\Klabel{q2:hi} \, \dfrac{\Kana}{\Kana} \mbox{である。} \end{displaymath} \end{enumerate} % \end{enumerate} % \ClearKana % アから始められるように・・・ \noindent{\bf 第2問} (配点 25) \begin{enumerate} \item また\Kana から始まります。 \end{enumerate} \clearpage \ClearKana \begin{center} \large\bf 回答 \end{center} \noindent{\bf 第1問} (配点 25) \Kana: \MARU{1}, \Kana: \MARU{3}, \Kana: \MARU{5}, \Kana: \MARU{7}, \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)