Способы обойти ошибку Mathematica Notation? - PullRequest
6 голосов
/ 25 февраля 2010

Mathematica предлагает пакет нотации для определения пользовательской нотации, и он, кажется, будет прекрасно работать, пока я не сохраню записную книжку с пользовательской нотацией в качестве пакета и не попытаюсь использовать Needs["..."] для импорта новой нотации. Как указано в списке рассылки Mathematica , это вызывает причудливые синтаксические ошибки при оценке любого вызова Notation[]. Предлагаемое решение состоит в том, чтобы вручную открыть записную книжку и оценить ее в ядре, но это боль для файлов, которые я планирую распространять. Если у кого-то есть лучший способ решения этой проблемы, я буду очень признателен за помощь!

1 Ответ

3 голосов
/ 26 февраля 2010

Я думаю, что ваша проблема заключается в том, как Mathematica рассматривает Notation[], цитата :

При определении ваших собственных обозначений крайне важно использовать шаблоны обозначений.Причина этого ограничения заключается в том, что шаблоны, вставленные в записную книжку, содержат необходимые поля тегов, вставленные правильным образом.

Возможно, вообще не будет возможности вызывать файл пакета Notation[], ноесть предложение об использовании ParsedBoxWrapper , с которым у меня сейчас не было времени поиграться.

Существует неясное решение вашей проблемы, заключающееся в том, что вы ставите все Notation[] назначений в одну ячейку записной книжки и сделать ее ячейкой инициализации (щелкните правой кнопкой мыши по краю ячейки -> ячейка инициализации).Это, кстати, также создаст файл .m только с содержимым этой ячейки (но этот файл, увы, не будет работать с Needs[] или <<).После этого вы можете свернуть ячейку, сделать ее недоступной для редактирования, не поддающейся оценке и эй presto!Почти как то, что вы хотите.

Я должен отметить, что с точки зрения распространения этот kludge довольно хорош, так как файл .m перегенерируется каждый раз, когда вы загружаете основной файл, поэтому вам не нужно отправлять несколькофайлы.Единственным недостатком является слегка уродливый Блокнот (то есть одна скрытая ячейка) и всплывающее окно с вопросом, хотите ли вы оценить ячейки инициализации Блокнота при первой оценке чего-либо в этом Блокноте.

...