긴 섹션 이름을 헤더 오른쪽에 정렬

긴 섹션 이름을 헤더 오른쪽에 정렬

논문을 마무리하려고 하는데 헤더의 텍스트 정렬과 관련하여 몇 가지 문제가 있습니다. 나는 fancyhdr 패키지를 사용하고 있으며 장은 헤더의 왼쪽에, 섹션은 헤더의 오른쪽에 위치하길 원합니다. 섹션 이름이 더 길기 때문에 다음 해결책을 시도해 보았습니다.

\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}}

~를 야기하는 여기에 이미지 설명을 입력하세요

섹션의 첫 번째 줄과 두 번째 줄이 모두 오른쪽으로 정렬되지 않습니다. 또 다른 문제는 두 번째 줄이 헤더의 수평선과 충돌한다는 것입니다. 섹션을 오른쪽에 정렬하고 싶습니다. 페이지 중앙을 초과하면 새 줄에 계속됩니다.

누군가가 아이디어나 해결책을 갖고 있기를 바랍니다.

고마워요, 요하네스

답변1

\rightmark너비가 작은 미니페이지에 섹션 번호와 섹션 제목 등 의 내용을 넣을 수 있습니다 0.5\textwidth.

귀하의 목적에 맞는 데모:

\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}

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

답변2

\parbox여기서 아이디어는 남은 공간에 맞게 오른쪽 의 너비를 조정하는 것입니다 . 흥미롭게도, 헤더 상단이 항상 같은 수준에 표시되도록 하는 것이 어려운 부분이었습니다.

\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}

관련 정보