如何在不使用 fancyhdr 的情况下格式化报告中不带斜体的标题?

如何在不使用 fancyhdr 的情况下格式化报告中不带斜体的标题?

我正在写一份报告。我设置了\pagestyle{headings}看起来不错,但将章节格式化为斜体而不是普通字体。如何在不使用的情况下将其更改为普通字体或粗体fancyhdr


下面是一个示例:

第 5 章 安装和使用                             二十六

下面是一个示例:

第 5 章。安装和使用 26

答案1

您必须修改内部标题定义。您使用 twoside 选项吗?请提供一个最小示例。

越位的解决方案:

\documentclass{report}
\makeatletter
\def\ps@headings{%
    \let\@oddfoot\@empty
    \def\@oddhead{\bfseries{\rightmark}\hfil\thepage}%
    \let\@mkboth\markboth
    \def\chaptermark##1{%
      \markright {\MakeUppercase{%
        \ifnum \c@secnumdepth >\m@ne
            \@chapapp\ \thechapter. \ %
        \fi
        ##1}}}
}
\makeatother
\pagestyle{headings}

\begin{document}
\setcounter{chapter}{4}
\chapter{Installation und Benutzung}
\clearpage
\mbox{}
\end{document}

你用德语写的。你应该使用 KOMA 类,如 scrreprt。为什么不使用类似scrpage2fancyhdr

答案2

这是页面样式(单面)\chaptermark的定义:report.clsheadings

\def\chaptermark#1{%
  \markright {\MakeUppercase{%
    \ifnum \c@secnumdepth >\m@ne
        \@chapapp\ \thechapter. \ %
    \fi
    #1}}}

您的需求似乎有两个:“KAPITEL 1.”粗体和章节标题中等字体。还有要\@oddhead记住的定义:

\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%

我们必须改变这两个命令的作用方式:

\makeatletter
\def\chaptermark#1{%
  \markboth {\MakeUppercase{%
    {\bfseries\ifnum \c@secnumdepth >\m@ne
        \@chapapp\ \thechapter.} \ %
    \fi
    #1}}{}}
\def\@oddhead{\rightmark\hfil\thepage}
\newcommand\tableofcontents{%
    \if@twocolumn
      \@restonecoltrue\onecolumn
    \else
      \@restonecolfalse
    \fi
    \chapter*{\contentsname
        \@mkboth{%
           {\bfseries\MakeUppercase\contentsname}}
           {{\bfseries\MakeUppercase\contentsname}}}%
    \@starttoc{toc}%
    \if@restonecol\twocolumn\fi
}
\makeatother

thebibliography对于和的定义也应该做类似的调整theindex(如果使用它们的话)。

相关内容