Я сейчас создаю тест, который состоит из нескольких страниц. Пример ниже иллюстрирует его структуру.
\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}
Можно ли автоматически нумеровать вопросы вместо того, чтобы писать eg \textbf{1.}
? Иногда мне нужно удалить вопрос и мне приходится вручную корректировать номера. Та же проблема касается ответов в правом столбце.
Мой второй вопрос, вероятно, немного сложный. Я создаю ключ ответа, который выглядит почти так же, как тест. Например, для 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 \\
Во второй части вы можете определить команду между ответами с десятичным числом и ответами с буквенным результатом, используя условное выражение, например, \IfDecimal
из xstring
пакета.
\newcommand{\B}[1]{%
\IfDecimal{#1}{$\ldots$}{\fbox{#1}}
}
Раньше я \fbox
делал команду более читабельной, но вы можете заменить ее на colorbox и остальные команды форматирования.
Надеюсь, это приблизит вас к тому, что вы ищете. Просто небольшой общий комментарий: шрифт 9pt слишком мал для экзамена, по моему мнению.
решение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.}}
Этого вполне достаточно \B
для a), b), c) и \BB
значений.