좋습니다. 이것은 색다른 질문일 수도 있습니다.
하위 섹션 범위(또는 서식 지정상의 이유로 하위 섹션)를 섹션 번호로 사용하고 싶습니다.
그래서:
\section{First section}
\subsubsection{\S1}
\subsubsection{\S2}
\subsubsection{\S3}
섹션 제목과 ToC 항목을 얻고 싶습니다.
§1 - §3 First section
따라서 기본적으로 섹션의 첫 번째 (하위)하위 섹션의 텍스트와 마지막 마지막 (하위)하위 섹션의 텍스트를 표시된 섹션 "번호"로 사용합니다.
자동으로 수행할 수 없는 경우 각 섹션의 시작 부분에 이 번호를 명시적으로 선언해도 괜찮습니다.
답변1
문제는 몇 가지 구별 가능한 하위 문제로 구성됩니다.
subsubsections
수업 시간 에 번호 매기기book
:\setcounter{secnumdepth}{3}
연속 번호 매기기 : 카운터 재설정을 방지하기 위해 패키지를
subsubsections
사용하여 수행할 수 있습니다 .remreset
subsubsection
장당 개수를 계산하려면
subsubsections
패키지를xcntperchap
사용할 수 있습니다 .section
및 제목의 형식을 지정하기 위해 패키지를subsubsection
사용했습니다.titlesec
\documentclass{book}
% numbered subsubsections in book class
\setcounter{secnumdepth}{3}
% number subsubsections continiously
\usepackage{remreset}
\makeatletter
\@removefromreset{subsubsection}{chapter}
\@removefromreset{subsubsection}{section}
\@removefromreset{subsubsection}{subsection}
\makeatother
% count subsubsections per chapter
\usepackage{xcntperchap}
\RegisterTrackCounter{section}{subsubsection}
% format subsubsection titles
\usepackage[explicit]{titlesec}
\titleformat{\subsubsection}{\bfseries}{%
\S \arabic{subsubsection}
}{0pt}{}
% Format section
\newcounter{start}
\newcounter{stop}
\titleformat{\section}{\bfseries}{%
\setcounter{start}{\value{subsubsection}}%
\addtocounter{start}{1}%
\setcounter{stop}{\ObtainTrackedValueExp[\value{section}]{section}{subsubsection}}%
\addtocounter{stop}{\value{start}}%
\addtocounter{stop}{-1}%
\ifnum\ObtainTrackedValueExp[\value{section}]{section}{subsubsection}>0
\S \arabic{start} -- \S \arabic{stop}
\fi
#1
}{0pt}{}
\begin{document}
\section{First section}
\subsubsection{}
\subsubsection{}
\subsubsection{}
\section{Second section}
\subsubsection{}
\subsubsection{}
\section{Third section}
\end{document}
답변2
맞춤 카운터를 도입하여 이 문제를 해결했습니다.
\newcounter{clause}
\newcounter{sectionstart}
\newcounter{sectionend}
\begin{document}
\setcounter{sectionstart}{\value{clause}}
\section*{Section 1}
\refstepcounter{sectionstart}
\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}
\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}
\setcounter{sectionend}{\value{clause}}
\addcontentsline{toc}{section}{\S\arabic{sectionstart}\enspace\textendash\enspace\S\arabic{sectionend}\quad Section 1}
\end{document}
이 솔루션은 마지막 하위 섹션 이후의 addcontentsline으로 인해 ToC에 잘못된 페이지 번호를 도입합니다. 나는 잘못된 앵커를 수정하는 방법을 몰랐기 때문에 첫 번째 절을 사용하고 독일어 "ff"를 추가하기로 결정했습니다. "및 다음"에 대해 ToC에 추가합니다.
sectionstart 카운터는 단지 가독성을 위한 것이며 섹션의 ToC 코드가 첫 번째 절로 이동하는 경우 건너뛸 수 있습니다.
\newcounter{clause}
\newcounter{sectionstart}
\begin{document}
\setcounter{sectionstart}{\value{clause}}
\refstepcounter{sectionstart} % increase by 1 as section should have at least 1 clause
\section*{Section 1}
\addcontentsline{toc}{section}{\S\arabic{sectionstart}\space ff.\enspace Section 1}
\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}
\refstepcounter{clause}
\subsubsection{\textbf{\S\arabic{clause}}}
\end{document}