
Meine Aufgabe besteht darin, die Kopfzeile (automatisch) mit der optionalen Höhe darzustellen. Daher verstehe ich die Logik nicht – wie funktioniert die Kopfzeilenhöhe?
Mein Header enthält parbox
das Gleiche, height
was ich eingegeben habe. headheight
Wenn die Höhe also 128 beträgt, erhalte ich dieses Bild:
Und wenn ich 32 bin, habe ich
Meine Frage lautet also: Wie kann ich die Kopfzeile oben exakt am Seitenanfang ausrichten?
\documentclass{book}
\usepackage{fancybox,fancyhdr}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{fixltx2e}
\usepackage[left=72pt,right=72pt,
headheight=124pt,
voffset = 0pt,
textheight =540pt
]{geometry}
\usepackage{array}
\usepackage{showframe}
\fancyhf{}\fancyhead[C]{ \noindent\sbox{0}{\parbox{\textwidth}{\noindent\begin{tabular}{L{\textwidth}{p}}Non-disclosure agreement (NDA)\end{tabular}}}
\ifdim\dimexpr\ht0+\dp0<124pt
\dp0\dimexpr124pt-\ht0\fi
\makebox{\usebox{0}}\\}
\begin{document}
\pagestyle{fancy}
test
\end{document}
Antwort1
Setzen Sie es top
auf die Summe Ihrer headheight
und \headsep
. Kommentieren Sie störende Leerzeichen und entfernen Sie die \tabcolsep
in Ihrer Tabelle:
\documentclass{book}
\usepackage{fancybox,fancyhdr}
\usepackage[T1]{fontenc}
\usepackage[dvipsnames]{xcolor}
\usepackage[left=72pt,right=72pt,
headheight=124pt,
top=\dimexpr124pt+\headsep\relax,% <- added
textheight =540pt
]{geometry}
\usepackage{array}
\newcolumntype{L}[2]{>{\raggedright\arraybackslash}{#2}{#1}}
\fancyhf{}
\fancyhead[C]{%
\sbox{0}{\parbox{\textwidth}{\begin{tabular}{@{}L{\textwidth}{p}@{}}Non-disclosure agreement (NDA)\end{tabular}}}%
\ifdim\dimexpr\ht0+\dp0<124pt \dp0\dimexpr124pt-\ht0\fi
\makebox{\usebox{0}}%
}
\usepackage{lipsum}
\usepackage{showframe}
\begin{document}
\pagestyle{fancy}
\lipsum
\end{document}