Opções de múltipla escolha bem espaçadas

Opções de múltipla escolha bem espaçadas

Estou maximizando um exame usando LaTeX e uso este comando para fazer opções de múltipla escolha:

\newcommand{\mc}[5]{(\textbf{A}) #1 \qquad \qquad (\textbf{B}) #2 \qquad \qquad (\textbf{C}) #3 \qquad \qquad (\textbf{D}) #4 \qquad \qquad (\textbf{E}) #5}

No entanto, para opções de resposta pequenas (como 1 ou 2) ou para opções longas (como nomes, etc.), as opções de resposta não cabem na tela, pois tenho o espaço entre cada opção codificado em com \qquad.

Existe uma maneira de fazer com que as opções sejam automaticamente espaçadas corretamente para que caibam exatamente na página?

Desde já, obrigado.

Responder1

Aqui está uma alternativa usando o taskspacote:

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{tasks}
\setlength{\parindent}{0pt}

\begin{document}

\textbf{Question}: Here is the question text. Answers are arranged in 4 columns.
\begin{tasks}(4)
\task first answer
\task second answer
\task third answer
\task fourth answer
\end{tasks}

\bigskip

\textbf{Question}: Here is the question text. Answers are arranged in 2 columns.
\begin{tasks}(2)
\task first answer
\task second answer
\task third answer
\task fourth answer
\end{tasks}

\bigskip

\textbf{Question}: Here is the question text. Answers are arranged in 2 columns and are longer than a single line.
\begin{tasks}(2)
\task first answer first answer first answer first answer
\task second answer second answer second answer
\task third answer 
\task fourth answer
\end{tasks}

\end{document}

Se quiser que sua resposta se espalhe por toda a largura do texto, você pode usar tabularxo seguinte: (As linhas verticais vermelhas indicam a largura do bloco de texto). Observe que com este método, os espaços entre a primeira e a segunda, bem como entre a penúltima e a última coluna serão maiores do que os espaços entre as outras colunas. (Veja tambémeste comentário)

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{tabularx}
\setlength{\parindent}{0pt}
\begin{document}

\textbf{Question}: Here is the question text. Answers are arranged in 4 columns and take up the entire textwidth.

\begin{tabularx}{\textwidth}{@{}X>{\centering\arraybackslash}X>{\centering\arraybackslash}X>{\raggedleft\arraybackslash}X@{}}
 \textbf{A} first answer &
 \textbf{B} second answer &
 \textbf{C} third answer &
 \textbf{D} fourth answer
\end{tabularx}

\end{document}

Usando tabular*em combinação com \extracolsep{\fill}um pode-se obter o seguinte resultado. Aqui, os espaços em branco horizontais entre colunas adjacentes serão iguais. Se suas respostas forem muito longas e precisarem de uma quebra de linha, você pode querer mudar para pcolunas de tipo. Observe também que, com esse método, a largura que cada resposta ocupa é diferente.

insira a descrição da imagem aqui

\documentclass{article}
\setlength{\parindent}{0pt}
\begin{document}

\textbf{Question}: Here is the question text. Answers are arranged in 4 columns and take up the entire textwidth.

\setlength{\tabcolsep}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ccccc}
 \textbf{A} 1 &
 \textbf{B} 2 &
 \textbf{C} 3 &
 \textbf{D} 4 &
 \textbf{E} 5
\end{tabular*}

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ccccc}
 \textbf{A} 1 &
 \textbf{B} 2 &
 \textbf{C} 3 &
 \textbf{D} 4 &
 \textbf{E} longer text
\end{tabular*}

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ccccc}
 \textbf{A} 1 &
 \textbf{B} long text &
 \textbf{C} 3 &
 \textbf{D} 4 &
 \textbf{E} longer text
\end{tabular*}

\end{document}

Responder2

Tenho certeza de que existem várias maneiras. Proponho o modo TikZ devido à sua flexibilidade. Podemos escrever um novo comando para isso.

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{tikz}
\begin{document}
\centerline{\LARGE\bfseries\textcolor{blue}{TIKZ for multiple choices}} 
\vspace*{1cm}

\noindent{\bfseries Question 1.} This question has $2$ choices.

\noindent\begin{tikzpicture}
\pgfmathsetmacro{\a}{\textwidth}
\path[font=\bfseries,blue] 
(0,0)         node{A. $x=1$}
++(0:\a/2 pt) node{B. $x=6$};
\end{tikzpicture}

\noindent{\bfseries Question 2.} This question has $3$ choices.

\noindent\begin{tikzpicture}
\pgfmathsetmacro{\a}{\textwidth}
\path[n/.style={font=\bfseries,circle,draw=blue,fill=gray!30},inner sep=1pt] 
(0,0)         node[n]{A}  +(0:1) node{$m=3$}
++(0:\a/3 pt) node[n]{B}  +(0:1) node{$m=4$}
++(0:\a/3 pt) node[n]{C}  +(0:1) node{$m=3$};
\end{tikzpicture}

\noindent{\bfseries Question 3.} This question has $4$ choices.

\noindent\begin{tikzpicture}
\pgfmathsetmacro{\a}{\textwidth}
\path[font=\bfseries,blue,right] 
(0,0)         node{A. $x=1$}
++(0:\a/4 pt) node{B. $x=6$}
++(0:\a/4 pt) node{C. $x=8$}
++(0:\a/4 pt) node{D. $x=6688$};
\end{tikzpicture}

\noindent{\bfseries Question 4.} This question also has $4$ choices. You can see choices of Question $3$ and Question $4$ are vertically aligned.

\noindent\begin{tikzpicture}
\pgfmathsetmacro{\a}{\textwidth}
\path[font=\bfseries,magenta,right] 
(0,0)         node{A. $y=11$}
++(0:\a/4 pt) node{B. $y=66$}
++(0:\a/4 pt) node{C. $y=88$}
++(0:\a/4 pt) node{D. $y=668866$};
\end{tikzpicture}

\noindent{\bfseries Question 5.} This question also has $4$ choices with other arrangement.

\noindent\begin{tikzpicture}
\pgfmathsetmacro{\a}{\textwidth}
\path[font=\bfseries,right] 
(0,0)        node[blue]   {A. Blue}
+(0:\a/2 pt) node[red]    {B. Red}
++(-90:.5)   node[violet] {C. Violet}
+(0:\a/2 pt) node[orange] {D. Orange};
\end{tikzpicture}

\end{document}

informação relacionada