我想在目录中插入包含章节编号的列表。清单文档不足以解决这个问题。
我正在使用 apa6 文档类,默认情况下它是未编号的。我已经进行了一些调整,将编号引入目录中。具体来说,我通过以下方式解决了图表列表中的类似问题:
\section{List of Figures}
\renewcommand\listfigurename{}
\listoffigures
请查看以下两张图片来了解问题所在。下面添加了一个最小工作示例 (MWE)。
这里缺少清单列表:
列表列表应该编号,但是没有:
这是最小工作示例:
\documentclass[doc,11pt]{apa6}
\usepackage[utf8]{inputenc}
\newcommand{\titlevariable}{Good Paper}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{listings}
\renewcommand{\lstlistingname}{Code Snippet}
\renewcommand{\lstlistlistingname}{List of \lstlistingname s}
% Turning section numbering back on (turned off by apa6 document class)
\setcounter{secnumdepth}{3}
\usepackage[american]{babel}
\usepackage[UKenglish]{datetime}
\usepackage[style=apa,sortcites=true,sorting=nyt,backend=biber]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\addbibresource{bibliography.bib}
\title{\titlevariable}
\author{A Cool Guy}
\affiliation{Nice Uni}
\shorttitle{\titlevariable}
\abstract{\ \\
Abstract ABC
}
\keywords{A, B, C}
\begin{document}
\thispagestyle{empty} \maketitle
\thispagestyle{empty}
\newpage
\thispagestyle{empty} \tableofcontents
\newpage
\pagenumbering{arabic}
\section{Foo Section}
\begin{lstlisting}[caption={A listing}]
Some Fancy Code
\end{lstlisting}
\newpage \printbibliography
\section{List of Figures}
\renewcommand\listfigurename{}
\listoffigures
\newpage %\section{List of Code Snippets}
% \renewcommand\lstlistingname{}
%\renewcommand{\lstlistoflistings}{\begingroup\tocfile{\lstlistingname}{List of Code Snippets}\endgroup}
%\addcontentsline{toc}{section}{List of Code Snippets}
%\addtocontents{toc}{\contentsline {section}{\numberline {}ANEXOS:}{}}
%\addcontentsline{toc}{section}{8\ \ List of Code Snippets}
%\addtocounter{section}{1}
\lstlistoflistings
\newpage \section{Appendix}
\end{document}
答案1
你做事的方式确实有点不合时宜,最好使用常规的列表分段命令。为此,我使用了tocloft
带有[titles]
选项的包,它将使用标准分段命令。由于它使用\section*
而不是部分,我已使用修补命令etoolbox
以摆脱*
相关\listof...
命令中的。
代码listings
的工作方式略有不同,因此对于该列表,我只是重新定义了它的命令以匹配标准\listof...
定义。
biblatex
再次以不同的方式定义参考书目标题代码,但它有内置方法来重新定义它。这必须在文档的开头完成,所以我将相关命令包装在 中\AtBeginDocument
。
我从您的示例文档中删除了不相关的包和代码,但将其移至hyperref
序言末尾作为提醒:它通常应该最后加载。
\documentclass[doc,11pt]{apa6}
\usepackage[titles]{tocloft}
\usepackage{etoolbox}
\usepackage{csquotes}
\usepackage[american]{babel}
\usepackage[UKenglish]{datetime}
\usepackage[style=apa]{biblatex}
% redefine bibheading to be a regular section
\AtBeginDocument{\defbibheading{bibliography}[\bibname]{%
\section{#1}%
\markboth{#1}{#1}}}
\addbibresource{biblatex-examples.bib}
\usepackage{listings}
\renewcommand{\lstlistingname}{Code Snippet}
\renewcommand{\lstlistlistingname}{List of Code Snippets}
% Use standard sectioning code for lstlistoflistings
\makeatletter
\renewcommand{\lstlistoflistings}{\section{\lstlistlistingname }\@mkboth {\MakeUppercase \lstlistlistingname }{\MakeUppercase \lstlistlistingname }\@starttoc {lol}}
\makeatother
% Make listoftables and listoffigures numbered sections
\patchcmd{\listoffigures}{*}{}{}{}
\patchcmd{\listoftables}{*}{}{}{}
% Turning section numbering back on (turned off by apa6 document class)
\setcounter{secnumdepth}{3}
\usepackage[american]{babel}
\usepackage[UKenglish]{datetime}
\usepackage{hyperref} % load this as late a possible
% Separate content assignment from package loading
\newcommand{\titlevariable}{Good Paper}
\title{\titlevariable}
\author{A Cool Guy}
\affiliation{Nice Uni}
\shorttitle{\titlevariable}
\abstract{\ \\
Abstract ABC
}
\keywords{A, B, C}
\begin{document}
\thispagestyle{empty} \maketitle
\thispagestyle{empty}
\thispagestyle{empty}
\tableofcontents
\listoffigures
\lstlistoflistings
\pagenumbering{arabic}
\section{Foo Section}
\textcite{aksin}
\begin{figure}
\caption{A figure}
\end{figure}
\begin{lstlisting}[caption={A listing}]
Some Fancy Code
\end{lstlisting}
\section{This is the appendix}
\printbibliography
\end{document}