Bueno, estoy intentando escribir un breve resumen sobre mi plantilla y he llegado a una encrucijada. En mi definición de clase, redefiní el \section{}
comando para \section*{}
mantener una cierta estilización de mi plantilla, pero ahora quiero hacer referencia a las secciones de forma independiente, pero mantener la propiedad de que si escribo \section{A random title}
el título permanecerá sin numerar.
Déjame explicarte esto con más detalle:
Redefiní el
\section{}
comando con estas líneas de código:\let\oldsection\section \renewcommand{\section}[1]{% \oldsection*{#1} \phantomsection \addcontentsline{toc}{section}{#1} }
Cuando lo uso
\ref{A label given to the section}
en dos secciones diferentes, obtengo el siguiente resultado:
- No necesito que el
\section{}
comando esté numerado porque he creado un mini resumen que contiene el nombre de cada sección dentro del capítulo de la siguiente manera:
Creo que no es necesario incluir el código de este miniresumen, para no sobrecargar el post con información.
Básicamente, me gustaría recibir ayuda para descubrir cómo hacer que esto \ref{}
funcione.
Respuesta1
Existe la posibilidad de hacer \ref{}
el trabajo como quieras. Debería redefinirlo \@currentlabel
en su lugar antes del siguiente \label
. En su caso, eso estaría dentro de un archivo redefinido \section
.
Dado que carga hyperref
, no lo necesita \phantomsection
porque cada sección destacada ya agrega anclajes. También se recomienda utilizar \NewCommandCopy
en lugar de \let
.
El siguiente ejemplo produce:
Amplié ligeramente su macro para poder \ref{}
usar un título de sección más corto si se especifica. También asumo que después de los dos puntos están los números de página porque el número de sección en este caso no tendría sentido.
\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}