[MathJax] - Отображение форумул

Автор digger®, 31 Август 2011, 15:46:57

« назад - далее »

0 Пользователи и 1 Гость просматривают эту тему.

digger®

31 Август 2011, 15:46:57 Последнее редактирование: 17 Июль 2016, 23:36:34 от digger®
MathJax

Автор: digger http://mysmf.ru
Ссылка: http://custom.simplemachines.org/mods/index.php?mod=4077
Ссылка: https://github.com/realdigger/SMF-MathJax-Mod
Лицензия: GPLv3
Совместимость: SMF 2.0, SMF 2.1

История изменений:
1.0 Начальная версия.
1.1 Добавлен бб-код [latex] и кнопка в редакторе сообщений.
1.2 Добавлен бб-код [latex=inline] для отображения формул с обтеканием текстом.

Подключает к форуму движок рендеринга формул MathJax (http://www.mathjax.org)
После установки, по правому клику на любой формуле будет доступно меню с некоторыми настройками отображения.

Bugo

Вещь. Но не хватает кнопочки в редакторе сообщений.


alsak

Спасибо за мод. А совершенствовать вы его собираетесь?
Например, в текстах по физике часто нужно вписать векторную величину (а иногда и целую формулу) внутри строки. Ваш мод (да и jstex) сделать это не позволяет.

digger®

Цитата: alsak от 31 Август 2011, 17:32:47
Спасибо за мод. А совершенствовать вы его собираетесь?
Например, в текстах по физике часто нужно вписать векторную величину (а иногда и целую формулу) внутри строки. Ваш мод (да и jstex) сделать это не позволяет.
Посмотрю



alsak

Поставил мод на форуме, экспериментирую.
Пока все нравится.

Bugo

Цитата: digger от 01 Сентябрь 2011, 16:24:27
Добавил бб-код [latex] и кнопку в редактор сообщений.
То есть если до этого использовались другие моды с таким же тегом, формулы отобразятся без проблем?

digger®

Цитата: Bugo от 01 Сентябрь 2011, 22:10:10
То есть если до этого использовались другие моды с таким же тегом, формулы отобразятся без проблем?

Если формулы были в латексном синтаксисе написаны, то да.
В принципе, можно имя тега в моде подправить под себя, если раньше какой-то другой использовался.

Мне в этой штуке нравится, что есть масштабирование нормальное и индивидуально настраиваемое.

alsak

Если записать формулу в виде дроби с кодом [laTex=inline], то ее размер значительно меньше такой же формулы с кодом [laTex]. Нельзя ли как-то увеличить размер дроби в первом случае.

krylov

А можно в модуле создавать графики как в LaTeX?

digger®

Цитата: alsak от 16 Сентябрь 2011, 08:14:05
Если записать формулу в виде дроби с кодом [laTex=inline], то ее размер значительно меньше такой же формулы с кодом [laTex]. Нельзя ли как-то увеличить размер дроби в первом случае.
Посмотрю.

Цитата: krylov от 27 Сентябрь 2011, 12:17:34
А можно в модуле создавать графики как в LaTeX?
Нет.

Bugo

Наверное не стоит загружать скрипт на всех страницах (даже в админке).


alsak

Цитата: digger от 28 Сентябрь 2011, 18:00:00Цитата: alsak от 16 Сентября 2011, 08:14:05

    Если записать формулу в виде дроби с кодом [laTex=inline], то ее размер значительно меньше такой же формулы с кодом [laTex]. Нельзя ли как-то увеличить размер дроби в первом случае.

Посмотрю.

И как результат?

siarhei

Подскажите, пожалуйста, человеку, абсолютно не владеющему php как установить
MathJax на форум 1.1.16. На свой сайт я поставил.
А на форум не получается.

digger®

Цитата: siarhei от 22 Январь 2012, 00:18:28
Подскажите, пожалуйста, человеку, абсолютно не владеющему php как установить
MathJax на форум 1.1.16. На свой сайт я поставил www.orlovsoft.com.
А на форум не получается.
В index.template.php вставить
echo '<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>';

siarhei

Спасибо Вам огромное. С этим я справлюсь. А конфиг разве не нужен?
Как, например, в окне сообщения будет выглядеть код MathML или Latex? Спасибо.

siarhei

Ага, указывается в строке конфиг по умолчанию. А что на счет формата поста в окошке сообщения?
Проверил Latex - шикарно! $$ latexstring $$. А MathML что-то не работает. Наверное теги нужны?

digger®

Цитата: siarhei от 22 Январь 2012, 00:28:25
Ага, указывается в строке конфиг по умолчанию. А что на счет формата поста в окошке сообщения?
У вас пустой форум с  7 сообщениями. Просто обновите его на двойку и пользуйтесь новыми модами, которых нет для единицы.

siarhei

Спасибо. В окошке администрирования нет доступных обновлений выше. До 1.1.16 были.
Скачать новый и вручную перенести данные?
Как я (дилетант) понял, что это два разных проекта 1.1.* и 2.0.*.
И еще одна штука есть: 2.0.2 кажется Creative Common License ждя некомм. использования.

digger®

Цитата: siarhei от 22 Январь 2012, 00:40:23
Спасибо. В окошке администрирования нет доступных обновлений выше. До 1.1.16 были.
Скачать новый и вручную перенести данные?
Скачиваете отсюда http://download.simplemachines.org Large Upgrade, распаковываете, заливаете на свой форум поверх старых файлов, запускаете upgrade.php и обновляетесь. Данные сохранятся.

Цитировать
И еще одна штука есть: 2.0.2 кажется Creative Common License ждя некомм. использования.
У 2.0.2 лицензия BSD.  У Creative Commons, кстати, несколько лицензий и почти все допускают коммерческое использование.

siarhei

22 Январь 2012, 01:40:42 #23 Последнее редактирование: 22 Январь 2012, 05:08:26 от siarhei
Спасибо. Пробую указанный сценарий. Отпишусь о результате.
Прежде всего хочу Вам сказать огромное спасибо за профессиональную и мгновенную помощь.
Что же касается SMF - то это действительно очень изящный, элегантный и надежный source.
Ни одной ошибки... при обновлении и модификациях не показало...

Еще один маленький вопросик. Где поменять размер шрифта в вот этот шрифт. Ранее я это делал в styles, code, fontsize.
Сейчас не сработало. код страницы указывает на класс bbc_code. Быть может здесь, но в каком он файле?

Спасибо.

digger®

Цитата: siarhei от 22 Январь 2012, 01:40:42Еще один маленький вопросик. Где поменять размер шрифта в Код: [Выделить]вот этот шрифт . Ранее я это делал в styles, code, fontsize.Сейчас не сработало. код страницы указывает на класс bbc_code. Быть может здесь, но в каком он файле?
Класс bbc_code в  /Themes/default/css/index.css

siarhei

24 Январь 2012, 00:34:56 #25 Последнее редактирование: 24 Январь 2012, 02:58:21 от siarhei
Добрый вечер.
Сегодня перенесли форум на Apache сервер.
Был на Windows - глупо конечно, но там нужен Silverlight.
Да вот что-то никак не получается установить MathJax. Может какие-то подводные камни есть, подскажите, пожалуйста.
Извините, разобрался своими силами. Спасибо за MathJax  в форум!!!.

VI

Я использовал аналогичный hook–up в Subs.php, но и мой, и через index.template.php имеют один и тот же недостаток: в Firefox (и аналогичных браузерах) зависает preview (работает в Webkit—Safari, Chrome; работает в Opera; даже в Эксплодере и подобных работает —напр., в Maxthon), а в FF зависает, даже в 19 b4.

Пару лет назад работало только в Webkit.

sz1316

Цитировать
Если есть вопросы по моду, пишите в той теме.
а какова же его процедура установки на версию 2.0.5?
если SMF ругается:
"Устанавливаемый пакет поврежден или не совместим с используемой версией SMF. Попробуйте установить мод в режиме эмуляции."
а еще в php-скрипте есть ссылка на неизвестный сайт cdn.mathjax.org
хотя я могу ничего не понимать (php не знаю...)

sz1316

благодарю Вас!
все заработало  :)
уж простите чайника
а непосредственно свой MathJax подключить нельзя?
или не стоит этого делать?

