我有一个问题环境,其中计数器与子部分计数器耦合。然而,这不适用于自动化解决方案。我尝试将解决方案与子部分结合起来,但这并没有产生正确的解决方案数字。我该如何解决这个问题。这是一个最小的例子:
\documentclass[a4paper,12pt]{article}
\usepackage{etoolbox}
\usepackage{environ}
\newtheorem{pr}{Problem}[subsection]
\newtheorem{solinn}{ad Problem}[subsection]
\newtoks\prsoltoks
\NewEnviron{Solution}{%
\global\prsoltoks=\expandafter{\the\prsoltoks\begin{solinn}}%
\global\prsoltoks=\expandafter{\the\expandafter\prsoltoks\BODY\end{solinn}}%
}
\usepackage{multicol}
\AtEndDocument{\clearpage
\section{Solutions}
\setcounter{pr}{0}
\begin{multicols}{2}
\the\prsoltoks
\end{multicols}
}
\begin{document}
\section{Section}
\subsection{Subsection}
\begin{pr}~
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\subsection{Subsection}
\begin{pr}~
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\begin{pr}~
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\section{Section}
\subsection{Subsection}
\begin{pr}~
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\end{document}
输出:
除了将功能添加到上面的代码中之外,还可以使用另一个执行此操作的包,如果可以获得完全相同的输出格式和相同的语法(pr
和Solution
)。
我玩过exsheets
但没有得到正确的编号。answers
提供了另一种语法:问题环境中的解决方案(我不想更改我现有的大型文档;只是标题)。
如果新方案运行良好与 tikz externalize 一起那就更好了(但这不是这个问题的要求)。
答案1
我设法通过正确编号的 exsheets 粗略地重现了我的风格(使用最新的(提交 367bf7b)exsheets 版本编译而成,来自存储库)。我没能将不同的风格应用于问题和解决方案,也没有看到如何像在原始帖子中那样获得缩进。
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{multicol}
\usepackage{exsheets}
\AddCounterPattern[exsheets]{subsection}{sub}
\DeclareInstance{exsheets-heading}{mystyle}{default}{
points-pre-code = [ ,
points-post-code = ) ,
join =
{
title[r,B]number[l,B](0.333em,0pt) ;
number[r,B]points[l,B](0.333em,0pt)
} ,
attach = { main[l,vc]title[l,vc](0pt,0pt) }
}
\NewQuSolPair{pr}[name=Problem]{Solution}[name=ad Problem]
\SetupExSheets{
question/pre-body-hook=\itshape,
solution/pre-body-hook=\itshape,
counter-within={subsection},
headings=mystyle,
points/name=Punkt/e,counter-format=se.sub.qu}
\begin{document}
\section{Section}
\subsection{Subsection}
\begin{pr}
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\subsection{Subsection}
\begin{pr}
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\begin{pr}
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\section{Section}
\subsection{Subsection}
\begin{pr}
Problem
\end{pr}
\begin{Solution}
Solution
\end{Solution}
\newpage
\section{Solutions}
\begin{multicols}{2}
\printsolutions
\end{multicols}
\end{document}
输出: