Вставка TeX формул в drupal

Главные вкладки

Аватар пользователя hyrod@drupal.org hyrod@drupal.org 12 апреля 2010 в 20:14

Задача: Вставка сложных математических формул в Drupal.
Одно из возможных решений: перевести TeX в картинку из формул.

Модуль для друпала http://drupal.org/project/mathfilter и этот модуль не производит сам рендеринг, а обращается к внешней cgi программе и передает ей в качестве параметров формулу, которая рендерится в виде картинки и img тэг на эту картинку вставляется в текст сообщения.

cgi скрипт генерации картинки написан на СИ и забрать его можно с http://www.forkosh.com/mimetex.html
Исходники скрипта загружаются на сервер. У меня это в /var/www/html/mimetex.
Далее по инструкции к mimetex:

cd /var/www/html/mimetex
gcc -DAA mimetex.c gifsave.c -lm -o mimetex.cgi

создается файл /var/www/html/mimetex/mimetex.cgi

В файле конфикурации httpd.conf надо указать выполнение .cgi скриптов:

Alias /mimetex /var/www/html/mimetex
<Directory /var/www/html/mimetex>
AddType application/x-httpd-cgi .cgi
        AllowOverride None
        Options Indexes FollowSymLinks ExecCGI
        Order allow,deny
        Allow from all
</Directory>

Перезапускаем апач и проверяем работу скрипта http://example.org/mimetex/mimetex.cgi?x=\frac{-b\pm\sqrt{b^2-4ac}}{2a} и в ответ должны получить картинку с формулой.

Переходим к установке модуля mathfilter. Ставим его как обычно и включаем стандартным для drupal способом. В ответ я получил в версии модуля 1.0:

warning: Missing argument 1 for mathfilter_menu() in /var/www/altonlabs.com/dev/altonlabs/public_html/module/mathfilter/mathfilter.module on line 16

Радуемся, потому как модуль в Управление - настройка сайта - Mathfilter появляется, но зайти в него нельзя.
Рассудив, что единственное что можно настроить в этом модуле - это путь до mimetex, я исправил в тексте модуля /sites/all/modules/mathfilter/mathfilter.module путь на абсолютный заменив

$mimetex_cgi_path_http = variable_get('mathfilter_cgi', '/cgi-bin/mimetex.cgi');

на

//      $mimetex_cgi_path_http = variable_get('mathfilter_cgi', '/cgi-bin/mimetex.cgi');
$mimetex_cgi_path_http = variable_get('mathfilter_cgi', 'http://server/mimetex/mimetex.cgi');

Осталось только сходить в "Форматы ввода" и разрешить mathfilter.

После чего все вполне работает с FCKeditor.

Потом мне показали на решение в виде: http://drupal.org/node/205994, но я его не проверял.

Комментарии

Аватар пользователя VasyOK VasyOK 13 апреля 2010 в 3:04

А из Worda формулы можно както вставлять? Всмысле если формулы там как картинки, соданные редактором формул.

Юзеры обычно в Word текст с формулами набирают.

Аватар пользователя andyceo andyceo 13 апреля 2010 в 15:42

Еще могу посоветовать Drutex для рендеринга математических формул. Одно плохо, работает это все в виде фильтра ввода, и непонятно, как сделать интеграцию с Wysiwyg-TinyMCE, например.

Аватар пользователя erasur erasur 13 апреля 2010 в 22:01

Как вариант модуль http://drupal.org/project/jsmath для подключения все того же скрипта JsMath. У меня на сайте нормально работает, настраиваемо и удобно(пример: http://ultrasonic.gnm.su/oil ). В FCKeditor добавил кнопку, вставляющую теги в нужном месте, внутрь забиваем формулу Тех. Кстати, ту же JsMath чрезвычайно просто прикрутить и к форуму на phpbb.

Аватар пользователя p-code p-code 14 апреля 2010 в 10:32

"orangeudav" wrote:
я не нашел в своем nginx файла конфигурации httpd.conf.

Я вот использую веб-сервер Boa, и тоже у себя не нашел httpd.conf Sad

//я думаю, автору не обязательно расписывать конфиги для всех веб-серверов.

Аватар пользователя AI AI 15 апреля 2010 в 21:01

На сколько помню, httpd.conf использовался на ранних версиях Apache-серверов. Слово "ранние" - относительное. Сейчас этот файл в принципе отсутствует, т.к. архитектура не требует его, однако для совместимости со старыми релизами возможно использовать этот конфигурационный файл (достаточно создать его и наполнить).
Только целесообразности в исправлении httpd.conf нет... Это файл "принадлежит" серверу. Вряд ли сколь-нибудь уважающий свой труд хостер позволит изгаляться над своим детищем.

Аватар пользователя AI AI 15 апреля 2010 в 21:09

Мда... И то, что автор привел в качестве "наполнителя" для httpd.conf очень сильно напомнило мне содержимое моих файлов с конфигурацией виртуальных хостов...

/etc/apache2/sites-available
a2ensite file_name_V_hosts
etc/init.d/apache2 reload

и все в таком духе............