--------------------------------------------------------------------------- MEXINFO.ENG: a brief description of the MeX 1.05 package, 18 December 1993 small changes in documentations: 8 November 1997 --------------------------------------------------------------------------- What is MeX? ============ MeX is a software package for TeX and METAFONT. TeX is a typesetting system and METAFONT is a program for typeface design, both developed by professor Donald E. Knuth. Most users of TeX use it with PLAIN TeX and LaTeX macro packages. (Macro packages are also called ``formats''.) MeX is an adaptation of PLAIN TeX and LaTeX (v.209) formats to the Polish language and to the Polish printing customs. MeX consists of: -- a set of fonts containing Polish diacritical characters and extra quotation marks (a complete set of METAFONT sources); -- hyphenation rules for the Polish language; -- TeX macro files, called MeX and LaMeX, providing necessary tools for typesetting in Polish (the files are included in the source form). Since MeX was developed chiefly for native Poles to typeset text written in the Polish tongue (thus for the people able to understand Polish documentation) this is rather a short description of the MeX package, meant for particularly curious TeXers and METAFONTers. The ultimate documentation, as always, are the source files. Authors ======= Fonts: Bogus\l{}aw Jackowski (BJ) & Marek Ry\'cko (MR). consultant: Roman Tomaszewski Formats MeX & LaMeX (Polish versions of the PLAIN and LaTeX209 macro files): MR & BJ. Polish hyphenation patterns: Hanna Ko\l{}odziejska (HK), BJ & MR. (See ``The history of MeX'' below.) Rules ===== The MeX package belongs to the public domain. The MeX package may only be distributed in unchanged and complete form including the files MEXINFO.ENG and MEXINFO.POL. All the files constituting the MeX package are listed in the chapters ``Files'' and ``PL Fonts'' below. Anyone who distributes the MeX package must obey one of the following rules: 1. there is no charge for distribution or 2. the payment for the distribution of one diskette is not greater than the price of this diskette; in this case the distributor must make clear that this is a handling fee, not a license fee or purchase fee. This package is distributed with no warranty of any sort. The authors accept no responsibility for the consequences of using this software. Each user must comply with all conditions specified by D. E. Knuth regarding the use of TeX, METAFONT and related software. Contacts ======== The authors can be reached via the Polish TeX Users Group (Polska Grupa U\.zytkownik\'ow Systemu TeX ``GUST''). The current address is: Polska Grupa U\.zytkownik\'ow Systemu TeX ,,GUST'' Instytut Matematyki Uniwersytetu Gda\'nskiego ul. Wita Stwosza 57 80-952 Gda\'nsk POLAND http://www.gust.org.pl Any comments regarding the MeX package are welcome. The history of MeX ================== The MeX package has been developed in MacroSoft Ltd, Warsaw, Poland. The previous version of the adaptation of TeX to the Polish language was called LeX. It contained a macro file and P1 family of fonts, and was developed by BJ & MR between November 1987 and December 1989. MeX is a modification of LeX adjusting it to the TeX 3.x conventions. The LeX format made use of a set of hyphenation rules originally created by HK in 1987, adapted to the LeX format and extensively modified by BJ & MR. The following modifications to the LeX package and hyphenation rules were done while BJ, HK & MR were employed in MacroSoft Ltd: -- the hyphenation rules were further improved and adapted to the TeX 3.x requirements by HK in July--August 1991, -- transformation from LeX, version 1.75, to MeX, version 1.01, macro files and from P1 to PL, version 1.01 fonts were done by BJ & MR during the period October 1991--February 1992. The authors are grateful to MacroSoft Ltd for providing the opportunity to carry out this work. Major changes after the 1.01 release of MeX =========================================== Version 1.03, 18 December 1992: -- incorrect behaviour of \notin and related macros eliminated (sorry for this error -- BJ & MR); -- added macros \emulateplain and \emulateLaTeX for emulating formats plain and LaTeX209 within MeX and LaMeX formats, respectively; -- discretization of some Polish characters improved; -- the order of inputting files in METAFONT programs changed so that the format file CM.BAS is no longer needed; -- a few negligible changes introduced, mainly in comments. Version 1.05, 18 December 1993: -- next bug (sorry again -- BJ & MR) eliminated: category codes of several characters corrected; -- MFJ files placed along with other emTeX files; GPLMODES.MFJ adjusted to new versions of Eberhard Mates's drivers; other METAFONT files remained intact; -- the MeX distribution files are no longer packed; the LHa program is no longer included. PL fonts ======== The PL fonts were primarly designed for use with the MeX and LaMeX formats (Polish versions of the PLAIN and LaTeX209 macro files). Nowadays PL fonts can also be used with `PLaTeX' package (CTAN:/language/polish/platex-1.0.zip) that provides tools to typeset documents in Polish using LaTeX2e. 1. The Polish diacritical letters and quotation marks ----------------------------------------------------- There are nine diacritical letters in the Polish language (altogether with majuscules---eighteen): a with ogonek c with acute accent e with ogonek l with cross n with acute accent o with acute accent s with acute accent z with acute accent z with dot accent Moreover, the Polish opening quotation mark is like the English closing one, but shifted to a baseline (like two commas, `,,'); additionally, in case of nested quotations, French quotation marks (`<<' and `>>') are used in Polish. 2. The PL layout ---------------- The Polish fonts (PL) are extension of Computer Modern fonts (CM), i.e., characters 0--127 are identical in PL and CM, while the Polish characters and Polish and French quotation marks are placed in higher ASCII positions, namely: A with ogonek -- 129 a with ogonek -- 161 C with acute accent -- 130 c with acute accent -- 162 E with ogonek -- 134 e with ogonek -- 166 L with cross -- 138 l with cross -- 170 N with acute accent -- 139 n with acute accent -- 171 O with acute accent -- 211 o with acute accent -- 243 S with acute accent -- 145 s with acute accent -- 177 Z with acute accent -- 153 z with acute accent -- 185 Z with dot accent -- 155 z with dot accent -- 187 << (French opening quotes) -- 174 >> (French opening quotes) -- 175 ,, (Polish opening quotes) -- 255 Note that the Polish diacritical letters have the codes of the Extended CM layout (Cork encoding). 3. A few remarks on the design of the PL fonts ---------------------------------------------- a) The METAFONT programs for letters and for the Polish opening quotes are based on the respective CM programs; we decided not to exploit a sneaky way of reading CM programs twice (or reading them and storing) and modifying `extra_beginchar' and `extra_endchar', or so, as we found such an aproach to be inconsistent with the general philosophy of the Computer Modern font family design (although see, e.g., the program for SS in the CSC font). b) Unlike the CM parametric files, the PL ones do not contain lists of parameter assignments. Instead, a CM driver file is input while processing the corresponding PL driver. c) The quotation marks are accessible via ligatures (,, << >>). The Polish diacritical letters can be accessed either directly or using an active prefix character (slash)---see the description of the format MeX. No ligatures are used to form the Polish diacritical characters. There are good reasons for doing so. d) Since the Polish diacritical letters are not meant to be used as math variables, they are not `math_adjusted'. e) METAFONT doesn't allow for more than 16 different heights per font; because of this limitation the upper half of the ASCII table is deliberately left almost empty. In spite of that an additional height introduced by accented majuscules may cause an automatic adjustation of the remaining heights, and it may happen that, e.g., `x_height' will be changed. This makes the full compatibility between PL and CM fonts rather impossible; let's hope that such incompatible situations will occur very rarely. f) An attempt was made to avoid introducing extra parameters; in some cases, however, such extra (optional) parameters may prove to be necessary for the final tunig. All optional parameters are described in the file PL_DOD.MF (an additional file for PL fonts; in fact, a base format). Examples of use of optional parameters can be found in the following files: PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLCSC10, PLDUNH10, PLFI10, PLFF10, PLITT10, PLR5, PLR6, PLR7, PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTCSC10, PLTI7, PLTI8, PLTI12, and PLVTT10. g) PLSY fonts include alternative less-or-equal and greater-or-equal signs (like AMSTeX `\leqslant' and `\geqslant'), used in Polish math texts; this extension was suggested by Mr. W\l{}odzimierz J. Martin. h) PLMI, PLMIB and PLTEX fonts are renamed (for uniformness) CMMI, CMMIB and CMTEX fonts. The latter one reflects the layout of the keyboard of the computer used by D. E. Knuth (D. E. Knuth, ``Computer Modern Typefaces,'' p. 568); it is unlikely that Polish characters were present there. i) The design of the Polish diacritical characters in fonts PLR, PLBX, PLTT, PLSS, PLTI and PLSSBX was consulted with Mr. Roman Tomaszewski, the President of the Polish Division of ATypI (Association Typographique Internationale). The authors are extremally grateful to him for his advices and for the time he devoted to the problem of the Polish version of CM fonts. Mr. Roman Tomaszewski died in December 1993. j) D. E. Knuth encourages users to generate their own fonts: ``Many more variations (bold and/or slanted and/or sans-serif) could be tried.'' he says (``Computer Modern Typefaces'', p. 30). The authors of the PL fonts share rather the Roman Tomaszewski's opinion, that one should be very, very careful in following this advice. 4. A few remarks on the design of the Polish diacritical characters ------------------------------------------------------------------- a) The accents over minuscules are very similar to the accents that can be obtained using TeX's acute accent (\') operation; accents over majuscules, however, are rotated a bit (if serifs) or flattened a bit (if not serifs); exceptionally, in the extremely slim PLDUNH10 font accents over majuscules are not sloped. b) The dot accent over `z' and `Z' is like a dot over the letter `i'. The dot accent put by TeX's command `\.' is a bit different, which does not look nice in Polish words like `gwi\.zd\.ze' (eng. whistles). c) The cross for the polish `l' and `L' is longer and thicker (for `L' is bigger than for `l') than the standard CM's cross (TeX commands `\l' and `\L'). d) The programs for the Polish opening quotes are based on the CM's closing quotes; the French quotation marks are designed from scratch. e) The geometry of an ogonek is very simple: its outer and inner edges are single B\`ezier segments. The algorithm of computing the control points for the B\`ezier curves, however, is admittedly sophisticated. This is due to the fact that a wide spectrum of different ogonek shapes is in fact to be programmed: one shape is needed for caps, another for `a' with ogonek, yet another for `e' with ogonek, as they all have different joins. Moreover, a sansserif ogonek differs significantly from the serif one, a bold ogonek from a non-bold, an ogonek for hefty fonts should still be different. And, if you take into account that the basic font unit |u| may change during one session of font generation (monospace and caps-small-caps) and that a few different pens may be used to draw a single letter you'll understand why so many |if| ... |else:| ... |fi| commands are used in the ogonek program. f) Implicit kerns are mostly the same for the Polish diacritical letters as for the respective Latin ones; although, there are a few exceptions (see the files POLAN.MF, POLKUR.MF and POLKAP.MF). The same concerns the italic correction inserted after the Polish characters. 5. METAFONT sources ------------------- The MeX package contains the following METAFONT sources (it is assumed that the user has the complete set of CM sources): a) Files describing the Polish diacritical characters: PL_CUD.MF PL_DOD.MF PL_MLK.MF PL_DL.MF PL_ML.MF PL_SYM.MF b) Driver files: POLAN.MF -- corresponding to ROMAN.MF POLKAP.MF -- corresponding to CSC.MF POLKUR.MF -- corresponding to TEXTIT.MF POLMAT.MF -- corresponding to MATHSY.MF POLTYT.MF -- corresponding to TITLE.MF c) Parametric files: PLBSY10.MF PLMI10.MF PLSSBI36.MF PLSY5.MF PLBXSL10.MF PLMI12.MF PLSSBI48.MF PLSY6.MF PLBXTI10.MF PLMI5.MF PLSSBX10.MF PLSY7.MF PLBX10.MF PLMI6.MF PLSSBX36.MF PLSY8.MF PLBX12.MF PLMI7.MF PLSSBX48.MF PLSY9.MF PLBX5.MF PLMI8.MF PLSSDC10.MF PLTCSC10.MF PLBX6.MF PLMI9.MF PLSSDC40.MF PLTEX10.MF PLBX7.MF PLR10.MF PLSSI10.MF PLTEX8.MF PLBX8.MF PLR12.MF PLSSI12.MF PLTEX9.MF PLBX9.MF PLR17.MF PLSSI17.MF PLTI10.MF PLB10.MF PLR5.MF PLSSI8.MF PLTI12.MF PLCSC10.MF PLR6.MF PLSSI9.MF PLTI7.MF PLDUNH10.MF PLR7.MF PLSSQI8.MF PLTI8.MF PLEX10.MF PLR8.MF PLSSQ8.MF PLTI9.MF PLEX9.MF PLR9.MF PLSS10.MF PLTT10.MF PLFF10.MF PLSLTT10.MF PLSS12.MF PLTT12.MF PLFIB8.MF PLSL10.MF PLSS17.MF PLTT8.MF PLFI10.MF PLSL12.MF PLSS8.MF PLTT9.MF PLINCH.MF PLSL8.MF PLSS9.MF PLU10.MF PLITT10.MF PLSL9.MF PLSY10.MF PLVTT10.MF PLMIB10.MF PLSSBI10.MF d) Extra parametric files: CMSSBI10.MF CMBX11.MF CMR11.MF CMSL11.MF CMTI11.MF DLR10.MF e) Additional file, being input while METAFONT processes a PL parametric file: FIK_MIK.MF f) Mode file for Linotronic 100 and 300 LINOMODE.MF g) Format file for the MFT program: PL.MFT This file provides a format for a neat typesetting of the METAFONT sources of PL fonts; it is assumed that user has a file MFTMAC.TEX (this file may be found, e.g., in emTeX package of Eberhard Mattes or in any CTAN:/macros/generic/plain/base/mftmac.tex). 6. Genarating PL fonts ---------------------- Usually, METAFONT implementation comes up with an additional software which facilitates genarating fonts. The MeX package includes data files for the MFJOB program of E. Mattes, which controls generating fonts by emMF (for details see the documentation of the emTeX package). The following files are available: G180PL.MFJ data for generating 180dpi (for 24 pin matrix printers) PL fonts G240PL.MFJ data for generating 240dpi (for 9 pin matrix printers) PL fonts G300PL.MFJ data for generating 300dpi (for HP compatible laser printers) PL fonts GPLMODES.MFJ definition of respective modes for MFJOB Installation of the format (FMT) files ====================================== In order to work with the MeX and LaMeX formats one has to generate the respective FMT files using INITEX. The following files are necessary: MEX.TEX, LAMEX.TEX, MEX1.TEX, MEX2.TEX, MEXCONF.TEX, PLHYPH.TEX. Moreover, the following files from the standard TeX package should be available for INITEX: PLAIN.TEX, LATEX.TEX, LPLAIN.TEX, LFONTS.TEX, HYPHEN.TEX. There are data and batch files in the distribution package, facilitating the process of the generation of FMT files using emTeX (TEX186), namely: MAZ2PL.PCT, LAT2PL.PCT, MAZ2PL.TCP, LAT2PL.TCP, MK-TCP.BAT, GM-MEX.BAT, GM-LAMEX.BAT, GL-MEX.BAT, and GL-LAMEX.BAT. The user may change the default behaviour of the formats changing the MEXCONF.TEX file (see this file). User's manual ============= Polish diacritical letters -------------------------- Usually, users access the Polish diacritical characters directly (using a one-character notation). In some applications, however, a universal, ``device-independent'' notation may be convenient. In such a situation one may switch on the prefix notation (command \prefixing). This command makes a slash active, and the Polish diacritical characters are represented as follows: /a -- a with ogonek /A -- A with ogonek /c -- c with acute accent /C -- C with acute accent /e -- e with ogonek /E -- E with ogonek /l -- l with cross /L -- L with cross /n -- n with acute accent /N -- N with acute accent /o -- o with acute accent /O -- O with acute accent /s -- s with acute accent /S -- S with acute accent /x -- z with acute accent /X -- Z with acute accent /z -- z with dot accent /Z -- Z with dot accent Slash itself is represented by // or by the command \normalslash. The direct notation is restored by the \nonprefixing command. The Polish users are supposed to prefere the direct access to the Polish letters, the more so, as the control sequences may then contain Polish diacritical characters. Quotation marks --------------- Polish opening quote and French quotes are available as ligatures ,, << and >> respectively. Hyphenation ----------- From the point of view of TeX, the hyphenation rules depend on both language and font layout. Since there are a few potential layouts for the Polish diacritical letters (Mazovia, Latin 2, ECM), there are, in fact, a few Polish languages. The formats MeX and LaMeX provide a mechanism for smooth switching between different font layouts within one document. The command \layout (\layout{pl}, \layout{mazovia}, \layout{pone}, \layout{latintwo}) switches automaticly the respective hyphenation rules (or forbids hyphenating at all, if there is not enough room in TeX's memory to store all necessary patterns). After fixing a layout, one can switch forth and back between the Polish and English languages using the commands \language\polish and \language\english, resp. In Polish the words like `blah-blah' should by hyphenated rather blah- -blah (note the hyphen preceeding the second line) than blah- blah. A special command has been introduced, \=, providing a proper Polish hyphenation when put instead of an explicit hyphen (blah\=blah); the subwords may also be hyphenated if necessary. The original (PLAIN) meaning of \=, macron, is now assigned to the \macron command. Math mode --------- The Polish diacritical characters may appear in math formulas (also as indices) only in text fonts. There are no Polish characters in math italic, since such characters are never used as single-character names of variables. Special Polish less-or-equal and greater-or-equal signs (see section 3.g in the chapter ``PL fonts'') are rendered by the macros \xleq (or \xle) and \xgeq (or \xge), respecticvely. Polish names for `tan', `cot', `tanh', `coth' are `tg', `ctg', `tgh', and `ctgh', respectively. The macros \tg, \ctg, \tgh, and \ctgh can be used to typeset them. A new macro, \arc, has been introduced. This macro, when followed by a function name (e.g., \arc\sin), typesets the word `arc' followed by a tiny space, followed by the function name. This is a usual way of typesetting in Polish the names of inverse trigonometric functions. Bilingual styles for LaMeX -------------------------- Following the ideas of H. Partl and J. Schrod (implemented in the German TeX), bilingual versions of the styles article, book, letter, makeidx, openbib, proc, report and titlepa (renamed to iarticle, ibook, iletter, imakeidx, iopenbib, iproc, ireport and ititlepa, resp.) have been introduced. The commands \captionsenglish \dateenglish, \captionspolish and \datepolish can be used to switch between the Polish and English languages. Default values: --------------- At the beginning of document processing the following defaults hold: \frenchspacing \nonprefixing \layout{pl} \language\polish \MeX and \LaMeX logos --------------------- In MeX and LaMeX the command \MeX typesets the MeX logo using a current font. The \LaMeX command is accessible only in LaMeX and typesets the logo using the \rm font. Files ===== The MeX package consists of the following kinds of files: 1. The documentation files 2. The TeX files 3. The METAFONT files Below is the complete annotated list of all the files forming the MeX package. Please note that only the complete unchanged set of files, including the documentation files, may be distributed (see chapter ``Rules''). 1. The documentation files MEXINFO.ENG -- the file you are reading now MEXINFO.POL -- a similar (but more detailed) text in Polish 2. The TeX files Macro files: ------------ MEX.TEX -- Polish version of the PLAIN.TEX macro file LAMEX.TEX -- Polish version of the LPLAIN.TEX macro file MEX1.TEX -- an auxiliary file input by MeX and LaMeX MEX2.TEX -- another auxiliary file input by MeX and LaMeX MEXCONF.TEX -- a configuration file for MeX and LaMeX PLHYPH.TEX -- Polish hyphenation patterns Input filter files for emTeX (the TeX implementation by E. Mattes): ------------------------------------------------------------------- MAZ2PL.PCT -- conversion table from the Mazovia to PL encoding ISO2PL.PCT -- conversion table from the ISO 8859-2 (ISOLatin2) to PL encoding LAT2PL.PCT -- conversion table from the IBM Latin2 (CP852) to PL encoding WIN2PL.PCT -- conversion table from the Windows CP1250 to PL encoding MAZ2PL.TCP, ISO2PL.TCP, LAT2PL.TCP WIN2PL.TCP -- ditto, the version for INITEX MK-TCP.BAT -- batch file for translating from PCT to TCP The DOS system batch files for generating the MEX.FMT and LAMEX.FMT files: -------------------------------------------------------------------------- GM-MEX.BAT -- generate MEX.FMT (with built-in Mazovia filter) GM-LAMEX.BAT -- generate LAMEX.FMT (with built-in Mazovia filter) GI-MEX.BAT -- generate MEX.FMT (with built-in ISO 8859-2 filter) GI-LAMEX.BAT -- generate LAMEX.FMT (with built-in ISO 8859-2 filter) GL-MEX.BAT -- generate MEX.FMT (with built-in IBM Latin 2 filter) GL-LAMEX.BAT -- generate LAMEX.FMT (with built-in IBM Latin 2 filter) GW-MEX.BAT -- generate MEX.FMT (with built-in CP1250 filter) GW-LAMEX.BAT -- generate LAMEX.FMT (with built-in CP1250 filter) Additional style files for LaMeX -------------------------------- IARTICLE.STY IMAKEIDX.STY IREPORT.STY IBOOK.STY IOPENBIB.STY ITITLEPA.STY ILETTER.STY 3. The METAFONT files are listed in the section describing fonts. Acknowledgements ================ We are indebted to many people who helped us in the long-lasting project of adjusting TeX to the Polish language. Listing all of them is impossible. Nevertheless, we would like to express particularly warm thanks to the following persons: Andrzej Blikle W\l{}odzimierz Bzyl Jacek Leszczy\l{}owski Marian \L{}akomy W\l{}odzimierz J. Martin Frank Mittelbach Gra\.zyna Nowak Andrzej Odyniec Piotr Pianowski Tomasz Przechlewski Stanis\l{}aw Szczyci\'nski Roman Tomaszewski Stanis\l{}aw Wawrykiewicz