summaryrefslogtreecommitdiff
path: root/tex/context/base
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base')
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-fld.tex15
-rw-r--r--tex/context/base/core-lst.tex10
-rw-r--r--tex/context/base/core-rul.tex38
-rw-r--r--tex/context/base/core-spa.tex2
-rw-r--r--tex/context/base/enco-ans.tex2
-rw-r--r--tex/context/base/enco-def.tex4
-rw-r--r--tex/context/base/enco-ec.tex6
-rw-r--r--tex/context/base/enco-fsl.tex32
-rw-r--r--tex/context/base/enco-qx.tex2
-rw-r--r--tex/context/base/font-chi.tex1
-rw-r--r--tex/context/base/font-ini.tex14
-rw-r--r--tex/context/base/hand-def.tex35
-rw-r--r--tex/context/base/hand-ini.tex191
-rw-r--r--tex/context/base/mult-con.tex9
-rw-r--r--tex/context/base/sort-def.tex95
-rw-r--r--tex/context/base/sort-lan.tex9
-rw-r--r--tex/context/base/spec-fdf.tex2
-rw-r--r--tex/context/base/supp-lan.tex7
-rw-r--r--tex/context/base/supp-pdf.tex10
-rw-r--r--tex/context/base/type-syn.tex2
-rw-r--r--tex/context/base/x-res-01.tex4
22 files changed, 398 insertions, 94 deletions
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 43446058f..60d538895 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2005.08.15}
+\def\contextversion{2005.08.19}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type {tex -i} or \type {whatevertex} using
diff --git a/tex/context/base/core-fld.tex b/tex/context/base/core-fld.tex
index 614d35efe..5f03d699e 100644
--- a/tex/context/base/core-fld.tex
+++ b/tex/context/base/core-fld.tex
@@ -875,6 +875,8 @@
\fi
\egroup}
+\chardef\fitfieldmode\plusone % 3 = best
+
\def\dohandlefitfield[#1][#2][#3][#4][#5]% alleen check
{\presetlocalframed[\??fd]%
\localframed
@@ -894,8 +896,17 @@
\setbox\scratchbox\hbox{\dogetfieldsymbol\@@DriverFieldValue}%
\scratchdimen\wd\scratchbox \edef\@@DriverFieldWidth {\the\scratchdimen}%
\scratchdimen\ht\scratchbox \edef\@@DriverFieldHeight{\the\scratchdimen}%
- \vbox to \ht\scratchbox
- {\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}}}
+ \ifcase\fitfieldmode
+ \typesetfield
+ \or % 1 = ignore depth (original, assumed no depth, actually a bug)
+ \vbox to \ht\scratchbox{\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}%
+ \or % 2 = add depth to height, but no depth in result
+ \advance\scratchdimen\dp\scratchbox \edef\@@DriverFieldHeight{\the\scratchdimen}%
+ \vbox to \ht\scratchbox{\vfill\hbox to \wd\scratchbox{\typesetfield\hfill}\vss}%
+ \or % 3 = add depth to height, and apply depth to result
+ \advance\scratchdimen\dp\scratchbox \edef\@@DriverFieldHeight{\the\scratchdimen}%
+ \hbox to \wd\scratchbox{\lower\dp\scratchbox\hbox{\typesetfield}\hfill}%
+ \fi}}
%D Common stuff
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index 7aa6f18c2..a93954fe0 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -212,7 +212,7 @@
\c!textcommand=\listtextcommand,
\c!pagecommand=\listpagecommand,
\c!pagenumber=\v!yes,
-\c!sectionnumber=\v!yes,
+\c!headnumber=\v!yes,
\c!pageboundaries=,
\c!margin=\!!zeropoint,
\c!aligntitle=,
@@ -237,7 +237,7 @@
\c!textstyle,\c!textcolor,\c!textcommand,
\c!pagestyle,\c!pagecommand,\c!pagecolor,
\c!numberstyle,\c!numbercolor,\c!numbercommand,
-\c!sectionnumber,
+\c!headnumber,
\c!pagenumber,\c!pageboundaries,\c!margin,\c!symbol,\c!limittext,
\c!aligntitle,\c!before,\c!after,\c!inbetween,\v!part\c!number,\c!label]%
\getparameters[\??li#1][#3]}}%
@@ -518,7 +518,7 @@
{\forgetall
\makelistelement\v!all
{%
-\doif{\listparameter\c!sectionnumber}\v!yes
+\doif{\listparameter\c!headnumber}\v!yes
{\makelistelement\v!sectionnumber
{\donestedlistattributes\c!numberstyle\c!numbercolor
{\listparameter\c!numbercommand{\currentlistsymbol}}}%
@@ -591,7 +591,7 @@
{\forgetall
\dostartlistattributes\c!style\c!color\empty
\!!widthb\hsize
-\doifelse{\listparameter\c!sectionnumber}\v!yes{%
+\doifelse{\listparameter\c!headnumber}\v!yes{%
\setbox2\hbox \ifdim\!!widtha>\zeropoint to \!!widtha \fi
{\makelistelement\v!sectionnumber
{\donestedlistattributes\c!numberstyle\c!numbercolor
@@ -710,7 +710,7 @@
{\listparameter\c!pagecommand
{\pageprefix\??li\currentlist[#5]%
\translatednumber[#5]}}}}}}%
-\doif{\listparameter\c!sectionnumber}\v!yes{%
+\doif{\listparameter\c!headnumber}\v!yes{%
\donetrue
\doifnothing{#3}{\doifnothing{\listparameter\c!symbol}\donefalse}%
% == \doifnothing{#3\listparameter\c!symbol}\donefalse
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index 7116d05c4..e21d6385a 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -71,7 +71,7 @@
%D rounded corners are used, so:
%D
%D \startbuffer
-%D \periodgraybox
+%D \dotgraybox
%D \width.5\hsize\height1cm\depth0cm\raster.85\corner\v!no\radius0pt\\
%D \stopbuffer
%D
@@ -86,7 +86,7 @@
%D \startlinecorrection
%D \unprotect
%D \vbox to 1cm
-%D {\getvalue{period graybox}%
+%D {\dotgraybox
%D \width.5\hsize\height1cm\depth0cm\raster.85\corner\v!no\radius0pt\\}
%D \protect
%D \stoplinecorrection
@@ -791,7 +791,7 @@
\else
\boxhaswidthfalse
\fi
- \else\ifx\localwidth\v!fixed % equals \v!fix but no shapebox
+ \else\ifx\localwidth\v!fixed % equals \v!fit but no shapebox
\ifboxhasformat
\boxhaswidthtrue
\!!widtha\hsize
@@ -1688,7 +1688,7 @@
%D formatting. Watch the visualized struts. \footnote {Here we
%D used \type {\showstruts}.}
%D
-%D \startuitstellen
+%D \startpostponing
%D \bgroup
%D \showstruts
%D \dontcomplain
@@ -1729,9 +1729,9 @@
%D \framed[width=fit, height=broad, align=middle] {a\par b\par c}&
%D \framed[width=fit, height=fit, align=middle] {a\par b\par c}\cr}
%D \stoplinecorrection
-%D \blank[2*groot]
+%D \blank[2*big]
%D \egroup
-%D \stopuitstellen
+%D \stoppostponing
%D \macros
%D {framednoflines, framedlastlength}
@@ -1798,7 +1798,7 @@
%D visualization of the resulting box, that is, we applied
%D \type{\ruledhbox} to the result.
-%D \startuitstellen
+%D \startpostponing
%D \bgroup
%D \unprotect
%D \dontcomplain
@@ -1845,7 +1845,7 @@
%D
%D \protect
%D \egroup
-%D \stopuitstellen
+%D \stoppostponing
%D When typesetting the framed box inline, we have to keep the
%D baseline intact outside as well as inside the framed box.
@@ -1975,32 +1975,32 @@
%D \setuptyping[margin=0pt]
%D \startlinecorrection
%D \startbuffer
-%D \framed[offset=overlay,frame=on] {\donkerrood\blackrule}
+%D \framed[offset=overlay,frame=on]{\darkred\blackrule}
%D \stopbuffer
%D \hbox{\getbuffer\vbox{\typebuffer}}
%D
%D \startbuffer
-%D \framed[offset=overlay,frame=on,bottomframe=off]{\donkerrood\blackrule}
+%D \framed[offset=overlay,frame=on,bottomframe=off]{\darkred\blackrule}
%D \stopbuffer
%D \hbox{\getbuffer\vbox{\typebuffer}}
%D
%D \startbuffer
-%D \framed[offset=overlay,frame=on,bottomframe=on]{\donkerrood\blackrule}
+%D \framed[offset=overlay,frame=on,bottomframe=on]{\darkred\blackrule}
%D \stopbuffer
%D \hbox{\getbuffer\vbox{\typebuffer}}
%D
%D \startbuffer
-%D \framed[offset=overlay,frame=off] {\donkerrood\blackrule}
+%D \framed[offset=overlay,frame=off]{\darkred\blackrule}
%D \stopbuffer
%D \hbox{\getbuffer\vbox{\typebuffer}}
%D
%D \startbuffer
-%D \framed[offset=overlay,frame=off,bottomframe=off]{\donkerrood\blackrule}
+%D \framed[offset=overlay,frame=off,bottomframe=off]{\darkred\blackrule}
%D \stopbuffer
%D \hbox{\getbuffer\vbox{\typebuffer}}
%D
%D \startbuffer
-%D \framed[offset=overlay,frame=off,bottomframe=on]{\donkerrood\blackrule}
+%D \framed[offset=overlay,frame=off,bottomframe=on]{\darkred\blackrule}
%D \stopbuffer
%D \hbox{\getbuffer\vbox{\typebuffer}}
%D \stoplinecorrection
@@ -2493,13 +2493,13 @@
%D width=\hsize,
%D background=screen]
%D
-%D \startkadertekst
+%D \startframedtext
%D By default the framed text is centered \dots
-%D \stopkadertekst
+%D \stopframedtext
%D
-%D \startkadertekst[right]
+%D \startframedtext[right]
%D \dots\ but we can also align left, middle and right.
-%D \stopkadertekst
+%D \stopframedtext
%D \stopbuffer
%D
%D \startbuffer[framed-1]
@@ -2558,7 +2558,7 @@
%D
%D that generates two commands:
%D
-%D \showsetup{\e!start<<framedtext>>}
+%D \showsetup{start<<framedtext>>}
%D \showsetup{<<framedtext>>}
%D
%D The next definition shows the defaults.
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index db13c4992..6ee5df55d 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -3659,6 +3659,8 @@
\setvalue{@@align@@\v!nothanging }{\disableprotruding}
\setvalue{@@align@@\v!hz }{\enableadjusting}
\setvalue{@@align@@\v!nohz }{\disableadjusting}
+\setvalue{@@align@@\v!spacing }{\enablespacehandling}
+\setvalue{@@align@@\v!nospacing }{\disablespacehandling}
\setvalue{@@align@@\v!hyphenated }{\dohyphens}
\setvalue{@@align@@\v!nothyphenated}{\nohyphens}
\setvalue{@@align@@\v!new }{\@@asraggedfalse} % so new will give you consistency
diff --git a/tex/context/base/enco-ans.tex b/tex/context/base/enco-ans.tex
index 282f33b3e..6c7acf731 100644
--- a/tex/context/base/enco-ans.tex
+++ b/tex/context/base/enco-ans.tex
@@ -76,7 +76,7 @@
\definecharacter thorn 254
\definecharacter Thorn 222
-\definecharacter Eth 208
+\definecharacter Dstroke 208 % also Eth, mapped in enco-def
\definecharacter eth 240
\definecharacter exclamdown 161
diff --git a/tex/context/base/enco-def.tex b/tex/context/base/enco-def.tex
index 2cad5a89e..4bc504c1b 100644
--- a/tex/context/base/enco-def.tex
+++ b/tex/context/base/enco-def.tex
@@ -62,8 +62,8 @@
\definecharacter thorn {\unknownchar}
\definecharacter Thorn {\unknownchar}
-\definecharacter eth {\unknownchar}
-\definecharacter Eth {\unknownchar}
+\definecharacter eth {\dstroke} % wrong but better that nothing
+\definecharacter Eth {\Dstroke} % wrong but better that nothing
\definecharacter exclamdown 60
\definecharacter questiondown 62
diff --git a/tex/context/base/enco-ec.tex b/tex/context/base/enco-ec.tex
index 58ccd0400..aa8319e00 100644
--- a/tex/context/base/enco-ec.tex
+++ b/tex/context/base/enco-ec.tex
@@ -113,7 +113,8 @@
\definecharacter thorn 254
\definecharacter Thorn 222
-\definecharacter Eth 208
+%definecharacter Eth 208 % no !
+\definecharacter Dstroke 208
\definecharacter eth 240
\definecharacter exclamdown 189 % lig
@@ -253,7 +254,8 @@
\definecharacter uhungarumlaut 182
\definecharacter Uhungarumlaut 150
-\definecharacter dmacron 158
+%definecharacter dmacron 158 % no !
+\definecharacter dstroke 158
\definecharacter aogonek 161
\definecharacter Aogonek 129
diff --git a/tex/context/base/enco-fsl.tex b/tex/context/base/enco-fsl.tex
new file mode 100644
index 000000000..86a41c88a
--- /dev/null
+++ b/tex/context/base/enco-fsl.tex
@@ -0,0 +1,32 @@
+%D \module
+%D [ file=enco-fsl,
+%D version=2005.08.17,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=Slovenian Specialities,
+%D author={Hans Hagen, Mojka Miklavec},
+%D date=\currentdate,
+%D copyright=Hans Hagen]
+%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 Usage:
+%D
+%D \starttyping
+%D \useencoding[fsl]
+%D
+%D \starttext
+%D \dstroke \language[sl] \dstroke
+%D \stoptext
+%D \stoptyping
+
+\unprotect
+
+\startlanguagespecifics[\s!sl]
+ \startencoding[\s!default]
+ \definecharacter dstroke {d\zcaron} % hm, expects a space delimiter
+ \stopencoding
+\stoplanguagespecifics
+
+\protect \endinput
diff --git a/tex/context/base/enco-qx.tex b/tex/context/base/enco-qx.tex
index 38db703d9..407d60bd7 100644
--- a/tex/context/base/enco-qx.tex
+++ b/tex/context/base/enco-qx.tex
@@ -110,7 +110,7 @@
\definecharacter thorn 254
\definecharacter Thorn 222
-\definecharacter Eth 208
+\definecharacter Dstroke 208 % also Eth, mapped into enco-def
\definecharacter eth 240
\definecharacter exclamdown 60
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 580f633b1..7a602d4ab 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -36,6 +36,7 @@
%M \def\WangLei{\purechinese{\uchar{205}{245}\uchar{192}{218}}}
\useencoding[chi]
+\loadmapfile[gbk]
%D When \WangLei\ sent me a mail asking if \CONTEXT\ was able
%D to support Chinese, I wasn't sure if the answer could be
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index aa1bafcc9..b2007ee31 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -874,13 +874,21 @@
\newif\ifsynchronizemathfonts \synchronizemathfontstrue
\def\synchronizetext % stylish text in mmode
- {\ifsynchronizemathfonts\the\textstrategies\fam\minusone\fi}
+ {\ifsynchronizemathfonts\the\textstrategies\fi} % \if...\fam\minusone\fi}
\def\synchronizemath % math stuff in mmode
- {\ifsynchronizemathfonts\the\mathstrategies\fam\minusone\fi}
+ {\ifsynchronizemathfonts\the\mathstrategies\fi} % \if...\fam\minusone\fi}
\def\synchronizesymb % stylish math stuff in mmode
- {\ifsynchronizemathfonts\the\symbstrategies\fam\minusone\fi}
+ {\ifsynchronizemathfonts\the\symbstrategies\fi} % \if...\fam\minusone\fi}
+
+%D By not setting the family we can append a font switch to \tyep
+%D {\everymath}. On the other hand, one never knows in what family
+%D state the strategies brought us.
+%D
+%D \starttyping
+%D {\bfa $\the\fam$} {\bfa \everymath{} $\the\fam$}
+%D \stoptyping
%D \macros
%D {textonly}
diff --git a/tex/context/base/hand-def.tex b/tex/context/base/hand-def.tex
index db87525ac..591370cda 100644
--- a/tex/context/base/hand-def.tex
+++ b/tex/context/base/hand-def.tex
@@ -524,6 +524,41 @@
\definefonthandling [noligs] [noligs] [\c!type=tag]
+% experimental values !
+%
+% \definefontsynonym[myfont][Serif][handling=prespacing]
+% \definefont[whatever][myfont sa 1]
+% \setupalign[spacing]
+%
+% \whatever look at this: we now have a proper spacing feature and, hurray,
+% get rid of active punctuation!
+
+\startfonthandling [flexspacing]
+
+ \definespacefactor : 0 1.25 .25 .25
+
+ \definespacefactor , 0 1 .25 .25
+ \inheritspacefactor ; ,
+
+ \definespacefactor . 0 1.5 .25 .25
+ \inheritspacefactor ! .
+ \inheritspacefactor ? .
+
+\stopfonthandling
+
+\definefonthandling[flexspacing][flexspacing][\c!type=\v!spacing]
+
+\startfonthandling [prespacing] % better name needed
+
+ \definespacefactor : .25 .25 0 0
+ \inheritspacefactor ; :
+ \inheritspacefactor ! :
+ \inheritspacefactor ? :
+
+\stopfonthandling
+
+\definefonthandling[prespacing][prespacing][\c!type=\v!spacing] % factor=.5
+
% A special case of guillemots, beware: when used ungrouped,
% it overloads all successive (current) encoding vector
% instances! Will be obsolete soon.
diff --git a/tex/context/base/hand-ini.tex b/tex/context/base/hand-ini.tex
index 1d5f2da4e..588d635a9 100644
--- a/tex/context/base/hand-ini.tex
+++ b/tex/context/base/hand-ini.tex
@@ -73,6 +73,8 @@
\newif\ifskiphandlingdef \skiphandlingdeffalse
+\newtoks\everyenablefonthandling
+
% much in common with hz/protruding defs
% todo: fix others
@@ -100,11 +102,45 @@
\let\char\normalchar}}%
\fi}
-\def\doinhsomehandling#1#2 #3 %
+% \def\dosettriplethandling#1#2#3 #4 #5 #6 % no define since directly set
+% {\ifskiphandlingdef \else
+% \doifnumberelse{\string#2}
+% {#1{#2#3}{#4}{#5}{#6}}
+% {\doifelsenothing{#3}
+% {#1{`#2}{#4}{#5}{#6}}
+% {\let\char\empty
+% \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}{#6}}\donothing
+% \let\char\normalchar}}%
+% \fi}
+
+\def\dosetquartethandling#1#2#3 #4 #5 #6 #7 % no define since directly set
{\ifskiphandlingdef \else
- \let\char\empty
- \doifnumberelse{\csname#2\endcsname}{#1{\csname#2\endcsname}{`#3}}\donothing
- \let\char\normalchar
+ \doifnumberelse{\string#2}
+ {#1{#2#3}{#4}{#5}{#6}{#7}}
+ {\doifelsenothing{#3}
+ {#1{`#2}{#4}{#5}{#6}{#7}}
+ {\let\char\empty
+ \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{#4}{#5}{#6}{#7}}\donothing
+ \let\char\normalchar}}%
+ \fi}
+
+
+% \def\doinhsomehandling#1#2 #3 %
+% {\ifskiphandlingdef \else
+% \let\char\empty
+% \doifnumberelse{\csname#2\endcsname}{#1{\csname#2\endcsname}{`#3}}\donothing
+% \let\char\normalchar
+% \fi}
+
+\def\doinhsomehandling#1#2#3 #4 % to be checked
+ {\ifskiphandlingdef \else
+ \if#3\relax\relax
+ #1{`#2}{`#4}%
+ \else
+ \let\char\empty
+ \doifnumberelse{\csname#2#3\endcsname}{#1{\csname#2#3\endcsname}{`#4}}\donothing
+ \let\char\normalchar
+ \fi
\fi}
% adjustspacing
@@ -178,6 +214,12 @@
\fontname\handledfont}}
\fi
+\ifx\setfontadjusting\gobbleoneargument \else
+ \appendtoks
+ \setfontadjusting\askedfonthandling
+ \to \everyenablefonthandling
+\fi
+
% protruding
\newif\ifembasedprotruding \embasedprotrudingfalse
@@ -238,28 +280,28 @@
\newdimen\protrudethreshold \protrudethreshold=36pt
-% keep this
-
-% \def\redodefineprotrudefactor#1%
-% {\ifdim\fontdimen6\font>\protrudethreshold
-% \divide\scratchdimen\fontdimen6\font
-% \multiply\scratchdimen\fontcharwd\handledfont#1\relax
-% \else
-% \multiply\scratchdimen\fontcharwd\handledfont#1\relax
-% \divide\scratchdimen\fontdimen6\font
-% \fi}
-
-% \def\dododefineprotrudefactor#1#2#3%
-% {\scratchdimen#2\lproddimen
-% \ifembasedprotruding \else
-% \redodefineprotrudefactor{#1}%
-% \fi
-% \lpcode\handledfont#1\scratchdimen
-% \scratchdimen#3\rproddimen
-% \ifembasedprotruding \else
-% \redodefineprotrudefactor{#1}%
-% \fi
-% \rpcode\handledfont#1\scratchdimen}
+ % keep this
+
+ % \def\redodefineprotrudefactor#1%
+ % {\ifdim\fontdimen6\font>\protrudethreshold
+ % \divide\scratchdimen\fontdimen6\font
+ % \multiply\scratchdimen\fontcharwd\handledfont#1\relax
+ % \else
+ % \multiply\scratchdimen\fontcharwd\handledfont#1\relax
+ % \divide\scratchdimen\fontdimen6\font
+ % \fi}
+
+ % \def\dododefineprotrudefactor#1#2#3%
+ % {\scratchdimen#2\lproddimen
+ % \ifembasedprotruding \else
+ % \redodefineprotrudefactor{#1}%
+ % \fi
+ % \lpcode\handledfont#1\scratchdimen
+ % \scratchdimen#3\rproddimen
+ % \ifembasedprotruding \else
+ % \redodefineprotrudefactor{#1}%
+ % \fi
+ % \rpcode\handledfont#1\scratchdimen}
\def\dododefineprotrudefactor#1#2#3%
{\lpcode\handledfont#1\dimexpr#2\lproddimen
@@ -328,6 +370,81 @@
\fi
+\ifx\setprotrudingfactor\gobbleoneargument \else
+ \appendtoks
+ \setprotrudingfactor\askedfonthandling
+ \to \everyenablefonthandling
+\fi
+
+% Basic support for a new pdftex feature: space factors
+%
+% \knbccode -- kern before char code
+% \knbscode -- kern before space code
+% \stbscode -- stretch before space code
+% \shbscode -- shrink before space code
+%
+% Setting \knsbcode\font`\.=200 means that if a period sits before
+% a interword space (glue), then the interword glue will be increased
+% by an amount of 1em*200/1000, i.e. the value is given in thousandths
+% of an em. (HTT)
+
+\newdimen\spfacdimen
+
+\ifx\undefined\pdfadjustinterwordglue % we don't use pdftex
+
+ \let\enablespacehandling \relax
+ \let\disablespacehandling \relax
+
+ \let\setspacehandling \gobbleoneargument
+
+ \def\definespacefactor #1 #2 #3 #4 #5 {}
+ \def\inheritspacefactor #1 #2 {}
+
+\else
+
+ \def\enablespacehandling {\pdfadjustinterwordglue\plusone }
+ \def\disablespacehandling{\pdfadjustinterwordglue\minusone}
+
+ \appendtoks \disablespacehandling \to \everyforgetall % Here or not here?
+
+ \def\dosetspacehandling#1%
+ {\spfacdimen\csname\@fha@\@fha@#1\c!factor\endcsname\s!pt
+ \multiply\spfacdimen\plusthousand\divide\spfacdimen\maxcard\relax}
+
+ \def\setspacehandling#1%
+ {\doifvalue{\@fha@\@fha@#1\c!type}\v!spacing{\dosetspacehandling{#1}}}
+
+ \def\dododefinespacefactor#1#2#3#4#5%
+ {\sfcode#1\plusthousand
+ \knbccode\handledfont#1\dimexpr#2\spfacdimen\relax
+ \knbscode\handledfont#1\dimexpr#3\spfacdimen\relax
+ \stbscode\handledfont#1\dimexpr#4\spfacdimen\relax
+ \shbscode\handledfont#1\dimexpr#5\spfacdimen\relax}
+
+ \def\dodoinheritspacefactor#1#2%
+ {\sfcode#1\plusthousand
+ \knbccode\handledfont#1\knbccode\handledfont#2\relax
+ \knbscode\handledfont#1\knbscode\handledfont#2\relax
+ \stbscode\handledfont#1\stbscode\handledfont#2\relax
+ \shbscode\handledfont#1\shbscode\handledfont#2\relax}
+
+ \def\definespacefactor#1 #2 #3 #4 #5 %
+ {\setfonttoks
+ \let\inherithandling\inheritspacefactor
+ \appendtoks\dosetquartethandling\dododefinespacefactor#1 #2 #3 #4 #5 \to\fonttoks}
+
+ \def\inheritspacefactor#1 #2 %
+ {\setfonttoks
+ \appendtoks\doinhsomehandling\dodoinheritspacefactor#1 #2 \to\fonttoks}
+
+\fi
+
+\ifx\setspacehandling\gobbleoneargument \else
+ \appendtoks
+ \setspacehandling\askedfonthandling
+ \to \everyenablefonthandling
+\fi
+
% font attributes
\let\notagcode\minusone
@@ -385,7 +502,13 @@
\def\dodefinefonthandling[#1][#2][#3]%
{\ifthirdargument
\setvalue{\@fha@\@fha@#1}{#2}%
- \getparameters[\@fha@\@fha@#1][\c!type=\v!hanging,\c!left=1,\c!right=1,\c!min=20,\c!max=20,\c!step=5,#3]%
+ \getparameters
+ [\@fha@\@fha@#1]
+ [\c!type=\v!hanging,%
+ \c!left=1,\c!right=1,%
+ \c!min=20,\c!max=20,\c!step=5,%
+ \c!factor=1,%
+ #3]%
\else
\setvalue{\@fha@\@fha@\@fha@#1}{#2}%
\fi}
@@ -450,20 +573,6 @@
\endETEX
-\newtoks\everyenablefonthandling
-
-\ifx\setprotrudingfactor\gobbleoneargument \else
- \appendtoks
- \setprotrudingfactor\askedfonthandling
- \to \everyenablefonthandling
-\fi
-
-\ifx\setfontadjusting\gobbleoneargument \else
- \appendtoks
- \setfontadjusting\askedfonthandling
- \to \everyenablefonthandling
-\fi
-
\def\redofastenablehandling
{\edef\fonthandling{\csname\@fha@\@fha@\@fha@\askedfonthandling\endcsname}%
\rawprocesscommacommand[\fonthandling]\xfastenablehandling}
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 201dd1082..80fb85c31 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -1039,6 +1039,9 @@ keyexpansion: sleutelexpansie keyexpansion
pagenumber: paginanummer pagenumber
seitennummer cislostranky
numeropagina numarpagina
+ headnumber: kopnummer headnumber
+ kopfnummer cislonadpisu
+ numerotesta numartitlu
pageboundaries: paginaovergangen pageboundaries
seitenbegrenzung hranicestranky
limitipagina marginipagina
@@ -1701,6 +1704,12 @@ textlayer: tekstlaag textlayer
hanging: hangend hanging
haengend visici
sospeso suspendat
+ spacing: spatiering spacing
+ spatiumausgleich mezerovani
+ spaziatura spatiere
+ nospacing: geenspatiering nospacing
+ nospacing nospacing
+ nospacing nospacing
repeat: herhaal repeat
wiederholen opakovat
ripeti repetat
diff --git a/tex/context/base/sort-def.tex b/tex/context/base/sort-def.tex
index 04ce50681..e2496f196 100644
--- a/tex/context/base/sort-def.tex
+++ b/tex/context/base/sort-def.tex
@@ -349,4 +349,99 @@
\exportsortexpansion{dcroat} {dstroke}
\exportsortexpansion{Dcroat} {Dstroke}
+% more
+
+\exportsortshortcut{\^ A} {\Acircumflex} \exportsortshortcut{\^ a} {\acircumflex}
+\exportsortshortcut{\^ C} {\Ccircumflex} \exportsortshortcut{\^ c} {\ccircumflex}
+\exportsortshortcut{\^ E} {\Ecircumflex} \exportsortshortcut{\^ e} {\ecircumflex}
+\exportsortshortcut{\^ G} {\Gcircumflex} \exportsortshortcut{\^ g} {\gcircumflex}
+\exportsortshortcut{\^ H} {\Hcircumflex} \exportsortshortcut{\^ h} {\hcircumflex}
+\exportsortshortcut{\^ I} {\Icircumflex} \exportsortshortcut{\^ i} {\icircumflex} \exportsortshortcut{\^\i} {\icircumflex}
+\exportsortshortcut{\^ J} {\Jcircumflex} \exportsortshortcut{\^ j} {\jcircumflex} \exportsortshortcut{\^\j} {\jcircumflex}
+\exportsortshortcut{\^ O} {\Ocircumflex} \exportsortshortcut{\^ o} {\ocircumflex}
+\exportsortshortcut{\^ S} {\Scircumflex} \exportsortshortcut{\^ s} {\scircumflex}
+\exportsortshortcut{\^ U} {\Ucircumflex} \exportsortshortcut{\^ u} {\ucircumflex}
+\exportsortshortcut{\^ W} {\Wcircumflex} \exportsortshortcut{\^ w} {\wcircumflex}
+\exportsortshortcut{\^ Y} {\Ycircumflex} \exportsortshortcut{\^ y} {\ycircumflex}
+
+\exportsortshortcut{\` A} {\Agrave} \exportsortshortcut{\` a} {\agrave}
+\exportsortshortcut{\` E} {\Egrave} \exportsortshortcut{\` e} {\egrave}
+\exportsortshortcut{\` I} {\Igrave} \exportsortshortcut{\` i} {\igrave} \exportsortshortcut{\`\i} {\igrave}
+\exportsortshortcut{\` O} {\Ograve} \exportsortshortcut{\` o} {\ograve}
+\exportsortshortcut{\` U} {\Ugrave} \exportsortshortcut{\` u} {\ugrave}
+\exportsortshortcut{\` Y} {\Ygrave} \exportsortshortcut{\` y} {\ygrave}
+
+\exportsortshortcut{\~ A} {\Atilde} \exportsortshortcut{\~ a} {\atilde}
+\exportsortshortcut{\~ I} {\Itilde} \exportsortshortcut{\~ i} {\itilde} \exportsortshortcut{\~\i} {\itilde}
+\exportsortshortcut{\~ O} {\Otilde} \exportsortshortcut{\~ o} {\otilde}
+\exportsortshortcut{\~ U} {\Utilde} \exportsortshortcut{\~ u} {\utilde}
+
+\exportsortshortcut{\" A} {\Adiaeresis} \exportsortshortcut{\" a} {\adiaeresis}
+\exportsortshortcut{\" E} {\Ediaeresis} \exportsortshortcut{\" e} {\ediaeresis}
+\exportsortshortcut{\" I} {\Idiaeresis} \exportsortshortcut{\" i} {\idiaeresis} \exportsortshortcut{\"\i} {\idiaeresis}
+\exportsortshortcut{\" O} {\Odiaeresis} \exportsortshortcut{\" o} {\odiaeresis}
+\exportsortshortcut{\" U} {\Udiaeresis} \exportsortshortcut{\" u} {\udiaeresis}
+\exportsortshortcut{\" Y} {\Ydiaeresis} \exportsortshortcut{\" y} {\ydiaeresis}
+
+\exportsortshortcut{\' A} {\Aacute} \exportsortshortcut{\' a} {\aacute}
+\exportsortshortcut{\' C} {\Cacute} \exportsortshortcut{\' c} {\cacute}
+\exportsortshortcut{\' E} {\Eacute} \exportsortshortcut{\' e} {\eacute}
+\exportsortshortcut{\' I} {\Iacute} \exportsortshortcut{\' i} {\iacute} \exportsortshortcut{\'\i} {\iacute}
+\exportsortshortcut{\' L} {\Lacute} \exportsortshortcut{\' l} {\lacute}
+\exportsortshortcut{\' N} {\Nacute} \exportsortshortcut{\' n} {\nacute}
+\exportsortshortcut{\' O} {\Oacute} \exportsortshortcut{\' o} {\oacute}
+\exportsortshortcut{\' R} {\Racute} \exportsortshortcut{\' r} {\racute}
+\exportsortshortcut{\' S} {\Sacute} \exportsortshortcut{\' s} {\sacute}
+\exportsortshortcut{\' U} {\Uacute} \exportsortshortcut{\' u} {\uacute}
+\exportsortshortcut{\' Y} {\Yacute} \exportsortshortcut{\' y} {\yacute}
+\exportsortshortcut{\' Z} {\Zacute} \exportsortshortcut{\' z} {\zacute}
+
+\exportsortshortcut{\. C} {\Cdotaccent} \exportsortshortcut{\. c} {\cdotaccent}
+\exportsortshortcut{\. E} {\Edotaccent} \exportsortshortcut{\. e} {\edotaccent}
+\exportsortshortcut{\. G} {\Gdotaccent} \exportsortshortcut{\. g} {\gdotaccent}
+\exportsortshortcut{\. I} {\Idotaccent} \exportsortshortcut{\. i} {\idotaccent} \exportsortshortcut{\.\i} {\idotaccent}
+\exportsortshortcut{\. Z} {\Zdotaccent} \exportsortshortcut{\. z} {\zdotaccent}
+
+\exportsortshortcut{\= A} {\Amacron} \exportsortshortcut{\= a} {\amacron}
+\exportsortshortcut{\= E} {\Emacron} \exportsortshortcut{\= e} {\emacron}
+\exportsortshortcut{\= I} {\Imacron} \exportsortshortcut{\= i} {\imacron} \exportsortshortcut{\=\i} {\imacron}
+\exportsortshortcut{\= O} {\Omacron} \exportsortshortcut{\= o} {\omacron}
+\exportsortshortcut{\= U} {\Umacron} \exportsortshortcut{\= u} {\umacron}
+
+\exportsortshortcut{\c C} {\Ccedilla} \exportsortshortcut{\c c} {\ccedilla}
+\exportsortshortcut{\c K} {\Kcedilla} \exportsortshortcut{\c k} {\kcedilla}
+\exportsortshortcut{\c L} {\Lcedilla} \exportsortshortcut{\c l} {\lcedilla}
+\exportsortshortcut{\c N} {\Ncedilla} \exportsortshortcut{\c n} {\ncedilla}
+\exportsortshortcut{\c R} {\Rcedilla} \exportsortshortcut{\c r} {\rcedilla}
+\exportsortshortcut{\c S} {\Scedilla} \exportsortshortcut{\c s} {\scedilla}
+\exportsortshortcut{\c T} {\Tcedilla} \exportsortshortcut{\c t} {\tcedilla}
+
+\exportsortshortcut{\H O} {\Ohungarumlaut} \exportsortshortcut{\H o} {\ohungarumlaut}
+\exportsortshortcut{\H u} {\uhungarumlaut} \exportsortshortcut{\H U} {\Uhungarumlaut}
+
+\exportsortshortcut{\k A} {\Aogonek} \exportsortshortcut{\k a} {\aogonek}
+\exportsortshortcut{\k E} {\Eogonek} \exportsortshortcut{\k e} {\eogonek}
+\exportsortshortcut{\k I} {\Iogonek} \exportsortshortcut{\k i} {\iogonek}
+\exportsortshortcut{\k U} {\Uogonek} \exportsortshortcut{\k u} {\uogonek}
+
+\exportsortshortcut{\r A} {\Aring} \exportsortshortcut{\r a} {\aring}
+\exportsortshortcut{\r U} {\Uring} \exportsortshortcut{\r u} {\uring}
+
+\exportsortshortcut{\u A} {\Abreve} \exportsortshortcut{\u a} {\abreve}
+\exportsortshortcut{\u E} {\Ebreve} \exportsortshortcut{\u e} {\ebreve}
+\exportsortshortcut{\u G} {\Gbreve} \exportsortshortcut{\u g} {\gbreve}
+\exportsortshortcut{\u I} {\Ibreve} \exportsortshortcut{\u i} {\ibreve} \exportsortshortcut{\u\i} {\ibreve}
+\exportsortshortcut{\u O} {\Obreve} \exportsortshortcut{\u o} {\obreve}
+\exportsortshortcut{\u U} {\Ubreve} \exportsortshortcut{\u u} {\ubreve}
+
+\exportsortshortcut{\v C} {\Ccaron} \exportsortshortcut{\v c} {\ccaron}
+\exportsortshortcut{\v D} {\Dcaron} \exportsortshortcut{\v d} {\dcaron}
+\exportsortshortcut{\v E} {\Ecaron} \exportsortshortcut{\v e} {\ecaron}
+\exportsortshortcut{\v L} {\Lcaron} \exportsortshortcut{\v l} {\lcaron}
+\exportsortshortcut{\v N} {\Ncaron} \exportsortshortcut{\v n} {\ncaron}
+\exportsortshortcut{\v R} {\Rcaron} \exportsortshortcut{\v r} {\rcaron}
+\exportsortshortcut{\v S} {\Scaron} \exportsortshortcut{\v s} {\scaron}
+\exportsortshortcut{\v T} {\Tcaron} \exportsortshortcut{\v t} {\tcaron}
+\exportsortshortcut{\v Z} {\Zcaron} \exportsortshortcut{\v z} {\zcaron}
+
\endinput
diff --git a/tex/context/base/sort-lan.tex b/tex/context/base/sort-lan.tex
index c4489b1ff..60b0699ac 100644
--- a/tex/context/base/sort-lan.tex
+++ b/tex/context/base/sort-lan.tex
@@ -96,12 +96,11 @@
% czech
%
-%
+% a-c ccaron d-
-\startmode[sortorder-no,sortorder-da]
- \exportsortreduction{ch}{c}
+\startmode[sortorder-cz]
+ \exportsortrule {ccaron} {c+1}
+ \exportsortreduction {ch} {c}
\stopmode
-
-
\endinput
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index 7bd1c3277..853dbb678 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -33,7 +33,7 @@
\unprotect
%D \macros
-%D {\PDFobjref}
+%D {PDFobjref}
%D
%D Just a shortcut.
diff --git a/tex/context/base/supp-lan.tex b/tex/context/base/supp-lan.tex
index bd3ac9224..ebb47424c 100644
--- a/tex/context/base/supp-lan.tex
+++ b/tex/context/base/supp-lan.tex
@@ -715,7 +715,7 @@
\def\activedododotextmodediscretionary#1#2%
{\convertargument#2\to\discretionarytoken
- \def\textmodediscretionary%
+ \def\textmodediscretionary
{\getvalue{\strippedcsname\textmodediscretionary\string#1}}%
\ifx#1\nextnext % takes care of ||| and +++ and ......
\prewordbreak\discretionary{\hbox{$#1$}}{}{\hbox{$#1$}}%
@@ -823,8 +823,9 @@
{\prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak}
\definetextmodediscretionary _
- {\prewordbreak\discretionary{\textmodediscretionary}
- {\textmodediscretionary}{\textmodediscretionary}\prewordbreak}
+ {\prewordbreak
+ \discretionary{\compoundhyphen}{\compoundhyphen}{\compoundhyphen}%
+ \prewordbreak}
\definetextmodediscretionary (
{\ifdim\lastskip>\zeropoint
diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex
index dff57957a..b40a699f2 100644
--- a/tex/context/base/supp-pdf.tex
+++ b/tex/context/base/supp-pdf.tex
@@ -1103,7 +1103,7 @@
%D
%D The last case outputs a \type{gsave fill grestore} before
%D \type{stroke}. Handling the path outside the main loops
-%D saves about 40\% run time.\footnoot{We can save some more by
+%D saves about 40\% run time.\footnote{We can save some more by
%D following the \METAPOST\ output routine, but for the moment
%D we keep things simple.} Switching between the main loop and
%D the path loop is done by means of the recursely called
@@ -1241,7 +1241,7 @@
%D The transformation code is rewritten by Daniel H. Luecking who
%D describes his patch as follows:
%D
-%D We would like to divide 1 by $X4, but all divisions are integer so
+%D We would like to divide 1 by $X$, but all divisions are integer so
%D for accuracy we want to convert to large integers and make sure the
%D integer quotient has as many significant digits as possible. Thus we
%D need to replace $1/X$ with $M/N$ where $N$ is as large as possible
@@ -1250,7 +1250,7 @@
%D largest legal integer. Using it (and simply ignoring the inaccuracy
%D caused by $-1$) turns out to be at least as accurate in all cases,
%D and more accurate in some.} (largest legal power of 2) and adjust
-%D $X4 downward (if necessary) to the the range $1-2^{16}$. This gives
+%D $X$ downward (if necessary) to the the range $1-2^{16}$. This gives
%D at least 15 significant binary digits, (almost as accurate as
%D \METAPOST\ for numbers near 1) or almost 5 significant figures
%D (decimal).
@@ -1276,7 +1276,7 @@
%D is the right way to do $(1 \hbox{pt})/(X \hbox{pt})$ and get the
%D answer in points. But we are limited to $2^{30}/X$. However, we
%D actually do $[ 2^{30} / (X/2^K) ]*2^{2-K}$ where $K$ is the number
-%D of halvings it takes to bring $X4 below $1 \hbox{pt}$. If $K$ is 0
+%D of halvings it takes to bring $X$ below $1 \hbox{pt}$. If $K$ is 0
%D or 1 we readjust by multiplying by 4 or 2, otherwise by halving
%D $(K-2)$ times \type {\MPscratchCnt} holds the value of $K$ from
%D \type {\MPadjustdimen}.
@@ -1608,7 +1608,7 @@
%OLD \edef#2{\withoutpt\the\dimen18}% % p_x^\prime
%OLD \edef#4{\withoutpt\the\dimen12}} % p_y^\prime
-%D DHL: Ideally, $r_x$, $r_y$, $s_x4, $s_y$ should be in macros, not
+%D DHL: Ideally, $r_x$, $r_y$, $s_x$, $s_y$ should be in macros, not
%D dimensions (they are scalar quantities after all, not lengths). I
%D suppose the authors decided to do calculations with integer
%D arithmetic instead of using real factors because it's faster.
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
index 894812d9c..16d0c0a83 100644
--- a/tex/context/base/type-syn.tex
+++ b/tex/context/base/type-syn.tex
@@ -98,7 +98,7 @@
\definefontsynonym [MathSymbolBold] [ComputerModernMath-Symbol-Bold]
\stoptypescript
-\starttypescript [serif] [modern,computer-modern-vari,latin-modern-vari] [name]
+\starttypescript [serif] [modern-vari,computer-modern-vari,latin-modern-vari] [name]
\definefontsynonym [Serif] [ComputerModernMono-Variable]
\definefontsynonym [SerifBold] [Serif]
\definefontsynonym [SerifItalic] [Serif]
diff --git a/tex/context/base/x-res-01.tex b/tex/context/base/x-res-01.tex
index 181641332..82c1116de 100644
--- a/tex/context/base/x-res-01.tex
+++ b/tex/context/base/x-res-01.tex
@@ -302,8 +302,8 @@
[section]
[style=bfb]
-\setupbodyfont
- [pos]
+% \setupbodyfont
+% [pos]
\setupinteractionmenu
[bottom]