Выделите или найдите местоположение ограничивающих рамок

Выделите или найдите местоположение ограничивающих рамок

Я хочу создавать документы, в которых каждый абзац, уравнение и другая визуально различимая часть документа выделены собственным фоновым цветом (например, уравнения выделены синим цветом, таблицы — красным, заголовки — зеленым и т. д.)

Чтобы усложнить задачу, я хочу применить эту технику к тысячам уже существующих документов 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"
    },
}
}

Я бы хотел, чтобы вы поделились своими результатами, если можете. Спасибо!

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