adbird(広告鳥) 備忘録

試験問題用 LaTeX テンプレート(文末脚注機能を利用した解答・解説の別紙出力)

最終更新

  • 2022年6月11日:「\解説{}」の設定を追加。

特徴・諸注意

  • 文末脚注機能を利用して、解答解説を最後のページに出力している。
    • 本文中の脚注番号を白文字にして見えないようにしている。
  • メリット問題文のすぐ後に、解答解説が書ける。問題番号と解答解説の番号のズレを気にせずに、簡単に問題を並び替えることが可能。
  • デメリット:本来の文末脚注(\endnote)機能は使えなくなる。まあ、試験問題等で文末脚注を使うことはないだろうから、まず問題ないだろう。
  • breakfbox パッケージ」の3つのスタイルファイル(uline--.sty breakfbox.sty myuline--.sty)を使用する。ここから3つのスタイルファイルをダウンロードして、LaTeX スタイルファイルの保存先 - adbird(広告鳥) 備忘録を参考に、3つのスタイルファイルを適切に配置すること(手っ取り早いのはコンパイルするTeXファイルと同じディレクトリ内に配置する方法)。

設定と書き方

プリアンブルで以下のような設定をする。

%「\答{}」コマンドを設定。下記の文末脚注(\endnote)機能を利用しているので、本来の文末脚注機能は使えない。脚注(\footnote)機能は別に使える。
\newcommand{\答}[1]{{\color{white} \endnote{#1} \vspace{-1\zh}}}

%%%%% 文末脚注(解答・解説部分)
%%%%% 本文の終わりに「\theendnotes」を置くこと。
\usepackage[yoko]{endnotesj}
\renewcommand{\notesname}{解答・解説}
\def\enotesize{\normalsize}% フォントサイズ
%% endnotesj パッケージのカスタム
\makeatletter
\def\endnj@iii@yoko@enoteformat#1{%
  \parindent 1em\noindent
  \@hangfrom{\mbox{}\relax\hspace{0.1\endnj@zw}%「(」をつけない
  %\@hangfrom{\mbox{}\char\jis"214A\relax\hspace{0.1\endnj@zw}% endnotesjの元の設定
    \hbox{\fbox{\@theenmark}}% 数字を枠で囲む
    %\hbox{\@theenmark}% 元の設定
    \hspace{0.1\endnj@zw}\hspace{1\zw}\relax\mbox{}%「)」をつけない。番号と文の間に1文字分空ける。
    %\hspace{0.1\endnj@zw}\char\jis"214B\relax\mbox{}% endnotesjの元の設定
  }#1%
}
\makeatother

文書末(\end{document})に以下を書いておく。

%%%%%%%%%%%%% 解答・解説部分 %%%%%%%%%%%%%%
\newpage
\begingroup
\parskip 0.5\zh % 段落間の行間
\theendnotes
\endgroup

本文中では大問ごとに、問題文の後に以下のように書く。

\答{正答を書く。}

コマンド設定時の名前は自分の好きなものを

コマンド名の設定は別に \答{} コマンドじゃなくてもいい。

プリアンブルの設定の \newcommand{\答}・・・・・・ の箇所を、\newcommand{\answer}・・・・・・ にして、本文中で \answer{正答を書く。} でもいい。
ただし、すでに存在するコマンド名と被らないようにする。

試験問題用 LaTeX(LuaLaTeX) テンプレート

\documentclass[a4paper,10ptj]{ltjsarticle} 
%%% LuaTEX-ja パッケージ使用時には長さの単位として「zw」「zh」は使えない。「\zw」「\zh」とすること。

%%%MS明朝・MSゴシックの場合
%\usepackage[ms]{luatexja-preset}

%%%ページ余白
\usepackage[top=20truemm,bottom=20truemm,left=20truemm,right=20truemm]{geometry} 

% 本文の左余白:1文字分
\setlength{\leftskip}{1\zw}

%%%行間
\renewcommand{\baselinestretch}{0.9}

%%%%% 見出し設定
\usepackage{titlesec} 
\titleformat{\section}% command
    [hang]% (hang/block/display/runin など)
    {\rmfamily\normalsize}% ラベルのフォント書式・フォントサイズ
    %{\thesection.}% ラベル。数字のあとにピリオドの場合「\thesection.」。
    {\fbox{\thesection}}% ラベル。数字を四角で囲む。
    {0.5em}% 番号と見出しの間のスペース
    {}% 見出し直前
    []% 見出し直後
\titlespacing{\section}
    {0pt}% 左余白
    {1\zh}% 上余白
    {0.5\zh}% 下余白
%%%%%

%%%%%ルビ・下線・圏点など
\usepackage{pxrubrica} %ルビ
\usepackage[usetype1]{uline--} %下線等
\usepackage[usetype1]{myuline--} %下線等(uline--.styをTeXLive2020で正しく動くように改変したものらしい)
\usepackage{breakfbox} %囲み文字(2021/02/17 v0.2]はRequirePackage[usetype1]{myuline--})
%%%%%

%\pagestyle{empty}

%%% 画像設定
\usepackage{wrapfig} %画像回り込み
\usepackage{graphicx} %
%%%

\usepackage{color}% 色

%「h」で配置された図表とテキストとの間隔
\setlength{\intextsep}{1\zh}

%% 表
\usepackage{tabularx}    % 表用&カラムサイズ指定
%% 表でセルの幅を指定しつつ、左寄せ・中央寄せ・右寄せ %%
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}

%%% 小問のインデント。%%%
% 本文では
% \問{(1)問題文~。}
% と書く。
\newcommand{\問}[1]{\noindent\hangindent=1\zw #1}

%%% 選択肢のインデント。%%%
% 本文では
% \選択肢{ア.問題文~。}
\newcommand{\選択肢}[1]{\hangindent=2\zw #1 \par}

%「\答{}」コマンドを設定。下記の文末脚注(\endnote)機能を利用しているので、本来の文末脚注機能は使えない。脚注(\footnote)機能は別に使える。
\newcommand{\答}[1]{{\color{white} \endnote{#1} \vspace{-1\zh}}}

%「\解説{}」コマンドを設定。
% 本文では、上記「\答{}」コマンドの中に以下のような感じで
%   \答{○○
%   \解説{◇◇}}
%と書く。
\newcommand{\解説}[1]{\par{\setlength{\leftskip}{3\zw}\noindent #1 \par}}

%%%%% 文末脚注(解答・解説部分)
%%%%% 本文の終わりに「\theendnotes」を置くこと。
\usepackage[yoko]{endnotesj}
\renewcommand{\notesname}{解答・解説}
\def\enotesize{\normalsize}% フォントサイズ
%% endnotesj パッケージのカスタム
\makeatletter
\def\endnj@iii@yoko@enoteformat#1{%
  \parindent 1em\noindent
  \@hangfrom{\mbox{}\relax\hspace{0.1\endnj@zw}%「(」をつけない
  %\@hangfrom{\mbox{}\char\jis"214A\relax\hspace{0.1\endnj@zw}% endnotesjの元の設定
    \hbox{\fbox{\@theenmark}}% 数字を枠で囲む
    %\hbox{\@theenmark}% 元の設定
    \hspace{0.1\endnj@zw}\hspace{1\zw}\relax\mbox{}%「)」をつけない。番号と文の間に1文字分空ける。
    %\hspace{0.1\endnj@zw}\char\jis"214B\relax\mbox{}% endnotesjの元の設定
  }#1%
}
\makeatother
%%%%% 文末脚注設定ここまで。



%%%%%%%%%%%%%%%%% 本文ここから %%%%%%%%%%%%%%%%%%
\begin{document}


\noindent\textgt{練習問題}

\section{次の文章を読み、後の問いに答えよ。}

吾輩は( A )である。名前はまだ無い。

どこで生れたかとんと見当がつかぬ。何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。吾輩はここで始めて人間というものを見た。しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。この書生というのは時々我々を捕えて煮て食うという話である。しかしその当時は何という考もなかったから別段恐しいとも思わなかった。ただ彼の掌に載せられてスーと持ち上げられた時何だかフワフワした感じがあったばかりである。掌の上で少し落ちついて書生の顔を見たのがいわゆる人間というものの見始であろう。

\vspace{.5\zh}% 0.5文字分空ける

\問{(1)( A )に入る語句を書け。}

\問{(2)この文章を書いたのは誰か。次の1〜5の中から、一つ選べ。}

\begin{enumerate}
    \item 太宰治
    \item 夏目漱石
    \item 坂口安吾
    \item 芥川龍之介
    \item 志賀直哉
\end{enumerate}


\答{(1)猫 (2)2
\解説{解説を書いていく。\newline
解説を書いていく。}
}




\section{次の文章を読み、後の問に答えよ。}

農村の美徳は耐乏、忍苦の精神だという。乏しきに耐える精神などがなんで美徳であるものか。必要は発明の母と言う。乏しきに耐えず、不便に耐え得ず、必要を求めるところに発明が起り、文化が起り、進歩というものが行われてくるのである。日本の兵隊は耐乏の兵隊で、便利の機械は渇望されず、肉体の酷使耐乏が謳歌せられて、兵器は発達せず、根柢的に作戦の基礎が欠けてしまって、今日の無残極まる大敗北となっている。あに兵隊のみならんや。日本の精神そのものが耐乏の精神であり、変化を欲せず、進歩を欲せず、憧憬讃美が過去へむけられ、たまさかに現れいでる進歩的精神はこの耐乏的反動精神の一撃を受けて常に過去へ引き戻されてしまうのである。

必要は発明の母という。その必要をもとめる精神を、日本ではナマクラの精神などと云い、耐乏を美徳と称す。一里二里は歩けという。五階六階はエレベータアなどとはナマクラ千万の根性だという。機械に頼って勤労精神を忘れるのは亡国のもとだという。すべてがあべこべなのだ。真理は偽らぬものである。即ち真理によって復讐せられ、肉体の勤労にたより、耐乏の精神にたよって今日亡国の悲運をまねいたではないか。

ボタン一つ押し、ハンドルを廻すだけですむことを、一日中エイエイ苦労して、汗の\uline{ケッショウ}だの勤労のよろこびなどと、馬鹿げた話である。しかも日本全体が、日本の根柢そのものが、かくの如く馬鹿げきっているのだ。

\vspace{.5\zh}% 0.5文字分空ける

\問{(1)下線部を漢字で書け。}

\問{(2)この文章は誰の、何という作品か。作者名と作品名の組み合わせとして最も適当なものを、次のア〜オから一つ選び、記号で答えよ。}

\begin{table}[h]%h…here.t…top.b…bottom.p…page(別のページを作成し,そこに表示).
\centering
\begin{tabular}{|p{3\zw}|c|c|c|c|c|}%列の数だけc,l,r,p{幅}などを入れる。罫線「|」は適宜
\hline%このhlineは表上部の罫線
 & ア & イ & ウ & エ & オ \\ \hline%行の終わりには必ず「\\」を入れる。罫線「\hline」は適宜。
作者名 & 坂口安吾 & 太宰治 & 夏目漱石 & 與謝野晶子 & 寺田寅彦 \\ \hline
作品名 & 続堕落論 & 人間失格 & 私の個人主義 & 巴里にて & 学問の自由
 \\ \hline
\end{tabular}
\end{table}

\答{(1)結晶 (2)ア}


\newpage% 改ページ
\section{次のア~オで最も妥当なものはどれか。一つ選び、記号で答えよ。}


\選択肢{ア.えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ}
\選択肢{イ.えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ}

\答{ア
\解説{これは解説の文章。文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章文章}}



%%%%%%%%%%%%% 解答・解説部分 %%%%%%%%%%%%%%
\newpage
\begingroup
\parskip 0.5\zh % 段落間の行間
\theendnotes
\endgroup

\end{document}

IMEの単語登録(辞書登録)を利用して、「こたえ」と打ったら\答{}、「かいせつ」と打ったら\解説{}と出るようにしておくと便利。

サンプル

上記TeXファイルをコンパイルしたのがこちら。

drive.google.com