CXX95 Telegram 116
#opensource

Обзор на TeX 📖

Ist doch so gut gewürzt und so schön flambiert
Так хорошо приправлено и красиво обжарено
Und so liebevoll auf Porzellan serviert
И с любовью подано на фарфоре
Dazu ein guter Wein und zarter Kerzenschein
Под хорошее вино и нежный свет свечей
Ja, da lass ich mir Zeit, etwas Kultur muss sein
Да, я не тороплюсь, капля культуры должна быть!

В опенсорсе самым 𝓪𝓮𝓼𝓽𝓱𝓮𝓽𝓲𝓬𝓪𝓵 проектом является скорее всего TeX от Дональда Кнута. Это система для создания красивых документов, особенно для научных работ и технических книг 📖 Многие хотя бы раз его использовали, например для описания математических формул.

Про него есть много информации, но почти вся поверхностная. Стало интересно, что там внутри.

Можно смотреть "снизу вверх":
1️⃣ Шрифты - набор изображений символов (обычно векторных), сейчас популярен формат TrueType.
Векторные изображения переводятся в пиксельные на мониторе с приколами наподобии хинтинга и ClearType.

Многие стандартные шрифты имеют разное начертание для разных размеров, чтобы выглядело красивее. То есть буквы в 10м кегле (10pt) это не то же самое, что увеличенные в два раза буквы из 5pt 🤵

Есть шрифты, где записаны математические значки или другие символы в векторном виде, например знак ⚠️, это удобнее чем вставлять картинки.

Это обширная тема, в линуксе даже есть мемчик "шрифты говно" 💩

2️⃣ Формат файлов DVI - выходной файл TeX. Чтобы "прочитать" этот файл, надо хранить состояние из нескольких переменных и выполнять "команды" из файла побайтово. Например, команда set_char_a как бы "печатает" в текущем месте один символ a и сдвигает курсор вправо на ширину символа a.

Этот файл не содержит в себе шрифтов, а только "ссылается" на них, и знает из шрифта высоту/длину/глубину символов. На картинки он тоже только ссылается, и дефолтные DVI-просмотрщики не показывают их.

Смысл этого формата - получать один и тот же документ на любом компьютере 🖥

3️⃣ TeX - сам набор программ и язык разметки.

Самая подробная информация есть в книге от автора The TeXbook в 400+ страниц, можно пропускать слишком подробные куски 🔍
В других книгах как обычно выкинут 80% информации и еще неправильно переведут (например, "инкапсуляцию" как "защиту").

У ванильного TeX примерно 900 команд, но только ~300 команд являются базовыми. Например, команда \TeX для вывода лого TeX является макросом для такой последовательности:
    T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX
То есть печатается символ T, потом печатается E со сдвигом от изначального места немного вниз и влево, потом печатается X со сдвигом влево 📄

В The TeXbook описано, как текст из .tex-файла переводится в токены, какие есть категории токенов (глава 8)

В отличие от WYSIWYG-редакторов, TeX работает на уровне абзаца, а не строки, и распределяет слова по отдельным строкам так, чтобы минимизировать метрику badness.

В TeX есть понятие "клей" (glue) - это объект-отступ между разными сущностями TeX 🔺 "Клей" после запятой растягивается в 1.25 раз больше, чем "клей" между соседними словами, а "клей" после точки/знака !/знака ? соответственно в 3 раза больше.

