在我自己的乳胶课内创建环境?

在我自己的乳胶课内创建环境?

如何在 LaTeX 中自动完成我自己课堂上的多项选择题类型?

答案1

一种方式是定义\hcoices(或\vchoices)使用\foreach表单pgffor包。

1.使用exam类:

下面的第一部分如果使用环境choices,接下来的两个部分是您将使用的自定义部分:

在此处输入图片描述

笔记:

  • 您的代码中有一个小拼写错误,我已在下面进行了更正。 \end parts应该是\end{parts}
  • 您还应该使用choices替代parts环境来进行多项选择。

代码:

\documentclass{exam}
\usepackage{pgffor}

\newcommand{\hchoices}[1]{%
    \par
    \begin{oneparchoices}
    \foreach \Choice in {#1} {%
        \choice \Choice
    }%
    \end{oneparchoices}
}%

\newcommand{\vchoices}[1]{%
    \begin{choices}
    \foreach \Choice in {#1} {%
        \choice \Choice
    }%
    \end{choices}
}%

\begin{document}

\noindent\textbf{Choices:}
\begin{questions}
    \question Which among the following focuses on values?
    \begin{choices}
        \choice Axiology
        \choice Epistomology
        \choice Philosophy
    \end{choices}
\end{questions}

\hrule\medskip\noindent\textbf{hchoices:}
\begin{questions}
    \question Which among the following focuses on values?
    \hchoices{Axiology, Epistomology, Philosophy}
\end{questions}

\hrule\medskip\noindent\textbf{vchoices:}
\begin{questions}
    \question Which among the following focuses on values?
    \vchoices{Axiology, Epistomology, Philosophy}
\end{questions}

\end{document}

2.无exam类别:

要生成类似但不带exam类的内容,可以使用枚举列表。我使用了包裹enumitem因为它更加灵活:

在此处输入图片描述

笔记:

  • 感谢 Heiko Oberdiek 提供的解决方案如何通过宏创建内联列表这里需要这个。
  • 我曾经\hspace*{2.0em}将各个水平项目分开,但如果您希望项目根据项目数量更均匀地分布,则可以使用hfill以下itemjoin选项:

     \setlist*[MyHChoices]{label=\Alph*., itemjoin={\hfill}}
    

代码:

\documentclass{article}
\usepackage[inline]{enumitem}
\usepackage{pgffor}

\newlist{MyHChoices}{enumerate*}{2}
\newlist{MyVChoices}{enumerate}{2}
\setlist*[MyHChoices]{label=\Alph*., itemjoin={\hspace*{2.0em}}}
\setlist*[MyVChoices]{label=\Alph*.}

% https://tex.stackexchange.com/questions/78628/how-to-create-an-inline-list-via-a-macro
\newtoks\gInlineToks
\newcommand*{\hchoices}[1]{%
    \global\gInlineToks{}%
    \foreach \Choice in {#1} {%
        \global\gInlineToks\expandafter{%
            \the\expandafter\gInlineToks
            \expandafter\item\Choice
        }%
    }%
    \par%
    \begin{MyHChoices}\the\gInlineToks\end{MyHChoices}%
}%


\newcommand{\vchoices}[1]{%
    \begin{MyVChoices}
    \foreach \Choice in {#1} {%
        \item \Choice
    }%
    \end{MyVChoices}
}%

\newenvironment{questions}{
    \let\question\item
    \begin{enumerate}[label=\arabic*.]
}{%
    \end{enumerate}
}

\begin{document}

\noindent\textbf{hchoices:}
\begin{questions}
    \question Which among the following focuses on values?
    \hchoices{Axiology, Epistomology, Philosophy}
\end{questions}

\noindent\textbf{vchoices:}
\begin{questions}
    \question Which among the following focuses on values?
    \vchoices{Axiology, Epistomology, Philosophy}
\end{questions}

\end{document}

相关内容