summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/enco-ini.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/enco-ini.mkxl')
-rw-r--r--tex/context/base/mkiv/enco-ini.mkxl570
1 files changed, 0 insertions, 570 deletions
diff --git a/tex/context/base/mkiv/enco-ini.mkxl b/tex/context/base/mkiv/enco-ini.mkxl
deleted file mode 100644
index 104b2f890..000000000
--- a/tex/context/base/mkiv/enco-ini.mkxl
+++ /dev/null
@@ -1,570 +0,0 @@
-%D \module
-%D [ file=enco-ini,
-%D version=2007.02.19, % 2000.12.27, % 1998.12.03,
-%D title=\CONTEXT\ Encoding 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.
-
-%D This is stripped down version of th eoriginal enco-ini.tex file. For more details
-%D you might want to study the \MKII\ file but since \LUATEX\ is unicode inside we
-%D need less code.
-
-%D Much in here will disappear in \LMTX\ because we assume proper \UNICODE\ usage.
-
-% When dealing with characters we have four cases to take into account when moving
-% from mkii to mkiv:
-
-% 1. <byte 200> => ref to slot 200 in current font
-% 2. \char 200 => ref to slot 200 in current font
-% 3. <active 200> => can (e.g.) map to another slot in current font
-% 4. \namedglyph => can map to some slot in some font
-
-% Using case 2 for special characters is doomed to fail because we are not going
-% to intercept these on the fly as happens automatically with traditional font
-% encoding handling. We could do that in a node pass but it's not worth the effort
-% because we seldom use this case in a document source.
-
-% We can consider using utf as internal format for mkii. The main reason for not
-% doing this before was that it was slow. On the other hand, it would make dealing
-% with utility files easier. However, we've now kind of frozen mkii.
-
-\writestatus{loading}{ConTeXt Encoding Macros / Initialization}
-
-\unprotect
-
-%D Obsolete (but sometimes used in styles)
-
-\let\defaultencoding\s!default
-
-%D \macros
-%D {defineaccent, definecharacter, definecommand}
-%D
-%D Some of these are used at the \LUA\ end!
-
-\installcorenamespace{accents}
-
-\permanent\protected\def\defineaccent#1 #2 #3 %
- {\dodefineaccentcommand{#1}%
- \dodefineaccent{#1}{#2}{#3}}
-
-\permanent\protected\def\dodefineaccentcommand#1%
- {\setevalue{\string#1}{\noexpand\dohandleaccent{\string#1}}}
-
-\permanent\protected\def\dodefineaccent#1#2#3% no spaces, used low level
- {\setvalue{\??accents\string#1\string#2\empty}{#3}}
-
-% the following dirty trick is needed to catch \asciimath{\^{1/5}log}:
-
-\permanent\protected\def\dohandleaccent#1#2% expandable because we want them in the tuc file
- {\csname\??accents
- \ifcsname\??accents\string#1#2\empty\endcsname
- \string#1#2\empty
- \orelse\ifcsname\??accents\string#1\string#2\empty\endcsname
- \string#1\string#2\empty
- \else
- \endcsname#2\csname\??accents % very dirty trick: ignore accent but keep char
- \fi
- \endcsname}
-
-\immutable\letvalue{\??accents}\empty
-
-\permanent\protected\def\dodefinecommand#1#2%
- {\frozen\setuvalue{\string#1}{#2}} % not permanent as these are kind of obsolete
-
-\permanent\protected\def\definecharacter#1 #2 %
- {\doifelsenumber{\string#2}
- {\setevalue{\string#1}{\utfchar{#2}}} % or {\expandafter\chardef\csname#1\endcsname#2\relax}
- {\setuvalue{\string#1}{#2}}}
-
-\permanent\protected\def\definecommand#1 #2 %
- {\setuvalue{\string#1}{#2}}
-
-%D \macros
-%D {everyuppercase, everylowercase, everysanitize}
-
-\newtoks \everyuppercase
-\newtoks \everylowercase
-\newtoks \everysanitize
-
-%D Accent handling (try to avoid this):
-
-% \buildtextaccent\greekdasia\greekalphamacron
-% \buildtextaccent\textacute q
-
-%D We can use offsets in \LMTX\ but even that makes n o sense because we have
-%D a virtual feature already in \MKIV.
-
-%D We define them frozen so that we can overload them.
-
-\newbox\b_enco_accent
-
-\permanent\protected\def\buildmathaccent#1%
- {\mathaccent#1 }
-
-\permanent\protected\def\buildtextaccent#1#2% we could do all at the lua end
- {\dontleavehmode\begingroup % but that's no fun (yet)
- \setbox\scratchboxone\hbox{#1}% accent
- \setbox\scratchboxtwo\hbox{#2}% character
- \scratchheight\dimexpr\ht\scratchboxtwo-\ht\scratchboxone\relax
- \scratchdepth \dimexpr\dp\scratchboxtwo-\dp\scratchboxone\relax
- \scratchwidth \wd\scratchboxtwo
- \hbox to \wd\ifdim\wd\scratchboxone>\wd\scratchboxtwo\scratchboxone\else\scratchboxtwo\fi\bgroup
- \hss\box\scratchboxtwo\hss
- \hskip-\scratchwidth
- \hss
- \ifdim\ht\scratchboxone>\exheight
- % top accent
- \raise\dimexpr\scratchheight+\exheight/3\relax
- \else
- \lower-\dimexpr\scratchdepth+\exheight/3\relax
- \fi
- \box\scratchboxone
- \hss
- \egroup
- \endgroup}
-
-\permanent\protected\def\bottomaccent#1#2#3#4#5% down right slantcorrection accent char
- {\dontleavehmode % why this align mess
- \vtop
- {\forgetall
- \baselineskip\zeropoint
- \lineskip#1%
- \everycr\emptytoks
- \tabskip\zeropoint
- \lineskiplimit\zeropoint
- \setbox0\hbox{#4}%
- \halign
- {##\crcr\hbox{#5}\crcr
- \hidewidth
- \hskip#2\wd0
- \hskip-#3\slantperpoint % in plain 1ex * dimenless value
- \vpack to .2\exheight{\box0\vss}\hidewidth
- \crcr}}}
-
-\permanent\protected\def\buildtextmacron {\bottomaccent{.25ex}{0}{15}{\textmacron}}
-\permanent\protected\def\buildtextbottomdot {\bottomaccent{.25ex}{0}{5}{\textbottomdot}}
-\permanent\protected\def\buildtextcedilla {\bottomaccent{0ex}{0}{5}{\textcedilla}}
-\permanent\protected\def\buildtextogonek {\bottomaccent{-.1ex}{.5}{0}{\textogonek}}
-\permanent\protected\def\buildtextbottomcomma{\bottomaccent{.15ex}{0}{5}{\tx,}}
-
-\aliased\let\d\buildtextbottomdot
-
-\permanent\protected\def\topaccent#1#2#3#4#5% down right slantcorrection accent char
- {\dontleavehmode
- \bgroup
- \setbox0\hbox{#4}%
- \setbox2\hbox{#5}%
- \hbox to \wd2 \bgroup
- \hss\copy2\hss
- \hskip-\wd2
- \hss\hskip#2\wd0\hskip-#3\slantperpoint\raise#1\hbox{#4}\hss
- \egroup
- \egroup}
-
-\permanent\protected\def\buildtextgrave
- {\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
-
-\permanent\protected\def\definemathaccent#1 #2%
- {\setvalue{#1}{\mathaccent#2 }}
-
-%D Math (will move):
-
-\definemathaccent acute \mathacute
-\definemathaccent grave \mathgrave
-\definemathaccent ddot \mathddot
-\definemathaccent tilde \mathtilde
-\definemathaccent bar \mathbar
-\definemathaccent breve \mathbreve
-\definemathaccent check \mathcheck
-\definemathaccent hat \mathhat
-\definemathaccent vec \mathvec
-\definemathaccent dot \mathdot
-%definemathaccent widetilde \mathwidetilde
-%definemathaccent widehat \mathwidehat
-
-% from enco-def:
-
-% \aliased\let\i\dotlessi
-% \aliased\let\j\dotlessj
-
-% \aliased\let\P\paragraphmark \aliased\let\textP\paragraphmark % obsolete (surfaced in bibliographic files)
-% \aliased\let\S\sectionmark \aliased\let\textS\sectionmark % obsolete (surfaced in bibliographic files)
-
-\permanent\def\eszett {ß} \permanent\def\Eszett {SS} \permanent\def\Ssharp{SS}
-\permanent\def\lslash {ł} \permanent\def\Lslash {Ł}
-\permanent\def\dslash {đ} \permanent\def\Dslash {Đ}
-%permanent\def\oslash {ø} %permanent\def\Oslash {Ø} % clashes with math: use \Ostroke
-\permanent\def\dcroat {đ} \permanent\def\Dcroat {Đ}
-\permanent\def\kcedilla{ķ} \permanent\def\Kcedilla{Ķ}
-\permanent\def\lcedilla{ļ} \permanent\def\Lcedilla{Ļ}
-\permanent\def\ncedilla{ņ} \permanent\def\Ncedilla{Ņ}
-\permanent\def\rcedilla{ŗ} \permanent\def\Rcedilla{Ŗ}
-\permanent\def\aumlaut {ä} \permanent\def\Aumlaut {Ä}
-\permanent\def\eumlaut {ë} \permanent\def\Eumlaut {Ë}
-\permanent\def\iumlaut {ï} \permanent\def\Iumlaut {Ï}
-\permanent\def\oumlaut {ö} \permanent\def\Oumlaut {Ö}
-\permanent\def\uumlaut {ü} \permanent\def\Uumlaut {Ü}
-
-% from enco-com:
-
-% \aliased\let\AE\AEligature \aliased\let\ae\aeligature
-% \aliased\let\OE\OEligature \aliased\let\oe\oeligature
-% \aliased\let\IJ\IJligature \aliased\let\ij\ijligature
-% \aliased\let\AA\textAngstrom \aliased\let\aa\aring
-% \aliased\let\CC\Ccedilla \aliased\let\cc\ccedilla
-% \aliased\let\L \Lslash \aliased\let\l \lslash
-% \aliased\let\O \Oslash \aliased\let\o \oslash
-% \aliased\let\SZ\Eszett \aliased\let\sz\eszett % \aliased\let\SS\Ssharp
-
-% for old times sake (obsolete)
-
-\def\textflorin{ƒ} \def\florin {ƒ}
-\def\pound {£} \def\sterling{£}
-\def\promille {‰} \def\permille{‰}
-
-% tex specific
-
-\pushoverloadmode
-
-%D Was missing:
-
-\permanent\protected\def\ampersand{\mathortext\mathampersand\textampersand}
-
-
-\ifdefined\textpercent
- \permanent\let\percent \textpercent
- \permanent\let\procent \textpercent
- %\permanent\let\ampersand \textampersand
- \permanent\let\dollar \textdollar
- \permanent\let\hash \texthash
-\else
- \permanent\def\percent {\textpercent}
- \permanent\def\procent {\textpercent}
- %\permanent\def\ampersand {\textampersand}
- \permanent\def\dollar {\textdollar}
- \permanent\def\hash {\texthash}
-\fi
-
-\popoverloadmode
-
-% from enco-mis:
-
-\permanent\protected\def\fakepercent
- {\mathematics{\normalsuperscript{\scriptscriptstyle0}\kern-.25\emwidth/\kern-.2\emwidth\normalsubscript{\scriptscriptstyle0}}}
-
-\permanent\protected\def\fakeperthousand
- {\mathematics{\normalsuperscript{\scriptscriptstyle0}\kern-.25\emwidth/\kern-.2\emwidth\normalsubscript{\scriptscriptstyle00}}}
-
-\permanent\protected\def\fakepermine
- {\dontleavehmode
- \bgroup
- \setbox\scratchbox\hbox
- {\mathematics{+}}%
- \hbox to \wd\scratchbox
- {\hss
- \mathematics{\normalsuperscript{\scriptscriptstyle-}\kern-.4\emwidth/\kern-.3\emwidth\normalsubscript{\scriptscriptstyle-}}%
- \hss}%
- \egroup}
-
-\def\permine{\fakepermine}
-
-% some more: what with freezing here?
-
-\ifdefined\softhyphen \else
- \aliased\let\softhyphen\explicitdiscretionary
-\fi
-
-\def\hyphen {\softhyphen}
-\def\compoundwordmark {\hyphen}
-\def\cwm {\hyphen}
-\def\nonbreakinghyphen{\hyphen}
-\def\breakinghyphen {\hyphen\prewordbreak}
-
-% quotes
-
-\def\lowerleftsingleninequote {\quotesinglebase}
-\def\lowerleftdoubleninequote {\quotedblbase}
-\def\lowerrightsingleninequote {\quotesinglebase}
-\def\lowerrightdoubleninequote {\quotedblbase}
-
-\def\upperleftsingleninequote {\quoteright}
-\def\upperleftdoubleninequote {\quotedblright}
-\def\upperrightsingleninequote {\quoteright}
-\def\upperrightdoubleninequote {\quotedblright}
-
-\def\upperleftsinglesixquote {\quoteleft}
-\def\upperleftdoublesixquote {\quotedblleft}
-\def\upperrightsinglesixquote {\quoteleft}
-\def\upperrightdoublesixquote {\quotedblleft}
-
-\def\leftsubguillemot {\guilsingleleft}
-\def\rightsubguillemot {\guilsingleright}
-
-% left-overs (some day in private unicode space, so that we can roundtrip)
-
-\permanent\protected\def\textblacksquare{\dontleavehmode\hbox{\vrule\s!width.3\s!em\s!height.4\s!em\s!depth-.1\s!em}}
-%permanent\protected\def\schwa {\hbox{\rotate[\c!rotation=180,\c!location=\v!high]{\hbox{e}}}}
-\permanent\protected\def\schwagrave {\buildtextgrave\schwa}
-
-\chardef\textcontrolspace"2423
-
-\installcorenamespace{controlspace}
-
-% \protected\def\fallbackcontrolspace % beware: non-matching widths
-% {\hbox to \interwordspace{\hss\getglyph{LMTypewriter-Regular}\textcontrolspace\hss}%
-
-\permanent\protected\def\fallbackcontrolspace % beware, current font, we also need to honor color
- {\hbox to \interwordspace \bgroup
- \hss
- \ifcsname\??controlspace\number\interwordspace\endcsname
- \csname\??controlspace\number\interwordspace\endcsname
- \else
- \enco_fast_control_space_define % only regular
- \fi
- \textcontrolspace
- \hss
- \egroup}
-
-\protected\def\enco_fast_control_space_define
- {\scratchdimen\interwordspace
- \definedfont[LMTypewriter-Regular at \the\dimexpr\currentfontbodyscale\dimexpr\fontbody]% see font-sym.mkiv
- \global\letcsname\??controlspace\number\scratchdimen\endcsname\lastrawfontcall}
-
-\permanent\protected\def\normalcontrolspace
- {\iffontchar\font\textcontrolspace
- \textcontrolspace
- \else
- \fallbackcontrolspace
- \fi}
-
-\let\textvisiblespace\normalcontrolspace
-
-\permanent\protected\def\optionalcontrolspace
- {\iffontchar\font\textcontrolspace
- \textcontrolspace
- \else
- \asciispacechar % used for export !
- \fi}
-
-% \protected\def\fastcontrolspace % no glyph resolving after first (use grouped)
-% {\enco_fast_control_space}
-%
-% \def\enco_fast_control_space
-% {\iffontchar\font\textcontrolspace
-% \enco_fast_control_space_nop
-% \else
-% \enco_fast_control_space_yes
-% \fi
-% \enco_fast_control_space}
-%
-% \newbox\b_enco_control_space
-%
-% \def\enco_fast_control_space_nop
-% {\let\enco_fast_control_space\textcontrolspace}
-%
-% \def\enco_fast_control_space_yes
-% {\setbox\b_enco_control_space\fallbackcontrolspace
-% \let\enco_fast_control_space\flushcontrolspacebox}
-%
-% \def\flushcontrolspacebox
-% {\copy\b_enco_control_space}
-
-% a few defaults (\<whatever>{}), we really need the verbose \empty as it will be
-% stringified .. anyhow, we define this at the lua end now but keep it here as a
-% reference
-%
-% \defineaccent ^ {\empty} {\textcircumflex}
-% \defineaccent ` {\empty} {\textgrave}
-% \defineaccent ~ {\empty} {\texttilde}
-% \defineaccent " {\empty} {\textdiaeresis}
-% \defineaccent ' {\empty} {\textacute}
-% \defineaccent . {\empty} {\textdotaccent}
-% \defineaccent = {\empty} {\textmacron}
-% \defineaccent c {\empty} {\textcedilla}
-% \defineaccent H {\empty} {\texthungarumlaut}
-% \defineaccent k {\empty} {\textogonek}
-% \defineaccent r {\empty} {\textring}
-% \defineaccent u {\empty} {\textbreve}
-% \defineaccent v {\empty} {\textcaron}
-
-\clf_defineaccents % one time
-
-%D A smaller and bolder variant, more like the math and monospaced ones.
-
-\permanent\protected\def\fakeunderscore
- {\relax\ifmmode
- \vrule\s!depth .12\fontexheight\mathstylefont\normalmathstyle\s!width \fontinterwordspace\mathstylefont\normalmathstyle\s!height\zeropoint\relax
- \else
- \dontleavehmode\hbox{\vrule\s!depth .12\fontexheight\font\s!width \fontinterwordspace\font\s!height\zeropoint}%
- \fi}
-
-\permanent\protected\def\fakeunderscores{\let\_\fakeunderscore}
-\permanent\protected\def\textunderscores{\let\_\textunderscore}
-
-\textunderscores
-
-\ifdefined\mathunderscore \else \aliased\let\mathunderscore\fakeunderscore \fi
-\ifdefined\textunderscore \else \aliased\let\textunderscore\fakeunderscore \fi
-
-\permanent\protected\def\normalunderscore{\ifmmode\mathunderscore\else\textunderscore\fi}
-
-\let\_\normalunderscore
-
-%D To be sorted out:
-
-\pushoverloadmode
-
-\permanent\protected\def\textminus
- {\char
- \iffontchar\font"2012 "2012 \orelse % figuredash
- \iffontchar\font"2013 "2013 \orelse % endash
- \iffontchar\font"2212 "2212 \else % math minus
- "002D \fi} % hyphen
-
-\permanent\protected\def\textplus
- {\char"002B } % plus
-
-\popoverloadmode
-
-%D Moved from core-mis:
-
-\permanent\protected\def\celsius #1{#1\mathematics{^\circ}C}
-\permanent\protected\def\inch {\mathematics{\prime\prime}} % was: \hbox{\rm\char125\relax}
-\permanent\protected\def\fraction#1#2{\mathematics{#1\over#2}}
-
-% \def\periodswidth {.5em}
-% \def\periodsdefault{3} % was 5, but now it's like \unknown
-%
-% \protected\def\periods
-% {\dosingleempty\enco_periods}
-%
-% \def\doperiods[#1]% todo: also n=,width= or maybe just #1,#2
-% {\dontleavehmode
-% \begingroup
-% \scratchdimen\periodswidth
-% \hbox to \iffirstargument#1\else\periodsdefault\fi \scratchdimen
-% {\leaders\hbox to \scratchdimen{\hss\periodsymbol\hss}\hss}%
-% \endgroup}
-%
-% better for export:
-%
-% \protected\def\enco_periods[#1]% todo: also n=,width= or maybe just #1,#2
-% {\dontleavehmode
-% \hbox\bgroup
-% \setbox\scratchbox\hbox to \periodswidth{\hss\periodsymbol\hss}%
-% \dorecurse{\iffirstargument#1\else\periodsdefault\fi}{\copy\scratchbox}%
-% \egroup}
-%
-% \protected\def\unknown
-% {\periods\relax} % relax prevents lookahead for []
-%
-% per request:
-
-%D \startbuffer
-%D \startlines
-%D x\periods x
-%D x\periods[10]x
-%D x\periods[n=10,symbol={,}]x
-%D x\periods[n=4,symbol={!!},width=1em]x
-%D x\periods[n=4,symbol={!!},width=fit]x
-%D x\periods[n=4,symbol={!!},width=fit,distance=1em]x
-%D x\unknown x
-%D \stoplines
-%D \stopbuffer
-%D
-%D \typbuffer \getbuffer
-
-\def\periodswidth {.5\emwidth} % downward compatible
-\def\periodsdefault{3} % downward compatible
-
-\installcorenamespace {periods}
-
-\installsetuponlycommandhandler \??periods {periods}
-
-\setupperiods
- [\c!n=\periodsdefault,
- \c!width=\periodswidth, % can also be \v!fit
- \c!distance=.25\emwidth,
- \c!symbol=.]
-
-\permanent\protected\def\periods
- {\dontleavehmode
- \hbox\bgroup
- \doifelsenextoptional\enco_periods_yes\enco_periods_nop}
-
-\protected\def\enco_periods_yes[#1]%
- {\doifelseassignment{#1}
- {\setupcurrentperiods[#1]%
- \scratchcounter\periodsparameter\c!n}
- {\doifelsenothing{#1}
- {\scratchcounter\periodsparameter\c!n}%
- {\scratchcounter#1}}%
- \enco_periods_finish}
-
-\protected\def\enco_periods_nop
- {\scratchcounter\periodsparameter\c!n
- \enco_periods_finish}
-
-\protected\def\enco_periods_finish
- {\edef\p_width{\periodsparameter\c!width}%
- \ifx\p_width\v!fit
- \enco_periods_finish_fit
- \else
- \enco_periods_finish_width
- \fi
- \egroup}
-
-\protected\def\enco_periods_finish_width
- {\setbox\scratchbox\hbox to \p_width
- {\hss\periodsparameter\c!symbol\hss}%
- \dorecurse\scratchcounter{\copy\scratchbox}}
-
-\protected\def\enco_periods_finish_fit
- {\edef\p_symbol{\periodsparameter\c!symbol}%
- \scratchdistance\periodsparameter\c!distance
- \hskip\scratchdistance
- \dorecurse\scratchcounter{\p_symbol\hskip\scratchdistance}}
-
-\permanent\protected\def\unknown
- {\dontleavehmode
- \hbox\bgroup
- \enco_periods_nop}
-
-%D Left-overs:
-
-\appendtoks
- \enforced\let\buildtextaccent\secondoftwoarguments
-\to \everysimplifycommands
-
-%D A plain one:
-
-% \protected\def\t#1{%
-% \dontleavehmode
-% \begingroup
-% \setbox\scratchboxone\hpack{#1}%
-% \setbox\scratchboxtwo\hpack\bgroup
-% \iffontchar\font"0361\relax
-% \char"0361\relax
-% \else
-% \iffontchar\font"2040\relax\else
-% \the\textfont0
-% \fi
-% \char"2040
-% \fi
-% \egroup
-% \scratchdimenone\wd\ifdim\wd\scratchboxone>\wd\scratchboxtwo\scratchboxone\else\scratchboxtwo\fi
-% \scratchdimentwo\dimexpr-\ht\scratchboxtwo+\ht\scratchboxone+.45\exheight\relax
-% \hpack to \scratchdimenone\bgroup
-% \hpack to \scratchdimenone{\hss\box\scratchboxone\hss}%
-% \hskip -\scratchdimenone
-% \hpack to \scratchdimenone{\hss\raise\scratchdimentwo\box\scratchboxtwo\hss}%
-% \egroup
-% \endgroup}
-
-\protect \endinput