Может ли таблица стилей Блокнота изменить поведение кода?


Я хотел бы спросить, была ли у кого-то такая проблема раньше. У меня есть версия 8.01, на windows 7, 64 бит. С пакетом обновления 1.

Я пытался найти, почему я получаю сбой ядра Mathematica, когда я добавил команду Tooltip[] к некоторому коду, который я пишу.

Блокнот имеет демонстрационную таблицу стилей Wolfram (пример таблицы стилей, с помощью которой можно делать демонстрации). Это манипуляция, все в одной клетке.

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

Никаких изменений кода вообще. Просто скопировал всю ячейку и вставил ее в новый блокнот. Разница лишь в том, что у одного есть демонстрационная таблица стилей, а у другого-таблица стилей по умолчанию. Когда я изменяю лист stype новой записной книжки на Demostration, я замечаю, что подсказка не работает так же хорошо, как раньше. Когда я использую пример ноутбука в этом стиле, в ту минуту, когда я начинаю перемещать мышь с помощью подсказки, ядро крахи.

Чтобы убедиться в этом, я сделал это несколько раз. Тот же результат. Как только я добавлю подсказку [], ядро сразу же рухнет, только когда таблица стилей будет демонстрационной.

Мой вопрос: кто-нибудь видел такое поведение? Я могу сделать эти две записные книжки доступными, если вы не возражаете.

Авария, которую я получаю:

Problem signature:
  Problem Event Name:   BEX64
  Application Name: Mathematica.exe
  Application Version:  8.0.31.32201
  Application Timestamp:    4d65e0e8
  Fault Module Name:    StackHash_2766
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp:   00000000
  Exception Offset: 0000000000000001
  Exception Code:   c0000005
  Exception Data:   0000000000000008
  OS Version:   6.1.7601.2.1.0.768.3
  Locale ID:    1033
  Additional Information 1: 2766
  Additional Information 2: 2766660d255034f6e73a8cd527b6f51e
  Additional Information 3: 8ab7
  Additional Information 4: 8ab74987ae95fade363a8e7256e3890f

Я действительно отправил сообщение об ошибке в WRI.

Мой вопрос: у кого-нибудь была такая проблема, когда изменение таблицы стилей может заставить код вести себя по-другому? С чего бы это стилю смена простыни вызывает такую проблему?

Обновление 1:

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

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

Введите описание изображения здесь

Manipulate[

EventHandler[Dynamic[Graphics[
{
Circle[{0,0},1],
Dynamic@Tooltip[Text[Style["O",Red,16] ,pt],Style[pt]]
},
ImageSize->250, PlotRange->{{-1,1},{-1,1}}
],ContinuousAction->True],

"MouseDragged":>
( pt=MousePosition["Graphics"] )
],

{{pt,{0,0}},ControlType->None},

TrackedSymbols:> {None},
ContinuousAction->True
]

Шаги:

  1. вставьте приведенный выше код в новую таблицу стилей, стиль по умолчанию. Перетащите точку, вы должны видеть отображение координат все время, как вы перетаскиваете точку с помощью мыши.
  2. File - > New - >Demonstration, и вставьте тот же код в ячейку манипуляции там, заменяя небольшой шаблон уже там.
  3. Теперь сделайте то же самое, перетащите точку. Вы увидите, что всплывающая подсказка не отображается при перетаскивании мыши. он отображается только при удержании мыши над точкой.
Существует различное поведение в динамике, которое, по-видимому, вызывает это или что-то еще в этом стиле.

Я пробовал разные таблицы стилей, и подсказка там работает нормально. только с демонстрационной таблицей стилей я получаю эту проблему с подсказкой.

Если у кого-то есть решение этой проблемы, это будет здорово. Как я хотел бы использовать подсказку в демо-версии.

Я постараюсь. чтобы сделать пример, который также вызывает крах.

Обновление:

Я получил ответ от технической поддержки WRI. Это проблема таблицы стилей. Между тем, в качестве обходного пути это предложение от технической поддержки:

I was able to reproduce the kernel crash. It looks like a demonstration
stylesheet issue related to imagesize fit. 
At the top of the demonstration notebook there is tab called 'Tools',
clicking on it gives you an option called 'Resize Notebook to Fit'. On
resizing the notebook and saving it the kernel crash does not happen.

Спасибо технической поддержке WRI.

Обновление от 2 декабря 2011 Основываясь на ответе Джона Фульца ниже, я закрываю этот вопрос сейчас. Спасибо, Джон.

1 15

1 ответ:

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

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

Вы можете отменить это, установив задержку в ноль на вашем Manipulate; Сделайте это, добавив следующую опцию к вызову Manipulate.

BaseStyle -> {TooltipBoxOptions -> {TooltipDelay->0}}