Ich stehe vor der Herausforderung, die Seitennummerierung im Vorspann meiner Abschlussarbeit anzupassen. Ich habe eine Musterarbeit heruntergeladen, dieHier, das die Klasse book als Grundlage für die neu definierte Klasse verwendet Thesis.cls
. Um das unten stehende MWE zu kompilieren, benötigen Sie außerdem die Dateien vector.sty
und lstpatch.sty
aus dem von mir bereitgestellten Link (es sei denn, ich muss sie kopieren und in den Hauptteil meiner Frage einfügen). Wenn ich auf Details verzichte, sieht mein Klassendokument ungefähr so aus:
\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\ProvidesClass{Thesis}
[2007/22/02 v1.0
LaTeX document class]
\def\baseclass{book}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}}
\def\@checkoptions#1#2{
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}
\@tempswafalse
\@tfor\@this:=#2\do{
\@expandtwoargs\in@{,\@this,}{,\@curroptions,}
\ifin@ \@tempswatrue \@break@tfor \fi}
\let\@this\@empty
\if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi
}
\@checkoptions{11pt}{{10pt}{11pt}{12pt}}
\PassOptionsToClass{a4paper}{\baseclass}
\ProcessOptions\relax
\LoadClass{\baseclass}
\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}}
\newcommand\Declaration[1]{
\btypeout{Approval of the Dissertation Committee}
\addtotoc{Approval of the Dissertation Committee}
\thispagestyle{plain}
\null\vfil
%\vskip 60\p@
\begin{center}{\huge\bf Approval of the Dissertation Committee\par}\end{center}
%\vskip 60\p@
{\normalsize #1}
\vfil\vfil\null
%\cleardoublepage
}
\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule}
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space \number\year}
\usepackage{setspace}
\onehalfspacing
\setlength{\parindent}{0pt}
\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex}
\usepackage{vmargin}
\setmarginsrb { 1.5in} % left margin
{ 0.6in} % top margin
{ 1.0in} % right margin
{ 0.8in} % bottom margin
{ 20pt} % head height
{0.25in} % head sep
{ 9pt} % foot height
{ 0.3in} % foot sep
\raggedbottom
\setlength{\topskip}{1\topskip \@plus 5\p@}
\doublehyphendemerits=10000 % No consecutive line hyphens.
\brokenpenalty=10000 % No broken words across columns/pages.
\widowpenalty=9999 % Almost no widows at bottom of page.
\clubpenalty=9999 % Almost no orphans at top of page.
\interfootnotelinepenalty=9999 % Almost never break footnotes.
\usepackage{fancyhdr}
\lhead[\rm\thepage]{\fancyplain{}{\sl{\rightmark}}}
\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage}
\chead{}\lfoot{}\rfoot{}\cfoot{}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\btypeout{\thechapter\space #1}\markboth{\@chapapp\ \thechapter\ #1}{\@chapapp\ \thechapter\ #1}}
\renewcommand{\sectionmark}[1]{}
\renewcommand{\subsectionmark}[1]{}
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}
\thispagestyle{empty}
\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\usepackage{amsmath,amsfonts,amssymb,amscd,amsthm,xspace}
\theoremstyle{plain}
\newtheorem{example}{Example}[chapter]
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{axiom}[theorem]{Axiom}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\theoremstyle{remark}
\newtheorem{remark}[theorem]{Remark}
\usepackage[centerlast,small,sc]{caption}
\setlength{\captionmargin}{20pt}
\newcommand{\fref}[1]{Figure~\ref{#1}}
\newcommand{\tref}[1]{Table~\ref{#1}}
\newcommand{\eref}[1]{Equation~\ref{#1}}
\newcommand{\cref}[1]{Chapter~\ref{#1}}
\newcommand{\sref}[1]{Section~\ref{#1}}
\newcommand{\aref}[1]{Appendix~\ref{#1}}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{.85}
\renewcommand{\textfraction}{0.1}
\renewcommand{\dbltopfraction}{.85}
\renewcommand{\floatpagefraction}{0.75}
\renewcommand{\dblfloatpagefraction}{.75}
\setcounter{topnumber}{9}
\setcounter{bottomnumber}{9}
\setcounter{totalnumber}{20}
\setcounter{dbltopnumber}{9}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage[scriptsize]{subfigure}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{listings}
\usepackage{lstpatch}
\lstset{captionpos=b,
frame=tb,
basicstyle=\scriptsize\ttfamily,
showstringspaces=false,
keepspaces=true}
\lstdefinestyle{matlab} {
language=Matlab,
keywordstyle=\color{blue},
commentstyle=\color[rgb]{0.13,0.55,0.13}\em,
stringstyle=\color[rgb]{0.7,0,0} }
\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true,
bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false,
colorlinks,linkcolor={blue},citecolor={blue},urlcolor={red},
pdfstartview={FitV},unicode,breaklinks=true]{hyperref}
\pdfstringdefDisableCommands{
\let\\\space
}
\newcommand*{\supervisor}[1]{\def\supname{#1}}
\newcommand*{\examiner}[1]{\def\examname{#1}}
\newcommand*{\degree}[1]{\def\degreename{#1}}
\newcommand*{\authors}[1]{\def\authornames{#1}}
\newcommand*{\addresses}[1]{\def\addressnames{#1}}
\newcommand*{\university}[1]{\def\univname{#1}}
\newcommand*{\UNIVERSITY}[1]{\def\UNIVNAME{#1}}
\newcommand*{\department}[1]{\def\deptname{#1}}
\newcommand*{\DEPARTMENT}[1]{\def\DEPTNAME{#1}}
\newcommand*{\group}[1]{\def\groupname{#1}}
\newcommand*{\GROUP}[1]{\def\GROUPNAME{#1}}
\newcommand*{\faculty}[1]{\def\facname{#1}}
\newcommand*{\FACULTY}[1]{\def\FACNAME{#1}}
\newcommand*{\subject}[1]{\def\subjectname{#1}}
\newcommand*{\keywords}[1]{\def\keywordnames{#1}}
\supervisor {Dr. Such and Such}
\examiner {}
\degree {}
\authors {MEEE!!}
\university {\texorpdfstring{\href{}
{Real Good University}}
{Real Good University}}
\UNIVERSITY {\texorpdfstring{\href{}
{REAL GOOD UNIVERSITY}}
{REAL GOOD UNIVERSITY}}
\department {\texorpdfstring{\href{}
{Department of Fizzx}}
{Department of Fizzx}}
\DEPARTMENT {\texorpdfstring{\href{}
{DEPARTMENT OF FIZZX}}
{DEPARTMENT OF FIZZX}}
\group {\texorpdfstring{\href{Research Group Web Site URL Here (include http://)}
{Research Group Name}}
{Research Group Name}}
\GROUP {\texorpdfstring{\href{Research Group Web Site URL Here (include http://)}
{RESEARCH GROUP NAME (IN BLOCK CAPITALS)}}
{RESEARCH GROUP NAME (IN BLOCK CAPITALS)}}
\faculty {\texorpdfstring{\href{Faculty Web Site URL Here (include http://)}
{Faculty Name}}
{Faculty Name}}
\FACULTY {\texorpdfstring{\href{Faculty Web Site URL Here (include http://)}
{FACULTY NAME (IN BLOCK CAPITALS)}}
{FACULTY NAME (IN BLOCK CAPITALS)}}
\addresses {}
\subject {}
\keywords {}
\renewcommand\maketitle{
\btypeout{Title Page}
\hypersetup{pdftitle={\@title}}
\hypersetup{pdfsubject=\subjectname}
\hypersetup{pdfauthor=\authornames}
\hypersetup{pdfkeywords=\keywordnames}
\thispagestyle{empty}
\begin{titlepage}
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\setcounter{footnote}{1}
\null\vfil
\vskip 60\p@
\begin{center}
\setlength{\parskip}{0pt}
%{\large\textbf{Claremont Graduate University}\par}
\vfill
{\huge \bf \@title \par}
\vfill
{\LARGE by \par}
\smallskip
{\LARGE \authornames \par}
\vfill
{\large A thesis submitted in partial fulfillment for the \par}
{\large degree of Doctor of Philosophy in Mathematics \par}
\bigskip
\bigskip
{\large in the \par}
%{\large \facname \par}
{\large \deptname \par}
{\large \univname \par}
\bigskip
\bigskip
\bigskip
{\Large \@date \par}
\bigskip
\end{center}
\par
\@thanks
\vfil\null
\end{titlepage}
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
\cleardoublepage
}
\newenvironment{abstract}
{
\btypeout{Abstract Page}
\thispagestyle{empty}
\null\vfil
\begin{center}
\setlength{\parskip}{0pt}
{\huge{\textit{Abstract}} \par}
\bigskip
{\normalsize\bf A Pretty Decent(?) Thesis \par}
\medskip
{\normalsize by \par}
{\normalsize \authornames \par}
\bigskip
{\normalsize \UNIVNAME : 2019 \par}
\bigskip
% {\normalsize \facname \par}
% {\normalsize \deptname \par}
% \bigskip
% {\normalsize Doctor of Philosophy\par}
%\bigskip
\end{center}
}
{
\vfil\vfil\vfil\null
\cleardoublepage
}
\addtocounter{secnumdepth}{1}
\setcounter{tocdepth}{6}
\newcounter{dummy}
\newcommand\addtotoc[1]{
\refstepcounter{dummy}
\addcontentsline{toc}{chapter}{#1}}
\renewcommand\tableofcontents{
\btypeout{Table of Contents}
\begin{spacing}{1}{
\setlength{\parskip}{1pt}
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}
\@starttoc{toc}
\if@restonecol\twocolumn\fi
\cleardoublepage
}\end{spacing}
}
\renewcommand\listoffigures{
\btypeout{List of Figures}
\addtotoc{List of Figures}
\begin{spacing}{1}{
\setlength{\parskip}{1pt}
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\listfigurename
\@mkboth{\MakeUppercase\listfigurename}
{\MakeUppercase\listfigurename}}
\@starttoc{lof}
\if@restonecol\twocolumn\fi
\cleardoublepage
}\end{spacing}
}
\renewcommand\listoftables{
\btypeout{List of Tables}
\addtotoc{List of Tables}
\begin{spacing}{1}{
\setlength{\parskip}{1pt}
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\listtablename
\@mkboth{
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}
\@starttoc{lot}
\if@restonecol\twocolumn\fi
\cleardoublepage
}\end{spacing}
}
\newcommand\listsymbolname{Abbreviations}
\usepackage{longtable}
\newcommand\listofsymbols[2]{
\btypeout{\listsymbolname}
\addtotoc{\listsymbolname}
\chapter*{\listsymbolname
\@mkboth{
\MakeUppercase\listsymbolname}{\MakeUppercase\listsymbolname}}
\begin{longtable}[c]{#1}#2\end{longtable}\par
\cleardoublepage
}
\newcommand\listconstants{Physical Constants}
\usepackage{longtable}
\newcommand\listofconstants[2]{
\btypeout{\listconstants}
\addtotoc{\listconstants}
\chapter*{\listconstants
\@mkboth{
\MakeUppercase\listconstants}{\MakeUppercase\listconstants}}
\begin{longtable}[c]{#1}#2\end{longtable}\par
\cleardoublepage
}
\newcommand\listnomenclature{Symbols}
\usepackage{longtable}
\newcommand\listofnomenclature[2]{
\btypeout{\listnomenclature}
\addtotoc{\listnomenclature}
\chapter*{\listnomenclature
\@mkboth{
\MakeUppercase\listnomenclature}{\MakeUppercase\listnomenclature}}
\begin{longtable}[c]{#1}#2\end{longtable}\par
\cleardoublepage
}
\newcommand\acknowledgements[1]{
\btypeout{Acknowledgements}
\addtotoc{Acknowledgements}
\thispagestyle{plain}
\begin{center}{\huge{\textit{Acknowledgements}} \par}\end{center}
{\normalsize #1}
\vfil\vfil\null
}
\newcommand\dedicatory[1]{
\btypeout{Dedicatory}
\thispagestyle{plain}
\null\vfil
\vskip 60\p@
\begin{center}{\Large \sl #1}\end{center}
\vfil\null
\cleardoublepage
}
\renewcommand\backmatter{
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\addtotoc{\bibname}
\btypeout{\bibname}
\@mainmatterfalse}
\endinput
Ich habe auch ein MWE zum Kompilieren beigefügt:
\documentclass[a4paper, 11pt, oneside]{Thesis}
\begin{document}
\setstretch{1.3}
\fancyhead{}
\rhead{} %\thepage}
\lhead{}
\pagestyle{empty}
\frontmatter
\title {A Pretty Decent(?) Thesis}
\authors {Me}
\maketitle
%% ----------------------------------------------------------------
% The "Funny Quote Page"
\pagestyle{empty} % No headers or footers for the following pages
\null\vfill
\begin{flushright}
Ha! A limerick\\
The bane of my existence\\
Thank goodness I'm done
\end{flushright}
\vfill\vfill\vfill\vfill\vfill\vfill\null
\clearpage % Funny Quote page ended, start a new page
\addtotoc{Abstract} % Add the "Abstract" page entry to the Contents
\abstract{
\addtocontents{toc}{\vspace{1em}}
It's a pretty good thesis, I promise.
}
\clearpage
\setstretch{1.3}
\pagestyle{fancy}
\acknowledgements{
\addtocontents{toc}{\vspace{1em}}
Thank you, I love you, Babye.
}
\pagestyle{fancy}
\lhead{\emph{Contents}}
\tableofcontents
\lhead{\emph{List of Figures}}
\listoffigures
\end{document}
Das Hauptproblem, das ich sehe, lässt sich anhand der vierten kompilierten Seite (den Danksagungen) verdeutlichen. Dort können wir sehen, dass dies die vierte Seite im Dokument ist, sie aber als Seite iii aufgeführt ist:
Ich möchte zwei Dinge:
- Ich möchte, dass die Nummerierung mit römischen Ziffern auf der Titelseite beginnt (d. h. die erste Seite des PDF sollte Seite i sein).
- Ich möchte nicht, dass die Nummerierung des Vorspanns erst im Abschnitt „Danksagungen“ sichtbar ist.
Mein MWE ist nicht perfekt, da die erste Seitenzahl im MWE auf der Danksagungsseite steht, während in meiner eigentlichen Dissertation die Seitenzahl i
unten im Abstract abgedruckt ist. Ich bin nicht sicher, wie ich mein MWE umfassender gestalten kann, aber hoffentlich kann ich diese Probleme nacheinander, wenn nicht sogar gleichzeitig, lösen.
Antwort1
Okay, beginnen wir mit einem kompilierbaren Code, um Ihr Problem mit zu erklären fancyhdr
.
Mit dem folgenden Code, der die Struktur Ihrer Abschlussarbeit simuliert
\documentclass[a4paper, 11pt, oneside]{book}
\usepackage{fancyhdr}
\usepackage{blindtext}
\title{A Pretty Decent Thesis}
\author{username}
\begin{document}
\frontmatter
%\pagestyle{empty} % <===================================================
\maketitle
\section*{Abstract}
\Blindtext
\tableofcontents
\listoffigures
\pagestyle{fancy} % <===================================================
\mainmatter
\chapter{Introduction}
\Blinddocument
\end{document}
Sie können sehen, dass die beiden Zeilen mit \pagestyle
wichtig sind. Wenn Sie den obigen Code kompilieren, erhalten Sie
Dort sieht man zwei Dinge: Die Seitennummerierung wird angezeigt (weil die erste \pagestyle{empty}
auskommentiert ist!) und zwar mit römischen Zahlen, wie man im roten Kreis unten sehen kann. Je nach verwendetem PDF-Viewer nummeriert der PDF-Viewer die Seiten komplett mit arabischen Zahlen (das passiert bei dir und bei mir). Das bedeutet, dass die ersten Seiten (im Druck bis mit römischen Zahlen nummeriert iv
) mit arabischen Zahlen gezählt werden. Das sieht man auf der letzten Seite nach dem Kompilieren meines Codes. Die letzte Seite bekommt im Druck die Seitenzahl 20, wird im Viewer aber als Seite 25 gezählt. Dieses Verhalten hängt vom verwendeten Viewer ab. Soweit ich mich erinnere, zeigt Acrobat beispielsweise römische und arabische Zahlen an.
Entfernen Sie nun bitte das erste Kommentarzeichen \pagestyle{empty}
. Jetzt fancyhdr
wissen Sie, dass auf allen folgenden Seiten keine Kopf- und Fußzeilen angezeigt werden dürfen (bis \pagestyle{fancy}
oder ein anderer Befehl wie „ \tableofcontents
verwendet Stil“ plain
die Standardkopf- und -fußzeile aktiviert, die fancyhdr
ich in diesem Beispielcode verwendet habe).
Nach dem Kompilieren erhalten Sie einige Seiten ohne Seitennummerierung, aber das Inhaltsverzeichnis zeigt immer noch die römische Seitennummerierung. Um das zu entfernen, müssen Sie aufrufen \thispagestyle{empty}
, da der Befehl \tableofcontents
so erstellt wurde, dass er den plain
von uns nicht gewünschten Stil verwendet. Dasselbe könnte für passieren listoffigures
!
Der folgende Code
\documentclass[a4paper, 11pt, oneside]{book}
\usepackage{fancyhdr}
\usepackage{blindtext}
\title{A Pretty Decent Thesis}
\author{username}
\pagestyle{plain}{%
\fancyhead{}
\fancyfoot[c]{}
}
\begin{document}
\frontmatter
\pagestyle{empty} % <===================================================
\maketitle
\pagestyle{empty}
\section*{Abstract}
\Blindtext
\tableofcontents
\thispagestyle{empty} % <==============================================
\listoffigures
\thispagestyle{empty} % <==============================================
\pagestyle{fancy} % <===================================================
\mainmatter
\chapter{Introduction}
\Blinddocument
\end{document}
gibt Ihnen keine Seitenzahlen im Vorspann, zeigt aber Seitenzahlen ab Kapitel 1 an:
Nun kannst du die hier erläuterten Befehle nutzen und in deiner Arbeit einsetzen, um die ungewollten Seitenzahlen loszuwerden.
Wenn Sie hyperref
Ihren Code ladenes hängt vom verwendeten PDF-Viewer abwie die angezeigten Seiten nummeriert sind. In meinem Fall – ich verwende SumatraPDF – erhalte ich dann den folgenden Bildschirm:
Jetzt kann SumatraPDF anzeigen, dass wir uns auf Seite iii
(oder 4 in arabischen Zahlen) befinden. Der Grund dafür ist, dass hyperref
die Lesezeichen aktiviert sind, die diese Information enthalten.
AKTUALISIEREN:
Die von Ihnen verwendete Klasse weist einige Fehler auf und einer davon führt zu einer falschen Nummerierung der Seite nach dem Titelblatt, auf der Sie den Limerick hinzugefügt haben.
Um diesen Fehler zu beheben, fügen Sie bitte den folgenden Code in Ihre Präambel (vorher \begin{document}
) ein, um eine neue Umgebung zu definieren, in der ich als Workaround die Seitenzahl explizit auf 2 gesetzt habe (siehe markierte Zeile <==========
):
\newenvironment{funyquote}
{
\btypeout{Funyquote Page}
\thispagestyle{empty}
\setcounter{page}{2}% <===============================================
\null\vspace{3cm}
}
{
% \vfill\vfill\vfill\vfill\vfill\vfill\null
\cleardoublepage
}
Anschließend kannst Du \maketitle
den folgenden Code hinzufügen, um Deine Seite mit Limerick zu versehen (natürlich den alten Code mit Limerick löschen!):
\clearpage
\funyquote{% <==========================================================
\begin{flushright}
Ha! A limerick\\
The bane of my existence\\
Thank goodness I'm done
\end{flushright}
} % <===================================================================
\clearpage % Funny Quote page ended, start a new page
Dann erhalten Sie das Ergebnis:
Ohne diese Korrektur erhalten Sie die falsche Seitenzahl, was zu dem von Ihnen beobachteten Problem führt:
Ich habe nicht untersucht, woher dieses Problem kommt (irgendwo im Code dieser Klasse vergraben), aber ich schlage vor, eine Standardklasse zu verwenden. Wer weiß, welche anderen Fehler noch auftreten werden ...