%D \module %D [ file=mult-sys, %D version=1996.06.01, %D title=\CONTEXT\ Multilingual Macros, %D subtitle=System, %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 In boring module we define a lot of obscure but useful %D system constants. By doing so we save lots of memory while %D at the same time we prevent ourself from typing errors. \writestatus{loading}{Context Multilingual Macros / System} \unprotect %D The constants are grouped in such a way that there is a %D minimal change of conflicts. %D %D \starttyping %D \definesystemconstants {word} %D \definemessageconstant {word} %D \stoptyping %D %D This commands generate \type{\s!word} and \type{\m!word}. %D First we define some system constants used for both the %D multi||lingual interface and multi||linguag typesetting. \definesystemconstant {afrikaans} \definesystemconstant {af} \definesystemconstant {catalan} \definesystemconstant {ca} \definesystemconstant {chinese} \definesystemconstant {cn} \definesystemconstant {croation} \definesystemconstant {hr} \definesystemconstant {czech} \definesystemconstant {cz} \definesystemconstant {danish} \definesystemconstant {da} \definesystemconstant {dutch} \definesystemconstant {nl} \definesystemconstant {english} \definesystemconstant {en} \definesystemconstant {finish} \definesystemconstant {fi} \definesystemconstant {french} \definesystemconstant {fr} \definesystemconstant {german} \definesystemconstant {de} \definesystemconstant {hungarian} \definesystemconstant {hu} \definesystemconstant {italian} \definesystemconstant {it} \definesystemconstant {latin} \definesystemconstant {la} \definesystemconstant {norwegian} \definesystemconstant {no} \definesystemconstant {polish} \definesystemconstant {pl} \definesystemconstant {portuguese} \definesystemconstant {pt} \definesystemconstant {romanian} \definesystemconstant {ro} \definesystemconstant {russian} \definesystemconstant {ru} \definesystemconstant {slovak} \definesystemconstant {sk} \definesystemconstant {slovenian} \definesystemconstant {sl} \definesystemconstant {slovene} \definesystemconstant {spanish} \definesystemconstant {es} \definesystemconstant {swedish} \definesystemconstant {sv} \definesystemconstant {turkish} \definesystemconstant {tr} \definesystemconstant {ukenglish} \definesystemconstant {uk} \definesystemconstant {ukrainian} \definesystemconstant {ua} \definesystemconstant {usenglish} \definesystemconstant {us} \definesystemconstant {greek} \definesystemconstant {gr} \definesystemconstant {vietnamese} \definesystemconstant {vn} %D For proper \UNICODE\ support we need a few font related %D constants. \definesystemconstant {BoldItalic} \definesystemconstant {BoldSlanted} \definesystemconstant {Bold} \definesystemconstant {Italic} \definesystemconstant {Regular} \definesystemconstant {Slanted} \definesystemconstant {Unicode} \definesystemconstant {Serif} \definesystemconstant {Regular} \definesystemconstant {Sans} \definesystemconstant {Support} \definesystemconstant {Mono} \definesystemconstant {Type} \definesystemconstant {Normal} \definesystemconstant {Caps} %D As the name of their define command states, the next set of %D constants is used in the message macro's. \definemessageconstant {colors} \definemessageconstant {columns} \definemessageconstant {encodings} \definemessageconstant {figures} \definemessageconstant {files} \definemessageconstant {floatblocks} \definemessageconstant {fonts} \definemessageconstant {handlings} \definemessageconstant {interactions} \definemessageconstant {javascript} \definemessageconstant {layouts} \definemessageconstant {linguals} \definemessageconstant {references} \definemessageconstant {specials} \definemessageconstant {structures} \definemessageconstant {symbols} \definemessageconstant {systems} \definemessageconstant {textblocks} \definemessageconstant {verbatims} \definemessageconstant {versions} %D The word \type{height} takes 6~token memory cells. The %D control sequence \type{\height} on the other hand uses only %D one. Knowing this, we can improve the performance of \TEX, %D both is terms of speed and memory usage, by using control %D sequences instead of the words written in full. %D %D Where in the \ASCII\ file the second lines takes nine extra %D characters, \TEX\ saves us 13~tokens. %D %D \starttyping %D \hrule width 10pt height 2pt depth 1pt %D \hrule \!!width 10pt \!!height 2pt \!!depth 1pt %D \stoptyping %D %D One condition is that we have defined \type{\!!height}, %D \type{\!!width} and \type{\!!depth} as respectively %D \type{height}, \type{width} and \type{depth}. Using this %D scheme therefore only makes sense when a token sequence is %D used more than once. Savings like this should of course be %D implemented in english, just because \TEX\ is english. \def\!!width {width} \def\!!height {height} \def\!!depth {depth} \def\!!plus {plus} \def\!!minus {minus} \def\!!fill {fill} \def\!!to {to} %D The same goes for some \CONTEXT\ constants, used in the %D definition of private commands: \definesystemconstant {next} \definesystemconstant {pickup} \definesystemconstant {ascii} \definesystemconstant {default} \definesystemconstant {unknown} \definesystemconstant {action} \definesystemconstant {compare} \definesystemconstant {do} \definesystemconstant {dodo} \definesystemconstant {complex} \definesystemconstant {simple} \definesystemconstant {start} \definesystemconstant {stop} \definesystemconstant {dummy} \definesystemconstant {local} \definesystemconstant {global} \definesystemconstant {done} \definesystemconstant {font} %D A more experienced \TEX\ user will recognize the next four %D constants. We need these because font-definitions are %D partially english. \definesystemconstant {run} \definesystemconstant {fam} \definesystemconstant {text} \definesystemconstant {script} \definesystemconstant {scriptscript} \definesystemconstant {lefthyphenmin} \definesystemconstant {righthyphenmin} \definesystemconstant {skewchar} \definesystemconstant {hyphenchar} \definesystemconstant {encoding} \definesystemconstant {mapping} \definesystemconstant {language} \definesystemconstant {patterns} \definesystemconstant {rscale} \definesystemconstant {handling} \definesystemconstant {ucmap} \definesystemconstant {property} \definesystemconstant {overprint} \definesystemconstant {layer} \definesystemconstant {effect} \definesystemconstant {negative} \definesystemconstant {black} \definesystemconstant {white} %D Just to be complete we define the standard \TEX\ units. \definesystemconstant {cm} \definesystemconstant {em} \definesystemconstant {ex} \definesystemconstant {mm} \definesystemconstant {pt} \definesystemconstant {sp} \definesystemconstant {bp} \definesystemconstant {in} %D These constants are used for internal and utility %D commands. \definesystemconstant {check} \definesystemconstant {reset} \definesystemconstant {set} \definesystemconstant {entrya} \definesystemconstant {entryb} \definesystemconstant {entryc} \definesystemconstant {entry} \definesystemconstant {see} \definesystemconstant {from} \definesystemconstant {to} \definesystemconstant {page} \definesystemconstant {line} \definesystemconstant {synonym} \definesystemconstant {reference} \definesystemconstant {main} \definesystemconstant {list} \definesystemconstant {item} \definesystemconstant {itemcount} \definesystemconstant {number} \definesystemconstant {references} \definesystemconstant {between} \definesystemconstant {format} \definesystemconstant {old} \definesystemconstant {thisisblock} \definesystemconstant {thiswasblock} \definesystemconstant {figurepreset} \definesystemconstant {empty} %D Some \CONTEXT\ commands take a two||pass aproach to %D optimize the typesetting. Each two||pass object has its %D own tag. \definesystemconstant {pass} \definesystemconstant {data} \definesystemconstant {float} \definesystemconstant {list} \definesystemconstant {page} \definesystemconstant {subpage} \definesystemconstant {margin} \definesystemconstant {profile} \definesystemconstant {versionbegin} \definesystemconstant {versionend} \definesystemconstant {cross} \definesystemconstant {paragraph} %D A lot of macros use tags to distinguish between different %D objects, e.g. lists and registers. \definesystemconstant {prt} % part (deel) \definesystemconstant {chp} % chapter (hoofdstuk) \definesystemconstant {sec} % section (paragraaf) \definesystemconstant {tit} % title (titel) \definesystemconstant {sub} % subject (onderwerp) \definesystemconstant {mar} % margin (marge) \definesystemconstant {num} % number (doornummeren) \definesystemconstant {def} % definition (doordefinieren) \definesystemconstant {for} % formula (formule) \definesystemconstant {fnt} % footnote (voetnoot) \definesystemconstant {ind} % index (register) \definesystemconstant {lin} % linked index \definesystemconstant {lst} % list (opsomming) \definesystemconstant {flt} % float (plaatsblok) \definesystemconstant {pag} % page (pagina) \definesystemconstant {txt} % text (tekst) \definesystemconstant {ref} % reference (verwijzing) \definesystemconstant {lab} % label (label) \definesystemconstant {aut} % automatic (inhoud, index) \definesystemconstant {vwa} % automatic (illustrations) \definesystemconstant {vwb} % automatic (illustrations) \definesystemconstant {kop} % kop % still dutch %D Reference labels can be tagged by users, for instance by %D means of \type{tag:}. The reference mechanism itself uses %D some tags too. These are definitely not to be used by users. %D Here they are: \definereferenceconstant {cross} {:c:} % cross reference \definereferenceconstant {view} {:v:} % view reference \definereferenceconstant {viewa} {:a:} % view reference test a \definereferenceconstant {viewb} {:b:} % view reference test b \definereferenceconstant {page} {:p:} % page referece \definereferenceconstant {list} {:l:} % list reference \definereferenceconstant {exec} {:e:} % execution reference \definereferenceconstant {form} {:m:} % form reference \definereferenceconstant {syst} {:s:} % system reference \definereferenceconstant {from} {:f:} % from list reference \definereferenceconstant {to} {:t:} % to list reference \definereferenceconstant {object} {:o:} % object reference \definereferenceconstant {driver} {:d:} % driver object reference \definereferenceconstant {widget} {:w:} % field chain reference \definereferenceconstant {java} {:j:} % java scripts %D When we use numbers and dimensions the same applies as %D with the keywords like \type{width} and \type{plus} %D mentioned earlier. \def\!!ten {10} \def\!!twelve {12} \def\!!hundred {100} \def\!!thousand {1000} \def\!!tenthousand {10000} \def\!!maxcard {65536} \def\!!medcard {32768} \def\!!zeropoint {0pt} \def\!!onepoint {1pt} \def\!!twopoint {2pt} \def\!!threepoint {3pt} \def\!!fourpoint {4pt} \def\!!fivepoint {5pt} \def\!!sixpoint {6pt} \def\!!sevenpoint {7pt} \def\!!eightpoint {8pt} \def\!!ninepoint {9pt} \def\!!tenpoint {10pt} \def\!!elevenpoint {11pt} \def\!!twelvepoint {12pt} \def\!!fourteenpointfour {14.4pt} \newdimen \zeropoint \zeropoint = 0pt \newdimen \onepoint \onepoint = 1pt \newdimen \onebasepoint \onebasepoint = 1bp \chardef \scaledpoint = 1 \let\onerealpoint\onepoint % needed for latex \newcount\medcard \medcard\!!medcard % used in font module \newcount\maxcard \maxcard\!!maxcard % used in font module \ifx\thousandpoint\undefined \newdimen\thousandpoint \fi \thousandpoint=1000pt %D Another optimization is: \let\points\onepoint %D A rough test is: %D %D \starttyping %D \def\TestMe % 7.75 sec on a P4/2G %D {\dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points %D \dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points\dimen0=10\points} %D %D \def\TestMe % 11.5 sec on a P4/2G %D {\dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt% %D \dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt\dimen0=10pt} %D %D \def\TestMe % 12.5 sec on a P4/2G %D {\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt% %D \dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt\dimen0=10\s!pt} %D %D \testfeatureonce {500000}{\TestMe} %D \stoptyping %D Variables are composed of a command specific tag and a user %D supplied variable (system constant). The first tag \type{ag} %D for instance is available as \type{\??ag} and expands to %D \type{@@ag} in composed variables. % vervallen : hd hr hm vt vr vm tr tn te br bm bo on om or \definesystemvariable {ab} % AlignedBoxes \definesystemvariable {ag} % AchterGrond \definesystemvariable {al} % ALinea's \definesystemvariable {am} % interActieMenu \definesystemvariable {an} % ANchor \definesystemvariable {as} % AlignmentSwitch \definesystemvariable {ba} % synchronisatieBAlk \definesystemvariable {be} % startstop (BeginEnd) \definesystemvariable {bj} % BlokJe \definesystemvariable {bk} % Blokken (floats) \definesystemvariable {bl} % BLanko \definesystemvariable {bg} % BleedinG \definesystemvariable {bo} % BlankO (definitions) \definesystemvariable {bs} % SelecteerBlokken \definesystemvariable {bt} % BuTton \definesystemvariable {bu} % BUffer \definesystemvariable {bv} % Brieven \definesystemvariable {by} % Per \definesystemvariable {cb} % CollectBox \definesystemvariable {cc} % Comment \definesystemvariable {ci} % CItaat \definesystemvariable {cl} % kleur (CoLor setup) \definesystemvariable {cn} % CollumN \definesystemvariable {co} % COmbinaties \definesystemvariable {cp} % CliP \definesystemvariable {cr} % kleur (ColoR) \definesystemvariable {cs} % kleur (ColorSeparation \definesystemvariable {cv} % ConVersie \definesystemvariable {cy} % CrYteria \definesystemvariable {da} % DAte \definesystemvariable {dc} % DroppedCaps \definesystemvariable {dd} % DoorDefinieren \definesystemvariable {de} % DEel \definesystemvariable {dl} % DunneLijnen \definesystemvariable {dn} % DoorNummeren \definesystemvariable {dm} % DefineMeasure \definesystemvariable {do} % DefinieerOpmaak \definesystemvariable {du} % DUmmy \definesystemvariable {ds} % DoorSpringen \definesystemvariable {ef} % ExternFiguur \definesystemvariable {ec} % EnCoding \definesystemvariable {en} % ENvironments \definesystemvariable {ep} % ExternfiguurPreset \definesystemvariable {er} % external resources \definesystemvariable {ex} % ExterneFiguren \definesystemvariable {ht} % HiddenText \definesystemvariable {fc} % FramedContent \definesystemvariable {fd} % FielD \definesystemvariable {fe} % FoxetExtensions \definesystemvariable {ff} % FontFile \definesystemvariable {fg} % FiGuurmaten \definesystemvariable {fi} % FIle \definesystemvariable {fl} % Floats \definesystemvariable {fm} % ForMules \definesystemvariable {fp} % FilegroeP \definesystemvariable {fr} % ForM \definesystemvariable {fs} % FileSynonym \definesystemvariable {ft} % FonTs \definesystemvariable {fv} % FontVariant \definesystemvariable {fx} % FoXet \definesystemvariable {ha} % HAng \definesystemvariable {hs} % HSpace \definesystemvariable {ia} % Interactie \definesystemvariable {ib} % InteractieBalk \definesystemvariable {id} % Index \definesystemvariable {ig} % ItemGroup \definesystemvariable {ih} % InHoudsopgave \definesystemvariable {ii} % stelIndexIn \definesystemvariable {il} % stelInvulRegelsin \definesystemvariable {im} % InMarge \definesystemvariable {in} % INspringen \definesystemvariable {ip} % InsertPages \definesystemvariable {is} % Items \definesystemvariable {it} % stelInTerliniein \definesystemvariable {iv} % stelInvulLijnenin \definesystemvariable {ka} % KAntlijn \definesystemvariable {kd} % KaDerteksten \definesystemvariable {kj} % KopJes (floats) \definesystemvariable {kk} % Kapitalen \definesystemvariable {kl} % KoLommen \definesystemvariable {km} % KenMerk \definesystemvariable {ko} % KOp(pen) \definesystemvariable {kp} % KopPelteken \definesystemvariable {kr} % KoRps \definesystemvariable {ks} % KolomSpan \definesystemvariable {kt} % KonTakten \definesystemvariable {kw} % KontaktWaarde \definesystemvariable {la} % LAnguage \definesystemvariable {lb} % LaBels \definesystemvariable {ld} % LegenDa \definesystemvariable {le} % LinetablE \definesystemvariable {lg} % taal (LanGuage) \definesystemvariable {li} % LIjst \definesystemvariable {ll} % Layers \definesystemvariable {lx} % LayerteXt \definesystemvariable {ln} % LijNen \definesystemvariable {lo} % LOgos \definesystemvariable {lt} % LiTeratuur \definesystemvariable {ly} % LaYout \definesystemvariable {ma} % MargeAchtergrond \definesystemvariable {mb} % MargeBlokken \definesystemvariable {mg} % Metapost paGe \definesystemvariable {mk} % MarKering \definesystemvariable {mt} % inline MaTh \definesystemvariable {mo} % Math Options \definesystemvariable {nm} % Nummering \definesystemvariable {np} % NaastPlaatsen \definesystemvariable {nr} % Nummeren \definesystemvariable {of} % OFfset \definesystemvariable {oi} % OmlijndInstellingen \definesystemvariable {ol} % OmLijnd \definesystemvariable {on} % ONderstreep \definesystemvariable {oo} % OpsOmmingen \definesystemvariable {op} % OPsomming \definesystemvariable {or} % OtpfilteR \definesystemvariable {os} % OffSet \definesystemvariable {ot} % OTpsequence \definesystemvariable {ov} % OVerlay \definesystemvariable {ox} % OffsetBox \definesystemvariable {pa} % PAlet \definesystemvariable {pb} % PuBlicatie \definesystemvariable {pc} % PageComment \definesystemvariable {pe} % PagEhandler \definesystemvariable {pf} % ProFiel \definesystemvariable {pg} % KoppelPagina \definesystemvariable {ph} % ParagrapH \definesystemvariable {pl} % PLaats \definesystemvariable {pn} % PaginaNummer \definesystemvariable {pp} % PaPier \definesystemvariable {pr} % PRogrammas \definesystemvariable {ps} % PoSitioneren \definesystemvariable {pt} % PageshifT \definesystemvariable {py} % PropertYs \definesystemvariable {rd} % RenDering \definesystemvariable {rf} % ReFereren \definesystemvariable {rg} % ReGel \definesystemvariable {rl} % ReferentieLijst \definesystemvariable {rn} % RegelNummer \definesystemvariable {ro} % ROteren \definesystemvariable {rr} % linenotes \definesystemvariable {rs} % RaSters \definesystemvariable {rt} % RoosTers \definesystemvariable {rv} % ReserVeerfiguur \definesystemvariable {rw} % RenderingWindow \definesystemvariable {sa} % ScAle \definesystemvariable {sb} % SectieBlok \definesystemvariable {sc} % SCherm \definesystemvariable {sd} % SounD \definesystemvariable {se} % SEctie \definesystemvariable {sf} % SpeciFics \definesystemvariable {sg} % SpacinG \definesystemvariable {sh} % ShapeText \definesystemvariable {si} % SplIt \definesystemvariable {sk} % SectieKop \definesystemvariable {sl} % SmalLer \definesystemvariable {sm} % SynonieMen \definesystemvariable {sn} % SubNummer \definesystemvariable {so} % SOrteren \definesystemvariable {sp} % SelecteerPapier \definesystemvariable {sr} % SpacehandleR \definesystemvariable {ss} % Symbool \definesystemvariable {st} % STickers \definesystemvariable {su} % SetUp \definesystemvariable {sv} % SysteemVariabelen \definesystemvariable {sy} % SYnchronisatie \definesystemvariable {ta} % TAb \definesystemvariable {tb} % TekstBlokken \definesystemvariable {td} % TextbackgrounDs \definesystemvariable {te} % TEmplate \definesystemvariable {tf} % TypeFace \definesystemvariable {tg} % Tex paGe \definesystemvariable {ti} % TabelInstellingen \definesystemvariable {tk} % Teksten \definesystemvariable {tl} % TekstLijnen \definesystemvariable {tm} % TypesynonyM \definesystemvariable {tp} % TyPen \definesystemvariable {tx} % TeXtflow \definesystemvariable {ts} % TypeScript \definesystemvariable {tt} % TabulaTe \definesystemvariable {ty} % TYpe \definesystemvariable {uc} % Unicode \definesystemvariable {ui} % UItvoer \definesystemvariable {ur} % URl \definesystemvariable {ve} % VErsie \definesystemvariable {vn} % VoetNoten \definesystemvariable {vt} % VerTical \definesystemvariable {wr} % WitRuimte \definesystemvariable {xf} % XML File \definesystemvariable {xp} % XML Processing \definesystemvariable {xy} % schaal \definesystemvariable {za} % ZetspiegelAanpassing %D Next we define some language independant one letter %D variables and keywords. \defineinterfaceconstant {x} {x} % x offset \defineinterfaceconstant {y} {y} % y offset \defineinterfaceconstant {w} {w} % width \defineinterfaceconstant {h} {h} % height \defineinterfaceconstant {s} {s} % size \defineinterfaceconstant {t} {t} % title \defineinterfaceconstant {c} {c} % creator \defineinterfaceconstant {e} {e} % extension \defineinterfaceconstant {f} {f} % file \defineinterfaceconstant {a} {a} % kunnen weg \defineinterfaceconstant {b} {b} % kunnen weg \defineinterfaceconstant {c} {c} % kunnen weg \defineinterfaceconstant {d} {d} % kunnen weg \defineinterfaceconstant {e} {e} % kunnen weg \defineinterfaceconstant {s} {s} \defineinterfaceconstant {r} {r} \defineinterfaceconstant {g} {g} \defineinterfaceconstant {b} {b} \defineinterfaceconstant {c} {c} \defineinterfaceconstant {m} {m} \defineinterfaceconstant {y} {y} \defineinterfaceconstant {k} {k} \defineinterfaceconstant {a} {a} % alternative \defineinterfaceconstant {t} {t} % transparency \defineinterfaceconstant {p} {p} % percentage \defineinterfaceconstant {t} {t} \defineinterfaceconstant {h} {h} \defineinterfaceconstant {b} {b} \defineinterfaceconstant {rgb} {rgb} \defineinterfacevariable {rgb} {rgb} \defineinterfaceconstant {cmyk} {cmyk} \defineinterfacevariable {cmyk} {cmyk} \defineinterfaceconstant {mp} {mp} \defineinterfacevariable {mp} {mp} \defineinterfacevariable {s} {s} \defineinterfacevariable {a} {a} \defineinterfacevariable {b} {b} \defineinterfacevariable {c} {c} \defineinterfacevariable {d} {d} %D The names of files and their extensions are fixed. %D \CONTEXT\ uses as less files as possible. Utility files can %D be recognized by the first two characters of the extension: %D \type{tu}. \definefileconstant {utilityfilename} {texutil} \definefileconstant {blockextension} {tub} \definefileconstant {figureextension} {tuf} \definefileconstant {inputextension} {tui} \definefileconstant {outputextension} {tuo} % tup for previous run \definefileconstant {optionextension} {top} \definefileconstant {temporaryextension} {tmp} \definefileconstant {patternsextension} {pat} \definefileconstant {hyphensextension} {hyp} \definefileconstant {fontmapextension} {map} %D These files are loaded at start||up. They may contain system %D specific setups (or calls to other files), old macro's, to %D garantee compatibility and new macro's noy yet present in %D the format. \definefileconstant {errfilename} {cont-err} \definefileconstant {sysfilename} {cont-sys} \definefileconstant {oldfilename} {cont-old} \definefileconstant {newfilename} {cont-new} \definefileconstant {filfilename} {cont-fil} \definefileconstant {modfilename} {cont-mod} %D Handy for typescripts: \definetypescriptconstant {name} {name} \definetypescriptconstant {default} {default} \definetypescriptconstant {map} {map} \definetypescriptconstant {special} {special} \definetypescriptconstant {size} {size} %D The next two files specify user settings as well as %D \TEXEXEC\ settings when generating a format. \definefileconstant {usrfilename} {cont-usr} \definefileconstant {fmtfilename} {cont-fmt} %D The setup files for the language, font, color and special %D subsystems have a common prefix. This means that we have at %D most three characters for unique filenames. \definefileconstant {colorprefix} {colo-} \definefileconstant {encodingprefix} {enco-} \definefileconstant {filterprefix} {filt-} \definefileconstant {fontprefix} {font-} \definefileconstant {handlingprefix} {hand-} \definefileconstant {javascriptprefix} {java-} \definefileconstant {languageprefix} {lang-} \definefileconstant {mathprefix} {math-} \definefileconstant {metapostprefix} {meta-} \definefileconstant {regimeprefix} {regi-} \definefileconstant {specialprefix} {spec-} \definefileconstant {symbolprefix} {symb-} \definefileconstant {typeprefix} {type-} \definefileconstant {xtagprefix} {xtag-} \definefileconstant {propprefix} {prop-} \definefileconstant {unicprefix} {unic-} \definefileconstant {sortprefix} {sort-} \definefileconstant {moduleprefix} {m-} \definefileconstant {styleprefix} {s-} \definefileconstant {xstyleprefix} {x-} \definefileconstant {privateprefix} {p-} \definefileconstant {thirdprefix} {t-} %definefileconstant {beforeprefix} {b-} %definefileconstant {afterprefix} {a-} %D \CONTEXT\ follows different strategies for finding files. %D The macros that are responsible for this 'clever' searching %D make use of two (very important) path specifiers. \definefileconstant {pathseparator} {/} \definefileconstant {currentpath} {.} \definefileconstant {parentpath} {..} %D The way fonts are defined and called upon is language %D independant. We follow the scheme laid down by Knuth in %D Plain \TEX. We'll explain their meaning later. \defineinterfaceconstant {tf} {tf} \defineinterfaceconstant {bf} {bf} \defineinterfaceconstant {bs} {bs} \defineinterfaceconstant {bi} {bi} \defineinterfaceconstant {sl} {sl} \defineinterfaceconstant {it} {it} \defineinterfaceconstant {sc} {sc} \defineinterfaceconstant {rm} {rm} \defineinterfaceconstant {ss} {ss} \defineinterfaceconstant {tt} {tt} \defineinterfaceconstant {hw} {hw} \defineinterfaceconstant {cg} {cg} \defineinterfaceconstant {os} {os} \defineinterfaceconstant {mm} {mm} \defineinterfaceconstant {i} {i} \defineinterfaceconstant {nn} {nn} \defineinterfaceconstant {x} {x} \defineinterfaceconstant {xx} {xx} \defineinterfaceconstant {em} {em} \defineinterfaceconstant {mi} {mi} \defineinterfaceconstant {sy} {sy} \defineinterfaceconstant {ex} {ex} \defineinterfaceconstant {mr} {mr} \defineinterfaceconstant {ma} {ma} \defineinterfaceconstant {mb} {mb} \defineinterfaceconstant {mc} {mc} %D For figure inclusion we need: \defineinterfaceconstant {tif} {tif} \defineinterfaceconstant {eps} {eps} \defineinterfaceconstant {mps} {mps} \defineinterfaceconstant {jpg} {jpg} \defineinterfaceconstant {pdf} {pdf} \defineinterfaceconstant {png} {png} \defineinterfaceconstant {avi} {avi} \defineinterfaceconstant {mov} {mov} \defineinterfaceconstant {svg} {svg} \defineinterfaceconstant {tex} {tex} \defineinterfaceconstant {tmp} {tmp} %D A careful reader will have noticed that in the module %D \type{mult-ini} we defined \type{\selectinterface}. We were %D not yet able to actually select an interface, because we %D still had to define the constants and variables. Now we've %D done so, selection is permitted. \selectinterface %D And only after this selection is done, we can define %D messages, otherwise the default language is in use. \ifinterfacetranslation \else \startmessages dutch library: check title: controle 1: '=' ontbreekt of zonder {} na '--' in regel -- 2: -- argument(en) verwacht in regel -- 3: -- -- vervangt een macro, gebruik HOOFDLETTERS! \stopmessages \startmessages english library: check title: check 1: missing or ungrouped '=' after '--' in line -- 2: -- argument(s) expected in line -- 3: -- -- replaces a macro, use CAPITALS! \stopmessages % 1: to be adapted \startmessages german library: check title: check 1: Fehlendes '=' nach '--' in Zeile -- 2: -- Argument(e) in Zeile -- erwartet 3: -- -- ersetzt ein Makro, verwende VERSALIEN! \stopmessages \startmessages czech library: check title: kontrola 1: postradam '=' po '--' na radku -- 2: ocekavam -- argument(y) na radku -- 3: -- -- nahrazuje makro, uzijte VERZALKY! \stopmessages \startmessages italian library: check title: controllo 1: '=' mancante o non raggruppato dopo '--' alla riga -- 2: -- argomento/i attesi alla riga -- 3: -- -- sostituisce una macro, usare le MAIUSCOLE! \stopmessages \startmessages norwegian library: check title: kontroll 1: manglende '=' etter '--' i linje -- 2: -- argument forventet i linje -- 3: -- -- overskygger en makro, bruk STORE BOKSTAVER! \stopmessages \startmessages romanian library: check title: verificari 1: lipseste '=' dupa '--' in linia -- 2: argumentul(ele) -- sunt asteptate in linia -- 3: -- -- inlocuieste un macro, folositi MAJUSCULE! \stopmessages \fi %D Ok, here are some more, because we've got ouselves some %D extensions to \CONTEXT. \definemessageconstant {addresses} \definemessageconstant {documents} \protect \endinput