2012-01-25 17 views
5

bu cevaplarMathematica Notebook Stillerinde CellFrameLabels nasıl doldurulur? Üzerinde çalışıyoruz

How to Autonumber Cell Tags in Mathematica Notebooks?

Extending cell definition to CellFrameLabels definition

büyük tavsiye aşağıdaki hücre kare etiketleri sayılı alma ve neredeyse bitiriyorum. Creative/Pastel renkleri stil sayfasındaki bölüm stillerine bölüm numaraları eklemek istedim. Ben "" sonra "Stil \ Yaratıcı \ pastel boya" "Format"" Düzenleme Stil seçti

http://dl.dropbox.com/u/1997638/CellFrameMargins.nb "Format" menüsünü gitti yeni bir defter (burada bir kopyası benim kamu dropbox'a açıktır) oluşturuldu Bir stil seçin: Bölüm ", ardından stil sayfası düzenleme diyaloğunun üst kısmındaki Creative \ Pastelcolor.nb öğesini tıklayın.

Bu başka bir stil sayfası düzenleyicisini açar ve "Başlık ve Kesit Hücreleri için Stiller" in altındaki dördüncü öğeye gidiyorum, sonra da "Bölüm" içindeki ikinci öğe.

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]] 

BÜYÜK: ı seçin, "Hücre" menüsünü aşağıdaki ifadeyi ortaya koyuyor "göster İfade" öğesi bulunduğundan, fare Artı işaretlerini koyun ve tıklayın! Tüm detayları gösterir, ya da düşündüm. Özellikle, CellFrame öğesi, hücre çerçeve etiketlerimi Bölüm stili ile hizalamam gereken {{0, 0}, {1, 3}} bilgisini verir. Ok, bu nedenle geri steylsheet editörü bilgisayarımın diyalog ve yukarıda belirtilen cevapları aşağıdaki, I tipi

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 *) } } ] 

Ben deneme-yanılma yoluyla buldum CellFrameMargins -> 4 kural üstünü ve altını sıraya gereklidir Hücre çerçevesi, Bölüm stilinin geri kalanı ile sağa. Sadece neredeyse işe yaradığını bildirmekten üzüldüm. CellFrameLabels metni ve çerçeveler arasında boşluklar var ve bu boşlukları doldurmak istiyorum. CellFrameLabels'deki fontlar, Bölüm hücrelerindeki yazı tipleriyle tam olarak aynı olsalar bile, yeterince uzağa ve aşağıya uzamıyorlar. Etiketlerin arkasındaki arka planı doldurmanın bir yolunu bulamıyorum. Ben Background -> RGBColor[...] denedim, açık yazı tiplerini koyarak denedim, birçok kombinasyonda CellFrameMargins ve CellFrameLabelMargins ayarlamayı denedim, ama boşuna.

Stumped ve herhangi bir tavsiye için teşekkür ederim.

Screenshot

cevap

4

Bu pastel tarzı için çalışıyor gibi görünüyor. Bunun anlamı etiketi bir çerçeveye koyuyor. Herşeyi hizalamak için ImageMargins ve FrameBox'un FrameMargins ile biraz uğraşmak zorunda kaldım.

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 
] 

Ekran Görüntüsü: screen shot

+1

çok güzel! Ayrıca bana oynamak için birçok yeni şey veriyor –