这个问题是在 StackOverflow 俄语部分提出的,但没有得到回答。这个问题是自动翻译的,并进行了一些更正,我希望在这里能得到答案。
我正在写毕业论文。论文的最后应该有附录,附录必须以某种方式包含,与论文本身相对应,大致形式如下:
Table of contents
1 Chapter name ......page
1.1 Section name ......page
1.1.1 Subsection name ......page
Appendix А ......page
Appendix B ......page
那是:
- 如果附录有章节 - 它们不应该显示在目录中
- 附录标题不应出现在目录中
我试图突出显示问题的最小工作代码:
\documentclass[fontsize=14bp,a4paper]{scrreprt}
% Подключение пакетов
%===================================================
\usepackage{polyglossia} %для русского языка
\usepackage[left=25mm, right=15mm, top=20mm, bottom=20mm, footskip=10mm]{geometry} %задаёт поля документа
\usepackage{tocloft} %пакет для оформления оглавления
\usepackage{titlesec} %пакет для оформления заголовков
\usepackage[nottoc]{tocbibind} %добавление списка источников в оглавление
\usepackage[titletoc]{appendix} %добавление приложений в оглавление
% Установка параметров для документа
%===================================================
\setdefaultlanguage[forceheadingpunctuation=false]{russian} % устанавливает главный язык документа, опция - убирает последнюю точку в нумерации заголовков
\setotherlanguage{english} % объявляет второй язык документа
\pagestyle{plain} %номера страниц будут печататься снизу и при этом колонтитулов не будет
\defaultfontfeatures{Ligatures={TeX}, Renderer=Basic}
\setmainfont{Liberation Serif}
\setsansfont{Liberation Serif}
\setmonofont{Liberation Mono}
\parindent=1.25cm %красная строка
\renewcaptionname{russian}{\contentsname}{\normalsize \MakeUppercase{Содержание}} %заголовок оглавления
\renewcaptionname{russian}{\appendixname}{Приложение} %заголовок приложений
\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} % заполнение точками Глав в оглавлении
%параметры заголовков разделов (глав)
\titleformat{\chapter}[hang]{\normalsize\bfseries}{\thechapter~}{0pt}{\thispagestyle{empty}\MakeUppercase}
\titlespacing{\chapter}{\parindent}{0bp}{2\baselineskip}
%параметры заголовков подразделов (секций)
\titleformat{\section}[hang]{\normalsize\bfseries}{\thesection~}{0pt}{}
\titlespacing{\section}{\parindent}{\baselineskip}{\baselineskip}
\titleformat{\subsection}[hang]{\normalsize\bfseries}{\thesubsection~}{0pt}{}
\titlespacing{\subsection}{\parindent}{\baselineskip}{\baselineskip}
\begin{document}
\begin{titlepage}
Титульный лист
\end{titlepage}
\tableofcontents{}
\thispagestyle{empty}
\clearpage
\chapter{Первая}
\section{Первый}
\subsection{первый}
\chapter{Вторая}
\section{Второй}
\subsection{второй}
\begin{appendices}
\titleformat{\chapter}[display]{\normalsize\bfseries}{\centering\appendixname~\thechapter}{0pt}{\centering\thispagestyle{empty}\MakeUppercase}
\titlespacing{\chapter}{\parindent}{0bp}{\baselineskip}
\titleformat{\section}[hang]{\normalsize\bfseries}{\thesection~}{0pt}{}
\titlespacing{\section}{0bp}{0bp}{\baselineskip}
\chapter{Первое приложение}
\section{Первый}
\section{Второй}
\section{Третий}
\chapter{Второе приложение}
\section{Первый}
\section{Второй}
\section{Третий}
\end{appendices}
\end{document}
我找到了 3 个解决该问题的方法,但都不起作用:
- 命令
\addtocontents{toc}{\setcounter{tocdepth}{0}}
- 编译器抛出错误(类似的解决方案是为此声明一个单独的命令) tocvsec2
带命令的包\settocdepth{chapter}
- 根本不起作用,完全被忽略
怀疑存在一些冲突 - 因此,所有方法都不起作用。至于从内容中删除标题,我也没有找到任何解决方案,但我怀疑它需要在环境中进行替换appendices
。我也在我使用的包的文档中进行了搜索tocloft
。
发行:TeXLive
编译器:XeLaTeX
答案1
不要将包tocloft
、titlesec
和tocbibind
与appendix
KOMA-Script 类一起使用。
以下是不包含这些包的建议:
\documentclass[
fontsize=14bp,
%a4paper,% default
appendixprefix,% use prefix for appendix chapters
numbers=noenddot
]{scrreprt}
\KOMAoption{toc}{%
listof,% LoF and LoT etc. get unnumbered ToC entries
bibliography,% bibliography gets unnumbered ToC entry
index,% index gets unnumbered ToC entry
chapterentrywithdots% dots between chapter heading and page number in ToC
}
% Подключение пакетов
%===================================================
\usepackage{polyglossia} %для русского языка
\usepackage[left=25mm, right=15mm, top=20mm, bottom=20mm, footskip=10mm]{geometry} %задаёт поля документа
% Установка параметров для документа
%===================================================
\setdefaultlanguage[forceheadingpunctuation=false]{russian} % устанавливает главный язык документа, опция - убирает последнюю точку в нумерации заголовков
\setotherlanguage{english} % объявляет второй язык документа
\pagestyle{plain} %номера страниц будут печататься снизу и при этом колонтитулов не будет
\defaultfontfeatures{Ligatures={TeX}, Renderer=Basic}
\setmainfont{Liberation Serif}
\setsansfont{Liberation Serif}
\setmonofont{Liberation Mono}
%\parindent=1.25cm %красная строка
\newlength{\myparindent}
\setlength{\myparindent}{1.25cm}
\setparsizes{\myparindent}{0pt}{0pt plus 1fil}
\renewcaptionname{russian}{\contentsname}{Содержание} %заголовок оглавления
\renewcaptionname{russian}{\appendixname}{Приложение} %заголовок приложений
%параметры заголовков разделов (глав)
\RedeclareSectionCommand[
font=\normalfont\normalsize\bfseries,
beforeskip=0bp,
afterskip=2\baselineskip,
innerskip=0bp
]{chapter}
\renewcommand{\chapterpagestyle}{empty}
\makeatletter
\renewcommand{\chapterlinesformat}[3]{%
\@hangfrom{\hskip\myparindent #2}{\MakeUppercase{#3}}%
}
\makeatother
\renewcommand{\chapterlineswithprefixformat}[3]{%
#2\MakeUppercase{#3}%
}
\renewcommand{\chapterformat}{\chapappifchapterprefix{\ }\thechapter~}
%параметры заголовков подразделов (секций)
\RedeclareSectionCommands[
font=\normalfont\normalsize\bfseries,
beforeskip=\baselineskip,
afterskip=\baselineskip,
indent=\myparindent,
afterindent=false
]{section,subsection}
\renewcommand{\sectionformat}{\thesection~}
\renewcommand{\subsectionformat}{\thesubsection~}
\newcommand\originalappendix{}
\let\originalappendix\appendix
\renewcommand{\appendix}{%
\originalappendix
\renewcommand{\raggedchapter}{\centering}%
\RedeclareSectionCommand[afterskip=\baselineskip]{chapter}%
\RedeclareSectionCommand[beforeskip=0bp,indent=0bp]{section}%
\addtocontents{toc}{\protect\value{tocdepth}=\chaptertocdepth}% appendix sections etc. not shown in ToC
\renewcommand\addchaptertocentry[2]{%
\addtocentrydefault{chapter}{}{\appendixname~##1}%
}% appendix titles not shown in ToC
}
\begin{document}
\begin{titlepage}
Титульный лист
\end{titlepage}
\tableofcontents
\chapter{Первая}
\section{Первый}
\subsection{первый}
\chapter{Вторая}
\section{Второй}
\subsection{второй}
\appendix
\chapter{Первое приложение}
\section{Первый}
\section{Второй}
\section{Третий}
\chapter{Второе приложение}
\section{Первый}
\section{Второй}
\section{Третий}
\end{document}