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} |