章節末尾的問題解決方案

章節末尾的問題解決方案

我正在編寫一個包含多個章節的文檔。每一章都有問題,每個問題都有解決方案。我希望一些解決方案出現在問題之後,而其他解決方案出現在本章的末尾。

目前,我正在使用

\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}

輸出:

輸出1

當然,您可以輕鬆地將這些步驟包裝在巨集和新環境中,以使事情變得更加順利:

\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}

輸出與以前完全相同。

相關內容