更新

解答欄作成スタイル (要 emath)

10年くらい前から利用している解答用紙を作成するときに,解答欄を表示するスタイルファイル
『 一定の幅(30mm)を持った箱を続けて表示する』という考えで作成したものです。

kaitouran.sty \newif\ifkotae
\def\renewcounter#1{%
\@ifundefined{c@#1}{%
\@latexerr{\string#1\space undefined}\@ehc}{}%
\@definecounter{#1} \@ifnextchar [{\@renewctr{#1}}{}}
\def\@renewctr#1[#2]{\@ifundefined{c@#2}{\@nocnterr}%
{\@addtoreset{#1}{#2}}}

\def\labelenumTi{{\sffamily(\arabic{enumTi})}}%
\renewcounter{enumTi}[enumi]

\define@key{kaitouran@}{width}{\def\Mwidth{#1}}
\define@key{kaitouran@}{color}{\def\Mcolor{#1}}
\define@key{kaitouran@}{mae}{\def\Mmae{#1}}
\define@key{kaitouran@}{ato}{\def\Mato{#1}}
\define@key{kaitouran@}{lsep}{\def\Mlsep{#1}}
\define@key{kaitouran@}{rsep}{\def\Mrsep{#1}}
\define@key{kaitouran@}{framethickness}{\def\Mthickness{#1}}
\define@key{kaitouran@}{framecolor}{\def\Mfcolor{#1}}

\def\mKotae{%
\def\Mwidth{30mm}%デフォルトの欄の幅
\def\Mcolor{red}%正解の色
\def\Mfcolor{black}%枠の色
\def\Mmae{\itemTi}%枠の左に表示される
\def\Mato{}%枠の右に表示される
\def\Mlsep{\the\fboxsep}%
\def\Mrsep{\the\fboxsep}%
\def\Mthickness{.4pt}%枠の太さ
\@ifnextchar[{\mKotae@}{\mKotae@[]}}%

\def\mKotae@[#1]#2{%
\setkeys{kaitouran@}{#1}%
\hspace{-\Mthickness}%
\EMfbox<framethickness=\Mthickness,lsep=\Mlsep,rsep=\Mrsep,framecolor=\Mfcolor>{%
\makebox[0pt][l]{\Mmae}%
\rule[-15pt]{0pt}{36pt}\makebox[\Mwidth][c]{%
\ifkotae%
\Large\bfseries\boldmath\textcolor{\Mcolor}{#2}%
\else%
\fi%
}%
\makebox[0pt][r]{\Mato}%
}%
}%


test.tex \documentclass[a4j,fleqn,dvipdfmx]{jarticle}

\usepackage{emathP}
\usepackage{kaitouran}
\parindent0zw

\begin{document}

\renewcounter{enumTi}[enumT]
\fboxsep2mm
\def\KAITOU{%
\resetcounter{enumT}
\resetcounter{enumTi}
\itemT~
\mKotae{あああ}
\mKotae{ああ}
\mKotae{ああああ}
\mKotae{ああああ}\\
\itemT~
\mKotae{ああああ}
\mKotae[mae={\itemTi~$x=$}]{20}
\mKotae[width=64mm]{ああああああああ}
\\\hspace{8pt}
\mKotae{あああ}
\mKotae[ato={通り}]{155}
\mKotae[width=64mm]{ああああああああ}
}

正解表示あり

\kotaetrue
\KAITOU

正解表示なし

\kotaefalse
\KAITOU


\end{document}