maxsecnumdepth 导致 tikz 标题栏消失

maxsecnumdepth 导致 tikz 标题栏消失

我正在使用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 不兼容。还请注意,使用当前设置,如果标题跨越多行,您将得到不理想的结果。

相关内容