OnionGrief / Chipollino

преобразования регулярных выражений и конечных автоматов
Other
19 stars 4 forks source link

Гомоморфизм слайды->методичка #210

Closed TonitaN closed 1 year ago

TonitaN commented 1 year ago

~Под ёлкой~ экспериментирую с автоматическим конвертером. Результат уже приемлемый (с первого раза без подгонок получен по слайдам Глушкова, до этого подгонка была по слайдам ТФЯ, гораздо более непрозрачно оформленным).

Dummy.pdf

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

Угроза сбылась: оно на рефале. Поэтому если подключать этот прототип (а другого конвертера пока нет 😈), то нужно юникодовский рефал подогнать (передаём привет @xtoter ). Ну и конечно, вы можете сделать конвертер сами - но есть сомнения, что оно успеется. Не на рефале-то это писать сильно дольше 🌈

StarikTenger commented 1 year ago

Оказывается, в new-logger у нас уже 3 недели лежит рабочая версия... Есть пара косяков с дизайном, но основной функционал работает

log.pdf

UPD: основной функционал работает на большущих костылях, приспособленных под конкретный пример с глушковым

TonitaN commented 1 year ago

Тестовая версия конвертера готова (работает с обычным рефалом и кодировкой 1251, надеюсь, удастся перевести в UTF-8). Качаем текущую версию, в EDIT-ы не смотрим.

Поправлено распознавание перечислений после двоеточия

Актуальный Header - версия N (порядок подключения пакетов в преамбуле не оставляет выбора)

То, что получилось из Глушкова

На первых восьми лекциях по ТФЯ оно лагает в основном там, где я сама написала кривую разметку либо очень криво использовала способы постепенной отрисовки слайда (допустим, с копипастой). Руками я поправила только три позиции, причём все они связаны с командами only; кривые моменты в отрисовке остались, потому что в исходнике они тоже были (но подогнаны руками под форматы конкретного слайда). В конвертере есть отвратительные костыли с министраницами (которые пока никто не использует в документации), остальное приемлемо, переполнения по ширине в тексте пока ещё не обрабатываются автоматически, но это можно сделать в цикле sh-ref. Конвертер работает в режиме a (@xtoter поймёт) к исходнику Dummy.tex, чтобы можно было во-первых, приписывать сразу много слайдов из разных файлов, а во-вторых, локализовать преобразования внутри одного слайда, который по умолчанию замкнут на себе. В принципе, там есть потенциал к расширяемой преамбуле, однако это пока не реализовано. Было бы чем расширять, всё сделаем. Кое-где есть злоупотребление рефал-стилем, однако для 81 страниц время работы весьма приемлемое из-за локализации по слайдам, и это на первый случай пойдёт.

Результат на слайдах ТФЯ с новой преамбулой

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

Сейчас буду писать документацию к трансмоноиду и бисимуляции. Как напишу - нужно будет сделать логи для бисимуляции и трансмоноиду, чтобы хоть пару картинок в тезисы добавить :( Автоматы, видимо, будем рефалом рендерить :(

Да, встраиваемые картинки из png там пока не добавлены, но это несложно будет сделать.

EDIT: Добавлены.

EDITEDIT: Теперь комментарии не повреждены.

EDITEDITEDIT: Улучшена работа с министраницами. Теперь не лагает на нескольких парах министраниц на одном фрейме.

EDITEDITEDITEDIT: Улучшено распознавание перечисления после двоеточия и изменён Header.

TonitaN commented 1 year ago

Скрипт вызова (для UTF-8 дополнительная конвертация будет не нужна, но Андрей Петрович пока что рефал-UTF8 мне не отдаёт, так что возможность работать с ним есть только у @xtoter ):

testname=$1
echo Converting $testname ...
cp Header.txt Dummy.tex
 iconv -f UTF-8 -t WINDOWS-1251 < $testname > $testname-win
 refgo Hom_Slides $testname-win Dummy.tex
echo "\\end{document}" >> Dummy.tex
read -s -n 1

Кстати, преамбула сейчас тоже для cp-1251, тоже из-за невозможности пропускать юникодовскую через рефал. Поэтому для чистоты нужно сделать её для utf8 и затем конвертацию обратно (если рефал-юникод пока не работает).