使用不同的名称创建相同的 Latex 环境

使用不同的名称创建相同的 Latex 环境

我正在使用考试课程。我有一个名为解决方案的环境,当我运行 Latex 时,它显示为带有大写字母 S 的解决方案。有时我想对同一道题显示两个不同的答案,所以我想将它们称为解决方案 1 和解决方案 2。这两个答案应该具有与解决方案相同的环境。我该怎么做?顺便说一句,当我想创建解决方案时,我会运行以下代码:

\begin{solution}
bla bla
\end{solution}

以下是示例代码:

\documentclass[a4paper, 12pt, addpoints, answers]{exam}
\usepackage{amssymb,amsmath,amsthm}

\begin{document}

\begin{questions}

\question[2] bla ...
 
\begin{solution}
bla...
\end{solution}
\end{questions}
\end{document}

答案1

exam使用宏\solutiontitle来格式化其解决方案。我们可以在本地重新定义它以向其中添加数字:

编辑:按照建议@AlanMunn我还添加了一个自动编号的变体,您可以使用 LaTeX 的标签机制。

\documentclass[a4paper, 12pt, addpoints, answers]{exam}
\usepackage{amssymb,amsmath,amsthm}

\newenvironment{namedsolution}[1]
  {%
    \def\solutiontitle{\noindent\textbf{Solution #1:}\enspace}
    \begin{solution}%
  }
  {\end{solution}}

\newcounter{solution}
\newenvironment{csolution}%
  {%
    \refstepcounter{solution}%
    \def\solutiontitle{\noindent\textbf{Solution \thesolution:}\enspace}%
    \begin{solution}%
  }
  {\end{solution}}

\begin{document}

\begin{questions}
  \question[2] bla ...
  \begin{namedsolution}{Bla}
    bla...
  \end{namedsolution}
  \begin{namedsolution}{Baz}
    BAZ\ldots
  \end{namedsolution}

  \question[3] Foo \ldots
  \begin{csolution}\label{sol:bar}
    Bar\ldots
  \end{csolution}
  \begin{csolution}
    Similar to solution \ref{sol:bar}, also baz\ldots
  \end{csolution}
\end{questions}
\end{document}

在此处输入图片描述

相关内容