章节标题在文档中出现问题

章节标题在文档中出现问题

我想制作一种新的类似书籍的章节格式,其中章节名称前有一张图片,并通过重新定义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}

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容