Перенумерация главы за частью, исправление ссылок, оглавления и заголовка главы

Перенумерация главы за частью, исправление ссылок, оглавления и заголовка главы

Название может показаться неясным.

У меня есть документ с несколькими частями, включая несколько глав. Я хочу, чтобы нумерация глав сбрасывалась после каждой новой части (легко), НО: - Я хочу, чтобы заголовок моей главы был просто номером главы (не Part.Chapter) - Я хочу, чтобы оглавление отображало то же самое (не номер части для каждой главы и раздела) - Я хочу, чтобы ссылка на главу или раздел была Part.Chap(.sec и т. д.).

Вот MWE с пакетом, который я использую в своей диссертации. Выглядит почти нормально. Только ссылка на главу "I.1" не работает.

\documentclass[twoside,12pt,openright,a4paper,usenames,dvipsnames]{book}
\usepackage[linktoc=all,hyperindex]{hyperref}
\usepackage{chngcntr}
\counterwithin{chapter}{part}

\usepackage{titlesec}
\usepackage[titles]{tocloft}
\titleformat{name=\chapter}[display]
{\bfseries\LARGE}
{\filleft\MakeUppercase{\chaptertitlename} \Huge\thechapter}
{0ex}
{%\titlerule
\vspace{2ex}%
\filleft}
[\vspace{4ex}%
\titlerule]

\titleformat{name=\chapter,numberless}
{\bfseries\LARGE}
{}
{0ex}
{%\titlerule
\filleft\MakeUppercase}
[\vspace{4ex}%
\titlerule]
\titlespacing*{\chapter}{0pt}{-25pt}{40pt}

\titleformat{\part}[frame]
{\bfseries\Huge}
{\filright\large\enspace{\partname}\enspace}
{40pt}
{\Large\filcenter\MakeUppercase}
\titleclass{\part}{top}

\begin{document}

\tableofcontents

\part{Part 1}

\chapter{Chap 1}

\label{chap:chapI1}

\chapter{Chap 2}

\part{Part 2}

\chapter{Chap 1}

As mentioned in chap.~\ref{chap:chapI1},...

\chapter{Chap 2}

\end{document}

Знаете ли вы, как мне исправить refs? Я просматривал похожий вопрос, но ни один не ответил в случае использования titlesec.

решение1

здесь 2 решения:

с

\usepackage{chngcntr}
\counterwithin{chapter}{part}

использовать

\makeatletter
\renewcommand{\thechapter}{\@arabic\c@chapter}
\renewcommand{\p@chapter}{\thepart.}
\makeatother

без него использовать

\makeatletter
\@addtoreset{chapter}{part}
\renewcommand{\p@chapter}{\thepart.}
\makeatother

Редактироватьдля приложения замените

\renewcommand{\p@chapter}{\thepart.}

к

\renewcommand{\p@chapter}{%
\ifx\@chapapp\chaptername\thepart.\fi}

ответ, на который я ссылался, этоздесь

Связанный контент