\book
我在创建上面的部分时遇到了问题\part
。一切顺利 — ToC 很漂亮 — 直到我添加了bookmark
包,然后在第一次使用时它崩溃并显示“缺少操作” \book
。
感谢@Gonzalo Medina他们的回答这个问题寻求帮助添加 [ \subsubsubsection
][1] 并@lockstep对他们的评论这个问题这让我找到了这个chngcntr
包裹。
由于我正在制作\book
上述内容\part
,因此我在文档中读到titlesec
我应该启用loadonly
包选项titlesec
并从头开始重新定义所有级别。但我真的很喜欢其余部分的样子!
我刚刚发现这个问题使用标准类的默认格式和间距(感谢@Miotto!但我不确定我是否仍然需要这些\@startsection
位\subsubsubsection
来更改\paragraph
和\subparagraph
ToC 级别。这些\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
。\subsectionmark
当titlesec
设置新的分段命令时,它也会定义一个\...mark
命令。因此,您\book
创建的命令与书签包中的命令\bookmark
相冲突。\bookmark
例如使用另一个名称即可\volume
解决问题。
bookmark
加载hyperref
等通常应该在所有其他包之后(除了少数例外)但在定义新计数器之前加载。