Оглавление: скрыть нумерацию подподразделов

Оглавление: скрыть нумерацию подподразделов

Я хотел бы узнать, есть ли способ скрыть нумерацию подподразделов в оглавлении, сохранив нумерацию разделов и подразделов. На картинке вы можете увидеть, как это выглядит сейчас.

Спасибо

Вот как это выглядит сейчас, я бы хотел скрыть нумерацию для подподразделов.

решение1

Код \@sectактуален для всех \sectionмакросов и т. д. и есть \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth...проверка значения secnumdepth. Заменив это \c@secnumdepthзначение другим значением счетчика, можно скрыть нумерацию в ToC.

secnumtocdepthЯ ввел для этого счетчик .

введите описание изображения здесь

\documentclass{article}


\newcounter{secnumtocdepth}

\setcounter{secnumtocdepth}{2}

\makeatletter
\AtBeginDocument{%

\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #6{%
        \@hangfrom{\hskip #3\relax\@svsec}%
          \interlinepenalty \@M #8\@@par}%
    \endgroup
    \csname #1mark\endcsname{#7}%
    \addcontentsline{toc}{#1}{%
      \ifnum #2>\c@secnumtocdepth \else
        \protect\numberline{\csname the#1\endcsname}%
      \fi
      #7}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumtocdepth \else
          \protect\numberline{\csname the#1\endcsname}%
        \fi
        #7}}%
  \fi
  \@xsect{#5}}


}
\makeatother

\newcommand{\leveltohide}{2}

\begin{document}
\tableofcontents



\section{First section}
\subsection{Foo subsection}

\subsubsection{Foo subsubsection}


\section{Second section}
\subsection{Foo subsection}

\subsubsection{Foo subsubsection}


\end{document}

решение2

Со стандартным классом вы можете использовать package tocbasic:

\documentclass{article}

\usepackage{tocbasic}
\newcommand\gobble[1]{}
\DeclareTOCStyleEntry[
  entrynumberformat=\gobble,
  numwidth=0pt
]{tocline}{subsubsection}

\begin{document}
\tableofcontents
\section{First section}
\subsection{Foo subsection}
\subsubsection{Foo subsubsection}
\section{Second section}
\subsection{Foo subsection}
\subsubsection{Foo subsubsection}
\end{document}

Результат:

введите описание изображения здесь

Это также будет работать с классом KOMA-Script, но тогда tocbasicон уже будет загружен классом.


СКОМА-Скрипткласс, который вы также можете использовать\RedeclareSectionCommand

\documentclass{scrartcl}
\newcommand\gobble[1]{}
\RedeclareSectionCommand[
  tocentrynumberformat=\gobble,
  tocnumwidth=0pt
]{subsubsection}

\begin{document}
\tableofcontents
\section{First section}
\subsection{Foo subsection}
\subsubsection{Foo subsubsection}
\section{Second section}
\subsection{Foo subsection}
\subsubsection{Foo subsubsection}
\end{document}

Или вы можете переопределить \addsubsubsectiontocentry:

\documentclass{scrartcl}

\renewcommand\addsubsubsectiontocentry[2]{%
  \addtocentrydefault{subsubsection}{}{#2}%
}

\begin{document}
\tableofcontents
\section{First section}
\subsection{Foo subsection}
\subsubsection{Foo subsubsection}
\section{Second section}
\subsection{Foo subsection}
\subsubsection{Foo subsubsection}
\end{document}

Результат:

введите описание изображения здесь

Связанный контент