
Я хочу создавать документы, в которых каждый абзац, уравнение и другая визуально различимая часть документа выделены собственным фоновым цветом (например, уравнения выделены синим цветом, таблицы — красным, заголовки — зеленым и т. д.)
Чтобы усложнить задачу, я хочу применить эту технику к тысячам уже существующих документов Latex; решения, требующие сложных изменений в существующих документах Latex, могут оказаться непрактичными.
Я задал этот вопрос как вопрос по раскрашиванию абзацев, потому что подозреваю, что это может быть простым способом сделать то, что я хочу. Но любой метод восстановления ограничивающих рамок, связанных с каждой командой, которая создает содержимое страницы, подойдет. Например, может быть способ восстановить расположение страниц содержимого, сгенерированного командами latex, из файлов DVI или журнала latex.
Моя конечная цель — создать набор данных для поддержки исследований в области автоматизированной обработки документов: я хочу создать алгоритмы, которые могут разбирать изображение страницы на структурные компоненты без необходимости в исходной разметке. Мне требуется сопоставление между разметкой latex и расположением полученного контента на странице для обучения и оценки алгоритмов.
решение1
Я пишу курсовую в университете. Цель — извлечь текст из книги. Мне также нужно извлечь структуру страницы: заголовки, абзацы и т. д. Я генерирую набор данных в latex и log bounding boxs:
\newcommand{\recordcurpos}[2]{
\pdfsavepos\write\@auxout{
\gdef\string\Ax{\the\pdflastxpos}
\gdef\string\Ay{\the\pdflastypos}
}
\typeout{
{
"class":"#1",
"type":"#2",
"x":"\the\dimexpr \Ax sp -\parindent\relax",
"y":"\the\dimexpr \Ay sp -\parindent\relax",
"pagenum":"\thepage"
},
}
}
Я бы хотел, чтобы вы поделились своими результатами, если можете. Спасибо!