tikzmark in fancyhdr wird nicht auf jede Seite aktualisiert.

Editoren wie TexWorks, TeXmaker, TeXstudio, TeXnicCenter, Kile, LyX, vi, Emacs und Co.


DanielE
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 8. Mär 2019, 07:47

tikzmark in fancyhdr wird nicht auf jede Seite aktualisiert.

Beitrag von DanielE »

Hallo,
ich habe eine Problem mit dem fancy header.
Ich habe im Header eine Tabelle erstellt. Einige Zellen der Tabelle sind grau gefüllt.

Da es beim Acrobat Reader zur Überlappung der gefüllten Zellen und der Linien kommt, habe ich die Linien mit tikz neu gezeichent.

Jedoch wird das neuzeichnen nicht auf jeder Seite übernommen, sondern nur auf der ersten Seite.
\documentclass[10pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage[table,xcdraw]{xcolor}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{blindtext}

\renewcommand{\headrulewidth}{0pt} 

\fancypagestyle{myStyle}{
\fancyhead{} % clears all header fields
\fancyhead[L]{\renewcommand{\arraystretch}{0.6}
\tikzmark{tstart}%
\begin{tabular}{lllll}
% first row
\multicolumn{2}{l}{Text} & 
\multicolumn{3}{l}{Text Text} \\
% second row
\multicolumn{2}{l}{\rule{0pt}{10pt}\scriptsize Text - Text} & 
\multicolumn{2}{l}{\textcolor{blue}{Text}} & \multicolumn{1}{r}{Page:  \thepage (\pageref{LastPage})} \\ \noalign{\pgfmark{z12}}
% third row
\multicolumn{2}{l}{\tiny\cellcolor[gray]{.8}Prepared by} &
\multicolumn{3}{l}{\tiny\cellcolor[gray]{.8}Document name} \\ \noalign{\pgfmark{z13}}
% forth row
\multicolumn{2}{l}{\rule{0pt}{10pt}Person} & 
\multicolumn{3}{l}{Mini Example} \\ \noalign{\pgfmark{z14}}
% fifth row
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Checked by} & 
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Released by} & 
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Release data} & 
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Rev.} & 
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Project / Reference} \\ \noalign{\pgfmark{z15}}
% sixth row
\multicolumn{1}{m{3.8cm}}{\hfill\tikzmark{c11}\kern-\tabcolsep} & 
\multicolumn{1}{m{3.8cm}}{\hfill\tikzmark{c12}\kern-\tabcolsep} & 
\multicolumn{1}{m{2cm}}{Date\hfill\tikzmark{c13}\kern-\tabcolsep} & 
\multicolumn{1}{m{1cm}}{00\hfill\tikzmark{c14}\kern-\tabcolsep} & 
\multicolumn{1}{m{3.2cm}}{\hfill\tikzmark{c15}\kern-\tabcolsep} \\ \noalign{\pgfmark{z16}}
\end{tabular}}%

%draw second line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z12}) --({pic cs:c15} |- {pic cs:z12});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z13}) --({pic cs:c15} |- {pic cs:z13});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z14}) --({pic cs:c15} |- {pic cs:z14});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z15}) --({pic cs:c15} |- {pic cs:z15});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z16}) --({pic cs:c15} |- {pic cs:z16});
%draw left line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z12}) --({pic cs:tstart} |- {pic cs:z16});
%draw right line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c15} |- {pic cs:z12}) --({pic cs:c15} |- {pic cs:z16});
%draw second vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c11} |- {pic cs:z14}) --({pic cs:c11} |- {pic cs:z16});
%draw third vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c12} |- {pic cs:z12}) --({pic cs:c12} |- {pic cs:z16});
%draw fourth vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c13} |- {pic cs:z14}) --({pic cs:c13} |- {pic cs:z16});
%draw fifth vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c14} |- {pic cs:z14}) --({pic cs:c14} |- {pic cs:z16});

\fancyfoot{} % clear all footer fields
\fancyfoot[l]{\tiny Basic template:}
\fancyfoot[r]{\tiny A printed version of this document is not under document control}
}

\begin{document}
\pagestyle{myStyle}

\section{Example}
\blindtext
\blindtext[1]
\blindtext[2]
\blindtext[3]
\blindtext[4]

\end{document}
Wie bekomme ich es hin, dass die Linien auf jeder Seite gezeichnet werden?

Gast

Beitrag von Gast »

