summaryrefslogtreecommitdiff
path: root/tex/context/base/context.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/context.tex')
-rw-r--r--tex/context/base/context.tex225
1 files changed, 225 insertions, 0 deletions
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
new file mode 100644
index 000000000..47489658e
--- /dev/null
+++ b/tex/context/base/context.tex
@@ -0,0 +1,225 @@
+%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.
+
+\catcode`\{=1 \catcode`\}=2 \catcode`\#=6
+
+%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.
+
+\edef\contextformat {\jobname}
+\edef\contextversion{2010.05.24 13:05}
+
+%D For those who want to use this:
+
+\let\fmtname \contextformat
+\let\fmtversion\contextversion
+
+\let\showcontextbanner\relax
+
+%D Here we will test for what branch of source files we will take. The
+%D file suffix depends on the maintream engine: either lua enhanced,
+%D or traditional:
+%D
+%D \starttyping
+%D mki : low level dutch
+%D mkii : low level english
+%D mkiv : lua enhanced
+%D \stoptyping
+%D
+%D There is no \type {mkiii} unless you want to tag the transition
+%D version that way (going completely etex, code cleanup and such).
+
+\ifx\normalinput\undefined \let\normalinput\input \fi
+
+%D We have two versions, one for \PDFTEX\ and \XETEX, and one for
+%D \LUATEX.
+
+\chardef\contextmarkmode = \ifx\directlua\undefined 2 \else 4 \fi
+
+\def\loadcorefile#1{\normalinput#1\relax}
+\def\loadmarkfile#1{\normalinput#1.\mksuffix\relax}
+
+\ifnum\contextmarkmode=4
+ \def\loadmarkiifile#1{} \let\loadmarkivfile\loadcorefile \edef\mksuffix {mkiv} \edef\contextmark{MKIV}
+\else
+ \def\loadmarkivfile#1{} \let\loadmarkiifile\loadcorefile \edef\mksuffix {mkii} \edef\contextmark{MKII}
+\fi
+
+\let\loadmkiifile\loadmarkiifile
+\let\loadmkivfile\loadmarkivfile
+\let\loadmkfile \loadmarkfile
+
+%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\ (for \MKII):
+%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
+%D For \MKIV\ you have to do:
+%D
+%D \starttyping
+%D luatools --generate
+%D context --make en nl ...
+%D \stoptyping
+
+%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 We now go either the \MKII\ or \MKIV\ route:
+
+\loadmarkfile{context}
+
+%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!us] [\c!state=\v!start]
+
+\startinterface english
+ \installlanguage [\s!gb] [\c!state=\v!start]
+\stopinterface
+
+\appendtoks \language [\s!us] \to \everyjob
+\appendtoks \mainlanguage [\s!us] \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!cs] [\c!state=\v!start]
+
+ \appendtoks \language [\s!cs] \to \everyjob
+ \appendtoks \mainlanguage [\s!cs] \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
+
+\startinterface french
+
+ \installlanguage [\s!fr] [\c!state=\v!start]
+
+ \appendtoks \language [\s!fr] \to \everyjob
+ \appendtoks \mainlanguage [\s!fr] \to \everyjob
+
+\stopinterface
+
+\startinterface persian
+
+ \installlanguage [\s!pe] [\c!state=\v!start]
+
+ \appendtoks \language [\s!pe] \to \everyjob
+ \appendtoks \mainlanguage [\s!pe] \to \everyjob
+
+\stopinterface
+
+\protect
+
+%D Finally we (pre)load some fonts.
+
+\setupencoding[default=ec]
+
+\usetypescript[fallback][\defaultencoding]
+
+\setupbodyfont[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