0.02
No commit activity in last 3 years
No release in over 3 years
The wrapper automates LaTeX to HTML5 conversions with LaTeXML, addressing common production needs such as error-handling, timeouts, managing option sets and automatic recognition of available binaries.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.12
~> 5.0
~> 10.0

Runtime

~> 1.8
 Project Readme

LaTeXML-Ruby

Build Status license Gem Version

A Ruby wrapper for the LaTeXML LaTeX to XML/HTML/ePub converter.

Includes support for daemonized conversion runs, for additional performance, via the latexmls socket server.

Why LaTeXML?

You may be familiar with other LaTeX conversion tools such as Pandoc or tex4ht. LaTeXML attempts to be a complete TeX interpreter, and covers a vastly larger range of the TeX/LaTeX ecosystem than Pandoc. At the same time it allows for just-in-time binding of structural and semantic macros, which allows it to create higher quality HTML5 than tex4ht, and makes bridging the impedance mismatch between PDF and HTML an achievable goal.

We use LaTeXML extensively at Authorea (http://www.authorea.com) for enabling Power latex editing for our authors.

Installation

Install the stand-alone LaTeXML application using your preferred method

Add this line to your application's Gemfile:

gem 'latexml-ruby'

And then execute:

$ bundle

Or install it yourself as:

$ gem install latexml-ruby

Caveat

The current default setup of the wrapper options uses some advanced LaTeX packages, for which you also need a working LaTeX installation on the machine, as LaTeXML resorts to the native LaTeX definitions. It's usually best to install texlive, or a similar comprehensive TeX distro. For a minimal setup set of options, see the basic test setup

Usage

A hello world conversion job looks like:

require 'latexml'

@latexml = LaTeXML.new

response = @latexml.convert(literal: "hello world")

result = response[:result]
messages = response[:messages]
status_code = response[:status_code]

You can find more information on the LaTeXML message codes in the official manual.Status codes range from 0 (OK), 1 (warning), 2 (error) to 3 (fatal error).

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/Authorea/latexml-ruby.

The 0.0.1 release of the wrapper brings support for easy conversion of latex fragments, which only scratches the surface of LaTeXML's versatile conversion use cases. If you are interested in a different workflow that is not yet supported, we will be very happy to hear from you.

License

The gem is available as open source under the terms of the MIT License.