\lstlistoflistings
目次で常に Contents という名前を使用します。
私は調べてみた 目次の 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}
名前は TOC に正しく表示されますが、リストはリスト ページに表示されず、空のままです。
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
クリスチャンとヨハネスのコメントで提案された方法はうまくいかないようです。そこで、何が起こっているのか実際に理解することなく、物事を修正するためのひどいハックを紹介します。明確にするために、これはあなたの論文クラスに基づいています。それなしTOC エントリの名前を変更したが、リストのリスト自体は消えてしまった編集。
\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 エントリを含む補助ファイルを変更します。 の 2 番目の出現箇所{Contents}
(およびそれ以降の出現箇所もすべて、ただし問題にならないことを願います) を に置き換えます{List of Code}
。
これを機能させるには、--shell-escape
オプションを指定して TeX を実行する必要があります。
次回は、カスタム クラス テンプレートを鵜呑みにせず、可能な限り標準クラスを使用し、可能な限り標準パッケージを使用してカスタマイズするようにしてください。これにより、奇妙なバグを回避できます。実際に発生したバグは、通常、以前に実際に観察されたものであるため、サポートを受けやすくなります。