好吧,這可能是一個非常規的問題。
我想使用小節(或出於格式原因的子小節)的範圍作為我的節號。
因此對於:
\section{First section}
\subsubsection{\S1}
\subsubsection{\S2}
\subsubsection{\S3}
我想取得章節標題和目錄條目:
§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 而在目錄中引入了錯誤的頁碼。我不知道如何修復錯誤的錨點,所以我決定只使用第一個子句並附加德語“ff”。目錄中的「及以下內容」。
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}