LINUX.ORG.RU

Из Maxima в LaTeX и обратно.


0

0

Дорогой ЛОР,

Мне часто необходимо конвертировать код из системы компьютерной алгебры Maxima в LaTeX и обратно. Встроенная функция tex в Maxima мне не нравится, так как:

0) работает только в одну сторону.
1) выдает всю формулу одной строкой. И эту строку все равно приходится править, чтобы засунуть в окружение multline.
2) по понятным причинам не умеет понимать, что, например:

diff( f(x, y), x, 2 ) + diff( f(x, y), y, 2 )

надо заменять на

\Delta_2 f \left( x, y \right)

Подскажите, какое бы вы выбрали решение проблемы? (чтобы учесть недостатки 0 и 1; 2 — это не так просто, да) А то у меня уже руки чешутся написать классный велик. Но я верю, что можно как-то элегантней выйти из положения.)


0 и 2 можно поправлять набором регулярных выражений, но я бы не назвал этот путь элегантным, но он относительно прост :)

По первому пункту - вероятно только в код лезть.

cvb
()
Ответ на: комментарий от cvb

> 0 и 2 можно поправлять набором регулярных выражений, но я бы не назвал этот путь элегантным, но он относительно прост :)

Да. Написать скриптик — это первое, что приходит в голову.

По первому пункту - вероятно только в код лезть.


Надо бы. Если по-хорошему, то надо отдельный пакет для максимы писать. Только лисп выучить перед этим.)

Хотелось, конечно, чего-нибудь с кнопкой «сделать заебись».

ovidii
() автор топика
Ответ на: комментарий от ovidii

>Надо бы. Если по-хорошему, то надо отдельный пакет для максимы писать. Только лисп выучить перед этим.)

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

Хотелось, конечно, чего-нибудь с кнопкой «сделать заебись».

В лиспе такое появляется только когда сам напишешь)

cvb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.