如何在Mathematica Notebook Styles中填写CellFrameLabels?

在这些其他答案的伟大建议之后,我一直在努力获得编号的细胞框架标签

将单元格定义扩展到CellFrameLabels定义

如何自动编号在Mathematica笔记本中的单元格标签?

我几乎在那里。 我想在广告素材/蜡笔颜色样式表中为章节样式添加章节编号。 我创建了一个新的笔记本(这是我的公共收件箱中的一个副本)

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

进入“格式”菜单,选择“Stylesheet Creative PastelColor”,然后选择“格式”,“编辑样式表”,“选择样式:部分”,然后点击样式表顶部的Creative Pastelcolor.nb编辑对话框。

这将打开另一个样式表编辑器,然后我将第四个项目放在“标题和截面单元格的样式”,然后是第二个项目“Section”。 将鼠标十字线放在那里,然后单击,然后选择“单元格”菜单中的“显示表达式”项目,其中显示以下表达式:

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

大! 揭示了所有的细节,或者我想过的。 特别是,CellFrame项目为我提供了{{0, 0}, {1, 3}}信息,我需要使用Section样式将我的单元格框架标签对齐。 好吧,回到我的笔记本的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的文本和框架之间存在差距,我想填补这些差距。 就好像CellFrameLabels中的字体不会上下拉伸,尽管它们与Section单元格中的字体完全相同。 我无法找到填充标签背后背景的方法。 我尝试过Background -> RGBColor[...] ,我试着放入明文字体,我尝试设置CellFrameMargins和CellFrameLabelMargins,但许多组合都无济于事。

我很难过,并会感谢任何意见。

截图


这似乎适用于粉彩风格。 这样做是将标签放在框架内。 我不得不拨弄了一下用ImageMarginsFrameMargins的的FrameBox ,使一切保持一致。

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
]

截图:

链接地址: http://www.djcxy.com/p/35561.html

上一篇: How to fill in CellFrameLabels in Mathematica Notebook Styles?

下一篇: Extending cell definition to CellFrameLabels definition