LaTeXを使って「空欄を埋める」問題を作ってみる

LaTeXを使って「空欄を埋める」問題を作ってみた。方針は以下の通り。

  • 正解の文字数に応じた大きさの解答欄(箱)にする

  • PDFに直接入力できるフォームにする

  • 印刷物に手書きで記入できる程度の空欄にする

  • マクロ名と使い方は \kuuran{正解の文字列} とする

  • 順序良く番号を付ける

使用例を示す。

\documentclass[a4paper,dvipdfmx]{jsarticle}
\usepackage{hyperref}
\hypersetup{
  colorlinks=false,
  pdflinkmargin=-1pt
}
\makeatletter
\newcounter{kuuran}[enumi]
\newcommand{\kuuran}[1]{%
  \refstepcounter{kuuran}
  \settowidth{\@tempdima}{#1}
  \settowidth{\@tempdimb}{#1}
  \def\DefaultHeightofText{1.3\normalbaselineskip}
  \advance\@tempdima by6zw
  \advance\@tempdimb by6zw
  \def\arraystretch{1.4}{\tabcolsep=0.6mm%
    \begin{tabular}{|cp{\@tempdima}|}\hline
      (\thekuuran) & \mbox{\bigstrut}\raisebox{-6pt}{\TextField[name=#1,width=\@tempdimb, bordercolor={1 1 1}, align=1]{}} \\\hline\end{tabular}}\,\,}
\makeatother
\begin{document}
枠組壁工法に関する以下の文章の空欄を適語で埋めなさい。\par
枠組壁工法は\kuuran{北米}で発展した木造住宅の建築工法で、云々
\end{document}

この記事が気に入ったらサポートをしてみませんか?