Mentre Mathematica non supporta direttamente le finestre del taccuino a schede, è possibile riprodurre qualcosa dell'effetto utilizzando DockedCells
. L'interfaccia Virtual Book/Function Navigator (dal menu help) fa questo ... è essenzialmente una presentazione con due diapositive, una contenente il VB e l'altra contenente il FN, con un'interfaccia di navigazione DockedCells
guidata da NotebookFind
che sembra un po ' come schede.
Ecco il succo di come si potrebbe fare un quaderno da soli. Siamo spiacenti, ci sono alcuni tipi di concetti avanzati qui ... se ci sono parti di questa soluzione di cui vuoi saperne di più, forse puoi fare più domande.
(* 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"}]
Edit: cambiato NotebookFind[ButtonNotebook[],tag,All,CellTags]
, che sembra non sempre scorrere la presentazione in modo corretto, a NotebookLocate[tag]
. Vedi la discussione nei commenti. I due bit di codice dovrebbero, in teoria, essere equivalenti, ma un bug in Mathematica 8 sembra farli comportarsi diversamente a volte.
fonte
2012-01-16 22:03:39
Mathematica supporta l'impaginazione dei notebook per le presentazioni e supporta anche "celle agganciate" (sempre visualizzate nella parte superiore). Potrebbe essere possibile combinare i due per creare un'interfaccia utente nella cella ancorata per passare da una pagina all'altra. Questa è solo un'idea per un punto di partenza. – Szabolcs
Ho postato una risposta che dopo averci pensato di più funziona solo per l'output. Penso che il modo più rapido per farlo sarebbe quello di creare una barra di tabulazione o una palette separata che passi da una finestra all'altra selezionando Visible-> False per tutti tranne la finestra/taccuino selezionato. Questo potrebbe dare l'illusione di un'interfaccia a schede. –
Non c'è un'interfaccia a schede (nativa) integrata nell'interfaccia utente * Mathematica * frontend (ma questo è un eccellente suggerimento da segnalare a [email protected]). La cosa più vicina nell'interfaccia utente frontend che posso pensare è l'ambiente slide show (apri il menu 'Palettes' e seleziona' Slide Show'). –