在論文中使用 fancyhdr 的不同標題

在論文中使用 fancyhdr 的不同標題

我一直在嘗試在我的論文中插入不同的標題。

要求是用羅馬字母顯示標題以及章節或章節的名稱。主要部分的標題應顯示章號、章標題和頁碼。背面內容應再次顯示與主要部分相同的內容,即章號、標題和頁碼。聽起來很容易。然而,我也有我的困難。

我已經嘗試過以下程式碼。它對於 frontmatter 效果很好。主要內容和背景內容都沒有顯示出預期的結果。主要內容是,不顯示章節編號,而在「rightmark」頁面上,顯示的是章節而不是章節詳細資訊。

後面的事也一樣。它在標題中顯示標題兩次,但不顯示章節號或頁碼。

您將在附件中找到等效的代碼。

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{main}{%
\fancyhf{}
%\fancyhead[EL,OR]{\textsl{\rightmark}}
%\fancyhead[OL,ER]{\textsl{\rightmark}}
\fancyhead[EL]{\thepage} 
\fancyhead[ER]{\leftmark}
\fancyhead[OL]{\leftmark}
\fancyhead[OR]{\thepage}
\renewcommand{\chaptermark}[1]{%
     \markboth{\thechapter{} #1}{\thechapter{}#1}}
}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyhead[L]{\nouppercase{\rightmark}}
\fancyhead[R]{\nouppercase{\leftmark}}
\fancyhead[EL]{\thepage} 
\fancyhead[OR]{\thepage}

\renewcommand{\chaptermark}[1]{%
    \markboth{#1}{#1}}
}
\fancypagestyle{back}{%
\fancyhf{}
\fancyhead[EL]{\thepage} 
\fancyhead[ER]{\leftmark}
\fancyhead[OL]{\leftmark}
\fancyhead[OR]{\thepage}

\renewcommand{\chaptermark}[1]{
    \markboth{\thechapter{} #1}{\thechapter{}#1}}
}
\appto\frontmatter{\pagestyle{plain}}
\appto\mainmatter{\pagestyle{main}}
\appto\backmatter{\pagestyle{back}}



%**Another way of doing it is the following:** 
\documentclass[12pt,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage[a4paper,width=150mm, top=25mm, bottom=25mm, bindingoffset=6mm]{geometry}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
%\usepackage[scaled]{uarial}
\setsansfont{Arial}
%\usepackage{lmodern}
\usepackage{amsmath}
\usepackage{siunitx}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[]{unicode-math}
\setmainfont[Mapping=tex-text,Numbers={OldStyle,Proportional},Ligatures={TeX, Common}]{TeX Gyre Termes}
\setmonofont[Mapping=tex-text,Scale=0.8]{TeX Gyre Cursor}
\setsansfont[Mapping=tex-text,Numbers=OldStyle,Ligatures=Common]{TeX Gyre Heros}
\setmathfont[math-style=ISO,bold-style=ISO,vargreek-shape=TeX]{TeX Gyre Pagella Math}
\usepackage{makeidx}
\usepackage{multirow}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyhead[L]{\nouppercase{\leftmark}}
\fancyhead[R]{\nouppercase{\leftmark}}
\fancyhead[EL]{\thepage} 
\fancyhead[OR]{\thepage}
\renewcommand{\chaptermark}[1]{%

    \markboth{#1}{#1}}
}
%\fancypagestyle{main}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\chaptermark}[1]{ 
    \markboth{\thechapter{} #1} {} }

\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\nouppercase{\leftmark} }
\fancyhead[LO]{\nouppercase{\leftmark} 
}

\graphicspath{images/}
\usepackage[style=alphabetic]{biblatex}
\addbibresource[style=alphabetic]{references.bib}
\usepackage{setspace}
\setstretch{1.1}
\usepackage{acronym}

\parindent0cm
\renewcommand*{\familydefault}{\sfdefault}


\makeatletter 
% Define frontmatter, mainmatter and backmatter if not defined 
\@ifundefined{frontmatter}{% 
    \newcommand{\frontmatter}{% 
       %In Roemischen Buchstaben nummerieren (i, ii, iii) 
       \pagenumbering{roman} 
    } 
}{} 
\@ifundefined{mainmatter}{% 
    % scrpage2 benoetigt den folgenden switch 
    % wenn \mainmatter definiert ist. 
%    \newif\if@mainmatter\@mainmattertrue 
    \newcommand{\mainmatter}{% 
       % -- Seitennummerierung auf Arabische Zahlen zuruecksetzen (1,2,3) 
       \pagenumbering{arabic}% 
       \setcounter{page}{1}% 
    } 
}{} 
\@ifundefined{backmatter}{% 
%    \newif\if@backmatter\@backmattertrue 
    \newcommand{\backmatter}{ %
       %In Roemischen Buchstaben nummerieren (i, ii, iii) 
       \pagenumbering{roman} 
    } 
}{} 
\makeatother 

\begin{document}
{\sffamily
%\maketitle
\begin{titlepage}
   \begin{center}
       \vspace*{2cm}

\begin{Huge}
{xx}
\end{Huge}
       
       \vspace{0.5cm}
        {\Large xx}
            
       \vspace{1cm}
\textbf{xx}\\
        \vspace{1cm}
zxx 

        \vspace{1cm}
\textbf{xx}

        \vspace{0.5cm}
\textbf{(xx)}
        
\vspace{1cm}
          
                             
       von xx\\
       \vspace{0.5cm}
xx \\
        \vspace{0.5cm}
xx\\
        \vspace{0.5cm}
xx\\
        \vspace{1.5cm}
xx: \\
        \vspace{0.5cm}
xx\\
        \vspace{0.5cm}
xx\\
        \vspace{1cm}
xx     
%       \includegraphics[width=0.4\textwidth]{university}
           
            
   \end{center}
\end{titlepage}
\thispagestyle{empty}
\frontmatter 
\pagestyle{plain}

\chapter{Vorwort}
\chapter{Danksagung}
xx
\chapter{Abstrakt}
xx
\chapter{Abstract}
xx
\chapter{Abkürzungsverzeichnis}
\begin{acronym}[SEPSEP]
\acro{abb}[Abb.]{Abbildung}
\end{acronym}
\newpage
\tableofcontents
\listoffigures
\listoftables
\mainmatter
\pagestyle{fancy}
\chapter{Einleitung}
xx

\chapter{ssssssssss}
xx

\chapter{eeeeeeeeee}
cccc

\backmatter

\appendix
\chapter{Anhang}
ffffffffff
}

\end{document}

答案1

背景內容的章節沒有編號。所以,我認為它們在頁首也應該沒有編號。因此我將\if@mainmatter在全域重新定義中使用\chaptermark

\makeatletter
\renewcommand{\chaptermark}[1]{\markboth{\if@mainmatter\thechapter{}\ \fi#1}{}}
\makeatother

例子:

\documentclass[12pt]{book}
\usepackage[a4paper,width=150mm, top=25mm, bottom=25mm, bindingoffset=6mm]{geometry}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\usepackage{}
\usepackage{fancyhdr}
\setlength{\headheight}{15pt}
\pagestyle{fancy}% before the redefinition of \chaptermark

\makeatletter
\renewcommand{\chaptermark}[1]{\markboth{\if@mainmatter\thechapter{}\ \fi#1}{}}
\makeatother

\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO,RE]{\nouppercase{\leftmark}}

\renewcommand*{\familydefault}{\sfdefault}

\usepackage{lipsum}% nur für Fülltext
\begin{document}
\begin{titlepage}
\begin{center}
  \Huge Titelseite\par
  \normalsize
  Weiterer Text auf der Titelseite
\end{center}
\end{titlepage}
\thispagestyle{empty}
\frontmatter 
\chapter{Vorwort}
  \lipsum[1]
\chapter{Danksagung}
  \lipsum[2]
\chapter{Abstrakt}
  \lipsum[3]
\chapter{Abstract}
  \lipsum
\tableofcontents
\listoffigures
\listoftables
\mainmatter

\chapter{Einleitung}
\lipsum
\chapter{ssssssssss}
\lipsum
\chapter{eeeeeeeeee}
\lipsum
\backmatter
\appendix
\chapter{Anhang}
\lipsum
\end{document}

請注意,每章的第一頁都使用 pagestyle plain。如果他們應該獲得相同的佈局,請plain在序言中定義 fancypagestyle:

\fancypagestyle{plain}{%
  \fancyhf{}%
  \fancyhead[LE,RO]{\thepage}%
  \fancyhead[LO,RE]{\nouppercase{\leftmark}}%
}

或者

\fancypagestyle{plain}{}% change plain pagestyle to fancy

答案2

因為無論如何我都必須創建一個 MWE,所以它就在這裡。

\documentclass{book}
\usepackage{etoolbox}
\usepackage{lipsum}

\usepackage{fancyhdr}
\pagestyle{fancy}
\fancypagestyle{main}{%
\fancyhf{}
%\fancyhead[EL,OR]{\textsl{\rightmark}}
%\fancyhead[OL,ER]{\textsl{\rightmark}}
\fancyhead[EL]{\thepage} 
\fancyhead[ER]{\leftmark}
\fancyhead[OL]{\leftmark}
\fancyhead[OR]{\thepage}
\def\chaptermark##1{\markboth{\thechapter{} ##1}{\thechapter{}##1}}%
}
\fancypagestyle{plain}{%
\fancyhf{}
\fancyhead[L]{\nouppercase{\rightmark}}
\fancyhead[R]{\nouppercase{\leftmark}}
\fancyhead[EL]{\thepage} 
\fancyhead[OR]{\thepage}
\renewcommand{\chaptermark}[1]{%
    \markboth{##1}{##1}}
}
\fancypagestyle{back}{%
\fancyhf{}
\fancyhead[EL]{\thepage} 
\fancyhead[ER]{\leftmark}
\fancyhead[OL]{\leftmark}
\fancyhead[OR]{\thepage}
\renewcommand{\chaptermark}[1]{
    \markboth{\thechapter{} ##1}{\thechapter{}##1}}
}
\appto\frontmatter{\pagestyle{plain}}
\appto\mainmatter{\pagestyle{main}}
\appto\backmatter{\pagestyle{back}}

\begin{document}
\frontmatter
\chapter{chapter}
\section{section}
\lipsum[1-10]
\mainmatter
\chapter{chapter}
\section{section}
\lipsum[1-10]
\backmatter
\chapter{chapter}
\section{section}
\lipsum[1-10]
\end{document}

相關內容