Excluir subseção do ToC e manter as referências

Excluir subseção do ToC e manter as referências

Preciso remover minha subseção do ToC. Eu acertei essa parte sem problemas usando issolink. Obrigado!

Mas não consigo usar \ref{"label from my subsection"}a subseção selecionada que acabei de remover do meu ToC. Bem, ainda posso vinculá-lo, mas só obterei a referência à seção acima da minha subseção.

Exemplo: (Minha subseção não é mostrada no ToC)

\section{Hello World!}
\label{sec:hello_world}

\subsection{Goodbye}
\label{sec:goodbye}

\ref{sec:goodbye}

--- O látex retornará com o resultado abaixo ---

1. Olá, mundo!

1.1. Adeus

1

Responder1

Se você deseja que todos \subsectionos s sejam removidos do ToC, tudo o que você precisa no preâmbulo do documento é

\setcounter{tocdepth}{1}

o que definiria a profundidade máxima das entradas no ToC como 1 (ou \section).

Se você deseja apenas que selecionado \subsectionsseja inserido/não no ToC, você deve usar uma técnica diferente. O seguinte define \stoptocentriese \starttocentries. O primeiro desativa a inserção de conteúdo no ToC desativando \addcontentsline. Este último restaura a funcionalidade.

insira a descrição da imagem aqui

\documentclass{article}

\let\oldaddcontentsline\addcontentsline
\newcommand{\stoptocentries}{\renewcommand{\addcontentsline}[3]{}}
\newcommand{\starttocentries}{\let\addcontentsline\oldaddcontentsline}

\begin{document}
\tableofcontents
\section{A section}
\stoptocentries% Stop adding content to the ToC
\subsection{A subsection}
\starttocentries% Resume adding content to the ToC
\subsection{Another subsection}
\end{document}

Obviamente, o uso de \stoptocentriestambém se aplica a outras unidades seccionais que usam \addcontentsline.

Responder2

Você pode fazer isso imediatamente com o pacoteetoc.

emove subseção

O código:

\documentclass{article}
\usepackage{etoc}
\begin{document}

\tableofcontents

\section{First Section}

Hello

\subsection{A}

\subsection{B}

\section{Second Section}

\etocsettocdepth.toc {section}
\subsection {EXCLUDE ME}\label{ssec:excluded}
\etocsettocdepth.toc {subsection}

\subsection {D}

Too bad we have excluded subsection \ref{ssec:excluded} from the TOC!


\end{document}

Responder3

Vejo que a resposta acima responde completamente à pergunta, masencontrei outro método no site do LaTeX.

Se você quiser ocultar todas as subseções dentro do toc, você deve definir o contador tocprofundidade para 1:

\setcounter{tocdepth}{1}

Mas se você quiser que isso se aplique apenas a certas (sub)seções, você pode alterar tocprofundidade dentro do documento:

\documentclass[a4paper,10pt]{book}
\begin{document}
\tableofcontents
\chapter{One}
\section{One}
\subsection{One}
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
\subsection{Two}
\addtocontents{toc}{\protect\setcounter{tocdepth}{2}}
\subsection{Three}
\end{document}

Um exemplo mínimo trabalhado também pode ser encontrado no site do LaTeX.

informação relacionada