目錄中的清單名稱始終為“內容”

目錄中的清單名稱始終為“內容”

\lstlistoflistings在目錄中使用始終命名為“目錄”。

我確實調查過 目錄名稱中的 lstlistoflistings 條目始終為“Contents”更改列表名稱 但那裡的解決方案不起作用。

例:(我的完整序言)

\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}

更新命令更改頁面中的標題,但不更改目錄中的標題。有任何想法嗎?

編輯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目錄條目\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

克里斯蒂安和約翰內斯在評論中提出的建議似乎不起作用,所以這是一個粗俗的黑客,在沒有真正了解發生了什麼的情況下修復問題。澄清一下,這是基於您的論文課程沒有編輯重新命名了目錄條目,但使清單本身消失。

\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}

為此,您需要使用該--shell-escape選項來執行 TeX。

下次,盡量不要善意地採用自訂類模板——盡可能堅持使用標準類,並儘可能使用標準包進行自訂。這有助於避免奇怪的錯誤;那些確實出現的錯誤通常之前已經在野外觀察到過,並且更容易獲得幫助。

相關內容