Is it possible to collapse all cell groups in the current notebook? I tried

nb = SelectedNotebook[];
SelectionMove[nb, Before, CellGroup]

but nothing changes.



nb = SelectedNotebook[];
SelectionMove[nb, All, Notebook]


nb = SelectedNotebook[];
FrontEndExecute[FrontEndToken[nb, "SelectAll"]]

The token may be found in Tokens Related to the Cell Menu in the help browser.

This specific operation may be found under the Scope section of the FrontEndToken documentation.

  • $\begingroup$ Note that "OpenCloseGroup" and "SelectionCloseAllGroups" work differently when you have nested cell groups. $\endgroup$ – Brett Champion Jun 14 '12 at 15:38
  • $\begingroup$ @Brett the OP asked to "collapse all cell groups" -- isn't that what "SelectionCloseAllGroups" does? $\endgroup$ – Mr.Wizard Jun 14 '12 at 16:13
  • $\begingroup$ And yet the sample code used "OpenCloseGroup". But the OP might not have been aware of the differences between them. $\endgroup$ – Brett Champion Jun 14 '12 at 16:44
  • $\begingroup$ @Brett Okay. I thought you were politely trying to tell me my answer was wrong. $\endgroup$ – Mr.Wizard Jun 14 '12 at 16:51
  • $\begingroup$ @Mr.Wizard is it possible to only close or open one level deep? $\endgroup$ – chris Sep 10 '12 at 19:42

You could use

nb = SelectedNotebook[];
SelectionMove[nb, All, Notebook];
FrontEndTokenExecute[nb, "OpenCloseGroup"]

although it only works if the notebook starts with a cell group, and not with a lone cell. (The menu item behaves the same way.)

If you know there are cellGroupCount groups, you could also do something like:

nb = SelectedNotebook[];
SelectionMove[nb, Before, Notebook]
Do[SelectionMove[nb, Next, CellGroup];
 FrontEndTokenExecute[nb, "OpenCloseGroup"], {cellGroupCount}]
  • $\begingroup$ Thanks for pointing out the dependance on the notebook start, that clarifies things $\endgroup$ – Karsten W. Jun 14 '12 at 21:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.