Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wolfram mathematica 单个单元格的计数器增量_Wolfram Mathematica - Fatal编程技术网

Wolfram mathematica 单个单元格的计数器增量

Wolfram mathematica 单个单元格的计数器增量,wolfram-mathematica,Wolfram Mathematica,这篇文章来源于我的问题。我一直在玩反增量,但我没有得到我所期望的 正如西蒙在回答我提到的帖子时所做的那样,我们从制作一个计数器开始 CellPrint[Cell["Setting the counter", "Text", CounterAssignments -> {{"MyCounter", 0}}]] 现在我们打印这个计数器 CellPrint[Cell[ TextData[RowBox[{"MyCounter ", CounterBox["MyCounter"]}]],

这篇文章来源于我的问题。我一直在玩
反增量
,但我没有得到我所期望的

正如西蒙在回答我提到的帖子时所做的那样,我们从制作一个计数器开始

CellPrint[Cell["Setting the counter", "Text", 
  CounterAssignments -> {{"MyCounter", 0}}]]
现在我们打印这个计数器

CellPrint[Cell[
  TextData[RowBox[{"MyCounter ", CounterBox["MyCounter"]}]], "Text"]]
其结果将是:

MyCounter 0
要增加计数器,我们可以使用选项
计数器增量
,如下所示:

CellPrint[Cell[TextData[RowBox[{"MyCounter ", CounterBox["MyCounter"]}]], 
 "Text", CounterIncrements -> "MyCounter"]]
这将为您提供:

MyCounter 1
您可以输入任意次数,您将看到计数器增加

因为
计数器增量
是单元格的一个选项,所以我对自己说:“好吧,如果我在单元格中创建一个单元格,然后在那里设置这个选项,会怎么样?”。因为我正在用这个选项制作一个单元格,所以我希望计数器会增加。这会发生吗

CellPrint[
 Cell[TextData[
   RowBox[{"MyCounter ", CounterBox["MyCounter"], 
    Cell[TextData[RowBox[{"[InlineCell]"}]], "Text", 
  CounterIncrements -> "MyCounter"]}]], "Text"]]
输出为:

MyCounter 1[InlineCell]
我希望输出是
MyCounter 2[InlineCell]
,因为我告诉单元格中的单元格增加计数器,但它没有这样做

文件中说,
反增量
“尚未完全融入长期的Mathematica系统,可能会发生变化”,但我认为那里的信息有些误导


我之所以要这样做,是因为我可以定义一种每次使用时都会增加计数器的样式。但此样式将用于另一个单元格中的单元格。有人知道这里发生了什么吗?我在Mac OS X中使用MMA8。

我的猜测是,只有当计数器位于正确的(非内联)单元中时,才会对其进行计数。 这很好,因为内联单元格实际上只是用于格式化目的,而不是用于文档结构

如果将计数器增加移到外部单元格,则其工作正常。修改上面的代码:

CellPrint[Cell["Setting the counter to 0", "Text", 
  CounterAssignments -> {{"MyCounter", 0}}]]

(* Prints a cell containing: Setting the counter to 0 *)

CellPrint[Cell[
  TextData[RowBox[{"MyCounter ", CounterBox["MyCounter"], 
     Cell[TextData[RowBox[{"[InlineCell]"}]], "Text"]}]], "Text", 
  CounterIncrements -> "MyCounter"]]

(* Prints a cell containing: MyCounter 1[InlineCell] *)

这是用来做什么的吗?如果是这样,那么为什么不将内联单元格作为普通(未设置样式)单元格,从外部单元格继承其样式。然后在“定义”样式中,即在样式表中使用计数器增量? 正如我上面所说的,非内联单元格应该是样式化的单元格(如“定义”、“章节”、“小节”等),因为这是决定文档结构的单元格


根据评论进行编辑: 这是一个调色板,它将创建新的章节单元格和新的定义单元格。 后者带有内置的不可编辑计数器。 请注意,大多数样式应该移到样式表中

CreatePalette[With[{nb = InputNotebook[]}, {
 Button["New Chapter", SelectionMove[nb, After, Cell];
  NotebookWrite[nb, Cell["New Chapter", "Chapter" (* Styling is in stylesheet*)]]],
 Button["New Definition", SelectionMove[nb, After, Cell];
  NotebookWrite[nb, Cell[TextData[RowBox[
   {Cell[TextData[
     StyleBox[#, FontWeight -> "Bold"] & /@ {
       "Definition ", CounterBox["Chapter"], ".", CounterBox["Definition"], ":  "}],
     Editable -> False, Selectable -> False, Deletable -> False],
     "New definition"}]], "Definition", CounterIncrements -> "Definition",
    CellFrame -> {{1, 1}, {0, 2}}, CellMargins -> {{30, 24}, {6, 6}}, 
    CellFrameColor -> RGBColor[0, 0, 1], Background -> RGBColor[0, 1, 1]]]
 ]}], WindowTitle -> "Document writing palette"];

我担心内联单元格只是为了时尚。不管怎么说,这个想法就是要有风格的定义,比如:定义,定理,引理,命题,例子等等。我在这里要做的就是将样式设置为粗体,这将增加他们自己的计数器。然后,通过使用您演示的创建别名,我将进入任何单元格,例如文本单元格,我将使用别名编写定义,它将显示为“definition 1.1”。这将避免我必须将主单元格的样式更改为Definition,然后编写[esc]def[esc]。在您发布的另一个答案中,您提到也许我应该使用调色板。通过“书写助手”调色板,我注意到“数学单元格”下拉菜单。我发现它很有趣,它创建了一个“文本”单元格并在其中插入内容。我真正想要的是一个按钮,它插入一个“definition”单元格样式和文本“definition[#]”,就像我们之前所做的那样。您以前创建过一些选项板吗?如果是这样的话,如何使“插入”单元格具有某种样式,其中包含某些内容?文档中的示例仅显示如何创建单元格,而不显示内容。@jmlopez:我以前没有创建过调色板,但我不能再说一遍!看编辑,我想了很多。谢谢你把它贴在这里。我发现这是一个很好的方法,使快捷方式像宏。我想这解决了我这个问题和上一个问题的问题。现在我面临着将数学单元格导出为html的问题。一旦我得到一个真正的问题,我会发布一些东西。再次感谢你的帮助,西蒙。