更新命令章节

更新命令章节

只是一个简短的问题:我想更新章节命令,以便我可以操纵标题中章节编号和章节标题之间的距离,目前我已将标题定义为:

\renewcommand{\chaptername}{}
\fancyhead[L]{\hspace{4mm}\textcolor{headercolor}{\leftmark}\\ \text{ }\textcolor{headercolor}{\hspace{0.4cm}\rightmark}\hfill\textcolor{headercolor}{}\hspace{2mm}}
\renewcommand{\headrule}{\vspace{-\headheight}\textcolor{headercolor}{\vrule height \headheight width 2pt\relax\rule{\textwidth}{2pt}\vrule height \headheight width 2pt\relax}}

现在我想改变章节标记/章节名称,以便我可以操纵数字和标题之间的距离。

例如,目前它说 1. INTRODUCTION 但我想增加 1. 和 INTRODUCTION 之间的间距?

我知道这不是一个有效的例子,但我希望你能很快明白我的意思。

答案1

KOMA 脚本

使用 KOMA-Script 类非常容易。宏\chaptermarkformat在标题中设置章节号,并且可以重新定义,例如:

\documentclass{scrbook}

\makeatletter
\g@addto@macro{\chaptermarkformat}{\hspace{1em}}
\makeatother

\pagestyle{headings}

\begin{document}
\chapter{First chapter}
\newpage
Some text.
\end{document}

\g@addto@macro{\cmd}{stuff}附加stuff到无参数宏cmd)。

包裹fancyhdr

使用包fancyhdr或标准类,距离是硬编码的,\chaptermark在页面样式命令中定义。因此它变得更丑陋,因为页面样式命令也需要重新定义,例如:

\documentclass{book}

\usepackage{fancyhdr}

\newlength{\marknumsep}
\setlength{\marknumsep}{1.5em}% Change to your needs

\makeatletter
\def\ps@fancy{%
  \@ifundefined{@chapapp}{\let\@chapapp\chaptername}{}%
  \@ifundefined{MakeUppercase}{\def\MakeUppercase{\uppercase}}{}%
  \@ifundefined{chapter}{%
    \def\sectionmark##1{%
      \markboth{%
        \MakeUppercase{%
          \ifnum \c@secnumdepth>\z@
            % \thesection\hskip 1em\relax % ORIGNAL
            \thesection\hskip\marknumsep % NEW
          \fi
          ##1%
        }%
      }{}%
    }%
    \def\subsectionmark##1{%
      \markright{%
        \ifnum \c@secnumdepth >\@ne
          % \thesubsection\hskip 1em\relax % ORIGINAL
          \thesubsection\hskip\marknumsep % NEW
        \fi
        ##1%
      }%
    }%  
  }{%
    \def\chaptermark##1{%
      \markboth{%
        \MakeUppercase{%
          \ifnum \c@secnumdepth>\m@ne
            % \@chapapp\ \thechapter. \ % ORIGINAL
            \thechapter\hskip\marknumsep % NEW
          \fi
           ##1%
        }%
      }{}%
    }%
    \def\sectionmark##1{%
      \markright{%
        \MakeUppercase{%
          \ifnum \c@secnumdepth >\z@
            % \thesection. \ % ORIGINAL
            \thesection.\hskip\marknumsep % NEW
          \fi
          ##1%
        }%
      }%  
    }%    
  }%      
  \ps@@fancy
  \gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}%
  \ifdim\headwidth<0sp
    \global\advance\headwidth123456789sp%
    \global\advance\headwidth\textwidth  
  \fi
}
\makeatother

\pagestyle{fancy}

\begin{document}
\chapter{First chapter}
\newpage
Some text.
\end{document}

现在可以通过长度来控制标题中数字和文本之间的距离\marknumsep。示例还删除了“章节”/“附录”前缀(\@chapapp)。

相关内容