Du machst das Zeichen der Linien gar nicht als Teil des Kopfes oder Fußes, also wirklich als Teil des Seitenstils, sondern als Teil der Umschaltung auf den Seitenstil. Damit werden sie nur auf der Seite gezeichnet, auf der der Seitenstil wirklich aktiviert wird. Du musst also das Zeichnen der Linien in die Kopf- oder Fußdefinition verschieben.

Und da wäre da noch die Warnung wegen der zu geringen Höhe des Kopfes und entsprechend wegen der zu breiten Tabelle im Kopf. Beides kann man beseitigen. Statt \headwidth auf einen Wert anzupassen, den ich erst einmal ermitteln müsste, habe ich den einfachen Weg gewählt, die Tabelle per \makebox aus dem Kopf herausragen zu lassen:
\documentclass[10pt,a4paper]{article}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage[table,xcdraw]{xcolor}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usepackage{blindtext}

\renewcommand{\headrulewidth}{0pt}
% Kopfhöhe korrigieren
\addtolength{\textheight}{-10\baselineskip}
\addtolength{\headheight}{10\baselineskip}

\fancypagestyle{myStyle}{
\fancyhead{} % clears all header fields
\fancyhead[L]{\renewcommand{\arraystretch}{0.6}
\tikzmark{tstart}%
\makebox[\textwidth][l]{\begin{tabular}{lllll}
% first row
\multicolumn{2}{l}{Text} &
\multicolumn{3}{l}{Text Text} \\
% second row
\multicolumn{2}{l}{\rule{0pt}{10pt}\scriptsize Text - Text} &
\multicolumn{2}{l}{\textcolor{blue}{Text}} & \multicolumn{1}{r}{Page:  \thepage (\pageref{LastPage})} \\ \noalign{\pgfmark{z12}}
% third row
\multicolumn{2}{l}{\tiny\cellcolor[gray]{.8}Prepared by} &
\multicolumn{3}{l}{\tiny\cellcolor[gray]{.8}Document name} \\ \noalign{\pgfmark{z13}}
% forth row
\multicolumn{2}{l}{\rule{0pt}{10pt}Person} &
\multicolumn{3}{l}{Mini Example} \\ \noalign{\pgfmark{z14}}
% fifth row
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Checked by} &
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Released by} &
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Release data} &
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Rev.} &
\multicolumn{1}{l}{\tiny\cellcolor[gray]{.8}Project / Reference} \\ \noalign{\pgfmark{z15}}
% sixth row
\multicolumn{1}{m{3.8cm}}{\hfill\tikzmark{c11}\kern-\tabcolsep} &
\multicolumn{1}{m{3.8cm}}{\hfill\tikzmark{c12}\kern-\tabcolsep} &
\multicolumn{1}{m{2cm}}{Date\hfill\tikzmark{c13}\kern-\tabcolsep} &
\multicolumn{1}{m{1cm}}{00\hfill\tikzmark{c14}\kern-\tabcolsep} &
\multicolumn{1}{m{3.2cm}}{\hfill\tikzmark{c15}\kern-\tabcolsep} \\ \noalign{\pgfmark{z16}}
\end{tabular}}%
%draw second line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z12}) --({pic cs:c15} |- {pic cs:z12});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z13}) --({pic cs:c15} |- {pic cs:z13});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z14}) --({pic cs:c15} |- {pic cs:z14});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z15}) --({pic cs:c15} |- {pic cs:z15});
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z16}) --({pic cs:c15} |- {pic cs:z16});
%draw left line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:tstart} |- {pic cs:z12}) --({pic cs:tstart} |- {pic cs:z16});
%draw right line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c15} |- {pic cs:z12}) --({pic cs:c15} |- {pic cs:z16});
%draw second vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c11} |- {pic cs:z14}) --({pic cs:c11} |- {pic cs:z16});
%draw third vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c12} |- {pic cs:z12}) --({pic cs:c12} |- {pic cs:z16});
%draw fourth vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c13} |- {pic cs:z14}) --({pic cs:c13} |- {pic cs:z16});
%draw fifth vertical line
\tikz[overlay,remember picture]\draw[black,]  ({pic cs:c14} |- {pic cs:z14}) --({pic cs:c14} |- {pic cs:z16});}
\fancyfoot{} % clear all footer fields
\fancyfoot[l]{\tiny Basic template:}
\fancyfoot[r]{\tiny A printed version of this document is not under document control}
}

\begin{document}
\pagestyle{myStyle}

\section{Example}
\blindtext
\blindtext[1]
\blindtext[2]
\blindtext[3]
\blindtext[4]

\end{document}

DanielE
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Fr 8. Mär 2019, 07:47

Beitrag von DanielE »

Danke, das hat mir sehr geholfen.

Antworten