Как сделать перекрестную ссылку на ненумерованный раздел с помощью «\ref»?

Как сделать перекрестную ссылку на ненумерованный раздел с помощью «\ref»?

Ну, я пытаюсь написать краткое резюме о моем шаблоне и я оказался на распутье. В моем определении класса я переопределил команду \section{}to, \section*{}чтобы сохранить определенную стилизацию моего шаблона, но теперь я хочу ссылаться на разделы независимо, но сохранить свойство, что если я напишу \section{A random title}заголовок, он останется ненумерованным.

Позвольте мне объяснить это более подробно:

  1. Я переопределил \section{}команду с помощью следующих строк кода:

    \let\oldsection\section                             
    \renewcommand{\section}[1]{%                        
       \oldsection*{#1}                                
       \phantomsection                                
       \addcontentsline{toc}{section}{#1}              
    }
    
  2. При использовании \ref{A label given to the section}в двух разных разделах я получаю следующий результат:

введите описание изображения здесь

  1. Мне не нужно \section{}нумеровать команды, поскольку я создал мини-резюме, содержащее название каждого раздела в главе, как показано ниже:

введите описание изображения здесь

Думаю, нет необходимости приводить код этого мини-резюме, чтобы не перегружать пост информацией.

По сути, мне нужна помощь, чтобы понять, как это \ref{}работает.

решение1

Есть возможность сделать \ref{}работу так, как вы хотите. Вам нужно будет переопределить \@currentlabelна месте перед следующим \label. В вашем случае это будет внутри переопределенного \section.

Так как вы загружаете hyperref, вам не нужно, \phantomsectionпотому что якоря уже добавлены каждым помеченным разделом. Также рекомендуется использовать \NewCommandCopyвместо \let.

Следующий пример дает:

введите описание изображения здесь

Я немного расширил ваш макрос, чтобы \ref{} использовать более короткое название раздела, если указано. Я также предполагаю, что после двоеточий идут номера страниц, поскольку номер раздела в этом случае не имел бы смысла.

\documentclass{report}
\usepackage[colorlinks]{hyperref}
\usepackage{blindtext}

\title{The Title}
\author{First Last}
\date{}

\makeatletter
\NewCommandCopy\oldsection\section
\RenewDocumentCommand\section{O{#2}m}{%
  \oldsection*{#2}\addcontentsline{toc}{section}{\numberline{}#2}%
  \edef\@currentlabel{(titled as "#1")}}
\makeatother


\begin{document}
\maketitle
\tableofcontents

\chapter{Chapter one}
\section{Section: Aaa}\label{sec:aaa}
\Blindtext

\chapter{Chapter two}
\section[Bbb]{Section: Bbb}\label{sec:bbb}
\Blindtext

\chapter{Chapter three}
Referring to the section 1 \ref{sec:aaa}: \pageref{sec:aaa}.\\*
Referring to the section 2 \ref{sec:bbb}: \pageref{sec:bbb}.
\end{document}

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