Как отформатировать список листингов, заголовки которых указаны как раздел, а не как глава (класс отчета)

Как отформатировать список листингов, заголовки которых указаны как раздел, а не как глава (класс отчета)

В моей диссертации есть несколько скриптов R в самом конце, как Приложение. Внутри самого приложения я хочу \lstlistoflistings.

Это форматирует список как главу (так же, как и для оглавления).

Как мне отформатировать его как раздел? Я просто хочу избежать разрыва страницы после названия главы и иметь список сразу после него, шрифтом поменьше.

Вот минимальный рабочий пример

\documentclass{report}  

\usepackage{listings}
    \lstset{language=R}
    \renewcommand{\lstlistlistingname}{List of R scripts}


\begin{document}
\tableofcontents

\chapter{the first chapter}
    \section{section1}
some text
\chapter{the second chapter}

\addcontentsline{toc}{chapter}{Appendix A}
\chapter*{Appendix A}
\lstlistoflistings

\newpage
\begin{lstlisting}[caption=A script]
some code
\end{lstlisting}

\begin{lstlisting}[caption=Another script]
some more code
\end{lstlisting}

\end{document}

Спасибо!

решение1

Вы можете загрузить tocbasicи scrhack. Затем вы можете использовать \setuptoc{lol}{leveldown}:

\documentclass{report}

\usepackage{scrhack}
\usepackage{tocbasic}
\setuptoc{lol}{leveldown}

\usepackage{listings}
    \lstset{language=R}
    \renewcommand{\lstlistlistingname}{List of R scripts}

\begin{document}
\tableofcontents

\chapter{the first chapter}
    \section{section1}
some text
\chapter{the second chapter}
\chapter*{Appendix A}
\addcontentsline{toc}{chapter}{Appendix A}
\lstlistoflistings
\newpage
\begin{lstlisting}[caption=A script]
some code
\end{lstlisting}
\begin{lstlisting}[caption=Another script]
some more code
\end{lstlisting}
\end{document}

введите описание изображения здесь

Я изменил порядок \chapter*и , \addcontentslineчтобы получить правильный номер страницы в оглавлении.

решение2

\lstlistoflistings(какое легко запоминающееся имя ;-)) \tableofcontentsна самом деле используется внутри и \@starttocнемного переопределяется для применения, но по-прежнему имеет \chapter*заголовок \tableofcontents.

С моей точки зрения, проще применить переопределение \lstlistoflistingsтаким образом, чтобы оно имело тот же вид, что и \tableofcontents.

\documentclass{report}  
\usepackage{listings}
\lstset{language=R}
\renewcommand{\lstlistlistingname}{List of R scripts}


\makeatletter
\renewcommand{\lstlistoflistings}{%
  \begingroup
  \clearpage
  \section*{\lstlistlistingname% Taken from `article.cls`....
   \@mkboth{%
     \MakeUppercase\lstlistlistingname}{\MakeUppercase   
     \lstlistlistingname}
   }%
  \@starttoc{lol}
  \endgroup
}
\makeatother




\begin{document}
\tableofcontents

\chapter{the first chapter}
\section{section1}
some text
\chapter{the second chapter}

\addcontentsline{toc}{chapter}{Appendix A}
\chapter*{Appendix A}
\lstlistoflistings

\newpage
\begin{lstlisting}[caption=A script]
some code
\end{lstlisting}

\begin{lstlisting}[caption=Another script]
some more code
\end{lstlisting}

\end{document}

введите описание изображения здесь

Связанный контент