"Клей" может быть бесконечно растяжимым/сжимаемым, например команда \centerline это макрос
    \line {\hss #1\hss }
Команда hss ставит бесконечный "клей", и TeX располагает параметр макроса (то есть #1) ровно в центр строки.

Есть огромная куча костылей, чтобы менять любое правило.
Например, чтобы написать в документе Mr. Evil с отступом как между соседними словами (а не с х3 отступом как для нового предложения) надо писать Mr.\ Evil.
Чтобы было нельзя перенести Evil на следующую строку без Mr., надо писать Mr.~Evil (~ это тот же пробел).

Можно поставить одинаковый glue stretching (после слов, запятых и точек) командой \frenchspacing.

Можно сформировать длины строк в форме полукруга (в The TeXbook есть примеры) командой \parshape, и так далее...

ПРОДОЛЖЕНИЕ В КОММЕНТАРИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64🔥3🤡1



tgoop.com/cxx95/116
Create:
Last Update:

#opensource

Обзор на TeX 📖

Ist doch so gut gewürzt und so schön flambiert
Так хорошо приправлено и красиво обжарено
Und so liebevoll auf Porzellan serviert
И с любовью подано на фарфоре
Dazu ein guter Wein und zarter Kerzenschein
Под хорошее вино и нежный свет свечей
Ja, da lass ich mir Zeit, etwas Kultur muss sein
Да, я не тороплюсь, капля культуры должна быть!

В опенсорсе самым 𝓪𝓮𝓼𝓽𝓱𝓮𝓽𝓲𝓬𝓪𝓵 проектом является скорее всего TeX от Дональда Кнута. Это система для создания красивых документов, особенно для научных работ и технических книг 📖 Многие хотя бы раз его использовали, например для описания математических формул.

Про него есть много информации, но почти вся поверхностная. Стало интересно, что там внутри.

Можно смотреть "снизу вверх":
1️⃣ Шрифты - набор изображений символов (обычно векторных), сейчас популярен формат TrueType.
Векторные изображения переводятся в пиксельные на мониторе с приколами наподобии хинтинга и ClearType.

Многие стандартные шрифты имеют разное начертание для разных размеров, чтобы выглядело красивее. То есть буквы в 10м кегле (10pt) это не то же самое, что увеличенные в два раза буквы из 5pt 🤵

Есть шрифты, где записаны математические значки или другие символы в векторном виде, например знак ⚠️, это удобнее чем вставлять картинки.

Это обширная тема, в линуксе даже есть мемчик "шрифты говно" 💩

2️⃣ Формат файлов DVI - выходной файл TeX. Чтобы "прочитать" этот файл, надо хранить состояние из нескольких переменных и выполнять "команды" из файла побайтово. Например, команда set_char_a как бы "печатает" в текущем месте один символ a и сдвигает курсор вправо на ширину символа a.

Этот файл не содержит в себе шрифтов, а только "ссылается" на них, и знает из шрифта высоту/длину/глубину символов. На картинки он тоже только ссылается, и дефолтные DVI-просмотрщики не показывают их.

Смысл этого формата - получать один и тот же документ на любом компьютере 🖥

3️⃣ TeX - сам набор программ и язык разметки.

Самая подробная информация есть в книге от автора The TeXbook в 400+ страниц, можно пропускать слишком подробные куски 🔍
В других книгах как обычно выкинут 80% информации и еще неправильно переведут (например, "инкапсуляцию" как "защиту").

У ванильного TeX примерно 900 команд, но только ~300 команд являются базовыми. Например, команда \TeX для вывода лого TeX является макросом для такой последовательности:

    T\kern -.1667em\lower .5ex\hbox {E}\kern -.125emX
То есть печатается символ T, потом печатается E со сдвигом от изначального места немного вниз и влево, потом печатается X со сдвигом влево 📄

В The TeXbook описано, как текст из .tex-файла переводится в токены, какие есть категории токенов (глава 8)

В отличие от WYSIWYG-редакторов, TeX работает на уровне абзаца, а не строки, и распределяет слова по отдельным строкам так, чтобы минимизировать метрику badness.

В TeX есть понятие "клей" (glue) - это объект-отступ между разными сущностями TeX 🔺 "Клей" после запятой растягивается в 1.25 раз больше, чем "клей" между соседними словами, а "клей" после точки/знака !/знака ? соответственно в 3 раза больше.

"Клей" может быть бесконечно растяжимым/сжимаемым, например команда \centerline это макрос
    \line {\hss #1\hss }
Команда hss ставит бесконечный "клей", и TeX располагает параметр макроса (то есть #1) ровно в центр строки.

Есть огромная куча костылей, чтобы менять любое правило.
Например, чтобы написать в документе Mr. Evil с отступом как между соседними словами (а не с х3 отступом как для нового предложения) надо писать Mr.\ Evil.
Чтобы было нельзя перенести Evil на следующую строку без Mr., надо писать Mr.~Evil (~ это тот же пробел).

Можно поставить одинаковый glue stretching (после слов, запятых и точек) командой \frenchspacing.

Можно сформировать длины строк в форме полукруга (в The TeXbook есть примеры) командой \parshape, и так далее...

ПРОДОЛЖЕНИЕ В КОММЕНТАРИИ

BY C++95


Share with your friend now:
tgoop.com/cxx95/116

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. Matt Hussey, editorial director at NEAR Protocol also responded to this news with “#meIRL”. Just as you search “Bear Market Screaming” in Telegram, you will see a Pepe frog yelling as the group’s featured image. To edit your name or bio, click the Menu icon and select “Manage Channel.” The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. “Hey degen, are you stressed? Just let it all out,” he wrote, along with a link to join the group.
from us


Telegram C++95
FROM American