问答的新环境

问答的新环境

我想使用“答案”参数和可选的“字体样式”参数创建自己的环境。

在新环境中,例如名称为 QandA,我需要以下功能。

\begin{QandA}[\itshape]{24} 

...Your question here...

\end{QandA}

执行以下代码应导致以样式拼写单词“problem”后输出任务文本\it,并在拼写单词“answer”后打印答案“24”。即:

问题 1:

...您的问题在这里...

答案1:

24

{enddef}只有当我能够将环境参数传递给环境定义中的括号时,我才能特别轻松地处理这项任务。

我该如何应对这一挑战?也许这个exam包裹能以某种方式帮助我?

答案1

我认为你的主要问题是你想将两个环境压缩为一个,除此之外你不能使用像#1第二个参数中的东西\newenvironment。第二个问题通过将其存储到命令中来解决。

\documentclass{article}

\newcounter{QandA}% Create new counter.
\newenvironment{QandA}[2][]{%
   \refstepcounter{QandA}% Step environment counter.
   \newcommand{\myArg}[0]{#2}% Store answer-argument.
   \medskip% Put a little vertical space.
   \newline\noindent {#1 Problem~\theQandA.}%
   \newline\noindent%
}{%
   \medskip%
   \newline\noindent\textbf{Answer~\theQandA.}%
   \newline\noindent%
   \myArg% Here we use the stored argument.
   \medskip\newline%
}


\begin{document}
   
   \noindent Some text.
   \begin{QandA}[\itshape]{First answer.}
      Your first question here.
   \end{QandA}
   Some text.
   \begin{QandA}[\scshape\bfseries]{Second answer.}
      Your second question here.
   \end{QandA}
   Some text.
   \begin{QandA}{Third answer.}
      No optional argument.
   \end{QandA}
   Some text.
   
\end{document}

在此处输入图片描述

相关内容