한 권을 두 권으로 나누기

한 권을 두 권으로 나누기

논문을 작성했고 제출할 준비가 되었지만 아쉽게도 한 권의 페이지 제한이 300페이지이고 내 논문은 324페이지입니다. 해결책은 본문에서 부록을 분리하여 별도의 문서에 넣는 것으로 결정되었습니다. 용량.

지금 나에게 필요한 것은 다음과 같은 내용의 콘텐츠 페이지를 갖는 것입니다.

Volume one
Chapter 1  blah..... 1
Chapter 2  blah..... 4
...

Volume two
Appendix 1 ...... A1
Appendix 2 ...... A3
Appendix 3 ...... A12 
...

이 목차 페이지는 두 권 모두에 나타나야 합니다. 현재 그대로 한 번, 2권 시작 부분에 한 번.

내 서문은 다음과 같습니다

\documentclass[a4paper, 11pt, oneside]{book}

\usepackage[UKenglish]{babel}
\usepackage[left=3cm, right=3cm, bottom=3.5cm, top=3.5cm]{geometry}  
\usepackage[
        font=footnotesize, 
        center
        ]{caption}  % Changes font size of figure captions to small
\usepackage[
backend=biber,
block=space,
date=long,
doi=false,
dashed=false,
eprint=false,
firstinits=true,
isbn=false,
minnames=2,
maxnames=2,
mincitenames=2,
maxcitenames=2,
natbib=true,
sortcites=false,
sorting=nyt,
style=authoryear-comp,
terseinits=true,
uniquelist=false,
uniquename=false,
url=false
    ]{biblatex}
\addbibresource{C:/Documents and Settings/LBOYD/My Documents/LaTeX/BibTex/library.bib}

%Put initials after names...
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}    
%Remove "and" before last name. However, this also removes "and" in a textcite...
\renewcommand*{\finalnamedelim}{\space\&\space}

\usepackage{fancyhdr}   % Provides support for improved document headers
\usepackage{graphicx}   % Provides support for inserting images
\usepackage{tikz}       % Provides support for tikz images
\usetikzlibrary{arrows} % Add arrows package to tikz
\usepackage{wrapfig}    % Allows text to wrap around images
\usepackage{sidecap}    % Allows captions to be put to side of figures 
\usepackage{subfig}     % Allows us to include sub-figures
\usepackage{float}
\usepackage{pdflscape}
\usepackage{makeidx}
\usepackage[big,compact]{titlesec}
\usepackage{pdfpages}
\usepackage[inline]{enumitem}
\usepackage{multirow}
\usepackage{mathtools}

\usepackage[hidelinks]{hyperref}        
\hypersetup{
        pdftitle=Third Year Report,
        pdfauthor=Liam Boyd,
        pdfkeywords=EngD Thesis CMOS VCO Oscillator Transmission
        }