digger®

Цитата: sz1316 от 14 Сентябрь 2013, 02:18:29
благодарю Вас!
все заработало  :)
уж простите чайника
а непосредственно свой MathJax подключить нельзя?
или не стоит этого делать?
Можно поменять в Mod-MathJax.php
http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default
на адрес своего скрипта.
При использовании cdn всегда загружается самая свежая версия и снимается нагрузка с вашего сервера.

Serge3742

Цитата: digger® от 31 Август 2011, 15:46:57MathJax
Автор: digger
Последняя версия: 1.2
Совместим: SMF2.0

Уважаемый digger, не могли бы вы для чайников (как я) объяснить по пунктам - как правильно инсталлировать Mathjax на SMF 2 Спасибо.

digger®

Цитата: Serge3742 от 25 Ноябрь 2013, 21:43:47
Уважаемый digger, не могли бы вы для чайников (как я) объяснить по пунктам - как правильно инсталлировать Mathjax на SMF 2 Спасибо.
Берете мод из первого сообщения темы и устанавливаете штатным путем, как любой другой.

Perm

Отличный мод! Большое Вам спасибо. У меня форум по математике и без редактора формул - это не жизнь. Но есть проблема: когда набираешь формулы и наживаешь "Предварительный просмотр", то формулы не отображаются. Когда отправляешь сообщение в тему, всё нормально. Как бы это исправить?

