Upon the kerTeX base system is installed user level data. The former doesn't have sense without the latter since even the core of the system data (the compiled CM fonts; the plain formats for METAFONT, TeX, ε-TeX and MetaPost) is installed using the pkg framework.
But there are other external extensions proposed via the recipes, for example LaTeX and a bunch of macros linked to it.
RELEASE NOTES
- 2024-12-19: Fix for Plan9 (copying directories—pkg /
rcp—Thanks to Mouad A. for reporting errors!). You can update simply
via
tools@pkg.sh
andrcp@pkg.sh
. - 2024-12-14: 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 bydvips
into a PDF matching the exact page size. It is useful for example with slides produced bybeamer@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! - 2024-12-07: Increased memory for
the TeX/Prote engines; LaTeX recipe modified for language 0
definition; addition of Jean-Fran\,cois Burnol's packages for
arbitrary precision computations. Somme LaTeX usages required
more memory (defined at compile time) than was allocated: modified.
Texmf/TeXLive define
USenglish
as an alias toenglish
(for Babel) that is language 0, and some package declareUSenglish
(instead of english) as language: align to prevent problems. And Jean-Fran\,cois Burnol's packages for arbitrary precision computation (xint
andxintsession
) have been added, as well as their dependencies. For them, one has to useetex
that has been modified too to activate Prote's supplementary primitives (needed). - 2024-11-26: Babel recipes blunder
correction. The Babel recipes had a blunder preventing
unpacking of files needed to switch between languages. This has been
corrected. Please run
$KERTEX_SHELL $KERTEX_LIBDIR/pkg/rcp/rcp@pkg.sh install
to download the corrected recipes and reinstall the recipe for the languages you use. Thanks to Mouad A. for signaling a problem. - 2024-11-19: Compilation fixes for
Plan9/9front. Plan9/9front APE
sed(1)
doesn't understand ranges and—at least under 9front and APE—printf(1)
doesn't process the format. RISK has been modified to avoid these in order to work under Plan9/9front. Thanks to Elyes Kanzari for the problem report! - 2024-11-09: Compilation fixes for newer versions of gcc. Newer version(s) of gcc is/are treating as errors what were previously warnings about strict prototypes or missing prototypes. The CWEB utilities were written in order to be as portable as possible, including with old C compilers, and were omitting full prototypes, as well as the use of void when no parameters. This has been fixed, both in RISK—that may provide, on demand, ctangle—as well as kerTeX. Thanks to Antonio Olivares for reporting the problem!
- 2024-07-07 : Modification of risk_comp to circumvent a bug in Debian dash(1) system shell. This is only to fix for a compilation error due to a bug in Debian's dash. There is no change for the resulting installed kertex_T. Thanks to B. Atticus Grobe for report, tracing the offending code and testing the solution!
- 2024-05-21: Fix of a blunder in the handling of third parties packages (recipes). The POSIX.2 library used for handling what is related to packages can be updated separately from the core system, without rebuilding everything. Unfortunately, a blunder made the "updated" version available for download having the same release number as the good, in the distribution, but with a blunder; and, when updating, this "same" library overwrote the good one installed making recipes failing. It has been corrected and a whole release has been done. Warning! One has to download new versions of get_mk_install.sh or get_mk_install.rc! The reason has nothing to do with the previous problem: I had "upgraded" CWEB with a new version not anymore under Silvio Levy responsability; unfortunately, this version depends on a LaTeX file and, even more problematic, debugging of included cweb files doesn't work anymore. So I have reverted to the last Knuth and Levy versions, and there is not anymore a cweb tarball to unpack. Thanks to Romano for making the report about the former problem on 9front!
- 2024-05-21: LaTeX recipe updated. The LaTeX recipe has been updated to match what is current (including sources organisation) on CTAN as of today—the kergis.com cache has been updated as well. Thanks to Jack Lawler for reporting the error!
- 2024-02-16: Important informations concerning the new recipes (for LaTeX users). This has to do with the gestion of languages (Babel). See Managing additions to the kernel.
- 2024-02-14: Fix to recipe pl@fonts.sh. The directory name in the zip file has changed and the recipe has been thus fixed. Thanks to Antonio Olivares for the error report!
- 2024-02-01: Fix to recipe urw@fonts.sh. The Classico part was updated, and the list was incorrect. Thanks to Antonio Olivares for the report!
- 2024-01-29: Update to the extensions framework. An important update to the extensions framework has been made as well as updating the recipes for the current state of CTAN. There is no need to reinstall the system, but simply to update the pkg framework. See Managing additions to the kernel.
- 2023-08-01: kerTeX / MetaPost: fix for a fault introduced when simplifying the search for an input'ed file. When simplifying the search of an input'ed file, that was "stuttering" in case of failure—the first search already searched for all alternative, so retrying was yielding exactly the same result—I had suppressed an alternative branch of the code, useless for the result, but inside which an automatic variable was defined ensuring that it was then defined also in case of failure. The result was that, in case of failure to find the file, the automatic variable had a random value, in all probability different from zero and was interpreted as "true" while it should have been false. Coredump was following. Corrected. Thanks to Dirk-Wilhelm Peters for reporting the problem!
- 2023-08-01: kerTeX / Prote: file primitives behavior. The new file primitives are expected to behave like the input primitive i.e. to add a ".tex" extension if there is none. Prote modified to do so. Needed for new LaTeX.
- 2023-07-25: >kerTeX: CWEB update and armv8l parm addition. The CWEB utilities have been updated to the 4.9 version now maintained by Andreas Scherer, and support has been added for armv8l (v8 ISA for 32 bits version in little endian). One has to use the new version of get_mk_install since there is the addition of a separate sources tarball: the one for CWEB separately maintained. Thanks to Antonio Olivares for bug reports on Android!
- 2023-05-09:Fix for latex.sh on Plan9. Sed(1) on Plan9/9front doesn't handle characters classes. Thanks to Jack Lawler for the report and fix!
- 2023-05-08: get_mk_install.sh. The script now verifies that the user given (if distinct from the default) does exist—the installation does NOT create the user and group—and that he belongs to the group given.
- 2023-03-17: LaTeX: recipe updated in
order to allow to add various different languages hyphenation
patterns and exceptions, by Babel names.
By defining on the command line (or in the environment) the variable
SUPPORTED_LANGUAGES with a blank separated list of Babel
names, the hyphenation patterns and exceptions of these languages
are compiled in the format. The switch, afterwards, has to be done
with Babel normal macros. Exemple:
SUPPORTED_LANGUAGES="french ukenglish ngerman russian" $KERTEX_SHELL latex.sh install
will add hyphenation for french, english UK variant (an extension of D.E.K. `hyphen.tex', new german (post 1996) and russian, the related "user level" Babel related packages having to be added afterwards, via their dedicated kerTeX recipe. - 2023-03-05: kerTeX_M: fix for compilation on RHEL. On RHEL, the order of the objects linked, at least when one is called "lib.o", does matter. Thanks to B. Atticus Grobe! for the report.
- 2023-01-19: kerTeX 0.99.19.01: Increase the memory (BIG) for current LaTeX on CTAN. The current LaTeX version on CTAN needs more memory in TeX (the memory is a compile time defined constant). Thanks to Antonio Olivares for the report!
- 2022-11-06: Fix for the compilation of kerTeX_T on Plan9. A macro definition related to the POSIX version is needed in order to compile some system dependent code (for the implementation of one of the supplementary routines required by LaTeX). Reported by Skip Tavakkolia. Also, fix of a blunder, spotted by Martin Ruckert, in input.ch (but that had no functionnal implication—no need to upgrade just for that). Thanks to both for reporting!
- 2022-10-13: Fix to the LaTeX recipe for Plan9. Some commands added to the recipe recently were not matching Plan9 usage (rmdir, mv directories...) and the call to mf was done without ensuring that the binary was in the PATH/path. Fixed. Thanks to Chris Gorman for the report!
- 2022-09-26: Update of the LaTeX recipe . The recipe has been updated to add various files needed to process at least the bbold@fonts.sh dtx when adding the support of these fonts for LaTeX (compatibility?). Thanks to Antonio Olivares for reporting and testing!
- 2022-09-12: Update of the
LaTeX recipe (2022-06-01-PL5). The recipe has been updated
in order to work with the current version on CTAN. Note: if the name of
the files have been unchanged, a recipe will work even with a more
recent version on CTAN. In case of a change, the recipe will fail and
has to be then used with the KerGIS cache of the files matching the time
when the recipe was written:
$KERTEX_SHELL rcp.sh -p http install
. Thank you to Antonio Olivares for reporting the incompatible change. - 2022-09-08: kerTeX minor release. Support for FreeBSD fetch as HTTP client (it supports CTAN CDN mirror redirections)—one has to use the new version of get_mk_install.sh to select it at installation time). Also, improvement of mp2ps for isolated MetaPost figures.
- 2022-05-18: Two new LaTeX packages: exam and lcg. (Suggested for addition by Antonio Olivares...)
- 2022-04-28: LaTeX package. Another bug fixing: the search path for fonts (installed by this very recipe) was not specified; but the LaTeX ones are mandatory for the format; hence they were searched with the default paths (the kerTeX installation on the node) and found only when LaTeX has been previously installed, and not found in a fresh install. Fixed. Thanks to Antonio Olivares for the bug report!
- 2022-04-26: Connection problems for
recipes (pkg). The recipe latex.sh uses a server
address that is in fact a CDN, redirecting to HTTPS servers depending on
load and location. Two problems : some http clients (depending on the
host system) are not able to handle the redirections or
(ftp(1) on FreeBSD) do not handle HTTPS; et, secondly,
curl, that can handle both (but with some flags)
is rejected by some servers when identified as Curl... If the default
client does not manage to download, use for example lftp(1)
by declaring it this way:
sys_httpc=lftp sh latex.sh install
or update the pkg management in kerTeX by:
sh $KERTEX_LIBDIR/pkg/rcp/tools@pkg.sh install that will allow (or should...) to use curl as client (sys_httpc=curl). Finally, you can also replace in the latex.sh recipe the server line: http://mirrors.ctan.org/ by http://downloads.kergis.com/kertex/pkg/src/ that has been fed with a copy of the data required by latex.sh, and that doesn't use a CDN nor require HTTPS (it serves HTTPS too, but it is not a requirement). - 2022-04-21: latex.sh: bug fix; kerTeX 0.99.17.1: increase of BIG capacity for LaTeX. A blunder in the latex.sh was not installing all the fonts related files relative to psnfss. Fixed. Thanks also to Jack Lawler! for signaling a portability blunder in the recipe (unzip used instead of $PKG_UNZIP). Pour kerTeX: capacities had to be increased for LaTeX documents defining a lot of control sequences. Also correction of an error emitted when meeting an end of file without the line being ended by a end of line. Ease of use: some documents referred to epsf.tex as epsf.sty: links added. Thanks to Antonio Olivares for the reports!
- 2022-04-18: latex.sh: bug fixes . Graphics was included but not mentionned in KXPATH; psnfss was incompletely included, all the pfb definition fonts missing and the dvips maps as well. Corrected. Thanks to Antonio Olivares for the report!
- 2022-04-17: kerTeX 0.99.16.0: Prote default engine and LaTeX3 compatibility. Release of the stable version with Prote as default TeX engine (TeX, e-TeX compatibility; additional primitives required by LaTeX3, and input handling compatible with Web2C (TeXLive) version). Also: the curdir specification "./some/file/path" leads to the pathname being taken as is, without searching (the curdir is the process one; not the dirname of the first input script file). The latex.sh recipe has been updated to allow to compile and install the latest version on CTAN (LaTeX related recipes—the present ones should be compatible—will be updated progressively when time permits).
- 2022-03-25 :Prote (devel): implementation of supplementary methods for the input primitive. Prote—default engine now for TeX, eTeX and LaTeX—now accepts a double quoted argument (allowing spaces in the name) and a grouped argument subjected to various expansions as a file name definition for the input primitive. Explanations can be found in the input.pdf document on the dedicated Prote page. Thanks to Phelype Oleinik for the test file about the expected behavior of the implementation! (Note: the recipe for LaTeX is unchanged, waiting the verification that the double quotes dance does not hide any devil in a little corner.)
- 2022-03-07: Prote: dev version 0.99.15.9: allowing spaces in filenames at the general shared library level. The majority of the engines used nowdays with LaTeX allow to specify as input, filenames with spaces (while, in the original code, spaces where delimiters and were thus forbidden in filenames). In order to achieve this, the shared library used for file searching and opening by all the utilities (whether written in WEB/Pascal or in C) had to be adapted and all the WEB/CWEB change files and/or the C code modified for the new API. The modification of the TeX input primitive will come next. This is an alpha release.
- 2021-10-14: Prote has been successfully tested on NetBSD, FreeBSD, DragonFly and Android, on amd64, aarch64 and earmv7 machines. As usual, thanks go to Antonio Olivares for being instrumental in testing on a lot of different systems!
- 2021-10-11: Prote has been integrateg in the development version of kerTeX. This version is available for development by selecting dev when get_mk_install.sh (or get_mk_install.rc) asks for the version. Please see the Prote page on this site for more informations!
- 2021-09-21: Prote: new engine, TeX and e-TeX compatible, with extensions. In the same spirit as e-TeX, Prote is developed on TeX and e-TeX, being compatible with these and adding extensions. The first extensions are the latest LaTeX required primitives (missing in TeX and e-TeX). The engine will be incorporated soon in the kerTeX distribution.
- 2021-09-02: Security fix for TeX, METAFONT, MetaPost and e-TeX. A bug, in the handling of the filenames in extrem cases has been found, and the present correction at least ensures that when writing the log or dvi files, the extensions ".log" and ".dvi" are always present. If you have installed the LaTeX recipe, after upgrading, please re-install LaTeX so that the underlying engine is the updated one (e-TeX).
- 2021-06-27 : Fix for kerTeX_T:mp2ps. echo treats or not escaped characters (this is implementation defined in POSIX.2). With the Pi shell, escaped characters are interpreted leading to an incorrect generation of the TeX template. This is corrected—this is the only modification and if mp2ps is working on your system, there is no need to update. Thanks to Antonio Olivares for reporting!
- 2021-04-22: D.E. Knuth's 2021 tune-up incorporated. D.E. Knuth has revised the TeX, METAFONT and al. system in early 2021. KerTeX has been updated to latest versions, e-TeX and MetaPost being adapted to match also.
- 2021-04-07: Fixes for some babel recipes (pkg). The Babel's recipes belarusian, friulan, georgian, hungarian, italian, occitan, piedmontese, romansh and slovenian have been fixed for a harmless bug: there is no .ins generated so the processing of these shall not be called. Thanks to Antonio Olivares for the report!
- 2021-03-08: fixes for Plan9. Plan9 doesn't provide rmdir and mv renames/moves files but not directories. Fix in RISK, RISK version adjustement in kertex_M, fix for mp2ps in kertex_T, and fixes for the recipes (pkg) latex.sh and amstex.sh. Thanks to Gilman Ironworks for reporting!
- 2021-02-11: fix of RISK for Raspberry Pi OS. The dynamically shared libc needs a second static library chunk whose informations are given in a pseudo libc in /usr/lib/... that is actually a ld script. Searching first /lib/... finds the true libc file but then, when linking, some symbols are not resolved. Solution: modify the order of the search for raspbian. (Thanks to Antonio Olivares for the report of the failure with the new version of Raspberry Pi!)
- 2020-11-22: fix to latex.sh recipe. The new recipe now integrates required packages (ams, babel core, cyrillic, graphics, tools—and ec fonts) that were separate packages before. Hence, after installing the new version, the latex recipe automatically removes the obsolete packages it replaces. But the new files were installed in the very same directory as the resp. old package. Hence, it the old package was installed, removing it removed the new files that have overwritten the old... Fixed. Thanks to Antonio Olivares!
- 2020-11-22: RISK and kerTeX_T fixes. RISK fix for untested "cd try_dir" that might fail (Linux); RISK fix and kerTeX_T fix for static compilation under Linux based distributions (tested on Android). Thanks once more to Antonio Olivares for the reports!
- 2020-11-18: RISK fix for FreeBSD and russian and ukrainian recipes fixes. RISK: Search for clang and do not take c99 that accepts only POSIX options. Russian and ukrainian: batchfile definition for docstrip has to be kept as is. Thanks to Antonio Olivares for the reports!
- 2020-11-17: RISK fixes for OpenBSD and arm64. Fixes have been applied for compilation on OpenBSD; paramaters file has been added for arm64 (aarch64). Thanks to Asad Lodhia for reports and tests!
- For LaTeX (babel) language recipes. The autogeneration generation of files is done via docstrip, that is provided by LaTeX and hence has to be done by latex and not tex—docstrip is accessible by tex if and only if babel@tex has been added. Thanks to Antonio Olivares for reporting the error!
- carlisle@latex recipe added for miscellaneous style or macros files written by David Carlisle (scalefnt.sty for example).
Updating the package framework
Current version :0.99.15.
The framework has been reworked with notable additions; so the framework as well as the recipes have to be updated. This is done using... the framework itself, and there is no need to reinstall the complete system. Just verify what version is currently installed, and update if needed.
In order to see which version of the extensions framework is currently installed:
. which_kertex $KERTEX_SHELL $KERTEX_LIBDIR/pkg/rcp/tools@pkg.sh -V
If the version installed is not the current one (0.99.15), update the framework:
. which_kertex $KERTEX_SHELL $KERTEX_LIBDIR/pkg/rcp/tools@pkg.sh install $KERTEX_SHELL $KERTEX_LIBDIR/pkg/rcp/rcp@pkg.sh install
Main modifications and additions:
- If the sources the recipe has to download are present under CTAN, the server URL is not specified in the recipe. The environment variable KERTEX_PKG_SRC_SRV is used, with a default value of http://mirrors.ctan.org/, that can hence be redefined to select another URL, that can as well be a local cache dir (file:///some_dir/with/CTAN/hierarchy/) ;
- The environment variable KERTEX_PKG_RCP_DIR is added to locate dependencies (recipes). It defaults to $KERTEX_LIBDIR/pkg/rcp (it is a directory; not an URL);
- A script pkg_bulk_get(1) allows to make a mirror of the sources needed by the recipes in KERTEX_PKG_RCP_DIR (default: $KERTEX_LIBDIR/pkg/rcp/);
- A script pkg_rcp_sketch(1) allows to sketch a recipe for a LaTeX contrib macros package present on CTAN. This recipe will probably work as is in a fair amount of cases without ado;
- For system on which there is a privileged user and on which kerTeX is owned by this privileged user, one can now directly call as this privileged user the recipe for removing, installing, consulting the status or the dependencies (previously, the framework requested to run as non privileged and switched to privileged when needed). Building imposes unprivileged only.
LaTeX — LaTeX and Babel
LaTeX, in its current version as of 2024-02, is supported, running on the Prote engine.
For hyphenation, the patterns have to be compiled in the LaTeX format created in order to speed the processing of the TeX engine—Prote is an extension of TeX; this is still TeX that is, underneath, doing the bulk of the work. In order to add the hyphenation patterns for the desired languages, before invoking the recipe, define in the environment the SUPPORTED_LANGUAGES variable, with a blank separated list of Babel recognized language names that you wish to use. The recipe will take the definition of the variable to add the corresponding patterns.
By default, the original D.E. Knuth's hyphenation patterns for english (recognized by the kerTeX latex.sh name: english—Babel in fact uses ukenglish or usenglishmax for other english patterns. You can add these D.E.K.'s original patterns by specifying english in your list of languages. But this is not added implicitely if the env variable is set!
The order in the declaration of languages matters: the first language is the default one.
Then you will have to add, after, the user part of the Babel support for these languages, by installing the corresponding french@babel@tex.sh (for example) etc.
Recipes looking like french@latex.sh are obsolete and will not work with the new framework. When installing, say, french@babel@tex.sh, this new recipe will, after its installation, remove both the installation of french@latex.sh and the obsolete recipe itself!
Main properties of the optional packages
The recipe are written so that they can, when possible i.e. when the building process doesn't change, work with newer versions of the package sources, so that they can be largely "live".
Hence a recipe has been verified when created, updated or checked. A cache of the sources used when the recipe was for the last time checked is made in http://downloads.kergis.com/kertex/pkg/src/, but, generally,if KERTEX_PKG_SRC_SRV is not set otherwise, the recipe will download sources live from CTAN. If there is a problem, one can redefined KERTEX_PKG_SRC_SRV to http://downloads.kergis.com/kertex/pkg/src/ in order to get the version of sources known to work with the recipe (one can also provide the -c flag to the recipe to define the server to the KerGIS cache.
The other important property of a package is that it does not depend on where exactly kerTeX is installed on a host. As long as a package has been created on a compatible OS and machine, this package can be installed on another compatible host: the package is relative to a kerTeX installation but does not record a dependency upon where exactly the kerTeX installation is rooted.
Definition of the sources server
As explained above, KERTEX_PKG_SRC_SRV gives the server URL to contact in order to download the package sources. The order of the definition of the server are the following:
- If KERTEX_PKG_SRC_SRV is not defined in the environment, it is set to http://mirrors.ctang.org/, that is in fact a cdn;
- If the -c is given in the call of the recipe, KERTEX_PKG_SRC_SRV is reset to the KerGIS cache http://downloads.kergis.com/kertex/pkg/src/;
- If the recipe explicitely sets the URL of the server (for example because sources are not under CTAN), this specific URL is used unless the -f has been given that forces to use the URL specified in KERTEX_PKG_SRC_SRV. If no URL was explicitely set by the recipe, KERTEX_PKG_SRC_SRV is used.
Sources are fetched, depending on the scheme, using what is defined in sys_ftpc for an ftp client and sys_httpc for an http one. These variables are defined at installation time with defaults according to the host OS. In case of problem, you can redefine them in the environment using one of these values:
- curl
- fetch
- ftp
- hget (plan9)
- lftp
Getting a local mirror of the sources
The utility pkg_bulk_get(1) can be used to download all the sources required by the recipes present in KERTEX_PKG_RCP_DIR (this is a directory, not an URL), that is defined, by default, as $KERTEX_LIBDIR/pkg/rcp/. Call the utility with the pathname of the mirror local dir (the dir has to exist: it is not created):
. which_kertex $KERTEX_BINDIR/pkg_bulk_get some_existing_dir
KERTEX_PKG_SRC_SRV is used according to the rules specified above.
If you do not want to download all the sources of all the recipes given by default, just define KERTEX_PKG_RCP_DIR with the value of a directory holding just the recipes you are interested in. In this case, you can use the addition framework to list the dependencies of these recipes in order to have a complete set of requirements:
. which_kertex $KERTEX_SHELL some_rcp -x show dependencies
This command will list all the "nicknames" of the dependencies (everything except thee suffix .sh) of the recipe.
Usage of the packages framework
Generically, what in kerTeX refers to a pkg is linked to the addition of data to the system kernel.
The chunk of script allowing to download sources, process them and install the result according to the kerTeX hierarchy is called a recipe and hence we will use the abbreviation rcp to designate recipes.
After the installation of the directory hierarchy, some source files (for example the METAFONT scripts for the CM fonts) and the compiled programs, kerTeX uses the pkg system to compile and install the core data, that is the compiled CM fonts, the "plain" formats etc. This is done automatically when using the get_mk_install script. The rcp is core@pkg.sh.
For this recipe as well as for all the others, the processing is the same (here some_dir is the dir where the recipe file is, and rcp is the filename of the recipe—example: core@pkg.sh):
. which_kertex $KERTEX_SHELL some_dir/rcp install
De facto, there is a default rcp dedicated dir in the kerTeX hierarchy: $KERTEX_LIBDIR/pkg/rcp/. This is under this very directory that all existing recipes are put when invoking the recipe rcp@pkg.sh, that downloads all the recipes in their current version (the downloading is proposed by the get_mk_install script):
. which_kertex $KERTEX_SHELL $KERTEX_LIBDIR/pkg/rcp/rcp@pkg.sh install
Since the pkg framework is the part submitted to the more frequent changes (compared to the base engines or the base fonts), it is possible to upgrade the pkg framework by using... the recipe tools@pkg.sh:
. which_kertex $KERTEX_SHELL $KERTEX_LIBDIR/pkg/rcp/tools@pkg.sh install
Available packages (recipes)
The LaTeX required packages: ams, babel (base), cyrillic,
graphics and tools are installed with the LaTeX recipe and are no longer
separate packages (there is a babel base too for TeX and ε-TeX;
but not for LaTeX since it is included). Ec is included too in the
LaTeX recipe since, even if it is not listed as required, LaTeX
depends on it in order to render sample2e.tex or to pass ltxcheck.
Only the base babel is installed with LaTeX. One needs to install
the language dependent part with the dedicated recipe
some_language@latex.sh. (For TeX and ε-TeX,
install the babel@tex.sh and the
some_language@babel@tex.sh.)
If a CTAN LaTeX contrib macros package has no recipe provided (see below), an utility is provided to sketch one:
. which_kertex $KERTEX_BINDIR/pkg_rcp_sketch contrib_name
The name must be the name of a package present under macros/latex/contrib/ in CTAN. The recipe, for a fair amount of packages, will probable work as is. If not, you will have to adapt it starting from this base. The documentation, for now, is the recipes existing, that can be an inspiration, and the extensive comments present in $KERTEX_BINDIR/lib/pkglib.sh.
The recipes allowing to generate the data to be added to the kerTeX kernel are signed, thus allowing, supplementary to the given information about the size of the files, to check that the downloaded files are indeed the ones the release manager has put online.
At the present, the release manager is Thierry Laronde, whose public key is available on the pgp.mit.edu server.
Available packages (recipes) for MetaPost
File | Date of publication | Size (in bytes) | Description | Signature |
---|---|---|---|---|
m3D@mp.sh | 2024-02-01 | 2707 | Installation of Anthony Phan's m3D package for the plain MetaPost. | m3D@mp.sh.sig |
Available packages (recipes) for fonts
Please note that D. E. Knuth's Computer Modern fonts are included in the core system, both in rasterized (pk) and PostScript T1 formats.
The AMS provided fonts are included also, by default, in the base system.
File | Date of publication | Size (in bytes) | Description | Signature |
---|---|---|---|---|
bbm@fonts.sh | 2024-02-01 | 3357 | Gilles F. Robert's cm "blackboard" cm fonts | bbm@fonts.sh.sig |
bbold@fonts.sh | 2024-02-01 | 3395 | Alan Jeffrey "blackboard" fonts | bbold@fonts.sh.sig |
cmfrak@fonts.sh | 2024-02-01 | 3001 | Daniel Taupin's reencoded version of Yannis Haralambous' YFRAK fonts | cmfrak@fonts.sh.sig |
frcursive@fonts.sh | 2024-02-01 | 3730 | Emmanuel Beffara's cursive fonts. | frcursive@fonts.sh.sig |
lh@fonts.sh | 2024-02-01 | 2962 | The LH fonts address the problem of the wide variety of alphabets that are written with Cyrillic-style characters. The fonts are the original basis of the set of T2* and X2 encodings that are now used when LaTeX users need to write in Cyrillic languages. Warning: only T2A encoding for now. (Romick "yellow rabbit") | lh@fonts.sh.sig |
lm@fonts.sh | 2024-02-01 | 19241 | Latin Modern fonts for LaTeX. (Mark van Atten) | lm@fonts.sh.sig |
ly1@fonts.sh | 2024-02-01 | 3433 | LY1 encoded PostScript standard fonts (p*8y.tfm). | ly1@fonts.sh.sig |
pl@fonts.sh | 2024-02-14 | 4744 | Polish extensions to CM fonts | pl@fonts.sh.sig |
rsfs@fonts.sh | 2024-02-01 | 2759 | Ralph Smith's cm "Formal Script Symbol" fonts | rsfs@fonts.sh.sig |
sansmathaccent@fonts.sh | 2024-12-12 | 2078 | Ariel Barton's correction of accents positioning when using cmssi (with beamer or sfmath). | sansmathaccent@fonts.sh.sig |
urw@fonts.sh | 2024-02-01 | 10749 | URW PostScript Type-1 fonts with tfm and vf | urw@fonts.sh.sig |
yfonts-t1@fonts.sh | 2024-12-13 | 2399 | PostScript T1 implementation of Yannis Haralambous' yfrak, ygoth and yswab. This PostScript Type 1 implementation of the fonts yfrak, ygoth and yswab, originally created by Yannis Haralambous using METAFONT, is freely available for general use. | yfonts-t1@fonts.sh.sig |
yfrak@fonts.sh | 2024-12-13 | 2269 | Yannis Haralambous' Old German Fraktur font. This original is provided as METAFONT source; an Adobe Type 1 version is available as part of yfonts-t1. The fonts are encoded somewhat like OT1, but a virtual font, that presents the font as if T1-encoded, is available. | yfrak@fonts.sh.sig |
ygoth@fonts.sh | 2024-12-13 | 2316 | Yannis Haralambous' Old German Gothic font. This original is provided as METAFONT source; an Adobe Type 1 version is available as part of yfonts-t1. The fonts are encoded somewhat like OT1, but a virtual font, that presents the font as if T1-encoded, is available. | ygoth@fonts.sh.sig |
yinit@fonts.sh | 2024-12-13 | 2124 | Yannis Haralambous' Old German decorative initials. A font of initial letters, supplied as METAFONT source in OT1 encoding only. | yinit@fonts.sh.sig |
yswab@fonts.sh | 2024-12-13 | 2300 | Yannis Haralambous' Old German Schwabacher font. This font is offer as METAFONT source; an Adobe Type 1 version is available as part of yfonts-t1. The fonts are encoded somewhat like OT1, but a virtual font, that presents the font as if T1-encoded, is available. | yswab@fonts.sh.sig |
Available packages (recipes) for TeX (work generally with LaTeX or e-TeX too)
File | Date of publication | Size (in bytes) | Description | Signature |
---|---|---|---|---|
atbegshi@tex.sh | 2024-12-12 | 2340 | Execute stuff at \shipout time. This package is a modern reimplementation of package everyshi, providing various commands to be executed before a \shipout command. It makes use of e-TeX's facilities if they are available. The package may be used either with LaTeX or with plain TeX. | atbegshi@tex.sh.sig |
babel@tex.sh | 2024-02-01 | 2182 | Babel base for the tex and etex engines. | babel@tex.sh.sig |
azerbaijani@babel@tex.sh | 2024-11-26 | 2172 | Installation of azerbaijani particularizations for Babel on the tex and etex engines. | azerbaijani@babel@tex.sh.sig |
basque@babel@tex.sh | 2024-11-26 | 2107 | Installation of basque particularizations for Babel on the tex and etex engines. | basque@babel@tex.sh.sig |
belarusian@babel@tex.sh | 2024-02-01 | 2145 | Installation of belarusian particularizations for Babel on the tex and etex engines. | belarusian@babel@tex.sh.sig |
bosnian@babel@tex.sh | 2024-11-26 | 2121 | Installation of bosnian particularizations for Babel on the tex and etex engines. | bosnian@babel@tex.sh.sig |
breton@babel@tex.sh | 2024-11-26 | 2111 | Installation of breton particularizations for Babel on the tex and etex engines. | breton@babel@tex.sh.sig |
bulgarian@babel@tex.sh | 2024-11-26 | 2155 | Installation of bulgarian particularizations for Babel on the tex and etex engines. | bulgarian@babel@tex.sh.sig |
catalan@babel@tex.sh | 2024-11-26 | 2122 | Installation of catalan particularizations for Babel on the tex and etex engines. | catalan@babel@tex.sh.sig |
croatian@babel@tex.sh | 2024-11-26 | 2133 | Installation of croatian particularizations for Babel on the tex and etex engines. | croatian@babel@tex.sh.sig |
czech@babel@tex.sh | 2024-11-26 | 2100 | Installation of czech particularizations for Babel on the tex and etex engines. | czech@babel@tex.sh.sig |
danish@babel@tex.sh | 2024-11-26 | 2122 | Installation of danish particularizations for Babel on the tex and etex engines. | danish@babel@tex.sh.sig |
dutch@babel@tex.sh | 2024-11-26 | 2111 | Installation of dutch particularizations for Babel on the tex and etex engines. | dutch@babel@tex.sh.sig |
english@babel@tex.sh | 2024-11-26 | 2133 | Installation of english particularizations for Babel on the tex and etex engines. | english@babel@tex.sh.sig |
esperanto@babel@tex.sh | 2024-11-26 | 2144 | Installation of esperanto particularizations for Babel on the tex and etex engines. | esperanto@babel@tex.sh.sig |
estonian@babel@tex.sh | 2024-11-26 | 2144 | Installation of estonian particularizations for Babel on the tex and etex engines. | estonian@babel@tex.sh.sig |
french@babel@tex.sh | 2024-11-26 | 2231 | Installation of french particularizations for Babel on the tex and etex engines. | french@babel@tex.sh.sig |
friulan@babel@tex.sh | 2024-02-01 | 2096 | Installation of friulan particularizations for Babel on the tex and etex engines. | friulan@babel@tex.sh.sig |
georgian@babel@tex.sh | 2024-02-01 | 2107 | Installation of georgian particularizations for Babel on the tex and etex engines. | georgian@babel@tex.sh.sig |
german@babel@tex.sh | 2024-11-26 | 2158 | Installation of german particularizations for Babel on the tex and etex engines. | german@babel@tex.sh.sig |
greek@babel@tex.sh | 2024-11-26 | 2107 | Installation of greek particularizations for Babel on the tex and etex engines. | greek@babel@tex.sh.sig |
hebrew@babel@tex.sh | 2024-11-26 | 2118 | Installation of hebrew particularizations for Babel on the tex and etex engines. | hebrew@babel@tex.sh.sig |
hungarian@babel@tex.sh | 2024-02-01 | 2134 | Installation of hungarian particularizations for Babel on the tex and etex engines. | hungarian@babel@tex.sh.sig |
icelandic@babel@tex.sh | 2024-11-26 | 2150 | Installation of icelandic particularizations for Babel on the tex and etex engines. | icelandic@babel@tex.sh.sig |
indonesian@babel@tex.sh | 2024-11-26 | 2155 | Installation of indonesian particularizations for Babel on the tex and etex engines. | indonesian@babel@tex.sh.sig |
interlingua@babel@tex.sh | 2024-11-26 | 2165 | Installation of interlingua particularizations for Babel on the tex and etex engines. | interlingua@babel@tex.sh.sig |
irish@babel@tex.sh | 2024-11-26 | 2100 | Installation of irish particularizations for Babel on the tex and etex engines. | irish@babel@tex.sh.sig |
italian@babel@tex.sh | 2024-02-01 | 2136 | Installation of italian particularizations for Babel on the tex and etex engines. | italian@babel@tex.sh.sig |
japanese@babel@tex.sh | 2024-11-26 | 2139 | Installation of japanese particularizations for Babel on the tex and etex engines. | japanese@babel@tex.sh.sig |
kurmanji@babel@tex.sh | 2024-11-26 | 2132 | Installation of kurmanji particularizations for Babel on the tex and etex engines. | kurmanji@babel@tex.sh.sig |
latin@babel@tex.sh | 2024-11-26 | 2110 | Installation of latin particularizations for Babel on the tex and etex engines. | latin@babel@tex.sh.sig |
latvian@babel@tex.sh | 2024-11-26 | 2133 | Installation of latvian particularizations for Babel on the tex and etex engines. | latvian@babel@tex.sh.sig |
macedonian@babel@tex.sh | 2024-11-26 | 2161 | Installation of macedonian particularizations for Babel on the tex and etex engines. | macedonian@babel@tex.sh.sig |
malay@babel@tex.sh | 2024-11-26 | 2100 | Installation of malay particularizations for Babel on the tex and etex engines. | malay@babel@tex.sh.sig |
norsk@babel@tex.sh | 2024-11-26 | 2100 | Installation of norsk particularizations for Babel on the tex and etex engines. | norsk@babel@tex.sh.sig |
occitan@babel@tex.sh | 2024-02-01 | 2100 | Installation of occitan particularizations for Babel on the tex and etex engines. | occitan@babel@tex.sh.sig |
piedmontese@babel@tex.sh | 2024-02-01 | 2144 | Installation of piedmontese particularizations for Babel on the tex and etex engines. | piedmontese@babel@tex.sh.sig |
polish@babel@tex.sh | 2024-11-26 | 2110 | Installation of polish particularizations for Babel on the tex and etex engines. | polish@babel@tex.sh.sig |
portuges@babel@tex.sh | 2024-11-26 | 2144 | Installation of portuges particularizations for Babel on the tex and etex engines. | portuges@babel@tex.sh.sig |
romanian@babel@tex.sh | 2024-11-26 | 2133 | Installation of romanian particularizations for Babel on the tex and etex engines. | romanian@babel@tex.sh.sig |
romansh@babel@tex.sh | 2024-02-01 | 2107 | Installation of romansh particularizations for Babel on the tex and etex engines. | romansh@babel@tex.sh.sig |
russian@babel@tex.sh | 2024-11-26 | 2070 | Installation of russian particularizations for Babel on the tex and etex engines. | russian@babel@tex.sh.sig |
samin@babel@tex.sh | 2024-11-26 | 2100 | Installation of samin particularizations for Babel on the tex and etex engines. | samin@babel@tex.sh.sig |
scottish@babel@tex.sh | 2024-11-26 | 2133 | Installation of scottish particularizations for Babel on the tex and etex engines. | scottish@babel@tex.sh.sig |
serbianc@babel@tex.sh | 2024-11-26 | 2144 | Installation of serbianc particularizations for Babel on the tex and etex engines. | serbianc@babel@tex.sh.sig |
slovak@babel@tex.sh | 2024-11-26 | 2111 | Installation of slovak particularizations for Babel on the tex and etex engines. | slovak@babel@tex.sh.sig |
slovenian@babel@tex.sh | 2024-02-01 | 2134 | Installation of slovenian particularizations for Babel on the tex and etex engines. | slovenian@babel@tex.sh.sig |
sorbian@babel@tex.sh | 2024-11-26 | 2133 | Installation of sorbian particularizations for Babel on the tex and etex engines. | sorbian@babel@tex.sh.sig |
spanish@babel@tex.sh | 2024-11-26 | 2133 | Installation of spanish particularizations for Babel on the tex and etex engines. | spanish@babel@tex.sh.sig |
swedish@babel@tex.sh | 2024-11-26 | 2133 | Installation of swedish particularizations for Babel on the tex and etex engines. | swedish@babel@tex.sh.sig |
thai@babel@tex.sh | 2024-11-26 | 2090 | Installation of thai particularizations for Babel on the tex and etex engines. | thai@babel@tex.sh.sig |
turkish@babel@tex.sh | 2024-11-26 | 2132 | Installation of turkish particularizations for Babel on the tex and etex engines. | turkish@babel@tex.sh.sig |
ukrainian@babel@tex.sh | 2024-11-26 | 2092 | Installation of ukrainian particularizations for Babel on the tex and etex engines. | ukrainian@babel@tex.sh.sig |
vietnamese@babel@tex.sh | 2024-11-26 | 2209 | Installation of vietnamese particularizations for Babel on the tex and etex engines. | vietnamese@babel@tex.sh.sig |
welsh@babel@tex.sh | 2024-11-26 | 2111 | Installation of welsh particularizations for Babel on the tex and etex engines. | welsh@babel@tex.sh.sig |
amstex.sh | 2024-11-26 | 3526 | Installation of the e-TeX version of AMS-TeX. | amstex.sh.sig |
docstrip@tex.sh | 2024-12-14 | 1842 | Docstrip utility for all engines. | docstrip@tex.sh.sig |
multido@tex.sh | 2024-12-12 | 1979 | A loop facility for generic TeX. Fixed-point arithmetic is used when working on the loop variable, so that the package is equally applicable in graphics applications like PSTricks as it is with the more common integer loops. | multido@tex.sh.sig |
pgf@tex.sh | 2024-12-19 | 3710 | Pgf is a macro package for creating graphics. It is platform- and format-independent and works together with the most important TeX backend drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer called TikZ. | pgf@tex.sh.sig |
polexpr@tex.sh | 2024-12-12 | 1582 | A parser for polynomial expressions | polexpr@tex.sh.sig |
poormanlog@tex.sh | 2024-12-12 | 1772 | This small package (usable with Plain e-TeX, LaTeX, or others) with no dependencies provides two fast expandable macros computing logarithms in base 10 and fractional powers of 10 with (almost) 9 digits. | poormanlog@tex.sh.sig |
stringenc@tex.sh | 2024-12-07 | 1981 | This package provides StringEncodingConvert for converting a string between different encodings. Both LaTeX and plain TeX are supported. | stringenc@tex.sh.sig |
xint@tex.sh | 2024-12-12 | 1685 | Expandable arbitrary precision floating point and integer operations. Bundle of xinttools, xintcore, xint, xintfrac and xintexpr. | xint@tex.sh.sig |
xintsession@tex.sh | 2024-12-12 | 1800 | Interactive computing sessions (fractions, floating points, polynomials) with etex, executed on the command line, on the basis of the xintexpr and polexpr packages. | xintsession@tex.sh.sig |
Available packages (recipes) for LaTeX
File | Date of publication | Size (in bytes) | Description | Signature |
---|---|---|---|---|
latex.sh | 2024-12-19 | 16493 | Installation of LaTeX on kerTeX (including documentation). Generates latex(1) (Prote engine). | latex.sh.sig |
beamer@latex.sh | 2024-12-19 | 2874 | This LaTeX package can be used for producing slides. The class works in both PostScript and direct PDF output modes, using the pgf package (pgf@tex.sh). | beamer@latex.sh.sig |
bigfoot@latex.sh | 2024-12-13 | 2517 | Footnotes for critical editions. The package aims to provide a `one-stop' solution to requirements for footnotes. It offers: - Multiple footnote apparatus superior to that of manyfoot - Footnotes can be formatted in separate paragraphs, or be run into a single paragraph (this choice may be selected per footnote series); - Things you might have expected (such as \verb-like material in footnotes, and colour selections over page breaks) now work. Note that the majority of the bigfoot package's interface is identical to that of manyfoot; users should seek information from that package's documentation. The bigfoot bundle also provides the perpage and suffix packages. | bigfoot@latex.sh.sig |
exam@latex.sh | 2024-02-01 | 1776 | Eases production of exams. (Philip S. Hirschhorn) | exam@latex.sh.sig |
extsizes@latex.sh | 2024-12-12 | 2106 | Extend the standard classes' size options. Provides classes extarticle, extreport, extletter, extbook and extproc which provide for documents with a base font size from 8-20pt. There is also a LaTeX package, extsizes.sty, which can be used with nonstandard document classes. But it cannot be guaranteed to work with any given class. | extsizes@latex.sh.sig |
hyperref@latex.sh | 2024-12-12 | 2213 | This package is used to emend cross-referencing commands in LaTeX to produce some sort of `\special` commands; there are backends for the `\special` set defined for HyperTeX dvi processors, for embedded pdfmark commands for processing by Acrobat Distiller (dvips). | hyperref@latex.sh.sig |
lcg@latex.sh | 2024-02-01 | 1837 | Generates pseudo-random integers. (Erich Janka) | lcg@latex.sh.sig |
biblatex@latex.sh | 2024-02-01 | 3008 | Bibliography with LaTeX, Bibtex being used only for sorting. (Mark van Atten) | biblatex@latex.sh.sig |
carlisle@latex.sh | 2024-02-01 | 1515 | Various styles and macros provided by David Carlisle : dotlessj, plain, remreset, scalefnt, slashed ; macros ltxtable.tex. | carlisle@latex.sh.sig |
cite@latex.sh | 2024-02-01 | 1820 | The package supports compressed, sorted lists of numerical citations, and also deals with various punctuation and other issues of representation, including comprehensive management of break points. (Romick "yellow rabbit") | cite@latex.sh.sig |
comment@latex.sh | 2024-02-01 | 2014 | Comment contributed LaTeX package. (Mark van Atten) | comment@latex.sh.sig |
csquotes@latex.sh | 2024-02-01 | 2005 | Context sensitive quotations facilities. (Mark van Atten) | csquotes@latex.sh.sig |
ellipsis@latex.sh | 2024-02-01 | 2053 | Fix uneven spacing around ellipses in LaTeX text mode. (Mark van Atten) | ellipsis@latex.sh.sig |
elpres@latex.sh | 2024-02-01 | 2064 | Elpres is a simple class for electronic presentations to be shown on screen or a beamer. Elpres is derived from article.cls and may be used with LaTeX or pdfLaTeX. (blstuart) | elpres@latex.sh.sig |
etoolbox@latex.sh | 2024-02-01 | 1968 | LaTeX programmers e-TeX toolbox. (Mark van Atten) | etoolbox@latex.sh.sig |
fancybox@latex.sh | 2024-02-01 | 2131 | The package provides variants for boxing. | fancybox@latex.sh.sig |
fancyhdr@latex.sh | 2024-02-01 | 2100 | The package provides extensive facilities, both for constructing headers and footers, and for controlling their use (for example, at times when LaTeX would automatically change the heading style in use). (blstuart) | fancyhdr@latex.sh.sig |
filecontents@latex.sh | 2024-02-01 | 1995 | Extended filecontents and filecontents* environments. (Mark van Atten) | filecontents@latex.sh.sig |
float@latex.sh | 2024-02-01 | 1678 | Improves the interface for defining floating objects such as figures and tables. Introduces the boxed float, the ruled float and the plaintop float. You can define your own floats and improve the behaviour of the old ones. (Romick "yellow rabbit") | float@latex.sh.sig |
footmisc@latex.sh | 2024-02-01 | 1947 | A range of footnote options. (Mark van Atten) | footmisc@latex.sh.sig |
geometry@latex.sh | 2024-02-01 | 2397 | The package provides an easy and flexible user interface to customize page layout, implementing auto-centering and auto-balancing mechanisms so that the users have only to give the least description for the page layout. For example, if you want to set each margin 2cm without header space, what you need is just \usepackage[margin=2cm,nohead]{geometry}. | geometry@latex.sh.sig |
harvard@latex.sh | 2024-02-01 | 1819 | Harvard citation package. (Mark van Atten) | harvard@latex.sh.sig |
logreq@latex.sh | 2024-02-01 | 2215 | Automatization of LaTeX workflow. (Mark van Atten) | logreq@latex.sh.sig |
memoir@latex.sh | 2024-02-01 | 2020 | Support for fictions, not fictions and mathematical books. (Mark van Atten) | memoir@latex.sh.sig |
natbib@latex.sh | 2024-02-01 | 1929 | Flexible bibliography support. (Mark van Atten) | natbib@latex.sh.sig |
ncctools@latex.sh | 2024-02-01 | 1948 | A collection of general packages. (Mark van Atten) | ncctools@latex.sh.sig |
oberdiek@latex.sh | 2024-02-01 | 1933 | Heiko Oberdiek contributed LaTeX packages. (Mark van Atten) | oberdiek@latex.sh.sig |
psnfss@latex.sh | 2024-02-01 | 4471 | Obsolete: These fonts are now directly installed with the latex.sh recipe. The recipe exists only to allow removable of a separately installed package. Support for various PostScript fonts. | psnfss@latex.sh.sig |
ruhyphen@latex.sh | 2024-02-01 | 2546 | A collection of Russian hyphenation patterns supporting a number of Cyrillic font encodings, including T2, UCY (Omega Unicode Cyrillic), LCY, LWN (OT2), and koi8-r.(Romick "yellow rabbit") | ruhyphen@latex.sh.sig |
todo@latex.sh | 2024-02-01 | 1903 | Make a to-do list for a document. (Mark van Atten) | todo@latex.sh.sig |
translator@latex.sh | 2024-12-12 | 2487 | Easy translation of strings in LaTeX | translator@latex.sh.sig |
url@latex.sh | 2024-02-01 | 1812 | URL sensitive line breaks. (Mark van Atten) | url@latex.sh.sig |
xcolor@latex.sh | 2024-12-12 | 2927 | `xcolor` provides easy driver-independent access to several kinds of colors, tints, shades, tones, and mixes of arbitrary colors by means of color expressions like \color{red!50!green!20!blue}. It allows to select a document-wide target color model and offers tools for automatic color schemes, conversion between nine color models, alternating table row colors, color blending and masking, color separation, and color wheel calculations. | xcolor@latex.sh.sig |
yfonts@latex.sh | 2024-12-13 | 2061 | Support for Yannis Haralambous' old German fonts. A LaTeX interface to the old-german fonts designed by Yannis Haralambous: Gothic, Schwabacher, Fraktur and the baroque initials. | yfonts@latex.sh.sig |