Añadir secciones a minitoc sin tenerlas en el índice real

Añadir secciones a minitoc sin tenerlas en el índice real

Solucioné el problema, pero no sé por qué funciona. Consulte el comentario al final para ver las preguntas de seguimiento.

He encontrado varias preguntas similares, pero ninguna que coincida (o parezca funcionar). Sin embargo, si esto es una falla de mi Google-fu, simplemente vincule a la pregunta relevante, por favor.

Estoy intentando escribir una guía que incluya preguntas frecuentes al final. La forma más natural que pensé de hacer preguntas frecuentes fue usar el paquete hyperref y un minitoc para permitir que las personas lean la pregunta y hagan clic en la respuesta. Desafortunadamente, esto satura la tabla de contenido superior de la guía con todas las preguntas frecuentes. Debe haber una manera de suprimir las preguntas frecuentes en la tabla de contenido, pero aún así mostrarlas en el minitoc. Probé el \addstarredsectioncomando en la documentación del paquete minitoc, pero ni siquiera puedo compilarlo correctamente, y mucho menos hacer lo que quiero. ¿Alguna sugerencia?

Un MWE (incluidos todos los paquetes que pretendo usar a partir de ahora):

\documentclass{article}

\usepackage{hyperref}
\hypersetup{%               %           Setup the coloring of the links. 
%                           %           Currently the only necessary one is "colorlinks=true" and "linkcolor=blue".
    colorlinks   = true,    %           Colours links instead of ugly boxes
    urlcolor     = blue,    %           Colour for external hyperlinks
    linkcolor    = blue,    %           Colour of internal links
    citecolor    = blue     %           Colour of citations, could be ``red''
    }

\usepackage[
    margin=1in,%            All 4 margins need to be one inch.
    paperheight=11in,%      We want 11in tall paper.
    paperwidth=8.5in%       And 8.5in wide paper.
    ]{geometry}%            Geometry package is the easiest way to deal with margins.

\usepackage{fancyhdr}
\usepackage{indentfirst}
\pagestyle{fancy}
\usepackage{titlesec}%          Use this for the actual header styling
\usepackage{titletoc}%          Use this to manipulate Table of Contents styling
\usepackage{minitoc}% To form a miniture table of contents for the FAQ.
\title{A guide to Stuff}
\author{Me}
\date{}

\begin{document}
\maketitle
\newpage
\section*{Introduction}

\newpage
\doparttoc\tableofcontents
\newpage

\part{Part 1}
\newpage

\section{Subsection of Part 1}
\newpage

\section{Second Subsection of Part 1}

\newpage
\part{Part 2}
\newpage

\section{Subsection of Part 2}
\newpage

\section{Second Subsection of Part 2}

\newpage
\part{FAQ}
% Every section (or subsection) below this should appear in the minitoc but NOT the main table of contents. Bonus points for being able to show *only* sections and not subsections, although this should simply be a matter of setting the toc depth in theory.
\parttoc
\section*{Question One}
%\addstarredsection{Question One}
    Q1
\section{Question Two}
    Q2
    \subsection{Subquestion of Question Two}
        SubQ1
    \subsection{Another subquestion of Question Two}
        SubQ2
\section{Question Three}
    Q3
\end{document}

Como nota al pie, quería usar los paquetes titletoc y titlesec por otras razones, y había visto algunas publicaciones sobre cómo usar titletoc para obtener un minitoc sin usar el paquete minitoc. También probé estas sugerencias, pero no pude compilar ninguna de las respuestas sugeridas; Incluso copiar/pegar las respuestas en los hilos como prueba de fuego. Para ser justos, esas publicaciones parecían ser muy antiguas, así que imagino que es un problema con las actualizaciones de LaTeX y/o el paquete titletoc. También abandoné los intentos temprano porque sabía que minitoc ya hacía más o menos lo que quería y de todos modos quería aprender a usar minitoc mejor.

Editar:

Solucioné el problema insertando \addtocontents{toc}{\protect\setcounter{tocdepth}{0}}justo después de la \part{FAQ}línea. Sé que esto está configurando la profundidad del toc para que ya no contrarreste la sección (o inferior) de la tabla de contenido, por lo que esperaría (y es cierto) que la tabla de contenido superior no tenga nada después de la FAQparte.

De lo que no estoy seguro es por qué el minitoc sigue completando todas las secciones correctamente, cuando esas secciones no aparecen en la tabla de contenido superior. Si la profundidad del toc no afecta al minitoc, ¿qué lo hace? Pensé que minitoc analizó el .tocarchivo para obtener su contenido, por lo que cualquier cosa que no esté en el toc tendría problemas para estar en el minitoc... pero aparentemente esto no es cierto. ¿Alguien que pueda darnos una idea de lo que está pasando aquí?

Respuesta1

Aquí hay una forma basada en la publicación:

¿Cómo agregar un TOC personalizado ("Desglose de secciones" automatizado) después de cada comando \capítulo?

\documentclass{article}

