
Respuesta1
El \@sect
código es relevante para todos \section
, etc., como macros, y se \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth...
verifica el valor de secnumdepth
. Reemplazando esto \c@secnumdepth
por otro valor de contador es posible ocultar la numeración en el ToC.
He introducido el contador secnumtocdepth
para esto.
\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}
Respuesta2
Con una clase estándar puedes usar el paquete 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}
Resultado:
Esto también funcionaría con una clase KOMA-Script, pero tocbasic
la clase ya lo carga.
Con unKOMA-Scriptclase que también podrías usar\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}
O podrías redefinir \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}
Resultado: