11.06.2009, 08:28
|
|
Интересующийся
|
|
Регистрация: 11.06.2009
Сообщений: 22
|
|
Математические формулы в HTML
Уважаемые участники форума, на днях начал писать скрипт для верстки математических формул как в ТеХ.
На данный момент реализовано 2 вида формул, строчные и блочные:
- Строчные формулы отображаются как привычные формулы в LaTeXе через $формула$
- Блочные \[ формула\] - автоматически нумеруются (можно продумать ссылки).
Скрипт умеет: - возводить в степень ^,
- писать индексы _.
- отображать дроби \frac{числитель}{знаменатель}
- реализовал возможность использовать суммирование, приведение, интегрирование, пределы
С работой скрипта можно ознакомиться http://sspa.bashtel.ru/Math/
пример работы скрипта
<html>
<script>$=function(id){return document.getElementById(id);}</script>
<LINK rel="stylesheet" href="tex.css" type="text/css">
<script src='tex.js'></script>
<body>
<div id='memo1' style="font-size:14pt;font-family:arial;">
\[\sigma + \frac{ e^{ \frac{1}{2} +\sin^2(x)+\cos^2(x)\frac{\sin(x)^{\tg(x)}}{\cos(x)} } + \sin(x)}{\cos(2x)+ \sin(x/2)}\]
</div>
<script>$('memo1').innerHTML=DoTex($('memo1').innerHTML);</script>
</body>
</html>
на экране будет
Хочу посоветоваться с вами, как реализовать большие скобки и квадратные корни?
Прошу оценить скрипт. Конструктивная критика - приветствуется.
Да конечно можно не мучиться и пользоваться MathML, но он не работает в Opera, а для IE надо ставить плагин.
Последний раз редактировалось Rimch, 11.06.2009 в 08:31.
|
|
11.06.2009, 10:21
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Круто!
На корень похож символ √, а верхнюю полосу уже можно дописать
Думаю, скобки можно выводить и обычные, но с бОльшим кеглем... Поиграть шрифтами, чтоб не такие круглые были.
|
|
11.06.2009, 12:33
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
АБАЛДЕТЬ!
Rimch, вы молодец, и мне радостно, что хоть кто-то интересными серьезными вещами занимается
по поводу скобки мне кажется не удастся добится чтобы она была высокая и узкая относительно
поэтому советую для скобок, по высоте как два, и более обычных символа, держать соответсвующую картинку, и растягивать ее по высоте
по поводу же корня идея примерно такая:
не использовать символ(будет трудно черту верхнюю склеить с концом радикала)
я бы обернул подкореное выражение в таблицу 2х2
как-то так
-------------------------------------
| /--| ------------------------- |
-------------------------------------
| / | |
|_ / | подкореное выражение|
| \/ | |
--------------------------------------
вот небольшой багрепорт по поводу верстки вашей(скриншотом)
Последний раз редактировалось Gvozd, 30.04.2012 в 23:36.
|
|
11.06.2009, 12:50
|
|
Интересующийся
|
|
Регистрация: 11.06.2009
Сообщений: 22
|
|
Gvozd, спасибо за небольшой багрепорт у меня огнилис 3.0.10, в более ранних версиях я не проверял. Сами понимаете кросбраузерность дело мудренное. Будем думать.
Насчет радикалов я так подумал, можно попробовать через canvas. Но это HTML 5. Должно получиться прикольно.
Вопрос, кто знает, как в ранних версиях огнилиса и хрома единица измерения em и ex определяется (в этом кроится косяк с дробями)?
|
|
11.06.2009, 12:56
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от Rimch
|
можно попробовать через canvas
|
Тогда уж VML+SVG.
|
|
11.06.2009, 13:11
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Так как скопировать и нормально вставить выделенный текст всё равно не получается, то, как предложил Kolyaj, лучше использовать VML и SVG. Создаете набор необходимых символов в векторном виде, как, например, в Cufón или typeface.js, и отрисовываете их с нужным увеличением средствами SVG или Canvas и VML в IE.
|
|
11.06.2009, 13:50
|
|
Интересующийся
|
|
Регистрация: 11.06.2009
Сообщений: 22
|
|
Спасибо за совет так и сделал. Посмотрите что получилось
http://sspa.bashtel.ru/Math/
|
|
11.06.2009, 14:03
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
хм... а где корень?! да и скобки вроде стандартные...
|
|
11.06.2009, 14:04
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Во! Появилось!
Похоже кэш подвёл...
|
|
11.06.2009, 14:04
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
в опере(9.27) левая часть корня не сходится с верхней
есть небольшой зазор в пару пикселей
Последний раз редактировалось Gvozd, 30.04.2012 в 23:36.
|
|
|
|