crypt of decay - metafont [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

metafont [May. 23rd, 2020|05:28 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
я как-то никогда не обращал внимания на то, что у TeX есть своя система создания шрифтов METAFont. ну, знал, но типа: «да понятно, тогда ttf ещё не придумали, и Кнуту пришлось какую-то полурабочую херь на коленке слепить. теперь она, конечно, не нужна, но тащуть по привычке.»

ошибиться сильнее было бы сложно.

метафонт совершенно гениален, метафонт совершенно охуенен, а ttf как сосало в углу, так и сосает.

пример. вот это код на metafont:
Phi=(1+sqrt5)/2;
w=100;
h=Phi*w;
z1=z3-h*up=origin;
x2=w;
(y3-y2)=Phi*(y2-y1);
pickup pencircle scaled 15 xscaled Phi rotated angle (Phi,1);
draw z1..z3;
draw z1{right}..z2{up}..{left}z3;
labels(range 1 thru 3);
showit; shipit; end


а вот это — результат:


го-го рисовать это безьерками, рихтуя руками их параметры. успехов, чо.


поясню. чтобы код был понятней, будем знать, что `z1` — это сокращённая запись для `(x1,y1)`. точки.

значит, мы видим тут систему линейных уравнений, которая задаёт расположение опорных точек. эту систему метафонт любезно нам решит.

ещё мы видим линию и сплайн. у сплайна подхинтованы опорные точки, чтобы буква вышла чуть красившее (можно не хинтовать, тогда метафонт будет делать красиво в силу своего разумения).

и самое главное: мы видим тут выбор пера. метафонт рисует буквы точно так же, как их рисуют каллиграфы: при помощи набора разного вида перьев и карандашей! это очень, очень круто. потому что всякими безьерками в ттф именно это и пытаются эмулировать, но как обычно — через жопу.

из таких описаний без проблем создаются семейства шрифтов, путём автоматического применения простейших трансформаций. полужирные, наклонные, condensed, всё вот это вот. и сменой перьев тоже можно получать интересные эффекты.

Кнут на самом деле создал шрифтовую систему, у простоты, красоты и мощи которой нет аналогов до сих пор.

почему же она «массово не взлетела»? во-первых, взлетела — вместе с TeX. а во-вторых, растеризатор безьерок быстрее (метафонт вообще использует кубические сплайны, чтобы покрасившее). а что на создание шрифтов безьерками надо потратить значительно больше усилий (реально, при всём огромном количестве ttf-шрифтов — сколько из них хороших?) — так это неважно, человеческие трудозатраты, как известно, ничего не стоят. и в третьих, подозреваю, что Трепетные Натуры Художников просто полопались от вида уравнений. хотя хороший художник, конечно, без проблем увидит сверху «золотое сечение», и прочитает расположение опорных точек — но хорошие-то везде редкость, что у художников, что в любой другой области.


p.s.: картинко и пример я вырезал из учебника по метафонт.
Linkmeow!

Comments:
From:(Anonymous)
Date:May 23rd, 2020 - 04:06 pm
(Link)
Векторные шрифты не нужны.
Аналитические шрифты - тем более.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 04:14 pm
(Link)
и вообще буквы придумали какие-то мудаки. дидам пиктограм хватало!
From:(Anonymous)
Date:May 23rd, 2020 - 04:44 pm
(Link)
правда, не очень понятно, от чего ты писаешь кипятком с метафонта.
[User Picture]
From:[info]kanaj
Date:May 23rd, 2020 - 04:47 pm
(Link)
Потому что метафонт охуенен.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 04:56 pm
(Link)
потому что я знаю, как выглядит внутри ttf, и насколько сложнее его делать. и вижу, насколько элегантная и простая идея лежит в основе метафонта. который, собственно, делает шрифты точно так же, как их делали живые каллиграфы.
From:(Anonymous)
Date:May 23rd, 2020 - 05:07 pm
(Link)
только что-то никто не делает никаких шрифтов. наверное потому, что не нужны? (я правда не знаю)

в самом TeX оригинальные шрифты (CMR) плохо читаются с экрана.

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

[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 05:16 pm
(Link)
я не знаю, кто «документы набирает гельветикой и таймсом». если ты, конечно, не считаешь высеры ворда «документами». mf-шрифтов намного больше, чем один computer modern, тащемта.

использовать типографского качества шрифты на растровом экране — это, конечно, не самая умная идея. собственно, это никому так и не удалось до сих пор. метафонт и не создавался для low-dpi.

но это не значит, что он не может. может, конечно. никаких особых проблем отрихтовать его в low-dpi (и сделать пару подпорок, как сделали для ttf) — нет. просто совершенно никого не парит, как выглядят документы TeX на экране (а те, кто вместо исходников документов дают ps и pdf — тупорылые дегенераты, no exceptions).
From:(Anonymous)
Date:May 23rd, 2020 - 05:29 pm
(Link)
документами я считаю свои собственные высеры, разумеется.

>просто совершенно никого не парит, как выглядят документы TeX на экране

ещё как парит. потому что как ты посмотришь или покажешь документ или лекцию или презентацию с графиками в исходниках? да никак вообще.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 05:37 pm
(Link)
>документами я считаю свои собственные высеры, разумеется.
ну так и написал бы: «я лично набираю…»

>как ты посмотришь или покажешь документ или лекцию или презентацию с графиками в
>исходниках?

а ещё, например, исходники софтины никак запустить нельзя. может, это потому, что исходники для этого не предназначены? а ещё есть такой финт, что скомпиленые для x86, например, исходники плохо запускаются на армах, надо перекомпилить под другой таргет.

так вот это я всё к тому, что из исходника документа надо не делать pdf, который потом усердно совать во все дырки, а спокойно компилять их под нужную задачу и target.
From:(Anonymous)
Date:May 23rd, 2020 - 05:58 pm
(Link)
дык а исходники документа TeX для чего предназначены? вот то-то же.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 06:04 pm
(Link)
исходники предназначены для того, чтобы из них получать на выходе что-то, что решает конкретную задачу. в список этих конкретных задач «просмотр печатного варианта на обычном low-dpi мониторе» входит где-то в самом конце.

если тебе очень надо именно документ, именно глазами и на low-dpi — ну так не делай типографский pdf с mf-шрифтами, а делай html с экспортироваными формулами, или въебай ttf-шрифт, дело тоже нехитрое.

а для презентаций обычно полторы строчки текста с буквами размером с хорошо упитаных крыс — в таком раскладе mf-шрифты отлично выглядят.
From:(Anonymous)
Date:May 23rd, 2020 - 06:15 pm
(Link)
>в список этих конкретных задач «просмотр печатного варианта на обычном low-dpi мониторе» входит где-то в самом конце.

увы - нет.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 06:24 pm
(Link)
увы — да. в списке твоих задач, может быть, оно не так, но в списке задач, для которых создавался TeX — так.

это уж не говоря о том, что — как я уже упоминал — просмотр high-dpi документов на low-dpi устройствах само по себе не является идеей, достойной восхищения.

фигле, более-менее нормальный предпечатный просмотр глазами — это единственное, что хоть как-то может обосновать необходимость существования всяких ретин и прочего подобного бесполезного хлама.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 06:27 pm
(Link)
p.s.: и я всё ещё не понимаю, какая у тебя необходимость читать с экрана именно печатный вариант. какая религия запрещает тебе импортировать исходник, например, в LyX, выставить там нужные шрифты и масштаб — и читать как обычный, нормальный текст. ну, кроме той, что дегенераты решили всё за тебя, и не дают исходников, которые можно импортировать. на то они и дегенераты.
From:(Anonymous)
Date:May 23rd, 2020 - 06:36 pm
(Link)
не знаю. мне печатный вариант удобнее почему-то. привычка, наверное. 20 лет назад в LyX всё было не так уж радужно, а скомпилированный LaTeX документ был более-менее всегда.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 06:58 pm
(Link)
а мне всегда было неудобно читать пдфы. ну уёбищно же! если я хочу плохого качества книжку — я возьму плохого качества книжку. но у меня же комп! почему я не могу сменить шрифт, почему я не могу разложить текст как МНЕ удобно, почему, почему, почему… что это за херня вообще, что за каменный век?

ну да, LyX далеко не идеал (хотя он по сравнению с первой версией, и даже с 2.0 стал намного лучше). но этот неидеал всё равно обычно удобней, чем идиотия с пдф. да даже глазами латек-исходник читать часто удобней, йопта.

поэтому я всегда воспринимал пдф-идиотию именно как идиотию: идиотам дали космический корабль, они к нему приделали колёса и ездят в лабаз за картошкой (которой там не водится). игнорируя тот факт, что корабль укомплектован light vehicles специально для таких случаев.
From:(Anonymous)
Date:May 23rd, 2020 - 09:29 pm
(Link)
20 лет назад TeX ещё только postscript output генерировал, никакого тебе pdf.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 09:51 pm
(Link)
да это совершенно одна и та же хуета.
From:(Anonymous)
Date:May 23rd, 2020 - 09:55 pm
(Link)
тебе может и да, но вообще-то нет. в pdf хотя бы ссылки работающие есть.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 09:59 pm
(Link)
никто тебе не мешает делать их и в постскрипте. сделай просмотрщик, который в них умеет, какие проблемы. давай не будем заниматься этой ерундой, пытаясь искать какие-то кардинальные различия между форматами, один из которых — полуперевареная канибализация другого.
From:(Anonymous)
Date:May 23rd, 2020 - 10:33 pm
(Link)
я юзер, мне не надо "сделай".
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 10:41 pm
(Link)
именно поэтому «яюзеров» и кормят говном завсегда. а почему нет — куда они денутся-то? у них же лапки, они не могут в сделай. так что будут жрать любое говно. потому что на выбор предлагается говно, говно, и говно.
From:(Anonymous)
Date:May 23rd, 2020 - 10:45 pm
(Link)
юзер может, но он может в своё.

а что программисты сплошь говноделы, так других программистов у меня для меня нет.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 11:01 pm
(Link)
>юзер может, но он может в своё.
и поэтому его кормят говном. наслаждайтесь миром с узкой специализацией, чо. где каждый кормит говном другого, потому что сам в свою очередь поел говна.
From:(Anonymous)
Date:May 24th, 2020 - 12:12 am
(Link)
вообще у меня порядочно разнообразных скиллов. я даже в принципе умею код писать (для своих целей), но я не программист, ни разу вообще.

но когда я читаю хуиту про узких специалистов от программиста, я начинаю думать, а почему автомеханики не требуют ото всех умения чинить машины? почему стоматологи не требуют от всех умения чинить зубы? и так далее.

почему только программисты с таким наслаждением стремятся выставлять себя кретинами?
[User Picture]
From:[info]ketmar
Date:May 24th, 2020 - 12:32 am
(Link)
лично я вообще никого не пытался выставить кретином, но ты отчего-то решил взяться за эту задачу и успешно с ней справился, выставив не умеющим в прочитаное кретином себя. не знаю, доставило ли тебе это удовольствие, но определённо отлично удалось.
From:(Anonymous)
Date:May 24th, 2020 - 12:46 am
(Link)
это я блядь читать не умею?

>именно поэтому «яюзеров» и кормят говном завсегда. а почему нет — куда они денутся-то? у них же лапки, они не могут в сделай. так что будут жрать любое говно. потому что на выбор предлагается говно, говно, и говно.

>и поэтому его кормят говном. наслаждайтесь миром с узкой специализацией, чо. где каждый кормит говном другого, потому что сам в свою очередь поел говна.

на каком основании ты мне начинаешь втирать про какой-то маня-мирок с говном и говноедством? с какого блядь хуя?

>никто тебе не мешает делать их и в постскрипте. сделай просмотрщик, который в них умеет, какие проблемы.

я тебя где спрашивал, чего мне делать? в каком месте?

ты вообще за метлой следишь? или ты ебнутый и у тебя вдруг с нихуя на ровном месте начинается словесный понос?
[User Picture]
From:[info]ketmar
Date:May 24th, 2020 - 12:50 am
(Link)
обожаю такое полыхание. когда кисо кого-то обзывает идиотом — это ок. а когда кисо в ответ называют идиотом — кисо полыхает. гори-гори ясно, чо.
From:(Anonymous)
Date:May 24th, 2020 - 01:11 am
(Link)
> в ответ

а разгадка одна, лол:

> в ответ
[User Picture]
From:[info]mattekudasai
Date:May 25th, 2020 - 10:37 pm
(Link)
Извините, что я вторгаюсь в вашу специальную олимпиаду.
Но блядь за 20 комментов, извините еще раз, тут один из участников ни разу не упомянул что исходники надо блядь для того, чтобы мочь запихать из в git, а второй не ответил «кукареку кудах тах тах».
[User Picture]
From:[info]kanaj
Date:May 23rd, 2020 - 05:48 pm
(Link)
Вот как раз для презентаций в LaTeX есть крутой пакет beamer.
From:(Anonymous)
Date:May 23rd, 2020 - 05:56 pm
(Link)
дык я совершенно не против показывать сгенерированный бимером pdf (всегда так делаю)
From:(Anonymous)
Date:May 23rd, 2020 - 09:36 pm
(Link)
>ещё как парит. потому что как ты посмотришь или покажешь документ или лекцию или презентацию с графиками в исходниках?

Проблема в том, что tex, а точнее то, что вокруг него наросло - это инструмент для печати прежде вего, а задача демонстрации на электронном носителе - она иная. У кого-то смартфон, у кого-то проектор, у кого-то большой монитор - и тут никаких сантиметров, пикселей, точек - этого ничего не должно быть, должна быть логическая разметка, а не стили и визуальное, они вторичны тут.

Ситуация, увы, такая, что tex как инструмент удобен, а вот такого вот экранного представления, которое было бы действительно удобно и хорошо, нет. HTML в теории даёт такие возможности, на практике надо поверх него лепить абстракцию какую-то. Такие абстракции есть, типа markdown, но они очень куцые, либо неуниверсальные. А точнее, можно и tex адаптировать для такой задачи, но не через генерацию PDF. Собственно, использование lyx как просмотрщика - и есть такая адаптация, просто наколеночная.

По сути люди пользуются tex-ом потому, что у них он есть, а альтернативы приличной - нет.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 09:53 pm
(Link)
>обственно, использование lyx как просмотрщика - и есть такая адаптация, просто
>наколеночная.

именно. черезжопно, конечно, но что поделать: остальные варианты радуют ещё меньше.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 05:17 pm
(Link)
p.s.: внури растеризатор метафонта отлично умеет в «субпиксели», кстати. почитай книжку-исходник метафонта, там дохерища интересного.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 05:21 pm
(Link)
tl;dr: метафонт — случай технологии way ahead of its time. к тому времени, как метафонт уже можно было без анальных болей использовать для обычного рилтайм-рендера шрифтов на обычных экранах, ttf уже давно был (потому что его растеризовать знаительно дешевле и быстрее). ну не бросят же теперь все, кто с этого кормится, ттф, и не побегут делать шрифты для screen-metafont какого-нибудь.
From:(Anonymous)
Date:May 23rd, 2020 - 05:31 pm
(Link)
именно, не побегут.

я бы кстати на твоем месте выбрал бы что-то одно - ahead of time или ttf давно уже был.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 05:34 pm
(Link)
ты это. прочитать попробуй. а то находишь противоречия там, где их нет.
From:(Anonymous)
Date:May 23rd, 2020 - 05:34 pm
(Link)
я даже не то, чтобы подъебнуть, просто не вполне понятно звучит.
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 05:43 pm
(Link)
когда был создан metafont (прообраз технологии был в середине 1970-х, метафонт из него вышел в начале восьмидесятых) — никакого ttf ещё даже в зародыше не существовало.

однако алгоритмы внутри метафонта весьма сложные, и на то время (и потом тоже) обычная «бытовая» техника не могла достаточно быстро растеризовать mf-шрифты, и памяти на кэширование готовых битмапов тоже было немного. для типографики это не особо роялило, а для текста на экране в реалтайме — ещё как.

когда разработали ttf — ограничения всё ещё были, и ttf был ощутимо быстрее, хотя и менее удобный.

а когда метафонт уже стало более-менее можно использовать и как «обычный» растеризатор, то было поздно: ttf уже прочно утвердился, наделали шрифтов и всё вот такое.

плюс, про то, что такое метафонт внутри — знают относительно немногие. и из них большинство не парит, как он выглядит «на экране». поэтому никто особо и не пытался его адаптировать в качестве замены ttf: для high-dpi печати работает — и отлично.

как-то вот так.
[User Picture]
From:[info]tzirechnoy
Date:May 26th, 2020 - 04:04 pm
(Link)
Ну, по мне так Computer Moder Concrete с экрана читается отличненько.

Вообще, хорошый шрифт вышэл, дажэ вот странно, что его мало кто рекомендует (Таймс всё-таки довольно своеобразен, при этом как раз его суют куда ни попадя).
[User Picture]
From:[info]steinkrauz
Date:May 23rd, 2020 - 07:23 pm
(Link)
Очевидный вопрос: будет ли метафонт в Вавумчике? ;)
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 07:26 pm
(Link)
конечно! сначала потребую, чтобы весь экранный текст телали в TeX, а потом куда же без нормальных шрифтов? будут создаваться экраны интермиссий в dvi, и всё такое вот.
From:(Anonymous)
Date:May 23rd, 2020 - 07:45 pm
(Link)
уваж. программисты
скажите, чем открыть .apk файл на компутере, чтобы посмотреть код

с уваж, непрограммист мимокрокодил
[User Picture]
From:[info]ketmar
Date:May 23rd, 2020 - 07:48 pm
(Link)
почтовым клиентом. apk для этого даже не нужен, нужно только написать письмо автору, чтобы код прислал. всё гениальное просто.
From:(Anonymous)
Date:May 24th, 2020 - 10:13 am
(Link)
щас бы сравнивать шрифтовую систему для полиграфии с трутайпом, который пилился для crt с низким разрешением.

массово не взлетела по той же причине, по которой поцскрип не взлетел в news и прочих некстах. бо нефиг соваться с языком описания страниц и с вашими безье и бисплайнами бляцкими в дешманскую егу, которой все это удовольствие на 60 герц перерисовывать, да еще на машине, которая сплошную заливку полигонов в флайтсимуляторе четвертом еще тянет.

оффтоп https://fabiensanglard.net/ если не видел, загляни, интересный дядька.
[User Picture]
From:[info]ketmar
Date:May 24th, 2020 - 03:24 pm
(Link)
>трутайпом, который пилился для crt с низким разрешением
а мне ттф продавали как для полиграфии. а оно вона как. опять обманули, оказывается.

а что ж ваш трутайп так хуёво на крт с низким разрешением-то работает, что надо или вручную пуксели в нём рихтовать, или вообще битмапы в состав включать, а то иначе выглядит как говно? может, всё-таки нихуя не для «крт с низким разрешением», а тебя тоже наебали просто?
From:(Anonymous)
Date:May 24th, 2020 - 03:33 pm
(Link)
как такие шрифты запатентовать?
[User Picture]
From:[info]ketmar
Date:May 24th, 2020 - 04:23 pm
(Link)
точно так же, как и любые другие.
From:(Anonymous)
Date:May 25th, 2020 - 05:49 pm
(Link)
круто. натыкался на metafont, когда задумался проблемой работы с кривыми с переменной толщиной. в svg это только через громоздкий изврат, не осилил.
[User Picture]
From:[info]ketmar
Date:May 25th, 2020 - 05:54 pm
(Link)
ага, очень элегантное решение. правда, поскольку не безьерки — то никуда особо не конвертируется. разве что растеризовать и трассировать.
[User Picture]
From:[info]tzirechnoy
Date:May 26th, 2020 - 04:07 pm
(Link)
Я бы сказал, скорее дажэ не "небезьерки", а именно встроенный в язык растеризатор.

С другой стороны -- то, что в трутайпах делается мучительным хинтингом, а в .pfa -- никак -- здесь просто бесплатно.
[User Picture]
From:[info]ketmar
Date:May 26th, 2020 - 04:14 pm
(Link)
я про то, что никто не будет уже таскать новый растеризатор во все стандарты (а зря), везде безьерок напихали. так что если надо «в вектор» — то это уже типа стандарт. а в метафонте кубические сплайны, и в растеризаторе ещё дополнительная рихтовка. автоматически не конвертируется, насколько я помню.
[User Picture]
From:[info]ketmar
Date:May 26th, 2020 - 04:16 pm
(Link)
p.s.: я читал книжку-исходник — ничего не понял, как полагается. потому что я все книжки Кнута так читал, нигде ничего не понял. но зато могу говорить, что читал.