https://github.com/luispedro/hex
Reimplementation of TeX in Haskell: pre-alpha
https://github.com/luispedro/hex
Last synced: about 1 year ago
JSON representation
Reimplementation of TeX in Haskell: pre-alpha
- Host: GitHub
- URL: https://github.com/luispedro/hex
- Owner: luispedro
- License: gpl-3.0
- Created: 2010-11-28T05:16:58.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2014-04-24T22:20:45.000Z (about 12 years ago)
- Last Synced: 2025-04-09T17:05:26.779Z (about 1 year ago)
- Language: Haskell
- Homepage: http://luispedro.org/software/hex
- Size: 770 KB
- Stars: 31
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: ChangeLog
- License: COPYING.GPL3
Awesome Lists containing this project
README
===================
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
License: GPLv3 or later
Website: http://luispedro.org/software/hex