我想使用“答案”参数和可选的“字体样式”参数创建自己的环境。
在新环境中,例如名称为 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}