2012-01-18 3 views
3

Я пытался следовать указаниям на автонумерацию клетки в Mathematica-8 ноутбука, здесьКак автономер ячеек в Mathematica Notebooks?

http://reference.wolfram.com/mathematica/tutorial/AutomaticNumbering.html

Я создал крошечный ноутбук с четырьмя текстовых ячейками

foo 
qux 
blancmange 
bar 

Размещения курсора перед foo , Я затем использовал меню Insert, Automatic numbering, давая мне диалоговое окно Create Automatic Numbering Object. Я выбрал в раскрывающемся списке Counter, затем item Text, щелкнув This counter object радиокнопку, и Huzzah! получил номер 1 непосредственно перед foo, предположительно ссылаясь на первую ячейку типа Text в записной книжке. Теперь я вижу

1foo 
qux 
blancmange 
bar 

и вставить мой собственный dot space после 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 на ячейки qux и blancmange. Я использую меню Cell, Cell Tags..., Show cell tags, чтобы убедиться, что они там, и, конечно же, они появляются в ноутбуке (я не буду пытаться имитировать экран здесь, но есть ссылка на мой ноутбук в общую папку Dropbox внизу этого вопроса, если вы хотите посмотреть). Затем я помещаю курсор перед qux и пользуюсь Insert меню, Automatic numbering item, на этот раз выбирая Use the counter value corresponding to the location of:, затем The first cell with the tag:, затем test, мой созданный пользователем тег, идите ОК, и я получаю ZERO! то же самое до blancmange. Мой последний (плохой) результат, после того, как положить немного помады на свинье с моим собственным dot и space, выглядит как

1. foo 
0. qux 
0. blancmange 
4. bar 

Если попытаться со ссылкой на несуществующий тег, я получаю

1. foo 
XXXqux 
XXXblancmange 
4. bar 

поэтому Mathematica узнала что-то, но не то, что я ожидал или нуждался.

Я также должен сказать, что я попробовал Item Numbered пункт в Format пункта, но у меня есть две проблемы, связанные с ней: (1) Я не знаю, как начать нумерацию с 1, поэтому каждый блок Item Numbered клеток принадлежит к той же последовательности пронумерованных элементов. Я получаю 1, 2, 3, здесь, потом 4, 5, 6, позже и 7, 8, 9, даже позже и т. Д. Мне действительно нужны самостоятельные пронумерованные блоки предметов: 1, 2, 3 здесь, 1, 2 , 3 позже и 1, 2, 3 еще позже и т. Д. (2) Мне нужно указать различные типы ячеек, поэтому мне действительно нужно создать свои собственные теги и контролировать их отслеживание.

Буду очень благодарен за любые советы.

Вот ссылка на мой тривиальный маленький ноутбук.

CellTagsAutonumbering.nb

+1

см. Этот фильм http://initialsingularity.com/EquationNumbering.mov размещен в Mathgroup, что может помочь. – Nasser

+1

Я также немного разбираюсь в уравнениях нумерации, это может быть связано: http://stackoverflow.com/questions/6870435/numbered-equations-formulas – jmlopez

+0

Теперь я придерживаюсь гипотезы о том, что необходимо не «Cell Tag», а счетчик." В приведенном выше фильме достаточно ясно, что диалоговое окно «Автоматическая нумерация» связывает тег с счетчиком. Я предполагаю, что в моей маленькой записной книжке мои ссылки на автозапуск указывают на счетчик, которого не существует. Это линия, которую я собираюсь преследовать, продолжая расследование. –

ответ

2

Я думаю, что вы пытаетесь использовать теги клеток в неправильном направлении
(и я только что заметил, что вы сказали, как много в комментарии выше)!

Счетчики подсчитывают, сколько ячеек определенного стиля уже произошло (хотя счетчики могут быть автоматически или вручную сброшены/изменены). Ячейки ячейки таковы, что позже вы можете обратиться к определенной ячейке, например, к конкретному уравнению или кодовому блоку и т. Д.

На данный момент ваши метки с тегами «проверяют» нас следующим счетчиком CounterBox["Code", "test"]. Этот счетчик будет искать первую ячейку стиля кода с тегом «test» и напечатать ее номер. Поскольку у вас нет блоков кода с тегом «test», он возвращает ноль.

Если вы хотите, чтобы текстовая ячейка, использующая другой счетчик из обычных текстовых ячеек, , вам нужно создать новый текстовый стиль. Перейдите в раздел «Формат»> «Редактировать таблицу стилей». Затем нажмите на default.nb и скопируйте ячейку стиля Text в таблицу стилей вашего ноутбука. Затем вы можете изменить его, чтобы иметь другое имя (например, «Text2») и другой счетчик. Затем вы можете ссылаться на эти номера ячеек с помощью CounterBox["Text2"], как и с обычными текстовыми ячейками.

Вы также можете их автоматически пронумеровать, добавив CounterBox в CellDingbat или CellFrameLabels. См, например: Extending cell definition to CellFrameLabels definition и CounterIncrements for individual cells

+0

Другой пример таблиц стилей с автоматической нумерацией - [тот, который я создал для курса математики 2-го курса] (http://ftp.physics.uwa.edu.au/pub/MATH2200/2011/Assignments/). – Simon

+0

Спасибо! Это открывает блокировку и дает мне много возможностей для изучения. –

1

Для тех из вас пытаются сделать что-то подобное: я бы рекомендовал делать следующие:

Извлечение все теги ячеек в записной книжке

tags= Union[Cases[NotebookGet[nb], (CellTags -> t_) :> t, Infinity]] 

Loop через клеток, находя их теги:

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

Надеюсь, что это поможет!

Смежные вопросы