An open API service indexing awesome lists of open source software.

https://github.com/radionoisee/apltex

Tiny TeX distribution built on Web2C and LuaTeX.
https://github.com/radionoisee/apltex

kpathsea luatex tex web2c

Last synced: 3 months ago
JSON representation

Tiny TeX distribution built on Web2C and LuaTeX.

Awesome Lists containing this project

README

        

## Overview

aplTeX is a minimal TeX distribution built on LuaTeX and Web2C. It includes:

- **Engine**: Statically linked LuaTeX compiled with HarfBuzz and Lua5.3.
- **Fonts**: TFM and Type1 (Computer Modern, AMSFonts, Manual fonts).
- **Format**: Unicode aware plain-LuaTeX (original `plain.tex` modified for eTeX, pdfTeX and LuaTeX).

All packed into just 12.6MB.

Basically this is for TeXnicians who need a small, self-contained modern TeX setup. This has nothing to do with the A Programming Language.

## Installation

Tested on Darwin (Sequoia) and Linux (Gentoo), aplTeX has minimal dependencies:

- **Make**: Tested with GNU Make.
- **Clang**: Other C compilers require slight edits to [`comp.sh`](https://github.com/RadioNoiseE/apltex/blob/main/luatex/comp.sh).
- **Git**: Required to pull the LuaTeX source tree.

### Procedure

1. **Build**: Run `./make/build.sh` to create the `texmf` directory containing the engine, fonts, and dumped format.
2. **Install**: Use `./make/install.sh` to move `texmf` to `/usr/local/lib` and install the LuaTeX executable.
- NB, you can actually put `texmf` anywhere on your disk, but its name should not be changed, and you are recommended to symlink the `texmf/web2c/luahbtex` executable to your `$PATH`.
3. **Clean (Optional)**: Run `./make/clean.sh` to remove the built `texmf` directory, locks for compile-time directories, and various logs.

Do not run the scripts as root as you will be prompted during installation to grant access when necessary.

## Post-Installation

Look in the [releases](https://github.com/RadioNoiseE/apltex/releases) page for some useful packaged and ready-to-use macros to support OpenType fonts, diagram drawing with the builtin MetaPost library, etc.

You can also manually add packages or formats. The directory structure looks like:

```
texmf
├── fonts % place to drop font-related things
│   ├── map
│   ├── tfm
│   ├── ofm
│   ├── vf
│   ├── ovf
│   ├── type1
│   ├── truetype
│   └── opentype
├── generic % TeX macros, Lua scripts, etc
├── metapost % MetaPost macros, inputs, etc
└── web2c % engine executables, TEXMF configuration, dumped formats
├── luahbtex
├── luatex.fmt
└── texmf.cnf
```

## Details

### Kpathsea Configuration

aplTeX uses a modified TeX and MetaFont directory tree structure, differing from the standard TDS slightly:

- **Compile-time**: `luatex/texmf.in`.
- **Run-time**: `web2c/texmf.cnf`.

Unlike typical TeX setups, aplTeX doesn't use `ls-R` databases due to its relatively small file count. This eliminates extra executables and simplifies updates.

### Format & Font Maps

aplTeX uses `luatex.map` for font mapping, which is more intuitive compared to the default `pdftex.map`. The dumped format includes a `\everyjob` hook to force this behavior.

## Misc

For questions or inquiries, feel free to open an issue or contact me via email.

## License

This project is licensed under the Clause-3 BSD License. The current version is `1.0.2`.

Some files under the directory `amsfonts` and `fmtdump` are provided as-is, subject to their respective licenses. Refer to the `readme.txt` files under these directories.