diff options
Diffstat (limited to 'Master/texmf-dist/tex/context/base/context.tex')
-rw-r--r-- | Master/texmf-dist/tex/context/base/context.tex | 579 |
1 files changed, 579 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/context/base/context.tex b/Master/texmf-dist/tex/context/base/context.tex new file mode 100644 index 00000000000..0d67d6746f0 --- /dev/null +++ b/Master/texmf-dist/tex/context/base/context.tex @@ -0,0 +1,579 @@ +%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.10.27} + +%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 enco-pfr.tex % uses \everyfont + +\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 Sorting: + +% not yet: \input sort-ini.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 |