현재 섹션(쉬움)과 문서의 최대 섹션 번호(이 문제로 어려움을 겪고 있음)를 a/b
나타내는 여러 양식을 만들고 싶습니다 . 하위 섹션 및 하위 하위 섹션도 마찬가지입니다. 아래 예에서는 이어야 합니다 . 문서에서 최대 ((하위)하위)섹션 번호를 어떻게 알 수 있나요?a
b
2/3.1/1.3/4
업데이트: David의 댓글 이후 \label{}
마지막 ((sub)sub)섹션을 참조하곤 했습니다. 그러나 하위 섹션 및 하위 섹션의 경우 \ref{}
섹션 또는 하위 섹션 번호도 포함됩니다. 이것을 어떻게 피할 수 있습니까?
\documentclass{article}
\usepackage{units}
\newcommand\sectionnum{\arabic{section}}
\newcommand\subsectionnum{\arabic{subsection}}
\newcommand\subsubsectionnum{\arabic{subsubsection}}
\begin{document}
\section{Section 1}
\section{Section 2}
\subsection{Subsection 2.1}\label{lastsubsec}
\subsubsection{Subsubsection 2.1.1}
\subsubsection{Subsubsection 2.1.2}
\subsubsection{Subsubsection 2.1.3}
Now we are in Section \nicefrac{\sectionnum}{\ref{lastsec}}.\nicefrac{\subsectionnum}{\ref{lastsubsec}}.\nicefrac{\subsubsectionnum}{\ref{lastsubsubsec}}
% should give 2/3.1/1.3/4
\subsubsection{Subsubsection 2.1.4}\label{lastsubsubsec}
\section{Section 3}\label{lastsec}
\end{document}
답변1
David의 의견과 힌트, 그리고 게시물에 감사드립니다.여기, 나는 다음과 같은 해결책을 생각해 냈습니다.
\documentclass{article}
\usepackage{units}
% for referring to single subsection and subsubsection numbers
% see https://tex.stackexchange.com/questions/159299/ref-to-subsection-number-only/166676#166676
\makeatletter
\def\@firstoftwo@second#1#2{%
\def\temp##1.##2\@nil{##2}%
\temp#1\@nil}
\newcommand\sref[1]{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo@second{#1}}
\def\@firstoftwo@third#1#2{%
\def\temp##1.##2.##3\@nil{##3}%
\temp#1\@nil}
\newcommand\ssref[1]{\expandafter\@setref\csname r@#1\endcsname\@firstoftwo@third{#1}}
\makeatother
\begin{document}
\section{Section 1}
\section{Section 2}
\subsection{Subsection 2.1}\label{lastsubsec}
\subsubsection{Subsubsection 2.1.1}
\subsubsection{Subsubsection 2.1.2}
\subsubsection{Subsubsection 2.1.3}
Now we are in Section \nicefrac{\arabic{section}}{\ref{lastsec}}.\nicefrac{\arabic{subsection}}{\sref{lastsubsec}}.\nicefrac{\arabic{subsubsection}}{\ssref{lastsubsubsec}}
% should give 2/3.1/1.3/4
\subsubsection{Subsubsection 2.1.4}\label{lastsubsubsec}
\section{Section 3}\label{lastsec}
\end{document}