23:34 

Пользовательский скрипт для отображения формул

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Дорогие друзья!

Как вы знаете, diary не позволяет встраивать свои скрипты в страницы. Именно из-за этого в сообществе (в отличие, например, от форума dxdy) не отображаются формулы. Поэтому нам приходится или выкладывать даже простейшие задания с помощью графических файлов, или мириться с записями вида "у=(е^cosх+3/х^2+х^2/3)^5 получилось ....= 5 (е^cosx+3/х^2+x^2/3)^4 * (e^cosx * (-sinx)-6/x+2x/3)".
Однако благодаря одному очень хорошему человеку (который почему-то из ложной скромности не хочет, чтобы его здесь называли=() мы теперь можем носить свои скрипты в кармане, то бишь в браузере. По крайней мере те из нас, которые пользуютcя FireFox, Оперой или Google Chrome.
Нужный скрипт - это адаптация для diary скрипта AsciiMathML, подробнее о котором можно прочесть здесь

Из существенных отличий от оригинального скрипта
1. оформление графики, а именно пара:
вместо agraph endagraph
2. Используется google для отрисовки TeX (в т.ч. и для Оперы)
3. Работает и в google chrome (просто кликнуть по ссылке и согласиться установить)
4. Если поставить на форум, то (за исключением графики) работает во всех броузерах. Графика не работает в iexplorer
5. При наведении мышки показывается альтернативный текст.
6. Добавлена совместимость с IE (тестировалось на IE 7 и 8)

Информацию по установке можно увидеть здесь asciimathml.narod2.ru/, однако я продублирую ее еще и в данном топике

Установка
Firefox
1) Установить аддон Greasemonkey: addons.mozilla.org/ru/firefox/addon/748 . Если при переходе по ссылке появляется сообщение об ошибке, то выполните поиск дополнения addons.mozilla.org/ru/firefox/search?q=Greasemo... . Вам нужно второе по порядку дополнение, с обезьяной. Нажмите "Добавить в Firefox"
2) установить sсript for Greasemonkey: asciimathml.narod2.ru/display-latex6.user.js
3) установить математические шрифты: www.mozilla.org/projects/mathml/fonts/
Для этого скачать для FF с этой страницы архив со шрифтами developer.mozilla.org/@api/deki/files/4719/=STI..., распаковать его, инструкция по установке шрифтов www.microsoft.com/typography/TrueTypeInstallWin...... или просто (в зависимости от операционной системы): выделить распакованные шрифты - правая кнопка - установить

Opera (проверялось на опере 10-й версии)
1) Создать папку для пользовательских скриптов (это может быть папка в Моих документах или в директории самой Оперы под названием, скажем, user scripts)
2) Перейти в настройки Оперы: Настройки = > Содержимое = > Включить Javasсript, Настроить Javasсript... - указать там папку для пользовательских скриптов
3) Установить пользовательский скрипт для оперы/User sсript for Opera: asciimathml.narod2.ru/display-latex6.user.js (right click and save to userscripts directory). Лично я просто открывала страничку со скриптом и сохраняла в папку с пользовательскими скриптами.

Internet Explorer
Добавлена совместимость с IE (тестировалось на IE 7 и 8). Для Internet Explorer нужно установить IE7Pro (взять здесь www.ie7pro.com/). Изменить конец имени скрипта в .ieuser.js (было .user.js). Скопировать его в подкаталог userscripts каталога установки IEPro. В настройках IEPro (IEPro Preferences) - Скрипты. Поставить галочку около AsciiMathML. Перезапустить IE.

Google Chrome
Удалить предыдущую версию скрипта (если она стояла) ( Инструменты = > Расширения), потом установить заново -просто кликнуть по ссылке и согласиться установить http://asciimathml.narod2.ru/display-latex6.user.js

Apple Safari
В пятой версии Apple Safari появилась поддержка расширений (Mac OS, Windows) ( grawl.ru/121 ) . После установки расширения NinjaKit ( d.hatena.ne.jp/os0x/20100612/1276330696 ), можно установить и проверить работу пользовательского скрипта
Установка:
Расширение NinjaKit: ss-o.net/safari/extension/NinjaKit.safariextz
Пользовательский скрипт: asciimathml.narod2.ru/display-latex6.user.js
В обоих случаях, в указанном порядке, кликнуть по ссылке и согласиться с установкой.

Если вы все правильно сделали, то все, что ниже будет уже не набором непонятных символов, а вполне нормальными формулами и графиками, то есть будет выглядеть в FF так:

Подробнее о графике можно почитать здесь:
mathcs.chapman.edu/~jipsen/math/index.php/ASCII...
math.chapman.edu/~jipsen/asciencepad/asciencepa...
www1.chapman.edu/~jipsen/svg/asciisvgeditor.htm...

* ASCIIMath
`x^2+y_1+z_12^34`

`d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h`

`[[a,b],[c,d]]((n),(k))`

`x/x={(1,if x!=0),(text{undefined},if x=0):}`

`hat(ab) bar(xy) ulA vec v dotx ddot y`

