我正在尝试将未编号的小节添加到我的目录中,同时保持其正确缩进,并且不删除文本中的标题编号。以下是我有但不想要的示例和代码:
\documentclass[11pt]{article}
\usepackage{tocloft}
\begin{document}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}
\cftpagenumbersoff{part} % suppress page number in toc for parts
\tableofcontents
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}
\renewcommand{\thesubsection}
{\arabic{subsection}}
\renewcommand{\thesubsubsection}
{\Alph{subsubsection}}
\newpage
\part*{Part}
\addcontentsline{toc}{part}{Part}
\section{Section1}
\section{Section2}
\subsection{Subsection1}
\subsubsection{SubsubsectionA}
\subsubsection{SubsubsectionB}
\section{Section3}
\end{document}
当我使用 删除子小节编号时\setcounter{secnumdepth}{2}
,它也会删除缩进,使其与小节齐平。以下是结果。
我还想避免使用上述解决方案,因为它会删除文本中的标题编号,而我想保留这些编号。以下是我想要实现的理想解决方案:正确缩进的目录包含没有节号的子节,但仍包含文本中的节号。
如果这不可能或者太难,那么只需更改小节编号和标题之间的缩进空间就可以了,如下所示:
或者
答案1
这里建议使用包(不要同时使用!)tocbasic
:tocloft
\documentclass[11pt]{article}
\usepackage{tocbasic}
\DeclareTOCStyleEntry[
pagenumberformat=\gobble,
numwidth=0pt
]{tocline}{part}
\DeclareTOCStyleEntry[
entrynumberformat=\gobble,
numwidth=2em
]{tocline}{subsubsection}
\newcommand\gobble[1]{}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}
\renewcommand{\thesubsection}{\arabic{subsection}}
\renewcommand{\thesubsubsection}{\Alph{subsubsection}}
\begin{document}
\tableofcontents
\clearpage
\part*{Part}\addcontentsline{toc}{part}{Part}
\section{Section1}
\section{Section2}
\subsection{Subsection1}
\subsubsection{SubsubsectionA}
\subsubsection{SubsubsectionB}
\section{Section3}
\end{document}
关于以下评论:
如果要减少目录中子节编号与其标题之间的间距,可以使用
\DeclareTOCStyleEntry[
numwidth=1.5em
]{tocline}{subsection}
那么我numwidth
也将改变小节。
代码:
\documentclass[11pt]{article}
\usepackage{tocbasic}
\DeclareTOCStyleEntry[
pagenumberformat=\gobble,
numwidth=0pt
]{tocline}{part}
\DeclareTOCStyleEntry[
numwidth=1.5em
]{tocline}{subsection}
\DeclareTOCStyleEntry[
entrynumberformat=\gobble,
numwidth=1.5em
]{tocline}{subsubsection}
\newcommand\gobble[1]{}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{3}
\renewcommand{\thesubsection}{\arabic{subsection}}
\renewcommand{\thesubsubsection}{\Alph{subsubsection}}
\begin{document}
\tableofcontents
\clearpage
\part*{Part}\addcontentsline{toc}{part}{Part}
\section{Section1}
\section{Section2}
\subsection{Subsection1}
\subsubsection{SubsubsectionA}
\subsubsection{SubsubsectionB}
\section{Section3}
\end{document}
答案2
tocloft 手册写得相当好,也是 LaTeX2e 目录参数的一个很好的参考。这里我们使用 tocloft 本身提供的参数。我建议你读一下手册。
\documentclass[11pt]{article}
\usepackage{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{2}
\cftpagenumbersoff{part} % suppress page number in toc for parts
\setlength{\cftsubsubsecindent}
{\dimexpr\cftsubsubsecindent+\cftsubsubsecnumwidth\relax}
\renewcommand{\thesubsection}{\arabic{subsection}}
\renewcommand{\thesubsubsection}{\Alph{subsubsection}}
\begin{document}
\tableofcontents
\newpage
\part*{Part}
\addcontentsline{toc}{part}{Part}
\section{Section1}
\section{Section2}
\subsection{Subsection1}
\subsubsection{SubsubsectionA}
\subsubsection{SubsubsectionB}
\section{Section3}
\end{document}