
Ich bereite eine Prüfung mit LaTeX vor und verwende diesen Befehl zum Erstellen von Multiple-Choice-Optionen:
\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}
Bei kleinen Antwortmöglichkeiten (wie 1 oder 2) oder langen Möglichkeiten (wie Namen usw.) passen die Antwortmöglichkeiten jedoch nicht über den gesamten Bildschirm, da ich den Abstand zwischen den einzelnen Optionen mit fest codiert habe \qquad
.
Gibt es eine Möglichkeit, die Optionen automatisch richtig anzuordnen, sodass sie genau auf die Seite passen?
Dank im Voraus.
Antwort1
Hier ist eine Alternative mit dem tasks
Paket:
\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}
Wenn Sie möchten, dass sich Ihre Antwort über die gesamte Textbreite erstreckt, können Sie tabularx
Folgendes verwenden: (Die roten vertikalen Linien geben die Breite des Textblocks an). Bitte beachten Sie, dass bei dieser Methode die Abstände zwischen der ersten und zweiten sowie zwischen der vorletzten und der letzten Spalte größer sind als die Abstände zwischen den anderen Spalten. (Siehe auchdieser Kommentar)
\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}
Die Verwendung tabular*
in Kombination mit \extracolsep{\fill}
einem kann die folgende Ausgabe erzielen. Dabei sind die horizontalen Leerzeichen zwischen benachbarten Spalten gleich. Wenn Ihre Antworten zu lang sind und einen Zeilenumbruch benötigen, sollten Sie p
stattdessen auf den Typ „Spalten“ umsteigen. Bitte beachten Sie auch, dass bei dieser Methode die Breite jeder Antwort unterschiedlich ist.
\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}
Antwort2
Ich bin ziemlich sicher, dass es mehrere Möglichkeiten gibt. Ich schlage die TikZ-Methode vor, da sie flexibler ist. Wir können dafür einen neuen Befehl schreiben.
\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}