slatex / sTeX

A semantic Extension of TeX/LaTeX
50 stars 9 forks source link
hacktoberfest latex omdoc stex

sTeX: An Infrastructure for Semantic Preloading of LaTeX Documents

CI Status

This repository contains the sTeX package collection, a version of TeX/LaTeX that allows to markup TeX/LaTeX documents semantically without leaving the document format.

Running pdflatex over sTeX-annotated documents formats them into normal-looking PDF. But sTeX also comes with a conversion pipeline into semantically annotated HTML5, which can host semantic added-value services that make the documents active (i.e. interactive and user-adaptive) and essentially turning LaTeX into a document format for (mathematical) knowledge management (MKM).

Copyright & License

Copyright (c) 2022 Michael Kohlhase The package is distributed under the terms of the LaTeX Project Public License (LPPL)

Maintainers

Michael Kohlhase, Dennis Müller, FAU Erlangen-Nürnberg.

Documentation

The sTeX manual gives a general introduction and motivation. The sTeX package documentation gives the details of the implementation. A complete list of sTeX-related publications can be found here.

sTeX Corpus & Best Practices

sTeX comes with a large corpus of pre-annotated materials that act as evaluation grounds and regression tests for the sTeX functionality and best practices that are publicly available.

All of these are hosted on MathHub, an experimental portal for the management of active mathematical documents and flexiformal mathematics. The organization of the material into "mathematical archives" (GIT repositories with a particular standardized structure on a GitLab repository management server greatly enhances modularization and the provision of added value services.

Setup

The GIT version can just be cloned in a directory <sTeXDIR> of your choosing.

cd <sTeXDIR>
git clone https://github.com/slatex/sTeX.git

Then update your TEXINPUTS environment variable, e.g. by placing the following line in your .bashrc:

export TEXINPUTS="$(TEXINPUTS):<sTeXDIR>//:

Similarly, set your MATHHUB environment variable to where you intend to keep your sTeX archives. For details, see the documentation linked above. For a LaTeX IDE, update the directory path where pdflatex looks for paths.

For larger documents it may (rarely) be necessary to enlarge the internal memory allocation of the TEX/LATEX executables. This can be done by adding the following configurations in texmf.cnf (or changing them, if they already exist).

param_size = 20000      % simultaneous macro parameters, also applies to MP
nest_size = 1000        % simultaneous semantic levels (e.g., groups)
stack_size = 10000      % simultaneous input sources
main_memory = 12000000

Note that you will probably need sudo to do this. After that, you have to run the command

sudo fmtutil-sys --all

Manifest

The sTeX distribution contains the following directories (conformant with the CTAN organization