我想制作一种新的类似书籍的章节格式,其中章节名称前有一张图片,并通过重新定义chapter
来生成代码tikzpicture
,但现在的问题是,在整个文档中,每页标题中的章节名称都是“目录”,而不是相应章节的标题。有人知道我该如何更正它,以便标题是当前章节的标题吗?
这是我的文档的 MWE。
\documentclass[letterpaper]{memoir}
\usepackage{lipsum,tikz}
\usepackage{geometry}
\geometry{top=2cm,bottom=2cm,left=2cm,right=2cm}
\renewcommand{\chapter}[2]{
\clearforchapter
\addtocounter{chapter}{1}
\chapterheadstart
\begin{tikzpicture}[remember picture, overlay, path image/.style={
path picture={
\node[xshift=-1cm] at (path picture bounding box.center) {
\includegraphics{#2}
};}}]
\draw [path image=#2] (current page.north west) rectangle (\paperwidth, 0);
\draw (-1.5,0) circle (0pt) node [right, rectangle, rounded corners=8pt, fill=blue]
{\Huge\bfseries\color{yellow}\thechapter\; #1};
\end{tikzpicture}
\addcontentsline{toc}{chapter}{\thechapter\hspace{0.5em} #1}
\par\vspace{1cm}
}
\begin{document}
\tableofcontents*
\chapter{First}{nilum}
\lipsum[1]\newpage
\lipsum[2]
\chapter{Second}{nilum}
\lipsum[3]
\end{document}
答案1
您重新定义命令的方式\chapter
弄乱了默认格式和标题更新。我相信您使用该类的原因memomir
是为了遵循此类的默认格式。否则,还有许多其他选择(例如,书籍,报告)。所以我不建议您使用geometery
包。如果您确实想在类中自定义章节标题memomir
,您应该使用中预定义的命令memomir
。这样它就不会弄乱格式和标题更新。此外,星号版本的章节标题(例如contents
)也具有与数字版本相同的格式。使用此方法,您将不需要第二个参数来指定章节图像。所以\chapterimage
定义了一个命令。可以在进入新章节之前通过更新命令来更改章节图像\chapterimage
。即使下面的方法也能达到目的,但不推荐。
\documentclass[letterpaper]{memoir}
\usepackage{lipsum,tikz}
\usepackage{geometry}
\geometry{top=2cm,bottom=2cm,left=2cm,right=2cm}
\renewcommand{\printchaptername}{}
\renewcommand{\chapternamenum}{}
\renewcommand{\printchapternum}{\def\chapnumcontents{\thechapter\; }}
\renewcommand{\printchapternonum}{\def\chapnumcontents{}}
\renewcommand{\afterchapternum}{}
\renewcommand{\printchaptertitle}[1]{
\chaptitlefont\begin{tikzpicture}[
remember picture,
overlay,
path image/.style={
path picture={
\node at (path picture bounding box.center) {\includegraphics{\chapterimage}};
}
}
]
\draw [path image=\chapterimage](current page.north west) rectangle (\paperwidth-2cm-1pt, 0);
\node [rectangle, rounded corners=8pt, fill=blue,anchor=west] at (-1,0) {\color{yellow}\chapnumcontents#1};
\end{tikzpicture}
}
\setlength{\afterchapskip}{1cm}
\newcommand\chapterimage{example-image}
\begin{document}
\tableofcontents*
\renewcommand\chapterimage{example-image-a}
\chapter{First}
\lipsum[1]\newpage
\lipsum[2]
\renewcommand\chapterimage{example-image-b}
\chapter{Second}
\lipsum[3]
\end{document}