Alinear los nombres de las secciones largas al lado derecho del encabezado

Alinear los nombres de las secciones largas al lado derecho del encabezado

Estoy intentando terminar mi tesis pero tengo algunos problemas con respecto a la alineación del texto en el encabezado. Utilizo el paquete fancyhdr y quiero que el capítulo esté ubicado en el lado izquierdo y la sección en el lado derecho del encabezado. Como tengo algunos nombres de secciones más largos, probé la siguiente solución:

\newcommand{\changefont}{
    \fontsize{10}{11}\selectfont
}

\fancyhf[lh,rh,ch]{}
\fancyhf[lh]{\begin{minipage}[t]{\textwidth}\changefont 
\slshape\raggedleft\leftmark\qquad\raggedright\rightmark\\\\
\end{minipage}}

Resultando en ingrese la descripción de la imagen aquí

Ni la primera ni la segunda línea de la sección están alineadas a la derecha. Otro problema es que la segunda línea choca con la línea horizontal del encabezado. Me gustaría tener la sección alineada a la derecha, y una vez que sobrepase el centro de la página continúa en una nueva línea.

Espero que alguien tenga una idea o incluso una solución.

Gracias johannes

Respuesta1

Puede colocar el contenido de \rightmark(es decir, el número de sección y el título de la sección) en una minipágina de ancho 0.5\textwidth.

Una demostración para su propósito:

\documentclass{book}
\usepackage{showframe}
\usepackage{fancyhdr}
\renewcommand{\chaptermark}[1]%
  {\markboth{\thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]%
  {\markright{\thesection.\ #1}}
\setlength{\headheight}{20pt}
\fancyhf{}
\fancyhead[L]{\fontsize{8}{9}\selectfont\slshape\leftmark}
\fancyhead[R]{\minipage[b]{.5\textwidth}\fontsize{8}{9}\selectfont\slshape\raggedleft\rightmark\endminipage}
\pagestyle{fancy}
\begin{document}

\chapter{AAAAA}
\section{This section is very very very very very very very very long}
some text
\newpage 
some text
\newpage
\section{aaaa}
some text

\end{document}

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Respuesta2

La idea aquí es ajustar el ancho del \parboxlado derecho para que se ajuste al espacio restante. Curiosamente, la parte difícil fue que la parte superior del encabezado siempre apareciera al mismo nivel en todo momento.

\documentclass{book}
\usepackage{showframe}
\setlength{\headheight}{20pt}
\makeatletter
\newsavebox{\lefthead}
\def\ps@myheadings{%
  \def\@oddfoot{\hfil\thepage\hfil}% assuming you want the page number somewhere
  \let\@evenfoot\@oddfoot
  \def\@oddhead{\savebox{\lefthead}{\slshape\leftmark}%
    \parbox[b][\headheight][t]{\textwidth}{\usebox\lefthead\hfill
      \parbox[t]{\dimexpr \textwidth-\wd\lefthead-\columnsep}%
        {\raggedleft\slshape\rightmark}\par}}%
  \let\@evenhead\@oddhead
  \let\@mkboth\markboth
  \def\chaptermark##1{%
    \markboth {\MakeUppercase{%
      \ifnum \c@secnumdepth >\m@ne
        \@chapapp\ \thechapter. \ %
      \fi
      ##1}}{}}%
  \def\sectionmark##1{%
    \markright {\MakeUppercase{%
      \ifnum \c@secnumdepth >\z@
        \thesection. \ %
      \fi
      ##1}}}}
\makeatother
\pagestyle{myheadings}
\begin{document}

\chapter{AAAAA}
\section{This section is very very very very very very very very long}
some text
\newpage 
some text
\newpage
\section{aaaa}
some text

\end{document}

información relacionada