Wolfram mathematica 如何获取(不显示)节号
通过使用Wolfram mathematica 如何获取(不显示)节号,wolfram-mathematica,Wolfram Mathematica,通过使用Insert>Automatic number…菜单插入自动编号对象CounterBox[“Section”],可以对笔记本分区进行自动编号。然而,这个对象只控制节号的显示,我想得到它的数值,以便在程序中使用。你知道怎么做吗 编辑 我想使用它的原因已经概述了。必须有更好的方法来实现这一点,但如果我了解您想要做什么,下面是一些有效的方法 创建要使用的笔记本: nb = CreateDocument[{ Cell["My Title", "Title"], Cell["My
Insert>Automatic number…
菜单插入自动编号对象CounterBox[“Section”]
,可以对笔记本分区进行自动编号。然而,这个对象只控制节号的显示,我想得到它的数值,以便在程序中使用。你知道怎么做吗
编辑我想使用它的原因已经概述了。必须有更好的方法来实现这一点,但如果我了解您想要做什么,下面是一些有效的方法 创建要使用的笔记本:
nb = CreateDocument[{
Cell["My Title", "Title"],
Cell["My first section", "Section"],
Cell["My second section", "Section"],
Cell[TextData[{"Section ",
CounterBox["Section"]}], "Section"]}];
选择最后一个单元,它恰好是一个截面单元
SelectionMove[nb, After, Notebook];
SelectionMove[nb, Previous, Cell];
倒数
cnt = sectionCnt = c = 0;
While[True, Print[c];
c = NotebookRead[nb];
If[c === {}, Break[]];
If[c[[2]] == "Section", sectionCnt++];
cnt++;
SelectionMove[nb, Previous, Cell]];
现在sectionCnt
应该保存您想要的值。您可以轻松地回到原来的位置:
Do[SelectionMove[nb, Next, Cell], {cnt}]
用标签盒和已知标签包装柜台盒:
Cell[BoxData[TagBox[CounterBox["Section"], "tag"]], "Text"]
然后使用FrontEnd`ObjectContents将所有DynamicBox/CounterBox/ValueBox转换为文字,并选择该标记框的值:
x = First@Cases[FrontEnd`ObjectContents[nb, True], TagBox[x_, "tag"] :> x, \[Infinity]]
如果您只想知道某一类型的计数器有多少,您可以执行以下操作:
x = FE`Evaluate[CurrentValue[{"MaxCounterValue", "Section"}]]
谢谢我觉得这让我更接近我想做的事情,但我还没有做到。目标是使同一节中的所有输入单元格都具有相同的CellContext(请参阅)。为此,我想使用节号作为上下文标识符的一部分。我不知道如何使用上面的代码来实现这一点。感谢您的努力,但我认为这不能用于我心目中的应用程序。我不清楚是我的错。我在我的问题上添加了一个链接,以澄清一些问题。