A Ruby wrapper for LaTeXML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
test
.gitignore
.travis.yml
Gemfile
LICENSE.txt
README.md
Rakefile
latexml-ruby.gemspec

README.md

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.