Czech and Slovak TeX support

Petr Olsak, November 2012

cz Cesky

The CSTeX originated in the early 90 years of the last century and it has undergone many forms. First, it was a set of floppy disks that had to be inserted gradually into a computer with DOS in order to install emTeX with the Czech and Slovak support of hyphenation patterns and macros. Currently, CSTeX consists of the following packages. Many volunteers worked on the CSTeX more or less coordinated by CSTUG (Czech and Slovak TeX users group).


The main documentation for CSTeX is, ``Manual on CSTeX'' (in Czech only) in the cstexman.pdf file. It's a technical documentation which probably is not very recommended to the beginner. He or she can turn attention first to the list of references at the end of this web page.

The term CSTeX can also be interpreted broadly as a support in the form of not only software, but also guides and texts about Czech and Slovak TeX and also we can not omit the discussion group cstex.


  1. The CSTeX packages
  2. Recent changes in CSTeX
  3. Notes on installing individual packages
  4. Recommended reading

1. The CSTeX packages

csfonts.tar.gz (Jul.1997)
csfonts-t1.tar.gz (Feb.1999)
csplain.tar.gz (Nov.2012)
cslatex.tar.gz (Oct.2012 obsolete)
cspsfonts.tar.gz (Oct.2012)
cstrip.tar.gz (May.1999)
enctex.tar.gz (Jan.2010)
vlna.tar.gz (Sep.2002)
csindex.tar.gz (Dec.1998)

The CSTeX packages are usually a part of the TeX distributions (TeXLive, MikTeX) and the user does not have to download them from this website and install them. This page, however, contains links to the latest versions of these packages. If you feel that your distribution does not include the latest version of your desired package, you can of course download the tar.gz referenced here and follow the instructions for manual installation.

Not all packages are required for normal operation. The base is the packages csfonts and csplain. Cslatex package is considered obsolete. Users should use instead it the ``normal'' LaTeX with a package which provides a multilingual support.

  • Csfonts ... Metafont files and font metrics that extend the original Knuth's CM fonts. The letters from Czech and Slovak alphabet is included here.
  • Csfonts-t1 ... CSfonts in PostScript Type1 format.
  • CSpsfonts ... the metrics and map files of 35 basic PostScript fonts encoded by IL2. This encoding extends slightly CSfont encoding.
  • Csplain ... macros for format generation, hyphenation patterns, further additional macros.
  • Cstrip ... test of functionality of csplain format.
  • EncTeX ... a patch modifying TeX in order to input processor could transcode multibyte encoding.
  • Cslatex ... obsolete and unused part CSTeX.
  • Vlna ... a simple program for adding ties after nonsyllabus prepositions.
  • CSindex ... An alternative of Makeindex, program for creating indexes.

2. Recent changes in CSTeX


Corrections of CSplain and OPmac by reports written by users.

Dec. 2012

CSLaTeX macro files were moved from cspsfonts.tar.gz to cslatex.tar.gz (to the ``obsolete place'').

Nov. 2012

The file ucode.tex added. It initializes the Unicode internal encoding in the same way as t1code.tex initializes the T1 encoding.

The hyphen.lan file is re-written, the CSplain is ready to read patterns for 54 languages released on TeX hyphenation patterns. Some patterns are ready in (at most) three encodings: ISO-8859-2, T1 (Cork), Unicode. CSplain recognizes the TeX engine during format generation: if TeX engine is able to work in Unicode internal encoding then the hyphenation patterns for Czech and Slovak are loaded in this encoding too.

Oct. 2012

Significantly rewritten CSTeX documentation. Mainly ``Manual on CSTeX'' and websites.

Oct. 2012

All metrics 8z and 8u are newly re-generated so they do not use virtual fonts with composite characters, as they have done before. Characters are referenced rawly by /Encoding vector. So Czech words searching in PDF documents and carrying text in clipboard for another application will work now without problems. Also the characters \trademark, \registered and \euro are added in the 8z and 8u encoding. This implies the changes of the files xl2.enc and xt2.enc. The files cs-a35-nodownload.map and cs-a35-urwdownload.map are added. Properties are described in the Manual on CSTeX in the third chapter.

