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



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: |

Read now 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. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” Telegram users themselves will be able to flag and report potentially false content.
from us


Telegram C++95
FROM American