diff options
Diffstat (limited to 'tex/context/base/mkiv/lang-ini.mkxl')
-rw-r--r-- | tex/context/base/mkiv/lang-ini.mkxl | 766 |
1 files changed, 0 insertions, 766 deletions
diff --git a/tex/context/base/mkiv/lang-ini.mkxl b/tex/context/base/mkiv/lang-ini.mkxl deleted file mode 100644 index 8ca8d7e8e..000000000 --- a/tex/context/base/mkiv/lang-ini.mkxl +++ /dev/null @@ -1,766 +0,0 @@ -%D \module -%D [ file=lang-ini, -%D version=1996.01.25, -%D title=\CONTEXT\ Language Macros, -%D subtitle=Initialization, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. See mreadme.pdf for -%C details. - -% We can protect \currentlanguage etc too. - -% \cldcontext{languages.numbers[tex.count.mainlanguagenumber]} - -%D This module implements multi||language support of \CONTEXT, which should not be -%D confused with the multi||lingual interface. This support will be extended when -%D needed. Properties of languages are defined in \TEX\ files as well as \LUA\ -%D files. - -\writestatus{loading}{ConTeXt Language Macros / Initialization} - -\registerctxluafile{lang-ini}{autosuffix} -\registerctxluafile{lang-def}{} -\registerctxluafile{lang-cnt}{} - -\unprotect - -\ifdefined\nonfrenchspacing\else \let\nonfrenchspacing\relax \fi -\ifdefined\frenchspacing \else \let\frenchspacing \relax \fi - -%D When loading hyphenation patterns, \TEX\ assign a number to each loaded table, -%D starting with~0. Switching to a specific table is done by assigning the relevant -%D number to the predefined \COUNTER\ \type {\language}. However, in \MKIV\ a lot -%D of management is delegated to \LUA. - -%D We keep track of the last loaded patterns by means of a pseudo \COUNTER. This -%D just one of those situations in which we don't want to spent a real one. Language -%D zero has no patterns, first of all because I like to start numbering at one. It -%D may come in handy for special purposes as well. - -\normallanguage\zerocount \def\loadedlanguage{1} - -%D \macros -%D {currentlanguage, setupcurrentlanguage} -%D -%D Instead of numbers,we are going to use symbolic names for the languages. The -%D current langage is saved in the macro \type {\currentlanguage}. The setup macro -%D is mainly used for cosmetic purposes. -%D -%D \starttyping -%D \dorecurse{3} -%D {\language[nl] -%D \startmode[*en] english \stopmode -%D \startmode[*nl] dutch \stopmode -%D \language[en] -%D \startmode[*en] english \stopmode -%D \startmode[*nl] dutch \stopmode} -%D \stoptyping - -\let\currentlanguage \empty -\let\currentmainlanguage\empty - -%D \macros -%D {defaultlanguage,languageparameter,specificlanguageparameter} -%D -%D We don't use the commandhandler here (yet) because we have a rather special -%D fallback mechanism so quite some compatibility testing is needed. - -\installcorenamespace{language} -\installcorenamespace{languagelinked} - -\def\currentusedlanguage{\currentlanguage} - -\permanent\def\defaultlanguage#1% - {\ifcsname\??language#1\s!default\endcsname - \expandafter\defaultlanguage\lastnamedcs - \else - #1% - \fi} - -\permanent\def\languageparameter#1% - {\ifcsname\??language\currentlanguage#1\endcsname - \lastnamedcs - \orelse\ifcsname\??language\currentlanguage\s!default\endcsname - \expandafter\specificlanguageparameter\lastnamedcs{#1}% - \orelse\ifcsname\??language\s!default#1\endcsname - \lastnamedcs - \fi} - -\permanent\def\specificlanguageparameter#1#2% - {\ifcsname\??language#1#2\endcsname - \lastnamedcs - \orelse\ifcsname\??language#1\s!default\endcsname - \expandafter\specificlanguageparameter\lastnamedcs{#2}% - \orelse\ifcsname\??language\s!default#2\endcsname - \lastnamedcs - \fi} - -\permanent\def\mainlanguageparameter#1% - {\ifcsname\??language\currentmainlanguage#1\endcsname - \lastnamedcs - \orelse\ifcsname\??language\currentmainlanguage\s!default\endcsname - \expandafter\specificlanguageparameter\lastnamedcs{#1}% - \orelse\ifcsname\??language\s!default#1\endcsname - \lastnamedcs - \fi} - -\aliased\let\usedlanguageparameter\languageparameter - -\permanent\def\askedlanguageparameter#1% assumes \currentusedlanguage being set - {\ifcsname\??language\currentusedlanguage#1\endcsname - \lastnamedcs - \orelse\ifcsname\??language\currentusedlanguage\s!default\endcsname - \expandafter\specificlanguageparameter\lastnamedcs{#1}% - \orelse\ifcsname\??language\s!default#1\endcsname - \lastnamedcs - \fi} - -\permanent\protected\def\setusedlanguage#1% - {\edef\currentusedlanguage{\reallanguagetag{#1}}% - \ifempty\currentusedlanguage - \let\currentusedlanguage \currentlanguage - \enforced\let\usedlanguageparameter\languageparameter - \orelse\ifx\currentusedlanguage\v!global - \let\currentusedlanguage \currentmainlanguage - \enforced\let\usedlanguageparameter\mainlanguageparameter - \orelse\ifx\currentusedlanguage\v!local - \let\currentusedlanguage \currentlanguage - \enforced\let\usedlanguageparameter\languageparameter - \else - \enforced\let\usedlanguageparameter\askedlanguageparameter - \fi} - -\permanent\protected\def\setupcurrentlanguage[#1]% - {\setcurrentlanguage\currentmainlanguage{#1}} - -\permanent\protected\def\setcurrentlanguage#1#2% sets modes: **id (currentmain) *id (current) - {\edef\xaskedlanguage{#1}% otherwise clash with \askedlanguage - \ifempty\xaskedlanguage \else - \ifempty\currentmainlanguage\else\resetsystemmode{\systemmodeprefix\currentmainlanguage}\fi - \let\currentmainlanguage\xaskedlanguage - \setsystemmode{\systemmodeprefix\currentmainlanguage}% - \fi - \edef\xaskedlanguage{#2}% - \ifempty\xaskedlanguage \else - \ifempty\currentlanguage\else\resetsystemmode\currentlanguage\fi - \let\currentlanguage\xaskedlanguage - \setsystemmode\currentlanguage - \fi} - -%D The internal macros will be defined later. - -%D \macros -%D {installlanguage} -%D -%D Hyphenation patterns can only be loaded when the format file is prepared. The -%D next macro takes care of this loading. A language is specified with -%D -%D \showsetup{installlanguage} -%D -%D When \type {state} equals \type {start}, both patterns and additional hyphenation -%D specifications are loaded. These files are seached for in the patterns path -%D have names like \type {lang-nl.lua}. -%D -%D The \type {spacing} variable specifies how the spaces after punctuation has to be -%D handled. English is by tradition more tolerant to inter||sentence spacing than -%D other languages. -%D -%D This macro also defines \type {\identifier} as a shortcut switch to the language. -%D Furthermore the command defined as being language specific, are executed. With -%D \type {default} we can default to another language (patterns) at format -%D generation time. Patterns are loaded at runtime. - -\newtoks \everysetuplanguage - -\aliased\let\installedlanguages\clf_installedlanguages % no need for \clf_ - -\permanent\protected\def\doifelselanguage#1% - {\ifcsname\??language#1\c!state\endcsname - \expandafter\firstoftwoarguments - \else - \expandafter\secondoftwoarguments - \fi} - -\aliased\let\doiflanguageelse\doifelselanguage - -\permanent\def\reallanguagetag#1% - {\ifcsname\??languagelinked#1\endcsname\lastnamedcs\else#1\fi} - -% \language[#1] gave unwanted side effect of loading language specifics - -\permanent\tolerant\protected\def\installlanguage[#1]#*[#2]% - {\ifcondition\validassignment{#2}% - \doifelselanguage{#1} - {\getparameters[\??language#1][#2]} - {\setvalue{\??languagelinked#1}{#1}% - \getparameters[\??language#1][\c!state=\v!start,#2]% - \lang_basics_install_indeed{#1}{#1}}% - \edef\currentsetuplanguage{#1}% - \clf_definelanguage{#1}{\specificlanguageparameter{#1}\s!default}% - \the\everysetuplanguage - \else - \setvalue{\??languagelinked#1}{#2}% - \clf_setlanguagesynonym{#1}{#2}% - \lang_basics_install_indeed{#1}{#2}% - \fi} - -\def\lang_basics_install_indeed#1#2% - {\doifnot{\specificlanguageparameter{#1}\c!command}\v!no - {\ifcsname#1\endcsname\else\frozen\instance\setuvalue{#1}{\lang_basics_set_current[#2]}\fi}} - -%D When the second argument is a language identifier, a synonym is created. This -%D feature is present because we used dutch mnemonics in the dutch version, but -%D nowadays conform a standard. - -\permanent\protected\def\doifelsepatterns#1% - {\begingroup % will change - \lang_basics_set_current[#1]% - \ifnum\normallanguage>\zerocount - \endgroup\expandafter\firstoftwoarguments - \else - \endgroup\expandafter\secondoftwoarguments - \fi} - -\aliased\let\doifpatternselse\doifelsepatterns - -%D \macros -%D {setuplanguage} -%D -%D Quick and dirty, but useful: -%D -%D \showsetup{setuplanguage} -%D -%D Beware, this command can only be used when a language is installed. - -\ifdefined\lang_basics_synchronize \else - \let\lang_basics_synchronize\relax % be nice for setups till we have one -\fi - -\installmacrostack\currentlanguage - -\permanent\tolerant\protected\def\setuplanguage[#1]#*[#2]% - {\ifarguments - % only synchronize - \or - \let\currentsetuplanguage\currentlanguage - \getparameters[\??language\currentsetuplanguage][#1]% - \the\everysetuplanguage - \or - \push_macro_currentlanguage % can be default - \edef\currentsetuplanguage{\reallanguagetag{#1}}% - \getparameters[\??language\currentsetuplanguage][#2]% - \the\everysetuplanguage - \pop_macro_currentlanguage - %\doif\currentsetuplanguage\currentlanguage we can have influenced inheritance (default) - \fi - \lang_basics_synchronize} - -\appendtoks - \clf_unloadlanguage{\currentsetuplanguage}% -\to \everysetuplanguage - -\setuplanguage - [\s!default] - [\s!patterns=, - \s!lefthyphenmin=2, - \s!righthyphenmin=2, - \s!lefthyphenchar=-1, - \s!righthyphenchar=45, - % used in compound i.e. interfaced with c! and can be anything so no numbers - \c!lefthyphen=, - \c!righthyphen=-, - \c!hyphen=-, - \c!spacing=\v!packed, - \c!compoundhyphen=\compoundhyphen, - \c!rightcompoundhyphen=\compoundhyphen, - \c!leftcompoundhyphen=, - \c!midsentence=---, - \c!leftsentence=---, - \c!rightsentence=---, - \c!leftsubsentence=---, - \c!rightsubsentence=---, - \c!leftquote=\upperleftsinglesixquote, - \c!rightquote=\upperrightsingleninequote, - \c!leftquotation=\upperleftdoublesixquote, - \c!rightquotation=\upperrightdoubleninequote, - \c!leftspeech=\languageparameter\c!leftquotation, - \c!middlespeech=, - \c!rightspeech=\languageparameter\c!rightquotation, - \c!limittext=\unknown, - \c!time={h,:,m}, - \c!date={\v!year,\ ,\v!month,\ ,\v!day}, - \c!text=Ag, - \c!font=] % \v!auto : experimental ! - -% to be tested: -% -% \setuplanguage -% [\s!default] -% [\c!righthyphenchar="AD] - -%D The values \type {leftsentence} and \type {rightsentence} can be (and are) used -%D to implement automatic subsentence boundary glyphs, like in {\fr |<|french -%D guillemots|>|} or {\de |<|german guillemots|>|} or {\nl |<|dutch dashes|>|} like -%D situations. Furthermore \type {leftquotation} and \type {leftquote} come into -%D view \quotation {when we quote} or \quote {quote} something. - -%D \macros -%D {currentdatespecification, currenttimespecification} -%D -%D Just to make things easy we can ask for the current date specification by saying: - -\permanent\def\currentdatespecification{\languageparameter\c!date} -\permanent\def\currenttimespecification{\languageparameter\c!time} - -%D Carefull reading of these macros shows that it's legal to say -%D -%D \starttyping -%D \installlanguage [du] [de] -%D \stoptyping - -%D \macros -%D {language,mainlanguage} -%D -%D Switching to another language (actually another hyphenation pattern) is done -%D with: -%D -%D \starttyping -%D \language[identifier] -%D \stoptyping -%D -%D or with \type {\identifier}. Just to be compatible with \PLAIN\ \TEX, we still -%D support the original meaning, so -%D -%D \starttyping -%D \language=1 -%D \stoptyping -%D -%D is a valid operation, where the relation between number and language depends on -%D the order in installing languages. -%D -%D \showsetup{language} -%D \showsetup{mainlanguage} -%D -%D Both commands take a predefined language identifier as argument. We can use \type -%D {\mainlanguage[identifier]} for setting the (indeed) main language. This is the -%D language used for translating labels like {\em figure} and {\em table}. The main -%D language defaults to the current language. - -\newtoks \everylanguage - -\installcorenamespace{languagenumbers} - -\appendtoks - % we need to reassign the number because new patterns can be defined later on - % so let's hope not that many \setups happen during a run - \global\letcsname\??languagenumbers\currentlanguage\endcsname\undefined -\to \everysetuplanguage - -\def\lang_basics_synchronize_yes - {\zerocount % see below - \global\expandafter\chardef\csname\??languagenumbers\currentlanguage\endcsname - \clf_languagenumber - {\currentlanguage}% - {\defaultlanguage\currentlanguage}% - {\languageparameter\s!patterns}% - {\languageparameter\c!factor}% - \relax - \normallanguage\csname\??languagenumbers\currentlanguage\endcsname} - -\let\lang_basics_synchronize_nop\zerocount % not loaded anyway - -\letvalue{\??languagenumbers}\lang_basics_synchronize_nop % initime - -\appendtoks - \letvalue{\??languagenumbers}\lang_basics_synchronize_yes % runtime -\to \everydump - -\def\lang_basics_synchronize - {\normallanguage\csname\??languagenumbers - \ifcsname\??languagenumbers\currentlanguage\endcsname - \currentlanguage - \fi - \endcsname - \relax - \the\everylanguage - \relax} - -\newcount\hyphenstate -\newcount\hyphenminoffset - -% This is the old implementation: a hack that sets the min values, because we want -% to keep the language set: -% -% \protected\def\nohyphens % nicer for url's -% {\ifx\dohyphens\relax -% \protected\edef\dohyphens -% {\hyphenminoffset\the\hyphenminoffset\relax -% \lang_basics_synchronize_min_max}% -% \fi -% \hyphenminoffset\plusthousand -% \lang_basics_synchronize_min_max} -% -% \let\dohyphens\relax - -% But this one is nicer because we do keep the language set as well as don't mess -% with the min values (it's more efficient too). We might get some more bits in -% this mode (engine specific). - -\exhyphenchar 45 % to permit breaking at explicit hyphens - -% \uchyph\plusone : - -\chardef \completehyphenationmodecode \numexpr - \normalhyphenationmodecode % \discretionary - + \automatichyphenationmodecode % - - + \explicithyphenationmodecode % \- - + \syllablehyphenationmodecode % pattern driven - + \uppercasehyphenationmodecode % replaces \uchyph - + \compoundhyphenationmodecode % replaces \compoundhyphenmode - % \strictstarthyphenationmodecode % replaces \hyphenationbounds (strict = original tex) - % \strictendhyphenationmodecode % replaces \hyphenationbounds (strict = original tex) - + \automaticpenaltyhyphenationmodecode % replaces \hyphenpenaltymode (otherwise use \exhyphenpenalty) - + \explicitpenaltyhyphenationmodecode % replaces \hyphenpenaltymode (otherwise use \exhyphenpenalty) - + \permitgluehyphenationmodecode % turn glue into kern in \discretionary - + \permitallhyphenationmodecode % okay, let's be even more tolerant - + \permitmathreplacehyphenationmodecode % and again we're more permissive -\relax - -\permanent\protected\def\dohyphens{\hyphenationmode\completehyphenationmodecode} -\permanent\protected\def\nohyphens{\hyphenationmode\zerocount} - -\permanent\protected\def\usehyphensparameter#1% - {\edef\p_hyphens{#1\c!hyphens}% - \ifx\p_hyhens\v!no - \nohyphens - \fi} - -\dohyphens - -%D The rest stays the same as in mkiv: - -\permanent\protected\def\lesshyphens - {\advance\hyphenminoffset\plusone - \lang_basics_synchronize_min_max} - -\permanent\protected\def\morehyphens - {\ifcase\hyphenminoffset \else - \advance\hyphenminoffset\minusone - \fi - \lang_basics_synchronize_min_max} - -\protected\def\lang_basics_synchronize_min_max % maybe store this at the lua end - {% these values are stored along with glyph nodes - \lefthyphenmin \numexpr0\languageparameter\s!lefthyphenmin +\hyphenminoffset\relax - \righthyphenmin\numexpr0\languageparameter\s!righthyphenmin+\hyphenminoffset\relax - \hyphenationmin\numexpr0\languageparameter\s!hyphenmin\relax - % these values are stored with the language (global!) - \prehyphenchar \languageparameter\s!righthyphenchar\relax - \posthyphenchar\languageparameter\s!lefthyphenchar \relax} - -\appendtoks - \lang_basics_synchronize_min_max -\to \everylanguage - -\permanent\protected\def\unhyphenated - {\groupedcommand{\lefthyphenmin\maxdimen}\donothing} - -% \appendtoks -% \setups[\languageparameter\c!setups]% -% \to \everylanguage - -%D You can setup the default language to reset settings. - -\appendtoks - \edef\currentlanguagesetups{\languageparameter\c!setups}% - \ifempty\currentlanguagesetups \else - \setups[\currentlanguagesetups]% - \fi -\to \everylanguage - -% new - -\appendtoks - \usebidiparameter\languageparameter -\to \everylanguage - -% this will move to core-spa ! - -\appendtoks - \edef\p_spacing{\languageparameter\c!spacing}% - \ifx\p_spacing\v!broad - \nonfrenchspacing - \else - \frenchspacing - \fi -\to \everylanguage - -% \mainlanguage[nl] \setuplanguage[nl][lefthyphen=,righthyphen=?] -% -% \dorecurse{100}{dit is toch wel een heel\normalhyphendiscretionary lang\normalhyphendiscretionary woord \recurselevel\ } -% \dorecurse{100}{dit is toch wel een heellangwoord \recurselevel\ } - -% new experimental feature - -\permanent\protected\def\setuplanguages - {\setuplanguage[\s!default]} - -% \setuplanguages[\c!font=\v!auto] -% \setuplanguage[\s!default][\c!font=\v!auto] -% \setuplanguage[nl][\c!font=\v!auto] - -\appendtoks - \edef\p_language_font{\languageparameter\c!font}% - \ifempty\p_language_font - \orelse\ifx\p_language_font\v!auto - \doaddfeature\currentlanguage - \else - \doaddfeature\p_language_font - \fi -\to \everylanguage - -%D Fast switcher - -\def\lang_basics_switch_asked - {\ifcsname\??languagelinked\askedlanguage\endcsname - \edef\askedlanguage{\lastnamedcs}% - \ifx\currentlanguage\askedlanguage \else - \setcurrentlanguage\currentmainlanguage\askedlanguage - \lang_basics_synchronize - \fi - \fi} - -\permanent\protected\def\uselanguageparameter#1% - {\edef\askedlanguage{#1\c!language}% - \ifempty\askedlanguage\else\lang_basics_switch_asked\fi} - -\permanent\protected\def\douselanguageparameter#1% fast setter - {\edef\askedlanguage{#1}% - \ifempty\askedlanguage\else\lang_basics_switch_asked\fi} - -\protected\def\lang_basics_set_current[#1]% - {\edef\askedlanguage{#1}% - \ifempty\askedlanguage\else\lang_basics_switch_asked\fi} - -\pushoverloadmode - - \permanent\protected\def\language - {\doifelsenextoptionalcs\lang_basics_set_current\normallanguage} - - \let\setlanguage\language % we make these synonyms - - \let\patterns\gobbleoneargument - -\popoverloadmode - -\newcount\mainlanguagenumber - -%D Beware: you might need to use \type {\dontleavehmode} outside and|/|or \type {\par} -%D inside the group! - -\permanent\protected\def\startlanguage - {\begingroup\language} - -\permanent\let\stoplanguage\endgroup - -\permanent\protected\def\mainlanguage[#1]% - {\edef\askedlanguage{#1}% - \ifempty\askedlanguage - \orelse\ifcsname\??languagelinked\askedlanguage\endcsname - %\edef\askedlanguage{\csname\??languagelinked\askedlanguage\endcsname}% - \edef\askedlanguage{\lastnamedcs}% - \ifx\currentlanguage\askedlanguage - \ifx\currentmainlanguage\askedlanguage \else - \setcurrentlanguage\askedlanguage\askedlanguage - \lang_basics_synchronize - \fi - \else - \setcurrentlanguage\askedlanguage\askedlanguage - \lang_basics_synchronize - \fi - \fi - \mainlanguagenumber\normallanguage} - -\appendtoks - \normallanguage\mainlanguagenumber -\to \everybeforepagebody - -%D Used at all? - -\permanent\def\splitsequence#1#2% - {\doifelse{#1}\v!no{#2}{\doifelse{#1}\v!yes{\languageparameter\c!limittext}{#1}}} - -\permanent\def\splitsymbol#1% - {\splitsequence{#1}{\languageparameter\c!limittext}} - -%D Just like with subsentence boundary symbols, quotes placement depends on the -%D current language, therefore we show the defaults here. -%D -%D \def\ShowLanguageValues [#1] [#2] #3 #4 -%D {\blank -%D \startlinecorrection -%D \vbox\bgroup -%D \language[#1] -%D \midaligned{\bf#2 subsentence symbol and quotes} -%D \framed[width=\hsize,frame=off,topframe=on,bottomframe=on,offset=.5ex] -%D {\hfil\quotation{#3 #4}\hfil\quote{#2}\hfil -%D \startsubsentence\startsubsentence#3\stopsubsentence#4\stopsubsentence\hfil} -%D \egroup -%D \stoplinecorrection -%D \blank} -%D -%D \ShowLanguageValues [af] [afrikaans] afrikaanse ... -%D \ShowLanguageValues [ca] [catalan] catalan ... -%D \ShowLanguageValues [cs] [czech] tjechisch tex -%D \ShowLanguageValues [cs] [slovak] slowaakse ... -%D \ShowLanguageValues [da] [danish] deense ... -%D \ShowLanguageValues [de] [german] duitse degelijkheid -%D \ShowLanguageValues [en] [english] engelse humor -%D \ShowLanguageValues [et] [estonian] ... -%D \ShowLanguageValues [fi] [finnish] finse ... -%D \ShowLanguageValues [fr] [french] franse slag -%D \ShowLanguageValues [it] [italian] italiaanse ... -%D \ShowLanguageValues [la] [latin] latijnse missen -%D \ShowLanguageValues [nl] [dutch] nederlandse zuinigheid -%D \ShowLanguageValues [nb] [bokmal] noorse zalm -%D \ShowLanguageValues [nn] [nnynorsk] noorse zalm -%D \ShowLanguageValues [pl] [polish] poolse vlag -%D \ShowLanguageValues [pt] [portuguese] portugese ... -%D \ShowLanguageValues [es] [spanish] spaans benauwd -%D \ShowLanguageValues [sv] [swedish] zweedse ... -%D \ShowLanguageValues [tr] [turkish] turks fruit - -%D We support a lot of languages. These are specified and loaded in separate files, -%D according to their roots. Here we only take care of (postponed) setting of the -%D current language. -%D -%D \unprotect -%D \placetable{The germanic languages (\type{lang-ger})} -%D \starttable[||||] -%D \HL -%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR -%D \HL -%D \NC \s!nl \NC dutch \NC germanic \NC\FR -%D \NC \s!en \NC english \NC germanic \NC\MR -%D \NC \s!de \NC german \NC germanic \NC\MR -%D \NC \s!da \NC danish \NC germanic \NC\MR -%D \NC \s!sv \NC swedish \NC germanic \NC\MR -%D \NC \s!af \NC afrikaans \NC germanic \NC\MR -%D \NC \s!nb \NC bokmal \NC germanic \NC\LR -%D \NC \s!nn \NC nynorsk \NC germanic \NC\LR -%D \HL -%D \stoptable -%D \protect -%D -%D \unprotect -%D \placetable{The italic languages (\type{lang-ita})} -%D \starttable[||||] -%D \HL -%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR -%D \HL -%D \NC \s!fr \NC french \NC italic \NC\FR -%D \NC \s!ca \NC catalan \NC italic \NC\MR -%D \NC \s!es \NC spanish \NC italic \NC\MR -%D \NC \s!it \NC italian \NC italic \NC\MR -%D \NC \s!la \NC latin \NC italic \NC\MR -%D \NC \s!pt \NC portuguese \NC italic \NC\LR -%D \HL -%D \stoptable -%D \protect -%D -%D \unprotect -%D \placetable{The slavic languages (\type{lang-sla})} -%D \starttable[||||] -%D \HL -%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR -%D \HL -%D \NC \s!pl \NC polish \NC slavic \NC\FR -%D \NC \s!cs \NC czech \NC slavic \NC\MR -%D \NC \s!sk \NC slavik \NC slavic \NC\LR -%D \HL -%D \stoptable -%D \protect -%D \unprotect -%D -%D \placetable{The altaic languages (\type{lang-alt})} -%D \starttable[||||] -%D \HL -%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR -%D \HL -%D \NC \s!tr \NC turkish \NC altaic \NC\SR -%D \HL -%D \stoptable -%D -%D \placetable{The uralic languages (\type{lang-ura})} -%D \starttable[||||] -%D \HL -%D \NC \bf mnemonic \NC \bf language \NC \bf group \NC\SR -%D \HL -%D \NC \s!fi \NC finnish \NC uralic \NC\SR -%D \HL -%D \stoptable -%D \protect - -\permanent\protected\def\nopatterns{\normallanguage\minusone} - -%D We default to the language belonging to the interface. This is one of the few -%D places outside the interface modules where \type {\startinterface} is used. - -\setupcurrentlanguage[\s!en] - -\permanent\protected\def\initializemainlanguage - {\mainlanguage[\currentlanguage]% - \showmessage\m!languages9\currentlanguage} - -%D New: - -\permanent\let\stopexceptions\relax - -\tolerant\permanent\protected\def\startexceptions[#1]#:#2\stopexceptions - {\begingroup - \edef\askedlanguage{\reallanguagetag{#1}}% - \ifempty\askedlanguage - \let\askedlanguage\currentlanguage - \fi - \clf_setlanguageexceptions{\askedlanguage}{#2}% - \endgroup} - -\pushoverloadmode - -\permanent\protected\def\hyphenation - {\clf_setlanguageexceptions{\currentlanguage}} - -\popoverloadmode - -%D New: - -\permanent\protected\def\traceddiscretionary#1#% - {\dontleavehmode\lang_basics_traced_discretionary{#1}} - -\protected\def\lang_basics_traced_discretionary#1#2#3#4% - {\normaldiscretionary#1{\darkred#2}{\darkgreen#3}{\darkblue#4}} - -\installtextracker - {discretionaries} - {\enforced\let\discretionary\traceddiscretionary} - {\enforced\let\discretionary\normaldiscretionary} - -\permanent\protected\def\samplediscretionary - {\traceddiscretionary - {pre\clf_currentprehyphenchar}% - {\clf_currentposthyphenchar post}% - {replace}} - -%D Also new: - -\immutable\chardef\nokerningcode \numexpr\noleftkerncode +\norightkerncode \relax -\immutable\chardef\noligaturingcode\numexpr\noleftligaturecode+\norightligaturecode\relax - -\permanent\protected\def\nokerning {\bitwiseflip\glyphoptions\nokerningcode} -\permanent\protected\def\noligaturing{\bitwiseflip\glyphoptions\noligaturingcode} - -\protect \endinput |