% csplain.ini -- see the text after \dump command for more information
\input csfonts  % re-defines primitive \font
\input plain    % format Plain
\restorefont    % original meaning of primitive \font
\input csfontsm % macros: \sizespec, \resizefont, \resizeall, \tenbi, \bi

\ifx\directlua\undefined \else\input luatexiniconfig.tex \fi
\ifx\pdfextension\undefined \else\input luatex85.sty \fi % LuaTeX specific
\ifx\eTeXversion\undefined \else\input etex-mac.tex \fi  % eTeX specific

\input hyphen.lan  % czech / slovak hyphenation pattern (may be others too)
\input plaina4  % \hsize and \vsize for A4

\everyjob=\expandafter{\the\everyjob
   \message{The format: csplain <Mar. 2022>.}
   \message{The cs-fonts are preloaded and A4 size implicitly defined.}}
\ifx\xprncode\undefined \else %% The encTeX is detected
   \count255=128               % All codes > 128 are printable: 
   \loop \xprncode\count255=1 \advance\count255 by 1
   \ifnum \count255<256 \repeat
\fi
\ifx\enc\undefined \else \input csenc-\enc.tex \fi % re-encoding using encTeX

\ifx\XeTeXuseglyphmetrics\undefined \else % XeTeX specific:
   \csname newcount\endcsname \XeTeXallocatorG \XeTeXallocatorG=3
   \def\newXeTeXintercharclass#1{% \newXeTeXintercharclas is documented
      \global\advance\XeTeXallocatorG by1 % in xetex-reference.pdf
      \ifnum\XeTeXallocatorG<255
        \global\chardef#1=\XeTeXallocatorG
        \wlog{\string#1=\string\XeTeXintercharclass\the\XeTeXallocatorG}%
      \else \errmessage{No room for a new \XeTeXintercharclass}\fi}
   \XeTeXuseglyphmetrics=1
   \input ucode
\fi
\ifx\directlua\undefined \else \input ucode \fi  % LuaTeX specific

\ifx\pdfoutput\undefined \else % added in Feb. 2005
   \def\tmpa#1#2#3#4\relax{\def\tmpa{#1#2#3}}\expandafter\tmpa\jobname\relax
   \ifx\directlua\undefined \else \def\tmpa{pdf}\fi
   \def\tmpb{pdf} \edef\tmpa{\meaning\tmpa} \edef\tmpb{\meaning\tmpb}
   \ifx\tmpa\tmpb %% PDFTeX with PDF output, \jobname starts by "pdf":
      \message {jobname=pdf*, PDF output initialised.}
      \openin0=pdftexconfig.tex
      \ifeof0 \message{WARNING: pdftexconfig.tex does not exist. 
                       I set \string\pdfoutput=1 only.}%
      \else \closein0 \input pdftexconfig.tex
      \fi
      \pdfoutput=1
   \else
      \message {jobname=non-pdf, DVI output initialised.}
      \pdfoutput=0
      \let\oripdfoutput=\pdfoutput \let\pdfoutput=\undefined
   \fi
   \let\tmpa=\undefined \let\tmpb=\undefined
\fi

\dump

csplain.ini -- the basic file for CSplain format generation
===========================================================

The default behavior after  texengine -ini csplain.ini:

   - csplain.fmt with DVI output is created
   - plain.tex is loaded but cs fonts are preloaded instead of cm fonts
   - \hsize, \vsize are set basely on A4 paper format (no letter)
   - internal encoding is assumed like csfonts encoding
   - no input--internal re-encoding is activated
   - language patterns for English, Czech, Slovak are preloaded
     (see the hyphen.lan file for info how to add more languages)
   - if encTeX is detected then characters 128--255 are printable
   - if luaTeX is used then \input luatexiniconfig is performed
   - if XeTeX is used then \newXeTeXintercharclass is defined

If pdfTeX primitives are detected and -jobname is set to "pdf*"
(pdfsomething) then PDF output is initialized (instead DVI). Example:
   pdftex -ini -jobname pdfcsplain csplain.ini

If pdfTeX primitives are detected and PDF output is initialized and the
pdftexconfig.tex file exists then \input pdftexconfig.tex is performed.

If encTeX is detected, then the meaning of \enc sequence is a subject 
of the following behavior:
   \enc=u  ... UTF-8 input is activated (recommended for 8bit texengines)
   \enc=w  ... CP1250 input is activated (usable for old Win systems)
   \enc=p  ... CP852 input is activated (for very old systems)
   \enc=k  ... Kamenicky input is activated (for very old DOS systems)
   undefined . No re-encoding (usable for old Unix systems with ISO-8859-2)

You can type   pdftex -ini -enc "\let\enc=u \input csplain.ini"
or you can use a wrapper file (like csplain-utf8.ini).

