Automatisches Aufzählen für zwei Spalten und Longtable

Automatisches Aufzählen für zwei Spalten und Longtable

Ich bin gerade dabei, einen mehrseitigen Test zu erstellen. Das folgende Beispiel veranschaulicht dessen Struktur.

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

Ist es möglich, Fragen automatisch aufzuzählen, anstatt z. B. zu schreiben \textbf{1.}? Manchmal muss ich eine Frage löschen und die Nummern manuell anpassen. Das gleiche Problem betrifft Antworten in der rechten Spalte.

Meine zweite Frage ist wahrscheinlich etwas herausfordernd. Ich erstelle einen Antwortschlüssel, der fast identisch mit dem Test aussieht. Zum Beispiel haben wir für Q1 und Q3 ( \Bwird in der Präambel definiert)

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

Ich möchte nur den Vorlagenschlüssel erstellen, aber mit der Möglichkeit, auf den Test umzuschalten: \B{a)} --> a)und \B{1.2} --> $\ldots$wenn ich in der Präambel etwas ändere.

Ich freue mich über jeden Vorschlag.

Antwort1

Sie können einen Zähler und ein Hilfsmakro wie folgt erstellen:

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

Sie können es verwenden als:

\inc Question about  &   \thestep \\

\IfDecimalFür den zweiten Teil können Sie mithilfe einer Bedingung, wie sie beispielsweise aus dem Paket hervorgeht, einen Befehl zwischen Antworten mit einer Dezimalzahl und solchen mit einem alphabetischen Ergebnis definieren xstring.

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

Ich habe \fboxden Befehl lesbarer gemacht, aber Sie können ihn durch Colorbox und die restlichen Formatierungsbefehle ersetzen.

Ich hoffe, dass Sie damit dem, was Sie suchen, näher kommen. Nur ein kleiner allgemeiner Kommentar: Eine 9pt-Schrift ist meiner Meinung nach für eine Prüfung zu klein.

Antwort2

Ich konnte nicht verstehen, warum Sie für jede Antwort zwei Spalten haben. Dieser Code funktioniert jedoch bei mir

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

und hier ist die Ausgabe Bildbeschreibung hier eingeben

hoffe, es funktioniert.

Antwort3

Dank Yiannis und Sigur habe ich Lösungen. Jemand könnte sie nützlich finden. Ich weiß, dass die Verwendung von Bedingungen eleganter wäre, aber ich kann das nicht.

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

Es reicht gerade aus, es \Bfür a), b), c) und \BBfür Werte zu verwenden.

verwandte Informationen