PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ifthenelse - Normales Kapitel, Anhang oder sonst



Thesis
30-07-2012, 13:19
Hallo Miteinander,


Ist es möglich zu testen, ob man sich gerade in einem normalen Kapitel oder im Anhang befindet?
Dies würde ich gerne wissen, um meine Kopf-Zeilen anzupassen.

Hier ein Minimalbeispiel:


\documentclass
[
a4paper,
11pt,
notitlepage,
twoside = true,
onecolumn,
headsepline,
footsepline,
chapterprefix,
numbers = noenddot,
]{scrreprt}
\usepackage[english]{babel}

\usepackage{fancyhdr}
\usepackage{ifthen}

\begin{document}

% Header Preferences

\pagestyle{headings}

\fancypagestyle{plain}{
\fancyhf{}
\fancyhead[LE, RO]{\ifthenelse{\equal{\chaptername}{Appendix}}{Appen dix - Plain Style}{\ifthenelse{\thechapter=0}{Zero Chapter - Plain Style}{\chaptername \ \thechapter}}}
}

\fancypagestyle{empty}{
\fancyhf{}
\fancyhead[LE, RO]{\ifthenelse{\equal{\chaptername}{Appendix}}{Appen dix - Empty Style}{\ifthenelse{\thechapter=0}{Zero Chapter - Empty Style}{\chaptername \ \thechapter}}}
}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE, RO]{\ifthenelse{\equal{\chaptername}{Appendix}}{Appen dix - Fancy Style}{\ifthenelse{\thechapter=0}{Zero Chapter - Fancy Style}{\chaptername \ \thechapter}}}

% Title Page
\begin{titlepage}
Title page.
\end{titlepage}

% TOC, LOF, LOT
\cleardoublepage
\newpage
\tableofcontents
\listoffigures
\listoftables

% Chapters
\newpage
\cleardoublepage
\newpage
\chapter{First Chapter}
Text chapter 1.
\chapter{Second Chapter}
Text chapter 2.

% Appendices
\newpage
\appendix
\chapter{First Appendix}
Text appendix 1.
\chapter{Second Appendix}
Text appendix 2.

\end{document}

Die Frage bezieht sich auf den rot/fett markierten Text.

\equal{\chaptername}{Appendix} scheint aber nicht so zu funktionieren.
Der Eintrag http://tex.stackexchange.com/questions/57642/checking-if-is-appendix-or-chapter konnte mir auch nicht helfen.


Besten Dank im Voraus,
Grüsse

cgnieder
30-07-2012, 14:54
\appendix definiert \chaptername nicht um, der Test ist also immer falsch. Du kannst allerdings darauf testen, ob \@chapapp \appendixname enthält:


\documentclass
[
a4paper,
11pt,
notitlepage,
twoside = true,
onecolumn,
headsepline,
footsepline,
chapterprefix,
numbers = noenddot,
]{scrreprt}
\usepackage[english]{babel}

\usepackage{fancyhdr}
% \usepackage{ifthen}

\begin{document}

% Header Preferences
\makeatletter
\newcommand*\myfancyheading[1]{%
\expandafter\ifx\@chapapp\appendixname
Appendix -- #1 Style%
\else
\ifnum\arabic{chapter}=0
Zero Chapter -- #1 Style%
\else
\chaptername\ \thechapter
\fi
\fi
}
\makeatother
\pagestyle{headings}

\fancypagestyle{plain}{
\fancyhf{}
\fancyhead[LE, RO]{\myfancyheading{Plain}}
}

\fancypagestyle{empty}{
\fancyhf{}
\fancyhead[LE, RO]{\myfancyheading{Empty}}
}

\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE, RO]{\myfancyheading{Fancy}}

% Title Page
\begin{titlepage}
Title page.
\end{titlepage}

% TOC, LOF, LOT
\cleardoublepage
\newpage
\tableofcontents
\listoffigures
\listoftables

% Chapters
\newpage
\cleardoublepage
\newpage
\chapter{First Chapter}
Text chapter 1.
\chapter{Second Chapter}
Text chapter 2.

% Appendices
\newpage
\appendix
\chapter{First Appendix}
Text appendix 1.
\chapter{Second Appendix}
Text appendix 2.

\end{document}

Grüße

Thesis
30-07-2012, 15:19
Hallo Clemens,

Besten Dank! Funktioniert alles super.
Leider steige ich in der Programmierung noch nicht durch, deshalb eine zusätzliche Frage:
Wäre es zusätzlich (z.B. unter \ifnum\arabic{chapter}=0 ) möglich zu prüfen, ob man sich auf der Titlepage, im Table of Contents, List of Figures oder List of Tables befindet?

Nochmals besten Dank im Voraus,
Grüsse

u_fischer
30-07-2012, 15:39
Wäre es zusätzlich (z.B. unter \ifnum\arabic{chapter}=0 ) möglich zu prüfen, ob man sich auf der Titlepage, im Table of Contents, List of Figures oder List of Tables befindet?

Man kann auf alles mögliche testen, aber wenn du all diese Test wirklich brauchst, ist meiner Ansicht nach irgendwas mit den von dir geplanten Seitenstilen oder mit der Definition des "Hauptstil" nicht wirklich in Ordnung.

Thesis
30-07-2012, 16:26
Hallo Ulrike,


Gut möglich, dass bei meinen Stilen etwas nicht stimmt.
Der Stil ist für einen Bericht für meinen Arbeitgeber bestimmt. Dort wird natürlich Word verwendet, aber für dieses Dokument eignet sich LaTeX viel besser.
Dabei muss ich aber eine möglichst ähnliche Formatierung wie in den Standard-Dokumenten erreichen, deshalb der Umstand.

Unter anderem sollten die Headers und Footers auf jeder Seite (inkl. TOC, LOF, Empty Pages, Plain Pages etc.) identisch (bis auf kleine Ausnahmen, deshalb die Tests) sein - gäbe es hierfür eine Möglichkeit, die gemeinsamen Dinge für alle drei Stile (Plain, Heading, Empty) auf einmal zu definieren und nur die abweichenden Bausteine einzeln abzuändern?

Vielleicht wird es mir deshalb trotzdem verraten, wie man auf Titlepage, TOC, LOF und LOT testen kann?


Besten Dank
Grüsse

cgnieder
30-07-2012, 17:10
Ich glaube, es wäre einfacher anstatt fancyhdr KOMA-Scripts scrpage2 zu verwenden. Abgesehen davon, dass Du sowieso schon eine KOMA-Script-Klasse verwendest, erlaubt Dir das, die Stile, die Du brauchst, selbst zu definieren. Die Definitionen können dann ja (fast gleich) definiert werden.

Grüße