Разделение одного тома на два

Разделение одного тома на два

Я написал диссертацию, и она готова к отправке, но, к сожалению, ограничение по объему тома составляет 300 страниц, а моя диссертация — 324. Было решено, что решением будет отделить приложения от основного текста и поместить их в отдельный том.

Теперь мне нужна страница с содержанием, на которой будет написано:

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

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

Эта страница содержания должна появиться в обоих томах. Один раз в том виде, в котором она есть сейчас, и один раз в начале второго тома.

Моя преамбула такова:

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

Вот теперь вариант, где оглавление во втором томе перечисляет только приложения. Также нумерация страниц для второго тома перезапускается.

разделить на две части 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которое длилось около десяти секунд, прежде чем я обнаружил, что это не будет работать с hyperref. Затем я нашел что-то, что работало, но было неуклюжим. Эта версия более приятна: мой первоначальный инстинкт (изменение способа печати таблиц содержания для включения двух из них) был верным; проблема была в hyperref. Решение заключалось в предложении в ответе pst ниже, которое memoirмогло бы сделать это. Мне пришло в голову, что, memoirвероятно, решило проблему, с которой я столкнулся, и так оно и вышло.

Поэтому все нижеследующее написано во многом благодаря коду Питера Уилсона (и, я думаю, в нем также есть что-то от Дэвида Карлайла), который я взял на вооружение, а также предложению pst взглянуть на Memoir, без которого, я не думаю, что я когда-либо нашел бы решение проблемы с hyperref.

МЕТОД

  1. Мы определяем команду \startvolume{name}для начала нового тома. Поскольку Questioner, по-видимому, не использует "part", я просто адаптировал это, хотя, несомненно, было бы элегантнее определить новую единицу секционирования. \startvolumeочищает страницу, сбрасывает нумерацию страниц на 1, печатает вводный форзац и делает соответствующую запись в оглавлении.

  2. Чтобы сохранить оглавление четким, мы переопределяем внутренний макрос l@part, так что он не пытается вставить номер страницы в список. Мы также играем с определением , чтобы \partгарантировать, что мы не получим номер страницы на странице нашего тома. (Правильный дизайн книги требует, чтобы форзац для тома был (a) первым, перед титульным листом; (b) не имел номера фолио, но (c) рассматривался как фолио 1.)

  3. Затем часть, которая в принципе кажется простой, но оказалась сложной. Стандартное определение LaTeX означает, \tableofcontentsчто у вас может быть только один: как только он напечатан, необходимый файл «затирается». Это следствие того, как \@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}

Связанный контент