
Ich habe das Problem behoben, weiß aber nicht, warum es funktioniert. Weitere Fragen finden Sie im Kommentar am Ende.
Ich habe mehrere ähnliche Fragen gefunden, aber keine, die wirklich passt (oder zu funktionieren scheint). Wenn dies jedoch ein Fehler meiner Google-Fähigkeit ist, verlinken Sie bitte einfach auf die entsprechende Frage.
Ich versuche, einen Leitfaden zu schreiben, der am Ende eine FAQ enthält. Die natürlichste Art, eine FAQ zu erstellen, war meiner Meinung nach die Verwendung des Hyperref-Pakets und eines Minitoc, damit die Leute die Frage lesen und auf die Antwort klicken können. Leider wird dadurch das obere Inhaltsverzeichnis des Leitfadens mit all den FAQ-Fragen überfüllt. Es muss eine Möglichkeit geben, die FAQ-Fragen im Inhaltsverzeichnis zu unterdrücken, sie aber trotzdem im Minitoc anzuzeigen. Ich habe den \addstarredsection
Befehl in der Minitoc-Paketdokumentation ausprobiert, aber ich kann ihn nicht einmal richtig kompilieren, geschweige denn tun, was ich will. Irgendwelche Vorschläge?
Ein MWE (einschließlich aller Pakete, die ich derzeit verwenden möchte):
\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}
Als Fußnote: Ich wollte die Pakete titletoc und titlesec aus anderen Gründen verwenden und hatte ein paar Beiträge darüber gesehen, wie man mit titletoc ein Minitoc erhält, ohne das Minitoc-Paket zu verwenden. Ich habe diese Vorschläge ebenfalls ausprobiert, konnte aber keine der vorgeschlagenen Antworten kompilieren; als Lackmustest habe ich die Antworten sogar in die Threads kopiert und eingefügt. Fairerweise muss man sagen, dass diese Beiträge sehr alt zu sein schienen, also nehme ich an, dass es ein Problem mit Updates für LaTeX und/oder das Paket titletoc ist. Ich habe die Versuche auch früh aufgegeben, da ich wusste, dass Minitoc bereits mehr oder weniger das tat, was ich wollte, und ich sowieso lernen wollte, wie man Minitoc besser verwendet.
Bearbeiten:
Ich habe das Problem behoben, indem ich es \addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
direkt nach der \part{FAQ}
Zeile eingefügt habe. Ich weiß, dass dadurch die Inhaltsverzeichnistiefe so eingestellt wird, dass sie nicht mehr dem Abschnitt (oder darunter) für das Inhaltsverzeichnis entspricht. Daher würde ich erwarten (und das stimmt), dass das obere Inhaltsverzeichnis nach diesem FAQ
Teil nichts mehr enthält.
Ich bin mir nicht sicher, warum Minitoc alle Abschnitte immer noch korrekt ausfüllt, obwohl diese Abschnitte nicht im oberen Inhaltsverzeichnis angezeigt werden. Wenn die Inhaltsverzeichnistiefe keine Auswirkungen auf Minitoc hat, was dann? Ich dachte, Minitoc analysiert die .toc
Datei, um ihren Inhalt zu ermitteln, sodass alles, was nicht im Inhaltsverzeichnis steht, Probleme damit hat, in Minitoc zu erscheinen ... aber das stimmt anscheinend nicht. Kann jemand Aufschluss darüber geben, was hier vor sich geht?
Antwort1
Hier ist eine auf dem Beitrag basierende Möglichkeit:
\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}
Inhaltsverzeichnis:
TEIL 3: