Ich möchte nur die Unterabschnittsnummer eines Unterabschnitts angeben, ohne die Abschnittsnummer.
Ich denke, dieses MWE fasst zusammen, wonach ich suche. Gibt es eine Alternative zu \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}
Antwort1
Hier ist eine Lösung, die auf einer Technik basiert, die ich aus dem Buch „The LaTeX Companion“ (2. Auflage) gelernt habe. Sie wird ausgeführt, \renewcommand\thesubsection{\arabic{subsection}}
um die Darstellung des subsection
Zählers zurückzusetzen, und verwendet den Low-Level-LaTeX-Befehl \subsection@cntformat
, der steuert, wie der subsection
Zähler in Einträgen auf Unterabschnittsebene angezeigt wird.
Diese Lösung ist konzeptionell mit den Paketen hyperref
und cleveref
und ihren Querverweismakros kompatibel, z. B. \autoref
, \cref
, und \labelcref
.
Nachtrag 08.08.2019: Ich habe dem Code zwei Zeilen hinzugefügt, um die Lösung zu verallgemeinern, sodass subsubsection
auch Header auf -Ebene verarbeitet werden können.
\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}