목차에 지정된 페이지 번호가 있는 사용자 정의 줄을 추가하는 방법은 무엇입니까?

목차에 지정된 페이지 번호가 있는 사용자 정의 줄을 추가하는 방법은 무엇입니까?

외부 소프트웨어에서 생성된 부록용 사용자 지정 줄을 목차에 추가하고 싶습니다. 또한 특정 부록의 페이지 수를 지정하는 것도 가능해야 합니다. 어떻게 이를 달성할 수 있나요?

MWE로서 최선을 다하겠습니다.

\documentclass{report}
\newcommand{\append}[2]{%
  \stepcounter{chapter}%
  \newpage\thispagestyle{empty}\phantom{-}%
  \addcontentsline{toc}{chapter}{\protect\numberline{\Alph{chapter}}{#1}}%
  \newpage\addtocounter{page}{-1}\addtocounter{page}{#2}%
}
\begin{document}
\tableofcontents
\chapter{Chapter 1}
Bla bla
\chapter{Chapter 2}
Bla bla bla
\appendix
\chapter{Appendix 1}
Blah
\append{Extra 1}{2}
\append{Extra 2}{1}
\end{document}

생성된 목차:

MWE

불행하게도 작동하려면 모든 단일 부록에 빈 페이지를 삽입해야 합니다.

명령 의 다른 특성을 유지하면서 추가 빈 페이지를 어떻게 제거할 수 있습니까 \input?

답변1

빈 페이지가 전혀 포함되는 것을 원하지 않고 일부 대형 CAD 도면을 별도로 플롯할 예정 \cftaddtitleline{toc}{chapter}{<text>}{<page>}이므로선적 서류 비치패키지 내용 tocloft, 49페이지:

\newcommand{\cftaddtitleline}[4]{
 \addtocontents{#1}{%
  \protect\contentsline{#2}{#3}{#4}
 }
}

\addtocontents따라서 대신에 사용해야 합니다 \addcontentsline. 다른 항목과 동일하게 표시하려면 chapter제목을 으로 정의해야 파일 \protect\numberline{\Alph{chapter}}#1}에 다음 항목이 생성됩니다 *.toc.

\contentsline {chapter}{\numberline {2}Chapter 2}{3} %automatically done with \chapter{}
\contentsline {chapter}{\numberline {A}Appendix 1}{11} %added

\thepage그러나 모든 섹션이 동일한 번호를 갖기 때문에 다음 줄에서는 이를 사용하거나 증가시킬 수 없습니다 .

  \addtocontents{toc}{\protect\contentsline{chapter}{\protect\numberline{\Alph{chapter}}#1}{\thecnt}}
  \addtocounter{page}{#2}

\thepage호출 전 으로 설정한 카운터를 추가했는데 \append, 이전 장의 번호에 영향을 주지 않도록 수정했습니다(부록 1).

\documentclass{report}

\newcounter{cnt}

\newcommand{\append}[2]{%
  \stepcounter{chapter}
  \addtocontents{toc}{\contentsline{chapter}{\protect\numberline{\Alph{chapter}}#1}{\thecnt}}
  \addtocounter{cnt}{#2}
}

\begin{document}
\tableofcontents
\chapter{Chapter 1}
Bla bla
\chapter{Chapter 2}
Bla bla bla
\appendix
\chapter{Appendix 1}
Blah

\setcounter{cnt}{\thepage}
\stepcounter{cnt}
\append{Extra 1}{7}
\append{Extra 2}{8}

% In case you want to add other 'normal' appendices
%\clearpage
%\setcounter{page}{\thecnt}
%\chapter{Appendix \thechapter}

\end{document}

답변2

잠을 좀 자고 나면 원하는 대로 작업하는 대안을 생각해 낼 수 있었습니다. 이는 U.Martinez-Corral 답변을 어느 정도 기반으로 합니다.

뒷이야기: 목차에 항목을 추가하고 지정된 양의 페이지를 예약하는 명령을 만들고 싶었습니다.

코드는 다음과 같습니다.

\documentclass{report}
\usepackage{afterpage}
\newcounter{count}
\newcounter{add}\setcounter{add}{1}
\newcommand{\append}[2]{%
    \stepcounter{chapter}%
    \setcounter{count}{\thepage}\addtocounter{count}{\theadd}%
    \addtocontents{toc}{\protect\contentsline{chapter}{\protect\numberline{\thechapter}#1}{\thecount}}%
    \addtocounter{add}{#2}%
    \afterpage{\addtocounter{page}{-1}\addtocounter{page}{\theadd}\setcounter{add}{1}}%
    \ignorespaces%
}
\begin{document}
\tableofcontents
\append{Extra 1}{3}
\append{Extra 2}{1}
\chapter{Chapter 1}
\chapter{Chapter 2}
\appendix
\chapter{Appendix A}
Some text
\append{Extra B}{2}
\append{Extra C}{1}
Text out of nowhere!
\append{Extra D}{3}
\chapter{Appendix F}
\append{Extra G}{1}
\append{Extra H}{1}
\end{document}

무슨 일이 일어나고 있는지 설명하는 몇 마디.

\setcounter{count}...줄은 이미 예약된 페이지 수를 고려하여 팬텀 장의 시작 페이지를 계산합니다.

\addtocontents...ToC에 사용자 정의 라인을 추가하면 라인의 형식이 다른 장과 동일하게 지정됩니다.

\addtocounter{add}{#2}예약된 페이지의 총 개수가 증가합니다. 이 번호는 다음 페이지나 다음 페이지에서 사용됩니다 \append.

\afterpage...새 페이지가 시작될 때 호출됩니다. 예약된 페이지 수를 카운터에 추가하고 page해당 수를 1로 재설정합니다.

\ignorespaces명령을 어디에서나 사용할 수 있고 추가 공백이 생성되지 않도록 추가되었습니다. "텍스트가 갑자기 나타납니다!"를 참조하세요. 예에서.

당신의 도움을 주셔서 감사합니다 :)

관련 정보