论文目录:在各章之后立即添加章节特定的附录,而不是全部放在最后

论文目录:在各章之后立即添加章节特定的附录,而不是全部放在最后

我正在完成我的论文,我的目录目前内容如下:

    1. 第一章
      • 1.1 第一节
      • 1.2 第二节
    1. 第二章
      • 2.1 第一节
      • 2.2 第二节
  • A. 第一章附录
  • B. 第二章附录

如果可能的话,我真的很想做这样的事情:

    1. 第一章
      • 1.1 第一节
      • 1.2 第二节
      • 1.附录
    1. 第二章
      • 2.1 第一节
      • 2.2 第二节
      • 2.附录

有人知道怎么做这种事吗?提前谢谢!

编辑

感谢@Au101 的快速回复。理想情况下,我希望第一章的实际附录出现在第二章的实际开始之前。我对乳胶很有经验,但这是我第一次整理一本类似书籍的文档,而不仅仅是一篇单独的文章......

答案1

一些奇怪的代码高尔夫和xparse稍微(;-))修改的\section命令 - 不要\subsection在那里使用!

我刚刚为 添加了第四个可选参数\section,即*,表示这应该是一个附录部分,就在这里,而不是在文档的末尾。(那么,就是章节附录)

\section如果出现另一种“常态”,它就会破裂。

如果下一步\chapter行动开始,一切都将重置。

虽然有一些警告hyperref,但是链接仍然有效。

\documentclass{book}

\usepackage{xpatch}

\usepackage{xparse}

\usepackage{blindtext}

\newcounter{appsection}[chapter]

\usepackage{hyperref}


\makeatletter

\let\latex@section\section
\let\latex@thesection\thesection

\RenewDocumentCommand{\section}{soms}{%
  \IfBooleanTF{#1}{%
    \latex@section*{#4}
  }{%
    \IfBooleanT{#4}{%
      \ifnumgreater{\value{appsection}}{0}{%
      }{%
        \setcounter{section}{0}%
        \renewcommand{\thesection}{\thechapter.\Alph{appsection}}%
        \renewcommand{\theHsection}{\thechapter.\Alph{appsection}}%
      }
      \stepcounter{appsection}%
    }%
    \IfValueTF{#2}{%
      \latex@section[#2]{#3}%
    }{%
      \latex@section{#3}%
    }%  
  }%
}



% Restore the section number format. 
\xpretocmd{\chapter}{\renewcommand{\thesection}{\latex@thesection}}{}{}

\makeatother


\begin{document}
\tableofcontents
\chapter{First}
\section{First section}
\section{Second section}
\section{First appendix}*

\chapter{Second}
\blindtext[10]
\section{First section}
\section{Second section}
\clearpage
\section{First appendix}*
\blindtext[10]
\clearpage
\section{Second appendix}*
\blindtext[10]


\chapter{Third}
\blindtext[10]
\section{First section}
\section{Second section}
\section{Third section}
\section{Fourth section}
\clearpage
\section{First appendix}*
\blindtext[10]
\clearpage
\section{Second appendix}*
\blindtext[10]

\section{Third appendix}*
\blindtext[10]




\end{document}

更新改进了界面,防止在某个部分被声明为部分后添加部分appendix。它会自动添加一个Appendix和清除页。subsections等工作如预期一样,还有引用。

\section![toc title]{body title}如果是章节末尾的附录部分,则宏调用为。如果!省略,则使用标准命令。

\documentclass{book}
\usepackage{xpatch}
\usepackage{xparse}
\usepackage{blindtext}

\newcounter{appsection}[chapter]
\usepackage[bookmarksopen=true,bookmarksopenlevel=5]{hyperref}


\makeatletter

\newif\ifappsectionclearpage
\appsectionclearpagetrue

\newif\ifappsection
\appsectionfalse

\let\latex@section\section
\let\latex@thesection\thesection

\RenewDocumentCommand{\section}{st!om}{%
  \IfBooleanTF{#1}{%
    \latex@section*{#4}
  }{%
    \IfBooleanTF{#2}{%
      \appsectiontrue%
      \ifnumgreater{\value{appsection}}{0}{%
      }{%
        \setcounter{section}{0}%
        \renewcommand{\thesection}{\thechapter.\Alph{appsection}}%
        \renewcommand{\theHsection}{\thechapter.\arabic{appsection}}%
      }
      \stepcounter{appsection}%
      \ifappsectionclearpage
      \clearpage
      \fi
      \IfValueTF{#3}{%
        \latex@section[#3]{\appendixname~#4}%
      }{%
        \latex@section{\appendixname~#4}%
      }%    
    }{%
      \ifappsection
      %% Nothing in here!
      \else
      \IfValueTF{#3}{%
        \latex@section[#3]{#4}%
      }{%
        \latex@section{#4}%
      }%    
      \fi
    }%
  }%
}




\xpretocmd{\chapter}{\renewcommand{\thesection}{\latex@thesection}\protect\appsectionfalse}{}{}

\makeatother


\begin{document}
\tableofcontents
\chapter{First}
\section{First section}
\section{Second section}
\section!{First appendix}

In \ref{thirdapp:thirdchap} we will see that

\chapter{Second}
\blindtext[10]
\section{First section}
\section{Second section}
\clearpage
\section!{First appendix}
\blindtext[10]
\clearpage
\section!{Second appendix}
\blindtext[10]


\chapter{Third}
\blindtext[10]
\section{First section}
\section{Second section}
\section{Third section}
\section{Fourth section}
\clearpage
\section!{First appendix}
\blindtext[10]
\clearpage
\section!{Second appendix}
\subsection{First}
\blindtext[10]

\section!{Third appendix} \label{thirdapp:thirdchap}
\blindtext[10]

\section{Fifth section} % Will be ignored

\end{document}

在此处输入图片描述

相关内容