Site logo

Як швидко конвертувати формули з Word для Open edX

На минулому занятті прозвучало цікаве питання: як оперативно перетворити формули, набрані у Word, у формат, придатний для платформи Open edX. Я вирішив детальніше дослідити це завдання.

Для прикладу я використовував Microsoft Office версії 2408. Хоча інтерфейс новіших версій може дещо відрізнятися, загальний алгоритм залишається незмінним.

Спосіб 1: Ручне перетворення через інтерфейс Word

Покрокова інструкція:

  1. Виділіть потрібну формулу в документі.
  2. Перейдіть на вкладку Equation (Рівняння/Конструктор формул), що з'являється у верхній панелі.
  3. У блоці Conversions (Перетворення) натисніть кнопку Convert (Перетворити).
  4. У випадаючому меню оберіть пункт Current — Linear (Поточний — Лінійний).

В результаті ми отримаємо рядок коду у форматі LaTeX. Тепер його можна скопіювати та вставити у практично будь-який компонент Open edX (наприклад, Raw HTML).

Важливо: код необхідно обгорнути спеціальними маркерами:

\( ... \) — для формул вбудованих у рядок тексту (Inline)

або \[ ... \] — для блокових рівнянь (які потребують окремого вирівнювання по рядку та центру — Block).

Порада: Якщо у файлі багато формул, замість Current виберіть пункт All — Linear — це конвертує всі об'єкти в документі одночасно. Щоб повернути формули до початкового вигляду, оберіть Current / All — Professional.

Спосіб 2: Використання макросів (VBA)

Якщо вам потрібно автоматизувати цей процес для великої кількості документів, можна скористатися макросом. Ось приклад код, який конвертує всі формули у формат Linear:

Sub ConvertAllEquationsToLaTeX()
    Dim objDoc As Document
    Dim objOMath As OMath
    Dim i As Long
    Dim count As Long
    
    Set objDoc = ActiveDocument
    count = objDoc.OMaths.Count
    
    If count = 0 Then
        MsgBox "No equations found in this document.", vbInformation
        Exit Sub
    End If

    ' Turn off screen updating for speed
    Application.ScreenUpdating = False
    
    ' Set the default math target to LaTeX
    Application.OMathAutoCorrect.UseOutsideOMath = True
    
    For i = count To 1 Step -1
        Set objOMath = objDoc.OMaths(i)
        
        ' 1. Ensure the equation is in LaTeX mode
        ' 2. Linearize converts the visual equation to the LaTeX string
        objOMath.Linearize
    Next i
    
    Application.ScreenUpdating = True
    MsgBox count & " equations converted to LaTeX strings.", vbInformation
End Sub
    

Спосіб 3: Конвертація через Pandoc

Ще один професійний шлях — конвертація файлів Word (.docx) у HTML за допомогою потужної утиліти Pandoc.

Після інсталяції програму потрібно запускати через PowerShell / Command Prompt (Windows) або Terminal (Mac). Наприклад, для конвертації файлу з папки 'test', розташованій на робочому столі, використовується така команда:

Переваги Pandoc:

Алгоритм для пакетної обробки:

  1. Перейдіть у потрібну директорію: введіть cd, поставте пробіл і перетягніть папку у вікно термінала.
  2. Запустіть скрипт для обробки:
Get-ChildItem *.docx | ForEach-Object {
    $outputName = $_.BaseName + "html"
    pandoc $_.Name -t html -s --mathjax -o $outputName
}

Примітка: Якщо ви не бажаєте встановлювати програмне забезпечення на комп'ютер, ви завжди можете скористатися онлайн-версією Pandoc.

Повернутися на головну сторінку ВШО