summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/syst-ini.tex
diff options
context:
space:
mode:
authorTaco Hoekwater <taco@elvenkind.com>2011-06-01 08:54:21 +0000
committerTaco Hoekwater <taco@elvenkind.com>2011-06-01 08:54:21 +0000
commitd7ccb42582f85acf30568913610ccf4d602023fb (patch)
tree7292e3545a420676878e7451b68892d360c62cb6 /Master/texmf-dist/tex/context/base/syst-ini.tex
parent2d62a6fe9b80def59c392268022f1f9a2d6e358f (diff)
commit context 2011.05.18
git-svn-id: svn://tug.org/texlive/trunk@22719 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/syst-ini.tex')
-rw-r--r--Master/texmf-dist/tex/context/base/syst-ini.tex888
1 files changed, 0 insertions, 888 deletions
diff --git a/Master/texmf-dist/tex/context/base/syst-ini.tex b/Master/texmf-dist/tex/context/base/syst-ini.tex
deleted file mode 100644
index 7c9d72127a7..00000000000
--- a/Master/texmf-dist/tex/context/base/syst-ini.tex
+++ /dev/null
@@ -1,888 +0,0 @@
-%D \module
-%D [ file=syst-ini,
-%D version=2008.11.04, % 2001.11.16, % 1999.03.17, % an oldie: 1995.10.10
-%D title=\CONTEXT\ System Macros,
-%D subtitle=Bootstrapping \TEX,
-%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.
-
-%D We used to load plain \TEX\ in a special way, but redefining
-%D a couple of primitives so that for instance font loading was
-%D ignored. For those interested, this loader is found in
-%D \type {syst-tex.tex}. Some of the comment's are Don Knuth's
-%D and more of it can be found in the plain \TEX\ format.
-
-%D Characters can have special states, that can be triggered
-%D by setting their category coded. Some are preset, others
-%D are to be set as soon as possible, otherwise we cannot
-%D define any useful macros.
-
-%catcode`\^^@ = 9 % ascii null is ignored
-%catcode`\\ = 0 % backslash is TeX escape character
-
-\catcode`\{ = 1 % left brace is begin-group character
-\catcode`\} = 2 % right brace is end-group character
-\catcode`\$ = 3 % dollar sign is math shift
-\catcode`\& = 4 % ampersand is alignment tab
-\catcode`\# = 6 % hash mark is macro parameter character
-\catcode`\^ = 7 % circumflex and uparrow are for superscripts
-\catcode`\_ = 8 % underline and downarrow are for subscripts
-\catcode`\^^I = 10 % ascii tab is a blank space
-
-%catcode`\^^M = 5 % ascii return is end-line
-%catcode`\% = 14 % percent sign is comment character
-%catcode`\ = 10 % ascii space is blank space
-%catcode`\^^? = 15 % ascii delete is invalid
-
-\catcode`\~ = 13 % tilde is active
-\catcode`\^^L = 13 % ascii form-feed
-
-%catcode`\A = 11
-%.......
-%catcode`\Z = 11
-
-%catcode`\a = 11
-%.......
-%catcode`\z = 11
-
-\chardef\active = 13
-
-\def ^^L{\par}
-\def\^^M{\ } % control <return> = control <space>
-\def\^^I{\ } % same for <tab>
-
-%D In \CONTEXT, we simply ignore end||of||file tokens:
-
-\catcode`\^^Z=9
-
-%D It makes sense to know what engine we're running so let's
-%D try to deduce it.
-
-\chardef\unknownengine = 0
-\chardef\pdftexengine = 1
-\chardef\xetexengine = 2
-\chardef\luatexengine = 3
-
-\ifx\directlua\undefined
- \ifx\XeTeXversion\undefined
- \ifx\pdftexversion\undefined
- \let\texengine\unknownengine
- \else
- \let\texengine\pdftexengine
- \fi
- \else
- \let\texengine\xetexengine
- \fi
-\else
- \let\texengine\luatexengine
-\fi
-
-\ifnum\texengine=\unknownengine
- \immediate\write16{>>>}
- \immediate\write16{>>> only pdftex, xetex and luatex are supported}
- \immediate\write16{>>>}
- \let\dump\relax
- \expandafter\end
-\fi
-
-% todo: pdfsave pdfrestore pdfcolor... don't initialize them
-
-\ifnum\texengine=\luatexengine
- \directlua 0 { % this info is stored in the format
- if lua.name then
- lua.name[0] = "main ctx instance"
- end
- if tex.extraprimitives then
- local core = tex.extraprimitives('core')
- local btex = tex.extraprimitives('tex')
- local etex = tex.extraprimitives('etex')
- local pdftex = tex.extraprimitives('pdftex')
- local luatex = tex.extraprimitives('luatex')
- local omega = {
- "textdir", "pagedir", "mathdir", "pardir", "bodydir",
- "leftghost", "rightghost", "localleftbox", "localrightbox",
- "localinterlinepenalty", "localbrokenpenalty",
- }
- local aleph = {
- "boxdir", "pagebottomoffset", "pagerightoffset",
- }
- for _, subset in pairs { etex, pdftex, luatex, omega, aleph } do
- tex.enableprimitives('',subset)
- end
- for _, subset in pairs { core, btex, etex, pdftex, luatex, omega, aleph } do
- tex.enableprimitives('normal',subset)
- end
- end
- }
-\fi
-
-%D \ETEX\ has a not so handy way of telling you the version number,
-%D i.e. the revision number has a period in it:
-
-\long\def\gobbleoneargument#1{} % will be defined later on anyway
-
-\mathchardef\etexversion =
- \numexpr\eTeXversion*100+\expandafter\gobbleoneargument\eTeXrevision\relax
-
-%D First we define a simplified version of the \CONTEXT\
-%D protection mechanism.
-
-\def\unprotect{\catcode`@=11 }
-\def\protect {\catcode`@=12 }
-
-\unprotect
-
-%D Some pretty important definitions:
-
-\let\bgroup={
-\let\egroup=}
-
-%D Allocation of registers is done slightly different than in plain
-%D \TEX. First of all we use different reserved counters. We also
-%D don't implement a family handler because users are not supposed
-%D to implement their own math. We reserve the lowest 31 registers
-%D for scratch purposes. Keep in mind that in the core engine
-%D some registers are reserved: counters 0 upto 9, and counter 255.
-%D
-%D As with plain \TEX\ we recommend that macro designers always use
-%D \type {\global} assignments with respect to registers numbered 1,
-%D 3, 5 \unknown\ 31, and always non||\type {\global} assignments
-%D with respect to registers 0, 2, 4, \unknown\ 30. This will prevent
-%D \quote {save stack buildup} that might otherwise occur.
-%D
-%D We reserve some registers for special (management) purposes:
-
-\countdef \minallocatedregister = 52 \minallocatedregister = 256
-\countdef \maxallocatedregister = 53 \maxallocatedregister = 32767
-\countdef \minallocatediochannel = 54 \minallocatediochannel = -1
-\countdef \maxallocatediochannel = 55 \maxallocatediochannel = 16
-\countdef \minallocatedlanguage = 56 \minallocatedlanguage = 0
-\countdef \maxallocatedlanguage = 57 \maxallocatedlanguage = 255
-\countdef \maxallocatedinsert = 58 \maxallocatedinsert = 254
-\countdef \minallocatedinsert = 59 \minallocatedinsert = 128
-\countdef \minallocatedfamily = 60 \minallocatedfamily = 128
-\countdef \maxallocatedfamily = 61 \maxallocatedfamily = 255
-
-\countdef \lastallocatedcount = 32 \lastallocatedcount = \minallocatedregister
-\countdef \lastallocateddimen = 33 \lastallocateddimen = \minallocatedregister
-\countdef \lastallocatedskip = 34 \lastallocatedskip = \minallocatedregister
-\countdef \lastallocatedmuskip = 35 \lastallocatedmuskip = \minallocatedregister
-\countdef \lastallocatedbox = 36 \lastallocatedbox = \minallocatedregister
-\countdef \lastallocatedtoks = 37 \lastallocatedtoks = \minallocatedregister
-\countdef \lastallocatedread = 38 \lastallocatedread = \minallocatediochannel
-\countdef \lastallocatedwrite = 39 \lastallocatedwrite = \minallocatediochannel
-\countdef \lastallocatedmarks = 40 \lastallocatedmarks = \minallocatedregister
-\countdef \lastallocatedlanguage = 41 \lastallocatedlanguage = \minallocatedlanguage
-\countdef \lastallocatedinsertion = 42 \lastallocatedinsertion = \minallocatedinsert
-\countdef \lastallocatedfamily = 43 \lastallocatedfamily = \minallocatedfamily
-\countdef \lastallocatedattribute = 44 \lastallocatedattribute = \minallocatedregister
-
-\countdef \mincountervalue = 125 \mincountervalue = -"7FFFFFFF % beware, we use index 125 at the lua end
-\countdef \maxcountervalue = 126 \maxcountervalue = "7FFFFFFF % beware, we use index 126 at the lua end
-\countdef \minusone = 127 \minusone = -1
-\chardef \zerocount = 0
-\chardef \plusone = 1
-
-\chardef \normalpagebox = 255 % hardcoded in the engine
-
-% A few traditional allocations:
-
-\countdef \count@ = 255 % hm, used in \newif
-\dimendef \dimen@ = 0
-\dimendef \dimen@i = 1 % global only
-\dimendef \dimen@ii = 2
-
-%D So, effectively we start allocating from 256 and upwards. The
-%D inserts sit in the range 128 upto 254. Page numbers use the
-%D counters 0 upto 9 and the pagebox is 255. Users can use the
-%D scratch registers upto 31 without problem but all others are
-%D reserved.
-
-\def\wlog#1{} % \def\wlog{\immediate\write\minusone} % write on log file (only)
-
-%D The allocators share a common helper macro.
-
-\def\newcount {\allocateregister\lastallocatedcount \count \countdef \maxallocatedregister}
-\def\newdimen {\allocateregister\lastallocateddimen \dimen \dimendef \maxallocatedregister}
-\def\newskip {\allocateregister\lastallocatedskip \skip \skipdef \maxallocatedregister}
-\def\newmuskip {\allocateregister\lastallocatedmuskip \muskip \muskipdef \maxallocatedregister}
-\def\newbox {\allocateregister\lastallocatedbox \box \mathchardef\maxallocatedregister}
-\def\newtoks {\allocateregister\lastallocatedtoks \toks \toksdef \maxallocatedregister}
-\def\newread {\allocateregister\lastallocatedread \read \chardef \maxallocatediochannel}
-\def\newwrite {\allocateregister\lastallocatedwrite \write \chardef \maxallocatediochannel}
-\def\newmarks {\allocateregister\lastallocatedmarks \marks \mathchardef\maxallocatedregister}
-\def\newlanguage{\allocateregister\lastallocatedlanguage \language\chardef \maxallocatedlanguage}
-\def\newinsert {\allocateregister\lastallocatedinsertion\insert \chardef \maxallocatedinsert}
-\def\newfamily {\allocateregister\lastallocatedfamily \fam \chardef \maxallocatedfamily}
-
-\let\newfam\newfamily
-
-% %D The next definitions are really needed (in \CONTEXT):
-
-%newlinechar=10 \def\outputnewlinechar{\rawcharacter{10}}
-\newlinechar=10 \edef\outputnewlinechar{^^J}
-
-%D One reason to start high with allocation is that it permits us to
-%D allocate consecutive ranges more easily, for instance in \MPLIB\
-%D we want to allocate a continuous range of boxes. It also permits us
-%D to do a proper upward allocation for inserts. The current code
-%D evolved from code that dealt with older engines but as all engines
-%D now provide many registers we removed all traces.
-
-\def\writestatus#1#2{\immediate\write16{#1: #2}} \def\space { }
-
-\def\allocateregisteryes#1#2#3#4#5% last class method max name
- {\ifnum#1<#4\relax
- \global\advance#1\plusone
- \global#3#5=#1\relax
- \else
- \writestatus{warning}{no room for \string#2\space \string#5\space (max: \number#4)}%
- \fi}
-
-\def\allocateregisternop#1#2#3#4#5% last class method max name
- {\writestatus{warning}{\string#2 \string#5 is already defined (\string\relax\space it first)}}
-
-\def\allocateregister#1#2#3#4#5% last class method max name
- {\ifx#5\undefined
- \expandafter\allocateregisteryes
- \else\ifx#5\relax
- \expandafter\expandafter\expandafter\allocateregisteryes
- \else
- \expandafter\expandafter\expandafter\allocateregisternop
- \fi\fi
- #1#2#3#4#5}
-
-%D Since the number of chars exceed 256 now, we can use \type
-%D {\chardef} instead of the more limited \type {\mathchardef}.
-
-\ifnum\texengine>\pdftexengine
- \def\newbox {\allocateregister\lastallocatedbox \box \chardef\maxallocatedregister}
- \def\newmarks{\allocateregister\lastallocatedmarks\marks\chardef\maxallocatedregister}
-\fi
-
-%D Attributes are something very \LUATEX. In \CONTEXT\ you are not
-%D supposed to use the attributes directly but always allocate then
-%D first. For instance attribute~0 is reserved for special purposes
-%D (this might change).
-
-\ifnum\texengine=\luatexengine
- \let\attributeunsetvalue\mincountervalue % used to be \minusone
- \def\newattribute{\allocateregister\lastallocatedattribute\attribute\attributedef\maxallocatedregister}
-\fi
-
-%D Not used by \CONTEXT\ but for instance \PICTEX\ needs it. It's a
-%D trick to force strings instead of tokens that take more memory.
-%D It's a trick to trick to force strings.
-
-\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
-
-%D \macros
-%D {scratchcounter,
-%D scratchdimen,scratchskip,scratchmuskip,
-%D scratchbox,
-%D scratchtoks}
-%D
-%D We now define a few scratch registers, so that successive
-%D loads at least have some available.
-
-\newcount \scratchcounter \newcount \globalscratchcounter
-\newdimen \scratchdimen \newdimen \globalscratchdimen
-\newskip \scratchskip \newskip \globalscratchskip
-\newmuskip \scratchmuskip \newmuskip \globalscratchmuskip
-\newtoks \scratchtoks \newtoks \globalscratchtoks
-\newbox \scratchbox \newbox \globalscratchbox
-
-\newcount\scratchcounterone \newcount\scratchcountertwo \newcount\scratchcounterthree
-\newdimen \scratchdimenone \newdimen \scratchdimentwo \newdimen \scratchdimenthree
-\newdimen \scratchskipone \newdimen \scratchskiptwo \newdimen \scratchskipthree
-\newbox \scratchmuskipone \newbox \scratchmuskiptwo \newbox \scratchmuskipthree
-\newtoks \scratchtoksone \newtoks \scratchtokstwo \newtoks \scratchtoksthree
-\newbox \scratchboxone \newbox \scratchboxtwo \newbox \scratchboxthree
-
-%D More allocations:
-
-\newskip \zeroskip \zeroskip = 0pt plus 0pt minus 0pt
-\newdimen\zeropoint \zeropoint = 0pt
-\newdimen\onepoint \onepoint = 1pt
-\newdimen\maxdimen \maxdimen = 16383.99999pt
-\newdimen\onebasepoint \onebasepoint = 1bp
-\newdimen\scaledpoint \scaledpoint = 1sp
-\newdimen\thousandpoint\thousandpoint= 1000pt
-
-\let\points\onepoint
-
-\newtoks \emptytoks
-
-%D And even more:
-
-%newcount \minusone \minusone = -1
-\newcount \minustwo \minustwo = -2
-%chardef \zerocount = 0
-%chardef \plusone = 1
-\chardef \plustwo = 2
-\chardef \plusthree = 3
-\chardef \plusfour = 4
-\chardef \plusfive = 5
-\chardef \plussix = 6
-\chardef \plusseven = 7
-\chardef \pluseight = 8
-\chardef \plusnine = 9
-\chardef \plusten = 10
-\chardef \plussixteen = 16
-\chardef \plushundred = 100
-\chardef \pluscxxvii = 127
-\chardef \pluscxxviii = 128
-\chardef \pluscclv = 255
-
-\ifnum\texengine=\luatexengine
- \chardef \pluscclvi = 256
- \chardef \plusthousand = 1000
- \chardef \plustenthousand = 10000
- \chardef \plustwentythousand = 20000
- \chardef \medcard = 32768
- \chardef \maxcard = 65536 % pdftex has less mathchars
-\else
- \mathchardef\pluscclvi = 256
- \mathchardef\plusthousand = 1000
- \mathchardef\plustenthousand = 10000
- \mathchardef\plustwentythousand = 20000
- \newcount \medcard \medcard = 32768 % pdftex has less mathchars
- \newcount \maxcard \maxcard = 65536 % pdftex has less mathchars
-\fi
-
-%D We prefer the more readable variant than in plain
-%D \TEX. User should only use \type {\emptybox}:
-
-\newbox\voidbox
-
-\def\emptybox {\box \voidbox}
-\def\unvoidbox{\unhbox\voidbox}
-
-\let\leavevmode\unvoidbox % we prefer to use \dontleavehmode
-
-%D Some expected plain variants follow. We don't reuse registers
-%D because we don't want clashes.
-
-\newdimen\p@ \p@ \onepoint
-\newcount\m@ne \m@ne \minusone
-\newdimen\z@ \z@ \zeropoint
-\let \@ne \plusone
-\let \tw@ \plustwo
-\let \thr@@ \plusthree
-\let \sixt@@n \sixteen
-\let \@cclv \pluscclv
-\let \@cclvi \pluscclvi
-\newbox \voidb@x
-\newtoks \toks@
-
-%D We define \type {\newif} a la plain \TEX, but will
-%D redefine it later. As Knuth says:
-%D
-%D \startnarrower
-%D And here's a different sort of allocation: for example,
-%D
-%D \starttyping
-%D \newif\iffoo
-%D \stoptyping
-%D
-%D creates \type {\footrue}, \type {\foofalse} to go
-%D with \type {\iffoo}.
-%D \stopnarrower
-
-\def\newif#1%
- {\count@\escapechar
- \escapechar\minusone
- \expandafter\expandafter\expandafter\def\@if #1{true}{\let#1\iftrue }%
- \expandafter\expandafter\expandafter\def\@if#1{false}{\let#1\iffalse}%
- \@if#1{false}% the condition starts out false
- \escapechar\count@}
-
-\def\@if#1#2%
- {\csname\expandafter\if@\string#1#2\endcsname}
-
-\bgroup % `if' is required
-
- \uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}
-
-\egroup
-
-%D Let's test this one:
-
-\newif\ifdone
-
-%D \macros
-%D {@@escape,@@begingroup,@@endgroup,@@mathshift,@@alignment,
-%D @@endofline,@@parameter,@@superscript,@@subscript,
-%D @@ignore,@@space,@@letter,@@other,@@active,@@comment}
-%D
-%D In \CONTEXT\ we sometimes manipulate the \CATCODES\ of certain
-%D characters. Because we are not that good at remembering numbers,
-%D we introduce some symbolic names.
-
-%D As we now have catc-* files, we also have more readable names
-
-\chardef\@@escape = 0
-\chardef\@@begingroup = 1
-\chardef\@@endgroup = 2
-\chardef\@@mathshift = 3
-\chardef\@@alignment = 4
-\chardef\@@endofline = 5
-\chardef\@@parameter = 6
-\chardef\@@superscript = 7
-\chardef\@@subscript = 8
-\chardef\@@ignore = 9
-\chardef\@@space = 10
-\chardef\@@letter = 11
-\chardef\@@other = 12 \chardef\other = 12
-\chardef\@@active = 13 \chardef\active = 13
-\chardef\@@comment = 14
-
-%D Constants to be used with \type {\currentgrouptype}.
-
-\chardef\@@bottomlevelgroup = 0
-\chardef\@@simplegroup = 1
-\chardef\@@hboxgroup = 2
-\chardef\@@adjustedhboxgroup = 3
-\chardef\@@vboxgroup = 4
-\chardef\@@vtopgroup = 5
-\chardef\@@aligngroup = 6
-\chardef\@@noaligngroup = 7
-\chardef\@@outputgroup = 8
-\chardef\@@mathgroup = 9
-\chardef\@@discretionarygroup = 10
-\chardef\@@insertgroup = 11
-\chardef\@@vcentergroup = 12
-\chardef\@@mathchoicegroup = 13
-\chardef\@@semisimplegroup = 14
-\chardef\@@mathshiftgroup = 15
-\chardef\@@mathleftgroup = 16
-
-\chardef\@@vadjustgroup = \@@insertgroup
-
-%D Constants to be used with \type {\interactionmode}.
-
-\chardef\@@batchmode = 0
-\chardef\@@nonstopmode = 1
-\chardef\@@scrollmode = 2
-\chardef\@@errorstopmode = 3
-
-%D Constants to be used with \type {\lastnodetype}. The \type
-%D {\lastnodetype} primitive is \ETEX\ compliant. The valid range is
-%D still -1 .. 15 and glyph nodes have number 0 (used to be char
-%D node) and ligature nodes are mapped to 7. That way macro packages
-%D can use the same symbolic names as in traditional \ETEX. Keep in
-%D mind that the internal node numbers are different and that there
-%D are more node types that 15.
-
-\chardef\@@charnode = 0
-\chardef\@@hlistnode = 1
-\chardef\@@vlistnode = 2
-\chardef\@@rulenode = 3
-\chardef\@@insertnode = 4
-\chardef\@@marknode = 5
-\chardef\@@adjustnode = 6
-\chardef\@@ligaturenode = 7
-\chardef\@@discretionarynode = 8
-\chardef\@@whatsitnode = 9
-\chardef\@@mathnode = 10
-\chardef\@@gluenode = 11
-\chardef\@@kernnode = 12
-\chardef\@@penaltynode = 13
-\chardef\@@unsetnode = 14
-\chardef\@@mathsnode = 15
-
-%D Constants to be used with \type {\currentiftype}.
-
-\chardef\@@charif = 1
-\chardef\@@catif = 2
-\chardef\@@numif = 3
-\chardef\@@dimif = 4
-\chardef\@@oddif = 5
-\chardef\@@vmodeif = 6
-\chardef\@@hmodeif = 7
-\chardef\@@mmodeif = 8
-\chardef\@@innerif = 9
-\chardef\@@voidif = 10
-\chardef\@@hboxif = 11
-\chardef\@@vboxif = 12
-\chardef\@@xif = 13
-\chardef\@@eofif = 14
-\chardef\@@trueif = 15
-\chardef\@@falseif = 16
-\chardef\@@caseif = 17
-\chardef\@@definedif = 18
-\chardef\@@csnameif = 19
-\chardef\@@fontcharif = 20
-
-%D Of course we want even bigger log files, so we copied this
-%D from the \ETEX\ source files.
-%D
-%D When watching such logs, beware of nasty side effects of
-%D \type {\scantokens}, as in:
-%D
-%D \starttyping
-%D \bgroup
-%D \lccode`a=12\lowercase{\xdef\whatever{a}}\egroup
-%D \def\whatever{test \whatever test}
-%D \scantokens\expandafter{\whatever}
-%D \egroup
-%D \stoptyping
-%D
-%D In \LUATEX\ we have ways around this.
-
-\def\tracingall
- {\tracingonline \plusone
- \tracingcommands \plusthree
- \tracingstats \plustwo
- \tracingpages \plusone
- \tracingoutput \plusone
- \tracinglostchars \plustwo
- \tracingmacros \plustwo
- \tracingparagraphs\plusone
- \tracingrestores \plusone
- \showboxbreadth \maxdimen
- \showboxdepth \maxdimen
- \tracinggroups \plusone
- \tracingifs \plusone
- \tracingscantokens\plusone
- \tracingnesting \plusone
- \tracingassigns \plustwo
- \errorstopmode}
-
-\def\loggingall
- {\tracingall
- \tracingonline \zerocount}
-
-\def\tracingnone
- {\tracingassigns \zerocount
- \tracingnesting \zerocount
- \tracingscantokens\zerocount
- \tracingifs \zerocount
- \tracinggroups \zerocount
- \showboxdepth \plusthree
- \showboxbreadth \plusfive
- \tracingrestores \zerocount
- \tracingparagraphs\zerocount
- \tracingmacros \zerocount
- \tracinglostchars \plusone
- \tracingoutput \zerocount
- \tracingpages \zerocount
- \tracingstats \zerocount
- \tracingcommands \zerocount
- \tracingonline \zerocount}
-
-%D Just for tracing purposes we set:
-
-\tracingstats\plusone
-
-%D Here we also save \type {\input}, more will be saved later.
-
-\ifdefined\normalinput \else \let\normalinput\input \fi
-
-%D We don't like outer commands, and we always want access
-%D to the original \type {\input} primitive.
-
-\let\normalouter\outer \def\outer{} % no longer \relax
-
-%D To circumvent dependencies, we can postpone certain
-%D initializations to dumping time, by appending them to the
-%D \type {\everydump} token register.
-
-\ifdefined\normaldump \else \let\normaldump\dump \fi
-
-\newtoks\everydump
-
-\def\dump{\the\everydump\normaldump}
-
-%D The same applies for the startup actions.
-
-\ifdefined\normaleveryjob \else \let\normaleveryjob\everyjob \fi
-
-\let\everyjob\relax \newtoks\everyjob
-
-\normaleveryjob{\the\everyjob}
-
-\def\appendtotoks #1{\def\temp{#1}\afterassignment\doappendtotoks \scratchtoks=}
-\def\prependtotoks#1{\def\temp{#1}\afterassignment\doprependtotoks\scratchtoks=}
-
-\def\doappendtotoks {\expandafter\expandafter\expandafter{\expandafter\the\expandafter\temp\the\scratchtoks}}
-\def\doprependtotoks{\expandafter\expandafter\expandafter{\expandafter\the\expandafter\scratchtoks\the\temp}}
-
-%D \macros
-%D {begcsname}
-%D
-%D Handy for \ETEX-only usage (avoids making \type {\relax}'s:
-
-\def\begcsname#1\endcsname{\ifcsname#1\endcsname\csname#1\endcsname\fi}
-
-%D Now come a few macros that might be needed in successive loading:
-
-\let\endgraf\par
-\let\endline\cr
-
-\def\space{ }
-\def\empty{}
-\def\null {\hbox{}}
-
-%D The following two might be overloaded later on but some modules need
-%D then earlier. These functionality is reflected in the name and will not
-%D change.
-
-\bgroup
- \catcode`\^^M=\active%
- \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
- \global\let^^M\par%
-\egroup
-
-\bgroup
- \gdef\obeyspaces{\catcode`\ \active}%
- \obeyspaces\global\let =\space%
-\egroup
-
-%D Also needed might be a simple loop structure and we borrow
-%D plain \TEX's one as it is often expected to be present and
-%D it is about the fastest you can get. Beware: this macro
-%D does not support nested loops. We use a namespace prefix
-%D \type {@@pln}.
-
-\long\def\loop#1\repeat{\long\def\@@plnbody{#1}\@@plniterate}
-
-%D The following makes \type {\loop} \unknown\ \type {\if}
-%D \unknown\ \type {\repeat} skippable (clever trick):
-
-\let\repeat\fi % so both \loop and \repeat are reserved words!
-
-%D The original (no \type {@@pln} there):
-%D
-%D \starttyping
-%D \def\@@plniterate{\@@plnbody\let\next\@@plniterate\else\let\next\relax\fi\next}
-%D \stoptyping
-%D
-%D A more efficient alternative:
-%D
-%D \starttyping
-%D \def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\expandafter\relax\fi}
-%D \stoptyping
-%D
-%D An even more efficient one:
-
-\def\@@plniterate{\@@plnbody\expandafter\@@plniterate\else\fi}
-
-%D We don't define a real output routine yet but at least get rid
-%D of pages:
-
-\output{\shipout\box\normalpagebox}
-
-%D Although we don't add pagenumbers yet we alias the default
-%D register used for counting pages:
-
-\countdef\pageno=0 \pageno=1 % first page is number 1
-
-%D Beside the raw counter \type {\pageno} the \type {\folio}
-%D macro provides the value.
-
-\def\folio{\the\pageno} % kind of expected and therefore reserved
-
-%D The following registers are kind of standard and (for the moment)
-%D we define them here. This might change.
-
-\newskip \bigskipamount \bigskipamount = 12pt plus 4pt minus 4pt
-\newskip \medskipamount \medskipamount = 6pt plus 2pt minus 2pt
-\newskip \smallskipamount \smallskipamount = 3pt plus 1pt minus 1pt
-
-\baselineskip = 12pt
-\lineskip = 1pt
-\lineskiplimit = 0pt
-
-%D Again a few kind-of-extensions the core:
-
-\newskip \hideskip \hideskip = -1000pt plus 1fill
-\newskip \centering \centering = 0pt plus 1000pt minus 1000pt
-
-\def\hidewidth % for alignment entries that can stick out
- {\hskip\hideskip}
-
-\def\ialign % initialized \halign
- {\everycr{}%
- \tabskip\zeroskip
- \halign}
-
-\newcount \mscount
-
-\def\spanomit{\span\omit} % bypass error message
-
-\def\multispan#1%
- {\omit
- \mscount#1\relax
- \loop
- \ifnum\mscount>\plusone
- \spanomit \advance\mscount\minusone
- \repeat}
-
-%D The next section deals with selective definitions in
-%D later modules. One can of course use the \type {\texengine}
-%D number that we defined earlier instead.
-
-\bgroup \obeylines
- \gdef\pickupSOMETEX#1%
- {\expandafter\gdef\csname begin#1\endcsname{\bgroup\obeylines\dopickupSOMETEX{#1}}}
- \gdef\dopickupSOMETEX#1#2
- % {\egroup\immediate\write16{special code for #1 -> [line \the\inputlineno] \detokenize{#2}}}
- {\egroup}
-\egroup
-
-\let\endTEX \relax \long\def\beginTEX #1\endTEX {}
-\let\endETEX \relax \long\def\beginETEX #1\endETEX {}
-\let\endXETEX \relax \long\def\beginXETEX #1\endXETEX {}
-\let\endLUATEX\relax \long\def\beginLUATEX#1\endLUATEX{}
-\let\endOLDTEX\relax \long\def\beginOLDTEX#1\endOLDTEX{}
-\let\endNEWTEX\relax \long\def\beginNEWTEX#1\endNEWTEX{}
-
-\pickupSOMETEX{ETEX}
-
-\ifnum\texengine=\xetexengine
- \pickupSOMETEX{XETEX}
-\fi
-\ifnum\texengine=\luatexengine
- \pickupSOMETEX{LUATEX}
-\fi
-\ifnum\texengine<\xetexengine
- \pickupSOMETEX{OLDTEX}
-\else
- \pickupSOMETEX{NEWTEX}
-\fi
-
-%D \macros
-%D {bindprimitive}
-%D
-%D We can remap primitives (which is needed because of changes in
-%D for instance \PDFTEX).
-
-\def\bindprimitive#1 #2 % new old
- {\ifcsname#1\endcsname \else \ifcsname#2\endcsname
- \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname
- \fi \fi}
-
-%D Because \XETEX\ also implements some \PDFTEX\ functionality, we take
-%D care of this here instead of a dedicated module. Later modules need
-%D to handle the undefined cases.
-
-%D These messy checks will disappear.
-
-% new after 1.10, watch the change in prefix
-
-\bindprimitive quitvmode ptexquitvmode
-\bindprimitive noligatures ptexnoligatures
-\bindprimitive setrandomseed ptexsetrandomseed
-\bindprimitive uniformdeviate ptexuniformdeviate
-
-\bindprimitive quitvmode pdfquitvmode
-\bindprimitive noligatures pdfnoligatures
-\bindprimitive setrandomseed pdfsetrandomseed
-\bindprimitive uniformdeviate pdfuniformdeviate
-
-\bindprimitive resettimer pdfresettimer
-\bindprimitive elapsedtime pdfelapsedtime
-
-% new per 1.40
-
-\bindprimitive ifprimitive ifpdfprimitive
-\bindprimitive primitive pdfprimitive
-\bindprimitive ifabsdim ifpdfabsdim
-\bindprimitive ifabsnum ifpdfabsnum
-
-\ifnum\texengine=\xetexengine \else % this test might disappear some day
-
- \pdfminorversion \plusfive
-
- \ifdefined\pdfcompresslevel \else \newcount\pdfcompresslevel \fi
- \ifdefined\pdfobjcompresslevel \else \newcount\pdfobjcompresslevel \fi
- \ifdefined\pdfgentounicode \else \newcount\pdfgentounicode \fi \pdfgentounicode \plusone
- \ifdefined\pdfinclusioncopyfonts\else \newcount\pdfinclusioncopyfonts \fi \pdfinclusioncopyfonts\plusone
-
- \def\nopdfcompression {\pdfobjcompresslevel\zerocount \pdfcompresslevel\zerocount}
- \def\maximumpdfcompression{\pdfobjcompresslevel\plusnine \pdfcompresslevel\plusnine }
- \def\normalpdfcompression {\pdfobjcompresslevel\plusthree \pdfcompresslevel\plusthree}
-
- \normalpdfcompression
-
- \let\normalsetrandomseed \setrandomseed
- \let\normaluniformdeviate\uniformdeviate
-
-\fi
-
-%D Handy.
-
-\ifnum\texengine=\luatexengine
- \ifdefined\suppresslongerror % for the moment test
- \suppresslongerror\plusone
- \fi
-\fi
-
-%D Basic status stuff.
-
-\newif\ifproductionrun
-
-%D We need to make sure that we start up in \DVI\ mode, so,
-%D after testing for running \PDFTEX, we default to \DVI.
-
-\ifx\pdftexversion\undefined \newcount\pdfoutput \fi \pdfoutput=0
-
-%D For those who expect this \unknown
-
-\ifx\fmtname \undefined \def\fmtname {ConTeXt Minimized Plain TeX} \fi
-\ifx\fmtversion\undefined \def\fmtversion{3.1415926} \fi
-
-\let\normalfmtversion\fmtversion
-
-%D A few bonus macros:
-
-\def\modulonumber#1#2{\the\numexpr#2-((((#2+(#1/2))/#1)-1)*#1)\relax}
-\def\dividonumber#1#2{\the\numexpr(#2-(#1/2))/#1\relax}
-
-\ifnum\texengine=\xetexengine
- \edef\xetexversion {\numexpr\XeTeXversion*100+(\expandafter\gobbleoneargument\XeTeXrevision-5)/10\relax}
- \edef\xetexrevision {\the\numexpr(\expandafter\gobbleoneargument\XeTeXrevision-50)/100\relax}
-\fi
-
-\ifcase\texengine
- \def\texenginename {impossible}
- \edef\texengineversion{0}
-\or
- \def\texenginename {pdfTeX}
- \edef\texengineversion{\dividonumber{100}\pdftexversion.\modulonumber{100}\pdftexversion.\pdftexrevision}
-\or
- \def\texenginename {XeTeX}
- \edef\texengineversion{\dividonumber{100}\xetexversion .\modulonumber{100}\xetexversion .\xetexrevision}
-\or
- \def\texenginename {LuaTeX}
- \edef\texengineversion{\dividonumber{100}\luatexversion.\modulonumber{100}\luatexversion.\luatexrevision}
-\else
- \def\texenginename {impossible}
- \edef\texengineversion{0}
-\fi
-
-%D While cleaning this code up a bit I was listening to Heather
-%D Nova's \CD\ Redbird. The first song on that \CD\ ends with
-%D a few lines suitable for ending this initialization module:
-%D
-%D \startlines
-%D And there's so much I can do for you
-%D Given time I know that I can prove
-%D Now my world is opened up to you
-%D Come inside
-%D
-%D Welcome to my life
-%D Welcome to my world
-%D Come inside
-%D \stoplines
-%D
-%D So let's see what \TEX\ can do now that we've opened up
-%D the basic machinery.
-
-\protect \endinput