The metrics of Charter font in 8z encoding are added. These metrics depend on *vf because there is no raw Czech and Slovak characters in this font. (generated in 2002 by a2ac program).

Oct. 2012

This package is marked as obsolete. The following message is added to \everyjob:

WARNING ***** ***** cslatex is obsolete, do not use it please. *****
***** You can use normal LaTeX + Babel or xelatex + polyglossia. *****

czech.sty, slovak.sty

These files are moved to the place where for about twenty years have to be included: from csplain package to cslatex package. Given that the package cslatex is considered obsolete, these files are outdated too.

Oct. 2012

An extensive documentation added.

It is recommended to generate csplain format with UTF-8 encoding using encTeX. This feature would be implemented (for formats autogenerating) as default.

The \resizefont and \resizeall commands to change the font size added to the format. The font selector \tenbi and the macro \bi are added too. The properties are described in the Manual on CSTeX in paragraph 4.8.

The t1enc.tex file defining the Cork encoding is corrected and substantially enlarged.

The UTF-8 encoded csplain by default implements the warning of unfamiliar UTF-8 code entries. It also treates with a bad UTF-8 input as \errmessage. The properties are described in the Manual on CSTeX in paragraph 6.4.

The files utf8off.tex and mixcodes.tex added.

The files utf8lat1.tex and utf8lata.tex added.

All features are documented in the Manual on CSTeX in the fourth chapter.

Oct. 2012
ctimes.tex, ...

The font-loading files ctimes.tex, cavantga.tex, cbookman.tex, chelvet.tex, cncent.tex and cpalatino.tex files are completely overwritten: they can load T1 encoded fonts too, and they call the macro tx-math.tex, so the usage of the command \setsimplemath is considered as outdated.

These files are moved from the package cspsfonts to the package csplain.

Oct. 2012
cs-antt.tex, ...

The font-loading files en-bera.tex (Bera), cs-antt.tex (Antykwa Torunska), cs-charter.tex (Charter), cs-arev.tex (ArevSans), cs-polta.tex (Antykwa Poltawskiego) are introduced. They work in the similar manner as ctimes.tex etc. files. The cs-all.tex file is a ``message-only'' file: TeX prints the list of all accessible font-loading files.

Oct. 2012
tx-math.tex, ams-math.tex

These files are new plain macros that load math fonts (TX fonts: visually compatible with the Times or AMS fonts: visually compatible with Computer Modern). The macros allow easy switching to arbitrary font sizes. The properties are described in the Manual on CSTeX in paragraph 5.4. These macros offer to user to work with hundreds of characters and eight math alphabets in the plainTeX. The files are included in csplain package.

Oct. 2012

The macro utf8unkn.tex adapted: added \errmessage UTF-8 INPUT IS CORRUPTED. The files mixcodes.tex, utf8off.tex, utf8lat1.tex and utf8lata.tex added. All five of these files is duplicated and stored in csplain package, so when you install a new version of the csplain package you cannot install the new version of enctex.tar.gz.

3. Notes on installing individual packages

A prerequisite for CSTeX packages is a TeX distribution containing at least TeX format plain.tex and Computer Modern fonts.

Here are just general information about installing packages. More detailed information can be found usually in the README or INSTALL in the package.


Packages csfonts, csfonts-t1, CSpsfonts and csplain. contain only the files of TeX macros, metrics or configuration files for programs working with TeX. Just put them where the programs from your TeX distribution can find them. After unpacking the package in our workoing directory the texmf/ tree is created. This provides you a guidance on where to put the files in the usual TDS structure in your TeX distribution. Typically, it is necessary to restore the database lookup LS-R for these programs after instalation ot he files. How to do this, depends on the used TeX distribution.


This package abolishes most of the files *.vf (virtual font). It is not enough to include the package files into a directory somewhere, which takes precedence over the directory in the distribution (eg, texmf-local/ takes precedence over texmf-dist/), because some programs will notice the old *.vf files and will not work correctly. It is therefore absolutelly necessary to remove all the old *vf files in your TeX distribution before installing the cspsfonts package.

