Я хочу создать новый формат главы в виде книги, в котором перед названием главы есть изображение, и придумал код, переопределив его, 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}