summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2004-04-09 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2004-04-09 00:00:00 +0200
commitab3f887feadf929129087cd2cbc3783064507565 (patch)
treec0c12916ff903071880d0e157ff422b3f2cab2f4 /tex
parentb3e51f52d2070a709e3089ada6054cd2080590ca (diff)
downloadcontext-ab3f887feadf929129087cd2cbc3783064507565.tar.gz
stable 2004.04.09
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-ini.tex2
-rw-r--r--tex/context/base/cont-fil.tex3
-rw-r--r--tex/context/base/cont-new.tex143
-rw-r--r--tex/context/base/cont-sys.ori139
-rw-r--r--tex/context/base/context.tex2
-rw-r--r--tex/context/base/core-buf.tex2
-rw-r--r--tex/context/base/core-def.tex18
-rw-r--r--tex/context/base/core-fig.tex126
-rw-r--r--tex/context/base/core-grd.tex29
-rw-r--r--tex/context/base/core-int.tex132
-rw-r--r--tex/context/base/core-lst.tex111
-rw-r--r--tex/context/base/core-mis.tex386
-rw-r--r--tex/context/base/core-ntb.tex31
-rw-r--r--tex/context/base/core-pos.tex16
-rw-r--r--tex/context/base/core-ref.tex36
-rw-r--r--tex/context/base/core-rul.tex25
-rw-r--r--tex/context/base/core-sec.tex12
-rw-r--r--tex/context/base/core-spa.tex59
-rw-r--r--tex/context/base/core-tbl.tex1
-rw-r--r--tex/context/base/enco-def.tex5
-rw-r--r--tex/context/base/enco-ini.tex6
-rw-r--r--tex/context/base/enco-pfr.tex101
-rw-r--r--tex/context/base/enco-pol.tex56
-rw-r--r--tex/context/base/enco-qx.tex207
-rw-r--r--tex/context/base/java-exa.tex232
-rw-r--r--tex/context/base/java-fil.tex24
-rw-r--r--tex/context/base/java-fld.tex4
-rw-r--r--tex/context/base/java-ini.tex2
-rw-r--r--tex/context/base/java-stp.tex127
-rw-r--r--tex/context/base/meta-ini.tex23
-rw-r--r--tex/context/base/page-bck.tex50
-rw-r--r--tex/context/base/page-flt.tex3
-rw-r--r--tex/context/base/page-lay.tex7
-rw-r--r--tex/context/base/page-lyr.tex98
-rw-r--r--tex/context/base/page-mak.tex1
-rw-r--r--tex/context/base/page-set.tex38
-rw-r--r--tex/context/base/page-txt.tex24
-rw-r--r--tex/context/base/prop-ini.tex25
-rw-r--r--tex/context/base/s-abr-01.tex14
-rw-r--r--tex/context/base/s-pre-00.tex128
-rw-r--r--tex/context/base/s-pre-60.tex87
-rw-r--r--tex/context/base/s-pre-61.tex222
-rw-r--r--tex/context/base/setupb.tex4
-rw-r--r--tex/context/base/spec-def.tex7
-rw-r--r--tex/context/base/spec-dpx.tex20
-rw-r--r--tex/context/base/spec-fdf.tex11
-rw-r--r--tex/context/base/spec-tpd.tex46
-rw-r--r--tex/context/base/supp-emp.tex44
-rw-r--r--tex/context/base/supp-fil.tex11
-rw-r--r--tex/context/base/supp-mis.tex2
-rw-r--r--tex/context/base/supp-mps.tex44
-rw-r--r--tex/context/base/supp-pdf.tex159
-rw-r--r--tex/context/base/symb-eur.tex4
-rw-r--r--tex/context/base/symb-glm.tex65
-rw-r--r--tex/context/base/symb-ini.tex134
-rw-r--r--tex/context/base/symb-mvs.tex50
-rw-r--r--tex/context/base/symb-nav.tex4
-rw-r--r--tex/context/base/syst-etx.tex2
-rw-r--r--tex/context/base/syst-ext.tex102
-rw-r--r--tex/context/base/type-akb.tex16
-rw-r--r--tex/context/base/type-buy.tex439
-rw-r--r--tex/context/base/type-enc.tex238
-rw-r--r--tex/context/base/type-exa.tex1
-rw-r--r--tex/context/base/type-ini.tex110
-rw-r--r--tex/context/base/type-map.tex174
-rw-r--r--tex/context/base/type-syn.tex96
-rw-r--r--tex/context/base/unic-000.tex192
-rw-r--r--tex/context/base/verb-ini.tex270
-rw-r--r--tex/context/base/xtag-ini.tex61
-rw-r--r--tex/context/sample/demo-mps.tex23
-rw-r--r--tex/context/sample/demo-tex.tex23
-rw-r--r--tex/context/sample/demo-xml.tex53
-rw-r--r--tex/context/user/cont-sys.rme139
73 files changed, 3600 insertions, 1701 deletions
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index dab205860..d82445383 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -1742,7 +1742,7 @@
% seperations in one file); no user command!
\def\resynccolor
- {\ifdim\pagetotal=\zeropoint
+ {\ifcase\pagetotal % \ifdim\pagetotal=\zeropoint
\popcolor
\else\ifx\@@currentcolor\empty
\ifx\maintextcolor\empty\else
diff --git a/tex/context/base/cont-fil.tex b/tex/context/base/cont-fil.tex
index d47256be0..8cd6a5639 100644
--- a/tex/context/base/cont-fil.tex
+++ b/tex/context/base/cont-fil.tex
@@ -78,6 +78,9 @@
%definefilesynonym [pre-more] [pre-29]
%definefilesynonym [pre-more] [pre-30]
+\definefilesynonym [pre-stepwise] [pre-60]
+\definefilesynonym [pre-stepper] [pre-61]
+
\definefilesynonym [abr-pseudocaps] [abr-01]
\definefilesynonym [abr-smallcaps] [abr-02]
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index a78d0e4dc..723d14f53 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -16,12 +16,44 @@
%D features.
% todo: mp-new
+
\unprotect
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex!}
% todo : test low level translation (nl->en) and optimize script
+\def\tightlayer[#1]%
+ {\begingroup
+ \def\currentlayer{#1}% todo: left/right
+ \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox
+ \hsize\layerparameter\c!breedte % \overlaywidth = \hsize
+ \vsize\layerparameter\c!hoogte % \overlaywheight = \vsize
+ \hbox to \hsize{\composedlayer{#1}}%
+ \endgroup}
+
+\let\locatedfilepath\empty
+
+\def\locatefilepath#1%
+ {\let\locatedfilepath\empty
+ \ifx\allinputpaths\empty \else
+ \def\docommando##1%
+ {\doiffileelse{\pathplusfile{##1}{#1}}{\donetrue\def\locatedfilepath{##1}}\donefalse
+ \ifdone\expandafter\quitcommalist\fi}%
+ \doifparentfileelse{#1} % new
+ {\processcommacommand [\allinputpaths]\docommando}
+ {\processcommacommand[.,\allinputpaths]\docommando}%
+ \fi}
+
+\def\setfontstrut
+ {\setcharstrut{(gplQT}}
+
+\def\doifXMLtextelse#1%
+ {\doiftextelse{\simplifyXMLelements#1}}
+
+\def\doifXMLtext#1#2%
+ {\doiftextelse{\simplifyXMLelements#1}{#2}\donothing}
+
% todo : share symbols
% \definecolor[rollover:n][red]
@@ -170,68 +202,6 @@
% [ShowMenu]
% [{\overlayrollbutton[VideLayer{navigation}][HideLayer{navigation}]}]
-\def\dodoflushlayer#1#2#3%
- {\ifundefined{\@@layerbox#3}%
- \ifcase#1\else\writestatus{layer}{unknown layer #3}\fi
- \else
- \bgroup
- \forgetall
- \offinterlineskip
- % needed because we need to handle method
-\executeifdefined{\??ll\??ll\getvalue{\??ll#2\c!preset}}\gobbletwoarguments{#2}{}%
- %
- \doifvalue{\??ll#2\c!optie}\v!test\tracelayerstrue
- \iftracelayers\traceboxplacementtrue\fi
- \!!doneafalse
- \!!donebfalse
- \doifvalue{\??ll#2\c!methode}\v!overlay\!!doneatrue
- \doifvalue{\??ll#2\c!methode}\v!passend\!!donebtrue
- \!!donectrue
- \ifcase#1\else
- \doifnotvalue{\??ll#2\c!positie}\v!ja
- {\doifvalue{\??ll#2\c!herhaal}\v!ja\!!donecfalse
- \doifvalue{\??ll#2\c!status}\v!herhaal\!!donecfalse}%
- \fi
- \chardef\layerbox\csname\@@layerbox#3\endcsname
- % we need to copy in order to retain the negative offsets for a next
- % stage of additions, i.e. llx/lly accumulate in repeat mode and the
- % compensation may differ each flush depending on added content
- \setbox\nextbox \if!!doneb
- \vbox
- {\scratchdimen\getboxlly\layerbox
- \vskip-\scratchdimen
- \scratchdimen\getboxllx\layerbox
- \hskip-\scratchdimen
- \advance\scratchdimen-\wd\layerbox
- \hsize-\scratchdimen
- \if!!donec\box\else\copy\fi\layerbox}%
- \else
- \if!!donec\box\else\copy\fi\layerbox % sorry for the delay due to copying
- \fi
- \iftracelayers \ruledvbox \else \vbox \fi \if!!donea to \overlayheight \fi
- {\hbox \if!!donea to \overlaywidth \fi
- {% klopt dit? #3 en niet #2 ?
- \doifvalue{\??ll#3\realfolio\c!positie}\v!ja {\xypos{lyr:#3:\realfolio}}%
- \doifoverlayelse{#3}
- {\box\nextbox}
- {\startlayoutcomponent{l:#3}{layer #3}\box\nextbox\stoplayoutcomponent}%
- \hss}%
- \vss}%
- \if!!donec
- \gsetboxllx\layerbox\zeropoint
- \gsetboxlly\layerbox\zeropoint
- \fi
- \egroup
- \fi}
-
-\def\tightlayer[#1]%
- {\hbox
- {\def\currentlayer{#1}% todo: left/right
- \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox
- \hsize\layerparameter\c!breedte % \overlaywidth = \hsize
- \vsize\layerparameter\c!hoogte % \overlaywheight = \vsize
- \composedlayer{#1}}}
-
\def\inlinedbox
{\bgroup
\dowithnextbox
@@ -247,60 +217,11 @@
\egroup}%
\hbox}
-\def\dosetups#1% the grid option will be extended to other main modes
- {\executeifdefined{\??su\ifgridsnapping\v!grid\fi:#1}{\csname\??su:#1\endcsname}\empty}
-
-\let\directsetup\dosetups
-
% \readfile{cont-exp}\donothing\donothing % speed up (5-20%)
\def\dimenratio#1#2% etex only
{\withoutpt\the\dimexpr(2\dimexpr(#1)/(\dimexpr(#2)/32768))}
-% in page-lyr
-
-\definelayer[OTRTEXT] \setuplayer[OTRTEXT][\c!breedte=\zetbreedte,\c!hoogte=\teksthoogte]
-
-\let\normalsettextpagecontent\settextpagecontent
-
-\def\settextpagecontent#1#2#3% #2 and #3 will disappear
- {\doifelselayerdata{OTRTEXT}
- {\setbox#1\hbox to \zetbreedte
- {\startoverlay
- {\normalsettextpagecontent{#1}{#2}{#3}\box#1}
- {\tightlayer[OTRTEXT]}
- \stopoverlay}%
- \dp#1\zeropoint}%
- {\normalsettextpagecontent{#1}{#2}{#3}}}
-
-% in page-set
-
-\def\OTRSETdofinaloutput
- {\ifdim\ht\OTRfinalpagebox=\teksthoogte
- \bgroup % \let\OTRSETsetvsize\relax % prevents useless search for gap
- \ifcase\OTRSETbalancemethod
- \finaloutput\box\OTRfinalpagebox
- \else\ifdim\OTRSETbalht>\zeropoint
- % catch a bordercase
- \scratchdimen\OTRSETbalht
- \advance\scratchdimen\lineheight\relax
- \ifdim\scratchdimen>\teksthoogte
- % full page
- \finaloutput\box\OTRfinalpagebox
- \else
- % same page
- \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
- {\box\OTRfinalpagebox\vss}%
- \setlayer[OTRTEXT]{\box\OTRfinalpagebox}%
- \snaptogrid\vbox{\vskip\OTRSETbalht}% hack
- \fi
- \else
- \finaloutput\box\OTRfinalpagebox
- \fi \fi
- \globallet\OTRSETbalht\zeropoint
- \egroup
- \fi}
-
\def\doxprecurse#1#2%
{\ifnum#1=\zerocount % no \ifcase
\expandafter\gobblethreearguments
diff --git a/tex/context/base/cont-sys.ori b/tex/context/base/cont-sys.ori
index 5e2adef31..1f9bd0dc2 100644
--- a/tex/context/base/cont-sys.ori
+++ b/tex/context/base/cont-sys.ori
@@ -8,97 +8,112 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\unprotect
-% Occasionally we will support both A4 and letter in
-% styles. If you want letter size paper to be the default,
+% Occasionally we will support both A4 and letter in
+% styles. If you want letter size paper to be the default,
% uncomment:
%
% \enablemode[\systemmodeprefix letter]
%
% If you always want to default to letter, you may uncomment
% the following line, but beware: it makes your documents less
-% portable:
+% portable:
%
% \setuppapersize[letter][letter]
-%
-% If you want some extras, just uncomment the following
+
+% If you want some extras, just uncomment the following
% line:
%
-% \usemodule[plus] % experimental code
-%
-% Here you can take care of overloading some (style)
-% defaults. What goes here, depends on your local system.
+% \usemodule[plus] % experimental code
%
+% Here you can take care of overloading some (style)
+% defaults. What goes here, depends on your local system.
+
% The following commands sets the default font encoding:
%
-% \setupencoding [\s!default=texnansi]
+% \setupencoding [\s!default=texnansi]
%
-% or:
+% or:
%
-% \setupencoding [\s!default=ec]
+% \setupencoding [\s!default=ec]
%
-% If you want the default berry names:
+% If you want the default berry names:
%
% \usetypescript [berry] [\defaultencoding]
%
-% If you run into missing font metrics kind of problems,
-% you may want to uncomment:
-%
-% \usetypescript[adobekb] [\defaultencoding]
+% If you run into missing font metrics kind of problems,
+% you may want to uncomment:
%
-% You can let \CONTEXT\ load the map files for \PDFTEX.
+% \usetypescript[adobekb] [\defaultencoding]
+
+% You can let \CONTEXT\ load the map files for \PDFTEX.
%
% \autoloadmapfilestrue
%
-% If you use the more verbose naming scheme, uncomment this:
+% (1) use this when you have a big mapfile
%
-% \usetypescript [map] [default,\defaultencoding]
+% \preloadmapfile[original-base.map]
+% \preloadmapfile[ec-base.map]
+% \preloadmapfile[8r-base.map]
+% \preloadmapfile[qx-base.map]
+% \preloadmapfile[texnansi-base.map]
+% \preloadmapfile[original-ams-cmr.map]
+% \preloadmapfile[original-ams-euler.map]
+% \preloadmapfile[original-public-lm.map]
+% \preloadmapfile[original-public-plr.map]
+% \preloadmapfile[original-public-csr.map]
%
-% or :
+% (2) otherwise, use this if you have a fast machine
%
-% \usetypescript [map] [all]
+% \resetmapfiles \usetypescript [map] [base] [all]
%
-% In case you have set psfonts.map already, you can comment
-% the following lines. Beware: pdftex uses the fontname
-% (second entry on map file lines) for (not so) clever
-% remapping, so in case of troubles, remove the names (is
-% safe)!
+% (3) or this if it's a slow one:
%
-% \preloadmapfile [original-ams-cmr]
-% \preloadmapfile [original-ams-euler]
-% \preloadmapfile [il2-ams-cmr]
-% \preloadmapfile [pl0-ams-cmr]
+% \resetmapfiles
%
-% Some styles default to Lucida Bright. You can overload
-% Lucida by Times cum suis. Watch out, the pos collection
-% is not scaled relatively.
+% \loadmapfile[original-base.map]
+% \loadmapfile[ec-base.map]
+% \loadmapfile[8r-base.map]
+% \loadmapfile[qx-base.map]
+% \loadmapfile[texnansi-base.map]
+% \loadmapfile[original-ams-cmr.map]
+% \loadmapfile[original-ams-euler.map]
+% \loadmapfile[original-public-lm.map]
+% \loadmapfile[original-public-plr.map]
+% \loadmapfile[original-public-csr.map]
+% \loadmapfile[texnansi-public-lm.map]
+% \loadmapfile[ec-public-lm.map]
+
+% When you have your own fonts installed, you may want to predefine:
%
-% \definetypescriptsynonym [lbr] [pos]
+% \usetypescriptfile[type-buy]
+
+% Some styles default to Lucida Bright. You can overload
+% Lucida by Times cum suis. Watch out, the pos collection
+% is not scaled relatively.
%
+% \definetypescriptsynonym [lbr] [pos]
+
% Compensate for missing files:
%
% \definefontsynonym [gbhei] [gbsong]
% \definefontsynonym [gbheisl] [gbsong]
% \definefontsynonym [gbheisl] [gbsong]
-%
-% The already loaded map file list can be reset with:
-%
-% \forgetmapfiles
-%
-% Setting up a global figure path:
+
+% Setting up a global figure path
%
% \setupexternalfigures [\c!gebied={e:/fig/eps,t:/mine/figs}]
%
-% Loading a specific special driver:
+% Loading a specific special driver:
%
% \setupoutput [dviwindo]
-% Changing language defaults:
-%
+% Changing language defaults
+%
% \setuplanguage
% [nl]
% [\c!leftquote=\upperleftsinglesixquote,
@@ -106,38 +121,38 @@
% Loading local preferences, for example
%
-% \input prag-gen % company styles
-% \input prag-log % more company styles
+% \input prag-gen % company styles
+% \input prag-log % more company styles
%
-% Enabling run time \METAPOST\ (also enable \write18 in
+% Enabling run time \METAPOST\ (also enable \write18 in
% texmf.cnf):
-% \runMPgraphicstrue
+% \runMPgraphicstrue
% \runMPTEXgraphicstrue
% This saves some runtime, but needs a format, which you can
-% make with 'texexec --make --alone metafun'. Make sure that
-% the mem files are moved to the used web2c path (locate with
+% make with 'texexec --make --alone metafun'. Make sure that
+% the mem files are moved to the used web2c path (locate with
% 'kpsewhich plain.mem').
\useMETAFUNformattrue
-% Enabling nested pretty printing:
+% Enabling nested pretty printing
-\newprettytrue
+\newprettytrue
-% This can be a way to get things working on system with
+% This can be a way to get things working on system with
% name clashes. (Some \TeX's tend do search system wide.)
\protectbufferstrue
-% You can enable a more extensive figure searching, but
-% normally this is not really needed and even annoying.
+% You can enable a more extensive figure searching, but
+% normally this is not really needed and even annoying.
%
-% \runutilityfiletrue
-
-% You can also load additional encodings here:
+% \runutilityfiletrue
+% You can also load additional encodings here:
+%
% \useencoding[x5]
%
% \useregime[cyr]
@@ -145,6 +160,6 @@
% \enableregime[cp1251]
% \setupbodyfont[cyr]
-% So far.
+% So far.
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index bd29572bc..13f4d6643 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -15,7 +15,7 @@
\catcode`\{=1 \catcode`\}=2
-\def\contextversion{2004.3.9}
+\def\contextversion{2004.4.9}
%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-buf.tex b/tex/context/base/core-buf.tex
index 37e284ab5..2871475ed 100644
--- a/tex/context/base/core-buf.tex
+++ b/tex/context/base/core-buf.tex
@@ -1023,4 +1023,4 @@
\c!voor=,
\c!na=]
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-def.tex b/tex/context/base/core-def.tex
index 6121865d9..5cce2f2fc 100644
--- a/tex/context/base/core-def.tex
+++ b/tex/context/base/core-def.tex
@@ -2,26 +2,26 @@
%D [ file=core-def,
%D version=2002.05.07,
%D title=\CONTEXT\ Core Macros,
-%D subtitle=Defaults,
+%D subtitle=Defaults,
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\writestatus{loading}{Context Core Macros / Defaults}
%D Here we collect default settings. More code will moved to
-%D this module later.
+%D this module later.
\unprotect
-%D We preload a couple of symbol|(|sets): a few defaults,
-%D the marvo symbols and a few guillemot replacements.
+%D We preload a couple of symbol|(|sets): a few defaults,
+%D the marvo symbols and a few guillemot replacements.
-\usesymbols[mis,mvs,glm]
+\usesymbols[mis,mvs,glm]
%D We also choose a navigation symbol set:
@@ -29,6 +29,6 @@
\setupinteraction[\c!symboolset=navigation 1]
-%D In \type {core-nav}, we choose this set as well.
+%D In \type {core-nav}, we choose this set as well.
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/core-fig.tex b/tex/context/base/core-fig.tex
index cb018cbf9..acd77e496 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -772,36 +772,65 @@
\global\divide#1 \!!ten\relax
\global\multiply#1 #2\relax]}
-\def\docalculatefigurescales#1#2#3#4%
- {\dimen0=#1\relax % #1 = new 1-value
- \dimen2=#2\relax % #2 = old 1-value
- \divide\dimen2 \plusthousand
- \divide\dimen0 \dimen2
- \figxsca\dimen0 % x scale
- \figysca\dimen0 % y scale
- \dimen2=#4\relax % #4 = old 2-value
- \divide\dimen2 \plusthousand
- \multiply\dimen2 \dimen0
- #3=\dimen2 } % #3 = new 2-value
-
-\def\docalculatefigurescale#1#2#3%
- {\dimen0=#1\relax % #1 = new value
- \dimen2=#2\relax % #2 = old value
- \divide\dimen2 \plusthousand
- \divide\dimen0 \dimen2
- #3=\dimen0 } % #3 = schaal
-
-\def\doapplyfigurescale#1#2#3%
- {\global#1=#2\relax
- \ifcase0\@@efschaal\relax % beter: doifnum...
- #3=\plusthousand
- \else
- #3=\@@efschaal
- \fi\relax % important !
- \ifnum#3=\plusthousand\else
- \global\divide #1 \plusthousand
- \global\multiply#1 #3\relax
- \fi}
+\beginTEX
+
+ \def\docalculatefigurescales#1#2#3#4%
+ {\dimen0=#1\relax % #1 = new 1-value
+ \dimen2=#2\relax % #2 = old 1-value
+ \divide\dimen2 \plusthousand
+ \divide\dimen0 \dimen2
+ \figxsca\dimen0 % x scale
+ \figysca\dimen0 % y scale
+ \dimen2=#4\relax % #4 = old 2-value
+ \divide\dimen2 \plusthousand
+ \multiply\dimen2 \dimen0
+ #3=\dimen2 } % #3 = new 2-value
+
+ \def\docalculatefigurescale#1#2#3%
+ {\dimen0=#1\relax % #1 = new value
+ \dimen2=#2\relax % #2 = old value
+ \divide\dimen2 \plusthousand
+ \divide\dimen0 \dimen2
+ #3=\dimen0 } % #3 = schaal
+
+ \def\doapplyfigurescale#1#2#3%
+ {\global#1=#2\relax
+ \ifcase0\@@efschaal\relax % beter: doifnum...
+ #3=\plusthousand
+ \else
+ #3=\@@efschaal
+ \fi\relax % important !
+ \ifnum#3=\plusthousand\else
+ \global\divide #1 \plusthousand
+ \global\multiply#1 #3\relax
+ \fi}
+
+\endTEX
+
+% test extensively, more precise since one pass double precission
+
+\beginETEX \dimexpr
+
+ \def\docalculatefigurescales#1#2#3#4%
+ {\scratchdimen\dimexpr(#1/\dimexpr(#2/\plusthousand))%
+ \figxsca\scratchdimen
+ \figysca\figxsca
+ #3\dimexpr(\figxsca\dimexpr(#4/\plusthousand))}
+
+ \def\docalculatefigurescale#1#2#3%
+ {#3\dimexpr(#1/\dimexpr(#2/\plusthousand))}
+
+ \def\doapplyfigurescale#1#2#3%
+ {% #3=\ifnum0\number\@@efschaal=\zerocount\plusthousand\else\@@efschaal\fi
+ \ifcase0\@@efschaal\relax % @@efschaal kan empty zijn
+ #3=\plusthousand
+ \else
+ #3=\@@efschaal
+ \fi\relax % important !
+ \global#1\ifnum#3=\plusthousand#2\else\dimexpr(#3\dimexpr(#2/\plusthousand))\fi
+ \relax}
+
+\endETEX
\newdimen\figurevsize % we cannot manipulate any global vsize !
@@ -2020,6 +2049,43 @@
\setupexternalsoundtracks
[\c!optie=]
+%D NEW: used in styledesign manual
+
+% \setbuffer[typeset-b]\endbuffer
+% \setbuffer[typeset-a]\endbuffer
+%
+% todo:
+%
+% \appendtoks \setbuffer[typeset-b]\endbuffer\to \everystarttext
+% \appendtoks \setbuffer[typeset-a]\endbuffer\to \everystarttext
+
+\def\typesetbuffer
+ {\dodoubleempty\dotypesetbuffer}
+
+\newcounter\noftypesetbuffers % all loaded at the end
+
+\defineexternalfigure
+ [typeset]
+ [\c!achtergrond=\v!kleur,
+ \c!achtergrondkleur=white]
+
+\def\dotypesetbuffer[#1][#2]% beware: this will mix up the mp graphics
+ {\bgroup
+ %\def\bufferprefix{\ifprotectbuffers\jobname-\fi typeset-}%
+ \def\TEXbufferfile##1{\bufferprefix##1.tex}%
+ \expanded{\setbuffer[typeset]%
+ \def\noexpand\bufferprefix{\ifprotectbuffers\jobname-\fi typeset-}}%
+ \starttext
+ \getbuffer[b,#1,a]%
+ \stoptext
+ \endbuffer
+ \doglobal\increment\noftypesetbuffers
+ % batch is needed
+ \executesystemcommand{texexec --batch --pdf --result=\bufferprefix typeset-\noftypesetbuffers\space \bufferprefix typeset.tex}%
+ %\externalfigure[\bufferprefix typeset-\noftypesetbuffers.pdf][\c!object=\v!nee,#2]%
+ \externalfigure[\bufferprefix typeset-\noftypesetbuffers.pdf][#2]%
+ \egroup}
+
\appendtoks \setupexternalfigures[\c!optie=\v!leeg] \to \everyfastmode
\appendtoks \runMPgraphicsfalse \to \everyfastmode
\appendtoks \insertMPgraphicsfalse \to \everyfastmode
diff --git a/tex/context/base/core-grd.tex b/tex/context/base/core-grd.tex
index 539518b49..18cb70347 100644
--- a/tex/context/base/core-grd.tex
+++ b/tex/context/base/core-grd.tex
@@ -312,12 +312,37 @@
\def\snaptogrid% [#1]#2 -> #2 == \hbox|\vbox
{\dosingleempty\dosnaptogrid}
+% \def\dosnaptogrid[#1]%
+% {\ifgridsnapping
+% \iffirstargument\doifsomething{#1}{\verplaatsopgrid[#1]}\fi
+% \expandafter\dodosnaptogrid
+% \fi}
+
\def\dosnaptogrid[#1]%
- {\ifgridsnapping
+ {\resetlastlinewidth % maybe in more places, otherwise spacing gets messed up
+ \ifgridsnapping
\iffirstargument\doifsomething{#1}{\verplaatsopgrid[#1]}\fi
\expandafter\dodosnaptogrid
\fi}
+% \def\forcedpresnapcorrection % test this on 'details'
+% {\ifforcepresnap
+% \ifvmode \else \par \fi % new
+% % we don't want top of page space when 'top' option
+% %\verticalstrut\nobreak\vskip-\struttotal
+% %\verticalstrut\vskip-\struttotal
+% % nobreak really needed
+% \allowbreak\verticalstrut\nobreak\vskip-\struttotal
+% %\ifdim\pagetotal>\topskip \else
+% % eigenlijk signal
+% %\writestatus{grid}{removing dummy at top of page}%
+% %\bgroup
+% %\output{\setbox\scratchbox\box255}%
+% %\penalty\outputpenalty
+% %\egroup
+% %\fi
+% \fi}
+
\def\forcedpresnapcorrection % test this on 'details'
{\ifforcepresnap
\ifvmode \else \par \fi % new
@@ -325,7 +350,7 @@
%\verticalstrut\nobreak\vskip-\struttotal
%\verticalstrut\vskip-\struttotal
% nobreak really needed
- \allowbreak\verticalstrut\nobreak\vskip-\struttotal
+ \dosomebreak\allowbreak\verticalstrut\nobreak\vskip-\struttotal % new: \dosomebreak
%\ifdim\pagetotal>\topskip \else
% eigenlijk signal
%\writestatus{grid}{removing dummy at top of page}%
diff --git a/tex/context/base/core-int.tex b/tex/context/base/core-int.tex
index 8bdc2f38c..01a273693 100644
--- a/tex/context/base/core-int.tex
+++ b/tex/context/base/core-int.tex
@@ -701,50 +701,103 @@
\def\dosetlocationboxnone#1[#2]#3[#4]%
{\global\skippedmenuitemtrue}
-\def\setlocationboxyes#1%
+% the following version looks ok but is not, since it is unaware of
+% some reference properties
+%
+% \def\setlocationboxyes#1%
+% {\locationclicktrue
+% \ifx\currentouterreference\empty
+% \ifrealreferencepage\!!doneatrue\else\!!doneafalse\fi
+% \else
+% \!!doneafalse
+% \fi
+% \if!!donea
+% \ifcase\csname\??am\??am\csname#1\c!zelfdepagina\endcsname\endcsname\relax
+% \copycsname#1\c!kleur\endcsname\csname#1\c!contrastkleur\endcsname
+% \@EAEAEA\dosetlocationboxyes
+% \or
+% \@EAEAEA\dosetlocationboxempty
+% \or
+% \@EAEAEA\dosetlocationboxno
+% \or
+% \@EAEAEA\dosetlocationboxnone
+% \fi
+% \else
+% \@EA\dosetlocationboxcontent
+% \fi{#1}}
+%
+% \def\setlocationboxnop#1%
+% {\locationclickfalse
+% \ifcase\csname\??am\??am\csname#1\c!onbekendeverwijzing\endcsname\endcsname\relax
+% \@EA\dosetlocationboxyes
+% \or
+% \@EA\dosetlocationboxempty
+% \or
+% \@EA\dosetlocationboxno
+% \or
+% \@EA\dosetlocationboxnone
+% \fi{#1}}
+%
+% \def\setlocationbox#1[#2]#3[#4]%
+% {\bgroup % really needed !
+% \edef\permittedreferences{\csname#1\c!blokkade\endcsname}%
+% \doifreferencepermittedelse{#4}
+% {\setlocationboxyes{#1}[#2]{#3}[#4]}
+% {\setlocationboxnop{#1}[#2]{#3}[#4]}%
+% \egroup}
+%
+% \def\setlocationboxraw#1[#2]#3[#4]%
+% {\localframed[#1][#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}}
+
+\def\setlocationboxyes#1[#2]#3[#4]%
{\locationclicktrue
- \ifx\currentouterreference\empty
- \ifrealreferencepage\!!doneatrue\else\!!doneafalse\fi
- \else
- \!!doneafalse
- \fi
- \if!!donea
- \ifcase\csname\??am\??am\csname#1\c!zelfdepagina\endcsname\endcsname\relax
- \copycsname#1\c!kleur\endcsname\csname#1\c!contrastkleur\endcsname
- \@EAEAEA\dosetlocationboxyes
- \or
- \@EAEAEA\dosetlocationboxempty
- \or
- \@EAEAEA\dosetlocationboxno
- \or
- \@EAEAEA\dosetlocationboxnone
- \fi
- \else
- \@EA\dosetlocationboxcontent
- \fi{#1}}
+ \setbox\locationbox\hbox
+ {\resetgoto % anders cyclische aanroep !
+ \global\skippedmenuitemfalse
+ \gotolocation
+ {#4}% % needed
+ {\ifrealreferencepage
+ \ifcase\csname\??am\??am\csname#1\c!zelfdepagina\endcsname\endcsname\relax
+ \copycsname#1\c!kleur\endcsname\csname#1\c!contrastkleur\endcsname
+ \localframed[#1][#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \or
+ \localframed[#1][\c!leeg=\v!ja,#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \or
+ \localframed[#1][\c!leeg=\v!ja,\c!kader=,\c!achtergrond=,#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \or
+ \global\skippedmenuitemtrue
+ \fi
+ \else
+ \localframed[#1][#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \fi}}%
+ \ifskippedmenuitem\else\box\locationbox\fi}
-\def\setlocationboxnop#1%
+\def\setlocationboxnop#1[#2]#3[#4]%
{\locationclickfalse
- \ifcase\csname\??am\??am\csname#1\c!onbekendeverwijzing\endcsname\endcsname\relax
- \@EA\dosetlocationboxyes
- \or
- \@EA\dosetlocationboxempty
- \or
- \@EA\dosetlocationboxno
- \or
- \@EA\dosetlocationboxnone
- \fi{#1}}
+ \setbox\locationbox\hbox
+ {\resetgoto % anders cyclische aanroep !
+ \global\skippedmenuitemfalse
+ \ifcase\csname\??am\??am\csname#1\c!onbekendeverwijzing\endcsname\endcsname\relax
+ \localframed[#1][#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \or
+ \localframed[#1][\c!leeg=\v!ja,#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \or
+ \localframed[#1][\c!leeg=\v!ja,\c!kader=,\c!achtergrond=,#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}%
+ \or
+ \global\skippedmenuitemtrue
+ \fi}%
+ \ifskippedmenuitem\else\box\locationbox\fi}
+
+\def\setlocationboxraw#1[#2]#3[#4]%
+ {\localframed[#1][#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}}
\def\setlocationbox#1[#2]#3[#4]%
{\bgroup % really needed !
\edef\permittedreferences{\csname#1\c!blokkade\endcsname}%
- \doifreferencepermittedelse{#4}
- {\setlocationboxyes{#1}[#2]{#3}[#4]}
+ \doifreferencepermittedelse{#4}%
+ {\setlocationboxyes{#1}[#2]{#3}[#4]}%
{\setlocationboxnop{#1}[#2]{#3}[#4]}%
\egroup}
-
-\def\setlocationboxraw#1[#2]#3[#4]%
- {\localframed[#1][#2]{\dolocationattributes{#1}\c!letter\c!kleur{#3}}}
\def\dodosetlocationcommanditem#1#2#3[#4]#5\\%
{\bgroup
@@ -1090,10 +1143,11 @@
% inherit settings
\doifnot{#1}{#2}
{\copyparameters[\??am#1][\??am#2]
- [\c!links,\c!midden,\c!rechts,\c!voor,\c!na,\c!tussen,
- \c!breedte,\c!hoogte,\c!afstand,\c!offset,\c!kader,
- \c!achtergrond,\c!achtergrondkleur,\c!achtergrondraster,
- \c!letter,\c!kleur,\c!contrastkleur,\c!zelfdepagina,\c!onbekendeverwijzing,
+ [\c!links,\c!midden,\c!rechts,\c!voor,\c!na,\c!tussen,%
+ \c!breedte,\c!hoogte,\c!afstand,\c!offset,%
+ \c!kader,\c!kaderkleur,\c!lijndikte,%
+ \c!achtergrond,\c!achtergrondkleur,\c!achtergrondraster,%
+ \c!letter,\c!kleur,\c!contrastkleur,\c!zelfdepagina,\c!onbekendeverwijzing,%
\c!linkeroffset,\c!rechteroffset,\c!bovenoffset,\c!onderoffset]}%
% additional settings
\getparameters[\??am#1][\c!plaats=#2,\c!blokkade=,#3]}
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
index 24ecb0077..60872d9fb 100644
--- a/tex/context/base/core-lst.tex
+++ b/tex/context/base/core-lst.tex
@@ -368,43 +368,92 @@
\def\dohandlelistnumber#1{\separatednumber{#1}}
-% new
+% \let\currentlistsymbol\empty
+%
+% the big original one:
+%
+% \def\listsymbol[#1]#2%
+% {{\dosetlistsymbol{#1}{#2}\currentlistsymbol}}
+%
+% \def\dosetlistsymbol#1#2% kan sneller, default case afvangen
+% {\processaction
+% [\getvalue{\??li#1\c!symbool}]
+% [ \v!geen=>\def\currentlistsymbol%
+% {\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
+% \hbox to \dimen0{}},
+% 1=>\def\currentlistsymbol%
+% {\strut$\bullet$},
+% 2=>\def\currentlistsymbol%
+% {\vrule\!!width1em\!!height1ex\!!depth\zeropoint},
+% 3=>\def\currentlistsymbol% very slow
+% {{\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
+% \doassigndimen{\dimen2}{\getvalue{\??li#1\c!hoogte}}{1ex}%
+% \doassigndimen{\dimen4}{\getvalue{\??li#1\c!diepte}}{0pt}%
+% \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4}},
+% \s!unknown=>\def\currentlistsymbol{\getvalue{\??li#1\c!symbool}},
+% \s!default=>\doifelsevalue{\??li#1\c!prefix}\v!nee % ook nog eerste
+% {\edef\splitlistsymbol{\removefirstprefix{#2}}}
+% {\doifelsevalue{\??li#1\c!prefix}\v!geen
+% {\edef\splitlistsymbol{\removeallprefixes{#2}}}%
+% {\def\splitlistsymbol{#2}}}% geen \edef ivm enz
+% \def\currentlistsymbol% kan iets efficienter met \ifdone
+% {\doifvalue{\??li#1\c!label}\v!ja{\leftlabeltext{#1}}%
+% \strut
+% \def\numberseparator{\getvalue{\??li#1\c!scheider}}%
+% \@EA\dohandlelistnumber\@EA{\splitlistsymbol}%
+% \getvalue{\??li#1\c!afsluiter}%
+% \doifvalue{\??li#1\c!label}\v!ja{\rightlabeltext{#1}}}]}
+%
+% This may be fragile ! test for a long time ; it is a
+% prelude to an definable symbol handler.
\let\currentlistsymbol\empty
\def\listsymbol[#1]#2%
{{\dosetlistsymbol{#1}{#2}\currentlistsymbol}}
-%
-
-\def\dosetlistsymbol#1#2% kan sneller, default case afvangen
- {\processaction
- [\getvalue{\??li#1\c!symbool}]
- [ \v!geen=>\def\currentlistsymbol%
- {\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
- \hbox to \dimen0{}},
- 1=>\def\currentlistsymbol%
- {\strut$\bullet$},
- 2=>\def\currentlistsymbol%
- {\vrule\!!width1em\!!height1ex\!!depth\zeropoint},
- 3=>\def\currentlistsymbol% very slow
- {{\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
- \doassigndimen{\dimen2}{\getvalue{\??li#1\c!hoogte}}{1ex}%
- \doassigndimen{\dimen4}{\getvalue{\??li#1\c!diepte}}{0pt}%
- \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4}},
- \s!unknown=>\def\currentlistsymbol{\getvalue{\??li#1\c!symbool}},
- \s!default=>\doifelsevalue{\??li#1\c!prefix}\v!nee % ook nog eerste
- {\edef\splitlistsymbol{\removefirstprefix{#2}}}
- {\doifelsevalue{\??li#1\c!prefix}\v!geen
- {\edef\splitlistsymbol{\removeallprefixes{#2}}}%
- {\def\splitlistsymbol{#2}}}% geen \edef ivm enz
- \def\currentlistsymbol% kan iets efficienter met \ifdone
- {\doifvalue{\??li#1\c!label}\v!ja{\leftlabeltext{#1}}%
- \strut
- \def\numberseparator{\getvalue{\??li#1\c!scheider}}%
- \@EA\dohandlelistnumber\@EA{\splitlistsymbol}%
- \getvalue{\??li#1\c!afsluiter}%
- \doifvalue{\??li#1\c!label}\v!ja{\rightlabeltext{#1}}}]}
+\def\dosetlistsymbol#1% #2%
+ {\executeifdefined
+ {listsymbol@\getvalue{\??li#1\c!symbool}}%
+ \listsymbol@default
+ {#1}} % {#2}
+
+\def\listsymbol@none#1#2%
+ {\def\currentlistsymbol%
+ {\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
+ \hbox to \dimen0{}}}
+
+\def\listsymbol@one#1#2%
+ {\def\currentlistsymbol{\strut$\bullet$}}
+
+\def\listsymbol@two#1#2%
+ {\def\currentlistsymbol{\vrule\!!width1em\!!height1ex\!!depth\zeropoint}}
+
+\def\listsymbol@three#1#2%
+ {\def\currentlistsymbol % very slow
+ {{\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
+ \doassigndimen{\dimen2}{\getvalue{\??li#1\c!hoogte}}{1ex}%
+ \doassigndimen{\dimen4}{\getvalue{\??li#1\c!diepte}}{0pt}%
+ \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4}}}
+
+\def\listsymbol@default#1#2%
+ {\doifelsevalue{\??li#1\c!prefix}\v!nee % ook nog eerste
+ {\edef\splitlistsymbol{\removefirstprefix{#2}}}
+ {\doifelsevalue{\??li#1\c!prefix}\v!geen
+ {\edef\splitlistsymbol{\removeallprefixes{#2}}}%
+ {\def\splitlistsymbol{#2}}}% geen \edef ivm enz
+ \def\currentlistsymbol% kan iets efficienter met \ifdone
+ {\doifvalue{\??li#1\c!label}\v!ja{\leftlabeltext{#1}}%
+ \strut
+ \def\numberseparator{\getvalue{\??li#1\c!scheider}}%
+ \@EA\dohandlelistnumber\@EA{\splitlistsymbol}%
+ \getvalue{\??li#1\c!afsluiter}%
+ \doifvalue{\??li#1\c!label}\v!ja{\rightlabeltext{#1}}}}
+
+\def\listsymbol@unknown#1#2%
+ {\def\currentlistsymbol{\getvalue{\??li#1\c!symbool}}}
+
+% so far for list symbols
\def\@@dodolijstelement{dodolijstelement}
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index 3fef87c44..80461a555 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -1930,13 +1930,63 @@
% \fi
% \next}
+% \def\dodocombination
+% {\vbox
+% {\forgetall % \setupwhitespace[\v!geen]%
+% \let\next\vbox
+% \ExpandFirstAfter\processallactionsinset
+% [\combinationparameter\c!plaats]
+% [ \v!boven=>\let\next\tbox,
+% \v!midden=>\let\next\halfwaybox]%
+% \next{\copy0}%
+% % we need to save the caption for a next alignment line
+% \saveoncombinationstack2}%
+% \ifnum\totcombination>\plusone
+% \global\advance\totcombination\minusone
+% \global\advance\horcombination\minusone
+% \ifnum\horcombination=\zerocount
+% \def\next
+% {\cr
+% \flushcombinationstack
+% \noalign
+% {\forgetall % \setupwhitespace[\v!geen]% no
+% \global\setbox\combinationstack\emptybox
+% \nointerlineskip
+% \combinationparameter\c!na
+% \combinationparameter\c!voor
+% \vss
+% \nointerlineskip}%
+% \global\horcombination\maxhorcombination\relax
+% \docombination}%
+% \else
+% \def\next
+% {&&&\hskip\combinationparameter\c!afstand&\docombination}%
+% \fi
+% \else
+% \def\next
+% {\cr
+% \flushcombinationstack
+% \egroup}%
+% \fi
+% \next}
+
+\def\depthonlybox
+ {\dowithnextbox{\vtop{\hsize\wd\nextbox\kern\zeropoint\box\nextbox}}\vbox}
+
+% \def\boxwithstrutheight
+% {\dowithnextbox
+% {\scratchdimen\strutheight
+% \advance\scratchdimen-\nextboxht
+% \hbox{\raise\scratchdimen\box\nextbox}}%
+% \vbox}
+
\def\dodocombination
{\vbox
{\forgetall % \setupwhitespace[\v!geen]%
\let\next\vbox
\ExpandFirstAfter\processallactionsinset
[\combinationparameter\c!plaats]
- [ \v!boven=>\let\next\tbox,
+ [ \v!boven=>\let\next\depthonlybox, % \tbox,
\v!midden=>\let\next\halfwaybox]%
\next{\copy0}%
% we need to save the caption for a next alignment line
@@ -2103,139 +2153,291 @@
[table]
[\c!file=table]
-\presetlocalframed[\??ro]
-
-\def\setuprotate
- {\dodoubleargument\getparameters[\??ro]}
-
-% \ht, \vfillvoor, \vfillna, \wd, \hfillvoor, \hfillna
+%D A couple of examples, demonstrating how the depth is
+%D taken care of:
+%D
+%D \startbuffer
+%D test\rotate[frame=on, rotation=0] {gans}%
+%D test\rotate[frame=on, rotation=90] {gans}%
+%D test\rotate[frame=on, rotation=180]{gans}%
+%D test\rotate[frame=on, rotation=270]{gans}%
+%D test
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+% \presetlocalframed[\??ro]
+%
+% \def\setuprotate
+% {\dodoubleargument\getparameters[\??ro]}
+%
+% \def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
+% {\bgroup
+% \hbox\bgroup % compatibility hack
+% \dowithnextbox
+% {\edef\@@rorotatie{#1}%
+% \setbox\nextbox\vbox{\flushnextbox}%
+% \dostoprotate
+% \egroup}}
+%
% \def\dodostoprotate#1#2#3#4#5#6%
% {\dontshowcomposition
-% \vbox to #1\nextbox
+% \scratchdimen\nextboxht\advance\scratchdimen\nextboxdp
+% \doif\@@roplaats\v!hoog
+% {\setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}}%
+% \setbox\nextbox\vbox to #1
% {#2\relax
-% \hbox to #4\nextbox
+% \hbox to #4
% {#5\relax % \number removes leading spaces too
% \edef\@@rorotatie{\number\@@rorotatie}%
-% \doifelsenothing{\@@rorotatie}
+% \doifelsenothing\@@rorotatie
% {\dostartrotation{90}}
% {\dostartrotation{\@@rorotatie}}%
% \nextboxwd\zeropoint
% \nextboxht\zeropoint
+% %\nextboxdp\zeropoint
% \flushnextbox
% \dostoprotation
% #6}
% #3}%
+% \nextboxdp\zeropoint
+% \flushnextbox
% \egroup}
%
-% \def\dostoprotate%
-% {\!!counta=\@@rorotatie
-% \divide\!!counta by 90
+% \def\dostoprotate
+% {\!!counta\@@rorotatie
+% \divide\!!counta 90
% \ifcase\!!counta
-% \dodostoprotate\ht\relax\vfill\wd\relax\hfill
+% \dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
% \or
-% \dodostoprotate\wd\vfill\relax\ht\relax\hfill
+% %\dodostoprotate\nextboxwd\vfill\relax\nextboxht\relax\hfill
+% \dodostoprotate\nextboxwd\vfill\relax\scratchdimen\relax\hfill
% \or
-% \dodostoprotate\ht\vfill\relax\wd\hfill\relax
+% \dodostoprotate\nextboxht\vfill\relax\nextboxwd\hfill\relax
% \or
-% \dodostoprotate\wd\relax\vfill\ht\hfill\relax
+% %\dodostoprotate\nextboxwd\relax\vfill\nextboxht\hfill\relax
+% \dodostoprotate\nextboxwd\relax\vfill\scratchdimen\hfill\relax
% \or
-% \dodostoprotate\ht\relax\vfill\wd\relax\hfill
+% \dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
% \else
% \def\@@rotatie{90}%
-% \dodostoprotate\ht\relax\vfill\wd\relax\hfill
+% \dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
% \fi}
%
-% \def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
-% {\bgroup
-% \hbox\bgroup % compatibility hack
-% \dowithnextbox
-% {\edef\@@rorotatie{#1}%
-% \setbox\nextbox=\vbox{\flushnextbox}%
-% \dostoprotate
-% \egroup}}
-
-\def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
- {\bgroup
- \hbox\bgroup % compatibility hack
- \dowithnextbox
- {\edef\@@rorotatie{#1}%
- \setbox\nextbox\vbox{\flushnextbox}%
- \dostoprotate
- \egroup}}
-
-\def\dodostoprotate#1#2#3#4#5#6%
- {\dontshowcomposition
- \scratchdimen\nextboxht\advance\scratchdimen\nextboxdp
- \doif\@@roplaats\v!hoog
- {\setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}}%
- \setbox\nextbox\vbox to #1
- {#2\relax
- \hbox to #4
- {#5\relax % \number removes leading spaces too
- \edef\@@rorotatie{\number\@@rorotatie}%
- \doifelsenothing\@@rorotatie
- {\dostartrotation{90}}
- {\dostartrotation{\@@rorotatie}}%
- \nextboxwd\zeropoint
- \nextboxht\zeropoint
- %\nextboxdp\zeropoint
- \flushnextbox
+% \def\complexrotate[#1]%
+% {\dowithnextbox
+% {\getparameters[\??ro][#1]%
+% \dostoprotate}%
+% \vbox\localframed[\??ro][#1]}
+%
+% \unexpanded\def\rotate % \bgroup: \rotate kan argument zijn
+% {\bgroup\complexorsimpleempty\rotate}
+%
+% \setuprotate
+% [\c!rotatie=90,
+% \c!breedte=\v!passend,
+% \c!hoogte=\v!passend,
+% \c!offset=\v!overlay,
+% \c!kader=\v!uit]
+
+% The previous implementation is replaced by one that supports
+% rotation over arbitrary angles.
+%
+% When we rotate over arbitrary angles, we need to relocate the
+% resulting box because rotation brings that box onto the negative
+% axis. The calculations (mostly sin and cosine) need to be tuned for
+% the way a box is packages (i.e. the refence point). A typical example
+% of drawing, scribbling, and going back to the days of school math.
+%
+% We do a bit more calculations than needed, simply because that way
+% it's easier to debug the code.
+
+\def\dododorotatenextbox
+ {\setbox\nextbox\vbox to \@@layerysiz
+ {\vfill
+ \hbox to \@@layerxsiz
+ {\dostartrotation\@@rorotatie
+ \nextboxwd\zeropoint
+ \nextboxht\zeropoint
+ \flushnextbox
\dostoprotation
- #6}
- #3}%
- \nextboxdp\zeropoint
- \flushnextbox
- \egroup}
-
-\def\dostoprotate
- {\!!counta\@@rorotatie
- \divide\!!counta 90
- \ifcase\!!counta
- \dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
- \or
- %\dodostoprotate\nextboxwd\vfill\relax\nextboxht\relax\hfill
- \dodostoprotate\nextboxwd\vfill\relax\scratchdimen\relax\hfill
- \or
- \dodostoprotate\nextboxht\vfill\relax\nextboxwd\hfill\relax
+ \hfill}%
+ \kern\@@layerypos}%
+ \setbox\nextbox\hbox
+ {\kern\@@layerxpos
+ \kern\@@layerxoff
+ \lower\@@layeryoff\flushnextbox}}
+
+\def\dodorotatenextbox#1#2% quite some trial and error -)
+ {\dontshowcomposition
+ \dontcomplain
+ \!!widtha \nextboxwd
+ \!!heighta\nextboxht
+ \!!deptha \nextboxdp
+ \!!doneafalse
+ \!!donebfalse
+ \ifcase#2\or
+ % fit
\or
- %\dodostoprotate\nextboxwd\relax\vfill\nextboxht\hfill\relax
- \dodostoprotate\nextboxwd\relax\vfill\scratchdimen\hfill\relax
+ % depth, not fit
+ \!!doneatrue
+ \!!donebtrue
\or
- \dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
+ % depth, fit
+ \!!donebtrue
+ \fi
+ \setbox\nextbox\vbox{\hbox{\raise\nextboxdp\flushnextbox}}%
+ \!!dimena \nextboxht
+ \calculatecos\@@rorotatie\edef\cos{\calculatedcos\@@rorotatie}%
+ \calculatesin\@@rorotatie\edef\sin{\calculatedsin\@@rorotatie}%
+ \@@layerxpos\zeropoint
+ \@@layerypos\zeropoint
+ \@@layerxoff\zeropoint
+ \@@layeryoff\zeropoint
+ \ifdim\sin\points>\zeropoint
+ \ifdim\cos\points>\zeropoint
+ \@@layerxsiz \cos\!!widtha
+ \@@layerysiz \sin\!!widtha
+ \advance\@@layerxsiz \sin\!!dimena
+ \advance\@@layerysiz \cos\!!dimena
+ \@@layerypos \cos\!!dimena
+ \if!!donea
+ \@@layerxoff \negated\sin\!!dimena
+ \advance\@@layerxoff \sin\!!deptha
+ \fi
+ \if!!doneb
+ \@@layeryoff \cos\!!deptha
+ \fi
+ \dododorotatenextbox
+ \else
+ \@@layerxsiz \negated\cos\!!widtha
+ \@@layerysiz \sin\!!widtha
+ \advance\@@layerxsiz \sin\!!dimena
+ \advance\@@layerysiz \negated\cos\!!dimena
+ \@@layerxpos \negated\cos\!!widtha
+ \if!!donea
+ \@@layerxoff -\@@layerxsiz
+ \advance\@@layerxoff \sin\!!deptha
+ \fi
+ \if!!doneb
+ \@@layeryoff \negated\cos\!!heighta
+ \fi
+ \dododorotatenextbox
+ \wd\nextbox\if!!donea\sin\!!deptha\else\@@layerxsiz\fi
+ \fi
\else
- \def\@@rotatie{90}%
- \dodostoprotate\nextboxht\relax\vfill\nextboxwd\relax\hfill
+ \ifdim\cos\points<\zeropoint
+ \@@layerxsiz \negated\cos\!!widtha
+ \@@layerysiz \negated\sin\!!widtha
+ \advance\@@layerxsiz \negated\sin\!!dimena
+ \advance\@@layerysiz \negated\cos\!!dimena
+ \@@layerxpos \@@layerxsiz
+ \@@layerypos \negated\sin\!!widtha
+ \if!!donea
+ \@@layerxoff -\@@layerxsiz
+ \advance\@@layerxoff \negated\sin\!!heighta
+ \fi
+ \if!!doneb
+ \@@layeryoff \@@layerysiz
+ \advance\@@layeryoff \cos\!!deptha
+ \fi
+ \dododorotatenextbox
+ \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi
+ \else
+ \@@layerxsiz \cos\!!widtha
+ \@@layerysiz \negated\sin\!!widtha
+ \advance\@@layerxsiz \negated\sin\!!dimena
+ \advance\@@layerysiz \cos\!!dimena
+ \ifdim\sin\points=\zeropoint
+ \@@layerxpos \zeropoint
+ \@@layerxoff \zeropoint
+ \@@layerypos \@@layerysiz
+ \if!!doneb
+ \@@layeryoff \!!deptha
+ \fi
+ \else
+ \@@layerypos \@@layerysiz
+ \@@layerxpos \negated\sin\!!dimena
+ \if!!donea
+ \@@layerxoff -\@@layerxsiz
+ \advance\@@layerxoff \negated\sin\!!heighta
+ \fi
+ \if!!doneb
+ \@@layeryoff \negated\sin\!!deptha
+ \fi
+ \fi
+ \dododorotatenextbox
+ \ifdim\sin\points=\zeropoint
+ \else
+ \wd\nextbox\if!!donea\negated\sin\!!heighta\else\@@layerxsiz\fi
+ \fi
+ \fi
\fi}
-%D A couple of examples, demonstrating how the depth is
-%D taken care of:
-%D
-%D \startbuffer
-%D test\rotate[frame=on, rotation=0] {gans}%
-%D test\rotate[frame=on, rotation=90] {gans}%
-%D test\rotate[frame=on, rotation=180]{gans}%
-%D test\rotate[frame=on, rotation=270]{gans}%
-%D test
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
+\def\dorotatenextbox#1#2%
+ {\doifsomething{#1}
+ {\edef\@@rorotatie{\number#1}% get rid of leading zeros and spaces
+ \setbox\nextbox\vbox{\flushnextbox}% not really needed
+ \dodorotatenextbox\@@rorotatie#2}%
+ \hbox{\boxcursor\flushnextbox}}
-\def\complexrotate[#1]%
- {\dowithnextbox
- {\getparameters[\??ro][#1]%
- \dostoprotate}%
- \vbox\localframed[\??ro][#1]}
+\def\dodorotatebox#1% {angle} \hbox/\vbox/\vtop
+ {\bgroup\hbox\bgroup % compatibility hack
+ \dowithnextbox
+ {\dorotatenextbox{#1}\plusone
+ \egroup\egroup}}
+
+\def\dorotatebox#1% {angle} \hbox/\vbox/\vtop
+ {\ifcase#1\relax
+ \expandafter\gobbleoneargument
+ \else
+ \expandafter\dodorotatebox
+ \fi{#1}}
\unexpanded\def\rotate % \bgroup: \rotate kan argument zijn
{\bgroup\complexorsimpleempty\rotate}
+\def\complexrotate[#1]% framed met diepte !
+ {\getparameters[\??ro][#1]%
+ \processaction
+ [\@@roplaats]
+ [\v!diepte=>\!!counta\plusthree\donefalse,% depth fit - raw box
+ \v!passend=>\!!counta\plustwo \donefalse,% depth tight - raw box
+ \v!ruim=>\!!counta\plusone \donefalse,% nodepth fit - raw box
+ \v!hoog=>\!!counta\plusone \donetrue,% nodepth fit - framed
+ \s!default=>\!!counta\plusthree\donetrue,% depth fit - framed
+ \s!unknown=>\!!counta\plusthree\donetrue]% depth fit - framed
+ \ifdone
+ \def\docommand{\localframed[\??ro][#1,\c!plaats=]}%
+ \else
+ \let\docommand\relax
+ \fi
+ \dowithnextbox{\dorotatenextbox\@@rorotatie\!!counta\egroup}\vbox\docommand}
+
+\presetlocalframed[\??ro]
+
+\def\setuprotate
+ {\dodoubleargument\getparameters[\??ro]}
+
\setuprotate
[\c!rotatie=90,
+ \c!plaats=\v!normaal,
\c!breedte=\v!passend,
\c!hoogte=\v!passend,
\c!offset=\v!overlay,
\c!kader=\v!uit]
+
+% \dostepwiserecurse{0}{360}{10}
+% {\startlinecorrection[blank]
+% \hbox
+% {\expanded{\setuprotate[rotation=\recurselevel]}%
+% \traceboxplacementtrue
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=depth] {\ruledhbox{\bfb (depth)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=fit] {\ruledhbox{\bfb (fit)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=broad] {\ruledhbox{\bfb (broad)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=normal]{\ruledhbox{\bfb (normal)}}}}%
+% \hbox to .2\hsize{\hss\ruledhbox{\rotate[location=high] {\ruledhbox{\bfb (high)}}}}}
+% \stoplinecorrection}
% schaal
diff --git a/tex/context/base/core-ntb.tex b/tex/context/base/core-ntb.tex
index 5b74aa710..8029d0476 100644
--- a/tex/context/base/core-ntb.tex
+++ b/tex/context/base/core-ntb.tex
@@ -25,6 +25,10 @@
%D To Do:
%D
+%D splitsen = ja | herhaal => als nofTH>1 then ja als herhaal
+
+%D To Do:
+%D
%D \starttypen
%D break over pagina
%D kop herhalen
@@ -113,8 +117,6 @@
% \def\settblspn#1#2{\setvalue {\@@tblprefix#1:s}{#2}}
% \def\doiftblspn #1{\doifelsevalue{\@@tblprefix#1:s}{1}}
-\newif\ifsqueezeTBLspan \squeezeTBLspantrue % spans one column cell over multi column par cells
-
\def\settblspn #1{\setvalue {\@@tblprefix#1:s}{1}}
\def\doifelsetblspn#1{\doifelsevalue{\@@tblprefix#1:s}{1}}
@@ -134,6 +136,7 @@
\let\pushTBLparameters\relax
\let\popTBLparameters \relax
+\newif\ifsqueezeTBLspan \squeezeTBLspantrue % spans one column cell over multi column par cells
\newif\ifautoTBLspread \autoTBLspreadfalse
\newif\ifautoTBLhsize \autoTBLhsizetrue
\newif\ifautoTBLrowspan \autoTBLrowspantrue
@@ -1121,17 +1124,19 @@
% \notsplittblbox{#1}%
% \fi}
+\newbox\TABLEsplitbox
+
\def\splittblboxa#1% spacing between rows gets lost in split
- {\setbox\scratchbox\vbox{#1}%
+ {\setbox\TABLEsplitbox\vbox{#1}%
\setbox8\vbox{\doifsomething\tbltbltussenwit{\blank[\tbltbltussenwit]}}%
\ifmultipleTBLheads
\setbox2\vbox{}%
\setbox4\vbox{}%
\dorecurse\noftblheadlines
- {\setbox0\vsplit\scratchbox to \lineheight
+ {\setbox0\vsplit\TABLEsplitbox to \lineheight
\setbox2\vbox{\unvcopy2\unvcopy0}}%
\dorecurse\noftblnextlines
- {\setbox0\vsplit\scratchbox to \lineheight
+ {\setbox0\vsplit\TABLEsplitbox to \lineheight
\setbox4\vbox{\unvcopy4\unvcopy0}}%
\ifcase\noftblheadlines\else
\ifdim\pagegoal<\maxdimen
@@ -1151,7 +1156,7 @@
\donefalse
\!!doneafalse
\doloop
- {\setbox0\vsplit\scratchbox to \lineheight
+ {\setbox0\vsplit\TABLEsplitbox to \lineheight
\if!!donea
\ifdim\pagegoal<\maxdimen
\setbox0\vbox{\unvbox0}%
@@ -1195,7 +1200,7 @@
\fi}%
\fi
\egroup
- \ifvoid\scratchbox \exitloop \else \donetrue \fi}}
+ \ifvoid\TABLEsplitbox \exitloop \else \donetrue \fi}}
% \def\splittblboxb#1%
% {\setbox\scratchbox\vbox{#1}%
@@ -1252,19 +1257,19 @@
\let\extratblsplitheight\zeropoint % additional space taken by before/afterTABLEsplitbox
\def\splittblboxb#1%
- {\setbox\scratchbox\vbox{#1}%
+ {\setbox\TABLEsplitbox\vbox{#1}%
\setbox8\vbox{\doifsomething\tbltbltussenwit{\blank[\tbltbltussenwit]}}%
\ifmultipleTBLheads
\setbox2\vbox{}%
\setbox4\vbox{}%
\dorecurse\noftblheadlines
- {\setbox0\vsplit\scratchbox to \lineheight
+ {\setbox0\vsplit\TABLEsplitbox to \lineheight
\setbox2\vbox{\unvcopy2\unvcopy0}}%
\dorecurse\noftblnextlines
- {\setbox0\vsplit\scratchbox to \lineheight
+ {\setbox0\vsplit\TABLEsplitbox to \lineheight
\setbox4\vbox{\unvcopy4\unvcopy0}}%
\fi
- \testpage[2]% quite save since a row is > 1 lineheight and we don't want on-liners
+ \testpage[2]% quite save since a row is > 1 lineheight and we don't want one-liners
\!!doneafalse
\doloop
{\ifdim\pagegoal<\maxdimen
@@ -1291,14 +1296,14 @@
\doifsomething\tbltbltussenwit{\blank[\tbltbltussenwit]}%
\fi
\fi
- \setbox0\vsplit\scratchbox to\scratchdimen
+ \setbox0\vsplit\TABLEsplitbox to\scratchdimen
\unvbox0}%
\if!!donea\else\ifcase\noftblnextlines\else
\setbox2\box4
\fi\fi
\!!doneatrue
\postprocessTABLEsplitbox\finaltblbox
- \ifvoid\scratchbox
+ \ifvoid\TABLEsplitbox
\beforeTABLEsplitbox
\box\finaltblbox
\afterTABLEsplitbox
diff --git a/tex/context/base/core-pos.tex b/tex/context/base/core-pos.tex
index 5724c72ad..61257abf2 100644
--- a/tex/context/base/core-pos.tex
+++ b/tex/context/base/core-pos.tex
@@ -948,10 +948,24 @@
\def\textanchor{text:\realfolio}
+% \def\placepositionanchors % todo : depth pagebox
+% {\ifpositioning
+% \setbox\scratchbox\vbox to \teksthoogte
+% {\topskipcorrection
+% \hbox{\strut\dopositionaction\headanchor}%
+% \vfill
+% \hbox{\strut\dopositionaction\tailanchor}}%
+% \dp\scratchbox\zeropoint
+% \wd\scratchbox\zetbreedte % not \zeropoint, else wrong text backgrounds
+% \hpos\textanchor{\box\scratchbox}%
+% \else
+% \vskip\teksthoogte
+% \fi}
+
\def\placepositionanchors % todo : depth pagebox
{\ifpositioning
\setbox\scratchbox\vbox to \teksthoogte
- {\topskipcorrection
+ {\simpletopskipcorrection
\hbox{\strut\dopositionaction\headanchor}%
\vfill
\hbox{\strut\dopositionaction\tailanchor}}%
diff --git a/tex/context/base/core-ref.tex b/tex/context/base/core-ref.tex
index f00d5e12b..ee31798bc 100644
--- a/tex/context/base/core-ref.tex
+++ b/tex/context/base/core-ref.tex
@@ -3204,6 +3204,40 @@
% {#2}%
% \fi}
+% \definespeciallocation\v!pagina#1#2% page(n) page(+n) page(-n)
+% {\iflocation
+% \ifx\currentouterreference\empty
+% \splitoffreference\currentreferenceoperation
+% \else
+% \let\currentinnerreference\currentreferenceoperation
+% \fi
+% \ifx\currentouterreference\empty
+% \doifinstringelse+\currentinnerreference
+% {\scratchcounter\realpageno
+% \advance\scratchcounter \currentinnerreference
+% \edef\currentinnerreference{\the\scratchcounter}}
+% {\doifinstringelse-\currentinnerreference
+% {\scratchcounter\realpageno
+% \advance\scratchcounter \currentinnerreference
+% \edef\currentinnerreference{\the\scratchcounter}}
+% \donothing}%
+% \doifnonzeropositiveelse\currentinnerreference
+% \donothing
+% {\edef\currentinnerreference{1}}%
+% \gotorealpage\empty\empty\currentinnerreference{#2}%
+% \else
+% \setouterlocation\currentouterreference
+% \doifnonzeropositiveelse\currentinnerreference
+% \donothing
+% {\doifdefinedelse{\v!pagina:::\currentinnerreference}
+% {\edef\currentinnerreference{\getvalue{\v!pagina:::\currentinnerreference}}}
+% {\edef\currentinnerreference{1}}}%
+% \gotorealpage\otherURL\otherfile\currentinnerreference{#2}%
+% \fi
+% \else
+% {#2}%
+% \fi}
+
\definespeciallocation\v!pagina#1#2% page(n) page(+n) page(-n)
{\iflocation
\ifx\currentouterreference\empty
@@ -3224,6 +3258,8 @@
\doifnonzeropositiveelse\currentinnerreference
\donothing
{\edef\currentinnerreference{1}}%
+ \docheckrealreferencepage\currentinnerreference % new
+ \let\currentrealreference\currentinnerreference % handy to have this available
\gotorealpage\empty\empty\currentinnerreference{#2}%
\else
\setouterlocation\currentouterreference
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index 7b44270ee..65b9d9b5f 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -794,10 +794,14 @@
\else\ifx\localwidth\v!ruim
\boxhaswidthtrue
\!!widtha\hsize
+ \else\ifx\localwidth\v!lokaal
+ \boxhaswidthtrue
+ \setlocalhsize
+ \!!widtha\localhsize
\else
\boxhaswidthtrue
\!!widtha\localwidth
- \fi\fi\fi
+ \fi\fi\fi\fi
\ifx\localheight\v!passend
\boxhasheightfalse % no longer: \boxhasstrutfalse
\else\ifx\localheight\v!ruim
@@ -816,18 +820,23 @@
\boxhasheighttrue
\fi}%
\fi
- % this should be an option ! ! ! !
- \ifdim\!!widtha=\hsize
- \parindent\zeropoint
- \setlocalhsize
- \!!widtha\localhsize
- \fi
+ % this is now an option: width=local
+ %
+ % \ifdim\!!widtha=\hsize
+ % \parindent\zeropoint
+ % \setlocalhsize
+ % \!!widtha\localhsize
+ % \fi
% i.e. disable (colsetbackgroundproblemintechniek)
\advance\!!widtha -2\@@localoffset
\advance\!!heighta -2\@@localoffset
\ifx\localstrut\v!nee
\boxhasstrutfalse
- \fi
+ \else\ifx\localstrut\v!globaal
+ \setstrut
+ \else\ifx\localstrut\v!lokaal
+ \setfontstrut
+ \fi\fi\fi
\ifboxhasstrut
\setstrut
\let\localbegstrut\begstrut
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
index d628188a0..8e5040e73 100644
--- a/tex/context/base/core-sec.tex
+++ b/tex/context/base/core-sec.tex
@@ -207,11 +207,19 @@
{\voorafgaandenummer\nummer[#1]}%
\egroup}
+% \def\preparethenumber#1#2#3% {\??id#1} \number \result
+% {\doifelsevaluenothing{#1\c!scheider}
+% {\let\numberseparator\empty
+% \let#3#2}
+% {\unexpanded\def\numberseparator{\getvalue{#1\c!scheider}}%
+% \edef#3{\@EA\separatednumber\@EA{#2}}}} % hm, etex
+
\def\preparethenumber#1#2#3% {\??id#1} \number \result
{\doifelsevaluenothing{#1\c!scheider}
{\let\numberseparator\empty
\let#3#2}
- {\unexpanded\def\numberseparator{\getvalue{#1\c!scheider}}%
+ {% was \unexpanded \edef, but we need it unexpanded !
+ \edef\numberseparator{\getvalue{#1\c!scheider}}%
\edef#3{\@EA\separatednumber\@EA{#2}}}} % hm, etex
\def\lossenummer[#1]%
@@ -945,6 +953,8 @@
\newcounter\currentsectionblock
+\def\currentsection{\@@sectieblok}
+
\def\dodefinieersectieblok[#1][#2][#3]%
{\getparameters
[\??sb#1]
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index 49887d92b..3de3a24db 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -533,22 +533,40 @@
\unexpanded\def\blanko % the \relax is definitely needed due to the many \if's
{\relax\complexorsimple\doblanko}
+% \def\complexdoblanko
+% {\flushnotes
+% \ifmmode
+% \let\next\nocomplexdoblanko
+% \else
+% \ifopelkaar
+% \ifinpagebody
+% \let\next\docomplexdoblanko
+% \else
+% \let\next\nocomplexdoblanko
+% \fi
+% \else
+% \let\next\docomplexdoblanko
+% \fi
+% \fi
+% \next}
+%
+% with \next removed
+
\def\complexdoblanko
{\flushnotes
\ifmmode
- \let\next\nocomplexdoblanko
+ \@EA\nocomplexdoblanko
\else
\ifopelkaar
\ifinpagebody
- \let\next\docomplexdoblanko
+ \@EA\@EAEAEA\@EA\docomplexdoblanko
\else
- \let\next\nocomplexdoblanko
+ \@EA\@EAEAEA\@EA\nocomplexdoblanko
\fi
\else
- \let\next\docomplexdoblanko
+ \@EAEAEA\docomplexdoblanko
\fi
- \fi
- \next}
+ \fi}
\def\nocomplexdoblanko[#1]%
{% evt blokkeerfalse
@@ -2397,13 +2415,30 @@
\def\removelastskip% a redefinition of plain
{\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
+% first version:
+%
+% \def\dosomebreak#1%
+% {\scratchskip\lastskip
+% \removelastskip
+% %\type{#1}%
+% #1\relax
+% \ifdim\scratchskip=\zeropoint \else
+% \vskip\scratchskip
+% \fi}
+%
+% don't change the next improvement:
+
\def\dosomebreak#1%
- {\scratchskip\lastskip
- \removelastskip
- %\type{#1}%
- #1\relax
- \ifdim\scratchskip=\zeropoint \else
- \vskip\scratchskip
+ {\endgraf % beware, this forces a newline
+ \ifvmode
+ \ifdim\lastskip=\zeropoint
+ #1\relax
+ \else
+ \scratchskip\lastskip
+ \removelastskip
+ #1\relax
+ \vskip\scratchskip
+ \fi
\fi}
% beter, vooral in \vbox; nog in \pagina toepassen s!
diff --git a/tex/context/base/core-tbl.tex b/tex/context/base/core-tbl.tex
index 036af687d..22ce37474 100644
--- a/tex/context/base/core-tbl.tex
+++ b/tex/context/base/core-tbl.tex
@@ -1,4 +1,5 @@
%D \module
+%D \module
%D [ file=core-tbl,
%D version=1998.11.03,
%D title=\CONTEXT\ Core Macros,
diff --git a/tex/context/base/enco-def.tex b/tex/context/base/enco-def.tex
index 383dffb5f..a0d56c674 100644
--- a/tex/context/base/enco-def.tex
+++ b/tex/context/base/enco-def.tex
@@ -345,6 +345,11 @@
\definecharacter Oumlaut {\smashaccent\Odiaeresis}
\definecharacter Uumlaut {\smashaccent\Udiaeresis}
+\definecharacter scommaaccent {s\quoteright}
+\definecharacter Scommaaccent {S\quoteright}
+\definecharacter tcommaaccent {t\quoteright}
+\definecharacter Tcommaaccent {T\quoteright}
+
\stopencoding
%D A few goodies:
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index 70dd8836c..be9cea913 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -1482,10 +1482,10 @@
%D We preload several encodings:
-\useencoding[def,acc,raw,com,cas,mis] % mis shoudl come first
+\useencoding[def,acc,raw,com,cas,mis] % mis should come first
-\useencoding[ans,il2,ec,tbo,pdf,uc,pol]
+\useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx]
\setupencoding[\s!default=ec] % was: [\s!default=\s!default]
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/enco-pfr.tex b/tex/context/base/enco-pfr.tex
index 5b064805c..ab6d961e8 100644
--- a/tex/context/base/enco-pfr.tex
+++ b/tex/context/base/enco-pfr.tex
@@ -14,39 +14,39 @@
%D This is an experimental module in which we implement
%D font resource inclusion in \PDF. One reason to include
%D font resources is that it enables a search engine to
-%D perform a search (I'm told). This feature ws requested by
-%D Petr Ferdus from Czech.
+%D perform a search (I'm told). This feature ws requested by
+%D Petr Ferdus from Czech.
%D A simple test file may look like this (watch how we first
-%D load the encoding and then the font; previous font
-%D definitions are left untouched.)
-%D
+%D load the encoding and then the font; previous font
+%D definitions are left untouched.)
+%D
%D \starttypen
-%D % output=pdftex interface=en
-%D
+%D % output=pdftex interface=en
+%D
%D \useencoding[pfr]
%D \setupbodyfont[csr]
-%D
-%D \starttext
+%D
+%D \starttext
%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
%D test \`z \'z \bf test \sl test \bs quite funny \`z \page
-%D \stoptext
-%D \stoptypen
+%D \stoptext
+%D \stoptypen
%D
-%D We do our best to include a (often large) font resources
-%D only once. The current implementation is not that
-%D general which is also due to the fact that \type
-%D {\pdffontattr} is expanded instantly and persistent. A
-%D more versatile (but also slower) approach is to keep track
-%D of the fonts and either flush the information at shipout
-%D time, or at the end of the document.
+%D We do our best to include a (often large) font resources
+%D only once. The current implementation is not that
+%D general which is also due to the fact that \type
+%D {\pdffontattr} is expanded instantly and persistent. A
+%D more versatile (but also slower) approach is to keep track
+%D of the fonts and either flush the information at shipout
+%D time, or at the end of the document.
\unprotect
-%D \macros
+%D \macros
%D {ifincludepdffontresources}
%D
-%D You can turn of this feature using the following switch.
+%D You can turn of this feature using the following switch.
\newif\ifincludepdffontresources \includepdffontresourcestrue
@@ -55,33 +55,30 @@
%D done, the resource name is erased, and we use this fact to
%D prevent redefinition as well as well as reloading. So, a
%D macro defined with \type {\pdffontfileresource} can have
-%D three states:
-%D
+%D three states:
+%D
%D \startopsomming[opelkaar]
%D \som undefined: not yet loaded, and not yet included
%D \som some value: loaded, but not yet included
%D \som empty: loaded, and already included
%D \stopopsomming
-\def\pdffontresource%
- {pdfr:\currentencoding}
-
-\def\pdffontfileresource%
- {pdff:\pdffontresource}
+\def\pdffontresource {pdfr:\currentencoding}
+\def\pdffontfileresource{pdff:\pdffontresource}
%D A resource is defined in a file prefixed by \type {pdfr-}.
%D The following \PDF\ code is composed by Ondrej Koala Vacha (I
-%D probably mispelled this name).
-%D
+%D probably mispelled this name).
+%D
%D \starttypen
-%D \startpdffontresource[il2]
+%D \startpdffontresource[il2]
%D /CIDInit /ProcSet findresource begin
%D 12 dict begin
%D begincmap
%D /CIDSystemInfo
-%D << /Registry (Adobe)
-%D /Ordering (T1UV)
-%D /Supplement 0
+%D << /Registry (Adobe)
+%D /Ordering (T1UV)
+%D /Supplement 0
%D >> def
%D /CMapName /Adobe-Identity-UCS def
%D /CMapType 1 def
@@ -100,17 +97,17 @@
%D \stoppdffontresource
%D \stoptypen
%D
-%D We don't preload such huge definitions, and process them
-%D run||time to save memory. Therefore, in the encoding
+%D We don't preload such huge definitions, and process them
+%D run||time to save memory. Therefore, in the encoding
%D vector, we only add an entry like:
-%D
+%D
%D \starttypen
%D \startencoding [il2]
%D \usepdffontresource il2
%D \stopencoding
%D \stoptypen
%D
-%D This macro is defined as follows.
+%D This macro is defined as follows.
\def\usepdffontresource #1 %
{\doifundefinedelse{\pdffontfileresource} % okay, undefined, so either
@@ -118,10 +115,10 @@
{\doifvaluesomething{\pdffontfileresource} % only if not loaded in which
{\setxvalue{\pdffontfileresource}{#1}}}} % case it's made empty
-%D Watch how we check for duplicated loading. The resource
-%D itself, when asked for, is included immediately, after which
-%D we save its reference. Normally a document will have one
-%D such a resource.
+%D Watch how we check for duplicated loading. The resource
+%D itself, when asked for, is included immediately, after which
+%D we save its reference. Normally a document will have one
+%D such a resource.
\long\def\startpdffontresource[#1]#2\stoppdffontresource%
{\donefalse % we use boolean due to \par
@@ -132,15 +129,15 @@
\setxvalue{\pdffontresource}{\the\pdflastobj}%
\fi}
-%D The reference to such a vector is to be handled at font
-%D definition time, which is why we hook it into the font
-%D loading routine. A little bit of indirectness speeds up
-%D the process when this feature is disabled and keeps the
-%D macros readable.
+%D The reference to such a vector is to be handled at font
+%D definition time, which is why we hook it into the font
+%D loading routine. A little bit of indirectness speeds up
+%D the process when this feature is disabled and keeps the
+%D macros readable.
\appendtoksonce \includepdffontresource \to \everyfont
-\def\includepdffontresource%
+\def\includepdffontresource
{\ifincludepdffontresources
\ifx\pdffontattr\undefined
% we're not using (a recent version of) pdftex
@@ -155,7 +152,7 @@
\def\doincludepdffontresource
{\ifcsname\s!ucmap\fontfile\endcsname\else
- \dodoincludepdffontresource
+ \dodoincludepdffontresource
\fi}
\def\dodoincludepdffontresource%
@@ -189,7 +186,7 @@
\def\doincludepdffontresource
{\@EA\ifx\csname\s!ucmap\fontfile\endcsname\relax
- \dodoincludepdffontresource
+ \dodoincludepdffontresource
\fi}
\def\dodoincludepdffontresource%
@@ -204,7 +201,7 @@
\fi
\fi
\@EA\ifx\csname\pdffontresource\endcsname\relax\else
- \expanded{\pdffontattr\font
+ \expanded{\pdffontattr\font
{/ToUnicode \csname\pdffontresource\endcsname\space0 R}}%
\fi
\global\@EA\let\csname\s!ucmap\fontfile\endcsname\empty
@@ -213,8 +210,8 @@
\endTEX
-%D For the moment, we keep this definition here, if only
-%D because \type {\usepdffontencoding} is not defined in the
+%D For the moment, we keep this definition here, if only
+%D because \type {\usepdffontencoding} is not defined in the
%D core. In the end, this will go to enco-il2.
\startencoding [il2]
diff --git a/tex/context/base/enco-pol.tex b/tex/context/base/enco-pol.tex
index 108969702..353b5ef7b 100644
--- a/tex/context/base/enco-pol.tex
+++ b/tex/context/base/enco-pol.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Polish native encoding; normally polish users will use
+%D Polish native encoding; normally polish users will use
%D translate=cp1250pl in combination with ec encoding.
\startmapping[pl0]
@@ -23,7 +23,7 @@
\definecasemap 171 171 139 % n acute
\definecasemap 243 243 211 % o acute
\definecasemap 177 177 145 % s acute
-\definecasemap 185 185 153 % z acute
+\definecasemap 185 185 153 % z acute
\definecasemap 187 187 155 % z dot
\definecasemap 129 161 129 % A ogonek
@@ -34,9 +34,9 @@
\definecasemap 211 243 211 % O acute
\definecasemap 145 177 145 % S acute
\definecasemap 153 185 153 % Z acute
-\definecasemap 155 187 155 % Z dot
+\definecasemap 155 187 155 % Z dot
-\stopmapping
+\stopmapping
\startmapping[pl0]
@@ -50,7 +50,7 @@
\definespacemap 153 999 % Z acute
\definespacemap 155 999 % Z dot
-\stopmapping
+\stopmapping
\startencoding[pl0]
@@ -62,23 +62,23 @@
\definecharacter Sacute 145
\definecharacter Zacute 153
\definecharacter Zdot 155
-\definecharacter aogonek 161
-\definecharacter cacute 162
-\definecharacter eogonek 166
-\definecharacter lstroke 170
-\definecharacter nacute 171
+\definecharacter aogonek 161
+\definecharacter cacute 162
+\definecharacter eogonek 166
+\definecharacter lstroke 170
+\definecharacter nacute 171
\definecharacter sacute 177
\definecharacter zacute 185
\definecharacter zdot 187
\definecharacter Oacute 211
\definecharacter oacute 243
-\stopencoding
+\stopencoding
\startencoding[pl0]
-\definecharacter leftguillemot 174
-\definecharacter rightguillemot 175
+\definecharacter leftguillemot 174
+\definecharacter rightguillemot 175
\definecharacter guilsingleleft 174
\definecharacter guilsingleright 175
@@ -119,7 +119,7 @@
\definecasemap 241 241 209 % n acute
\definecasemap 243 243 211 % o acute
\definecasemap 156 156 140 % s acute
-\definecasemap 159 159 143 % z acute
+\definecasemap 159 159 143 % z acute
\definecasemap 191 191 175 % z dot
\definecasemap 165 165 185 % A ogonek
@@ -130,9 +130,9 @@
\definecasemap 211 211 243 % O acute
\definecasemap 140 140 156 % S acute
\definecasemap 143 143 159 % Z acute
-\definecasemap 175 175 191 % Z dot
+\definecasemap 175 175 191 % Z dot
-\stopmapping
+\stopmapping
\startmapping[pl1]
@@ -146,7 +146,7 @@
\definespacemap 143 999 % Z acute
\definespacemap 175 999 % Z dot
-\stopmapping
+\stopmapping
\startencoding[pl1]
@@ -169,12 +169,12 @@
\definecharacter nacute 241
\definecharacter oacute 243
-\stopencoding
+\stopencoding
\startencoding[pl1]
-\definecharacter leftguillemot 174
-\definecharacter rightguillemot 175
+\definecharacter leftguillemot 174
+\definecharacter rightguillemot 175
\definecharacter guilsingleleft 174
\definecharacter guilsingleright 175
@@ -202,9 +202,9 @@
\definecasemap 211 211 243 % O acute
\definecasemap 166 166 182 % S acute
\definecasemap 172 172 188 % Z acute
-\definecasemap 175 175 191 % Z dot
+\definecasemap 175 175 191 % Z dot
-\stopmapping
+\stopmapping
\startmapping[pl2]
@@ -218,7 +218,7 @@
\definespacemap 172 999 % Z acute
\definespacemap 175 999 % Z dot
-\stopmapping
+\stopmapping
\startencoding[pl2]
@@ -228,7 +228,7 @@
\definecharacter Zacute 172
\definecharacter Zdot 175
\definecharacter aogonek 177
-\definecharacter lstroke 179
+\definecharacter lstroke 179
\definecharacter sacute 182
\definecharacter zacute 188
\definecharacter zdot 191
@@ -241,15 +241,15 @@
\definecharacter nacute 241
\definecharacter oacute 243
-\stopencoding
+\stopencoding
\startencoding[pl2]
-\definecharacter leftguillemot 174
-\definecharacter rightguillemot 175
+\definecharacter leftguillemot 174
+\definecharacter rightguillemot 175
\definecharacter guilsingleleft 174
\definecharacter guilsingleright 175
\stopencoding
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/enco-qx.tex b/tex/context/base/enco-qx.tex
new file mode 100644
index 000000000..f9b125ad8
--- /dev/null
+++ b/tex/context/base/enco-qx.tex
@@ -0,0 +1,207 @@
+%D \module
+%D [ file=enco-qx,
+%D version=2004.04.03,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=Polish QX Encoding,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA-ADE]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\startmapping[qx] % to be done
+
+\definecasemaps 160 to 188 lc +32 uc 0
+\definecasemaps 192 to 255 lc 0 uc -32
+
+\stopmapping
+
+\startencoding[qx]
+
+\definecharacter textacute 19
+\definecharacter textbreve 21
+\definecharacter textcaron 20
+\definecharacter textcedilla 24
+\definecharacter textcircumflex 94
+\definecharacter textdiaeresis 127
+\definecharacter textdotaccent 94
+\definecharacter textgrave 18
+\definecharacter texthungarumlaut 125
+\definecharacter textmacron 22
+\definecharacter textogonek 150
+\definecharacter textring 23
+\definecharacter texttilde 126
+
+\definecharacter dotlessi 16
+\definecharacter dotlessj 17
+
+\definecharacter endash 123
+\definecharacter emdash 124
+
+\definecharacter aeligature 26
+\definecharacter AEligature 27
+\definecharacter oeligature 29
+\definecharacter OEligature 30
+
+\definecharacter ssharp 25
+%definecharacter Ssharp 25
+
+\definecharacter thorn 254
+\definecharacter Thorn 222
+
+\definecharacter Eth 208
+\definecharacter eth 240
+
+\definecharacter exclamdown 60
+\definecharacter questiondown 62
+
+\definecharacter sectionmark 159
+
+\definecharacter percent 37
+\definecharacter perthousand 216
+
+\definecharacter textasciicircum 141
+\definecharacter textasciitilde 140
+\definecharacter textbackslash 198
+\definecharacter textbraceleft 157
+\definecharacter textbraceright 158
+\definecharacter textunderscore 230
+
+\definecharacter textcurrency 215
+\definecharacter textdollar 36
+\definecharacter texteuro 128
+
+\definecharacter periodcentered 189
+\definecharacter textdag 143
+\definecharacter textddag 144
+\definecharacter textdegree 148
+\definecharacter textbullet 180
+
+\definecharacter paragraphmark 176
+
+\definecharacter copyright 164
+\definecharacter registered 163
+
+\definecharacter textbrokenbar 223
+\definecharacter textellipsis 8
+\definecharacter textslash 47
+\definecharacter textpm 172
+\definecharacter textdiv 165
+\definecharacter textminus 168
+\definecharacter textmultiply 169
+\definecharacter textmu 7
+
+\definecharacter quotedbl 190
+\definecharacter quotedblbase 255
+\definecharacter quotedblleft 92
+\definecharacter quotedblright 34
+
+\definecharacter quotesingle 191
+
+\definecharacter quoteleft 96
+\definecharacter quoteright 39
+
+\definecharacter leftguillemot 174
+\definecharacter rightguillemot 175
+
+\definecharacter aacute 225
+\definecharacter Aacute 193
+\definecharacter cacute 162
+\definecharacter Cacute 130
+\definecharacter eacute 233
+\definecharacter Eacute 201
+\definecharacter iacute 237
+\definecharacter Iacute 205
+\definecharacter Nacute 139
+\definecharacter Oacute 211
+\definecharacter nacute 171
+\definecharacter oacute 243
+\definecharacter sacute 177
+\definecharacter Sacute 145
+\definecharacter uacute 250
+\definecharacter Uacute 218
+\definecharacter yacute 253
+\definecharacter Yacute 221
+\definecharacter zacute 185
+\definecharacter Zacute 153
+
+\definecharacter scaron 178
+\definecharacter Scaron 146
+\definecharacter zcaron 186
+\definecharacter Zcaron 154
+
+\definecharacter ccedilla 231
+\definecharacter Ccedilla 199
+
+\definecharacter acircumflex 226
+\definecharacter Acircumflex 194
+\definecharacter ecircumflex 234
+\definecharacter Ecircumflex 202
+\definecharacter icircumflex 238
+\definecharacter Icircumflex 206
+\definecharacter ocircumflex 244
+\definecharacter Ocircumflex 212
+\definecharacter ucircumflex 251
+\definecharacter Ucircumflex 219
+
+\definecharacter adiaeresis 228
+\definecharacter Adiaeresis 196
+\definecharacter ediaeresis 235
+\definecharacter Ediaeresis 203
+\definecharacter idiaeresis 239
+\definecharacter Idiaeresis 207
+\definecharacter odiaeresis 246
+\definecharacter Odiaeresis 214
+\definecharacter udiaeresis 252
+\definecharacter Udiaeresis 220
+\definecharacter ydiaeresis 184
+\definecharacter Ydiaeresis 152
+
+\definecharacter zdotaccent 187
+\definecharacter Zdotaccent 155
+
+\definecharacter agrave 224
+\definecharacter Agrave 192
+\definecharacter egrave 232
+\definecharacter Egrave 200
+\definecharacter igrave 236
+\definecharacter Igrave 204
+\definecharacter ograve 242
+\definecharacter Ograve 210
+\definecharacter ugrave 249
+\definecharacter Ugrave 217
+
+\definecharacter aogonek 161
+\definecharacter Aogonek 129
+\definecharacter eogonek 166
+\definecharacter Eogonek 134
+\definecharacter iogonek 167
+\definecharacter Iogonek 135
+\definecharacter uogonek 183
+\definecharacter Uogonek 151
+
+\definecharacter aring 229
+\definecharacter Aring 197
+
+\definecharacter lstroke 170
+\definecharacter Lstroke 138
+\definecharacter ostroke 28
+\definecharacter Ostroke 31
+
+\definecharacter atilde 227
+\definecharacter Atilde 195
+\definecharacter ntilde 241
+\definecharacter Ntilde 209
+\definecharacter otilde 245
+\definecharacter Otilde 213
+
+\definecharacter scommaaccent 179
+\definecharacter Scommaaccent 147
+\definecharacter tcommaaccent 181
+\definecharacter Tcommaaccent 149
+
+\stopencoding
+
+\endinput \ No newline at end of file
diff --git a/tex/context/base/java-exa.tex b/tex/context/base/java-exa.tex
new file mode 100644
index 000000000..a28b5aeae
--- /dev/null
+++ b/tex/context/base/java-exa.tex
@@ -0,0 +1,232 @@
+%D \module
+%D [ file=java-exa,
+%D version=2002.??.??,
+%D title=\CONTEXT\ JavaScript Macros,
+%D subtitle=Example Support,
+%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.
+
+\startJSpreamble request_0 used now
+
+ exa_command = "" ;
+ exa_option = "" ;
+ exa_filename = "" ;
+ exa_filelist = "" ;
+ exa_registered = "" ;
+
+\stopJSpreamble
+
+\startJSpreamble request_1 used now
+
+ function set_request (command,option) {
+ exa_command = command ;
+ if (option.indexOf("--")<0) {
+ exa_option = "--action=" + option ;
+ } else {
+ exa_option = option ;
+ }
+ }
+
+ function assemble_request ( ) {
+ v = this.getField('filename') ;
+ if (v) {
+ exa_filename = v.value ;
+ }
+ v = this.getField('filelist') ;
+ if (v) {
+ exa_filelist = v.value ;
+ }
+ % exa_filename = exa_filename.replace(/\\\\/g,'/') ;
+ % exa_filelist = exa_filelist.replace(/\\\\/g,'/') ;
+ str = "<exa:request><exa:application>" ;
+ if (exa_filelist == '') {
+ exa_filelist = exa_registered ;
+ } else {
+ if (exa_registered != '') {
+ exa_filelist = exa_filelist + "\\n" + exa_registered ;
+ }
+ }
+ if (exa_command != '') {
+ str = str+"<exa:command>"+exa_command+"</exa:command>" ;
+ }
+ if (exa_option != '') {
+ str = str+"<exa:option>"+exa_option+"</exa:option>" ;
+ }
+ if (exa_filename != '') {
+ str = str+"<exa:filename>"+exa_filename+"</exa:filename>" ;
+ }
+ if (exa_filelist != '') {
+ lst = exa_filelist.split(/\\s/) ;
+ str = str+"<exa:filelist>" ;
+ for (i=0;i<lst.length;i++) {
+ str = str+"<exa:entry>"+lst[i]+"</exa:entry>" ;
+ }
+ str = str+"</exa:filelist>" ;
+ }
+ str = str + "</exa:application></exa:request>" ;
+ v = this.getField('exa:request') ;
+ if (v) {
+ % console.println(str) ;
+ v.value = str ;
+ }
+ }
+
+\stopJSpreamble
+
+\startJSpreamble request_2 used now
+
+ multiplefiles = false ;
+
+ function setfilename ( suffixes ) {
+ f = this.getField("fakename") ;
+ if (f) {
+ f.browseForFileToSubmit() ;
+ if (suffixes != "") {
+ s = suffixes.replace(/,/g,"|") ;
+ r = new RegExp() ;
+ s = "\\\\.(" + s + ")$" ;
+ r.compile(s, "i") ;
+ if (f.value.search(r)<=0) {
+ f.value = "" ;
+ app.alert('This filetype is not permitted.') ;
+ }
+ }
+ g = this.getField("filename") ;
+ if (g) {
+ g.value = f.value ;
+ }
+ % we need to set the value of the selector to empty else
+ % we get some funny preloading of multimeg files in spite
+ % of the specs that say that xml fields will not get sent
+ f.value = '' }
+ this.dirty = false ;
+ }
+
+ function addfilename () {
+ if (multiplefiles) {
+ h = this.getField("filelist") ;
+ g = this.getField("filename") ;
+ if ((g) && (h)) {
+ str = g.value ;
+ if (h.value == '') {
+ h.value = str ;
+ } else {
+ h.value = h.value + "\\n" + str ;
+ }
+ g.value = '' ;
+ this.value = '' ;
+ }
+ }
+ this.dirty = false ;
+ }
+
+ % not needed (why is it in here then)
+
+ function registerfilename (str) {
+ if (str!='') {
+ h = this.getField("filelist") ;
+ if (h) {
+ if (h.value != '') {
+ h.value = h.value + "\\n" ;
+ }
+ h.value = h.value + str ;
+ } else {
+ if (exa_registered != '') {
+ exa_registered = exa_registered + "\\n" ;
+ }
+ exa_registered = exa_registered + str ;
+ }
+ }
+ console.show ;
+ console.println('registered files') ;
+ console.println("file: "+str) ;
+ console.println("list: "+exa_registered) ;
+ this.dirty = false ;
+ }
+
+ function checkfilename () {
+ }
+
+ function getfilename ( suffixes ) {
+ setfilename(suffixes) ;
+ checkfilename() ;
+ addfilename() ;
+ }
+
+ function resetfilename () {
+ f = this.getField("filename") ;
+ if (f) {
+ f.value = '' ;
+ }
+ f = this.getField("fakename") ;
+ if (f) {
+ f.value = '' ;
+ }
+ f = this.getField("filelist") ;
+ if (f) {
+ f.value = '' ;
+ }
+ }
+
+\stopJSpreamble
+
+\startJSpreamble request_3 used now
+
+ function set_example_host ( host ) {
+ if (host.indexOf("://")<0) {
+ global.examplehost = "http://" + host ;
+ } else {
+ global.examplehost = host ;
+ }
+ }
+
+ function set_example_port ( port ) {
+ global.exampleport = port ;
+ }
+
+ function show_example_url ( ) {
+ console.println("example url: " + global.examplehost + ":" + global.exampleport) ;
+ }
+
+ function report_example_url ( ) {
+ app.alert("Requests will be submitted to port " + global.exampleport + " on " + global.examplehost + '.') ;
+ }
+
+ function submit_form (host, port) {
+ console.println("form: submit") ;
+ console.println("host: "+host) ;
+ console.println("port: "+port) ;
+ % example_url = "http://" + host + ":" + port ;
+ example_url = host + ":" + port ;
+ this.submitForm({cURL : example_url, bXML : true}) ;
+ }
+
+ function submit_example_form ( ) {
+ console.println("example form: submit") ;
+ console.println("example host: "+global.examplehost) ;
+ console.println("example port: "+global.exampleport) ;
+ % example_url = "http://" + global.examplehost + ":" + global.exampleport ;
+ example_url = global.examplehost + ":" + global.exampleport ;
+ this.submitForm({cURL : example_url, bXML : true}) ;
+ }
+
+ if (typeof global.examplehost == "undefined" ) {
+ if (this.baseURL == "") {
+ set_example_host("http://localhost") ;
+ } else {
+ set_example_host(this.baseURL) ;
+ }
+ }
+
+ if (typeof global.exampleport == "undefined" ) {
+ set_example_port("8061") ;
+ }
+
+\stopJSpreamble
+
+\endinput \ No newline at end of file
diff --git a/tex/context/base/java-fil.tex b/tex/context/base/java-fil.tex
index 2875998dd..02f32dffc 100644
--- a/tex/context/base/java-fil.tex
+++ b/tex/context/base/java-fil.tex
@@ -8,10 +8,10 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-\startJSpreamble{Auxiliary} used now
+\startJSpreamble Auxiliary used now
function DocumentFileName ()
{ var Paths = this.path.split("/") ;
@@ -19,19 +19,19 @@
return(Paths[0]) }
function Print_Page_Range(From, To) % gaat mis, nog geen args mogelijk
- { if ((Number(From)>0)&&(Number(To)>=Number(From)))
- { var myFrom = Number(From)-1 ;
- var myTo = Number(To)-1 ;
+ { if ((Number(From)>0)&&(Number(To)>=Number(From)))
+ { var myFrom = Number(From)-1 ;
+ var myTo = Number(To)-1 ;
this.print(false,myFrom,myTo,true) } }
- function Print_This_Page ()
- { this.print(false,this.pageNum,this.pageNum,true) }
+ function Print_This_Page ()
+ { this.print(false,this.pageNum,this.pageNum,true) }
\stopJSpreamble
-\definereference
- [PrintSubPaginas]
- [JS(Print_Page_Range{\firstsubpage,\lastsubpage})]
+\definereference
+ [PrintSubPaginas]
+ [JS(Print_Page_Range{\firstsubpage,\lastsubpage})]
\definereference
[PrintSubPages]
@@ -45,4 +45,4 @@
[PrintThisPage]
[JS(Print_This_Page)]
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/java-fld.tex b/tex/context/base/java-fld.tex
index aad157dd7..aa563c1a4 100644
--- a/tex/context/base/java-fld.tex
+++ b/tex/context/base/java-fld.tex
@@ -127,7 +127,7 @@
event.value = Sanitized_TeX_String(event.value) ;
\stopJScode
-\startJSpreamble {Field} used now
+\startJSpreamble fields_1 used now
var visible_field = new Array() ; % no garbage collection !
var visible_fields = 0 ;
@@ -249,7 +249,7 @@ function ForgetChanges ()
% This can be done more efficient, by keeping track of the
% current top of the stack.
-\startJSpreamble {FieldStack} used later
+\startJSpreamble FieldStack used later
function Reset_Fields ( FieldSet )
{ var i = 1 ;
diff --git a/tex/context/base/java-ini.tex b/tex/context/base/java-ini.tex
index f9cd778af..495b86a41 100644
--- a/tex/context/base/java-ini.tex
+++ b/tex/context/base/java-ini.tex
@@ -679,4 +679,4 @@
\def\useJSscripts
{\dodoubleempty\douseJSscripts}
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/java-stp.tex b/tex/context/base/java-stp.tex
new file mode 100644
index 000000000..2417a61e0
--- /dev/null
+++ b/tex/context/base/java-stp.tex
@@ -0,0 +1,127 @@
+%D \module
+%D [ file=java-stp,
+%D version=2004.03.15,
+%D title=\CONTEXT\ JavaScript Macros,
+%D subtitle=Stepping,
+%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.
+
+\startJSpreamble Steps used now
+
+ % we define ocglist global, otherwise we quickly run into a memory hog (even
+ % out of memory in a 512 Meg machine)
+
+ % we cannot use doc_visited[this.pageNum] instead of doc_currentstep because
+ % of some funny side effect (i.e. dup or so)
+
+ var doc_ocglist = this.getOCGs() ;
+ var doc_stepname = "step" ;
+ var doc_currentstep = 0 ;
+ var doc_maxstep = 50 ;
+ var doc_visited = new Array() ;
+ var doc_busy = new Array() ;
+
+ % for some reason, this function is not seen in time (funny initialization
+ % order again?) ...
+
+ function SetupStepper ( layername, laststep ) {
+ doc_stepname = layername ;
+ doc_maxstep = laststep ;
+ for (var i=0; i<=this.numPages; i++) {
+ doc_visited[i] = 0 ;
+ doc_busy[i] = 0 ;
+ }
+ }
+
+ % so, we do it the ugly way
+
+ for (var i=0; i<=this.numPages; i++) {
+ doc_visited[i] = 0 ;
+ doc_busy[i] = 0 ;
+ }
+
+ function GetOCG ( name ) {
+ for (var i=0; i < doc_ocglist.length; i++) {
+ if (doc_ocglist[i].name == name) {
+ return doc_ocglist[i] ;
+ }
+ }
+ return null ;
+ }
+
+ function CheckBusy ( ) {
+ var ocg = GetOCG("step:busy") ;
+ if (ocg != null) {
+ if (doc_visited[this.pageNum]==0) {
+ ocg.state = true ;
+ } else {
+ if (doc_visited[this.pageNum]<doc_busy[this.pageNum]) {
+ ocg.state = true ;
+ } else {
+ ocg.state = false ;
+ }
+ }
+ }
+ }
+
+ function SetStepper ( maxstep, state ) {
+ for (var i=1; i<=maxstep; i++) {
+ try {
+ var ocg = GetOCG(doc_stepname + ':' + String(i)) ;
+ if (ocg != null) {
+ ocg.state = state ;
+ }
+ } catch (e) {
+ return ;
+ }
+ }
+ }
+
+ function CheckStepper ( maxsteps ) {
+ SetStepper(doc_visited[this.pageNum], true) ;
+ doc_busy[this.pageNum] = Number(maxsteps) ;
+ doc_currentstep = doc_visited[this.pageNum] ;
+ CheckBusy() ;
+ }
+
+ function ResetStepper ( ) {
+ SetStepper(doc_maxstep, false) ;
+ doc_currentstep = 0 ;
+ }
+
+ function InvokeStepper ( ) {
+ try {
+% console.println("INVOKE "+doc_currentstep+" "+doc_busy[this.pageNum]) ;
+ if (doc_currentstep<doc_busy[this.pageNum]) {
+ doc_currentstep += 1 ;
+ doc_visited[this.pageNum] = doc_currentstep ;
+ var ocg = GetOCG(doc_stepname + ':' + String(doc_currentstep)) ;
+ if (ocg != null) {
+ ocg.state = true ;
+ }
+ } else {
+ if (this.pageNum+1==this.numPages) {
+ this.pageNum = 0 ;
+ } else {
+ this.pageNum += 1 ;
+ }
+ }
+ CheckBusy() ;
+ } catch (e) {
+ return ;
+ }
+ }
+
+\stopJSpreamble
+
+% \definereference [SetupStepper] [JS(SetupStepper{step,50})]
+% \definereference [ResetStepper] [JS(ResetStepper)]
+% \definereference [CheckStepper] [JS(CheckStepper{\StepCounter})]
+% \definereference [InvokeStepper] [JS(InvokeStepper)]
+
+\endinput \ No newline at end of file
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index ecfd053c1..22360919f 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -520,11 +520,26 @@
%D A more general way of passing environments is:
-\def\startMPenvironment % second arg gobbles spaces, so
- {\dodoubleempty\dostartMPenvironment} % that reset gives \emptytoks
+% ok but introduces \relax's
+%
+% \def\startMPenvironment % second arg gobbles spaces, so
+% {\dodoubleempty\dostartMPenvironment} % that reset gives \emptytoks
+%
+% \long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment%
+% {\doif{#1}\s!reset\resetMPenvironment % reset mp toks
+% \doif{#1}\v!globaal{#3}% % use in main doc too
+% \doif{#1}+{#3}% % use in main doc too
+% \convertargument#3\to\ascii
+% \expandafter\appendtoks\ascii\to\everyMPTEXgraphic}
+
+\def\startMPenvironment % second arg gobbles spaces, so that reset gives \emptytoks
+ {\bgroup
+ \catcode`\^^M=\@@space
+ \dodoubleempty\dostartMPenvironment}
-\long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment%
- {\doif{#1}\s!reset\resetMPenvironment % reset mp toks
+\long\def\dostartMPenvironment[#1][#2]#3\stopMPenvironment
+ {\egroup
+ \doif{#1}\s!reset\resetMPenvironment % reset mp toks
\doif{#1}\v!globaal{#3}% % use in main doc too
\doif{#1}+{#3}% % use in main doc too
\convertargument#3\to\ascii
diff --git a/tex/context/base/page-bck.tex b/tex/context/base/page-bck.tex
index 720b9fa69..967679216 100644
--- a/tex/context/base/page-bck.tex
+++ b/tex/context/base/page-bck.tex
@@ -317,9 +317,37 @@
\appendtoks \setbackgroundoffsets \to \everybeforepagebody
+% \def\setbackgroundbox#1#2%
+% {\global\setbox#1\vbox
+% {\dontcomplain
+% \calculatereducedvsizes
+% \offinterlineskip
+% #2\relax
+% \vskip-\bovenhoogte
+% \vskip-\bovenafstand
+% \dodopagebodybackground\v!boven\bovenhoogte
+% \vskip\bovenafstand
+% \dodopagebodybackground\v!hoofd\hoofdhoogte
+% \vskip\hoofdafstand
+% \dodopagebodybackground\v!tekst\teksthoogte
+% \vskip\voetafstand
+% \dodopagebodybackground\v!voet\voethoogte
+% \vskip\onderafstand
+% \dodopagebodybackground\v!onder\onderhoogte
+% \vfilll}%
+% \smashbox#1}
+
+\newconditional\swapbackgroundmargins \settrue\swapbackgroundmargins
+
\def\setbackgroundbox#1#2%
{\global\setbox#1\vbox
{\dontcomplain
+ \swapmargins
+ \ifconditional\swapbackgroundmargins
+ \doifmarginswapelse \donothing
+ {\swapmacros\v!rechtermarge\v!linkermarge
+ \swapmacros\v!rechterrand \v!linkerrand}%
+ \fi
\calculatereducedvsizes
\offinterlineskip
#2\relax
@@ -337,11 +365,31 @@
\vfilll}%
\smashbox#1}
+% \def\dodopagebodybackground#1#2%
+% {\ifdim#2>\zeropoint % added, faster
+% \setbox\scratchbox\vbox to #2
+% \bgroup\hbox\bgroup
+% \swapmargins
+% \goleftonpage
+% \dododopagebodybackground\linkerrandbreedte #2#1\v!linkerrand
+% \hskip\linkerrandafstand
+% \dododopagebodybackground\linkermargebreedte #2#1\v!linkermarge
+% \hskip\linkermargeafstand
+% \dododopagebodybackground\zetbreedte #2#1\v!tekst
+% \hskip\rechtermargeafstand
+% \dododopagebodybackground\rechtermargebreedte#2#1\v!rechtermarge
+% \hskip\rechterrandafstand
+% \dododopagebodybackground\rechterrandbreedte #2#1\v!rechterrand
+% \egroup\egroup
+% \wd\scratchbox\zeropoint
+% \box\scratchbox\relax
+% \fi}
+
\def\dodopagebodybackground#1#2%
{\ifdim#2>\zeropoint % added, faster
\setbox\scratchbox\vbox to #2
\bgroup\hbox\bgroup
- \swapmargins
+ % \swapmargins
\goleftonpage
\dododopagebodybackground\linkerrandbreedte #2#1\v!linkerrand
\hskip\linkerrandafstand
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index a680a19fb..ca4ef35ae 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -283,7 +283,8 @@
\v!diepte=>\global\chardef\sidefloatalign\plusthree,%
\v!grid=>\global\chardef\sidefloatalign4,%
\v!halveregel=>\global\chardef\sidefloatalign5]%
- \ifcase\sidefloatalign\relax
+% todo (test first): \doifinset\v!lokaal{#2}{\chardef\sidefloatalign\zerocount}%
+ \ifcase\sidefloatalign\relax % todo: optie v!lokaal => \else
\doifinset\v!hoogte {#2}{\global\chardef\sidefloatalign\plusone}%
\doifinset\v!regel {#2}{\global\chardef\sidefloatalign\plustwo}%
\doifinset\v!diepte {#2}{\global\chardef\sidefloatalign\plusthree}%
diff --git a/tex/context/base/page-lay.tex b/tex/context/base/page-lay.tex
index 24e28e67b..c35d293f6 100644
--- a/tex/context/base/page-lay.tex
+++ b/tex/context/base/page-lay.tex
@@ -677,6 +677,12 @@
% {\let\currentlayout\v!even\recalculatelayout}%
% \fi}
+% document:
+%
+% \setuplayout[odd][state=stop] \setuplayout[even][state=stop] \setuplayout[page]
+%
+% \startstandardmakeup[page=blank] ... \stopstandardmakeup
+
\def\checkcurrentlayout % public and used in naw, so keep this name
{\ifundefined{\??ly\realfolio\c!status}%
\doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
@@ -1405,6 +1411,7 @@
\definepapersize [S6] [\c!breedte=600pt,\c!hoogte=450pt]
\definepapersize [S8] [\c!breedte=800pt,\c!hoogte=600pt]
\definepapersize [SW] [\c!breedte=800pt,\c!hoogte=450pt]
+\definepapersize [SM] [\c!breedte=720pt,\c!hoogte=450pt]
%D These are handy too:
diff --git a/tex/context/base/page-lyr.tex b/tex/context/base/page-lyr.tex
index 953019775..dca34845c 100644
--- a/tex/context/base/page-lyr.tex
+++ b/tex/context/base/page-lyr.tex
@@ -313,9 +313,9 @@
\doifnotvalue{\layerparameter\c!richting}\v!omgekeerd{\box\layerpagebox}%
\fi
% don't move
- \xdef\lastlayerwd{\wd\nextboxwd}%
- \xdef\lastlayerht{\ht\nextboxht}% % not entirely ok when grid !
- \xdef\lastlayerdp{\dp\nextboxdp}% % not entirely ok when grid !
+ \xdef\lastlayerwd{\the\nextboxwd}%
+ \xdef\lastlayerht{\the\nextboxht}% % not entirely ok when grid !
+ \xdef\lastlayerdp{\the\nextboxdp}% % not entirely ok when grid !
% this code
\doifelse{\layerparameter\c!plaats}\v!grid\donetrue\donefalse
\ifdone
@@ -438,6 +438,58 @@
{\dodoflushlayer0{#2}{#1#2:\realfolio}}
\stopoverlay}}
+% \def\dodoflushlayer#1#2#3%
+% {\ifundefined{\@@layerbox#3}%
+% \ifcase#1\else\writestatus{layer}{unknown layer #3}\fi
+% \else
+% \bgroup
+% \forgetall
+% \offinterlineskip
+% \doifvalue{\??ll#2\c!optie}\v!test\tracelayerstrue
+% \iftracelayers\traceboxplacementtrue\fi
+% \!!doneafalse
+% \!!donebfalse
+% \doifvalue{\??ll#2\c!methode}\v!overlay\!!doneatrue
+% \doifvalue{\??ll#2\c!methode}\v!passend\!!donebtrue
+% \!!donectrue
+% \ifcase#1\else
+% \doifnotvalue{\??ll#2\c!positie}\v!ja
+% {\doifvalue{\??ll#2\c!herhaal}\v!ja\!!donecfalse
+% \doifvalue{\??ll#2\c!status}\v!herhaal\!!donecfalse}% old method
+% \fi
+% \chardef\layerbox\csname\@@layerbox#3\endcsname
+% % we need to copy in order to retain the negative offsets for a next
+% % stage of additions, i.e. llx/lly accumulate in repeat mode and the
+% % compensation is may differ each flush depending on added content
+% \setbox\nextbox \if!!doneb
+% \vbox
+% {\scratchdimen\getboxlly\layerbox
+% \vskip-\scratchdimen
+% \scratchdimen\getboxllx\layerbox
+% \hskip-\scratchdimen
+% \advance\scratchdimen-\wd\layerbox
+% \hsize-\scratchdimen
+% \if!!donec\box\else\copy\fi\layerbox}%
+% \else
+% \if!!donec\box\else\copy\fi\layerbox % sorry for the delay due to copying
+% \fi
+% \iftracelayers \ruledvbox \else \vbox \fi \if!!donea to \overlayheight \fi
+% {\hbox \if!!donea to \overlaywidth \fi
+% {% klopt dit? #3 en niet #2 ?
+% \doifvalue{\??ll#3\realfolio\c!positie}\v!ja
+% {\xypos{lyr:#3:\realfolio}}%
+% \doifoverlayelse{#3}
+% {\box\nextbox}
+% {\startlayoutcomponent{l:#3}{layer #3}\box\nextbox\stoplayoutcomponent}%
+% \hss}%
+% \vss}%
+% \if!!donec
+% \gsetboxllx\layerbox\zeropoint
+% \gsetboxlly\layerbox\zeropoint
+% \fi
+% \egroup
+% \fi}
+
\def\dodoflushlayer#1#2#3%
{\ifundefined{\@@layerbox#3}%
\ifcase#1\else\writestatus{layer}{unknown layer #3}\fi
@@ -445,6 +497,9 @@
\bgroup
\forgetall
\offinterlineskip
+ % needed because we need to handle method
+\executeifdefined{\??ll\??ll\getvalue{\??ll#2\c!preset}}\gobbletwoarguments{#2}{}%
+ %
\doifvalue{\??ll#2\c!optie}\v!test\tracelayerstrue
\iftracelayers\traceboxplacementtrue\fi
\!!doneafalse
@@ -455,12 +510,12 @@
\ifcase#1\else
\doifnotvalue{\??ll#2\c!positie}\v!ja
{\doifvalue{\??ll#2\c!herhaal}\v!ja\!!donecfalse
- \doifvalue{\??ll#2\c!status}\v!herhaal\!!donecfalse}% old method
+ \doifvalue{\??ll#2\c!status}\v!herhaal\!!donecfalse}%
\fi
\chardef\layerbox\csname\@@layerbox#3\endcsname
% we need to copy in order to retain the negative offsets for a next
% stage of additions, i.e. llx/lly accumulate in repeat mode and the
- % compensation is may differ each flush depending on added content
+ % compensation may differ each flush depending on added content
\setbox\nextbox \if!!doneb
\vbox
{\scratchdimen\getboxlly\layerbox
@@ -476,8 +531,7 @@
\iftracelayers \ruledvbox \else \vbox \fi \if!!donea to \overlayheight \fi
{\hbox \if!!donea to \overlaywidth \fi
{% klopt dit? #3 en niet #2 ?
- \doifvalue{\??ll#3\realfolio\c!positie}\v!ja
- {\xypos{lyr:#3:\realfolio}}%
+ \doifvalue{\??ll#3\realfolio\c!positie}\v!ja {\xypos{lyr:#3:\realfolio}}%
\doifoverlayelse{#3}
{\box\nextbox}
{\startlayoutcomponent{l:#3}{layer #3}\box\nextbox\stoplayoutcomponent}%
@@ -508,11 +562,19 @@
\let\placelayer\flushlayer
+% \def\tightlayer[#1]%
+% {\hbox
+% {\def\currentlayer{#1}% todo: left/right
+% \hsize\layerparameter\c!breedte
+% \vsize\layerparameter\c!hoogte
+% \composedlayer{#1}}}
+
\def\tightlayer[#1]%
{\hbox
{\def\currentlayer{#1}% todo: left/right
- \hsize\layerparameter\c!breedte
- \vsize\layerparameter\c!hoogte
+ \setbox\nextbox\emptybox % hoogte/breedte are \wd\nextbox/\ht\nextbox
+ \hsize\layerparameter\c!breedte % \overlaywidth = \hsize
+ \vsize\layerparameter\c!hoogte % \overlaywheight = \vsize
\composedlayer{#1}}}
%D \macros
@@ -695,4 +757,22 @@
\c!xoffset=\!!zeropoint,
\c!yoffset=\!!zeropoint]
+%D Watch out, a redefinition:
+
+\ifx\settextpagecontent\undefined \writestatus\m!systems{error in page-lyr.tex} \wait \fi
+
+\definelayer[OTRTEXT] \setuplayer[OTRTEXT][\c!breedte=\zetbreedte,\c!hoogte=\teksthoogte]
+
+\let\normalsettextpagecontent\settextpagecontent
+
+\def\settextpagecontent#1#2#3% #2 and #3 will disappear
+ {\doifelselayerdata{OTRTEXT}
+ {\setbox#1\hbox to \zetbreedte
+ {\startoverlay
+ {\normalsettextpagecontent{#1}{#2}{#3}\box#1}
+ {\tightlayer[OTRTEXT]}
+ \stopoverlay}%
+ \dp#1\zeropoint}%
+ {\normalsettextpagecontent{#1}{#2}{#3}}}
+
\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/page-mak.tex b/tex/context/base/page-mak.tex
index 6e8793293..03caf2fba 100644
--- a/tex/context/base/page-mak.tex
+++ b/tex/context/base/page-mak.tex
@@ -191,7 +191,6 @@
%D by setting their associated status variables. The
%D connection between them is made by the following macro
-
\def\setupmakeuplayout
{\setupfooter[\c!status=\makeupparameter\c!voetstatus ]%
\setupheader[\c!status=\makeupparameter\c!hoofdstatus]%
diff --git a/tex/context/base/page-set.tex b/tex/context/base/page-set.tex
index 84327dc44..954b7ec6b 100644
--- a/tex/context/base/page-set.tex
+++ b/tex/context/base/page-set.tex
@@ -538,21 +538,47 @@
%\gdef\localcolumnmaxcells{0}% here ?
\global\mofcolumns\nofcolumns} % otherwise problems in finaloutput
+% \def\OTRSETdofinaloutput
+% {\ifdim\ht\OTRfinalpagebox=\teksthoogte
+% % \bgroup \let\OTRSETsetvsize\relax % prevents useless search for gap
+% \ifcase\OTRSETbalancemethod
+% \finaloutput\box\OTRfinalpagebox
+% \else\ifdim\OTRSETbalht>\zeropoint
+% \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
+% {\box\OTRfinalpagebox}%
+% \global\dp\OTRfinalpagebox\strutdepth
+% \box\OTRfinalpagebox
+% \else
+% \finaloutput\box\OTRfinalpagebox
+% \fi \fi
+% \globallet\OTRSETbalht\zeropoint
+% % \egroup
+% \fi}
+
\def\OTRSETdofinaloutput
{\ifdim\ht\OTRfinalpagebox=\teksthoogte
- % \bgroup \let\OTRSETsetvsize\relax % prevents useless search for gap
+ \bgroup % \let\OTRSETsetvsize\relax % prevents useless search for gap
\ifcase\OTRSETbalancemethod
\finaloutput\box\OTRfinalpagebox
\else\ifdim\OTRSETbalht>\zeropoint
- \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
- {\box\OTRfinalpagebox}%
- \global\dp\OTRfinalpagebox\strutdepth
- \box\OTRfinalpagebox
+ % catch a bordercase
+ \scratchdimen\OTRSETbalht
+ \advance\scratchdimen\lineheight\relax
+ \ifdim\scratchdimen>\teksthoogte
+ % full page
+ \finaloutput\box\OTRfinalpagebox
+ \else
+ % same page
+ \global\setbox\OTRfinalpagebox \iftracecolumnset\ruledvbox\else\vbox\fi to \OTRSETbalht
+ {\box\OTRfinalpagebox\vss}%
+ \setlayer[OTRTEXT]{\box\OTRfinalpagebox}%
+ \snaptogrid\vbox{\vskip\OTRSETbalht}% hack
+ \fi
\else
\finaloutput\box\OTRfinalpagebox
\fi \fi
\globallet\OTRSETbalht\zeropoint
- % \egroup
+ \egroup
\fi}
\definesystemvariable {mc}
diff --git a/tex/context/base/page-txt.tex b/tex/context/base/page-txt.tex
index a36dfed78..45ce40343 100644
--- a/tex/context/base/page-txt.tex
+++ b/tex/context/base/page-txt.tex
@@ -187,6 +187,24 @@
\def\placetextlinestrut#1%
{\doifvalue{#1\c!strut}\v!ja{\setstrut\strut}}
+% \def\dosingletexts#1#2#3#4#5#6%
+% {\bgroup
+% \convertargument#6\to\ascii
+% \doifsomething\ascii
+% {\doattributes{#1#2}#3#4%
+% {\placetextlinestrut{#1}% here !
+% %\doifdefinedelse{\??mk\ascii\c!koppeling} % brrr
+% \doifelsemarking\ascii
+% {\dolimitatetexts{#1#2#5}{\haalmarkering[\ascii][\v!eerste]}}
+% {\ConvertConstantAfter\doifelse{\v!paginanummer}{#6}
+% {\@@plaatspaginanummer}
+% {\ConvertConstantAfter\doifelse{\v!datum}{#6}
+% {\currentdate}
+% {% #6{}{}{} -> {} needed for macros that look
+% % ahead, like \uniqueMPgraphic
+% \opeenregel\dolimitatetexts{#1#2#5}{#6{}{}{}}}}}}}%
+% \egroup}
+
\def\dosingletexts#1#2#3#4#5#6%
{\bgroup
\convertargument#6\to\ascii
@@ -196,9 +214,9 @@
%\doifdefinedelse{\??mk\ascii\c!koppeling} % brrr
\doifelsemarking\ascii
{\dolimitatetexts{#1#2#5}{\haalmarkering[\ascii][\v!eerste]}}
- {\ConvertConstantAfter\doifelse{\v!paginanummer}{#6}
- {\@@plaatspaginanummer}
- {\ConvertConstantAfter\doifelse{\v!datum}{#6}
+ {\ConvertConstantAfter\doifelse\v!paginanummer{#6}
+ \@@plaatspaginanummer
+ {\ConvertConstantAfter\doifelse\v!datum{#6}
{\currentdate}
{% #6{}{}{} -> {} needed for macros that look
% ahead, like \uniqueMPgraphic
diff --git a/tex/context/base/prop-ini.tex b/tex/context/base/prop-ini.tex
index 49f4e48de..19ad6b2b8 100644
--- a/tex/context/base/prop-ini.tex
+++ b/tex/context/base/prop-ini.tex
@@ -76,6 +76,31 @@
\csname\e!start\currentproperty\endcsname}
{\csname\e!stop \currentproperty\endcsname}}
+% The next alternative provides optional non-grouping:
+
+\def\dodefineproperty[#1][#2][#3]% todo : global def
+ {\ifundefined{\??py#1\c!titel}%
+ \getgparameters[\??py#1][\c!globaal=\v!nee,\c!titel=#1,\c!type=#2,#3]% global ! ! ! !
+ \doifelsevalue{\??py#1\c!globaal}\v!ja
+ {\setgvalue{\s!check#1}{\docheckproperty{#1}}%
+ \setgvalue{\e!start#1}{\dostartproperty{#1}}%
+ \setgvalue{\e!stop #1}{\dostopproperty {#1}}}%
+ {\setgvalue{\s!check#1}{\docheckproperty{#1}}%
+ \setgvalue{\e!start#1}{\begingroup\dostartproperty{#1}}%
+ \setgvalue{\e!stop #1}{\dostopproperty {#1}\endgroup}}%
+ \fi}
+
+\unexpanded\def\startproperty[#1]%
+ {\globalpushmacro\currentproperty
+ \edef\currentproperty{#1}%
+ \csname\e!start\currentproperty\endcsname}
+
+\unexpanded\def\stopproperty
+ {\csname\e!stop \currentproperty\endcsname
+ \globalpopmacro\currentproperty}
+
+% % % % % old % % % % %
+
% grouped
% \def\restartproperty#1%
diff --git a/tex/context/base/s-abr-01.tex b/tex/context/base/s-abr-01.tex
index 34cfa06df..8d567f78b 100644
--- a/tex/context/base/s-abr-01.tex
+++ b/tex/context/base/s-abr-01.tex
@@ -20,6 +20,8 @@
\protect
\logo [ACROBAT] {Acro\-bat}
+\logo [AFM] {afm}
+\logo [ALEPH] {Aleph}
\logo [ALGOL] {ALGOL}
\logo [AMSLATEX] {\AmSLaTeX}
\logo [AMSTEX] {\AmSTeX}
@@ -28,6 +30,7 @@
\logo [ASCIITEX] {ascii\TeX}
\logo [ASCII] {ascii}
\logo [BIBTEX] {bib\TeX}
+\logo [BLUESKY] {BlueSky}
\logo [BSD] {bsd}
\logo [CDROM] {cdrom}
\logo [CD] {cd}
@@ -37,11 +40,13 @@
\logo [CONTEXT] {\ConTeXt}
\logo [CTAN] {ctan}
\logo [CWEB] {cweb}
+\logo [DANTE] {Dante}
\logo [DISTILLER] {distiller}
\logo [DSC] {dsc}
\logo [DTD] {dtd}
\logo [DTK] {dtk}
\logo [DTP] {dtp}
+\logo [DVD] {dvd}
\logo [DVIPSONE] {dvipsone}
\logo [DVIPDFM] {dvipdfm}
\logo [DVIPDFMX] {dvipdfmx}
@@ -53,6 +58,7 @@
\logo [EIFFEL] {Eiffel}
\logo [EMACS] {emacs}
\logo [EMTEX] {em\TeX}
+\logo [ENCTEX] {enc\TeX}
\logo [EPS] {eps}
\logo [EXAMPLEX] {examplex}
\logo [EXAMPLET] {examplet}
@@ -77,16 +83,20 @@
\logo [GNU] {gnu}
\logo [GS] {Ghost\-Script}
\logo [GUST] {Gust}
+\logo [GWTEX] {gw\TeX}
\logo [HTTP] {http}
\logo [HTML] {html}
\logo [IBM] {ibm}
\logo [IMAGEMAGICK]{ImageMagick}
\logo [INRSTEX] {inrs\TeX}
\logo [IRCNET] {IRCnet}
+\logo [ISO] {iso}
\logo [JAVASCRIPT] {Java\-Script}
\logo [JAVA] {Java}
\logo [JPEG] {jpeg}
\logo [JPG] {jpg}
+\logo [KPSE] {kpse}
+\logo [KPSEWHICH] {kpsewhich}
\logo [LAMSTEX] {\LamSTeX}
\logo [LATEXTE] {\LaTeX2e}
\logo [LATEXTN] {\LaTeX2.09}
@@ -112,7 +122,8 @@
\logo [OMEGA] {Omega}
\logo [OPI] {opi}
\logo [PASCAL] {Pascal}
-\logo [PDFETEX] {pdf-\eTeX}
+\logo [PCTEX] {pc\TeX}
+\logo [PDFETEX] {pdfe\TeX}
\logo [PDFTEX] {pdf\TeX}
\logo [PDFTOPS] {pdftops}
\logo [PDF] {pdf}
@@ -186,6 +197,7 @@
\logo [XINDY] {Xindy}
\logo [XML] {xml}
\logo [XFDF] {xfdf}
+\logo [XPDFETEX] {xpdfe\TeX}
\logo [XSLT] {xslt}
\logo [XSL] {xsl}
\logo [YandY] {y\&y}
diff --git a/tex/context/base/s-pre-00.tex b/tex/context/base/s-pre-00.tex
index 8266a5929..3866514b8 100644
--- a/tex/context/base/s-pre-00.tex
+++ b/tex/context/base/s-pre-00.tex
@@ -8,18 +8,18 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D This module provides some non core functionality that can
-%D be used in the presentations styles. This module contains
-%D experimental macros.
-%D
+%D This module provides some non core functionality that can
+%D be used in the presentations styles. This module contains
+%D experimental macros.
+%D
%D The presentation environments are independent of each other.
%D Although they have much in common, and in many cases can be
%D exchanged, the common components are not collected in this
%D file. That way they can serve as examples of style
-%D definitions.
+%D definitions.
\unprotect
@@ -32,7 +32,7 @@
\defineframedtext
[presentationshield]
-\setupframedtexts
+\setupframedtexts
[presentationshield]
[\c!achtergrond=\v!kleur,
\c!achtergrondkleur=StepColor,
@@ -53,11 +53,11 @@
\def\dopresentationstep#1% not ok yet
{\global\setbox\presentationstack=\vbox
- {\ifnum\presentationcounter=0
+ {\ifnum\presentationcounter=0
\global\presentationheight=\!!zeropoint
\fi
\ifcase#1\relax
- \scratchdimen=\pagetotal
+ \scratchdimen=\pagetotal
\else
\scratchdimen=\textheight
\fi
@@ -76,7 +76,7 @@
[presentation]
[\c!breedte=\v!passend,\c!hoogte=\v!passend,\c!offset=\v!overlay,
\c!strut=\v!nee,\c!kader=\v!uit,\c!optie=\v!alleenleesbaar]
- \definesymbol
+ \definesymbol
[\presentationtag]
[\presentationshade]
\def\presentationshade%
@@ -85,118 +85,118 @@
\definefield[\presentationtag][check][presentation][\presentationtag,\v!geen][\presentationtag]
\fitfield[\presentationtag]}}
-\startJSpreamble {presentation} used later
- var presentation = new Array() ;
+\startJSpreamble {presentation} used later
+ var presentation = new Array() ;
for (i=1;i<=\lastpage;i++)
- { presentation[i] = 0 }
- this.dirty = false ;
- function NextPresentation (pagenumber)
- { % ++presentation[pagenumber] ;
- presentation[pagenumber] = presentation[pagenumber] + 1 ;
+ { presentation[i] = 0 }
+ this.dirty = false ;
+ function NextPresentation (pagenumber)
+ { % ++presentation[pagenumber] ;
+ presentation[pagenumber] = presentation[pagenumber] + 1 ;
var dummy = 100*pagenumber + presentation[pagenumber] ;
- var v = this.getField("presentation:"+dummy) ;
- if (v)
- { v.hidden = true }
- % { v.display = display.hidden }
+ var v = this.getField("presentation:"+dummy) ;
+ if (v)
+ { v.hidden = true }
+ % { v.display = display.hidden }
else
{ ++pagenumber ;
- if (pagenumber<=\lastpage)
- { presentation[pagenumber] = presentation[pagenumber] + 1 ;
+ if (pagenumber<=\lastpage)
+ { presentation[pagenumber] = presentation[pagenumber] + 1 ;
dummy = 100*(pagenumber) + presentation[pagenumber] ;
- v = this.getField("presentation:"+dummy) ;
- if (v) { v.hidden = true }
- % if (v) { v.display = display.hidden }
+ v = this.getField("presentation:"+dummy) ;
+ if (v) { v.hidden = true }
+ % if (v) { v.display = display.hidden }
++this.pageNum } }
- this.dirty = false }
+ this.dirty = false }
\stopJSpreamble
\definereference[NextStep][JS(NextPresentation{\realfolio})]
-%D \macros
+%D \macros
%D {presentationstep}
%D
%D The macro \type {\presentationstep} provides a basic slide
-%D show functionality. It sort of records pieces of the page
-%D that will show up stepwise. It can be used like:
+%D show functionality. It sort of records pieces of the page
+%D that will show up stepwise. It can be used like:
%D
%D \starttypen
%D \startitemize
-%D \item eerste
+%D \item eerste
%D \item tweede
%D \stopitemize
-%D
-%D \presentationstep
-%D
+%D
+%D \presentationstep
+%D
%D \startformula
%D ax^2+bx+c
%D \stopformula
-%D
+%D
%D \presentationstep
-%D \stoptypen
-%D
+%D \stoptypen
+%D
%D When the document is opened, the two text fragments are
%D covered by a shield. Each page has its own shield stack. The
%D logical reference \type {NextStep} can be used to hide the
-%D shield.
+%D shield.
%D
-%D \starttypen
+%D \starttypen
%D \setupfootertexts[{\button{Show Up}[NextStep]}]
-%D \stoptypen
+%D \stoptypen
%D
-%D In case of presentation style 2, you can say:
+%D In case of presentation style 2, you can say:
%D
-%D \starttypen
+%D \starttypen
%D \definereference[Whatever][JS(NextPresentation{\realfolio})]
-%D \stoptypen
+%D \stoptypen
%D
-%D Depending of the viewer, you need to reset the fields at
+%D Depending of the viewer, you need to reset the fields at
%D startup:
%D
-%D \starttypen
+%D \starttypen
%D \setupinteraction[openaction=ResetForm]
-%D \stoptypen
+%D \stoptypen
%D
%D Fixed spacing give you the best results:
%D
-%D \starttypen
-%D \setupwhitespace[fixed]
+%D \starttypen
+%D \setupwhitespace[fixed]
%D \setupblank[fixed]
-%D \stoptypen
+%D \stoptypen
%D
%D Sometimes you need to set the color of the background, as
-%D with style 2:
+%D with style 2:
%D
-%D \starttypen
+%D \starttypen
%D \definecolor[StepColor][Page]
-%D \stoptypen
+%D \stoptypen
%D
-%D Special effects can be reached with:
+%D Special effects can be reached with:
%D
-%D \starttypen
-%D \setupframedtexts
+%D \starttypen
+%D \setupframedtexts
%D [presentationshield]
%D [background=color,backgroundcolor=red]
-%D \stoptypen
+%D \stoptypen
%D
-%D There is also:
+%D There is also:
%D
%D \starttypen
%D \autopresentationsteptrue
%D \stoptypen
%D
-%D One can enable this feature as \type {step} mode.
+%D One can enable this feature as \type {step} mode.
-\newif\ifautopresentationstep
+\newif\ifautopresentationstep
\appendtoks \ifautopresentationstep\presentationstep\fi \to \everypar
\doifmode{step} {\enablepresentationstep}
\doifmode{autostep}{\autopresentationsteptrue\enablepresentationstep}
-%D When in \type {comment} mode, embedded page comments are
-%D processed and put below the page. The default space of
-%D 5cm should be adequate but can of course be changed.
+%D When in \type {comment} mode, embedded page comments are
+%D processed and put below the page. The default space of
+%D 5cm should be adequate but can of course be changed.
\doifmode{comment}{\setuppagecomment[state=start,location=bottom]}
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/s-pre-60.tex b/tex/context/base/s-pre-60.tex
new file mode 100644
index 000000000..44fdb7fc0
--- /dev/null
+++ b/tex/context/base/s-pre-60.tex
@@ -0,0 +1,87 @@
+%D \module
+%D [ file=s-pre-60,
+%D version=2004.03.15,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 60,
+%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.
+
+\newcounter\StepCounter
+\newcounter\StepMaximum
+
+\useJSscripts[stp]
+
+\startsetups[set-stepper]
+
+ \ifnum\getvariable{stepper}{nofsteps}>\StepMaximum
+
+ \dostepwiserecurse {\numexpr(\StepMaximum+1)} {\getvariable{stepper}{nofsteps}} {1}
+ {\expanded{\defineproperty[step:\recurselevel][layer][state=stop,global=yes]}}
+
+ \xdef\StepMaximum{\getvariable{stepper}{nofsteps}}
+
+ \fi
+
+\stopsetups
+
+\setvariables
+ [stepper]
+ [set=\setups{set-stepper},
+ nofsteps=50]
+
+\defineproperty[step:busy][layer][state=start]
+
+\definereference [SetupStepper] [JS(SetupStepper{step,\StepMaximum})]
+\definereference [ResetStepper] [JS(ResetStepper)]
+\definereference [CheckStepper] [JS(CheckStepper{\StepCounter})]
+\definereference [InvokeStepper] [JS(InvokeStepper)]
+
+\def\ResetStep {\doglobal\newcounter\StepCounter}
+\def\NextStep {\doglobal\increment \StepCounter}
+\def\PrevStep {\doglobal\decrement \StepCounter}
+
+% todo: roll back blank
+
+\def\StartStep
+ {\ifvmode
+ \scratchskip\lastskip
+ \vskip-\scratchskip
+ \startproperty[step:\StepCounter]%
+ \vskip\scratchskip
+ \else
+ \startproperty[step:\StepCounter]%
+ \fi
+ \ignorespaces}
+
+\def\StopStep
+ {\removeunwantedspaces
+ \stopproperty}
+
+\def\StartSteps{\ResetStep\NextStep\StartStep}
+\def\StopSteps {\StopStep\PrevStep}
+\def\FlushStep {\StopStep\NextStep\StartStep}
+
+\appendtoks
+ \ResetStep
+\to \everyaftershipout
+
+\def\StartBusy{\startproperty[step:busy]\ignorespaces}
+\def\StopBusy {\removeunwantedspaces\stopproperty}
+
+\setupinteraction
+ [openaction=SetupStepper,
+ openpageaction=CheckStepper,
+ closepageaction=ResetStepper]
+
+\defineoverlay[invoke][\overlaybutton{InvokeStepper}]
+
+\setupbackgrounds
+ [text]
+ [background=invoke]
+
+\endinput \ No newline at end of file
diff --git a/tex/context/base/s-pre-61.tex b/tex/context/base/s-pre-61.tex
new file mode 100644
index 000000000..9ae4abf09
--- /dev/null
+++ b/tex/context/base/s-pre-61.tex
@@ -0,0 +1,222 @@
+%D \module
+%D [ file=s-pre-61,
+%D version=2004.03.15,
+%D title=\CONTEXT\ Style File,
+%D subtitle=Presentation Environment 61,
+%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.
+
+\usemodule[pre-60]
+
+\usetypescriptfile[type-ghz]
+
+\definetypeface[mainface][ss][sans][optima-nova][default][encoding=\defaultencoding]
+
+\setupbodyfont[mainface,ss,22pt]
+
+\setuppapersize
+ [S6][S6]
+
+% \setuppapersize
+% [SW][SW]
+
+\setuplayout
+ [topspace=10pt,
+ header=40pt,
+ headerdistance=20pt,
+ height=middle,
+ footerdistance=20pt,
+ footer=0pt,
+ bottomdistance=10pt,
+ bottom=20pt,
+ bottomspace=40pt,
+ backspace=30pt,
+ width=middle]
+
+\setupinteraction
+ [state=start,
+ click=off,
+ menu=on]
+
+\setupinteractionscreen
+ [option=max]
+
+\setupinteractionmenu
+ [bottom]
+ [color=maincolor,
+ contrastcolor=maincolor,
+ style=\tfa, % acceptable
+ left=\hfill,
+ middle=,
+ right=,
+ height=\bottomheight,
+ width=2\bottomheight,
+ offset=overlay,
+ frame=off]
+
+\startinteractionmenu[bottom]
+ \but [firstpage] \symbol[firstpage] \\
+ \but [previouspage] \symbol[previouspage] \\
+ \but [InvokeStepper] \StartBusy\symbol[PauseRendering]\StopBusy \\
+ \but [nextpage] \symbol[nextpage] \\
+ \but [lastpage] \symbol[lastpage] \\
+ \but [CloseDocument] \symbol[CloseDocument] \\
+\stopinteractionmenu
+
+% maybe in colo-sjk : \setupcolor[sjk]
+
+\definecolor [dark] [s=.4]
+\definecolor [bright] [s=.9]
+
+\definecolor [red] [r=.4,g=.2,b=.2]
+\definecolor [green] [r=.2,g=.4,b=.2]
+\definecolor [blue] [r=.2,g=.2,b=.4]
+
+\definecolor [cyan] [r=.2,g=.4,b=.4]
+\definecolor [magenta][r=.4,g=.2,b=.4]
+\definecolor [yellow] [r=.4,g=.4,b=.2]
+
+\definecolor [pagecolor] [dark]
+\definecolor [maincolor] [bright]
+\definecolor [textcolor] [red]
+
+\setupcolors
+ [state=start,
+ textcolor=maincolor]
+
+\setupbackgrounds
+ [page]
+ [background=page,
+ backgroundcolor=textcolor]
+
+\defineoverlay[page][\uniqueMPgraphic{page-\ifcase\realpageno\or one\else plus\fi}]
+
+\startuniqueMPgraphic{page-one}
+ StartPage ;
+ fill Page
+ enlarged 4pt
+ withcolor \MPcolor{pagecolor} ;
+ fill Field[Text][Text]
+ topenlarged (TopSpace +4pt)
+ leftenlarged (BackSpace+4pt)
+ rightenlarged (CutSpace +4pt)
+ withcolor OverlayColor ;
+ StopPage ;
+\stopuniqueMPgraphic
+
+\startuniqueMPgraphic{page-plus}
+ StartPage ;
+ fill Page
+ enlarged 4pt
+ withcolor \MPcolor{pagecolor} ;
+ fill Field[Text][Text]
+ leftenlarged (BackSpace+4pt)
+ rightenlarged (CutSpace+4pt)
+ withcolor OverlayColor ;
+ StopPage ;
+\stopuniqueMPgraphic
+
+\NormalizeFontHeight \HeadFont {\setstrut\strut\quad} {\headerheight} {SansBold}
+\NormalizeFontHeight \TitleFont {\setstrut\strut\quad} {2\headerheight} {SansBold}
+
+\setuphead
+ [chapter]
+ [placehead=empty,
+ after={\blank[big]},
+ color=maincolor,
+ placenumber=no,
+ style=\HeadFont]
+
+\setupheadertexts
+ [\doiftextelse{\placeheadtext[Topic]}
+ {\placeheadtext[Topic]}
+ {\placeheadtext[Nopic]}]
+ []
+
+\setuppagenumbering
+ [location=]
+
+\definesymbol[emdash][\emdash] \setupitemize[each][packed][symbol=emdash]
+
+\setupalign[broad,right]
+
+\def\TitlePage#1%
+ {\startstandardmakeup[headerstate=high]
+ \def\\{\endgraf\quad}\TitleFont\setstrut\setupinterlinespace\vfil#1\vfil\vfil
+ \stopstandardmakeup}
+
+\definehead[Topic][chapter]
+\definehead[Nopic][title]
+
+\def\Topics#1%
+ {\Nopic[topics]{#1}
+ \startcolumns
+ \placelist[Topic]
+ \stopcolumns}
+
+\setuplist
+ [Topic]
+ [alternative=f,
+ color=maincolor,
+ contrastcolor=maincolor,
+ criterium=all]
+
+\defineoverlay[topics][\overlaybutton{topics}]
+
+\setupbackgrounds
+ [bottom] [text]
+ [background=topics]
+
+\doifnotmode{demo}{\endinput}
+
+\TitlePage{Stepwise\\Refinement}
+
+\Topics{Topics}
+
+\Topic{Female Artists}
+
+\StartSteps
+
+\startitemize
+\item Tori Amos \FlushStep
+\item Kate Bush \FlushStep
+\item Heather Nova \FlushStep
+\item Alanis Morissette \FlushStep
+\item Suzanne Vega \FlushStep
+\stopitemize
+
+\StopSteps
+
+\Topic{Male Composers}
+
+\StartSteps
+
+\startitemize
+\item John Adams \FlushStep
+\item Steve Reich \FlushStep
+\item Louis Andriessen \FlushStep
+\item Olivier Messiaen \FlushStep
+\stopitemize
+
+\StopSteps
+
+\Topic{And Some More}
+
+\StartSteps
+
+\startitemize
+\item Mark Hollis \FlushStep
+\item Roger Waters \FlushStep
+\item David Gilmore \FlushStep
+\item Peter Gabriel \FlushStep
+\item Randy Newman \FlushStep
+\stopitemize
+
+\StopSteps
+
+\stoptext \ No newline at end of file
diff --git a/tex/context/base/setupb.tex b/tex/context/base/setupb.tex
index 279a07451..36877f432 100644
--- a/tex/context/base/setupb.tex
+++ b/tex/context/base/setupb.tex
@@ -1334,7 +1334,7 @@
[\v!ruim]
\variable
[\c!breedte]
- [\v!passend,\v!ruim,\v!vast,\c!dimension!]
+ [\v!passend,\v!ruim,\v!vast,\v!lokaal,\c!dimension!]
[\v!ruim]
\variable
[\c!offset]
@@ -1350,7 +1350,7 @@
[\v!geen]
\variable
[\c!strut]
- [\v!ja,\v!nee]
+ [\v!ja,\v!nee,\v!globaal,\v!lokaal]
[\v!ja]
\variable
[\c!uitlijnen]
diff --git a/tex/context/base/spec-def.tex b/tex/context/base/spec-def.tex
index cf9f64724..9fc3b76a5 100644
--- a/tex/context/base/spec-def.tex
+++ b/tex/context/base/spec-def.tex
@@ -918,6 +918,13 @@
\installspecial[\doinsertrenderingobject] [or] [4]
\installspecial[\doinsertrenderingobject] [or] [4]
+%D From now on, mapfile loading is also a special; we assume the
+%D more or less standard dvips syntax.
+
+\installspecial[\doresetmapfilelist] [and] [0]
+\installspecial[\doloadmapfile] [and] [2] % + - = | filename
+\installspecial[\doloadmapline] [and] [2] % + - = | fileline
+
%D We define a couple of backends:
\defineoutput [dvipsone] [dvi,ps,yy]
diff --git a/tex/context/base/spec-dpx.tex b/tex/context/base/spec-dpx.tex
index bce7d6cb1..61156e42c 100644
--- a/tex/context/base/spec-dpx.tex
+++ b/tex/context/base/spec-dpx.tex
@@ -8,7 +8,7 @@
%D copyright={Jin-Hwan Cho \& Hans Hagen}]
%C
%C DVIPDFMx is an eXtended version of the DVIPDFM, a DVI to PDF
-%C translator, still under construction by Jin-Hwan Cho and
+%C translator, still under construction by Jin-Hwan Cho and
%C Shunsaku Hirata.
%C
%C It supports multi-byte character encodings and large character
@@ -17,7 +17,7 @@
%C annotations with Chinese, Japanese, Korean characters, etc.
%C
%C DVIPDFMx (and information) can be downloaded from:
-%C
+%C
%C http://project.ktug.or.kr/dvipdfmx/
\unprotect
@@ -117,7 +117,7 @@
%D \macros
%D {doinsertsoundtrack}
%D
-%D Sounds are supported too.
+%D Sounds are supported too.
\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
@@ -131,7 +131,7 @@
%D implementation does not differ that much from the one
%D implemented in the \POSTSCRIPT\ driver.
-\def\doPDFovalbox#1#2#3#4#5#6#7% todo: \scratchdimen/\scatchbox
+\def\doPDFovalbox#1#2#3#4#5#6#7% todo: \scratchdimen/\scatchbox
{\bgroup
\dimen0=#4\divide\dimen0 2
\doPDFovalcalc{0pt}{+\dimen0}\xmin
@@ -392,11 +392,11 @@
\newif\ifsharePDFactions \sharePDFactionsfalse
\def\dodoPDFaction#1#2#3#4%
- {\ifcollectreferenceactions
+ {\ifcollectreferenceactions
\xdef\lastPDFaction{#4}%
\else
\bgroup
- % this is yet untested
+ % this is yet untested
%\ifsharePDFactions
% \ifcase\similarreference\relax
% \xdef\lastPDFaction{<<#4>>}%
@@ -405,7 +405,7 @@
% \special{pdf: object @PDF::sim:\the\nofPDFsimilar\space<<#4>>}%
% \xdef\lastPDFaction{@PDF::sim:\the\nofPDFsimilar}%
% \else
- % % leave \lastPDFaction untouched
+ % % leave \lastPDFaction untouched
% \fi
%\else
\xdef\lastPDFaction{<<#4>>}%
@@ -509,7 +509,7 @@
%D Done.
% %D 2. Modified codes from \type{spec-fdf}
-%
+%
% \definespecial\dostartgraphicgroup{\special{pdf: literal direct q}}
% \definespecial\dostopgraphicgroup {\special{pdf: literal direct Q}}
@@ -519,7 +519,7 @@
%D {dostartclipping,dostopclipping}
%D
%D Clipping in \PDFTEX\ is rather trivial. We can even hook
-%D in \METAPOST\ without problems.
+%D in \METAPOST\ without problems.
\definespecial\dostartclipping#1#2#3%
{\PointsToBigPoints{#2}\width
@@ -588,4 +588,4 @@
\stopspecials
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index 1e1a6ec52..ac5151e99 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -610,6 +610,17 @@
\def\PDFgotonewwindow{\ifgotonewwindow\space/NewWindow true \fi}
+% optimization in tpd driver
+%
+% \edef\PDFdestination{(page:\the\scratchcounter)}%
+%
+% ==>
+%
+% \advance\scratchcounter 1
+% \edef\PDFdestination{[\pdfpageref \scratchcounter\space 0 R\space\PDFpageviewwrd]}%
+%
+% \doPDFgetpagedestination#1#2% pagenumber macro % % fuzzy hack
+
\def\doPDFstartgotorealpage#1#2#3#4#5% watch the R append trick
{\bgroup
\doifelsenothing{#3}% #1 = url
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index 47c887acf..bc8abcaa8 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -74,6 +74,11 @@
\writestatus{\m!systems}{please update your pdfTeX binaries}
\fi
+\ifnum\pdftexversion>19
+ \pdfhorigin=1 true in
+ \pdfvorigin=1 true in
+\fi
+
%D We default to 300 dots per inch image resolution.
\ifx\pdfimageresolution\undefined
@@ -171,6 +176,13 @@
\let\PDFcode\pdfliteral
%D \macros
+%D {everyPDFximage}
+%D
+%D This token register is flushed before an ximage is loaded.
+
+\newevery \everyPDFximage \relax
+
+%D \macros
%D {dosetuppaper}
%D
%D If we don't set the paper size, \PDFTEX\ will certainly do
@@ -181,6 +193,20 @@
\global\pdfpageheight#3\relax}
%D \macros
+%D {doloadmapfile,doloadmapline,doresetmapfilelist}
+
+\ifx\pdfmapfile\undefined \let\pdfmapfile\gobbletwoarguments \fi
+\ifx\pdfmapline\undefined \let\pdfmapline\gobbletwoarguments \fi
+
+\definespecial\doresetmapfilelist{\pdfmapfile{original-empty.map}}
+\definespecial\doloadmapfile #1#2{\pdfmapfile{#1#2}}
+\definespecial\doloadmapline #1#2{\pdfmapline{#1#2}}
+
+%D nasty but needed
+
+\appendtoksonce \loadallfontmapfiles \to \everyPDFximage
+
+%D \macros
%D {doinsertfile,dogetnofinsertpages}
%D
%D Graphics are not part of \TEX\ and therefore not part of the
@@ -282,6 +308,7 @@
\def\handlepdfimage#1#2#3#4#5#6#7#8#9%
{\bgroup
+ \the\everyPDFximage
\doifvalidpdfimagefileelse{#1}
{\checkpdfimagepagenumber{#9}%
\immediate\pdfximage
@@ -365,6 +392,7 @@
\fi\fi}
{\donefalse}%
\ifdone
+ \the\everyPDFximage
\checkpdfimagepagenumber{#3}%
\checkpdfimageattributes
\global\setbox\foundexternalfigure\vbox
@@ -1127,11 +1155,19 @@
% \def\doPDFgetobjectpage #1#2#3{..}
% \def\doPDFgetobjectpagereference#1#2#3{..}
-\def\doPDFgetpagereference % number macro
- {\installprogram{texutil --filter \jobname}%
- \gdef\doPDFgetpagereference##1% ##2
- {\doPDFgetobjectreference{PDFP}{\number##1}}% {##2}
- \doPDFgetpagereference}
+\ifx\pdfpageref\undefined
+
+ \def\doPDFgetpagereference % number macro
+ {\installprogram{texutil --filter \jobname}%
+ \gdef\doPDFgetpagereference##1{\doPDFgetobjectreference{PDFP}{\number##1}}% {##2}
+ \doPDFgetpagereference}
+
+\else
+
+ \def\doPDFgetpagereference#1#2% number macro
+ {\edef#2{\pdfpageref#1\space\space0 R}}
+
+\fi
%D \macros
%D {initializePDFnegative}
diff --git a/tex/context/base/supp-emp.tex b/tex/context/base/supp-emp.tex
index fd9f473c9..bd0736308 100644
--- a/tex/context/base/supp-emp.tex
+++ b/tex/context/base/supp-emp.tex
@@ -214,7 +214,7 @@
%D nothing happens since the \type {\csname...} will expand to
%D \type {\relax}.
-\def\EMsetcounters%
+\def\EMsetcounters
{\count0=0 \count2=0
\csname EM:\the\EMcounter\endcsname}
@@ -331,9 +331,16 @@
%D As a bonus, I will now provide a few macros that will make
%D this mechanism transparant to \DVI\ as well as \PDF\
-%D output. We will use \type {\pdfoutput} as trigger.
+%D output. We will use \type {\pdfiteral} as trigger.
+
+\ifx\pdfliteral\undefined
+ \def\EMpdfordvi#1#2{#2}
+\else\ifx\pdfoutput\undefined
+ \def\EMpdfordvi#1#2{#2}
+\else
+ \def\EMpdfordvi#1#2{\ifcase\pdfoutput#2\else#1\fi}
+\fi\fi
-\ifx\pdfoutput\undefined \chardef\pdfoutput=0 \fi
%D We save some of the macros we defined previously:
@@ -342,11 +349,11 @@
%D We now redefine them to support \DVI\ and \PDF.
-\def\EMmoveto{\ifcase\pdfoutput\special{em:moveto}\else\pdfEMmoveto\fi}
-\def\EMlineto{\ifcase\pdfoutput\special{em:lineto}\else\pdfEMlineto\fi}
+\def\EMmoveto{\EMpdfordvi\pdfEMmoveto{\special{em:moveto}}}
+\def\EMlineto{\EMpdfordvi\pdfEMlineto{\special{em:lineto}}}
-\def\startEMspecials{\ifcase\pdfoutput\else\pdfstartEMspecials\fi}
-\def\stopEMspecials {\ifcase\pdfoutput\else\pdfstopEMspecials \fi}
+\def\startEMspecials{\EMpdfordvi\pdfstartEMspecials\relax}
+\def\stopEMspecials {\EMpdfordvi\pdfstopEMspecials \relax}
%D If there is any real demand for this in \CONTEXT, I will
%D hook these macros in the special drivers, so that their
@@ -365,22 +372,19 @@
\dimen0=#1\relax
\count0=\dimen0
\divide\count0 65536
- \ifcase\pdfoutput
- \special{em:linewidth \the\dimen0}%
- \fi
+ \pdfordvi\relax{\special{em:linewidth \the\dimen0}}%
\xdef\EMlinewd{\the\count0}%
\egroup}
%D You may wonder to what extent positional tracking is
%D \PDFTEX\ specific. In \CONTEXT, we also support position
%D tracking in \DVI\ by using specials and analyzing the \DVI\
-%D file afterwards using a \PERL\ script created by Taco
-%D Hoekwater. Since many of the advanced \TEX\ features depend
-%D on some kind of back||end, we don't consider it to be a
-%D disadvantage. Of course, the \PDFTEX\ way is not only
-%D cleaner, but also faster. It was more out of curiosity than
-%D out of need that we provided the \DVI\ methods as well.
-%D Also, it is always good to have more roads to reach the same
-%D goal.
-
-\endinput
+%D file afterwards using \DVIPOS. Since many of the advanced
+%D \TEX\ features depend on some kind of back||end, we don't
+%D consider it to be a disadvantage. Of course, the \PDFTEX\
+%D way is not only cleaner, but also faster. It was more out
+%D of curiosity than out of need that we provided the \DVI\
+%D methods as well. Also, it is always good to have more roads
+%D to reach the same goal.
+
+\endinput \ No newline at end of file
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index 8d7655f06..c2da977dd 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -182,11 +182,13 @@
\catcode`\/=\@@active
\catcode`\:=\@@active
+\catcode`\~=\@@active
\gdef\sanitizefilename#1\to#2%
{\bgroup
\edef/{\string/}%
\edef:{\string:}%
+ \edef~{\string~}%
\expanded{\xdef\noexpand\sanitizedfilename{#1}}%
\egroup
\let#2\sanitizedfilename}
@@ -288,7 +290,12 @@
% \fi
% \next}
-\newconditional\trackfilenames \settrue\trackfilenames
+\newconditional\trackfilenames
+
+% We need to postpone loading, else we got frozen type-* files and so when
+% a format is generated on a source path.
+
+\appendtoks \settrue\trackfilenames \to \everyjob
\let\trackedfilename\empty
@@ -296,7 +303,7 @@
{\sanitizefilename#2\to\readfilename
\let\trackedfilename\readfilename
\ifconditional\trackfilenames
- \ifundefined{fn..\trackedfilename}\donetrue\else\donefalse\fi
+ \doifundefinedelse{fn..\trackedfilename}\donetrue\donefalse
\else
\donetrue
\fi
diff --git a/tex/context/base/supp-mis.tex b/tex/context/base/supp-mis.tex
index 2462140ba..8c3eec0c8 100644
--- a/tex/context/base/supp-mis.tex
+++ b/tex/context/base/supp-mis.tex
@@ -17,8 +17,6 @@
\ifx \undefined \writestatus \else \expandafter \endinput \fi
-\ifx \undefined \pdfoutput \chardef\pdfoutput=0 \fi
-
%D Because \LATEX\ has no safe package loading mechanism, we
%D need to take care of possible interference.
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 91b6a9e03..80ff1fd6f 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -512,6 +512,36 @@
% \globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
% \globallet\stopwritingMPgraphic=\dostopwritingMPgraphic}
+% \def\startwritingMPgraphic
+% {\blabelgroup
+% \global\advance\nofMPgraphics 1
+% \ifMPrun \else
+% \allocateMPslot\currentMPgraphic
+% \fi
+% \enableincludeMPgraphics
+% \xdef\MPgraphic{\the\currentMPgraphic}%
+% \the\everyMPgraphic
+% \ifrunMPgraphics
+% \openMPgraphicfile1{runtime}%
+% % no reset here !
+% \theMPinclusions
+% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+% \else
+% \openMPgraphicfile0{collected}%
+% % reset here ! global added (due to adding \blabelgroup)
+% \theMPinclusions
+% \global\let\theMPinclusions\relax
+% \fi
+% \flushMPTEXgraphic
+% \ifMPrun \else
+% \immediate\write\MPwrite{let mprunend = end ;}%
+% \immediate\write\MPwrite{beginfig(\the\currentMPgraphic);}%
+% \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+% \fi
+% \globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
+% \globallet\stopwritingMPgraphic=\dostopwritingMPgraphic}
+
+
\def\startwritingMPgraphic
{\blabelgroup
\global\advance\nofMPgraphics 1
@@ -525,7 +555,7 @@
\openMPgraphicfile1{runtime}%
% no reset here !
\theMPinclusions
-\@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+ \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
\else
\openMPgraphicfile0{collected}%
% reset here ! global added (due to adding \blabelgroup)
@@ -536,7 +566,9 @@
\ifMPrun \else
\immediate\write\MPwrite{let mprunend = end ;}%
\immediate\write\MPwrite{beginfig(\the\currentMPgraphic);}%
-\@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+ \ifrunMPgraphics \else
+ \@EA\expanded\@EA{\@EA\writeMPgraphic\@EA{\the\MPinitializations;}}%
+ \fi
\fi
\globallet\flushMPgraphics\closeMPgraphicfiles % \dodostopwritingMPgraphic
\globallet\stopwritingMPgraphic=\dostopwritingMPgraphic}
@@ -1667,7 +1699,7 @@
%D with.
%D
%D This is why we provide was to use a dedicate range if
-%D numbers for fixed graphcis. Such graphics will not en dup
+%D numbers for fixed graphcs. Such graphics will not en dup
%D in the text flow (at least their dimensions don't
%D contribute to the main vertical list, and thereby they
%D cannot interfere. We use a rather safe maximum of 4000
@@ -1680,7 +1712,11 @@
\def\allocateMPslot#1%
{\ifrunMPgraphics
- \ifcase\pdfoutput \recycleMPslotsfalse \fi
+ \ifx\pdfliteral\undefined
+ \recycleMPslotsfalse % quite certainly not pdftex
+ \else\ifcase\pdfoutput
+ \recycleMPslotsfalse % dvi mode or not pdftex (we need to handle dvipdfmx)
+ \fi\fi
\else
\recycleMPslotsfalse
\fi
diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex
index 52df7a63c..8152f0e32 100644
--- a/tex/context/base/supp-pdf.tex
+++ b/tex/context/base/supp-pdf.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=supp-pdf,
-%D version=2003.08.12,
+%D version=2004.03.26,
%D title=\CONTEXT\ Support Macros,
%D subtitle=\METAPOST\ to \PDF\ conversion,
%D author=Hans Hagen,
@@ -33,26 +33,37 @@
% some optimizations are possible, but we need to be generic
-%D First we take care of non||\CONTEXT\ use:
+%D First we take care of non||\CONTEXT\ use (newlines needed,
+%D expandafter not -).
\ifx \undefined \writestatus \input supp-mis.tex \relax \fi
+
\ifx \undefined \convertMPtoPDF \else \expandafter \endinput \fi
+
\ifx \undefined \StartLatexHack \else \StartLatexHack \fi
%D This module handles some \PDF\ conversion and insertions
%D topics. By default, the macros use the \PDFTEX\ primitive
-%D \type{\pdfliteral} when available.
+%D \type{\pdfliteral} when available. Since \PDFTEX\ is now the
+%D default engine for \TEX\ distributions, we need a more complex
+%D test.
-\writestatus{loading}{Context Support Macros / PDF}
+\writestatus{loading}{Context Support Macros / PDF (2004.03.26)}
\unprotect
\ifx\PDFcode\undefined
\ifx\pdfliteral\undefined
\def\PDFcode#1{\special{PDF: #1}}
- \else
+ \else\ifx\pdfoutput\undefined
+ \def\PDFcode#1{\special{PDF: #1}}
+ \else\ifcase\pdfoutput
+ \def\PDFcode#1{\special{PDF: #1}}
+ \else % pdftex as well as in pdf mode
\let\PDFcode\pdfliteral
- \fi
+ \fi\fi\fi
+\else
+ % we probably use context
\fi
%D First we define a handy constant:
@@ -82,13 +93,13 @@
%D \pdfclippedimage <optional dimensions> {file} {l} {r} {t} {b}
%D \stoptypen
-\ifx\pdftexversion\undefined % no \m!systems for the sake of latex
- \writestatus{systems}{Why not use pdf(e)TeX binaries?}
- \protect
- \expandafter\endinput
-\fi
+% \ifx\pdftexversion\undefined % no \m!systems for the sake of latex
+% \writestatus{systems}{Why not use pdf(e)TeX binaries?}
+% \protect
+% \expandafter\endinput
+% \fi
-\ifnum\pdftexversion>13
+\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13
\def\pdfimage#1#%
{\dopdfimage{#1}}
@@ -129,6 +140,8 @@
\pdfrefxform\pdflastxform
\egroup}
+\fi \fi
+
%D If you want to save a few hash entries, you may prefer the
%D less readable alternatives, like:
%D
@@ -140,13 +153,16 @@
%D \pdfrefximage\pdflastximage\egroup}}
%D \stoptypen
-%D For old times sake: (will be removed some day)
+%D For old times sake we provide a few aliases. These will be
+%D removed some day.
+
+\ifx\pdftexversion\undefined \else \ifnum\pdftexversion>13
\let\pdfform =\pdfxform
\let\pdflastform=\pdflastxform
\let\pdfrefform =\pdfrefxform
-\fi
+\fi \fi
%D \macros
%D {convertPDFtoPDF}
@@ -203,61 +219,61 @@
%D dimensions. Beware: the user supplied values are not the
%D bounding box ones!
-% this will become obsolete
-
-\newif\ifPDFmediaboxprefered
-
-\def\setPDFboundingbox#1#2#3#4#5#6%
- {\dimen0=#1\dimen0=#5\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset
- \dimen0=#3\dimen0=#5\dimen0
- \xdef\PDFwidth{\the\dimen0}%
- \dimen0=#2\dimen0=#6\dimen0
- \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset
- \dimen0=#4\dimen0=#6\dimen0
- \xdef\PDFheight{\the\dimen0}%
- \global\let\PDFxoffset\PDFxoffset
- \global\let\PDFyoffset\PDFyoffset}
-
-\def\setPDFmediabox#1[#2 #3 #4 #5]#6\done
- {\dimen2=#2bp\dimen2=-\dimen2 % \dimen2=-#2bp also works since tex handles --
- \dimen4=#3bp\dimen4=-\dimen4 % \dimen4=-#3bp also works since tex handles --
- \dimen6=#4bp\advance\dimen6 \dimen2
- \dimen8=#5bp\advance\dimen8 \dimen4
- \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
-
-\def\checkPDFmediabox#1/MediaBox#2#3\done
- {\ifx#2\relax \else
- \message{mediabox}%
- \setPDFmediabox#2#3\done
- \fi}
+%D This code has become obsolete.
+
+% \newif\ifPDFmediaboxprefered
+
+% \def\setPDFboundingbox#1#2#3#4#5#6%
+% {\dimen0=#1\dimen0=#5\dimen0
+% \ScaledPointsToBigPoints{\number\dimen0}\PDFxoffset
+% \dimen0=#3\dimen0=#5\dimen0
+% \xdef\PDFwidth{\the\dimen0}%
+% \dimen0=#2\dimen0=#6\dimen0
+% \ScaledPointsToBigPoints{\number\dimen0}\PDFyoffset
+% \dimen0=#4\dimen0=#6\dimen0
+% \xdef\PDFheight{\the\dimen0}%
+% \global\let\PDFxoffset\PDFxoffset
+% \global\let\PDFyoffset\PDFyoffset}
+
+% \def\setPDFmediabox#1[#2 #3 #4 #5]#6\done
+% {\dimen2=#2bp\dimen2=-\dimen2 % \dimen2=-#2bp also works since tex handles --
+% \dimen4=#3bp\dimen4=-\dimen4 % \dimen4=-#3bp also works since tex handles --
+% \dimen6=#4bp\advance\dimen6 \dimen2
+% \dimen8=#5bp\advance\dimen8 \dimen4
+% \setPDFboundingbox{\dimen2}{\dimen4}{\dimen6}{\dimen8}\PDFxscale\PDFyscale}
+
+% \def\checkPDFmediabox#1/MediaBox#2#3\done
+% {\ifx#2\relax \else
+% \message{mediabox}%
+% \setPDFmediabox#2#3\done
+% \fi}
%D We use the general macro \type{\doprocessfile} and feed this
%D with a line handling macro that changes it's behavior when
%D the stream operators are encountered.
-\def\handlePDFline
- {\ifx\@@PDFstream@@\fileline
- \let\doprocessPDFline\copyPDFobject
- \startPDFtoPDF
- \else\ifPDFmediaboxprefered
- \expandafter\checkPDFmediabox\fileline/MediaBox\relax\done
- \fi\fi}
-
-\def\copyPDFobject
- {\ifx\@@PDFendstream@@\fileline
- \ifPDFmediaboxprefered
- \let\doprocessPDFline\findPDFmediabox
- \else
- \let\doprocessPDFline\relax
- \fi
- \else
- \advance\scratchcounter 1
- \PDFcode{\fileline}%
- \fi}
+% \def\handlePDFline
+% {\ifx\@@PDFstream@@\fileline
+% \let\doprocessPDFline\copyPDFobject
+% \startPDFtoPDF
+% \else\ifPDFmediaboxprefered
+% \expandafter\checkPDFmediabox\fileline/MediaBox\relax\done
+% \fi\fi}
+
+% \def\copyPDFobject
+% {\ifx\@@PDFendstream@@\fileline
+% \ifPDFmediaboxprefered
+% \let\doprocessPDFline\findPDFmediabox
+% \else
+% \let\doprocessPDFline\relax
+% \fi
+% \else
+% \advance\scratchcounter 1
+% \PDFcode{\fileline}%
+% \fi}
-\def\findPDFmediabox
- {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}
+% \def\findPDFmediabox
+% {\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}
%D The main conversion macro wraps the \PDF\ codes in a box
%D that is output as an object. The graphics are embedded
@@ -336,14 +352,14 @@
\else
\let\doprocessPDFline\findPDFmediabox
\fi\fi}%
- \def\findPDFtypepage%
+ \def\findPDFtypepage
{\expandafter\checkPDFtypepage\fileline/Type /Page\relax\done}%
\def\checkPDFmediabox##1/MediaBox##2##3\done%
{\ifx##2\relax \else
\setPDFmediabox##2##3\done
\fileprocessedtrue
\fi}%
- \def\findPDFmediabox%
+ \def\findPDFmediabox
{\expandafter\checkPDFmediabox\fileline/MediaBox\relax\done}%
\let\doprocessPDFline\findPDFtypepage
\doprocessfile\scratchread{#1}\doprocessPDFline
@@ -580,6 +596,7 @@
\catcode`\]=\@@active
\catcode`\{=\@@active
\catcode`\}=\@@active
+ \lccode`\-=0 | latex sets this to `\-
\lccode`\%=`\% | otherwise it's seen as a number
\def\(B\char40\relax E|
\def\)B\char41\relax E|
@@ -1882,9 +1899,15 @@
\def\finishMPgraphic
{\stopMPresources
\egroup
- \ifx\pdftexversion\undefined\else\ifnum\pdftexversion<14 % for the moment
- \chardef\makeMPintoPDFobject0
- \fi\fi
+ % we go simple when in doubt, this macro will get a proper
+ % context counterpart so that we can also cover dvipdfmx
+ \ifx\pdfxform\undefined
+ \chardef\makeMPintoPDFobject0 % no pdftex at all
+ \else\ifx\pdftexversion\undefined
+ \chardef\makeMPintoPDFobject0 % no pdftex at all
+ \else\ifnum\pdftexversion<14
+ \chardef\makeMPintoPDFobject0 % no resource support
+ \fi\fi\fi
\ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
\chardef\makeMPintoPDFobject1
\fi\fi
diff --git a/tex/context/base/symb-eur.tex b/tex/context/base/symb-eur.tex
index 89ec60c9a..f5edb3b8b 100644
--- a/tex/context/base/symb-eur.tex
+++ b/tex/context/base/symb-eur.tex
@@ -11,6 +11,8 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+\loadmapfile [original-adobe-euro.map]
+
\definefontsynonym [EuroSerif] [eurose]
\definefontsynonym [EuroSerifBold] [euroseb]
\definefontsynonym [EuroSerifItalic] [eurosei]
@@ -32,8 +34,6 @@
\definefontsynonym [EuroMonoBoldItalic] [euromobi]
\definefontsynonym [EuroMonoBoldSlanted] [euromobi]
-\loadmapfile [original-adobe-euro.map]
-
\definesymbol [euro] [\getglyph{Euro}{\char160}]
\startencoding[default]
diff --git a/tex/context/base/symb-glm.tex b/tex/context/base/symb-glm.tex
index 43d729e5a..b673a8e4a 100644
--- a/tex/context/base/symb-glm.tex
+++ b/tex/context/base/symb-glm.tex
@@ -11,43 +11,46 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Watch the \type {met} instead of \type {mot}!
-
-\loadmapfile [pl0-ams-cmr]
-
-\definefontsynonym [GuilSerif] [plr10] [encoding=pl0]
-\definefontsynonym [GuilSerifBold] [plbx10] [encoding=pl0]
-\definefontsynonym [GuilSerifItalic] [plti10] [encoding=pl0]
-\definefontsynonym [GuilSerifSlanted] [plsl10] [encoding=pl0]
-\definefontsynonym [GuilSerifBoldItalic] [plbxti10] [encoding=pl0]
-\definefontsynonym [GuilSerifBoldSlanted] [plbxsl10] [encoding=pl0]
-
-\definefontsynonym [GuilSans] [plss10] [encoding=pl0]
-\definefontsynonym [GuilSansBold] [plssbx10] [encoding=pl0]
-\definefontsynonym [GuilSansItalic] [plssi10] [encoding=pl0]
-\definefontsynonym [GuilSansSlanted] [plssi10] [encoding=pl0]
-\definefontsynonym [GuilSansBoldItalic] [plssbi10] [encoding=pl0]
-\definefontsynonym [GuilSansBoldSlanted] [plssbi10] [encoding=pl0]
-
-\definefontsynonym [GuilMono] [pltt10] [encoding=pl0]
-%definefontsynonym [GuilMonoBold] [pltt10] [encoding=pl0]
-%definefontsynonym [GuilMonoSlanted] [pltt10] [encoding=pl0]
-%definefontsynonym [GuilMonoItalic] [pltt10] [encoding=pl0]
-%definefontsynonym [GuilMonoBoldItalic] [pltt10] [encoding=pl0]
-%definefontsynonym [GuilMonoBoldSlanted] [pltt10] [encoding=pl0]
-
-\definesymbol [leftguillemet] [\getglyph{Guil}{\char174}]
-\definesymbol [rightguillemet] [\getglyph{Guil}{\char175}]
+%D Watch the \type {x} before the local symbols.
+
+\loadmapfile [ec-public-lm.map]
+
+\definefontsynonym [GuilSerif] [plr10] [encoding=ec]
+\definefontsynonym [GuilSerifBold] [plbx10] [encoding=ec]
+\definefontsynonym [GuilSerifItalic] [plti10] [encoding=ec]
+\definefontsynonym [GuilSerifSlanted] [plsl10] [encoding=ec]
+\definefontsynonym [GuilSerifBoldItalic] [plbxti10] [encoding=ec]
+\definefontsynonym [GuilSerifBoldSlanted] [plbxsl10] [encoding=ec]
+
+\definefontsynonym [GuilSans] [plss10] [encoding=ec]
+\definefontsynonym [GuilSansBold] [plssbx10] [encoding=ec]
+\definefontsynonym [GuilSansItalic] [plssi10] [encoding=ec]
+\definefontsynonym [GuilSansSlanted] [plssi10] [encoding=ec]
+\definefontsynonym [GuilSansBoldItalic] [plssbi10] [encoding=ec]
+\definefontsynonym [GuilSansBoldSlanted] [plssbi10] [encoding=ec]
+
+\definefontsynonym [GuilMono] [pltt10] [encoding=ec]
+%definefontsynonym [GuilMonoBold] [pltt10] [encoding=ec]
+%definefontsynonym [GuilMonoSlanted] [pltt10] [encoding=ec]
+%definefontsynonym [GuilMonoItalic] [pltt10] [encoding=ec]
+%definefontsynonym [GuilMonoBoldItalic] [pltt10] [encoding=ec]
+%definefontsynonym [GuilMonoBoldSlanted] [pltt10] [encoding=ec]
+
+\definesymbol [xleftguillemot] [\getglyph{Guil}{\char19}]
+\definesymbol [xrightguillemot] [\getglyph{Guil}{\char20}]
+
+\definesymbol [xguilsingleleft] [\getglyph{Guil}{\char14}]
+\definesymbol [xguilsingleright] [\getglyph{Guil}{\char15}]
%D A strange place, but okay:
\startencoding [default]
- \definecharacter leftguillemot {\symbol[leftguillemet]}
- \definecharacter rightguillemot {\symbol[rightguillemet]}
+ \definecharacter leftguillemot {\symbol[xleftguillemot]}
+ \definecharacter rightguillemot {\symbol[xrightguillemot]}
- \definecharacter guilsingleleft {\symbol[leftguillemet]}
- \definecharacter guilsingleright {\symbol[rightguillemet]}
+ \definecharacter guilsingleleft {\symbol[xguilsingleleft]}
+ \definecharacter guilsingleright {\symbol[xguilsingleright]}
\stopencoding
diff --git a/tex/context/base/symb-ini.tex b/tex/context/base/symb-ini.tex
index b365ae771..9b514415b 100644
--- a/tex/context/base/symb-ini.tex
+++ b/tex/context/base/symb-ini.tex
@@ -8,18 +8,18 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
%D The macros described here used to be part of the \type
-%D {core-con} module. I decided to move them here when
-%D symbolsets saw the light. Let their light shine.
+%D {core-con} module. I decided to move them here when
+%D symbolsets saw the light. Let their light shine.
\writestatus{loading}{Context Symbol Libraries / Initialization}
\unprotect
-% TOBIAS
+% TOBIAS
\startmessages dutch library: symbols
title: symbolen
@@ -33,12 +33,12 @@
\startmessages german library: symbols
title: Symbole
- 1: Lade Symboldatei --
+ 1: Lade Symboldatei --
\stopmessages
\startmessages czech library: symbols
title: symboly
- 1: nacita se soubor symbolu --
+ 1: nacita se soubor symbolu --
\stopmessages
\startmessages italian library: symbols
@@ -58,29 +58,29 @@
%D \macros
%D {definesymbol, symbol}
-%D
+%D
%D Converting numbers or levels into a character, romannumeral,
%D symbol or something else, is supported by many \CONTEXT\
%D commands. Therefore we need a mechanism for linking such
-%D numbers to their counterparts.
-%D
+%D numbers to their counterparts.
+%D
%D First we take care of symbols. These are for instance used
-%D in enumerations and itemizations. We have:
-%D
-%D \showsetup{\y!definesymbol}
-%D \showsetup{\y!symbol}
-%D
+%D in enumerations and itemizations. We have:
+%D
+%D \showsetup{\y!definesymbol}
+%D \showsetup{\y!symbol}
+%D
%D Symbols are simply linked to a tag. Such tags can be numbers
-%D or strings.
-%D
+%D or strings.
+%D
%D \starttypen
%D \definesymbol [1] [$\bullet$]
%D \definesymbol [level 5] [$\star$]
%D \stoptypen
-% ss:tag -> symbol
-% ss:set:tag -> symbol out of set
-% sstag -> list of symbols in set
+% ss:tag -> symbol
+% ss:set:tag -> symbol out of set
+% sstag -> list of symbols in set
% \def\dodefinesymbol[#1][#2]%
% {\ifx\currentsymboldef\empty
@@ -105,37 +105,37 @@
\def\definesymbol
{\dodoubleargument\dodefinesymbol}
-\unexpanded\def\symbol % This one always gobbles spaces,
+\unexpanded\def\symbol % This one always gobbles spaces,
{\dodoubleempty\dosymbol} % so never change it again!
-%D Since symbols are used frequently in interactive
-%D documents, we speed up this one.
+%D Since symbols are used frequently in interactive
+%D documents, we speed up this one.
\newif\ifnosymbol \newtoks\everysymbol
-\def\dodosymbol#1% \relax's prevent lookahead problems
+\def\dodosymbol#1% \relax's prevent lookahead problems
{\nosymbolfalse{\the\everysymbol\csname\??ss:#1\endcsname\relax}\relax}
-\beginTEX
+\beginTEX
\def\dosymbol[#1][#2]%
- {\nosymboltrue
+ {\nosymboltrue
\ifsecondargument \@EA\ifx\csname\??ss:#1:#2\endcsname\relax\else
\dodosymbol{#1:#2}%
- \fi \fi
+ \fi \fi
\ifnosymbol
\edef\currentsymbol{#1}%
\the\symbolsetups
- \ifnosymbol
+ \ifnosymbol
\redosymbol\currentsymbol
\fi
\fi}
\def\fetchsymbol#1%
- {\ifnosymbol
+ {\ifnosymbol
\@EA\ifx\csname\??ss:#1:\currentsymbol\endcsname\relax\else
\dodosymbol{#1:\currentsymbol}%
- \fi
+ \fi
\fi}
\def\redosymbol#1%
@@ -146,23 +146,23 @@
\beginETEX \ifcsname
\def\dosymbol[#1][#2]%
- {\nosymboltrue
+ {\nosymboltrue
\ifsecondargument \ifcsname\??ss:#1:#2\endcsname
\dodosymbol{#1:#2}%
- \fi \fi
+ \fi \fi
\ifnosymbol
\edef\currentsymbol{#1}%
\the\symbolsetups
- \ifnosymbol
+ \ifnosymbol
\redosymbol\currentsymbol
\fi
\fi}
\def\fetchsymbol#1%
- {\ifnosymbol
+ {\ifnosymbol
\ifcsname\??ss:#1:\currentsymbol\endcsname
\dodosymbol{#1:\currentsymbol}%
- \fi
+ \fi
\fi}
\def\redosymbol#1%
@@ -178,10 +178,10 @@
%D
%D To simplify defining figure symbols, we offer:
%D
-%D \showsetup{\y!definefiguresymbol}
+%D \showsetup{\y!definefiguresymbol}
%D
%D By default, such symbols scale along the current bodyfont
-%D size or running font size (which is better).
+%D size or running font size (which is better).
\def\defaultsymbolfactor{10}
\def\defaultsymbolheight{1.25ex}
@@ -189,7 +189,7 @@
\def\figuresymbol
{\dodoubleempty\dofiguresymbol}
-\def\dofiguresymbol[#1][% #2]%
+\def\dofiguresymbol[#1][% #2]%
{\externalfigure
[#1]
[\c!reset=\v!ja,
@@ -209,7 +209,7 @@
\fi}
% but for the moment we keep it here
-% % % % % %
+% % % % % %
%\def\objectsymbol[#1]%
% {\dopresetfieldsymbol{#1}\dogetfieldsymbol{#1}}
@@ -217,15 +217,15 @@
%D \macros
%D {doifsymboldefinedelse}
%D
-%D A handy private one:
+%D A handy private one:
\beginTEX
\def\xfetchsymbol#1%
- {\ifnosymbol
+ {\ifnosymbol
\@EA\ifx\csname\??ss:#1:\currentsymbol\endcsname\relax\else
\nosymbolfalse
- \fi
+ \fi
\fi}
\def\xredosymbol#1%
@@ -236,8 +236,8 @@
\beginETEX
\def\xfetchsymbol#1%
- {\ifnosymbol
- \ifcsname\??ss:#1:\currentsymbol\endcsname\nosymbolfalse\fi
+ {\ifnosymbol
+ \ifcsname\??ss:#1:\currentsymbol\endcsname\nosymbolfalse\fi
\fi}
\def\xredosymbol#1%
@@ -250,11 +250,11 @@
\edef\currentsymbol{#1}%
\let\fetchsymbol\xfetchsymbol
%\let\redosymbol \xredosymbol
- \nosymboltrue
+ \nosymboltrue
\the\symbolsetups
- \ifnosymbol
- %\redosymbol\currentsymbol
- \xredosymbol\currentsymbol
+ \ifnosymbol
+ %\redosymbol\currentsymbol
+ \xredosymbol\currentsymbol
\ifnosymbol
\egroup\@EAEAEA\secondoftwoarguments
\else
@@ -266,33 +266,33 @@
%D \macros
%D {setupsymbolset,startsymbolset}
-%D
+%D
%D From these macro definitions one can deduce that symbols can
-%D be grouped in symbol sets:
-%D
+%D be grouped in symbol sets:
+%D
%D \starttypen
%D \startsymbolset [navigation 1]
-%D \definefiguresymbol [Next] [mp-symb.1]
+%D \definefiguresymbol [Next] [mp-symb.1]
%D \definefiguresymbol [Prev] [mp-symb.2]
%D \stopsymbolset
%D \stoptypen
-%D
+%D
%D Such a symbol can be typeset with:
-%D
+%D
%D \starttypen
%D \setupsymbolset[navigation 1]\symbol[Next]
%D \stoptypen
-%D
+%D
%D or simply:
-%D
+%D
%D \starttypen
%D \symbol[navigation 1][Next]
%D \stoptypen
-%D
+%D
%D Formally:
-%D
-%D \showsetup{\y!setupsymbolset}
-%D \showsetup{\y!startsymbolset}
+%D
+%D \showsetup{\y!setupsymbolset}
+%D \showsetup{\y!startsymbolset}
\let\currentsymboldef\empty
@@ -316,11 +316,11 @@
%D \macros
%D {showsymbolset}
%D
-%D \showsetup{\y!showsymbolset}
+%D \showsetup{\y!showsymbolset}
\fetchruntimecommand \showsymbolset {\f!symbolprefix\s!run}
-%D \macros
+%D \macros
%D {usesymbols}
%D
%D \showsetup{\y!usesymbols}
@@ -335,9 +335,9 @@
\def\usesymbols[#1]%
{\processcommalist[#1]\dousesymbols}
-%D As longs as symbols are linked to levels or numbers, we can
-%D also use the conversion mechanism, but in for instance the
-%D itemization macros, we prefer symbols because they can more
-%D easier be (partially) redefined.
+%D As longs as symbols are linked to levels or numbers, we can
+%D also use the conversion mechanism, but in for instance the
+%D itemization macros, we prefer symbols because they can more
+%D easier be (partially) redefined.
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/symb-mvs.tex b/tex/context/base/symb-mvs.tex
index eb1c4c842..83e499c7e 100644
--- a/tex/context/base/symb-mvs.tex
+++ b/tex/context/base/symb-mvs.tex
@@ -1,6 +1,6 @@
% Insert this in font-fil.tex ( I would think):
-% tobias: what is the original and what the berry name?
+% tobias: what is the original and what the berry name?
%D \module
%D [ file=symb-mvs,
@@ -12,42 +12,42 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
%D This module implements the Martin Vogel Symbole font
%D (marvosym). The names are derived from the \LaTeXe\ package
%D \type {marvosym} of Thomas Henlich. The symbols are
%D available as Type~1 font and are included in \TETEX\ and
-%D \FPTEX\ distributions.
-%D
+%D \FPTEX\ distributions.
+%D
%D This symbol font offers the signs of the zodiac, four
%D alternative the euro signs, some general office signs and
-%D some more.
-%D
+%D some more.
+%D
%D The font was designed by Martin Vogel who can be reached at
%D \hyphenatedurl {martin.vogel@fh-bochum.de}. More information
%D can be found at \hyphenatedurl
%D {http://www.fh-bochum.de/fb1/vogel/marvosym.html}. The
%D conversion to Type~1 font was done by Thomas Henlich, who
%D can be reached at \hyphenatedurl
-%D {thenlich@rcs.urz.tu-dresden.de}.
-%D
+%D {thenlich@rcs.urz.tu-dresden.de}.
+%D
%D This module is based on the current \CTAN\ version (as of
%D March 30, 2000) and is older than the TrueType version at
%D Martin Vogel's Homepage. The definitions in this module
%D reflect the \CTAN\ version. The font conversion was done by
%D Thomas Henlich using \type {ttf2pt1}, a program that can be
%D found at \hyphenatedurl
-%D {http://www.netspace.net.au/~mheath/ttf2pt1/}.
-%D
+%D {http://www.netspace.net.au/~mheath/ttf2pt1/}.
+%D
%D Using the new version of \type {marvosymb}, the MVzero will
%D has a slash and the FHBOLOGO, (wo)manface, and (wo)manfront
-%D are replaced by other symbols.
+%D are replaced by other symbols.
-\definefontsynonym [MartinVogel] [fmvr8x]
+\loadmapfile[original-base.map] % \loadmapfile[original-vogel-symbol]
-\loadmapfile[original-vogel-symbol]
+\definefontsynonym [MartinVogel] [fmvr8x]
\def\MartinVogelSymbol#1{\getglyph{MartinVogel}{\char#1}}
@@ -101,7 +101,7 @@
\definecharacter texteuro {\symbol[europe][EUR]}
-\stopencoding
+\stopencoding
\unexpanded\def\euro{\doiftextelse{\texteuro}{\texteuro}{\symbol[europe][EUR]}}
@@ -143,7 +143,7 @@
\definesymbol [TTsteel] [\MartinVogelSymbol{154}]
\definesymbol [Circpipe] [\MartinVogelSymbol{155}]
\definesymbol [Tsteel] [\MartinVogelSymbol{156}]
-
+
\definesymbol [Stopsign] [\MartinVogelSymbol {33}]
\definesymbol [Beam] [\MartinVogelSymbol {34}]
\definesymbol [Bearing] [\MartinVogelSymbol {35}]
@@ -155,28 +155,28 @@
\definesymbol [Lineload] [\MartinVogelSymbol {41}]
\definesymbol [Circles] [\MartinVogelSymbol {46}]
\definesymbol [Squaredot] [\MartinVogelSymbol{247}]
-
+
\definesymbol [Correspondes] [\MartinVogelSymbol {61}]
\definesymbol [Vectorarrowhigh] [\MartinVogelSymbol {80}]
\definesymbol [Vectorarrow] [\MartinVogelSymbol{112}]
\definesymbol [Rightarrow] [\MartinVogelSymbol {62}]
\definesymbol [Lightning] [\MartinVogelSymbol {69}]
-
+
\definesymbol [Snowflake] [\MartinVogelSymbol {42}]
\definesymbol [Kross] [\MartinVogelSymbol {43}]
\definesymbol [Cross] [\MartinVogelSymbol{134}]
\definesymbol [Celtcross] [\MartinVogelSymbol{135}]
\definesymbol [Ankh] [\MartinVogelSymbol{136}]
\definesymbol [Yingyang] [\MartinVogelSymbol {77}]
-
- \definesymbol [Pickup] [\MartinVogelSymbol {0}] % ?
- \definesymbol [Letter] [\MartinVogelSymbol {66}] % ?
+
+ \definesymbol [Pickup] [\MartinVogelSymbol {0}] % ?
+ \definesymbol [Letter] [\MartinVogelSymbol {66}] % ?
\definesymbol [Mobilephone] [\MartinVogelSymbol {72}]
\definesymbol [Telephone] [\MartinVogelSymbol {84}]
\definesymbol [fax] [\MartinVogelSymbol{116}]
\definesymbol [FAX] [\MartinVogelSymbol{117}]
\definesymbol [Faxmachine] [\MartinVogelSymbol{118}]
-
+
\definesymbol [Clocklogo] [\MartinVogelSymbol {85}]
\definesymbol [Industry] [\MartinVogelSymbol {73}]
\definesymbol [Coffeecup] [\MartinVogelSymbol {75}]
@@ -185,12 +185,12 @@
\definesymbol [Frowny] [\MartinVogelSymbol{167}]
\definesymbol [Smiley] [\MartinVogelSymbol{169}]
\definesymbol [Bicycle] [\MartinVogelSymbol{174}]
-
+
\definesymbol [Rightscissors] [\MartinVogelSymbol {81}]
\definesymbol [Leftscissors] [\MartinVogelSymbol {83}]
\definesymbol [Cutright] [\MartinVogelSymbol{113}]
\definesymbol [Cutleft] [\MartinVogelSymbol{115}]
- \definesymbol [Kutline] [\MartinVogelSymbol {82}] % K ?
+ \definesymbol [Kutline] [\MartinVogelSymbol {82}] % K ?
\definesymbol [Cutline] [\MartinVogelSymbol{114}]
\stopsymbolset
@@ -218,4 +218,4 @@
%D \showsymbolset[martinvogel 2]
%D \showsymbolset[martinvogel 3]
-\endinput
+\endinput
diff --git a/tex/context/base/symb-nav.tex b/tex/context/base/symb-nav.tex
index 161fa5dad..765a9bd73 100644
--- a/tex/context/base/symb-nav.tex
+++ b/tex/context/base/symb-nav.tex
@@ -13,9 +13,9 @@
\unprotect
-\definefontsynonym [ContextNavigation] [contnav]
+\loadmapfile[original-base.map] % \loadmapfile [original-context-symbol.map]
-\loadmapfile [original-context-symbol.map]
+\definefontsynonym [ContextNavigation] [contnav]
% \def\ContextNavigationGlyph#1{\getglyph{ContextNavigation}{\char#1}}
diff --git a/tex/context/base/syst-etx.tex b/tex/context/base/syst-etx.tex
index da0d6e269..adb98ba09 100644
--- a/tex/context/base/syst-etx.tex
+++ b/tex/context/base/syst-etx.tex
@@ -253,4 +253,4 @@
\endTEX
-\protect \endinput
+\protect \endinput \ No newline at end of file
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index 2f99824f1..f86bff57b 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -3409,14 +3409,26 @@
%D dimension is advanced accordingly, otherwise it gets the
%D value.
+% \def\doadaptdimension#1#2\\#3\\%
+% {\if#1+%
+% \dodoglobal\advance#3 #1#2\relax
+% \else\if#1-%
+% \dodoglobal\advance#3 #1#2\relax
+% \else
+% \dodoglobal#3=#1#2\relax
+% \fi\fi}
+%
+% more fuzzy but also more efficient
+
\def\doadaptdimension#1#2\\#3\\%
{\if#1+%
- \dodoglobal\advance#3 #1#2\relax
+ \dodoglobal\advance
\else\if#1-%
- \dodoglobal\advance#3 #1#2\relax
+ \dodoglobal\advance
\else
- \dodoglobal#3=#1#2\relax
- \fi\fi}
+ \dodoglobal
+ \fi\fi
+ #3 #1#2\relax}
\def\adaptdimension#1#2%
{\expandafter\doadaptdimension#2\\#1\\}
@@ -3644,21 +3656,59 @@
%D The magic factor $72/72.27$ can be found in most \TEX\
%D related books.
-\def\ScaledPointsToBigPoints #1{\PointsToBigPoints {#1sp}}
-\def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{#1sp}}
+% \def\ScaledPointsToBigPoints #1{\PointsToBigPoints {#1sp}}
+% \def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{#1sp}}
+%
+% \def\PointsToBigPoints#1#2%
+% {\scratchdimen#1%
+% \scratchdimen.996264\scratchdimen
+% \edef#2{\withoutpt\the\scratchdimen}}
+%
+% \def\PointsToWholeBigPoints#1#2%
+% {\scratchdimen#1%
+% \scratchdimen.996264\scratchdimen
+% \scratchcounter\scratchdimen
+% \advance\scratchcounter \medcard
+% \divide\scratchcounter \maxcard
+% \edef#2{\the\scratchcounter}}
+
+% \PointsToBigPoints{10.53940pt}\test \test
+% \PointsToBigPoints{10.53941pt}\test \test
+% \PointsToBigPoints{10.53942pt}\test \test
+
+% \PointsToWholeBigPoints{10.53940pt}\test \test
+% \PointsToWholeBigPoints{10.53941pt}\test \test
+% \PointsToWholeBigPoints{10.53942pt}\test \test
-\def\PointsToBigPoints#1#2%
- {\scratchdimen#1%
- \scratchdimen.996264\scratchdimen
- \edef#2{\withoutpt\the\scratchdimen}}
+\beginTEX
-\def\PointsToWholeBigPoints#1#2%
- {\scratchdimen#1%
- \scratchdimen.996264\scratchdimen
- \scratchcounter\scratchdimen
- \advance\scratchcounter \medcard
- \divide\scratchcounter \maxcard
- \edef#2{\the\scratchcounter}}
+ \def\PointsToBigPoints#1#2%
+ {\scratchdimen#1%
+ \scratchdimen.996264\scratchdimen
+ \edef#2{\withoutpt\the\scratchdimen}}
+
+ \def\PointsToWholeBigPoints#1#2%
+ {\scratchdimen#1%
+ \scratchdimen.996264\scratchdimen
+ \scratchcounter\scratchdimen
+ \advance\scratchcounter \medcard
+ \divide\scratchcounter \maxcard
+ \edef#2{\the\scratchcounter}}
+
+\endTEX
+
+\beginETEX \dimexpr \numexpr
+
+ \def\PointsToBigPoints#1#2%
+ {\edef#2{\withoutpt\the\dimexpr(.996264\dimexpr(#1))}}
+
+ \def\PointsToWholeBigPoints#1#2%
+ {\edef#2{\the\numexpr(\numexpr(\dimexpr(.996264\dimexpr(#1)))/\maxcard)}}
+
+\endETEX
+
+\def\ScaledPointsToBigPoints #1{\PointsToBigPoints {\number#1\scaledpoint}}
+\def\ScaledPointsToWholeBigPoints#1{\PointsToWholeBigPoints{\number#1\scaledpoint}}
%D \macros
%D {PointsToReal}
@@ -4003,18 +4053,22 @@
\beginTEX
-\def\twodigitrounding#1{#1}
+ \def\twodigitrounding#1{#1}
\endTEX
-\beginETEX
+\beginETEX \dimexpr
+
+ \def\dotwodigitrounding#1.#2#3#4\relax%
+ {\ifx#2*#1\else#1.#2#3\fi}
-\def\dotwodigitrounding#1.#2#3#4\relax%
- {\ifx#2*#1\else#1.#2#3\fi}
+ % \def\twodigitrounding#1%
+ % {\@EA\@EA\@EA\dotwodigitrounding\@EA\WITHOUTPT
+ % \the\dimexpr#1pt+.005pt\relax000.*00\relax}
-\def\twodigitrounding#1%
- {\@EA\@EA\@EA\dotwodigitrounding\@EA\WITHOUTPT
- \the\dimexpr#1pt+.005pt\relax000.*00\relax}
+ \def\twodigitrounding#1%
+ {\@EA\@EA\@EA\dotwodigitrounding\@EA\WITHOUTPT
+ \the\dimexpr#1\points+.005\points\relax000.*00\relax}
\endETEX
diff --git a/tex/context/base/type-akb.tex b/tex/context/base/type-akb.tex
index 937e67ac0..af2ba760c 100644
--- a/tex/context/base/type-akb.tex
+++ b/tex/context/base/type-akb.tex
@@ -3,7 +3,7 @@
%D version=2001.07.08,
%D title=\CONTEXT\ Typescript Macros,
%D subtitle=Adobe's Famous Gang of Fonts,
-%D author=Patrick Gundlach,
+%D author=Patrick Gundlach,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
@@ -13,18 +13,18 @@
%D Last Change: Tue Mar 18 16:01:03 2003
-%D This module is written by Patrick Gundlach (patrick@gundla.ch)
-%D and maps to the standard postscript fonts conforming the
-%D psnfss system as used by \LaTeX.
-%D
+%D This module is written by Patrick Gundlach (patrick@gundla.ch)
+%D and maps to the standard postscript fonts conforming the
+%D psnfss system as used by \LaTeX.
+%D
%D \starttypen
%D \setupencoding[default=texnansi]
%D \usetypescript[adobekb][\defaultencoding]
%D \stoptypen
%D
-%D The following is not needed since the file is already
+%D The following is not needed since the file is already
%D registered:
-%D
+%D
%D \starttypen
%D \usetypescriptfile[akb]
%D \stoptypen
@@ -199,4 +199,4 @@
\stoptypescript
-\endinput
+\endinput \ No newline at end of file
diff --git a/tex/context/base/type-buy.tex b/tex/context/base/type-buy.tex
index b87dfe6e9..c53beb489 100644
--- a/tex/context/base/type-buy.tex
+++ b/tex/context/base/type-buy.tex
@@ -48,10 +48,193 @@
\stoptypescript
+% Lucida Bright : Biggelow and Holmes
+
+\starttypescript [all] [lucida] [ec,8r,texnansi]
+ \loadmapfile [\typescriptthree-bh-lucida.map]
+\stoptypescript
+
+
+\starttypescript [serif] [lucida] [name]
+ \definefontsynonym [Serif] [LucidaBright]
+ \definefontsynonym [SerifBold] [LucidaBright-Demi]
+ \definefontsynonym [SerifItalic] [LucidaBright-Italic]
+ \definefontsynonym [SerifSlanted] [LucidaBright-Oblique]
+ \definefontsynonym [SerifBoldItalic] [LucidaBright-DemiItalic]
+ \definefontsynonym [SerifBoldSlanted] [LucidaBright-DemiItalic]
+ \definefontsynonym [SerifCaps] [LucidaBrightSmallcaps]
+ \definefontsynonym [OldStyle] [MathItalic]
+\stoptypescript
+
+\starttypescript [sans] [lucida] [name]
+ \definefontsynonym [Sans] [LucidaSans]
+ \definefontsynonym [SansBold] [LucidaSans-Demi]
+ \definefontsynonym [SansItalic] [LucidaSans-Italic]
+ \definefontsynonym [SansSlanted] [LucidaSans-Italic]
+ \definefontsynonym [SansBoldItalic] [LucidaSans-DemiItalic]
+ \definefontsynonym [SansBoldSlanted] [LucidaSans-DemiItalic]
+ \definefontsynonym [SansCaps] [LucidaSans]
+\stoptypescript
+
+\starttypescript [mono] [lucida] [name]
+ \definefontsynonym [Mono] [LucidaSans-Typewriter]
+ \definefontsynonym [MonoBold] [LucidaSans-TypewriterBold]
+ \definefontsynonym [MonoItalic] [LucidaSans-TypewriterOblique]
+ \definefontsynonym [MonoSlanted] [LucidaSans-TypewriterOblique]
+ \definefontsynonym [MonoBoldItalic] [LucidaSans-TypewriterBoldOblique]
+ \definefontsynonym [MonoBoldSlanted] [LucidaSans-TypewriterBoldOblique]
+ \definefontsynonym [MonoCaps] [LucidaSans-Typewriter]
+\stoptypescript
+
+\starttypescript [math] [lucida] [name]
+ \definefontsynonym [MathRoman] [LucidaBright]
+ \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
+ \definefontsynonym [MathItalic] [LucidaNewMath-AltItalic]
+ \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol]
+ \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows]
+ \definefontsynonym [MathBeta] [LucidaNewMath-Roman]
+\stoptypescript
+
+ \definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo]
+ \definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad]
+ \definefontsynonym [LucidaNewMath-Extension] [lbme]
+ \definefontsynonym [LucidaNewMath-Demibold] [lbmd]
+ \definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi]
+ \definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd]
+
+\starttypescript [boldmath] [lucida] [name]
+ \definefontsynonym [MathRoman] [LucidaBright-Demi]
+ \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
+ \definefontsynonym [MathItalic] [LucidaNewMath-AltDemiItalic]
+ \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol-Demi]
+ \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows-Demi]
+ \definefontsynonym [MathBeta] [LucidaNewMath-DemiBold]
+\stoptypescript
+
+\starttypescript [bfmath] [lucida] [name]
+ \definefontsynonym [MathRomanBold] [LucidaNewMath-Demibold]
+ \definefontsynonym [MathExtensionBold] [LucidaNewMath-Extension]
+ \definefontsynonym [MathItalicBold] [LucidaNewMath-AltDemiItalic]
+ \definefontsynonym [MathSymbolBold] [LucidaNewMath-Symbol-Demi]
+ \definefontsynonym [MathAlphaBold] [LucidaNewMath-Arrows-Demi]
+ \definefontsynonym [MathBetaBold] [LucidaNewMath-DemiBold] % ??
+\stoptypescript
+
+\starttypescript [handwriting] [lucida] [name]
+ \definefontsynonym [Handwriting] [LucidaHandwriting-Italic]
+\stoptypescript
+
+\starttypescript [calligraphy] [lucida] [name]
+ \definefontsynonym [Calligraphy] [LucidaCalligraphy-Italic]
+\stoptypescript
+
+\starttypescript [serif] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaBright] [\typescriptthree-lbr] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaBright-Demi] [\typescriptthree-lbd] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaBright-DemiItalic] [\typescriptthree-lbdi] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaBright-Italic] [\typescriptthree-lbi] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaBrightSmallcaps] [\typescriptthree-lbrsc] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaBrightSmallcaps-Demi] [\typescriptthree-lbdsc] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaBright-Oblique] [\typescriptthree-lbsl] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [sans] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaSans] [\typescriptthree-lsr] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-Demi] [\typescriptthree-lsd] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-DemiItalic] [\typescriptthree-lsdi] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-Italic] [\typescriptthree-lsi] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-Bold] [\typescriptthree-lsb] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-BoldItalic] [\typescriptthree-lsbi] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [mono] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaSans-Typewriter] [\typescriptthree-lstr] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-TypewriterBold] [\typescriptthree-lstb] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-TypewriterBoldOblique] [\typescriptthree-lstbo] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaSans-TypewriterOblique] [\typescriptthree-lsto] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [math] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaBright] [\typescriptthree-lbr] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaNewMath-AltItalic] [lbmo]
+ \definefontsynonym [LucidaNewMath-Arrows] [lbma]
+ \definefontsynonym [LucidaNewMath-Extension] [lbme]
+ \definefontsynonym [LucidaNewMath-Roman] [lbmr]
+ \definefontsynonym [LucidaNewMath-Italic] [lbmi]
+ \definefontsynonym [LucidaNewMath-Symbol] [lbms]
+ \definefontsynonym [LucidaBlackletter] [lbl]
+\stoptypescript
+
+\starttypescript [boldmath,bfmath] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo]
+ \definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad]
+ \definefontsynonym [LucidaNewMath-Extension] [lbme]
+ \definefontsynonym [LucidaNewMath-DemiBold] [lbmd]
+ \definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi]
+ \definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd]
+\stoptypescript
+
+\starttypescript [calligraphy] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaCalligraphy-Italic] [\typescriptthree-lbc] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [casual] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaCasual] [\typescriptthree-lbkr] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaCasual-Italic] [\typescriptthree-lbki] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [handwriting] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaHandwriting-Italic] [\typescriptthree-lbh] [encoding=\typescriptthree]
+\stoptypescript
+
+\starttypescript [fax] [lucida] [texnansi,ec,8r]
+ \definefontsynonym [LucidaFax] [\typescriptthree-lfr] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaFax-Demi] [\typescriptthree-lfd] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaFax-DemiItalic] [\typescriptthree-lfdi] [encoding=\typescriptthree]
+ \definefontsynonym [LucidaFax-Italic] [\typescriptthree-lfi] [encoding=\typescriptthree]
+\stoptypescript
+
+% Informal : Vulis
+
+\starttypescript [all] [informal] [default]
+ \loadmapfile[original-micropress-informal.map]
+\stoptypescript
+
+\starttypescript [casual] [informal] [name]
+ \definefontsynonym [Serif] [Informal-Regular]
+ \definefontsynonym [SerifBold] [Informal-Bold]
+ \definefontsynonym [SerifSlanted] [Informal-Oblique]
+ \definefontsynonym [SerifItalic] [Informal-Oblique]
+ \definefontsynonym [SerifBoldSlanted] [Informal-BoldOblique]
+ \definefontsynonym [SerifBoldItalic] [Informal-BoldOblique]
+ \definefontsynonym [SerifCaps] [Informal-Regular]
+\stoptypescript
+
+\starttypescript [math] [informal] [name]
+ \definefontsynonym [MathRoman] [Informal-Regular]
+ \definefontsynonym [MathExtension] [Informal-MathExtendedSymbols]
+ \definefontsynonym [MathItalic] [Informal-MathItalics]
+ \definefontsynonym [MathSymbol] [Informal-MathSymbols]
+\stoptypescript
+
+\starttypescript [casual] [informal] [default]
+ \definefontsynonym [Informal-Regular] [ifrm10cm]
+ \definefontsynonym [Informal-Bold] [ifrb10cm]
+ \definefontsynonym [Informal-Oblique] [ifro10cm]
+ \definefontsynonym [Informal-BoldOblique] [ifbo10cm]
+\stoptypescript
+
+\starttypescript [math] [informal] [default]
+ \definefontsynonym [Informal-Regular] [ifrm10cm]
+ \definefontsynonym [Informal-MathExtendedSymbols] [ifex10]
+ \definefontsynonym [Informal-MathItalics] [ifmi10]
+ \definefontsynonym [Informal-MathSymbols] [ifsy10]
+\stoptypescript
+
% ITC Officina
-\starttypescript [map] [ec,8r,texnansi]
- \loadmapfile [\typefaceencoding-itc-officina]
+\starttypescript [all] [officina] [ec,8r,texnansi]
+ \loadmapfile [\typescriptthree-itc-officina.map]
\stoptypescript
\starttypescript [serif] [officina] [name]
@@ -80,34 +263,34 @@
\starttypescript [serif] [officina] [texnansi,ec,8r]
- \definefontsynonym [OfficinaSerif-Book] [\typefaceencoding-ovbk] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSerif-BookItalic] [\typefaceencoding-ovwi] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSerif-Bold] [\typefaceencoding-ovb] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSerif-BoldItalic] [\typefaceencoding-ovbi] [encoding=\typefaceencoding]
+ \definefontsynonym [OfficinaSerif-Book] [\typescriptthree-ovbk] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSerif-BookItalic] [\typescriptthree-ovwi] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSerif-Bold] [\typescriptthree-ovb] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSerif-BoldItalic] [\typescriptthree-ovbi] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSerif-BookSlanted][\typefaceencoding-ovbk-slanted-167] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSerif-BoldSlanted][\typefaceencoding-ovb-slanted-167] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSerif-Caps] [\typefaceencoding-ovbk-capitalized-800] [encoding=\typefaceencoding]
+ \definefontsynonym [OfficinaSerif-BookSlanted][\typescriptthree-ovbk-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSerif-BoldSlanted][\typescriptthree-ovb-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSerif-Caps] [\typescriptthree-ovbk-capitalized-800] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [officina] [texnansi,ec,8r]
- \definefontsynonym [OfficinaSans-Book] [\typefaceencoding-owbk] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSans-BookItalic] [\typefaceencoding-owwi] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSans-Bold] [\typefaceencoding-owb] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSans-BoldItalic] [\typefaceencoding-owbi] [encoding=\typefaceencoding]
+ \definefontsynonym [OfficinaSans-Book] [\typescriptthree-owbk] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSans-BookItalic] [\typescriptthree-owwi] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSans-Bold] [\typescriptthree-owb] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSans-BoldItalic] [\typescriptthree-owbi] [encoding=\typescriptthree]
- \definefontsynonym [OfficinaSans-BookSlanted][\typefaceencoding-owbk-slanted-167] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSans-BoldSlanted][\typefaceencoding-owb-slanted-167] [encoding=\typefaceencoding]
- \definefontsynonym [OfficinaSans-Caps] [\typefaceencoding-owbk-capitalized-800] [encoding=\typefaceencoding]
+ \definefontsynonym [OfficinaSans-BookSlanted][\typescriptthree-owbk-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSans-BoldSlanted][\typescriptthree-owb-slanted-167] [encoding=\typescriptthree]
+ \definefontsynonym [OfficinaSans-Caps] [\typescriptthree-owbk-capitalized-800] [encoding=\typescriptthree]
\stoptypescript
% FontFont Meta
-\starttypescript [map] [ec,8r,texnansi]
- \loadmapfile [\typefaceencoding-fontfont-meta]
+\starttypescript [all] [meta] [ec,8r,texnansi]
+ \loadmapfile [\typescriptthree-fontfont-meta.map]
\stoptypescript
\starttypescript [sans] [meta] [name]
@@ -134,104 +317,104 @@
\starttypescript [sans] [meta,meta-book] [texnansi,ec,8r]
- \definefontsynonym [MetaBook-Roman] [\typefaceencoding-mtbk] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBook-Italic] [\typefaceencoding-mtbki] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBook-Caps] [\typefaceencoding-mtbkc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBook-ItalicCaps] [\typefaceencoding-mtbkic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaBook-Roman] [\typescriptthree-mtbk] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBook-Italic] [\typescriptthree-mtbki] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBook-Caps] [\typescriptthree-mtbkc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBook-ItalicCaps] [\typescriptthree-mtbkic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-lf,meta-book-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaBookLF-Roman] [\typefaceencoding-mtbkf] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBookLF-Italic] [\typefaceencoding-mtbkfi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBookLF-Caps] [\typefaceencoding-mtbkfc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBookLF-ItalicCaps] [\typefaceencoding-mtbkfic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaBookLF-Roman] [\typescriptthree-mtbkf] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBookLF-Italic] [\typescriptthree-mtbkfi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBookLF-Caps] [\typescriptthree-mtbkfc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBookLF-ItalicCaps] [\typescriptthree-mtbkfic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta,meta-bold] [texnansi,ec,8r]
- \definefontsynonym [MetaBold-Roman] [\typefaceencoding-mtbd] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBold-Italic] [\typefaceencoding-mtbdi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBold-Caps] [\typefaceencoding-mtbdc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBold-ItalicCaps] [\typefaceencoding-mtbdic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaBold-Roman] [\typescriptthree-mtbd] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBold-Italic] [\typescriptthree-mtbdi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBold-Caps] [\typescriptthree-mtbdc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBold-ItalicCaps] [\typescriptthree-mtbdic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-lf,meta-bold-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaBoldLF-Roman] [\typefaceencoding-mtbdf] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBoldLF-Italic] [\typefaceencoding-mtbdfi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBoldLF-Caps] [\typefaceencoding-mtbdfc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBoldLF-ItalicCaps] [\typefaceencoding-mtbdfic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaBoldLF-Roman] [\typescriptthree-mtbdf] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBoldLF-Italic] [\typescriptthree-mtbdfi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBoldLF-Caps] [\typescriptthree-mtbdfc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBoldLF-ItalicCaps] [\typescriptthree-mtbdfic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-normal] [texnansi,ec,8r]
- \definefontsynonym [MetaNormal-Roman] [\typefaceencoding-mtn] [encoding=\typefaceencoding]
- \definefontsynonym [MetaNormal-Italic] [\typefaceencoding-mtni] [encoding=\typefaceencoding]
- \definefontsynonym [MetaNormal-Caps] [\typefaceencoding-mtnc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaNormal-ItalicCaps] [\typefaceencoding-mtnic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaNormal-Roman] [\typescriptthree-mtn] [encoding=\typescriptthree]
+ \definefontsynonym [MetaNormal-Italic] [\typescriptthree-mtni] [encoding=\typescriptthree]
+ \definefontsynonym [MetaNormal-Caps] [\typescriptthree-mtnc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaNormal-ItalicCaps] [\typescriptthree-mtnic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-normal-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaNormalLF-Roman] [\typefaceencoding-mtnf] [encoding=\typefaceencoding]
- \definefontsynonym [MetaNormalLF-Italic] [\typefaceencoding-mtnfi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaNormalLF-Caps] [\typefaceencoding-mtnfc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaNormalLF-ItalicCaps] [\typefaceencoding-mtnfic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaNormalLF-Roman] [\typescriptthree-mtnf] [encoding=\typescriptthree]
+ \definefontsynonym [MetaNormalLF-Italic] [\typescriptthree-mtnfi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaNormalLF-Caps] [\typescriptthree-mtnfc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaNormalLF-ItalicCaps] [\typescriptthree-mtnfic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-medium] [texnansi,ec,8r]
- \definefontsynonym [MetaMedium-Roman] [\typefaceencoding-mtm] [encoding=\typefaceencoding]
- \definefontsynonym [MetaMedium-Italic] [\typefaceencoding-mtmi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaMedium-Caps] [\typefaceencoding-mtmc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaMedium-ItalicCaps] [\typefaceencoding-mtmic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaMedium-Roman] [\typescriptthree-mtm] [encoding=\typescriptthree]
+ \definefontsynonym [MetaMedium-Italic] [\typescriptthree-mtmi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaMedium-Caps] [\typescriptthree-mtmc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaMedium-ItalicCaps] [\typescriptthree-mtmic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-medium-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaMediumLF-Roman] [\typefaceencoding-mtmf] [encoding=\typefaceencoding]
- \definefontsynonym [MetaMediumLF-Italic] [\typefaceencoding-mtmfi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaMediumLF-Caps] [\typefaceencoding-mtmfc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaMediumLF-ItalicCaps] [\typefaceencoding-mtmfic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaMediumLF-Roman] [\typescriptthree-mtmf] [encoding=\typescriptthree]
+ \definefontsynonym [MetaMediumLF-Italic] [\typescriptthree-mtmfi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaMediumLF-Caps] [\typescriptthree-mtmfc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaMediumLF-ItalicCaps] [\typescriptthree-mtmfic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-black] [texnansi,ec,8r]
- \definefontsynonym [MetaBlack-Roman] [\typefaceencoding-mtbl] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBlack-Italic] [\typefaceencoding-mtbli] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBlack-Caps] [\typefaceencoding-mtblc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBlack-ItalicCaps] [\typefaceencoding-mtblic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaBlack-Roman] [\typescriptthree-mtbl] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBlack-Italic] [\typescriptthree-mtbli] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBlack-Caps] [\typescriptthree-mtblc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBlack-ItalicCaps] [\typescriptthree-mtblic] [encoding=\typescriptthree]
\stoptypescript
\starttypescript [sans] [meta-black-lf] [texnansi,ec,8r]
- \definefontsynonym [MetaBlackLF-Roman] [\typefaceencoding-mtblf] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBlackLF-Italic] [\typefaceencoding-mtblfi] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBlackLF-Caps] [\typefaceencoding-mtblfc] [encoding=\typefaceencoding]
- \definefontsynonym [MetaBlackLF-ItalicCaps] [\typefaceencoding-mtblfic] [encoding=\typefaceencoding]
+ \definefontsynonym [MetaBlackLF-Roman] [\typescriptthree-mtblf] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBlackLF-Italic] [\typescriptthree-mtblfi] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBlackLF-Caps] [\typescriptthree-mtblfc] [encoding=\typescriptthree]
+ \definefontsynonym [MetaBlackLF-ItalicCaps] [\typescriptthree-mtblfic] [encoding=\typescriptthree]
\stoptypescript
-\starttypescript [expert] [meta] % incomplete
+\starttypescript [expert] [meta] % incomplete
- \definefontsynonym [MetaNormal-Expert] [mtnx]
+ \definefontsynonym [MetaNormal-Expert] [mtnx]
\stoptypescript
-%D Linotype Univers
+%D Linotype Univers
-\starttypescript [map] [all] % [texnansi]
- \loadmapfile[texnansi-linotype-univers.map]
+\starttypescript [all] [univers] [texnansi]
+ \loadmapfile[\typescriptthree-linotype-univers.map]
\stoptypescript
\starttypescript [sans] [univers,univers-light,univers-black] [name]
@@ -261,23 +444,23 @@
\starttypescript [sans] [univers,univers-black,univers-light] [texnansi,ec,8r]
- \definefontsynonym [Univers-Light] [\typefaceencoding-lt50136] [encoding=\typefaceencoding]
- \definefontsynonym [Univers-LightOblique] [\typefaceencoding-lt50137] [encoding=\typefaceencoding]
+ \definefontsynonym [Univers-Light] [\typescriptthree-lt50136] [encoding=\typescriptthree]
+ \definefontsynonym [Univers-LightOblique] [\typescriptthree-lt50137] [encoding=\typescriptthree]
- \definefontsynonym [Univers] [\typefaceencoding-lt50138] [encoding=\typefaceencoding]
- \definefontsynonym [Univers-Oblique] [\typefaceencoding-lt50139] [encoding=\typefaceencoding]
- \definefontsynonym [Univers-Bold] [\typefaceencoding-lt50140] [encoding=\typefaceencoding]
- \definefontsynonym [Univers-BoldOblique] [\typefaceencoding-lt50141] [encoding=\typefaceencoding]
+ \definefontsynonym [Univers] [\typescriptthree-lt50138] [encoding=\typescriptthree]
+ \definefontsynonym [Univers-Oblique] [\typescriptthree-lt50139] [encoding=\typescriptthree]
+ \definefontsynonym [Univers-Bold] [\typescriptthree-lt50140] [encoding=\typescriptthree]
+ \definefontsynonym [Univers-BoldOblique] [\typescriptthree-lt50141] [encoding=\typescriptthree]
- \definefontsynonym [Univers-Black] [\typefaceencoding-lt50142] [encoding=\typefaceencoding]
- \definefontsynonym [Univers-BlackOblique] [\typefaceencoding-lt50143] [encoding=\typefaceencoding]
+ \definefontsynonym [Univers-Black] [\typescriptthree-lt50142] [encoding=\typescriptthree]
+ \definefontsynonym [Univers-BlackOblique] [\typescriptthree-lt50143] [encoding=\typescriptthree]
\stoptypescript
% mendoza
-\starttypescript [all]
- \loadmapfile[texnansi-itc-mendoza.map]
+\starttypescript [all] [mendoza] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-itc-mendoza.map]
\stoptypescript
\starttypescript [serif] [mendoza] [name]
@@ -292,21 +475,21 @@
\stoptypescript
-\starttypescript [serif] [mendoza] [texnansi]
+\starttypescript [serif] [mendoza] [ec,8r,texnansi]
- \definefontsynonym[MendozaRoman-Bold] [texnansi-zab] [encoding=texnansi]
- \definefontsynonym[MendozaRoman-BoldItalic] [texnansi-zabi][encoding=texnansi]
- \definefontsynonym[MendozaRoman-Medium] [texnansi-zam] [encoding=texnansi]
- \definefontsynonym[MendozaRoman-MediumItalic][texnansi-zami][encoding=texnansi]
- \definefontsynonym[MendozaRoman-Book] [texnansi-zaw] [encoding=texnansi]
- \definefontsynonym[MendozaRoman-BookItalic] [texnansi-zawi][encoding=texnansi]
+ \definefontsynonym[MendozaRoman-Bold] [\typescriptthree-zab] [encoding=\typescriptthree]
+ \definefontsynonym[MendozaRoman-BoldItalic] [\typescriptthree-zabi][encoding=\typescriptthree]
+ \definefontsynonym[MendozaRoman-Medium] [\typescriptthree-zam] [encoding=\typescriptthree]
+ \definefontsynonym[MendozaRoman-MediumItalic][\typescriptthree-zami][encoding=\typescriptthree]
+ \definefontsynonym[MendozaRoman-Book] [\typescriptthree-zaw] [encoding=\typescriptthree]
+ \definefontsynonym[MendozaRoman-BookItalic] [\typescriptthree-zawi][encoding=\typescriptthree]
\stoptypescript
-% frutiger
+% frutiger
-\starttypescript [all]
- \loadmapfile[texnansi-adobe-frutiger.map]
+\starttypescript [all] [frutiger] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-adobe-frutiger.map]
\stoptypescript
\starttypescript [sans] [frutiger] [name]
@@ -321,62 +504,34 @@
\stoptypescript
-\starttypescript [sans] [frutiger] [texnansi]
-
- \definefontsynonym[Frutiger-Bold] [texnansi-ftb] [encoding=texnansi]
- \definefontsynonym[Frutiger-BoldItalic] [texnansi-ftbi] [encoding=texnansi]
- \definefontsynonym[Frutiger-Black] [texnansi-ftbl] [encoding=texnansi]
- \definefontsynonym[Frutiger-BlackItalic][texnansi-ftbli][encoding=texnansi]
- \definefontsynonym[Frutiger-Italic] [texnansi-fti] [encoding=texnansi]
- \definefontsynonym[Frutiger-Light] [texnansi-ftl] [encoding=texnansi]
- \definefontsynonym[Frutiger-LightItalic][texnansi-ftli] [encoding=texnansi]
- \definefontsynonym[Frutiger-Roman] [texnansi-ftr] [encoding=texnansi]
- \definefontsynonym[Frutiger-UltraBlack] [texnansi-ftubl][encoding=texnansi]
-
-\stoptypescript
-
-% utopia (already in other files)
-%
-% \starttypescript [map] [ec,8r,texnansi]
-% \loadmapfile [\typefaceencoding-adobe-utopia]
-% \stoptypescript
-%
-% \starttypescript [serif] [utopia] [name]
-%
-% \definefontsynonym [Serif] [Utopia-Regular]
-% \definefontsynonym [SerifItalic] [Utopia-Italic]
-% \definefontsynonym [SerifSlanted] [Utopia-Slanted]
-% \definefontsynonym [SerifBold] [Utopia-Bold]
-% \definefontsynonym [SerifBoldItalic] [Utopia-BoldItalic]
-% \definefontsynonym [SerifBoldSlanted][Utopia-BoldSlanted]
-%
-% \stoptypescript
-%
-% \starttypescript [serif] [utopia] [texnansi]
-%
-% \definefontsynonym [Utopia-Regular] [texnansi-utrg] [encoding=texnansi]
-% \definefontsynonym [Utopia-Italic] [texnansi-uti] [encoding=texnansi]
-% \definefontsynonym [Utopia-Slanted] [texnansi-uti] [encoding=texnansi]
-% \definefontsynonym [Utopia-Bold] [texnansi-utb] [encoding=texnansi]
-% \definefontsynonym [Utopia-BoldItalic] [texnansi-utbi] [encoding=texnansi]
-% \definefontsynonym [Utopia-BoldSlanted] [texnansi-utbi] [encoding=texnansi]
-%
-% \stoptypescript
-
-% kabel
-
- \starttypescript [map] [ec,8r,texnansi]
- \loadmapfile [\typefaceencoding-itc-kabel]
- \stoptypescript
-
- \starttypescript [sans] [kabel] [texnansi]
-
- \definefontsynonym [ItcKabel-Bold] [texnansi-kbb] [encoding=texnansi]
- \definefontsynonym [ItcKabel-Demi] [texnansi-kbd] [encoding=texnansi]
- \definefontsynonym [ItcKabel-Medium] [texnansi-kbm] [encoding=texnansi]
- \definefontsynonym [ItcKabel-Ultra] [texnansi-kbu] [encoding=texnansi]
- \definefontsynonym [ItcKabel-Book] [texnansi-kbw] [encoding=texnansi]
-
- \stoptypescript
-
-\endinput
+\starttypescript [sans] [frutiger] [ec,8r,texnansi]
+
+ \definefontsynonym[Frutiger-Bold] [\typescriptthree-ftb] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-BoldItalic] [\typescriptthree-ftbi] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-Black] [\typescriptthree-ftbl] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-BlackItalic][\typescriptthree-ftbli][encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-Italic] [\typescriptthree-fti] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-Light] [\typescriptthree-ftl] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-LightItalic][\typescriptthree-ftli] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-Roman] [\typescriptthree-ftr] [encoding=\typescriptthree]
+ \definefontsynonym[Frutiger-UltraBlack] [\typescriptthree-ftubl][encoding=\typescriptthree]
+
+\stoptypescript
+
+% kabel
+
+\starttypescript [all] [kabel] [ec,8r,texnansi]
+ \loadmapfile [\typescriptthree-itc-kabel.map]
+\stoptypescript
+
+\starttypescript [sans] [kabel] [ec,8r,texnansi]
+
+ \definefontsynonym [ItcKabel-Bold] [\typescriptthree-kbb] [encoding=\typescriptthree]
+ \definefontsynonym [ItcKabel-Demi] [\typescriptthree-kbd] [encoding=\typescriptthree]
+ \definefontsynonym [ItcKabel-Medium] [\typescriptthree-kbm] [encoding=\typescriptthree]
+ \definefontsynonym [ItcKabel-Ultra] [\typescriptthree-kbu] [encoding=\typescriptthree]
+ \definefontsynonym [ItcKabel-Book] [\typescriptthree-kbw] [encoding=\typescriptthree]
+
+\stoptypescript
+
+\endinput
diff --git a/tex/context/base/type-enc.tex b/tex/context/base/type-enc.tex
index 16eaff96f..1ecd20247 100644
--- a/tex/context/base/type-enc.tex
+++ b/tex/context/base/type-enc.tex
@@ -28,9 +28,7 @@
%
% \starttext \showfont[Serif] \stoptext
-\starttypescript [all] [latin-modern] [texnansi,qx]
-
- \loadmapfile[\typescriptthree-lm.map]
+\starttypescript [all] [latin-modern] [texnansi,ec,qx]
% Regular
@@ -111,89 +109,6 @@
\stoptypescript
-\starttypescript [all] [latin-modern] [ec]
-
- \loadmapfile[cork-lm.map]
-
- % Regular
-
- \definefontsynonym [cmr5] [cork-lmr5] [encoding=ec]
- \definefontsynonym [cmr6] [cork-lmr6] [encoding=ec]
- \definefontsynonym [cmr7] [cork-lmr7] [encoding=ec]
- \definefontsynonym [cmr8] [cork-lmr8] [encoding=ec]
- \definefontsynonym [cmr9] [cork-lmr9] [encoding=ec]
- \definefontsynonym [cmr10] [cork-lmr10] [encoding=ec]
- \definefontsynonym [cmr12] [cork-lmr12] [encoding=ec]
- \definefontsynonym [cmr17] [cork-lmr17] [encoding=ec]
-
- \definefontsynonym [cmbx5] [cork-lmbx5] [encoding=ec]
- \definefontsynonym [cmbx6] [cork-lmbx6] [encoding=ec]
- \definefontsynonym [cmbx7] [cork-lmbx7] [encoding=ec]
- \definefontsynonym [cmbx8] [cork-lmbx8] [encoding=ec]
- \definefontsynonym [cmbx9] [cork-lmbx9] [encoding=ec]
- \definefontsynonym [cmbx10] [cork-lmbx10] [encoding=ec]
- \definefontsynonym [cmbx12] [cork-lmbx12] [encoding=ec]
-
- \definefontsynonym [cmsl10] [cork-lmro10] [encoding=ec]
- \definefontsynonym [cmsl12] [cork-lmro12] [encoding=ec]
- \definefontsynonym [cmsl8] [cork-lmro8] [encoding=ec]
- \definefontsynonym [cmsl9] [cork-lmro9] [encoding=ec]
-
- \definefontsynonym [cmti7] [cork-lmri7] [encoding=ec]
- \definefontsynonym [cmti8] [cork-lmri8] [encoding=ec]
- \definefontsynonym [cmti9] [cork-lmri9] [encoding=ec]
- \definefontsynonym [cmti10] [cork-lmri10] [encoding=ec]
- \definefontsynonym [cmti12] [cork-lmri12] [encoding=ec]
-
- \definefontsynonym [cmb10] [cork-lmb10] [encoding=ec]
- \definefontsynonym [cmbsl10] [cork-lmbo10] [encoding=ec]
- \definefontsynonym [cmbxsl10] [cork-lmbxo10] [encoding=ec]
- \definefontsynonym [cmbxti10] [cork-lmbxi10] [encoding=ec]
-
- \definefontsynonym [cmcsc10] [cork-lmcsc10] [encoding=ec]
- \definefontsynonym [cmcscsl10][cork-lmcsco10] [encoding=ec]
-
- % Mono
-
- \definefontsynonym [cmtt8] [cork-lmtt8] [encoding=ec]
- \definefontsynonym [cmtt9] [cork-lmtt9] [encoding=ec]
- \definefontsynonym [cmtt10] [cork-lmtt10] [encoding=ec]
- \definefontsynonym [cmtt12] [cork-lmtt12] [encoding=ec]
-
- \definefontsynonym [cmitt10] [cork-lmtti10] [encoding=ec]
- \definefontsynonym [cmsltt10] [cork-lmtto10] [encoding=ec]
-
- \definefontsynonym [cmvtt10] [cork-lmvtt10] [encoding=ec]
- \definefontsynonym [cmvtti10] [cork-lmvtto] [encoding=ec]
-
- \definefontsynonym [cmcsc10] [cork-lmcsc10] [encoding=ec]
-
- % Sans
-
- \definefontsynonym [cmss8] [cork-lmss8] [encoding=ec]
- \definefontsynonym [cmss9] [cork-lmss9] [encoding=ec]
- \definefontsynonym [cmss10] [cork-lmss10] [encoding=ec]
- \definefontsynonym [cmss12] [cork-lmss12] [encoding=ec]
- \definefontsynonym [cmss17] [cork-lmss17] [encoding=ec]
-
- \definefontsynonym [cmssi10] [cork-lmsso10] [encoding=ec]
- \definefontsynonym [cmssi12] [cork-lmsso12] [encoding=ec]
- \definefontsynonym [cmssi17] [cork-lmsso17] [encoding=ec]
- \definefontsynonym [cmssi8] [cork-lmsso8] [encoding=ec]
- \definefontsynonym [cmssi9] [cork-lmsso9] [encoding=ec]
-
- \definefontsynonym [cmssq8] [cork-lmssq8] [encoding=ec]
- \definefontsynonym [cmssqb8] [cork-lmssqbx8] [encoding=ec]
- \definefontsynonym [cmssqbi8] [cork-lmssqbo8] [encoding=ec]
- \definefontsynonym [cmssqi8] [cork-lmssqo8] [encoding=ec]
-
- \definefontsynonym [cmssbx10] [cork-lmssbx10] [encoding=ec]
- \definefontsynonym [cmssdc10] [cork-lmssdc10] [encoding=ec]
- \definefontsynonym [cmssbi10] [cork-lmssbo10] [encoding=ec]
- \definefontsynonym [cmssdi10] [cork-lmssdo10] [encoding=ec]
-
-\stoptypescript
-
\starttypescript [all] [computer-modern] [ec] % will become ae
\definefontsynonym [cmb10] [aeb10] [encoding=ec,handling=glm]
\definefontsynonym [cmbx10] [aebx10] [encoding=ec,handling=glm]
@@ -940,6 +855,22 @@
\definefontsynonym [Courier-BoldOblique] [\typefaceencoding-ucrbo8a] [encoding=\typefaceencoding]
\stoptypescript
+% alternative 1
+%
+% \definefontsynonym[qx-ucrr8a] [qcrr]
+% \definefontsynonym[qx-ucrb8a] [qcrb]
+% \definefontsynonym[qx-ucrr08a] [qcrri]
+% \definefontsynonym[qx-ucrbo8a] [qcrbi]
+%
+% alternative 2
+
+\starttypescript [mono] [courier] [qx]
+ \definefontsynonym [Courier] [qcrr] [encoding=qx]
+ \definefontsynonym [Courier-Bold] [qcrb] [encoding=qx]
+ \definefontsynonym [Courier-Oblique] [qcrri] [encoding=qx]
+ \definefontsynonym [Courier-BoldOblique] [qcrbi] [encoding=qx]
+\stoptypescript
+
% Helvetica (URW)
\starttypescript [sans] [helvetica] [texnansi,ec,8r]
@@ -951,6 +882,15 @@
\definefontsynonym [Helvetica-BoldOblique] [\typefaceencoding-uhvbo8a] [encoding=\typefaceencoding]
\stoptypescript
+\starttypescript [sans] [helvetica] [qx] % narrow
+ \definefontsynonym [Helvetica] [qhvr] [encoding=qx] % qhvcr
+ \definefontsynonym [Helvetica-Italic] [qhvri] [encoding=qx] % qhvcri
+ \definefontsynonym [Helvetica-Oblique] [qhvri] [encoding=qx] % qhvcri
+ \definefontsynonym [Helvetica-Bold] [qhvb] [encoding=qx] % qhvcb
+ \definefontsynonym [Helvetica-BoldItalic] [qhvbi] [encoding=qx] % qhvcbi
+ \definefontsynonym [Helvetica-BoldOblique] [qhvbi] [encoding=qx] % qhvcbi
+\stoptypescript
+
% Times Roman (URW)
\starttypescript [serif] [times] [texnansi,ec,8r]
@@ -965,6 +905,18 @@
\definefontsynonym [Times] [Times-Roman]
\stoptypescript
+\starttypescript [serif] [times] [qx]
+ \definefontsynonym [Times-Roman] [qtmr] [encoding=qx]
+ \definefontsynonym [Times-Italic] [qtmri] [encoding=qx]
+ \definefontsynonym [Times-Bold] [qtmb] [encoding=qx]
+ \definefontsynonym [Times-BoldItalic] [qtmbi] [encoding=qx]
+
+ \definefontsynonym [Times-Slanted] [Times-Italic]
+ \definefontsynonym [Times-BoldSlanted] [Times-BoldItalic]
+
+ \definefontsynonym [Times] [Times-Roman]
+\stoptypescript
+
% Math Times (tx)
\starttypescript [math] [times] [all]
@@ -1015,6 +967,17 @@
\definefontsynonym [Palatino-Caps] [\typefaceencoding-uplr8a-capitalized-800] [encoding=\typefaceencoding]
\stoptypescript
+\starttypescript [serif] [palatino] [qx]
+ \definefontsynonym [Palatino] [qplr] [encoding=qx]
+ \definefontsynonym [Palatino-Italic] [qplri] [encoding=qx]
+ \definefontsynonym [Palatino-Bold] [qplb] [encoding=qx]
+ \definefontsynonym [Palatino-BoldItalic] [qplbi] [encoding=qx]
+
+ \definefontsynonym [Palatino-Slanted] [Palatino-Italic]
+ \definefontsynonym [Palatino-BoldSlanted] [Palatino-BoldItalic]
+ \definefontsynonym [Palatino-Caps] [Palatino]
+\stoptypescript
+
% Palatino Math (PX)
\starttypescript [math] [palatino] [all]
@@ -1048,12 +1011,27 @@
\definefontsynonym [Bookman-Light-Caps] [\typefaceencoding-ubkl8a-capitalized-800] [encoding=\typefaceencoding]
\stoptypescript
+\starttypescript [serif] [bookman] [qx]
+ \definefontsynonym [Bookman-Light] [qbkr] [encoding=qx]
+ \definefontsynonym [Bookman-LightItalic] [qbkri] [encoding=qx]
+ \definefontsynonym [Bookman-DemiBold] [qbkb] [encoding=qx]
+ \definefontsynonym [Bookman-DemiBoldItalic] [qbkbi] [encoding=qx]
+
+ \definefontsynonym [Bookman-LightSlanted] [Bookman-LightItalic]
+ \definefontsynonym [Bookman-DemiBoldSlanted] [Bookman-DemiBoldItalic]
+ \definefontsynonym [Bookman-Light-Caps] [Bookman-Light]
+\stoptypescript
+
% Chancery (URW)
\starttypescript [calligraphy] [chancery] [ec,texnansi,8r]
\definefontsynonym [Chancery] [\typefaceencoding-uzcmi8a] [encoding=\typefaceencoding]
\stoptypescript
+\starttypescript [calligraphy] [chancery] [qx]
+ \definefontsynonym [Chancery] [qzcmi] [encoding=qx]
+\stoptypescript
+
% New Century Schoolbook (URW)
\starttypescript [serif] [schoolbook] [ec,texnansi,8r]
@@ -1100,94 +1078,6 @@
\definefontsynonym [MartinVogel] [fmvr8x]
\stoptypescript
-% Commercial fonts / still to be sorted out
-
-% Informal (VTEX)
-
-\starttypescript [casual] [informal] [default]
- \definefontsynonym [Informal-Regular] [ifrm10cm]
- \definefontsynonym [Informal-Bold] [ifrb10cm]
- \definefontsynonym [Informal-Oblique] [ifro10cm]
- \definefontsynonym [Informal-BoldOblique] [ifbo10cm]
-\stoptypescript
-
-% Informal Math (VTEX)
-
-\starttypescript [math] [informal] [default]
- \definefontsynonym [Informal-Regular] [ifrm10cm]
- \definefontsynonym [Informal-MathExtendedSymbols] [ifex10]
- \definefontsynonym [Informal-MathItalics] [ifmi10]
- \definefontsynonym [Informal-MathSymbols] [ifsy10]
-\stoptypescript
-
-% Lucida Bright (BH)
-
-\starttypescript [serif] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaBright] [\typefaceencoding-lbr] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaBright-Demi] [\typefaceencoding-lbd] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaBright-DemiItalic] [\typefaceencoding-lbdi] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaBright-Italic] [\typefaceencoding-lbi] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaBrightSmallcaps] [\typefaceencoding-lbrsc] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaBrightSmallcaps-Demi] [\typefaceencoding-lbdsc] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaBright-Oblique] [\typefaceencoding-lbsl] [encoding=\typefaceencoding]
-\stoptypescript
-
-\starttypescript [sans] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaSans] [\typefaceencoding-lsr] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-Demi] [\typefaceencoding-lsd] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-DemiItalic] [\typefaceencoding-lsdi] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-Italic] [\typefaceencoding-lsi] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-Bold] [\typefaceencoding-lsb] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-BoldItalic] [\typefaceencoding-lsbi] [encoding=\typefaceencoding]
-\stoptypescript
-
-\starttypescript [mono] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaSans-Typewriter] [\typefaceencoding-lstr] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-TypewriterBold] [\typefaceencoding-lstb] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-TypewriterBoldOblique] [\typefaceencoding-lstbo] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaSans-TypewriterOblique] [\typefaceencoding-lsto] [encoding=\typefaceencoding]
-\stoptypescript
-
-\starttypescript [math] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaBright] [\typefaceencoding-lbr] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaNewMath-AltItalic] [lbmo]
- \definefontsynonym [LucidaNewMath-Arrows] [lbma]
- \definefontsynonym [LucidaNewMath-Extension] [lbme]
- \definefontsynonym [LucidaNewMath-Roman] [lbmr]
- \definefontsynonym [LucidaNewMath-Italic] [lbmi]
- \definefontsynonym [LucidaNewMath-Symbol] [lbms]
- \definefontsynonym [LucidaBlackletter] [lbl]
-\stoptypescript
-
-\starttypescript [boldmath,bfmath] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo]
- \definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad]
- \definefontsynonym [LucidaNewMath-Extension] [lbme]
- \definefontsynonym [LucidaNewMath-DemiBold] [lbmd]
- \definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi]
- \definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd]
-\stoptypescript
-
-\starttypescript [calligraphy] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaCalligraphy-Italic] [\typefaceencoding-lbc] [encoding=\typefaceencoding]
-\stoptypescript
-
-\starttypescript [casual] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaCasual] [\typefaceencoding-lbkr] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaCasual-Italic] [\typefaceencoding-lbki] [encoding=\typefaceencoding]
-\stoptypescript
-
-\starttypescript [handwriting] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaHandwriting-Italic] [\typefaceencoding-lbh] [encoding=\typefaceencoding]
-\stoptypescript
-
-\starttypescript [fax] [lucida] [texnansi,ec,8r]
- \definefontsynonym [LucidaFax] [\typefaceencoding-lfr] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaFax-Demi] [\typefaceencoding-lfd] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaFax-DemiItalic] [\typefaceencoding-lfdi] [encoding=\typefaceencoding]
- \definefontsynonym [LucidaFax-Italic] [\typefaceencoding-lfi] [encoding=\typefaceencoding]
-\stoptypescript
-
%D For those who want to use the existing tfm and vf files we
%D provide:
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
index 46d1811cc..cbd55abd5 100644
--- a/tex/context/base/type-exa.tex
+++ b/tex/context/base/type-exa.tex
@@ -77,6 +77,7 @@
\definetypeface [lucida] [ss] [sans] [lucida] [default] [encoding=\typescripttwo]
\definetypeface [lucida] [tt] [mono] [lucida] [default] [encoding=\typescripttwo]
\definetypeface [lucida] [hw] [handwriting] [lucida] [default] [encoding=\typescripttwo]
+ %definetypeface [lucida] [cg] [calligraphy] [lucida] [default] [encoding=\typescripttwo]
\stoptypescript
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
index 48e67009b..580dde7e4 100644
--- a/tex/context/base/type-ini.tex
+++ b/tex/context/base/type-ini.tex
@@ -58,8 +58,7 @@
\pushmacro\typescriptthree
\pushmacro\stoptypescript
\typescriptfoundfalse
- \writestatus\m!fonts
- {[\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}%
+ \writestatus\m!fonts{[\@@typescriptone] [\@@typescripttwo] [\@@typescriptthree]}%
\processcommacommand[\typescriptfiles]\dododousetypescript
\firsttypescriptpassfalse % testen
\popmacro\stoptypescript
@@ -299,9 +298,11 @@
% \expanded{\processcommalist[#1]}\docommando
% \ifproductionrun \loadallfontmapfiles \fi}
+% this mechanism will be adapted to the new pdftex features
+
\def\dopreloadmapfile#1%
{\doifinstringelse{.}{#1}
- {\writestatus{pdftex}{compensate map file: #1}%
+ {\writestatus\m!fonts{assuming map file: #1}%
\setxvalue{#1 \c!status}{3}%
\doglobal\removefromcommalist{#1}\allfontmapsfiles}
{\expanded{\dopreloadmapfile{#1.\f!fontmapextension}}}}
@@ -309,59 +310,88 @@
\def\preloadmapfile[#1]%
{\expanded{\processcommalist[#1]}\dopreloadmapfile}
-\def\doloadmapfile#1%
- {\doifinstringelse{.}{#1}
- {\doglobal\pretocommalist{#1}\allfontmapsfiles}
- {\expanded{\doloadmapfile{#1.\f!fontmapextension}}}}
-
-\def\loadmapfile[#1]% last added first !
- {\expanded{\processcommalist[#1]}\doloadmapfile
- \ifproductionrun \loadallfontmapfiles \fi}
-
-\def\doloadfontmapfile#1% will be special
- {\doifundefined{#1 \c!status}
- {\ifnum\realpageno>\plusone
- \writestatus{pdftex}{too late for map file: #1}%
- \else
- \writestatus{pdftex}{using map file: #1}%
- \fi
- \doiffileelse{#1}{\pdfmapfile{+#1}}\donothing
- \setxvalue{#1 \c!status}{1}}}
+\def\loadmapfile[#1]%
+ {\expanded{\processcommalist[#1]}\loadthemapfile}
+
+% too soon, no driver known, \ifproductionrun \loadallfontmapfiles \fi}
+
+% temp hack, will become just \addto
+
+\ifx\pdftexversion\undefined
+
+ \def\loadthemapfile#1%
+ {\doifinstringelse{.}{#1}
+ {\doglobal\addtocommalist{#1}\allfontmapsfiles}
+ {\expanded{\loadthemapfile{#1.\f!fontmapextension}}}}
+
+\else\ifnum\pdftexversion<200
+
+ \def\loadthemapfile#1%
+ {\doifinstringelse{.}{#1}
+ {\doglobal\pretocommalist{#1}\allfontmapsfiles}
+ {\expanded{\loadthemapfile{#1.\f!fontmapextension}}}}
+
+\else
+
+ \def\loadthemapfile#1%
+ {\doifinstringelse{.}{#1}
+ %{\doglobal\pretocommalist{#1}\allfontmapsfiles}
+ {\doglobal\addtocommalist{#1}\allfontmapsfiles}
+ {\expanded{\loadthemapfile{#1.\f!fontmapextension}}}}
+
+
+\fi \fi
+
+\def\doloadfontmapfile#1%
+ {\ifundefined{#1 \c!status}%
+ \writestatus\m!fonts{using map file: #1}%
+ \doloadmapfile{+}{#1}%
+ \setxvalue{#1 \c!status}{1}%
+ \fi}
\def\doreportfontmapfile#1%
- {\doifundefined{#1 \c!status}
- {\writestatus{pdftex}{needs map file: #1}%
- \setxvalue{#1 \c!status}{2}}}
+ {\ifundefined{#1 \c!status}%
+ \writestatus\m!fonts{needs map file: #1}%
+ \setxvalue{#1 \c!status}{2}%
+ \fi}
\def\loadallfontmapfiles
{%\message{[\allfontmapsfiles]}%
+ \ifconditional\resettingmapfile
+ \doresetmapfilelist
+ \global\setfalse\resettingmapfile
+ \fi
\ifx\allfontmapsfiles\empty \else
\ifautoloadmapfiles
- \ifcase\pdfoutput \else \ifx\pdfmapfile\undefined \else
- \processcommacommand[\allfontmapsfiles]\doloadfontmapfile
- \forgetmapfiles
- \fi \fi
+ \processcommacommand[\allfontmapsfiles]\doloadfontmapfile
\else
\processcommacommand[\allfontmapsfiles]\doreportfontmapfile
- \forgetmapfiles
\fi
+ \forgetmapfiles
\fi}
-\appendtoks \loadallfontmapfiles \to \everyjob
+% since this is driver dependent, and since we may set map files
+% before an output format is defined, we need to postpone it
+
+%appendtoks \loadallfontmapfiles \to \everyPDFximage
\appendtoks \loadallfontmapfiles \to \everystarttext
\appendtoks \loadallfontmapfiles \to \everybeforepagebody
\newif\ifautoloadmapfiles
+\let\allfontmapsfiles\empty
+
\def\forgetmapfiles
- {\global\let\allfontmapsfiles\empty}
+ {\globallet\allfontmapsfiles\empty}
+
+\newconditional\resettingmapfile
-\forgetmapfiles
+\def\resetmapfiles
+ {\global\settrue\resettingmapfile}
\def\disablemapfiles
- {\ifcase\pdfoutput \else \ifx\pdfmapfile\undefined \else
- \pdfmapfile{}% this will (kind of reset) the map file loading
- \fi \fi}
+ {\resetmapfiles
+ \forgetmapfiles}
% \definetypeface [#1:joke] [#2:rm]
% \definetypeface [#1:joke] [#2:rm] [#3:...]
@@ -384,10 +414,10 @@
\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]%
{\dododefinetypeface[#1][#2]
\iffifthargument % sixth is optional
- % \getparameters[\??ts][rscale=1,\s!encoding=\defaultencoding,#6]
- % we need to expand since in #6 there can be a \typescripttwo
-\expanded{\getparameters[\??ts][\s!rscale=1,\s!encoding=\defaultencoding,#6]}%
-% toch niet \expanded{\getparameters[\??ts][\s!rscale=1,\s!encoding=\s!default,#6]}%
+ % \getparameters[\??ts][rscale=1,\s!encoding=\defaultencoding,#6]
+ % we need to expand since in #6 there can be a \typescripttwo
+ \expanded{\getparameters[\??ts][\s!rscale=1,\s!encoding=\defaultencoding,#6]}%
+ % toch niet \expanded{\getparameters[\??ts][\s!rscale=1,\s!encoding=\s!default,#6]}%
\pushmacro\relativefontsize
\pushmacro\typefaceencoding
\pushmacro\fontclass
@@ -398,7 +428,7 @@
%\writestatus{typeface}{[#1] [#2] [#3] [#4]}
\writestatus\m!fonts{[#1] [#2] [#3] [#4]}
\usetypescript[map][\typefaceencoding]
- \usetypescript[#3][#4][name,default,\typefaceencoding,special]
+ \usetypescript[#3,map][#4][name,default,\typefaceencoding,special]
\usetypescript[#3][#5][size]
\popmacro\fontclass
\popmacro\typefaceencoding
diff --git a/tex/context/base/type-map.tex b/tex/context/base/type-map.tex
index bea38ec32..471d7897a 100644
--- a/tex/context/base/type-map.tex
+++ b/tex/context/base/type-map.tex
@@ -11,107 +11,125 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-%D Beware, this may change to run time loading once pdftex can do
-%D that per page.
+%D This one plays safe:
+
+\starttypescript [map] [base] [all]
+ \loadmapfile[original-base.map]
+ \loadmapfile[ec-base.map]
+ \loadmapfile[8r-base.map]
+ \loadmapfile[qx-base.map]
+ \loadmapfile[texnansi-base.map]
+ \loadmapfile[original-ams-cmr.map]
+ \loadmapfile[original-ams-euler.map]
+ \loadmapfile[original-public-lm.map]
+ \loadmapfile[original-public-plr.map]
+ \loadmapfile[original-public-csr.map]
+\stoptypescript
-%D We cannot be too clever here since loading the mapfile is
-%D a time sensitive operation. Better to load a couple more
-%D then to run into problems.
+% This is the base map file, load it to be sure.
-\starttypescript [map] [all]
+\starttypescript [map] [all] [ec,8r,texnansi]
+ \loadmapfile[original-base.map]
+ \loadmapfile[\typescriptthree-base.map]
+\stoptypescript
+
+% if we were in full control, we could have
+%
+% \starttypescript [berry] [ec]
+% \loadmapfile[ec-base.map]
+% \stoptypescript
+
+% cmr and related
+
+\starttypescript [all] [cmr]
\loadmapfile[original-ams-cmr.map]
\loadmapfile[original-ams-euler.map]
\stoptypescript
-\starttypescript [map] [lm]
- \loadmapfile[original-ams-lmr.map]
+\starttypescript [all] [il2,csr]
+ \loadmapfile[original-public-csr.map]
\stoptypescript
-\starttypescript [map] [il2]
- \loadmapfile[il2-ams-cmr.map]
+\starttypescript [all] [pl0,plr]
+ \loadmapfile[original-public-plr.map]
\stoptypescript
-\starttypescript [map] [pl0]
- \loadmapfile[pl0-ams-cmr.map]
+\starttypescript [all] [lm,lmr]
+ \loadmapfile[original-public-lm.map]
\stoptypescript
-% beware, this one will not handle \usetypescript [map] [x,y]
-%
-% \starttypescript [map] [ec,texnansi,8r]
-% \loadmapfile[\typescripttwo-urw-times.map]
-% \loadmapfile[\typescripttwo-urw-helvetica.map]
-% \stoptypescript
+% latin modern
-\starttypescript [map] [8r]
- \loadmapfile[8r-adobe-utopia.map]
- \loadmapfile[8r-bitstrea-charter.map]
- \loadmapfile[8r-public-antp.map]
- \loadmapfile[8r-public-antt.map]
- \loadmapfile[8r-urw-bookman.map]
- \loadmapfile[8r-urw-courier.map]
- \loadmapfile[8r-urw-helvetica.map]
- \loadmapfile[8r-urw-palatino.map]
- \loadmapfile[8r-urw-times.map]
- \loadmapfile[8r-urw-zapfchan.map]
- \loadmapfile[8r-urw-ncntrsbk.map]
-\stoptypescript
-
-\starttypescript [map] [ec]
- \loadmapfile[ec-adobe-utopia.map]
- \loadmapfile[ec-bitstrea-charter.map]
- \loadmapfile[ec-public-antp.map]
- \loadmapfile[ec-public-antt.map]
- \loadmapfile[ec-urw-bookman.map]
- \loadmapfile[ec-urw-courier.map]
- \loadmapfile[ec-urw-helvetica.map]
- \loadmapfile[ec-urw-palatino.map]
- \loadmapfile[ec-urw-times.map]
- \loadmapfile[ec-urw-zapfchan.map]
- \loadmapfile[ec-urw-ncntrsbk.map]
-\stoptypescript
-
-\starttypescript [map] [texnansi]
- \loadmapfile[texnansi-adobe-utopia.map]
- \loadmapfile[texnansi-bitstrea-charter.map]
- \loadmapfile[texnansi-public-antp.map]
- \loadmapfile[texnansi-public-antt.map]
- \loadmapfile[texnansi-urw-bookman.map]
- \loadmapfile[texnansi-urw-courier.map]
- \loadmapfile[texnansi-urw-helvetica.map]
- \loadmapfile[texnansi-urw-palatino.map]
- \loadmapfile[texnansi-urw-times.map]
- \loadmapfile[texnansi-urw-zapfchan.map]
- \loadmapfile[texnansi-urw-ncntrsbk.map]
-\stoptypescript
-
-\starttypescript [map] [ec,texnansi,8r]
- \loadmapfile[original-youngryu-px.map]
- \loadmapfile[original-youngryu-tx.map]
+\starttypescript [all] [latin-modern] [ec,texnansi,qx]
+ \loadmapfile[\typescriptthree-public-lm.map]
\stoptypescript
-% to do
+\starttypescript [var] [latin-modern] [ec,texnansi,qx]
+ \loadmapfile[\typescriptthree-var-exclusive-public-lm.map]
+\stoptypescript
-\starttypescript [map] [default]
- \loadmapfile[original-micropress-informal.map]
+% the next applies to texfont generated metrics
+
+\starttypescript [all] [utopia] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-adobe-utopia.map]
\stoptypescript
-\starttypescript [map] [texnansi]
- \loadmapfile[texnansi-bh-lucida.map]
+\starttypescript [all] [charter] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-bitstrea-charter.map]
\stoptypescript
-\starttypescript [map] [ec]
- \loadmapfile[ec-bh-lucida.map]
- % this may change to original-*.map
- \loadmapfile[fourier.map]
- \loadmapfile[fourier-utopia-expert.map]
+\starttypescript [all] [antykwa-torunska] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-public-antt.map]
+\stoptypescript
+
+\starttypescript [all] [antykwa-poltawskiego] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-public-antp.map]
+\stoptypescript
+
+\starttypescript [all] [bookman] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-bookman.map]
\stoptypescript
-\starttypescript [map] [8r]
- \loadmapfile[8r-bh-lucida.map]
+\starttypescript [all] [courier] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-courier.map]
\stoptypescript
-%\starttypescript [math] [helvetica] [all]
-% \loadmapfile[original-micropress-helvetica.map]
-%\stoptypescript
+\starttypescript [all] [helvetica] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-helvetica.map]
+\stoptypescript
+
+\starttypescript [all] [palatino] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-palatino.map]
+\stoptypescript
+
+\starttypescript [all] [times] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-times.map]
+\stoptypescript
+
+\starttypescript [all] [chancery] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-zapfchan.map]
+\stoptypescript
+
+\starttypescript [all] [schoolbook] [ec,8r,texnansi]
+ \loadmapfile[\typescriptthree-urw-ncntrsbk.map]
+\stoptypescript
+
+% once i can be sure that the map files are in the tree, i will
+% use those instead of original (too many variants anyway)
+
+\starttypescript [all] [palatino] [default,ec,texnansi,8r]
+ \loadmapfile[original-youngryu-px.map]
+\stoptypescript
+
+\starttypescript [all] [times] [default,ec,texnansi,8r]
+ \loadmapfile[original-youngryu-tx.map]
+\stoptypescript
+
+% to do: maybe original, maybe not
+
+\starttypescript [all] [fourier] [ec]
+ \loadmapfile[fourier.map]
+ \loadmapfile[fourier-utopia-expert.map]
+\stoptypescript
\endinput \ No newline at end of file
diff --git a/tex/context/base/type-syn.tex b/tex/context/base/type-syn.tex
index ca05e6827..d8a7d458a 100644
--- a/tex/context/base/type-syn.tex
+++ b/tex/context/base/type-syn.tex
@@ -111,100 +111,6 @@
\definefontsynonym [MathBeta] [AMS-SymbolB]
\stoptypescript
-% Lucida Bright : Biggelow and Holmes
-
-\starttypescript [serif] [lucida] [name]
- \definefontsynonym [Serif] [LucidaBright]
- \definefontsynonym [SerifBold] [LucidaBright-Demi]
- \definefontsynonym [SerifItalic] [LucidaBright-Italic]
- \definefontsynonym [SerifSlanted] [LucidaBright-Oblique]
- \definefontsynonym [SerifBoldItalic] [LucidaBright-DemiItalic]
- \definefontsynonym [SerifBoldSlanted] [LucidaBright-DemiItalic]
- \definefontsynonym [SerifCaps] [LucidaBrightSmallcaps]
- \definefontsynonym [OldStyle] [MathItalic]
-\stoptypescript
-
-\starttypescript [sans] [lucida] [name]
- \definefontsynonym [Sans] [LucidaSans]
- \definefontsynonym [SansBold] [LucidaSans-Demi]
- \definefontsynonym [SansItalic] [LucidaSans-Italic]
- \definefontsynonym [SansSlanted] [LucidaSans-Italic]
- \definefontsynonym [SansBoldItalic] [LucidaSans-DemiItalic]
- \definefontsynonym [SansBoldSlanted] [LucidaSans-DemiItalic]
- \definefontsynonym [SansCaps] [LucidaSans]
-\stoptypescript
-
-\starttypescript [mono] [lucida] [name]
- \definefontsynonym [Mono] [LucidaSans-Typewriter]
- \definefontsynonym [MonoBold] [LucidaSans-TypewriterBold]
- \definefontsynonym [MonoItalic] [LucidaSans-TypewriterOblique]
- \definefontsynonym [MonoSlanted] [LucidaSans-TypewriterOblique]
- \definefontsynonym [MonoBoldItalic] [LucidaSans-TypewriterBoldOblique]
- \definefontsynonym [MonoBoldSlanted] [LucidaSans-TypewriterBoldOblique]
- \definefontsynonym [MonoCaps] [LucidaSans-Typewriter]
-\stoptypescript
-
-\starttypescript [math] [lucida] [name]
- \definefontsynonym [MathRoman] [LucidaBright]
- \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
- \definefontsynonym [MathItalic] [LucidaNewMath-AltItalic]
- \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol]
- \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows]
- \definefontsynonym [MathBeta] [LucidaNewMath-Roman]
-\stoptypescript
-
- \definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo]
- \definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad]
- \definefontsynonym [LucidaNewMath-Extension] [lbme]
- \definefontsynonym [LucidaNewMath-Demibold] [lbmd]
- \definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi]
- \definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd]
-
-\starttypescript [boldmath] [lucida] [name]
- \definefontsynonym [MathRoman] [LucidaBright-Demi]
- \definefontsynonym [MathExtension] [LucidaNewMath-Extension]
- \definefontsynonym [MathItalic] [LucidaNewMath-AltDemiItalic]
- \definefontsynonym [MathSymbol] [LucidaNewMath-Symbol-Demi]
- \definefontsynonym [MathAlpha] [LucidaNewMath-Arrows-Demi]
- \definefontsynonym [MathBeta] [LucidaNewMath-DemiBold]
-\stoptypescript
-
-\starttypescript [bfmath] [lucida] [name]
- \definefontsynonym [MathRomanBold] [LucidaNewMath-Demibold]
- \definefontsynonym [MathExtensionBold] [LucidaNewMath-Extension]
- \definefontsynonym [MathItalicBold] [LucidaNewMath-AltDemiItalic]
- \definefontsynonym [MathSymbolBold] [LucidaNewMath-Symbol-Demi]
- \definefontsynonym [MathAlphaBold] [LucidaNewMath-Arrows-Demi]
- \definefontsynonym [MathBetaBold] [LucidaNewMath-DemiBold] % ??
-\stoptypescript
-
-\starttypescript [handwriting] [lucida] [name]
- \definefontsynonym [Handwriting] [LucidaHandwriting-Italic]
-\stoptypescript
-
-\starttypescript [calligraphy] [lucida] [name]
- \definefontsynonym [Calligraphy] [LucidaCalligraphy-Italic]
-\stoptypescript
-
-% Informal : Vulis
-
-\starttypescript [casual] [informal] [name]
- \definefontsynonym [Serif] [Informal-Regular]
- \definefontsynonym [SerifBold] [Informal-Bold]
- \definefontsynonym [SerifSlanted] [Informal-Oblique]
- \definefontsynonym [SerifItalic] [Informal-Oblique]
- \definefontsynonym [SerifBoldSlanted] [Informal-BoldOblique]
- \definefontsynonym [SerifBoldItalic] [Informal-BoldOblique]
- \definefontsynonym [SerifCaps] [Informal-Regular]
-\stoptypescript
-
-\starttypescript [math] [informal] [name]
- \definefontsynonym [MathRoman] [Informal-Regular]
- \definefontsynonym [MathExtension] [Informal-MathExtendedSymbols]
- \definefontsynonym [MathItalic] [Informal-MathItalics]
- \definefontsynonym [MathSymbol] [Informal-MathSymbols]
-\stoptypescript
-
% Antykwa Torunska :
\starttypescript [serif] [antykwa-torunska] [name]
@@ -269,7 +175,7 @@
\definefontsynonym [Calligraphy] [Chancery]
\stoptypescript
-% schoolbook :
+% Schoolbook :
\starttypescript [serif] [schoolbook] [name]
\definefontsynonym [Serif] [Schoolbook-Roman]
diff --git a/tex/context/base/unic-000.tex b/tex/context/base/unic-000.tex
index 329dc4e6c..047814cb8 100644
--- a/tex/context/base/unic-000.tex
+++ b/tex/context/base/unic-000.tex
@@ -121,102 +121,102 @@
\startunicodevector 0
\expandafter\strippedcsname
\ifcase\numexpr(#1-159)!\@@unknownchar\or
- \unknownchar \or % NO-BREAK SPACE
- \exclamdown \or
- \textcent \or
- \textsterling \or
- \textcurrency \or
- \textyen \or
- \textbrokenbar \or
- \sectionmark \or
- \textdiaeresis \or
- \copyright \or
- \ordfeminine \or % FEMININE ORDINAL INDICATOR
- \unknownchar \or % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
- \textlognot \or
- \softhyphen \or
- \registered \or
- \textmacron \or
- \textdegree \or
- \textpm \or
- \unknownchar \or % SUPERSCRIPT TWO
- \unknownchar \or % SUPERSCRIPT THREE
- \textacute \or
- \unknownchar \or % MICRO SIGN
- \unknownchar \or % PILCROW SIGN
- \unknownchar \or % MIDDLE DOT
- \textcedilla \or
- \unknownchar \or % SUPERSCRIPT ONE
- \ordmasculine \or % MASCULINE ORDINAL INDICATOR
- \unknownchar \or % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
- \unknownchar \or % VULGAR FRACTION ONE QUARTER
- \unknownchar \or % VULGAR FRACTION ONE HALF
- \unknownchar \or % VULGAR FRACTION THREE QUARTERS
- \questiondown \or
- \Agrave \or
- \Aacute \or
- \Acircumflex \or
- \Atilde \or
- \Adiaeresis \or
- \Aring \or
- \AEligature \or
- \Ccedilla \or
- \Egrave \or
- \Eacute \or
- \Ecircumflex \or
- \Ediaeresis \or
- \Igrave \or
- \Iacute \or
- \Icircumflex \or
- \Idiaeresis \or
- \unknownchar \or % \Eth \or
- \Ntilde \or
- \Ograve \or
- \Oacute \or
- \Ocircumflex \or
- \Otilde \or
- \Odiaeresis \or
- \unknownchar \or
- \Ostroke \or
- \Ugrave \or
- \Uacute \or
- \Ucircumflex \or
- \Udiaeresis \or
- \Yacute \or
- \Thorn \or
- \ssharp \or
- \agrave \or
- \aacute \or
- \acircumflex \or
- \atilde \or
- \adiaeresis \or
- \aring \or
- \aeligature \or
- \ccedilla \or
- \egrave \or
- \eacute \or
- \ecircumflex \or
- \ediaeresis \or
- \igrave \or
- \iacute \or
- \icircumflex \or
- \idiaeresis \or
- \unknownchar \or % \eth \or
- \ntilde \or
- \ograve \or
- \oacute \or
- \ocircumflex \or
- \ohungarumlaut \or
- \odiaeresis \or
- \unknownchar \or
- \ostroke \or
- \ugrave \or
- \uacute \or
- \ucircumflex \or
- \udiaeresis \or
- \yacute \or
- \thorn \or
- \ydiaeresis \else
+ \nonbreakablespace \or
+ \exclamdown \or
+ \textcent \or
+ \textsterling \or
+ \textcurrency \or
+ \textyen \or
+ \textbrokenbar \or
+ \sectionmark \or
+ \textdiaeresis \or
+ \copyright \or
+ \ordfeminine \or % FEMININE ORDINAL INDICATOR
+ \unknownchar \or % LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ \textlognot \or
+ \softhyphen \or
+ \registered \or
+ \textmacron \or
+ \textdegree \or
+ \textpm \or
+ \twosuperior \or
+ \threesuperior \or
+ \textacute \or
+ \unknownchar \or % MICRO SIGN
+ \unknownchar \or % PILCROW SIGN
+ \periodcentered \or
+ \textcedilla \or
+ \onesuperior \or
+ \ordmasculine \or % MASCULINE ORDINAL INDICATOR
+ \unknownchar \or % RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ \onequarter \or
+ \onehalf \or
+ \threequarter \or
+ \questiondown \or
+ \Agrave \or
+ \Aacute \or
+ \Acircumflex \or
+ \Atilde \or
+ \Adiaeresis \or
+ \Aring \or
+ \AEligature \or
+ \Ccedilla \or
+ \Egrave \or
+ \Eacute \or
+ \Ecircumflex \or
+ \Ediaeresis \or
+ \Igrave \or
+ \Iacute \or
+ \Icircumflex \or
+ \Idiaeresis \or
+ \unknownchar \or % \Eth \or
+ \Ntilde \or
+ \Ograve \or
+ \Oacute \or
+ \Ocircumflex \or
+ \Otilde \or
+ \Odiaeresis \or
+ \unknownchar \or
+ \Ostroke \or
+ \Ugrave \or
+ \Uacute \or
+ \Ucircumflex \or
+ \Udiaeresis \or
+ \Yacute \or
+ \Thorn \or
+ \ssharp \or
+ \agrave \or
+ \aacute \or
+ \acircumflex \or
+ \atilde \or
+ \adiaeresis \or
+ \aring \or
+ \aeligature \or
+ \ccedilla \or
+ \egrave \or
+ \eacute \or
+ \ecircumflex \or
+ \ediaeresis \or
+ \igrave \or
+ \iacute \or
+ \icircumflex \or
+ \idiaeresis \or
+ \unknownchar \or % \eth \or
+ \ntilde \or
+ \ograve \or
+ \oacute \or
+ \ocircumflex \or
+ \ohungarumlaut \or
+ \odiaeresis \or
+ \unknownchar \or
+ \ostroke \or
+ \ugrave \or
+ \uacute \or
+ \ucircumflex \or
+ \udiaeresis \or
+ \yacute \or
+ \thorn \or
+ \ydiaeresis \else
\unknownchar
\fi
\stopunicodevector
diff --git a/tex/context/base/verb-ini.tex b/tex/context/base/verb-ini.tex
index 029964154..617a9314e 100644
--- a/tex/context/base/verb-ini.tex
+++ b/tex/context/base/verb-ini.tex
@@ -8,11 +8,11 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
-%D Today I would implement the pretty handler slightly
-%D different, using stack and intermediate flushing. Maybe
+%D Today I would implement the pretty handler slightly
+%D different, using stack and intermediate flushing. Maybe
%D even without active chars. So, someday \unknown
%D Because this module is quite independant of system macros,
@@ -25,8 +25,8 @@
%D lines of verbatim blocks are kept together. The second
%D adaption is due to the fact that I wanted to support pretty
%D printing not only for \TEX\ sources, but also for \PERL,
-%D \METAPOST\ and probably more. The \JAVASCRIPT\ module is
-%D closely related to \PERL, so we will not mention that one
+%D \METAPOST\ and probably more. The \JAVASCRIPT\ module is
+%D closely related to \PERL, so we will not mention that one
%D again.
\ifx \undefined \writestatus \input supp-mis.tex \fi
@@ -112,7 +112,7 @@
\def\obeyedpage {\vfill\eject}
%D Because we will introduce a status variable, we can define
-%D a better \type {\obeyedspace}.
+%D a better \type {\obeyedspace}.
\def\obeyedspace {\ifprocessingverbatim\hbox{ }\else\space\fi}
@@ -143,7 +143,7 @@
\catcode`\^^L=\@@active \def^^L{\par}
-%D The following indirect definitions enable us to implement
+%D The following indirect definitions enable us to implement
%D all kind of \type{\obeyed} handlers.
\bgroup
@@ -161,11 +161,11 @@
\gdef\ignorepages {\catcode`\^^L=\@@ignore} % \@@active\def^^L{\obeyedline}}
\gdef\ignoreeofs {\catcode`\^^Z=\@@ignore}
-%D For testing (see digit parser) we need an indirect macro
+%D For testing (see digit parser) we need an indirect macro
%D in order to compare the next (\type {\next}) token
-%D (possibly \type {^^M}) being \type {\obeyedline}.
+%D (possibly \type {^^M}) being \type {\obeyedline}.
-\gdef\nextobeyedline{\obeyedline}
+\gdef\nextobeyedline{\obeyedline}
\egroup
@@ -199,14 +199,14 @@
%D \macros
%D {processingverbatim}
-%D
+%D
%D Typesetting a file in most cases results in more than one
%D page. Because we don't want problems with files that are
%D read in during the construction of the page, we set \type
%D {\ifprocessingverbatim}, so the output routine can adapt
%D its behavior. Originally we used \type {\scratchread}, but
%D because we want to support nesting, we decided to use a
-%D separate input file.
+%D separate input file.
\newif\ifprocessingverbatim
@@ -247,11 +247,11 @@
\def\setverbatimspaceskip
{\setbox\scratchbox\hbox{x}%
- \spaceskip\wd\scratchbox
+ \spaceskip\wd\scratchbox
\xspaceskip\spaceskip}
\def\setupinlineverbatim
- {\verbatimfont
+ {\verbatimfont
\setverbatimspaceskip
\let\obeytabs\ignoretabs
\let\obeylines\ignorelines
@@ -336,11 +336,11 @@
%D
%D \egroup
%D
-%D The long ones are \type{\nobreaks} and the short ones
+%D The long ones are \type{\nobreaks} and the short ones
%D \type{\goodbreaks}. And this is how it's done:
\def\doverbatimnobreak
- {\ifoptimizeverbatim\penalty500\fi}
+ {\ifoptimizeverbatim\penalty500\fi}
\def\doverbatimgoodbreak
{\ifoptimizeverbatim\penalty\linepenalty\fi}
@@ -357,8 +357,8 @@
% \else
% \global\chardef\verbatimstatus=1
% \fi}
-%
-% more efficient
+%
+% more efficient
\global\chardef\verbatimstatus0
@@ -464,7 +464,7 @@
\escapechar=-1
\xdef\verbatimname{\string#1}%
\egroup
- \def\endofdisplayverbatim{\csname\verbatimname\endcsname}%
+ \def\endofdisplayverbatim{\csname\verbatimname\endcsname}%
\bgroup
\parindent\zeropoint
\ifdim\lastskip<\parskip
@@ -477,9 +477,9 @@
\expandafter\let\csname\verbatimname\endcsname\relax
\edef\endofverbatimcommand{\csname\verbatimname\endcsname}%
\edef\endofverbatimcommand{\meaning\endofverbatimcommand}%
- \verbatimfont
+ \verbatimfont
\setverbatimspaceskip
- \global\linepartrue % needed for paragraph numbering
+ \global\linepartrue % needed for paragraph numbering
\setupcopyverbatim
\initializeverbatimline
\copyverbatimline}
@@ -523,7 +523,7 @@
%D characters with special meanings. This macro is not used
%D in the verbatim macros, but is best defined in this module.
-\def\doprocesscatcodes#1% using a toks does not speed this up
+\def\doprocesscatcodes#1% using a toks does not speed this up
{\scratchcounter\ifeightbitcharacters 255\else 127\fi\relax
\loop
\savecatcode
@@ -550,10 +550,10 @@
\def\setcatcodes#1%
{\doprocesscatcodes{\catcode\scratchcounter=#1}}
-\def\uncatcodeallcharacters % slow one, with restore
+\def\uncatcodeallcharacters % slow one, with restore
{\setcatcodes\@@letter}
-\def\uncatcodecharacters % quick one
+\def\uncatcodecharacters % quick one
{\setnaturalcatcodes}
\newtoks\everycommoncatcodes
@@ -563,25 +563,25 @@
\def\setcommoncatcodes
{\catcode`\!\@@other \catcode`\?\@@other \catcode`\@\@@other
\catcode`\=\@@other \catcode`\<\@@other \catcode`\>\@@other
- \catcode`\*\@@other \catcode`\/\@@other
+ \catcode`\*\@@other \catcode`\/\@@other
\catcode`\-\@@other \catcode`\+\@@other
\catcode`\:\@@other \catcode`\;\@@other
- \catcode`\.\@@other \catcode`\,\@@other
+ \catcode`\.\@@other \catcode`\,\@@other
\catcode`\'\@@other \catcode`\"\@@other \catcode`\`\@@other
\catcode`\(\@@other \catcode`\)\@@other
\the\everycommoncatcodes}
-\def\setnaturalcatcodes % see elsewhere, merge 'm
+\def\setnaturalcatcodes % see elsewhere, merge 'm
{\setcommoncatcodes
\uncatcodespacetokens
- \catcode`\#\@@other
- \catcode`\$\@@other
- \catcode`\%\@@other
- \catcode`\&\@@other
- \catcode`\\\@@other
- \catcode`\^\@@other
+ \catcode`\#\@@other
+ \catcode`\$\@@other
+ \catcode`\%\@@other
+ \catcode`\&\@@other
+ \catcode`\\\@@other
+ \catcode`\^\@@other
\catcode`\_\@@other
- \catcode`\{\@@other
+ \catcode`\{\@@other
\catcode`\|\@@other
\catcode`\}\@@other
\catcode`\~\@@other
@@ -590,16 +590,16 @@
\def\setnormalcatcodes
{\setcommoncatcodes
\uncatcodespacetokens
- \catcode`\#\@@parameter
- \catcode`\$\@@mathshift
+ \catcode`\#\@@parameter
+ \catcode`\$\@@mathshift
\catcode`\%\@@comment
- \catcode`\&\@@alignment
- \catcode`\\\@@escape
- \catcode`\^\@@superscript
- \catcode`\_\@@subscript
- \catcode`\{\@@begingroup
- \catcode`\|\@@active
- \catcode`\}\@@endgroup
+ \catcode`\&\@@alignment
+ \catcode`\\\@@escape
+ \catcode`\^\@@superscript
+ \catcode`\_\@@subscript
+ \catcode`\{\@@begingroup
+ \catcode`\|\@@active
+ \catcode`\}\@@endgroup
\catcode`\~\@@active
\the\everynormalcatcodes}
@@ -642,9 +642,9 @@
\saverestoreactivecatcode
{\@EA\let\@EA~\csname\@@aa@@\the\scratchcounter\endcsname}}
-%D Especially when we enable pretty printing, we need to
-%D restore the meaning of active characters too. Just think of
-%D using \type{||} in headers and footers.
+%D Especially when we enable pretty printing, we need to
+%D restore the meaning of active characters too. Just think of
+%D using \type{||} in headers and footers.
\def\saverestoreactivecatcode#1%
{\edef\saveduccode{\the\uccode`~}%
@@ -678,18 +678,18 @@
\let\endrestorecatcodes \egroup
\fi}
-%D \macros
+%D \macros
%D {makeallother}
%D
-%D With \type {\makeallother} each character ($>0$) gets the
-%D category code 12.
+%D With \type {\makeallother} each character ($>0$) gets the
+%D category code 12.
%D
-%D The next alternative was okay when memory was still low.
+%D The next alternative was okay when memory was still low.
%D
%D \starttypen
%D \def\makeallother%
%D {\dorecurse{255}{\catcode\recurselevel=\@@other}}
-%D \stoptypen
+%D \stoptypen
%D
%D Today we prebuild a token list:
@@ -702,7 +702,7 @@
\def\makeallother{\the\makeallothertoks}
-\fi
+\fi
%D The main copying routine of display verbatim does an
%D ordinary string||compare on the saved closing command and
@@ -761,7 +761,7 @@
\let\endverbatimline \relax
\long\def\dodoverbatimline#1% we don't want to group
- {\bgroup % due to pretty status
+ {\bgroup % due to pretty status
\iflinepar\else\EveryPar{}\fi
\leavevmode
\xdef\dokeepverbatimlinedata
@@ -783,10 +783,10 @@
%D \macros
%D {flushrestofverbatimline}
%D
-%D Some pretty drivers will collect tokens for the sake of
-%D testing on keywords. This collected string needs to be
+%D Some pretty drivers will collect tokens for the sake of
+%D testing on keywords. This collected string needs to be
%D flushed. The \type {\relax} can serve as signal that there
-%D is nothing more to be interpreted.
+%D is nothing more to be interpreted.
\let\flushrestofverbatimline\empty
@@ -874,20 +874,20 @@
\advance\scratchcounter \plusone
\@EA\doprocesstabskip
\else\ifnum\scratchcounter>\spacespertab
- % nothing
+ % nothing
\else
\advance\scratchcounter \plusone
\@EAEAEA\doprocesstabskip
\fi\fi}
-\let\endoftabskipping=\relax % will become obsolete
+\let\endoftabskipping=\relax % will become obsolete
% \def\doprocesstabskipline#1%
% {\bgroup
% \scratchcounter1
% \dodoprocesstabskipline#1\relax\endoftabskipping
% \egroup}
-%
+%
% \def\dodoprocesstabskipline#1#2\endoftabskipping
% {\ifnum\scratchcounter>\spacespertab
% \scratchcounter\plusone
@@ -906,7 +906,7 @@
\def\doprocesstabskipline#1%
{\bgroup
\scratchcounter\plusone
- \dodoprocesstabskipline#1\relax
+ \dodoprocesstabskipline#1\relax
\egroup}
\def\dodoprocesstabskipline#1%
@@ -915,28 +915,28 @@
\fi \scratchcounter \plusone
\ifx#1\relax \else
\ifcase\tabskipmode
- % can't happen
- \or
- % go on
+ % can't happen
+ \or
+ % go on
\else\ifnum`#1<128
- % ok, no special character
+ % ok, no special character
\else\ifnum\catcode`#1=\active
- % quits parsing, else utf lookahead problems
+ % quits parsing, else utf lookahead problems
\chardef\tabskipmode\zerocount
\fi\fi\fi
- \ifcase\tabskipmode
+ \ifcase\tabskipmode
\@EAEAEA#1%
\else
\@EAEAEA#1\@EAEAEA\dodoprocesstabskipline
\fi
\fi}
-
-% ^ will be replaced
+
+% ^ will be replaced
\chardef\tabskipmode=1 % 0=quit 1=no test 2=test on active>128
%
-
+
\def\processverbatimline#1{#1} % remove the fake grouping
%D \macros
@@ -966,7 +966,7 @@
\processingverbatimtrue
\global\verbatimlinenumber0
\global\linepartrue
- \beginofverbatimlines
+ \beginofverbatimlines
\bgroup
\parindent\zeropoint
\ifdim\lastskip<\parskip
@@ -975,7 +975,7 @@
\fi
\parskip\zeropoint
\uncatcodecharacters
- \verbatimfont
+ \verbatimfont
\setverbatimspaceskip
\frenchspacing
\obeyspaces
@@ -984,13 +984,13 @@
\obeypages
\obeycharacters
\ignoreeofs
- \catcode`\^^M=\@@ignore % \par is already taken care of
+ \catcode`\^^M=\@@ignore % \par is already taken care of
\openin\verbatiminput=#1\relax
\skipfirstverbatimlinefalse
\initializeverbatimline
\def\readline%
{\ifeof\verbatiminput \else
- \ifx\firstverbatimfileline\empty
+ \ifx\firstverbatimfileline\empty
\global\advance\verbatimlinenumber\plusone
\read\verbatiminput to \verbatimline
\else
@@ -999,12 +999,12 @@
\fi
\fi
\ifeof\verbatiminput
- \ifx\lastverbatimfileline\empty
+ \ifx\lastverbatimfileline\empty
\presetlastverbatimline
\let\readline\relax
- \else % we will re-enter the \ifeof branch twice
+ \else % we will re-enter the \ifeof branch twice
\presetnormalverbatimline
- \def\readline%
+ \def\readline%
{\let\verbatimline\lastverbatimfileline
\let\lastverbatimfileline\empty}%
\fi
@@ -1024,11 +1024,11 @@
\fi
\closein\verbatiminput
\egroup
- \endofverbatimlines
+ \endofverbatimlines
\egroup
\ignorespaces}
-%D Something new:
+%D Something new:
\def\processfilelinesverbatim#1#2#3%
{\bgroup
@@ -1046,21 +1046,21 @@
\processfileverbatim{#1}%
\egroup}
-%D \macros
+%D \macros
%D {firstverbatimfileline, lastverbatimfileline}
%D
-%D The following two macros can be set to achieve special
+%D The following two macros can be set to achieve special
%D effects, like:
%D
%D \starttypen
%D \convertargument\StartFake{something}\to\firstverbatimfileline
%D \convertargument\StopFake\to\firstverbatimfileline
-%D \stoptypen
+%D \stoptypen
%D
-%D These hooks were needed for typesetting flowchart
-%D definitions verbatim, since the temporary files does not
-%D have the start and stop commands embedded.
-
+%D These hooks were needed for typesetting flowchart
+%D definitions verbatim, since the temporary files does not
+%D have the start and stop commands embedded.
+
\let\firstverbatimfileline\empty
\let\lastverbatimfileline \empty
@@ -1081,7 +1081,7 @@
%D character(s) without much expansion problems and/or
%D increasing run time.
-%D By the way, \TEX\ defines \type{\+} as an outer macro, so we
+%D By the way, \TEX\ defines \type{\+} as an outer macro, so we
%D have to redefine this one to keep ourselves out of complaints.
\def\+{\tabalign}
@@ -1239,10 +1239,10 @@
%D
%D \typebuffer
%D
-%D along with:
-%D
+%D along with:
+%D
%D \typebuffer[pretty]
-%D
+%D
%D When needed, one can use grouping.
%D
%D \startbuffer
@@ -1254,7 +1254,7 @@
%D
%D \typebuffer
%D
-%D Here we tell the visualizer that the \type +{+ should be
+%D Here we tell the visualizer that the \type +{+ should be
%D treated like a \type +[+ so we get:
%D
%D {\newprettytrue\typebuffer}
@@ -1282,7 +1282,7 @@
%D {\newprettytrue\typebuffer}
%D
%D \egroup
-%D
+%D
%D Don't forget to set:
\newif\ifnewpretty
@@ -1309,12 +1309,12 @@
\installnewpretty P \setupprettyPLtype
\installnewpretty T \setupprettyTEXtype
-%D \macros
+%D \macros
%D {ifnaturaltextext}
%D
-%D When one uses \ETEX, switching to normal \TEX\ is possible
-%D too. We also introduce a switch that can be used in the
-%D drivers and set in higher level shell macros.
+%D When one uses \ETEX, switching to normal \TEX\ is possible
+%D too. We also introduce a switch that can be used in the
+%D drivers and set in higher level shell macros.
\newif\ifnaturaltextext
@@ -1339,20 +1339,20 @@
\installnewpretty N \naturaltextext
-%D When seen in action this gives:
-%D
+%D When seen in action this gives:
+%D
%D \startbuffer
%D \startTEX
%D \def\mathematics#1% %%\ N usage: \type {\mathematics{x^2}}
%D {\ifmmode#1\else$#1$\fi} %%\ N becomes: \mathematics{X^2}
%D \stopTEX
%D \stopbuffer
-%D
-%D \haalbuffer
-%D
-%D This is keyed in as:
-%D
-%D \typebuffer
+%D
+%D \haalbuffer
+%D
+%D This is keyed in as:
+%D
+%D \typebuffer
%D This means that when the interpreter modules support this
%D mechanism, by default we have some keys already available.
@@ -1401,7 +1401,7 @@
%D main reason for this is that in \JAVA\ we have to deal with
%D \type{//}. Personally I prefer the double \type{%%} because
%D is stands out and is more symmetrical with the double
-%D slash.
+%D slash.
\bgroup
\catcode`\|=\@@escape
@@ -1504,12 +1504,12 @@
\def\doifprettyidentifierelse#1%
{\doifincsnameelse{\space#1\space}}
-%D \macros
+%D \macros
%D {prettyidentifierfont,prettyvariablefont,prettynaturalfont}
%D
-%D When one want to typeset identifiers and system variables
-%D in a different typeface, one has to set the next two
-%D variables.
+%D When one want to typeset identifiers and system variables
+%D in a different typeface, one has to set the next two
+%D variables.
\let\prettyidentifierfont=\relax
\let\prettyvariablefont =\relax
@@ -1538,14 +1538,14 @@
%D
%D Although for pretty printing \PERL\ and \JAVASCRIPT\ code
%D one has to implement a bit more clever mechanism, the next
-%D switches can be used to turn off pretty printing. The
-%D boolean turns on this feature.
+%D switches can be used to turn off pretty printing. The
+%D boolean turns on this feature.
\newif\ifdisablepretty \disableprettyfalse
\newif\ifprettydisabled \prettydisabledfalse
\def\disableprettynow
- {\ifdisablepretty\ifprettydisabled\else
+ {\ifdisablepretty\ifprettydisabled\else
\let\prettyidentifierfont\relax
\let\prettyvariablefont\relax
\let\prettycomment\relax
@@ -1562,20 +1562,20 @@
\def\enableprettynow
{\prettydisabledfalse
\let\prettyidentifierfont\normalprettyidentifierfont
- \let\prettyvariablefont \normalprettyvariablefont
- \let\prettynaturalfont \normalprettynaturalfont
+ \let\prettyvariablefont \normalprettyvariablefont
+ \let\prettynaturalfont \normalprettynaturalfont
\let\beginofpretty \normalbeginofpretty
\let\endofpretty \normalendofpretty}
-%D This feature is hooked into the verbatim line handling
+%D This feature is hooked into the verbatim line handling
%D routine with:
\def\beginverbatimline
{\prettydisabledfalse
- \ifnewpretty\else\let\handlenewpretty\empty\fi % moved
+ \ifnewpretty\else\let\handlenewpretty\empty\fi % moved
\let\normalprettyidentifierfont\prettyidentifierfont
- \let\normalprettyvariablefont \prettyvariablefont
- \let\normalprettynaturalfont \prettynaturalfont
+ \let\normalprettyvariablefont \prettyvariablefont
+ \let\normalprettynaturalfont \prettynaturalfont
\let\normalbeginofpretty \beginofpretty
\let\normalendofpretty \endofpretty}
@@ -1614,11 +1614,11 @@
%D
%D Here is the implementation:
-\newif\ifcontrolspace
-\newif\ifverbatimtabs
-\newif\ifprettyverbatim
+\newif\ifcontrolspace
+\newif\ifverbatimtabs
+\newif\ifprettyverbatim
-\ifCONTEXT \else
+\ifCONTEXT \else
\def\presettyping
{\ifcontrolspace \let\obeyspace \setcontrolspace \fi
@@ -1901,7 +1901,7 @@
%D macros, which of course are not available in a stand alone
%D application of this module.
-\ifCONTEXT
+\ifCONTEXT
\let\doifendofverbatim=\doifelse
@@ -1926,9 +1926,9 @@
% \expandafter\let\csname\verbatimname\endcsname=\relax
% \expandafter\convertargument\csname\verbatimname\endcsname
% \to\endofverbatimcommand
-% \verbatimfont
+% \verbatimfont
% \setverbatimspaceskip
-% \global\linepartrue % needed for paragraph numbering
+% \global\linepartrue % needed for paragraph numbering
% \setupcopyverbatim
% \initializeverbatimline
% \copyverbatimline}
@@ -1949,7 +1949,7 @@
\copyverbatimline}}
%D As a bonus, we provide the next alternative, which takes
-%D end tags like \type {Hello World!}.
+%D end tags like \type {Hello World!}.
% \def\processtaggeddisplayverbatim#1%
% {\par
@@ -1963,9 +1963,9 @@
% \fi
% \parskip\zeropoint
% \processingverbatimtrue
-% \verbatimfont
+% \verbatimfont
% \setverbatimspaceskip
-% \global\linepartrue % needed for paragraph numbering
+% \global\linepartrue % needed for paragraph numbering
% \setupcopyverbatim
% \initializeverbatimline
% \copyverbatimline}
@@ -1996,9 +1996,9 @@
\expandafter\convertargument\csname\verbatimname\endcsname
\to\endofverbatimcommand
\fi
- \verbatimfont
+ \verbatimfont
\setverbatimspaceskip
- \global\linepartrue % needed for paragraph numbering
+ \global\linepartrue % needed for paragraph numbering
\setupcopyverbatim
\initializeverbatimline
\copyverbatimline}
@@ -2011,8 +2011,8 @@
%D \macros
%D {installprettyescape}
%D
-%D The next feature is dedicated to Fabrice Popineau who
-%D wanted math inside verbatim.
+%D The next feature is dedicated to Fabrice Popineau who
+%D wanted math inside verbatim.
\def\prettyescapecnt{255}
@@ -2034,7 +2034,7 @@
\def\dodoinstallprettyescape#1#2#3%
{\unexpanded\setgvalue{PRETTY@#1@\prettyescapecnt}##1##2#2{#3{##2}}%
- \expanded % we need to freeze the counter
+ \expanded % we need to freeze the counter
{\doglobal\noexpand\appendtoks
\noexpand\doif{#1}\noexpand\prettyidentifier
{\noexpand\setpretty`\string#2=\prettyescapecnt
@@ -2042,7 +2042,7 @@
}\to \everysetupverbatim
\egroup}
-%D An example of its usage is:
+%D An example of its usage is:
%D
%D \startbuffer
%D \def\xverbatimmath#1#2{\naturaltextext\mathematics{#1}\relax}
@@ -2057,7 +2057,7 @@
%D if $x>10$ :
%D $x := 20$
%D ~x := 20~
-%D *x := 20*
+%D *x := 20*
%D end
%D \stopMP
%D \stopbuffer
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index 9ea384ad7..fd545cd78 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -699,8 +699,19 @@
\fi
\fi}
+% \long\def\docleanupXMLarguments#1/ #2\relax % space added earlier
+% {\edef\currentXMLarguments{#1}}
+%
+% \startbuffer
+% <xsl:value-of select="map[@att=$variable]/@att2"/>
+% \stopbuffer
+%
+% \showXMLbuffer
+%
+% No \type {\edef} in the following, else \showXMLbuffer fails:
+
\long\def\docleanupXMLarguments#1/ #2\relax % space added earlier
- {\edef\currentXMLarguments{#1}}
+ {\def\currentXMLarguments{#1}} % no \edef, goes wrong in \showXML
\def\executeXMLelementA % no fallback
{\ifcsname\@@XMLelement:\currentXMLfullidentifier\endcsname
@@ -1330,10 +1341,24 @@
%
% The next speed optimization is suggested by Taco. Since we
% are dealing with validated code, we can grab larger chunks.
+%
+% \long\def\doparseXMLarguments#1% space goes ok
+% {\if#1>%
+% \let\dodoparseXMLarguments\empty
+% \else\if#1/%
+% \chardef\kindofXMLelement\emptyXMLtag
+% \else
+% \XMLtoks{#1}%
+% \let\dodoparseXMLarguments\dodoparseXMLargumentsX
+% \fi\fi
+% \dodoparseXMLarguments}
+%
+% we squeeze out one more assignment
\long\def\doparseXMLarguments#1% space goes ok
{\if#1>%
- \let\dodoparseXMLarguments\empty
+ %\let\dodoparseXMLarguments\empty
+ \expandafter\gobbleoneargument % speedup
\else\if#1/%
\chardef\kindofXMLelement\emptyXMLtag
\else
@@ -1342,6 +1367,27 @@
\fi\fi
\dodoparseXMLarguments}
+% slightly faster:
+%
+% \long\def\doparseXMLarguments#1% space goes ok
+% {\if#1>%
+% \@EA\gobbleoneargument
+% \else\if#1/%
+% \chardef\kindofXMLelement\emptyXMLtag
+% \@EAEAEA\gobbletwoarguments
+% \else
+% \@EAEAEA\dodoparseXMLargumentsX
+% \fi\fi#1}
+%
+% \def\dodoparseXMLargumentsX#1=#2%
+% {\def\@@XMLname{#1}%
+% \getXMLNSSSS#1:\relax
+% \if#2"%
+% \expandafter\dodoparseXMLargumentsD
+% \else
+% \expandafter\dodoparseXMLargumentsS
+% \fi}
+
\def\dodoparseXMLargumentsX#1=#2%
{\edef\@@XMLname{\the\XMLtoks#1}%
\@EA\getXMLNSSSS\@@XMLname:\relax
@@ -1810,10 +1856,17 @@
%D Arguments (attributes) \unknown
+% \long\def\setXMLarguments#1#2#3% element [tag] settings
+% {\doifassignmentelse{#2}
+% {\long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}}
+% {\long\setvalue{\@@XMLmap :#1}{#2}% later we can init vars by this name
+% \doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}}
+
\long\def\setXMLarguments#1#2#3% element [tag] settings
{\doifassignmentelse{#2}
- {\long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}}
- {\long\setvalue{\@@XMLmap :#1}{#2}% later we can init vars by this name
+ {\letbeundefined{\@@XMLmap:#1}%
+ \long\setvalue{\@@XMLpars:#1}{\getrawparameters[\@@XMLvariable:#1:][#2]}}
+ {\long\setvalue{\@@XMLmap:#1}{#2}% later we can init vars by this name
\doifsomething{#3}{\long\setvalue{\@@XMLpars:#1}{\getrawparameters[#2][#3]}}}}
\def\presetXMLarguments#1%
diff --git a/tex/context/sample/demo-mps.tex b/tex/context/sample/demo-mps.tex
new file mode 100644
index 000000000..57bb690c0
--- /dev/null
+++ b/tex/context/sample/demo-mps.tex
@@ -0,0 +1,23 @@
+% interface=en
+
+\starttext
+
+\setupcolors
+ [state=start]
+
+\startMPpage
+ path p ; color c[] ;
+ p := fullsquare scaled 4cm ;
+ c[0] := transparent(1,.5,red) ;
+ c[1] := transparent(1,.5,green) ;
+ c[2] := transparent(1,.5,blue) ;
+ for i = 0 upto 2 :
+ fill p rotated (i*30) withcolor white ;
+ endfor ;
+ for i = 0 upto 2 :
+ fill p rotated (i*30) withcolor c[i] ;
+ endfor ;
+ addbackground withcolor transparent(1,.5,cmyk(0,0,1,0)) ;
+\stopMPpage
+
+\stoptext \ No newline at end of file
diff --git a/tex/context/sample/demo-tex.tex b/tex/context/sample/demo-tex.tex
new file mode 100644
index 000000000..309a0acfc
--- /dev/null
+++ b/tex/context/sample/demo-tex.tex
@@ -0,0 +1,23 @@
+% interface=en
+
+\setuppapersize
+ [S6][S6]
+
+\setuplayout
+ [width=middle,
+ height=middle]
+
+\setuphead
+ [chapter]
+ [header=high,
+ style=\bfc,
+ alternative=middle]
+
+\starttext
+
+\title{Peter D. Ward} \processfile{ward}
+\title{Hermann Zapf} \processfile{zapf}
+\title{Bill Bryson} \processfile{bryson}
+\title{Edward R. Tufte} \processfile{tufte}
+
+\stoptext \ No newline at end of file
diff --git a/tex/context/sample/demo-xml.tex b/tex/context/sample/demo-xml.tex
new file mode 100644
index 000000000..bf527a747
--- /dev/null
+++ b/tex/context/sample/demo-xml.tex
@@ -0,0 +1,53 @@
+% interface=en
+
+\defineXMLargument
+ [title] [label=]
+ {\title[\XMLop{label}]}
+
+\defineXMLenvironment
+ [itemize] [packed=]
+ {\doifelseXMLop{packed}{yes}
+ {\startitemize[packed]}
+ {\startitemize}}
+ {\stopitemize}
+
+\defineXMLenvironment
+ [item]
+ {\item}
+ {\par}
+
+\defineXMLenvironment
+ [p]
+ {\ignorespaces}
+ {\par}
+
+\starttext
+
+\startXMLdata
+<title label="example">Just an Example</title>
+
+<p>There are three items:</p>
+
+<itemize packed="yes">
+ <item>Number One</item>
+ <item>Number Two</item>
+ <item>Number Three</item>
+</itemize>
+
+<p>And tree more</p>
+
+<itemize>
+ <item>First Line</item>
+ <item>Second Line</item>
+ <item>Third Line</item>
+</itemize>
+\stopXMLdata
+
+Instead of putting the data in here you can put it in a file, say
+\type {sample.xml} and load that file using:
+
+\starttyping
+\processXMLfilegrouped{sample.xml}
+\stoptyping
+
+\stoptext \ No newline at end of file
diff --git a/tex/context/user/cont-sys.rme b/tex/context/user/cont-sys.rme
index 5e2adef31..1f9bd0dc2 100644
--- a/tex/context/user/cont-sys.rme
+++ b/tex/context/user/cont-sys.rme
@@ -8,97 +8,112 @@
%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.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\unprotect
-% Occasionally we will support both A4 and letter in
-% styles. If you want letter size paper to be the default,
+% Occasionally we will support both A4 and letter in
+% styles. If you want letter size paper to be the default,
% uncomment:
%
% \enablemode[\systemmodeprefix letter]
%
% If you always want to default to letter, you may uncomment
% the following line, but beware: it makes your documents less
-% portable:
+% portable:
%
% \setuppapersize[letter][letter]
-%
-% If you want some extras, just uncomment the following
+
+% If you want some extras, just uncomment the following
% line:
%
-% \usemodule[plus] % experimental code
-%
-% Here you can take care of overloading some (style)
-% defaults. What goes here, depends on your local system.
+% \usemodule[plus] % experimental code
%
+% Here you can take care of overloading some (style)
+% defaults. What goes here, depends on your local system.
+
% The following commands sets the default font encoding:
%
-% \setupencoding [\s!default=texnansi]
+% \setupencoding [\s!default=texnansi]
%
-% or:
+% or:
%
-% \setupencoding [\s!default=ec]
+% \setupencoding [\s!default=ec]
%
-% If you want the default berry names:
+% If you want the default berry names:
%
% \usetypescript [berry] [\defaultencoding]
%
-% If you run into missing font metrics kind of problems,
-% you may want to uncomment:
-%
-% \usetypescript[adobekb] [\defaultencoding]
+% If you run into missing font metrics kind of problems,
+% you may want to uncomment:
%
-% You can let \CONTEXT\ load the map files for \PDFTEX.
+% \usetypescript[adobekb] [\defaultencoding]
+
+% You can let \CONTEXT\ load the map files for \PDFTEX.
%
% \autoloadmapfilestrue
%
-% If you use the more verbose naming scheme, uncomment this:
+% (1) use this when you have a big mapfile
%
-% \usetypescript [map] [default,\defaultencoding]
+% \preloadmapfile[original-base.map]
+% \preloadmapfile[ec-base.map]
+% \preloadmapfile[8r-base.map]
+% \preloadmapfile[qx-base.map]
+% \preloadmapfile[texnansi-base.map]
+% \preloadmapfile[original-ams-cmr.map]
+% \preloadmapfile[original-ams-euler.map]
+% \preloadmapfile[original-public-lm.map]
+% \preloadmapfile[original-public-plr.map]
+% \preloadmapfile[original-public-csr.map]
%
-% or :
+% (2) otherwise, use this if you have a fast machine
%
-% \usetypescript [map] [all]
+% \resetmapfiles \usetypescript [map] [base] [all]
%
-% In case you have set psfonts.map already, you can comment
-% the following lines. Beware: pdftex uses the fontname
-% (second entry on map file lines) for (not so) clever
-% remapping, so in case of troubles, remove the names (is
-% safe)!
+% (3) or this if it's a slow one:
%
-% \preloadmapfile [original-ams-cmr]
-% \preloadmapfile [original-ams-euler]
-% \preloadmapfile [il2-ams-cmr]
-% \preloadmapfile [pl0-ams-cmr]
+% \resetmapfiles
%
-% Some styles default to Lucida Bright. You can overload
-% Lucida by Times cum suis. Watch out, the pos collection
-% is not scaled relatively.
+% \loadmapfile[original-base.map]
+% \loadmapfile[ec-base.map]
+% \loadmapfile[8r-base.map]
+% \loadmapfile[qx-base.map]
+% \loadmapfile[texnansi-base.map]
+% \loadmapfile[original-ams-cmr.map]
+% \loadmapfile[original-ams-euler.map]
+% \loadmapfile[original-public-lm.map]
+% \loadmapfile[original-public-plr.map]
+% \loadmapfile[original-public-csr.map]
+% \loadmapfile[texnansi-public-lm.map]
+% \loadmapfile[ec-public-lm.map]
+
+% When you have your own fonts installed, you may want to predefine:
%
-% \definetypescriptsynonym [lbr] [pos]
+% \usetypescriptfile[type-buy]
+
+% Some styles default to Lucida Bright. You can overload
+% Lucida by Times cum suis. Watch out, the pos collection
+% is not scaled relatively.
%
+% \definetypescriptsynonym [lbr] [pos]
+
% Compensate for missing files:
%
% \definefontsynonym [gbhei] [gbsong]
% \definefontsynonym [gbheisl] [gbsong]
% \definefontsynonym [gbheisl] [gbsong]
-%
-% The already loaded map file list can be reset with:
-%
-% \forgetmapfiles
-%
-% Setting up a global figure path:
+
+% Setting up a global figure path
%
% \setupexternalfigures [\c!gebied={e:/fig/eps,t:/mine/figs}]
%
-% Loading a specific special driver:
+% Loading a specific special driver:
%
% \setupoutput [dviwindo]
-% Changing language defaults:
-%
+% Changing language defaults
+%
% \setuplanguage
% [nl]
% [\c!leftquote=\upperleftsinglesixquote,
@@ -106,38 +121,38 @@
% Loading local preferences, for example
%
-% \input prag-gen % company styles
-% \input prag-log % more company styles
+% \input prag-gen % company styles
+% \input prag-log % more company styles
%
-% Enabling run time \METAPOST\ (also enable \write18 in
+% Enabling run time \METAPOST\ (also enable \write18 in
% texmf.cnf):
-% \runMPgraphicstrue
+% \runMPgraphicstrue
% \runMPTEXgraphicstrue
% This saves some runtime, but needs a format, which you can
-% make with 'texexec --make --alone metafun'. Make sure that
-% the mem files are moved to the used web2c path (locate with
+% make with 'texexec --make --alone metafun'. Make sure that
+% the mem files are moved to the used web2c path (locate with
% 'kpsewhich plain.mem').
\useMETAFUNformattrue
-% Enabling nested pretty printing:
+% Enabling nested pretty printing
-\newprettytrue
+\newprettytrue
-% This can be a way to get things working on system with
+% This can be a way to get things working on system with
% name clashes. (Some \TeX's tend do search system wide.)
\protectbufferstrue
-% You can enable a more extensive figure searching, but
-% normally this is not really needed and even annoying.
+% You can enable a more extensive figure searching, but
+% normally this is not really needed and even annoying.
%
-% \runutilityfiletrue
-
-% You can also load additional encodings here:
+% \runutilityfiletrue
+% You can also load additional encodings here:
+%
% \useencoding[x5]
%
% \useregime[cyr]
@@ -145,6 +160,6 @@
% \enableregime[cp1251]
% \setupbodyfont[cyr]
-% So far.
+% So far.
-\protect \endinput
+\protect \endinput \ No newline at end of file