Aufteilen eines Volumens in zwei

Aufteilen eines Volumens in zwei

Ich habe eine Abschlussarbeit geschrieben und sie ist zur Abgabe bereit, aber leider beträgt die Seitenbegrenzung für einen Band 300 Seiten und meine Abschlussarbeit hat 324 Seiten. Es wurde entschieden, dass die Lösung darin besteht, die Anhänge vom Haupttext abzutrennen und in einem separaten Band zu veröffentlichen.

Was ich jetzt brauche, ist ein Inhaltsverzeichnis mit folgendem Inhalt:

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

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

Dieses Inhaltsverzeichnis soll in beiden Bänden erscheinen. Einmal in der aktuellen Form und einmal am Anfang von Band zwei.

Meine Präambel ist:

\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}

Ich weiß, das ist ähnlich wieEin Buch in mehrere Bände aufteilenDie Anforderungen an Nummerierung und Format sind jedoch unterschiedlich.

Antwort1

bookIch werde einen Weg beschreiben, wie man mit der Klasse umgehen kann, indem manetoc. Das Codebeispiel ist minimal, aber Sie sollten in der Lage sein, die relevanten Teile auf Ihren tatsächlichen Anwendungsfall zu übertragen.

siehe Update unten als Antwort auf die im Kommentar gestellte Frage

Hier sind die beiden Inhaltsverzeichnisse (mit korrekten Hyperlinks):

in zwei Teile gespalten

in zwei Teile geteilt B

Code:

\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}

Hier nun eine Variante, bei der das Inhaltsverzeichnis im zweiten Band nur noch die Anhänge auflistet. Auch die Seitennummerierung wird für Band zwei neu gestartet.

in zwei Teile geteilt 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}

Antwort2

AKTUALISIEREN

Dies erwies sich als überraschend problematisch. Ursprünglich hatte ich eine Lösung gepostet, \tableofcontentsdie auf Änderungen basierte und etwa zehn Sekunden dauerte, bevor ich feststellte, dass sie mit nicht funktionierte hyperref. Dann fand ich etwas, das funktionierte, aber umständlich war. Diese Version ist erfreulicher: Mein erster Instinkt (Änderung der Art und Weise, wie Inhaltsverzeichnisse gedruckt werden, um zwei davon zu ermöglichen) war richtig; das Problem war hyperref. Die Lösung lag in dem Vorschlag in der Antwort von pst weiter unten, der memoirdies tun könnte. Mir kam der Gedanke, dass dies memoirwahrscheinlich das Problem gelöst hatte, das ich hatte, und so kam es auch.

Das Folgende ist daher wirklich in hohem Maße dem Code von Peter Wilson zu verdanken (und ich glaube, da steckt auch etwas von David Carlisle drin), den ich übernommen habe, und dem Vorschlag von pst, sich Memoir anzusehen, ohne den ich, glaube ich, nie eine Lösung für das Problem mit gefunden hätte hyperref.

DIE METHODE

  1. Wir definieren den Befehl \startvolume{name}zum Starten eines neuen Bandes. Da der Fragesteller anscheinend nicht „Teil“ verwendet, habe ich das einfach angepasst, obwohl es zweifellos eleganter wäre, eine neue Unterteilungseinheit zu definieren. \startvolumelöscht die Seite, setzt die Seitennummerierung auf 1 zurück, druckt ein einführendes Vorsatzblatt und nimmt einen entsprechenden Eintrag im Inhaltsverzeichnis vor.

  2. Um das Inhaltsverzeichnis übersichtlich zu halten, definieren wir das interne Makro neu l@part, sodass es nicht versucht, Seitenzahlen in die Liste einzutragen. Wir verändern auch die Definition von , \partum sicherzustellen, dass wir auf unserer Bandseite keine Seitenzahlen erhalten. (Eine ordnungsgemäße Buchgestaltung erfordert, dass das Vorsatzblatt eines Bandes (a) zuerst, vor der Titelseite, kommt; (b) keine Folionummer trägt, aber (c) als Folio 1 behandelt wird.)

  3. Dann der Teil, der im Prinzip einfach erscheint, sich aber als schwierig herausgestellt hat. Die Standard-LaTeX-Definition von \tableofcontentsbedeutet, dass Sie nur eines haben können: Sobald es gedruckt wird, wird die erforderliche Datei „überschrieben“. Dies ist die Konsequenz davon, wie \@starttocgeschrieben wird. Dies ist im Prinzip nicht schwer zu ändern und wird nur schwierig, weil hyperrefauch Fummelei dazukommt. Wie auch immer, memoirich habe den richtigen Code übernommen.

  4. Das hat alles funktioniert, aber hyperref hat sich beschwert, weil das Zurücksetzen der Seitennummerierung es durcheinander gebracht hat. Ich habe verschiedene Lösungen ausprobiert. Am Ende schien die einfachste und zuverlässigste die Verwendung der Option zu sein hypertexnames=false; das scheint zu funktionieren, aber es ist wahre Cargo-Kult-Programmierung der schlimmsten Sorte, da ich nicht so tun kann, als würde ich wirklich verstehen, was passiert.

  5. An musste ein wenig optimiert werden \backmatter, da (da niemand damit gerechnet hatte, dass es unmittelbar aus folgen könnte \frontmatter!) die Seitennummerierung nicht auf Roman zurückgesetzt wird.

Ich habe dies mit den vielen Paketen, die Sie verwenden, nicht umfassend getestet, daher kann es zweifellos einiges an Fummelei erfordern. Aber es ist zumindest ein Anfang.

\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}

Antwort3

Wenn ein Wechsel von bookzu memoirso spät im Prozess akzeptabel ist, können Sie das verwenden. Eine Funktion davon ist, dass \tableofcontentsund ähnliche Befehle wiederholt werden können, da sie bei Verwendung nicht gelöscht werden, wie in den Standardklassen. Hier ist ein nicht ausgefeilter Proof-of-Concept, wie dies in gemacht werden kann memoir, wodurch ein Ergebnis entsteht, das anschließend in die beiden Bände aufgeteilt werden kann.

\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}

verwandte Informationen