Gostaria de incluir apenas o número da subseção de uma subseção, sem o número da seção.
Acho que este MWE resume o que procuro. Existe uma alternativa para \ref
?
\documentclass{article}
\begin{document}
\section{Section A}
\section{Section B}
\section{Section C}
\subsection{Subsection 1}
\subsection{Subsection 2}
\label{subsec:Subsection}
I would like "\ref{subsec:Subsection}" to just return "2".
\end{document}
Responder1
Aqui está uma solução baseada em uma técnica que aprendi no livro "The LaTeX Companion" (2ª ed.). Ele é executado \renewcommand\thesubsection{\arabic{subsection}}
para redefinir a representação do subsection
contador e faz uso do comando LaTeX de baixo nível \subsection@cntformat
, que controla como o subsection
contador é exibido nas entradas de nível de subseção.
Esta solução é, por design, compatível com os hyperref
pacotes cleveref
e e suas macros de referência cruzada, por exemplo, \autoref
, \cref
, e \labelcref
.
Adendo 2019/08/08: adicionei duas linhas ao código para generalizar a solução para lidar subsubsection
também com cabeçalhos de nível.
\documentclass{article}
\usepackage{geometry} % optional
\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\thesubsubsection{\arabic{subsubsection}}
% Method proposed in "The LaTeX Companion", 2nd ed.:
\makeatletter
\def\@seccntformat#1{\@ifundefined{#1@cntformat}%
{\csname the#1\endcsname\space}% default
{\csname #1@cntformat\endcsname}}% enable individual control
\def\subsection@cntformat{\thesection.\thesubsection\space}
\def\subsubsection@cntformat{\thesection.\thesubsection.\thesubsubsection\space}
\makeatother
%Optional:
\usepackage[colorlinks,allcolors=blue]{hyperref}
\usepackage[noabbrev,nameinlink]{cleveref}
\crefname{subsection}{subsection}{subsections}
\crefname{subsubsection}{subsubsection}{subsubsections}
\begin{document}
\setlength\parindent{0pt} % just for this example
The instructions \verb+\ref{sec:C2}+ and \verb+\labelcref{sec:C2}+ return ``\ref{sec:C2}'' and ``\labelcref{sec:C2}''.
The instructions \verb+\ref{sec:C11}+ and \verb+\labelcref{sec:C11}+ return ``\ref{sec:C11}'' and ``\labelcref{sec:C11}''.
\verb+\autoref+: \autoref{sec:C2} and \autoref{sec:C11}
And \verb+\cref+: \cref{sec:C2,sec:C11}
\addtocounter{section}{2} % just for this example
\section{Section C}
\subsection{Subsection 1}
\subsubsection{Subsubsection 1} \label{sec:C11}
\subsection{Subsection 2} \label{sec:C2}
\end{document}