我正在使用tikz
包来生成一个灰色的部分标题栏(一端圆形),因此:
\documentclass[a5paper]{memoir}
\setsecnumdepth{chapter} % set numbering level
\maxsecnumdepth{chapter} % default=section, 2
\setcounter{tocdepth}{1} % levels < {n} not in TOC
\usepackage[explicit]{titlesec}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
% create grey section header-bar
\let\currentsectiontitle\relax
\newcommand\titlebar{%sections
\tikz[baseline,trim left=3.1cm,trim right=3.0cm] {
\fill [black!15] (2.5cm,-1ex) rectangle (\textwidth+3.1cm,2.5ex);
\node [
fill=black!15!white,
anchor= base east,
rounded rectangle,
minimum height=3.5ex] at (2.8cm,0.13) {
% \color{black}{\thesection}
};
}}
\titleformat{\section}
{\large\bfseries}
{\titlebar}
{0.1cm}
{\gdef\currentsectiontitle{#1}#1} % http://glurl.co/dFH
\renewcommand*{\thesection}{\arabic{section}}
% start MWE
\begin{document}
\tableofcontents* % table of contents
% ------------------------
\mainmatter % document content
\chapter{Chapter 1}
\label{chapter1}
CHAPTER 1 intro
\section{Section 1}
\label{section1}
Section 1 intro
\chapter{Chapter 2}
\label{chapter2}
CHAPTER 2 intro
\section{Section 2}
\label{section2}
Section 2 intro
\end{document}
这源于http://glurl.co/dFH(然后我自己通过反复试验,减少了多余的命令)。我已将放置节号的原始命令标注在节标题栏左端的节点中。
我遇到的问题是,当我设置\maxsecnumdepth
为 {chapter}(这是我想要的)(这样章节就不会在文本中或目录中编号)时,灰色tikz
章节标题栏就会消失 - 我怀疑是因为上面的宏依赖于被编号的章节。
有人能建议我解决这个问题最合适的方法吗?
请注意:在两个设置(章节/部分)之间运行 MWE 时,记得\maxscnumdepth
编译两次以查看问题是否按照描述发生变化。
谢谢。
*我的 MWE 生成了两次章节编号。不知道为什么。
答案1
由于您抑制了章节编号,因此您需要以下numberless
键\titleformat
:
\documentclass[a5paper]{memoir}
\usepackage[explicit]{titlesec}
\usepackage{tikz}
\usetikzlibrary{shapes.misc}
\setsecnumdepth{chapter}
\maxsecnumdepth{chapter}
\setcounter{tocdepth}{1}
\let\currentsectiontitle\relax
\newcommand\titlebar{%sections
\tikz[baseline,trim left=3.1cm,trim right=3.0cm] {
\fill [black!15] (2.5cm,-1ex) rectangle (\textwidth+3.1cm,2.5ex);
\node [
fill=black!15!white,
anchor= base east,
rounded rectangle,
minimum height=3.5ex] at (2.8cm,0.13) {
% \color{black}{\thesection}
};
}}
\titleformat{name=\section,numberless}
{\large\bfseries}
{\titlebar}
{0.1cm}
{\gdef\currentsectiontitle{#1}#1}
\begin{document}
\chapter{Test chapter}
Test text
\section{Test section}
Test text
\section{Another test section}
Test text
\end{document}
结果的一页;
顺便说一句,我希望你已经看过关于 memoir 和 titlesec 不兼容。还请注意,使用当前设置,如果标题跨越多行,您将得到不理想的结果。