Преобразование HTML-страниц с уравнениями MathML в документ Word
Моя цель — преобразовать этот документ (https://galileo.phys.virginia.edu/classes/252/lorentztrans.html), содержащий математические вычисления, в текстовый документ с хорошо отформатированными уравнениями.
Вы спросите, почему только Microsoft Word? Я учу физику по этим конспектам лекций. Все свои заметки я делаю в onenote (на своем Ipad, используя рукописные уравнения и диаграммы, нарисованные с помощью ipencil). Дело в том, что OneNote имеет ту же систему уравнений, что и Microsoft Word. Если он конвертирован в Word, он конвертируется в OneNote.
Я перепробовал все возможности, которые мог, с помощью Google. Я пробовал следующие методы, но безуспешно.
Способ 1: скопируйте и вставьте MathML в MS Word. Это работает для некоторых простых уравнений, которые я нашел в другом месте. Но, как ни странно, это не работает ни для одного уравнения с этого сайта. Я думаю, что в MathML этого сайта есть что-то странное.
Способ 2: преобразование из HTML в docx с помощью pandoc. Я сохранил HTML (только) этой страницы. Затем использовалpandoc -s input.html -o output.docx
. Он пропускал все уравнения.
Способ 3: копирование непосредственно в MS Word и Apache OpenOffice Write.
Я не против конвертировать сначала в промежуточный формат, а потом в Word.
ПРИМЕЧАНИЕ. Я ищу автоматическое решение, потому что мне нужно сделать это для сотен страниц. В этом формате автор писал конспекты различных лекций.
1 ответ
Математические теги в документе выглядят следующим образом:
<math xmlns='//www.w3.org/1998/Math/MathML' style='background-color:#'>
<semantics>
<mi>v</mi>
</semantics>
</math>
Пространство имен XML задается как независимый от протокола URI, т. е. оно начинается с//
. Это неправильно, он должен использовать протокол, например:http://www.w3.org/1998/Math/MathML
.
Пандока это тоже сбивает с толку, поскольку это недопустимый MathML и поэтому не распознает его как уравнение. Это работает хорошо, если добавитьhttp:
префикс. Поэтому решение состоит в том, чтобы выполнить поиск и замену во входном HTML-документе, исправив атрибут xmlns, а затем передать фиксированный результат в pandoc.