Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Reimplementation of TeX in Haskell: pre-alpha

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 hex BUG bops reset the current font April 25, 2014
Octocat-spinner-32 .travis.yml TST+DOC Install texlive dependencies on test December 22, 2013
Octocat-spinner-32 AUTHORS BLD List myself as an author May 14, 2011
Octocat-spinner-32 COPYING.GPL3 BLD: Metadata November 28, 2010
Octocat-spinner-32 ChangeLog ENH Clear box content when using \box December 22, 2013
Octocat-spinner-32 PLAN.rst BLD New release: 0.0.5 April 08, 2012
Octocat-spinner-32 README.rst TST+DOC Install texlive dependencies on test December 22, 2013
Octocat-spinner-32 README.tex BLD New release: 0.0.5 April 08, 2012
README.rst

HeX: TeX in Haskell

HeX is a reimplementation of TeX in Haskell.

It is currently pre-pre-alpha: it doesn't do much.

Currently (as of version 0.0.4), it can typeset some simple text, using TeX linebreaking, and some simple math ($x^2$ and the like).

The plan is to first write a faithful reimplementation of TeX and then, make it better.

What needs to be better?

Here are my ideas:

  1. Better error messages.
  2. Better package management.
  3. Document at-once-typesetting (instead of page-per-page).
  4. Single pass implementation of cross-references.
  5. Better handling of floats.
  6. Better handling of images.
  7. Faster.
  8. Better scripting.
  9. In-built (or script written) facilities for things like references (instead of relying on external programmes).
  10. Use of multi-core machines.
  11. More output formats (ePub, HTML, ...?)

Some of these are traditionally built on top of TeX instead of modifying it. While that is a good way to do some things, it also means that the results are not as good as they should be. There is no reason to not have the handling of floats at the TeX level, for example.

What needs to stay the same?

Good quality output.

What can change?

The console output. Coming from a Unix background, I find TeX unbearably verbose. If no errors are found, it should output nothing. Also, there might be no functionality for interactive use when an error occurs.

Files that trigger an error in TeX will not necessarily work the same way in hex.

Dependencies

cabal install
cmdargs list-extras vector vector-algorithms binary convertible parsec dlist test-framework-th test-framework-quickcheck2 test-framework-hunit

You also need to have some TeX binaries available (at the moment). On Ubuntu, you can install them by running:

sudo apt-get install texlive-binaries texlive-base

Meta-Information

Author: Luis Pedro Coelho <luis@luispedro.org>

License: GPLv3 or later

Website: http://luispedro.org/software/hex

Something went wrong with that request. Please try again.