Название листинга всегда "contents" в таблице содержания

Название листинга всегда "contents" в таблице содержания

используя \lstlistoflistingsвсегда называемое Содержание в оглавлении.

Я действительно посмотрел Запись lstlistoflistings в названии оглавления всегда имеет вид «Содержание»и Изменить название листинга но предложенные там решения не сработали.

Пример: (моя полная преамбула)

\documentclass[11pt, oneside]{Thesis} 
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplots,filecontents}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{booktabs,colortbl}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{listings}
\usepackage{color}
\usepackage{comment}
\usepackage[official]{eurosym}
\usepackage{colortbl}
\usepackage{algorithm} 
\usepackage{algpseudocode}
\usepackage{indentfirst}
\usepackage{latexsym}
\usepackage{titlesec}
\usepackage[square, numbers, comma, sort&compress]{natbib}  
\hypersetup{urlcolor=blue, colorlinks=true} 
\renewcommand{\lstlistlistingname}{List of Code} 

\begin{document}

\tableofcontents
\lstlistoflistings
\lstinputlisting[language=python,firstline=1,lastline=68,caption=some caption here., label=code:getbb]{Code/getBoundingBox.py}
\end{document}

Команда renew изменяет заголовок на странице, но не в оглавлении. Есть идеи?

ИЗМЕНИТЬ x2:

Удалось правильно назвать, отредактировав это вThesis.cls

 }
 \renewcommand\lstlistoflistings{
 \btypeout{List of Listings}
 \addtotoc{List of Listings}
 \begin{spacing}{1}{
\setlength{\parskip}{1pt}
\if@twocolumn
  \@restonecoltrue\onecolumn
\else
  \@restonecolfalse
\fi
\chapter*{\lstlistlistingname
  \@mkboth{
      \MakeUppercase\lstlistlistingname}{\MakeUppercase\lstlistlistingname}}
\@starttoc{lot}
\if@restonecol\twocolumn\fi
\cleardoublepage
 }\end{spacing}

Теперь имя отображается правильно в оглавлении, но списки не отображаются на странице списков, она просто пустая.

MWE можно найти здесь:https://www.dropbox.com/sh/xehv0crr7rqyptp/AAB-eNpJVLVpfQikO3IO3yCza?dl=0

решение1

Используется версия шаблона 1.43 (17/5/14).

\documentclass[12pt, oneside]{Thesis} % The default font size and one-sided printing (no margin offsets)

\usepackage{etoolbox}

\begin{document}

\tableofcontents
\patchcmd{\tableofcontents}{\addtotoc{Contents}}{\addtotoc{Wombat}}{}{}
\lstlistoflistings

\end{document}

Вы можете заменитьВомбатлюбой строкой, которая вам нравится, может быть, даже \lstlistlistingname. В исходном шаблоне нет переопределения списков.

Проблема не проявляется в последней версии шаблона. Причина проста: класс был обновлен, чтобы избавиться от такого мусора.

решение2

Конечно, виновата жестко запрограммированная List of Listingsзапись ToC .\lstlistoflistings

Это можно изменить с помощью патча xpatchи замены List of Listingsего содержимым \lstlistlistingname(кстати, это ужасное имя макроса ;-))

\documentclass[11pt, oneside]{Thesis} 


\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplots,filecontents}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{booktabs,colortbl}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{listings}
\usepackage{color}
\usepackage{comment}
\usepackage[official]{eurosym}
\usepackage{colortbl}
\usepackage{algorithm} 
\usepackage{algpseudocode}
\usepackage{indentfirst}
\usepackage{latexsym}
\usepackage{titlesec}
\usepackage{xpatch}
\usepackage[square, numbers, comma, sort&compress]{natbib}  

\renewcommand{\lstlistlistingname}{List of codes}

\xpatchcmd{\lstlistoflistings}{
  \addtotoc{List of Listings}%
}{%
  \addtotoc{\lstlistlistingname}%
}{\typeout{patch success}}{\typeout{patching failed}}



\begin{document}


\tableofcontents

\clearpage
\lstlistoflistings


\lstinputlisting[language=python,caption=some caption here., label=code:getbb]{getBoundingBox.py}

\end{document}

решение3

Предложения, сделанные в комментариях Кристиана и Йоханнеса, похоже, не работают, поэтому вот грубый хак, чтобы исправить вещи, не понимая, что на самом деле происходит. Для ясности, это основано на вашем классе Thesisбезправка, в результате которой была переименована запись оглавления, но при этом исчез сам список листингов.

\documentclass[11pt, oneside]{Thesis} 

% long list of irrelevant packages omitted ...
\usepackage{listings}

\immediate\write18{sed -i '0,/{Contents}/! s/{Contents}/{List of Code}/' \jobname.toc}

\begin{document}

\tableofcontents
\clearpage
\lstlistoflistings

\lstinputlisting[language=python,caption=some caption here., label=code:getbb]{getBoundingBox.py}

\end{document}

Объяснение: мы используем редактор строк sedдля изменения вспомогательного файла, содержащего записи TOC. Мы заменяем второе вхождение {Contents}-- а также любые другие, которые следуют за ним, но я надеюсь, что это не имеет значения -- на {List of Code}.

Чтобы это работало, вам необходимо запустить TeX с этой --shell-escapeопцией.

В следующий раз постарайтесь не принимать шаблоны пользовательских классов на веру — придерживайтесь стандартных классов, когда это возможно, и настраивайте с помощью стандартных пакетов, когда это возможно. Это помогает избежать странных ошибок; те ошибки, которые всплывают, обычно уже наблюдались в дикой природе, и проще получить помощь.

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