There is another problem with installing this package: the mapping files cs-a35-urwdownload.map and cs-a35-nodownload.map. The first one should be loaded by pdfTeX while the second one should be used by the dvips program. There is an utility updmap and updmap-sys in the TeXlive distribution. This routine reads mapping files from the source directory somewhere (I don't know where), cats them and puts them somewhere in the target directories for usage by individual programs. I am not able to find out, how to use this routine to force a different mapping file for pdfTeX and dvips. I would welcome when someone teaches me. Halfway solution is to offer both programs (pdfTeX and dvips) the same file cs-a35-urwdownload.map. It works for both programs, but the output of dvips will have the substitute URW fonts downloaded, instead of using fonts from Adobe in PostScript RIP.


This package includes the mapping file csfonts.map. There are no complications with this. Only to do is to force that all programs can read this mapping file. There is a routine updmap or updmap-sys in TeXlive for this reason.

format generation

After the csplain package files are installed, it is necessary to generate formats csplain.fmt and pdfcsplain.fmt. This activity is dependent on the used TeX distribution, which uses for this purpose the configuration files and their tools. These tools read their configuration files and call the appropriate program to generate the TeX format *.fmt and save this format to the directory tree according to the logic of the distribution. For example, it is common that the format is saved somewhere, if system administrator generates the format (for all users), and elsewhere, when the user generates for its private use without authorization to modify the system. Below are the commands (for manual level) that generate formats csplain.fmt and pdfcsplain.fmt system derived from web2c. A prerequisite is a TeX program with the encTeX extension (that can be identified by the fact that the -enc option operates). This program is typically called tex, etex, pdftex or pdfetex. No matter which of these programs is used, but the same program must then be used to read the generated format, or we see the message ``I am stymied''.

   pdfetex -ini -enc "\let\enc=u \input csplain.ini"
   pdfetex -jobname=pdfcsplain -ini -enc "\let\enc=u \input csplain.ini"

It is possible that, in DOS-like command interpreter, the above quotes are not used. They are, however, necessary for the current Unix shell to deactivate the backslash characters used here. To eliminate these complication the wrapper file csplain-utf8.ini can be used:

   pdfetex -jobname=csplain -ini -enc csplain-utf8.ini
   pdfetex -jobname=pdfcsplain -ini -enc csplain-utf8.ini

The format is generated ready to use the UTF-8 encoded input, which is the recommended choice of input encoding. You can change to other coding by commands in the document without having to regenerate the format. See the documentation for csplain.

Finally, it is necessary to arrange the command csplain, which runs the selected TeX-program with the format csplain.fmt. Analogously for pdfcsplain. It is therefore necessary to move the generated formats csplain.fmt and pdfcsplain.fmt somewhere where the TeX-program is able to find it. Then prepare the command csplain as an alias to pdfetex -fmt=csplain.fmt $@ or something similar. What exactly to do depends on your operating system and on your TeX distribution. On Unix, it is usually sufficient to create the links csplain pdfcsplain:

   ln -s pdfetex csplain
   ln -s pdfetex pdfcsplain

and these links are included, of course, to the place, where the command interpreter can find them as an executable (see the PATH environment variable, for example).



If your TeX distribution includes only TeX program that does not understand the -enc option, it means that it is not patched by encTeX. In this case, you can not generate csplain format supporting UTF-8 encoded input. If you need to use such input by csplain and the encTeX is not really a part of your TeX/program, prepare for manual patching and compiling the TeX-program from source code. The package offers patch, which changes the tex.ch changefile. If this patch does not fit, you can use the change file enctex.ch and manulally include the changes mentioned here to tex.ch file. Have fun. Finally, of course, you need to recompile the TeX from tex.web using tex.ch.


These programs are compiled by C compiler from source files. You have to have a compiler (which is a natural part of any *normal* operating system) and follow the instructions in the README. The vlna program is also distributed in the source language text in cweb, but the interpreter of this language may not have installed. Just have C compiler.

4. Recommended reading

  1. Petr Olsak: First familiarise with TeX. (In Czech only)
  2. Petr Olsak: TeX for Pragmatists. (In Czech only)
  3. Pavel Satrapa: LaTeX for Pragmatists. (In Czech only)
  4. Jiri Rybicka: LaTeX for beginners. (In Czech only)
  5. Petr Olsak: TeXbook naruby. (In Czech only)
  6. Petr Olsak: TeX typesetting system. (In Czech only)
  7. Donald Knuth: The TeXbook.