更改附录目录的样式

更改附录目录的样式

这个问题是在 StackOverflow 俄语部分提出的,但没有得到回答。这个问题是自动翻译的,并进行了一些更正,我希望在这里能得到答案。

我正在写毕业论文。论文的最后应该有附录,附录必须以某种方式包含,与论文本身相对应,大致形式如下:

Table of contents

1 Chapter name ......page
  1.1 Section name ......page
     1.1.1 Subsection name ......page
Appendix А ......page
Appendix B ......page

那是:

  1. 如果附录有章节 - 它们不应该显示在目录中
  2. 附录标题不应出现在目录中

我试图突出显示问题的最小工作代码:

\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 个解决该问题的方法,但都不起作用:

  1. 命令\addtocontents{toc}{\setcounter{tocdepth}{0}}- 编译器抛出错误(类似的解决方案是为此声明一个单独的命令)
  2. tocvsec2带命令的包\settocdepth{chapter}- 根本不起作用,完全被忽略

怀疑存在一些冲突 - 因此,所有方法都不起作用。至于从内容中删除标题,我也没有找到任何解决方案,但我怀疑它需要在环境中进行替换appendices。我也在我使用的包的文档中进行了搜索tocloft

发行:TeXLive

编译器:XeLaTeX

答案1

不要将包toclofttitlesectocbibindappendixKOMA-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}

在此处输入图片描述

相关内容