외부 소프트웨어에서 생성된 부록용 사용자 지정 줄을 목차에 추가하고 싶습니다. 또한 특정 부록의 페이지 수를 지정하는 것도 가능해야 합니다. 어떻게 이를 달성할 수 있나요?
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}
생성된 목차:
불행하게도 작동하려면 모든 단일 부록에 빈 페이지를 삽입해야 합니다.
명령 의 다른 특성을 유지하면서 추가 빈 페이지를 어떻게 제거할 수 있습니까 \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
명령을 어디에서나 사용할 수 있고 추가 공백이 생성되지 않도록 추가되었습니다. "텍스트가 갑자기 나타납니다!"를 참조하세요. 예에서.
당신의 도움을 주셔서 감사합니다 :)