목차의 목록 이름은 항상 "내용"입니다.

목차의 목록 이름은 항상 "내용"입니다.

\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 ListingsToC 항목 \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

Christian과 Johannes의 의견에 제시된 제안은 작동하지 않는 것 같습니다. 따라서 실제로 무슨 일이 일어나고 있는지 이해하지 못한 채 문제를 해결하기 위한 총체적인 해킹이 있습니다. 명확히 하기 위해 이것은 논문 수업을 기반으로 합니다.없이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}

설명: 줄 편집기를 사용하여 sedTOC 항목이 포함된 보조 파일을 수정합니다. 의 두 번째 항목 {Contents}과 그 다음에 나오는 다른 항목을 대체하지만 그게 중요하지 않기를 바랍니다 {List of Code}.

이것이 작동하려면 옵션을 사용하여 TeX를 실행해야 합니다 --shell-escape.

다음에는 선의로 사용자 정의 클래스 템플릿을 사용하지 마십시오. 가능할 때마다 표준 클래스를 고수하고 가능할 때마다 표준 패키지를 사용하여 사용자 정의하십시오. 이는 이상한 버그를 피하는 데 도움이 됩니다. 표면에 나타나는 버그는 일반적으로 이전에 야생에서 관찰되었으므로 도움을 받기가 더 쉽습니다.

관련 정보