Re: Table of Contents
- To: mathgroup at smc.vnet.net
- Subject: [mg85377] Re: Table of Contents
- From: David Reiss <dbreiss at gmail.com>
- Date: Thu, 7 Feb 2008 22:29:54 -0500 (EST)
- References: <foejuo$huu$1@smc.vnet.net>
Here is an example of a function that, when executed in the notebook in question, will generate a set fo cells at the top of the notebook that are hyperlinks to the section cells: ClearAll[TOCForNotebook]; TOCForNotebook[] := Module[{nbr, data, cells, nb}, nb = EvaluationNotebook[]; SetOptions[nb, System`CellID -> True]; SelectionMove[nb, All, Notebook, AutoScroll -> False]; NotebookWrite[nb, NotebookRead[nb]]; NotebookFind[nb, "Section", All, CellStyle]; nbr = NotebookRead[nb]; data = nbr /. {Cell[x_, "Section", ___, z : (CellID -> w_), ___] :> {x, w}}; cells = Function[x, TextCell[ Button[TextCell[#[[1]], "Hyperlink"], NotebookFind[x, #[[2]], All, CellID], Appearance -> "Frameless"], "Text"]][nb] & /@ data; cells = First[ToBoxes[#]] & /@ cells; SelectionMove[EvaluationNotebook[], Before, Notebook, AutoScroll -> True]; NotebookWrite[nb, cells]; ]; So, first execute this code somewhere in your current Mathematica session. Then execute TOCForNotebook[] within the notebook in question. If your Section cells have any formatting in them then this will not quite work as expected. But it gives a start to others that would wish to modify this. The code exposes several coding tricks that folks will perhaps find useful.... -David A WorkLife FrameWork E x t e n d i n g MATHEMATICA's Reach... http://scientificarts.com/worklife/ On Feb 7, 4:44=A0am, =8Aer=FDch Jakub <Ser... at panska.cz> wrote: > I use some notebooks as the collections of many small examples, which I > allways start with cell styled as "Section" followed by usually one input = and > one output cell. The "Section" styled cell contains the name of the exampl= e. > > Does anybody know, how to create Table of Contents based on these section > cells? Idealy it would contain interactive hyperlinks directly to the cell= s. > > Thanks in advance > > Jakub