自動枚舉兩列和長表

自動枚舉兩列和長表

我正在創建一個有多個頁面的測試。下面的例子說明了它的結構。

\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值來說就足夠了。

相關內容