See http://petr.olsak.net/csplain.html for more information.


Changes of CSplain files (since <Apr. 1995>)
============================================

** 1 ** <Aug. 1996>
file extcode.tex renamed to il2code.tex (suggested by Jan Kasprzak)

** 2 ** <Sep. 1996>
* New metrics of cs-fonts loaded (T\v reba has no kern between T\v r).
* File il2code.tex:
  - \icrqq, \protect: removed
  - \def\crqq{\protect\irrqq} -> \chardef\crqq=255 \sfcode255=0
  - The definition \def\foo{\char<number> } -> \chardef\foo=<number> 
    for following \foos: \clqq, \flqq, \frqq.
  - New definition of \ogonek (the \ogonek A is improoved).
  - \defaulthyphenchar=\extrahyphenchar added to \extrahyphens macro.
  - The \uv definition added.

** 3 ** <Oct. 1998>
* The input re-encoding possibility using encTeX primitives added.
* Files enc-k.tex, enc-w.tex and enc-p.tex added.
* You can use (for example):   tex -enc -ini \let\enc=k \input csplain.ini
  to activate the encTeX reencoding

** 4 ** <Feb. 2000>
* The Czech/Slovak patterns are loaded in T1 encoding too: hyphen.lan  
  was modified, \toneczech, \toneslovak, \iltwoczech, \iltwoslovak
  \chardef's was introduced. The default encoding was keep ISO-8859-2.
* You can use (for example):  tex -ini \let\Cork=\relax \input csplain.ini
  to suppress the loading hyphen patterns in T1 encoding.
* You can use (for example):  %&csplain -translate-file=il2-t1
                              \input t1code \chyph
                              \font\f=ptmr8t \f
                              Here is czech text processed in T1 encoded
                              font ptmr8t and hyphenated by right
                              pattern table. \end

** 5 ** <Feb. 2005>
* The possibility of csplain initialisation by pdfTeX added
  (see \ifx\pdfoutput\undefined \else ... \fi).
* The file pdftexconfig.tex during pdfcsplain initialisation is read
  (see \ifx\pdfoutput\undefined \else ... \fi).
* The file t1code.tex corrected (bug in \uccodes removed).
  
** 6 ** <Sep. 2005>
* Files enc-k.tex, enc-w.tex, enc-p.tex renamed to csenc-*.tex because
  only characters from Czech and Slovak alphabet are declared here.
* Commands \let\xordcode=\undefined etc. are removed, but user is kindly 
  asked to use encTeX primitives with care. The result may be unportable 
  document with another csplain implementations.
* File csenc-u.tex for UTF8 input encoding using encTeX is added.
  You can use (for example):  tex -enc -ini \let\enc=u \input csplain.ini
  if your system (or text editor) is using UTF8 encoding.

** 7 ** <Sep. 2007>
* Only the Copyright text was changed in order to the "GNU" name is not
  mentioned in it. The meaning of Copyright is unchanged.
  I was forced to do this change by Debian people. They consider the
  license as very important but I don't. IMHO the functionality of 
  the software is much more important.
* I didn't do any changes in macro code. Thus the \message still says:
  The format: csplain <Sep. 2005>.

** 8 ** <Oct. 2012>
* File csfontsm.tex included: (\sizespec, \resizefont, \resizeall,
  \tenbi, \bi). This file is read during format generation.
* Little changes of the files ctimes.tex, cavantga.tex etc.
* More changes in t1code.tex file.
* New files tx-math.tex, ttimes.tex, tavanga.tex, etc.
* UTF-8 input encoded by encTeX is recommended.
* The page http://petr.olsak.net/csplain.html introduced. 

** 9 ** <Nov. 2012>
* The \regfont macro added in csfontsm.tex.
* In plaina4.tex:  \pdfpagewidth (etc.) = 210 *true* mm added
* ucode.tex introduced (for unicode setting).
* hyphen.lan totally rewritten for possibility of loading
  hyphen-patterns based on http://tug.org/tex-hyphen/.
* \ifx\directlua\undefined\else \input ... \fi added
* \ifx\XeTeXuseglyphmetrics ... added