digger®

Цитата: Perm от 04 Декабрь 2015, 21:45:24Отличный мод! Большое Вам спасибо. У меня форум по математике и без редактора формул - это не жизнь. Но есть проблема: когда набираешь формулы и наживаешь "Предварительный просмотр", то формулы не отображаются. Когда отправляешь сообщение в тему, всё нормально. Как бы это исправить?
К сожалению, в предпросмотре, не показывает. В JS не особо силен, если кто-то подскажет, сделаю.
Зато, есть новая версия с кнопкой вызова редактора http://www.codecogs.com/latex/eqneditor.php и вставкой результата в сообщение.

Perm

Цитата: digger® от 04 Декабрь 2015, 21:53:46К сожалению, в предпросмотре, не показывает.

Жаль... Это большой минус, поскольку на других математических форумах предпросмотр формул работает.

digger®

Цитата: Perm от 21 Декабрь 2015, 13:46:33Жаль... Это большой минус, поскольку на других математических форумах предпросмотр формул работает.
У меня редактор подключен, в нем сразу видно набираемую формулу, так что никто особо не жалуется.

Perm

Цитата: digger® от 21 Декабрь 2015, 14:28:05У меня редактор подключен

Спасибо. Вы дали ссылку на редактор... Он существует отдельно от форума? Или его можно вмонтировать в форум?

digger®

Цитата: Perm от 21 Декабрь 2015, 14:35:45Спасибо. Вы дали ссылку на редактор... Он существует отдельно от форума? Или его можно вмонтировать в форум?
Я выложу версию с редактором на гитхаб.

thunderamur

digger®
Насколько я понял ты модом занимаешься, не буду писать на гит, тут напишу.

1. Мод отлично работает в 2.1, думаю можно указать поддержку, чтобы не приходилось в режиме эмуляции ставить.
2. Кнопки были без картинок, в стилях прописаны картинки .png, как и положено, но сами картинки в .gif.

Я применил оба пункта, мод поставился и работает правильно. Ещё раз спасибо  :)

digger®

Цитата: thunderamur от 28 Январь 2016, 13:15:102. Кнопки были без картинок, в стилях прописаны картинки .png, как и положено, но сами картинки в .gif.
Потому что, в 2.0 картинки кнопок были в gif, а в 2.1 стали png. Я добавлю картинки для 2.1.

Perm

27 Апрель 2016, 18:51:53 #40 Последнее редактирование: 27 Апрель 2016, 19:58:29 от Perm
Кто-нибудь пользуется mathjax? Очень интересует предварительный просмотр формул. К сожалению, он не работает. Может, кто-то уже решил эту проблему? Поделитесь, пожалуйста.

А чем отличается версия 1.3 от версии 1.2?

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

Perm

Подскажите, пожалуйста, какой файл отвечает за предварительный просмотр?

digger®

Цитата: Perm от 27 Апрель 2016, 18:51:53Кто-нибудь пользуется mathjax? Очень интересует предварительный просмотр формул. К сожалению, он не работает. Может, кто-то уже решил эту проблему? Поделитесь, пожалуйста.

