von White_Fox » Mo 29. Mai 2023, 11:57
Moin
Mensch, vielen Dank...super.
Ich habe mir deinen Beispielcode gerade mal etwas näher angesehen (mein Latexdokument kompiliert noch, das dauert ein wenig), ein paar tolle Tricks sind da drin die ich so noch nicht kannte. yshift als Option z.B. Die Berechnung der Koordinaten im zweiten Beispiel verstehe ich gar nicht, das brauchte ich für meine Graphiken bisher gar nicht, aber dazu werde ich mir mal die TikZ-Dokumentation mal näher ansehen.
PS: Die Kopfzeile sieht jetzt wieder genau so aus wie sie soll, vielen Dank. Was ich verschwiegen habe (Minimalbeispiel halt) ist, daß ich solche Linien auch in der Fußzeile haben wollte. Es war aber kein Problem, das anzupassen, jetzt habe ich Kopf- und Fußzeile wieder so wie vorher.
PPS: Ah, das funktioniert leider nur auf Seiten im Hochformat. Bei Seiten im Querformat (ich habe ein paar Tabellen, relativ breit und lang, und allerhand Schaltplanseiten die ich einbinden will die allesamt im Querformat sind) funktioniert das leider nicht so. Ich erweitere das Minimalbeispiel mal etwas:
%\RequirePackage{fix-cm}
\documentclass[
twoside
]{book}
\usepackage[
a4paper,
twoside=true,
top = 2cm,
inner = 1.5cm,
outer = 3cm,
bottom = 4cm
]{geometry}
\usepackage{pdflscape}
\usepackage{lipsum}
\usepackage[
absolute
% , showboxes
]{textpos}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows, positioning, calc}
\usepackage{tikzpagenodes}
%Längen für textpos
\setlength{\TPHorizModule}{1cm}
\setlength{\TPVertModule}{1cm}
%Beginn eines Absatzes nicht einrücken
\setlength{\parindent}{0em}
\definecolor{red}{RGB}{128,64,64}
\definecolor{gray}{RGB}{150,150,150}
\newcommand{\makeDecorativeHeaderlines}{
\begin{tikzpicture}[remember picture,overlay]
\draw [line width = 3pt, color = red]
($(current page.north west)!(current page header
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page header
area.south west)!(current page.south east)$);
\draw [line width = 3pt,color = gray,
transform canvas = {yshift=0.2cm}]
($(current page.north west)!(current page header
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page header
area.south west)!(current page.south east)$);
\end{tikzpicture}
}
\newcommand{\makeDecorativeFooterlines}{
\begin{tikzpicture}[remember picture,overlay]
\draw [line width = 3pt, color = red]
($(current page.north west)!(current page footer
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page footer
area.south west)!(current page.south east)$);
\draw [line width = 3pt,color = gray,
transform canvas = {yshift=0.2cm}]
($(current page.north west)!(current page footer
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page footer
area.south west)!(current page.south east)$);
\end{tikzpicture}
}
%Kopf- und Fußzeile für Hochformatseiten
\fancypagestyle{standardvertical}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[LE]{
\makeDecorativeHeaderlines
\begin{tikzpicture}[remember picture,overlay]
\node [above left = -0.16cm and 0.2cm of
current page header area.south west,
font = {\fontsize{20pt}{1.3em}\selectfont},
text=gray, fill=white] {\thepage};
\end{tikzpicture}
}
\fancyhead[RO]{
\makeDecorativeHeaderlines
\begin{tikzpicture}[remember picture,overlay]
\node [above right = -0.16cm and 0.2cm of
current page header area.south east,
font = {\fontsize{20pt}{1.3em}\selectfont},
text=gray, fill=white] {\thepage};
\end{tikzpicture}
}
\fancyfoot[C]{
\makeDecorativeFooterlines
}
}
\fancypagestyle{qformat2}{
\fancyhf{}
\fancyhead[LE]{%
\begin{textblock}{20}(1, 1.3)
\rotatebox{90}{
\makeDecorativeHeaderlines
\colorbox{white}{
\fontsize{20pt}{1.3em}
\selectfont
\textcolor{gray}{
\thepage
}
}
}
\end{textblock}
}
\fancyfoot[LO] {%
\begin{textblock}{20}(19, 1.3)
\rotatebox{90}{
\makeDecorativeHeaderlines
\colorbox{white}{
\fontsize{20pt}{1.3em}
\selectfont
\textcolor{gray}{
\thepage
}
}
}
\end{textblock}
}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\fancypagestyle{plain}[standardvertical]{}
\begin{document}
\pagestyle{standardvertical}
\chapter{Lip Sum}
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\newgeometry{
top = 2.5cm,
inner = 1.5cm,
outer = 3cm,
bottom = 2.5cm
}
\begin{landscape}
\pagestyle{qformat2}
\fancypagestyle{plain}[qformat2]{}
\chapter{Querformat Lip Sum}
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\end{landscape}
\end{document}
Mir scheint, daß ich dem tikzpagenodes-Paket irgendwie mitteilen muß, daß Header Area, Footer Area usw. nun anders liegen, finde in der kurzen Doku dazu aber keinen Befehl dazu. Andererseits würde ich erwarten daß ein Befehl, der "Current Page..." lautet, sich das für jede Seite selber neu zusammensammelt. Hast du da vielleicht auch eine Idee?
Moin
Mensch, vielen Dank...super. :)
Ich habe mir deinen Beispielcode gerade mal etwas näher angesehen (mein Latexdokument kompiliert noch, das dauert ein wenig), ein paar tolle Tricks sind da drin die ich so noch nicht kannte. yshift als Option z.B. Die Berechnung der Koordinaten im zweiten Beispiel verstehe ich gar nicht, das brauchte ich für meine Graphiken bisher gar nicht, aber dazu werde ich mir mal die TikZ-Dokumentation mal näher ansehen.
PS: Die Kopfzeile sieht jetzt wieder genau so aus wie sie soll, vielen Dank. Was ich verschwiegen habe (Minimalbeispiel halt) ist, daß ich solche Linien auch in der Fußzeile haben wollte. Es war aber kein Problem, das anzupassen, jetzt habe ich Kopf- und Fußzeile wieder so wie vorher.
PPS: Ah, das funktioniert leider nur auf Seiten im Hochformat. Bei Seiten im Querformat (ich habe ein paar Tabellen, relativ breit und lang, und allerhand Schaltplanseiten die ich einbinden will die allesamt im Querformat sind) funktioniert das leider nicht so. Ich erweitere das Minimalbeispiel mal etwas:
[code]%\RequirePackage{fix-cm}
\documentclass[
twoside
]{book}
\usepackage[
a4paper,
twoside=true,
top = 2cm,
inner = 1.5cm,
outer = 3cm,
bottom = 4cm
]{geometry}
\usepackage{pdflscape}
\usepackage{lipsum}
\usepackage[
absolute
% , showboxes
]{textpos}
\usepackage{fancyhdr}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows, positioning, calc}
\usepackage{tikzpagenodes}
%Längen für textpos
\setlength{\TPHorizModule}{1cm}
\setlength{\TPVertModule}{1cm}
%Beginn eines Absatzes nicht einrücken
\setlength{\parindent}{0em}
\definecolor{red}{RGB}{128,64,64}
\definecolor{gray}{RGB}{150,150,150}
\newcommand{\makeDecorativeHeaderlines}{
\begin{tikzpicture}[remember picture,overlay]
\draw [line width = 3pt, color = red]
($(current page.north west)!(current page header
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page header
area.south west)!(current page.south east)$);
\draw [line width = 3pt,color = gray,
transform canvas = {yshift=0.2cm}]
($(current page.north west)!(current page header
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page header
area.south west)!(current page.south east)$);
\end{tikzpicture}
}
\newcommand{\makeDecorativeFooterlines}{
\begin{tikzpicture}[remember picture,overlay]
\draw [line width = 3pt, color = red]
($(current page.north west)!(current page footer
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page footer
area.south west)!(current page.south east)$);
\draw [line width = 3pt,color = gray,
transform canvas = {yshift=0.2cm}]
($(current page.north west)!(current page footer
area.south east)!(current page.south west)$)
-- ($(current page.north east)!(current page footer
area.south west)!(current page.south east)$);
\end{tikzpicture}
}
%Kopf- und Fußzeile für Hochformatseiten
\fancypagestyle{standardvertical}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[LE]{
\makeDecorativeHeaderlines
\begin{tikzpicture}[remember picture,overlay]
\node [above left = -0.16cm and 0.2cm of
current page header area.south west,
font = {\fontsize{20pt}{1.3em}\selectfont},
text=gray, fill=white] {\thepage};
\end{tikzpicture}
}
\fancyhead[RO]{
\makeDecorativeHeaderlines
\begin{tikzpicture}[remember picture,overlay]
\node [above right = -0.16cm and 0.2cm of
current page header area.south east,
font = {\fontsize{20pt}{1.3em}\selectfont},
text=gray, fill=white] {\thepage};
\end{tikzpicture}
}
\fancyfoot[C]{
\makeDecorativeFooterlines
}
}
\fancypagestyle{qformat2}{
\fancyhf{}
\fancyhead[LE]{%
\begin{textblock}{20}(1, 1.3)
\rotatebox{90}{
\makeDecorativeHeaderlines
\colorbox{white}{
\fontsize{20pt}{1.3em}
\selectfont
\textcolor{gray}{
\thepage
}
}
}
\end{textblock}
}
\fancyfoot[LO] {%
\begin{textblock}{20}(19, 1.3)
\rotatebox{90}{
\makeDecorativeHeaderlines
\colorbox{white}{
\fontsize{20pt}{1.3em}
\selectfont
\textcolor{gray}{
\thepage
}
}
}
\end{textblock}
}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\fancypagestyle{plain}[standardvertical]{}
\begin{document}
\pagestyle{standardvertical}
\chapter{Lip Sum}
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\newgeometry{
top = 2.5cm,
inner = 1.5cm,
outer = 3cm,
bottom = 2.5cm
}
\begin{landscape}
\pagestyle{qformat2}
\fancypagestyle{plain}[qformat2]{}
\chapter{Querformat Lip Sum}
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\lipsum[1]\\
\lipsum[2]\\
\lipsum[3]\\
\lipsum[4]\\
\lipsum[5]\\
\lipsum[6]\\
\lipsum[7]\\
\lipsum[8]\\
\lipsum[9]\\
\end{landscape}
\end{document}[/code]
Mir scheint, daß ich dem tikzpagenodes-Paket irgendwie mitteilen muß, daß Header Area, Footer Area usw. nun anders liegen, finde in der kurzen Doku dazu aber keinen Befehl dazu. Andererseits würde ich erwarten daß ein Befehl, der "Current Page..." lautet, sich das für jede Seite selber neu zusammensammelt. Hast du da vielleicht auch eine Idee?