使用 xsim 更改练习中的枚举样式

使用 xsim 更改练习中的枚举样式

如果这个问题已经被问过了,请原谅我,但我找不到这个问题。我正在使用包xsim(documentclass book),我希望我的“顶级”枚举在我的练习中用字母标记,但在这些字母之外用阿拉伯数字标记。因此,例如,如果我输入

\begin{enumerate}
  \item Hello
\end{enumerate}

除了练习之外,我希望它能读到

  1. 你好

但如果我在练习环境中输入它,我希望它读出来

a. 你好

显然,我可以通过每次在练习中进行枚举时更改枚举标签样式来解决这个问题,但一定有更好的方法。对吧?请记住,我使用的是exercise提供的默认环境xsim

答案1

pre-hook您可以使用或选项将重新定义添加begin-hook到练习环境中

\documentclass{article}
\usepackage{xsim}

\xsimsetup{
  exercise/begin-hook = \renewcommand\theenumi{\alph{enumi}} ,
  solution/begin-hook = \renewcommand\theenumi{\alph{enumi}}
}

\begin{document}

\begin{exercise}
  \begin{enumerate}
    \item bla bla
  \end{enumerate}
\end{exercise}

Outside:
\begin{enumerate}
  \item bla bla
\end{enumerate}

\end{document}

或者只需在自定义环境模板的代码中添加重新定义:

\documentclass{article}
\usepackage{xsim}

\DeclareExerciseEnvironmentTemplate{custom}
  {%
    \UseExerciseTemplate{begin}{default}%
    \renewcommand\theenumi{\alph{enumi}}%
  }
  {\UseExerciseTemplate{end}{default}}

\xsimsetup{
  exercise/template=custom ,
  solution/template=custom
}

\begin{document}

\begin{exercise}
  \begin{enumerate}
    \item bla bla
  \end{enumerate}
\end{exercise}

Outside:
\begin{enumerate}
  \item bla bla
\end{enumerate}

\end{document}

在此处输入图片描述

相关内容