Enumerar automáticamente para dos columnas y tabla larga

Enumerar automáticamente para dos columnas y tabla larga

Estoy en medio de la creación de una prueba que tiene varias páginas. El siguiente ejemplo ilustra su estructura.

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

¿Es posible enumerar preguntas automáticamente en lugar de escribir, por ejemplo \textbf{1.}? A veces necesito eliminar una pregunta y tengo que ajustar los números manualmente. El mismo problema se aplica a las respuestas de la columna de la derecha.

Mi segunda pregunta probablemente sea un poco desafiante. Creo una clave de respuestas que parece casi idéntica a la prueba. Por ejemplo, para Q1 y Q3 tenemos ( \Bse define en el preámbulo)

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

Me gustaría crear solo la clave de la plantilla pero con posibilidad de cambiar a la prueba: \B{a)} --> a)y \B{1.2} --> $\ldots$si en el preámbulo cambio algo.

Apreciaria cualquier sugerencia.

Respuesta1

Puede crear un contador y una macro auxiliar de la siguiente manera:

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

Puedes utilizar como:

\inc Question about  &   \thestep \\

Para la segunda parte puedes definir un comando entre las respuestas con un número decimal y aquellas con un resultado alfabético usando un condicional como \IfDecimalel del xstringpaquete.

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

Solía \fbox​​hacer que el comando fuera más legible, pero puedes reemplazarlo con colorbox y el resto de los comandos de formato.

Espero que esto te acerque a lo que buscas. Solo un pequeño comentario general: en mi opinión, una fuente de 9 puntos es demasiado pequeña para un examen.

Respuesta2

No pude entender por qué tienes dos columnas para cada respuesta. Sin embargo, este código funciona para mí.

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

y aquí está la salida ingrese la descripción de la imagen aquí

espero que funcione.

Respuesta3

Gracias a Yiannis & Sigur tengo soluciones. Alguien podría encontrarlo útil. Sé que usar condicional sería más elegante pero no puedo hacerlo.

% 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 suficiente uso \Bpara a), b), c) y \BBpara los valores.

información relacionada