글쎄, 내 템플릿에 대한 간단한 요약을 작성하려고 하다가 기로에 섰습니다. 내 클래스 정의에서 템플릿의 특정 스타일을 유지하기 \section{}
위해 명령을 다시 정의했지만 이제는 섹션을 독립적으로 참조하고 작성하면 제목에 번호가 없는 상태로 유지된다는 속성을 유지하고 싶습니다.\section*{}
\section{A random title}
이에 대해 더 자세히 설명하겠습니다.
\section{}
다음 코드 줄을 사용하여 명령을 재정의했습니다 .\let\oldsection\section \renewcommand{\section}[1]{% \oldsection*{#1} \phantomsection \addcontentsline{toc}{section}{#1} }
두 개의 서로 다른 섹션에서 사용하면
\ref{A label given to the section}
다음과 같은 결과를 얻습니다.
\section{}
다음과 같이 장 내 각 섹션의 이름을 포함하는 간략한 요약을 만들었으므로 명령에 번호를 매길 필요가 없습니다 .
정보가 너무 많아서 게시물에 과부하가 걸리지 않도록 이 간략한 요약의 코드를 포함할 필요는 없다고 생각합니다.
본질적으로, 나는 이 작업을 수행하는 방법을 알아내는 데 도움을 원합니다 \ref{}
.
답변1
\ref{}
원하는대로 작업이 가능합니다 . \@currentlabel
next 전에 in place를 재정의해야 합니다 \label
. 귀하의 경우에는 재정의된 \section
.
을 로드한 이후에는 별표 표시된 각 섹션에 앵커가 이미 추가되어 있으므로 hyperref
필요하지 않습니다 . 대신 \phantomsection
사용하는 것이 좋습니다 .\NewCommandCopy
\let
다음 예제에서는 다음을 생성합니다.
\ref{}
지정된 경우 더 짧은 섹션 제목을 사용하기 위해 매크로를 약간 확장했습니다 . 또한 이 경우 섹션 번호는 의미가 없기 때문에 콜론 뒤의 페이지 번호를 가정합니다.
\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}