目录中的附录样式和外观

目录中的附录样式和外观

我尝试了与该主题上的其他示例不同的设置来获得我想要的附录,但两天都无济于事,我希望有人能帮助我摆脱痛苦。

我希望附录看起来像我的代码的结果(“附录”前没有数字,附录显示为 A.1、A.2、...),但它以奇怪的方式显示在文档最后一章的目录列表中。我想要的是下面最后一张图片中的内容,目录中只有附录名称,没有子条目。我添加了一个图片列表,因为我尝试的一些示例使每个图片都出现在目录中,但实际上不应该出现。

\documentclass[listof=totoc,oneside]{scrreprt}  
\usepackage[toc,nonumberlist]{glossaries}
\makeglossaries

\begin{document}
\tableofcontents
\listoffigures
\chapter{Chapter One}
\section{Section One}
\chapter{Chapter Two}
\section{Section One}
\begin{figure}[h]
\caption{A Caption}
\end{figure}

\appendix
\chapter*{Appendix}
\renewcommand*{\thesection}{A.\arabic{section}}
\section{test 1}
Text
\section{test 2}

\end{document}

品牌:

现在

它应如何出现在内容列表中:

想

答案1

以下是另一个建议:

\documentclass[listof=totoc,oneside]{scrreprt}
\usepackage[toc,nonumberlist]{glossaries}
\makeglossaries

\newcommand\savedtocdepth{}
\BeforeStartingTOC[toc]{%
  \edef\savedtocdepth{\the\value{tocdepth}}%
}
\AfterStartingTOC[toc]{%
  \setcounter{tocdepth}{\savedtocdepth}%
}
\usepackage{xpatch}
\xapptocmd\appendix
  {%
    \addchap{Appendix}%
    \addtocontents{toc}{\setcounter{tocdepth}{0}}%
    \renewcommand*{\thesection}{A.\arabic{section}}%
  }
  {}{\PatchFailed}


\begin{document}
\tableofcontents
\listoffigures
\chapter{Chapter One}
\section{Section One}
\chapter{Chapter Two}
\section{Section One}
\begin{figure}[h]
\caption{A Caption}
\end{figure}

\appendix
\section{test 1}
Text
\section{test 2}

\end{document}

答案2

还有一个与@esdd 类似的建议:

\documentclass[listof=totoc]{scrreprt}% oneside is default
\usepackage[toc,nonumberlist]{glossaries}
\makeglossaries

\usepackage{xpatch}
\xapptocmd{\appendix}{%
  \addchap{Appendix}%
  \refstepcounter{chapter}%
  \addtocontents{toc}{\protect\value{tocdepth}=\chaptertocdepth}%
}{}{}

\begin{document}
\tableofcontents
\listoffigures
\chapter{Chapter One}
\section{Section One}
\chapter{Chapter Two}
\section{Section One}
\begin{figure}[h]
\caption{A Caption}
\end{figure}

\appendix
\section{test 1}
Text
\section{test 2}

\end{document}

第一个不同之处在于,它使用\chaptertocdepth而不是绝对数字,并且\value{tocdepth}不使用 来改变\setcounter{tocdepth},因为\setcounter是全局的,而改变\value {tocdepth}是局部的。因此它不需要存储和恢复原始值。

第二个是,它不重新定义,\thesection而只是增加chapter中的计数器。如果您不需要附录标签,\appendix也可以使用 而\setcounter{chapter}{1}不是。\refstepcounter{chapter}

对于 KOMA-Script 3.23 版,建议的第三个区别是使用\ext@toc而不是toc写入 ToC 的辅助文件:

\usepackage{xpatch}
\xapptocmd{\appendix}{%
  \addchap{Appendix}%
  \refstepcounter{chapter}%
  \addtocontents{\csname ext@toc\endcsname}{\protect\value{tocdepth}=\chaptertocdepth}%
}{}{}

背景:KOMA-Script 类和包也使用\ext@toc而不是硬编码toc。例如,这可用于将附录的条目写入单独的目录:

\documentclass[listof=totoc]{scrreprt}% oneside is default
\usepackage[toc,nonumberlist]{glossaries}
\makeglossaries

\usepackage{xpatch}
\makeatletter
\xapptocmd{\appendix}{%
  \addchap{Appendix}%
  \refstepcounter{chapter}%
  \renewcommand*{\ext@toc}{atoc}%
  \section*{Contents}% OPTIONAL
  \listoftoc*{atoc}% OPTIONAL
}{}{}
\makeatother
\DeclareNewTOC{atoc}%

\begin{document}
\tableofcontents
\listoffigures
\chapter{Chapter One}
\section{Section One}
\chapter{Chapter Two}
\section{Section One}
\begin{figure}[h]
\caption{A Caption}
\end{figure}

\appendix
\section{test 1}
Text
\section{test 2}

\end{document}

如果您注释掉标有 的两行OPTIONAL,那么您的问题就会得到另一种解决方案。

答案3

根据 esdd 的建议,我修复了空图列表,添加了

\setcounter{tocdepth}{2} 

在目录和图表列表之间。

这是最终的工作代码,谢谢您的帮助!

\documentclass[listof=totoc,oneside]{scrreprt}  
\usepackage[toc,nonumberlist]{glossaries}
\makeglossaries

\begin{document}
\tableofcontents
\setcounter{tocdepth}{2}
\listoffigures
\chapter{Chapter One}
\section{Section One}
\chapter{Chapter Two}
\section{Section One}
\begin{figure}[h]
\caption{A Caption}
\end{figure}

\appendix
\addchap{Appendix}\addtocontents{toc}{\setcounter{tocdepth}{0}}
\renewcommand*{\thesection}{A.\arabic{section}}
\section{test 1}
Text
\section{test 2}

\end{document}

相关内容