章节标题中的“章节”一词被章节名称取代

章节标题中的“章节”一词被章节名称取代

当我创建一个章节时

\documentclass[12pt]{memoir}
\usepackage{graphicx}
\renewcommand{\chaptername}{}

\begin{document}
\chapterstyle{veelo}
\chapter{Implementation}
\section{Implementation2}
\end{document}

它显示如下

Chapter 1
Implementation

我怎样才能让它显示

Implementation 1

我试过这样做

\renewcommand{\chaptername}{}

但它只是隐藏了章节一词,并在同一行显示实现和 1。

答案1

以下最小示例提供了解决您问题的方法。它修改了\chapter标题打印宏以打印章节标题来代替章节名称(Chapter\@chapapp):

在此处输入图片描述

\documentclass[12pt]{memoir}% http://ctan.org/pkg/memoir
\usepackage{graphicx}% http://ctan.org/pkg/graphicx (required with veelo chapter style)
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox

\makeatletter
\g@addto@macro\chs@veelo{%
  \renewcommand*{\printchaptername}[1]{%
    \chapnamefont\MakeUppercase{#1}}% Changed \@chapapp to #1; could also use \chaptitlefont
  \let\printchaptertitle\@gobble% Remove printing of chapter title.
}
\patchcmd{\@makechapterhead}% <cmd>
  {\printchaptername}% <search>
  {\printchaptername{#1}}% <replace>
  {}{}% <success><failure>
\makeatother

\begin{document}
%\tableofcontents
\chapterstyle{veelo}
\chapter{Implementation}
\section{Implementation2}
\end{document}

章节veelo样式存储在 中\chs@veelo,它定义了章节标题的打印样式。通过 附加\g@addto@macro一个更新的定义\printchaptername(现在接受一个参数),它将取代以前的\@chapapp打印。如果您想保留以前的章节标题字体,可以修改它以使用 进行设置\chaptitlefont。此外, 的功能\printchaptertitle已被删除(将其设置为\@gobble)。

\@makechapterhead实际上设置了章节标题。因此,etoolbox用于修补它并插入新创建的\printchaptername以获取所提供的参数#1

相关内容