А чем отличается версия 1.3 от версии 1.2?

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

Perm

Цитата: digger® от 29 Апрель 2016, 07:15:25Попробуйте версию 1.4 с гитхаба.

Потренировался на кошках попробовал на локалхосте. Предварительный просмотр работает! Вне зависимости от того, сколько раз изменяешь формулу перед тем, как отправляешь сообщения в тему. А раньше предварительный просмотр работал только после первого нажатия кнопки "Предварительный просмотр". Если приходилось менять формулу, а потом снова нажимать "Предпросмотр", отображалась не формула, а соответствующие ей коды в теге latex. Ура!
Большое спасибо!!!


Perm

Цитата: digger® от 30 Апрель 2016, 17:05:31В следующем релизе будет редактор формул.

Большое спасибо! Ждём с нетерпением!
А какие функции будут в редакторе?


Perm


Yippee-ki-yay

Всем доброго дня! Подскажите, пожалуйста, как настроить под себя мод для MathJax?

Установил на форум (версия 2.1.3), но не могу добавить свои настройки. Например, для вызова формулы я применяю синтаксис $formula$ или $$formula$$. Можно ли настроить вызов формулы по этим символам вместо громоздкого [latex=inline][/latex]? Просто на сайте я добавлял такой скрипт и всё, а здесь теряюсь :)

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {inlineMath: [["$","$"],["\\(","\\)"]]},
 "CHTML-preview": {messageStyle: "normal"}
  });
</script>


Или скрипт для вызова своих функций. Например, принятый в нашей нотации тангенс (tg) MathJax не особо понимает, приходится добавлять такой код:

<script type="text/x-mathjax-config">

  MathJax.Hub.Config({
  
    TeX: {
        
        Macros: {
          
            
            arctg:      '\\operatorname{arctg}',
 arcctg:      '\\operatorname{arcctg}',
 tg:      '\\operatorname{tg}',
            ctg:      '\\operatorname{ctg}',
 rang:      '\\operatorname{rang}',
 Tr:      '\\operatorname{Tr}',
 Sp:      '\\operatorname{Sp}',
                        lg:      '\\operatorname{lg}',
 sh:      '\\operatorname{sh}',
 ch:      '\\operatorname{ch}',
 th:      '\\operatorname{th}',
 cth:      '\\operatorname{cth}',
 Arsh:      '\\operatorname{Arsh}',
 Arch:      '\\operatorname{Arch}',
 Arth:      '\\operatorname{Arth}',
 Arcth:      '\\operatorname{Arcth}'
            
        }
    }
});
</script>


И пара дополнительных опций для нормального отображения размеров формул:

<script type="text/x-mathjax-config">
        MathJax.Hub.Register.StartupHook("TeX Jax Ready",function () {
          MathJax.InputJax.TeX.prefilterHooks.Add(function (data) {
            if (!data.display) {data.math = "\\displaystyle{"+data.math+"}"}
          });
        });
 </script>

<script type="text/x-mathjax-config">
 MathJax.Hub.Register.StartupHook("mml Jax Ready", function () {
          MathJax.ElementJax.mml.math.prototype.defaults.scriptsizemultiplier  
 = .8;
          MathJax.ElementJax.mml.math.prototype.defaults.scriptminsize =  
 "12px";
        });
</script>

Как это можно всё запихнуть в мод?


Yippee-ki-yay

18 Январь 2018, 21:33:48 #50 Последнее редактирование: 18 Январь 2018, 21:44:37 от Yippee-ki-yay
Спасибо за ответ, заработало. И спасибо за ваш мод - я просто сразу не сравнил ник автора мода и Ваш :)

Закинул такой код для вызова отрисовки формул:

<script type="text/x-mathjax-config">
 MathJax.Hub.Config({
 
 tex2jax: {
 inlineMath: [ ["$","$"] ],
 displayMath: [ ["$$","$$"] ]
 },
 "CHTML-preview": {messageStyle: "normal"}
 });
</script>

А функцию addMathJaxBbcCode изменил так:

function addMathJaxBbcCode(&$codes)
{
    
    $codes[] = array(
        'tag' => 'latex',
        'type' => 'unparsed_equals_content',
        'content' => '$1',
    );
}

