添加书签时上面的新部分崩溃:缺少操作

添加书签时上面的新部分崩溃:缺少操作

\book我在创建上面的部分时遇到了问题\part。一切顺利 — ToC 很漂亮 — 直到我添加了bookmark包,然后在第一次使用时它崩溃并显示“缺少操作” \book

感谢@Gonzalo Medina他们的回答这个问题寻求帮助添加 [ \subsubsubsection][1] 并@lockstep对他们的评论这个问题这让我找到了这个chngcntr包裹。

由于我正在制作\book上述内容\part,因此我在文档中读到titlesec我应该启用loadonly包选项titlesec并从头开始重新定义所有级别。但我真的很喜欢其余部分的样子!

我刚刚发现这个问题使用标准类的默认格式和间距(感谢@Miotto!但我不确定我是否仍然需要这些\@startsection\subsubsubsection来更改\paragraph\subparagraphToC 级别。这些\toclevel@位可以自行完成吗?

有人可以帮我修复这个 MWE 或者帮我解决\@startsection刚才提到的问题吗?

梅威瑟:

\documentclass{book}

% this part breaks the whole thing at the first occurence of \book
\PassOptionsToPackage{bookmarks=true,bookmarksopen=true,bookmarksnumbered=true,
            bookmarksopenlevel=6,
            colorlinks=true,
            linkcolor=blue,
            anchorcolor=blue
            }{hyperref}
\usepackage{bookmark}

\usepackage{titlesec,titletoc}
\usepackage{xparse}

\usepackage{chngcntr} % to change within of counters

% new book sectioning level
\titleclass{\book}[-2]{page}
\newcounter{book}
\renewcommand{\thebook}{\Roman{book}}
\titleformat{\book}{\centering\normalfont\huge\bfseries{}Volume \thebook\\\Huge}{}{0pt}{}
\titlespacing*{\book}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

% attach part counter to book
\titleclass{\part}{page}[\book]
\counterwithin*{part}{book}
\titleformat{\part}{\centering\normalfont\huge\bfseries{}Part \thepart\\\Huge}{}{0pt}{}

% fix chapter -- somehow above broke it?
\counterwithout{chapter}{part}
\counterwithin*{chapter}{part}

% to create a subsubsub section and have it work in between subsubsection
% and paragraph as a TOC placeholder:
\titleclass{\subsubsubsection}{straight}[\subsubsection]
\newcounter{subsubsubsection}[subsubsection]
\renewcommand\thesubsubsubsection{\thesubsubsection.\arabic{subsubsubsection}}
\titleformat{\subsubsubsection}{\normalfont\normalsize\bfseries}{\thesubsubsubsection}{1em}{}
\titlespacing*{\subsubsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}

% attach paragraph counter to subsubsubsection
\renewcommand\theparagraph{\thesubsubsubsection.\arabic{paragraph}} % optional; useful if paragraphs are to be numbered
\counterwithout{paragraph}{subsubsection}
\counterwithin{paragraph}{subsubsubsection}

\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{5}{\z@}%
  {3.25ex \@plus1ex \@minus.2ex}%
  {-1em}%
  {\normalfont\normalsize\bfseries}}
\renewcommand\subparagraph{\@startsection{subparagraph}{6}{\parindent}%
  {3.25ex \@plus1ex \@minus .2ex}%
  {-1em}%
  {\normalfont\normalsize\bfseries}}
% set toc levels
\def\toclevel@book{-2}
\def\toclevel@subsubsubsection{4}
\def\toclevel@paragraph{5}
\def\toclevel@subparagraph{6}
% set toc line styles
\def\l@book{\@dottedtocline{-2}{0em}{1.5em}}
\def\l@part{\@dottedtocline{-1}{3em}{1.5em}}
\def\l@chapter{\@dottedtocline{0}{6em}{1.5em}}
\def\l@section{\@dottedtocline{1}{9em}{2em}}
\def\l@subsection{\@dottedtocline{2}{12em}{3em}}
\def\l@subsubsection{\@dottedtocline{3}{15em}{3.5em}}
\def\l@subsubsubsection{\@dottedtocline{4}{18em}{4.5em}}
\def\l@paragraph{\@dottedtocline{5}{21em}{5.5em}}
\def\l@subparagraph{\@dottedtocline{6}{24em}{6.5em}}
\makeatother

\setcounter{secnumdepth}{5}
\setcounter{tocdepth}{5}

\begin{document}

\frontmatter
\tableofcontents
\mainmatter

\book{Explore}

\part{Intro}

\chapter{Welcome}
blah
\section{Stuff}
blah
\subsection{Dude}
blah
\subsubsection{Dudette}
blah
\subsubsubsection{Sweet}
blah
\paragraph{Hello}
blah
\subsubsubsection{Nice}
blah
\paragraph{Bye}
blah

\section{Things}
blah
\chapter{Goodbye}
blah
\section{Indeed}
blah

\book{Wander}

\part{Intro Again}

\chapter{Welcome Again}
blah
\section{Hmm}
blah

\end{document}

另外,我尝试过这个memoir课程,但它弄乱了太多的间距设置,不值得我花时间。我喜欢文档的其余部分,只想在使用该book课程的同时在新卷中继续写作。

感谢您的时间!

[1]:我确实需要使用chngcntr将 重新链接\paragraph到新的\subsubsubsection,但其他一切都很棒! 真的很有帮助!

答案1

(几乎)所有分段命令都有一个附带命令来设置标题的标记。例如\chaptermark,,\sectionmark\subsectionmarktitlesec设置新的分段命令时,它也会定义一个\...mark 命令。因此,您\book创建的命令与书签包中的命令\bookmark相冲突。\bookmark

例如使用另一个名称即可\volume解决问题。

bookmark加载hyperref等通常应该在所有其他包之后(除了少数例外)但在定义新计数器之前加载。

相关内容