** 10 ** <Jan. 2013>
* \letfont macro introduced.
* lmfonts.tex: \ifx\font\corkencoded \def\tmp{rm} corrected.

  Jul. 2013: [format wasn't modified]
* \newXeTeXintercharclass defined for XeTeX.
* chars-8z.tex: twice loading is protected.
* lmfonts.tex: cs-lmtt10 loaded, encoding is OK.

  Aug. 2013: [format wasn't modified]
* ams-math, tx-math.tex: \dgsize, \whichtfm corrected
* ams-math, tx-math.tex: \mathpreloaded introduced, used in fonts/*.tex

  Sep. 2013: [format wasn't modified]
* ams-math, tx-math.tex: \mF introduced
* ucode.tex corrected
* fonts/*.tex: \input chars-8z only if !\corkencoded AND !\unicoded
* exchars.tex introduced
* csplain.ini: PDF output initialized if \jobname=pdf*
* chars-8z: \crq 155->96

** 11 ** <Sep. 2013>
* \letfont in csfontsm.tex reimplemented (XeTeX's \fontname with spaces)
* ams-math.tex and tx-math.tex use \letfont.

** 12 ** <Nov. 2013>
* hyphen.lan: cz -> cs (by ISO 639-1), \onlyUnicode introduced
* \normalmathloading introduced in ams-math.tex, tx-math.tex, lmfonts.tex
* luafonts.tex: new code for version 0.76 of LuaTeX
* The files luaplain.ini and xeplain.ini added.

  Jun 2014: [format wasn't modified] 
* cyrchars.tex added

** 13 ** <Jul. 2014>
* English quotes added: csenc-u.tex, il2code.etx, t1code.tex, t1enc-u.tex
* csfontsm.tex: \regfontdefault introduced

** 14 ** <Aug. 2014>
* chars-8z.tex: \mubyte for \clq, \crq, \flq and \frq added.
* hyphen.lan: \savinghyphcodes used if detected. 
* uni-lcuc.tex introduced; hyphen.lan reads it when \UnicodeLcUc=y.
* ntx-math.tex (derived from tx-math.tex) added.

  Dec. 2014: [format wasn't modified]
* opmac <Dec. 2014> added (new implementation of color stuff)
* \setmathcodechanges bug fixed (in ams-math, tx-math and ntx-math.tex)
* \crq corrected in ucode.tex
* luatex 0.79  uses luaotfload-main file, corrected in luafonts.tex
* op-example.bib added

  Apr. 2015:
* csenc-u.tex: \utfBOM added.

  Jun. 2015:
* ams-tex.tex: \ifx\chyph\undefined added

  Oct. 2015:
* hyphen.lan: \chardef\USenglish=0 added (for backward compatibility)
* t1code.tex, ucode.tex: waring supressed if non-csplain loads the file

** 15 ** <Jan. 2016>
* etex-mac.tex introduced.
* hyphen.lan: errmessage about incompatible encoding implemented
* luafonts.tex: new code for new version 80
* <Jan. 2016a>: \isncxunt -> \inscOunt in etex-mac.tex corrected

** 16 ** <Mar. 2016>
* t1enc-u.tex: raw AE, ae, etc. mapped
* \input luatex85.sty for LuaTeX specific added
* \input ucode for XeTeX and LuaTeX as default

** 17 ** <Apr. 2016>
* plaina4: \recount@true for \pdfpagewidth,height added 
* ff-mac.tex introduced, cs-*.tex rewritten based on ff-mac.tex
* cs-libertine.tex, kp-fonts.tex, kp-math.tex introduced
* csfontsm.tex: \ifx\tenbi\undefined added

  May 2016:
* ctimes.tex etc. font-files rewritten based on ff-mac.tex
* lmfonts.tex rewritten based on ff-mac.tex
* exchars.tex: \tgexchars introduced, \edef used in \setexfont
* uni-math.tex introduced
* luafonts.tex: corrected \let\luafonts=\relax
* kp-math.tex + uni-math.tex corrected: \setmathdimens added

  Jun. 2016:
* ff-mac + fontfiles: \ffdecl: first modifiers then basic selectors.
* cs-baskerx, cs-heuristica, cs-kurier, cs-iwona, ki-math, pazo-math added
* plaina4: \ifx\pdfhorigin added (bug when XeTeX is used fixed)
* glyphtounicode-cs.tex added

  Jul. 2016:
* etex-mac.tex: \endpinput -> \endinput, typo corrected

  Mar. 2019:
* lua-hyphen.lan introduced (use dynamically loaded patterns for luatex)
* luatex -ini csplain.ini generates format with default pdf output.
* More hyphen patterns preloaded in pdftex: (pdf)csplain
* Only three hyphen patterns preloaded in xetex: pdfcsplain 

  Feb. 2020
* hyphen.lan: skip loading patters when missing file

  Mar. 2021
* opmac-bib.tex: \ifx\citelist\emtpty -- bug fixed

* Mar. 2022
  cyrchars.tex: cyrillic characters used in Ukrainian added
  uni-math.tex: few missing characters added

COPYRIGHT
=========

This macro package (csplain.ini, il2code.tex, csfonts.tex, csfontsm.tex,
hyphen.lan, plaina4.tex) is free software; you can use it without any
restriction. You can redistribute it under the following condition:

You can do any changes in this software for your own usage. However,
you cannot distribute the changed software under the same name
"csplain".  Only the current administrator of CSTeX can do official
changes to csplain.

This macro package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


