2列とlongtableを自動的に列挙する

2列とlongtableを自動的に列挙する

複数のページがあるテストを作成中です。以下の例はその構造を示しています。

\documentclass[a4paper,9pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amsfonts, amssymb}
\renewcommand{\rmdefault}{ptm}

\usepackage{longtable}
\usepackage[left=0.5cm, right=0.5cm, top=0.5cm, bottom=0.5cm]{geometry}

% For answer key
\usepackage{color}
\newcommand{\B}[1]{ \noindent{\setlength{\fboxsep}{1pt}\colorbox{black}{\color{white}\textbf{#1}}}}

\begin{document}
\begin{center}
  \textbf{Test}\\
\end{center}
Names ………………………………………… id …………………………

\begin{longtable}{p{19cm}|p{1cm}}
\textbf{1.} Question about  &   \textbf{1.} \\
a)  Answer 1    &   a)  \\
b)  Answer 2    &   b)  \\
c)  Answer 3    &   c)  \\
d)  Answer 4 &  d)  \\
\textbf{2.} Question is &   \textbf{2.} \\
a)  Answer 1    &   a)  \\
b)  Answer 2    &   b)  \\
c)  Answer 3    &   c)  \\
d)  Answer 4 &  d)  \\
\textbf{3.} Question be &   \textbf{3.} \\
a)  Calculate 1     &   $\ldots$    \\
b)  Calculate 2 &   $\ldots$    \\
c)  Calculate 3 &   $\ldots$    \\
d)  Calculate 4 &   $\ldots$    \\

\end{longtable}
\end{document}

たとえば、 と書く代わりに、質問を自動的に列挙することは可能ですか\textbf{1.}? 時々、質問を削除する必要があり、数字を手動で調整する必要があります。 同じ問題が、右側の列の回答にも関係します。

2番目の質問は、おそらく少し難しいでしょう。私は、テストとほぼ同じように見える解答キーを作成します。たとえば、Q1とQ3には(\B前文で定義されています)があります。

\textbf{1.} Question about  &   \textbf{1.} \\
a)  Answer 1    &   \B{a)}  \\
b)  Answer 2    &   b)  \\
c)  Answer 3    &   c)  \\
d)  Answer 4 &  d)  \\
\textbf{3.} Question be &   \textbf{3.} \\
a)  Calculate 1     &   \B{1.2} \\
b)  Calculate 2 &   \B{2.2} \\
c)  Calculate 3 &   \B{3.2} \\
d)  Calculate 4 &   \B{1}   \

テンプレート キーのみを作成したいのですが、テストに切り替える可能性があり、\B{a)} --> a)プリアンブル\B{1.2} --> $\ldots$で何かを変更する場合。

何かご提案があればいただければ幸いです。

答え1

カウンターとヘルパー マクロは次のように作成できます。

\newcounter{step}
\newcommand\inc{\stepcounter{step}\textbf{\thestep. }}

次のように使用できます:

\inc Question about  &   \thestep \\

\IfDecimal2 番目の部分では、パッケージなどの条件を使用して、小数点付きの回答とアルファベットの結果付きの回答の間のコマンドを定義できますxstring

\newcommand{\B}[1]{%
  \IfDecimal{#1}{$\ldots$}{\fbox{#1}}
}

\fbox以前はコマンドをより読みやすくしていましたが、colorbox やその他の書式設定コマンドに置き換えることもできます。

これであなたが探しているものに近づくことができれば幸いです。ちょっとした一般的なコメントですが、私の意見では、9 ポイントのフォントは試験には小さすぎます。

答え2

それぞれの回答に2つの列があるのはなぜか理解できませんでした。しかし、このコードは私にとってはうまく機能します

\begin{longtable}{p{19cm}|p{19cm}}
\begin{enumerate}
\item Question about   
\begin{enumerate}
\item Answer 1   
\item Answer 2   
\item Answer 3   
\item Answer 4   

\end{enumerate}
\item Question about   

\begin{enumerate}
\item Answer 1   
\item Answer 2   
\item Answer 3   
\item Answer 4 
\end{enumerate}
\end{enumerate}
\end{longtable}

そしてこれが出力です ここに画像の説明を入力してください

うまくいくといいですね。

答え3

Yiannis と Sigur のおかげで解決策が見つかりました。誰かにとって役に立つかもしれません。条件文を使う方がエレガントだとは分かっていますが、私にはそれができません。

% Put comments here if one needs to see a test
%\newcommand{\B}[1]{ \noindent{\setlength{\fboxsep}{1pt}\colorbox{black}{\color{white}\textbf{#1}}}}
%\newcommand{\BB}[1]{ \noindent{\setlength{\fboxsep}{1pt}\colorbox{black}{\color{white}\textbf{#1}}}}

% Put comments here if one needs to see answers
\newcommand{\B}[1]{#1}
\newcommand{\BB}[1]{$\ldots$} % crucial is [1]; thanks Qrrbrbirlbel

% Automatically enumerates questions & answers
\newcounter{step}
\newcommand\pyt[1]{\stepcounter{step}\textbf{\thestep. }#1&\textbf{\thestep.}}

\Ba)、b)、c)、および\BB値に使用するだけで十分です。

関連情報