Как скомпилировать файл в ConTeXt, но вывести результаты в текстовый файл?

Как скомпилировать файл в ConTeXt, но вывести результаты в текстовый файл?

У меня есть несколько файлов, содержащих данные с синтаксисом ConTeXt, например, содержащие макросы и инструкции для специальных символов, но без преамбулы, разделов или других функций, привязывающих данные к какому-либо конкретному месту на странице. Мне нужно скомпилировать эти файлы, но вместо создания PDF просто преобразовать файлы в текстовый файл UTF-8.

Например, файл может содержать следующие данные:

\quotation{Do you want to go to the caf\acutee?}
\quotation{No, it costs 30\percent more than it did before.}

После компиляции с помощью ConTeXt он преобразуется в следующее:

"Do you want to go to the café?"
"No, it costs 30% more than it did before."

Есть ли способ скомпилировать эти файлы с помощью ConTeXt, но вывести в текстовый файл UTF-8?

решение1

ConTeXt имеет переключаемые бэкенды, встроенные в архитектуру, но бэкенд, который вам нужен, пока не существует. Есть бэкенд XML, чей вывод вы можете подключить к преобразователю XML в текст; или вы можете захотеть написать свой собственный бэкенд. В любом случае, я недостаточно знаю, чтобы помочь вам дальше.

Если вы хотите узнать больше о написании бэкендов, отправьте электронное письмо в список рассылки по адресу [email protected]. Разработчики там активно участвуют, и ваш вопрос наверняка их заинтересует. По крайней мере, вы сможете выяснить, соответствуете ли вы своим возможностям.

О, и как говорит Джозеф Райт, вам нужно будет подумать о своих требованиях. Вам нужен постраничный вывод? Как вы будете обрабатывать сноски и перекрестные ссылки? Где размещать плавающие элементы? Что насчет абзацев в ячейках таблиц? Короче говоря: сколько функций вы хотите перевести?


Ответ заканчивается выше; ниже приведены некоторые факты о бэкэндах

ConTeXt хранит свои бэкэнды в back-*.*. Текущие файлы:

back-ini.mkiv, back-ini.lua    # Initialization
back-exp.mkiv, back-exp.lua    # XML export
back-pdf.mkiv, back-pdf.lua    # PDF
back-swf.mkiv                  # Shockwave experiment (for *inclusion* in PDFs?)
back-u3d.mkiv                  # U3D experiment (3D graphics) (for inclusion?)

С начала back-ini.mkiv:

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

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

В данный момент .dviбольше не используется для расширенного вывода документов, поэтому мы прекратили поддержку этого формата. Будущие версии могут снова поддерживать больше бэкэндов, но это имеет низкий приоритет.

Главный вопрос: что считать проблемой бэкенда, а что нет. На данный момент мы рассматриваем включение изображений, повторное использование объектов, отслеживание позиции и цвет как проблемы фронтенда, хотя бы потому, что мы имеем дело с ними через код Lua и, таким образом, мы не слишком зависим от макровызовов, которые должны внедрять код для бэкенда.

Связанный контент