![我可以根据书的各个部分使用不同的章节标题样式吗?](https://linux22.com/image/263435/%E6%88%91%E5%8F%AF%E4%BB%A5%E6%A0%B9%E6%8D%AE%E4%B9%A6%E7%9A%84%E5%90%84%E4%B8%AA%E9%83%A8%E5%88%86%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E6%A0%B7%E5%BC%8F%E5%90%97%EF%BC%9F.png)
例如 - 如果我使用\frontmatter
、、\mainmatter
和...,我可以使用不同的格式来格式化“章节”\appendix
吗?我使用 tikz 来设置我的主要章节和附录标题的样式,但我希望前面的目录和其他内容不使用相同的样式,以及后面的索引。\backmatter
titlesec
这就是我现在使用的章节标题样式。
\documentclass{book}
\usepackage{tikz}
\usepackage[explicit]{titlesec}
\usepackage{geometry}
\geometry{
left=2.50in,
right=0.75in,
top=1.25in,
bottom=1.25in,
marginparwidth=1.5in,
marginparsep=.5in,
asymmetric}
\makeatletter
\titleformat{\chapter}
{\normalfont\sffamily\Huge\scshape}
{}
{0pt}
{
\thispagestyle{empty} % Remove page number on new chapters
\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\draw[fill=cyan!50] (0,-1) rectangle
(25cm,3cm);
\draw[fill=cyan!50] (0,-24) rectangle
(25cm,-25cm);
\ifttl@label% <---------------------- Added condition on \ifttl@label
\node[anchor=west,xshift=.236\paperwidth,yshift=-.01\paperheight,rectangle]
{\color{white}\LARGE \MakeUppercase{\@chapapp} \Huge\thechapter};
\fi% <------------------------------- end condition on \ifttl@label
\end{tikzpicture}
};
\end{tikzpicture}\endgraf
\vskip-.7cm
\color{cyan}\Huge\raggedright\leftskip-1cm
\MakeUppercase{#1}\endgraf
}
\titlespacing*{\chapter}{0pt}{10pt}{0pt}{}
\makeatother
\begin{document}
\chapter{test}
\end{document}
答案1
好的,经过一番探索之后,我发现我可以直接挂接到我想要控制的命令上。
我使用 etoolbox 设置了一个切换按钮
\newtoggle{fancychapter}
然后我挂钩到各个部分命令并根据需要进行切换。
\gpreto{\frontmatter}{%
\togglefalse{fancychapter}}
\gpreto{\mainmatter}{%
\toggletrue{fancychapter}}
\gpreto{\backmatter}{%
\togglefalse{fancychapter}}
此后,我在自定义章节标题中添加了两个条件,如下所示:
\titleformat{\chapter}
{\normalfont\sffamily\Huge\scshape}
{}
{0pt}
{
\thispagestyle{empty} % Remove page number on new chapters
\iftoggle{fancychapter}{%
\begin{tikzpicture}[remember picture,overlay]
\node[yshift=-3cm] at (current page.north west)
{\begin{tikzpicture}[remember picture, overlay]
\draw[fill=cyan!50] (0,-1) rectangle
(25cm,3cm);
\draw[fill=cyan!50] (0,-24) rectangle
(25cm,-25cm);
\ifttl@label% <---------------------- Added condition on \ifttl@label
\node[anchor=west,xshift=.236\paperwidth,yshift=-.01\paperheight,rectangle]
{\color{white}\LARGE \MakeUppercase{\@chapapp} \Huge\thechapter};
\fi% <------------------------------- end condition on \ifttl@label
\end{tikzpicture}
};
\end{tikzpicture}\endgraf}%
{\titlespacing*{\chapter}{0pt}{35pt}{0pt}{}}
\vskip-.7cm
\color{cyan}\Huge\raggedright\leftskip-1cm
}
虽然目前它还没有 100% 发挥作用,但是这个想法是存在的。