Skip to content

Микросервис для рендеринга tex-формул в изображения

License

Notifications You must be signed in to change notification settings

yandex/tex-renderer

Repository files navigation

Math Renderer - микросервис рендеринга TeX

npm (scoped) node-current Node.js CI Test Coverage

Возможности

  • отдает картинку по переданной TeX формуле
  • поддерживаемые форматы: png и svg
  • масштабирование изображения
  • оптимизация результата с помощью svgo и pngquant

Установка

Как сервис

docker run -p 3000:3000 meison/tex-renderer

Проверка:

curl "http://localhost:3000/process?tex=E=mc^{2}"

Как пакет

npm i @yandex/tex-renderer

Использование:

const renderer = require('@yandex/tex-renderer');

renderer();

Описание API

GET /process - рендерит и возращает картинку:

  • tex - TeX который необходимо отрендерить, (не забудьте заэкндить строку)
  • [format=^svg|png] - формат изображения, по умолчанию svg. Принимает как массив, так и параметр в виде строки.
  • [ex_size=7.265625] - размер одного ex в пикселях, влияет на размер получаемого изображения
  • inline - булевый параметр, определяющий как отрисовывать формулу - inline-TeX или TeX. inline-TeX предназначен для тех случаев, когда формула встраивается в текстовое содержимое.

В случае если был передан один формат данных возвращается файл соответствующего типа. Если было переданно несколько форматов, то возвращается json следующего вида:

{
  '<format>': '<data>'
}

В случае ошибки:

{
  "error": "Error string"
}

Примеры

Формула

\\sqrt{\\frac{5}{3x - 58}} = \\frac{1}{10} \\Rightarrow \\frac{5}{3x - 58} = \\left( \\frac{1}{10} \\right)^{2} \\Rightarrow \\frac{5}{3x - 58} = \\frac{1}{100} \\Rightarrow 3x - 58 = 500 \\Rightarrow 3x = 558 \\Rightarrow x = 186

Результат (png):

TeX формула в формате PNG

Формула

E=mc^{2}

Результат (svg):

TeX формула в формате PNG

About

Микросервис для рендеринга tex-формул в изображения

Resources

License

Stars

Watchers

Forks

Packages