\usepackage{hyperref}
\hypersetup{%               %           Setup the coloring of the links. 
%                           %           Currently the only necessary one is "colorlinks=true" and "linkcolor=blue".
    colorlinks   = true,    %           Colours links instead of ugly boxes
    urlcolor     = blue,    %           Colour for external hyperlinks
    linkcolor    = blue,    %           Colour of internal links
    citecolor    = blue     %           Colour of citations, could be ``red''
    }

\usepackage[
    margin=1in,%            All 4 margins need to be one inch.
    paperheight=11in,%      We want 11in tall paper.
    paperwidth=8.5in%       And 8.5in wide paper.
    ]{geometry}%            Geometry package is the easiest way to deal with margins.

\usepackage{fancyhdr}
\usepackage{indentfirst}
\pagestyle{fancy}
%\usepackage{titlesec}%          Use this for the actual header styling
%\usepackage{titletoc}%          Use this to manipulate Table of Contents styling
\usepackage{minitoc}% To form a miniture table of contents for the FAQ.


%koleygr: ADDED CODE
\usepackage{pgffor}
%\newcounter{mychapter}

%\renewcommand\thepart{\Alph{part}}
%\newcommand\thechapter{\thepart.\arabic{mychapter}}

%\renewcommand\thesection{\thechapter.\arabic{section}}
%\renewcommand\thesubsection{\thesection.\arabic{subsection}}


\let\oldpart\part
%\def\part#1{\oldpart{#1}\setcounter{mychapter}{0}\refstepcounter{mychapter}}


\let\oldsection\section
\let\oldsubsection\subsection
%\let\olldchapter\chapter
%\def\oldchapter{\stepcounter{mychapter}\olldchapter}
\makeatletter

\newcounter{mysection}
\newcounter{mysubsection}



