当我创建一个章节时
\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
。