В лекции мы переплетём две нити: теоретическую и практическую. В теоретической разберём, как LaTeX (или, чаще, TeX) «видит» документ, как мы можем манипулировать этим взглядом, какие существуют примитивы и как программировать на TeX. В «практической нити» будем применять только что полученные знания для создания собственного шаблона презентаций и за вечер пройдёмся от нуля до полноценного стилевого файла. Вместе с тем мы не будем смотреть на несчётное множество великолепных сторонних шаблонов для облегчения работы, а сосредоточимся именно на встроенных, но малоизвестных, возможностях. В своей основной части лекция будет опираться на книгу Д. Кнута «The TeXbook».
Лекция будет вам понятна, если у вас есть базовые навыки работы в LaTeXе. Если вы уже писали в нём статьи, рефераты или презентации. Приходите, если вас не пугает запись begin{frame}end{frame}, вы знаете, как подключить сторонний файл и понимаете, что $$frac{1}{2}$$ выведет на страницу дробь.
Автор лекции – Антон Лиознов. Антон выпустился из CS центра в 2015 году. Проходил стажировку в Papeeria – онлайн редакторе LaTeX и Markdown. Сейчас Антон, как начинающий учёный, пишет в LaTeX статьи и презентации, пропагандируя этот инструмент среди новых студентов.
Слайды с лекции: https://github.com/Lavton/latexLectures/blob/master/2022_CSC/LaTeX%20for%20TeXperts%20-%20outclass.pdf
Шаблон в Tex: https://github.com/Lavton/latexLectures/tree/master/2022_CSC/template_creating/15_final
План лекции:
00:00 Вступление: для чего вам лекция, что узнаете
09:54 Раздел 1 «Слегка продвинутый LaTeX: Типографика и создание команд»
10:09 Простое созданик команд: области видимости, newcommand, стилевые файлы
19:13 Длины: абсолютные и относительные, арифметика
35:40 Боксы: горизонтальные и вертикальные. Высота, глубина и ширина
52:31 Клей: растяжимые пробелы, бесконечный и отрицательный клей
1:01:55 Моды и создание параграфов: вертикальная, горизонтальная и математическая моды. Отличия
1:07:15 Возможности создания команд и передачи параметров в LaTeX: опционные параметры, пакет kvoptions
1:13:30 промежуточные итоги первой части
1:16:15 Раздел 2: «Очень продвинутый LaTeX: программирование и работа с примитивами»
1:19:57 Создание команд: ключевое слово def, сопостовление с образцом
1:28:33 Условные операторы: newif, сопоставление для макросов и примитивов, ifthenelse
1:37:07 Работа со счётчиками: создание, манипулирование. Доминирование
1:45:37 Работа с длинами: создание, манипулирование
1:54:43 Работа с боксами: создание, манипулирование, печать, получение габаритов
2:03:17 Циклы и рекурсия
2:04:40 Работа с файловой системой: запись и чтение с файлов, зачем запускаем компиляцию дважды
2:07:24 Манипулирование с именами команд и ещё несколько ключевых слов: let, создание команды по тексту, какой символ отвечает за комментарии
2:11:50 Деббагинг и логгирование
2:12:31 Создаём прогрессбар с помощью всего, что узнали раньше (финал практики)
2:33:17 Резюме, как создавали прогрессбар
2:35:25 Финал