
\documentclass[twoside,11pt]{book}
\usepackage{fancyhdr,xcolor,lipsum}
\fancyhead{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot{}
\colorlet{myfancycolor}{black}
\fancypagestyle{mystyle}{
\renewcommand*\footrulewidth{1pt}
\fancyfoot[OR]{%
\color{myfancycolor}\rule{2em}{2em}\raisebox{0.5em}{\hspace{-2em}\color{white}\makebox[2em][c]{\textsf{\thepage}}}%
\vspace*{-0.8em}%
}
\fancyfoot[OL]{%
\leftmark
}
\fancyfoot[EL]{%
\color{myfancycolor}\rule{2em}{2em}\raisebox{0.5em}{\hspace{-2em}\color{white}\makebox[2em][c]{\textsf{\thepage}}}%
\vspace*{-0.8em}%
}
\fancyfoot[ER]{%
\rightmark
}
}
\pagestyle{mystyle}
\begin{document}
\frontmatter
\chapter{PREFACE}
\lipsum[1-2]
\tableofcontents
\mainmatter
\chapter{LALALA}
\lipsum[1-3]
\end{document}
Ich möchte, dass die Seitenzahl des Felds in der Zeile wie folgt steht:
Ich habe versucht, den Wert auf \raisebox
-1 em, -2 em zu ändern, und das Layout lässt sich nicht ändern.
Wie kann man dafür sorgen, dass die Seitenzahl des Felds in einer Zeile steht?
Antwort1
Sie können das entfernen \renewcommand\footrulewidth{1pt}
und Ihr eigenes erstellen \hrule
(d. h. kein \hrule
vom verwendeten Paket generiertes). Auf Ihr \hrule
kann unmittelbar ein folgen , sodass zwischen und \hbox
kein Leerzeichen steht . Es kann beispielsweise so aussehen:\hrule
\hbox
\fancyfoot[EL]{%
\kern-3ex % all material is shifted up by 3ex
\color{myfancycolor}
\hrule height1pt % your \hrule
\hbox{\rlap{\vrule height1.3em width2em depth.7em}% you black box
\hbox to2em{\hss\color{white}{\textsf{\thepage}}\hss}}%
}
Antwort2
Packen Sie das Ganze in ein anderes \raisebox
:
\raisebox{4pt}[2em]{\color{myfancycolor}\rule{2em}{2em}\raisebox{0.5em}{\hspace{-2em}\color{white}\makebox[2em][c]{\textsf{\thepage}}}%
\vspace*{-0.8em}}