summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/colo-ini.tex83
-rw-r--r--tex/context/base/cont-new.tex41
-rw-r--r--tex/context/base/context.tex16
-rw-r--r--tex/context/base/core-buf.tex26
-rw-r--r--tex/context/base/core-fil.tex91
-rw-r--r--tex/context/base/core-fnt.tex5
-rw-r--r--tex/context/base/core-int.tex4
-rw-r--r--tex/context/base/core-itm.tex10
-rw-r--r--tex/context/base/core-mat.tex220
-rw-r--r--tex/context/base/core-mis.tex541
-rw-r--r--tex/context/base/core-ref.tex64
-rw-r--r--tex/context/base/core-reg.tex57
-rw-r--r--tex/context/base/core-sys.tex4
-rw-r--r--tex/context/base/core-uti.tex6
-rw-r--r--tex/context/base/core-ver.tex112
-rw-r--r--tex/context/base/enco-032.tex82
-rw-r--r--tex/context/base/enco-agr.tex12
-rw-r--r--tex/context/base/enco-ffr.tex12
-rw-r--r--tex/context/base/enco-ini.tex81
-rw-r--r--tex/context/base/enco-mis.tex10
-rw-r--r--tex/context/base/enco-pfr.tex1
-rw-r--r--tex/context/base/enco-uni.tex5
-rw-r--r--tex/context/base/font-ini.tex10
-rw-r--r--tex/context/base/lang-all.xml12
-rw-r--r--tex/context/base/lang-ctx.tex4
-rw-r--r--tex/context/base/lang-grk.tex7
-rw-r--r--tex/context/base/lang-ini.tex6
-rw-r--r--tex/context/base/m-streams.tex33
-rw-r--r--tex/context/base/m-units.tex16
-rw-r--r--tex/context/base/math-ini.tex43
-rw-r--r--tex/context/base/math-mis.tex49
-rw-r--r--tex/context/base/math-uni.tex171
-rw-r--r--tex/context/base/meta-ini.tex10
-rw-r--r--tex/context/base/mult-con.tex4
-rw-r--r--tex/context/base/mult-sys.tex60
-rw-r--r--tex/context/base/page-flt.tex89
-rw-r--r--tex/context/base/page-lay.tex30
-rw-r--r--tex/context/base/page-lyr.tex9
-rw-r--r--tex/context/base/page-one.tex15
-rw-r--r--tex/context/base/page-sid.tex2
-rw-r--r--tex/context/base/page-str.tex9
-rw-r--r--tex/context/base/page-txt.tex57
-rw-r--r--tex/context/base/regi-cp1250.tex151
-rw-r--r--tex/context/base/regi-syn.tex22
-rw-r--r--tex/context/base/sort-ini.tex28
-rw-r--r--tex/context/base/sort-lan.tex52
-rw-r--r--tex/context/base/sort-new.tex10
-rw-r--r--tex/context/base/spec-tpd.tex196
-rw-r--r--tex/context/base/supp-lan.tex60
-rw-r--r--tex/context/base/supp-mat.tex15
-rw-r--r--tex/context/base/supp-mps.tex4
-rw-r--r--tex/context/base/syst-ext.tex13
-rw-r--r--tex/context/base/type-exa.tex2
-rw-r--r--tex/context/base/type-ini.tex33
-rw-r--r--tex/context/base/unic-032.tex380
-rw-r--r--tex/context/base/unic-033.tex374
-rw-r--r--tex/context/base/unic-ini.tex2
-rw-r--r--tex/context/base/verb-ini.tex2
-rw-r--r--tex/context/base/xtag-ext.tex27
-rw-r--r--tex/context/base/xtag-ini.tex1
-rw-r--r--tex/context/base/xtag-mmp.tex21
-rw-r--r--tex/context/base/xtag-pml.tex40
-rw-r--r--tex/context/base/xtag-pmu.tex68
-rw-r--r--tex/context/base/xtag-stk.tex18
-rw-r--r--tex/context/bib/bibl-ams.tex438
-rw-r--r--tex/context/bib/bibl-apa-de.tex388
-rw-r--r--tex/context/bib/bibl-apa-fr.tex389
-rw-r--r--tex/context/bib/bibl-apa.tex52
-rw-r--r--tex/context/bib/bibl-aps.tex36
-rw-r--r--tex/context/bib/bibl-num-fr.tex427
-rw-r--r--tex/context/bib/bibl-num.tex427
-rw-r--r--tex/context/bib/bibl-ssa.tex486
-rw-r--r--tex/context/bib/t-bib.tex701
-rw-r--r--tex/context/bib/t-bibltx.tex75
-rw-r--r--tex/context/interface/cont-cz.xml3
-rw-r--r--tex/context/interface/cont-de.xml3
-rw-r--r--tex/context/interface/cont-en.xml3
-rw-r--r--tex/context/interface/cont-fr.xml3
-rw-r--r--tex/context/interface/cont-it.xml3
-rw-r--r--tex/context/interface/cont-nl.xml3
-rw-r--r--tex/context/interface/cont-ro.xml3
-rw-r--r--tex/context/interface/keys-cz.xml3
-rw-r--r--tex/context/interface/keys-de.xml3
-rw-r--r--tex/context/interface/keys-en.xml3
-rw-r--r--tex/context/interface/keys-fr.xml3
-rw-r--r--tex/context/interface/keys-it.xml3
-rw-r--r--tex/context/interface/keys-nl.xml3
-rw-r--r--tex/context/interface/keys-ro.xml3
-rw-r--r--tex/context/interface/t-bib.xml386
-rw-r--r--tex/context/patterns/lang-agr.hyp10
-rw-r--r--tex/context/patterns/lang-agr.pat2026
91 files changed, 8263 insertions, 1258 deletions
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index 1e2157ea9..779479681 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -351,6 +351,39 @@
% {\showmessage\m!colors3{#1}\empty}}%
% \unexpanded\setvalue{#1}{\color[#1]}} % \unexpanded toegevoegd
+% \def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
+% {#1\addtocommalist{#5}\colorlist % optional
+% \doifassignmentelse{#6}
+% {\@@resetcolorparameters
+% \getparameters[\??cl @@][#6]%
+% \ifx\@@cl@@h\empty
+% \doifelse{\@@cl@@r\@@cl@@g\@@cl@@b}{\@@cl@@z\@@cl@@z\@@cl@@z}
+% {\doifelse{\@@cl@@c\@@cl@@m\@@cl@@y\@@cl@@k}{\@@cl@@z\@@cl@@z\@@cl@@z\@@cl@@z}
+% {\doifelse\@@cl@@s\@@cl@@z
+% {\showmessage\m!colors8{{[#6]},#5}%
+% #3{\??cr#5}{\colorZpattern}}
+% {#3{\??cr#5}{\colorSpattern}}}
+% {#3{\??cr#5}{\colorCpattern}}}
+% {#3{\??cr#5}{\colorRpattern}}%
+% \else
+% \setxvalue{\??cr#5}{\colorHpattern}%
+% \fi
+% % new: e=external spot color name
+% \ifx\@@cl@@e\empty \else
+% \doregisterspotcolorname{#5}\@@cl@@e
+% \fi}
+% {\doifdefinedelse{\??cr#6}
+% {\doifelse{#5}{#6}
+% {% this way we can freeze \definecolor[somecolor][somecolor]
+% % and still prevent cyclic definitions
+% \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
+% {\iffreezecolors\@EA#3\else\@EA#2\fi
+% {\??cr#5}{\getvalue{\??cr#6}}}}
+% {\showmessage\m!colors3{#5 (def)}}}%
+% \ifcase#4\or
+% \unexpanded#2{#5}{\switchtocolor[#5]}% \unexpanded toegevoegd
+% \fi}
+
\def\dododefinecolor#1#2#3#4[#5][#6]% #2==set(g)value #3==set[e|x]value
{#1\addtocommalist{#5}\colorlist % optional
\doifassignmentelse{#6}
@@ -372,18 +405,30 @@
\ifx\@@cl@@e\empty \else
\doregisterspotcolorname{#5}\@@cl@@e
\fi}
- {\doifdefinedelse{\??cr#6}
- {\doifelse{#5}{#6}
- {% this way we can freeze \definecolor[somecolor][somecolor]
- % and still prevent cyclic definitions
- \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
- {\iffreezecolors\@EA#3\else\@EA#2\fi
- {\??cr#5}{\getvalue{\??cr#6}}}}
- {\showmessage\m!colors3{#5 (def)}}}%
+ {\doifelsenothing\currentpalet
+ \donefalse
+ {\doifdefinedelse{\??cr\currentpalet#6}\donetrue\donefalse}
+ \ifdone
+ \doifnot{#5}{#6}
+ {#2{\??cr#5}{\paletcolorspec{#6}}}%
+ \else
+ \doifdefinedelse{\??cr#6}
+ {\doifelse{#5}{#6}
+ {% this way we can freeze \definecolor[somecolor][somecolor]
+ % and still prevent cyclic definitions
+ \iffreezecolors#3{\??cr#5}{\getvalue{\??cr#6}}\fi}
+ {\iffreezecolors\@EA#3\else\@EA#2\fi
+ {\??cr#5}{\getvalue{\??cr#6}}}}
+ {\showmessage\m!colors3{#5 (def)}}%
+ \fi}%
\ifcase#4\or
\unexpanded#2{#5}{\switchtocolor[#5]}% \unexpanded toegevoegd
\fi}
+\def\paletcolorspec#1%
+% {\executeifdefined{\??cr\currentpalet#1}{\executeifdefined{\??cr#1}\empty}}
+ {\getvalue{\??cr\currentpalet#1}}
+
%D Hex color support is not enabled by default. You need to say \setupcolor
%D [hex] to get this working.
@@ -2257,10 +2302,16 @@
{\doifvaluesomething{\??pa#1}
{\setevalue{\??pa#1}{\getvalue{\??pa#1},}}%
\setevalue{\??pa#1}{\getvalue{\??pa#1}##1}%
- \doifdefinedelse{\??cr##2}
- {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
- {\??cr#1:##1}{\getvalue{\??cr##2}}}
- {\letvalue{\??cr#1:##1}\colorXpattern}}%
+ \doifassignmentelse{##2}
+ {% == \definepalet[test][xx={y=.4}]
+ \definecolor[\??pa#1:##1][##2]%
+ \iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
+ {\??cr#1:##1}{\getvalue{\??cr\??pa#1:##1}}}
+ {% == \definepalet[test][xx=green]
+ \doifdefinedelse{\??cr##2}
+ {\iffreezecolors\@EA\setevalue\else\@EA\setvalue\fi
+ {\??cr#1:##1}{\getvalue{\??cr##2}}}
+ {\letvalue{\??cr#1:##1}\colorXpattern}}}%
\def\dododefinepalet##1%
{\dodododefinepalet[##1]}%
\processcommalist[#2]\dododefinepalet}
@@ -2273,6 +2324,14 @@
{\getcommacommandsize[\getvalue{\??pa\??pa#1}]%
\edef\paletsize{\number\commalistsize}}
+%D Instead of refering to colors, one can also directly specify
+%D a color:
+%D
+%D \starttyping
+%D \definepalet[test][xx=green]
+%D \definepalet[test][xx={y=.4}]
+%D \stoptyping
+
%D \macros
%D {setuppalet}
%D
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index 0021ff2e1..804583925 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2006.03.25 13:21}
+\newcontextversion{2006.04.06 23:00}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
@@ -26,6 +26,39 @@
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex}
+\def\convertencodedtokens{\stringifyencodedtokens}
+
+% test case:
+%
+% \enableregime[cp1250]
+% \mainlanguage[cz]
+%
+% \starttext
+%
+% \title{Žluťoučcí koně úpí}
+% \placelist[chapter][criterium=all]
+%
+% \startbuffer
+% <chapter>
+% <title>Žluťoučcí koně úpí</title>
+% </chapter>
+% \stopbuffer
+%
+% \defineXMLenvironment
+% [chapter]
+% {\defineXMLsave[title]}
+% {\expanded{\chapter{\XMLflush{title}}}}
+% \processXMLbuffer
+%
+% \setuphead[chapter][expansion=yes]
+% \defineXMLenvironment
+% [chapter]
+% {\defineXMLsave[title]}
+% {\chapter{\XMLflush{title}}}
+% \processXMLbuffer
+%
+% \stoptext
+
% just in case we load something from a file (pdfr-ec for instance)
\prependtoks \restoreendofline \to \everybeforeshipout
@@ -2399,10 +2432,6 @@
\def\stopgeheel
{\stoplinecorrection}
-%D No more news.
-
-\protect
-
%D Next we load a few local optimizations and new features. They
%D live on on my machine and are not distributed, but they may end
%D up in the distributed files.
@@ -2410,4 +2439,4 @@
\readsysfile {cont-loc} {} {} % local improvements, patches, new features
\readsysfile {cont-exp} {} {} % experimental features (e.g. local speed-ups)
-\endinput
+\protect \endinput
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index 7af379e14..0a9a38122 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -31,7 +31,7 @@
%D 2004.8.30 the low level interface is english. Watch out and adapt
%D your styles an modules.
-\def\contextversion{2006.03.25 13:21}
+\def\contextversion{2006.04.06 23:00}
%D For those who want to use this:
@@ -355,7 +355,7 @@
%D Sorting:
-% not yet: \input sort-ini.tex
+% \input sort-ini.tex
%D Only the basic XML parser and remapper are part of the core.
%D These macrosa re loaded last since they overload and|/|or
@@ -376,6 +376,18 @@
\input meta-xml.tex % to be documented
+%D Temporary hack, will go when we move to newtexexec:
+
+\unprotect
+
+\appendtoks % newtexexec/newtexutil, after option file is loaded:
+ \doif{\systemparameter\c!method} {2}
+ {\def\TEXEXECcommand{texmfstart newtexexec} %
+ \readsysfile {sort-ini} {} {}}%
+\to \everyjob
+
+\protect
+
% %D The next two modules implement some additional
% %D functionality concerning classes of documents and output.
% %D These modules probably will be replaced some day.
diff --git a/tex/context/base/core-buf.tex b/tex/context/base/core-buf.tex
index 7462ea6ff..6ee575daa 100644
--- a/tex/context/base/core-buf.tex
+++ b/tex/context/base/core-buf.tex
@@ -215,19 +215,28 @@
\fi
\next}
+\chardef\buffernestmode\plusone % 0: not nested, 1: startbuffer nested, 2: all buffers nested
+
\def\dododostartbuffer[#1][#2][#3][#4]%
{%\showmessage\m!systems{15}{#2}%
\doifelsevalue{\??bu#1\c!paragraph}\v!yes
{\segmentatebuffertrue}
{\doifnumberelse{\getvalue{\??bu#1\c!paragraph}}\segmentatebuffertrue\segmentatebufferfalse}%
+ \doifvalue{\??bu#1\c!local}\v!yes
+ {\chardef\buffernestmode\plustwo}% permit nesting
\doifelsenothing{#4}
{\letbeundefined{\e!stop\v!buffer}% % \let\stopbuffer=\relax % \undefined
\@EA\@EA\@EA\convertargument\@EA\e!start\v!buffer\to\beginofblock % else a space
\@EA\@EA\@EA\convertargument\@EA\e!stop \v!buffer\to\endofblock
- \let\processnextblockline\processnextbufferline}
+ \ifcase\buffernestmode \else
+ \let\processnextblockline\processnextbufferline
+ \fi}
{\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
\@EA\convertargument\csname#3\endcsname\to\beginofblock
- \@EA\convertargument\csname#4\endcsname\to\endofblock}%
+ \@EA\convertargument\csname#4\endcsname\to\endofblock
+ \ifcase\buffernestmode \or \else
+ \let\processnextblockline\processnextbufferline
+ \fi}%
\def\closeblock
{\ifsegmentatebuffer
\immediate\write\tmpblocks{\string\stopbufferparagraph}%
@@ -313,7 +322,7 @@
\getparameters[\??bu][#1]%
\fi}
-\def\dodefinebuffer[#1]%
+\def\dodefinebuffer[#1][#2]%
{\iffirstargument % else problems
\doglobal\increment\nofdefinedbuffers
\letvalue{\??bu#1\c!number}\nofdefinedbuffers
@@ -324,10 +333,11 @@
{\noexpand\dodoprocessTEXbuffer[#1][def-\nofdefinedbuffers]}%
\setevalue{\e!type#1}%
{\noexpand\dodotypebuffer[#1][def-\nofdefinedbuffers]}%
+ \getparameters[\??bu#1][#2]%
\fi}
\def\definebuffer
- {\dosingleargument\dodefinebuffer}
+ {\dodoubleempty\dodefinebuffer}
% yet another undocumented feature, but who cares:
@@ -1037,11 +1047,11 @@
\setupcopyblock
\skipblocklineAB}
-% the buffer mechanism handles nesting, add some switch
+% \setvalue{\e!start\v!hiding}%
+% {\dostartbuffer[buf-\nofpostponedblocks]
+% [\e!start\v!hiding][\e!stop\v!hiding]}
-\setvalue{\e!start\v!hiding}%
- {\dostartbuffer[buf-\nofpostponedblocks]
- [\e!start\v!hiding][\e!stop\v!hiding]}
+\definebuffer[\v!hiding] \setupbuffer[\v!hiding][\c!local=\v!yes]
\setupbuffer
[\c!paragraph=\v!no,
diff --git a/tex/context/base/core-fil.tex b/tex/context/base/core-fil.tex
index e8b92221c..a3311f562 100644
--- a/tex/context/base/core-fil.tex
+++ b/tex/context/base/core-fil.tex
@@ -165,7 +165,7 @@
\else
\makeshortfilename[#1\truefilename{#2}]% beware: *- is not part of syn
\doifelseflagged\shortfilename
- {\showmessage\m!systems7{#2}%
+ {\showmessage\m!systems7{#2 (line \number\inputlineno)}%
\settrue\moduleisloaded
\let\next\relax}
{\doglobal\setflag\shortfilename
@@ -192,22 +192,91 @@
\showmessage\m!systems6{#2}%
\fi}
-\def\dousemodules[#1][#2]%
- {\ifsecondargument
+% \def\usemodules
+% {\dodoubleempty\dousemodules}
+%
+% \def\dousemodules[#1][#2]%
+% {\ifsecondargument
+% \doifelsenothing{#2}
+% {\let\next\relax}
+% {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}%
+% \else
+% \def\next{\usemodules[][#1]}%
+% \fi
+% \next}
+%
+% \let\usemodule\usemodules
+
+\def\usemodules
+ {\dotripleempty\dousemodules}
+
+\def\dousemodules[#1][#2][#3]%
+ {\pushmacro\currentmodule
+ \pushmacro\currentmoduleparameters
+ \let\currentmoduleparameters\empty
+ \ifthirdargument
+ \doifelsenothing{#2}
+ {\let\next\relax}
+ {\def\currentmoduleparameters{#3}%
+ \def\next{\processcommalist[#2]{\dodousemodules{#1}}}}%
+ \else\ifsecondargument
\doifelsenothing{#2}
{\let\next\relax}
- {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}%
+ {\doifassignmentelse{#2}
+ {\def\currentmoduleparameters{#2}%
+ \def\next{\processcommalist[#1]{\dodousemodules{}}}}
+ {\def\next{\processcommalist[#2]{\dodousemodules{#1}}}}}%
+ \else
+ \def\next{\processcommalist[#1]{\dodousemodules{}}}%
+ \fi\fi
+ \next
+ \popmacro\currentmoduleparameters
+ \popmacro\currentmodule}
+
+\let\currentmoduleparameters\empty
+\let\currentmodule \s!unknown
+
+\def\startmodule
+ {\doifnextcharelse[\dostartmodule\nostartmodule}
+
+\def\nostartmodule #1 %
+ {\dostartmodule[#1]}
+
+\def\dostartmodule[#1]%
+ {\pushmacro\currentmodule
+ \pushmacro\currentmoduleparameters
+ \def\currentmodule{#1}}
+
+\def\stopmodule
+ {\popmacro\currentmoduleparameters
+ \popmacro\currentmodule}
+
+\def\setupmodule
+ {\dodoubleempty\dosetupmodule}
+
+\def\dosetupmodule[#1][#2]%
+ {\scratchtoks\expandafter{\currentmoduleparameters}%
+ \ifsecondargument
+ \getparameters[\??md:#1:][#2]%
+ \expanded{\getparameters[\??md:#1:][\the\scratchtoks]}%
\else
- \def\next{\usemodules[][#1]}%
+ \getparameters[\??md:\currentmodule:][#1]%
+ \expanded{\getparameters[\??md:\currentmodule:][\the\scratchtoks]}%
\fi
- \next}
+ \let\currentmoduleparameters\empty}
-\def\usemodules
- {\dodoubleempty\dousemodules}
-
-\let\usemodule\usemodules
+\def\moduleparameter #1#2{\csname\??md:#1:#2\endcsname}
+\def\currentmoduleparameter#1{\csname\??md:\currentmodule:#1\endcsname}
-% \usemodule[t][speech]
+% \usemodule[newmml]
+% \usemodule[newmml][a=b]
+% \usemodule[x][newmml]
+% \usemodule[x][newmml][a=b]
+%
+% \startmodule [mathml]
+% \setupmodule[a=c] [\currentmoduleparameter{a}] % user vars will be set afterwards
+% \setupmodule[a=c] [\currentmoduleparameter{a}] % user vars are now forgotten
+% \stopmodule
%D We also support a singular call, which saves us for
%D frustrations when we do a typo.
diff --git a/tex/context/base/core-fnt.tex b/tex/context/base/core-fnt.tex
index 6a55849f4..dc6b8153d 100644
--- a/tex/context/base/core-fnt.tex
+++ b/tex/context/base/core-fnt.tex
@@ -149,6 +149,11 @@
\def\cap{\mathortext\normalcap\smallcapped}
\def\Cap{\mathortext\normalCap\SmallCapped}
+\appendtoks
+ \let\cap\firstofoneargument
+ \let\Cap\firstofoneargument
+\to \simplifiedcommands
+
%D \macros
%D {setupcapitals}
%D
diff --git a/tex/context/base/core-int.tex b/tex/context/base/core-int.tex
index 90bcc23fa..83b65f010 100644
--- a/tex/context/base/core-int.tex
+++ b/tex/context/base/core-int.tex
@@ -508,7 +508,9 @@
\iffirstargument
\bgroup
\ifsecondargument
- \edef\openbookmarklist{#2}%
+ \doifelse{#2}\v!all
+ {\edef\openbookmarklist{#1}}
+ {\edef\openbookmarklist{#2}}%
\else
\let\openbookmarklist\empty
\fi
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
index bc203dfa1..9c4288fcb 100644
--- a/tex/context/base/core-itm.tex
+++ b/tex/context/base/core-itm.tex
@@ -82,6 +82,16 @@
\def\setitemparameter #1#2{\@EA\def\csname\??op\currentitemgroup#1#2\endcsname}
\def\letitemparameter #1#2{\@EA\let\csname\??op\currentitemgroup#1#2\endcsname}
+% test this: saves hash entries and is also faster
+%
+% \let\doinitializeitemgrouplevel\gobbleoneargument % todo ! ! !
+
+\def\getitemparameter#1#2%
+ {\executeifdefined{\??op\currentitemgroup#1#2}%
+ {\executeifdefined{\??op\currentitemgroup #2}%
+ {\executeifdefined{\??oo #2}%
+ {}}}}
+
\def\doitemattributes #1{\doattributes{\??op\currentitemgroup#1}}
\def\@@globalitemsymbol #1{\??op\currentitemgroup\c!symbol\s!global#1}
diff --git a/tex/context/base/core-mat.tex b/tex/context/base/core-mat.tex
index d1b91e625..139a25d3a 100644
--- a/tex/context/base/core-mat.tex
+++ b/tex/context/base/core-mat.tex
@@ -1,11 +1,11 @@
%D \module
%D [ file=core-mat,
-%D version=1998.12.07,
+%D version=2006.03.27, % 1998.12.07
%D title=\CONTEXT\ Core Macros,
%D subtitle=Math Fundamentals,
-%D author=Hans Hagen,
+%D author={Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%D copyright=PRAGMA]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
@@ -636,6 +636,8 @@
\let\normalreqno\eqno
\let\normalleqno\leqno
+\let\donestedformulanumber\gobbletwoarguments
+
\def\dodoplaceformula[#1]#2% messy, needs a clean up
{\doifelse{#1}{-}
{\setfalse\handleformulanumber}
@@ -646,6 +648,9 @@
\def\formulanumber
{%\global\let\subformulanumber\doformulanumber % no, bug
\doformulanumber[#1][#2]}%
+ \def\donestedformulanumber##1##2%
+ {\doifsomething{##1}
+ {\doifelse{##1}{+}{\doformulanumber[#1]}{\doformulanumber[##1]}[##2][]{}}}%
\def\subformulanumber
{\setfalse\incrementformulanumber
\formulanumber}%
@@ -656,7 +661,8 @@
{\normalreqno{\doformulanumber[#1][#2][]{}}}}%
\else
\def\formulanumber{\doformulanumber[#1][#2]}%
- \global\let\subformulanumber\doformulanumber
+ \let\donestedformulanumber\gobbletwoarguments
+ \let\subformulanumber\doformulanumber % was \global
\global\let\doplaceformulanumber\empty
\fi}
@@ -1621,12 +1627,22 @@
\def\dodoalignNC
{\gdef\doalignNC##1{&##1}}
+% \def\doalignNR[#1][#2]%
+% {\doifsomething{#1}
+% {\doifelse{#1}{+}
+% {\doformulanumber[][#2][]{}}
+% {\doformulanumber[#1][#2][]{}}}%
+% \crcr}
+
\def\doalignNR[#1][#2]%
- {\doifsomething{#1}
- {\doifelse{#1}{+}
- {\doformulanumber[][#2][]{}}
- {\doformulanumber[#1][#2][]{}}}%
- \crcr}
+ {\donestedformulanumber{#1}{#2}\crcr}
+
+%D \starttyping
+%D \placeformula[eqn0]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn0]
+%D \placeformula[eqn1]\startformula \startalign[n=1] a\NR \stopalign \stopformula See \in[eqn1]
+%D \placeformula \startformula \startalign[n=1] a\NR[eqn2] \stopalign \stopformula See \in[eqn2]
+%D \placeformula[eqn3]\startformula \startalign[n=1] a\NR[+] \stopalign \stopformula See \in[eqn3]
+%D \stoptyping
% todo: pop in cell
@@ -1991,7 +2007,35 @@
\setupmathmatrix
[\c!distance=1em,
\c!left=,
- \c!right=]
+ \c!right=,
+ \c!align=\v!middle]
+
+\def\dosetmatrixcolumn#1% hh: todo: \definematrixalign
+ {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil
+ \doif{#1}\v!left {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\relax
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}%
+ \doif{#1}\v!right {\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\relax }%
+ \doif{#1}\v!middle{\letvalue{\??eq:\v!left :\number\eqaligncolumn}\hfil
+ \letvalue{\??eq:\v!right:\number\eqaligncolumn}\hfil}}
+
+\def\buildmathmatrix % beware: etex only
+ {\scratchtoks\emptytoks
+ \expanded{\scratchtoks{\the\scratchtoks\the\!!toksa}}%
+ \dorecurse{\numexpr\scratchcounter-\plusone\relax}
+ {\expanded{\scratchtoks{\the\scratchtoks\the\!!toksb}}}%
+ \expanded{\scratchtoks{\the\scratchtoks\the\!!toksc }}}
+
+\def\preparemathmatrix
+ {\!!toksa{\strut
+ \firstineqalign\leftofeqalign \span \textineqalign{##}\rightofeqalign}%
+ \!!toksb{&\hskip\mathmatrixparameter\c!distance
+ \nextineqalign\leftofeqalign \span \textineqalign{##}\rightofeqalign}%
+ \!!toksc{&&\hskip\mathmatrixparameter\c!distance
+ \leftofeqalign \span \textineqalign{##}\rightofeqalign}%
+ \buildmathmatrix
+ \halign \@EA \bgroup\the\scratchtoks \crcr}
\def\definemathmatrix
{\dodoubleempty\dodefinemathmatrix}
@@ -2009,6 +2053,31 @@
% \let\domatrixNR\doalignNR
+% \def\dostartmathmatrix[#1][#2]%
+% {\begingroup
+% \edef\currentmathmatrix{#1}%
+% \doifassignmentelse{#2}{\setupmathmatrix[#1][#2]}\donothing
+% \null
+% \mathmatrixparameter\c!left
+% \vcenter\bgroup
+% \pushmacro\domatrixNC
+% \let\endmath\relax
+% \def\NC{\domatrixNC}%
+% \def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}%
+% \global\let\domatrixNC\dodomatrixNC
+% %\def\NR{\endmath&\global\let\domatrixNC\dodomatrixNC\doxxdoubleempty\domatrixNR}%
+% \def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}%
+% \normalbaselines
+% \mathsurround\zeropoint
+% \everycr\emptytoks
+% \tabskip\zeropoint
+% \global\eqaligncolumn\plusone
+% \halign\bgroup
+% \hfil$##$\hfil
+% &&\hskip\mathmatrixparameter\c!distance\relax\hfil$##$\hfil\crcr
+% \mathstrut\crcr
+% \noalign{\kern-\baselineskip}}
+
\def\dostartmathmatrix[#1][#2]%
{\begingroup
\edef\currentmathmatrix{#1}%
@@ -2021,18 +2090,16 @@
\def\NC{\domatrixNC}%
\def\MC{\domatrixNC\ifmmode\else$\def\endmath{$}\fi}%
\global\let\domatrixNC\dodomatrixNC
- %\def\NR{\endmath&\global\let\domatrixNC\dodomatrixNC\doxxdoubleempty\domatrixNR}%
\def\NR{\endmath\global\let\domatrixNC\dodomatrixNC\crcr}%
\normalbaselines
\mathsurround\zeropoint
\everycr\emptytoks
\tabskip\zeropoint
+ \eqaligncolumn\zerocount % could be \scratchcounter
+ \processcommacommand[\mathmatrixparameter\c!align]{\advance\eqaligncolumn\plusone\dosetmatrixcolumn}%
+ \scratchcounter=\ifnum\eqaligncolumn>\scratchcounter \eqaligncolumn \else \plusone \fi
\global\eqaligncolumn\plusone
- \halign\bgroup
- \hfil$##$\hfil
- &&\hskip\mathmatrixparameter\c!distance\relax\hfil$##$\hfil\crcr
- \mathstrut\crcr
- \noalign{\kern-\baselineskip}}
+ \preparemathmatrix } % uses scratchcounter
\def\dostopmathmatrix
{\crcr
@@ -2065,6 +2132,127 @@
%D \stopbuffer
%D
%D \typebuffer \getbuffer
+%D
+%D Taco added some code (dedicated to Aditya Mahajan) that gives more
+%D control over aligments:
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix
+%D \NC a + x \NC = \NC a + d \NR
+%D \NC y \NC = \NC d \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix [distance=3pt,align={right,left}]
+%D \NC a + x \NC = a + d \NR
+%D \NC y \NC = d \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \startbuffer
+%D \startformula
+%D \startmatrix [left=\left(,right=\right)]
+%D \NC a + x \NR
+%D \NC y \NR
+%D \stopmatrix
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+%D
+%D A bit more complex code:
+%D
+%D \startbuffer
+%D \startformula
+%D \startformula
+%D \text{Let }{\cal R} = \bigcup_{P_{X_1},P_{X_2}}
+%D \left\{ (R_1, R_2) :
+%D \startmatrix[distance=1em,align={left,left,right}]
+%D \NC R_1 \NC < I(X_1 ; Y \mid X_2) \NC R_1 \NR
+%D \NC \hfill Q_2 \NC < I(X_2 ; Y \mid X_1) \NC R_2 \NR
+%D \NC R_1 + R_2 \NC < I(X_1 ; Y) \NC R_1 + R_2 \NR
+%D \stopmatrix
+%D \right\}
+%D \stopformula
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+%D \macros
+%D {startintertext}
+%D
+%D Preliminary feature:
+%D
+%D {\em example code}
+
+% \def\startintertext#1\stopintertext
+% {\noalign{\dointertext{#1}}\NR}
+
+% \unexpanded\def\dointertext#1%
+% {\penalty\postdisplaypenalty
+% \afterdisplayspace % the matching \before... is not needed
+% \vbox{\forgetall\noindent#1\par}%
+% \penalty\postdisplaypenalty}
+
+\def\startintertext#1\stopintertext
+ {\noalign{\dointertext{#1}}}
+
+\unexpanded\def\dointertext#1%
+ {\penalty\postdisplaypenalty
+ \afterdisplayspace
+ \vbox{\forgetall\noindent#1\par}%
+ \penalty\predisplaypenalty
+ \beforedisplayspace}
+
+%D \macros
+%D {substack}
+%D
+%D Preliminary code:
+%D
+%D \starttyping
+%D \startformula
+%D \sum_{%
+%D \startsubstack
+%D i = 1 \NR
+%D i \neq n \NR
+%D i \neq m
+%D \stopsubstack
+%D }a_i
+%D \stopformula
+%D \stoptyping
+
+\def\startsubstack
+ {\begingroup
+ \null
+ \vcenter\bgroup
+ \pushmacro\domatrixNC
+ \let\stopmathmode\relax
+ \def\NC{\domatrixNC}%
+ \def\MC{\domatrixNC\startmathmode}%
+ \global\let\domatrixNC\dodomatrixNC
+ \def\NR
+ {\stopmathmode
+ \global\let\domatrixNC\dodomatrixNC
+ \crcr\noalign{\nointerlineskip}}%
+ \mathsurround\zeropoint
+ \everycr\emptytoks
+ \halign\bgroup\hfil$\scriptstyle\mathstrut##$\hfil\crcr}
+
+\def\stopsubstack
+ {\crcr
+ \egroup
+ \popmacro\domatrixNC
+ \egroup
+ \endgroup}
%D \macros
%D {frac, xfrac, xxfrac}
diff --git a/tex/context/base/core-mis.tex b/tex/context/base/core-mis.tex
index 7de9e1fdb..0b12bfc0e 100644
--- a/tex/context/base/core-mis.tex
+++ b/tex/context/base/core-mis.tex
@@ -238,106 +238,328 @@
%
% Overigens kan een en ander mooier met \halign.
+% \def\dodefineparagraphs[#1][#2]%
+% {\setvalue{\s!do\s!next#1}%
+% {\def\\{\getvalue{#1}}}%
+% \setvalue{#1}%
+% {\getvalue{\s!do\s!next#1}%
+% \dostartparagraphs{#1}}%
+% \setvalue{\e!next#1}%
+% {\getvalue{#1}}%
+% \setvalue{\e!start#1}%
+% {\bgroup
+% \letvalue{\s!do\s!next#1}\empty
+% \setvalue{\e!stop#1}%
+% {\getvalue{#1}%
+% \egroup}%
+% \getvalue{#1}}%
+% \getparameters[\??al#1]%
+% [\c!n=3,
+% \c!before=\blank,
+% \c!after=\blank,
+% \c!distance=1em,
+% \c!height=\v!fit,
+% \c!rule=\v!off,
+% \c!command=,
+% \c!align=,
+% \c!tolerance=\v!tolerant,
+% \c!rulethickness=\linewidth,
+% \c!style=,
+% \c!color=,
+% \c!top=,
+% \c!top=\vss,
+% \c!bottom=\vfill,
+% #2]%
+% \setvalue{\e!setup#1\e!endsetup}%
+% {\setupparagraphs[#1]}%
+% \dorecurse
+% {\getvalue{\??al#1\c!n}}
+% {\setupparagraphs[#1][\recurselevel]
+% [\c!width=,
+% \c!bottom=\getvalue{\??al#1\c!bottom},
+% \c!top=\getvalue{\??al#1\c!top},
+% \c!height=\getvalue{\??al#1\c!height},
+% \c!style=\getvalue{\??al#1\c!style},
+% \c!color=\getvalue{\??al#1\c!color},
+% \c!rule=\getvalue{\??al#1\c!rule},
+% \c!rulethickness=\getvalue{\??al#1\c!rulethickness},
+% \c!align=\getvalue{\??al#1\c!align},
+% \c!tolerance=\getvalue{\??al#1\c!tolerance},
+% \c!distance=\getvalue{\??al#1\c!distance}]}%
+% \setupparagraphs[#1][1][\c!distance=0em]}
+%
+% \def\defineparagraphs
+% {\dodoubleargument\dodefineparagraphs}
+%
+% \def\dosetupparagraphs[#1][#2][#3]%
+% {\doifelse{#2}\v!each
+% {\dorecurse
+% {\getvalue{\??al#1\c!n}}
+% {\getparameters[\??al#1\recurselevel][#3]}}
+% {\ConvertToConstant\doifelse{#3}{}
+% {\getparameters[\??al#1][#2]}
+% {\def\docommando##1%
+% {\getparameters[\??al#1##1][#3]}%
+% \processcommalist[#2]\docommando}}}
+%
+% \def\setupparagraphs
+% {\dotripleempty\dosetupparagraphs}
+%
+% \newcount\alcounter
+% \newcount\alnsize
+% \newdimen\alhsize
+%
+% \def\doparagraphrule#1#2%
+% {\doifelsevalue{\??al#2\the\alcounter\c!rule}\v!on
+% {\linewidth\getvalue{\??al#2\the\alcounter\c!rulethickness}%
+% \scratchdimen#1%
+% \advance\scratchdimen-\linewidth
+% \divide\scratchdimen \plustwo
+% \hskip\scratchdimen
+% \vrule\!!width\linewidth
+% \hskip\scratchdimen}
+% {\hskip#1}}
+%
+% \def\dostartparagraph#1%
+% {\doifelsevaluenothing{\??al#1\the\alcounter\c!width}
+% {\!!widtha\alhsize
+% \divide\!!widtha \alnsize}
+% {\!!widtha\getvalue{\??al#1\the\alcounter\c!width}}%
+% \dostartattributes
+% {\??al#1\the\alcounter}\c!style\c!color
+% \empty
+% \doifelsevalue{\??al#1\the\alcounter\c!height}\v!fit
+% {\setbox0\vtop}
+% {\setbox0\vtop to \getvalue{\??al#1\the\alcounter\c!height}}%
+% \bgroup
+% \blank[\v!disable]%
+% \forgetall
+% \getvalue{\??al#1\the\alcounter\c!top}%
+% \getvalue{\??al#1\c!inner}%
+% \hsize\!!widtha % setting \wd afterwards removed
+% \getvalue{\??al#1\the\alcounter\c!inner}%
+% \edef\!!stringa{\getvalue{\??al#1\the\alcounter\c!align}}% nodig?
+% \expandafter\setupalign\expandafter[\!!stringa]%
+% \edef\!!stringa{\getvalue{\??al#1\the\alcounter\c!tolerance}}% nodig?
+% \expandafter\setuptolerance\expandafter[\!!stringa]%
+% \ignorespaces
+% \endgraf
+% \ignorespaces
+% %
+% % Nadeel van de onderstaande constructie is dat \everypar
+% % binnen een groep kan staan en zo steeds \begstruts
+% % worden geplaatst. Mooi is anders dus moet het anders!
+% %
+% % Hier is \Everypar niet nodig.
+% %
+% \everypar{\begstrut\everypar\emptytoks}%
+% %
+% \ignorespaces\geenspatie % dubbel: \ignorespaces
+% \getvalue{\??al#1\the\alcounter\c!command}}
+%
+% \def\dostopparagraph#1%
+% {\ifvmode
+% \removelastskip
+% \else
+% \unskip\endstrut\endgraf
+% \fi
+% \getvalue{\??al#1\the\alcounter\c!bottom}%
+% \egroup
+% \ifdim\wd0=\zeropoint % no data
+% \wd0\!!widtha
+% \fi
+% \box0
+% \dostopattributes
+% %\ifnum\alcounter<\getvalue{\??al#1\c!n}\relax
+% % \def\next{\doparagraphcell{#1}}%
+% %\else
+% % \def\next{\dostopparagraphs{#1}}%
+% %\fi
+% %\next}
+% \ifnum\alcounter<\getvalue{\??al#1\c!n}\relax
+% \@EA\doparagraphcell
+% \else
+% \@EA\dostopparagraphs
+% \fi{#1}}
+%
+% \def\doparagraphcell#1%
+% {\global\advance\alcounter \plusone
+% \doifelsevaluenothing{\??al#1\the\alcounter\c!distance}
+% {\doifnot{\the\alcounter}{1}
+% {\hskip\getvalue{\??al#1\c!distance}}}
+% {\doifelse{\the\alcounter}{1}%
+% {\hskip\getvalue{\??al#1\the\alcounter\c!distance}}
+% {\doparagraphrule{\getvalue{\??al#1\the\alcounter\c!distance}}{#1}}}%
+% \setvalue{#1}{\dostopparagraph{#1}}%
+% \dostartparagraph{#1}}
+%
+% \def\dostartparagraphs#1%
+% {\global\alcounter\zerocount
+% \parindent\zeropoint
+% \setlocalhsize
+% \alhsize\localhsize
+% \alnsize\getvalue{\??al#1\c!n}\relax
+% \dorecurse
+% {\getvalue{\??al#1\c!n}}
+% {\doifelsevaluenothing{\??al#1\recurselevel\c!distance}
+% {\ifnum\recurselevel=\plusone\else
+% \global\advance\alhsize -\getvalue{\??al#1\c!distance}\relax
+% \fi}
+% {\global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!distance}\relax}%
+% \doifvaluesomething{\??al#1\recurselevel\c!width}
+% {\global\advance\alnsize \minusone
+% \global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!width}\relax}}%
+% %\whitespace % gaat fout bij \framed
+% \getvalue{\??al#1\c!before}%
+% \leavevmode % gaat wel goed bij \framed, brrr
+% \setbox\scratchbox\vbox\bgroup\hbox\bgroup\doparagraphcell{#1}}
+%
+% \def\dostopparagraphs#1%
+% {\egroup
+% \egroup
+% \iftrue
+% \hbox{\raise\strutheight\box\scratchbox}% new
+% \else
+% \box\scratchbox % old
+% \fi
+% \par
+% \getvalue{\??al#1\c!after}}%
+
+% there is quite some historic balast in this mechanism, the next variant
+% is a first cleanup
+
+\let\currentparagraph\empty
+
+\newcount\alcounter \newcount\alnsize \newdimen\alhsize
+
+\def\paragraphparameter#1% \checkedparameter\??al\currentparagraph#1
+ {\executeifdefined{\??al\currentparagraph#1}{\executeifdefined{\??al#1}\empty}}
+
+\def\paragraphcellmeter#1#2% \checkedparameter\??al\currentparagraph#1
+ {\executeifdefined{\??al\currentparagraph\number#1#2}{\paragraphparameter{#2}}}
+
\def\dodefineparagraphs[#1][#2]%
- {\setvalue{\s!do\s!next#1}%
- {\def\\{\getvalue{#1}}}%
- \setvalue{#1}%
+ {\edef\currentparagraph{#1}%
+ \setvalue{\s!do\s!next\currentparagraph}%
+ {\def\\{\getvalue\currentparagraph}}%
+ \setvalue\currentparagraph
{\getvalue{\s!do\s!next#1}%
- \dostartalineas{#1}}%
- \setvalue{\e!next#1}%
+ \dostartparagraphs{#1}}%
+ \setvalue{\e!next\currentparagraph}%
{\getvalue{#1}}%
- \setvalue{\e!start#1}%
+ \setvalue{\e!start\currentparagraph}%
{\bgroup
- \letvalue{\s!do\s!next#1}\empty
- \setvalue{\e!stop#1}%
- {\getvalue{#1}%
- \egroup}%
- \getvalue{#1}}%
- \getparameters[\??al#1]%
- [\c!n=3,
- \c!before=\blank,
- \c!after=\blank,
- \c!distance=1em,
- \c!height=\v!fit,
- \c!rule=\v!off,
- \c!command=,
- \c!align=,
- \c!tolerance=\v!tolerant,
- \c!style=,
- \c!color=,
- \c!top=,
- \c!top=\vss,
- \c!bottom=\vfill,
+ \edef\currentparagraph{#1}%
+ \letvalue{\s!do\s!next\currentparagraph}\empty
+ \setvalue{\e!stop\currentparagraph}{\getvalue\currentparagraph\egroup}%
+ \getvalue\currentparagraph}%
+ \getparameters[\??al\currentparagraph]%
+ [%\c!n=3,
+ %\c!before=\blank,
+ %\c!after=\blank,
+ %\c!distance=1em,
+ %\c!height=\v!fit,
+ %\c!rule=\v!off,
+ %\c!command=,
+ %\c!align=,
+ %\c!tolerance=\v!tolerant,
+ %\c!rulethickness=\linewidth,
+ %\c!rulecolor=,
+ %\c!style=,
+ %\c!color=,
+ %\c!top=,
+ %\c!top=\vss,
+ %\c!bottom=\vfill,
#2]%
\setvalue{\e!setup#1\e!endsetup}%
{\setupparagraphs[#1]}%
\dorecurse
- {\getvalue{\??al#1\c!n}}
- {\setupparagraphs[#1][\recurselevel]
+ {\paragraphparameter\c!n}
+ {\setupparagraphs
+ [\currentparagraph]
+ [\recurselevel]
[\c!width=,
- \c!bottom=\getvalue{\??al#1\c!bottom},
- \c!top=\getvalue{\??al#1\c!top},
- \c!height=\getvalue{\??al#1\c!height},
- \c!style=\getvalue{\??al#1\c!style},
- \c!color=\getvalue{\??al#1\c!color},
- \c!rule=\getvalue{\??al#1\c!rule},
- \c!align=\getvalue{\??al#1\c!align},
- \c!tolerance=\getvalue{\??al#1\c!tolerance},
- \c!distance=\getvalue{\??al#1\c!distance}]}%
- \setupparagraphs[#1][1][\c!distance=0em]}
+ %\c!bottom=\paragraphparameter\c!bottom,
+ %\c!top=\paragraphparameter\c!top,
+ %\c!height=\paragraphparameter\c!height,
+ %\c!rule=\paragraphparameter\c!rule,
+ %\c!rulethickness=\paragraphparameter\c!rulethickness,
+ %\c!rulecolor=\paragraphparameter\c!rulecolor,
+ %\c!align=\paragraphparameter\c!align,
+ %\c!tolerance=\paragraphparameter\c!tolerance, % obsolete
+ %\c!distance=\paragraphparameter\c!distance,
+ \c!style=\paragraphparameter\c!style,
+ \c!color=\paragraphparameter\c!color]}%
+ \setupparagraphs[\currentparagraph][1][\c!distance=\zeropoint]}
\def\defineparagraphs
{\dodoubleargument\dodefineparagraphs}
\def\dosetupparagraphs[#1][#2][#3]%
- {\doifelse{#2}\v!each
- {\dorecurse
- {\getvalue{\??al#1\c!n}}
- {\getparameters[\??al#1\recurselevel][#3]}}
- {\ConvertToConstant\doifelse{#3}{}
- {\getparameters[\??al#1][#2]}
- {\def\docommando##1%
- {\getparameters[\??al#1##1][#3]}%
- \processcommalist[#2]\docommando}}}
+ {\edef\currentparagraph{#1}%
+ \ifsecondargument
+ \doifelse{#2}\v!each
+ {\dorecurse
+ {\paragraphparameter\c!n}
+ {\getparameters[\??al\currentparagraph\recurselevel][#3]}}
+ {\doifelsenothing{#3}
+ {\getparameters[\??al\currentparagraph][#2]}
+ {\def\docommand##1{\getparameters[\??al\currentparagraph##1][#3]}%
+ \processcommalist[#2]\docommand}}%
+ \else
+ \getparameters[\??al][#1]%
+ \fi}
\def\setupparagraphs
{\dotripleempty\dosetupparagraphs}
-\newcount\alteller
-\newcount\alnsize
-\newdimen\alhsize
-
-\def\doalinealijn#1#2%
- {\doifelsevalue{\??al#2\the\alteller\c!rule}\v!on
- {\dimen2=#1\relax
- \hskip.5\dimen2
- \hskip-\linewidth
- \vrule\!!width\linewidth
- \hskip.5\dimen2}
- {\hskip#1}}
-
-\def\dostartalinea#1%
- {\doifelsevaluenothing{\??al#1\the\alteller\c!width}
+\setupparagraphs
+ [\c!n=3,
+ \c!before=\blank,
+ \c!after=\blank,
+ \c!distance=1em,
+ \c!height=\v!fit,
+ \c!rule=\v!off,
+ \c!command=,
+ \c!align=,
+ \c!tolerance=\v!tolerant, % obsolete
+ \c!rulethickness=\linewidth,
+ \c!rulecolor=,
+ \c!style=,
+ \c!color=,
+ \c!top=,
+ \c!top=\vss,
+ \c!bottom=\vfill]
+
+\def\doparagraphrule
+ {\doifelse{\paragraphcellmeter\alcounter\c!rule}\v!on
+ {\linewidth\paragraphcellmeter\alcounter\c!rulethickness
+ \scratchdimen\paragraphcellmeter\alcounter\c!distance
+ \advance\scratchdimen-\linewidth
+ \divide\scratchdimen \plustwo
+ \hskip\scratchdimen
+ \color[\paragraphcellmeter\alcounter\c!rulecolor]{\vrule\!!width\linewidth}%
+ \hskip\scratchdimen}
+ {\hskip\paragraphcellmeter\alcounter\c!distance}}
+
+\def\dostartparagraph
+ {\doifelsenothing{\paragraphcellmeter\alcounter\c!width}
{\!!widtha\alhsize
\divide\!!widtha \alnsize}
- {\!!widtha\getvalue{\??al#1\the\alteller\c!width}}%
- \dostartattributes
- {\??al#1\the\alteller}\c!style\c!color
- \empty
- \doifelsevalue{\??al#1\the\alteller\c!height}\v!fit
- {\setbox0\vtop}
- {\setbox0\vtop to \getvalue{\??al#1\the\alteller\c!height}}%
+ {\!!widtha\paragraphcellmeter\alcounter\c!width}%
+ \dostartattributes{\??al\currentparagraph\number\alcounter}\c!style\c!color\empty
+ \doifelse{\paragraphcellmeter\alcounter\c!height}\v!fit
+ {\setbox\scratchbox\vtop}
+ {\setbox\scratchbox\vtop to \paragraphcellmeter\alcounter\c!height}%
\bgroup
\blank[\v!disable]%
\forgetall
- \getvalue{\??al#1\the\alteller\c!top}%
- \getvalue{\??al#1\c!inner}%
- \hsize\!!widtha % setting \wd afterwards removed
- \getvalue{\??al#1\the\alteller\c!inner}%
- \edef\!!stringa{\getvalue{\??al#1\the\alteller\c!align}}% nodig?
- \expandafter\setupalign\expandafter[\!!stringa]%
- \edef\!!stringa{\getvalue{\??al#1\the\alteller\c!tolerance}}% nodig?
- \expandafter\setuptolerance\expandafter[\!!stringa]%
+ \paragraphcellmeter\alcounter\c!top
+ \paragraphparameter\c!inner
+ \hsize\!!widtha % setting \wd afterwards removed
+ \paragraphcellmeter\alcounter\c!inner % twice
+ \expanded{\setupalign [\paragraphcellmeter\alcounter\c!align ]}% {normal,verytolerant,stretch}
+ \expanded{\setuptolerance[\paragraphcellmeter\alcounter\c!tolerance]}% obsolete
\ignorespaces
\endgraf
\ignorespaces
@@ -350,70 +572,75 @@
%
\everypar{\begstrut\everypar\emptytoks}%
%
- \ignorespaces\geenspatie % dubbel: \ignorespaces
- \getvalue{\??al#1\the\alteller\c!command}}
+ \nospace % remove + ignore
+ \paragraphcellmeter\alcounter\c!command}
-\def\dostopalinea#1%
+\def\dostopparagraph
{\ifvmode
\removelastskip
\else
\unskip\endstrut\endgraf
\fi
- \getvalue{\??al#1\the\alteller\c!bottom}%
+ \paragraphcellmeter\alcounter\c!bottom
\egroup
- \ifdim\wd0=\zeropoint % no data
- \wd0\!!widtha
+ \ifdim\wd\scratchbox=\zeropoint % no data
+ \wd\scratchbox\!!widtha
\fi
- \box0
+ \box\scratchbox
\dostopattributes
- %\ifnum\alteller<\getvalue{\??al#1\c!n}\relax
- % \def\next{\doalinea{#1}}%
- %\else
- % \def\next{\dostopalineas{#1}}%
- %\fi
- %\next}
- \ifnum\alteller<\getvalue{\??al#1\c!n}\relax
- \@EA\doalinea
+ \ifnum\alcounter<\paragraphparameter\c!n\relax
+ \@EA\doparagraphcell
\else
- \@EA\dostopalineas
- \fi{#1}}
+ \@EA\dostopparagraphs
+ \fi}
-\def\doalinea#1%
- {\global\advance\alteller \plusone
- \doifelsevaluenothing{\??al#1\the\alteller\c!distance}
- {\doifnot{\the\alteller}{1}
- {\hskip\getvalue{\??al#1\c!distance}}}
- {\doifelse{\the\alteller}{1}%
- {\hskip\getvalue{\??al#1\the\alteller\c!distance}}
- {\doalinealijn{\getvalue{\??al#1\the\alteller\c!distance}}{#1}}}%
- \setvalue{#1}{\dostopalinea{#1}}%
- \dostartalinea{#1}}
-
-\def\dostartalineas#1%
- {\global\alteller\zerocount
+\def\doparagraphcell
+ {\global\advance\alcounter \plusone
+ \doifelsenothing{\paragraphcellmeter\alcounter\c!distance}
+ {\ifnum\alcounter=\plusone\else
+ \hskip\paragraphparameter\c!distance
+ \fi}
+ {\ifnum\alcounter=\plusone
+ \hskip\paragraphcellmeter\alcounter\c!distance
+ \else
+ \doparagraphrule
+ \fi}%
+ \letvalue\currentparagraph\dostopparagraph
+ \dostartparagraph}
+
+\def\dostartparagraphs#1%
+ {\bgroup
+ \edef\currentparagraph{#1}%
+ \global\alcounter\zerocount
\parindent\zeropoint
\setlocalhsize
\alhsize\localhsize
- \alnsize\getvalue{\??al#1\c!n}\relax
- \dorecurse
- {\getvalue{\??al#1\c!n}}
- {\doifelsevaluenothing{\??al#1\recurselevel\c!distance}
- {\doifnot{\recurselevel}{1}
- {\global\advance\alhsize -\getvalue{\??al#1\c!distance}\relax}}
- {\global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!distance}\relax}%
- \doifvaluesomething{\??al#1\recurselevel\c!width}
+ \alnsize\paragraphparameter\c!n\relax
+ \dorecurse \alnsize
+ {\doifelsenothing{\paragraphcellmeter\recurselevel\c!distance}
+ {\ifnum\recurselevel=\plusone\else
+ \global\advance\alhsize -\paragraphparameter\c!distance
+ \fi}
+ {\global\advance\alhsize -\paragraphcellmeter\recurselevel\c!distance}%
+ \doifsomething{\paragraphcellmeter\recurselevel\c!width}
{\global\advance\alnsize \minusone
- \global\advance\alhsize -\getvalue{\??al#1\recurselevel\c!width}\relax}}%
- %\whitespace % gaat fout bij \framed
- \getvalue{\??al#1\c!before}%
- \leavevmode % gaat wel goed bij \framed
- \vbox\bgroup\hbox\bgroup\doalinea{#1}}
+ \global\advance\alhsize -\paragraphcellmeter\recurselevel\c!width}}%
+ %whitespace % gaat fout bij \framed
+ \paragraphparameter\c!before
+ \leavevmode % gaat wel goed bij \framed, brrr
+ \setbox\scratchbox\vbox\bgroup\hbox\bgroup\doparagraphcell}
-\def\dostopalineas#1%
+\def\dostopparagraphs
{\egroup
\egroup
+ \iftrue
+ \hbox{\raise\strutheight\box\scratchbox}% new
+ \else
+ \box\scratchbox % old
+ \fi
\par
- \getvalue{\??al#1\c!after}}%
+ \paragraphparameter\c!after
+ \egroup}
\def\dosetuptab[#1]%
{\getparameters[\??ta]
@@ -654,44 +881,79 @@
\newsignal \subsentencesignal
\newcounter\subsentencelevel
+\let\beforesubsentence\donothing
+\let\aftersubsentence \donothing
+
+% todo: make this language option
+%
+% \def\beforesubsentence{\removeunwantedspaces}
+% \def\aftersubsentence {\ignorespaces}
+
\def\midsentence
{\symbol[\c!midsentence]}
\def\beginofsubsentence
- {\ifdim\lastkern=\subsentencesignal
+ {\beforesubsentence
+ \ifdim\lastkern=\subsentencesignal
\unskip
\kern\hspaceamount\currentlanguage{intersentence}%
\fi
\doglobal\increment\subsentencelevel
\ifnum\subsentencelevel=\plusone
- \leaveoutervmode
+ \dontleavehmode % was \leaveoutervmode
\fi
- \symbol[\ifodd\subsentencelevel\c!leftsentence \else
- \c!leftsubsentence\fi]%
- \ignorespaces}
+ \symbol[\ifodd\subsentencelevel\c!leftsentence\else\c!leftsubsentence\fi]%
+ }% \ignorespaces}
-\def\beginofsubsentencespacing
- {\kern\subsentencesignal\ignorespaces}
-
-\def\endofsubsentence
- {\symbol[\ifodd\subsentencelevel\c!rightsentence \else
- \c!rightsubsentence\fi]%
+\def\endofsubsentence % relax prevents space gobbling
+ {\symbol[\ifodd\subsentencelevel\c!rightsentence\else\c!rightsubsentence\fi]%
\doglobal\decrement\subsentencelevel
\unskip
- \kern\subsentencesignal}
+ \kern\subsentencesignal\relax
+ \aftersubsentence}
+
+\def\beginofsubsentencespacing % relax prevents space gobbling
+ {\kern\subsentencesignal\relax}% \ignorespaces}
\def\endofsubsentencespacing
{\ifdim\lastkern=\subsentencesignal
\unskip
\hskip\hspaceamount\currentlanguage{intersentence}%
- \ignorespaces
+ % no good, actually language dependent:
+% \ignorespaces
\else
\unskip
\fi}
-% test |<|test |<|test|>| test|>| test \par
-% test|<|test|<|test|>|test|>|test \par
-% test |<||<|test|>||>| test \par
+%D \startbuffer
+%D test |<|test |<|test|>| test|>| test \par
+%D test|<|test|<|test|>|test|>|test \par
+%D test |<||<|test|>||>| test \par
+%D test \directdiscretionary{<}test\directdiscretionary{>} test \par
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \getbuffer
+
+\def\startsubsentence{\beginofsubsentence \prewordbreak\beginofsubsentencespacing}
+\def\stopsubsentence {\endofsubsentencespacing\prewordbreak\endofsubsentence}
+
+%D \defineXMLenvironment [subsentence]
+%D {|<|}
+%D {|>|}
+%D \defineXMLenvironment [subsentence]
+%D {\directdiscretionary{<}}
+%D {\directdiscretionary{>}}
+%D \defineXMLenvironment [subsentence]
+%D {\startsubsentence}
+%D {\stopsubsentence}
+%D
+%D \startbuffer
+%D test <subsentence>test</subsentence> test
+%D \stopbuffer
+%D
+%D \typebuffer
+%D \processXMLbuffer
\enableactivediscretionaries
@@ -954,7 +1216,8 @@
% \doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
% backward compatible:
\doifelsenothing{#1}
- {\doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
+ {\endgraf
+ \doadaptleftskip {\delimitedtextparameter\c!leftmargin}%
\doadaptrightskip{\delimitedtextparameter\c!rightmargin}%
\let\dodostopdelimitedtextpar\endgraf}
{\startnarrower[#1]\let\dodostopdelimitedtextpar\stopnarrower}%
diff --git a/tex/context/base/core-ref.tex b/tex/context/base/core-ref.tex
index eada84ce1..7306987bb 100644
--- a/tex/context/base/core-ref.tex
+++ b/tex/context/base/core-ref.tex
@@ -724,22 +724,41 @@
\def\rt!crossdone#1#2#3#4{\rt!done{#1}{#2}{#3}{#4}}
+% \def\dohandleduplicatereference#1%
+% {\bgroup
+% \let\rt!cross\rt!crossdone
+% \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname
+% {\csname\r!cross\referenceprefix#1\endcsname}%
+% \egroup}
+
\def\dohandleduplicatereference#1%
{\bgroup
\let\rt!cross\rt!crossdone
- \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname
+ \@EA\xdef\csname\r!cross\referenceprefix#1\endcsname % no let !
{\csname\r!cross\referenceprefix#1\endcsname}%
\egroup}
+% \def\checkfirstreferenceoccurance#1#2% etex
+% {\ifcsname\r!cross\referenceprefix#1\endcsname
+% \getreferenceelements{#1}%
+% \ifnum\currentreferencetype=\rt!cross
+% \dohandleduplicatereference{#1}%
+% #2%
+% \fi
+% \else
+% #2%
+% \fi}
+
\def\checkfirstreferenceoccurance#1#2% etex
- {\ifcsname\r!cross\referenceprefix#1\endcsname
+ {\@EA\ifx\csname\r!cross\referenceprefix#1\endcsname\relax % no ifcsname needed here
+ \predefinereference{#1}%
+ #2%
+ \else
\getreferenceelements{#1}%
\ifnum\currentreferencetype=\rt!cross
\dohandleduplicatereference{#1}%
#2%
\fi
- \else
- #2%
\fi}
\def\doiffirstreferenceoccurance
@@ -1677,6 +1696,24 @@
%D An unknown reference is reported on the screen, in the log
%D file and, when enabled, in the left margin of the text.
+% \def\reportreferenceerror#1#2%
+% {\bgroup
+% \the\everyreference % cleanup : etc in french
+% \ifinpagebody\else
+% \doifconcepttracing
+% {\doifsomething{#2}
+% {\inleft
+% {\infofont
+% \scratchdimen\leftmarginwidth
+% \advance\scratchdimen -2em
+% \doboundtext{#2}\scratchdimen{..}->}}}%
+% \fi
+% \doifpredefinedreferenceelse
+% \donothing
+% {\predefinereference
+% \showmessage\m!references{#1}{[\unharmedreferenceprefix][#2]}}%
+% \egroup}
+
\def\reportreferenceerror#1#2%
{\bgroup
\the\everyreference % cleanup : etc in french
@@ -1691,7 +1728,7 @@
\fi
\doifpredefinedreferenceelse
\donothing
- {\predefinereference
+ {\predefinereference\predefinedreference
\showmessage\m!references{#1}{[\unharmedreferenceprefix][#2]}}%
\egroup}
@@ -1719,11 +1756,20 @@
% {\setgvalue{\r!cross\predefinedreference}{\rt!cross{}{}{}{}}%
% \setgvalue{\r!cross\unharmedreferenceprefix\predefinedreference}{\rt!cross{}{}{}{}}}
-\def\dummypredefinedreference{\r!cross{}{}{}{}}
+% \def\dummypredefinedreference{\r!cross{}{}{}{}}
+%
+% \def\predefinereference
+% {\global\@EA\let\csname\r!cross\predefinedreference \endcsname\dummypredefinedreference
+% \global\@EA\let\csname\r!cross\unharmedreferenceprefix\endcsname\dummypredefinedreference} % bug!
+%
+% we need to predefine in order to make dup checking possible (when no ref
+% is defined yet)
+
+\def\predefinereference#1% takes now an argument
+ {\global\@EA\let\csname\r!cross #1\endcsname\dummypredefinedreference
+ \global\@EA\let\csname\r!cross\unharmedreferenceprefix#1\endcsname\dummypredefinedreference}
-\def\predefinereference
- {\global\@EA\let\csname\r!cross\predefinedreference \endcsname\dummypredefinedreference
- \global\@EA\let\csname\r!cross\unharmedreferenceprefix\endcsname\dummypredefinedreference} % bug!
+\def\dummypredefinedreference{\rt!done{}{}{}{}}
%D Testing on existance then becomes:
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 8db6dbc7c..44c616107 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -123,10 +123,20 @@
% \ifvmode\nobreak\fi
% \GotoPar}
-\long\def\doflushatpar#1%
-% {\dogotopar{#1}}
-% {\dogotopar{\dontleavehmode#1}} % this one can introduce empty lines
- {\dogotopar{#1\ifvmode\nobreak\fi}} % while this one can mess up vertical space
+% \long\def\doflushatpar#1%
+% %{\dogotopar{#1}}
+% %{\dogotopar{\dontleavehmode#1}} % this one can introduce empty lines
+% {\dogotopar{#1\ifvmode\nobreak\fi}} % while this one can mess up vertical space
+%
+% fails when [text] \index{test} [empty line] [text] so we now have
+% Taco's test based solution:
+
+\def\doflushatpar
+ {\ifvmode
+ \expandafter\dogotopar
+ \else
+ \expandafter\firstofoneargument
+ \fi}
\def\dodoregister[#1]#2#3%
{\doflushatpar{\doprocesspageregister[#1]{#2}{#3}}}
@@ -134,15 +144,6 @@
\def\writetoregister[#1]% to be documented
{\doregister{#1}}
-% \def\startregister
-% {\dodoubleargument\dostartregister}
-
-% \def\dostartregister[#1][#2]#3%
-% {\chardef\registerpagestatus\plustwo
-% \def\currentregister{#1}%
-% \setgvalue{\??id#1\??id#2}{\dodostopregister[#1][#2]{#3}}%
-% \donoregister[#2]{#3}}
-
\def\startregister
{\dotripleempty\dostartregister}
@@ -158,41 +159,11 @@
\def\dostopregister[#1][#2]%
{\getvalue{\??id#1\??id#2}\letgvalue{\??id#1\??id#2}\relax}
-% \def\dodostopregister[#1][#2]%
-% {\chardef\registerpagestatus\plusthree
-% \def\currentregister{#1}%
-% \donoregister[#2]}
-
\def\dodostopregister[#1][#2]#3%
{\chardef\registerpagestatus\plusthree
\def\currentregister{#1}%
\dodoregister[#2]{}{#3}} % key altnum entry
-% \def\complexdoseeregister[#1]#2#3%
-% {\begingroup
-% \thisisnextinternal\s!ind
-% \ifduplicate\getlastregisterentry{#2}\fi
-% \convertexpanded{\registerparameter\c!keyexpansion}{#1}\asciiregisterentryA
-% \convertexpanded{\registerparameter\c!expansion }{#2}\asciiregisterentryB
-% \convertexpanded{\registerparameter\c!expansion }{#3}\asciiregisterentryC
-% \doifsomething{\registerparameter\c!keyexpansion}
-% {\ifx\asciiregisterentryA\empty
-% \convertexpanded{\registerparameter\c!keyexpansion}{#2}\asciiregisterentryA
-% \fi}%
-% \makesectionformat
-% \expanded
-% {\writeutility%
-% {r s %
-% {\currentregister} %
-% {\nextinternalreference} %
-% {\asciiregisterentryA} %
-% {\asciiregisterentryB} %
-% {\asciiregisterentryC} %
-% {\sectionformat}}}%
-% \endgroup
-% \registerinfo{> see}{#2}%
-% \GotoPar}
-
\def\doprocessseeregister[#1]#2#3%
{\begingroup
\thisisnextinternal\s!ind
diff --git a/tex/context/base/core-sys.tex b/tex/context/base/core-sys.tex
index cd2908b9c..fbf46bb98 100644
--- a/tex/context/base/core-sys.tex
+++ b/tex/context/base/core-sys.tex
@@ -92,6 +92,8 @@
\def\setupsystem
{\dosingleargument\dosetupsystem}
+\def\systemparameter#1{\executeifdefined{\??sv#1}\empty}
+
%D The system modes set by the setup command can be used in
%D situations like:
%D
@@ -309,7 +311,7 @@
\def\convertmeaning#1\to % watch the double expansion !
{\bgroup
\honorunexpanded
- \dontexpandencoding % new
+ \convertencodedtokens % can be overloaded
\xdef\@@globalexpanded{#1}%
\xdef\@@globalexpanded{\@@globalexpanded}%
\egroup
diff --git a/tex/context/base/core-uti.tex b/tex/context/base/core-uti.tex
index a8dd993f6..a6e2af819 100644
--- a/tex/context/base/core-uti.tex
+++ b/tex/context/base/core-uti.tex
@@ -98,12 +98,6 @@
\def\cwriteutilitycommand#1%
{\write\uti{\noexpand\checkedutility{\number\nofshipouts}{c \string#1}}}
-% \def\cimmediatewriteutility
-% {\immediate\write\uti}
-%
-% \def\cimmediatewriteutilitycommand#1%
-% {\immediate\write\uti{c \string#1}}
-
\let\checkedutility\secondoftwoarguments
\def\docheckedutility#1#2{\ifnum#1=\nofshipouts#2\else\letterpercent\fi}
diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex
index 223c39644..595ba075e 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -753,6 +753,8 @@
\def\settypingparameter#1#2%
{\setvalue{\currenttypingclass\currenttyping#1}{#2}}
+\def\setxtypingparameter#1#2%
+ {\setxvalue{\currenttypingclass\currenttyping#1}{#2}}
\def\initializetyping
{%\donefalse
@@ -801,23 +803,78 @@
%D indirect way. As we will see, they are a specific case of a
%D more general mechanism.
-\def\dostarttyping#1%
- {\let\currenttypingclass\??tp
+% formal version
+%
+% \def\dostarttyping#1%
+% {\let\currenttypingclass\??tp
+% \edef\currenttyping{#1}%
+% \typingparameter\c!before
+% \startpacked % includes \bgroup
+% \dosetuptypelinenumbering{}%
+% \initializetyping
+% \startverbatimcolor
+% \expandafter\processdisplayverbatim\expandafter{\s!stop#1}}
+
+% we need this hack because otherwise verbatim skips
+% the first line (everything after the initial command)
+
+\def\dostarttyping#1% tricky non standard lookahead
+ {\bgroup
+ \let\currenttypingclass\??tp
\edef\currenttyping{#1}%
- \typingparameter\c!before
+ \obeylines
+ \futurelet\nexttoken\dodostarttyping}
+
+\def\dodostarttyping
+ {\ifx\nexttoken[%
+ \expandafter\dododostarttyping
+ \else
+ \expandafter\nododostarttyping
+ \fi}
+
+\def\nododostarttyping
+ {\dododostarttyping[]}
+
+\def\dododostarttyping[#1]%
+ {\typingparameter\c!before
\startpacked % includes \bgroup
- \dosetuptypelinenumbering{}%
+ \dosetuptypelinenumbering{#1}%
\initializetyping
\startverbatimcolor
- \expandafter\processdisplayverbatim\expandafter{\s!stop#1}}
+ \expanded{\processdisplayverbatim{\s!stop\currenttyping}}}
\def\dostoptyping#1%
{\stopverbatimcolor
\stoppacked % includes \egroup
\typingparameter\c!after
+ \egroup
\dochecknextindentation{\??tp#1}%
\dorechecknextindentation}
+%D Line numbering for files is combined with filtering, while
+%D display verbatim has the ability to continue.
+%D
+%D \starttyping
+%D \typefile[numbering=file,start=10,stop=12]{test.tex}
+%D
+%D \definetyping[code][numbering=line]
+%D
+%D \starttext
+%D \startcode
+%D ...
+%D ...
+%D \stopcode
+%D
+%D \startcode[continue]
+%D ...
+%D ...
+%D \stopcode
+%D
+%D \startcode[start=10]
+%D ...
+%D \stopcode
+%D \stoptyping
+
%D \macros
%D {setuptyping}
%D
@@ -1024,7 +1081,7 @@
\let\endofpretty \stopcolor
\def\startverbatimcolor{\startcolor[\typingparameter\c!color]}%
\let\stopverbatimcolor \stopcolor
- \def\verbatimcolor {\typingparameter\c!color}}%
+ \def\verbatimcolor {\getvalue{\typingparameter\c!color}}}% command !
\doifelsenothing{\typingparameter\c!palet}
{\let\prettypalet\empty
\let\endofpretty\relax
@@ -1172,21 +1229,50 @@
\dodotypefile[\v!file][]{#3}%
\fi\fi}
+% \def\dosetuptypelinenumbering#1% fuzzy
+% {\doifundefined{\currenttypingclass\currenttyping\c!start}
+% {\setuptyping[\currenttyping][\c!start=1,\c!stop=,\c!step=1,\c!nlines=,#1]}%
+% \doifelse{\typingparameter\c!numbering}\v!file
+% {\setuplinenumbering[\c!method=\v!file]%
+% \donetrue}
+% {\doifelse{\typingparameter\c!numbering}\v!line
+% {% \setuplinenumbering defaults start/step to 1/1, so we need
+% \doifnothing{\typingparameter\c!start }{\settypingparameter\c!start {1}}%
+% \doifnothing{\typingparameter\c!step }{\settypingparameter\c!step {1}}%
+% \doifnothing{\typingparameter\c!continue}{\settypingparameter\c!continue{}}%
+% \setuplinenumbering
+% [\c!method=\v!type,
+% \c!continue=\typingparameter\c!continue,
+% \c!start=\typingparameter\c!start,
+% \c!step=\typingparameter\c!step]%
+% \donetrue}
+% {\donefalse}}%
+% \ifdone
+% \ifx\startlinenumbering\undefined \let\startlinenumbering\relax \fi
+% \ifx\stoplinenumbering \undefined \let\stoplinenumbering \relax \fi
+% \def\beginofverbatimlines{\startlinenumbering}%
+% \def\endofverbatimlines {\stoplinenumbering }%
+% \fi}
+
\def\dosetuptypelinenumbering#1% fuzzy
{\doifundefined{\currenttypingclass\currenttyping\c!start}
- {\setuptyping[\currenttyping][\c!start=1,\c!stop=,\c!step=1,\c!nlines=,#1]}%
+ {\setuptyping[\currenttyping][\c!start=1,\c!stop=,\c!step=1,\c!nlines=]}%
+ \setuptyping[\currenttyping][#1]%
\doifelse{\typingparameter\c!numbering}\v!file
- {\setuplinenumbering[\c!method=\v!file]%
+ {% kind of special: filters lines !
+ \setuplinenumbering[\c!method=\v!file]%
\donetrue}
{\doifelse{\typingparameter\c!numbering}\v!line
{% \setuplinenumbering defaults start/step to 1/1, so we need
- \doifnothing{\typingparameter\c!start }{\settypingparameter\c!start {1}}%
- \doifnothing{\typingparameter\c!step }{\settypingparameter\c!step {1}}%
- \doifnothing{\typingparameter\c!continue}{\settypingparameter\c!continue{}}%
+ \doifinsetelse\v!continue{#1,\typingparameter\c!start}
+ {\scratchcounter0\typingparameter\c!n
+ \setxtypingparameter\c!start{\ifnum\scratchcounter=0 1\else\number\scratchcounter\fi}}%
+ {\doifnothing{\typingparameter\c!start}{\settypingparameter\c!start{1}}}%
+ \doifnothing{\typingparameter\c!step}{\settypingparameter\c!step{1}}%
\setuplinenumbering
[\c!method=\v!type,
- \c!continue=\typingparameter\c!continue,
\c!start=\typingparameter\c!start,
+ \c!stop=\typingparameter\c!stop,
\c!step=\typingparameter\c!step]%
\donetrue}
{\donefalse}}%
@@ -1194,7 +1280,7 @@
\ifx\startlinenumbering\undefined \let\startlinenumbering\relax \fi
\ifx\stoplinenumbering \undefined \let\stoplinenumbering \relax \fi
\def\beginofverbatimlines{\startlinenumbering}%
- \def\endofverbatimlines {\stoplinenumbering }%
+ \def\endofverbatimlines {\stoplinenumbering\setxtypingparameter\c!n{\number\linenumber}}%
\fi}
% \setuptyping % not needed
diff --git a/tex/context/base/enco-032.tex b/tex/context/base/enco-032.tex
new file mode 100644
index 000000000..5c8f5fe68
--- /dev/null
+++ b/tex/context/base/enco-032.tex
@@ -0,0 +1,82 @@
+%D \module
+%D [ file=enco-032,
+%D version=2006.03.30,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=Unicode Goodies,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+% unicode table 32 (= hex 20)
+
+\startencoding [default]
+
+ \definecommand unic@threeperemspace {\hskip .33333em }
+ \definecommand unic@fourperemspace {\hskip .25em }
+ \definecommand unic@sixperemspace {\hskip .16667em }
+ \definecommand unic@figurespace {\hphantom{0}}
+ \definecommand unic@punctuationspace {\hphantom{,}}
+ \definecommand unic@hairspace {\hskip .08333em }
+ \definecommand unic@zerowidthspace {\hskip 0em plus 1sp }
+ \definecommand unic@zerowidthjoiner {\kern 0em }
+ \definecommand unic@zerowidthnonjoiner {\hskip 0em }
+
+ \definecommand unic@quotedblleftreversed {\mirror{\quotedblright}}
+ \definecommand unic@quoteleftreversed {\mirror{\quoteright}}
+
+ \definecommand unic@onedotleader {{\periods[1]}}
+ \definecommand unic@twodotleader {{\periods[2]}}
+ \definecommand unic@hyphenationpoint {.\allowbreak }
+
+ \definecommand unic@doubleexclamationmark {!!}
+ \definecommand unic@exclamationquestionmark {!?}
+ \definecommand unic@questionexclamationmark {?!}
+ \definecommand unic@doublequestionmark {??}
+
+ \definecommand unic@reversedpilcrowsign {\mirror{\P}}
+ \definecommand unic@reversedsemicolon {\mirror{;}}
+
+ \definecommand unic@superscriptzero {\high{0}}
+ \definecommand unic@superscripti {\high{i}}
+ \definecommand unic@superscriptfour {\high{4}}
+ \definecommand unic@superscriptfive {\high{5}}
+ \definecommand unic@superscriptsix {\high{6}}
+ \definecommand unic@superscriptseven {\high{7}}
+ \definecommand unic@superscripteight {\high{8}}
+ \definecommand unic@superscriptnine {\high{9}}
+ \definecommand unic@superscriptplus {\high{+}}
+ \definecommand unic@superscriptminus {\high{\textminus}}
+ \definecommand unic@superscriptequals {\high{=}}
+ \definecommand unic@superscriptleft {\high{(}}
+ \definecommand unic@superscriptright {\high{)}}
+ \definecommand unic@superscriptn {\high{n}}
+ \definecommand unic@subscriptzero {\low{0}}
+ \definecommand unic@subscriptone {\low{1}}
+ \definecommand unic@subscripttwo {\low{2}}
+ \definecommand unic@subscriptthree {\low{3}}
+ \definecommand unic@subscriptfour {\low{4}}
+ \definecommand unic@subscriptfive {\low{5}}
+ \definecommand unic@subscriptsix {\low{6}}
+ \definecommand unic@subscriptseven {\low{7}}
+ \definecommand unic@subscripteight {\low{8}}
+ \definecommand unic@subscriptnine {\low{9}}
+ \definecommand unic@subscriptplus {\low{+}}
+ \definecommand unic@subscriptminus {\low{\textminus}}
+ \definecommand unic@subscriptequals {\low{=}}
+ \definecommand unic@subscriptleft {\low{(}}
+ \definecommand unic@subscriptright {\low{)}}
+ \definecommand unic@subscripta {\low{a}}
+ \definecommand unic@subscripte {\low{e}}
+ \definecommand unic@subscripto {\low{o}}
+ \definecommand unic@subscriptx {\low{x}}
+ \definecommand unic@subscriptschwa {\low{\schwa}}
+
+\stopencoding
+
+\endinput
diff --git a/tex/context/base/enco-agr.tex b/tex/context/base/enco-agr.tex
index 36251d96a..513a0465b 100644
--- a/tex/context/base/enco-agr.tex
+++ b/tex/context/base/enco-agr.tex
@@ -6,6 +6,18 @@
%D author=Thomas A. Schmitz,
%D date=\currentdate]
+\startmapping[agr]
+
+ \definecasemaps 13 to 64 lc 0 uc 0
+ \definecasemaps 65 to 66 lc +32 uc 0
+ \definecasemaps 67 to 67 lc 0 uc 0
+ \definecasemaps 68 to 85 lc +32 uc 0
+ \definecasemaps 86 to 86 lc 0 uc 0
+ \definecasemaps 87 to 90 lc +32 uc 0
+ \definecasemaps 91 to 255 lc 0 uc 0
+
+\stopmapping
+
\startencoding[agr]
\definecharacter greeksigmalunate 1
diff --git a/tex/context/base/enco-ffr.tex b/tex/context/base/enco-ffr.tex
index ae3cd6eb1..1ddd226ee 100644
--- a/tex/context/base/enco-ffr.tex
+++ b/tex/context/base/enco-ffr.tex
@@ -20,20 +20,18 @@
\unprotect
-\startlanguagespecifics[fr]
- \definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
- \definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
- \definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
- \definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
+\startlanguagespecifics[\s!fr]
+ \definetextmodediscretionary : {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{:}:}
+ \definetextmodediscretionary ; {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{;};}
+ \definetextmodediscretionary ? {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{?}?}
+ \definetextmodediscretionary ! {\removeunwantedspaces\prewordbreak\kern\hspaceamount\currentmainlanguage{!}!}
\stoplanguagespecifics
\startlanguagespecifics[\s!fr]
-
\defineactivecharacter : {\mathortext{:}{\directdiscretionary{:}}}
\defineactivecharacter ; {\mathortext{;}{\directdiscretionary{;}}}
\defineactivecharacter ! {\mathortext{!}{\directdiscretionary{!}}}
\defineactivecharacter ? {\mathortext{?}{\directdiscretionary{?}}}
-
\stoplanguagespecifics
% maybe tricky due to possible name clashes:
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index befed9e05..7c4a88814 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -210,9 +210,17 @@
\def\trueregimename#1%
{\executeifdefined{\@reg@::#1}{#1}}
+% \def\enableregime[#1]%
+% {\edef\characterregime{@\trueregimename{#1}@}%
+% \ifx\enabledregime\characterregime \else
+% \the\executeifdefined{\@reg@\characterregime}\emptytoks
+% \fi}
+
\def\enableregime[#1]%
{\edef\characterregime{@\trueregimename{#1}@}%
\ifx\enabledregime\characterregime \else
+ \doifundefined{\@reg@\characterregime}
+ {\expanded{\useregime[\pureencodingname\characterregime]}}% auto load
\the\executeifdefined{\@reg@\characterregime}\emptytoks
\fi}
@@ -439,10 +447,12 @@
\def\stopsavingmappingtoks
{\global\mappingtoks\emptytoks
- \dostepwiserecurse{128}{255}\plusone
+ \dostepwiserecurse{0}{255}\plusone
{\edef\@@expanded
{\the\mappingtoks
- \noexpand\checkregimecode\recurselevel\space
+ \ifnum\recurselevel>127
+ \noexpand\checkregimecode\recurselevel\space
+ \fi
\lccode\recurselevel\ifnum\lccode\recurselevel=\zerocount\zerocount\else\space\the\lccode\recurselevel\space\fi
\uccode\recurselevel\ifnum\uccode\recurselevel=\zerocount\zerocount\else\space\the\uccode\recurselevel\space\fi
\ifnum\sfcode\recurselevel=\plusthousand\else\sfcode\recurselevel=\the\sfcode\recurselevel\space\fi
@@ -758,7 +768,8 @@
{\edef\charactermapping{@#1@}%
\ifx\enabledmapping\charactermapping \else
\doifdefined{\@map@\charactermapping}
- {\the\csname\@map@\charactermapping\endcsname}%
+ {%\expandafter\showthe\csname\@map@\charactermapping\endcsname\endcsname
+ \the\csname\@map@\charactermapping\endcsname}%
% == \the\executeifdefined{\@map@\charactermapping}\emptytoks
\edef\enabledmapping{\charactermapping}%
\enablelanguagespecifics[\currentlanguage]% new
@@ -1179,8 +1190,13 @@
% \doautosetregime{#1}{#2}}
% {\setvalue{\characterprefix\characterencoding\string#1}{#2}}}
-\def\numcharacter#1{\char#1 }
-\let\dochar\numcharacter
+% \def\numcharacter#1{\char#1 }
+% \let\dochar\numcharacter
+
+\unexpanded\def\numchr#1{\char#1\relax}
+\unexpanded\def\strchr#1{\csname#1\endcsname}
+
+\let\dochar\numchr
\def\definecharacter#1 #2 %
{\ifundefined{#1}\setvalue{#1}{\dohandlecharacter{#1}}\fi
@@ -1466,11 +1482,13 @@
%D When we show 'm, we don't want to see the protection
%D measures.
-\def\currentencoding{\@EA\docurrentencoding\characterencoding}
-\def\currentregime {\@EA\docurrentencoding\characterregime }
-\def\currentmapping {\@EA\docurrentencoding\charactermapping }
+\def\currentencoding{\@EA\dopureencodingname\characterencoding}
+\def\currentregime {\@EA\dopureencodingname\characterregime }
+\def\currentmapping {\@EA\dopureencodingname\charactermapping }
+
+\def\dopureencodingname @#1@{#1}
-\def\docurrentencoding @#1@{#1}
+\def\pureencodingname#1{\@EA\dopureencodingname#1}
%D \macros
%D {showaccents, showcharacters,
@@ -1945,15 +1963,27 @@
% new, to be documented (oeps, conflicts with existing code)
+\def\donthandleaccent #1{\expandafter\string\csname#1\endcsname\space}
+\def\donthandlecommand #1{\expandafter\string\csname#1\endcsname\space}
+\def\donthandlecharacter #1{\expandafter\string\csname#1\endcsname\space}
+
+\def\stringifyhandleaccent #1{\strchr{#1}}
+\def\stringifyhandlecommand #1{\strchr{#1}}
+\def\stringifyhandlecharacter#1{\strchr{#1}}
+
+\def\keephandleaccent #1{\expandafter\noexpand\csname#1\endcsname}
+\def\keephandlecommand #1{\expandafter\noexpand\csname#1\endcsname}
+\def\keephandlecharacter #1{\expandafter\noexpand\csname#1\endcsname}
+
+\def\handleaccent #1{\csname#1\endcsname}
+\def\handlecommand #1{\csname#1\endcsname}
+\def\handlecharacter #1{\csname#1\endcsname}
+
\def\dontexpandencoding
{\let\dohandleaccent \donthandleaccent
\let\dohandlecommand \donthandlecommand
\let\dohandlecharacter\donthandlecharacter}
-\def\donthandleaccent #1{\expandafter\string\csname#1\endcsname\space}
-\def\donthandlecommand #1{\expandafter\string\csname#1\endcsname\space}
-\def\donthandlecharacter#1{\expandafter\string\csname#1\endcsname\space}
-
\def\keepencodedtokens
{\let\dohandleaccent \keephandleaccent
\let\dohandlecommand \keephandlecommand
@@ -1964,13 +1994,10 @@
% \let\dohandlecommand \keephandlecommand
\let\dohandlecharacter\keephandlecharacter}
-\def\keephandleaccent #1{\expandafter\noexpand\csname#1\endcsname}
-\def\keephandlecommand #1{\expandafter\noexpand\csname#1\endcsname}
-\def\keephandlecharacter#1{\expandafter\noexpand\csname#1\endcsname}
-
-\def\handleaccent #1{\csname#1\endcsname}
-\def\handlecommand #1{\csname#1\endcsname}
-\def\handlecharacter#1{\csname#1\endcsname}
+\def\stringifyencodedtokens
+ {% \let\dohandleaccent \stringifyhandleaccent
+ % \let\dohandlecommand \stringifyhandlecommand
+ \let\dohandlecharacter\stringifyhandlecharacter}
\unexpanded\def\uhandleaccent #1{\csname#1\endcsname}
\unexpanded\def\uhandlecommand #1{\csname#1\endcsname}
@@ -1981,17 +2008,19 @@
\def\dohandlecommand {\uhandlecommand}%
\def\dohandlecharacter{\uhandlecharacter}}
+\def\convertencodedtokens{\dontexpandencoding}
+
%D Still valid? To be checked:
+\def\doignoreaccent #1#2{\string#1\string#2}%
+\def\doignorecommand #1{\string#1}
+\def\doignorecharacter#1{\string#1}
+
\def\ignoreencoding
{\let\dohandleaccent \doignoreaccent
\let\dohandlecommand \doignorecommand
\let\dohandlecharacter\doignorecharacter}
-\def\doignoreaccent #1#2{\string#1\string#2}%
-\def\doignorecommand #1{\string#1}
-\def\doignorecharacter#1{\string#1}
-
\appendtoks
\ignoreencoding
\to \everycleanupfeatures
@@ -2009,7 +2038,9 @@
\useencoding[def,acc,raw,com,cas,mis] % mis should come first
-\useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx,t5,cyr]
+\useencoding[ans,il2,ec,tbo,pdf,uc,pol,qx,t5,cyr,agr] % pol and il2 will go away
+
+\useencoding[032,033,037]
\setupencoding[\s!default=ec] % was: [\s!default=\s!default]
diff --git a/tex/context/base/enco-mis.tex b/tex/context/base/enco-mis.tex
index 9a9db0c41..d3e5b7883 100644
--- a/tex/context/base/enco-mis.tex
+++ b/tex/context/base/enco-mis.tex
@@ -143,18 +143,18 @@
% perthings
-\def\fakeperthousand
- {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
-
\def\fakepercent
{\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}}
+\def\fakeperthousand
+ {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}}
+
\def\fakepermine
{\dontleavehmode
\bgroup
- \setbox0\hbox
+ \setbox\scratchbox\hbox
{\mathematics{+}}%
- \hbox to \wd0
+ \hbox to \wd\scratchbox
{\hss
\mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}%
\hss}%
diff --git a/tex/context/base/enco-pfr.tex b/tex/context/base/enco-pfr.tex
index faa8a85b1..b64a9b67e 100644
--- a/tex/context/base/enco-pfr.tex
+++ b/tex/context/base/enco-pfr.tex
@@ -201,7 +201,6 @@
\letgvalue{\s!ucmap\fontfile}\empty
\fi}}
-
\endETEX
\beginTEX
diff --git a/tex/context/base/enco-uni.tex b/tex/context/base/enco-uni.tex
deleted file mode 100644
index c09c2e1bf..000000000
--- a/tex/context/base/enco-uni.tex
+++ /dev/null
@@ -1,5 +0,0 @@
-% temporary module, needed for downward compatibility
-
-% \input regi-uni.tex
-
-\endinput
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index a352564ed..782e9cd9c 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -1275,6 +1275,16 @@
\endETEX
+%D We also save:
+
+\def\savemathtextstyle#1% #1=rm|ss|..
+ {\doifsomething{#1}{\setxvalue{\fontclass\c!mm\s!text}{#1}}}
+
+\def\currentmathtextstyle % we default to empty !
+ {\executeifdefined{\fontclass\c!mm\s!text}\empty}
+
+%D Scaling macros:
+
\newdimen\scaledfont
\let\somefontspec\empty
diff --git a/tex/context/base/lang-all.xml b/tex/context/base/lang-all.xml
index c0dfc6765..0d5ea936b 100644
--- a/tex/context/base/lang-all.xml
+++ b/tex/context/base/lang-all.xml
@@ -337,4 +337,16 @@
<comment>Vietnamese needs no patterns.</comment>
</description>
+<description language='agr'>
+ <sourcefile>grahyph4.tex</sourcefile>
+ <title>TeX hyphenation patterns for the ancient Greek language</title>
+ <copyright>
+ <year>2004</year>
+ <owner>Dimitrios Filippou</owner>
+ <comment>These hyphenation patterns are explained in "ancient.pdf".
+ Hyphenation examples are given in the file "anc-test.pdf".
+ Some doubtful patterns are marked by three question marks "???".</comment>
+ </copyright>
+</description>
+
</descriptions>
diff --git a/tex/context/base/lang-ctx.tex b/tex/context/base/lang-ctx.tex
index c9fa10c7c..76812b085 100644
--- a/tex/context/base/lang-ctx.tex
+++ b/tex/context/base/lang-ctx.tex
@@ -50,4 +50,8 @@
\installlanguage[\s!uk][\s!lefthyphenmin=3,\s!righthyphenmin=3] % patterns can only handle this
\installlanguage[\s!us][\s!lefthyphenmin=2,\s!righthyphenmin=3] % patterns can only handle this
+% greek
+
+\installlanguage[\s!agr][\s!mapping=\s!agr,\s!encoding=\s!agr]
+
\protect \endinput
diff --git a/tex/context/base/lang-grk.tex b/tex/context/base/lang-grk.tex
index cd83daddb..13cebb207 100644
--- a/tex/context/base/lang-grk.tex
+++ b/tex/context/base/lang-grk.tex
@@ -83,4 +83,11 @@
%D % \ShowAllLanguageValues [\s!gr] [\greekEpsilon\greeklambda\greeklambda\greeketa\greeknu\greekiota\greekkappa\greekalphatonos] {Greek} {love}
+\installlanguage
+ [\s!agr]
+ [\s!default=\s!gr,
+ \c!state=\v!stop]
+
+\installlanguage [ancientgreek] [\s!agr]
+
\protect \endinput
diff --git a/tex/context/base/lang-ini.tex b/tex/context/base/lang-ini.tex
index 9bce8b7dc..7dc90e5f7 100644
--- a/tex/context/base/lang-ini.tex
+++ b/tex/context/base/lang-ini.tex
@@ -352,6 +352,12 @@
% old (original) patterns
\doifelsenothing{#3}{\enableencoding[\s!default]}{\enableencoding[#3]}%
\doifelsenothing{#4}{\enablemapping [\s!default]}{\enablemapping [#4]}%
+% \iftrue
+% \dostepwiserecurse{0}{255}{1}
+% {\ifnum\lccode\recurselevel>0
+% \writestatus{lccodes}{#4: \recurselevel: \the\lccode\recurselevel}%
+% \fi}
+% \fi
% new patterns
% \enableregime[utf]%
%
diff --git a/tex/context/base/m-streams.tex b/tex/context/base/m-streams.tex
index 5cd618bc4..5822a0c9f 100644
--- a/tex/context/base/m-streams.tex
+++ b/tex/context/base/m-streams.tex
@@ -126,7 +126,7 @@
\def\startstreamlayer[#1]%
{\bgroup
- \def\startstreamlayer[##1]{\bgroup\let\stopstreamlayer\egroup}%
+% \def\startstreamlayer[##1]{\bgroup\let\stopstreamlayer\egroup}%
\edef\currentstreamlayer{#1}%
\enableoutputstream[main]%
\synchronizeoutput
@@ -139,16 +139,32 @@
\egroup
\disableoutputstream % \enableoutputstream[\s!default]%
\outputstreambox[main]%
+% \dostreamsetups{place}%
+% \dostreamsetups{extras}%
+% \dostreamsetups{flush}%
+ \egroup}
+
+\def\preparestreamlayer{\dosingleempty\dopreparestreamlayer}
+\def\flushstreamlayer {\dosingleempty\doflushstreamlayer }
+\def\placestreamlayer {\dosingleempty\doplacestreamlayer }
+
+\def\dopreparestreamlayer[#1]%
+ {\bgroup
+ \edef\currentstreamlayer{\iffirstargument#1\else\currentstreamlayer\fi}%
\dostreamsetups{place}%
\dostreamsetups{extras}%
- \dostreamsetups{flush}%
+% \dostreamsetups{flush}%
\egroup}
-\def\flushstreamlayer
- {\dosingleempty\doflushstreamlayer}
-
\def\doflushstreamlayer[#1]%
- {\expanded{\tightlayer[\iffirstargument#1\else\currentstreamlayer\fi]}}
+ {\bgroup
+ \edef\currentstreamlayer{\iffirstargument#1\else\currentstreamlayer\fi}%
+ \dostreamsetups{flush}%
+ \egroup}
+
+\def\doplacestreamlayer[#1]%
+ {\preparestreamlayer[#1]%
+ \flushstreamlayer[#1]}
\protect
@@ -236,6 +252,7 @@
%D \item xxx
%D \stopitemize
%D \stopstreamlayer
+%D \placestreamlayer[block]
%D }
%D
%D \dorecurse {10} {
@@ -245,6 +262,7 @@
%D \input tufte
%D \stopcolumns
%D \stopstreamlayer
+%D \placestreamlayer[block]
%D }
%D
%D \stoptext
@@ -324,6 +342,7 @@
% \dorecurse{4}{\input tufte \par}
% \stopcolumns
% \stopstreamlayer
+% \placestreamlayer[block]
\dorecurse {10} {
\startstreamlayer[block]
@@ -340,6 +359,7 @@
\item xxx
\stopitemize
\stopstreamlayer
+ \placestreamlayer[block]
}
\dorecurse {10} {
@@ -349,6 +369,7 @@
\input tufte
\stopcolumns
\stopstreamlayer
+ \placestreamlayer[block]
}
\stoptext
diff --git a/tex/context/base/m-units.tex b/tex/context/base/m-units.tex
index 949297686..89dd71e77 100644
--- a/tex/context/base/m-units.tex
+++ b/tex/context/base/m-units.tex
@@ -190,9 +190,9 @@
\def\dodimensionpower#1%
{\iftextdimensions\expandafter\high\else\expandafter^\fi{#1}}
-\def\ustartmathmode {\iftextdimensions\else\startmathmode \fi}
-\def\ustopmathmode {\iftextdimensions\else\stopmathmode \fi}
-\def\umathematicstypeface{\iftextdimensions\else\mathematicstypeface\fi}
+\def\ustartmathmode {\iftextdimensions\else\expandafter\startmathmode \fi}
+\def\ustopmathmode {\iftextdimensions\else\expandafter\stopmathmode \fi}
+\def\umathematicstypeface{\iftextdimensions\else\expandafter\mathematicstypeface\fi}
%D In forced text mode, we ignore spacing in monospaced fonts.
@@ -202,8 +202,8 @@
\def\dodimensionspace
{\iftextdimensions
\begingroup
- \setbox0=\hbox{i}%
- \setbox2=\hbox{m}%
+ \setbox0\hbox{i}%
+ \setbox2\hbox{m}%
\ifdim\wd0=\wd2
\endgroup
\@EAEAEA\gobbleoneargument
@@ -222,7 +222,7 @@
\let\dimensionsuffix\dimension
\let\dimensionpower \dimension
\global\nesteddimensionfalse
- \setbox0=\hbox{\ustartmathmode#1\ustopmathmode}%
+ \setbox\scratchbox\hbox{\ustartmathmode#1\ustopmathmode}% pre-roll
\global\let\thedimensionprefix\savedthedimensionprefix
\global\let\thedimensionpower \savedthedimensionpower
\endgroup
@@ -276,8 +276,8 @@
%D
%D Here are some auxilliary macros.
-\def\dontbreakdimension%
- {\scratchdimen=\lastskip
+\def\dontbreakdimension
+ {\scratchdimen\lastskip
\unskip
\nobreak
\hskip\scratchdimen
diff --git a/tex/context/base/math-ini.tex b/tex/context/base/math-ini.tex
index d78a9e4fc..a9f93a4f4 100644
--- a/tex/context/base/math-ini.tex
+++ b/tex/context/base/math-ini.tex
@@ -500,13 +500,42 @@
%D Taco posted this solution as response to a mail by Olivier, so
%D let's integrate it here.
-\def\setmathfunctionstyle#1% \rm \ss \tt
- {\def\mfunction##1% no families, just scaling a la text
- {\mathchoice
- {\hbox{\csname#1\endcsname\tf ##1}}
- {\hbox{\csname#1\endcsname\tf ##1}}
- {\hbox{\csname#1\endcsname\tfx ##1}}
- {\hbox{\csname#1\endcsname\tfxx##1}}}}
+% \def\setmathfunctionstyle#1% rm ss tt
+% {\def\mfunction##1% no families, just scaling a la text
+% {\mathchoice
+% {\hbox{\csname#1\endcsname\tf ##1}}
+% {\hbox{\csname#1\endcsname\tf ##1}}
+% {\hbox{\csname#1\endcsname\tfx ##1}}
+% {\hbox{\csname#1\endcsname\tfxx##1}}}}
+
+\def\currentmscaledstyle{rm} % will be plugged into the typeface text=ss option
+
+\def\setmathfunctionstyle#1% rm ss tt
+ {\doifsomething{#1}
+ {\def\currentmscaledstyle{#1}%
+ \def\mathopnolimits##1{\mathop{\mscaledtext{##1}}\nolimits}%
+ \def\mfunction##1{\mscaledtext{##1}}}}
+
+\def\mscaledtext#1%
+ {\mathchoice
+ {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tf #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tfx #1}}
+ {\hbox{\csname\currentmscaledstyle\endcsname\tfxx#1}}}
+
+%D We can force the way functions are typeset by manipulating the text
+%D option:
+%D
+%D \starttyping
+%D \definetypeface[iwona][ss][sans][iwona][default][encoding=texnansi]
+%D \definetypeface[iwona][mm][math][iwona][default][encoding=texnansi,text=ss]
+%D \stoptyping
+%D
+%D This hooks into the math handler with:
+
+\appendtoks
+ \setmathfunctionstyle\currentmathtextstyle
+\to \everybodyfont
%D Usage:
%D
diff --git a/tex/context/base/math-mis.tex b/tex/context/base/math-mis.tex
new file mode 100644
index 000000000..b5a605cea
--- /dev/null
+++ b/tex/context/base/math-mis.tex
@@ -0,0 +1,49 @@
+%D \module
+%D [ file=math-mis,
+%D version=2001.04.12,
+%D title=\CONTEXT\ Math Macros,
+%D subtitle=Miscelaneous Symbols,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright=\PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\unprotect
+
+%D \starttyping
+%D \usemathcollection[mis]
+%D \stoptyping
+
+\def\styledmathcommand#1%
+ {\mathchoice
+ {\let\currentmathstyle\displaystyle#1}%
+ {\let\currentmathstyle\textstyle#1}%
+ {\let\currentmathstyle\scriptstyle#1}%
+ {\let\currentmathstyle\scriptscriptstyle#1}}
+
+%D For Hong Feng:
+
+\def\geneq
+ {\styledmathcommand\dogeneq}
+
+\def\dogeneq
+ {\begingroup
+ \setbox\scratchbox\hbox{$\currentmathstyle=$}%
+ \hbox to \wd\scratchbox
+ {\copy\scratchbox
+ \hskip-\wd\scratchbox
+ \hss\incolortrue\localcolortrue
+ \color[white]{\vrule\!!height.6\ht\scratchbox\!!depth\zeropoint\!!width.2\wd\scratchbox}%
+ \hss}%
+ \endgroup}
+
+%D \startbuffer
+%D $a\geneq b^{a\geneq b^{a\geneq b}}$
+%D \stopbuffer
+%D
+%D \typebuffer \getbuffer
+
+\protect \endinput
diff --git a/tex/context/base/math-uni.tex b/tex/context/base/math-uni.tex
index 88698243f..e8fd3f05d 100644
--- a/tex/context/base/math-uni.tex
+++ b/tex/context/base/math-uni.tex
@@ -3,21 +3,180 @@
%D version=2005.06.11,
%D title=\CONTEXT\ Math Macros,
%D subtitle=unicode support,
-%D author=Nikolai Weibull,
+%D author={Nikolai Weibull \& Taco Hoekwater},
%D date=\currentdate,
-%D copyright={PRAGMA / Nikolai Weibull}]
+%D copyright=PRAGMA]
\unprotect
-% needed for unic-033
+% needed for unic-032 % TH
\startmathcollection[default]
- \definemathcommand [unic@leftarrowtobar] {\mapstochar\leftarrow}
+ \definemathcommand [unic@doubleverticalline] {\mathord{\parallel}}
+ \definemathcommand [unic@doublelowline] {\underline{\textunderscore}}
+
+ \definemathcommand [unic@doubleprime] {''}
+ \definemathcommand [unic@tripleprime] {'''}
+
+ \definemathcommand [unic@reverseddoubleprime] {\mathord{\backprime\backprime}}
+ \definemathcommand [unic@reversedtripleprime] {\mathord{\backprime\backprime\backprime}}
+
+ \definemathcommand [unic@fractionslash] {\vulgarfraction{}{}}
+ \definemathcommand [unic@lowasterisk] {\mathord{\lower-.2em\hbox{$\ast$}}}
+
+ \definemathcommand [unic@functionapplication] {\mathop{}}
+ \definemathcommand [unic@invisibletimes] {\mathbin{}}
+ \definemathcommand [unic@invisibleseparator] {\mathpunct{}}
+
+\stopmathcollection
+
+% needed for unic-033 % TH
+
+\def\unic@vulgarfraction#1#2%
+ {\hbox
+ {\high{{\tfx\it #1}\kern -.2em}%
+ \symbol[vulgarfraction]%
+ \kern -.2em\low{{\tfx\it #2}}}}
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@accountof] {\unic@vulgarfraction{a}{c}}
+ \definemathcommand [unic@addressedtothesubject] {\unic@vulgarfraction{a}{s}}
+ \definemathcommand [unic@doublestruckC] {{\Bbb C}}
+ \definemathcommand [unic@degreecelsius] {{\textdegree \tf C}}
+ \definemathcommand [unic@centrelinesymbol] {\unknownchar}
+ \definemathcommand [unic@careof] {\unic@vulgarfraction{c}{o}}
+ \definemathcommand [unic@cadauna] {\unic@vulgarfraction{c}{u}}
+ \definemathcommand [unic@eulerconstant] {{\rm e}}
+ \definemathcommand [unic@scruple] {\unknownchar}
+ \definemathcommand [unic@degreefahrenheit] {{\textdegree \tf F}}
+ \definemathcommand [unic@scriptg] {\unknownchar}
+ \definemathcommand [unic@scriptH] {{\cal H}}
+ \definemathcommand [unic@blackletterH] {{\fraktur H}}
+ \definemathcommand [unic@doublestruckH] {{\Bbb H}}
+ \definemathcommand [unic@planckconstant] {h}
+ \definemathcommand [unic@planckconstantovertwopi] {\hslash}
+ \definemathcommand [unic@scriptI] {{\cal I}}
+ \definemathcommand [unic@blackletterI] {{\fraktur I}}
+ \definemathcommand [unic@scriptL] {{\cal L}}
+ \definemathcommand [unic@scriptl] {\ell}
+ \definemathcommand [unic@lbbarsymbol] {\unknownchar}
+ \definemathcommand [unic@doublestruckN] {{\Bbb N}}
+ \definemathcommand [unic@numerosign] {\hbox{\symbol[numero]}}
+ \definemathcommand [unic@soundrecordingcopyright] {\encircled{{\tfx P}}}
+ \definemathcommand [unic@scriptP] {{\cal P}}
+ \definemathcommand [unic@doublestruckP] {{\Bbb P}}
+ \definemathcommand [unic@doublestruckQ] {{\Bbb Q}}
+ \definemathcommand [unic@scriptR] {{\cal R}}
+ \definemathcommand [unic@blackletterR] {{\fraktur R}}
+ \definemathcommand [unic@doublestruckR] {{\Bbb R}}
+ \definemathcommand [unic@prescriptiontake] {\unknownchar}
+ \definemathcommand [unic@response] {\unknownchar}
+ \definemathcommand [unic@servicemark] {\high{\txx SM}}
+ \definemathcommand [unic@telephonesign] {\high{\txx TEL}}
+ \definemathcommand [unic@trademarksign] {\trademark}
+ \definemathcommand [unic@versickle] {\unknownchar}
+ \definemathcommand [unic@doublestruckZ] {{\Bbb Z}}
+ \definemathcommand [unic@ouncesign] {\unknownchar}
+ \definemathcommand [unic@ohmsign] {\Omega}
+ \definemathcommand [unic@invertedohmsign] {\rotate[\c!rotation=180]{\Omega}}
+ \definemathcommand [unic@blackletterZ] {{\fraktur Z}}
+ \definemathcommand [unic@turnedgreekletteriota] {\rotate[\c!rotation=180]{\iota}}
+ \definemathcommand [unic@kelvinsign] {{\tf K}}
+ \definemathcommand [unic@angstromsign] {\Angstrom}
+ \definemathcommand [unic@scriptB] {{\cal B}}
+ \definemathcommand [unic@blackletterC] {{\fraktur C}}
+ \definemathcommand [unic@estimatedsymbol] {\unknownchar}
+ \definemathcommand [unic@scripte] {\unknownchar}
+ \definemathcommand [unic@scriptE] {{\cal E}}
+ \definemathcommand [unic@scriptF] {{\cal F}}
+ \definemathcommand [unic@turnedF] {\rotate[\c!rotation=180]{{\tf F}}}
+ \definemathcommand [unic@scriptM] {{\cal M}}
+ \definemathcommand [unic@scripto] {\unknownchar}
+
+ \definemathcommand [unic@informationsource] {{\bf i}}
+ \definemathcommand [unic@rotatedQ] {\rotate[\c!rotation=90]{{\tf Q}}}
+ \definemathcommand [unic@facsimilesign] {\unknownchar}
+ \definemathcommand [unic@doublestruckpi] {\pi}%{\unknownchar}
+ \definemathcommand [unic@doublestruckgamma] {\gamma}%{\unknownchar}
+ \definemathcommand [unic@doublestruckGamma] {\Gamma}%{\unknownchar}
+ \definemathcommand [unic@doublestruckPi] {\Pi}%{\unknownchar}
+ \definemathcommand [unic@doublestrucknarysummation] {\unknownchar}
+ \definemathcommand [unic@turnedsansserifG] {\rotate[\c!rotation=180]{{\ss G}}}
+ \definemathcommand [unic@turnedsansserifL] {\rotate[\c!rotation=180]{{\ss L}}}
+ \definemathcommand [unic@reversedsansserifL] {\mirror{{\ss L}}}
+ \definemathcommand [unic@turnedsansserifY] {\rotate[\c!rotation=180]{{\ss Y}}}
+ \definemathcommand [unic@doublestruckitalicD] {D}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalicd] {d}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalice] {e}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalici] {i}%{\unknownchar}
+ \definemathcommand [unic@doublestruckitalicj] {j}%{\unknownchar}
+ \definemathcommand [unic@propertyline] {\unknownchar}
+ \definemathcommand [unic@turnedampersand] {\rotate[\c!rotation=180]{\&}}
+ \definemathcommand [unic@persign] {\unknownchar}
+
+ \definemathcommand [unic@fractiononethird] {\vulgarfraction{1}{3}}
+ \definemathcommand [unic@fractiontwothirds] {\vulgarfraction{2}{3}}
+ \definemathcommand [unic@fractiononefifth] {\vulgarfraction{1}{5}}
+ \definemathcommand [unic@fractiontwofifths] {\vulgarfraction{2}{5}}
+ \definemathcommand [unic@fractionthreefifths] {\vulgarfraction{3}{5}}
+ \definemathcommand [unic@fractionfourfifths] {\vulgarfraction{4}{5}}
+ \definemathcommand [unic@fractiononesixth] {\vulgarfraction{1}{6}}
+ \definemathcommand [unic@fractionfivesixths] {\vulgarfraction{5}{6}}
+ \definemathcommand [unic@fractiononeeighth] {\vulgarfraction{1}{8}}
+ \definemathcommand [unic@fractionthreeeighths] {\vulgarfraction{3}{8}}
+ \definemathcommand [unic@fractionfiveeighths] {\vulgarfraction{5}{8}}
+ \definemathcommand [unic@fractionseveneighths] {\vulgarfraction{7}{8}}
+ \definemathcommand [unic@fractionnumeratorone] {\vulgarfraction{1}{}}
+ \definemathcommand [unic@romannumeralOne] {{\tf I}}
+ \definemathcommand [unic@romannumeralTwo] {{\tf II}}
+ \definemathcommand [unic@romannumeralThree] {{\tf III}}
+ \definemathcommand [unic@romannumeralFour] {{\tf IV}}
+ \definemathcommand [unic@romannumeralFive] {{\tf V}}
+ \definemathcommand [unic@romannumeralSix] {{\tf VI}}
+ \definemathcommand [unic@romannumeralSeven] {{\tf VII}}
+ \definemathcommand [unic@romannumeralEight] {{\tf VIII}}
+ \definemathcommand [unic@romannumeralNine] {{\tf IX}}
+ \definemathcommand [unic@romannumeralTen] {{\tf X}}
+ \definemathcommand [unic@romannumeralEleven] {{\tf XI}}
+ \definemathcommand [unic@romannumeralTwelve] {{\tf XII}}
+ \definemathcommand [unic@romannumeralFifty] {{\tf L}}
+ \definemathcommand [unic@romannumeralOnehundred] {{\tf C}}
+ \definemathcommand [unic@romannumeralFivehundred] {{\tf D}}
+ \definemathcommand [unic@romannumeralOnethousand] {{\tf M}}
+ \definemathcommand [unic@romannumeralone] {{\tf i}}
+ \definemathcommand [unic@romannumeraltwo] {{\tf ii}}
+ \definemathcommand [unic@romannumeralthree] {{\tf iii}}
+ \definemathcommand [unic@romannumeralfour] {{\tf iv}}
+ \definemathcommand [unic@romannumeralfive] {{\tf v}}
+ \definemathcommand [unic@romannumeralsix] {{\tf vi}}
+ \definemathcommand [unic@romannumeralseven] {{\tf vii}}
+ \definemathcommand [unic@romannumeraleight] {{\tf viii}}
+ \definemathcommand [unic@romannumeralnine] {{\tf ix}}
+ \definemathcommand [unic@romannumeralten] {{\tf x}}
+ \definemathcommand [unic@romannumeraleleven] {{\tf xi}}
+ \definemathcommand [unic@romannumeraltwelve] {{\tf xii}}
+ \definemathcommand [unic@romannumeralfifty] {{\tf l}}
+ \definemathcommand [unic@romannumeralonehundred] {{\tf c}}
+ \definemathcommand [unic@romannumeralfivehundred] {{\tf d}}
+ \definemathcommand [unic@romannumeralonethousand] {{\tf m}}
+ \definemathcommand [unic@romannumeralonethousandCD] {\unknownchar}
+ \definemathcommand [unic@romannumeralfivethousand] {\unknownchar}
+ \definemathcommand [unic@romannumeraltenthousand] {\unknownchar}
+ \definemathcommand [unic@romannumeralreversedonehundred] {\mirror{C}}
+
+\stopmathcollection
+
+% needed for unic-033 % NW
+
+\startmathcollection[default]
+
+ \definemathcommand [unic@leftarrowtobar] {\mapstochar\leftarrow}
\stopmathcollection
-% needed for unic-034
+% needed for unic-034 % NW
\startmathcollection[default]
@@ -64,7 +223,7 @@
\stopmathcollection
-% needed for unic-039
+% needed for unic-039 % NW
\startmathcollection[default]
diff --git a/tex/context/base/meta-ini.tex b/tex/context/base/meta-ini.tex
index 20451074c..2fcd74718 100644
--- a/tex/context/base/meta-ini.tex
+++ b/tex/context/base/meta-ini.tex
@@ -103,8 +103,12 @@
\to \MPextensions
%D Some safeguards:
-
-\appendtoks \cleanupfeatures \to \everyMPgraphic
+%D
+%D \starttyping
+%D \appendtoks \cleanupfeatures \to \everyMPgraphic
+%D \stoptyping
+%D
+%D No, we don't want that (else we loose UTF etc).
%D Another one:
@@ -996,6 +1000,8 @@
\newconditional\manyMPspecials % when set to true, > 1000 specials can be used
+\settrue \manyMPspecials % per 1/4/2006
+
\prependtoks
_special_div_ := 1000\ifconditional\manyMPspecials0\fi ;
\to \MPextensions
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 3ed401edb..3e00c2e0a 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -972,6 +972,10 @@ subsubsubsubsubsubject: subsubsubsubsubonderwerp subsubsubsubsub
posten polozky
elementi elemente
elements
+ fallback: terugval fallback
+ fallback fallback
+ fallback fallback
+ fallback
frame: kader frame
rahmen ramecek
cornice frame
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 838162e71..12b29de55 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -32,36 +32,37 @@
%D First we define some system constants used for both the
%D multi||lingual interface and multi||linguag typesetting.
-\definesystemconstant {afrikaans} \definesystemconstant {af}
-\definesystemconstant {catalan} \definesystemconstant {ca}
-\definesystemconstant {chinese} \definesystemconstant {cn}
-\definesystemconstant {croation} \definesystemconstant {hr}
-\definesystemconstant {czech} \definesystemconstant {cz}
-\definesystemconstant {danish} \definesystemconstant {da}
-\definesystemconstant {dutch} \definesystemconstant {nl}
-\definesystemconstant {english} \definesystemconstant {en}
-\definesystemconstant {finish} \definesystemconstant {fi}
-\definesystemconstant {french} \definesystemconstant {fr}
-\definesystemconstant {german} \definesystemconstant {de}
-\definesystemconstant {hungarian} \definesystemconstant {hu}
-\definesystemconstant {italian} \definesystemconstant {it}
-\definesystemconstant {latin} \definesystemconstant {la}
-\definesystemconstant {norwegian} \definesystemconstant {no}
-\definesystemconstant {polish} \definesystemconstant {pl}
-\definesystemconstant {portuguese} \definesystemconstant {pt}
-\definesystemconstant {romanian} \definesystemconstant {ro}
-\definesystemconstant {russian} \definesystemconstant {ru}
-\definesystemconstant {slovak} \definesystemconstant {sk}
-\definesystemconstant {slovenian} \definesystemconstant {sl}
+\definesystemconstant {afrikaans} \definesystemconstant {af}
+\definesystemconstant {catalan} \definesystemconstant {ca}
+\definesystemconstant {chinese} \definesystemconstant {cn}
+\definesystemconstant {croation} \definesystemconstant {hr}
+\definesystemconstant {czech} \definesystemconstant {cz}
+\definesystemconstant {danish} \definesystemconstant {da}
+\definesystemconstant {dutch} \definesystemconstant {nl}
+\definesystemconstant {english} \definesystemconstant {en}
+\definesystemconstant {finish} \definesystemconstant {fi}
+\definesystemconstant {french} \definesystemconstant {fr}
+\definesystemconstant {german} \definesystemconstant {de}
+\definesystemconstant {hungarian} \definesystemconstant {hu}
+\definesystemconstant {italian} \definesystemconstant {it}
+\definesystemconstant {latin} \definesystemconstant {la}
+\definesystemconstant {norwegian} \definesystemconstant {no}
+\definesystemconstant {polish} \definesystemconstant {pl}
+\definesystemconstant {portuguese} \definesystemconstant {pt}
+\definesystemconstant {romanian} \definesystemconstant {ro}
+\definesystemconstant {russian} \definesystemconstant {ru}
+\definesystemconstant {slovak} \definesystemconstant {sk}
+\definesystemconstant {slovenian} \definesystemconstant {sl}
\definesystemconstant {slovene}
-\definesystemconstant {spanish} \definesystemconstant {es}
-\definesystemconstant {swedish} \definesystemconstant {sv}
-\definesystemconstant {turkish} \definesystemconstant {tr}
-\definesystemconstant {ukenglish} \definesystemconstant {uk}
-\definesystemconstant {ukrainian} \definesystemconstant {ua}
-\definesystemconstant {usenglish} \definesystemconstant {us}
-\definesystemconstant {greek} \definesystemconstant {gr}
-\definesystemconstant {vietnamese} \definesystemconstant {vn}
+\definesystemconstant {spanish} \definesystemconstant {es}
+\definesystemconstant {swedish} \definesystemconstant {sv}
+\definesystemconstant {turkish} \definesystemconstant {tr}
+\definesystemconstant {ukenglish} \definesystemconstant {uk}
+\definesystemconstant {ukrainian} \definesystemconstant {ua}
+\definesystemconstant {usenglish} \definesystemconstant {us}
+\definesystemconstant {greek} \definesystemconstant {gr}
+\definesystemconstant {ancientgreek} \definesystemconstant {agr}
+\definesystemconstant {vietnamese} \definesystemconstant {vn}
%D For proper \UNICODE\ support we need a few font related
%D constants.
@@ -495,6 +496,7 @@
\definesystemvariable {ly} % LaYout
\definesystemvariable {ma} % MargeAchtergrond
\definesystemvariable {mb} % MargeBlokken
+\definesystemvariable {md} % MoDule
\definesystemvariable {mg} % Metapost paGe
\definesystemvariable {mk} % MarKering
\definesystemvariable {mt} % inline MaTh
diff --git a/tex/context/base/page-flt.tex b/tex/context/base/page-flt.tex
index 3767a9531..1e3a8ace9 100644
--- a/tex/context/base/page-flt.tex
+++ b/tex/context/base/page-flt.tex
@@ -474,6 +474,7 @@
\v!outeredge=>\xxdocompletefloat\v!rightedge \v!leftedge,
\v!backspace=>\xxdocompletefloat\v!backspace \v!cutspace,
\v!cutspace=>\xxdocompletefloat\v!cutspace \v!backspace,
+% \v!margin=>\xxdocompletefloat\v!cutspace \v!backspace,
\v!left=>\xxdocompletefloat\v!left \v!left,
\v!right=>\xxdocompletefloat\v!right \v!right,
\v!line=>, % only -n*line is handled (see ***)
@@ -552,6 +553,9 @@
\dododefinefloat[#1][#1]%
\fi\fi}
+% todo: \floatparameter + \currentfloat - saves many hash entries
+%
+
\def\dododefinefloat[#1][#2]%
{\presetlocalframed[\??fl#1]%
\setupfloat
@@ -790,6 +794,29 @@
\def\doinsertfloatinfo
{\dofloatinfomessage<4{\the\totalnoffloats}}
+% \def\dogetfloat
+% {\ifsomefloatwaiting
+% \global\setbox\floatlist\vbox
+% {\unvbox\floatlist
+% \global\setbox\globalscratchbox\lastbox}%
+% \ifcenterfloatbox
+% \ifdim\wd\globalscratchbox<\hsize
+% \setbox\floatbox\hbox to \hsize{\hss\box\globalscratchbox\hss}%
+% \else
+% \setbox\floatbox\box\globalscratchbox % local !
+% \fi
+% \else
+% \setbox\floatbox\box\globalscratchbox % local !
+% \fi
+% \global\advance\savednoffloats \minusone
+% \ifcase\savednoffloats
+% \global\somefloatwaitingfalse
+% \fi
+% \else
+% \global\savednoffloats\zerocount
+% \global\setbox\floatbox\box\voidb@x
+% \fi}
+
\def\dogetfloat
{\ifsomefloatwaiting
\global\setbox\floatlist\vbox
@@ -800,6 +827,12 @@
\setbox\floatbox\hbox to \hsize{\hss\box\globalscratchbox\hss}%
\else
\setbox\floatbox\box\globalscratchbox % local !
+ % retain special alignments
+ \ifinsidecolumns
+ \ifdim\wd\floatbox>\makeupwidth
+ \wd\floatbox\makeupwidth
+ \fi
+ \fi
\fi
\else
\setbox\floatbox\box\globalscratchbox % local !
@@ -981,7 +1014,7 @@
{\doifinset\v!offset{#1}{\whitespace\blank}%
\box\floattext
\vfill}}}%
- \doifinsetelse\v!right{#1}%
+ \doifinsetelse\v!right{#1}% \floatmethod
{\setbox\floatbox\hbox to \hsize
{\box\floattext
\hfill
@@ -1030,31 +1063,45 @@
{\doifinsetelse\v!always{#1}
{\docheckiffloatfits
\ifroomforfloat
- \doifinsetelse\v!top{#1}
- {\placesometopsfloat[#1]}
- {\doifinsetelse\v!bottom{#1}
- {\placesomebotsfloat[#1]}
- {\placesomeherefloat[#1]}}%
- % more compact and efficient, but quite ugly
- % \doifinsetelse\v!top{#1}
- % \placesometopsfloat
- % {\doifinsetelse\v!bottom{#1}
- % \placesomebotsfloat
- % \placesomeherefloat}[#1]%
+ \sometopbottomfloat[#1]
\else
\showmessage\m!floatblocks9\empty
\doreversesavefloat
\fi}
{\docheckiffloatfits
\ifroomforfloat
- \doifinsetelse\v!top{#1}
- {\placesometopsfloat[#1]}
- {\doifinsetelse\v!bottom{#1}
- {\placesomebotsfloat[#1]}
- {\placesomeherefloat[#1]}}%
+ \sometopbottomfloat[#1]
\else
\dosavefloat
\fi}}}
+
+\def\floatautofactor{.5}
+
+% \def\sometopbottomfloat[#1]%
+% {\doifinsetelse\v!auto{#1}
+% {\ifdim\pagetotal<\floatautofactor\pagegoal % when empty page, maxdimen
+% \placesometopsfloat[#1]%
+% \else
+% \placesomebotsfloat[#1]%
+% \fi}
+% {\doifinsetelse\v!top{#1}
+% {\placesometopsfloat[#1]}
+% {\doifinsetelse\v!bottom{#1}
+% {\placesomebotsfloat[#1]}
+% {\placesomeherefloat[#1]}}}}
+
+\def\sometopbottomfloat[#1]%
+ {\doifelse\floatmethod\v!auto
+ {\ifdim\pagetotal<\floatautofactor\pagegoal % when empty page, maxdimen
+ \placesometopsfloat[#1]%
+ \else
+ \placesomebotsfloat[#1]%
+ \fi}
+ {\doifelse\floatmethod\v!top
+ {\placesometopsfloat[#1]}
+ {\doifelse\floatmethod\v!bottom
+ {\placesomebotsfloat[#1]}
+ {\placesomeherefloat[#1]}}}}
% De onderstaande macro wordt gebruikt bij de macros
% voor het plaatsen van tabellen en figuren (klopt niet
@@ -1670,7 +1717,8 @@
{\dogetfloatbox{#1}\empty}
{\ifdim\wd\floatbox>\getvalue{\??fl#4\c!criterium}\relax
\postcenterfloatbox{\wd\floatbox}% else we get left aligned
- \dogetfloatbox{#1}\v!here % see details/pascal
+ %dogetfloatbox{#1}\v!here % see details/pascal
+ \dogetfloatbox{#1}{\executeifdefined{\??fl#4\c!fallback}\v!here}%
\else
\dogetfloatbox{#1}\empty
\fi}}
@@ -2125,7 +2173,8 @@
\edef\floatmethod{#2}}%
\doifundefined{\string\floatmethod\floatmethod}
{\let\floatmethod\v!here}%
- \getvalue{\string\floatmethod\floatmethod}[#1]%
+ %\getvalue{\string\floatmethod\floatmethod}[#1]%
+ \getvalue{\string\floatmethod\floatmethod}[\floatmethod,#1]%
\fi}
\def\installfloathandler#1#2% #1=keyword #2=handler
@@ -2138,6 +2187,7 @@
\installfloathandler \v!text \sometextfloat
\installfloathandler \v!top \sometopfloat
\installfloathandler \v!bottom \somebottomfloat
+\installfloathandler \v!auto \someautofloat
\installfloathandler \v!margin \somemarginfloat
\installfloathandler \v!opposite \somefacefloat
\installfloathandler \v!page \somepagefloat
@@ -2176,6 +2226,7 @@
\def\somerightsidefloat [#1]{\somesidefloat[#1]}
\def\sometopfloat [#1]{\someelsefloat[#1]\nonoindentation}
\def\somebottomfloat [#1]{\someelsefloat[#1]}
+\def\someautofloat [#1]{\someelsefloat[#1]}
\def\somemarginfloat [#1]{\somenextfloat[#1]\nonoindentation}
\def\someinleftmarginfloat [#1]{\somesidefloat[#1]}
\def\someinrightmarginfloat[#1]{\somesidefloat[#1]}
diff --git a/tex/context/base/page-lay.tex b/tex/context/base/page-lay.tex
index 61df03246..8a3a785e0 100644
--- a/tex/context/base/page-lay.tex
+++ b/tex/context/base/page-lay.tex
@@ -609,13 +609,21 @@
%
% \startstandardmakeup[page=blank] ... \stopstandardmakeup
+% \def\checkcurrentlayout % public and used in naw, so keep this name
+% {\ifundefined{\??ly\realfolio\c!state}%
+% \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
+% \else
+% \doifvalue{\??ly\realfolio\c!state}\v!start
+% {\xdef\currentlayout{\realfolio}\recalculatelayout}% new, global
+% \fi}
+
\def\checkcurrentlayout % public and used in naw, so keep this name
- {\ifundefined{\??ly\realfolio\c!state}%
- \doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout
- \else
- \doifvalue{\??ly\realfolio\c!state}\v!start
- {\xdef\currentlayout{\realfolio}\recalculatelayout}% new, global
- \fi}
+ {\doifundefinedelse{\??ly\realfolio\c!state}
+ {\doifundefinedelse{\??ly\v!current\c!state}
+ {\doifoddpageelse\checkcurrentoddlayout\checkcurrentevenlayout}
+ {\globallet\currentlayout\v!current\recalculatelayout}}
+ {\doifvalue{\??ly\realfolio\c!state}\v!start
+ {\xdef\currentlayout{\realfolio}\recalculatelayout}}} % new, global
\def\checkcurrentoddlayout
{\ifundefined{\??ly\v!odd\c!state}\else
@@ -629,7 +637,15 @@
{\globallet\currentlayout\v!even\recalculatelayout}% new, global
\fi}
-\appendtoks \checkcurrentlayout \to \everyaftershipout
+% \appendtoks \checkcurrentlayout \to \everyaftershipout
+
+\appendtoks
+ \ifx\currentlayout\v!current
+ \globallet\currentlayout\empty
+ \global\letbeundefined{\??ly\v!current\c!state}%
+ \checkcurrentlayout
+ \fi
+\to \everyaftershipout
\newif\ifdoublesidedprint
diff --git a/tex/context/base/page-lyr.tex b/tex/context/base/page-lyr.tex
index 8c93fe034..48ea1e3c2 100644
--- a/tex/context/base/page-lyr.tex
+++ b/tex/context/base/page-lyr.tex
@@ -211,8 +211,15 @@
\def\definelayerpreset
{\dodoubleargument\dodefinelayerpreset}
+% \def\dodefinelayerpreset[#1][#2]%
+% {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+%
+% more fun: \definelayerpreset[whatever][lefttop]
+
\def\dodefinelayerpreset[#1][#2]%
- {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+ {\doifassignmentelse{#2}
+ {\setvalue{\??ll\??ll#1}{\dopresetlayer{#2}}}
+ {\setvalue{\??ll\??ll#1}{\getvalue{\??ll\??ll#2}}}}
\def\dopresetlayer#1#2#3% #1=list #2=tag #3=list
{\getparameters[\??ll#2][#1,#3]}
diff --git a/tex/context/base/page-one.tex b/tex/context/base/page-one.tex
index a94002fca..df92c1f03 100644
--- a/tex/context/base/page-one.tex
+++ b/tex/context/base/page-one.tex
@@ -574,16 +574,15 @@
[#1]
[ \v!left=>\leftfloat {\box\floatbox},
\v!right=>\rightfloat {\box\floatbox},
- \v!inleft=>\leftmarginfloat {\box\floatbox},
- \v!inright=>\rightmarginfloat{\box\floatbox},
+ \v!inleft=>\leftmarginfloat {\box\floatbox},
+ \v!inright=>\rightmarginfloat{\box\floatbox},
\v!leftmargin=>\leftmarginfloat {\box\floatbox},
\v!rightmargin=>\rightmarginfloat{\box\floatbox},
- \v!leftedge=>\leftedgefloat {\box\floatbox},
- \v!rightedge=>\rightedgefloat {\box\floatbox},
- \v!backspace=>\backspacefloat {\box\floatbox},
- \v!cutspace=>\cutspacefloat {\box\floatbox},
- \v!inmargin=>{\doinmargenormal\leftmarginfloat
- \rightmarginfloat{\box\floatbox}}]%
+ \v!leftedge=>\leftedgefloat {\box\floatbox},
+ \v!rightedge=>\rightedgefloat {\box\floatbox},
+ \v!backspace=>\backspacefloat {\box\floatbox},
+ \v!cutspace=>\cutspacefloat {\box\floatbox},
+ \v!inmargin=>\cutspacefloat {\box\floatbox}]%
\doifinset\v!tall{#1}\flushsidefloatsafterpar
\fi}
diff --git a/tex/context/base/page-sid.tex b/tex/context/base/page-sid.tex
index e67f3e50f..499f34f93 100644
--- a/tex/context/base/page-sid.tex
+++ b/tex/context/base/page-sid.tex
@@ -77,6 +77,8 @@
\def\rightedgefloat {\global\chardef\sidefloattype7 \putsidefloat}
\def\cutspacefloat {\global\chardef\sidefloattype8 \putsidefloat}
+\let\marginfloat \cutspacefloat
+
\newif\ifroomforfloat
\newif\iffloatshort
\newif\iffloatflag
diff --git a/tex/context/base/page-str.tex b/tex/context/base/page-str.tex
index a6c1e8e2c..74b8a47a4 100644
--- a/tex/context/base/page-str.tex
+++ b/tex/context/base/page-str.tex
@@ -42,8 +42,15 @@
\newif\ifinoutputstream
+\newtoks \everyenableoutputstream
+
+\appendtoks
+ \flushsidefloats
+\to \everyenableoutputstream
+
\def\enableoutputstream[#1]%
- {\finishoutputstream
+ {\the\everyenableoutputstream
+ \finishoutputstream
\writestatus{otr}{switching to output stream #1}%
\inoutputstreamtrue
\xdef\currentoutputstream{#1}}
diff --git a/tex/context/base/page-txt.tex b/tex/context/base/page-txt.tex
index a6b6fe2b1..14707a5eb 100644
--- a/tex/context/base/page-txt.tex
+++ b/tex/context/base/page-txt.tex
@@ -67,6 +67,20 @@
\def\setuplayouttext
{\dotripleempty\dosetuplayouttext}
+% \def\dosetuplayouttext[#1][#2][#3]%
+% {\ifthirdargument
+% \getparameters[\??tk#1#2][#3]%
+% \else
+% %\getparameters[\??tk#1\v!text][#2]%
+% \edef\previoustextstate{\getvalue{\??tk#1\c!state}}%
+% \getparameters[\??tk#1][#2]%
+% \doifnotvalue{\??tk#1\c!state}\previoustextstate
+% {%\checkcurrentlayout % no
+% \calculatevsizes
+% \recalculatebackgrounds
+% \recalculatelogos}%
+% \fi}
+
\def\dosetuplayouttext[#1][#2][#3]%
{\ifthirdargument
\getparameters[\??tk#1#2][#3]%
@@ -76,9 +90,12 @@
\getparameters[\??tk#1][#2]%
\doifnotvalue{\??tk#1\c!state}\previoustextstate
{%\checkcurrentlayout % no
- \calculatevsizes
- \recalculatebackgrounds
- \recalculatelogos}%
+ \edef\currenttextstate{\getvalue{\??tk#1\c!state}}%
+ % speed optimization (calculating backgrounds takes time)
+ \doifcommon{\previoustextstate,\currenttextstate}{\v!high,\v!none}{%
+ \calculatevsizes
+ \recalculatebackgrounds
+ \recalculatelogos}}%
\fi}
\def\setuptop {\dotripleempty\dosetuplayouttext[\v!top]}
@@ -229,7 +246,10 @@
%D couple of macros.
\def\settextlinestatus #1{\edef\textlinestatus{\csname\??tk#1\c!state\endcsname}}
-\def\resettextlinestatus#1{\letgvalue{\??tk#1\c!state}\v!normal}
+%def\resettextlinestatus#1{\letgvalue{\??tk#1\c!state}\v!normal}
+
+\def\resettextlinestatus#1% postpone
+ {\setgvalue{\??tk#1\s!reset}{\letgvalue{\??tk#1\c!state}\v!normal}}
\def\placelayouttextline#1% #2
{\settextlinestatus{#1}%
@@ -264,8 +284,12 @@
\setvalue{\string\placelayouttextline\v!none}#1#2%
{}
+% \setvalue{\string\placelayouttextline\v!high}#1#2%
+% {\global\settrue\resyncaftertextline}
+
\setvalue{\string\placelayouttextline\v!high}#1#2%
- {\global\settrue\resyncaftertextline}
+ {\global\settrue\resyncaftertextline
+ \resettextlinestatus{#1}}
\setvalue{\string\placelayouttextline\v!empty}#1#2%
{\resettextlinestatus{#1}}
@@ -298,10 +322,27 @@
%D The following macro has to be called after a page
%D is flushed.
+% \def\resetlayouttextline#1%
+% {\doifvalue{\??tk#1\c!state}\v!high
+% {\global\settrue\resyncaftertextline
+% \resettextlinestatus{#1}}}
+
\def\resetlayouttextline#1%
- {\doifvalue{\??tk#1\c!state}\v!high
- {\global\settrue\resyncaftertextline
- \resettextlinestatus{#1}}}
+ {\getvalue {\??tk#1\s!reset}%
+ \letgvalue{\??tk#1\s!reset}\relax}
+
+% \def\resetlayouttextlines
+% {\resetlayouttextline\v!top
+% \resetlayouttextline\v!header
+% \resetlayouttextline\v!text
+% \resetlayouttextline\v!footer
+% \resetlayouttextline\v!bottom
+% \ifconditional\resyncaftertextline
+% \doglobal\calculatevsizes
+% \recalculatebackgrounds
+% \recalculatelogos
+% \global\setfalse\resyncaftertextline
+% \fi}
\def\resetlayouttextlines
{\resetlayouttextline\v!top
diff --git a/tex/context/base/regi-cp1250.tex b/tex/context/base/regi-cp1250.tex
new file mode 100644
index 000000000..b5bbdbf71
--- /dev/null
+++ b/tex/context/base/regi-cp1250.tex
@@ -0,0 +1,151 @@
+%D \module
+%D [ file=regi-cp1250,
+%D version=2005.12.26,
+%D title=\CONTEXT\ Encoding Macros,
+%D subtitle=cp1250 (East European),
+%D author=script-generated,
+%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.
+
+%D Support for cp1250 input encoding (regime) for Central European languages,
+%D see also iso-8859-2. Usage:
+%D
+%D \type{\enableregime[cp1250]} or \type{\enablereregime[windows-1250]}
+
+\startregime[cp1250]
+
+\defineactivetoken 128 {\texteuro} % 20AC EURO SIGN
+\defineactivetoken 129 {\unknownchar} % <undefined>
+\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK
+\defineactivetoken 131 {\unknownchar} % <undefined>
+\defineactivetoken 132 {\quotedblbase} % 201E DOUBLE LOW-9 QUOTATION MARK
+\defineactivetoken 133 {\textellipsis} % 2026 HORIZONTAL ELLIPSIS
+\defineactivetoken 134 {\textdag} % 2020 DAGGER
+\defineactivetoken 135 {\textddag} % 2021 DOUBLE DAGGER
+\defineactivetoken 136 {\unknownchar} % <undefined>
+\defineactivetoken 137 {\perthousand} % 2030 PER MILLE SIGN
+\defineactivetoken 138 {\Scaron} % 0160 LATIN CAPITAL LETTER S WITH CARON
+\defineactivetoken 139 {\guilsingleleft} % 2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 140 {\Sacute} % 015A LATIN CAPITAL LETTER S WITH ACUTE
+\defineactivetoken 141 {\Tcaron} % 0164 LATIN CAPITAL LETTER T WITH CARON
+\defineactivetoken 142 {\Zcaron} % 017D LATIN CAPITAL LETTER Z WITH CARON
+\defineactivetoken 143 {\Zacute} % 0179 LATIN CAPITAL LETTER Z WITH ACUTE
+\defineactivetoken 144 {\unknownchar} % <undefined>
+\defineactivetoken 145 {\quoteleft} % 2018 LEFT SINGLE QUOTATION MARK
+\defineactivetoken 146 {\quoteright} % 2019 RIGHT SINGLE QUOTATION MARK
+\defineactivetoken 147 {\quotedblleft} % 201C LEFT DOUBLE QUOTATION MARK
+\defineactivetoken 148 {\quotedblright} % 201D RIGHT DOUBLE QUOTATION MARK
+\defineactivetoken 149 {\textbullet} % 2022 BULLET
+\defineactivetoken 150 {\endash} % 2013 EN DASH
+\defineactivetoken 151 {\emdash} % 2014 EM DASH
+\defineactivetoken 152 {\unknownchar} % <undefined>
+\defineactivetoken 153 {\trademark} % 2122 TRADE MARK SIGN
+\defineactivetoken 154 {\scaron} % 0161 LATIN SMALL LETTER S WITH CARON
+\defineactivetoken 155 {\guilsingleright} % 203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+\defineactivetoken 156 {\sacute} % 015B LATIN SMALL LETTER S WITH ACUTE
+\defineactivetoken 157 {\tcaron} % 0165 LATIN SMALL LETTER T WITH CARON
+\defineactivetoken 158 {\zcaron} % 017E LATIN SMALL LETTER Z WITH CARON
+\defineactivetoken 159 {\zacute} % 017A LATIN SMALL LETTER Z WITH ACUTE
+\defineactivetoken 160 {\nonbreakablespace} % 00A0 NO-BREAK SPACE
+\defineactivetoken 161 {\textcaron} % 02C7 CARON
+\defineactivetoken 162 {\textbreve} % 02D8 BREVE
+\defineactivetoken 163 {\Lstroke} % 0141 LATIN CAPITAL LETTER L WITH STROKE
+\defineactivetoken 164 {\textcurrency} % 00A4 CURRENCY SIGN
+\defineactivetoken 165 {\Aogonek} % 0104 LATIN CAPITAL LETTER A WITH OGONEK
+\defineactivetoken 166 {\textbrokenbar} % 00A6 BROKEN BAR
+\defineactivetoken 167 {\sectionmark} % 00A7 SECTION SIGN
+\defineactivetoken 168 {\textdiaeresis} % 00A8 DIAERESIS
+\defineactivetoken 169 {\copyright} % 00A9 COPYRIGHT SIGN
+\defineactivetoken 170 {\Scedilla} % 015E LATIN CAPITAL LETTER S WITH CEDILLA
+\defineactivetoken 171 {\leftguillemot} % 00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 172 {\textlognot} % 00AC NOT SIGN
+\defineactivetoken 173 {\softhyphen} % 00AD SOFT HYPHEN
+\defineactivetoken 174 {\registered} % 00AE REGISTERED SIGN
+\defineactivetoken 175 {\Zdotaccent} % 017B LATIN CAPITAL LETTER Z WITH DOT ABOVE
+\defineactivetoken 176 {\textdegree} % 00B0 DEGREE SIGN
+\defineactivetoken 177 {\textpm} % 00B1 PLUS-MINUS SIGN
+\defineactivetoken 178 {\textogonek} % 02DB OGONEK
+\defineactivetoken 179 {\lstroke} % 0142 LATIN SMALL LETTER L WITH STROKE
+\defineactivetoken 180 {\textacute} % 00B4 ACUTE ACCENT
+\defineactivetoken 181 {\textmu} % 00B5 MICRO SIGN
+\defineactivetoken 182 {\paragraphmark} % 00B6 PILCROW SIGN
+\defineactivetoken 183 {\periodcentered} % 00B7 MIDDLE DOT
+\defineactivetoken 184 {\textcedilla} % 00B8 CEDILLA
+\defineactivetoken 185 {\aogonek} % 0105 LATIN SMALL LETTER A WITH OGONEK
+\defineactivetoken 186 {\scedilla} % 015F LATIN SMALL LETTER S WITH CEDILLA
+\defineactivetoken 187 {\rightguillemot} % 00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+\defineactivetoken 188 {\Lcaron} % 013D LATIN CAPITAL LETTER L WITH CARON
+\defineactivetoken 189 {\texthungarumlaut} % 02DD DOUBLE ACUTE ACCENT
+\defineactivetoken 190 {\lcaron} % 013E LATIN SMALL LETTER L WITH CARON
+\defineactivetoken 191 {\zdotaccent} % 017C LATIN SMALL LETTER Z WITH DOT ABOVE
+\defineactivetoken 192 {\Racute} % 0154 LATIN CAPITAL LETTER R WITH ACUTE
+\defineactivetoken 193 {\Aacute} % 00C1 LATIN CAPITAL LETTER A WITH ACUTE
+\defineactivetoken 194 {\Acircumflex} % 00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 195 {\Abreve} % 0102 LATIN CAPITAL LETTER A WITH BREVE
+\defineactivetoken 196 {\Adiaeresis} % 00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
+\defineactivetoken 197 {\Lacute} % 0139 LATIN CAPITAL LETTER L WITH ACUTE
+\defineactivetoken 198 {\Cacute} % 0106 LATIN CAPITAL LETTER C WITH ACUTE
+\defineactivetoken 199 {\Ccedilla} % 00C7 LATIN CAPITAL LETTER C WITH CEDILLA
+\defineactivetoken 200 {\Ccaron} % 010C LATIN CAPITAL LETTER C WITH CARON
+\defineactivetoken 201 {\Eacute} % 00C9 LATIN CAPITAL LETTER E WITH ACUTE
+\defineactivetoken 202 {\Eogonek} % 0118 LATIN CAPITAL LETTER E WITH OGONEK
+\defineactivetoken 203 {\Ediaeresis} % 00CB LATIN CAPITAL LETTER E WITH DIAERESIS
+\defineactivetoken 204 {\Ecaron} % 011A LATIN CAPITAL LETTER E WITH CARON
+\defineactivetoken 205 {\Iacute} % 00CD LATIN CAPITAL LETTER I WITH ACUTE
+\defineactivetoken 206 {\Icircumflex} % 00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 207 {\Dcaron} % 010E LATIN CAPITAL LETTER D WITH CARON
+\defineactivetoken 208 {\Dstroke} % 0110 LATIN CAPITAL LETTER D WITH STROKE
+\defineactivetoken 209 {\Nacute} % 0143 LATIN CAPITAL LETTER N WITH ACUTE
+\defineactivetoken 210 {\Ncaron} % 0147 LATIN CAPITAL LETTER N WITH CARON
+\defineactivetoken 211 {\Oacute} % 00D3 LATIN CAPITAL LETTER O WITH ACUTE
+\defineactivetoken 212 {\Ocircumflex} % 00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 213 {\Ohungarumlaut} % 0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 214 {\Odiaeresis} % 00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
+\defineactivetoken 215 {\textmultiply} % 00D7 MULTIPLICATION SIGN
+\defineactivetoken 216 {\Rcaron} % 0158 LATIN CAPITAL LETTER R WITH CARON
+\defineactivetoken 217 {\Uring} % 016E LATIN CAPITAL LETTER U WITH RING ABOVE
+\defineactivetoken 218 {\Uacute} % 00DA LATIN CAPITAL LETTER U WITH ACUTE
+\defineactivetoken 219 {\Uhungarumlaut} % 0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 220 {\Udiaeresis} % 00DC LATIN CAPITAL LETTER U WITH DIAERESIS
+\defineactivetoken 221 {\Yacute} % 00DD LATIN CAPITAL LETTER Y WITH ACUTE
+\defineactivetoken 222 {\Tcedilla} % 0162 LATIN CAPITAL LETTER T WITH CEDILLA
+\defineactivetoken 223 {\ssharp} % 00DF LATIN SMALL LETTER SHARP S
+\defineactivetoken 224 {\racute} % 0155 LATIN SMALL LETTER R WITH ACUTE
+\defineactivetoken 225 {\aacute} % 00E1 LATIN SMALL LETTER A WITH ACUTE
+\defineactivetoken 226 {\acircumflex} % 00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+\defineactivetoken 227 {\abreve} % 0103 LATIN SMALL LETTER A WITH BREVE
+\defineactivetoken 228 {\adiaeresis} % 00E4 LATIN SMALL LETTER A WITH DIAERESIS
+\defineactivetoken 229 {\lacute} % 013A LATIN SMALL LETTER L WITH ACUTE
+\defineactivetoken 230 {\cacute} % 0107 LATIN SMALL LETTER C WITH ACUTE
+\defineactivetoken 231 {\ccedilla} % 00E7 LATIN SMALL LETTER C WITH CEDILLA
+\defineactivetoken 232 {\ccaron} % 010D LATIN SMALL LETTER C WITH CARON
+\defineactivetoken 233 {\eacute} % 00E9 LATIN SMALL LETTER E WITH ACUTE
+\defineactivetoken 234 {\eogonek} % 0119 LATIN SMALL LETTER E WITH OGONEK
+\defineactivetoken 235 {\ediaeresis} % 00EB LATIN SMALL LETTER E WITH DIAERESIS
+\defineactivetoken 236 {\ecaron} % 011B LATIN SMALL LETTER E WITH CARON
+\defineactivetoken 237 {\iacute} % 00ED LATIN SMALL LETTER I WITH ACUTE
+\defineactivetoken 238 {\icircumflex} % 00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
+\defineactivetoken 239 {\dcaron} % 010F LATIN SMALL LETTER D WITH CARON
+\defineactivetoken 240 {\dstroke} % 0111 LATIN SMALL LETTER D WITH STROKE
+\defineactivetoken 241 {\nacute} % 0144 LATIN SMALL LETTER N WITH ACUTE
+\defineactivetoken 242 {\ncaron} % 0148 LATIN SMALL LETTER N WITH CARON
+\defineactivetoken 243 {\oacute} % 00F3 LATIN SMALL LETTER O WITH ACUTE
+\defineactivetoken 244 {\ocircumflex} % 00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+\defineactivetoken 245 {\ohungarumlaut} % 0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE
+\defineactivetoken 246 {\odiaeresis} % 00F6 LATIN SMALL LETTER O WITH DIAERESIS
+\defineactivetoken 247 {\textdiv} % 00F7 DIVISION SIGN
+\defineactivetoken 248 {\rcaron} % 0159 LATIN SMALL LETTER R WITH CARON
+\defineactivetoken 249 {\uring} % 016F LATIN SMALL LETTER U WITH RING ABOVE
+\defineactivetoken 250 {\uacute} % 00FA LATIN SMALL LETTER U WITH ACUTE
+\defineactivetoken 251 {\uhungarumlaut} % 0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE
+\defineactivetoken 252 {\udiaeresis} % 00FC LATIN SMALL LETTER U WITH DIAERESIS
+\defineactivetoken 253 {\yacute} % 00FD LATIN SMALL LETTER Y WITH ACUTE
+\defineactivetoken 254 {\tcedilla} % 0163 LATIN SMALL LETTER T WITH CEDILLA
+\defineactivetoken 255 {\textdotaccent} % 02D9 DOT ABOVE
+
+\stopregime
+
diff --git a/tex/context/base/regi-syn.tex b/tex/context/base/regi-syn.tex
new file mode 100644
index 000000000..134114477
--- /dev/null
+++ b/tex/context/base/regi-syn.tex
@@ -0,0 +1,22 @@
+%D \module
+%D [ file=regi-syn,
+%D version=2006.04.04,
+%D title=\CONTEXT\ Regime Macros,
+%D subtitle=Synonyms,
+%D author=Mojca Miklavec \& Hans Hagen,
+%D date=\currentdate,
+%D copyright=PRAGMA]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Regime Macros (synonyms)}
+
+\unprotect
+
+\defineregimesynonym[cp-1250] [cp1250]
+\defineregimesynonym[windows-1250][cp1250]
+\defineregimesynonym[1250] [cp1250]
+
+\protect \endinput
diff --git a/tex/context/base/sort-ini.tex b/tex/context/base/sort-ini.tex
index 84d32e2ff..e3c6daa28 100644
--- a/tex/context/base/sort-ini.tex
+++ b/tex/context/base/sort-ini.tex
@@ -11,10 +11,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% dodo: autokeyexpansion => igv utf: \setupregister[index][keyexpansion=yes]
+
%D This module replaces existing sort key handling and is meant to be
%D used with the new texutil functionality. This module defines a few
%D auxiliary macros.
+\ifx\exportsortaction\undefined \else \endinput \fi
+
+\writestatus{loading}{Context Sorting Macros (ini)}
+
%D The sorting method is largely bases on the one used in the old version
%D of texutil but i've changed the interface a bit. It all boils down to
%D a bunch of substitutions. The reimplementation makes it easier to extend
@@ -84,6 +90,17 @@
{\exportsortexpansion{#1}{#2}%
\exportsortdivision {#2}{#1}}
+\def\exportutfsortexpansion#1#2#3%
+ {\bgroup
+ \edef\utfsorta{\string\unknownchar}%
+ \dostepwiserecurse{#2}{#3}\plusone
+ {\edef\utfsortb{\@EA\string\csname\doutfunihash{#1}{\recurselevel}\endcsname}%
+ \ifx\utfsortb\utfsorta \else
+ \edef\utfsortc{\numbertoutf{\numexpr#1*256+\recurselevel\relax}}%
+ \expanded{\exportsortshortcut{\utfsortc}{\utfsortb}}%
+ \fi}%
+ \egroup}
+
% Next we overload some macros defined in enco-ini and core-uti. This
% will change.
@@ -92,6 +109,17 @@
\def\savesortkeys
{\globallet\savesortkeys\relax
\enablemode[sortorder-\currentmainlanguage]%
+ \bgroup
+ \doifelse \currentregime {utf}
+ {\exportutfsortexpansion{0}{128}{255}%
+ \exportutfsortexpansion{1}{0}{255}}
+ {\def\defineactivecharacter##1 ##2%
+ {\expanded{\exportsortshortcut{\rawcharacter{##1}}}{##2}}%
+ \doifelse{\characterregime}\nocharacterregime
+ {\doifnot{\characterencoding}\nocharacterencoding % to be sure, autoregime
+ {\the\executeifdefined{\@reg@\characterencoding}\emptytoks}}%
+ {\the\executeifdefined{\@reg@\characterregime}\emptytoks}}%
+ \egroup
\readfile{\f!sortprefix new}\donothing\donothing % temporary hacks
\readfile{\f!sortprefix def}\donothing\donothing % defaults
\readfile{\f!sortprefix lan}\donothing\donothing}% language specifics
diff --git a/tex/context/base/sort-lan.tex b/tex/context/base/sort-lan.tex
index 21ab85c13..379e33495 100644
--- a/tex/context/base/sort-lan.tex
+++ b/tex/context/base/sort-lan.tex
@@ -11,6 +11,16 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+% for testing:
+
+\startmode[sortorder-en]
+ \exportsortexpansion{aacute}{a+1}
+ \exportsortexpansion{Aacute}{A+2}
+ \exportsortexpansion{agrave}{a+1}
+ \exportsortexpansion{Agrave}{A+2}
+\stopmode
+
+
%D This module replaces existing sort key handling and is meant to be
%D used with the new texutil functionality. Here we define the language
%D specific sort rules.
@@ -19,6 +29,18 @@
%
% a-c, ccaron, cacute, d, dstroke, e-s, scaron, t-z, zcaron
+% \enableregime[utf]
+% \mainlanguage[sl]
+% \starttext
+% \ccaron\index{\ccaron\space 1}
+% \Ccaron\index{\Ccaron\space 1}
+% ÄŤ\index{ÄŤ 2}
+% ÄŚ\index{ÄŚ 2}
+% \v c\index{\v c 3}
+% \v C\index{\v C 3}
+% \placeindex
+% \stoptext
+
% \startmode[sortorder-sl]
% \exportsortexpansion {ccaron} {cz}
% \exportsortexpansion {cacute} {czz}
@@ -70,6 +92,36 @@
%
% a-z, aring, adiaeresis, odiaeresis
+% \mainlanguage[sv]
+% \starttext
+% a\index{a}
+% a\index{a}
+% z\index{z}
+% z\index{z}
+% q\index{q}
+% q\index{q}
+% ĺ\index{ĺ}
+% ĺ\index{ĺ}
+% ĺ\index{ĺ}
+% ä\index{ä}
+% ä\index{ä}
+% ä\index{ä}
+% ä\index{ä}
+% ö\index{ö}
+% ö\index{ö}
+% \aring\index{\aring}
+% \adiaeresis\index{\adiaeresis}
+% \odiaeresis\index{\odiaeresis}
+% A\index{A}
+% Ĺ\index{Ĺ}
+% Ä\index{Ä}
+% Ö\index{Ö}
+% \Aring\index{\Aring}
+% \Adiaeresis\index{\Adiaeresis}
+% \Odiaeresis\index{\Odiaeresis}
+% \placeindex
+% \stoptext
+
\startmode[sortorder-sv]
\exportsortrule {aring} {z+1}
\exportsortrule {adiaeresis} {z+2}
diff --git a/tex/context/base/sort-new.tex b/tex/context/base/sort-new.tex
index cc6d6983d..c7bea35a8 100644
--- a/tex/context/base/sort-new.tex
+++ b/tex/context/base/sort-new.tex
@@ -40,16 +40,6 @@
\registerinfo{> \firstcharacter}{#3}%
\endgroup}
-\def\convertmeaning#1\to % watch the double expansion !
- {\bgroup
- \honorunexpanded
- %dontexpandencoding % new
- \literateencodedtokens % newer
- \xdef\@@globalexpanded{#1}%
- \xdef\@@globalexpanded{\@@globalexpanded}%
- \egroup
- \convertcommand\@@globalexpanded\to}
-
\def\reduceargument#1\to#2%
{\begingroup
\reducetocoding[raw]%
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index a69cfff09..dcf803f7b 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -342,44 +342,45 @@
\ifnum\pdftexversion>13
-\def\checkpdfimagepagenumber#1%
- {\let\pdfimagepagenumber\empty
- \getfromcommacommand[#1][1]%
- \doifnumberelse\commalistelement
- {\ifcase\commalistelement\else
- \edef\pdfimagepagenumber{page \commalistelement}%
- %\message{(pdf image \pdfimagepagenumber)}%
- \fi}
- {}}
-
-\def\handlepdfimage#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \the\everyPDFximage
- \doifvalidpdfimagefileelse{#1}
- {\checkpdfimagepagenumber{#9}%
- \immediate\pdfximage
- \ifdim#7>\zeropoint \!!width #7\fi
- \ifdim#8>\zeropoint \!!height #8\fi
- \pdfimagepagenumber
-\@@DriverImageBox
- {#1}%
- \xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\nofinsertpages{\the\pdflastximagepages}%
- \pdfrefximage\pdflastximage}
- {\framed[\c!width=#7,\c!height=#8]{#1}}%
- \egroup}
+ \def\checkpdfimagepagenumber#1%
+ {\let\pdfimagepagenumber\empty
+ \getfromcommacommand[#1][1]%
+ \doifnumberelse\commalistelement
+ {\ifcase\commalistelement\else
+ \edef\pdfimagepagenumber{page \commalistelement}%
+ %\message{(pdf image \pdfimagepagenumber)}%
+ \fi}
+ {}}
+
+ \def\handlepdfimage#1#2#3#4#5#6#7#8#9%
+ {\bgroup
+ \the\everyPDFximage
+ \doifvalidpdfimagefileelse{#1}
+ {\checkpdfimagepagenumber{#9}%
+ %\pdfimmediateximage
+ \ifx\pdfimagepagenumber\empty\@EA\pdfimmediateximage\else\@EA\pdfximage\fi
+ \ifdim#7>\zeropoint \!!width #7\fi
+ \ifdim#8>\zeropoint \!!height #8\fi
+ \pdfimagepagenumber
+ \@@DriverImageBox
+ {#1}%
+ \xdef\PDFimagereference{\the\pdflastximage}%
+ \xdef\nofinsertpages{\the\pdflastximagepages}%
+ \pdfrefximage\pdflastximage}
+ {\framed[\c!width=#7,\c!height=#8]{#1}}%
+ \egroup}
\else
-\def\handlepdfimage#1#2#3#4#5#6#7#8#9%
- {\bgroup
- \doifvalidpdfimagefileelse{#1}
- {\pdfimage
- \ifdim#7>\zeropoint \!!width #7\fi
- \ifdim#8>\zeropoint \!!height #8\fi
- {#1}}%
- {\framed[\c!width=#7,\c!height=#8]{#1}}%
- \egroup}
+ \def\handlepdfimage#1#2#3#4#5#6#7#8#9%
+ {\bgroup
+ \doifvalidpdfimagefileelse{#1}
+ {\pdfimage
+ \ifdim#7>\zeropoint \!!width #7\fi
+ \ifdim#8>\zeropoint \!!height #8\fi
+ {#1}}%
+ {\framed[\c!width=#7,\c!height=#8]{#1}}%
+ \egroup}
\fi
@@ -440,70 +441,73 @@
% \fi
% \@@DriverImageBox}
+\def\pdfimmediateximage{\immediate\pdfximage}
+
\ifnum\pdftexversion>13
-\def\checkpdfimageattributes
- {\ifx\PDFfigurereference\empty
- \global\let\pdfimageattributes\empty
- \else
- \immediate\pdfobj
- {[ << /Image \PDFobjref\PDFfigurereference
- /DefaultForPrinting true >> ]}%
- \xdef\pdfimageattributes
- {attr {/Alternates \PDFobjref\pdflastobj}}%
- \fi}
-
-\global\let\PDFimagecolorreference\empty
-
-\def\checkpdfimagecolorspecs
- {\ifx\pdflastximagecolordepth \undefined
- \global\let\pdfimagecolorspecs\empty
- \else\ifx\PDFimagecolorreference\empty
- \global\let\pdfimagecolorspecs\empty
- \else
- \xdef\pdfimagecolorspecs{colorspace \PDFimagecolorreference\space}%
- \fi\fi
- \global\let\PDFimagecolorreference\empty}
-
-\def\dogetTPDfiguresize#1#2#3#4#5#6#7%
- {\ifmeasureTPDfiguresize
- #4\zeropoint
- #5\zeropoint
- \doifvalidpdfimagefileelse{#2}
- {\ifvoid\foundexternalfigure
- \donetrue
- \else\ifx\PDFfigurereference\empty
- \donetrue
- \else
- \doifinstringelse\filesuffix{\c!png,\c!jpg}\donetrue\donefalse
- \fi\fi}
- {\donefalse}%
- \ifdone
- \the\everyPDFximage
- \checkpdfimagepagenumber{#3}%
- \checkpdfimageattributes
- \checkpdfimagecolorspecs
- \global\setbox\foundexternalfigure\hbox
- {\immediate\pdfximage
- \pdfimageattributes
- \pdfimagecolorspecs
- \pdfimagepagenumber
- \@@DriverImageBox
- {#2}%
- \xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\nofinsertpages{\the\pdflastximagepages}%
- \pdfrefximage\pdflastximage}%
- #6\wd\foundexternalfigure
- #7\ht\foundexternalfigure
- \global\let\PDFfigurereference\empty
- \global\let\PDFimageattributes\empty
+ \def\checkpdfimageattributes
+ {\ifx\PDFfigurereference\empty
+ \global\let\pdfimageattributes\empty
\else
- #6\zeropoint
- #7\zeropoint
- \fi
- \else
- #1{#2}{#3}{#4}{#5}{#6}{#7}% \normaldogetfiguresize...
- \fi}
+ \immediate\pdfobj
+ {[ << /Image \PDFobjref\PDFfigurereference
+ /DefaultForPrinting true >> ]}%
+ \xdef\pdfimageattributes
+ {attr {/Alternates \PDFobjref\pdflastobj}}%
+ \fi}
+
+ \global\let\PDFimagecolorreference\empty
+
+ \def\checkpdfimagecolorspecs
+ {\ifx\pdflastximagecolordepth \undefined
+ \global\let\pdfimagecolorspecs\empty
+ \else\ifx\PDFimagecolorreference\empty
+ \global\let\pdfimagecolorspecs\empty
+ \else
+ \xdef\pdfimagecolorspecs{colorspace \PDFimagecolorreference\space}%
+ \fi\fi
+ \global\let\PDFimagecolorreference\empty}
+
+ \def\dogetTPDfiguresize#1#2#3#4#5#6#7%
+ {\ifmeasureTPDfiguresize
+ #4\zeropoint
+ #5\zeropoint
+ \doifvalidpdfimagefileelse{#2}
+ {\ifvoid\foundexternalfigure
+ \donetrue
+ \else\ifx\PDFfigurereference\empty
+ \donetrue
+ \else
+ \doifinstringelse\filesuffix{\c!png,\c!jpg}\donetrue\donefalse
+ \fi\fi}
+ {\donefalse}%
+ \ifdone
+ \the\everyPDFximage
+ \checkpdfimagepagenumber{#3}%
+ \checkpdfimageattributes
+ \checkpdfimagecolorspecs
+ \global\setbox\foundexternalfigure\hbox
+ {\ifx\pdfimagepagenumber\empty\@EA\pdfimmediateximage\else\@EA\pdfximage\fi
+ %\pdfimmediateximage
+ \pdfimageattributes
+ \pdfimagecolorspecs
+ \pdfimagepagenumber
+ \@@DriverImageBox
+ {#2}%
+ \xdef\PDFimagereference{\the\pdflastximage}%
+ \xdef\nofinsertpages{\the\pdflastximagepages}%
+ \pdfrefximage\pdflastximage}%
+ #6\wd\foundexternalfigure
+ #7\ht\foundexternalfigure
+ \global\let\PDFfigurereference\empty
+ \global\let\PDFimageattributes\empty
+ \else
+ #6\zeropoint
+ #7\zeropoint
+ \fi
+ \else
+ #1{#2}{#3}{#4}{#5}{#6}{#7}% \normaldogetfiguresize...
+ \fi}
\else
diff --git a/tex/context/base/supp-lan.tex b/tex/context/base/supp-lan.tex
index a643667c5..99ba487c6 100644
--- a/tex/context/base/supp-lan.tex
+++ b/tex/context/base/supp-lan.tex
@@ -184,8 +184,8 @@
%D compound characters like |-| or || to be separated from the
%D words. \TEX\ hackers will recognise the next two macro's:
-\def\prewordbreak {\penalty10000\hskip0pt\relax}
-\def\postwordbreak {\penalty0\prewordbreak}
+\def\prewordbreak {\penalty\plustenthousand\hskip\zeropoint\relax}
+\def\postwordbreak {\penalty\zerocount\prewordbreak}
%D We first show the original implementation, which only
%D supports \type{|} as command and delimiter. Before
@@ -507,11 +507,16 @@
\nextnextnext}
\def\checkbeforediscretionary
- {\setbox0\lastbox
- \ifdim\wd0=\zeropoint
- \let\postwordbreak\prewordbreak
- \fi
- \box0\relax}
+ {\ifvmode\dontleavehmode\fi
+ \ifhmode
+ \begingroup
+ \setbox\scratchbox\lastbox
+ \ifdim\wd\scratchbox=\zeropoint
+ \let\postwordbreak\prewordbreak
+ \fi
+ \box\scratchbox\relax
+ \endgroup
+ \fi}
\def\checkafterdiscretionary
{\ifx,\nextnext
@@ -604,8 +609,8 @@
{\uccode`'=`'\relax \uccode`~=`~\relax \uccode`_=`_\relax
\uccode`(=`(\relax \uccode`)=`)\relax \uccode`==`=\relax
\uccode`<=`<\relax \uccode`>=`>\relax
- \let\dotextmodediscretionary = \activedotextmodediscretionary
- \let\dododotextmodediscretionary = \activedododotextmodediscretionary}
+ \let\dotextmodediscretionary \activedotextmodediscretionary
+ \let\dododotextmodediscretionary\activedododotextmodediscretionary}
%D We only have to redefine two macros. While saving the
%D \type{\uccode} in a macro we have to take care of empty
@@ -673,7 +678,7 @@
\allowbreak\postwordbreak
\egroup
\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext}
+ \nextnextnext} % no lookahead in commands
%D Now we can safely do things like: \enableactivediscretionaries
%D
@@ -769,11 +774,12 @@
\allowbreak\postwordbreak
\egroup
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext}
+ \nextnextnext} % no lookahead in commands
%D Since most things in \CONTEXT\ are configurable, we
%D slightly change the previous definition so that we can
-%D install new functionality outside this module.
+%D install new functionality outside this module. We also
+%D support lookahead (over the egroup).
\def\@tmd@{@@tmd@@}
@@ -804,10 +810,14 @@
\discretionary{\hbox{#2}}{}{\hbox{#2}}%
\allowbreak\postwordbreak
\egroup
+ \else\ifx\nextnextnext\egroup % so we can properly do things afterward
+ \@EA\egroup
+ \@EA\let\@EA\nextnextnext\@EA\empty
+ \csname\@tmd@\discretionarytoken\endcsname
\else
\csname\@tmd@\discretionarytoken\endcsname
- \fi\fi
- \nextnextnext} % can be \egroup so \aftergroup\ignorespaces
+ \fi\fi\fi
+ \nextnextnext} % lookahead in commands
\def\definetextmodediscretionary #1
{\convertargument#1\to\ascii
@@ -863,19 +873,15 @@
\definetextmodediscretionary :
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{:}:}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary ;
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{;};}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary ?
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{?}?}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary !
{\removeunwantedspaces\prewordbreak\kern\hspaceamount\empty{!}!}
- %\space\aftergroup\ignorespaces}
\definetextmodediscretionary *
{\prewordbreak\discretionary{-}{}{\kern.05em}\prewordbreak}
@@ -908,6 +914,10 @@
%D In those situations where the nature of characters is
%D less predictable, we can use the more direct approach:
+%D Beware: an \type {\ignorespaces} in a definition works
+%D okay here, but not in the main mechanism because there
+%D we have \type {\nextnextnext}.
+
\unexpanded\def\directdiscretionary#1%
{\convertargument#1\to\discretionarytoken
\let\textmodediscretionary\compoundhyphen
@@ -1197,7 +1207,7 @@
%D
%D The following macro is taken from plain \TEX.
-\def\nonbreakablespace{\penalty\!!tenthousand\ }
+\def\nonbreakablespace{\penalty\plustenthousand\ }
\let~\nonbreakablespace
@@ -1366,6 +1376,8 @@
\else
\prewordbreak\discretionary{}{##1{}{}}{##1{}{}}\prewordbreak
\fi}%
+ \def\splitanyway##1%
+ {\prewordbreak##1\prewordbreak}%
\def\flushurl%
{\savedurl\let\savedurl\empty}%
\def\\%
@@ -1439,7 +1451,13 @@
\def\scanurl#1%
{\advance\scratchcounter\plusone
- \ifx#1\~%
+ \ifx#1\blankspace
+ \flushurl\splitanyway\normalspace
+ \else\ifx#1\ %
+ \flushurl\splitanyway\normalspace
+ \else\ifx#1\space
+ \flushurl\splitanyway\normalspace
+ \else\ifx#1\~%
\flushurl\splitbefore\~%
\else\ifx#1\#%
\flushurl\splitbefore\#%
@@ -1493,7 +1511,7 @@
#1%
\fi
\fi
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
% \setupinteraction[state=start]
% \def\gotoURL#1{\useURL[foo][#1]\goto{\url[foo]}[url(foo)]}
diff --git a/tex/context/base/supp-mat.tex b/tex/context/base/supp-mat.tex
index d35dc52d3..5b2305f8b 100644
--- a/tex/context/base/supp-mat.tex
+++ b/tex/context/base/supp-mat.tex
@@ -49,15 +49,24 @@
\long\def\displaymath#1{\relax\ifmmode#1\else$$#1$$\fi}
\long\def\inlinemath #1{\relax\ifmmode#1\else $#1$\fi}
-\def\startmathmode
- {\ifmmode
+\let\stopmathmode\relax
+
+\def\startmathmode % cannot be used nested
+ {\relax\ifmmode
\let\stopmathmode\relax
\else
$\def\stopmathmode{$}% \let\stopmathmode=$
\fi}
+\def\startmathmode % nested variant
+ {\relax\ifmmode
+ \begingroup\let\stopmathmode\endgroup
+ \else
+ $\let\stopmathmode$%
+ \fi}
+
\def\nomathematics#1%
- {\ifmmode\hbox{#1}\else#1\fi}
+ {\relax\ifmmode\hbox{#1}\else#1\fi}
\let\math\mathematics
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 20e181dbd..d36a90c87 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -1073,6 +1073,8 @@
\def\executesystemcommand#1{\immediate\write18{#1}}
\fi
+\ifx\TEXEXECcommand \undefined \def\TEXEXECcommand{texexec} \fi
+
\ifx\undefined\executeMetaPost
\ifx\undefined\interactionmode \chardef\interactionmode=255 \fi
@@ -1088,7 +1090,7 @@
\space\ifuseMETAFUNformat \MPOSTformatswitch metafun \fi #1}
\def\executeMPTEX#1%
- {texexec
+ {\TEXEXECcommand\space
--batch \ifcase\interactionmode --logfile='mptex.log' \fi
--output=\MPOSTdriver\space
\ifuseMETAFUNformat --mpformat=metafun \fi --mptex --nomp --once #1}
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index f235fed0a..44c46f02d 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -3467,6 +3467,19 @@
%D As we can see below, spaces following a control sequence are
%D to enclosed in \type{{}}.
+% keep this one:
+%
+% \def\stripcharacter#1\from#2\to#3%
+% {\def\dostripcharacter##1#1##2\end
+% {\edef\!!strippedstring{\!!strippedstring##1}%
+% \doifnotempty{##2}{\dostripcharacter##2\end}}%
+% \let\!!strippedstring\empty
+% \edef\!!stringa{#2}%
+% \@EA\dostripcharacter\!!stringa#1\end
+% \dodoglobal\let#3\!!strippedstring}
+%
+% the following is better (comes from syst-loc):
+
\def\stripcharacter#1\from#2\to#3%
{\def\dostripcharacter##1#1##2\end
{\edef\!!strippedstring{\!!strippedstring##1}%
diff --git a/tex/context/base/type-exa.tex b/tex/context/base/type-exa.tex
index ee26d254f..0730bd55f 100644
--- a/tex/context/base/type-exa.tex
+++ b/tex/context/base/type-exa.tex
@@ -245,7 +245,7 @@
\definetypeface[\typescriptone][ss][sans] [\typescriptone] [default][encoding=\typescripttwo]
\definetypeface[\typescriptone][rm][serif][modern] [default][encoding=\typescripttwo]
\definetypeface[\typescriptone][tt][mono] [modern] [default][encoding=\typescripttwo]
- \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo]
+ \definetypeface[\typescriptone][mm][math] [\typescriptone] [default][encoding=\typescripttwo,text=ss]
\stoptypescript
diff --git a/tex/context/base/type-ini.tex b/tex/context/base/type-ini.tex
index 8c988acd3..16de32741 100644
--- a/tex/context/base/type-ini.tex
+++ b/tex/context/base/type-ini.tex
@@ -538,48 +538,21 @@
\def\typefaceencoding{\defaultencoding}
-% \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]}%
-% \pushmacro\relativefontsize
-% \pushmacro\typefaceencoding
-% \pushmacro\fontclass
-% \let\relativefontsize\@@tsrscale
-% \let\typefaceencoding\@@tsencoding
-% \setcurrentfontclass{#1}
-% \saverelativefontsize{#2}{\relativefontsize}% fall back
-% %\writestatus{typeface}{[#1] [#2] [#3] [#4]}
-% \writestatus\m!fonts{[#1] [#2] [#3] [#4] / \typefaceencoding}%
-% %\usetypescript[map][\typefaceencoding]% latest versions of pdftex can load after first page
-% \usetypescript[#3,map][#4][name,default,\typefaceencoding,special]% is default needed
-% \usetypescript[#3][#5][size]%
-% \popmacro\fontclass
-% \popmacro\typefaceencoding
-% \popmacro\relativefontsize
-% \else\iffourthargument
-% \definetypeface[#1][#2][#3][#4][\s!default]%
-% \else\ifthirdargument
-% \getparameters[\??tf#1#2][#3]%
-% \fi\fi\fi}
-
% we can use \rawgetparameters or \rawgeteparameters
\def\dodefinetypeface[#1][#2][#3][#4][#5][#6]%
{\dododefinetypeface[#1][#2]%
\iffifthargument % sixth is optional
% we need to expand since in #6 there can be a \typescripttwo
- \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,#6]}% \geteparameters
+ \expanded{\getparameters[\??ts][\s!rscale=\plusone,\s!encoding=\defaultencoding,\s!text=,#6]}% \geteparameters
\pushmacro\relativefontsize
\pushmacro\typefaceencoding
\pushmacro\fontclass
\let\relativefontsize\@@tsrscale
\let\typefaceencoding\@@tsencoding
\setcurrentfontclass{#1}%
- \saverelativefontsize{#2}{\relativefontsize}% fall back
+ \saverelativefontsize{#2}\relativefontsize % fall back
+ \savemathtextstyle\@@tstext % math text style (new per 28/4/2006)
\iftracetypescripts\writestatus\m!fonts{define: [#1] [#2] [#3] [#4] / \typefaceencoding}\fi
%\usetypescript[map][\typefaceencoding]% latest versions of pdftex can load after first page
\usetypescript[#3,\t!map][#4][\t!name,\t!default,\typefaceencoding,\t!special]% is default needed
diff --git a/tex/context/base/unic-032.tex b/tex/context/base/unic-032.tex
index 42fea9de3..32c25e4e2 100644
--- a/tex/context/base/unic-032.tex
+++ b/tex/context/base/unic-032.tex
@@ -1,9 +1,9 @@
%D \module
%D [ file=unic-032,
-%D version=2002.12.03,
+%D version=2006.03.30,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 32,
-%D author=Hans Hagen,
+%D author={Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
@@ -13,126 +13,266 @@
\unprotect
-% U+2027 HYPHENATION POINT
-% U+2028 LINE SEPARATOR
-% U+2029 PARAGRAPH SEPARATOR
-% U+202A LEFT-TO-RIGHT EMBEDDING
-% U+202B RIGHT-TO-LEFT EMBEDDING
-% U+202C POP DIRECTIONAL FORMATTING
-% U+202D LEFT-TO-RIGHT OVERRIDE
-% U+202E RIGHT-TO-LEFT OVERRIDE
-% U+202F NARROW NO-BREAK SPACE
-% U+2030 PER MILLE SIGN
-% U+2031 PER TEN THOUSAND SIGN
-% U+2032 PRIME
-% U+2033 DOUBLE PRIME
-% U+2034 TRIPLE PRIME
-% U+2035 REVERSED PRIME
-% U+2036 REVERSED DOUBLE PRIME
-% U+2037 REVERSED TRIPLE PRIME
-% U+2038 CARET
-
-% U+203B REFERENCE MARK
-% U+203C DOUBLE EXCLAMATION MARK
-% U+203D INTERROBANG
-% U+203E OVERLINE
-% U+203F UNDERTIE
-% U+2040 CHARACTER TIE
-% U+2041 CARET INSERTION POINT
-% U+2042 ASTERISM
-% U+2043 HYPHEN BULLET
-% U+2044 FRACTION SLASH
-% U+2045 LEFT SQUARE BRACKET WITH QUILL
-% U+2046 RIGHT SQUARE BRACKET WITH QUILL
-% U+2047 DOUBLE QUESTION MARK
-% U+2048 QUESTION EXCLAMATION MARK
-% U+2049 EXCLAMATION QUESTION MARK
-% U+204A TIRONIAN SIGN ET
-% U+204B REVERSED PILCROW SIGN
-% U+204C BLACK LEFTWARDS BULLET
-% U+204D BLACK RIGHTWARDS BULLET
-% U+204E LOW ASTERISK
-% U+204F REVERSED SEMICOLON
-% U+2050 CLOSE UP
-% U+2051 TWO ASTERISKS ALIGNED VERTICALLY
-% U+2052 COMMERCIAL MINUS SIGN
-% U+2053 SWUNG DASH
-% U+2054 INVERTED UNDERTIE
-% U+2057 QUADRUPLE PRIME
-% U+205F MEDIUM MATHEMATICAL SPACE
-% U+2060 WORD JOINER
-% U+2061 FUNCTION APPLICATION
-% U+2062 INVISIBLE TIMES
-% U+2063 INVISIBLE SEPARATOR
-% U+206A INHIBIT SYMMETRIC SWAPPING
-% U+206B ACTIVATE SYMMETRIC SWAPPING
-% U+206C INHIBIT ARABIC FORM SHAPING
-% U+206D ACTIVATE ARABIC FORM SHAPING
-% U+206E NATIONAL DIGIT SHAPES
-% U+206F NOMINAL DIGIT SHAPES
-
-\ifx\undefined\zerowidthspace \unexpanded\def\zerowidthspace{\kern\zeropoint} \fi
-
\startunicodevector 32
+ \expandafter\strippedcsname
\ifcase\numexpr#1\relax
- \strippedcsname \enspace \or % U+2000 EN QUAD
- \strippedcsname \emspace \or % U+2001 EM QUAD
- \strippedcsname \enspace \or % U+2002 EN SPACE
- \strippedcsname \emspace \or % U+2003 EM SPACE
- \strippedcsname \unknownchar \or % U+2004 THREE-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2005 FOUR-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2006 SIX-PER-EM SPACE
- \strippedcsname \unknownchar \or % U+2007 FIGURE SPACE
- \strippedcsname \unknownchar \or % U+2008 PUNCTUATION SPACE
- \strippedcsname \unknownchar \or % U+2009 THIN SPACE
- \strippedcsname \unknownchar \or % U+200A HAIR SPACE
- \strippedcsname \zerowidthspace \or % U+200B ZERO WIDTH SPACE
- \strippedcsname \unknownchar \or % U+200C ZERO WIDTH NON-JOINER
- \strippedcsname \unknownchar \or % U+200D ZERO WIDTH JOINER
- \strippedcsname \unknownchar \or % U+200E LEFT-TO-RIGHT MARK
- \strippedcsname \unknownchar \or % U+200F RIGHT-TO-LEFT MARK
- \strippedcsname \breakinghyphen \or % U+2010 HYPHEN
- \strippedcsname \nonbreakinghyphen\or % U+2011 NON-BREAKING HYPHEN
- \strippedcsname \textminus \or % U+2012 FIGURE DASH
- \strippedcsname \endash \or % U+2013 EN DASH
- \strippedcsname \emdash \or % U+2014 EM DASH
- \strippedcsname \unknownchar \or % U+2015 HORIZONTAL BAR
- \strippedcsname \unknownchar \or % U+2016 DOUBLE VERTICAL LINE
- \strippedcsname \unknownchar \or % U+2017 DOUBLE LOW LINE
- \strippedcsname \quoteleft \or % U+2018 LEFT SINGLE QUOTATION MARK
- \strippedcsname \quoteright \or % U+2019 RIGHT SINGLE QUOTATION MARK
- \strippedcsname \quotesinglebase \or % U+201A SINGLE LOW-9 QUOTATION MARK
- \strippedcsname \unknownchar \or % U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
- \strippedcsname \quotedblleft \or % U+201C LEFT DOUBLE QUOTATION MARK
- \strippedcsname \quotedblright \or % U+201D RIGHT DOUBLE QUOTATION MARK
- \strippedcsname \quotedblbase \or % U+201E DOUBLE LOW-9 QUOTATION MARK
- \strippedcsname \unknownchar \or % U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
- \strippedcsname \textdag \or % U+2020 DAGGER
- \strippedcsname \textddag \or % U+2021 DOUBLE DAGGER
- \strippedcsname \textbullet \or % U+2022 BULLET
- \strippedcsname \unknownchar \or % U+2023 TRIANGULAR BULLET
- \strippedcsname \unknownchar \or % U+2024 ONE DOT LEADER
- \strippedcsname \unknownchar \or % U+2025 TWO DOT LEADER
- \strippedcsname \periods \else % U+2026 HORIZONTAL ELLIPSIS % was: \textellipsis
- \ifcase\numexpr#1-48\relax
- \strippedcsname \perthousand \or % U+2030 PER MILLE SIGN
- \strippedcsname \unknownchar \or % U+2031 PER TEN THOUSAND SIGN
- \strippedcsname \prime \or % U+2032 PRIME
- \strippedcsname \doubleprime \or % U+2033 DOUBLE PRIME
- \strippedcsname \tripleprime \else % U+2034 TRIPLE PRIME
- \ifcase\numexpr#1-57\relax
- \strippedcsname \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
- \strippedcsname \guilsingleright \else % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
- \ifcase\numexpr#1-95\relax
- \strippedcsname \thickspace \or % U+205F MEDIUM MATHEMATICAL SPACE
- \strippedcsname \unknownchar \or %
- \strippedcsname \unknownchar \or % U+2061 FUNCTION APPLICATION
- \strippedcsname \times \or % U+2062 INVISIBLE TIMES
- \strippedcsname \unknownchar \else % U+2063 INVISIBLE COMMA
- \ifcase\numexpr#1-172\relax
- \strippedcsname \texteuro \else
- \strippedcsname \unknownchar
- \fi\fi\fi\fi\fi
+ \enspace \or % U+2000 EN QUAD
+ \emspace \or % U+2001 EM QUAD
+ \enspace \or % U+2002 EN SPACE
+ \emspace \or % U+2003 EM SPACE
+ \unic@threeperemspace \or % U+2004 THREE-PER-EM SPACE
+ \unic@fourperemspace \or % U+2005 FOUR-PER-EM SPACE
+ \unic@sixperemspace \or % U+2006 SIX-PER-EM SPACE
+ \unic@figurespace \or % U+2007 FIGURE SPACE
+ \unmic@punctiationspace \or % U+2008 PUNCTUATION SPACE
+ \thinspace \or % U+2009 THIN SPACE
+ \unic@hairspace \or % U+200A HAIR SPACE
+ \unic@zerowidthspace \or % U+200B ZERO WIDTH SPACE
+ \unic@zerowidthnonjoiner \or % U+200C ZERO WIDTH NON-JOINER
+ \unic@zerowidthjoiner \or % U+200D ZERO WIDTH JOINER
+ \unknownchar \or % U+200E LEFT-TO-RIGHT MARK
+ \unknownchar \or % U+200F RIGHT-TO-LEFT MARK
+ \breakinghyphen \or % U+2010 HYPHEN
+ \nonbreakinghyphen \or % U+2011 NON-BREAKING HYPHEN
+ \endash \or % U+2012 FIGURE DASH
+ \endash \or % U+2013 EN DASH
+ \emdash \or % U+2014 EM DASH
+ \emdash \or % U+2015 HORIZONTAL BAR
+ \unic@doubleverticalline \or % U+2016 DOUBLE VERTICAL LINE
+ \unic@doublelowline \or % U+2017 DOUBLE LOW LINE
+ \quoteleft \or % U+2018 LEFT SINGLE QUOTATION MARK
+ \quoteright \or % U+2019 RIGHT SINGLE QUOTATION MARK
+ \quotesinglebase \or % U+201A SINGLE LOW-9 QUOTATION MARK
+ \unic@quoteleftreversed \or % U+201B SINGLE HIGH-REVERSED-9 QUOTATION MARK
+ \quotedblleft \or % U+201C LEFT DOUBLE QUOTATION MARK
+ \quotedblright \or % U+201D RIGHT DOUBLE QUOTATION MARK
+ \quotedblbase \or % U+201E DOUBLE LOW-9 QUOTATION MARK
+ \unic@quotedblleftreversed \or % U+201F DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+ \textdag \or % U+2020 DAGGER
+ \textddag \or % U+2021 DOUBLE DAGGER
+ \textbullet \or % U+2022 BULLET
+ \blacktriangleright \or % U+2023 TRIANGULAR BULLET
+ \unic@onedotleader \or % U+2024 ONE DOT LEADER
+ \unic@twodotleader \or % U+2025 TWO DOT LEADER
+ \periods \or % U+2026 HORIZONTAL ELLIPSIS % was: \textellipsis
+ \unic@hyphenationpoint \or % U+2027 HYPHENATION POINT
+ \crlf \or % U+2028 LINE SEPARATOR
+ \endgraf \or % U+2029 PARAGRAPH SEPARATOR
+ \unknownchar \or % U+202A LEFT-TO-RIGHT EMBEDDING
+ \unknownchar \or % U+202B RIGHT-TO-LEFT EMBEDDING
+ \unknownchar \or % U+202C POP DIRECTIONAL FORMATTING
+ \unknownchar \or % U+202D LEFT-TO-RIGHT OVERRIDE
+ \unknownchar \or % U+202E RIGHT-TO-LEFT OVERRIDE
+ \ \or % U+202F NARROW NO-BREAK SPACE
+ \perthousand \or % U+2030 PER MILLE SIGN
+ \unknownchar \or % U+2031 PER TEN THOUSAND SIGN
+ \prime \or % U+2032 PRIME
+ \unic@doubleprime \or % U+2033 DOUBLE PRIME
+ \unic@tripleprime \or % U+2034 TRIPLE PRIME
+ \backprime \or % U+2035 REVERSED PRIME
+ \unic@reverseddoubleprime \or % U+2036 REVERSED DOUBLE PRIME
+ \unic@reversedtripleprime \or % U+2037 REVERSED TRIPLE PRIME
+ \unknownchar \or % U+2038 CARET
+ \guilsingleleft \or % U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ \guilsingleright \or % U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ \unknownchar \or % U+203B REFERENCE MARK
+ \unic@doubleexclamationmark \or % U+203C DOUBLE EXCLAMATION MARK
+ \unknownchar \or % U+203D INTERROBANG
+ \unknownchar \or % U+203E OVERLINE
+ \unknownchar \or % U+203F UNDERTIE
+ \unknownchar \or % U+2040 CHARACTER TIE
+ \unknownchar \or % U+2041 CARET INSERTION POINT
+ \unknownchar \or % U+2042 ASTERISM
+ \unknownchar \or % U+2043 HYPHEN BULLET
+ \unic@fractionslash \or % U+2044 FRACTION SLASH
+ \unknownchar \or % U+2045 LEFT SQUARE BRACKET WITH QUILL
+ \unknownchar \or % U+2046 RIGHT SQUARE BRACKET WITH QUILL
+ \unic@doublequestionmark \or % U+2047 DOUBLE QUESTION MARK
+ \unic@exclamationquestionmark\or % U+2048 QUESTION EXCLAMATION MARK
+ \unic@questionexclamationmark\or % U+2049 EXCLAMATION QUESTION MARK
+ \unknownchar \or % U+204A TIRONIAN SIGN ET
+ \unic@reversedpilcrowsign \or % U+204B REVERSED PILCROW SIGN
+ \unknownchar \or % U+204C BLACK LEFTWARDS BULLET
+ \unknownchar \or % U+204D BLACK RIGHTWARDS BULLET
+ \unic@lowasterisk \or % U+204E LOW ASTERISK
+ \unic@reversedsemicolon \or % U+204F REVERSED SEMICOLON
+ \unknownchar \or % U+2050 CLOSE UP
+ \unknownchar \or % U+2051 TWO ASTERISKS ALIGNED VERTICALLY
+ \unknownchar \or % U+2052 COMMERCIAL MINUS SIGN
+ \unknownchar \or % U+2053 SWUNG DASH
+ \unknownchar \or % U+2054 INVERTED UNDERTIE
+ \unknownchar \or % U+2055 FLOWER PUNCTUATION MARK
+ \unknownchar \or % U+2056 THREE DOT PUNCTUATION
+ \unknownchar \or % U+2057 QUADRUPLE PRIME
+ \unknownchar \or % U+2058 FOUR DOT PUNCTUATION
+ \unknownchar \or % U+2059 FIVE DOT PUNCTUATION
+ \unknownchar \or % U+205A TWO DOT PUNCTUATION
+ \unknownchar \or % U+205B FOUR DOT MARK
+ \unknownchar \or % U+205C DOTTED CROSS
+ \unknownchar \or % U+205D TRICOLON
+ \unknownchar \or % U+205E VERTICAL FOUR DOTS
+ \thickspace \or % U+205F MEDIUM MATHEMATICAL SPACE
+ \relax \or % U+2060 WORD JOINER
+ \unic@functionapplication \or % U+2061 FUNCTION APPLICATION
+ \unic@invisibletimes \or % U+2062 INVISIBLE TIMES
+ \unic@invisibleseparator \or % U+2063 INVISIBLE SEPARATOR (COMMA)
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \relax \or % U+206A INHIBIT SYMMETRIC SWAPPING
+ \relax \or % U+206B ACTIVATE SYMMETRIC SWAPPING
+ \relax \or % U+206C INHIBIT ARABIC FORM SHAPING
+ \relax \or % U+206D ACTIVATE ARABIC FORM SHAPING
+ \relax \or % U+206E NATIONAL DIGIT SHAPES
+ \relax \or % U+206F NOMINAL DIGIT SHAPES
+ \unic@superscriptzero \or % U+2070 SUPERSCRIPT ZERO
+ \unic@superscripti \or % U+2071 SUPERSCRIPT LATIN SMALL LETTER I
+ \unknownchar \or % U+2072 <reserved>
+ \unknownchar \or % U+2073 <reserved>
+ \unic@superscriptfour \or % U+2074 SUPERSCRIPT FOUR
+ \unic@superscriptfive \or % U+2075 SUPERSCRIPT FIVE
+ \unic@superscriptsix \or % U+2076 SUPERSCRIPT SIX
+ \unic@superscriptseven \or % U+2077 SUPERSCRIPT SEVEN
+ \unic@superscripteight \or % U+2078 SUPERSCRIPT EIGHT
+ \unic@superscriptnine \or % U+2079 SUPERSCRIPT NINE
+ \unic@superscriptplus \or % U+207A SUPERSCRIPT PLUS SIGN
+ \unic@superscriptminus \or % U+207B SUPERSCRIPT MINUS
+ \unic@superscriptequals \or % U+207C SUPERSCRIPT EQUALS SIGN
+ \unic@superscriptleft \or % U+207D SUPERSCRIPT LEFT PARENTHESIS
+ \unic@superscriptright \or % U+207E SUPERSCRIPT RIGHT PARENTHESIS
+ \unic@superscriptn \or % U+207F SUBSCRIPT LATIN SMALL LETTER N
+ \unic@subscriptzero \or % U+2080 SUBSCRIPT ZERO
+ \unic@subscriptone \or % U+2081 SUBSCRIPT ONE
+ \unic@subscripttwo \or % U+2082 SUBSCRIPT TWO
+ \unic@subscriptthree \or % U+2083 SUBSCRIPT THREE
+ \unic@subscriptfour \or % U+2084 SUBSCRIPT FOUR
+ \unic@subscriptfive \or % U+2085 SUBSCRIPT FIVE
+ \unic@subscriptsix \or % U+2086 SUBSCRIPT SIX
+ \unic@subscriptseven \or % U+2087 SUBSCRIPT SEVEN
+ \unic@subscripteight \or % U+2088 SUBSCRIPT EIGHT
+ \unic@subscriptnine \or % U+2089 SUBSCRIPT NINE
+ \unic@subscriptplus \or % U+208A SUBSCRIPT PLUS SIGN
+ \unic@subscriptminus \or % U+208B SUBSCRIPT MINUS
+ \unic@subscriptequals \or % U+208C SUBSCRIPT EQUALS SIGN
+ \unic@subscriptleft \or % U+208D SUBSCRIPT LEFT PARENTHESIS
+ \unic@subscriptright \or % U+208E SUBSCRIPT RIGHT PARENTHESIS
+ \unknownchar \or %
+ \unic@subscripta \or % U+2090 LATIN SUBSCRIPT SMALL LETTER A
+ \unic@subscripte \or % U+2091 LATIN SUBSCRIPT SMALL LETTER E
+ \unic@subscripto \or % U+2092 LATIN SUBSCRIPT SMALL LETTER O
+ \unic@subscriptx \or % U+2093 LATIN SUBSCRIPT SMALL LETTER X
+ \unic@subscriptschwa \or % U+2094 LATIN SUBSCRIPT SMALL LETTER SCHWA
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or % U+20A0 EURO-CURRENCY SIGN
+ \unknownchar \or % U+20A1 COLON SIGN
+ \unknownchar \or % U+20A2 CRUZEIRO SIGN
+ \unknownchar \or % U+20A3 FRENCH FRANC SIGN
+ \unknownchar \or % U+20A4 LIRA SIGN
+ \unknownchar \or % U+20A5 MILL SIGN
+ \unknownchar \or % U+20A6 NAIRA SIGN
+ \unknownchar \or % U+20A7 PESETA SIGN
+ \unknownchar \or % U+20A8 RUPEE SIGN
+ \unknownchar \or % U+20A9 WON SIGN
+ \unknownchar \or % U+20AA NEW SHEQEL SIGN
+ \textdong \or % U+20AB DONG SIGN
+ \texteuro \or % U+20AC EURO SIGN
+ \unknownchar \or % U+20AD KIP SIGN
+ \unknownchar \or % U+20AE TUGRIK SIGN
+ \unknownchar \or % U+20AF DRACHMA SIGN
+ \unknownchar \or % U+20B0 GERMAN PENNY SIGN
+ \unknownchar \or % U+20B1 PESO SIGN
+ \unknownchar \or % U+20B2 GUARANI SIGN
+ \unknownchar \or % U+20B3 AUSTRAL SIGN
+ \unknownchar \or % U+20B4 HRYVNIA SIGN
+ \unknownchar \or % U+20B5 CEDI SIGN
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or % U+20D0 COMBINING LEFT HARPOON ABOVE
+ \unknownchar \or % U+20D1 COMBINING RIGHT HARPOON ABOVE
+ \unknownchar \or % U+20D2 COMBINING LONG VERTICAL LINE OVERLAY
+ \unknownchar \or % U+20D3 COMBINING SHORT VERTICAL LINE OVERLAY
+ \unknownchar \or % U+20D4 COMBINING ANTICLOCKWISE ARROW ABOVE
+ \unknownchar \or % U+20D5 COMBINING CLOCKWISE ARROW ABOVE
+ \unknownchar \or % U+20D6 COMBINING LEFT ARROW ABOVE
+ \unknownchar \or % U+20D7 COMBINING RIGHT ARROW ABOVE
+ \unknownchar \or % U+20D8 COMBINING RING OVERLAY
+ \unknownchar \or % U+20D9 COMBINING CLOCKWISE RING OVERLAY
+ \unknownchar \or % U+20DA COMBINING ANTICLOCKWISE RING OVERLAY
+ \unknownchar \or % U+20DB COMBINING THREE DOTS ABOVE
+ \unknownchar \or % U+20DC COMBINING FOUR DOTS ABOVE
+ \unknownchar \or % U+20DD COMBINING ENCLOSING CIRCLE
+ \unknownchar \or % U+20DE COMBINING ENCLOSING SQUARE
+ \unknownchar \or % U+20DF COMBINING ENCLOSING DIAMOND
+ \unknownchar \or % U+20E0 COMBINING ENCLOSING CIRCLE BACKSLASH
+ \unknownchar \or % U+20E1 COMBINING LEFT RIGHT ARROW ABOVE
+ \unknownchar \or % U+20E2 COMBINING ENCLOSING SCREEN
+ \unknownchar \or % U+20E3 COMBINING ENCLOSING KEYCAP
+ \unknownchar \or % U+20E4 COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+ \unknownchar \or % U+20E5 COMBINING REVERSE SOLIDUS OVERLAY
+ \unknownchar \or % U+20E6 COMBINING DOUBLE VERTICAL STROKE OVERLAY
+ \unknownchar \or % U+20E7 COMBINING ANNUITY SYMBOL
+ \unknownchar \or % U+20E8 COMBINING TRIPLE UNDERDOT
+ \unknownchar \or % U+20E9 COMBINING WIDE BRIDGE ABOVE
+ \unknownchar \or % U+20EA COMBINING LEFTWARDS ARROW OVERLAY
+ \unknownchar \or % U+20EB COMBINING LONG DOUBLE SOLIDUS OVERLAY
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \or %
+ \unknownchar \else %
+ \unknownchar \fi
\stopunicodevector
\protect \endinput
diff --git a/tex/context/base/unic-033.tex b/tex/context/base/unic-033.tex
index 632285a0e..91311a029 100644
--- a/tex/context/base/unic-033.tex
+++ b/tex/context/base/unic-033.tex
@@ -1,9 +1,9 @@
%D \module
%D [ file=unic-033,
-%D version=2005.06.11,
+%D version=2006.03.29,
%D title=\CONTEXT\ \UNICODE\ Macros,
%D subtitle=Vector 33,
-%D author={Nikolai Weibull \& Hans Hagen},
+%D author={Nikolai Weibull \& Hans Hagen \& Taco Hoekwater},
%D date=\currentdate,
%D copyright={PRAGMA / Nikolai Weibull}]
@@ -11,119 +11,263 @@
\startunicodevector 33
\expandafter\strippedcsname
- \ifcase\numexpr#1-144\relax
- \leftarrow \or % LEFTWARDS ARROW
- \uparrow \or % UPWARDS ARROW
- \rightarrow \or % RIGHTWARDS ARROW
- \downarrow \or % DOWNWARDS ARROW
- \leftrightarrow \or % LEFT RIGHT ARROW
- \updownarrow \or % UP DOWN ARROW
- \nwarrow \or % NORTH WEST ARROW
- \nearrow \or % NORTH EAST ARROW
- \searrow \or % SOUTH EAST ARROW
- \swarrow \or % SOUTH WEST ARROW
- \nleftarrow \or % LEFTWARDS ARROW WITH STROKE
- \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE
- \unknownchar \or % LEFTWARDS WAVE ARROW
- \unknownchar \or % RIGHTWARDS WAVE ARROW
- \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW
- \unknownchar \or % UPWARDS TWO HEADED ARROW
- \twoheadedrightarrow \or % RIGHTWARDS TWO HEADED ARROW
- \unknownchar \or % DOWNWARDS TWO HEADED ARROW
- \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL
- \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL
- \mapsfrom \or % LEFTWARDS ARROW FROM BAR
- \unknownchar \or % UPWARDS ARROW FROM BAR
- \mapsto \or % RIGHTWARDS ARROW FROM BAR
- \unknownchar \or % DOWNWARDS ARROW FROM BAR
- \unknownchar \or % UP DOWN ARROW WITH BASE
- \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK
- \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK
- \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP
- \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP
- \unknownchar \or % LEFT RIGHT WAVE ARROW
- \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE
- \lightning \or % DOWNWARDS ZIGZAG ARROW
- \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS
- \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS
- \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
- \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS
- \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW
- \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW
- \unknownchar \or % NORTH WEST ARROW TO LONG BAR
- \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
- \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW
- \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW
- \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS
- \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS
- \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS
- \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS
- \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS
- \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
- \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
- \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS
- \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
- \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
- \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
- \leftleftarrows \or % LEFTWARDS PAIRED ARROWS
- \upuparrows \or % UPWARDS PAIRED ARROWS
- \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS
- \downdownarrows \or % DOWNWARDS PAIRED ARROWS
- \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
- \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
- \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE
- \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE
- \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE
- \Leftarrow \or % LEFTWARDS DOUBLE ARROW
- \Uparrow \or % UPWARDS DOUBLE ARROW
- \Rightarrow \or % RIGHTWARDS DOUBLE ARROW
- \Downarrow \or % DOWNWARDS DOUBLE ARROW
- \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW
- \Updownarrow \or % UP DOWN DOUBLE ARROW
- \unknownchar \or % NORTH WEST DOUBLE ARROW
- \unknownchar \or % NORTH EAST DOUBLE ARROW
- \unknownchar \or % SOUTH EAST DOUBLE ARROW
- \unknownchar \or % SOUTH WEST DOUBLE ARROW
- \Lleftarrow \or % LEFTWARDS TRIPLE ARROW
- \unknownchar \or % RIGHTWARDS TRIPLE ARROW
- \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW
- \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW
- \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE
- \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE
- \dashleftarrow \or % LEFTWARDS DASHED ARROW
- \unknownchar \or % UPWARDS DASHED ARROW
- \dashrightarrow \or % RIGHTWARDS DASHED ARROW
- \unknownchar \or % DOWNWARDS DASHED ARROW
- \unic@leftarrowtobar \or % LEFTWARDS ARROW TO BAR
- \unknownchar \or % RIGHTWARDS ARROW TO BAR
- \unknownchar \or % LEFTWARDS WHITE ARROW
- \unknownchar \or % UPWARDS WHITE ARROW
- \unknownchar \or % RIGHTWARDS WHITE ARROW
- \unknownchar \or % DOWNWARDS WHITE ARROW
- \unknownchar \or % UPWARDS WHITE ARROW FROM BAR
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
- \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
- \unknownchar \or % UPWARDS WHITE DOUBLE ARROW
- \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
- \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL
- \unknownchar \or % NORTH WEST ARROW TO CORNER
- \unknownchar \or % SOUTH EAST ARROW TO CORNER
- \unknownchar \or % UP DOWN WHITE ARROW
- \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE
- \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
- \unknownchar \or % THREE RIGHTWARDS ARROWS
- \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE
- \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE
- \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE
- \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
- \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
- \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
- \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW
- \rightarrowtriangle \or % RIGHTWARDS OPEN-HEADED ARROW
- \leftrightarrowtriangle\else % LEFT RIGHT OPEN-HEADED ARROW
+ \ifcase\numexpr#1\relax
+ \unic@accountof \or % 2100 ACCOUNT OF
+ \unic@addressedtothesubject \or % 2101 ADDRESSED TO THE SUBJECT
+ \unic@doublestruckC \or % 2102 DOUBLE-STRUCK CAPITAL C
+ \unic@degreecelsius \or % 2103 DEGREE CELSIUS
+ \unic@centrelinesymbol \or % 2104 CENTRE LINE SYMBOL
+ \unic@careof \or % 2105 CARE OF
+ \unic@cadauna \or % 2106 CADA UNA
+ \unic@eulerconstant \or % 2107 EULER CONSTANT
+ \unic@scruple \or % 2108 SCRUPLE
+ \unic@degreefahrenheit \or % 2109 DEGREE FAHRENHEIT
+ \unic@scriptg \or % 210A SCRIPT SMALL G
+ \unic@scriptH \or % 210B SCRIPT CAPITAL H
+ \unic@blackletterH \or % 210C BLACK-LETTER CAPITAL H
+ \unic@doublestruckH \or % 210D DOUBLE-STRUCK CAPITAL H
+ \unic@planckconstant \or % 210E PLANCK CONSTANT
+ \unic@planckconstantovertwopi \or % 210F PLANCK CONSTANT OVER TWO PI
+ \unic@scriptI \or % 2110 SCRIPT CAPITAL I
+ \unic@blackletterI \or % 2111 BLACK-LETTER CAPITAL I
+ \unic@scriptL \or % 2112 SCRIPT CAPITAL L
+ \unic@scriptl \or % 2113 SCRIPT SMALL L
+ \unic@lbbarsymbol \or % 2114 L B BAR SYMBOL
+ \unic@doublestruckN \or % 2115 DOUBLE-STRUCK CAPITAL N
+ \unic@numerosign \or % 2116 NUMERO SIGN
+ \unic@soundrecordingcopyright \or % 2117 SOUND RECORDING COPYRIGHT
+ \unic@scriptP \or % 2118 SCRIPT CAPITAL P
+ \unic@doublestruckP \or % 2119 DOUBLE-STRUCK CAPITAL P
+ \unic@doublestruckQ \or % 211A DOUBLE-STRUCK CAPITAL Q
+ \unic@scriptR \or % 211B SCRIPT CAPITAL R
+ \unic@blackletterR \or % 211C BLACK-LETTER CAPITAL R
+ \unic@doublestruckR \or % 211D DOUBLE-STRUCK CAPITAL R
+ \unic@prescriptiontake \or % 211E PRESCRIPTION TAKE
+ \unic@response \or % 211F RESPONSE
+ \unic@servicemark \or % 2120 SERVICE MARK
+ \unic@telephonesign \or % 2121 TELEPHONE SIGN
+ \unic@trademarksign \or % 2122 TRADE MARK SIGN
+ \unic@versickle \or % 2123 VERSICLE
+ \unic@doublestruckZ \or % 2124 DOUBLE-STRUCK CAPITAL Z
+ \unic@ouncesign \or % 2125 OUNCE SIGN
+ \unic@ohmsign \or % 2126 OHM SIGN
+ \unic@invertedohmsign \or % 2127 INVERTED OHM SIGN
+ \unic@blackletterZ \or % 2128 BLACK-LETTER CAPITAL Z
+ \unic@turnedgreekletteriota \or % 2129 TURNED GREEK SMALL LETTER IOTA
+ \unic@kelvinsign \or % 212A KELVIN SIGN
+ \unic@angstromsign \or % 212B ANGSTROM SIGN
+ \unic@scriptB \or % 212C SCRIPT CAPITAL B
+ \unic@blackletterC \or % 212D BLACK-LETTER CAPITAL C
+ \unic@estimatedsymbol \or % 212E ESTIMATED SYMBOL
+ \unic@scripte \or % 212F SCRIPT SMALL E
+ \unic@scriptE \or % 2130 SCRIPT CAPITAL E
+ \unic@scriptF \or % 2131 SCRIPT CAPITAL F
+ \unic@turnedF \or % 2132 TURNED CAPITAL F
+ \unic@scriptM \or % 2133 SCRIPT CAPITAL M
+ \unic@scripto \or % 2134 SCRIPT SMALL O
+ \aleph \or % 2135 ALEF SYMBOL
+ \beth \or % 2136 BET SYMBOL
+ \gimel \or % 2137 GIMEL SYMBOL
+ \daleth \or % 2138 DALET SYMBOL
+ \unic@informationsource \or % 2139 INFORMATION SOURCE
+ \unic@rotatedQ \or % 213A ROTATED CAPITAL Q
+ \unic@facsimilesign \or % 213B FACSIMILE SIGN
+ \unic@doublestruckpi \or % 213C DOUBLE-STRUCK SMALL PI
+ \unic@doublestruckgamma \or % 213D DOUBLE-STRUCK SMALL GAMMA
+ \unic@doublestruckGamma \or % 213E DOUBLE-STRUCK CAPITAL GAMMA
+ \unic@doublestruckPi \or % 213F DOUBLE-STRUCK CAPITAL PI
+ \unic@doublestrucknarysummation \or % 2140 DOUBLE-STRUCK N-ARY SUMMATION
+ \unic@turnedsansserifG \or % 2141 TURNED SANS-SERIF CAPITAL G
+ \unic@turnedsansserifL \or % 2142 TURNED SANS-SERIF CAPITAL L
+ \unic@reversedsansserifL \or % 2143 REVERSED SANS-SERIF CAPITAL L
+ \unic@turnedsansserifY \or % 2144 TURNED SANS-SERIF CAPITAL Y
+ \unic@doublestruckitalicD \or % 2145 DOUBLE-STRUCK ITALIC CAPITAL D
+ \unic@doublestruckitalicd \or % 2146 DOUBLE-STRUCK ITALIC SMALL D
+ \unic@doublestruckitalice \or % 2147 DOUBLE-STRUCK ITALIC SMALL E
+ \unic@doublestruckitalici \or % 2148 DOUBLE-STRUCK ITALIC SMALL I
+ \unic@doublestruckitalicj \or % 2149 DOUBLE-STRUCK ITALIC SMALL J
+ \unic@propertyline \or % 214A PROPERTY LINE
+ \unic@turnedampersand \or % 214B TURNED AMPERSAND
+ \unic@persign \or % 214C PER SIGN
+ \unknownchar \or % 214D
+ \unknownchar \or % 214E
+ \unknownchar \or % 214F
+ \unknownchar \or % 2150
+ \unknownchar \or % 2151
+ \unknownchar \or % 2152
+ \unic@fractiononethird \or % 2153 VULGAR FRACTION ONE THIRD
+ \unic@fractiontwothirds \or % 2154 VULGAR FRACTION TWO THIRDS
+ \unic@fractiononefifth \or % 2155 VULGAR FRACTION ONE FIFTH
+ \unic@fractiontwofifths \or % 2156 VULGAR FRACTION TWO FIFTHS
+ \unic@fractionthreefifths \or % 2157 VULGAR FRACTION THREE FIFTHS
+ \unic@fractionfourfifths \or % 2158 VULGAR FRACTION FOUR FIFTHS
+ \unic@fractiononesixth \or % 2159 VULGAR FRACTION ONE SIXTH
+ \unic@fractionfivesixths \or % 215A VULGAR FRACTION FIVE SIXTHS
+ \unic@fractiononeeighth \or % 215B VULGAR FRACTION ONE EIGHTH
+ \unic@fractionthreeeighths \or % 215C VULGAR FRACTION THREE EIGHTHS
+ \unic@fractionfiveeighths \or % 215D VULGAR FRACTION FIVE EIGHTHS
+ \unic@fractionseveneighths \or % 215E VULGAR FRACTION SEVEN EIGHTHS
+ \unic@fractionnumeratorone \or % 215F FRACTION NUMERATOR ONE
+ \unic@romannumeralOne \or % 2160 ROMAN NUMERAL ONE
+ \unic@romannumeralTwo \or % 2161 ROMAN NUMERAL TWO
+ \unic@romannumeralThree \or % 2162 ROMAN NUMERAL THREE
+ \unic@romannumeralFour \or % 2163 ROMAN NUMERAL FOUR
+ \unic@romannumeralFive \or % 2164 ROMAN NUMERAL FIVE
+ \unic@romannumeralSix \or % 2165 ROMAN NUMERAL SIX
+ \unic@romannumeralSeven \or % 2166 ROMAN NUMERAL SEVEN
+ \unic@romannumeralEight \or % 2167 ROMAN NUMERAL EIGHT
+ \unic@romannumeralNine \or % 2168 ROMAN NUMERAL NINE
+ \unic@romannumeralTen \or % 2169 ROMAN NUMERAL TEN
+ \unic@romannumeralEleven \or % 216A ROMAN NUMERAL ELEVEN
+ \unic@romannumeralTwelve \or % 216B ROMAN NUMERAL TWELVE
+ \unic@romannumeralFifty \or % 216C ROMAN NUMERAL FIFTY
+ \unic@romannumeralOnehundred \or % 216D ROMAN NUMERAL ONE HUNDRED
+ \unic@romannumeralFivehundred \or % 216E ROMAN NUMERAL FIVE HUNDRED
+ \unic@romannumeralOnethousand \or % 216F ROMAN NUMERAL ONE THOUSAND
+ \unic@romannumeralone \or % 2170 SMALL ROMAN NUMERAL ONE
+ \unic@romannumeraltwo \or % 2171 SMALL ROMAN NUMERAL TWO
+ \unic@romannumeralthree \or % 2172 SMALL ROMAN NUMERAL THREE
+ \unic@romannumeralfour \or % 2173 SMALL ROMAN NUMERAL FOUR
+ \unic@romannumeralfive \or % 2174 SMALL ROMAN NUMERAL FIVE
+ \unic@romannumeralsix \or % 2175 SMALL ROMAN NUMERAL SIX
+ \unic@romannumeralseven \or % 2176 SMALL ROMAN NUMERAL SEVEN
+ \unic@romannumeraleight \or % 2177 SMALL ROMAN NUMERAL EIGHT
+ \unic@romannumeralnine \or % 2178 SMALL ROMAN NUMERAL NINE
+ \unic@romannumeralten \or % 2179 SMALL ROMAN NUMERAL TEN
+ \unic@romannumeraleleven \or % 217A SMALL ROMAN NUMERAL ELEVEN
+ \unic@romannumeraltwelve \or % 217B SMALL ROMAN NUMERAL TWELVE
+ \unic@romannumeralfifty \or % 217C SMALL ROMAN NUMERAL FIFTY
+ \unic@romannumeralonehundred \or % 217D SMALL ROMAN NUMERAL ONE HUNDRED
+ \unic@romannumeralfivehundred \or % 217E SMALL ROMAN NUMERAL FIVE HUNDRED
+ \unic@romannumeralonethousand \or % 217F SMALL ROMAN NUMERAL ONE THOUSAND
+ \unic@romannumeralonethousandCD \or % 2180 ROMAN NUMERAL ONE THOUSAND C D
+ \unic@romannumeralfivethousand \or % 2181 ROMAN NUMERAL FIVE THOUSAND
+ \unic@romannumeraltenthousand \or % 2182 ROMAN NUMERAL TEN THOUSAND
+ \unic@romannumeralreversedonehundred\or % 2183 ROMAN NUMERAL REVERSED ONE HUNDRED
+ \unknownchar \or % 2184
+ \unknownchar \or % 2185
+ \unknownchar \or % 2186
+ \unknownchar \or % 2187
+ \unknownchar \or % 2188
+ \unknownchar \or % 2189
+ \unknownchar \or % 218A
+ \unknownchar \or % 218B
+ \unknownchar \or % 218C
+ \unknownchar \or % 218D
+ \unknownchar \or % 218E
+ \unknownchar \or % 218F
+ \leftarrow \or % LEFTWARDS ARROW
+ \uparrow \or % UPWARDS ARROW
+ \rightarrow \or % RIGHTWARDS ARROW
+ \downarrow \or % DOWNWARDS ARROW
+ \leftrightarrow \or % LEFT RIGHT ARROW
+ \updownarrow \or % UP DOWN ARROW
+ \nwarrow \or % NORTH WEST ARROW
+ \nearrow \or % NORTH EAST ARROW
+ \searrow \or % SOUTH EAST ARROW
+ \swarrow \or % SOUTH WEST ARROW
+ \nleftarrow \or % LEFTWARDS ARROW WITH STROKE
+ \nrightarrow \or % RIGHTWARDS ARROW WITH STROKE
+ \unknownchar \or % LEFTWARDS WAVE ARROW
+ \unknownchar \or % RIGHTWARDS WAVE ARROW
+ \twoheadedleftarrow \or % LEFTWARDS TWO HEADED ARROW
+ \unknownchar \or % UPWARDS TWO HEADED ARROW
+ \twoheadedrightarrow \or % RIGHTWARDS TWO HEADED ARROW
+ \unknownchar \or % DOWNWARDS TWO HEADED ARROW
+ \leftarrowtail \or % LEFTWARDS ARROW WITH TAIL
+ \rightarrowtail \or % RIGHTWARDS ARROW WITH TAIL
+ \mapsfrom \or % LEFTWARDS ARROW FROM BAR
+ \unknownchar \or % UPWARDS ARROW FROM BAR
+ \mapsto \or % RIGHTWARDS ARROW FROM BAR
+ \unknownchar \or % DOWNWARDS ARROW FROM BAR
+ \unknownchar \or % UP DOWN ARROW WITH BASE
+ \hookleftarrow \or % LEFTWARDS ARROW WITH HOOK
+ \hookrightarrow \or % RIGHTWARDS ARROW WITH HOOK
+ \loopleftarrow \or % LEFTWARDS ARROW WITH LOOP
+ \looprightarrow \or % RIGHTWARDS ARROW WITH LOOP
+ \unknownchar \or % LEFT RIGHT WAVE ARROW
+ \nleftrightarrow \or % LEFT RIGHT ARROW WITH STROKE
+ \lightning \or % DOWNWARDS ZIGZAG ARROW
+ \Lsh \or % UPWARDS ARROW WITH TIP LEFTWARDS
+ \Rsh \or % UPWARDS ARROW WITH TIP RIGHTWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH TIP LEFTWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH TIP RIGHTWARDS
+ \unknownchar \or % RIGHTWARDS ARROW WITH CORNER DOWNWARDS
+ \unknownchar \or % DOWNWARDS ARROW WITH CORNER LEFTWARDS
+ \curveleftarrow \or % ANTICLOCKWISE TOP SEMICIRCLE ARROW
+ \curverightarrow \or % CLOCKWISE TOP SEMICIRCLE ARROW
+ \unknownchar \or % NORTH WEST ARROW TO LONG BAR
+ \unknownchar \or % LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+ \circlearrowleft \or % ANTICLOCKWISE OPEN CIRCLE ARROW
+ \circlearrowright \or % CLOCKWISE OPEN CIRCLE ARROW
+ \leftharpoonup \or % LEFTWARDS HARPOON WITH BARB UPWARDS
+ \leftharpoondown \or % LEFTWARDS HARPOON WITH BARB DOWNWARDS
+ \upharpoonright \or % UPWARDS HARPOON WITH BARB RIGHTWARDS
+ \upharpoonleft \or % UPWARDS HARPOON WITH BARB LEFTWARDS
+ \rightharpoonup \or % RIGHTWARDS HARPOON WITH BARB UPWARDS
+ \rightharpoondown \or % RIGHTWARDS HARPOON WITH BARB DOWNWARDS
+ \downharpoonright \or % DOWNWARDS HARPOON WITH BARB RIGHTWARDS
+ \downharpoonleft \or % DOWNWARDS HARPOON WITH BARB LEFTWARDS
+ \rightleftarrows \or % RIGHTWARDS ARROW OVER LEFTWARDS ARROW
+ \unknownchar \or % UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW
+ \leftrightarrows \or % LEFTWARDS ARROW OVER RIGHTWARDS ARROW
+ \leftleftarrows \or % LEFTWARDS PAIRED ARROWS
+ \upuparrows \or % UPWARDS PAIRED ARROWS
+ \rightrightarrows \or % RIGHTWARDS PAIRED ARROWS
+ \downdownarrows \or % DOWNWARDS PAIRED ARROWS
+ \leftrightharpoons \or % LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON
+ \rightleftharpoons \or % RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON
+ \nLeftarrow \or % LEFTWARDS DOUBLE ARROW WITH STROKE
+ \nLeftrightarrow \or % LEFT RIGHT DOUBLE ARROW WITH STROKE
+ \nRightarrow \or % RIGHTWARDS DOUBLE ARROW WITH STROKE
+ \Leftarrow \or % LEFTWARDS DOUBLE ARROW
+ \Uparrow \or % UPWARDS DOUBLE ARROW
+ \Rightarrow \or % RIGHTWARDS DOUBLE ARROW
+ \Downarrow \or % DOWNWARDS DOUBLE ARROW
+ \Leftrightarrow \or % LEFT RIGHT DOUBLE ARROW
+ \Updownarrow \or % UP DOWN DOUBLE ARROW
+ \unknownchar \or % NORTH WEST DOUBLE ARROW
+ \unknownchar \or % NORTH EAST DOUBLE ARROW
+ \unknownchar \or % SOUTH EAST DOUBLE ARROW
+ \unknownchar \or % SOUTH WEST DOUBLE ARROW
+ \Lleftarrow \or % LEFTWARDS TRIPLE ARROW
+ \unknownchar \or % RIGHTWARDS TRIPLE ARROW
+ \leftsquidarrow \or % LEFTWARDS SQUIGGLE ARROW
+ \rightsquidarrow \or % RIGHTWARDS SQUIGGLE ARROW
+ \unknownchar \or % UPWARDS ARROW WITH DOUBLE STROKE
+ \unknownchar \or % DOWNWARDS ARROW WITH DOUBLE STROKE
+ \dashleftarrow \or % LEFTWARDS DASHED ARROW
+ \unknownchar \or % UPWARDS DASHED ARROW
+ \dashrightarrow \or % RIGHTWARDS DASHED ARROW
+ \unknownchar \or % DOWNWARDS DASHED ARROW
+ \unic@leftarrowtobar \or % LEFTWARDS ARROW TO BAR
+ \unknownchar \or % RIGHTWARDS ARROW TO BAR
+ \unknownchar \or % LEFTWARDS WHITE ARROW
+ \unknownchar \or % UPWARDS WHITE ARROW
+ \unknownchar \or % RIGHTWARDS WHITE ARROW
+ \unknownchar \or % DOWNWARDS WHITE ARROW
+ \unknownchar \or % UPWARDS WHITE ARROW FROM BAR
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR
+ \unknownchar \or % UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR
+ \unknownchar \or % UPWARDS WHITE DOUBLE ARROW
+ \unknownchar \or % UPWARDS WHITE DOUBLE ARROW ON PEDESTAL
+ \unknownchar \or % RIGHTWARDS WHITE ARROW FROM WALL
+ \unknownchar \or % NORTH WEST ARROW TO CORNER
+ \unknownchar \or % SOUTH EAST ARROW TO CORNER
+ \unknownchar \or % UP DOWN WHITE ARROW
+ \unknownchar \or % RIGHT ARROW WITH SMALL CIRCLE
+ \unknownchar \or % DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW
+ \unknownchar \or % THREE RIGHTWARDS ARROWS
+ \unknownchar \or % LEFTWARDS ARROW WITH VERTICAL STROKE
+ \unknownchar \or % RIGHTWARDS ARROW WITH VERTICAL STROKE
+ \unknownchar \or % LEFT RIGHT ARROW WITH VERTICAL STROKE
+ \unknownchar \or % LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+ \unknownchar \or % RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE
+ \unknownchar \or % LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE
+ \leftarrowtriangle \or % LEFTWARDS OPEN-HEADED ARROW
+ \rightarrowtriangle \or % RIGHTWARDS OPEN-HEADED ARROW
+ \leftrightarrowtriangle \else % LEFT RIGHT OPEN-HEADED ARROW
\unknowncharacter
\fi
\stopunicodevector
diff --git a/tex/context/base/unic-ini.tex b/tex/context/base/unic-ini.tex
index e4fea8739..cafd435c6 100644
--- a/tex/context/base/unic-ini.tex
+++ b/tex/context/base/unic-ini.tex
@@ -743,7 +743,7 @@
%D Well, let's at least preload a few familiar ones. Here we
%D also load the \UTF\ regime.
-\useunicodevector[0,1,2,3,4,5,30,32,33,34,39]
+\useunicodevector[0,1,2,3,4,5,30,32,33,34,37,39]
\useunicodevector[cjk]
\useregime[utf]
diff --git a/tex/context/base/verb-ini.tex b/tex/context/base/verb-ini.tex
index e7d239e2a..63f924887 100644
--- a/tex/context/base/verb-ini.tex
+++ b/tex/context/base/verb-ini.tex
@@ -993,7 +993,7 @@
%
-\def\processverbatimline#1{#1} % remove the fake grouping
+\long\def\processverbatimline#1{#1} % remove the fake grouping
%D \macros
%D {processfileverbatim}
diff --git a/tex/context/base/xtag-ext.tex b/tex/context/base/xtag-ext.tex
index 8a67c0886..f20cc05a0 100644
--- a/tex/context/base/xtag-ext.tex
+++ b/tex/context/base/xtag-ext.tex
@@ -285,6 +285,33 @@
\egroup
+% \defineXMLcommand
+% [whatever]
+% [test=unknown]
+% {\XMLop{test}}
+%
+% \startXMLdata
+% <whatever test="{\bf test}"/>
+% \stopXMLdata
+%
+% \defineXMLcommand
+% [whatever]
+% [test=unknown]
+% {\defXMLtex\SomethingTex{\XMLop{test}}%
+% \SomethingTex}
+%
+% \startXMLdata
+% <whatever test="{\bf test}"/>
+% \stopXMLdata
+
+\def\defXMLtex#1#2% the appended space will go away when
+ {\begingroup % \scantokens is fixed
+ \disableXML
+ \everyeof{\noexpand}% br's hack
+ \edef\ascii{#2}%
+ \edef\ascii{\scantokens\expandafter{\ascii}}% space appended
+ \expandafter\endgroup\expandafter\def\expandafter#1\expandafter{\ascii}}
+
\def\potentialXMLentity#1%
{\doifXMLentityelse{#1}{\getXMLentity{#1}}{#1}}
diff --git a/tex/context/base/xtag-ini.tex b/tex/context/base/xtag-ini.tex
index 48f0c8c6f..7579898fa 100644
--- a/tex/context/base/xtag-ini.tex
+++ b/tex/context/base/xtag-ini.tex
@@ -2880,6 +2880,7 @@
\gdef\flattenXMLcontent#1% we need taco's 'over one group'
{\begingroup
+ \keeputfcharacters
\def<##1>{}%
\def&##1;{##1}%
\edef\flattenedXMLcontent{#1}%
diff --git a/tex/context/base/xtag-mmp.tex b/tex/context/base/xtag-mmp.tex
index ebb136551..b733644e5 100644
--- a/tex/context/base/xtag-mmp.tex
+++ b/tex/context/base/xtag-mmp.tex
@@ -492,29 +492,16 @@
\def\pMULTISCRIPTmmlPRE#1#2#3#4%
{\ifdone
\ifodd\scratchcounter
- ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
- \else
_{\naturalxmlr{#1}{#2}{#3}{#4}}%
+ \else
+ ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
\fi
\else
\doif{mprescripts/}{#1}{\donetrue{}}% weak, the / here
\fi
- \ifdone \advance\scratchcounter 1 \fi}
-
-\def\pMULTISCRIPTmmlPOST#1#2#3#4%
- {\ifdone
- \ifnum\scratchcounter=0
- \naturalxmlr{#1}{#2}{#3}{#4}%
- \else\ifodd\scratchcounter
- _{\naturalxmlr{#1}{#2}{#3}{#4}}%
- \else
- ^{\naturalxmlr{#1}{#2}{#3}{#4}}{}%
- \fi\fi
- \fi
- \doif{mprescripts/}{#1}{\donefalse}% weak, the / here
- \ifdone \advance\scratchcounter 1 \fi}
+ \ifdone \advance\scratchcounter \plusone \fi}
-\let\pMULTISCRIPTmmlPRE\pMULTISCRIPTmmlPOST
+\let\pMULTISCRIPTmmlPOST\pMULTISCRIPTmmlPRE
\stopXMLmapping
diff --git a/tex/context/base/xtag-pml.tex b/tex/context/base/xtag-pml.tex
index 7371ec165..3300c97ac 100644
--- a/tex/context/base/xtag-pml.tex
+++ b/tex/context/base/xtag-pml.tex
@@ -13,70 +13,70 @@
\writestatus{loading}{Context XML Macros (phys ml)}
-%D This filter runs on top of the mathml and units modules.
+%D This filter runs on top of the mathml and units modules.
-\useXMLfilter[mml,mmp,mmc,unt]
+\useXMLfilter[mml,mmp,mmc]
\defineXMLargument [phys] \doXMLphys
\defineXMLargument [iphys] \doXMLiphys
\defineXMLargument [dphys] \doXMLdphys
-\unprotect
+\unprotect
\unexpanded\def\doXMLphys {\ifhmode\@EA\doXMLiphys\else\@EA\doXMLdphys\fi}
\unexpanded\def\doXMLiphys{\XMLremapdata[mml]{$\ignorespaces}{\unskip$}}
\unexpanded\def\doXMLdphys{\XMLremapdata[mml]{\dostartformula{}}{\dostopformula}}
-\protect
+\protect
\doifnotmode{demo}{\endinput}
\usemodule[units]
-\starttext
+\starttext
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci><unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <divide/>
+<phys>
+ <apply> <divide/>
<cn> 10 </cn>
<ci> <unit><Unit/><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci> <unit><Milli/><Sec/><Per/><Square/><Kilo/><Meter/></unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
\startXMLdata
-<phys>
- <apply> <times/>
+<phys>
+ <apply> <times/>
<cn> 10 </cn>
<ci> <unit> <Milli/> <Sec/> <Per/> <Square/> <Kilo/> <Meter/> </unit> </ci>
- </apply>
+ </apply>
</phys>
\stopXMLdata
diff --git a/tex/context/base/xtag-pmu.tex b/tex/context/base/xtag-pmu.tex
index 425257b49..0b9509f13 100644
--- a/tex/context/base/xtag-pmu.tex
+++ b/tex/context/base/xtag-pmu.tex
@@ -13,7 +13,7 @@
\writestatus{loading}{Context XML Macros (units)}
-%D Quick and dirty in||line units:
+%D Quick and dirty in||line units:
%D
%D \startbuffer
%D <phys>
@@ -21,72 +21,72 @@
%D <cu> <Newton/> <Square/> <Meter/> <Per/> <Sec/> </cu>
%D </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
-%D
-%D A more \MATHML||like unit application:
+%D
+%D A more \MATHML||like unit application:
%D
%D \startbuffer
-%D <phys> <apply> <unit/>
-%D <cn> 10 </cn>
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
%D <csymbol> <Square/> <Meter/> <Per/> <Sec/> </csymbol>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
-%D
-%D A bit more compact:
+%D
+%D A bit more compact:
%D
%D \startbuffer
-%D <phys> <apply> <unit/>
-%D <cn> 10 </cn>
+%D <phys> <apply> <unit/>
+%D <cn> 10 </cn>
%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
%D
-%D A bit more complicated:
-%D
+%D A bit more complicated:
+%D
%D \startbuffer
-%D <phys> <apply> <unit/>
-%D <apply> <divide/> <ci> a </ci> <cn> 10 </cn> </apply>
+%D <phys> <apply> <unit/>
+%D <apply> <divide/> <ci> a </ci> <cn> 10 </cn> </apply>
%D <cu> <Square/> <Meter/> <Per/> <Sec/> </cu>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
-%D
-%D An alternative (equivalent) for \type {</cu>}:
+%D
+%D An alternative (equivalent) for \type {</cu>}:
%D
%D \startbuffer
-%D <phys> <apply> <unit/>
+%D <phys> <apply> <unit/>
%D <cn> 10 </cn> <cunseq> <Square/> <Meter/> <Per/> <Sec/> </cunseq>
-%D </apply> </phys>
+%D </apply> </phys>
%D \stopbuffer
-%D
+%D
%D \typebuffer \processXMLbuffer
\defineXMLsingular [unitmeaning] [label=] \doPMLunitmeaning
-\def\doPMLunitmeaning%
+\def\doPMLunitmeaning
{\expanded{\unitmeaning{\XMLop{label}}}}
-
+
\startXMLmapping [mml]
-\remapXMLsequence [unit] [CPA] \doPMLuseq
-\remapXMLsingular [unit] [CPA] \doPMLunit % #2\empty
+\remapXMLsequence [unit] [CPA] \doPMLuseq
+\remapXMLsingular [unit] [CPA] \doPMLunit % #2\empty
\remapXMLsequence [cunseq] [CPA] \doPMLuseq % #2
-\remapXMLsequence [cu] [CPA] \doPMLuseq % #2
+\remapXMLsequence [cu] [CPA] \doPMLuseq % #2
\newif\ifPMLunit \PMLunittrue
\def\doPMLuseq#1#2{\PMLunittrue\ignorespaces#2\unskip\PMLunitfalse}
-\def\doPMLunit#1#2\empty{\ignorespaces#2\unskip}
+\def\doPMLunit#1#2\empty{\ignorespaces#2\unskip}
\def\handlePMLunit#1{\ifPMLunit\ignorespaces#1\fi\ignorespaces}
-%D All unit commands are remapped in a similar way.
+%D All unit commands are remapped in a similar way.
\remapXMLsingular [Atto] [C] {\handlePMLunit\Atto}
\remapXMLsingular [Femto] [C] {\handlePMLunit\Femto}
@@ -180,9 +180,9 @@
\remapXMLsingular [Promille] [C] {\handlePMLunit\Promille}
\remapXMLsingular [Permille] [C] {\handlePMLunit\Permille}
-\remapXMLsingular [Unit] [C] {\handlePMLunit\Unit}
+\remapXMLsingular [Unit] [C] {\handlePMLunit\Unit}
\remapXMLsingular [NoUnit] [C] {\handlePMLunit\NoUnit}
\stopXMLmapping
-\endinput
+\endinput
diff --git a/tex/context/base/xtag-stk.tex b/tex/context/base/xtag-stk.tex
index a514874cb..1d596766b 100644
--- a/tex/context/base/xtag-stk.tex
+++ b/tex/context/base/xtag-stk.tex
@@ -100,7 +100,7 @@
{\defXMLstackiddata#1\XMLstackid}
\def\showXMLstacknames
- {[\space\dorecurse\XMLstacklevel{\getXMLstackname\recurselevel\space}]}
+ {\hbox{[\space\dorecurse\XMLstacklevel{\getXMLstackname\recurselevel\space}]}}
\def\flushXMLstackfrom#1%
{\dostepwiserecurse{#1}\XMLstacklevel\plusone
@@ -163,4 +163,20 @@
\!!doneatrue
\fi}}}
+\def\XMLcopydata#1#2% to from
+ {\@EA\let\csname\@@XMLdata:#1\@EA\endcsname\csname\@@XMLdata:#2\endcsname}
+\def\XMLcopysave#1#2% to from
+ {\@EA\let\csname\@@XMLsave:#1\@EA\endcsname\csname\@@XMLsave:#2\endcsname}
+
+\def\removeXMLdatafromstack#1%
+ {\dorecurse\XMLstacklevel
+ {\doif{\getXMLstackname\recurselevel}{#1}
+ {\dostepwiserecurse\recurselevel{\numexpr\XMLstacklevel+\minusone}\plusone
+ {\scratchcounter\numexpr\recurselevel+\plusone\relax
+ \@EA\let\csname\@@xmlstack:n:\XMLstackid:\recurselevel\@EA\endcsname\csname\@@xmlstack:n:\XMLstackid:\number\scratchcounter\endcsname
+ \XMLcopysave{\@@xmlstack:t:\XMLstackid:\recurselevel}{\@@xmlstack:t:\XMLstackid:\number\scratchcounter}%
+ \XMLcopysave{\@@xmlstack:d:\XMLstackid:\recurselevel}{\@@xmlstack:d:\XMLstackid:\number\scratchcounter}}%
+ \advance\XMLstacklevel\minusone
+ \exitloop}}}
+
\protect \endinput
diff --git a/tex/context/bib/bibl-ams.tex b/tex/context/bib/bibl-ams.tex
new file mode 100644
index 000000000..1c5a9fd1c
--- /dev/null
+++ b/tex/context/bib/bibl-ams.tex
@@ -0,0 +1,438 @@
+%D \module
+%D [ file=bibl-ams,
+%D version=2005.11.18
+%D title=AMS bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater, Giuseppe Bilotta},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\gdef\bibalignednumber#1{\hfill[#1]~~}
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=num,
+ \c!numbercommand=\bibalignednumber,
+ \c!numbering=\v!yes,
+ \c!autohang=\v!yes]
+
+\setuppublicationlist
+ [\c!width=30pt,
+ \c!artauthor=\normalshortauthor,
+ \c!editor=\normalshortauthor,
+ \c!author=\normalshortauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ and },
+ \c!finalnamesep={, and },
+ \c!firstnamesep={ },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={},
+ \c!authoretallimit=4,
+ \c!editoretallimit=4,
+ \c!artauthoretallimit=4,
+ \c!authoretaldisplay=1,
+ \c!editoretaldisplay=1,
+ \c!artauthoretaldisplay=1,
+ \c!authoretaltext={ {\it et al.\/}},
+ \c!editoretaltext={ {\it et al.\/}},
+ \c!artauthoretaltext={ {\it et al.\/}}]
+
+\def\maybeyear#1{}
+
+\def\etalchar#1{#1}
+
+\def\insertNote#1#2#3{%
+ \begingroup
+ \sfcode`\.=1020
+ \insertnote{#1}{\ifnum\spacefactor=1020 \else .\fi}{#3}%
+ \endgroup
+}
+
+\def\insertEdition#1#2#3{%
+ \begingroup
+ \insertedition{#1}{\doifnumberelse{\csname @@pb@edition\endcsname}{%
+ \ifcase \csname @@pb@edition\endcsname \or st\or nd\or rd\else th\fi
+ }{}#2}{#3}%
+ \endgroup
+}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+% some tricks with page ranges:
+
+\def\insertfirstpage#1#2#3{%
+ \@EA\bibdoifelse
+ \@EA{\csname @@pb@pages\endcsname}%
+ {#1\fixedfirstpage #2}%
+ {#3}%
+}
+
+\def\fixedfirstpage{\expanded{\doifinstringelse{-}{\csname @@pb@pages\endcsname}%
+ {\gobblelastdash\csname @@pb@pages\endcsname-\relax}{\csname @@pb@pages\endcsname}}}
+
+\protected\def\gobblelastdash#1-#2\relax{#1}
+
+\def\fixpp.{\expanded{\doifinstringelse{-}{\csname @@pb@pages\endcsname}{pp.}{p.}}}
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertarttitle{\unskip, \bgroup\it }{\/\egroup}{}%
+ \insertjournal{\unskip, \bgroup }{\egroup}{}%
+ \insertvolume{ \bgroup\bf }{\egroup}{}%
+ \insertpubyear{ (}{)}{\unskip}%
+ \insertissue{\unskip, no.~}{}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{ }{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \inserttitle
+ {\unskip, \bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, \fixpp. }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, p. }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpubyear{(%
+ \insertpublisher
+ {}%
+ {, }%
+ {}%
+ }{)\insertEdition{, }{ ed. }{. }}{\unskip.}%
+% \insertpages{}{p. }{}%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{}{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \inserttitle
+ {, \bgroup\it }%
+ {\/\egroup
+ \insertpubyear
+ { (%
+ \insertpubname{}{\insertcity{, }{, }{}}{}%
+ }
+ {)\insertEdition{, }{ ed.}{}}{}%
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { vol.~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, p. }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, vol.~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, \fixpp. }{. }{. }%
+ }%
+ \fi }%
+ { }%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpubyear{(%
+ \insertpublisher{}{, }{}%
+ }{)\insertEdition{, }{ ed. }{. }}{}%
+ \insertpages{}{p. }{}%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpubyear{(%
+ \insertorganization
+ {}%
+ {\insertcity{, }{, }{}}%
+ {\insertcity{}{, }{}}%
+ }{)\insertEdition{, }{ ed. }{. }}{}%
+ \insertpages{}{p. }{}%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{}{\insertthekey{}{, }{}}%
+% \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {, in %
+ \bgroup\it}%
+ {\egroup
+ \inserteditors{, edited by }%
+ {}%
+ {}
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear{(%
+ \insertpublisher{}%{, }%{}%
+ }{)\insertEdition{, }{ ed. }{}}{}%
+ \insertpages{\unskip, p.~}{. }{\unskip. }%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, p.~}{. }{\unskip. }%
+ }%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{ }{}%
+ \insertarttitle{\bgroup\it }{\/\egroup }{}%%
+ \inserttitle
+ {\unskip, in \bgroup\it}%
+ {\egroup
+ \inserteditors{, edited by }%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear
+ { (%
+ \insertorganization
+ {}%
+ {\insertpubname{, }
+ {\insertcity{, }{}{}, }
+ {\insertcity{, }{}{}, }}%
+ {\insertpubname{}
+ {\insertcity{, }{}{}, }
+ {\insertcity{}{, }{}}}%
+ }
+ {)}{}%
+ \insertseries
+ {, \insertvolume{vol. }{~of }{}\bgroup\it}%
+ {\egroup}%
+ {}%
+ \insertpages
+ {\unskip, \fixpp.~}
+ {\unskip.}
+ {\unskip.}%
+ }%
+ { In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, \fixpp.~}{. }{\unskip. }%
+ }%
+ \insertNote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{, ed%
+ \ifnum\getvalue{editor@num}> 1 s\fi.,
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpubyear{(%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{, }{}}%
+ {\insertpubname{}{, }{}}%
+ }
+ {)}
+ {}%
+ \insertpages
+ {\unskip, p.~}
+ {\insertcity{, }{}{}}
+ {\unskip\insertcity{, }{}{}}%
+ }%
+ {}%
+ \insertNote{\unskip. }{.}{.}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{, }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher{}{, }{}%
+ \insertpubyear{(}{)}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{, }{}%
+ \insertbibtype{}{, }{Ph.D. thesis, }%
+ \insertpublisher{}{, }{}%
+ \insertpubyear{(}{)}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{%
+ \inserttitle{, \bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ }{%
+ \insertthekey{}{%
+ \inserttitle{, \bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ }{%
+ \inserttitle{, \bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ }}%
+ \insertpubyear{(%
+ \insertpublisher{}{, }{}%
+ }%
+ {)}%
+ {%
+ \inserthowpublished{\unskip, }{}{}%
+ }%
+ \insertpages{\unskip, }{}{}%
+ \inserteprint{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{, }{}%
+ \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
+ \insertbibtype{}{}{Tech. Rep.}%
+ \insertvolume{ }{, }{, }%
+ \insertpublisher{}{ }{}%
+ \insertpubyear{(}{)}{}%
+ \insertpages{\unskip, }{}{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{}{}%
+ \inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
+ \insertbibtype{ (}{)}{}%
+ \insertpubyear{ (unpublished,}{)}{ (unpublished)}%
+ \insertpages{\unskip, }{ }{}%
+ \insertNote{\unskip. }{.}{\unskip.}%
+}
+
+\protect
diff --git a/tex/context/bib/bibl-apa-de.tex b/tex/context/bib/bibl-apa-de.tex
new file mode 100644
index 000000000..71996926d
--- /dev/null
+++ b/tex/context/bib/bibl-apa-de.tex
@@ -0,0 +1,388 @@
+% Test! Noch nicht übersetzt:
+% masters thesis
+%D \module
+%D [ file=bibl-apa,
+%D version=2004.7.16,
+%D title=APA bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ und },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ und },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=authoryears,
+ \c!numbering=\v!no,
+ \c!autohang=\v!no]
+
+\setuppublicationlist
+ [\c!width=24pt,
+ \c!artauthor=\invertedshortauthor,
+ \c!editor=\invertedshortauthor,
+ \c!author=\invertedshortauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ und },
+ \c!finalnamesep={ und },
+ \c!firstnamesep={, },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={, },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{#1}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{In }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, Seiten }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{ }{\inserteditors{}{, Herausgeber%
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Nummer~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, Seiten }{. }{. }%
+ \insertvolume{Band~}{ von~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, Band~}%
+ {\insertseries
+ { von~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, Seiten }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ Auflage.}{.}}%
+ {\insertedition{, }{ Auflage.}{}}%
+ \insertpages{ }{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{ }{\inserteditors{}{, Herausgeber%
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Nummer~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, Seiten }{. }{. }%
+ \insertvolume{Band~}{ Von~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, Band~}%
+ {\insertseries
+ { von~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, Seiten }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{}}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertorganization
+ {}%
+ {\insertcity{, }%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{. }}}%
+ {\insertedition{, }{ Auflage. }{}}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {In \inserteditors{}%
+ {, Herausgeber, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, Nummer }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ Auflage. }{. }}%
+ {\insertedition{, }{ Auflage. }{}}%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {In \inserteditors{}%
+ {, Herausgeber, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, Nummer }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, Seiten~}
+ {\insertcity{, }{. }{. }}
+ {\unskip. }%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{, Herausgeber%
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, Nummer }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, Seiten~}{\insertcity{, }{. }{. }}
+ {\unskip\insertcity{, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Dissertation, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technischer Bericht, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{S. }{}%
+ \insertbibtype{(}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect \ No newline at end of file
diff --git a/tex/context/bib/bibl-apa-fr.tex b/tex/context/bib/bibl-apa-fr.tex
new file mode 100644
index 000000000..68eac13c2
--- /dev/null
+++ b/tex/context/bib/bibl-apa-fr.tex
@@ -0,0 +1,389 @@
+%D \module
+%D [ file=bibl-apa-fr,
+%D version=2005.12.15,
+%D title=APA fr bibliography style,
+%D subtitle=Publications,
+%D author={Renaud Aubin},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=authoryears,
+ \c!numbering=\v!no,
+ \c!autohang=\v!no]
+
+\setuppublicationlist
+ [\c!width=24pt,
+ \c!artauthor=\invertedshortauthor,
+ \c!editor=\invertedshortauthor,
+ \c!author=\invertedshortauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ et },
+ \c!finalnamesep={ et },
+ \c!firstnamesep={, },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={, },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{#1}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{Dans }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, pages }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{ }{\inserteditors{}{, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Num\'ero~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { de~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ \'edition.}{.}}%
+ {\insertedition{, }{ \'edition.}{}}%
+ \insertpages{ }{p. }{}%
+ \insertnote{}{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{ }{\inserteditors{}{, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}%
+ \insertpubyear{(}{). }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { number~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertorganization
+ {}%
+ {\insertcity{, }%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{. }}}%
+ {\insertedition{, }{ \'edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {, \'editeur\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition. }{. }}%
+ {\insertedition{, }{ \'edition. }{}}%
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {, \'editeur\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{. }{. }}
+ {\unskip. }%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{\insertcity{, }{. }{. }}
+ {\unskip\insertcity{, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Th\`ese de master (DEA, DESS, master), }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Th\`ese de doctorat, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Rapport technique, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \insertpubyear{(}{). }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertbibtype{(}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect
diff --git a/tex/context/bib/bibl-apa.tex b/tex/context/bib/bibl-apa.tex
index b1ecf373f..c3d11911a 100644
--- a/tex/context/bib/bibl-apa.tex
+++ b/tex/context/bib/bibl-apa.tex
@@ -13,7 +13,9 @@
\setupcite
[author,year]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -22,7 +24,9 @@
\setupcite
[authoryear]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={ },
@@ -31,7 +35,9 @@
\setupcite
[authoryears]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={, },
@@ -39,8 +45,10 @@
\c!right={)}]
\setupcite
- [key,number,page,short,type,doi]
- [\c!pubsep={, },
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -49,7 +57,9 @@
\setupcite
[num]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={--},
@@ -98,7 +108,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\inserttype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
@@ -137,10 +147,10 @@
\inserttitle
{\bgroup\it }%
{\/\egroup
- \ifeditedbook
+ \ifeditedbook
\global\editedbookfalse
- \insertvolume
- { Number~}%
+ \insertvolume
+ { Number~}%
{\insertseries
{ in~\bgroup}%
{\egroup. }%
@@ -161,16 +171,16 @@
{}}
{}%
\insertchap{, }{}{}%
- \insertpages{, pages }{. }{. }%
+ \insertpages{, pages }{.}{.}%
}%
\fi}%
- { }%
+ {}%
\insertpublisher
- {}%
- {\insertedition{, }{ edition. }{. }}%
- {\insertedition{, }{ edition. }{}}%
- \insertpages{}{p. }{}%
- \insertnote{ }{.}{}%
+ { }%
+ {\insertedition{, }{ edition.}{.}}%
+ {\insertedition{, }{ edition.}{}}%
+ \insertpages{ }{p. }{}%
+ \insertnote{}{.}{}%
}
\setuppublicationlayout[inbook]{%
@@ -331,7 +341,7 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \inserttype{}{, }{Master's thesis, }%
+ \insertbibtype{}{, }{Master's thesis, }%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
@@ -341,7 +351,7 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
- \inserttype{}{, }{PhD thesis, }%
+ \insertbibtype{}{, }{PhD thesis, }%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
@@ -360,7 +370,7 @@
\insertauthors{}{ }{}%
\insertpubyear{(}{). }{}%
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
- \inserttype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
\insertnote{ }{.}{}%
@@ -372,7 +382,7 @@
\inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
\insertpublisher{}{. }{}%
\insertpages{}{p. }{}%
- \inserttype{(}{)}{}%
+ \insertbibtype{(}{)}{}%
\insertnote{ }{.}{}%
}
diff --git a/tex/context/bib/bibl-aps.tex b/tex/context/bib/bibl-aps.tex
index c3a2c4a56..6d9e8db12 100644
--- a/tex/context/bib/bibl-aps.tex
+++ b/tex/context/bib/bibl-aps.tex
@@ -13,7 +13,9 @@
\setupcite
[author,year]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -22,7 +24,9 @@
\setupcite
[authoryear]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={ },
@@ -31,7 +35,9 @@
\setupcite
[authoryears]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={, },
@@ -39,8 +45,10 @@
\c!right={)}]
\setupcite
- [key,number,page,short,type,doi]
- [\c!pubsep={, },
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!no,
\c!inbetween={ },
@@ -49,7 +57,9 @@
\setupcite
[num]
- [\c!pubsep={, },
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
\c!lastpubsep={ and },
\c!compress=\v!yes,
\c!inbetween={--},
@@ -60,11 +70,11 @@
\c!sorttype=,
\c!criterium=,
\c!refcommand=num,
- \c!numbercommand=\tester,
+ \c!numbercommand=\bibalignednumber,
\c!numbering=\v!yes,
\c!autohang=\v!yes]
-\def\tester#1{\hfill[#1]~~}
+\def\bibalignednumber#1{\hfill[#1]~~}
\setuppublicationlist
[\c!width=24pt,
@@ -115,7 +125,7 @@
\def\insertchap#1#2#3%
{\insertchapter
- {#1\inserttype{}{\ }{chapter\ }}{#2}%
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
{#3}}
\def\insertpublisher#1#2#3%
@@ -371,7 +381,7 @@
\setuppublicationlayout[mastersthesis]{%
\insertauthors{}{, }{}%
- \inserttype{}{, }{Master's thesis, }%
+ \insertbibtype{}{, }{Master's thesis, }%
\insertpublisher{}{, }{}%
\insertpubyear{(}{)}{}%
\insertpages{\unskip, }{}{}%
@@ -380,7 +390,7 @@
\setuppublicationlayout[phdthesis]{%
\insertauthors{}{, }{}%
- \inserttype{}{, }{Ph.D. thesis, }%
+ \insertbibtype{}{, }{Ph.D. thesis, }%
\insertpublisher{}{, }{}%
\insertpubyear{(}{)}{}%
\insertpages{\unskip, }{}{}%
@@ -411,7 +421,7 @@
\setuppublicationlayout[techreport]{%
\insertauthors{}{, }{}%
\inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{} }{}%
- \inserttype{}{}{Tech. Rep.}%
+ \insertbibtype{}{}{Tech. Rep.}%
\insertvolume{ }{, }{, }%
\insertpublisher{}{ }{}%
\insertpubyear{(}{)}{}%
@@ -422,7 +432,7 @@
\setuppublicationlayout[unpublished]{%
\insertauthors{}{}{}%
\inserttitle{\bgroup \it }{\egroup \insertseries{ (}{)}{}}{}%
- \inserttype{ (}{)}{}%
+ \insertbibtype{ (}{)}{}%
\insertpubyear{ (unpublished,}{)}{ (unpublished)}%
\insertpages{\unskip, }{ }{}%
\insertNote{\unskip. }{.}{\unskip.}%
diff --git a/tex/context/bib/bibl-num-fr.tex b/tex/context/bib/bibl-num-fr.tex
new file mode 100644
index 000000000..ca634a3da
--- /dev/null
+++ b/tex/context/bib/bibl-num-fr.tex
@@ -0,0 +1,427 @@
+%D \module
+%D [ file=bibl-num-fr,
+%D version=2005.12.16,
+%D title=NUM-FR bibliography style,
+%D subtitle=Publications,
+%D author={Renaud Aubin},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\def\setuppublicationlayout[#1]#2%
+ {\setvalue{@@pvdata#1}{#2\unskip\vadjust{\kern 6pt}}}
+
+
+\setupcite
+ [author,year]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ et },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ et },
+ \c!compress=\v!no,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\def\withbrackets#1{[#1]~~}
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=num,
+ \c!numbering=\v!yes,
+ \c!numbercommand=\withbrackets,
+ \c!autohang=\v!yes]
+
+\setuppublicationlist
+ [\c!artauthor=\normalauthor,
+ \c!editor=\normalauthor,
+ \c!author=\normalauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ et },
+ \c!finalnamesep={ et },
+ \c!firstnamesep={ },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={ },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapitre\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{Dans }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}%
+ \insertpages{:}{}{}%
+ \insertpubyear{, }{}{}.}
+ {\insertpages{, pages }{}{}%
+ \insertpubyear{, }{}{}.}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\unskip. }{}}}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Num\'ero~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { de~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ \'edition}{}
+ \insertpubyear{, }{.}{.}}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{.}{.}}%
+ \insertpages{ }{p.}{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\unskip. }{}}}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { num\'ero~}%
+ {\insertseries
+ { dans~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ dans~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ de~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { de~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{\unskip. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{}}%
+ {\insertedition{, }{ \'edition. }{}%
+ \insertpubyear{, }{. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle
+ {\bgroup \it }
+ {\/\egroup \insertseries{ (}{)}{}. }
+ {}%
+ \insertorganization
+ {}%
+ {\insertcity
+ {, }%
+ {\insertedition
+ {, }
+ { \'edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ {\insertedition
+ {, }
+ { \'edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}}%
+ {\insertedition{, }{ \'edition\insertpubyear{, }{. }{. }}{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{\unskip. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {\unskip, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{. }}%
+ {\insertedition{, }{ \'edition}{}%
+ \insertpubyear{, }{. }{}}%
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{\unskip. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {Dans \inserteditors{}%
+ {\unskip, \'editeur\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{}{}
+ \insertpubyear{\unskip, }{. }{. }}%
+ {\unskip
+ \insertpubyear{\unskip, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {Dans \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{\unskip, \'editeur%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, num\'ero }{~dans }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}
+ {\unskip
+ \insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{M\'emoire de master (DEA, DESS), }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Th\`ese de doctorat, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Rapport technique, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{.}{}}
+ {\insertpubyear{}{.}{}}%
+ \insertbibtype{ (}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect
diff --git a/tex/context/bib/bibl-num.tex b/tex/context/bib/bibl-num.tex
new file mode 100644
index 000000000..ff7cfe7a5
--- /dev/null
+++ b/tex/context/bib/bibl-num.tex
@@ -0,0 +1,427 @@
+%D \module
+%D [ file=bibl-num,
+%D version=2005.12.31,
+%D title=Numeric bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\def\setuppublicationlayout[#1]#2%
+ {\setvalue{@@pvdata#1}{#2\unskip\vadjust{\kern 6pt}}}
+
+
+\setupcite
+ [author,year]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\def\withbrackets#1{[#1]~~}
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=num,
+ \c!numbering=\v!yes,
+ \c!numbercommand=\withbrackets,
+ \c!autohang=\v!yes]
+
+\setuppublicationlist
+ [\c!artauthor=\normalauthor,
+ \c!editor=\normalauthor,
+ \c!author=\normalauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ and },
+ \c!finalnamesep={ and },
+ \c!firstnamesep={ },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={ },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{}
+
+\def\etalchar#1{#1}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+
+\setuppublicationlayout[article]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \insertjournal{\bgroup \it}{\egroup}
+ {\insertcrossref{In }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}%
+ \insertpages{:}{}{}%
+ \insertpubyear{, }{}{}.}
+ {\insertpages{, pages }{}{}%
+ \insertpubyear{, }{}{}.}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\unskip. }{}}}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{.}{.}%
+ }%
+ \fi}%
+ {}%
+ \insertpublisher
+ { }%
+ {\insertedition{, }{ edition}{}
+ \insertpubyear{, }{.}{.}}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{.}{.}}%
+ \insertpages{ }{p.}{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \insertauthors{}{\unskip. }{\inserteditors{}{\unskip, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{\unskip. }{}}}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{\unskip.}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \insertauthors{}{\unskip. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{}}%
+ {\insertedition{, }{ edition. }{}%
+ \insertpubyear{, }{. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle
+ {\bgroup \it }
+ {\/\egroup \insertseries{ (}{)}{}. }
+ {}%
+ \insertorganization
+ {}%
+ {\insertcity
+ {, }%
+ {\insertedition
+ {, }
+ { edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ {\insertedition
+ {, }
+ { edition\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}}%
+ {\insertedition{, }{ edition\insertpubyear{, }{. }{. }}{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \insertartauthors{}{\unskip. }{\insertthekey{}{\unskip. }{}}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {In \inserteditors{}%
+ {\unskip, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{. }}%
+ {\insertedition{, }{ edition}{}%
+ \insertpubyear{, }{. }{}}%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \insertauthors{}{\unskip. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {In \inserteditors{}%
+ {\unskip, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{}{}
+ \insertpubyear{\unskip, }{. }{. }}%
+ {\unskip
+ \insertpubyear{\unskip, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \inserteditors{}{\unskip, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}
+ {\unskip
+ \insertcity
+ {, }
+ {\insertpubyear{, }{. }{. }}
+ {\insertpubyear{, }{. }{. }}}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{PhD thesis, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \insertauthors{}{ }{\insertthekey{}{. }{}}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{}{}}
+ {\insertpubyear{}{}{}}%
+ \insertpages{, }{p.}{.}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \insertauthors{}{ }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}
+ {, \insertpubyear{}{.}{}}
+ {\insertpubyear{}{.}{}}%
+ \insertbibtype{ (}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect \ No newline at end of file
diff --git a/tex/context/bib/bibl-ssa.tex b/tex/context/bib/bibl-ssa.tex
new file mode 100644
index 000000000..2e3341328
--- /dev/null
+++ b/tex/context/bib/bibl-ssa.tex
@@ -0,0 +1,486 @@
+%D \module
+%D [ file=bibl-apa,
+%D version=2004.7.16,
+%D title=APA bibliography style,
+%D subtitle=Publications,
+%D author={Taco Hoekwater},
+%D date=\currentdate,
+%D copyright={Public Domain}]
+%C
+%C (Slightly modified to SSA-like 2005.3.24, David Wooten)
+%C Donated to the public domain. Use at your own risk
+
+\unprotect
+
+\setupcite
+ [author,year]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryear]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={ },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [authoryears]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={, },
+ \c!left={(},
+ \c!right={)}]
+
+\setupcite
+ [key,serial,page,short,type,doi,url]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!no,
+ \c!inbetween={ },
+ \c!left={[},
+ \c!right={]}]
+
+\setupcite
+ [num]
+ [\c!andtext={ and },
+ \c!otherstext={ et al.},
+ \c!pubsep={, },
+ \c!lastpubsep={ and },
+ \c!compress=\v!yes,
+ \c!inbetween={--},
+ \c!left={[},
+ \c!right={]}]
+
+\setuppublications[%
+ \c!sorttype=,
+ \c!criterium=,
+ \c!refcommand=authoryears,
+ \c!numbering=\v!no,
+ \c!autohang=\v!no]
+
+\setuppublicationlist
+ [\c!width=24pt,
+ \c!artauthor=\toggledauthor, %TH
+ \c!editor=\toggledauthor,
+ \c!author=\toggledauthor,
+ \c!namesep={, },
+ \c!lastnamesep={ and },
+ \c!finalnamesep={ and },
+ \c!firstnamesep={, },
+ \c!juniorsep={ },
+ \c!vonsep={ },
+ \c!surnamesep={, },
+ \c!authoretallimit=5,
+ \c!editoretallimit=5,
+ \c!artauthoretallimit=5,
+ \c!authoretaldisplay=5,
+ \c!editoretaldisplay=5,
+ \c!artauthoretaldisplay=5,
+ \c!authoretaltext={ et al.},
+ \c!editoretaltext={ et al.},
+ \c!artauthoretaltext={ et al.},
+]
+
+\def\maybeyear#1{#1}
+
+\def\etalchar#1{#1}
+
+%D \macros {invertedauthor,normalauthor,toggledauthor}
+%D
+%D These are redefinitions of the core versions.
+
+\def\invertedauthor#1#2#3#4#5%
+ {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
+ \uppercased{#3}\bibalternative\c!surnamesep
+ \bibdoif{#5}{#5\bibalternative\c!juniorsep}%
+ \bibdoif{#1}{#1\unskip}}
+
+\def\normalauthor#1#2#3#4#5%
+ {\bibdoif{#1}{#1}\bibdoif{#2}{#2 } \uppercased{#3}%
+ \bibdoif{#5}{#5\unskip}}
+
+%TH
+%D The \type{\scratchcounter} is incremented by \specialbibinsert
+%D before each author/editor is typeset, so the only thing that needs
+%D doing is testing its value to decide which of the two `standard'
+%D author formatting macros to call.
+%D
+%D The \type{\normalauthor} definition above is a bit altered/stripped
+%D down, because the 'glue items' like \type{firstnamesep} got in the
+%D way.
+
+\def\toggledauthor#1#2#3#4#5%
+ {\relax
+ \ifnum \scratchcounter > 1
+ \normalauthor{#1}{#2}{#3}{#4}{#5}%
+ \else
+ \invertedauthor{#1}{#2}{#3}{#4}{#5}%
+ \fi }
+
+%TH
+%D Below, each \type{\setuppublicationlayout} macro's body will
+%D start by setting a global toggle to true, that controls whether
+%D or not the next \type{\insertartauthors},\type{\insertauthors}
+%D or \type{\inserteditors} has to store it's contents for comparison.
+%D All three are instances of the generic macro \type{\specialbibinsert}.
+%D The net result of this trick is that the first typeset block of
+%D names will be saved, regardless of whether they are book authors,
+%D article authors, or editors.
+
+\newif\ifsetstoredauthor
+
+%D save the normal meaning, because it will be redefined
+\let\normalspecialbibinsert\specialbibinsert
+
+%D This is a typical call (use) of \type{\specialbibinsert}, for
+%D reference:
+%D \starttyping
+%D \specialbibinsert{author}{\author@num}{<before>}{<after>}{<not>}
+%D \stoptyping
+
+\def\specialbibinsert#1#2#3#4#5%
+ {\relax
+ \ifsetstoredauthor
+ \global\setstoredauthorfalse % RESET
+ \putcurrentinallstuff{#1}{#2}%
+ \ifx\allstuff\oldstuff
+ % do nothing
+ \else
+ \normalspecialbibinsert{#1}{#2}{#3}{#4}{#5}%
+ \fi
+ \global\let\oldstuff\allstuff
+ \else
+ \normalspecialbibinsert{#1}{#2}{#3}{#4}{#5}%
+ \fi}
+
+%D initialize \type{\oldstuff}
+
+\def\oldstuff{}
+
+%D \#1 = authors
+%D \#2 = \type{\author@num}
+\def\putcurrentinallstuff#1#2%
+ {{\gdef\allstuff{}%
+ \def\tempx##1##2##3##4##5%
+ {\xdef\allstuff{\allstuff !!##1!##2!##3!##4!##5}}%
+ \@EA\dorecurse\@EA{#2}%
+ {\@EA\@EA\@EA\tempx \csname @@pb@#1\recurselevel\endcsname}%
+ }}
+
+%D \macros{insertchapter,insertpublisher}
+
+%D Some shortcuts.
+
+% ((#1(type\ |)chapter#2)|#3)
+
+
+\def\insertchap#1#2#3%
+ {\insertchapter
+ {#1\insertbibtype{}{\ }{chapter\ }}{#2}%
+ {#3}}
+
+\def\insertpublisher#1#2#3%
+ {\insertpubname
+ {#1}{\insertcity
+ {, }
+ {\insertcountry{, }{}{#2}}%
+ {\insertcountry{, }{}{#2}}}%
+ {\insertcity
+ {}{\insertcountry{, }{}{#2}}%
+ {\insertcountry{#1}{#2}{#3}}}%
+ }
+
+\setuppublicationlayout[article]{%
+ %TH all items below do this as well ...
+ \global\setstoredauthortrue
+ \insertartauthors{}{.}{\insertthekey{}{ }{}}\hfill\break%
+ \insertpubyear{}{. }{\unskip.}%
+ \insertarttitle{\bgroup ``}{\egroup'', }{ }%
+ \insertjournal{\bgroup in \it}{\egroup}
+ {\insertcrossref{in }{}{}}%
+ \insertvolume
+ {, }
+ {\insertissue{(}{)}{}\insertpages{:}{.}{.}}
+ {\insertpages{, pages }{.}{.}}%
+ \insertnote{ }{.}{}%
+ \insertcomment{}{.}{}%
+}
+
+\newif\ifeditedbook
+\setuppublicationlayout[book]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{.}{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}\hfill\break%
+ \insertpubyear{}{. }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { Number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{}}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inbook]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{. }{}}}\hfill\break%
+ \insertpubyear{}{. }{\unskip.}%
+ \inserttitle
+ {\bgroup\it }%
+ {\/\egroup
+ \ifeditedbook
+ \global\editedbookfalse
+ \insertvolume
+ { number~}%
+ {\insertseries
+ { in~\bgroup}%
+ {\egroup. }%
+ {\insertcrossref{ in~}{}{. }}}%
+ {\insertseries{ }{.}{} }%
+ \else
+ \insertcrossref
+ {\insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ \insertvolume{Volume~}{ of~}{}%
+ }%
+ {}%
+ {\insertvolume
+ {, volume~}%
+ {\insertseries
+ { of~\bgroup\it}%
+ {\egroup}
+ {}}
+ {}%
+ \insertchap{, }{}{}%
+ \insertpages{, pages }{. }{. }%
+ }%
+ \fi}%
+ { }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[booklet]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[manual]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup \it }{\/\egroup \insertseries{ (}{)}{}. }{}%
+ \insertorganization
+ {}%
+ {\insertcity{, }%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{. }}}%
+ {\insertedition{, }{ edition. }{}}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[incollection]{%
+ \global\setstoredauthortrue
+ \insertartauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%
+ \inserttitle
+ {In \inserteditors{}%
+ {, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ \insertpublisher
+ {}%
+ {\insertedition{, }{ edition. }{. }}%
+ {\insertedition{, }{ edition. }{}}%
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[inproceedings]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \insertarttitle{\bgroup }{\egroup. }{}%%
+ \inserttitle
+ {In \inserteditors{}%
+ {, editor\ifnum\getvalue{editor@num}> 1 s\fi, }%
+ {}%
+ \bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages
+ {\unskip, pages~}
+ {\insertcity{, }{. }{. }}
+ {\unskip. }%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{}{. }{}}% was {, }{. }{}
+ }%
+ {In \insertcrossref{}{}{}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{. }{\unskip. }%
+ }%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[proceedings]{%
+ \global\setstoredauthortrue
+ \inserteditors{}{, editor%
+ \ifnum\getvalue{editor@num}> 1 s\fi
+ \ \global\editedbooktrue
+ }{\insertthekey{}{ }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle
+ {\bgroup\it}%
+ {\egroup
+ \insertseries
+ {\insertvolume{, number }{~in }{ }}%
+ {}%
+ {}%
+ \insertchap{\unskip, }{ }{ }%
+ \insertpages{\unskip, pages~}{\insertcity{, }{. }{. }}
+ {\unskip\insertcity{, }{. }{. }}%
+ \insertorganization
+ {}%
+ {\insertpubname{, }{. }{. }}%
+ {\insertpubname{, }{. }{}}%
+ }%
+ {}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[mastersthesis]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{Master's thesis, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[phdthesis]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup\it }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{, }{PhD thesis, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[misc]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{\insertthekey{}{. }{}}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[techreport]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertbibtype{}{\insertvolume{ }{, }{, }}{Technical Report, }%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertnote{ }{.}{}%
+}
+
+\setuppublicationlayout[unpublished]{%
+ \global\setstoredauthortrue
+ \insertauthors{}{ }{}\hfill\break%
+ \insertpubyear{}{. }{}%
+ \inserttitle{\bgroup }{\egroup \insertseries{ (}{)}{}. }{}%
+ \insertpublisher{}{. }{}%
+ \insertpages{}{p. }{}%
+ \insertbibtype{(}{)}{}%
+ \insertnote{ }{.}{}%
+}
+
+\protect \ No newline at end of file
diff --git a/tex/context/bib/t-bib.tex b/tex/context/bib/t-bib.tex
index 82cdba993..5421ff6a2 100644
--- a/tex/context/bib/t-bib.tex
+++ b/tex/context/bib/t-bib.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=t-bib,
-%D version=2005.01.04,
+%D version=2006.02.08,
%D title=\CONTEXT\ Publication Module,
%D subtitle=Publications,
%D author=Taco Hoekwater,
@@ -9,35 +9,52 @@
%C
%C Donated to the public domain.
-\usemodule[bibltx] % bibtex files can contain latex left-overs
-%D Slightly adapted by HH (2005/01). For \BIBTEX\ relate questions,
-%D contact Taco, if you expect interference with core macros, bother
-%D Hans. This file will be cleaned up in due time.
+%D The original was developed independantly by Taco Hoekwater while still working for Kluwer
+%D Academic publishers (it still used the dutch interface then). Development continued after
+%D he left Kluwer, and in Januari 2005, the then already internationalized file was merged
+%D with the core distribution by Hans Hagen. The current version is once again by Taco.
%D
-%D Documentation and additional resources can be found at
-%D Taco's website: \url{tex.aanhet.net}.
+%D More documentation and additional resources can be found on the contextgarden:
+%D \hyphenatedurl{http://wiki.contextgarden.net//Bibliography}.
-%D \subject{DONE}
+%D \subject{DONE (dd/mm/yyyy)}
%D
%D \startitemize
-%D \item minor bugfixes today (25/6)
-%D \item add finalnamesep support for Oxford comma (17/9)
-%D \item add \insert... for: doi, eprint, howpublished (17-19/9)
-%D \item minor fix (26/5/2004):
-%D \item add author definition (and associated system variable)
+%D \item add author definition (and associated system variable) (26/05/2005)
+%D \item add finalnamesep support for Oxford comma (17/09/2005)
+%D \item add \type{\insert...} for: doi, eprint, howpublished (19/09/2005)
+%D \item allow a defaulted \type{\setupcite} (19/11/2005)
+%D \item renamed citation type 'number' to 'serial' (19/11/2005)
+%D \item better definition of \type{\inverted...author} (19/11/2005)
+%D \item don't reset [numbercommand] in \type {\setuppublication} by default (20/11/2005)
+%D \item don't disable other \type {\setuppublication} keys if alternative is present (20/11/2005)
+%D \item drop \type{\sanitizeaccents} (20/11/2005)
+%D \item added \type{\nocite} and \type{\cite[none]} (21/11/2005)
+%D \item added headtext for it (23/11/2005)
+%D \item make \type{\cite[url]} and \type{\cite[doi]} interactive (23/11/2005)
+%D \item make right-aligned labels in the list work even when autohang=no
+%D \item use 'et al.' instead of 'et.al.'. Pointed out by Peter Münster (30/12/2005)
+%D \item added headtext for cz (31/12/2005)
+%D \item Keep whitespace after \type{\cite} with single argument (31/12/2005)
+%D \item Fix broken \type{\cite{}} support (31/12/2005)
+%D \item Use \type{\readfile} inside \type{\usepublications} instead of \type{\readsysfile} (12/01/2006)
+%D \item Use \type{\currentbibyear} and \type{\currentbibauthor} instead of \type{\YR} and \type{\AU} (05/02/2006)
+%D \item Fix compressed version of authoryear style (05/02/2006)
+%D \item Rename the clashing data fields \type{\url} and \type{\type} to \type{\biburl} and \type{\bibtype} (05/02/2006)
+%D \item Added two french bibl files from Renaud Aubin (06/02/2006)
+%D \item Five new bib class and eight extra bib fields, for IEEEtran (07/02/2006)
+%D \item French keyword translation, provided by Renaud (08/02/2006)
+%D \item fix underscores in undefined keys (22/02/2006)
+%D \item Destroy interactivity in labels of the publication list (13/03/2006)
%D \stopitemize
-
-%D \subject{TODO}
+%D
+%D \subject{WISHLIST}
%D
%D \startitemize
+%D \item link back from publication list to citation
%D \item export \type {\citation{<cited item>}}
-%D \item export a \type {\bibalternative{lastpubsep}} from BST instead of 'and'
-%D \item don't reset [numbercommand] in \type {\setuppublication} by default
%D \item sort out different APS versions: PR A/B/L vs. RPM
-%D \item (implement sub-options? / \type {\setupcitationstyle} ?)
-%D \item worry about localization at same time
-%D \item add hyperlinking to the doi->URL and \type {\cite}->list, in general
%D \item don't load the whole lot, but filter entries instead
%D \stopitemize
@@ -70,7 +87,6 @@
sorttype: sorttype sorttype
compress: compress compress
autohang: autohang autohang
- % author: author author
artauthor: artauthor artauthor
editor: editor editor
authoretallimit: authoretallimit authoretallimit
@@ -82,6 +98,8 @@
authoretaltext: authoretaltext authoretaltext
artauthoretaltext: artauthoretaltext artauthoretaltext
editoretaltext: editoretaltext editoretaltext
+ otherstext: otherstext otherstext
+ andtext: andtext andtext
totalnumber: totalnumber totalnumber
firstnamesep: firstnamesep firstnamesep
vonsep: vonsep vonsep
@@ -98,69 +116,119 @@
\stopconstants
\startvariables dutch english
-
german czech
italian romanian
+ french
title: titel title
titel titul
titolo titlu
+ titre
short: kort short
kurz short
short short
+ short
cite: cite cite
cite cite
cite cite
+ cite
bbl: bbl bbl
bbl bbl
bbl bbl
+ bbl
bib: bib bib
bib bib
bib bib
+ bib
author: auteur author
autor autor
autore autor
+ auteur
\stopvariables
+%D how to load the references. There is some new stuff here
+%D to support Idris' (incorrect :-)) use of projects
+
+\def\biblistname{pubs}
+
+\let\preloadbiblist\relax
+
+
+\ifx\currentcomponent\v!text
+ % single file
+ \edef\temp{\the\everystarttext}%
+ \ifx\temp\empty
+ % post-starttext
+ \def\preloadbiblist{\dousepublications\jobname }%
+ \else
+ % pre-starttext
+ \appendtoks \dousepublications\jobname \to \everystarttext
+ \fi
+ %
+\else \ifx\currentcomponent\v!project
+ % a project file, have to set up the partial products!
+ \def\startproduct #1 %
+ {\doateverystarttext
+ \dousepublications{#1}%
+ \donextlevel\v!product\currentproduct
+ \doexecutefileonce\doexecutefileonce
+ \donotexecutefile\doexecutefile#1\\}%
+ %
+\else \ifx\currentcomponent\v!product
+ % a product file
+ \def\preloadbiblist{\dousepublications\jobname }%
+ %
+\else
+ % a component? not sure what to do
+ \def\preloadbiblist{\dousepublications\jobname }%
+ %
+\fi \fi \fi
+
+\expanded{\definelist[\biblistname][\biblistname]}
+
%D The text string for the publication list header
-\setupheadtext[en][pubs=References]
-\setupheadtext[nl][pubs=Literatuur]
-\setupheadtext[de][pubs=Literatur]
+\setupheadtext[en][\biblistname=References]
+\setupheadtext[nl][\biblistname=Literatuur]
+\setupheadtext[de][\biblistname=Literatur]
+\setupheadtext[it][\biblistname=Bibliografia]
+\setupheadtext[sl][\biblistname=Literatura]
+\setupheadtext[fr][\biblistname=Bibliographie]
-%D \macros{bibdoifelse}
+%D \macros{bibdoif,bibdoifnot,bibdoifelse}
%D
-%D Here is a really small helper that is used a lot (which is why it
-%D makes sense to use \type{\ifx} instead of \type{\doif..}).
-%D This test is used in all the typesetting commands
+%D Here are a few small helpers that are used a lot
+%D in all the typesetting commands
%D (\type{\insert...}) we will encounter later.
-
-\def\bibdoifelse#1%
- {\ifx#1\relax
- \@EA\secondoftwoarguments
- \else\ifx#1\empty
- \@EAEAEA\secondoftwoarguments
+%D
+%D TH: Hans, don't replace these! It is vital that
+%D there is a precisly one level of expansion of
+%D the argument.
+
+\long\def\bibdoifelse#1%
+ {\@EA\def\@EA\!!stringa\@EA{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\secondoftwoarguments
\else
- \@EAEAEA\firstoftwoarguments
- \fi\fi}
+ \expandafter\firstoftwoarguments
+ \fi}
-\def\bibdoif#1%
- {\ifx#1\relax
- \@EA\gobbleoneargument
- \else\ifx#1\empty
- \@EAEAEA\gobbleoneargument
+\long\def\bibdoifnot#1%
+ {\@EA\def\@EA\!!stringa\@EA{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\firstofoneargument
\else
- \@EAEAEA\firstofoneargument
- \fi\fi}
+ \expandafter\gobbleoneargument
+ \fi}
-\def\bibdoifnot#1%
- {\ifx#1\relax
- \@EA\firstofoneargument
- \else\ifx#1\empty
- \@EAEAEA\firstofoneargument
+\long\def\bibdoif#1%
+ {\@EA\def\@EA\!!stringa\@EA{#1}%
+ \ifx\!!stringa\empty
+ \expandafter\gobbleoneargument
\else
- \@EAEAEA\gobbleoneargument
- \fi\fi}
+ \expandafter\firstofoneargument
+ \fi}
+
%D Bibtex settings separated out
@@ -236,48 +304,48 @@
\def\bibleftnumber#1%
{#1\hfill~}
+
\def\dosetuppublications[#1]%
{\getparameters
[\??pb]
- [\c!numbercommand=\bibleftnumber,\c!alternative=,#1]%
+ [\c!alternative=,#1]%
\doifsomething\@@pbalternative
{\readsysfile{bibl-\@@pbalternative.tex}
{\showmessage\m!bib{6}{bibl-\@@pbalternative}\let\@@pbalternative\empty}
{\showmessage\m!bib{1}{bibl-\@@pbalternative}\let\@@pbalternative\empty}}%
- \doifnothing{\@@pbalternative}
- {\processaction
- [\@@pbcriterium]
- [ \v!all=>\typesetalltrue,
- \s!unknown=>\typesetallfalse]%
- \processaction
- [\@@pbautohang]
- [ \v!yes=>\autohangtrue,
- \s!unknown=>\autohangfalse]%
- \processaction
- [\@@pbsorttype]
- [ \v!cite=>\sortbycitetrue,
- \v!bbl=>\sortbycitefalse,
- \s!default=>\sortbycitetrue,
- \s!unknown=>\sortbycitefalse]%
- \processaction
- [\@@pbnumbering]
- [ \v!yes=>\let\@@pbinumbercommand\firstofoneargument,
- \v!no=>\let\@@pbinumbercommand\gobbleoneargument,
- \v!short=>\def\@@pbinumbercommand##1{\@@pbs},
- \v!bib=>\def\@@pbinumbercommand##1{\@@pbn},
- \s!unknown=>\let\@@pbinumbercommand\firstofoneargument]%
- \processaction
- [\@@pbrefcommand]
- [\s!default=>\edef\@@citedefault{\@@pbrefcommand},
- \s!unknown=>\edef\@@citedefault{\@@pbrefcommand}]}}
+ \getparameters
+ [\??pb]
+ [#1]%
+ \processaction
+ [\@@pbcriterium]
+ [ \v!all=>\typesetalltrue,
+ \s!unknown=>\typesetallfalse]%
+ \processaction
+ [\@@pbautohang]
+ [ \v!yes=>\autohangtrue,
+ \s!unknown=>\autohangfalse]%
+ \processaction
+ [\@@pbsorttype]
+ [ \v!cite=>\sortbycitetrue,
+ \v!bbl=>\sortbycitefalse,
+ \s!default=>\sortbycitetrue,
+ \s!unknown=>\sortbycitefalse]%
+ \processaction
+ [\@@pbnumbering]
+ [ \v!yes=>\let\@@pbinumbercommand\firstofoneargument,
+ \v!no=>\let\@@pbinumbercommand\gobbleoneargument,
+ \v!short=>\def\@@pbinumbercommand##1{\getvalue{pbds-\@@pbk}},
+ \v!bib=>\def\@@pbinumbercommand##1{\getvalue{pbdn-\@@pbk}},
+ \s!unknown=>\let\@@pbinumbercommand\firstofoneargument]%
+ \processaction
+ [\@@pbrefcommand]
+ [\s!default=>\edef\@@citedefault{\@@pbrefcommand},
+ \s!unknown=>\edef\@@citedefault{\@@pbrefcommand}]}
% initialize
\def\@@pbrefcommand{num}
-
-%D how to load the references:
-
-\appendtoks \dousepublications\jobname \to \everystarttext
+\def\@@pbnumbercommand{\bibleftnumber}
%D \macros{usepublications}
%D
@@ -289,7 +357,7 @@
{\usereferences[#1]\processcommalist[#1]\dousepublications}
\def\dousepublications#1%
- {\readsysfile{#1.\f!bibextension}
+ {\readfile{#1.\f!bibextension}
{\showmessage\m!bib{4}{#1.\f!bibextension}}
{\showmessage\m!bib{2}{#1.\f!bibextension}}}
@@ -309,18 +377,16 @@
\def\setuppublicationlist
{\dosingleempty\dosetuppublicationlist}
-\definelist[pubs][pubs]
-
\def\dosetuppublicationlist[#1]%
{\getparameters
[@@pvdata]
[\c!samplesize={AA99},\c!totalnumber={99},#1]% for sample & totalnumber & firstnamesep etc.
\setuplist
- [pubs]
- [\c!alternative=a,\c!pagenumber=\v!no,#1]}
+ [\biblistname]
+ [\c!alternative=a,\c!interaction=,\c!pagenumber=\v!no,#1]}
-\def\setuppublicationlayout[#1]%
- {\setvalue{@@pvdata#1}}
+\def\setuppublicationlayout[#1]#2%
+ {\setvalue{@@pvdata#1}{#2\unskip}}
%D \macros{bibalternative}
%D
@@ -350,26 +416,34 @@
\def\simplebibdef#1% hh: funny expansion ?
{\@EA\long\@EA\def\csname bib@#1\endcsname##1%
- {\setvalue{\??pb @#1}{##1}\ignorespaces}%
+ {\setvalue{\??pb @#1}{##1}%
+ \ignorespaces}%
\@EA\def\csname insert#1\endcsname##1##2##3%
{\@EA\bibdoifelse
\@EA{\csname @@pb@#1\endcsname}%
{##1\csname @@pb@#1\endcsname##2}%
- {##3}}}
+ {##3}%
+ }}
\def\bibcommandlist
- {arttitle,title,journal,notes,
- volume,issue,pubname,city,country,
- type,organization,institute,series,thekey,
- edition,month,pubyear,note,annotate,pages,
- keyword,keywords,comment,abstract,names,size,
- issn,isbn,chapter,eprint,doi,howpublished}
+ {arttitle, title, journal, notes, volume, issue, pubname, city,
+ country, bibtype, organization, series, thekey, edition, month,
+ pubyear, note, annotate, pages, keyword, keywords, comment,
+ abstract, names, size, issn, isbn, chapter, eprint, doi,
+ howpublished, biburl, lastchecked,
+ % ieee
+ nationality, assignee, bibnumber, day, dayfiled, monthfiled,
+ yearfiled, revision}
+
\processcommacommand[\bibcommandlist]\simplebibdef
+\let\inserturl \insertbiburl % for backward compat.
+\let\inserttype\insertbibtype % for backward compat.
+
\def\newbibfield[#1]%
{\simplebibdef{#1}%
- \edef\bibcommalist{\bibcommandlist,#1}}
+ \edef\bibcommandlist{\bibcommandlist,#1}}
%D \macros{bib@crossref}
%D
@@ -407,9 +481,9 @@
%D things: increment the counter \type{\author@num} (let's say to 2)
%D and next store it's arguments in the macro \type{\@@pb@author2}.
%D And it defines \type{\insertauthors} to expand into
-%D \starttypen
+%D \starttyping
%D \specialbibinsert{author}{\author@num}{<before>}{<after>}{<not>}
-%D \stoptypen
+%D \stoptyping
% hh: use a context counter instead, more options
@@ -420,7 +494,7 @@
\setvalue{\??pb @#1\csname #1@num\endcsname}%
{{##2}{##4}{##5}{##3}{##1}}\ignorespaces}%
\@EA\def\csname insert#1s\endcsname##1##2##3%
- {\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{##2}{##3}}}
+ {\specialbibinsert{#1}{\csname #1@num\endcsname}{##1}{\unskip ##2}{##3}}}
\processcommalist[author,artauthor,editor]\complexbibdef
@@ -515,30 +589,30 @@
%D }
%D
-\def\invertedauthor#1#2#3#4#5%
- {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #3\bibalternative\c!surnamesep
- \bibdoif{#5}{#5\bibalternative\c!juniorsep}%
- \bibdoif{#1}{#1\unskip}}
-
\def\normalauthor#1#2#3#4#5%
{\bibdoif{#1}{#1\bibalternative\c!firstnamesep}%
\bibdoif{#2}{#2\bibalternative\c!vonsep}%
#3\bibalternative\c!surnamesep
\bibdoif{#5}{#5\unskip}}
-\def\invertedshortauthor#1#2#3#4#5%
- {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
- #3\bibalternative\c!surnamesep
- \bibdoif{#5}{#5\bibalternative\c!juniorsep}%
- \bibdoif{#4}{#4\unskip}}
-
\def\normalshortauthor#1#2#3#4#5%
{\bibdoif{#4}{#4\bibalternative\c!firstnamesep}%
\bibdoif{#2}{#2\bibalternative\c!vonsep}%
#3\bibalternative\c!surnamesep
\bibdoif{#5}{#5\unskip}}
+\def\invertedauthor#1#2#3#4#5%
+ {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
+ #3%
+ \bibdoif{#5}{\bibalternative\c!juniorsep #5}%
+ \bibdoif{#1}{\bibalternative\c!surnamesep #1\unskip}}
+
+\def\invertedshortauthor#1#2#3#4#5%
+ {\bibdoif{#2}{#2\bibalternative\c!vonsep}%
+ #3%
+ \bibdoif{#5}{\bibalternative\c!juniorsep #5}%
+ \bibdoif{#4}{\bibalternative\c!surnamesep #4\unskip}}
+
%D \macros{clearbibitem,clearbibitemtwo,bibitemdefs}
%D
%D These are used in \type{\typesetapublication} to do
@@ -555,18 +629,14 @@
\advance\scratchcounter\plusone}%
{\exitloop}}}
-\def\bibitemdefs#1{\setvalue{#1}{\csname bib@#1\endcsname}}
+\def\bibitemdefs#1%
+ {\@EA\let\@EA\tempa \csname bib@#1\endcsname
+ \@EA\let\csname #1\endcsname \tempa }
%D \macros{startpublication}
%D
%D We are coming to the end of this module, to the macros that
%D do typesetting and read the \type{bbl} file.
-%D
-%D The stuff between \type{\startpublication} ... \type{\stoppublication}
-%D is simply stored into a macro: either
-%D \type{\publist} (potentially huge) or separate macros
-%D for each of them, depending on whether
-%D or not we do \type{\sortbycite}, as explained above.
\newcounter\bibcounter
@@ -593,51 +663,40 @@
\long\def\dostartpublication[#1]#2\stoppublication%
{\increment\bibcounter
\bgroup
- \bgroup\honorunexpanded
\doifassignmentelse{#1}%
- {\egroup\getparameters[\??pb][k=,t=article,n=,s=,a=,y=,o=,#1]}%
- {\egroup\getparameters[\??pb][k=#1,t=article,n=,s=,a=,y=,o=]}%
- \toks0={\ignorespaces #2}%
- \@EA\toks\@EA2\@EA{\@@pba}%
- \@EA\toks\@EA4\@EA{\@@pbs}%
- \setxvalue{pbd-\@@pbk}%
- {{\the\toks2}% \@@pba (author)
- {\@@pby}%
- {\the\toks4}% \@@pbs (short)
- {\@@pbn}%
- {\@@pbt}%
- {\the\toks0}% (data)
- {\@@pbo}}% doi
- \xdef\allrefs{\allrefs,\@@pbk}%
- \egroup}
+ {\getparameters[\??pb][k=,t=article,n=,s=,a=,y=,o=,u=,#1]}%
+ {\getparameters[\??pb][k=#1,t=article,n=,s=,a=,y=,o=,u=]}%
+ \@EA\toks\@EA2\@EA{\@@pba}%
+ \@EA\toks\@EA4\@EA{\@@pbs}%
+ \toks0={\ignorespaces #2}%
+ \setxvalue{pbdk-\@@pbk}{\@@pbk}
+ \setxvalue{pbda-\@@pbk}{\the\toks2}
+ \setxvalue{pbdy-\@@pbk}{\@@pby}
+ \setxvalue{pbds-\@@pbk}{\the\toks4}
+ \setxvalue{pbdn-\@@pbk}{\@@pbn}
+ \setxvalue{pbdt-\@@pbk}{\@@pbt}
+ \setxvalue{pbdo-\@@pbk}{\@@pbo}
+ \setxvalue{pbdu-\@@pbk}{\@@pbu}
+ \setxvalue{pbdd-\@@pbk}{\the\toks0}
+ \xdef\allrefs{\allrefs,\@@pbk}%
+ \egroup }
% intialization of the order-list:
\let\allrefs\empty
-% how to get stuff from a pbd-*** macro:
+%D The next macro is needed because the number command of the
+%D publist sometimes needs to fetch something from the current
+%D item (like the 'short' key). For this, the ID of the current
+%D item is passed in the implict parameter \type{\@@pbk}
-\def\restorebibdata#1%
- {\def\@@pbk{#1}%
- \@EA\dorestorebibdata\csname pbd-#1\endcsname}
+\def\makepbkvalue#1{\def\@@pbk{#1}}
-\def\dorestorebibdata#1%
- {\@EA\dodorestorebibdata#1{}{}{}{}{}{}{}\relax}
+%D
-\def\dodorestorebibdata#1#2#3#4#5#6#7#8\relax%
- {\def\@@pba{#1}%
- \def\@@pby{#2}%
- \def\@@pbs{#3}%
- \def\@@pbn{#4}%
- \def\@@pbt{#5}%
- \def\@@pbd{#6}%
- \def\@@pbo{#7}}
+\newif\ifinpublist
-%D The \writeutility trick is dodgy at best, but it is needed
-%D to make sure that \placepublications\stoptext works as
-%D advertised. (without the \immediate, there *has* to be at
-%D least one page break between \placepublications and \stoptext)
-%D
+\let\@@pvdatawidth\empty
\def\preinitializepubslist
{\let\bibcounter\!!zerocount
@@ -666,22 +725,24 @@
\setbox\scratchbox\hbox{\@@pbnumbercommand{\numreferred}}%
\fi\fi
\edef\samplewidth{\the\wd\scratchbox}%
- \setuplist[pubs][\c!width=\samplewidth,\c!distance=0pt]%
+ \setuplist[\biblistname][\c!width=\samplewidth,\c!distance=0pt]%
\def\@@pblimitednumber##1{\hbox to \samplewidth{\@@pbnumbercommand{##1}}}%
\else
- \def\@@pblimitednumber##1{\hbox{\@@pbnumbercommand{##1}}}%
+ \doifemptyelse
+ {\@@pvdatawidth}
+ {\def\@@pblimitednumber##1{\hbox{\@@pbnumbercommand{##1}}}}%
+ {\def\@@pblimitednumber##1{\hbox to \@@pvdatawidth{\@@pbnumbercommand{##1}}}}%
\fi
\ifx\@@pbnumbering\v!no
- \setuplist[pubs][\c!numbercommand=,\c!textcommand=\outdented]
+ \setuplist[\biblistname][\c!numbercommand=,\c!textcommand=\outdented]
\else
- \setuplist[pubs][\c!numbercommand=\@@pblimitednumber,\c!textcommand=]
+ \setuplist[\biblistname][\c!numbercommand=\@@pblimitednumber]%
\fi
\forgetall % bugfix 2005/03/18
}
\def\outdented#1% move to supp-box ?
- {\hskip -\hangindent
- \strut#1\strut}
+ {\hskip -\hangindent #1}
%D The full list of publications
@@ -690,10 +751,12 @@
\def\docompletepublications[#1]%
{\preinitializepubslist
- \ifcase\bibcounter\else % HERE it said "\or" instead of "\else"
+ \ifcase\bibcounter\else
\initializepubslist
\let\bibcounter\!!zerocount
- \completelist[pubs][\c!criterium=all,#1]%
+ \inpublisttrue
+ \completelist[\biblistname][\c!criterium=\v!current,#1]%
+ \inpublistfalse
\fi}
%D And the portion with the entries only.
@@ -703,19 +766,21 @@
\def\doplacepublications[#1]%
{\preinitializepubslist
- \ifcase\bibcounter\else % HERE it said "\or" instead of "\else"
+ \ifcase\bibcounter\else
\initializepubslist
\let\bibcounter\!!zerocount
- \placelist[pubs][\c!criterium=\v!all,#1]%
+ \inpublisttrue
+ \placelist[\biblistname][\c!criterium=\v!current,#1]%
+ \inpublistfalse
\fi}
\def\dowritebiblist#1#2%
- {\restorebibdata{#2}%
+ {\makepbkvalue{#2}%
\edef\pbnumbercommand{\@@pbinumbercommand{#1}}%
\@EA\dodowritebiblist\@EA{\pbnumbercommand}{\typesetapublication{#2}}}
\def\dodowritebiblist
- {\writetolist[pubs]}
+ {\writetolist[\biblistname]}
\def\writepublist#1%
{\doifnotempty{#1}
@@ -734,31 +799,55 @@
\increment\bibcounter
\@EA\dowritebiblist\@EA{\bibcounter}{#1}}}
-%D \subonderwerp{What's in a publication}
+%D \subsubject{What's in a publication}
%D
-\def\typesetapublication
+\unexpanded\def\typesetapublication
{\doglobal\increment\bibcounter
\dotypesetapublication}
+%D quick hack to make sure stuff isn't typeset twice:
+
+
\def\dotypesetapublication#1%
{\bgroup
\def\@@currentalternative{data}%
- \restorebibdata{#1}%
+ \makepbkvalue{#1}%
\processcommacommand[\bibcommandlist,crossref]\clearbibitem
\processcommalist [artauthor,author,editor]\clearbibitemtwo
\processcommacommand[\bibcommandlist]\bibitemdefs
\processcommalist [artauthor,author,editor,crossref]\bibitemdefs
- \expanded{\reference[\@@pbk]{\bibcounter}}%
- \@@pbd % execute data
- \bibalternative{\@@pbt}% do typesetting
+ \ifinpublist
+ \@EA\ifx\csname #1-is-typeset\endcsname \relax
+ \setgvalue{#1-is-typeset}{1}%
+ \expanded{\reference[#1]{\bibcounter}}%
+ \getvalue{pbdd-#1}%
+ \strut \ifcsname pbdt-#1\endcsname \bibalternative{\getvalue{pbdt-#1}}\fi\strut
+ \else
+ \endgraf
+ \setbox0=\lastbox \unskip
+ \fi
+ \else
+ \getvalue{pbdd-#1}% execute data
+ %\bibalternative{\getvalue{pbdt-#1}}% do typesetting
+ \ifcsname pbdt-#1\endcsname \bibalternative{\getvalue{pbdt-#1}}\fi
+ \fi
\egroup}
+
%D An afterthought
\def\maybeyear#1{}
-%D \onderwerp{Citations}
+%D An another
+
+\def\noopsort#1{}
+
+%D This is the result of bibtex's `language' field.
+
+\def\lang#1{}
+
+%D \subject{Citations}
%D \macros{cite,bibref}
%D
@@ -768,21 +857,49 @@
\def\cite
{\doifnextcharelse{[}
- {\dodoubleempty\docite}
+ {\dodocite}
{\dobibref}}
\def\dobibref#1%
- {\docite[#1]}
+ {\docite[#1][]}
+
+\def\dodocite[#1]%
+ {\startstrictinspectnextcharacter
+ \dodoubleempty\dododocite[#1]}
+
+\def\dododocite[#1][#2]{%
+ \stopstrictinspectnextcharacter
+ \docite[#1][#2]}
\def\docite#1[#2]#3[#4]%
- {\ifsecondargument
- \def\@@currentalternative{#2}%
- \expanded{\processaction[\csname @@pv#2compress\endcsname]}
- [ \v!yes=>\bibcitecompresstrue,
- \v!no=>\bibcitecompressfalse,
- \s!default=>\bibcitecompresstrue,
- \s!unknown=>\bibcitecompresstrue]%
- \getvalue{bib#2ref}[#4]%
+ {\begingroup
+ \ifsecondargument
+ \doifassignmentelse
+ {#2}%
+ {\getparameters[LO][\c!alternative=,\c!extras=,#2]%
+ \edef\@@currentalternative{\LOalternative}%
+ \ifx\@@currentalternative\empty
+ \edef\@@currentalternative{\@@citedefault}%
+ \fi
+ \ifx\LOextras\empty
+ \setupcite[\@@currentalternative][#2]%
+ \else
+ \expandafter\ifx\csname LOright\endcsname \relax
+ \edef\LOextras{{\LOextras\bibalternative\c!right}}%
+ \else
+ \edef\LOextras{{\LOextras\LOright}}%
+ \fi
+ \expanded{\setupcite[\@@currentalternative][#2,\c!right=\LOextras]}%
+ \fi
+ }%
+ {\def\@@currentalternative{#2}}%
+ \expanded{%
+ \processaction[\csname @@pv\@@currentalternative compress\endcsname]}
+ [ \v!yes=>\bibcitecompresstrue,
+ \v!no=>\bibcitecompressfalse,
+ \s!default=>\bibcitecompresstrue,
+ \s!unknown=>\bibcitecompresstrue]%
+ \getvalue{bib\@@currentalternative ref}[#4]%
\else
\expanded{\processaction[\csname @@pv\@@citedefault compress\endcsname]}
[ \v!yes=>\bibcitecompresstrue,
@@ -791,14 +908,46 @@
\s!unknown=>\bibcitecompresstrue]%
\edef\@@currentalternative{\@@citedefault}%
\getvalue{bib\@@citedefault ref}[#2]%
- \fi}
+ \fi
+ \endgroup}
+
+%D \macros{nocite}
+
+\def\nocite[#1]%
+ {\processcommalist[#1]\addthisref}
+
+%D \macros{setupcite}
-\def\setupcite#1[#2]#3[#4]%
- {\def\getciteargs##1{\getparameters[\??pv##1][#4]}%
- \processcommalist[#2]\dosetupcite}
-\def\dosetupcite#1%
- {\getciteargs{#1}}
+\def\setupcite{\dodoubleempty\dosetupcite}
+
+\def\dosetupcite[#1][#2]%
+ {\ifsecondargument
+ \def\dodosetupcite##1{\getparameters[\??pv##1][#2]}%
+ \processcommalist[#1]\dodosetupcite
+ \else % default case
+ \getparameters[\??pv\@@citedefault][#1]%
+ \fi }
+
+
+%D Low-level stuff
+
+\def\getcitedata#1[#2]#3[#4]#5to#6%
+ {\bgroup
+ \addthisref{#4}%
+ \dofetchapublication{#4}%
+ \xdef#6{\csname insert#2\endcsname{}{}{}}%
+ \egroup }
+
+
+\def\dofetchapublication#1%
+ {\makepbkvalue{#1}%
+ \processcommacommand[\bibcommandlist,crossref]\clearbibitem
+ \processcommalist [artauthor,author,editor]\clearbibitemtwo
+ \processcommacommand[\bibcommandlist]\bibitemdefs
+ \processcommalist [artauthor,author,editor,crossref]\bibitemdefs
+ \getvalue{pbdd-#1}}
+
%D \macros{numreferred,doifreferredelse,addthisref,publist}
%D
@@ -827,8 +976,8 @@
%D \type{\startpublication}.
\def\doifbibreferencefoundelse#1#2#3%
- {\doifdefinedelse{pbd-#1}
- {\restorebibdata{#1}#2}
+ {\doifdefinedelse{pbdk-#1}
+ {#2}
{\showmessage\m!bib{5}{#1 is unknown}#3}}
%D \macros{ixbibauthoryear,thebibauthors,thebibyears}
@@ -856,19 +1005,15 @@
%D
%D In `normal' \TeX, of course there are expansion problems again.
-\def\gobble#1{\def#1##1{##1}}
-
-\def\sanitizeaccents{\processcommalist[\',\`,\",\.,\c,\d,\~,\=]\gobble}
+\def\gobbledef#1{\def#1##1{##1}}
\def\ixbibauthoryear#1#2#3#4%
{\bgroup
- \sanitizeaccents
\gdef\ixlastcommand {#4}%
\gdef\ixsecondcommand{#3}%
\gdef\ixfirstcommand {#2}%
\glet\thebibauthors \empty
\glet\thebibyears \empty
- \glet\theauthorssize \empty
\getcommalistsize[#1]%
\ifbibcitecompress
\dorecurse\commalistsize{\xdef\thebibyears{\thebibyears,}}%
@@ -876,8 +1021,6 @@
\else
\processcommalist[#1]\donormalbibauthoryear
\fi
- \getcommacommandsize[\thebibauthors]%
- \xdef\theauthorssize{\commalistsize}%
\egroup
\dobibauthoryear}
@@ -895,8 +1038,8 @@
{\advance\scratchcounter\plusone
\edef\wantednumber{\the\scratchcounter}%
\getfromcommacommand[\thebibyears][\wantednumber]%
- \def\AU{#1}% brr
- \@EA\def\@EA\YR\@EA{\commalistelement}%
+ \@EA\def\@EA\currentbibyear\@EA{\commalistelement}%
+ \def\@currentbibauthor{#1}% brr
\ifnum\scratchcounter=\plusone
\ixfirstcommand
\else\ifnum \scratchcounter=\commalistsize\relax
@@ -905,6 +1048,33 @@
\ixsecondcommand
\fi\fi}
+\def\currentbibauthor%
+ {\getcommacommandsize[\@currentbibauthor]%
+ \ifcase\commalistsize
+ % anonymous?
+ \or
+ \@currentbibauthor
+ \or
+ \expanded{\docurrentbibauthor\@currentbibauthor}%
+ \else
+ % this can't happen/
+ \fi }
+
+
+\def\docurrentbibauthor#1,#2%
+ {\doifemptyelse{#2}
+ {#1\bibalternative{otherstext}}
+ {#1\bibalternative{andtext}#2}}
+
+%D This is not the one Hans made for me, because I need a global
+%D edef, and the \type{\robustdoifinsetelse} doesn't listen to
+%D \type{\doglobal }
+
+\def\robustaddtocommalist#1#2% {item} \cs
+ {\robustdoifinsetelse{#1}#2\resetglobal
+ {\dodoglobal\xdef#2{\ifx#2\empty\else#2,\fi#1}}}
+
+
%D \macros{donormalbibauthoryear}
%D
%D Now we get to the macros that fill the two lists.
@@ -912,14 +1082,14 @@
\def\donormalbibauthoryear#1%
{\addthisref{#1}%
- \xdef\myauthor{Xxxxxxxxxx}%
- \xdef\myyear{0000}%
+ \def\myauthor{Xxxxxxxxxx}%
+ \def\myyear{0000}%
\doifbibreferencefoundelse{#1}
- {\@EA\gdef\@EA\myauthor\@EA{\@@pba}%
- \@EA\gdef\@EA\myyear \@EA{\@@pby}}
+ {\def\myauthor{{\getvalue{pbda-#1}}}%
+ \def\myyear {\getvalue{pbdy-#1}}}%
{}%
- \@EA\doglobal\@EA\addtocommalist\@EA{\myauthor}\thebibauthors
- \@EA\doglobal\@EA\addtocommalist\@EA{\myyear }\thebibyears}
+ \@EA\doglobal\@EA\appendtocommalist\@EA{\myauthor}\thebibauthors
+ \@EA\doglobal\@EA\appendtocommalist\@EA{\myyear }\thebibyears}
%D \macros{docompressbibauthoryear}
%D
@@ -929,11 +1099,11 @@
\def\docompressbibauthoryear#1%
{\addthisref{#1}%
- \xdef\myauthor{Xxxxxxxxxx}%
- \xdef\myyear {0000}%
+ \def\myauthor{Xxxxxxxxxx}%
+ \def\myyear {0000}%
\doifbibreferencefoundelse{#1}
- {\@EA\gdef\@EA\myauthor\@EA{\@@pba}%
- \@EA\gdef\@EA\myyear \@EA{\@@pby}}
+ {\xdef\myauthor{\csname pbda-#1\endcsname }%
+ \xdef\myyear {\csname pbdy-#1\endcsname }}
{}%
\ifx\myauthor\empty\else
\checkifmyauthoralreadyexists
@@ -953,12 +1123,15 @@
\def\checkifmyauthoralreadyexists
{\doifemptyelsevalue{thebibauthors}
- {\global\bibitemcounter\plusone
- \global\bibitemwanted \plusone
- \@EA\gdef\@EA\thebibauthors\@EA{\myauthor}} % hh: one level
- {\getcommacommandsize[\thebibauthors]%
- \global\bibitemwanted\zerocount
+ {\global\bibitemwanted \plusone
+ \global\bibitemcounter \plusone
+ \xdef\thebibauthors{{\myauthor}}}
+ {% the next weirdness is because according to \getcommalistsize,
+ % the length of \type{[{{},{}}]} is 2.
+ \@EA\getcommalistsize\@EA[\thebibauthors,]%
\global\bibitemcounter\commalistsize
+ \global\advance\bibitemcounter\minusone
+ \global\bibitemwanted \zerocount
\processcommacommand[\thebibauthors]\docomparemyauthor}}
%D The outer \type{\ifnum} accomplishes the addition of
@@ -971,16 +1144,15 @@
\def\docomparemyauthor#1%
{\global\advance\bibitemwanted \plusone
\def\mytempc{#1}%
- \ifnum\bibitemwanted = \commalistsize\relax
- \ifx\mytempc\myauthor \else
+% \message{authors: \myauthor <=>\mytempc \ifx\mytempc\myauthor :Y \else :N
+% \meaning \myauthor, \meaning\mytempc\fi (\the\bibitemwanted = \the\bibitemcounter)}%
+ \ifx\mytempc\myauthor
+ \quitcommalist
+ \else
+ \ifnum\bibitemwanted = \bibitemcounter\relax
\global\advance\bibitemwanted \plusone
\global\bibitemcounter\bibitemwanted\relax
- \@EA\doglobal\@EA\addtocommalist\@EA{\myauthor}\thebibauthors
- \quitcommalist
- \fi
- \else
- \ifx\mytempc\myauthor
- \quitcommalist
+ \@EA\doglobal\@EA\robustaddtocommalist\@EA{\myauthor}\thebibauthors
\fi
\fi}
@@ -988,6 +1160,7 @@
\def\findmatchingyear
{\edef\wantednumber{\the\bibitemwanted}%
+% \message{year needed: \wantednumber (\thebibyears)}%
\getfromcommacommand[\thebibyears][\wantednumber]%
\ifx\commalistelement\empty
\edef\myyear{{\myyear}}%
@@ -995,50 +1168,51 @@
\edef\myyear{{\commalistelement, \myyear}}%
\fi
\edef\newcommalistelement{\myyear}%
+% \message{bibyears \wantednumber = \newcommalistelement}%
\doglobal\replaceincommalist \thebibyears \wantednumber}
%D \macros{bibauthoryearref,bibauthoryearsref,bibauthorref,bibyearref}
%D
%D Now that all the hard work has been done, these are simple.
%D \type{\ixbibauthoryearref} stores the data in the macros
-%D \type{\AU} and \type{\YR}.
+%D \type{\currentbibauthor} and \type{\currentbibyear}.
\def\bibauthoryearref[#1]%
{\ixbibauthoryear{#1}%
- {{\AU}\bibalternative\c!inbetween
- \bibalternative\v!left{\YR}\bibalternative\v!right}
- {\bibalternative\c!pubsep{\AU}\bibalternative\c!inbetween
- \bibalternative\v!left {\YR}\bibalternative\v!right}
- {\bibalternative\c!lastpubsep{\AU}\bibalternative\c!inbetween
- \bibalternative\v!left {\YR}\bibalternative\v!right}}
+ {{\currentbibauthor}\bibalternative\c!inbetween
+ \bibalternative\v!left{\currentbibyear}\bibalternative\v!right}
+ {\bibalternative\c!pubsep{\currentbibauthor}\bibalternative\c!inbetween
+ \bibalternative\v!left {\currentbibyear}\bibalternative\v!right}
+ {\bibalternative\c!lastpubsep{\currentbibauthor}\bibalternative\c!inbetween
+ \bibalternative\v!left {\currentbibyear}\bibalternative\v!right}}
\def\bibauthoryearsref[#1]%
{\bibalternative\v!left
\ixbibauthoryear{#1}
- {{\AU}\bibalternative\c!inbetween{\YR}}
- {\bibalternative\c!pubsep {\AU}\bibalternative\c!inbetween{\YR}}
- {\bibalternative\c!lastpubsep{\AU}\bibalternative\c!inbetween{\YR}}%
+ {{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}
+ {\bibalternative\c!pubsep {\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}%
+ {\bibalternative\c!lastpubsep{\currentbibauthor}\bibalternative\c!inbetween{\currentbibyear}}%
\bibalternative\v!right}
\def\bibauthorref[#1]%
{\bibalternative\v!left
\ixbibauthoryear{#1}%
- {{\AU}}
- {\bibalternative\c!pubsep {\AU}}
- {\bibalternative\c!lastpubsep{\AU}}%
+ {{\currentbibauthor}}
+ {\bibalternative\c!pubsep {\currentbibauthor}}
+ {\bibalternative\c!lastpubsep{\currentbibauthor}}%
\bibalternative\v!right}
\def\bibyearref[#1]%
{\bibalternative\v!left
\ixbibauthoryear{#1}%
- {{\YR}}
- {\bibalternative\c!pubsep {\YR}}
- {\bibalternative\c!lastpubsep{\YR}}%
+ {{\currentbibyear}}
+ {\bibalternative\c!pubsep {\currentbibyear}}
+ {\bibalternative\c!lastpubsep{\currentbibyear}}%
\bibalternative\v!right}
%D ML problems:
-%D \macros{bibshortref,bibkeyref,bibpageref,bibtyperef,bibnumberref}
+%D \macros{bibshortref,bibkeyref,bibpageref,bibtyperef,bibserialref}
%D
%D There is hardly any point in trying to compress these. The only
%D thing that needs to be done is making sure that
@@ -1051,22 +1225,22 @@
\def\bibshortref[#1]%
{\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibshort
+ \firstreftrue\processcommalist[#1]\dobibshortref
\bibalternative\v!right}
-\def\dobibshort#1%
+\def\dobibshortref#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\@@pbs}{??}}
+ \doifbibreferencefoundelse{#1}{\goto{\getvalue{pbds-#1}}[#1]}{??}}
-\def\bibnumberref[#1]%
+\def\bibserialref[#1]%
{\bibalternative\v!left
- \firstreftrue\processcommalist[#1]\dobibnumbered
+ \firstreftrue\processcommalist[#1]\dobibserialref
\bibalternative\v!right}
-\def\dobibnumbered#1%
+\def\dobibserialref#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\@@pbn}{??}}
+ \doifbibreferencefoundelse{#1}{\getvalue{pbdn-#1}}{??}}
\def\bibkeyref[#1]%
{\bibalternative\v!left
@@ -1076,13 +1250,28 @@
\def\dobibkeyref#1%
{\addthisref{#1}\refsep#1}
+\def\gotoDOI#1#2{\useURL[bibfoo#1][http://dx.doi.org/#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
+
\def\bibdoiref[#1]%
{\bibalternative\v!left
\firstreftrue\processcommalist[#1]\dobibdoiref
\bibalternative\v!right}
\def\dobibdoiref#1%
- {\addthisref{#1}\refsep#1}
+ {\addthisref{#1}\refsep
+ \doifbibreferencefoundelse{#1}{\expanded{\gotoDOI{#1}{\getvalue{pbdo-#1}}}}{??}}
+
+
+\def\biburlref[#1]%
+ {\bibalternative\v!left
+ \firstreftrue\processcommalist[#1]\dobiburlref
+ \bibalternative\v!right}
+
+\def\gotoURL#1#2{\useURL[bibfoo#1][#2]\goto{\url[bibfoo#1]}[url(bibfoo#1)]}
+
+\def\dobiburlref#1%
+ {\addthisref{#1}\refsep
+ \doifbibreferencefoundelse{#1}{\expanded{\gotoURL{#1}{\getvalue{pbdu-#1}}}}{??}}
\def\bibtyperef[#1]%
{\bibalternative\v!left
@@ -1091,7 +1280,7 @@
\def\dobibtyperef#1%
{\addthisref{#1}\refsep
- \doifbibreferencefoundelse{#1}{\@@pbt}{??}}
+ \doifbibreferencefoundelse{#1}{\getvalue{pbdt-#1}}{??}}
\def\bibpageref[#1]%
{\bibalternative\v!left
@@ -1110,6 +1299,8 @@
{\addthisref{#1}\refsep
\doifbibreferencefoundelse{#1}{\dotypesetapublication{#1}}{??}}
+\let\bibnoneref\nocite
+
%D \macros{bibnumref}
%D
%D It makes sense to try and compress the argument list of
@@ -1131,11 +1322,6 @@
%D a list with exactly one entry fails to return anything, which
%D is why the \type{\ifx} is needed).
-\ifx\compresscommacommandnrs\undefined
- \usemodule[list]
- \let\compresscommacommandnrs\compresscommacommand
-\fi
-
\def\bibnumref[#1]%
{\bibalternative\v!left
\penalty\!!tenthousand
@@ -1149,15 +1335,12 @@
\let\therefs\sortedcommalist
\fi
\compresscommacommandnrs[\therefs]%
- % \message{\meaning\therefs, \meaning\compressedlist}%
\processcommacommand[\compressedlist]\verysimplebibnumref
\else
\processcommalist[#1]\dosimplebibnumref
\fi
\bibalternative\v!right}
-%D Here is the simple case first:
-
\def\dosimplebibnumref #1{\refsep\in[#1]}
\def\verysimplebibnumref#1{\doverysimplebibnumref#1}
@@ -1174,6 +1357,6 @@
\setuppublications
[\c!alternative=apa]
-%D \completepublications
+\preloadbiblist
\protect \endinput
diff --git a/tex/context/bib/t-bibltx.tex b/tex/context/bib/t-bibltx.tex
deleted file mode 100644
index cb9e787ad..000000000
--- a/tex/context/bib/t-bibltx.tex
+++ /dev/null
@@ -1,75 +0,0 @@
-%D \module
-%D [ file=t-bibltx,
-%D version=2005.01.04,
-%D title=\CONTEXT\ Publication Module,
-%D subtitle=Publications,
-%D author={Taco Hoekwater},
-%D date=\currentdate,
-%D copyright={Public Domain}]
-%C
-%C Donated to the public domain.
-
-%D \macros{newcommand}
-%D
-%D Just about all databases define something that uses
-%D \type {\newcommand}. This fake version does not cover
-%D everything \type {\newcommand} does, but it should be
-%D enough for simple definitions like the ones found in
-%D \BIBTEX\ files.
-
-\unprotect
-
-\def\@star@or@long#1%
- {\doifnextcharelse*{\afterassignment#1\let\next=}{#1}}
-
-\def\newcommand
- {\@star@or@long\new@command}
-
-\def\new@command#1%
- {\@testopt{\@newcommand#1}0}
-
-\def\@newcommand#1[#2]%
- {\doifnextcharelse[{\@xargdef#1[#2]}{\@argdef#1[#2]}}
-
-\long\def\@argdef#1[#2]#3%
- {\@yargdef#1\@ne{#2}{#3}}
-
-\long\def\@xargdef#1[#2][#3]#4%
- {\@EA\def\@EA#1\@EA{\@EA\do@testopt\@EA#1\csname\string#1\endcsname{#3}}%
- \@EA\@yargdef\csname\string#1\endcsname\tw@{#2}{#4}}
-
-\def\@testopt#1#2%
- {\doifnextcharelse[{#1}{#1[#2]}}
-
-\def\do@testopt#1%
- {\expandafter\@testopt}
-
-\long\def\@yargdef#1#2#3%
- {\!!counta#3\relax
- \advance \!!counta \@ne
- \let\@hash@\relax
- \edef\!!tempa{\ifx#2\tw@ [\@hash@1]\fi}%
- \!!countb #2%
- \loop
- \ifnum\!!countb <\!!counta
- \edef\!!tempa{\!!tempa\@hash@\the\!!countb}%
- \advance\!!countb \@ne
- \repeat
- \let\@hash@##%
- \long\@EA\def\@EA#1\!!tempa}
-
-\long\def\@reargdef#1[#2]%
- {\@yargdef#1\@ne{#2}}
-
-%D Something like the following is needed to support the
-%D average \LATEX-based \BIBTEX\ databases.
-%D
-%D \starttyping
-%D \let\textsc\kap
-%D \def\emph#1{{\em#1}}
-%D \let\sf\ss
-%D \stoptyping
-%D
-%D But we happily leave that to the user.
-
-\protect \endinput
diff --git a/tex/context/interface/cont-cz.xml b/tex/context/interface/cont-cz.xml
index a35cf0d6e..d940b7a5c 100644
--- a/tex/context/interface/cont-cz.xml
+++ b/tex/context/interface/cont-cz.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="stranka"/>
<cd:constant type="naproti"/>
<cd:constant type="vzdy"/>
+ <cd:constant type="auto"/>
<cd:constant type="sila"/>
<cd:constant type="vysoko"/>
<cd:constant type="reset"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="vse"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-de.xml b/tex/context/interface/cont-de.xml
index 0e3be31e7..9c57cd1ea 100644
--- a/tex/context/interface/cont-de.xml
+++ b/tex/context/interface/cont-de.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="seite"/>
<cd:constant type="gegenueber"/>
<cd:constant type="immer"/>
+ <cd:constant type="auto"/>
<cd:constant type="zwinge"/>
<cd:constant type="lang"/>
<cd:constant type="zuruecksetzten"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="alles"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-en.xml b/tex/context/interface/cont-en.xml
index f32882eae..08639e437 100644
--- a/tex/context/interface/cont-en.xml
+++ b/tex/context/interface/cont-en.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="page"/>
<cd:constant type="opposite"/>
<cd:constant type="always"/>
+ <cd:constant type="auto"/>
<cd:constant type="force"/>
<cd:constant type="tall"/>
<cd:constant type="reset"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="all"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-fr.xml b/tex/context/interface/cont-fr.xml
index 0b420db07..5f552c701 100644
--- a/tex/context/interface/cont-fr.xml
+++ b/tex/context/interface/cont-fr.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="page"/>
<cd:constant type="opposition"/>
<cd:constant type="toujours"/>
+ <cd:constant type="auto"/>
<cd:constant type="force"/>
<cd:constant type="long"/>
<cd:constant type="raz"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="tout"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-it.xml b/tex/context/interface/cont-it.xml
index b746a404b..e62e5bb47 100644
--- a/tex/context/interface/cont-it.xml
+++ b/tex/context/interface/cont-it.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="pagina"/>
<cd:constant type="opposto"/>
<cd:constant type="sempre"/>
+ <cd:constant type="auto"/>
<cd:constant type="forza"/>
<cd:constant type="alto"/>
<cd:constant type="reimposta"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="tutti"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-nl.xml b/tex/context/interface/cont-nl.xml
index a93db0812..dc9d30d54 100644
--- a/tex/context/interface/cont-nl.xml
+++ b/tex/context/interface/cont-nl.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="pagina"/>
<cd:constant type="naast"/>
<cd:constant type="altijd"/>
+ <cd:constant type="auto"/>
<cd:constant type="forceer"/>
<cd:constant type="lang"/>
<cd:constant type="reset"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="alles"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/cont-ro.xml b/tex/context/interface/cont-ro.xml
index 9499180e0..9a778a7b5 100644
--- a/tex/context/interface/cont-ro.xml
+++ b/tex/context/interface/cont-ro.xml
@@ -7562,6 +7562,7 @@
<cd:constant type="pagina"/>
<cd:constant type="opus"/>
<cd:constant type="totdeauna"/>
+ <cd:constant type="auto"/>
<cd:constant type="fortat"/>
<cd:constant type="inalt"/>
<cd:constant type="reset"/>
@@ -9346,6 +9347,8 @@
<cd:constant type="cd:name"/>
</cd:keywords>
<cd:keywords optional="yes" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="tot"/>
</cd:keywords>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/keys-cz.xml b/tex/context/interface/keys-cz.xml
index 4304e23a3..9b8bca360 100644
--- a/tex/context/interface/keys-cz.xml
+++ b/tex/context/interface/keys-cz.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="cz" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="jedna"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interakce"/>
<cd:constant name="interlinespace" value="meziradkovamezera"/>
<cd:constant name="items" value="polozky"/>
+ <cd:constant name="fallback" value="fallback"/>
<cd:constant name="frame" value="ramecek"/>
<cd:constant name="framedepth" value="hloubkaramecku"/>
<cd:constant name="framecorner" value="rohramecku"/>
diff --git a/tex/context/interface/keys-de.xml b/tex/context/interface/keys-de.xml
index 8cc3a1e68..3b085f885 100644
--- a/tex/context/interface/keys-de.xml
+++ b/tex/context/interface/keys-de.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="de" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="eins"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interaktion"/>
<cd:constant name="interlinespace" value="zeilenabstande"/>
<cd:constant name="items" value="posten"/>
+ <cd:constant name="fallback" value="fallback"/>
<cd:constant name="frame" value="rahmen"/>
<cd:constant name="framedepth" value="rahmentiefe"/>
<cd:constant name="framecorner" value="rahmenwinkel"/>
diff --git a/tex/context/interface/keys-en.xml b/tex/context/interface/keys-en.xml
index 44f1ff998..fae771b3a 100644
--- a/tex/context/interface/keys-en.xml
+++ b/tex/context/interface/keys-en.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="en" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="one"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interaction"/>
<cd:constant name="interlinespace" value="interlinespace"/>
<cd:constant name="items" value="items"/>
+ <cd:constant name="fallback" value="fallback"/>
<cd:constant name="frame" value="frame"/>
<cd:constant name="framedepth" value="framedepth"/>
<cd:constant name="framecorner" value="framecorner"/>
diff --git a/tex/context/interface/keys-fr.xml b/tex/context/interface/keys-fr.xml
index 3bd67647c..092430860 100644
--- a/tex/context/interface/keys-fr.xml
+++ b/tex/context/interface/keys-fr.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="fr" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="un"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interaction"/>
<cd:constant name="interlinespace" value="espaceinterligne"/>
<cd:constant name="items" value="elements"/>
+ <cd:constant name="fallback" value="fallback"/>
<cd:constant name="frame" value="cadre"/>
<cd:constant name="framedepth" value="profondeurcadre"/>
<cd:constant name="framecorner" value="coincadre"/>
diff --git a/tex/context/interface/keys-it.xml b/tex/context/interface/keys-it.xml
index 49f05cb8a..bedc84080 100644
--- a/tex/context/interface/keys-it.xml
+++ b/tex/context/interface/keys-it.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="it" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="uno"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interazione"/>
<cd:constant name="interlinespace" value="interlinea"/>
<cd:constant name="items" value="elementi"/>
+ <cd:constant name="fallback" value="fallback"/>
<cd:constant name="frame" value="cornice"/>
<cd:constant name="framedepth" value="profonditacornice"/>
<cd:constant name="framecorner" value="angolocornice"/>
diff --git a/tex/context/interface/keys-nl.xml b/tex/context/interface/keys-nl.xml
index 17f53ade2..0cbd21069 100644
--- a/tex/context/interface/keys-nl.xml
+++ b/tex/context/interface/keys-nl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="nl" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="een"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interactie"/>
<cd:constant name="interlinespace" value="interlinie"/>
<cd:constant name="items" value="items"/>
+ <cd:constant name="fallback" value="terugval"/>
<cd:constant name="frame" value="kader"/>
<cd:constant name="framedepth" value="kaderdiepte"/>
<cd:constant name="framecorner" value="kaderhoek"/>
diff --git a/tex/context/interface/keys-ro.xml b/tex/context/interface/keys-ro.xml
index e12d568b1..0632ec388 100644
--- a/tex/context/interface/keys-ro.xml
+++ b/tex/context/interface/keys-ro.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
-<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.03.25 13:21">
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" name="context" language="ro" version="2006.04.06 23:00">
<cd:variables>
<cd:variable name="one" value="unu"/>
@@ -236,6 +236,7 @@
<cd:constant name="interaction" value="interactiune"/>
<cd:constant name="interlinespace" value="spatiereinterliniara"/>
<cd:constant name="items" value="elemente"/>
+ <cd:constant name="fallback" value="fallback"/>
<cd:constant name="frame" value="frame"/>
<cd:constant name="framedepth" value="adancimeframe"/>
<cd:constant name="framecorner" value="coltframe"/>
diff --git a/tex/context/interface/t-bib.xml b/tex/context/interface/t-bib.xml
new file mode 100644
index 000000000..526e2fdf6
--- /dev/null
+++ b/tex/context/interface/t-bib.xml
@@ -0,0 +1,386 @@
+<?xml version="1.0"?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands"
+ name="context/third/t-bib"
+ language="all" version="2006.02.08">
+
+<cd:command name="setuppublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setuppublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="ams"/>
+ <cd:constant type="apa" default="yes"/>
+ <cd:constant type="apa-de"/>
+ <cd:constant type="apa-fr"/>
+ <cd:constant type="aps"/>
+ <cd:constant type="num"/>
+ <cd:constant type="num-fr"/>
+ <cd:constant type="ssa"/>
+ </cd:parameter>
+ <cd:parameter name="refcommand">
+ <cd:constant type="author"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears" default="yes"/>
+ <cd:constant type="key"/>
+ <cd:constant type="num"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="year"/>
+ <cd:constant type="data"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="url"/>
+ </cd:parameter>
+ <cd:parameter name="sorttype">
+ <cd:constant type="cite" default="yes"/>
+ <cd:constant type="bbl"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all" />
+ <cd:constant type="cite" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="numbering">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="short"/>
+ <cd:constant type="bib"/>
+ </cd:parameter>
+ <cd:parameter name="autohang">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setuppublicationlist" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setuppublicationlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="totalnumber">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="samplesize">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="..."/>
+ <cd:constant type="none"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="local"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="current" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="pagenumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="artauthor">
+ <cd:constant type="\normalauthor"/>
+ <cd:constant type="\normalshortauthor"/>
+ <cd:constant type="\invertedauthor"/>
+ <cd:constant type="\invertedshortauthor" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="\normalauthor"/>
+ <cd:constant type="\normalshortauthor"/>
+ <cd:constant type="\invertedauthor"/>
+ <cd:constant type="\invertedshortauthor" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="editor">
+ <cd:constant type="\normalauthor"/>
+ <cd:constant type="\normalshortauthor"/>
+ <cd:constant type="\invertedauthor"/>
+ <cd:constant type="\invertedshortauthor" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="namesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="lastnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="finalnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="firstnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="juniorsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="vonsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="surnamesep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="authoretallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="authoretaltext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="authoretaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="artauthoretallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="artauthoretaltext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="artauthoretaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="editoretallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="editoretaltext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="editoretaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="setupcite" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setupcite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="author"/>
+ <cd:constant type="year"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="key"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="data"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="url"/>
+ <cd:constant type="num"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="andtext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="otherstext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="pubsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="lastpubsep">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="setuppublicationlayout" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setuppublicationlayout"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="article"/>
+ <cd:constant type="book"/>
+ <cd:constant type="booklet"/>
+ <cd:constant type="conference"/>
+ <cd:constant type="electronic"/>
+ <cd:constant type="inbook"/>
+ <cd:constant type="incollection"/>
+ <cd:constant type="inproceedings"/>
+ <cd:constant type="manual"/>
+ <cd:constant type="mastersthesis"/>
+ <cd:constant type="misc"/>
+ <cd:constant type="patent"/>
+ <cd:constant type="periodical"/>
+ <cd:constant type="phdthesis"/>
+ <cd:constant type="proceedings"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="techreport"/>
+ <cd:constant type="unpublished"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="setupbibtex" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="setupbibtex"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="database">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sort">
+ <cd:constant type="title"/>
+ <cd:constant type="author"/>
+ <cd:constant type="short"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="usepublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="usepublications"/>
+ </cd:sequence>
+ <cd:arguments list="yes">
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+</cd:command>
+
+
+<cd:command name="publication" file="t-bib.tex" type="environment">
+ <cd:sequence>
+ <cd:string value="publication"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="k">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="u">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="o">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="cite" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="cite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="author"/>
+ <cd:constant type="year"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="key"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="data"/>
+ <cd:constant type="url"/>
+ <cd:constant type="num"/>
+ </cd:keywords>
+ <cd:reference list="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="citealt" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="cite"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments optional="yes" list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="author"/>
+ <cd:constant type="year"/>
+ <cd:constant type="authoryear"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="key"/>
+ <cd:constant type="serial"/>
+ <cd:constant type="page"/>
+ <cd:constant type="short"/>
+ <cd:constant type="type"/>
+ <cd:constant type="doi"/>
+ <cd:constant type="data"/>
+ <cd:constant type="url"/>
+ <cd:constant type="num"/>
+ </cd:parameter>
+ <cd:parameter name="extras">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupcite"/>
+ </cd:assignments>
+ <cd:reference list="yes"/>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="placepublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="placepublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments optional="yes" list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+<cd:command name="completepublications" file="t-bib.tex">
+ <cd:sequence>
+ <cd:string value="completepublications"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments optional="yes" list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+</cd:command>
+
+
+</cd:interface>
diff --git a/tex/context/patterns/lang-agr.hyp b/tex/context/patterns/lang-agr.hyp
new file mode 100644
index 000000000..f0564de0f
--- /dev/null
+++ b/tex/context/patterns/lang-agr.hyp
@@ -0,0 +1,10 @@
+% context hyphenation file, see lang-agr.rme for original comment
+
+% source of data: grahyph4.tex oldgrhyph.tex
+
+% begin hyphenation data
+
+\hyphenation {}
+
+% end hyphenation data
+
diff --git a/tex/context/patterns/lang-agr.pat b/tex/context/patterns/lang-agr.pat
new file mode 100644
index 000000000..b8c7b216b
--- /dev/null
+++ b/tex/context/patterns/lang-agr.pat
@@ -0,0 +1,2026 @@
+% context pattern file, see lang-agr.rme for original comment
+
+% source of data: grahyph4.tex oldgrhyph.tex
+
+% begin pattern data
+
+\patterns {
+[greekalpha]1
+[greekepsilon]1
+[greeketa]1
+[greekiota]1
+[greekomicron]1
+[greekupsilon]1
+[greekomega]1
+[greekalpha]2[greekIotadialytika]1
+[greeketa]2[greekIotadialytika]1
+[greekomega]2[greekIotadialytika]1
+[greekalpha]2[greekiota]
+[greekalpha]2[greekiotaoxia]
+[greekalpha]2[greekiotavaria]
+[greekalpha]2[greekiotaperispomeni]
+[greekalpha]2[greekiotapsili]
+[greekalpha]2[greekiotapsilitonos]
+[greekalpha]2[greekiotapsilivaria]
+[greekalpha]2[greekiotapsiliperispomeni]
+[greekalpha]2[greekiotadasia]
+[greekalpha]2[greekiotadasiatonos]
+[greekalpha]2[greekiotadasiavaria]
+[greekalpha]2[greekiotadasiaperispomeni]
+[greekalphaoxia]3[greekiota]
+[greekalphaperispomeni]3[greekiota]
+[greekalphapsili]3[greekiota]
+[greekalphadasia]3[greekiota]
+[greekalpha]2[greekupsilon]
+[greekalpha]2[greekupsilonoxia]
+[greekalpha]2[greekupsilonvaria]
+[greekalpha]2[greekupsilonperispomeni]
+[greekalpha]2[greekupsilonpsili]
+[greekalpha]2[greekupsilonpsilitonos]
+[greekalpha]2[psili][greekupsilonvaria]
+[greekalpha]2[greekupsilonpsiliperispomeni]
+[greekalpha]2[greekupsilondasia]
+[greekalpha]2[greekupsilondasiatonos]
+[greekalpha]2[greekupsilondasiavaria]
+[greekalpha]2[greekupsilondasiaperispomeni]
+[greekalphaoxia]3[greekupsilon]
+[greekalphaperispomeni]3[greekupsilon]
+[greekalphapsili]3[greekupsilon]
+[greekalphadasia]3[greekupsilon]
+[greekepsilon]2[greekiota]
+[greekepsilon]2[greekiotaoxia]
+[greekepsilon]2[greekiotavaria]
+[greekepsilon]2[greekiotaperispomeni]
+[greekepsilon]2[greekiotapsili]
+[greekepsilon]2[greekiotapsilitonos]
+[greekepsilon]2[greekiotapsilivaria]
+[greekepsilon]2[greekiotapsiliperispomeni]
+[greekepsilon]2[greekiotadasia]
+[greekepsilon]2[greekiotadasiatonos]
+[greekepsilon]2[greekiotadasiavaria]
+[greekepsilon]2[greekiotadasiaperispomeni]
+[greekepsilonoxia]3[greekiota]
+[greekepsilonpsili]3[greekiota]
+[greekepsilondasia]3[greekiota]
+[greekepsilon]2[greekupsilon]
+[greekepsilon]2[greekupsilonoxia]
+[greekepsilon]2[greekupsilonvaria]
+[greekepsilon]2[greekupsilonperispomeni]
+[greekepsilon]2[greekupsilonpsili]
+[greekepsilon]2[greekupsilonpsilitonos]
+[greekepsilon]2[psili][greekupsilonvaria]
+[greekepsilon]2[greekupsilonpsiliperispomeni]
+[greekepsilon]2[greekupsilondasia]
+[greekepsilon]2[greekupsilondasiatonos]
+[greekepsilon]2[greekupsilondasiavaria]
+[greekepsilon]2[greekupsilondasiaperispomeni]
+[greekepsilonoxia]3[greekupsilon]
+[greekepsilondasia]3[greekupsilon]
+[greekepsilonpsili]3[greekupsilon]
+[greeketa]2[greekupsilon]
+[greeketa]2[greekupsilonoxia]
+[greeketa]2[greekupsilonvaria]
+[greeketa]2[greekupsilonperispomeni]
+[greeketa]2[greekupsilonpsili]
+[greeketa]2[greekupsilonpsilitonos]
+[greeketa]2[psili][greekupsilonvaria]
+[greeketa]2[greekupsilonpsiliperispomeni]
+[greeketa]2[greekupsilondasia]
+[greeketa]2[greekupsilondasiatonos]
+[greeketa]2[greekupsilondasiavaria]
+[greeketa]2[greekupsilondasiaperispomeni]
+[greeketaoxia]3[greekupsilon]
+[greeketaperispomeni]3[greekupsilon]
+[greeketapsili]3[greekupsilon]
+[greeketadasia]3[greekupsilon]
+[greekomicron]2[greekiota]
+[greekomicron]2[greekiotaoxia]
+[greekomicron]2[greekiotavaria]
+[greekomicron]2[greekiotaperispomeni]
+[greekomicron]2[greekiotapsili]
+[greekomicron]2[greekiotapsilitonos]
+[greekomicron]2[greekiotapsilivaria]
+[greekomicron]2[greekiotapsiliperispomeni]
+[greekomicron]2[greekiotadasia]
+[greekomicron]2[greekiotadasiatonos]
+[greekomicron]2[greekiotadasiavaria]
+[greekomicron]2[greekiotadasiaperispomeni]
+[greekomicronoxia]3[greekiota]
+[greekomicronpsili]3[greekiota]
+[greekomicrondasia]3[greekiota]
+[greekomicron]2[greekupsilon]
+[greekomicron]2[greekupsilonoxia]
+[greekomicron]2[greekupsilonvaria]
+[greekomicron]2[greekupsilonperispomeni]
+[greekomicron]2[greekupsilonpsili]
+[greekomicron]2[greekupsilonpsilitonos]
+[greekomicron]2[psili][greekupsilonvaria]
+[greekomicron]2[greekupsilonpsiliperispomeni]
+[greekomicron]2[greekupsilondasia]
+[greekomicron]2[greekupsilondasiatonos]
+[greekomicron]2[greekupsilondasiavaria]
+[greekomicron]2[greekupsilondasiaperispomeni]
+[greekomicronoxia]3[greekupsilon]
+[greekomicronpsili]3[greekupsilon]
+[greekomicrondasia]3[greekupsilon]
+[greekupsilon]2[greekiota]
+[greekupsilon]2[greekiotaoxia]
+[greekupsilon]2[greekiotavaria]
+[greekupsilon]2[greekiotaperispomeni]
+[greekupsilon]2[greekiotapsili]
+[greekupsilon]2[greekiotapsilitonos]
+[greekupsilon]2[greekiotapsilivaria]
+[greekupsilon]2[greekiotapsiliperispomeni]
+[greekupsilon]2[greekiotadasia]
+[greekupsilon]2[greekiotadasiatonos]
+[greekupsilon]2[greekiotadasiavaria]
+[greekupsilon]2[greekiotadasiaperispomeni]
+[greekupsilonoxia]3[greekiota]
+[greekupsilonperispomeni]3[greekiota]
+[greekupsilonpsili]3[greekiota]
+[greekupsilondasia]3[greekiota]
+[greekomicron][greekupsilon]3[greekiota]
+[greekomicronoxia][greekupsilon]4[greekiota]
+[greekomicronpsili][greekupsilon]4[greekiota]
+[greekomicrondasia][greekupsilon]4[greekiota]
+[greekomicron]3[greekupsilon][greekiotaoxia]
+[greekomicron]3[greekupsilon][greekiotaperispomeni]
+4[greekbeta].
+4[greekgamma].
+4[greekdelta].
+4[greekzeta].
+4[greektheta].
+4[greekkappa].
+4[greeklambda].
+4[greekmu].
+4[greeknu].
+4[greekxi].
+4[greekpi].
+4[greekrho].
+4[greeksigma].
+4[greekfinalsigma].
+4[greektau].
+4[greekphi].
+4[greekchi].
+4[greekpsi].
+4[oxia][oxia]
+4[greekbeta][oxia][oxia]
+4[greekgamma][oxia][oxia]
+4[greekdelta][oxia][oxia]
+4[greekzeta][oxia][oxia]
+4[greektheta][oxia][oxia]
+4[greekkappa][oxia][oxia]
+4[greeklambda][oxia][oxia]
+4[greekmu][oxia][oxia]
+4[greeknu][oxia][oxia]
+4[greekxi][oxia][oxia]
+4[greekpi][oxia][oxia]
+4[greekrho][oxia][oxia]
+4[greeksigma][oxia][oxia]
+4[greektau][oxia][oxia]
+4[greekphi][oxia][oxia]
+4[greekchi][oxia][oxia]
+4[greekpsi][oxia][oxia]
+.[greekbeta]4
+.[greekgamma]4
+.[greekdelta]4
+.[greekzeta]4
+.[greektheta]4
+.[greekkappa]4
+.[greeklambda]4
+.[greekmu]4
+.[greeknu]4
+.[greekxi]4
+.[greekpi]4
+.[greekrho]4
+.[greeksigma]4
+.[greektau]4
+.[greekphi]4
+.[greekchi]4
+.[greekpsi]4
+2[greekbeta]1[greekbeta]
+2[greekgamma]1[greekgamma]
+2[greekdelta]1[greekdelta]
+2[greekzeta]1[greekzeta]
+2[greektheta]1[greektheta]
+2[greekkappa]1[greekkappa]
+2[greeklambda]1[greeklambda]
+2[greekmu]1[greekmu]
+2[greeknu]1[greeknu]
+2[greekpi]1[greekpi]
+2[greekrho]1[greekrho]
+[psili]2[greekrho]1[dasia]2[greekrho]
+2[greeksigma]1[greeksigma]
+2[greektau]1[greektau]
+2[greekphi]1[greekphi]
+2[greekchi]1[greekchi]
+2[greekpsi]1[greekpsi]
+2[greekbeta]1[greekgamma]
+2[greekbeta]1[greekzeta]
+2[greekbeta]1[greektheta]
+2[greekbeta]1[greekkappa]
+2[greekbeta]1[greekxi]
+2[greekbeta]1[greekpi]
+2[greekbeta]1[greeksigma]
+2[greekbeta]1[greektau]
+2[greekbeta]1[greekphi]
+2[greekbeta]1[greekchi]
+2[greekbeta]1[greekpsi]
+2[greekgamma]1[greekbeta]
+2[greekgamma]1[greekzeta]
+2[greekgamma]1[greektheta]
+2[greekgamma]1[greekkappa]
+2[greekgamma]1[greekxi]
+2[greekgamma]1[greekpi]
+2[greekgamma]1[greeksigma]
+2[greekgamma]1[greektau]
+2[greekgamma]1[greekphi]
+2[greekgamma]1[greekchi]
+2[greekgamma]1[greekpsi]
+2[greekdelta]1[greekbeta]
+2[greekdelta]1[greekgamma]
+2[greekdelta]1[greekzeta]
+2[greekdelta]1[greektheta]
+2[greekdelta]1[greekkappa]
+2[greekdelta]1[greeklambda]
+2[greekdelta]1[greekxi]
+2[greekdelta]1[greekpi]
+2[greekdelta]1[greeksigma]
+2[greekdelta]1[greektau]
+2[greekdelta]1[greekphi]
+2[greekdelta]1[greekchi]
+2[greekdelta]1[greekpsi]
+2[greekzeta]1[greekbeta]
+2[greekzeta]1[greekgamma]
+2[greekzeta]1[greekdelta]
+2[greekzeta]1[greektheta]
+2[greekzeta]1[greekkappa]
+2[greekzeta]1[greeklambda]
+2[greekzeta]1[greekmu]
+2[greekzeta]1[greeknu]
+2[greekzeta]1[greekxi]
+2[greekzeta]1[greekpi]
+2[greekzeta]1[greekrho]
+2[greekzeta]1[greeksigma]
+2[greekzeta]1[greektau]
+2[greekzeta]1[greekphi]
+2[greekzeta]1[greekchi]
+2[greekzeta]1[greekpsi]
+2[greektheta]1[greekbeta]
+2[greektheta]1[greekgamma]
+2[greektheta]1[greekdelta]
+2[greektheta]1[greekzeta]
+2[greektheta]1[greekkappa]
+2[greektheta]1[greekxi]
+2[greektheta]1[greekpi]
+2[greektheta]1[greeksigma]
+2[greektheta]1[greektau]
+2[greektheta]1[greekphi]
+2[greektheta]1[greekchi]
+2[greektheta]1[greekpsi]
+2[greekkappa]1[greekbeta]
+2[greekkappa]1[greekgamma]
+2[greekkappa]1[greekdelta]
+2[greekkappa]1[greekzeta]
+2[greekkappa]1[greektheta]
+2[greekkappa]1[greekxi]
+2[greekkappa]1[greekpi]
+2[greekkappa]1[greeksigma]
+2[greekkappa]1[greekphi]
+2[greekkappa]1[greekchi]
+2[greekkappa]1[greekpsi]
+2[greeklambda]1[greekbeta]
+2[greeklambda]1[greekgamma]
+2[greeklambda]1[greekdelta]
+2[greeklambda]1[greekzeta]
+2[greeklambda]1[greektheta]
+2[greeklambda]1[greekkappa]
+2[greeklambda]1[greekmu]
+2[greeklambda]1[greeknu]
+2[greeklambda]1[greekxi]
+2[greeklambda]1[greekpi]
+2[greeklambda]1[greekrho]
+2[greeklambda]1[greeksigma]
+2[greeklambda]1[greektau]
+2[greeklambda]1[greekphi]
+2[greeklambda]1[greekchi]
+2[greeklambda]1[greekpsi]
+2[greekmu]1[greekbeta]
+2[greekmu]1[greekgamma]
+2[greekmu]1[greekdelta]
+2[greekmu]1[greekzeta]
+2[greekmu]1[greektheta]
+2[greekmu]1[greekkappa]
+2[greekmu]1[greeklambda]
+2[greekmu]1[greekxi]
+2[greekmu]1[greekpi]
+2[greekmu]1[greekrho]
+2[greekmu]1[greeksigma]
+2[greekmu]1[greektau]
+2[greekmu]1[greekphi]
+2[greekmu]1[greekchi]
+2[greekmu]1[greekpsi]
+2[greeknu]1[greekbeta]
+2[greeknu]1[greekgamma]
+2[greeknu]1[greekdelta]
+2[greeknu]1[greekzeta]
+2[greeknu]1[greektheta]
+2[greeknu]1[greekkappa]
+2[greeknu]1[greeklambda]
+2[greeknu]1[greekmu]
+2[greeknu]1[greekxi]
+2[greeknu]1[greekpi]
+2[greeknu]1[greekrho]
+2[greeknu]1[greeksigma]
+2[greeknu][greekfinalsigma].
+2[greeknu]1[greektau]
+2[greeknu]1[greekphi]
+2[greeknu]1[greekchi]
+2[greeknu]1[greekpsi]
+2[greekxi]1[greekbeta]
+2[greekxi]1[greekgamma]
+2[greekxi]1[greekdelta]
+2[greekxi]1[greekzeta]
+2[greekxi]1[greektheta]
+2[greekxi]1[greekkappa]
+2[greekxi]1[greeklambda]
+2[greekxi]1[greekmu]
+2[greekxi]1[greeknu]
+2[greekxi]1[greekpi]
+2[greekxi]1[greekrho]
+2[greekxi]1[greeksigma]
+2[greekxi]1[greektau]
+2[greekxi]1[greekphi]
+2[greekxi]1[greekchi]
+2[greekxi]1[greekpsi]
+2[greekpi]1[greekbeta]
+2[greekpi]1[greekgamma]
+2[greekpi]1[greekdelta]
+2[greekpi]1[greekzeta]
+2[greekpi]1[greektheta]
+2[greekpi]1[greekkappa]
+2[greekpi]1[greekxi]
+2[greekpi]1[greeksigma]
+2[greekpi]1[greekphi]
+2[greekpi]1[greekchi]
+2[greekpi]1[greekpsi]
+2[greekrho]1[greekbeta]
+2[greekrho]1[greekgamma]
+2[greekrho]1[greekdelta]
+2[greekrho]1[greekzeta]
+2[greekrho]1[greektheta]
+2[greekrho]1[greekkappa]
+2[greekrho]1[greeklambda]
+2[greekrho]1[greekmu]
+2[greekrho]1[greeknu]
+2[greekrho]1[greekxi]
+2[greekrho]1[greekpi]
+2[greekrho]1[greeksigma]
+2[greekrho]1[greektau]
+2[greekrho]1[greekphi]
+2[greekrho]1[greekchi]
+2[greekrho]1[greekpsi]
+2[greeksigma]1[greekdelta]
+2[greeksigma]1[greekzeta]
+2[greeksigma]1[greeklambda]
+2[greeksigma]1[greeknu]
+2[greeksigma]1[greekxi]
+2[greeksigma]1[greekrho]
+2[greeksigma]1[greekpsi]
+2[greektau]1[greekbeta]
+2[greektau]1[greekgamma]
+2[greektau]1[greekdelta]
+2[greektau]1[greekzeta]
+2[greektau]1[greektheta]
+2[greektau]1[greekkappa]
+2[greektau]1[greekxi]
+2[greektau]1[greekpi]
+2[greektau]1[greeksigma]
+2[greektau]1[greekphi]
+2[greektau]1[greekchi]
+2[greektau]1[greekpsi]
+2[greekphi]1[greekbeta]
+2[greekphi]1[greekgamma]
+2[greekphi]1[greekdelta]
+2[greekphi]1[greekzeta]
+2[greekphi]1[greekkappa]
+2[greekphi]1[greekxi]
+2[greekphi]1[greekpi]
+2[greekphi]1[greeksigma]
+2[greekphi]1[greektau]
+2[greekphi]1[greekchi]
+2[greekphi]1[greekpsi]
+2[greekchi]1[greekbeta]
+2[greekchi]1[greekgamma]
+2[greekchi]1[greekdelta]
+2[greekchi]1[greekzeta]
+2[greekchi]1[greekkappa]
+2[greekchi]1[greekxi]
+2[greekchi]1[greekpi]
+2[greekchi]1[greeksigma]
+2[greekchi]1[greektau]
+2[greekchi]1[greekphi]
+2[greekchi]1[greekpsi]
+2[greekpsi]1[greekbeta]
+2[greekpsi]1[greekgamma]
+2[greekpsi]1[greekdelta]
+2[greekpsi]1[greekzeta]
+2[greekpsi]1[greektheta]
+2[greekpsi]1[greekkappa]
+2[greekpsi]1[greeklambda]
+2[greekpsi]1[greekmu]
+2[greekpsi]1[greeknu]
+2[greekpsi]1[greekxi]
+2[greekpsi]1[greekpi]
+2[greekpsi]1[greekrho]
+2[greekpsi]1[greeksigma]
+2[greekpsi]1[greektau]
+2[greekpsi]1[greekphi]
+2[greekpsi]1[greekchi]
+4[greekbeta][greekdelta][oxia][oxia]
+4[greekbeta][greeklambda][oxia][oxia]
+4[greekbeta][greekmu][oxia][oxia]
+4[greekbeta][greeknu][oxia][oxia]
+4[greekbeta][greekrho][oxia][oxia]
+4[greekgamma][greekdelta][oxia][oxia]
+4[greekgamma][greeklambda][oxia][oxia]
+4[greekgamma][greekmu][oxia][oxia]
+4[greekgamma][greeknu][oxia][oxia]
+4[greekgamma][greekrho][oxia][oxia]
+4[greekdelta][greekmu][oxia][oxia]
+4[greekdelta][greeknu][oxia][oxia]
+4[greekdelta][greekrho][oxia][oxia]
+4[greekzeta][greekbeta][oxia][oxia]
+4[greektheta][greeklambda][oxia][oxia]
+4[greeklambda][greekmu][oxia][oxia]
+4[greektheta][greeknu][oxia][oxia]
+4[greektheta][greekrho][oxia][oxia]
+4[greekkappa][greeklambda][oxia][oxia]
+4[greekkappa][greekmu][oxia][oxia]
+4[greekkappa][greeknu][oxia][oxia]
+4[greekkappa][greekrho][oxia][oxia]
+4[greekkappa][greektau][oxia][oxia]
+4[greekmu][greeknu][oxia][oxia]
+4[greekpi][greeklambda][oxia][oxia]
+4[greekpi][greekmu][oxia][oxia]
+4[greekpi][greeknu][oxia][oxia]
+4[greekpi][greekrho][oxia][oxia]
+4[greekpi][greektau][oxia][oxia]
+4[greeksigma][greekbeta][oxia][oxia]
+4[greeksigma][greekgamma][oxia][oxia]
+4[greeksigma][greekdelta][oxia][oxia]
+4[greeksigma][greektheta][oxia][oxia]
+4[greeksigma][greekkappa][oxia][oxia]
+4[greeksigma][greekmu][oxia][oxia]
+4[greeksigma][greekpi][oxia][oxia]
+4[greeksigma][greektau][oxia][oxia]
+4[greeksigma][greekphi][oxia][oxia]
+4[greeksigma][greekchi][oxia][oxia]
+4[greekphi][greektheta][oxia][oxia]
+4[greekphi][greeklambda][oxia][oxia]
+4[greekphi][greekmu][oxia][oxia]
+4[greekphi][greeknu][oxia][oxia]
+4[greekphi][greekrho][oxia][oxia]
+4[greekchi][greektheta][oxia][oxia]
+4[greekchi][greeklambda][oxia][oxia]
+4[greekchi][greekmu][oxia][oxia]
+4[greekchi][greeknu][oxia][oxia]
+4[greekchi][greekrho][oxia][oxia]
+[greekalphapsili][greekgamma][greekomega]2[greeknu]1[greekalphaoxia][greekrho]
+[greekalphapsili][greekgamma][greekomega]2[greeknu]1[greekalpha][greekrho]
+[greekalphapsili][greekdelta][greekiota][greekepsilonoxia]2[greekxi]1
+[greekalphapsili][greekdelta][greekiota][greekepsilon]2[greekxi]1
+[greekalphapsili][greekdelta][greekupsilon]2[greeksigma]1[greekomegaoxia]
+[greekalphapsili][greekdelta][greekupsilon]2[greeksigma]1[greekomega]
+[greekalphadasia][greeklambda][greekomicronoxia]2[greeksigma]1
+[greekalphadasia][greeklambda][greekomicron]2[greeksigma]1
+[greekalphapsili][greekmu][greekpi][greekalpha][greeklambda][greekiotaoxia]2[greeknu]1
+[greekalphapsili][greekmu][greekpi][greekalpha][greeklambda][greekiota]2[greeknu]1
+[greekalphapsili][greekmu][greekphi][greekiotaoxia]2[greeksigma]1[greekbeta]
+[greekalphapsili][greekmu][greekphi][greekiota]2[greeksigma]1[greekbeta]
+[greekalphapsili][greekmu][greekphi][greekiotaoxia]2[greeksigma]1[greekomega]
+[greekalphapsili][greekmu][greekphi][greekiota]2[greeksigma]1[greekomegaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeketaoxia][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeketavaria][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeketaoxia][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeketavaria][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilon][greekiotaperispomeni].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeketaperispomeni].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilonoxia][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilonvaria][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilonoxia][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilonvaria][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilon][greekiotaperispomeni][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilon][greekiotaperispomeni][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekomegaperispomeni][greeknu].
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekepsilonoxia][greeksigma][greekiota]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeketaperispomeni]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekgamma][greekkappa][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekkappa][greekupsilonoxia]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greekgamma][greeknu]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekgamma][greeknu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greeknu]
+[greekalphapsili]3[greeknu]2[greekalpha][greekgamma][greeknu][greekalphaoxia]
+[greekalphapsili]3[greeknu]2[greekalpha][greekgamma][greeknu][greekomega]
+[greekalphapsili]3[greeknu]2[greekalphaoxia][greekgamma][greeknu][greekomega]
+[greekalphapsili]3[greeknu]2[greekalpha][greekgamma][greeknu][greekomegaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekrho][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekrho][greekiotaperispomeni]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekrho][greekiota]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekgamma][greekomega][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekgamma][greekomegaoxia][greekgamma]
+[greekalphapsili]3[greeknu]2[greekalpha][greekgamma][greekomegaoxia][greekgamma][greekiota]
+[greekalphapsili]3[greeknu]2[greekalpha][greekgamma][greekomega][greekgamma][greekiotaoxia]
+[greekalphapsili]4[greeknu]3[greekalpha][greekgamma][greekomega][greekgamma][greekiotaoxia][greekalpha]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekdelta][greekepsilon][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greekdelta][greekepsilonoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekepsilon][greeklambda][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekepsilonoxia][greeklambda][greekpi]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greektheta][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greektheta][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiotaoxia][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greekdelta]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greekiota][greekmu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiotaoxia][greekmu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greekmu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiotaoxia][greeksigma][greektheta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greeksigma][greektheta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greeksigma][greekiota]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greeksigma][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiotaoxia][greeksigma][greekchi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greeksigma][greekchi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiotaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekiota][greektau]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekkappa][greekalpha][greeknu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekkappa][greekalphaoxia][greeknu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekkappa][greekomicronoxia][greeklambda][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greekkappa][greekomicron][greeklambda][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekdelta]
+[greekalphapsili]3[greeknu]2[greekalpha][greeklambda][greekdelta][greekalpha]
+[greekalphapsili]3[greeknu]2[greekalpha][greeklambda][greekdelta][greeketaoxia][greeksigma][greekkappa]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekepsilon][greekiota][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekepsilon][greekiotaoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekepsilon][greekiota][greekphi]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekepsilon][greekiota][greekphi]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekepsilon][greekiotaoxia][greekphi]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greeketaoxia][greektheta]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greeketa][greektheta]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greektheta]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greektheta]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekiota][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekiotaoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekiota][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekiotaoxia][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekkappa]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeklambda][greekkappa]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekkappa]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greeklambda]
+[greekalphapsili]3[greeknu]2[greekalphaoxia][greeklambda][greeklambda][greekomicron]
+[greekalphapsili]3[greeknu]2[greekalphaoxia][greeklambda][greeklambda][greekepsilon]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeklambda][greekmu]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekmu]
+[greekalphapsili]2[greeknu]1[greekalpha][greeklambda][greekmu]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeklambda][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekomicron][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekomegaiotasub].
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeklambda][greekepsilon].
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekomicron][greekiota]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greekomega][greeknu].
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeklambda][greektau]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeklambda][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekalphaoxia][greekxi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekalpha][greekxi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekalphaoxia][greekrho][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekalpha][greekrho][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekepsilonoxia][greeklambda][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekepsilon][greeklambda][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekpi]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekmu][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekmu][greekphi]
+[greekalphapsili][greeknu][greekalpha][greekmu][greekphi][greekiota]2[greeksigma]1
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greekalphaoxia][greekgamma][greekkappa]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greekalpha][greekgamma][greekkappa]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeknu][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeknu][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greektheta]
+[greekalphapsili]3[greeknu]2[greekalpha][greeknu][greektheta][greekepsilonoxia]
+[greekalphapsili]4[greeknu]3[greekalpha][greeknu][greektheta][greekepsilonoxia][greekfinalsigma].
+[greekalphapsili]4[greeknu]3[greekalpha][greeknu][greektheta][greekepsilonvaria][greekfinalsigma].
+[greekalphapsili]4[greeknu]3[greekalpha][greeknu][greektheta][greekepsilonoxia][greeksigma].
+[greekalphapsili]4[greeknu]3[greekalpha][greeknu][greektheta][greekepsilonvaria][greeksigma].
+[greekalphapsili]4[greeknu]3[greekalpha][greeknu][greektheta][greekepsilonoxia][greeksigma][greekiota]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeknu][greekiota][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greekiotaoxia][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greekiotaoxia][greekomega]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greektau][greekalpha][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greektau][greekalpha][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greektau][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greeknu][greektau][greekiota]
+[greekalphapsili][greeknu][greekalpha]2[greekxi]1[greekalpha][greekgamma]
+[greekalphapsili][greeknu][greekalphaoxia]2[greekxi]1[greekalpha][greeknu]
+[greekalphapsili][greeknu][greekalpha]2[greekxi]1[greekalphaoxia][greeknu]
+[greekalphapsili][greeknu][greekalpha]2[greekxi]1[greekalpha][greeknu]
+[greekalphapsili][greeknu][greekalphaoxia]2[greekxi]1[greekalpha][greekrho]
+[greekalphapsili][greeknu][greekalpha]2[greekxi]1[greekalphaoxia][greekrho]
+[greekalphapsili][greeknu][greekalphaoxia]2[greekxi]1[greekiota][greekpi]
+[greekalphapsili][greeknu][greekalpha]2[greekxi]1[greekiotaoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiota][greekomicronoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiota][greekomicron][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiota][greekomicronoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiota][greekomicron][greekpi]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekxi][greekiota][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiotaoxia][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiotaoxia][greekomega]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiotaoxia][greekalpha]
+[greekalphapsili]2[greeknu]1[greekalpha][greekxi][greekiotaperispomeni][greekalpha]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekalphaoxia][greeklambda][greeklambda][greekalpha]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekalpha][greeklambda][greeklambda][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekalphaoxia][greekrho][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekalpha][greekrho][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekalpha][greekupsilonoxia][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekalpha][greekupsilon][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greekbeta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekbeta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekdelta][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekdelta][greeketa]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greekdelta][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekdelta][greekomicronoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greekdelta][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekdelta][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greeklambda][greekalpha][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greeklambda][greekalpha][greekupsilonoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greeklambda][greekomicronoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greeklambda][greekomicron]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greeklambda][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greeklambda][greekupsilonoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greeknu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greeknu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greekpi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greeksigma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greeksigma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greektau][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greektau][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greektau][greekmu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greektau][greekmu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicronoxia][greektau][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekpi][greekomicron][greektau][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekrho][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekrho][greekalpha]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekrho]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greekrho]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greekiotaoxia][greektau]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greekiotaperispomeni][greektau]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greekiota][greektau]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greekpi]
+[greekalphapsili]3[greeknu]2[greekalphaoxia][greekrho][greekrho]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greekrho]
+[greekalphapsili]4[greeknu]3[greekalpha][greekrho][greekrho][greekalpha][greekgamma]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greektau]
+[greekalphapsili]3[greeknu]2[greekalpha][greekrho][greekupsilonoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeksigma][greekkappa][greeketa]
+[greekalphapsili]2[greeknu]1[greekalpha][greeksigma][greekkappa][greeketaoxia]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greeksigma][greekpi][greekiota]
+[greekalphapsili]2[greeknu]1[greekalpha][greeksigma][greekpi][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeksigma][greeksigma][greekalpha][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greeksigma][greeksigma][greekalphaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greeksigma][greektau][greekepsilon][greekiota]
+[greekalphapsili]2[greeknu]1[greekalpha][greeksigma][greektau][greekepsilon][greekiotaoxia]
+[greekalphapsili]3[greeknu]2[greekalpha][greeksigma][greektau][greekepsilon][greekiotaoxia][greekbeta]
+[greekalphapsili]3[greeknu]2[greekalphaoxia][greeksigma][greektau][greekepsilon][greekiota][greekrho]
+[greekalphapsili]3[greeknu]2[greekalpha][greeksigma][greektau][greekepsilon][greekiotaoxia][greekrho]
+[greekalphapsili]3[greeknu]2[greekalphaoxia][greeksigma][greektau][greekepsilon][greekiota][greekchi]
+[greekalphapsili]3[greeknu]2[greekalpha][greeksigma][greektau][greekepsilon][greekiotaoxia][greekchi]
+[greekalphapsili]2[greeknu]1[greekalpha][greektau][greekepsilon][greekiotavaria].
+[greekalphapsili]2[greeknu]1[greekalpha][greektau][greekepsilon][greekiotaoxia].
+[greekalphapsili]2[greeknu]1[greekalpha][greektau][greekiotavaria].
+[greekalphapsili]2[greeknu]1[greekalpha][greektau][greekiotaoxia].
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greektau][greekomicron][greekfinalsigma].
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greektau][greekomicron][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greektau][greekomicron][greekupsilon].
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greektau][greekomega]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greektau][greekomicron][greeknu].
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greektau][greekepsilon]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greektau][greekomicron][greekiota].
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greektau][greekomicron][greekiota][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greektau][greekomicron][greekiota][greeksigma].
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greektau][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greektau][greektau]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilonoxia][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilon][greekgamma]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilonoxia][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilon][greekdelta]
+[greekalphapsili]3[greeknu]2[greekalpha][greekupsilon][greekdelta][greekiotaoxia]
+[greekalphapsili]3[greeknu]2[greekalpha][greekupsilon][greekdelta][greekiota]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greekupsilon][greekdelta]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greekupsilon][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilonoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilonoxia][greekxi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilon][greekxi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilonoxia][greekchi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekupsilon][greekchi]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekalpha][greekiotaoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekalpha][greekiota][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greeketavaria]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekomicron][greekupsilonperispomeni]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greeketaperispomeni]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekepsilon][greekiotaperispomeni]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekomicron][greekiotaperispomeni]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekphi][greekomegaperispomeni][greeknu].
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekepsilonoxia]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekepsilonvaria]
+[greekalphapsili]3[greeknu]2[greekalpha][greekphi][greeketaperispomeni][greeknu]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekrho][greekomicronoxia][greekdelta]
+[greekalphapsili]2[greeknu]1[greekalpha][greekphi][greekrho][greekomicron][greekdelta]
+[greekalphapsilitonos]2[greeknu]1[greekalpha][greekphi][greekrho]
+[greekalphapsili]2[greeknu]1[greekalphaoxia][greekphi][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekchi][greekupsilonoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekalpha][greekchi][greekupsilon][greekrho]
+[greekalphapsili][greeknu][greekdelta][greekrho][greekomicronoxia]2[greeksigma]1[greekalpha]
+[greekalphapsili][greeknu][greekdelta][greekrho][greekomicron]2[greeksigma]1[greekalpha]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekgamma][greekgamma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekgamma][greekgamma]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekgamma][greekepsilon][greekrho][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekgamma][greekepsilonoxia][greekrho][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekgamma][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekgamma][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekgamma][greekchi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekdelta][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekdelta][greekalpha]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekdelta][greekepsilon][greeksigma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekdelta][greekepsilonoxia][greeksigma]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekdelta][greekrho][greekalpha][greeksigma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekdelta][greekrho][greekalphaoxia][greeksigma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekepsilonoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekepsilon][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektheta][greekepsilonoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektheta][greekepsilon][greeklambda]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greektheta][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektheta][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia][greekdelta][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greekdelta][greekepsilonoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia][greekdelta][greekomega]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greekdelta][greekomegaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia][greekkappa][greekalpha]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greekkappa][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greekkappa][greekomicronoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greekkappa][greekomicron]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greeklambda][greekepsilon][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota][greeklambda][greekepsilon][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia][greekmu][greekalpha]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia]2[greeksigma]1[greekalpha][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota]2[greeksigma]1[greekalphaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia]2[greeksigma]1[greekomicron]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota]2[greeksigma]1[greekomicronoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota]2[greeksigma]1[greekphi][greekomicron][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiotaoxia]2[greeksigma]1[greekphi][greekomicron][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekiota]2[greeksigma]1[greekphi][greekomicronoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekkappa]
+[greekalphapsili]3[greeknu]2[greekepsilonoxia][greekkappa][greekalpha]
+[greekalphapsili]3[greeknu]2[greekepsilon][greekkappa][greekalphaoxia][greekfinalsigma].
+[greekalphapsili]3[greeknu]2[greekepsilon][greekkappa][greekalphavaria][greekfinalsigma].
+[greekalphapsili]3[greeknu]2[greekepsilon][greekkappa][greekalphaoxia][greeksigma].
+[greekalphapsili]3[greeknu]2[greekepsilon][greekkappa][greekalphavaria][greeksigma].
+[greekalphapsili]3[greeknu]2[greekepsilon][greekkappa][greektau]
+[greekalphapsili]4[greeknu]3[greekepsilonoxia]2[greekkappa]1[greektau][greekiota][greektau]
+[greekalphapsili]4[greeknu]3[greekepsilon]2[greekkappa]1[greektau][greekiotaoxia][greektau]
+[greekalphapsili][greeknu][greekepsilon]2[greekkappa]1[greeklambda][greekiota][greekpi]
+[greekalphapsili][greeknu][greekepsilon]2[greekkappa]1[greeklambda][greekomicronoxia]
+[greekalphapsili][greeknu][greekepsilon]2[greekkappa]1[greeklambda][greekomicron]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekalpha][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekalpha][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekalphaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekalpha][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekepsilon][greekgamma][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekepsilonoxia][greekgamma][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekepsilon][greekgamma][greekxi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekepsilonoxia][greeketa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekepsilon][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekepsilon][greekomicron]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekepsilonoxia][greekomicron]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekepsilonoxia][greekomega]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekepsilon][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greeketavaria]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekomicron]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greeketaperispomeni]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekepsilonoxia][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekepsilonvaria][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekepsilonoxia][greeksigma].
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekepsilonvaria][greeksigma].
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekomegaperispomeni]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekepsilonoxia][greeksigma]
+[greekalphapsilitonos]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekkappa][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekkappa][greekomega]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekkappa][greekomegaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greeklambda]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekpi][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekpi][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeklambda][greekupsilon][greektau][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeklambda][greekupsilonoxia][greektau][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekmu][greekbeta]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekmu][greekbeta]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekmu][greekepsilon][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekmu][greekepsilonoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekmu][greekpi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekmu][greekpi]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekmu][greekphi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekmu][greekphi]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeknu]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeknu]
+[greekalphapsili]3[greeknu]2[greekepsilonoxia][greeknu][greekepsilon][greekiota]
+[greekalphapsili]3[greeknu]2[greekepsilon][greeknu][greeketaoxia]
+[greekalphapsili]3[greeknu]2[greekepsilonoxia][greeknu][greektau][greekepsilon][greekfinalsigma].
+[greekalphapsili]3[greeknu]2[greekepsilonoxia][greeknu][greektau][greekepsilon][greeksigma].
+[greekalphapsili]2[greeknu]1[greekepsilon]2[greekxi]1
+[greekalphapsili]3[greeknu]2[greekepsilon]3[greekxi]2[greekiotaoxia][greekkappa][greekalpha]
+[greekalphapsili]3[greeknu]2[greekepsilon]3[greekxi]2[greekiota][greekkappa][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekomicron][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekomicronoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekpi]
+[greekalphapsili]3[greeknu]2[greekepsilon][greekpi][greeknu]
+[greekalphapsili]3[greeknu]2[greekepsilon][greekpi][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekalpha][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekrho][greekalpha][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekalphaoxia][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekgamma]
+[greekalphapsilitonos]2[greeknu]1[greekepsilon][greekrho][greekgamma]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekrho][greekgamma]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekrho][greekepsilon][greekiota][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekepsilon][greekiotaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekrho][greekepsilon][greekiota][greeksigma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekepsilon][greekiotaoxia][greeksigma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekepsilon][greekupsilonoxia][greeknu][greeketa][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekepsilon][greekupsilon][greeknu][greeketaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekupsilon][greektheta][greekrho][greekiotaoxia][greekalpha][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekrho][greekupsilon][greektheta][greekrho][greekiota][greekalphaoxia][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greeksigma][greektau][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greeksigma][greektau][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greektau][greekalpha][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektau][greekalpha][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greektau][greekomicron][greekiota]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektau][greekomicron][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektau][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greektau][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekepsilon][greektau][greekupsilonoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilonoxia][greektheta]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greektheta]
+[greekalphapsilitonos]2[greeknu]1[greekepsilon][greekupsilon][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilonoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greeklambda]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilonoxia][greekrho][greekepsilon][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greekrho][greekepsilonoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greekphi][greeketaoxia][greekmu][greeketa][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greekphi][greeketa][greekmu][greeketaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilonoxia][greekchi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greekchi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilonoxia][greekxi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greekxi]
+[greekalphapsili]2[greeknu]1[greeketa][greekupsilon][greekxi]
+[greekalphapsili]2[greeknu]1[greeketa][greekupsilonperispomeni][greekgamma]
+[greekalphapsili]2[greeknu]1[greeketa][greekupsilon][greekgamma]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekupsilon][greekkappa][greektau]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekphi]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekphi]
+[greekalphapsili]3[greeknu]2[greekepsilon][greekphi][greekalphaoxia][greeklambda]
+[greekalphapsili]3[greeknu]2[greekepsilonoxia][greekphi][greekepsilon][greeklambda]
+[greekalphapsili]3[greeknu]2[greekepsilon][greekphi][greekepsilonoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekchi][greekepsilonoxia]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekchi][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekepsilonoxia][greekpsi][greekalpha]
+[greekalphapsili]2[greeknu]1[greekepsilon][greekpsi][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greekgamma][greekepsilon][greekmu]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekdelta]
+[greekalphapsili]2[greeknu]1[greeketa][greekdelta]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekkappa][greekepsilon][greeksigma]
+[greekalphapsili]2[greeknu]1[greeketa][greekkappa][greekepsilonoxia][greeksigma]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekkappa][greekomicron]
+[greekalphapsili]2[greeknu]1[greeketa][greekkappa][greekomicronoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greekkappa][greekomicron]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekalphaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekalpha][greekkappa]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekalpha][greektau][greekomicron][greekfinalsigma].
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekalpha][greektau][greekomicron][greeksigma].
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekalphaoxia][greektau][greekomicron][greekupsilon]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekalphaoxia][greektau][greekomega]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekalpha][greektau][greekomicron][greeknu].
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekalpha][greektau][greekepsilon].
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekalphaoxia][greektau][greekomicron][greekiota]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekalpha][greektau][greekomicron][greekiota]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekalpha][greektau][greekalpha]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekgamma]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greeketavaria]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekomicron]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekepsilon]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekomegaperispomeni]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekepsilonoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekepsilonvaria]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greeketaperispomeni]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilonoxia][greeketa]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekepsilon][greekiota][greekpi]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekiotaoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greeketavaria]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekomicron][greekupsilonperispomeni]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilon][greekiotaperispomeni]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greeketaperispomeni]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilonoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekepsilonvaria]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekomicron][greekiotaperispomeni]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekomegaperispomeni]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekiota][greekkappa]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekiotaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekiota][greekomicron]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekiotaoxia][greekomicron]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekiotaoxia][greekomega]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekiota][greekalpha]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeklambda][greekiota][greekpi]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekiotaoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greeketa][greeklambda][greekiota][greekphi]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekmu]
+[greekalphapsili]2[greeknu]1[greeketa][greekmu]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeknu][greekupsilon]
+[greekalphapsili]2[greeknu]1[greeketa][greeknu][greekupsilonoxia]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekrho][greekepsilon][greekiota]
+[greekalphapsili]2[greeknu]1[greeketa][greekrho][greekepsilon][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greeketa][greekrho][greekepsilonoxia][greekmu]
+[greekalphapsili]2[greeknu]1[greeketa][greekrho][greekepsilon][greekmu]
+[greekalphapsili]2[greeknu]1[greeketa][greekrho][greekepsilon][greekphi]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekrho][greekiota]
+[greekalphapsili]2[greeknu]1[greeketa][greekrho][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekrho][greekomicron][greektau]
+[greekalphapsili]2[greeknu]1[greeketa][greekrho][greekomicronoxia][greektau]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greeksigma][greeksigma]
+[greekalphapsili]2[greeknu]1[greeketa][greeksigma][greeksigma]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greektau][greektau]
+[greekalphapsili]2[greeknu]1[greeketa][greektau][greektau]
+[greekalphapsili]2[greeknu]1[greeketaoxia][greekphi][greekalpha]
+[greekalphapsili]2[greeknu]1[greeketa][greekphi][greekalpha]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekalpha][greektau]
+[greekalphapsili]2[greeknu]1[greekiota][greekalphaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekdelta][greekiota][greekomicron]
+[greekalphapsili]2[greeknu]1[greekiota][greekdelta][greekiotaoxia][greekomicron]
+[greekalphapsili]2[greeknu]1[greekiota][greekdelta][greekiotaoxia][greekomega]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekdelta][greekiota][greekalpha]
+[greekalphapsili]2[greeknu]1[greekiota][greekdelta][greekiota][greektau]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekdelta][greekrho][greekomicron][greekfinalsigma]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekdelta][greekrho][greekomicron][greeksigma]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekdelta][greekrho][greekomicron][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekdelta][greekrho][greekomega]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekdelta][greekrho][greekomicron][greeknu]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekdelta][greekrho][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekdelta][greekrho][greekomicron][greekiota]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekdelta][greekrho][greekomicron][greekiota]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekdelta][greekrho][greekupsilon][greektau]
+[greekalphapsili]2[greeknu]1[greekiota][greekdelta][greekrho][greekupsilonoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekiota][greekdelta][greekrho][greekomega][greektau]
+[greekalphapsili]2[greeknu]1[greekiota][greekdelta][greekrho][greekomegaoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekepsilon][greekrho]
+[greekalphapsili]2[greeknu]1[greekiota][greekepsilonoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekiota][greekepsilon][greekrho][greekalphaoxia][greektau]
+[greekalphapsili]3[greeknu]2[greekiota][greekepsilonoxia][greekrho][greekomega]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekiota][greekkappa]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekkappa]
+[greekalphapsili]3[greeknu]2[greekiotaoxia][greekkappa][greeketa]
+[greekalphapsili]3[greeknu]2[greekiota][greekkappa][greeketaoxia]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekiota][greeklambda]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekmu][greekalpha][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekiota][greekmu][greekalphaoxia][greeksigma][greektau]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekomicron][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekiota][greekomicron][greekupsilonoxia]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekpi][greekpi]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekpi][greekpi]
+[greekalphapsili]2[greeknu]1[greekiota][greeksigma]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greeksigma]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greeksigma]
+[greekalphapsili]3[greeknu]2[greekiota][greeksigma][greekalphaperispomeni][greektau]
+[greekalphapsili]3[greeknu]2[greekiota][greeksigma][greekalphaoxia][greektau]
+[greekalphapsili]3[greeknu]2[greekiotaoxia][greeksigma][greektau]
+[greekalphapsili]3[greeknu]2[greekiota][greeksigma][greektau]
+[greekalphapsili]4[greeknu]3[greekiota][greeksigma][greektau][greekomicron][greekrho][greeketa]
+[greekalphapsili]4[greeknu]3[greekiota][greeksigma][greektau][greekomicronoxia][greekrho][greeketa]
+[greekalphapsili]4[greeknu]3[greekiota][greeksigma][greektau][greekomicron][greekrho][greeketaoxia]
+[greekalphapsili]3[greeknu]2[greekiotaoxia][greeksigma][greekchi]
+[greekalphapsili]4[greeknu]3[greekiotaoxia][greeksigma][greekchi][greekupsilon]
+[greekalphapsilitonos]2[greeknu]1[greekiota][greekchi]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekchi]
+[greekalphapsili]2[greeknu]1[greekiota][greekchi][greeknu][greekepsilon][greekupsilonoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekiotaoxia][greekpsi]
+[greekalphapsili]2[greeknu]1[greekiota][greekpsi]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekdelta][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekomicron][greekdelta][greekepsilonoxia]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekzeta]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekzeta]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiota][greekkappa][greekepsilon]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiota][greekkappa][greekomicron][greeknu]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekiota][greekkappa]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiotaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiota][greekkappa][greektau][greekiotaoxia]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekiota][greekkappa][greektau]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiotaoxia][greekkappa][greektau]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiotaoxia][greekmu][greekomega][greekkappa]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiota][greekmu][greekomegaoxia][greekkappa]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiota][greekmu][greekomega][greekkappa]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiota][greeknu]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekiota][greeknu]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiotaoxia][greeknu]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekiota][greeksigma][greektau][greekrho]
+[greekalphapsili]2[greeknu]1[greekomicron][greekiotaoxia][greeksigma][greektau][greekrho]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicron][greeklambda]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greeklambda]
+[greekalphapsili]3[greeknu]2[greekomicron][greeklambda][greekkappa]
+[greekalphapsili]3[greeknu]2[greekomicron][greeklambda][greekomicron]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekbeta][greekrho][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekbeta][greekrho][greekiotaperispomeni]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekmu][greekbeta][greekrho][greekomicron]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekmu][greekbeta][greekrho][greekomicron]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekmu][greekbeta][greekrho][greekomega]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekmu][greekbeta][greekrho][greekalpha]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greeketaoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greeketa][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekiotaoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekiota][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekmu][greekiota][greekchi]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekiota][greekchi]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekmu][greekomicron]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekomicronoxia]
+[greekalphapsili]2[greeknu]1[greekomicron][greekmu][greekomicron]
+[greekalphapsili]3[greeknu]2[greekomicron][greekmu][greekomicron][greektheta]
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomicron][greekupsilon].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomegaiotasub].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomega].
+[greekalphapsili]2[greeknu]2[greekomicronoxia][greekmu][greekomicron][greekiota][greeknu].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomega][greeknu].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomicron][greekiota][greekfinalsigma].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomicron][greekiota][greeksigma].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomicron][greekupsilon][greekfinalsigma].
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekmu][greekomicron][greekupsilon][greeksigma].
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greeknu]
+[greekalphapsili]2[greeknu]1[greekomicron][greeknu]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekpi]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekpi]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekrho]
+[greekalphapsili]2[greeknu]1[greekomicron][greekrho]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekrho]
+[greekalphapsili]3[greeknu]2[greekomicron][greekrho][greekgamma][greekalphaoxia][greekzeta]
+[greekalphapsilitonos]3[greeknu]2[greekomicron][greekrho][greektheta]
+[greekalphapsili]3[greeknu]2[greekomicronoxia][greekrho][greektheta]
+[greekalphapsili]3[greeknu]2[greekomicron][greekrho][greekmu][greekalphaoxia]
+[greekalphapsili]3[greeknu]2[greekomicron][greekrho][greektau]
+[greekalphapsili]3[greeknu]2[greekomicron][greekrho][greekupsilonoxia]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greeksigma][greekiota]
+[greekalphapsili]2[greeknu]1[greekomicron][greeksigma][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekomicron][greeksigma][greekiota]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greeksigma][greekmu]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greeksigma][greekmu]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greeksigma][greekphi][greekrho]
+[greekalphapsili]2[greeknu]1[greekomicron][greeksigma][greekphi][greekrho]
+[greekalphapsili]2[greeknu]1[greekomicron][greekupsilonoxia][greekalpha]
+[greekalphapsili]2[greeknu]1[greekomicron][greekupsilon][greekalphaoxia]
+[greekalphapsili]2[greeknu]1[greekomicron][greekupsilonoxia][greeksigma][greekiota]
+[greekalphapsili]2[greeknu]1[greekomicron][greekupsilon][greeksigma][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekomicron][greekupsilonoxia][greektau]
+[greekalphapsili]2[greeknu]1[greekomicron][greekupsilon][greektau]
+[greekalphapsili]2[greeknu]1[greekomicron][greekphi][greektheta]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekchi][greekepsilon][greekupsilon][greektau]
+[greekalphapsili]2[greeknu]1[greekomicron][greekchi][greekepsilon][greekupsilonoxia][greektau]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekchi][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekchi][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomicron][greekpsi]
+[greekalphapsilitonos]2[greeknu]1[greekomicron][greekpsi]
+[greekalphapsili]2[greeknu]1[greekomicronoxia][greekpsi]
+[greekalphapsili][greeknu][greektau][greekalpha]2[greeknu]1[greekiota][greeksigma]
+[greekalphapsili][greeknu][greektau][greekalpha]2[greeknu]1[greekiotaoxia][greeksigma]
+[greekalphapsili][greeknu][greektau][greekepsilon][greekiota]2[greeksigma]1
+[greekalphapsili][greeknu][greektau][greekepsilon]2[greekkappa]1
+[greekalphapsili][greeknu][greektau][greekepsilon]2[greeknu]1
+[greekalphapsili][greeknu][greektau][greekepsilon]2[greekxi]1
+[greekalphapsili][greeknu][greektau][greekiota][greekdelta][greekupsilon]2[greeksigma]1
+[greekalphapsili][greeknu][greektau][greekiota][greekpi][greekalpha][greekrho][greekepsilon]2[greekkappa]1
+[greekalphapsili][greeknu][greektau][greekiota][greekpi][greekalpha][greekrho][greekepsilon]2[greekxi]1
+[greekalphapsili][greeknu][greektau][greekiota][greekpi][greekrho][greekomicron]2[greeksigma]1
+[greekalphapsili][greeknu][greektau][greekiota][greekpi][greekrho][greekomicron][greeksigma]3[greekkappa]2[greekupsilon]
+[greekalphapsili][greeknu][greektau][greekiota][greeksigma][greekupsilonoxia]2[greeknu]1
+[greekalphapsili][greeknu][greektau][greekiota][greeksigma][greekupsilon]2[greeknu]1
+[greekalphapsili]2[greeknu]1[greekupsilonoxia]
+[greekalphapsili]2[greeknu]1[greekupsilon]
+[greekalphapsili]3[greeknu]2[greekupsilon][greekmu]
+[greekalphapsili]3[greeknu]2[greekupsilonoxia][greeksigma]
+[greekalphapsili]3[greeknu]2[greekupsilon][greeksigma]
+[greekalphapsili]2[greeknu]1[greekupsilon][greekpi][greekepsilonoxia]2[greekrho]1
+[greekalphapsili]2[greeknu]1[greekupsilon][greekpi][greekepsilon]2[greekrho]1
+[greekalphapsilitonos]2[greeknu]1[greekomegaiotasub][greekdelta]
+[greekalphapsili]2[greeknu]1[greekomegaiotasubtonos][greekdelta]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greekdelta][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekomega][greekdelta][greekupsilon][oxia]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greekiota]
+[greekalphapsili]2[greeknu]1[greekomega][greekiotaoxia]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomega][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greekmu]
+[greekalphapsili]2[greeknu]1[greekomega][greekmu]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greeknu]
+[greekalphapsili]2[greeknu]1[greekomega][greeknu]
+[greekalphapsili]2[greeknu]1[greekomega][greekrho]
+[greekalphapsilitonos]2[greeknu]1[greekomega][greekrho]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greekrho]
+[greekalphapsilitonos]2[greeknu]1[greekomega][greektau][greekomicron]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greektau][greekomicron]
+[greekalphapsili]2[greeknu]1[greekomega][greekphi][greekepsilonoxia][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomega][greekphi][greekepsilon][greeklambda]
+[greekalphapsili]2[greeknu]1[greekomegaoxia][greekchi][greekupsilon]
+[greekalphapsili]2[greeknu]1[greekomega][greekchi][greekupsilonoxia]
+[greekalphapsili][greekpi][greekalpha]2[greeknu]1[greekalpha][greekiota]
+[greekalphapsili][greekpi][greekalphaoxia]2[greeknu]1[greekomicron][greekupsilon]
+[greekalphapsili][greekpi][greekalpha]2[greeknu]1[greekomicron][greekupsilonoxia][greekrho]
+[greekalphadasia][greekpi][greekalpha]2[greekxi]1
+[greekalphapsili][greekpi][greekepsilon]2[greekkappa]1[greeklambda]
+[greekalphadasia][greekpi][greekepsilon]2[greekrho]1
+[greekalphapsili][greekpi][greekomicron][greeksigma][greekupsilon]2[greeknu]1
+[greekalphapsili][greekpi][greekrho][greekomicronoxia]2[greeksigma]1
+[greekalphapsili][greekpi][greekrho][greekomicron]2[greeksigma]1
+[greekalphapsili][greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekkappa][greekepsilon]
+[greekalphapsili][greekpi][greekrho][greekomicron]3[greeksigma]2[greekkappa][greekepsilonoxia]
+[greekalphapsili][greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekkappa][greekomicron]
+[greekalphapsili][greekpi][greekrho][greekomicron]3[greeksigma]2[greekkappa][greekomicronoxia]
+[greekalphapsili][greekpi][greekrho][greekomicron]3[greeksigma]2[greektau]
+[greekalphadasia][greekrho][greekpi][greekalpha]2[greekxi]1
+[greekalphapsili][greekrho][greekrho][greekepsilon]2[greeknu]1[greekomega]
+[greekalphapsili][greekrho][greekchi][greekiota][greeksigma][greekupsilon]2[greeknu]1
+[greekalphapsili][greeksigma][greektau][greekepsilon]2[greekrho]1[greekomega]
+[greekalphapsili][greeksigma][greekupsilonoxia]2[greeknu]1
+[greekalphapsili][greeksigma][greekupsilon]2[greeknu]1
+[greekalphapsili][greekxi][greekupsilonoxia]2[greeknu]1
+[greekalphapsili][greekxi][greekupsilon]2[greeknu]1
+[greekalpha][greekupsilonpsili][greektau][greekepsilonoxia]2[greekkappa]1[greekmu]
+[greekalpha][greekupsilonpsili][greektau][greekepsilon]2[greekkappa]1[greekmu]
+[greekalpha][greekupsilonpsili][greektau][greekepsilon]2[greekxi]1
+[greekalphapsili][greekomega]2[greeksigma]1[greekphi]
+.[greekgamma][greekepsilon][greekrho][greekalpha]2[greeksigma]1[greekphi]
+.[greekdelta][greekalpha]2[greeksigma]1[greekpi]
+.[greekdelta][greekiota][greekalpha][greekmu][greekphi][greekiota]2[greeksigma]1[greekbeta]
+.[greekdelta][greekiota][greekepsilonoxia]2[greekkappa]1[greekrho][greekomicron]
+.[greekdelta][greekiota][greekepsilon]2[greekkappa]1[greekrho][greekomicronoxia]
+.[greekdelta][greekiota][greekepsilonoxia]2[greekxi]1
+.[greekdelta][greekiota][greekepsilon]2[greekxi]1
+.[greekdelta][greekiota][greekkappa][greekalpha]2[greeksigma]1[greekpi]
+.[greekdelta][greekiota][greekomicronoxia]2[greeksigma]1[greekkappa]
+.[greekdelta][greekiota][greekomicron]2[greeksigma]1[greekkappa]
+.[greekdelta][greekiota][greekomicronoxia]2[greeksigma]1[greekpi]
+.[greekdelta][greekiota][greekomicron]2[greeksigma]1[greekpi]
+.[greekdelta][greekiotaoxia]2[greeksigma]1[greekalpha]
+.[greekdelta][greekiota]2[greeksigma]1[greekalphaoxia]
+.[greekdelta][greekiotaoxia]2[greeksigma]1[greeketa]
+.[greekdelta][greekiota]2[greeksigma]1[greeketaoxia]
+.[greekdelta][greekiotaoxia]2[greeksigma]1[greekepsilon]
+.[greekdelta][greekiota]2[greeksigma]1[greekepsilon]
+.[greekdelta][greekiota]2[greeksigma]1[greektheta]
+.[greekdelta][greekupsilonoxia]2[greeksigma]1
+.[greekdelta][greekupsilon]2[greeksigma]1
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomega].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greekfinalsigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greeksigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota].
+.[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greektau]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekmu][greekepsilon][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekupsilon][greeksigma][greekiota][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greekmu][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greekfinalsigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greeksigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greektau][greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicron][greekiotaoxia][greektau][greeketa][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greekmu][greekepsilon][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greektau][greekepsilon].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greekepsilon][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomega][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greeknu]
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicronoxia][greeknu]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekupsilon][greeksigma]
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicron][greekupsilonoxia][greeksigma]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greeketaiotasub]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greeketa][greektau][greekomicron][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomega][greekmu][greekepsilon][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomega][greeksigma][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greekmu][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greekfinalsigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greekalpha][greekfinalsigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greeksigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greekalpha][greeksigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greekepsilon].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greektau][greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalpha][greekiotaoxia][greektau][greeketa][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greekmu][greekepsilon][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greektau][greekepsilon].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greekepsilon][greeknu]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekiota][greekalpha][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greektau][greekomega].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greektau][greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greektau][greekomega][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greektau][greekepsilon].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greeknu][greektau][greekomega][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekfinalsigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeknu][greektau]
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greeknu][greektau]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeksigma]
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greeksigma]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekmu][greekalpha][greekiota].
+.[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greeksigma]
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicronoxia][greekmu][greekepsilon][greektheta][greekalpha].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greeknu][greektau][greekalpha][greekiota].
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicron][greekiotaoxia][greekmu][greeketa][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greektau][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greeksigma][greektheta][greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicron][greekiotaoxia][greeksigma][greektheta][greeketa][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekomicron][greekiotaoxia][greekmu][greekepsilon][greektheta][greekalpha].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greeksigma][greektheta][greekepsilon].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomicron][greekiota][greeknu][greektau][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greeksigma][greektheta][greekalpha][greekiota].
+.[greekdelta][greekupsilon]3[greeksigma]2[greekomicronoxia][greekmu][greekepsilon][greeknu]
+.[greekdelta][greekupsilon]3[greeksigma]2[greekomicron][greekmu][greekepsilonoxia][greeknu]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekomega][greekmu][greekalpha][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greeketa][greektau][greekalpha][greekiota].
+[greekdelta][greekupsilon]3[greeksigma]2[greekomegaoxia][greekmu][greekepsilon][greektheta][greekalpha]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greeketa][greeksigma][greektheta][greekepsilon].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalpha][greekiotaoxia][greekmu][greeketa][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greektau][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greeksigma][greektheta][greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalpha][greekiotaoxia][greeksigma][greektheta][greeketa][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalpha][greekiotaoxia][greekmu][greekepsilon][greektheta][greekalpha].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greeksigma][greektheta][greekalpha][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greekiota][greeknu][greektau][greekomicron].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greeksigma][greektheta][greekomega].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekomicron][greeknu].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greeksigma][greektheta][greekomega][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekepsilon].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekalpha][greekiota].
+[greekdelta][greekupsilon]3[greeksigma]2[greekalphaoxia][greekmu][greekepsilon][greeknu]
+[greekdelta][greekupsilon][greeksigma]3[greeksigma]2[greekalpha][greekmu][greekepsilonoxia][greeknu]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greektau][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greektau][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekalpha][greeknu][greektau][greekomicron].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekomicron].
+.[greekdelta][greekupsilon][greeksigma][greekepsilon][greekiotaoxia]2[greeksigma]1[greekbeta]
+.[greekdelta][greekupsilon][greeksigma][greekepsilon][greekiota]2[greeksigma]1[greekbeta]
+.[greekdelta][greekupsilon][greeksigma][greekepsilonoxia]2[greekkappa]1
+.[greekdelta][greekupsilon][greeksigma][greekepsilon]2[greekkappa]1
+.[greekdelta][greekupsilon][greeksigma][greekepsilonoxia]2[greekxi]1
+.[greekdelta][greekupsilon][greeksigma][greekepsilon]2[greekxi]1
+.[greekdelta][greekupsilon]3[greeksigma]2[greekiota][greektheta]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekiota][greekfinalsigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekiota][greeksigma].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greekomega]
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekiota][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekiota].
+[greekdelta][greekupsilon]3[greeksigma]2[greekepsilonoxia][greekomicron][greekiota][greeknu].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greeksigma][greekiota].
+[greekdelta][greekupsilonoxia]3[greeksigma]2[greekepsilon][greeksigma][greekiota][greeknu].
+.[greekdelta][greekupsilonoxia]3[greeksigma]2[greekkappa][greekepsilon]
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greeketaoxia].
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greeketavaria].
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greeketaperispomeni][greekfinalsigma].
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greeketaperispomeni][greeksigma].
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greeketaiotasubperispomeni]
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greeketaperispomeni].
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greekalphaperispomeni]
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greekalpha]
+.[greekdelta][greekupsilon]3[greeksigma]2[greekmu][greekomegaperispomeni]
+.[greekdelta][greekupsilon][greeksigma][greekxi][greekupsilonoxia]2[greeknu]1
+.[greekdelta][greekupsilon][greeksigma][greekxi][greekupsilon]2[greeknu]1
+.[greekdelta][greekupsilonoxia]3[greeksigma]2[greektau][greekalpha][greeknu]
+.[greekdelta][greekupsilon]3[greeksigma]2[greektau][greekalphaoxia][greeknu]
+.[greekdelta][greekupsilon]3[greeksigma]2[greektau][greeketa][greeknu]
+.[greekdelta][greekupsilon]3[greeksigma]2[greektau][greeketaoxia][greeknu]
+[greekepsilonpsili][greekdelta][greekupsilon]2[greeksigma]1[greektau]
+[greekepsilon][greekiotapsili]2[greeknu]1[greekomicronoxia][greekdelta]
+[greekepsilon][greekiotapsili]2[greeknu]1[greekomicron][greekdelta]
+[greekepsilon][greekiotapsili]2[greeksigma]1
+[greekepsilon][greekiotapsilitonos]2[greeksigma]1
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekiotaoxia].
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekiotavaria].
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekiota].
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekiotaoxia][greeknu].
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekiotavaria][greeknu].
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekiota][greeknu].
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greekmu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greeketaiotasub].
+[greekepsilon][greekiotapsilitonos][greeksigma][greekepsilon][greekiota].
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekepsilon][greektau][greekalpha][greekiota].
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekepsilon][greeksigma][greektheta][greekomicron][greeknu].
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomicronoxia][greekmu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekepsilon][greeksigma][greektheta][greekepsilon].
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greeknu][greektau][greekalpha][greekiota]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomicron][greekiotaoxia][greekmu][greeketa][greeknu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greekiota][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greekiota][greektau][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greekiota][greeksigma][greektheta][greekomicron][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomicron][greekiotaoxia][greeksigma][greektheta][greeketa][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomicron][greekiotaoxia][greekmu][greekepsilon][greektheta][greekalpha]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greekiota][greeksigma][greektheta][greekepsilon]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomicron][greekiota][greeknu][greektau][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekepsilon][greeksigma][greektheta][greekalpha][greekiota]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomicronoxia][greekmu][greekepsilon][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomicron][greekmu][greekepsilonoxia][greeknu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalphaoxia][greekmu][greeketa][greeknu].
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomega]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greektau][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekomicron][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalphaoxia][greeksigma][greektheta][greeketa][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalphaoxia][greekmu][greekepsilon][greektheta][greekalpha]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekepsilon]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greeknu][greektau][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomega][greekmu][greekalpha][greekiota]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greeketa][greeksigma][greektheta][greekomicron][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekomegaoxia][greekmu][greekepsilon][greektheta][greekalpha]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greeketa][greeksigma][greektheta][greekepsilon]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekomega][greeknu][greektau][greekalpha][greekiota]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalpha][greekiotaoxia][greekmu][greeketa][greeknu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greekiota][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greekiota][greektau][greekomicron]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greekiota][greeksigma][greektheta][greekomicron][greeknu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greekiotaoxia][greeksigma][greektheta][greeketa][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalpha][greekiotaoxia][greekmu][greekepsilon][greektheta][greekalpha]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greekiota][greeksigma][greektheta][greekepsilon]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greekiota][greeknu][greektau][greekomicron]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalphaoxia][greeksigma][greektheta][greekomega]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalphaoxia][greeksigma][greektheta][greekomega][greeknu]
+[greekepsilon][greekiotapsilitonos]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekalpha][greekiota]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalphaoxia][greekmu][greekepsilon][greeknu]
+[greekepsilon][greekiotapsili]3[greeksigma]2[greekalpha][greekmu][greekepsilonoxia][greeknu]
+[greekepsilonpsili]2[greekkappa]1[greeklambda]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greeketaoxia][greektheta][greeketa]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalphaoxia][greekzeta]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalphaoxia][greekgamma]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalphaoxia][greekomicron]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalphaoxia][greeksigma]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalpha][greekiotaoxia]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalpha][greekupsilonoxia]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekepsilon][greekiotaoxia]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekepsilon][greekiotaoxia][greekpi]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekepsilon][greekiotaoxia][greekpsi]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greeketaiotasubtonos]
+[greekepsilonpsili]3[greekkappa]2[greekkappa][greeklambda][greekepsilonoxia][greekpi]
+[greekepsilonpsili]3[greekkappa]2[greekkappa][greeklambda][greekepsilonoxia][greekpsi]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalphaoxia][greekpi]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekalpha][greekpi]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekalphaoxia][greekpi][greektau]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekalpha][greekpi][greektau]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekepsilonoxia][greekphi]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekepsilon][greekphi]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greeketaoxia][greekrho]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greeketa][greekrho]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekiotaoxia][greeknu]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekiota][greeknu]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekupsilonoxia]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekupsilonoxia][greeksigma][greekepsilon][greekomega]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekupsilonoxia][greeksigma][greekepsilon][greekiota]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekupsilonoxia][greeksigma][greekepsilon][greekomicron][greekiota]
+[greekepsilonpsili]4[greekkappa]3[greeklambda][greekupsilonoxia][greeksigma][greekepsilon][greeksigma][greekiota]
+[greekepsilonpsili]3[greekkappa]2[greeklambda][greekomicronoxia][greekmu]
+[greekepsilonpsili]3[greekkappa]2[greekkappa][greeklambda][greekomegaoxia][greeksigma]
+[greekepsilonpsilitonos]2[greekkappa]1[greeklambda][greekepsilon][greekiota]
+[greekepsilonpsilitonos]3[greekkappa]2[greeklambda][greekepsilon][greekiota][greeksigma]
+[greekepsilonpsilitonos]2[greekkappa]1[greeklambda][greekupsilon][greeksigma]
+[greekepsilonpsili]2[greekkappa]1[greekmu]
+[greekepsilonpsilitonos]2[greekkappa]1[greekmu]
+[greekepsilonpsili]2[greekkappa]1[greeknu]
+[greekepsilonpsilitonos]2[greekkappa]1[greeknu]
+[greekepsilonpsilitonos]3[greekkappa]2[greeknu][greekalpha][greekiota]
+[greekepsilonpsili]3[greekkappa]2[greeknu][greekalpha][greekiotaoxia]
+[greekepsilonpsilitonos]3[greekkappa]2[greeknu][greeketa][greeksigma]
+[greekepsilonpsili]3[greekkappa]2[greeknu][greeketaoxia][greeksigma]
+[greekepsilonpsili]3[greekkappa]2[greeknu][greekupsilon]
+[greekepsilonpsili]2[greekkappa]1[greekrho]
+[greekepsilonpsilitonos]2[greekkappa]1[greekrho]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greekdelta]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greekdelta]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekalpha][greekzeta]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greekzeta]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekalpha][greekgamma]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greekgamma]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greektau]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greektau]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greekupsilonoxia][greekgamma]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greekupsilon][greekgamma]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekalpha][greekiota]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greekiotaoxia]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekalpha][greeknu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greeknu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greeketaoxia][greeketa]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greekalpha]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greekalphaoxia]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalphaoxia][greektheta]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekalpha][greektheta]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekepsilon][greekkappa]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekepsilonoxia][greekkappa]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekepsilon][greekxi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekepsilonoxia][greekxi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekepsilonoxia][greekmu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekepsilon][greekmu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greeketaoxia][greekmu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greeketa][greekmu]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekiota][greeknu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekiotaoxia][greeknu]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekiotaoxia][greektheta]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekomicronoxia][greektau]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekomicron][greektau]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekomicron][greekupsilon]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekomicron][greekupsilonoxia]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekupsilon][greekpi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekupsilonoxia][greekpi]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekupsilon][greekpsi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekupsilonoxia][greekpsi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekupsilonoxia][greekbeta]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekupsilonoxia][greekphi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekupsilon][greeksigma]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekomega][greekzeta]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekomegaoxia][greekzeta]
+[greekepsilonpsilitonos]3[greekkappa]2[greekrho][greekomega][greekxi]
+[greekepsilonpsili]3[greekkappa]2[greekrho][greekomegaoxia][greekxi]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekalpha][greektheta]
+[greekepsilonpsilitonos]2[greekkappa]1[greektau][greekalpha][greekmu][greekepsilon].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekalphaoxia][greekmu][greeknu]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekalpha][greeknu]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekalpha][greekrho]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekalphaoxia][greeksigma]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekepsilon]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekepsilonoxia]
+[greekepsilonpsili]3[greekkappa]2[greektau][greekepsilon][greekiotaoxia][greeknu]
+[greekepsilonpsili]2[greekkappa]1[greektau][greeketaoxia][greekkappa]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekiota]
+[greekepsilonpsilitonos]2[greekkappa]1[greektau][greekiota]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekiotaoxia]
+[greekepsilonpsilitonos]3[greekkappa]2[greektau][greekiota][greekzeta]
+[greekepsilonpsili]3[greekkappa]2[greektau][greekiotaoxia][greekzeta]
+[greekepsilonpsilitonos]3[greekkappa]2[greektau][greekiota][greeksigma][greekalpha]
+[greekepsilonpsili]3[greekkappa]2[greektau][greekiotaoxia][greeksigma][greekalpha]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekomicronoxia]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekomicron]
+[greekepsilonpsilitonos]2[greekkappa]1[greektau][greekomicron]
+[greekepsilonpsili]3[greekkappa]2[greektau][greekomicronoxia][greekfinalsigma].
+[greekepsilonpsili]3[greekkappa]2[greektau][greekomicronvaria][greekfinalsigma].
+[greekepsilonpsili]3[greekkappa]2[greektau][greekomicronoxia][greeksigma].
+[greekepsilonpsili]3[greekkappa]2[greektau][greekomicronvaria][greeksigma].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekrho]
+[greekepsilonpsilitonos]2[greekkappa]1[greektau][greekupsilon][greekpi][greekomicron]
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomicron][greekupsilon].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomegaiotasub].
+[greekepsilonpsilitonos]2[greekkappa]1[greektau][greekupsilon][greekpi][greekepsilon].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomega].
+[greekepsilonpsili]2[greekkappa][greektau][greekupsilonoxia][greekpi][greekomicron][greekiota].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomega][greeknu].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomicron][greekiota][greekfinalsigma].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomicron][greekiota][greeksigma].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomicron][greekupsilon][greekfinalsigma].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilonoxia][greekpi][greekomicron][greekupsilon][greeksigma].
+[greekepsilonpsilitonos]2[greekkappa]1[greektau][greekupsilon][greekpi][greekalpha].
+[greekepsilonpsili]2[greekkappa]1[greektau][greekupsilon]
+[greekepsilondasia][greeklambda][greeklambda][greeketaoxia]2[greeksigma]1[greekpi]
+[greekepsilondasia][greeklambda][greeklambda][greeketa]2[greeksigma]1[greekpi]
+[greekepsilonpsili]2[greeknu]1
+[greekepsilonpsilitonos]2[greeknu]1
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greekkappa][greekiota][greekfinalsigma]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekkappa][greekiota][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekkappa][greekomicronoxia][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekkappa][greekomicron][greeksigma]
+[greekepsilonpsilitonos]3[greeknu]2[greekalpha][greekrho][greekalpha].
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greekrho][greekomega][greeknu].
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greekrho][greekomicron][greekiota][greekfinalsigma].
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greekrho][greekomicron][greekiota][greeksigma].
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greeketa][greekphi]
+[greekepsilonpsili]4[greeknu]3[greekalpha][greekrho][greekalpha][greekrho]
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greekrho][greekepsilon][greekepsilon]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greekepsilonoxia][greekomega]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greekepsilonoxia][greekalpha]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greekepsilon][greekalphaoxia]
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greekrho][greekiota][greekepsilon]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greekiotaoxia][greekomega]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greekiotaoxia][greekalpha]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greekrho][greekiota][greekalphaoxia]
+[greekepsilonpsilitonos]3[greeknu]2[greekalpha][greeksigma][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greeksigma][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greeksigma][greektheta]
+[greekepsilonpsili]3[greeknu]2[greekalpha][greeksigma][greektheta]
+[greekepsilonpsilitonos]3[greeknu]2[greekalpha][greektau]
+[greekepsilonpsili]3[greeknu]2[greekalphaoxia][greektau]
+[greekepsilonpsili][greeknu][greekdelta][greekupsilon]2[greeksigma]1[greektau]
+[greekepsilonpsili]3[greeknu]2[greekepsilonoxia][greekgamma][greekkappa]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekgamma][greekkappa]
+[greekepsilonpsilitonos]3[greeknu]2[greekepsilon][greekiota][greekkappa]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekiotaperispomeni][greekkappa]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekiota][greekkappa]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekiotaoxia][greekkappa]
+[greekepsilonpsilitonos]3[greeknu]2[greekepsilon][greekiota][greekmu]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekiotaoxia][greekmu]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekmu][greekepsilonoxia][greeksigma][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekmu][greeketaoxia][greektheta]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greeknu][greeketaoxia]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekomicronoxia]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekomicronvaria]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekomicron]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekomegaperispomeni]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekalphaoxia]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekalphavaria]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekalphaperispomeni]
+[greekepsilonpsili]3[greeknu]2[greekepsilonoxia][greekpi][greekepsilon][greekiota]
+[greekepsilonpsilitonos]3[greeknu]2[greekepsilon][greekrho][greektheta][greekepsilon]
+[greekepsilonpsilitonos]3[greeknu]2[greekepsilon][greekupsilon][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekupsilonoxia][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekepsilonoxia][greekchi][greektheta]
+[greekepsilonpsili]3[greeknu]2[greekepsilon][greekchi][greektheta]
+[greekepsilonpsilitonos]3[greeknu]2[greeketa][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greeketaoxia][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greeketa][greeketaoxia]
+[greekepsilonpsili]3[greeknu]2[greeketa][greeketavaria]
+[greekepsilonpsilitonos]3[greeknu]2[greeketa][greeknu].
+[greekepsilonpsili]3[greeknu]2[greeketa][greekepsilon][greekiotaoxia]
+[greekepsilonpsili]3[greeknu]2[greeketa][greekomicron]
+[greekepsilonpsili]3[greeknu]2[greeketa][greekomegaperispomeni]
+[greekepsilonpsili]3[greeknu][greeketa][greekepsilonoxia]
+[greekepsilonpsili]3[greeknu]2[greeketaoxia][greeknu][greekomicron]
+[greekepsilonpsili]3[greeknu]2[greekiotaoxia]
+[greekepsilonpsili]3[greeknu]2[greekiota]
+[greekepsilonpsilitonos]3[greeknu]2[greekiota]
+[greekepsilonpsili]4[greeknu]3[greekiota][greekalpha][greekupsilonoxia]
+[greekepsilonpsili]5[greeknu]4[greekiota][greekalpha][greekupsilonoxia][greeksigma]
+[greekepsilonpsili]5[greeknu]4[greekiota][greekalpha][greekupsilon][greeksigma]
+[greekepsilonpsili]4[greeknu]3[greekiota][greekdelta][greekrho]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekdelta][greekrho]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekzeta]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greeketa]
+[greekepsilonpsili]4[greeknu]3[greekiota][greekepsilonoxia][greektau][greekomicron][greeknu].
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekepsilon][greekmu][greekepsilon][greeknu].
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekomega].
+[greekepsilonpsili]4[greeknu]3[greekiota][greekpi][greekpi]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekpi][greekpi]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekpi][greektau]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greekpsi]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greeksigma][greeksigma]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greeksigma][greektau]
+[greekepsilonpsili]4[greeknu]3[greekiota][greeksigma][greektau]
+[greekepsilonpsili]4[greeknu]3[greekiota][greeksigma][greekchi]
+[greekepsilonpsili]4[greeknu]3[greekiotaoxia][greeksigma][greekchi]
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greekfinalsigma].
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greeksigma].
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greekupsilon].
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greeknu].
+[greekepsilonpsilitonos]3[greeknu]2[greekomega]
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greekiota].
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greekiota][greekfinalsigma].
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greekiota][greeksigma].
+[greekepsilonpsilitonos]3[greeknu]2[greeketa][greekfinalsigma].
+[greekepsilonpsilitonos]3[greeknu]2[greeketa][greeksigma].
+[greekepsilonpsilitonos]3[greeknu]2[greeketaiotasub].
+[greekepsilonpsilitonos]3[greeknu]2[greeketa].
+[greekepsilonpsilitonos]3[greeknu]2[greekomicron][greeksigma][greekiota]
+[greekepsilonpsili]3[greeknu]2[greekomicronoxia][greeksigma][greekepsilon]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekalphaoxia][greeklambda]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekalpha][greeklambda]
+[greekepsilonpsilitonos]3[greeknu]2[greekupsilon][greekxi]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekxi]
+[greekepsilonpsili]3[greeknu]2[greekupsilonoxia][greekxi]
+[greekepsilonpsili]3[greeknu]2[greekupsilonoxia][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greeksigma]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekomegaoxia]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekomegavaria]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekomicronoxia][greekomicron]
+[greekepsilonpsili]3[greeknu]2[greekupsilon][greekomicron][greekupsilonperispomeni][greekfinalsigma]
+[greekepsilonpsili]2[greekxi]1
+[greekepsilonpsilitonos]2[greekxi]1
+[greekepsilonpsili]3[greekxi]2[greeketaoxia][greekrho]
+[greekepsilonpsili]3[greekxi]2[greeketa][greekrho]
+[greekepsilonpsili]3[greekxi]2[greekupsilon]2[greeknu]1
+[greekepsilonpsili]3[greekxi]2[greekupsilon][greekrho]
+[greekepsilonpsili]3[greekxi]2[greekupsilonoxia][greekrho]
+[greekepsilonpsilitonos]3[greekxi]2[greekupsilon][greeksigma]
+[greekepsilonpsilitonos]3[greekxi]2[greekomega].
+[greekepsilondasia]2[greekxi]1[greeketaoxia][greekrho][greekepsilon][greektau][greekmu]
+[greekepsilondasia]2[greekxi]1[greeketa][greekrho][greekepsilonoxia][greektau][greekmu]
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]2[greeksigma]1
+[greekepsilonpsili][greekpi][greekepsilon][greekiota]2[greeksigma]1
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greektau][greekomicron][greeknu].
+[greekepsilonpsili][greekpi][greekepsilon][greekiota]3[greeksigma]2[greekalphaoxia][greektau][greeketa][greeknu].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greekmu][greekepsilon][greeknu].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greektau][greekepsilon]
+[greekepsilonpsili][greekpi][greekepsilon][greekiota]3[greeksigma]2[greekalphaoxia][greekmu][greeketa][greeknu].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekomega].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greektau][greekomicron]
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekomicron][greeknu].
+[greekepsilonpsili][greekpi][greekepsilon][greekiota]3[greeksigma]2[greekalphaoxia][greekmu][greekepsilon][greektheta][greekalpha].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greeksigma][greektheta][greekepsilon].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greeknu][greektau][greekomicron].
+[greekepsilonpsili][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greektheta]
+[greekepsilonpsili][greekpi][greekepsilon][greekiota]3[greeksigma]2[greektheta]
+[greekepsilonpsili][greekpi][greekepsilon]2[greekkappa]1[greektau][greekepsilon][greekiotaoxia]
+[greekepsilonpsili][greekpi][greekepsilonoxia]2[greekkappa]1[greektau][greekepsilon][greekiota]
+[greekepsilonpsili][greekpi][greekepsilon]2[greekkappa]1[greektau][greekrho]
+[greekepsilonpsili][greekpi][greekepsilonoxia]2[greekkappa]1[greektau][greekrho]
+[greekepsilonpsili][greekpi][greekepsilon]2[greekxi]1
+[greekepsilonpsili][greekpi][greekepsilon]2[greeksigma]1[greekbeta]
+[greekepsilonpsili][greekpi][greekiota][greekpi][greekrho][greekomicronoxia]2[greeksigma]1[greektheta]
+[greekepsilonpsili][greekpi][greekiota][greekpi][greekrho][greekomicron]2[greeksigma]1[greektheta]
+[greekepsilonpsili][greekpi][greekiota][greeksigma][greekupsilon]2[greeknu]1
+[greekepsilonpsili]2[greeksigma]1
+[greekepsilonpsili]3[greeksigma]2[greekalphaoxia][greekomega]
+[greekepsilonpsili]3[greeksigma]2[greeketa][greekmu]
+[greekepsilonpsili]3[greeksigma]2[greektheta]
+[greekepsilonpsili]4[greeksigma]3[greektheta][greekepsilonoxia][greeksigma]
+[greekepsilonpsili]3[greeksigma]2[greekiota][greekgamma]
+[greekepsilonpsili]3[greeksigma]2[greekkappa]
+[greekepsilonpsili]4[greeksigma]3[greekkappa][greekalphaoxia]
+[greekepsilonpsili]4[greeksigma]3[greekkappa][greekalpha]
+[greekepsilonpsili]3[greeksigma]2[greekmu][greekepsilonvaria][greeknu].
+[greekepsilonpsili]3[greeksigma]2[greekmu][greekepsilonoxia][greeknu].
+[greekepsilonpsili]3[greeksigma]2[greektau]
+[greekepsilonpsili]3[greeksigma]2[greekomicronoxia][greekmu][greekepsilon][greektheta][greekalpha]
+[greekepsilonpsili]3[greeksigma]2[greekomicron][greekiotaoxia][greekmu][greeketa][greeknu]
+[greekepsilonpsili]3[greeksigma]2[greekomicronoxia][greekmu]
+[greekepsilonpsili]3[greeksigma]2[greekomicron][greekmu]
+[greekepsilonpsili]3[greeksigma]2[greekomicron][greekupsilonperispomeni]
+[greekepsilonpsili]3[greeksigma]2[greekomicron][greekupsilon][oxia]
+[greekepsilonpsili]3[greeksigma]2[greekupsilon]
+[greekepsilonpsili]3[greeksigma]2[greekupsilonoxia]
+[greekepsilonpsili][greeksigma][greekupsilonoxia]2[greeknu]1
+[greekepsilonpsili][greeksigma][greekupsilon]2[greeknu]1
+[greekepsilonpsili]3[greeksigma]2[greekchi]
+[greekepsilonpsili]4[greeksigma]3[greekchi][greekepsilonoxia]
+[greekepsilonpsili]3[greeksigma]2[greekomegaoxia]
+[greekepsilonpsili]3[greeksigma]2[greekomega]
+[greekepsilonpsilitonos]2[greeksigma]1[greekomicron][greekpi]
+[greekepsilon][greekupsilonpsili][greekepsilon]2[greekxi]1
+[greekepsilon][greekupsilonpsili][greekepsilon]3[greekxi]2[greekiotaoxia]
+[greekepsilon][greekupsilonpsili][greekepsilon]3[greekxi]2[greekiota]
+[greekepsilon][greekupsilonpsili][greekpi][greekrho][greekomicronoxia]2[greeksigma]1
+[greekepsilon][greekupsilonpsili][greekpi][greekrho][greekomicron]2[greeksigma]1
+[greekepsilon][greekupsilonpsili][greeksigma][greekupsilonoxia]2[greeknu]1
+[greekepsilon][greekupsilonpsili][greeksigma][greekupsilon]2[greeknu]1
+[greekepsilon][greekupsilonpsili][greekxi][greekupsilonoxia]2[greeknu]1
+[greekepsilon][greekupsilonpsili][greekxi][greekupsilon]2[greeknu]1
+[greekepsilonpsili][greekomega]2[greeksigma]1[greekphi]
+[greeketapsilitonos]2[greeknu]1[greekomicron][greekpsi].
+[greeketapsilitonos]2[greeknu]1[greekomicron][greekpi]
+[greeketapsili]2[greeknu]1[greekomicronoxia][greekpi]
+.[greektheta][greekepsilon][greekmu][greekiota]2[greeksigma]1[greekkappa][greekrho]
+.[greektheta][greekepsilon][greekomicronoxia]2[greeksigma]1[greekdelta]
+.[greektheta][greekepsilon][greekomicron]2[greeksigma]1[greekdelta]
+.[greektheta][greekepsilon][greekomicron][greekiota]2[greeksigma]1[greekepsilon][greekchi][greektheta][greekrho]
+.[greektheta][greeketa]2[greekrho]1[greekalpha][greekgamma][greekrho]
+.[greektheta][greekupsilon][greekomicron]2[greeksigma]1[greekkappa]
+.[greekkappa][greekalpha][greektheta][greekupsilon][greekpi][greekepsilon]2[greekrho]1
+.[greekkappa][greekalpha][greeklambda][greekomega]2[greeksigma]1[greekomicron][greekrho]
+.[greekkappa][greekalpha][greeklambda][greekomega]2[greeksigma]1[greekomicronoxia][greekrho]
+.[greekkappa][greekalpha]2[greeknu]1[greekepsilon][greekiotaoxia][greekfinalsigma].
+.[greekkappa][greekalpha]2[greeknu]1[greekepsilon][greekiotavaria][greekfinalsigma].
+.[greekkappa][greekalpha]2[greeknu]1[greekepsilon][greekiotaoxia][greeksigma].
+.[greekkappa][greekalpha]2[greeknu]1[greekepsilon][greekiotavaria][greeksigma].
+.[greekkappa][greekalpha]2[greeknu]1[greekepsilon][greeknu]
+.[greekkappa][greekalpha]2[greeknu]1[greekepsilonoxia][greeknu]
+.[greekkappa][greekalpha][greektau][greekalpha][greekdelta][greekupsilon]2[greeksigma]1[greekomega][greekpi]
+.[greekkappa][greekalpha][greektau][greekepsilon][greekdelta][greekupsilon]2[greeksigma]1[greekomegaoxia][greekpi]
+.[greekkappa][greekalpha][greektau][greekepsilon][greekiota]2[greeksigma]1
+.[greekkappa][greekalpha][greektau][greekepsilon]2[greeknu]1[greekalpha][greekiotaoxia]
+.[greekkappa][greekalpha][greektau][greekepsilon]2[greeknu]1[greeketaoxia]
+.[greekkappa][greekalpha][greektau][greekepsilon]2[greekxi]1[greekalpha]2[greeknu]1[greekiotaoxia]
+.[greekkappa][greekalpha][greektau][greekepsilon]2[greekxi]1[greekalpha]2[greeknu]1[greekepsilonoxia][greeksigma]
+.[greekkappa][greekepsilon][greekrho][greekalpha]2[greeksigma]1[greekphi]
+.[greekkappa][greekrho][greekalphaoxia]2[greeksigma]1[greekpi]
+.[greekkappa][greekrho][greekalpha]2[greeksigma]1[greekpi]
+.[greekkappa][greekupsilon][greeknu][greekomicronoxia]2[greeksigma]1[greekalpha]
+.[greekkappa][greekupsilon][greeknu][greekomicronoxia]2[greeksigma]1[greekbeta]
+.[greekkappa][greekupsilon][greeknu][greekomicron]2[greeksigma]1[greekbeta]
+.[greekkappa][greekupsilon][greeknu][greekomicronoxia]2[greeksigma]1[greekomicron]
+.[greekkappa][greekupsilon][greeknu][greekomicron]2[greeksigma]1[greekomicron]
+.[greekkappa][greekupsilon][greeknu][greekomicron]2[greeksigma]1[greekphi]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalphaoxia][greekgamma]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalpha][greekgamma]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalphaoxia][greekepsilon]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalpha][greekepsilonoxia]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalpha][greektheta]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalpha][greekiota][greekgamma]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekalpha][greekupsilon][greekgamma]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekepsilon][greekiotaoxia][greekmu]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekepsilon][greekiotaperispomeni][greekmu]
+.[greekmu][greekepsilon][greeklambda][greekalphaoxia]2[greeknu]1[greekiota][greekpi][greekpi]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekiotaoxia][greekpi][greekpi]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekomicronoxia][greekmu][greekmu]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekomicron][greekmu][greekmu]
+.[greekmu][greekepsilon][greeklambda][greekalphaoxia]2[greeknu]1[greekomicron][greeksigma][greeksigma]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekomicronoxia][greeksigma][greeksigma]
+.[greekmu][greekepsilon][greeklambda][greekalphaoxia]2[greeknu]1[greekomicron][greeksigma][greektau]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekomicronoxia][greeksigma][greektau]
+.[greekmu][greekepsilon][greeklambda][greekalphaoxia]2[greeknu]1[greekomicron][greekupsilon][greekrho]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekomicron][greekupsilonoxia][greekrho]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekomicron][greekupsilon][greekrho]
+.[greekmu][greekepsilon][greeklambda][greekalphaoxia]2[greeknu]1[greekupsilon]
+.[greekmu][greekepsilon][greeklambda][greekalpha]2[greeknu]1[greekupsilonoxia]
+.[greekmu][greekepsilon][greektau][greekepsilon]2[greekxi]1[greekalpha]
+.[greekmu][greekepsilon][greektau][greekepsilon]2[greekxi]1[greekepsilonoxia]
+.[greekmu][greekepsilon][greektau][greekepsilon]2[greekxi]1[greekepsilon]
+.[greekmu][greekomicron][greekgamma][greekiota]2[greeksigma]1
+.[greekmu][greekomicron][greekgamma][greekomicron]2[greeksigma]1[greektau]
+.[greekmu][greekupsilon]2[greeksigma]1[greekpi]
+.[greekmu][greekupsilon]2[greeksigma]1[greekepsilon][greekpi]
+.[greeknu][greekepsilon][greekomegaoxia]2[greeksigma]1[greekomicron][greekiota][greekkappa]
+.[greeknu][greekepsilon][greekomega]2[greeksigma]1[greekomicron][greekiotaoxia][greekkappa]
+.[greeknu][greekomicron][greekupsilon]2[greeknu]1[greekepsilon]
+.[greekxi][greekupsilon]2[greeknu]1[greekalpha][greekgamma]
+.[greekxi][greekupsilon]2[greeknu]1[greekepsilon]
+.[greekxi][greekupsilon]2[greeknu]1[greekepsilonoxia]
+.[greekxi][greekupsilonoxia]2[greeknu]1[greekepsilon]
+.[greekxi][greekupsilon]3[greeknu]2[greekepsilon][greekomegaoxia]
+.[greekxi][greekupsilon]3[greeknu]2[greekepsilon][greekomegaperispomeni]
+.[greekxi][greekupsilon]2[greeknu]1[greeketaperispomeni][greekkappa]
+.[greekxi][greekupsilonoxia]2[greeknu]1[greekiota]
+.[greekxi][greekupsilon]2[greeknu]1[greekiotaoxia]
+[greekomicron][greekiotadasia][greekomicron]2[greeknu]1[greekepsilon][greekiotaoxia].
+[greekomicron][greekiotadasia][greekomicron]2[greeknu]1[greekepsilon][greekiotavaria].
+[greekomicron][greekiotadasia][greekomicronoxia]2[greeksigma]1
+[greekomicron][greekiotapsili]2[greeksigma]1[greekpi][greekomegaoxia][greektau]
+[greekomicron][greekiotapsili]2[greeksigma]1[greekpi][greekomega][greektau]
+[greekomicrondasia][greeklambda][greekomicron]2[greeknu]1[greekepsilonoxia][greeknu].
+[greekomicrondasia][greeklambda][greekomicron]2[greeknu]1[greekepsilonvaria][greeknu].
+[greekomicrondasia][greekpi][greekomega]2[greeksigma]1
+[greekomicrondasiatonos]2[greeksigma]1[greekgamma][greekepsilon].
+[greekomicrondasia][greeksigma][greekomicron]2[greeknu]1[greekomegaperispomeni][greeknu].
+[greekomicrondasiatonos]2[greeksigma]1[greekpi][greekepsilon][greekrho].
+[greekomicrondasiatonos]2[greeksigma]1[greektau][greekiota][greekfinalsigma]
+[greekomicron][greekiotadasiaperispomeni]2[greeksigma]1[greektau][greekiota][greeksigma][greekiota]
+[greekomicron][greekupsilondasiatonos]2[greeksigma]1[greektau][greekiota][greeknu][greekalpha][greekfinalsigma]
+[greeketadasiaperispomeni]2[greeksigma]1[greektau][greekiota][greeknu][greekomicron][greekfinalsigma]
+[greekalpha][greekiotadasiaperispomeni]2[greeksigma]1[greektau][greekiota][greeksigma][greekiota]
+[greekalphadasiatonos]2[greeksigma]1[greektau][greekiota][greeknu][greekalpha][greekfinalsigma]
+[greekomicrondasia]2[greeksigma]1[greektau][greekiota]2[greeksigma]1[greekomicron][greekupsilonperispomeni][greeknu].
+[greeketadasia][greektau][greekiota]2[greeksigma]1[greekomicron][greekupsilonperispomeni][greeknu].
+[greekomicrondasia][greekpi][greekomicron][greekiota][greekomicron][greekupsilon]2[greeksigma]1[greektau][greekiota][greeknu][greekalpha]2[greeksigma]1[greekomicron][greekupsilonperispomeni][greeknu].
+[greekomicron][greekupsilonpsili][greekdelta][greekepsilon][greeknu][greekomicronoxia]2[greeksigma]1[greekomega]
+[greekomicron][greekupsilonpsili][greekdelta][greekepsilon][greeknu][greekomicron]2[greeksigma]1[greekomegaoxia]
+.[greekpi][greekalpha][greeklambda][greekiota]2[greeknu]1
+.[greekpi][greekalpha][greeklambda][greekiotaoxia]2[greeknu]1
+.[greekpi][greekalpha]2[greeknu]1
+.[greekpi][greekalphaoxia]2[greeknu]1
+.[greekpi][greekalpha]3[greeknu]2[greekomicronoxia][greekfinalsigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronvaria][greekfinalsigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronoxia][greeksigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronvaria][greeksigma].
+.[greekpi][greekalpha]3[greeknu]2[greekiotaoxia].
+.[greekpi][greekalpha]3[greeknu]2[greekiotavaria].
+.[greekpi][greekalphaoxia][greeknu][greekalpha].
+.[greekpi][greekalpha]3[greeknu]2[greekomegaperispomeni][greeknu].
+.[greekpi][greekalpha]3[greeknu]2[greekiota][greekkappa]
+.[greekpi][greekalpha]3[greeknu]2[greekiotaoxia][greeksigma][greekdelta]
+.[greekpi][greekalpha]3[greeknu]2[greekiota][greeksigma][greekdelta]
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekupsilonperispomeni].
+.[greekpi][greekalpha]3[greeknu]2[greekomegaiotasubperispomeni].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronoxia].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronvaria].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronoxia][greeknu].
+.[greekpi][greekalpha]3[greeknu]2[greekomicronvaria][greeknu].
+.[greekpi][greekalpha]3[greeknu]2[greekepsilonoxia].
+.[greekpi][greekalpha]3[greeknu]2[greekepsilonvaria].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekiotaoxia].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekiotavaria].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekiotaperispomeni][greekfinalsigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekiotaperispomeni][greeksigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekupsilonoxia][greekfinalsigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekupsilonvaria][greekfinalsigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekupsilonoxia][greeksigma].
+.[greekpi][greekalpha]3[greeknu]2[greekomicron][greekupsilonvaria][greeksigma].
+.[greekpi][greekalpha][greekrho][greekalpha]2[greeknu]1[greekiotaoxia][greeksigma][greekchi]
+.[greekpi][greekalpha][greekrho][greekepsilon][greekiotaoxia]2[greeksigma]1
+.[greekpi][greekalpha][greekrho][greekepsilon][greekiota]2[greeksigma]1
+.[greekpi][greekalpha][greekrho][greekepsilon]2[greekkappa]1[greeklambda]
+.[greekpi][greekalpha][greekrho][greekepsilon]2[greekkappa]1[greektau][greekrho]
+.[greekpi][greekalpha][greekrho][greekepsilon]2[greeknu]1[greekepsilon][greekiotaperispomeni]
+.[greekpi][greekalpha][greekrho][greekepsilon]2[greeknu]1[greekomicron]
+.[greekpi][greekalpha][greekrho][greekepsilon]2[greekxi]1
+.[greekpi][greekalpha][greekrho][greekepsilonoxia]2[greekxi]1
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekomega].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greekiota][greekfinalsigma].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greekiota][greeksigma].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greekiota].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greektau][greekomicron][greeknu].
+[greekpi][greekalpha][greekrho][greekepsilon]3[greekxi]2[greekepsilonoxia][greektau][greeketa][greeknu].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekomicron][greekmu][greekepsilon][greeknu].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greektau][greekepsilon].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekomicron][greekupsilon][greeksigma][greekiota].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekomicron][greekmu][greekalpha][greekiota]
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greeketaiotasub]
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greektau][greekalpha][greekiota].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greeksigma][greektheta][greekomicron][greeknu].
+[greekpi][greekalpha][greekrho][greekepsilon]3[greekxi]2[greekomicronoxia][greekmu][greekepsilon][greektheta][greekalpha].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekepsilon][greeksigma][greektheta][greekepsilon].
+[greekpi][greekalpha][greekrho][greekepsilonoxia]3[greekxi]2[greekomicron][greeknu][greektau][greekalpha][greekiota].
+.[greekpi][greeklambda][greekepsilon][greekomicron]2[greeknu]1[greekepsilonoxia]
+.[greekpi][greeklambda][greekepsilon][greekomicron]2[greeknu]1[greekepsilon]
+.[greekpi][greekrho][greekomicron][greekepsilon][greekiota]2[greeksigma]1
+.[greekpi][greekrho][greekomicron][greekepsilon]2[greekkappa]1
+.[greekpi][greekrho][greekomicron][greekepsilon]2[greeknu]1
+.[greekpi][greekrho][greekomicron][greekepsilon]2[greekxi]1
+.[greekpi][greekrho][greekomicron][greekepsilonoxia]2[greekxi]1
+.[greekpi][greekrho][greekomicron]2[greeksigma]1
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekalphaoxia][greekbeta]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekalpha][greekbeta]
+.[greekpi][greekrho][greekomicron][greeksigma][greekepsilon][greekiota]2[greeksigma]1
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekepsilon][greekiotaoxia]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekepsilonoxia][greeksigma][greekepsilon][greekiota]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekepsilon][greeksigma][greekepsilon][greekiotaoxia]
+.[greekpi][greekrho][greekomicron][greeksigma][greekepsilon]2[greeknu]1
+.[greekpi][greekrho][greekomicron][greeksigma][greekepsilon]2[greekxi]1
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greektheta][greekiota]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektheta][greekiotaoxia]
+.[greekpi][greekrho][greekomicron]4[greeksigma]3[greektheta][greekiota][greekgamma]
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekkappa][greekomicron][greekpi]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekkappa][greekomicronoxia][greekpi]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekalpha][greeksigma]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekalphaoxia][greektau]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekalpha][greektau]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekalpha][greekupsilon]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekepsilon][greekiotaoxia]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekepsilon][greeknu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekepsilonoxia][greeknu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekepsilon][greekrho][greeknu]
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greektau][greekepsilon][greekrho][greeknu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekepsilonoxia][greekrho][greeknu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greeketaoxia][greeksigma]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekomicronoxia][greekmu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekomicron][greekmu]
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greektau][greekomegaiotasub]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greektau][greekomegaiotasubtonos]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekupsilon][greekgamma]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekupsilon][greekmu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekupsilon]2[greeknu]1
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekphi][greekalpha][greekgamma][greekmu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekphi][greekalphaoxia][greekgamma][greekmu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekphi][greekalphaoxia][greekzeta]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekphi][greekalphaoxia][greektau][greektau]
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekchi][greeketa][greekmu]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekchi][greeketaoxia][greekmu]
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekomega].
+.[greekpi][greekrho][greekomicronoxia]3[greeksigma]2[greekomega][greektheta][greekepsilon][greeknu].
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekomegaoxia][greektau]
+.[greekpi][greekrho][greekomicron]3[greeksigma]2[greekomega][greektau]
+.[greekpi][greekrho][greekomicron][greekupsilondiaeresis][greekpi][greekepsilon]2[greekxi]1
+.[greekpi][greekupsilon]2[greekrho]1[greekalphaoxia][greekgamma]
+.[greekpi][greekupsilon]2[greekrho]1[greekalpha][greekgamma]
+.[greekpi][greekupsilon]2[greekrho]1[greekalpha][greekiotaoxia][greektheta]
+.[greekpi][greekupsilon]2[greekrho]1[greekalpha][greekiota][greektheta]
+.[greekpi][greekupsilon]2[greekrho]1[greeketaperispomeni][greektheta]
+.[greekpi][greekupsilon]2[greekrho]1[greeketa][greektheta]
+.[greekpi][greekupsilon]2[greekrho]1[greeketaoxia][greektheta]
+.[greekpi][greekupsilon]2[greekrho]1[greekalpha][greekkappa]
+.[greekpi][greekupsilonoxia]2[greekrho]1[greekalpha][greekupsilon]
+.[greekpi][greekupsilon]2[greekrho]1[greekalpha][greekupsilonoxia]
+.[greekpi][greekupsilon]2[greekrho]1[greekalpha][greekupsilon]
+.[greekpi][greekupsilon]2[greekrho]1[greeketaoxia][greeknu][greekepsilon][greekmu]
+.[greekpi][greekupsilon]2[greekrho]1[greeketa][greeknu][greekepsilonoxia][greekmu]
+.[greekpi][greekupsilon]2[greekrho]1[greekomega][greekpi]
+.[greeksigma][greekepsilon][greeklambda][greekalpha]2[greeksigma]1[greekphi][greekomicronoxia]
+.[greeksigma][greekepsilon][greeklambda][greekalpha]2[greeksigma]1[greekphi][greekomicron]
+.[greeksigma][greekupsilon][greekmu][greekpi][greekalpha][greekrho][greekepsilon][greekiota]2[greeksigma]1
+.[greeksigma][greekupsilon]2[greeknu]1
+.[greeksigma][greekupsilonoxia]2[greeknu]1
+.[greeksigma][greekupsilon][greeknu][greekdelta][greekiota][greekepsilonoxia]2[greekxi]1
+.[greeksigma][greekupsilon][greeknu][greekdelta][greekiota][greekepsilon]2[greekxi]1
+.[greeksigma][greekupsilon][greeknu][greekdelta][greekupsilon]2[greeksigma]1
+.[greeksigma][greekupsilon][greeknu][greekepsilon]2[greekxi]1
+.[greektau][greekepsilon][greeksigma][greeksigma][greekalpha][greekrho][greekepsilon]2[greeksigma]1[greekkappa]
+.[greektau][greekrho][greekepsilon][greekiota]2[greeksigma]1[greekkappa]
+.[greektau][greekrho][greekiota]2[greeksigma]1
+.[greektau][greekrho][greekiota]3[greeksigma]2[greekmu][greekomicronoxia]
+.[greektau][greekrho][greekiota]3[greeksigma]2[greekmu][greekomicron]
+.[greektau][greekrho][greekiota]3[greeksigma]2[greekmu][greekomegaperispomeni]
+.[greektau][greekrho][greekiota]3[greeksigma]2[greekpi]
+.[greektau][greekrho][greekiotaoxia]3[greeksigma]2[greektau]
+.[greektau][greekrho][greekiota]3[greeksigma]2[greektau]
+.[greektau][greekrho][greekiota]3[greeksigma]2[greekomegaoxia]
+.[greektau][greekrho][greekiota]3[greeksigma]2[greekomega]
+[greekupsilondasia][greekomicron]2[greeksigma]1[greekkappa]
+[greekupsilondasia][greekpi][greekepsilon][greekiotaoxia]2[greeksigma]1
+[greekupsilondasia][greekpi][greekepsilon][greekiota]2[greeksigma]1
+[greekupsilondasia][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greekfinalsigma]
+[greekupsilondasia][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greeksigma]
+[greekupsilondasia][greekpi][greekepsilon][greekiotaoxia]3[greeksigma]2[greekalpha][greeknu]
+[greekupsilondasia][greekpi][greekepsilon][greekiota]3[greeksigma]2[greekalphaoxia][greeknu]
+[greekupsilondasia][greekpi][greekepsilon][greekiota]3[greeksigma]2[greekalphaoxia][greeksigma]
+[greekupsilondasia][greekpi][greekepsilon]2[greekkappa]1[greeklambda][greekalpha][greekmu]
+[greekupsilondasia][greekpi][greekepsilon]2[greekkappa]1[greeklambda][greeketaoxia][greekpsi]
+[greekupsilondasia][greekpi][greekepsilon]2[greekkappa]1[greektau]
+[greekupsilondasia][greekpi][greekepsilon]2[greeknu]1
+[greekupsilondasia][greekpi][greekepsilon]2[greekxi]1
+[greekupsilondasia][greekpi][greekepsilon]2[greekrho]1
+[greekupsilondasia][greekpi][greekepsilonoxia]2[greekrho]1
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greeketa][greekfinalsigma].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greeketa][greeksigma].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalphaiotasub].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha][greeknu].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha][greekiota].
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekomegaperispomeni][greeknu].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha][greekiota][greekfinalsigma].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha][greekiota][greeksigma].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha][greekfinalsigma].
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekalpha][greeksigma].
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greektheta]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilonoxia][greektheta]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekiotaoxia]
+[greekupsilondasia][greekpi][greekepsilonoxia]3[greekrho]2[greekupsilon][greektheta]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekupsilonoxia][greektheta]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekupsilon][greektheta]
+[greekupsilondasia][greekpi][greekepsilon][greekrho][greekepsilon]2[greekkappa]1[greektau][greekepsilon]
+[greekupsilondasia][greekpi][greekepsilon][greekrho][greekepsilon]2[greekkappa]1[greektau][greekiotaoxia]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilonoxia][greekpi][greektau]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekpi][greektau]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilonoxia][greekpsi]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekpsi]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilonoxia][greekomega]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekomegaperispomeni]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilonoxia][greekepsilon]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekiotaperispomeni][greekfinalsigma].
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekiotaperispomeni][greeksigma].
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekiotaperispomeni].
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilonoxia][greekomicron]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekomicron][greekupsilonperispomeni]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekepsilon][greekiotaperispomeni][greektau]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekomegaoxia]
+[greekupsilondasia][greekpi][greekepsilon]3[greekrho]2[greekomega]
+[greekupsilondasiatonos]2[greeksigma]1[greektau][greekrho]
+[greekupsilondasia]2[greeksigma]1[greektau][greekrho]
+.[greekphi][greekalpha][greekepsilon]2[greeksigma]1[greekphi]
+.[greekphi][greekomega]2[greeksigma]1[greekphi]
+.[greekchi][greekalpha][greekrho][greekiota]2[greeksigma]1[greekalpha][greeknu][greekdelta][greekrho]
+.[greekchi][greekalpha][greekrho][greekiota]2[greeksigma]1[greekalphaoxia][greeknu][greekdelta][greekrho]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekalphaoxia][greekgamma]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekalpha][greekgamma]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekalpha][greekpi]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekalpha][greekpsi]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekomicron][greekupsilon]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekomegaperispomeni][greeknu]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekalphaoxia][greeknu]
+.[greekchi][greekepsilon][greekiota]2[greekrho]1[greekalpha][greeknu]
+.[greekchi][greeketa]2[greeknu]1[greeknu][greekalpha][greeklambda]
+[greekomegadasia]2[greeksigma]1[greekalpha]2[greeknu]1[greekepsilon][greekiotaoxia].
+[greekomegadasia]2[greeksigma]1[greekalpha]2[greeknu]1[greekepsilon][greekiotavaria].
+[greekomegadasia]2[greeksigma]1[greekalpha][greekupsilonoxia][greektau][greekomega][greekfinalsigma].
+[greekomegadasia]2[greeksigma]1[greekalpha][greekupsilonoxia][greektau][greekomega][greeksigma].
+[greekomegadasia]2[greeksigma]1[greekepsilon][greekiotaoxia].
+[greekomegadasia]2[greeksigma]1[greekepsilon][greekiotavaria].
+[greekomegadasiatonos]2[greeksigma]1[greekpi][greekepsilon][greekrho].
+[greekomegadasia]2[greeksigma]1[greekpi][greekepsilon]2[greekrho]1[greekepsilon][greekiotaoxia].
+[greekomegadasia]2[greeksigma]1[greekpi][greekepsilon]2[greekrho]1[greekepsilon][greekiotavaria].
+[greekomegadasiatonos]2[greeksigma]1[greektau][greekepsilon]
+[greekiota]2[greeksigma]1[greekchi][greekiotaoxia][greeklambda][greekiota][greekomicron][greekiota].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekomega][greeknu].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekomicron][greekiota][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekomicron][greekiota][greeksigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekomicron][greekupsilon][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekomicron][greekupsilon][greeksigma].
+[greekiota]2[greeksigma]1[greekchi][greekiotaoxia][greeklambda][greekiota][greekalpha][greekiota].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekalpha][greekiota][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekalpha][greekiota][greeksigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekalpha][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiotaoxia][greekalpha][greeksigma].
+[greekiota]2[greeksigma]1[greekchi][greekiotaoxia][greeklambda][greekiota][greekalpha].
+[greekiota]2[greeksigma]1[greekmu][greekupsilonoxia][greekrho][greekiota][greekomicron][greekiota].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekomega][greeknu].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekomicron][greekiota][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekomicron][greekiota][greeksigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekomicron][greekupsilon][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekomicron][greekupsilon][greeksigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilonoxia][greekrho][greekiota][greekalpha][greekiota].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekalpha][greekiota][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekalpha][greekiota][greeksigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekalpha][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiotaoxia][greekalpha][greeksigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilonoxia][greekrho][greekiota][greekalpha].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiota][greekomicron][greeksigma][greektau]
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiota][greekomicron][greeksigma][greektau]
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiota][greekalphaoxia][greekkappa][greekiota][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekchi][greekiota][greeklambda][greekiota][greekalphaoxia][greekkappa][greekiota][greeksigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiota][greekalphaoxia][greekkappa][greekiota][greekfinalsigma].
+[greekiota]2[greeksigma]1[greekmu][greekupsilon][greekrho][greekiota][greekalphaoxia][greekkappa][greekiota][greeksigma].
+}
+
+% end pattern data
+