* LaTeXMath
$\diagup X\ind Y \tilde{A} \varnothing \R$

$A = \left(\begin{array}{c c c}1-x & 0 & 0 \\ 0 & 1-x & 0 \\ 0 & 0 & 1-x \end{array}\right)$

$\sum a_i + \sum_{i=0}^{+\infty} b_i$

$f(x) = \left\{\begin{array}{l l} x^2 \sin \frac1x & \textrm{if } x \ne 0, \\ 0 & \textrm{if } x = 0 . \end{array}\right.$

$\displaystyle{ \lim_{x\to\infty} f(x) = k \choose r + \frac ab \sum_{n=1}^{+\infty} a_n + \left\{ \frac{1}{13} \sum_{n=1}^{+\infty} b_n \right\} }$
* AutoMath
amath
Example: Solving the quadratic equation.
Suppose a x^2+b x+c=0 and a!=0. We first divide by \a to get x^2+b/a x+c/a=0.

Then we complete the square and obtain x^2+b/a x+(b/(2a))^2-(b/(2a))^2+c/a=0. The first three terms factor to give (x+b/(2a))^2=(b^2)/(4a^2)-c/a. Now we take square roots on both sides and get x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a).

Finally we move the b/(2a) to the right and simplify to get the two solutions: x_(1,2)=(-b+-sqrt(b^2-4a c))/(2a)
endamath
* Pictures
plot(sin(x))

width=300; height=200; xmin=-5; xmax=5; xscl=1;axes();plot((x-2)*(x-1)*x*(x+1)*(x+2)/2,-2.5,2.5);


Данный скрипт поддерживает и ASCIIMath (для этого формулы нужно обрамлять одинарными кавычками, которые находятся на клавише с буквой Ё), и LaTeXMath (для отображения формул их надо обрамлять знаками и использовать TeXовскую нотацию).
В сообществе желательно использовать первый способ записи формул, как более интуитивно понятный.

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

Дорогие члены сообщества!

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

Краткий HELP по набору формул, составленный La Balance

Подробный HELP по набору формул, составленный _nobody

Ссылки на этот пост и на хэлп по набору формул помещены в эпиграф.

От имени сообщества и от себя лично благодарю человека, который очень много над этим работал.

UPD. 04.04.2010
Скрипт обновлен. asciimathml.narod2.ru/display-latex6.user.js
1)Исправлено отображение символов.
2)Изменены охватываемые адреса, что позволяет отображать формулы и у платников, и у бета-тестеров (это касается и предпросмотра).
3)Если требуется отображение формул в своем дневнике (в т.ч. в Избранном), то нужно добавить адрес http://*.diary.ru/~имясвоегодневника/* . (в FF: в настройках Greasemonkey = > Управление скриптами.. = > AsciiMathML, в других браузерах: в начале файла перечень адресов, по которым работает скрипт. Для этого открыть данный файл .js в Блокноте или любом другом редакторе, поддерживающем unicode).
4)Добавлена совместимость с IE (тестировалось на IE 7 и 8). Для Internet Explorer нужно установить IE7Pro (взять здесь www.ie7pro.com/). Изменить конец имени скрипта в .ieuser.js (было .user.js). Скопировать его в подкаталог userscripts каталога установки IEPro. В настройках IEPro (IEPro Preferences) - Скрипты. Поставить галочку около AsciiMathML. Перезапустить IE.
При обновлении скрипта в Google Chrome удалить предыдущую версию скрипта (Настройки = > Расширения ), потом установить заново
запись создана: 03.04.2010 в 19:34

@темы: Сообщество

Комментарии
2010-04-03 в 19:42 

молодой динамично развивающийся
`a=2`

2010-04-03 в 19:44 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)

2010-04-03 в 19:47 

`(sin^2x+cos^2x)/2=1/2`

2010-04-03 в 19:59 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Тестировалось на небольшой группе лиц, поэтому возможны всякие непонятности
Вот, например, обнаружено, что у меня работает в предпросмотре (перед публикацией записи), а у Balance нет
Или я скрыла все эти формулы тегом MORE и они у меня потом на главной страницы не отобразились (но может только у меня)
Пришлось МORE убрать
Может быть надо прописывать в настройках работу тега MORE - не знаю.
То есть сейчас нужен фактический материал о работе скрипта

2010-04-03 в 20:00 

молодой динамично развивающийся
`x^2+y_1+z_12^34`

2010-04-03 в 20:04 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)

2010-04-03 в 20:04 

молодой динамично развивающийся
Google Chrome
работает только в комментах к этой записи

2010-04-03 в 20:08 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Я думаю, работает в сообществе, а не только в комментах к этой записи
Попробуй еще в каких-то комментах и посмотри на главной странице
Прописываемые адреса

2010-04-03 в 20:10 

молодой динамично развивающийся
а я уж думал, что везде работать будет :3 тогда все ок

2010-04-03 в 20:10 

молодой динамично развивающийся
чтобы у всех работал предпросмотр, нужно ставить не www.diary.ru, а *.diary.ru (чтоб у платников и бета-тестеров работало)

