
Ich erstelle ein Dokument mit book
documentclass. In diesem Dokument habe ich Kapitelmarkierungen hinzugefügt, indem ich die Antwort von @TomBombadil verwendet habe.Wie kann man auf jeder Seite eines Kapitels eine Markierung setzen?.
Das Seltsame ist, dass, obwohl der Code in den Kapiteln einwandfrei funktioniert, ich beim Hinzufügen eines Anhangs aufgrund eines seltsamen und zumindest für mich unklaren Fehlers kein Dokument erstellen kann
Mathefehler im Paket PGF: Unbekannte Funktion „A“ (in „-A/20*29.69974“).
Mein Code ist
\documentclass[11pt,a4paper]{book}
\usepackage{lipsum}
\let\MakeUppercase\relax
\usepackage{etex}%Makes able the use of many packages
\usepackage[toc,page]{appendix}
% \input{Preamble/tikz}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{background}
\usetikzlibrary{calc}
\usepackage{xifthen}
\usepackage{totcount}
\regtotcounter{chapter}
\backgroundsetup%
{ contents={%
\begin{tikzpicture}[overlay]
\pgfmathtruncatemacro{\mytotalchapters}{\totvalue{chapter} > 0 ? \totvalue{chapter} : 20}
\pgfmathsetmacro{\mypaperheight}{\paperheight/28.453}
\pgfmathsetmacro{\mytop}{-(\thechapter-1)/\mytotalchapters*\mypaperheight}
\pgfmathsetmacro{\mybottom}{-\thechapter/\mytotalchapters*\mypaperheight}
\ifcase\thechapter
\xdef\mycolor{white}
\or \xdef\mycolor{red}
\or \xdef\mycolor{orange}
\or \xdef\mycolor{yellow}
\or \xdef\mycolor{green}
\or \xdef\mycolor{blue}
\or \xdef\mycolor{violet}
% \or \xdef\mycolor{magenta}
% \or \xdef\mycolor{cyan}
\else \xdef\mycolor{black}
\fi
\ifthenelse{\isodd{\value{page}}}
{\fill[\mycolor] ($(current page.north east)+(0,\mytop)$) rectangle ($(current page.north east)+(-0.5,\mybottom)$);}
{\fill[\mycolor] ($(current page.north west)+(0,\mytop)$) rectangle ($(current page.north west)+(0.5,\mybottom)$);}
\end{tikzpicture}
},
scale=1,
angle=0
}
\begin{document}
\chapter{First chapter}
\lipsum[1]
\appendix
\chapter{Appendix Chapter}
\lipsum[1]
\end{document}
Wenn ich es entferne, \appendix
funktioniert alles einwandfrei. Irgendeine Idee, warum das passiert und wie es behoben werden kann?
Antwort1
Der \appendix
Befehl setzt den \value{chapter}
auf 0
und macht ihn zu \Alph
. Daher erhalten Sie den Fehler. Verwenden Sie anstelle des chapter
Zählers einen anderen Zähler. Hier habe ich einen definiert counter
und ihn nach jedem Kapitel mit erhöht \xpatchcmd
.
\documentclass[11pt,a4paper]{book}
\usepackage{lipsum}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\chapter}{\thispagestyle{plain}}
{\thispagestyle{plain}\stepcounter{counter}}
{}{}
\makeatother
\let\MakeUppercase\relax
\usepackage{etex}%Makes able the use of many packages
\usepackage[toc,page]{appendix}
% \input{Preamble/tikz}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{background}
\usetikzlibrary{calc}
\usepackage{xifthen}
\usepackage{totcount}
\regtotcounter{counter}
\newcounter{counter}
\backgroundsetup%
{ contents={%
\begin{tikzpicture}[overlay]
\pgfmathtruncatemacro{\mytotalcounter}{\totvalue{counter} > 0 ? \totvalue{counter} : 20}
\pgfmathsetmacro{\mypaperheight}{\paperheight/28.453}
\pgfmathsetmacro{\mytop}{-(\thecounter-1)/\mytotalcounter*\mypaperheight}
\pgfmathsetmacro{\mybottom}{-\thecounter/\mytotalcounter*\mypaperheight}
\ifcase\thecounter
\xdef\mycolor{white}
\or \xdef\mycolor{red}
\or \xdef\mycolor{orange}
\or \xdef\mycolor{yellow}
\or \xdef\mycolor{green}
\or \xdef\mycolor{blue}
\or \xdef\mycolor{violet}
% \or \xdef\mycolor{magenta}
% \or \xdef\mycolor{cyan}
\else \xdef\mycolor{black}
\fi
\ifthenelse{\isodd{\value{page}}}
{\fill[\mycolor] ($(current page.north east)+(0,\mytop)$) rectangle ($(current page.north east)+(-0.5,\mybottom)$);}
{\fill[\mycolor] ($(current page.north west)+(0,\mytop)$) rectangle ($(current page.north west)+(0.5,\mybottom)$);}
\end{tikzpicture}
},
scale=1,
angle=0
}
\begin{document}
\chapter{First chapter}
\lipsum[1]
\chapter{second chapter}
\lipsum[1]
\appendix
\chapter{Appendix Chapter}
\lipsum[1]
%\showthe\value{counter}
\end{document}