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

Wolfram mathematica 如何在Mathematica笔记本中自动编号单元格标记?,wolfram-mathematica,mathematica-frontend,Wolfram Mathematica,Mathematica Frontend,我试着按照Mathematica-8笔记本中关于单元格自动编号的说明进行操作 我创建了一个有四个文本单元格的小笔记本 foo qux blancmange bar 将光标刚好放在foo之前,然后使用Insert菜单中的自动编号项,显示创建自动编号对象对话框。我在计数器下拉列表中选择了项目文本,单击了此计数器对象单选按钮,然后呼!在foo之前得到了数字1,可能是指笔记本中Text类型的第一个单元格。我现在明白了 1foo qux blancmange bar 我在1后面插入我自己的点空间,以

我试着按照Mathematica-8笔记本中关于单元格自动编号的说明进行操作

我创建了一个有四个文本单元格的小笔记本

foo
qux
blancmange
bar
将光标刚好放在
foo
之前,然后使用
Insert
菜单中的
自动编号
项,显示
创建自动编号对象
对话框。我在
计数器
下拉列表中选择了项目
文本
,单击了
此计数器对象
单选按钮,然后呼!在
foo
之前得到了数字1,可能是指笔记本中
Text
类型的第一个单元格。我现在明白了

1foo
qux
blancmange
bar
我在1后面插入我自己的
点空间
,以获得好看的效果

1. foo
qux
blancmange
bar
我同样使用
bar
并查看预期的

1. foo
qux
blancmange
4. bar
因为
bar
Text
类型的第四个单元格。伟大的现在我想为单元格
qux
blancmange
创建一个独立的编号系统。我使用
Cell
菜单,
Cell Tags…
Add/Remove Cell Tags…
项,将标签
test
放在cells
qux
blancmange
上。我使用
Cell
菜单、
Cell Tags…
Show Cell Tags
项来确保它们在那里,并且,确实,它们会出现在笔记本中(我不会在这里尝试模拟显示,但是如果你想看一看的话,在这个问题底部的Dropbox公用文件夹中有一个指向我的笔记本的链接)。然后,我将光标定位在
qux
之前,并使用
Insert
菜单,
自动编号
项,这次选择
使用与以下位置相对应的计数器值:
,然后
带有标记的第一个单元格:
,然后
测试
,我的用户创建的标记,确定,我得到零!同上,
blancmange
之前的内容。我的最后(坏)结果是,用我自己的“代码”> DOT和空间,在猪上涂了一点口红,看起来像

1. foo
0. qux
0. blancmange
4. bar
如果尝试引用一个不存在的标记,我会得到

1. foo
XXXqux
XXXblancmange
4. bar
所以Mathematica认识到了一些东西,但不是我所期望或需要的

我还需要说,我尝试了
格式
项中的
项编号
项,但有两个问题:(1)我不知道如何从1重新开始编号,因此
项编号
单元格的每个块都属于相同的编号项序列。我得到1,2,3,这里,然后4,5,6,更晚,7,8,9,甚至更晚,等等。我真的需要独立编号的项目块:1,2,3,这里,1,2,3,和1,2,3,甚至更晚,等等。(2)我需要编号各种不同类型的细胞,所以我真的需要创建我自己的标签,并控制我对它们的跟踪

我将非常感谢您的任何建议

这是我的小笔记本的链接


我认为您试图以错误的方式使用手机标签
(我刚刚注意到你在上面的评论中也这么说了)

计数器仅计算已发生的特定样式的单元格数(尽管计数器可以自动或手动重置/更改)。单元格标记是这样的,以便您以后可以引用特定的单元格,例如特定的方程式或代码块等

此时,您的单元格将以下计数器标记为“test”
CounterBox[“code”,“test”]
。 此计数器将查找标记为“test”的第一个代码样式单元格,并打印其编号。因为没有标记为“test”的代码块,所以它返回零

如果要使用与普通文本单元格不同的计数器的类文本单元格, 然后,您需要创建一个新的文本样式。 转到格式>编辑样式表。然后单击default.nb并将文本样式单元格复制到笔记本的样式表中。然后您可以修改它,使其具有不同的名称(例如,“Text2”)和不同的计数器。然后,您可以使用
计数器框[“Text2”]
引用这些单元格编号,就像使用普通文本单元格一样


您还可以通过将
计数器框添加到
CellDingbat
CellFrameLabels
来自动对它们进行编号。请参阅,例如:和

,了解您中试图做类似事情的人: 我建议采取以下措施:

提取笔记本中的所有单元格标记

tags= Union[Cases[NotebookGet[nb], (CellTags -> t_) :> t, Infinity]]
通过查找单元格的标记来循环单元格:

Do[
NotebookLocate[tags[[i]]];
(*Some stuff you wanted to do to each cell with a certain tag*)
,{i,1,Length[tags]}
]

希望有帮助

请看Mathgroup上发布的这部电影,这可能会有所帮助。我还探索了一些编号公式,这可能是相关的:我现在追求的假设是,需要的不是一个“单元格标记”,而是一个“计数器”。上述电影非常清楚地表明,
自动编号
对话框将标记链接到计数器。我猜在我的小笔记本中,我的自动编号参考指向一个不存在的计数器。这就是我将继续研究的方向。自动编号样式表的另一个例子是。谢谢!这打开了锁箱,给了我很多探索。