我尝试了与该主题上的其他示例不同的设置来获得我想要的附录,但两天都无济于事,我希望有人能帮助我摆脱痛苦。
我希望附录看起来像我的代码的结果(“附录”前没有数字,附录显示为 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}