2010-04-03 в 20:14 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Чудеснов
Ой, напиши через CODE - что нужно ставить?
Я не поняла.

я уж думал, что везде работать будет
В FF можно прописывать адреса, где будет работать

2010-04-03 в 20:17 

молодой динамично развивающийся
нужно сам скрипт подправить. там в начале список масок, по которым активируется скрипт. ну так там указан адрес www.diary.ru/diary.php, а нужно *.diary.ru/diary.php

2010-04-03 в 20:20 

Quod erat demonstrandum
`x/y`

2010-04-03 в 20:22 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Ребят, посмотрите с главной страницы
Баланс говорит, что у нее ничего не отображается((

2010-04-03 в 20:24 

Диана Шипилова
Quod erat demonstrandum
С главной страницы сообщества? У меня все видно. Из френдленты видно тоже.

2010-04-03 в 20:27 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Чудеснов
Спасибо
А еще у тебя нет никаких соображений почему если обрамить в MORE в теле записи, то формулы уже не отображаются
читать дальше
А в комментах нормально
Диана Шипилова
про френдленту мы что-то не подумали.

2010-04-03 в 20:29 

Quod erat demonstrandum
Robot
Я просто заранее прочла дискуссию и отредактировала скрипт под платника)) Сейчас формулу вижу, ту, что под морем в комменте.

2010-04-03 в 20:33 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Диана Шипилова
Тут проблема в том, что я сначала, чтобы пост не был большим, поместила все формулы под море. Но когда запись опубликовала, и открыла Читать дальше, то формулы не отображались. А когда заходишь в комменты, то все видно.
Ну, я море сняла.
Может как раз тоже из-за того, что нужно адрес в виде *.diary.ru/diary.php

2010-04-03 в 20:34 

Диана Шипилова
Quod erat demonstrandum
Так, а вот сейчас из френдленты не видно :hmm: Буду разбираться.

2010-04-03 в 20:35 

молодой динамично развивающийся
Для Chrome и Opera лучше вариант такой
1. разрешаем работу на всех страницах, список заранее определенных масок убираем из @include и записываем в массив.
2. сначала ищем на странице хотя бы один блок ``, $$. Если не нашли нигде ничего, то конец. Если нашли: в случае, если есть определенное cookie, запускаем скрипт, else ищем текущий адрес по нашему массиву, если он там есть, ставим куку и идем дальше. Если куки нет, адреса в массиве нет, а формулы вроде как на странице присутствуют, просим confirm на то, чтобы отображение формул включить, и далее по тексту.

2010-04-03 в 20:35 

молодой динамично развивающийся
кстати, скрипт неадекватно реагирует на просто две кавычки подряд
``

2010-04-03 в 20:39 

Quod erat demonstrandum
Хо-хо! Еще раз отредактировала скрипт, видно все!

2010-04-03 в 20:40 

молодой динамично развивающийся
Robot если стоит динамическая подгрузка MORE, то в скрипте нужно дописывать реакцию на событие подгрузки MORE-части через AJAX, у меня MORE грузится вместе со страницей, так что все работает.

2010-04-03 в 20:42 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
кстати, скрипт неадекватно реагирует на просто две кавычки подряд
в чем неадекватность?

Ребят, я в скриптах не понимаю ничего, но вы пишите все, что думаете и что нужно. Это важно!

Диана, а что ты сделала, чтобы во френдленте отображалось?

2010-04-03 в 20:43 

Quod erat demonstrandum
Robot
Я заменила какую-то строчку на
http://*.diary.ru/*
// @include

2010-04-03 в 20:44 

Robot
Я одна, но всё же я есть. Я не могу сделать всё, но всё же могу сделать что-то. И я не откажусь сделать то немногое, что могу (c)
Чудеснов
у меня MORE грузится вместе со страницей
Да, автор тогда был прав
Он давал инструкции прописывать в настройках дайри
Настройка MORE (diary)
скрытая часть грузится одновременно со страницей

2010-04-03 в 20:49 

Quod erat demonstrandum
Robot
Пойду заодно и MORE настрою, мне теперь можно :ura:

2010-04-03 в 21:33 

молодой динамично развивающийся
Robot
в чем неадекватность?
он пытается вставить картинку с формулой, но так как самой формулы-то и нет, то в хроме, в котором скрипт не MathML вставляет, а картинки, вставляет вот такое чудо:

2010-04-03 в 21:55 

Дилетант
На плечах гигантов, на спинах электронов
В Опере у меня по-прежнему ни фига не видно.
А в FF только в сообществе, а из френдленты нет.
И я не могу найти скрипт, чтоб отредактировать (
Т.е. в папке, куда я его скопировала для Оперы он есть, но где взять тот, которым пользуется FF?

2010-04-03 в 21:59 

Дилетант
На плечах гигантов, на спинах электронов
А!
Нашла!
Стоило только спросить :)

   

Не решается алгебра/высшая математика?.. ПОМОЖЕМ!

главная