%D \module %D [ file=context, %D version=1995.10.10, %D title=\CONTEXT, %D subtitle=\CONTEXT\ Format Generation, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA / Hans Hagen \& Ton Otten}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. % dec 07 2001 : cont-en.efmt : 4,035,912 % aug 07 2004 : cont-en.efmt : 4,928,967 (5 more patterns) % todo 1: each module english commands % todo 2: replace lowlevel *!* by english variants % todo 3: make files more independent % todo 4: cleanup specials + adapt interface % todo 5: remove/replace old stuff (by new stuff, like couplepaper) % todo 6: create even more hooks (so that users can overload) % todo 7: conditionals % todo 8: redesign tui/tuo \catcode`\{=1 \catcode`\}=2 %D From the next string (which is set by the script that assembles the %D distribution) later on we will calculate a number that can be used %D by use modules to identify the feature level. Starting with version %D 2004.8.30 the low level interface is english. Watch out and adapt %D your styles an modules. \def\contextversion{2005.08.01} %D Welcome to the main module. When this module is ran through %D \type{initex} or \type {tex -i} or \type {whatevertex} using %D \type{whatever switch}, the \CONTEXT\ format file is %D generated. During this process the user is asked for an %D interface language. Supplying \type{dutch} will generate a %D dutch version of \CONTEXT, supplying \type {english} will of %D course end op in a english version. %D %D Another option is to use \TEXEXEC: %D %D \starttyping %D texexec --make [--alone] [--engine] [--all] %D texexec --make [--alone] [--engine] en nl ... metafun mptopdf %D \stoptyping %D %D More information can be found in the \TEXEXEC\ manual. %D When you write modules (or extensions) you should avoid %D conflicts with existing macro names and mechanisms. If you are %D coming from another macro package, don't assume that macros %D with the same name are doing the same! \CONTEXT\ was written %D from scratch and therefore similarities are often a coincidence %D (to some extent one always ends up with the same names for %D similar concepts). The underlying models for elementary subsystems %D that deal with encodings, languages and fonts probably differ. %D %D Time has learned that users coming from \LATEX\ should not fall %D into thinking that macros like \type {\protect} represent the %D same functionality in both systems; actually, due to the way %D \CONTEXT\ is set up, some of those macros do complete different %D things. Macro packages evolve independent of each other, which %D means that code written for one system will not work in another %D system, unless it's real generic code. %D %D An API will become available soon (keep an eye on the ConTeXt %D Wiki www.contextgarden.org) and or listen in to the context %D mailing list (ntg-context@ntg.nl). Much additional information %D can be found at the PRAGMA website (www.pragma-ade.com). %D First we load the system modules. These implement a lot of %D manipulation macros. The first one loads \PLAIN\ \TEX, as %D minimal as possible. \input syst-pln.tex % stripped plain \input syst-prm.tex % saved primitives (will be extended) \input syst-etx.tex % etex \input syst-omg.tex % omega-aleph \input syst-xtx.tex % xetex \input syst-gen.tex \input syst-ext.tex \input syst-new.tex \input syst-con.tex \input syst-var.tex \input math-pln.tex % basic plain math %D To enable selective loading, we say: \CONTEXTtrue %D In order to conveniently load files, we need a few %D support modules. \input supp-ini.tex \input supp-fil.tex \input supp-dir.tex %D After this we're ready for the multi||lingual interface %D modules. \input mult-ini.tex \input mult-sys.tex \input mult-con.tex \input mult-com.tex %D We also use some third party macros. These are loaded by %D saying: \input thrd-ran.tex % based on: Donald Arseneau \input thrd-trg.tex % based on: David Carlisle %D Now we're ready for some general support modules. These %D modules implement some basic typesetting functionality. \input supp-box.tex \input supp-mrk.tex \input supp-vis.tex \input supp-fun.tex \input supp-eps.tex \input supp-pdf.tex \input supp-spe.tex \input supp-mps.tex \input supp-mpe.tex \input supp-tpi.tex \input supp-mat.tex \input supp-ran.tex \input supp-ali.tex %D The next module deals with language specific typographic %D extensions. \input typo-ini.tex % I must not forget about this module %D Verbatim typesetting is implemented in a separate class of %D modules. The pretty typesetting modules are loaded at run %D time. \input verb-ini.tex % replaces supp-ver %D The following modules are not sequentially dependent, %D i.e. they have ugly dependencies, which will be cleaned %D up by adding more overloading. %D When loading the font, color and special modules, we need a %D bit more advanced file handling as well as some general %D variables, and features, so next we load: \input core-var.tex \input core-ins.tex \input core-fil.tex \input core-con.tex %D We already need some synonyms (patterns). At runtime this %D file will be reloaded. \input cont-fil.tex %D \CONTEXT\ does not implement its own table handling. We %D just go for the best there is and load \TABLE. Just to be %D sure we do it here, before we redefine \type{|}. \input thrd-tab.tex % based on: Michael Wichura / will be reimplemented %D Here comes the last support modules. They take care of %D some language specific things. \input supp-lan.tex \input supp-num.tex \input supp-pat.tex % generic pattern loading %D The next few modules do what their names state. They %D load additional definition modules when needed. \input enco-ini.tex \input filt-ini.tex \input hand-ini.tex \input regi-ini.tex \input lang-ini.tex \input lang-ctx.tex \input lang-dis.tex % after lang-ctx ! \input unic-ini.tex \input colo-ini.tex \input colo-ext.tex \input spec-mis.tex \input spec-ini.tex \input spec-def.tex \input spec-var.tex %D For the moment we load a lot of languages. In the future %D we'll have to be more space conservative. \input lang-spe.tex \input lang-lab.tex \input lang-ger.tex \input lang-ita.tex \input lang-sla.tex \input lang-alt.tex \input lang-ana.tex \input lang-art.tex \input lang-bal.tex \input lang-cel.tex \input lang-grk.tex \input lang-ind.tex \input lang-ura.tex \input lang-vn.tex % vietnamese, maybe this belongs in lang-ita %D All kind of symbols are handled in: \input symb-ini.tex %D Next we load some core macro's. These implement the %D macros' that are seen by the users. The order of loading %D is important, due to dependancies. \input core-gen.tex \input core-new.tex \input core-uti.tex \input core-mar.tex \input core-mak.tex \input core-dat.tex \input core-grd.tex \input core-ver.tex \input core-vis.tex %input core-con.tex \input core-rul.tex \input core-tab.tex \input core-nav.tex \input core-ref.tex \input core-obj.tex \input core-buf.tex \input core-lst.tex \input core-num.tex \input core-itm.tex \input core-des.tex \input core-mat.tex \input core-syn.tex \input core-spa.tex \input core-sys.tex \input page-ini.tex \input page-not.tex \input page-one.tex \input page-lay.tex \input page-log.tex \input page-txt.tex \input page-sid.tex \input page-flt.tex \input page-mul.tex \input page-set.tex \input page-lyr.tex \input page-mak.tex \input page-num.tex \input page-lin.tex \input page-mar.tex \input page-bck.tex \input page-app.tex % unfinished \input page-flw.tex % experimental: flows \input page-spr.tex % experimental: spreads \input core-job.tex % so far \input core-sec.tex \input page-imp.tex \input core-tbl.tex \input core-int.tex \input core-ntb.tex \input core-ltb.tex %D Like languages, fonts, encodings and symbols, \METAPOST\ %D support is also organized in its own class of modules. \input meta-ini.tex \input meta-pag.tex \input meta-fig.tex %D On which the next one depends: \input core-pos.tex \input core-snc.tex %D A few more languages, that have specifics using core %D functionality: \input lang-chi.tex %D How about fill||in fields and related stuff? \input java-ini.tex % needs a cleanup \input core-fld.tex % needs a cleanup \input core-hlp.tex % will become a m-module %D Registers can depend on fields, so we load that now. \input core-reg.tex %D Of course we do need fonts. There are no \TFM\ files %D loaded yet, so the format file is independant of their %D content. Here we also redefine \type{\it} as {\it italic} %D instead of italian. \input font-ini.tex \input font-uni.tex \input font-bfm.tex \input type-ini.tex \input type-def.tex \input prop-ini.tex \input prop-lay.tex % needs core-ref.tex \input prop-mis.tex \input math-ini.tex % needs enco-ini.tex %D Now we're ready for more core modules. \input core-fnt.tex % todo: document setupinitial ! \input core-not.tex \input core-lnt.tex % to be documented (with idris) \input core-mis.tex \input core-fig.tex % after page body \input core-par.tex % maybe this should become a m-module \input core-box.tex %D Language specific spacing. \input lang-spa.tex %D Only the basic XML parser and remapper are part of the core. %D These macrosa re loaded last since they overload and|/|or %D extend previously defined ones. \input xtag-ini.tex \input xtag-ext.tex \input xtag-prs.tex \input xtag-map.tex \input xtag-exp.tex \input xtag-pre.tex \input xtag-xsd.tex \input xtag-rng.tex %input xtag-ent.tex %D How about this: \input meta-xml.tex % to be documented % %D The next two modules implement some additional % %D functionality concerning classes of documents and output. % %D These modules probably will be replaced some day. % % \input docs-ini.tex % obsolete % \input list-ini.tex % obsolete %D \TEX\ related logo's are always typeset in a special way. %D Here they come: \input cont-log.tex %D Defaults go here (more will be moved to this module %D later): \input core-ini.tex \input core-def.tex %D At run time, a few more files are loaded, like: %D %D \startitemize[packed] %D \item \type{cont-sys}: local (system dependant) defaults %D \item \type{cont-old}: substitutes for old (obsolete) macros %D \item \type{cont-new}: new macro implementations (for testing) %D \item \type{cont-fil}: filename and module synonyms %D \stopitemize %D Just to keep the user busy for a while, we say: \startinterface english \writestring{This package is based on Plain TeX. It uses an adapted version of the} \writestring{extended mark mechanism of J. Fox (1987) and a few parts of the sidefloat} \writestring{mechanism of D. Comenetz (1993). Most of D.E. Knuth's Plain TeX} \writestring{(\fmtversion) is available and can be used without problems. This package} \writestring{uses TaBlE, a package designed and copyrighted by M.J. Wichura (1988).} \writestring{Only a few auxiliary files are generated, of which some must be processed} \writestring{by TeXUtil (\utilityversion). The current blockversion is \blockversion.} \stopinterface \startinterface dutch \writestring{Dit pakket is gebaseerd op Plain TeX. Er wordt gebruik gemaakt van een} \writestring{aangepaste versie van het mark mechanisme van J. Fox (1987) en onderdelen} \writestring{van het sidefloat mechanisme van D. Comenetz (1993). De functionaliteit} \writestring{van D.E. Knuth's Plain TeX (\fmtversion) is grotendeels beschikbaar en} \writestring{kan zonder problemen worden gebruikt. Dit pakket gebruikt TaBlE, ontworpen door} \writestring{M.J. Wichura (1988), die ook het auteursrecht bezit. Er worden slechts een} \writestring{paar hulpfiles gegenereerd, waarvan er enkele moeten worden bewerkt door} \writestring{TeXUtil (\utilityversion). Het blokmechanisme heeft versienummer \blockversion.} \stopinterface \startinterface german \writestring{Dieses Paket basiert auf Plain-TeX und benutzt eine angepasste Version} \writestring{des erweiterten mark-Mechanismus von J. Fox (1987) und einige Teile des} \writestring{sidefloat-Mechanismus von D. Comenetz (1993). Ein Grossteil D.E. Knuths} \writestring{Plain-TeX (\fmtversion) ist verfuegbar und kann ohne Probleme benutzt werden.} \writestring{Dieses Paket benutzt TaBlE, ein von M.J. Wichura (1988) erstelltes und} \writestring{geschuetztes Paket. Nur einige Hilfsdateien werden erstellt; einige davon} \writestring{muessen von TeXUtil (\utilityversion) bearbeitet werden. Die aktuelle Block-} \writestring{version ist \blockversion.} \stopinterface \startinterface czech \writestring{Tento balik je zalozen na Plain TeXu. Pouziva prizpusobenou verzi} \writestring{rozsireneho znackovaciho mechanismu J. Foxe (1987) a nekolik casti} \writestring{sidefloat mechanismu D. Comenetze (1993). Vetsina prikazu Plain TeXu} \writestring{D. E. Knutha (\fmtversion) je dostupna a muze byt bez problemu pouzita.} \writestring{Tento balik pouziva balik TaBlE, ktery vytvoril M. J. Wichura (1988).} \writestring{Je generovano jen nekolik pomocnych souboru, z nichz nektere musi byt} \writestring{zpracovany programem TeXUtil (\utilityversion). Aktualni verze} \writestring{} \writestring{THE CZECH USER INTERFACE IS STILL UNDER DEVELOPMENT!} \stopinterface \startinterface italian \writestring{Questo pacchetto è basato sul Plain TeX. Usa una versione adattata del} \writestring{meccanismo di marcatura esteso di J. Fox (1987) ad alcune parti del} \writestring{meccanismo per gli oggetti mobili laterali di D. Comenetz (1993).} \writestring{La maggior parte del Plain TeX (\fmtversion) di D.E. Knuth è disponibile} \writestring{e può essere usata senza problemi. Questo pacchetto usa TaBlE,} \writestring{un pacchetto progettato da e con diritti di copia di M.J. Wichura (1988).} \writestring{Vengono generati pochi file ausiliari, alcuni dei quali devono essere} \writestring{elaborati da TeXUtil (\utilityversion). La versione attuale del blocco} \writestring{è \blockversion.} \writestring{} \writestring{L'INTERFACCIA UTENTE ITALIANA E' ANCORA IN VIA DI SVILUPPO!} \writestring{THE ITALIAN USER INTERFACE IS STILL UNDER DEVELOPMENT!} \stopinterface \startinterface romanian \writestring{Acest pachet este bazat pe Plain TeX. Foloseste o versiune adaptata a} \writestring{mecanismului extins de marcare a lui J. Fox (1987) si cateva parti a mecanismului } \writestring{blocurilor marginale a lui D. Comenetz (1993). Cea mai mare parte a Plain Tex} \writestring{(\fmtversion) a lui D.E. Knuth este disponibila si poate fi folosita fara probleme.} \writestring{Acest pachet foloseste TaBlE, un pachet proiectat si creat de M.J. Wichura (1988).} \writestring{Numai un numar de fisiere auxiliare sunt generate, din care unele trebuie procesate} \writestring{de catre TeXUtil (\utilityversion). Versiunea curenta de blocuri este \blockversion.} \stopinterface \edef\copyrightversion {Copyright 1990-\the\normalyear\normalspace / PRAGMA ADE / J. Hagen - A.F. Otten} \writeline\writestring{\copyrightversion}\writeline % %D Except from english, no hyphenation patterns are loaded % %D yet. Users can specify their needs in the next module: % % \input cont-usr.tex %D Let's quit this file when doing a \type {cont-..} generation. \doifparentfileelse{context}{\donothing}{\endinput} %D Unless we're generating a \type {cont-..} format, we also %D do the following. %D Except from english, no hyphenation patterns are loaded %D yet. Users can specify their needs in the next module: \loaduserspecifications %D Next we default to the same language as the interface. \unprotect \installlanguage [\s!en] [\c!state=\v!start] \startinterface english \installlanguage [\s!uk] [\c!state=\v!start] \stopinterface \appendtoks \language [\s!en] \to \everyjob \appendtoks \mainlanguage [\s!en] \to \everyjob \startinterface german \installlanguage [\s!de] [\c!state=\v!start] \appendtoks \language [\s!de] \to \everyjob \appendtoks \mainlanguage [\s!de] \to \everyjob \stopinterface \startinterface dutch \installlanguage [\s!nl] [\c!state=\v!start] \appendtoks \language [\s!nl] \to \everyjob \appendtoks \mainlanguage [\s!nl] \to \everyjob \stopinterface \startinterface czech \installlanguage [\s!cz] [\c!state=\v!start] \appendtoks \language [\s!cz] \to \everyjob \appendtoks \mainlanguage [\s!cz] \to \everyjob \stopinterface \startinterface italian \installlanguage [\s!it] [\c!state=\v!start] \appendtoks \language [\s!it] \to \everyjob \appendtoks \mainlanguage [\s!it] \to \everyjob \stopinterface \startinterface romanian \installlanguage [\s!ro] [\c!state=\v!start] \appendtoks \language [\s!ro] \to \everyjob \appendtoks \mainlanguage [\s!ro] \to \everyjob \stopinterface \protect %D Finally we (pre)load some fonts. \setupbodyfont [cmr,rm,12pt] %D The next hook can be used to generate a local (extended) %D format. This file is only searched for at the current %D path. % \readlocfile{cont-def.tex} % {\writestatus{loading}{adding extensions from cont-def}} % {} %D Now dumping the format is all that's left to be done. \errorstopmode \dump \endinput