右側の成長する木としての目次

右側の成長する木としての目次

目次の作成方法は次のとおりです。

サンプル

\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}

答え1

絶対にこれに答えるべきではなかった...。

コンセプトの証明:

\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}

ツリートック

これにより、通常の目次も作成できるようになりますが、必須ではなくなります。これは良いことです。なぜなら、目的の形式は、通常の目次が意図的に行っているように、項目を見つけるのにはあまり役に立たないからです。

関連情報