
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 \subsection
os 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 \subsections
seja inserido/não no ToC, você deve usar uma técnica diferente. O seguinte define \stoptocentries
e \starttocentries
. O primeiro desativa a inserção de conteúdo no ToC desativando \addcontentsline
. Este último restaura a funcionalidade.
\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 \stoptocentries
também se aplica a outras unidades seccionais que usam \addcontentsline
.
Responder2
Você pode fazer isso imediatamente com o pacoteetoc.
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.