번호가 매겨진 장을 포함한 TOC의 LOF+LOT+BIB

번호가 매겨진 장을 포함한 TOC의 LOF+LOT+BIB

그림 목록(LOF), 표 목록(LOT), 참고 문헌(BIB)이 모두 표시되기를 원합니다.번호가 매겨진보고서 문서 클래스를 사용하여 목차(TOC)에 있습니다. 나는 누군가가토비바인드이를 달성하기 위해 패키지를 사용하고 있지만quotchap더 멋진 장 제목을 얻으려면 패키지를 사용하세요.

올바른 모양을 얻으려면 \chapter 명령처럼 작동하는 LOF, LOT 및 BIB가 모두 필요하지만 기본적으로 \chapter*를 사용합니다(번호 매기기 없음). 아래 MWE(최소 작업 예제)의 표준 장에서 볼 수 있듯이 아래에 큰 장 번호와 장 제목이 생성됩니다.

사용하여etoolbox패키지에서 \patchcmd 명령을 사용하여 실제로 번호가 매겨진 장을 사용하도록 LOF 및 LOT 명령을 수정할 수 있습니다.

\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}  %force list of figures to have numbered chapter appearance
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}   %force list of tables to have numbered chapter appearance

그러나 이는 BIB 명령에서는 작동하지 않습니다.

\patchcmd{\bibliography}{\chapter*}{\chapter}{}{}  %does NOT work

사용하여토비바인드패키지 다음을 수행하여 BIB에 대한 올바른 동작을 달성할 수 있습니다.

\usepackage[numbib,chapter]{tocbibind}   %manipulate bib appearance

numbib 매개변수는 BIB에 번호를 매기고 일반 장처럼 작동하도록 합니다. 따라서 올바른 장 스타일을 가지며 목차에 원하는 대로 표시됩니다. 그러나 이렇게 하면 더 이상 라벨이 지정되지 않지만 TOC에는 여전히 표시되는(레이블이 지정되지 않은) LOF 및 LOT의 업적이 취소됩니다.

LOF, LOT 및 BIB에 대해 동시에 이를 달성하는 방법을 아는 사람이 있습니까?

다음은 최소 작업 예제(MWE)입니다.

\documentclass[a4paper,twoside,11pt,titlepage]{report}

\usepackage[grey]{quotchap}              %custom chapter appearance
\usepackage{etoolbox}                    %change commands with patchcmd
\usepackage[numbib,chapter]{tocbibind}   %manipulate bib appearance

\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}  %force list of figures to have normal chapter appearance
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}   %force list of tables to have normal chapter appearance

\begin{document}

\tableofcontents

\chapter{A normal chapter}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

\appendix

\listoffigures
\listoftables

\bibliography{bibl}{}
\bibliographystyle{plain}

\end{document}

답변1

\bibliography는 입력 문을 통해 환경을 사용하는 매크로일 뿐이므로 내부 호출 \begin{thebibliography}...\end{thebibliography}은 없지만 환경 시작 코드 에는 있습니다 .chapter*\bibliography\thebibliography

그것이 실패하는 이유입니다.

\patchcmd{\thebibliography}{\chapter*}{\chapter}{\typeout{success}}{\typeout{failed}}

그러나 작동합니다.

\documentclass[a4paper,twoside,11pt,titlepage]{report}

\usepackage[grey]{quotchap}              %custom chapter appearance
\usepackage{etoolbox}                    %change commands with patchcmd
%\usepackage[numbib,chapter]{tocbibind}   %manipulate bib appearance

\patchcmd{\listoffigures}{\chapter*}{\chapter}{}{}  %force list of figures to have normal chapter appearance
\patchcmd{\listoftables}{\chapter*}{\chapter}{}{}   %force list of tables to have normal chapter appearance
\patchcmd{\thebibliography}{\chapter*}{\chapter}{\typeout{success}}{\typeout{failed}}   %force list of tables to have normal chapter appearance

\begin{document}

\tableofcontents

\chapter{A normal chapter}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

\appendix


\listoffigures
\listoftables

\bibliography{bibl}{}
\bibliographystyle{plain}


\end{document}

여기에 이미지 설명을 입력하세요

편집하다추가 설명.

클래스 는 자체를 report정의하지 않고 \bibliographycommon 을 사용합니다 latex.ltx. 거기에는 다음과 같이 정의되어 있습니다.

\def\bibliography#1{%
  \if@filesw
    \immediate\write\@auxout{\string\bibdata{#1}}%
  \fi
  \@input@{\jobname.bbl}}

명령 은 또는 에 의해 파일 \begin{thebibliography}...\end{thebibliography}에 기록되지만 를 통해 이 환경을 입력합니다 ..bblbibtexbiber\bibliography@input

관련 정보