"Simplicity is the shortest path to truth." (C. de Gaulle). KerTeX aims to be the shortest path to the TeX and al. typesetting system : minimal dependencies (including minimal license strings attached); minimum storage requirement; minimum energy (in all acceptions of the word) to obtain the desired result.
And since the truth about something is universal, KerTeX aims to be installable on all operating systems, including in very constrained environments.
The current published version is stable: 0.99.25.01 (fix for Plan9). Please refer to engineering (present; future) for a discussion about the present state.
(Bundle with a fix pour Plan9 recipes)
Addition to kerTeX of kpstopdf
plus a total of 22 new
recipes including beamer@latex (this total includes Jean-Fran\,cois
Burnol's extended precision computation packages).
An utility (kpstopdf
) has been added allowing to
translate the PostScript code produced by dvips
into a
PDF matching the exact page size. It is useful for example with slides
produced by beamer@latex
. A total of 22 recipes has been
added (fonts, with Yannis Haralambous' old germain gothic; TeX and
LaTeX, for example pgf and beamer). Thanks to Mouad A. for the
exchanges and the testing!
For Jean-Fran\,cois Burnol's extended precision computation packages,
one needs to use etex
that has been modified to activate the
supplementary primitives implemented by Prote.
click to enlarge
Git sources are available here:
- The RISK compilation and installation framework
- WEB to C translation
- the kernel
- Recipes currently written for extensions (LaTeX etc.)
A presentation about kerTeX has been made during the "Journée GUTenberg 2024", at the ENS, rue d'Ulm, Paris. Here are the main points of the presentation (french only for now; the document will be translated in english later, completed with what has been said, and further nourrished with supplementary explanations that were not given during the lecture) presentation of kerTeX during the "Journée GUTenberg 2024" (french) .
Donald E. Knuth has developed, described and published a set of typographical utilities and data, i.e. a program to describe and render (rasterize) glyphs to build fonts ; fonts (the Computer Modern or CM) ; a page formating program: TeX and other related utilities, to which has been added by Tomas Rokicki a program to convert the DeVice Independent format (DVI), output by TeX, in PostScript : dvips; a scripting drawing engine derived from METAFONT out-putting PostScript commands: MetaPost from John Hobby; an extension of TeX with primitives for right–left writing: ε-TeX by the NTS team.
This whole, with some pieces added (AMS fonts and T1 version of the CM; Adobe afm of the standard PostScript fonts; Oren Patashnik's BibTeX; CWEB by Silvio Levy and D. E. Knuth; hyperbasics.tex, by Tanmoy Bhattacharya, allowing to generate hyperlinks in PDF generated from the PS producted by dvips) forms a complete typographical system, since it goes from the drawing of the glyphs (and, indeed, from general drawing), to compositing text and rendering (for the moment uniquely converted to the PostScript, with the benefit of all the power of PostScript but with the drawback that a PostScript-compliant printer has to be available, or a PostScript interpreter—generally an instance of gs (GhostScript))
D. E. Knuth has totally described the main pieces of the system, using this very system to produce the documentation! and has described it in a pseudo-Pascal—pseudo-Pascal because the language is so general that it is more an Algol, that is a mean to describe the processing done by the programs (TeX, METAFONT), than a particular implementation of Pascal, the very limited subset of Pascal allowing to translate automatically for the main part (there are ad hoc hints: it is not a general Pascal-to-C translation) this description in any suitable language, which is actually what happens now, all distributions compiling after translating this pseudo-Pascal in C.
KerTeX aims to follow these very principles:
- In order for the system to be as universal as possible, it depends on the strict minimum that is also the more generally available and the more easily obtained: a standard C library (libc); and it depends on nothing else;
- Because the whole forms a system: pieces that are meant to work together as a whole as a typographical system, kerTeX works as a kind of hosted system running on a host OS: what is added (macros for example) are the sole concern of kerTeX and the hosting OS has not the obligation to know anything about them (no need to pkg by OS: there is only one package: the kerTeX one, for every kerTeX installation); kerTeX has its own packaging system;
- Because the user should be able to use in the very same way the system not withstanding on which OS it is installed, the user interface is unified, base on a very small subset of POSIX.2 utilities (the aim of POSIX being precisely to describe some commonality between systems);
- By consistency, kerTeX separates what depends on the machine from what is independent from the machine, in order to be able to share what is machine independent (by whatever distributed file system) while using the binaries matching the system (a problem Plan9 has solved in a most elegant way). This separation is also realized by the compilation/installation framework: RISK (initially developed for KerGIS), that allows cross-compilation, making a distinction between the matrix (the system/machine we build on) from the target (the system/machine we build for);
- For safety reasons, kerTeX runs in its own "realm" (the directories it has been installed in), severed from the rest of the system, allowing to install kerTeX alongside another TeX distribution without stepping on other's toes—even the manual pages are kept in its realm.
KerTeX is hence a kernel (Quixante) and a companionship system, allowing to provide the base with core supplementary data or external supplementary data (Pancho).
The different pages on this site explore in more detail one aspect or another of the system. Here are some use examples:
click to enlarge |
METAFONT is a software for the design of characters of a font; it is both a language and an interpreter. But, indeed, more generally (since a character can be a lot of different things), this is a drawing software that is also a rasterizer: it converts vectorial description of drawings into rasterized data. The picture on the side is output by METAFONT (chapter 23 of METAFONTbook). This facility is called in kerTeX Online Graphic Output (at the moment available with X11 only ; rio and GDI to come). It allows hence to draw and visualize the tries when designing. The fact that METAFONT is also a rasterize is of fundamental importance if one dares to think about it a little... |
click to enlarge |
TeX and ε-TeX describent the result of their processing in DVI: DeVice-Independent (part 31 of TeX: The Program). This description has afterwards to be converted in a language accepted by the rendering device (a printer or a display system). Dvips is the program written by Tomas Rokicki to convert DVI into PostScript. Because it is possible to insert supplementary and arbitrary informations in DVI (informations that are in some sens "comments" for DVI), it is possible to achieve almost every effect and also to include PostScript data in the resulting file—and this is more general than PDF, since what can be done in PDF can be done, a fortiori, in PS; but the reverse is not true. |