複数の章からなる文書を作成しています。各章には問題があり、各問題には解決策があります。解決策のいくつかは問題の直後に表示し、他の解決策は章の最後に表示したいと考えています。
現在、私は
\newtheorem{problem}{Задача}[chapter]
\newtheorem{solution}{Решение}[chapter]
章の最後に解決策が出てくる場合は、次のようにします。
\appto\SolutionsChapterFive{
\begin{solution}
\end{solution}
}
そして章の終わりに、私はコマンドを呼び出します
\SolutionsChapterFive
残念ながら、それによって問題の番号付けがおかしくなります。
例えば:
第5章
問題5.1.何とか何とか
解決策5.1。アブアブ
問題5.2.バルバル
問題5.3.アルブアルブ
解決策5.3。Ablh ablh (ただし、これはソリューション 5.2 として表示されます ☹️ )
問題5.4.ハブルハブル
ソリューション
解決策5.2。Ablh ablh (ただし、これはソリューション 5.3 として表示されます ☹️ )
解決策5.4。アブアブ
どうすれば解決できますか? 問題に対処するより良い方法はあるでしょうか?
答え1
(または他のマクロ)を使用してソリューション番号を正しく引き継ぐのは、\appto
LaTeX の展開の仕組み上、難しいようです。おそらく、etoolbox パッケージに詳しい人が、この\appto
アプローチでソリューションを提供できるでしょう。今のところ、簡単なソリューションを提案します。
最後に表示されるソリューションに到達したら、現在のソリューション番号を新しいカウンターに保存し、ソリューション カウンターを進めます (これにより、後続のソリューションに正しい番号が付けられます)。次に、章の最後にソリューションを書き込む前に、ソリューション カウンターをこの保存した値に設定します。
このアプローチの利便性は失われます\appto
が、章末の解答が大量でない限り、このワークフローは完全に実用的であると思います。
最小限の例:
\documentclass{book}
\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem{problem}{Problems}[chapter]
\newtheorem{solution}{Solutions}[chapter]
\begin{document}
\setcounter{chapter}{5}
\begin{problem}
Problems 1
\end{problem}
\begin{solution}
Solutions 1
\end{solution}
\begin{problem}
Problems 2
\end{problem}
\newcounter{fivea} % New counter to save solution number (`fivea' must be unique)
\setcounter{fivea}{\value{solution}} % Sote current solution number
\stepcounter{solution} % Step the counter, as if solutions occured here
\begin{problem}
Problems 3
\end{problem}
\begin{solution}
Solutions 3
\end{solution}
\begin{solution}
Solutions 4
\end{solution}
% End of chapter material
\setcounter{solution}{\value{fivea}} % Restore the saved value
\begin{solution} % Write solutions in the usual way
Solutions 2
\end{solution}
\end{document}
出力:
もちろん、これらの手順をマクロと新しい環境に簡単にラップして、処理を少しスムーズにすることもできます。
\documentclass{book}
\usepackage{amsmath}
\usepackage{amsthm}
\newtheorem{problem}{Problems}[chapter]
\newtheorem{solution}{Solutions}[chapter]
\newcommand\saveSolutionNumber[1]{\newcounter{#1}\setcounter{#1}{\value{solution}}\stepcounter{solution}}
\newenvironment{chapterSolutions}[1]{\setcounter{solution}{\value{#1}}\begin{solution}}{\end{solution}}
\begin{document}
\setcounter{chapter}{5}
\begin{problem}
Problems 1
\end{problem}
\begin{solution}
Solutions 1
\end{solution}
\begin{problem}
Problems 2
\end{problem}
\saveSolutionNumber{fivea} % fivea is the new counter
\begin{problem}
Problems 3
\end{problem}
\begin{solution}
Solutions 3
\end{solution}
\begin{solution}
Solutions 4
\end{solution}
\begin{chapterSolutions}{fivea} % Solutions based on counter fivea
Solutions 2
\end{chapterSolutions}
\end{document}
以前とまったく同じ出力が得られます。