Страница 1 из 2
LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 20.04.2019 10:35:14
Dakor
Модули являются портом для Lazarus модулей ExprDraw и ExprMake для отрисовки математических формул на TCanvas, написанных Антоном Григорьевым на Delphi 5 и опубликованных в 2002 году.
В оригинале использовались функции GDI/Windows API и проприетарный шрифт Times New Roman, что исключало/затрудняло использование кода в Linux. Здесь же используются стандартные возможности TCanvas и шрифта XITS, распространяемого по свободной лицензии SIL Open Font License
https://opensource.org/licenses/OFL-1.1.
Шрифты XITS доступны на github:
https://github.com/alif-type/xits. Если нужны только стандартные функции модулей и не требуется особого форматирования текста, то необходимы только два файла с начертаниями Regular и Italic.
Учитывая пожелания автора оригинального кода, модули LazExprDraw и LazExprMake предлагаются по свободной лицензии MIT
https://opensource.org/licenses/MIT Модуль LazExprDraw содержит классы, использующиеся для отображения математических формул.
Модуль LazExprMake используется для создания классов на основании символьной записи формулы.
Архив с модулями:
https://yadi.sk/d/j8emISVJvTaLgwОписание модулей:
https://yadi.sk/i/AgQUSjcHJ1WDugСправочник по языку описания формул в виде программы (она же демо)
исходники:
https://yadi.sk/d/F8EMuVYFoD7xYAбинарник windows (x86_64):
https://yadi.sk/d/wys1Tj2I5K3F6gбинарник linux (amd64):
https://yadi.sk/d/DCvXrl8uomjJAwPS. Не забудьте установить шрифт XITS!

P.P.S. Проект на гитхаб:
https://github.com/DmitriyKornilov/LazExprDraw
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 20.04.2019 11:44:53
zub
Спасибо. Когда то давно интересовался модулем, но до дела так и не дошло.
Это просто порт или планируется развитие? В любом случае лучше выложить например на гитхабе
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 20.04.2019 12:54:28
Dakor
Я не профессиональный программист, просто хобби. Раньше использовал delphi, но для различных программок для облегчения жизни на работе нужно было что-то свободное, поэтому перешел на fpc/lazarus. А так на домашних компах перешел на Linux, в то время как на работе все на windows, выбор оказался как нельзя кстати.
В студенческие годы применял ExprDraw для разных поделок типа справочников и программ-тестов. Решил попробовать перевести это хозяйство под lazarus.
Первым этапом было избавление от привязки к Windows API в ExprDraw, что не составило большого труда. Однако мне не очень нравилось, как выглядят символы типа интеграла или суммы, нарисованные графическими примитивами.
В это время я открыл для себя шрифт XITS. В нем есть поддержка, наверное, всех необходимых символов для формул. В итоге получилось выкинуть из кода почти все графические примитивы, заменив их выводом символов шрифта с расчетом необходимых размеров.
Ну и добавлены некоторые возможности, которых мне не хватало в оригинале (например, реализация системы выражений не только с фигурной скобкой, но и с квадратной, или выражений типа предела, но с другими именами, помимо Lim).
Над дальнейшим развитием не думал. Для меня возможностей хватает. Если только кто идей накидает

и время будет свободное.
На githab выложу, но когда освою git. Системы контроля версий раньше не использовал, поскольку в крупных проектах не участвовал. Сейчас по мере возможности изучаю.
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 20.04.2019 20:36:27
zoltanleo
Dakor писал(а):На githab выложу, но когда освою git. Системы контроля версий раньше не использовал, поскольку в крупных проектах не участвовал. Сейчас по мере возможности изучаю.
Там изучать нечего. Принципы одинаковы для всех svn.
За проделанную работу спасибо. Мало ли, где пригодится.
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 03:22:05
Vadim
(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 10:28:53
Dakor
Vadim писал(а):За компонент спасибо.
У них там закидывание файлов какое-то время назад сильно упростилось и стало похоже на работу с обычным файловым менеджером. Если неохота заморачиваться с командами svn, то можно открыть github в браузере, ткнуть на кнопочку "Upload files" перетащить в окошко браузера файл или каталог с файлом. А потом нажать кнопочку "Commit change". Естественно, делать это можно не где попало, а в окошке своего проекта на github...

Господа, это неспортивно!
Ссылка на github добавлена в первое сообщение темы
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 11:33:02
zoltanleo
Dakor писал(а):Ссылка на github добавлена в первое сообщение темы
Ридми желательно писать на английском в качестве основного языка, если хочешь, чтобы твоей работой пользовались все. Использовать только НЕанглийский - моветон
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 12:34:25
Dakor
Имеешь ввиду, что надо поменять местами: английский вверх, а русский вниз? Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны. Или принципиально важно, чтобы английский выше был?
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 13:07:34
Vadim
(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 13:17:04
zoltanleo
Dakor писал(а):Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны.
прошу прощения, смотрел со смарта, видимо, не заметил
Vadim писал(а):До сих пор уверены, что Вы правы?
"Девочки, не ссорьтесь!" ©
Уважайте себя и друг друга. Берите пример с зарубежных коллег.
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 15:14:46
Dakor
zoltanleo писал(а):прошу прощения, смотрел со смарта, видимо, не заметил
тем не менее, английский вариант поднял наверх, спасибо за совет
Добавлено спустя 18 минут 29 секунд:Vadim писал(а):(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
(Сообщение удалено автором в связи с неадекватной реакцией собеседника)
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 15:43:08
Лекс Айрин
Dakor, тебе шашечки или ехать? На самом деле нет особой необходимости изучать команды SVN. Уже есть проги типа Черепахи, которые сильно облегчают работу, да и в командной строке обычно используется команд 5-6. Все остальное скорее для координаторов крупных проектов.
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 16:55:34
Dakor
С шашечками ехать

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 18:36:24
Лекс Айрин
Dakor, тогда ты выбрал не тот язык программирования. Попробуй ассемблер.
Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux
Добавлено: 21.04.2019 19:31:21
zoltanleo
Плз, не разводите флуд, пожалейте остальных читателей