展开收集包中的两个计数器

展开收集包中的两个计数器

我写了一个命令,用 collect 包来存储问题答案。@egreg 先生帮我扩展了辅助文件中的问题编号。现在我又遇到了答案方面的问题。当答案包含计数器时,它不会扩展。请帮我更正下面的代码。

在此处输入图片描述

此外,请提供一些“expandafter”和“.aux”命令的文档非常感谢!

\documentclass{article}
\usepackage{collect}
\definecollection{btcol}
\newcounter{cbt} %the number problems
\newcounter{anschoice} %the answer key

\newenvironment{bt}
 {\refstepcounter{cbt}\par
  \noindent{\bfseries Problem \thecbt}.}{}
  
\makeatletter
\newcommand{\loigiai}[1]{%
  \@bsphack\expandafter\loigiai@aux\expandafter{\expanded{\thecbt}}{#1}\@esphack
}
\newcommand{\loigiai@aux}[2]{%
  \begin{collect}{btcol}{\par\noindent {\bfseries AP #1}.\ignorespaces}{}{}{} 
#2%
  \end{collect}
}
\makeatother

\begin{document}
\setcounter{anschoice}{3}
\begin{bt}
Content 1
\loigiai{Answer for Pro.1 $ \rightarrow $ Choice: \Alph{anschoice}}
\end{bt}

\begin{bt}
Content 2 
\end{bt}

\setcounter{anschoice}{2}
\begin{bt}
Content 3
\loigiai{Answer for Pro.3  $ \rightarrow $ Choice: \Alph{anschoice}}
\end{bt}

\includecollection{btcol}
\end{document}

答案1

我确信这可以更好地实现自动化,但是在这里,我在\edef将其传递给之前,先用 , 扩展了有问题的短语\loigiai

已编辑以简化用户的输入。我没有强迫用户使用,而是创建了用户可以选择的\edef宏,该宏在将参数传递给之前应用于该参数。\exloigiai\expanded\loigiai

\documentclass{article}
\usepackage{collect}
\definecollection{btcol}
\newcounter{cbt} %the number problems
\newcounter{anschoice} %the answer key

\newenvironment{bt}
 {\refstepcounter{cbt}\par
  \noindent{\bfseries Problem \thecbt}.}{}
  
\makeatletter
\newcommand{\loigiai}[1]{%
  \@bsphack\expandafter\loigiai@aux\expandafter{\expanded{\thecbt}}{#1}\@esphack
}
\newcommand{\loigiai@aux}[2]{%
  \begin{collect}{btcol}{\par\noindent {\bfseries AP #1}.\ignorespaces}{}{}{} 
#2%
  \end{collect}
}

\newcommand\exloigiai[1]{\expandafter\loigiai\expandafter{\expanded{#1}}}
\makeatother

\begin{document}
\setcounter{anschoice}{3}
\begin{bt}
Content 1
\exloigiai{Answer for Pro.1 $ \rightarrow $ Choice: \Alph{anschoice}}
\end{bt}

\begin{bt}
Content 2 
\end{bt}

\setcounter{anschoice}{2}
\begin{bt}
Content 3
\exloigiai{Answer for Pro.3 $ \rightarrow $ Choice: \Alph{anschoice}}
\end{bt}

\includecollection{btcol}
\end{document}

在此处输入图片描述

相关内容