2012-01-25 6 views
5

मैं पर काम कर रहा है इन अन्य उत्तरमैथमैटिका नोटबुक शैलियों में सेलफ्रेम लेबल को कैसे भरें?

Extending cell definition to CellFrameLabels definition

How to Autonumber Cell Tags in Mathematica Notebooks?

में महान सलाह निम्नलिखित गिने हो रही सेल फ्रेम लेबल और मैं लगभग वहाँ रहा हूँ। मैं क्रिएटिव/पास्टल रंग स्टाइलशीट में सेक्शन शैलियों में सेक्शन नंबर जोड़ना चाहता था। मैं एक नया नोटबुक (यहाँ मेरी सार्वजनिक ड्रॉपबॉक्स पर एक प्रति है) बनाया

http://dl.dropbox.com/u/1997638/CellFrameMargins.nb

मेनू "प्रारूप" के पास गया, चुना "स्टाइल शीट \ क्रिएटिव \ PastelColor," तो "प्रारूप" "संपादन स्टाइल शीट" " शैली चुनें: अनुभाग ", फिर स्टाइलशीट-संपादन संवाद के शीर्ष पर क्रिएटिव \ Pastelcolor.nb पर क्लिक करें।

यह एक और स्टाइलशीट संपादक खोलता है, और मैं चौथी वस्तु पर "शीर्षक और अनुभाग कक्षों के लिए शैलियों" पर जाता हूं, फिर वहां दूसरा अनुभाग "अनुभाग" होता है। वहाँ में माउस क्रॉसहेयर रखो और क्लिक करें, फिर चुनें "सेल" मेनू, "शो अभिव्यक्ति" आइटम है, जो निम्नलिखित अभिव्यक्ति का पता चलता है:

Cell[StyleData["Section"], 
CellFrame->{{0, 0}, {1, 3}}, 
CellFrameColor->RGBColor[1., 0.819608, 0.658824], 
FontFamily->"Helvetica", 
FontSize->18, 
FontWeight->"Bold", 
FontColor->RGBColor[0.882353, 0.419608, 0.0784314], 
Background->RGBColor[1., 0.886275, 0.741176]] 

महान! सभी विवरण बताता है, या तो मैंने सोचा। विशेष रूप से, सेलफ्रेम आइटम मुझे {{0, 0}, {1, 3}} जानकारी देता है मुझे अनुभाग शैली के साथ अपने सेल फ्रेम लेबल को लाइन करने की आवश्यकता है। ठीक है, तो वापस मेरे नोटबुक के लिए steylsheet संपादक संवाद, और ऊपर उल्लिखित जवाब निम्नलिखित करने के लिए, मैं टाइप

Cell[ 
StyleData["Section"], 
CellFrameLabelMargins -> 0, 
    CellFrameLabels-> { { 
    Cell[ 
    TextData[{ "§", CounterBox["Section"], ": " }], 
    "SectionLabel", 
    CellFrame -> {{0, 0}, {1, 3}}, 
    CellFrameMargins -> 4 
    ] (* left label *), 
    Inherited (* right label *) }, 
    {Inherited (* bottom label *), 
    Inherited (* top label *) } } ] 

CellFrameMargins -> 4 नियम मैं परीक्षण और त्रुटि के द्वारा पाया की ऊपर और नीचे लाइन अप करने की जरूरत है धारा फ्रेम के बाकी हिस्सों के साथ सेल फ्रेम दाईं ओर। मुझे रिपोर्ट करने में दुःख है कि यह केवल लगभग काम करता है। CellFrameLabels और फ्रेम के पाठ के बीच अंतराल हैं, और मैं उन अंतराल को भरना चाहता हूं। ऐसा लगता है कि सेलफ्रेम लेबल में फोंट काफी ऊपर तक और नीचे नहीं फैले हैं, भले ही वे अनुभाग कक्षों में फोंट के समान हैं। मुझे लेबल के पीछे पृष्ठभूमि भरने का कोई तरीका नहीं मिल रहा है। मैंने Background -> RGBColor[...] की कोशिश की, मैंने फिक्स्ड फोंट डालने की कोशिश की, मैंने कई सारे संयोजनों में सेलफ्रेम मैर्गिन्स और सेलफ्रेमलेबेल मार्जिन को सेट करने का प्रयास किया, लेकिन इसका कोई फायदा नहीं हुआ।

मैं स्टंप हूं और किसी भी सलाह की सराहना करता हूं।

Screenshot

उत्तर

4

यह हल्के शैली के लिए काम करने लगता है। यह लेबल को फ्रेम के अंदर डाल रहा है। मुझे सब कुछ संरेखित करने के लिए FrameBox के ImageMargins और FrameMargins के साथ थोड़ा सा झुकाव करना पड़ा।

Cell[StyleData["Section"], 
CellFrameLabels->{{ 
    Cell[ 
    BoxData[ 
    FrameBox[ 
    TemplateBox[{"§", CounterBox["Section"], ": "}, 
     "Row", 
     DisplayFunction->(RowBox[{#, " ", #2}]&) 
    ], 
    ImageMargins->-1, 
    Background->RGBColor[1., 0.886275, 0.741176], 
    FrameStyle->RGBColor[1., 0.886275, 0.741176], 
    FrameMargins->2 
    ] 
    ], 
    "SectionLabel", CellFrame -> {{0, 0}, {1, 3}}, 
    CellFrameMargins->0 
    ], Inherited}, 
    {Inherited, Inherited}}, 
CellFrameLabelMargins->0 
] 

स्क्रीनशॉट: screen shot

+1

बहुत अच्छा! साथ ही मुझे खेलने के लिए कई नई चीजें भी मिलती हैं –

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