Cómo preparar el índice de la siguiente manera:
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}
\tikzset{grow'=right,level distance=32pt}
\tikzset{execute at begin node=\strut}
\tikzset{every tree node/.style={anchor=base west}}
\Tree [.S [.Introduction ] [.Taxonomy
] ]
\end{tikzpicture}
\section{Introduction}
\section{Taxonomy}
\section{User Association}
\subsection{Subsection Header}
\end{document}
Respuesta1
Definitivamente no debería haber intentado responder esto...
Prueba de concepto:
\documentclass{article}
\usepackage[edges]{forest}
\forestset{%
subsection/.style={%
delay n={%
>O{n} %
}{%
for preceding siblings={do dynamics},
temptoksa/.option=name,
if nodewalk valid={previous}{%
for previous={%
if section={append/.register=temptoksa}{}%
}%
}{%
replace by={[, coordinate, append]},
},
},
},
declare boolean={section}{0},
}
\makeatletter
\newcommand\foresttoc{%
\begingroup
\xdef\foresttoctoc{}%
\renewcommand\contentsline[3]{%
\let\tempb\foresttoctoc
\xdef\foresttoctoc{\tempb[{##2}, ##1]}%
}%
\renewcommand\numberline[1]{Sec.~##1 }%
\bracketset{action character=@}%
\@starttoc{toc}%
\begin{forest}
before typesetting nodes={
forked edges,
for tree={
grow'=0,
anchor=parent,
tier/.option=level,
},
where level=1{fork sep'=0pt}{},
},
[, coordinate, @+\foresttoctoc ]
\end{forest}%
\endgroup
}
\makeatother
\begin{document}
\foresttoc
% \tableofcontents
\subsection{Awkward}
\section{User Association}
\subsection{Subsection Header}
\subsection{Subsection Header}
\section{Introduction}
\section{Taxonomy}
\section{User Association}
\subsection{Subsection Header}
\subsection{Subsection Header}
\end{document}
Esto le permite (pero ya no requiere) tener también una tabla de contenidos normal. Esto es bueno porque el formato deseado es bastante inútil para ubicar cosas, algo que las tablas de contenido normales hacen por diseño.