Metrolog / Font.GOST2.304-81

Проект шрифтов ГОСТ 2.304-81 (ttf, otf, ...), пакета TeX для них, msi, msm, chocolatey пакета для них
Apache License 2.0
15 stars 1 forks source link

Переписать исходные файлы на Metafont #243

Open sergey-s-betke opened 7 years ago

sergey-s-betke commented 7 years ago

https://github.com/metapolator/metapolator/wiki/v1

sergey-s-betke commented 7 years ago

https://github.com/ummels/fdsymbol

sergey-s-betke commented 7 years ago

http://www.win.tue.nl/~aeb/tex/mf/metafont.html

sergey-s-betke commented 7 years ago

Преобразование stroked шрифта в кривые с удалением пересечений: http://www.ctan.org/tex-archive/graphics/MF-PS/roex

Да, в нашем случае можно преобразовать stroked шрифт в кривые с объединением с использованием roex.mf. Как раз поддерживается только перо круглое, что нам и требуется.

Сейчас у меня реализовано это решение на fontforge. Возможно, стоит сейчас оставить преобразование с использованием fontforge, а для TeX использовать перо в metafont.

Но, тем не менее, попробовать использовать roex.mf стоит...

sergey-s-betke commented 7 years ago

https://github.com/davelab6/mf2pt1 http://tug.ctan.org/support/mf2pt1/mf2pt1.pdf

sergey-s-betke commented 7 years ago

Нда... mf2pt1 далеко не панацея.

sergey-s-betke commented 7 years ago

Итого, стоит хорошо обдумать переход на metafont. Заманчиво, но сыровато...

Плюсы перехода:

Но для построения полноценных open type и true type шрифтов таким путём придётся применять комбинированный подход:

В общем и целом, при отсутствии возможности передачи хинтов из metafont в последующую обработку ценность подобного подхода при разработке существенно снижается.

sergey-s-betke commented 7 years ago

http://www-hep2.fzu.cz/~piska/TUG2004/piskatb2.pdf

sergey-s-betke commented 7 years ago

Судя по указанному выше обзору, стоит обратить внимание на:

Судя по истории версий, обработку перьев в MetaType1 переписал автор. Стоит пробовать, учитывая, что у нас круглое перо всего лишь. Но это - \ отдельный язык **, по сути, имеющий к metafont далёкое отношение. Но поддерживаются ссылки (подпроцедуры в PS), явная работа с глифами, а не с кодами символов, и так далее. Уже куда ближе к шрифтам...

Итого, видимо, за основу стоит брать именно MetaType1...

sergey-s-betke commented 7 years ago

http://metatype.sourceforge.net/faq.php - но это ещё один продукт!

sergey-s-betke commented 7 years ago

http://www.adobe.com/devnet/opentype/afdko.html

sergey-s-betke commented 7 years ago

Касательно ссылок :-) Ситуация решается в некоторой степени :-) makeotf из AFDKO опционально выполняет операцию Subroutinization, которая как раз выделяет общие контуры для разных глифов и заменяет их ссылками! Таким образом может быть решена проблема отсутствия поддержки ссылок в MetaFont, MetaType1...

sergey-s-betke commented 7 years ago

Склоняюсь к следующему процессу сборки шрифтов?

P.S. Стоит посмотреть другие способы построения инструкций для .ttf. Возможно, есть возможность создавать внятные и редактируемые инструкции для ttf на более высоком уровне.

P.P.S. возможно, с помощью дополнительных макроопределений попробую использовать MetaType1 файлы как MetaFont файлы. Для целей непосредственного использования в TeX.

В любом случае, крайне важно добавлять тесты для всех генерируемых артефактов.

sergey-s-betke commented 7 years ago

Остаются вопросы: каким образом стоит добавлять верхние и нижние индексы, математику, и т.д.? (те, что строить стоит через ссылки)...

Добавлять ли их в MetaFont - вопрос ещё тот (потому как кодировки в TeX крайне ограниченные). В таком случае - достаточно ограничиться предварительной обработкой Type1 шрифта через FontForge, добавлением необходимых символов через скрипт...

sergey-s-betke commented 7 years ago

Ещё один вопрос - с акцентами... Стоит разобраться, создаются ли в MetaFont и MetaType1 якоря...

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

Стоит проверить возможности AFDKO по генерации .ttf. Сейчас выполняю эту задачу сценарием fontforge (ведь требуется преобразование типа кривых, а потом - упрощение, добавление экстремумов и так далее).

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

https://github.com/adobe-type-tools/afdko

sergey-s-betke commented 7 years ago

Пример проекта на MetaType1: http://www.tug.org/tugboat/tb29-1/tb91hoeppner.pdf

http://www.ntg.nl/maps/26/15.pdf

sergey-s-betke commented 7 years ago

Есть ещё вариант. MetaPost поддерживает генерацию Type3 шрифтов (http://www.ntg.nl/maps/26/29.pdf). А Type3 уже можно конвертировать в TrueType с помощью fontforge. Всё-таки, MetaPost сопровождается и развивается большим сообществом, нежели MetaFont1.

sergey-s-betke commented 7 years ago

http://mirrors.mit.edu/CTAN/info/metapost/doc/russian/mpman-ru/mpman-ru.pdf - хорошее описание MetaPost на русском.

MetaPost может генерировать только заготовку для Type3 шрифта. Требуется финишная сборка.

http://www.ctan.org/pkg/mf2pt3

sergey-s-betke commented 7 years ago

http://mirrors.mit.edu/CTAN/info/metapost/doc/russian/mpman-ru/mpman-ru.pdf

sergey-s-betke commented 7 years ago

Однако... MetaType1 не входит в репозиторий MikTeX. Только в TeXLive. В MikTeX в чистом виде доступны лишь MetaFont, MetaPost. Так что писать придётся на MetaPost, видимо. И уже сразу - контурами, чего не хотелось...

sergey-s-betke commented 7 years ago

А mf2pt1 доступен и в репозитории MikTeX.

sergey-s-betke commented 7 years ago

MetaPost отдельно устанавливать не требуется, он входит в basic инсталляцию MikTeX.

sergey-s-betke commented 7 years ago

Есть вариант: перейти с MikTeX на TeXLive (он так же поддерживает Windows): http://www.tug.org/texlive/acquire-netinstall.html.

Возможно, и с установкой будет проще.

Возможности инсталлятора:

обновление установленных пакетов и не только:

sergey-s-betke commented 7 years ago

В общем и целом, стоит рассмотреть вариант перехода с MikTeX к TeXLive, в том числе - в целях дальнейшего использования MetaType1.

sergey-s-betke commented 7 years ago

Однако:

While in MiKTeX an installation process is automatically triggered if you have, say, \usepackage{beamer} in a document preamble without the corresponding package installed, there is no such feature on TeX Live. The last statement is not true actually, as pointed out by wasteofspace in the comments there is the texliveonfly package that implements the on demand installation in TeX Live 2010 and later. I never tested it and don't know if it has drawbacks.

http://tex.stackexchange.com/questions/110501/auto-package-download-for-texlive

sergey-s-betke commented 7 years ago
sergey-s-betke commented 7 years ago

От установки на лету в TeXLive пришлось отказаться. Далеко не всё установить можно, только стилевые пакеты и классы. Не более. Пришлось отказаться и от schema-small, перешёл на schema-medium.