Ответ 1
В то время как Mathematica не поддерживает непосредственно окна с вкладками для ноутбуков, можно воспроизвести что-то из эффекта с помощью DockedCells
. Интерфейс Virtual Book/Function Navigator (из меню справки) делает это... это по существу слайд-шоу с двумя слайдами, один из которых содержит VB, а другой, содержащий FN, с навигационным интерфейсом DockedCells
, управляемым NotebookFind
это немного похоже на вкладки.
Вот суть, как вы могли бы сделать такую записную книжку самостоятельно. Извините, здесь есть какие-то передовые концепции... если есть какие-то части этого решения, о которых вы хотите узнать больше, возможно, вы можете задать больше вопросов.
(* make a single page of the notebook *)
page[tag_String] :=
[email protected][{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] :=
[email protected][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, как представляется, заставляет их вести себя по-разному.