Я хотел бы включить только номер подраздела подраздела, без номера раздела.
Я думаю, что это MWE резюмирует то, что я ищу. Есть ли альтернатива \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}
решение1
Вот решение, основанное на методике, которую я узнал из книги "The LaTeX Companion" (2-е изд.). Оно выполняется \renewcommand\thesubsection{\arabic{subsection}}
для сброса представления счетчика subsection
и использует низкоуровневую команду LaTeX \subsection@cntformat
, которая управляет тем, как subsection
счетчик отображается в записях уровня подраздела.
Это решение по своей сути совместимо с пакетами hyperref
и cleveref
и их макросами перекрестных ссылок, например, \autoref
, \cref
, и \labelcref
.
Приложение 2019/08/08: Я добавил две строки в код, чтобы обобщить решение subsubsection
и для обработки заголовков уровня -.
\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}