\usepackage{longtable}
\usepackage{acro}% needs v0.4 of `acro'
\acsetup{
            page-name=Acronyms,
            list-style=longtable,
            list-header=chapter*,
            list-table-width=10cm,
            list-long-format=\capitalisewords
            }
\usepackage{mfirstuc}% provides\capitalisewords
\include{Frontmatter/acronyms2} %Include external acronym list.
\makeindex

\setlength{\parindent}{0in}
\usepackage{setspace}
\doublespacing

\newcommand{\comment}[1]{}

\begin{document}

%%---------------------------------------------------------------    
% FRONTMATTER
%%---------------------------------------------------------------
\pdfbookmark[0]{Title}{Title}
\input{Frontmatter/titlepage} % Custom front page

\frontmatter        
\input{Frontmatter/abstract} % Document Abstract
\addcontentsline{toc}{chapter}{Abstract}

\pagestyle{plain}   % Set page style
\input{Frontmatter/declaration}
\addcontentsline{toc}{chapter}{Declaration}

\input{Frontmatter/acknowledgments} % Acknowledgements page
\addcontentsline{toc}{chapter}{Acknowledgements}

\listoffigures                          % List of figures
\addcontentsline{toc}{chapter}{List of Figures}
\newpage                                % Start a new page
\listoftables                           % List of Tables
\addcontentsline{toc}{chapter}{List of Tables}
\newpage                                % Start a new page

\begingroup
  \setlength{\LTleft}{-\tabcolsep}
  \printacronyms
\endgroup
\addcontentsline{toc}{chapter}{Acronyms}%\printacronyms
\clearpage                              % Start a new page
\pdfbookmark[0]{Contents}{Contents}
\tableofcontents            % Insert a table of contents
\clearpage      
%%---------------------------------------------------------------
% INPUT CHAPTERS
%%---------------------------------------------------------------
\mainmatter
    \pagestyle{plain}                                               
\input{Mainmatter/Introduction}
\input{Mainmatter/DesignOptions}
\input{Mainmatter/SystemsContext}
\input{Mainmatter/MB8AW4316}
\input{Mainmatter/MB8AW5318}
\input{Mainmatter/Analysis}
\input{Mainmatter/Conclusion}

%%---------------------------------------------------------------
% BACK MATTER
%%---------------------------------------------------------------
\backmatter     % States that we are now into Appendicies
\pagestyle{plain}
\printbibliography[heading=bibintoc]        % Insert Bibliography
\input{Backmatter/Appendix}                     % Appendix 
\end{document}

나는 이것이 다음과 유사하다는 것을 깨닫습니다.책을 여러 권으로 나누기그러나 번호 매기기 및 형식 요구 사항은 다릅니다.

답변1

book수업 에 활용하는 방법을 설명하겠습니다.에톡. 코드 샘플은 최소화되어 있지만 관련 부분을 실제 사용 사례로 전환할 수 있어야 합니다.

댓글에서 묻는 질문에 대한 응답으로 아래 업데이트를 참조하세요.

다음은 두 개의 목차입니다(올바른 하이퍼링크 포함).

둘로 갈라지다

B를 두 개로 나누다

암호:

\documentclass{book}
\usepackage{hyperref}
\usepackage{blindtext}
\usepackage{etoc}

\newcommand{\TableOfContents}{%
 \centerline{\LARGE\scshape Thesis Contents}
 \vspace{0.5cm}
 \markboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}
 \phantomsection
 \addcontentsline{toc}{chapter}{Thesis contents}
 \etocsettagdepth {VolumeOne}{all}
 \etocsettagdepth {VolumeTwo}{none}
 \etocsettocstyle {\section*{Volume One}}{\bigskip}
 \tableofcontents
 \etocsettagdepth {VolumeOne}{none}
 \etocsettagdepth {VolumeTwo}{all}
 \etocsettocstyle {\section*{Volume Two}}{\cleardoublepage}
 \tableofcontents
}


\begin{document}
\etocdepthtag.toc {VolumeOne}

\frontmatter
\vspace*{1cm}
\begin{center}
\huge\bfseries Volume One:\\ Oscillation Theory and Beyond
\end{center}
\vspace{2cm}
\TableOfContents

\mainmatter
\chapter{Foo}
\blindtext
\chapter{Bar}
\blindtext

\backmatter 
\etocdepthtag.toc {VolumeTwo}

\vspace*{1cm}
\begin{center}
\huge\bfseries Volume Two:\\ Appendices
\end{center}
\vspace{2cm}
\TableOfContents

\chapter{Appendix}
\blindtext
\chapter{Another appendix}
\blindtext

\end{document}

이제 제2권의 TOC에 부록만 나열되어 있는 변형이 있습니다. 또한 2권에서는 페이지 번호 매기기가 다시 시작됩니다.

두 개의 C로 나뉜다

\documentclass{book}
\usepackage{hyperref}
\usepackage{blindtext}
\usepackage{etoc}

\newcommand{\TableOfContents}{%
 \centerline{\LARGE\scshape Thesis Contents}
 \vspace{0.5cm}
 \markboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}
 \phantomsection
 \addcontentsline{toc}{chapter}{Thesis contents}
 \etocsettagdepth {VolumeOne}{all}
 \etocsettagdepth {VolumeTwo}{none}
 \etocsettocstyle {\section*{Volume One}}{\bigskip}
 \tableofcontents
 \etocsettagdepth {VolumeOne}{none}
 \etocsettagdepth {VolumeTwo}{all}
 \etocsettocstyle {\section*{Volume Two}}{\cleardoublepage}
 \tableofcontents
}


\begin{document}
\etocdepthtag.toc {VolumeOne}

\frontmatter
\vspace*{1cm}
\begin{center}
\huge\bfseries Volume One:\\ Oscillation Theory and Beyond
\end{center}
\vspace{2cm}
\TableOfContents

\mainmatter
\chapter{Foo}
\blindtext
\chapter{Bar}
\blindtext

\mainmatter % to restart page numbering
\backmatter 
\etocdepthtag.toc {VolumeTwo}

\vspace*{1cm}
\begin{center}
\huge\bfseries Volume Two:\\ Appendices
\end{center}
\vspace{2cm}
\etocsettagdepth {VolumeOne}{none}
\etocsettagdepth {VolumeTwo}{all}
\etocsettocstyle {\section*{\contentsname}\phantomsection
                  \addcontentsline{toc}{chapter}{\contentsname}}
                 {\cleardoublepage}
 \markboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}
\tableofcontents

\chapter{Appendix}
\blindtext
\chapter{Another appendix}
\blindtext

\end{document}

답변2

업데이트

이것은 놀랍게도 골치 아픈 일이었습니다. 나는 원래 \tableofcontents약 10초 동안 지속된 수정을 기반으로 솔루션이라고 생각했던 것을 게시했지만 hyperref. 그런 다음 효과가 있었지만 투박한 것을 발견했습니다. 이 버전이 더 마음에 듭니다. 저의 초기 본능(목차 중 두 개를 활성화하기 위해 목차를 인쇄하는 방식을 수정함)이 옳았습니다. 문제는 이었습니다 hyperref. 해결책은 아래 pst의 답변에 있는 제안에 있습니다 memoir. memoir아마도 내가 겪고 있던 문제를 해결했을 것이라는 생각이 떠올랐고 , 그래서 그 일이 일어났습니다.

따라서 다음은 내가 채택한 Peter Wilson의 코드(그리고 거기에 David Carlisle도 있을 수 있다고 생각합니다)와 Memoir를 보라는 pst의 제안에 크게 감사합니다. 나는 문제에 대한 해결책을 추적했을 것입니다 hyperref.

방법

  1. \startvolume{name}새 볼륨을 시작하는 명령을 정의합니다 . 질문자가 분명히 "부분"을 사용하지 않기 때문에 나는 단순히 그것을 적용했습니다. 물론 새로운 단면 단위를 정의하는 것이 더 우아할 것입니다. \startvolume페이지를 지우고, 페이지 번호를 1로 재설정하고, 소개용 전단지를 인쇄하고, 목차에 적절한 항목을 만듭니다.

  2. 목차를 깔끔하게 유지하기 위해 내부 매크로를 재정의하여 l@part목록에 페이지 번호를 입력하지 않도록 했습니다. 또한 \part볼륨 페이지에 페이지 번호가 표시되지 않도록 정의를 조정합니다 . (적절한 책 디자인에서는 해당 권의 전단지가 (a) 제목 페이지 앞에 먼저 오고, (b) 폴리오 번호가 없지만 (c) 폴리오 1로 처리되어야 합니다.)

  3. 그러면 원칙적으로는 쉬울 것 같으면서도 어려운 부분이 나옵니다. 표준 LaTeX 정의는 \tableofcontents하나만 가질 수 있음을 의미합니다. 인쇄되자마자 필요한 파일은 "clobbered"됩니다. 이것이 \@starttoc쓰여진 방법의 결과입니다 . 이는 원칙적으로 변경하기 어렵지 않으며 hyperref바이올린 때문에 까다로워집니다. 어쨌든, memoir내가 지휘한 올바른 코드가 있습니다.

  4. 이 모든 것이 작동했지만 페이지 번호 매기기를 재설정하면 혼란스러워서 hyperref가 불평했습니다. 다양한 솔루션을 시도했습니다. 결국 가장 쉽고 믿을 수 있는 방법은 옵션을 사용하는 것 같았습니다 hypertexnames=false. 이것은 효과가 있는 것 같지만, 실제로 무슨 일이 일어나고 있는지 이해하는 척할 수 없기 때문에 그것은 최악의 종류의 진정한 카고 컬트 프로그래밍입니다.

  5. 에는 약간의 조정이 필요했습니다 \backmatter. 왜냐하면 (아무도 에서 즉시 따를 것이라고 예상하지 않았기 때문입니다 \frontmatter!) 페이지 매김을 로마자로 재설정하지 않기 때문입니다.

나는 여러분이 사용하는 매우 많은 패키지에 대해 이것을 포괄적으로 테스트하지 않았으므로 의심할 여지 없이 약간의 조작이 필요할 수 있습니다. 그러나 그것은 적어도 시작입니다.

\documentclass[a4paper,oneside]{book}
\usepackage{filecontents}% Just for demonstration
\begin{filecontents}{\jobname-c.tex}
\chapter{Blah}
\lipsum% Just for demonstration

\chapter{More Blah}
\lipsum
\end{filecontents}
\usepackage[hypertexnames=false]{hyperref}
\usepackage{lipsum}
\makeatletter
%This is to enable an unpaginated "part" entry in the TOC, based on l@part in book.cls
\renewcommand*\l@part[2]{%
  \ifnum \c@tocdepth >-2\relax
    \addpenalty{-\@highpenalty}%
    \addvspace{2.25em \@plus\p@}%
    \setlength\@tempdima{3em}%
    \begingroup
      \parindent \z@ \rightskip \@pnumwidth
      {\leavevmode
       \large \bfseries #1}\par
       \nobreak
         \global\@nobreaktrue
         \everypar{\global\@nobreakfalse\everypar{}}%
    \endgroup
  \fi}
%And this is simply to ensure that we get an empty page for the volume titles
\renewcommand\part{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \thispagestyle{empty}%
  \if@twocolumn
    \onecolumn
    \@tempswatrue
  \else
    \@tempswafalse
  \fi
  \null\vfil
  \secdef\@part\@spart}
%backmatter needs to be patched to reset pagination to arabic
\renewcommand\backmatter{%
  \if@openright
    \cleardoublepage
  \else
    \clearpage
  \fi
  \pagenumbering{arabic}%
  \@mainmatterfalse}
\newcommand{\secondtableofcontents}{%
  \tableofcontents
  \if@filesw
  [Table of Contents will generate here]\par 
  \typeout{Warning: No second table of contents generated. Rerun with \nofiles once all references are stable.} 
  \fi}
%Finally we patch the \@starttoc macro so that it doesn't clobber the .toc file,
%this code is taken straight from memoir. We are using hyperref here, but for
%completeness we provide for both
\renewcommand{\@starttoc}[1]{%
  \begingroup\makeatletter
    \@input{\jobname.#1}%
    \if@filesw
      \AtEndDocument{%
        \expandafter\ifx\csname tf@#1\endcsname\relax
          \expandafter\newwrite\csname tf@#1\endcsname
          \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
        \fi
      }%
    \fi
  \@nobreakfalse
  \endgroup}
\@ifpackageloaded{hyperref}{%
\Hy@AtBeginDocument{%
  \ifx\hyper@last\@undefined
    \def\@starttoc#1{%
      \begingroup\makeatletter
        \IfFileExists{\jobname.#1}{%
          \Hy@WarningNoLine{%
          old #1 file detected, not used; run LaTeX again%
          }%
        }{}%
        \if@filesw
        \AtEndDocument{%
          \expandafter\ifx\csname tf@#1\endcsname\relax
            \expandafter\newwrite\csname tf@#1\endcsname
            \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
          \fi
        }
        \fi
        \@nobreakfalse
      \endgroup
    }%
  \fi
}
}
% \startvolume{Title} at beginning of each volume: print a starting page
% for hyperref to grab and add contents line

\newcommand{\startvolume}[1]{%
  \cleardoublepage%
  \setcounter{page}{1}%
  \part*{#1}%
  \addcontentsline{toc}{part}{#1}%
}
\makeatother

\begin{document}

\frontmatter

\startvolume{I}

\tableofcontents

\mainmatter

\input{\jobname-c.tex}

\frontmatter

\startvolume{II}

\tableofcontents

\backmatter

\input{\jobname-c.tex}

\end{document}

답변3

프로세스 후반에 에서 로 변경하는 것이 허용된다면 이를 사용할 수 book있습니다 . 표준 클래스처럼 사용 시 지워지지 않기 때문에 유사한 명령을 반복할 수 memoir있다는 것도 특징입니다 . 다음은 에서 이를 수행하여 나중에 두 권으로 분할할 수 있는 결과를 생성하는 \tableofcontents방법에 대한 다듬어지지 않은 개념 증명입니다 .memoir

\documentclass{memoir}
\usepackage{blindtext}

\begin{document}

\author{A. Uthor}
\title{The Book -- Volume One}

\frontmatter
\addcontentsline{toc}{part}{Volume one}

\maketitle

\newpage
\tableofcontents*

\mainmatter

\chapter{Foo}
\blindtext
\chapter{Bar}
\blindtext

% Restart page numbering
\frontmatter
\addcontentsline{toc}{part}{Volume two}

\title{The Book -- Volume Two}
\maketitle

\newpage
\tableofcontents*

\mainmatter
\backmatter
\chapter{Appendix}
\blindtext
\chapter{Another appendix}
\blindtext

\end{document}

관련 정보