Автоматическое создание записных книжек со свернутыми разделами

#wolfram-mathematica #creation

#wolfram-mathematica #создание

Вопрос:

Приведенный ниже блок кода

 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"]}
 ]
  

создаст скелетную записную книжку.

Возможно ли создать эту записную книжку так, чтобы разделы были свернуты? Таким образом, записная книжка будет отображаться так, как если бы (например) была нажата кнопка закрытия ячейки, закрывающая раздел 1. То же самое для разделов 2 и 3.

Ответ №1:

Используйте CellGroup для открытия или закрытия определенных ячеек — см. 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"]}]
  

Или вы могли бы обернуть всю коллекцию текстовых ячеек в одну высокоуровневую CellGroup и поиграть с необязательным вторым аргументом CellGroup. Например, при этом будут открыты только первые три группы ячеек:

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

Комментарии:

1. Спасибо @Bill White! Первый пример был именно тем, что мне было нужно.

2. И спасибо, что приняли мой ответ. Кстати, использование Closed в качестве второго аргумента CellGroup, похоже, недокументировано, если только я что-то не упускаю из виду. Я постоянно использую CellGroupData[{…}, Closed] при программном создании записных книжек, и Closed, похоже, здесь тоже работает нормально.