Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automagically generating notebooks with collapsed sections

The code block below

CreateDocument[{
  TextCell["Title", "Title"],
  TextCell["Subtitle", "Subtitle"],
  TextCell["Section 1", "Section"],
  TextCell["Section 1.1", "Subsection"],
  TextCell["Section 1.2", "Subsection"],
  TextCell["Section 1.3", "Subsection"],
  TextCell["Section 2", "Section"],
  TextCell["Section 2.1", "Subsection"],
  TextCell["Section 2.2", "Subsection"],
  TextCell["Section 2.3", "Subsection"],
  TextCell["Section 3", "Section"],
  TextCell["Section 2.1", "Subsection"],
  TextCell["Section 2.2", "Subsection"],
  TextCell["Section 2.3", "Subsection"]}
 ]

will create a skeleton notebook.

Is it possible to create that notebook so that the sections are collapsed? So that the notebook will be displayed as if (eg) the Cell closer covering Section 1 had been clicked. Ditto for Sections 2 & 3.

like image 220
dwa Avatar asked May 12 '11 02:05

dwa


1 Answers

Use CellGroup to open or close specific cells - see http://reference.wolfram.com/mathematica/ref/CellGroup.html

CreateDocument[{
  TextCell["Title", "Title"],
  TextCell["Subtitle", "Subtitle"],
  CellGroup[{
    TextCell["Section 1", "Section"],
    TextCell["Section 1.1", "Subsection"], 
    TextCell["Section 1.2", "Subsection"], 
    TextCell["Section 1.3", "Subsection"]
  }, Closed],
  TextCell["Section 2", "Section"],
  TextCell["Section 2.1", "Subsection"], 
  TextCell["Section 2.2", "Subsection"], 
  TextCell["Section 2.3", "Subsection"],
  TextCell["Section 3", "Section"],
  TextCell["Section 2.1", "Subsection"], 
  TextCell["Section 2.2", "Subsection"], 
  TextCell["Section 2.3", "Subsection"]}]

Or you could wrap the entire collection of TextCells in one high-level CellGroup and play with CellGroup's optional second argument. For example, this will open only the first three cell groups:

CreateDocument[{
  CellGroup[{
    TextCell["Title", "Title"],
    TextCell["Subtitle", "Subtitle"],
    TextCell["Section 1", "Section"],
    TextCell["Section 1.1", "Subsection"], 
    TextCell["Section 1.2", "Subsection"], 
    TextCell["Section 1.3", "Subsection"],
    TextCell["Section 2", "Section"],
    TextCell["Section 2.1", "Subsection"], 
    TextCell["Section 2.2", "Subsection"], 
    TextCell["Section 2.3", "Subsection"],
    TextCell["Section 3", "Section"],
    TextCell["Section 2.1", "Subsection"], 
    TextCell["Section 2.2", "Subsection"], 
    TextCell["Section 2.3", "Subsection"]
  }, {1, 2, 3}]
}]
like image 138
Bill White Avatar answered Oct 10 '22 09:10

Bill White