
У меня проблема с созданием \book
раздела выше \part
. Все идет хорошо — ToC прекрасен — пока я не добавляю пакет bookmark
, а затем он вылетает с сообщением «Отсутствует действие» при первом использовании \book
.
Спасибо за то, что вы есть@Гонсало Мединаза их ответ наэтот вопросдля помощи в добавлении [ \subsubsubsection
][1] и@lockstepза их комментарийэтот вопросчто привело меня к chngcntr
посылке.
Поскольку я делаю \book
выше \part
, я прочитал в titlesec
документации, что мне следует сделать loadonly
опцию пакета titlesec
и переопределить все уровни с нуля. Но мне очень нравятся остальные разделы такими, какие они есть!
Я только что нашелэтот вопросс форматированием и интервалами разделов по умолчанию для стандартных классов (благодаря@Миотто!) но я не уверен, нужны ли мне еще \@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
которая конфликтует с командой command \bookmark
из пакета закладок.
Использование другого имени, например, \volume
решает проблему.
bookmark
loads hyperref
и so обычно должны загружаться после всех остальных пакетов (за некоторыми исключениями), но до определения нового счетчика.