\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
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
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}
설명: 줄 편집기를 사용하여 sed
TOC 항목이 포함된 보조 파일을 수정합니다. 의 두 번째 항목 {Contents}
과 그 다음에 나오는 다른 항목을 대체하지만 그게 중요하지 않기를 바랍니다 {List of Code}
.
이것이 작동하려면 옵션을 사용하여 TeX를 실행해야 합니다 --shell-escape
.
다음에는 선의로 사용자 정의 클래스 템플릿을 사용하지 마십시오. 가능할 때마다 표준 클래스를 고수하고 가능할 때마다 표준 패키지를 사용하여 사용자 정의하십시오. 이는 이상한 버그를 피하는 데 도움이 됩니다. 표면에 나타나는 버그는 일반적으로 이전에 야생에서 관찰되었으므로 도움을 받기가 더 쉽습니다.