Dividir un volumen en dos

Dividir un volumen en dos

He escrito una tesis y está lista para enviarse, pero desafortunadamente el límite de páginas para un volumen es 300 páginas y mi tesis es 324. Se ha decidido que la solución es dividir los apéndices del texto principal y colocarlo en un documento separado. volumen.

Lo que necesito ahora es tener una página de contenido que diga:

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

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

Esta página de contenido debería aparecer en ambos volúmenes. Una vez como está actualmente y otra al comienzo del volumen dos.

Mi preámbulo es:

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

Me doy cuenta de que esto es similar aDividir un libro en varios volúmenespero las exigencias de numeración y formato son diferentes.

Respuesta1

Describiré una manera de ir con elbook clase usandoetoc. El código de muestra es mínimo, pero debería poder transferir las partes relevantes a su caso de uso real.

vea la actualización a continuación en respuesta a la pregunta formulada en el comentario

Aquí están las dos tablas de contenido (con hipervínculos correctos):

dividir en dos

dividido en dos B

Código:

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

Aquí hay ahora una variante en la que el TOC del Volumen Dos solo enumera los apéndices. También se reinicia la numeración de páginas para el Volumen Dos.

dividido en dos 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}

Respuesta2

ACTUALIZAR

Esto resultó sorprendentemente problemático. Originalmente publiqué lo que pensé que era una solución, basada en una modificación \tableofcontentsque duró unos diez segundos, antes de descubrir que no funcionaría con hyperref. Luego encontré algo que funcionó, pero que era complicado. Esta versión es más agradable: mi instinto inicial (modificar la forma en que se imprimen los índices para habilitar dos de ellos) fue correcto; el problema fue hyperref. La solución radica en la sugerencia de la respuesta de pst a continuación que memoirpodría hacer esto. Se me ocurrió que memoirprobablemente se había solucionado el problema que tenía, y así fue.

Por lo tanto, lo siguiente se debe en gran medida al código de Peter Wilson (y creo que también puede haber algo de David Carlisle allí, creo) que he adoptado, y a la sugerencia de pst de mirar Memoir, sin la cual no creo. Alguna vez habría encontrado una solución al problema conhyperref .

EL MÉTODO

  1. Definimos el comando \startvolume{name}para iniciar un nuevo volumen. Dado que el Interlocutor aparentemente no usa "parte", simplemente lo adapté, aunque sin duda sería más elegante definir una nueva unidad de sección. \startvolumeborra la página, restablece la numeración de páginas a 1, imprime una hoja de guarda introductoria y realiza una entrada apropiada en la tabla de contenido.

  2. Para mantener la tabla de contenidos ordenada, redefinimos la macro interna l@part, para que no intente poner ningún número de página en la lista. También jugueteamos con la definición de \partpara asegurarnos de no obtener un número de página en nuestra página de volumen. (El diseño adecuado de un libro requiere que la hoja de guarda de un volumen aparezca (a) primero, antes de la página de título; (b) no lleve número de folio, pero (c) se trate como el folio 1.)

  3. Luego la parte que parece fácil en principio pero resultó difícil. La definición estándar de LaTeX \tableofcontentssignifica que sólo puede tener uno: tan pronto como se imprime, el archivo necesario se "golpea". Ésta es la consecuencia de cómo \@starttocse escribe. Esto no es difícil de cambiar en principio, y se vuelve complicado sólo porque hyperreftambién se toca el violín. De todos modos, memoirtiene el código correcto, que me he apoderado.

  4. Todo esto funcionó, pero Hyperref se quejaba porque restablecer la numeración de páginas lo confundió. Probé varias soluciones. Al final, la opción más fácil y confiable parecía ser utilizar la opción hypertexnames=false; Esto parece estar funcionando, pero es una verdadera programación de culto a la carga del peor tipo, ya que no puedo pretender entender realmente lo que está sucediendo.

  5. Fue necesario realizar algunos ajustes \backmatterporque (¡ya que nadie anticipó que podría seguir inmediatamente desde \frontmatter!) no restablece la paginación a romano.

No lo he probado exhaustivamente con la gran cantidad de paquetes que utilizas, por lo que sin duda puede que sea necesario retocar un poco. Pero al menos es un comienzo.

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

Respuesta3

Si cambiar de booka memoires aceptable en una etapa tan avanzada del proceso, podría usarlo. Una característica es que \tableofcontentscomandos similares se pueden repetir, ya que no se borran cuando se usan, como en las clases estándar. Aquí hay una prueba de concepto sin pulir de cómo hacer esto en memoir, creando un resultado que luego se puede dividir en los dos volúmenes.

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

información relacionada