如果这个问题已经被问过了,请原谅我,但我找不到这个问题。我正在使用包xsim
(documentclass book
),我希望我的“顶级”枚举在我的练习中用字母标记,但在这些字母之外用阿拉伯数字标记。因此,例如,如果我输入
\begin{enumerate}
\item Hello
\end{enumerate}
除了练习之外,我希望它能读到
- 你好
但如果我在练习环境中输入它,我希望它读出来
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}