20

क्या टैबबंद इंटरफ़ेस में नोटबुक (कोशिकाओं के अनुक्रम) बनाने और संपादित करने का कोई तरीका है? क्या ऐसा इंटरफेस TabView या कुछ अन्य टूल के साथ बनाया जा सकता है? मुझे लगता है कि अगर मैं स्क्रैच से फ्रंट-एंड बना देता हूं तो यह संभव होगा, लेकिन मानक वोल्फ्राम फ्रंट एंड के भीतर कोई रास्ता है?टैब्ड मैथमैटिका नोटबुक कैसे बनाएं


दो चीजें मुझे यह पूछने के लिए प्रेरित करती हैं। सबसे पहले, मैं गणित नोटबुक के साथ माइक्रोसॉफ्ट ऑफिस वनोट के लिए एक प्रतिस्थापन बनाना चाहता हूं। दूसरा, जब मैं गणित में काम कर रहा हूं, तो मुझे लगता है कि एक टैबबंद इंटरफ़ेस कई अलग-अलग खिड़कियां खोलने से बेहतर काम करेगा या नहीं।

+5

गणित प्रस्तुतियों के लिए नोटबुक के अंकन का समर्थन करता है, और यह "डॉक किए गए कोशिकाओं" का भी समर्थन करता है (हमेशा शीर्ष पर दिखाया जाता है)। आप पृष्ठों के बीच स्विच करने के लिए डॉक किए गए सेल में उपयोगकर्ता इंटरफ़ेस बनाने के लिए दोनों को गठबंधन करने में सक्षम हो सकते हैं। यह एक शुरुआती बिंदु के लिए सिर्फ एक विचार है। – Szabolcs

+0

मैंने एक उत्तर पोस्ट किया कि इसके बारे में और सोचने के बाद केवल आउटपुट के लिए काम करता है। मुझे लगता है कि ऐसा करने के लिए सबसे तेज़ एक अलग टैब बार या पैलेट बनाना होगा जो विंडो के बीच दृश्यमान-> गलत सभी चयनित विंडो/नोटबुक के लिए गलत सेट करके स्विच करेगा। यह एक टैब्ड इंटरफ़ेस का भ्रम दे सकता है। –

+3

* मैथमैटिका * फ्रंटएंड यूजर इंटरफेस में कोई अंतर्निहित (मूल) टैबड इंटरफ़ेस नहीं है (लेकिन यह [email protected] पर रिपोर्ट करने का एक उत्कृष्ट सुझाव है)। फ्रंटएंड यूजर इंटरफेस में सबसे नज़दीकी चीज जिसे मैं सोच सकता हूं, स्लाइड शो पर्यावरण है ('पैलेट्स मेनू' खोलें और 'स्लाइड शो' चुनें)। –

उत्तर

8

जबकि मैथमैटिका सीधे टैबड नोटबुक विंडो का समर्थन नहीं करता है, तो DockedCells का उपयोग करके प्रभाव का पुन: उत्पन्न करना संभव है। वर्चुअल बुक/फंक्शन नेविगेटर इंटरफेस (हेल्प मेन्यू से) यह करता है ... यह अनिवार्य रूप से एक स्लाइड शो है जिसमें दो स्लाइड्स हैं, एक वीबी धारण करता है और दूसरा एफएन युक्त होता है, जिसमें 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] करने के लिए। टिप्पणियों में चर्चा देखें। कोड के दो बिट्स सिद्धांत रूप में समकक्ष होना चाहिए, लेकिन गणित 8 में एक बग उन्हें कभी-कभी अलग-अलग व्यवहार करने लगता है।

+5

जॉन, मैंने वी 8.04 पर देखा, जब मैं उपरोक्त चलाता हूं, और अब यह 'फर्स्ट' पर सेट हो रहा है, तो मैं 'सेकेंड' पर क्लिक करता हूं, फिर बटन दिखाता है कि यह अब 'सेकेंड' पर है लेकिन पृष्ठ प्रदर्शित करता है ' प्रथम'। लेकिन जब मैं 'तीसरा' पर हूं और 'सेकंड पर क्लिक करता हूं, तो यह ठीक हो जाता है। मुझे यकीन है कि यह ठीक करना आसान है, लेकिन अब आपके कोड को समझने के लिए आपका कोड बहुत उन्नत है :)। मैं स्क्रीन शॉट जोड़ सकता हूं, लेकिन यह नहीं जानता कि टिप्पणी में इसे कैसे किया जाए। – Nasser

+3

'नोटबुकफिंड [बटननोटबुक [], टैग, ऑल, सेलटैग] 'को' नोटबुक लॉकेट [टैग] 'के साथ लाइन को बदलकर' नासर की टिप्पणी में इस मुद्दे को सही करने लगता है। साथ ही, 'सेटर [गतिशील [CurrentValue [....] ...' के अंदर एक अतिरिक्त शब्द 'टैग' है जिसे हटा दिया जाना चाहिए। – kglr

+0

@kguler मुझे लगता है कि आप 'CurrentValue' के अंदर' टैग' का मतलब है, 'Setter' में नहीं। यदि आप इसे हटाते हैं, तो सेटर तब तक दबाएगा जब तक कि आप वास्तव में बटन दबाएंगे। यह एक अनियंत्रित तीसरा तर्क प्रतीत होता है जो एक डिफ़ॉल्ट मान प्रदान करता है। – Szabolcs

संबंधित मुद्दे