enumitem 和 answers 包之间不兼容吗?

enumitem 和 answers 包之间不兼容吗?

enumitem我在使用和包时遇到一个奇怪的问题answers。以下代码编译时没有错误。

\documentclass{article}
\usepackage{enumitem}    
\usepackage{answers}
\Newassociation{sol}{Solution}{ans}

\newlist{question}{enumerate}{1}
\setlist[question,1]{label=\arabic*}

\begin{document}

\Opensolutionfile{ans}
\section{Problems}

\begin{question}
\item Question 1 \begin{sol}Solution 1\end{sol}
\end{question}

\Closesolutionfile{ans}

\section{Solutions}
\input{ans}

\end{document}

但是,每当我尝试设置列表中的标签样式时,answers都会引发TeX capacity exceeded, sorry错误。

\documentclass{article}
\usepackage{enumitem}    
\usepackage{answers}
\Newassociation{sol}{Solution}{ans}

\newlist{question}{enumerate}{1}
\setlist[question,1]{label=\textbf{\arabic*}}

\begin{document}

\Opensolutionfile{ans}
\section{Problems}

\begin{question}
\item Question 1 \begin{sol}Solution 1\end{sol}
\end{question}

\Closesolutionfile{ans}

\section{Solutions}
\input{ans}

\end{document}

肯定有办法将这些包一起使用吧?

答案1

answers包自动定义解决方案环境编号/标题,定义\Solutionlabel,基本上是\emph{Solution #1}#1被输入\textbf---这是错误的,由于另一个原因(由于label=\arabic*enumitem的方式,这不能以这种方式工作。label={\bfseries \arabic*}而是使用。

诀窍是重新定义\Solutionlabel使用相同的标签样式,但这实际上很乏味,因为它需要定义列表标签和解决方案标签。

我建议问题环境采用定理形式,而不是枚举列表形式。

\documentclass{article}


\usepackage{answers}
\usepackage{enumitem}

\Newassociation{sol}{Solution}{ans}


\newlist{question}{enumerate}{1}
\setlist[question,1]{label={\bfseries \arabic*}} % defines questioni counter

\renewcommand{\Solutionlabel}[1]{\bfseries Solution \arabic{questioni}}

\begin{document}

\Opensolutionfile{ans}
\section{Problems}

\begin{question}
\item Question 1 \begin{sol}Solution 1 -- finally\end{sol}
\end{question}

\Closesolutionfile{ans}

\section{Solutions}
\input{ans}

\end{document}

在此处输入图片描述

相关内容