Хотя Mathematica не поддерживает окна ноутбука с вкладками напрямую, можно воспроизвести что-то из этого эффекта, используя DockedCells
.Интерфейс Virtual Book / Function Navigator (из меню справки) делает это ... по сути, это слайд-шоу с двумя слайдами, один из которых содержит VB, а другой содержит FN, с навигационным интерфейсом DockedCells
, управляемым NotebookFind
это немного похоже на вкладки.
Вот суть того, как вы могли бы сделать такой ноутбук самостоятельно.Извините, здесь есть какие-то продвинутые концепции ... если есть какие-то части этого решения, о которых вы хотите узнать больше, возможно, вы можете выделить дополнительные вопросы.
(* make a single page of the notebook *)
page[tag_String] :=
Cell@CellGroupData[{Cell["", "SlideShowNavigationBar",
CellTags -> {tag}], Cell[tag, "Title"]}];
(* make a single tab-like button which selects the page *)
button[tag_String] :=
Button[Dynamic[
Setter[Dynamic[
CurrentValue[EvaluationNotebook[], {TaggingRules, "page"},
tag]], tag]],
CurrentValue[EvaluationNotebook[], {TaggingRules, "page"}] = tag;
NotebookLocate[tag],
Appearance -> None];
(* make a notebook based upon a list of strings which are names of tabs *)
makeTabbedNotebook[nameList_List] :=
NotebookPut@Notebook[page /@ nameList,
DockedCells ->
ToBoxes[ExpressionCell[Row[button /@ nameList],
"DockedCell"]][[1]],
ScreenStyleEnvironment -> "SlideShow"];
makeTabbedNotebook[{"First", "Second", "Third"}]
Редактировать: изменено NotebookFind[ButtonNotebook[],tag,All,CellTags]
, который не всегда правильно прокручивает слайд-шоу, до NotebookLocate[tag]
.Смотрите обсуждение в комментариях.Теоретически два бита кода должны быть эквивалентны, но ошибка в Mathematica 8 иногда заставляет их вести себя по-разному.