\def\section{%
\@ifstar{\@Starred}{\@nonStarred}%
}
\def\@Starred{%
\@ifnextchar[%
{\GenericWarning{}{Warning: A starred section can not have parameters. I am going to ignore them!}\@StarredWith}%
{\@StarredWithout}%
}      
\def\@StarredWith[#1]#2{%
\oldsection*{#2}\refstepcounter{mysection}\label{Sec:\arabic{mysection}}%
}
\def\@StarredWithout#1{
\oldsection*{#1}\refstepcounter{mysection}\label{Sec:\arabic{mysection}}%
}
\def\@nonStarred{%
\@ifnextchar[%
{\@nonStarredWith}%
{\@nonStarredWithout}%
}
\def\@nonStarredWith[#1]#2{%
\oldsection[#1]{#2}\refstepcounter{mysection}\label{Sec:\arabic{mysection}}%
}
\def\@nonStarredWithout#1{%
\oldsection{#1}\refstepcounter{mysection}\label{Sec:\arabic{mysection}}%
}


\def\subsection{%
\@ifstar{\@StarredS}{\@nonStarredS}%
}
\def\@StarredS{%
\@ifnextchar[%
{\GenericWarning{}{Warning: A starred section can not have parameters. I am going to ignore them!}\@StarredSWith}%
{\@StarredSWithout}%
}      
\def\@StarredSWith[#1]#2{%
\oldsubsection*{#2}\refstepcounter{mysubsection}\label{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
\def\@StarredSWithout#1{%
\oldsubsection*{#1}\refstepcounter{mysubsection}\label{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
\def\@nonStarredS{%
\@ifnextchar[%
{\@nonStarredSWith}%
{\@nonStarredSWithout}%
}
\def\@nonStarredSWith[#1]#2{%
\oldsubsection[#1]{#2}\refstepcounter{mysubsection}\label{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
\def\@nonStarredSWithout#1{%
\oldsubsection{#1}\refstepcounter{mysubsection}\label{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}

%\MakeRobust{\ref}


\newcommand{\labeltext}[2]{%
\immediate\write\@auxout{%
  \string\newlabel{#2}{{1}{\thepage}{\unexpanded{#1}}{#2}{}}%
}%
}

\newcommand\stopTOC{%
\def\section{%
\@ifstar{\@Starred}{\@nonStarred}%
}
\def\@Starred{%
\@ifnextchar[%
{\GenericWarning{}{Warning: A starred section can not have parameters. I am going to ignore them!}\@StarredWith}%
{\@StarredWithout}%
}      
\def\@StarredWith[##1]##2{%
\oldsection*{##2}\refstepcounter{mysection}\labeltext{##2}{Sec:\arabic{mysection}}%
}
\def\@StarredWithout##1{
\oldsection*{##1}\refstepcounter{mysection}\labeltext{##1}{Sec:\arabic{mysection}}%
}
\def\@nonStarred{%
\@ifnextchar[%
{\@nonStarredWith}%
{\@nonStarredWithout}%
}
\def\@nonStarredWith[##1]##2{%
\oldsection*{\arabic{section}\hspace{1em}{##2}}\refstepcounter{mysection}\labeltext{\refstepcounter{section}\arabic{section}\hspace{1em}##2}{Sec:\arabic{mysection}}%
}
\def\@nonStarredWithout##1{%
\oldsection*{\arabic{section}\hspace{1em}{##1}}\refstepcounter{mysection}\labeltext{\refstepcounter{section}\arabic{section}\hspace{1em}##1}{Sec:\arabic{mysection}}%
}


\def\subsection{%
\@ifstar{\@StarredS}{\@nonStarredS}%
}
\def\@StarredS{%
\@ifnextchar[%
{\GenericWarning{}{Warning: A starred section can not have parameters. I am going to ignore them!}\@StarredSWith}%
{\@StarredSWithout}%
}      
\def\@StarredSWith[##1]##2{%
\oldsubsection*{##2}\refstepcounter{mysubsection}\label{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
\def\@StarredSWithout##1{%
\oldsubsection*{##1}\refstepcounter{mysubsection}\label{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
\def\@nonStarredS{%
\@ifnextchar[%
{\@nonStarredSWith}%
{\@nonStarredSWithout}%
}
\def\@nonStarredSWith[##1]##2{%
\oldsubsection*{\arabic{section}.\arabic{subsection}\hspace{1em}##2}\refstepcounter{mysubsection}\labeltext{\refstepcounter{subsection}\arabic{section}.\arabic{subsection}\hspace{1em}##2}{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
\def\@nonStarredSWithout##1{%
\oldsubsection*{\arabic{section}.\arabic{subsection}\hspace{1em}##1}\refstepcounter{mysubsection}\labeltext{\refstepcounter{subsection}\arabic{section}.\arabic{subsection}\hspace{1em}##1}{SubSec:\arabic{mysection}:\arabic{mysubsection}}%
}
}


%SectionBreakDown

\newcounter{secc}
\newcounter{ssecc}
\newcounter{tssecc}
\xdef\OverC{0}


\newcommand\SBD[2][1,-1]{%
  \xdef\OverC{0}%
  \def\Continued\empty%
  \def\ToBeContinued{-1}%
  \foreach \opt[count=\ll from 1] in {#1}{%
    \ifnum\ll=1
    \xdef\Continued{\opt}%
    \else
    \xdef\ToBeContinued{\opt}%
    \fi
  }%
  \ifx\ToBeContinued\empty
  \xdef\ToBeContinued{-1}%
  \fi
  \ifx\Continued\empty
  \xdef\Continued{1}%
  \fi
%
%\section{Section breakdown}

\ifnum\Continued>0
\else
\noindent{\large\bfseries Contents}%

\noindent\rule{\textwidth}{2pt}\vspace{0.5cm}
\setcounter{secc}{0}%
\setcounter{ssecc}{0}%
\setcounter{tssecc}{0}%
\fi
%
{\noindent #2}\par
%
%
\ifnum\ToBeContinued<0
\def\ContinueUntil{100}%
\else
\def\ContinueUntil{\ToBeContinued}%
\fi
%
\foreach \mk in {\Continued,...,\ContinueUntil}{%
  \@ifundefined{r@Sec:\mk}{%
    \breakforeach%
  }{%
    \setcounter{secc}{\mk}%
    \ifnum\mk<0
      \breakforeach%
    \else
    \ifnum\mk>\ContinueUntil
    \\\breakforeach%
    \else
         \noindent{\bfseries{\nameref{Sec:\mk}\dotfill\pageref{Sec:\mk}}\\[1.2ex]}
         \foreach \ml in {1,...,100}{%
            \@ifundefined{r@SubSec:\mk:\ml}{%
               \breakforeach%
            }{%
               \setcounter{ssecc}{\ml}%
               \stepcounter{tssecc}%
               \ifnum\mk>0
                     \hspace{0.3cm}\parbox[t]{\textwidth}{\setlength{\baselineskip}{4pt}\nameref{SubSec:\mk:\ml}\dotfill\pageref{SubSec:\mk:\ml}\\[0.9ex]}\\
                \fi
            }%
        }%
        \fi
    \fi
  }%
}
%\begin{enumerate}[label={\arabic{enumi}.},itemsep=0pt]
%\foreach \i in {#3,...,#4}
%{\item \nameref{\thechapter:\i}}
%\end{enumerate}

\ifnum\ToBeContinued>0
\relax%
\else
\vspace{-0.cm}
\par
\noindent\rule{\textwidth}{2pt}
\fi
}
\makeatother

%koleygr: END ADDED CODE

\title{A guide to Stuff}
\author{Me}
\date{}

\begin{document}
\maketitle
\newpage
\section*{Introduction}

\newpage
\doparttoc\tableofcontents
\newpage

\part{Part 1}
\newpage

\section{Subsection of Part 1}
\newpage

\section{Second Subsection of Part 1}

\newpage
\part{Part 2}
\newpage

\section{Subsection of Part 2}
\newpage

\section{Second Subsection of Part 2}

\newpage
\part{FAQ}
\stopTOC
\SBD[0,1]{}
\SBD[7,-1]{}
%\parttoc
\section*{Question One}
%\addstarredsection{Question One}
    Q1
\section{Question Two}
    Q2
    \subsection{Subquestion of Question Two}
        SubQ1
    \subsection{Another subquestion of Question Two}
        SubQ2
\section{Question Three}
    Q3
\end{document}

TOC:

ingrese la descripción de la imagen aquí

PARTE 3:

ingrese la descripción de la imagen aquí

información relacionada