Насколько я понял, в 'content' не обязательно окружать '$1' символами вызова MathJax, если эти символы уже есть в окружении формулы.

Однако при тестировании формул обнаружил забавный баг: на предварительном просмотре исчезает знак "+". Причем совершенно неважно - в формуле он был или в тексте. Просто не отображается и всё. После отправки сообщения он есть. Проверил, оказывается с MathJax это не связано - специально отключил мод, а потом провёл тест. На  предварительном просмотре знаки "+" исчезают :( Думаю, что это баг движка, хотя не уверен.


И возник вопрос по отрисовке формул после редактирования: насколько я понимаю, мод отрабатывает при написании и предпросмотре сообщения, а после редактирования страницы для отрисовки формул нужно обновить страницу, -другого варианта нет, верно?

digger®

Цитата: Yippee-ki-yay от 18 Январь 2018, 21:33:48А функцию addMathJaxBbcCode изменил так:
Вы этим просто сломали работу кнопок mathjax которые мод добавляет в редактор. Оставьте в inlineMath оба варианта - и "$","$" и "\\(","\\)", а addMathJaxBbcCode не трогайте, тогда будут работать и кнопки мода и ваш.

ЦитироватьИ возник вопрос по отрисовке формул после редактирования: насколько я понимаю, мод отрабатывает при написании и предпросмотре сообщения, а после редактирования страницы для отрисовки формул нужно обновить страницу, -другого варианта нет, верно?
Посмотрю.

digger®

1.4.2
Исправлено обновление при быстром редактировании. Скрипт обновлен до версии 2.7.2.

1.4.3
Исправлено обновление при быстром редактировании для SMF 2.1.



Yippee-ki-yay

19 Январь 2018, 05:35:00 #53 Последнее редактирование: 19 Январь 2018, 06:28:19 от Yippee-ki-yay
Цитата: digger® от 19 Январь 2018, 01:35:52Вы этим просто сломали работу кнопок mathjax которые мод добавляет в редактор. Оставьте в inlineMath оба варианта - и "$","$" и "\\(","\\)", а addMathJaxBbcCode не трогайте, тогда будут работать и кнопки мода и ваш.

Да, я понимаю, что после изменения функции вариант [latex] formula [/latex] работать не будет. Дело в том, что у меня на первом сайте используется синтаксис $formula$. А на форуме phpbb3 на этом же сайте два синтаксиса: [tex][/tex] и $$.

Конечно, если бы я писал сайт сейчас, то такого разнобоя бы не допустил. Скорее всего, использовал бы синтаксис [tex][/tex] и на сайте, и на форуме, но накопленная база материала заставляет искать выходы для совместимости, чтобы материал можно было копировать с сайта на форум и обратно без редактирования формул.

Изменил коды таким образом:

MathJax.Hub.Config({

tex2jax: {
inlineMath: [ ["$","$"], ["[tex]","[/tex]"] ],
displayMath: [ ["$$","$$"], ["[tex=dm]","[/tex]"] ]
},
"CHTML-preview": {messageStyle: "normal"}
});

Т.е. по итогу две функции стали такими:

function addMathJaxBbcButton(&$buttons)
{
    $buttons[1][] = array(
        'image' => 'latex_inline',
        'code' => 'tex_inline',
        'before' => '[tex]',
        'after' => '[/tex]',
        'description' => 'Tex inline',
    );

$buttons[1][] = array(
        'image' => 'latex',
        'code' => 'tex',
        'before' => '[tex=dm]',
        'after' => '[/tex]',
        'description' => 'Tex',
    );
}


function addMathJaxBbcCode(&$codes)
{
    
    $codes[] = array(
        'tag' => 'latex',
        'type' => 'unparsed_equals_content',
        'content' => '$1',
    );
}

Вроде всё работает, как должно. Единственный риск, насколько я понимаю, - это невозможность использовать в тексте знак $. Однако вроде за несколько лет использовать не приходилось: математика и доллар мало совместимы :) Или есть иные риски, которые я не учёл?

Perm

Цитата: Yippee-ki-yay от 19 Январь 2018, 05:35:00математика и доллар мало совместимы

Что верно, то верно!  2funny