Ich möchte eine Reihe von Kreisen konstruieren, die in jeder Seitenfußzeile Schulter an Schulter angeordnet sind. Die Anzahl der Kreise entspricht einfach der Anzahl der Gesamtseiten, das heißt, jeder Kreis stellt eine Seite dar. In der Mitte jedes Kreises steht die aktuelle Seitenzahl.
Dies lässt sich leicht erreichen, \foreach
wenn pgf
die Durchmesser aller Kreise gleich sind. Ich möchte jedoch, dass der Kreis, der die aktuelle Seite darstellt, einen größeren Durchmesser hat.
Der Schriftsatz ist wie die beigefügte Abbildung, die vom folgenden MWE erstellt wurde. Kann mir jemand dabei helfen?
MWE:
\documentclass{article}
\usepackage{fancyhdr,geometry,color,tikz}
\geometry{showframe}
\begin{document}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\footrulewidth}{0.4pt}
some text...
\cfoot{
\begin{tikzpicture}
\draw[fill=gray,text=white,radius=0.5](0,0)circle node{1};
\draw[fill=red,text=white,radius=1](1.5,0)circle node{2};
\draw[fill=gray,text=white,radius=0.5](3,0)circle node{3};
\end{tikzpicture}
}
\end{document}
Antwort1
So ähnlich?
\documentclass{article}
\usepackage{fancyhdr,geometry,lastpage,refcount,lipsum,tikz}
\geometry{showframe}
\usetikzlibrary{positioning}
\begin{document}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\footrulewidth}{0.4pt}
some text...
\newcounter{lastpagenumber}%
\setcounter{lastpagenumber}{\getrefbykeydefault{LastPage}{page}{1}}%
\cfoot{\begin{tikzpicture}
\coordinate (cn-0);
\foreach \X [remember=\X as \LastX (initially 0)] in {1,...,\thelastpagenumber}
{\ifnum\X=\thepage
\node[circle,fill=red,text=white,minimum size=1cm,right=0pt of cn-\LastX] (cn-\X) {\X};
\else
\node[circle,fill=gray,text=white,minimum size=0.5cm,right=0pt of cn-\LastX] (cn-\X) {\X};
\fi
}
\end{tikzpicture}
}
\lipsum[1-31]
\end{document}
Natürlich kann man die Ausgabe auf vielfältige Weise anpassen.
\documentclass{article}
\usepackage{fancyhdr,geometry,lastpage,refcount,lipsum,tikz}
\geometry{showframe}
\usetikzlibrary{positioning}
\begin{document}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\footrulewidth}{0.4pt}
some text...
\newcounter{lastpagenumber}%
\setcounter{lastpagenumber}{\getrefbykeydefault{LastPage}{page}{1}}%
\cfoot{\begin{tikzpicture}
\coordinate (cn-0);
\foreach \X [remember=\X as \LastX (initially 0)] in {1,...,\thelastpagenumber}
{\ifnum\X=\thepage
\node[circle,draw,thick,font=\sffamily\Large\bfseries,fill=red,text=white,minimum size=1cm,right=0pt of cn-\LastX] (cn-\X) {\X};
\else
\node[circle,draw,font=\sffamily\bfseries,fill=gray,text=white,minimum size=0.5cm,right=0pt of cn-\LastX] (cn-\X) {\X};
\fi
}
\end{tikzpicture}
}
\lipsum[1-31]
\end{document}
Und wenn Sie Kreise ein bisschen langweilig finden, können Sie
\documentclass{article}
\usepackage{fancyhdr,geometry,lastpage,refcount,lipsum,tikzducks,tikzlings}
\geometry{showframe}
\usetikzlibrary{positioning,backgrounds}
\begin{document}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\footrulewidth}{0.4pt}
some text...
\newcounter{lastpagenumber}%
\setcounter{lastpagenumber}{\getrefbykeydefault{LastPage}{page}{1}}%
\cfoot{\begin{tikzpicture}
\coordinate (cn-0);
\foreach \X [remember=\X as \LastX (initially 0)] in {1,...,\thelastpagenumber}
{\ifnum\X=\thepage
\node[font=\sffamily\Large\bfseries,text=white,minimum size=1cm,right=0pt of cn-\LastX] (cn-\X) {\X};
\begin{scope}[scale=0.4,on background layer,shift={(cn-\X.center)},yshift=-3em]
\marmot
\end{scope}
\else
\node[font=\sffamily\bfseries,text=black,minimum size=0.5cm,right=0pt of cn-\LastX] (cn-\X) {\X};
\begin{scope}[scale=0.3,on background layer,shift={(cn-\X.center)},yshift=-3em]
\koala
\end{scope}
\fi
}
\end{tikzpicture}
}
\lipsum[1-31]
\end{document}