From 39a70fce9851e47de70b762fbf9d081afc30b908 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 6 Apr 2006 23:00:00 +0200 Subject: stable 2006.04.06 23:00 --- bibtex/bst/context/cont-ab.bst | 126 ++- bibtex/bst/context/cont-au.bst | 124 ++- bibtex/bst/context/cont-no.bst | 126 ++- bibtex/bst/context/cont-ti.bst | 126 ++- doc/context/bib/bibmod-doc.pdf | Bin 0 -> 258514 bytes doc/context/bib/bibmod-doc.tex | 665 +++++++++++ metapost/context/base/mp-tool.mp | 6 + scripts/context/perl/pdftrimwhite.pl | 40 +- scripts/context/ruby/base/system.rb | 16 +- scripts/context/ruby/base/tex.rb | 229 ++-- scripts/context/ruby/base/texutil.rb | 58 +- scripts/context/ruby/ctxtools.rb | 258 ++++- scripts/context/ruby/graphics/gs.rb | 17 +- scripts/context/ruby/newtexexec.rb | 2 +- scripts/context/ruby/texmfstart.rb | 5 +- scripts/context/ruby/textools.rb | 68 +- tex/context/base/colo-ini.tex | 83 +- tex/context/base/cont-new.tex | 41 +- tex/context/base/context.tex | 16 +- tex/context/base/core-buf.tex | 26 +- tex/context/base/core-fil.tex | 91 +- tex/context/base/core-fnt.tex | 5 + tex/context/base/core-int.tex | 4 +- tex/context/base/core-itm.tex | 10 + tex/context/base/core-mat.tex | 220 +++- tex/context/base/core-mis.tex | 541 ++++++--- tex/context/base/core-ref.tex | 64 +- tex/context/base/core-reg.tex | 57 +- tex/context/base/core-sys.tex | 4 +- tex/context/base/core-uti.tex | 6 - tex/context/base/core-ver.tex | 112 +- tex/context/base/enco-032.tex | 82 ++ tex/context/base/enco-agr.tex | 12 + tex/context/base/enco-ffr.tex | 12 +- tex/context/base/enco-ini.tex | 81 +- tex/context/base/enco-mis.tex | 10 +- tex/context/base/enco-pfr.tex | 1 - tex/context/base/enco-uni.tex | 5 - tex/context/base/font-ini.tex | 10 + tex/context/base/lang-all.xml | 12 + tex/context/base/lang-ctx.tex | 4 + tex/context/base/lang-grk.tex | 7 + tex/context/base/lang-ini.tex | 6 + tex/context/base/m-streams.tex | 33 +- tex/context/base/m-units.tex | 16 +- tex/context/base/math-ini.tex | 43 +- tex/context/base/math-mis.tex | 49 + tex/context/base/math-uni.tex | 171 ++- tex/context/base/meta-ini.tex | 10 +- tex/context/base/mult-con.tex | 4 + tex/context/base/mult-sys.tex | 60 +- tex/context/base/page-flt.tex | 89 +- tex/context/base/page-lay.tex | 30 +- tex/context/base/page-lyr.tex | 9 +- tex/context/base/page-one.tex | 15 +- tex/context/base/page-sid.tex | 2 + tex/context/base/page-str.tex | 9 +- tex/context/base/page-txt.tex | 57 +- tex/context/base/regi-cp1250.tex | 151 +++ tex/context/base/regi-syn.tex | 22 + tex/context/base/sort-ini.tex | 28 + tex/context/base/sort-lan.tex | 52 + tex/context/base/sort-new.tex | 10 - tex/context/base/spec-tpd.tex | 196 ++-- tex/context/base/supp-lan.tex | 60 +- tex/context/base/supp-mat.tex | 15 +- tex/context/base/supp-mps.tex | 4 +- tex/context/base/syst-ext.tex | 13 + tex/context/base/type-exa.tex | 2 +- tex/context/base/type-ini.tex | 33 +- tex/context/base/unic-032.tex | 380 +++++-- tex/context/base/unic-033.tex | 374 +++++-- tex/context/base/unic-ini.tex | 2 +- tex/context/base/verb-ini.tex | 2 +- tex/context/base/xtag-ext.tex | 27 + tex/context/base/xtag-ini.tex | 1 + tex/context/base/xtag-mmp.tex | 21 +- tex/context/base/xtag-pml.tex | 40 +- tex/context/base/xtag-pmu.tex | 68 +- tex/context/base/xtag-stk.tex | 18 +- tex/context/bib/bibl-ams.tex | 438 ++++++++ tex/context/bib/bibl-apa-de.tex | 388 +++++++ tex/context/bib/bibl-apa-fr.tex | 389 +++++++ tex/context/bib/bibl-apa.tex | 52 +- tex/context/bib/bibl-aps.tex | 36 +- tex/context/bib/bibl-num-fr.tex | 427 +++++++ tex/context/bib/bibl-num.tex | 427 +++++++ tex/context/bib/bibl-ssa.tex | 486 ++++++++ tex/context/bib/t-bib.tex | 701 +++++++----- tex/context/bib/t-bibltx.tex | 75 -- tex/context/interface/cont-cz.xml | 3 + tex/context/interface/cont-de.xml | 3 + tex/context/interface/cont-en.xml | 3 + tex/context/interface/cont-fr.xml | 3 + tex/context/interface/cont-it.xml | 3 + tex/context/interface/cont-nl.xml | 3 + tex/context/interface/cont-ro.xml | 3 + tex/context/interface/keys-cz.xml | 3 +- tex/context/interface/keys-de.xml | 3 +- tex/context/interface/keys-en.xml | 3 +- tex/context/interface/keys-fr.xml | 3 +- tex/context/interface/keys-it.xml | 3 +- tex/context/interface/keys-nl.xml | 3 +- tex/context/interface/keys-ro.xml | 3 +- tex/context/interface/t-bib.xml | 386 +++++++ tex/context/patterns/lang-agr.hyp | 10 + tex/context/patterns/lang-agr.pat | 2026 ++++++++++++++++++++++++++++++++++ 107 files changed, 9941 insertions(+), 1446 deletions(-) create mode 100644 doc/context/bib/bibmod-doc.pdf create mode 100644 doc/context/bib/bibmod-doc.tex create mode 100644 tex/context/base/enco-032.tex delete mode 100644 tex/context/base/enco-uni.tex create mode 100644 tex/context/base/math-mis.tex create mode 100644 tex/context/base/regi-cp1250.tex create mode 100644 tex/context/base/regi-syn.tex create mode 100644 tex/context/bib/bibl-ams.tex create mode 100644 tex/context/bib/bibl-apa-de.tex create mode 100644 tex/context/bib/bibl-apa-fr.tex create mode 100644 tex/context/bib/bibl-num-fr.tex create mode 100644 tex/context/bib/bibl-num.tex create mode 100644 tex/context/bib/bibl-ssa.tex delete mode 100644 tex/context/bib/t-bibltx.tex create mode 100644 tex/context/interface/t-bib.xml create mode 100644 tex/context/patterns/lang-agr.hyp create mode 100644 tex/context/patterns/lang-agr.pat diff --git a/bibtex/bst/context/cont-ab.bst b/bibtex/bst/context/cont-ab.bst index cc3c9411a..3b1b3c9f9 100644 --- a/bibtex/bst/context/cont-ab.bst +++ b/bibtex/bst/context/cont-ab.bst @@ -11,7 +11,7 @@ % only two lines: the ITERATEs right before the two SORTs can % have different values, sorting by either one of % -% -------------------------- cont-master.bst clabel +% -------------------------- cont-master.bst author % - the author (+year, title) : cont-au.bst author % - the title (+author, year) : cont-ti.bst title % - the short key a la abbrev : cont-ab.bst clabel @@ -58,6 +58,7 @@ % \chapter % \city % \comment +% \country % \crossref % \edition % \isbn @@ -70,6 +71,7 @@ % \month % \names % \note +% \notes % \organization % \pages % \pubname @@ -78,11 +80,23 @@ % \size % \thekey % \title -% \type +% \bibtype % \volume % \eprint % \doi % \howpublished +% \biburl +% \lastchecked +% for ieee: + +% \nationality +% \assignee +% \bibnumber +% \day +% \dayfiled +% \monthfiled +% \yearfiled +% \revision ENTRY { abstract @@ -92,6 +106,7 @@ ENTRY booktitle chapter comment + country doi edition editor @@ -105,9 +120,11 @@ ENTRY keyword keywords language + lastchecked month names note + notes number organization pages @@ -117,8 +134,17 @@ ENTRY size title type + url volume year + nationality + assignee + bibnumber + day + dayfiled + monthfiled + yearfiled + revision } {} { label extra.label sort.label clabel sort.clabel ordinal.label} @@ -197,11 +223,19 @@ FUNCTION {start.entry} doi empty$ {} { - "o=" write$ + "o={" write$ doi write$ - "," write$ + "}," write$ } if$ newline$ + url empty$ + {} + { + "u={" write$ + url write$ + "}," write$ + newline$ + } if$ "n=" write$ ordinal.label write$ ",s=" write$ @@ -212,7 +246,9 @@ FUNCTION {start.entry} } FUNCTION {stop.entry} -{ "" "\note" note do.out +{ "" "\country" country do.out + "" "\note" note do.out + "" "\notes" notes do.out "" "\annotate" annotate do.out "" "\eprint" eprint do.out "" "\doi" doi do.out @@ -222,6 +258,8 @@ FUNCTION {stop.entry} "" "\abstract" abstract do.out "" "\names" names do.out "" "\size" size do.out + "" "\biburl" url do.out + "" "\lastchecked" lastchecked do.out "\stoppublication" write$ newline$ } @@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page} FUNCTION {format.type.chapter.pages} { chapter empty$ 'format.pages - { "" "\type" type do.out + { "" "\bibtype" type do.out "" "\chapter" chapter do.out } if$ @@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series} FUNCTION {format.tr.number} -{"" "\type" type do.out +{"" "\bibtype" type do.out "" "\volume" number do.out } @@ -566,7 +604,7 @@ FUNCTION {mastersthesis} format.authors format.year format.t.title - "" "\type" type do.out + "" "\bibtype" type do.out "" "\pubname" school do.out "" "\month" month do.out "" "\city" address do.out @@ -591,7 +629,7 @@ FUNCTION {phdthesis} format.authors format.title format.year - "" "\type" type do.out + "" "\bibtype" type do.out "" "\month" month do.out "" "\pubname" school do.out "" "\city" address do.out @@ -630,6 +668,64 @@ FUNCTION {unpublished} stop.entry } +% 4 additions from IEEEtran + +FUNCTION {electronic} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + "" "\city" address do.out + "" "\organization" organization do.out + "" "\howpublished" howpublished do.out + stop.entry +} +FUNCTION {patent} +{ start.entry + format.authors + format.year + format.t.title + "" "\city" address do.out + "" "\nationality" nationality do.out + "" "\assignee" assignee do.out + "" "\bibtype" type do.out + "" "\month" month do.out + "" "\monthfiled" monthfiled do.out + "" "\yearfiled" yearfiled do.out + "" "\day" day do.out + "" "\dayfiled" dayfiled do.out + stop.entry +} +FUNCTION {periodical} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\bibnumber" number do.out + "" "\month" month do.out + "" "\organization" organization do.out + stop.entry +} +FUNCTION {standard} +{ start.entry + format.authors + format.year + format.title + "" "\bibtype" type do.out + "" "\organization" organization do.out + "" "\city" address do.out + "" "\revision" revision do.out + "" "\pubname" institution do.out + "" "\howpublished" howpublished do.out + "" "\bibnumber" number do.out + "" "\month" month do.out + stop.entry +} + +FUNCTION {IEEEtranBSTCTL} { } + FUNCTION {default.type} { misc } @@ -677,14 +773,20 @@ FUNCTION {chop.word} FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ + "{" swap$ * "}" * + s num.names$ duplicate$ + #1 > + { pop$ "," * } + { pop$ } + if$ s num.names$ duplicate$ #2 > - { pop$ " et~al." * } + { pop$ "{}" * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } + { "{}" * } + { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * } if$ } if$ diff --git a/bibtex/bst/context/cont-au.bst b/bibtex/bst/context/cont-au.bst index 3af407181..946860901 100644 --- a/bibtex/bst/context/cont-au.bst +++ b/bibtex/bst/context/cont-au.bst @@ -58,6 +58,7 @@ % \chapter % \city % \comment +% \country % \crossref % \edition % \isbn @@ -70,6 +71,7 @@ % \month % \names % \note +% \notes % \organization % \pages % \pubname @@ -78,11 +80,23 @@ % \size % \thekey % \title -% \type +% \bibtype % \volume % \eprint % \doi % \howpublished +% \biburl +% \lastchecked +% for ieee: + +% \nationality +% \assignee +% \bibnumber +% \day +% \dayfiled +% \monthfiled +% \yearfiled +% \revision ENTRY { abstract @@ -92,6 +106,7 @@ ENTRY booktitle chapter comment + country doi edition editor @@ -105,9 +120,11 @@ ENTRY keyword keywords language + lastchecked month names note + notes number organization pages @@ -117,8 +134,17 @@ ENTRY size title type + url volume year + nationality + assignee + bibnumber + day + dayfiled + monthfiled + yearfiled + revision } {} { label extra.label sort.label clabel sort.clabel ordinal.label} @@ -197,11 +223,19 @@ FUNCTION {start.entry} doi empty$ {} { - "o=" write$ + "o={" write$ doi write$ - "," write$ + "}," write$ } if$ newline$ + url empty$ + {} + { + "u={" write$ + url write$ + "}," write$ + newline$ + } if$ "n=" write$ ordinal.label write$ ",s=" write$ @@ -212,7 +246,9 @@ FUNCTION {start.entry} } FUNCTION {stop.entry} -{ "" "\note" note do.out +{ "" "\country" country do.out + "" "\note" note do.out + "" "\notes" notes do.out "" "\annotate" annotate do.out "" "\eprint" eprint do.out "" "\doi" doi do.out @@ -222,6 +258,8 @@ FUNCTION {stop.entry} "" "\abstract" abstract do.out "" "\names" names do.out "" "\size" size do.out + "" "\biburl" url do.out + "" "\lastchecked" lastchecked do.out "\stoppublication" write$ newline$ } @@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page} FUNCTION {format.type.chapter.pages} { chapter empty$ 'format.pages - { "" "\type" type do.out + { "" "\bibtype" type do.out "" "\chapter" chapter do.out } if$ @@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series} FUNCTION {format.tr.number} -{"" "\type" type do.out +{"" "\bibtype" type do.out "" "\volume" number do.out } @@ -566,7 +604,7 @@ FUNCTION {mastersthesis} format.authors format.year format.t.title - "" "\type" type do.out + "" "\bibtype" type do.out "" "\pubname" school do.out "" "\month" month do.out "" "\city" address do.out @@ -591,7 +629,7 @@ FUNCTION {phdthesis} format.authors format.title format.year - "" "\type" type do.out + "" "\bibtype" type do.out "" "\month" month do.out "" "\pubname" school do.out "" "\city" address do.out @@ -630,6 +668,64 @@ FUNCTION {unpublished} stop.entry } +% 4 additions from IEEEtran + +FUNCTION {electronic} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + "" "\city" address do.out + "" "\organization" organization do.out + "" "\howpublished" howpublished do.out + stop.entry +} +FUNCTION {patent} +{ start.entry + format.authors + format.year + format.t.title + "" "\city" address do.out + "" "\nationality" nationality do.out + "" "\assignee" assignee do.out + "" "\bibtype" type do.out + "" "\month" month do.out + "" "\monthfiled" monthfiled do.out + "" "\yearfiled" yearfiled do.out + "" "\day" day do.out + "" "\dayfiled" dayfiled do.out + stop.entry +} +FUNCTION {periodical} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\bibnumber" number do.out + "" "\month" month do.out + "" "\organization" organization do.out + stop.entry +} +FUNCTION {standard} +{ start.entry + format.authors + format.year + format.title + "" "\bibtype" type do.out + "" "\organization" organization do.out + "" "\city" address do.out + "" "\revision" revision do.out + "" "\pubname" institution do.out + "" "\howpublished" howpublished do.out + "" "\bibnumber" number do.out + "" "\month" month do.out + stop.entry +} + +FUNCTION {IEEEtranBSTCTL} { } + FUNCTION {default.type} { misc } @@ -677,14 +773,20 @@ FUNCTION {chop.word} FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ + "{" swap$ * "}" * + s num.names$ duplicate$ + #1 > + { pop$ "," * } + { pop$ } + if$ s num.names$ duplicate$ #2 > - { pop$ " et~al." * } + { pop$ "{}" * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } + { "{}" * } + { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * } if$ } if$ diff --git a/bibtex/bst/context/cont-no.bst b/bibtex/bst/context/cont-no.bst index 7b582f359..a0cb52151 100644 --- a/bibtex/bst/context/cont-no.bst +++ b/bibtex/bst/context/cont-no.bst @@ -11,7 +11,7 @@ % only two lines: the ITERATEs right before the two SORTs can % have different values, sorting by either one of % -% -------------------------- cont-master.bst none +% -------------------------- cont-master.bst author % - the author (+year, title) : cont-au.bst author % - the title (+author, year) : cont-ti.bst title % - the short key a la abbrev : cont-ab.bst clabel @@ -58,6 +58,7 @@ % \chapter % \city % \comment +% \country % \crossref % \edition % \isbn @@ -70,6 +71,7 @@ % \month % \names % \note +% \notes % \organization % \pages % \pubname @@ -78,11 +80,23 @@ % \size % \thekey % \title -% \type +% \bibtype % \volume % \eprint % \doi % \howpublished +% \biburl +% \lastchecked +% for ieee: + +% \nationality +% \assignee +% \bibnumber +% \day +% \dayfiled +% \monthfiled +% \yearfiled +% \revision ENTRY { abstract @@ -92,6 +106,7 @@ ENTRY booktitle chapter comment + country doi edition editor @@ -105,9 +120,11 @@ ENTRY keyword keywords language + lastchecked month names note + notes number organization pages @@ -117,8 +134,17 @@ ENTRY size title type + url volume year + nationality + assignee + bibnumber + day + dayfiled + monthfiled + yearfiled + revision } {} { label extra.label sort.label clabel sort.clabel ordinal.label} @@ -197,11 +223,19 @@ FUNCTION {start.entry} doi empty$ {} { - "o=" write$ + "o={" write$ doi write$ - "," write$ + "}," write$ } if$ newline$ + url empty$ + {} + { + "u={" write$ + url write$ + "}," write$ + newline$ + } if$ "n=" write$ ordinal.label write$ ",s=" write$ @@ -212,7 +246,9 @@ FUNCTION {start.entry} } FUNCTION {stop.entry} -{ "" "\note" note do.out +{ "" "\country" country do.out + "" "\note" note do.out + "" "\notes" notes do.out "" "\annotate" annotate do.out "" "\eprint" eprint do.out "" "\doi" doi do.out @@ -222,6 +258,8 @@ FUNCTION {stop.entry} "" "\abstract" abstract do.out "" "\names" names do.out "" "\size" size do.out + "" "\biburl" url do.out + "" "\lastchecked" lastchecked do.out "\stoppublication" write$ newline$ } @@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page} FUNCTION {format.type.chapter.pages} { chapter empty$ 'format.pages - { "" "\type" type do.out + { "" "\bibtype" type do.out "" "\chapter" chapter do.out } if$ @@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series} FUNCTION {format.tr.number} -{"" "\type" type do.out +{"" "\bibtype" type do.out "" "\volume" number do.out } @@ -566,7 +604,7 @@ FUNCTION {mastersthesis} format.authors format.year format.t.title - "" "\type" type do.out + "" "\bibtype" type do.out "" "\pubname" school do.out "" "\month" month do.out "" "\city" address do.out @@ -591,7 +629,7 @@ FUNCTION {phdthesis} format.authors format.title format.year - "" "\type" type do.out + "" "\bibtype" type do.out "" "\month" month do.out "" "\pubname" school do.out "" "\city" address do.out @@ -630,6 +668,64 @@ FUNCTION {unpublished} stop.entry } +% 4 additions from IEEEtran + +FUNCTION {electronic} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + "" "\city" address do.out + "" "\organization" organization do.out + "" "\howpublished" howpublished do.out + stop.entry +} +FUNCTION {patent} +{ start.entry + format.authors + format.year + format.t.title + "" "\city" address do.out + "" "\nationality" nationality do.out + "" "\assignee" assignee do.out + "" "\bibtype" type do.out + "" "\month" month do.out + "" "\monthfiled" monthfiled do.out + "" "\yearfiled" yearfiled do.out + "" "\day" day do.out + "" "\dayfiled" dayfiled do.out + stop.entry +} +FUNCTION {periodical} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\bibnumber" number do.out + "" "\month" month do.out + "" "\organization" organization do.out + stop.entry +} +FUNCTION {standard} +{ start.entry + format.authors + format.year + format.title + "" "\bibtype" type do.out + "" "\organization" organization do.out + "" "\city" address do.out + "" "\revision" revision do.out + "" "\pubname" institution do.out + "" "\howpublished" howpublished do.out + "" "\bibnumber" number do.out + "" "\month" month do.out + stop.entry +} + +FUNCTION {IEEEtranBSTCTL} { } + FUNCTION {default.type} { misc } @@ -677,14 +773,20 @@ FUNCTION {chop.word} FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ + "{" swap$ * "}" * + s num.names$ duplicate$ + #1 > + { pop$ "," * } + { pop$ } + if$ s num.names$ duplicate$ #2 > - { pop$ " et~al." * } + { pop$ "{}" * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } + { "{}" * } + { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * } if$ } if$ diff --git a/bibtex/bst/context/cont-ti.bst b/bibtex/bst/context/cont-ti.bst index b4660d6ae..a0d53433a 100644 --- a/bibtex/bst/context/cont-ti.bst +++ b/bibtex/bst/context/cont-ti.bst @@ -11,7 +11,7 @@ % only two lines: the ITERATEs right before the two SORTs can % have different values, sorting by either one of % -% -------------------------- cont-master.bst title +% -------------------------- cont-master.bst author % - the author (+year, title) : cont-au.bst author % - the title (+author, year) : cont-ti.bst title % - the short key a la abbrev : cont-ab.bst clabel @@ -58,6 +58,7 @@ % \chapter % \city % \comment +% \country % \crossref % \edition % \isbn @@ -70,6 +71,7 @@ % \month % \names % \note +% \notes % \organization % \pages % \pubname @@ -78,11 +80,23 @@ % \size % \thekey % \title -% \type +% \bibtype % \volume % \eprint % \doi % \howpublished +% \biburl +% \lastchecked +% for ieee: + +% \nationality +% \assignee +% \bibnumber +% \day +% \dayfiled +% \monthfiled +% \yearfiled +% \revision ENTRY { abstract @@ -92,6 +106,7 @@ ENTRY booktitle chapter comment + country doi edition editor @@ -105,9 +120,11 @@ ENTRY keyword keywords language + lastchecked month names note + notes number organization pages @@ -117,8 +134,17 @@ ENTRY size title type + url volume year + nationality + assignee + bibnumber + day + dayfiled + monthfiled + yearfiled + revision } {} { label extra.label sort.label clabel sort.clabel ordinal.label} @@ -197,11 +223,19 @@ FUNCTION {start.entry} doi empty$ {} { - "o=" write$ + "o={" write$ doi write$ - "," write$ + "}," write$ } if$ newline$ + url empty$ + {} + { + "u={" write$ + url write$ + "}," write$ + newline$ + } if$ "n=" write$ ordinal.label write$ ",s=" write$ @@ -212,7 +246,9 @@ FUNCTION {start.entry} } FUNCTION {stop.entry} -{ "" "\note" note do.out +{ "" "\country" country do.out + "" "\note" note do.out + "" "\notes" notes do.out "" "\annotate" annotate do.out "" "\eprint" eprint do.out "" "\doi" doi do.out @@ -222,6 +258,8 @@ FUNCTION {stop.entry} "" "\abstract" abstract do.out "" "\names" names do.out "" "\size" size do.out + "" "\biburl" url do.out + "" "\lastchecked" lastchecked do.out "\stoppublication" write$ newline$ } @@ -380,7 +418,7 @@ FUNCTION {format.vol.num.page} FUNCTION {format.type.chapter.pages} { chapter empty$ 'format.pages - { "" "\type" type do.out + { "" "\bibtype" type do.out "" "\chapter" chapter do.out } if$ @@ -413,7 +451,7 @@ FUNCTION {format.in.booktitle.or.series} FUNCTION {format.tr.number} -{"" "\type" type do.out +{"" "\bibtype" type do.out "" "\volume" number do.out } @@ -566,7 +604,7 @@ FUNCTION {mastersthesis} format.authors format.year format.t.title - "" "\type" type do.out + "" "\bibtype" type do.out "" "\pubname" school do.out "" "\month" month do.out "" "\city" address do.out @@ -591,7 +629,7 @@ FUNCTION {phdthesis} format.authors format.title format.year - "" "\type" type do.out + "" "\bibtype" type do.out "" "\month" month do.out "" "\pubname" school do.out "" "\city" address do.out @@ -630,6 +668,64 @@ FUNCTION {unpublished} stop.entry } +% 4 additions from IEEEtran + +FUNCTION {electronic} +{ start.entry + format.authors + format.year + format.t.title + "" "\month" month do.out + "" "\city" address do.out + "" "\organization" organization do.out + "" "\howpublished" howpublished do.out + stop.entry +} +FUNCTION {patent} +{ start.entry + format.authors + format.year + format.t.title + "" "\city" address do.out + "" "\nationality" nationality do.out + "" "\assignee" assignee do.out + "" "\bibtype" type do.out + "" "\month" month do.out + "" "\monthfiled" monthfiled do.out + "" "\yearfiled" yearfiled do.out + "" "\day" day do.out + "" "\dayfiled" dayfiled do.out + stop.entry +} +FUNCTION {periodical} +{ start.entry + format.editors + format.year + format.title + format.number.series + "" "\bibnumber" number do.out + "" "\month" month do.out + "" "\organization" organization do.out + stop.entry +} +FUNCTION {standard} +{ start.entry + format.authors + format.year + format.title + "" "\bibtype" type do.out + "" "\organization" organization do.out + "" "\city" address do.out + "" "\revision" revision do.out + "" "\pubname" institution do.out + "" "\howpublished" howpublished do.out + "" "\bibnumber" number do.out + "" "\month" month do.out + stop.entry +} + +FUNCTION {IEEEtranBSTCTL} { } + FUNCTION {default.type} { misc } @@ -677,14 +773,20 @@ FUNCTION {chop.word} FUNCTION {format.lab.names} { 's := s #1 "{vv~}{ll}" format.name$ + "{" swap$ * "}" * + s num.names$ duplicate$ + #1 > + { pop$ "," * } + { pop$ } + if$ s num.names$ duplicate$ #2 > - { pop$ " et~al." * } + { pop$ "{}" * } { #2 < 'skip$ { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = - { " et~al." * } - { " and " * s #2 "{vv~}{ll}" format.name$ * } + { "{}" * } + { s #2 "{vv~}{ll}" format.name$ "{" swap$ * "}" * * } if$ } if$ diff --git a/doc/context/bib/bibmod-doc.pdf b/doc/context/bib/bibmod-doc.pdf new file mode 100644 index 000000000..4a5aa523d Binary files /dev/null and b/doc/context/bib/bibmod-doc.pdf differ diff --git a/doc/context/bib/bibmod-doc.tex b/doc/context/bib/bibmod-doc.tex new file mode 100644 index 000000000..b1ba4dcc3 --- /dev/null +++ b/doc/context/bib/bibmod-doc.tex @@ -0,0 +1,665 @@ + +\usemodule[int-load] +\def\loadsetups{} +\setupinteraction[state=start] +\setupcolors[state=start] + +\usemodule[bib,set-11,mod-01] +\setuppublications[alternative=num] + +\startXMLmapping[zero] +\processXMLfilegrouped{t-bib.xml} +\stopXMLmapping + +\setupitemize[each][packed] + +\setuphead[section][page=] + +\setupoutput[pdftex] + +\def\BIBTEX{Bib\TeX} +\def\MAPS{Maps} + + +\startbuffer[bibexample] +\startpublication[k=me, + t=manual, + a=Hoekwater, + y=2006, + s=TH2006, + n=1, + u=http://contextgarden.net/Bibliography] +\author[]{Taco}[T.]{}{Hoekwater} +\title{\CONTEXT\ Publication Module, The user documententation} +\pubyear{2006} +\note{In case you didn't know: it's the document you are reading now} +\pages{12} +\stoppublication +\stopbuffer + +\getbuffer[bibexample] + +\startmodule[type=tex] + +\startdocumentation + +\module + [ file=bibmod-doc, + version=2006.03.13, + title=Module Documentation, + subtitle=Bibliographies, + author={Taco Hoekwater}, + date=\currentdate, + copyright=Taco Hoekwater] + +\completecontent + +\section{Introduction} + +The bibliographic module (\type{t-bib.tex}) takes care of references +to publications and the typesetting of publication lists, as well as +providing an interface between \BIBTEX and \CONTEXT. This manual +documents version 2006.03.13. + +The bibliographic subsystem consists of the main module +\type{t-bib.tex}; four \BIBTEX\ styles (\type{cont-xx.bst}); and a set +of example configuration files (\type{bibl-xxx.tex}) that set up +specific formatting styles for both the citations and the list of +references. + + +\subsection{General overview} + +A typical input file obeys following structure: +\startitemize[n] +\item A call to \type{\usemodule[bib]}. +\item Optionally, a few setup commands for the bibliographic module. +\item A number of definitions of publications to be referenced in the +main text of the article. The source of these definitions can be +a combination of: + \startitemize + \item THe \type{\jobname.bbl} file (automatically read at \type{\starttext}) + \item extra bbl files + \item a file or inline macros before \type{\starttext} + \stopitemize + These possibilities will be explained below. For now, it is + only important to realize that of all these definitions have to be known + {\it before} the first citation in the text. +\item \type{\starttext} +\item The body text, with a number of \type{\cite} commands. +\item The list of publications, called using the command + \type{\placepublications} or the command\break \type{\completepublications}. +\item \type{\stoptext} +\stopitemize + +\section{Setup commands} + +Bibliographic references use a specific `style', a collection of rules +for the use of \type{\cite} as well as for the formatting that is +applied to the publication list. The \CONTEXT\ bibliographic module +expects you to define all of these style options in one single +file of which the names starts with the prefix \type{bibl-}. + +Unlike the normal situation in \LATEX, this style {\it also\/} +includes the formatting of the items themselves. Because of this, the +\type{.bbl} file is set up as a database of entries with fields. + +\subsection{Global settings: \type{\setuppublications}} + +The most important user-level command is +\type{\setuppublications}. Most of the options to this command +shoudl be set by the bibliography style file, but a few of them are of +immediate interest to the casual user as well. + +Like all setup commands, thus command should be given before +\type{\starttext}, as it sets up global information about the +bibliographic references used in the document. \CONTEXT\ needs this +information in order to function correctly. + +\setup{setuppublications} + +\starttabulate[|l|p|] +\NC alternative\NC This gives the name of a bibliography style. \crlf + The chosen style defines the other default options, the options + given in this documentation are the defaults as they are set up + by the `apa' style. When this argument is given, the newly set +style is read in first, before the other options are processed. Thus +allowing you to override specific settings from the chosen style.\NC\NR +\NC refcommand \NC the default option for \type{\cite}\NC \NR +\NC sorttype\NC How the publications in the final publication + list should be sorted. `cite' means: by the order in which + they were first cited in your text. `bbl' tells the + module to keep the relative ordering in which the publication + definitions were found\crlf + The current default for apa is `cite'\NC\NR +\NC criterium\NC Whether to list only the referenced + publications or all of them.\crlf + If this value is `all', then if `sorttype' equals `cite', this + means that all referred-to publications are listed + before all others, otherwise (if `sorttype' equals `bbl') you will + just get a typeset version of the used database(s).\crlf + The default for apa is `used'\NC\NR +\NC numbering\NC Whether or not the publication list + should be labelled and if so, how. \type{yes} uses the item number in + the publication list as label. \type{short} uses the short + label. \type{bib} + uses the original number in the \BIBTEX\ database as a label. + Anything else turns labelling off.\crlf + The default for apa is `no'\NC\NR +\NC autohang\NC Whether or not the + hanging indent should be re-calculated based on the real size of the + label. This option only applies if numbering is turned on.\crlf + The default is `no'.\NC\NR +\stoptabulate + +\subsection{How the entries are formatted: \type{\setuppublicationlist}} + +\setup{setuppublicationlist} + +The list of publications at the end of the article is essentially a +normal context `list' that behaves much like the list that defines the +table of contents, with the following changes: + +The module defines a set of extra options. These option names are static, they +do {\it not} change to follow the selected \CONTEXT\ interface language. + +The first two options provide default widths for `autohang': +\starttabulate[|l|p|] +\NC totalnumber\NC The total number of items in the following list (used for autohang).\NC\NR +\NC samplesize\NC The longest short label in the list (used for autohang)\NC\NR +\stoptabulate + +The other extra options are needed to control micro||typesetting +of things that are buried deep within macros. There is a separate +command to handle the larger layout options +(\type{\setuppublicationlayout}, explained below), but the options +here are the only way to make changes in the formatting used for +editors', authors', and article authors' names. +\starttabulate[|l|p|] +\NC editor \NC command to typeset one editor in the publication list.\NC \NR +\NC author \NC command to typeset one author in the publication list.\NC \NR +\NC artauthor \NC command to typeset one article author in the publication list.\NC \NR +\NC namesep \NC the separation between consecutive names (either + editors, authors or artauthors).\NC \NR +\NC lastnamesep \NC the separation before the last name in a list of names.\NC \NR +\NC firstnamesep \NC the separation following the fistname or inits within a name in the publication list.\NC \NR +\NC juniorsep \NC likewise for `junior'.\NC \NR +\NC vonsep \NC likewise for `von'.\NC \NR +\NC surnamesep \NC likewise for surname.\NC \NR +\stoptabulate +The commands after `editor' e.g. are predefined +macros that control how a single name is typeset. The four supplied +macros provide formatting that looks like this: + +{\setvalue{@@currentalternative}{data} +\starttabulate[|l|p|] +\NC\tex{invertedauthor}\NC \invertedauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR +\NC\tex{invertedshortauthor}\NC \invertedshortauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR +\NC\tex{normalauthor}\NC \normalauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR +\NC\tex{normalshortauthor}\NC \normalshortauthor{Taco}{von}{Hoekwater}{T}{jr}\NC\NR +\stoptabulate +} +As you can see in the examples, there is a connection between certain +styles of displaying a name and the punctuation used. Punctuation in +this document has been set up by the `ap' style, and that style makes +sure that \type{\invertedshortauthor} looks good, since that is the default +command for `apa' style. (Keep in mind that the comma at the end of the +author will be inserted by either `namesep' or `lastnamesep'.) + +In case you are not happy with the predefined macros; it is quite simple to +define one of these macros yourself, it is a simple macro with 5 +arguments: firstnames, von-part, surname, inits, junior. + +For example, here is the definition of \type{\normalauthor}, +\starttyping +\def\normalauthor#1#2#3#4#5% + {\bibdoif{#1}{#1\bibalternative{firstnamesep}}% + \bibdoif{#2}{#2\bibalternative{vonsep}}% + #3\bibalternative{surnamesep}% + \bibdoif{#5}{#5\unskip}} +\stoptyping +but commands can be a lot simpler, like this: +\starttyping +\def\surnameonly#1#2#3#4#5{#3} +\setuppublicationlist[editor=\surnameonly] +\stoptyping + + +Apart from these extra options, +the module itself sets some of the options to the internal call to +\type{\setuplist} itself. + +To get a reasonable layout for the reference list, the following are +set as a precaution: +\starttabulate[|l|p|] +\NC alternative\NC Always re-initialized to `a'. This makes sure that no +space is allocated for the page number.\NC\NR +\NC pagenumber\NC Always re-initialized to `no'. The list is a bit of +a special one, and page numbers don't make much sense. All entries +will have the same page number: the number of the page on +which \type{\placepublications} was called.\NC\NR +\NC interaction\NC Alway made empty. There should never be any +interactivity in the list of publications, because the entries all +point to themselves (this limitation is similar to one for `pagenumber'). +\stoptabulate + + +And also, the following options are initialized depending on the +global settings for `numbering' and `autohang': +\starttabulate[|l|p|] +\NC width\NC Set to the calculated width of the largest label, but only if autohang is `yes'\NC\NR +\NC distance\NC Set to 0pt, but only if autohang is `yes'\NC\NR +\NC numbercommand\NC A command given in `setuppublications' if numbering is turned on, otherwise empty.\NC\NR +\NC textcommand\NC Set to a macro that outdents the body text if numbering is turned off, otherwise empty\NC\NR +\stoptabulate + + +\subsection{Setting citation options: \type{\setupcite}} + +The \type{\cite} command has a lot of alternatives, as could be seen +above in the setting of `refcommand'. And these alternatives have +their own options: + +\setup{setupcite} + +\starttabulate[|l|p|] +\NC andtext \NC separation between two authors (for \type{\cite[author]} styles)\NC \NR +\NC otherstext \NC text used for `et.al.' (for \type{\cite[author]} styles)\NC \NR +\NC pubsep \NC separator between publication references in a + \type{\cite} command.\NC \NR +\NC lastpubsep \NC same, but for the + last publication in the list.\NC \NR +\NC left \NC left side of a \type{\cite} (like \type{[})\NC \NR +\NC inbetween \NC the separator between parts of a single citation.\NC\NR +\NC right \NC right side of a \type{\cite} (like \type{]})\NC \NR +\NC compress \NC Whether \type{\cite} should try to +compress it's argument list. \NC\NR +\stoptabulate +Not all options apply to all types of \type{\cite} commands. +E.g. `compress' does not apply to the citation +list for all options of \type{\cite}, since sometimes compression does +not make sense or is not possible. The `num' version compresses +into a condensed sorted list, and the various `author' styles try +to compress all publications by one author, but e.g. years are +never compressed. + +Likewise, `inbetween' only applies to three types: `authoryear' (a +space), `authoryears' (a comma followed by a space), and `num' (where +it is `--' (an endash), the character used to separate number ranges). + +\subsection{Setting up \BIBTEX: \type{\setupbibtex}} + +\BIBTEX\ bibliographic databases are converted into \type{.bbl} files, +and the generated file is just a more \TEX-minded representation of +the full database(s). + +The four \type{.bst} files do not do any actual formatting on the +entries, and they do not subset the database either. Instead, the +{\it entire} database is converted into \TEX-parseable records. About the +only thing the \type{.bst} files do is sorting the entries (and +\BIBTEX\ itself resolves any `STRING' specifications, of course). + +The module will read the created \type{\jobname.bbl} file +and select the parts that are needed for the current article. + +\setup{setupbibtex} + +\starttabulate[|l|p|] +\NC database\NC List of bibtex database file names to be + used. The module will write a very short \type{.aux} file instructing + \BIBTEX\ to create a (possibly very large) \type{\jobname.bbl} file, + that will be \type{\input} by the module (at \type{\starttext}).\NC\NR +\NC sort\NC How the publications in the + \BIBTEX\ database file should be sorted.\crlf + The default here is `no' (\type{cont-no.bst}), meaning no sorting at all. + `author' (\type{cont-au.bst}) sorts alphabetically on author and within that on year, + `title' (\type{cont-ti.bst}) sorts alphabetically on title and then on author and + year, and `short' (\type{cont-ab.bst}) sorts on the short key that is generated + by \BIBTEX.\NC\NR +\stoptabulate + +For now, you need to run \BIBTEX\ by hand to create the +\type{\jobname.bbl} file (\type{texutil} will hopefully do this for +you in the future). + +You may want to create the \type{\jobname.bbl} yourself. The +\type{.bbl} syntax is explained below. There is no default +database of course, and you do not {\it have} to use one: it is +perfectly OK to just \type{\input} a file with the bibliographic +records, as long as it has the right input syntax. Or even to include +the definitions themselves in the preamble of your document. + +The most efficient calling order when using \BIBTEX\ is: +\starttyping +texexec --once myfile +bibtex myfile +texexec myfile +\stoptyping + +Texexec should be smart enough to recognize how many +runs are needed in the final part, but it seems it +sometimes does one iteration too few. So you might +have to call texexec one last time to get the page references +correct. Numbered references always need at least one run more +than author, year references, because the final number in +the reference list is usually not decided upon yet at the +moment the \type{\cite} command is encountered. + + +\subsection{Borrowing publications: \type{\usepublications}} + +It is also possible to instruct the module to use the bibliographic +references belonging to another document. This is done by using the command +\type{\usepublications[files]}, where \type{files} is a list of other +\CONTEXT\ documents (without extension). + +\setup{usepublications} + +To be precise, this command will use the \type{.bbl} and \type{.tuo} +files from the other document(s), and will therefore not work if these +files cannot be found (the \type{.tuo} file is needed to get correct +page references for \type{\cite[page]}). + + +\section{Citations} + +Citations are handled through the \type{\cite} command. + +\type{\cite} has two basic appearances: + +\subsection{Default and explicit citations} + +\setup{cite} + +The single-argument form executes the style-defined default citation +command. This is the preferred way of usage, since some styles might +use numeric citations while others might use a variation of the +(author,year) style. + +The two-argument form allows you to manually select the style you want. + +\subsubsection{Citation types} + +Following is the full list of recognized keywords for \type{\cite}, +with a short explanation where the data comes from. Most of the +information that is usable within \type{\cite} comes from the argument +to \type{\startpublication}. This command is covered in detail below. + + +All of these options are {\it valid} in all publication styles, since +\CONTEXT\ always has the needed information available. But not all of +these are {\it sensible} in a particular style: using numbered references if +the list of publications itself is not numbered is not a good idea, for +instance. Also, some of the keys are somewhat strange and only +provided for future extensions. + +First, here are the simple ones: +\starttabulate[|l|l|p|] +\NC author\NC \cite[author][me] \NC(from `a')\hfil\NC\NR +\NC doi\NC \cite[doi][me]\NC (from `d')\hfil\NC\NR +\NC key\NC \cite[key][me]\NC (from `k')\hfil\NC\NR +\NC serial\NC \cite[serial][me]\NC (from `n')\hfil\NC\NR +\NC short\NC \cite[short][me]\NC (from `s')\hfil\NC\NR +\NC type\NC \cite[type][me]\NC (from `t')\hfil\NC\NR +\NC year\NC \cite[year][me]\NC (from `y')\hfil\NC\NR +\NC url\NC \cite[url][me]\NC (from `u')\hfil\NC\NR +\stoptabulate +Keep in mind that `n' is a database sequence number, and not +necesarily the same number that is used in the list of +publications. For instance, if `sorttype' is cite, the list will be +re-ordered, but the `n' value will remain the same. To get to the +number that is finally used, use +\starttabulate[|l|l|p|] +\NC num\NC \cite[num][me]\NC (this is a reference to + the sequence number used in the publication list)\hfil\NC\NR +\stoptabulate +If the list of publications is not numbered visually, there will still +be a number available. + +Three of the options are combinations: +\starttabulate[|l|l|p|] +\NC authoryear\NC \cite[authoryear][me]\NC(from `a' and `y')\hfil\NC\NR +\NC authoryears\NC \cite[authoryears][me]\NC(from `a' and `y')\hfil\NC\NR +\NC data\NC \vtop{\hsize .45\hsize \cite[data][me]}\NC The data content of the entry\hfil\NC\NR +\stoptabulate + +And the last one is a page reference to the page where the +the entry is typeset within the publication list. + +\starttabulate[|l|l|p|] +\NC page\NC \cite[page][me]\NC (a page reference)\hfil\NC\NR +\stoptabulate + +\subsection{Citations with local setups} + +\setup{citealt} + +The arguments in this form are inherited from \type{\setupcite}, +except for \type{extras}. The argument of `\type{extras}' is typeset +at the end of the reference, but before a potential `\type{right}', so +it can be used for e.g. page or chapter specifiers. + + +\section{Placing the publication list} + +This is really simple: use \type{\completepublications} +or \type{\placepublications} at the location in your +text where you want the publication list to appear. As is normal in +\CONTEXT, \type{\placepublications} gives you a raw list, and +\type{\completepublications} a list with a heading. The module uses +the following defaults for the generated head: +\starttyping +\setupheadtext[en][\biblistname=References] +\setupheadtext[nl][\biblistname=Literatuur] +\setupheadtext[de][\biblistname=Literatur] +\setupheadtext[it][\biblistname=Bibliografia] +\setupheadtext[sl][\biblistname=Literatura] +\setupheadtext[fr][\biblistname=Bibliographie] +\stoptyping + +These (or new ones) can be redefined as needed. + +\section{The bbl file} + +A typical bbl file consists of one initial command +(\type{\setuppublicationlist}) that sets some information +about the number of entries in the bbl file and the widths +of the labels for the list, and that command is followed by a number of +appearances of \type{\startpublication ... \stoppublication} + +The full appearance version of \type{\cite} +accepts a number of option keywords, and we saw earlier that +the argument of the \type{\startpublication} command +defines most of the things we can reference to. This section explains +the precise syntax for \type{\startpublication}. + +Each single block defines one bibliographic entry. I apologise +for the use of single||letter keys, but these have the advantage of +being a)\quad short and b)\quad safe w.r.t. the multi-lingual interface. + +\setup{startpublication} + +Here is the full example that has been used throughout this document: + +\typebuffer[bibexample] + +\subsection{Defining a publication} + +The list of commands that is allowed to appear between \type{\startpublication} +and \type{\stoppublication} is given below. + +Order within an entry is irrelevant, except for the relative ordering +within each of the three commands that might appear more than once: +\type{\artauthor}, \type{\author} and \type{\editor}. + +Most of these are `normal' \BIBTEX\ field names (in lowercase), but +some are extra special, either because they come from non-standard +databases that I know of, or because the bst file has pre-processed +the contents of the field. + +\subsubsection{Complex fields} + +The three fields that contain names are extra special, because they +have more than one argument. These are: \type{\artauthor}, +\type{\author} and \type{\editor}. At the moment, these +commands require exactly 5 arguments (of which two look like +optional arguments, but they are not) + + +\starttabulate[|l|l|p|] +\NC\tex{artauthor[\#1]\{\#2\}[\#3]\{\#4\}\{\#5\}}\NC\tfx AUTHOR\NC For an author of any publication + that appears within a larger publication, like an article that appears + within a journal or as part of a proceedings. \NC\NR +\NC\tex{author[\#1]\{\#2\}[\#3]\{\#4\}\{\#5\}}\NC\tfx AUTHOR\NC The author of a standalone + publication, like a monograph.\NC\NR +\NC\tex{editor[\#1]\{\#2\}[\#3]\{\#4\}\{\#5\}}\NC\tfx EDITOR\NC The editor of e.g. + an edited volume.\NC\NR +\stoptabulate + +\subsubsection{Simple fields} + +Rather a large list, this is caused by the desire to support as many +existing \BIBTEX\ databases as possible. Please note that a few of +the fields have names that are not the same as in \BIBTEX, because a +1~on~1 mapping causes conflicts with predefined macro names in +\CONTEXT. + +\starttabulate[|l|p(2.5cm)|p|] +\NC\type{\abstract}\NC\tfx ABSTRACT\NC just text.\NC\NR +\NC\type{\annotate}\NC\tfx ANNOTATE \NC just text.\NC\NR +\NC\type{\arttitle}\NC\tfx TITLE\NC The title of a partial publication (one that has \type{\artauthor}s).\NC\NR +\NC\type{\assignee}\NC\tfx ASSIGNEE\NC Assigned person for a patent\NC\NR +\NC\type{\bibnumber}\NC\tfx NUMBER \NC \NC\NR +\NC\type{\bibtype}\NC\tfx TYPE \NC See the \BIBTEX\ + documentation for it's use. This is {\it not} related + to the type of entry that is used for deciding on the + layout.\NC\NR +\NC\type{\biburl}\NC\tfx URL \NC Location on the internet. \NC\NR +\NC\type{\chapter}\NC\tfx CHAPTER \NC the chapter number, if this entry is +referring to a smaller section of a publication. It might actually +be a part number or a (sub)section number. The field \type{\bibtype} (above) +differentiates between these.\NC\NR +\NC\type{\city}\NC\tfx CITY\NC city of publication.\NC\NR +\NC\type{\comment}\NC\tfx COMMENT\NC just text.\NC\NR +\NC\type{\country}\NC\tfx COUNTRY\NC country of publication.\NC\NR +\NC\type{\crossref}\NC\tfx CROSSREF\NC A cross-reference to another + bibliographic entry. It will insert a citation + to that entry, forcing it to be typeset as well.\NC\NR +\NC\type{\day}\NC\tfx DAY \NC Date of publication (for a patent)\NC\NR +\NC\type{\dayfiled}\NC\tfx DAYFILED\NC Filing date for a patent\NC\NR +\NC\type{\doi}\NC\tfx DOI \NC Document Object Identifier\NC\NR +\NC\type{\eprint}\NC\tfx EPRINT\NC E-print information\NC\NR +\NC\type{\edition}\NC\tfx EDITION\NC The edition.\NC\NR +\NC\type{\howpublished}\NC\tfx HOWPUBLISHED\NC \NC\NR +\NC\type{\isbn}\NC\tfx ISNB\NC isbn number (for books)\NC\NR +\NC\type{\issn}\NC\tfx ISSN\NC issn number (for journals)\NC\NR +\NC\type{\issue}\NC\tfx ISSUE\NC issue number (for journals)\NC\NR +\NC\type{\journal}\NC\tfx JOURNAL \NC The journal's name.\NC\NR +\NC\type{\keyword}\NC\tfx KEYWORD \NC just text (for use in indices).\NC\NR +\NC\type{\keywords}\NC\tfx KEYWORDS \NC just text (for use in indices).\NC\NR +\NC\type{\lang}\NC\tfx LANGUAGE \NC The language of the + current bibliographic record (ignored at the moment)\NC\NR +\NC\type{\month}\NC\tfx MONTH\NC Month of publication\NC\NR +\NC\type{\monthfiled}\NC\tfx MONTHFILED\NC Filing month for a patent\NC\NR +\NC\type{\names}\NC\tfx NAMES\NC just text (for use in indices).\NC\NR +\NC\type{\nationality}\NC\tfx NATIONALITY\NC Nationality information for a patent\NC\NR +\NC\type{\note}\NC\tfx NOTE \NC just text (this is the `standard' \BIBTEX\ commentary field).\NC\NR +\NC\type{\notes}\NC\tfx NOTES \NC just text.\NC\NR +\NC\type{\organization}\NC\tfx ORGANIZATION\NC Like institute, but for e.g. companies.\NC\NR +\NC\type{\pages}\NC\tfx PAGES\NC Either the number of pages, or the page range + for a partial publication. The `t' key to startpublication + will decide automatically what is meant.\NC\NR +\NC\type{\pubname}\NC\tfx INSTITUTION,\crlf PUBLISHER,\crlf SCHOOL\NC Publisher or institution name.\NC\NR +\NC\type{\pubyear}\NC\tfx YEAR \NC Year of publication. Within this command, + the \BIBTEX\ bst files will sometimes insert the command + \type{\maybeyear}, which is needed to make sure that + the bbl file stay flexible enough to allow all styles of + formatting.\NC\NR +\NC\type{\revision}\NC\tfx REVISION \NC Release version\NC\NR +\NC\type{\series}\NC\tfx SERIES \NC Possible book series information.\NC\NR +\NC\type{\size}\NC\tfx SIZE \NC Size in KB of a PDF file (this came from + the NTG \MAPS\ database)\NC\NR +\NC\type{\thekey}\NC\tfx KEY \NC See the \BIBTEX\ + documentation for it's use. This is {\it not} related to + the key used for citing this entry.\NC\NR +\NC\type{\title}\NC\tfx TITLE,\crlf BOOKTITLE \NC The title of a book.\NC\NR +\NC\type{\volume}\NC\tfx VOLUME \NC Volume number for multi-part books or + journals.\NC\NR +\NC\type{\yearfiled}\NC\tfx YEARFILED\NC Filing year for a patent\NC\NR +\stoptabulate + +Adding in one of your own fields is reasonably simple: + +\starttyping +\newbibfield[mycommand] +\stoptyping +This will define \type{\mycommand} for use within +a publication (plus \type{\bib@mycommand}, it's internal form) as +well as the command \type{\insertmycommand} that can be used +within \type{\setuppublicationlayout} to fetch the supplied +value (see below). + + +\section{Defining a publication type layout} + +Publication style files of course take care of setting defaults for the +commands as explained earlier, but the largest part of a such a +publication style is concerned with specifying layouts for various +types of publications. + +The command that does the work is \type{\setuppublicationlayout}: + +\setup{setuppublicationlayout} + +The first argument that is a publication (\BIBTEX\ entry) type, and +all publications that have this type given as argument to the `t' key +of \type{\startpublication} will be typeset by executing the commands +that appear in the group following the command. + +For example, here is a possible way to typeset an article: from \type{bibl-apa}: +\starttyping +\setuppublicationlayout[article]{% + \insertartauthors{}{ }{\insertthekey{}{ }{}}% + \insertpubyear{(}{). }{\unskip.}% + \insertarttitle{\bgroup }{\egroup. }{}% + \insertjournal{\bgroup \it}{\egroup} + {\insertcrossref{In }{}{}}% + \insertvolume + {, } + {\insertissue{(}{)}{}\insertpages{:}{.}{.}} + {\insertpages{, pages }{.}{.}}% + \insertnote{ }{.}{}% + \insertcomment{}{.}{}% +} +\stoptyping +For every command in the long list given in the previous paragraph, there is +a corresponding \type{\insertxxx} command. (As usual, \type{\author} +etc. are special: they have a macro called \type{\insertxxxs} +instead). All of these \type{\insertxxx} macros use the same logic: + +\starttyping +\insertartauthors{}{}{} +\stoptyping + +Sounds easy? It is! But it is also often tedious: database entries can +be tricky things: some without issue numbers, others without page +numbers, some even without authors. So, you often need to nest rather +a lot of commands in the \type{} section of the `upper' +command, and \type{\unskip} and \type{\ignorespaces} are good friends +as well. + +Incidentally, the distributed \type{bibl-xxx} files define layouts for +the `standard' publication types that are defined in the example +bibliography that comes with \BIBTEX. The list of possbile types is in +no way limited to that list, but it provides a reasonable starting +point. + +\section{References} + +\placepublications + +\stopdocumentation + +\stopmodule + +\stoptext \ No newline at end of file diff --git a/metapost/context/base/mp-tool.mp b/metapost/context/base/mp-tool.mp index ab98fbd23..530793145 100644 --- a/metapost/context/base/mp-tool.mp +++ b/metapost/context/base/mp-tool.mp @@ -2361,6 +2361,12 @@ vardef c_phantom (expr b) (text t) = fi ; enddef ; +% mark paths (for external progs to split) + +% def somepath(expr p) +% p +% enddef ; + % done endinput ; diff --git a/scripts/context/perl/pdftrimwhite.pl b/scripts/context/perl/pdftrimwhite.pl index e42a8fd49..08c1de5d7 100644 --- a/scripts/context/perl/pdftrimwhite.pl +++ b/scripts/context/perl/pdftrimwhite.pl @@ -180,6 +180,7 @@ my $thisisunix = $Config{'osname'} !~ /dos|mswin/i ; my $figurefile = "" ; my $resultfile = "" ; +my $tempfile = "" ; my $programname = "cropcrap" ; @@ -224,7 +225,7 @@ my $width = my $height = my $llx = my $lly = my $urx = my $ury = 0 ; #D help information. sub PrintHelp - { print "This is CropCrap\n\n" . + { print "This is PdfTrimWhite\n\n" . "usage:\n\n" . "cropcrap [switches] filename result\n\n" . "switches:\n\n" . @@ -246,6 +247,7 @@ sub GetItRight { PrintHelp() ; exit } $figurefile = $ARGV[0] ; $figurefile =~ s/\.pdf$//oi ; $resultfile = $ARGV[1] ; $resultfile =~ s/\.pdf$//oi ; + $tempfile = "pdftrimwhite-$resultfile" ; if ($figurefile eq '') { PrintHelp() ; exit } unless ($thisisunix) @@ -257,7 +259,7 @@ sub GetItRight exit } if (($resultfile eq '')||($resultfile=~/(^\-|\.)/io)) { $resultfile = $programname } -$pipe = "2>&1" ; + $pipe = "2>&1" ; if ($thisisunix) { $pipe = "2>&1" } } @@ -376,7 +378,7 @@ sub PreparePlainTeX \\figureheight=\\ht0\n" } sub PrepareFirstPass - { open (TEX, ">$resultfile.tex") ; + { open (TEX, ">$tempfile.tex") ; if ($UsePlain) { print TEX PreparePlainTeX . @@ -406,7 +408,7 @@ sub SetupPlainTeX {\\immediate\\pdfximage page $Page {$figurefile.pdf}\\pdfrefximage\\pdflastximage}\n" } sub PrepareSecondPass - { open (TEX, ">$resultfile.tex") ; + { open (TEX, ">$tempfile.tex") ; if ($UsePlain) { print TEX SetupPlainTeX . @@ -438,30 +440,18 @@ sub FetchPaperSize sub RunTeX { if ($UsePlain) - { $result = - `pdftex -prog=pdftex -fmt=plain -int=batchmode $resultfile` } + { $result = `pdftex -prog=pdftex -fmt=plain -int=batchmode $tempfile` } else - { $result = - `texexec --batch --once --purge $resultfile` } -# print $result if $Verbose ; $results .= "$result\n" ; -# $result = `texutil --purge` ; - print $result if $Verbose ; $results .= "$result\n" } - -sub MakePSFile - { $result = - `$pdfps -paperw $pwidth -paperh $pheight $resultfile.pdf $resultfile.ps` ; + { $result = `texexec --batch --once --purge $tempfile` } print $result if $Verbose ; $results .= "$result\n" } sub FindBoundingBox - { $result = -# `$gs -sDEVICE=bbox -dNOPAUSE -dBATCH $resultfile.ps $pipe` ; - `$gs -sDEVICE=bbox -dNOPAUSE -dBATCH $resultfile.pdf $pipe` ; + { $result = `$gs -sDEVICE=bbox -dNOPAUSE -dBATCH $tempfile.pdf $pipe` ; print $result if $Verbose ; $results .= "$result\n" } sub IdentifyCropBox { RunTeX() ; FetchPaperSize () ; -# MakePSFile() ; FindBoundingBox() } #D Just to be sure, we check if there is some image data, so @@ -495,6 +485,10 @@ sub FixCropBox #D For error tracing we save the log information in a file. +sub RenameResult + { unlink "$resultfile.pdf" ; + rename "$tempfile.pdf", "$resultfile.pdf" } + sub SaveLogInfo { open (LOG, ">$resultfile.log") ; print LOG $results ; @@ -504,10 +498,9 @@ sub SaveLogInfo sub CleanUp { unless ($Verbose) - { unlink "$resultfile.tex" ; - unlink "$resultfile.tuo" ; - unlink "$resultfile.tui" ; - unlink "$resultfile.ps" ; + { unlink "$tempfile.tex" ; + unlink "$tempfile.tuo" ; + unlink "$tempfile.tui" ; unlink "$figurefile.tmp" } } #D Here it all comes together. @@ -526,6 +519,7 @@ if (ValidatedCropBox()) { PrepareSecondPass() ; FixCropBox() } +RenameResult() ; SaveLogInfo() ; CleanUp () ; diff --git a/scripts/context/ruby/base/system.rb b/scripts/context/ruby/base/system.rb index 50173a72d..4a8cba652 100644 --- a/scripts/context/ruby/base/system.rb +++ b/scripts/context/ruby/base/system.rb @@ -41,6 +41,18 @@ module System end end + def System.prependengine(str) + if str =~ /^\S+\.(pl|rb|lua|py)/io then + case $1 + when 'pl' then return "perl #{str}" + when 'rb' then return "ruby #{str}" + when 'lua' then return "lua #{str}" + when 'py' then return "python #{str}" + end + end + return str + end + def System.locatedprogram(program) if @@located.key?(program) then return @@located[program] @@ -49,7 +61,7 @@ module System if binname =~ /\..*$/io then @@binpaths.each do |path| if FileTest.file?(str = File.join(path,binname)) then - return @@located[program] = str + return @@located[program] = System.prependengine(str) end end end @@ -57,7 +69,7 @@ module System @@binpaths.each do |path| @@binsuffixes.each do |suffix| if FileTest.file?(str = File.join(path,"#{binname}#{suffix}")) then - return @@located[program] = str + return @@located[program] = System.prependengine(str) end end end diff --git a/scripts/context/ruby/base/tex.rb b/scripts/context/ruby/base/tex.rb index 1aee93fb1..700150055 100644 --- a/scripts/context/ruby/base/tex.rb +++ b/scripts/context/ruby/base/tex.rb @@ -129,7 +129,7 @@ class TEX 'forcetexutil', 'texutil', 'globalfile', 'autopath', 'purge', 'purgeall', 'keep', 'autopdf', 'xpdf', 'simplerun', 'verbose', - 'nooptionfile', 'nobackend' + 'nooptionfile', 'nobackend', 'noctx' ] @@stringvars = [ 'modefile', 'result', 'suffix', 'response', 'path', @@ -386,20 +386,20 @@ class TEX # upward compatibility problems) but stuck to the bas/mem/fmt flags if engine then case validmpsengine(engine) - when /mpost/ then "--mem" - when /mfont/ then "--bas" - else "--fmt" + when /mpost/ then "-mem" + when /mfont/ then "-bas" + else "-fmt" end else - "--fmt" + "-fmt" end end def prognameflag(progname=nil) case getvariable('distribution') - when 'standard' then prefix = "--progname" - when /web2c/io then prefix = "--progname" - when /miktex/io then prefix = "--alias" + when 'standard' then prefix = "-progname" + when /web2c/io then prefix = "-progname" + when /miktex/io then prefix = "-alias" else return "" end if progname then @@ -424,7 +424,7 @@ class TEX if Kpse.miktex? then "-tcx=#{file}" else - "--translate-file=#{file}" + "-translate-file=#{file}" end end @@ -574,7 +574,7 @@ class TEX interface = $1.sub(/cont\-/,'') results.push('') results.push("testing interface #{interface}") - flags = ['--process','--batch','--once',"--interface=#{interface}",engineflag] + flags = ['--noctx','--process','--batch','--once',"--interface=#{interface}",engineflag] # result = Kpse.pipescript('newtexexec',tempfilename,flags) result = runtexexec([tempfilename], flags, 1) if FileTest.file?("#{@@temprunfile}.log") then @@ -842,7 +842,7 @@ class TEX getarrayvariable('files').each do |filename| setvariable('filename',filename) report("processing text of graphic '#{filename}'") - processmpx(filename,true) + processmpx(filename,false,true) end reportruntime end @@ -883,6 +883,7 @@ class TEX elsif (str = getvariable('suffix')) && ! str.empty? then opt << "\\setupsystem[file=#{jobname}.#{str}]\n" end + opt << "\\setupsystem[\\c!method=2]\n" # 1=oldtexexec 2=newtexexec opt << "\\setupsystem[\\c!type=#{Tool.ruby_platform()}]\n" if (str = File.unixfied(getvariable('path'))) && ! str.empty? then opt << "\\usepath[#{str}]\n" unless str.empty? @@ -1043,9 +1044,10 @@ class TEX report("tex format: #{texformat}") report("progname: #{progname}") if texengine && texformat && progname then - command = [quoted(texengine),prognameflag(progname),formatflag(texengine,texformat),runoptions(texengine),filename,texprocextras(texformat)].join(' ') + command = [quoted(texengine),prognameflag(progname),formatflag(texengine,texformat),tcxflag,runoptions(texengine),filename,texprocextras(texformat)].join(' ') report(command) if getvariable('verbose') system(command) + true else false end @@ -1056,10 +1058,12 @@ class TEX mpsformat = validmpsformat(getarrayvariable('mpsformats').first) progname = validprogname(getvariable('progname')) if mpsengine && mpsformat && progname then - command = [quoted(mpsengine),prognameflag(progname),formatflag(mpsengine,mpsformat),runoptions(mpsengine),filename,mpsprocextras(mpsformat)].join(' ') ENV["MPXCOMMAND"] = "0" unless mpx + # command = [quoted(mpsengine),prognameflag(progname),formatflag(mpsengine,mpsformat),tcxflag,runoptions(mpsengine),filename,mpsprocextras(mpsformat)].join(' ') + command = [quoted(mpsengine),"-progname=mpost",formatflag(mpsengine,mpsformat),tcxflag,runoptions(mpsengine),filename,mpsprocextras(mpsformat)].join(' ') report(command) if getvariable('verbose') system(command) + true else false end @@ -1070,12 +1074,14 @@ class TEX if File.atleast?(mpfile,25) then # first run needed File.silentdelete(File.suffixed(mpfile,'mpt')) - doruntexmp(mpfile,false) + doruntexmp(mpfile) mpgraphics = checkmpgraphics(mpfile) mplabels = checkmplabels(mpfile) if mpgraphics || mplabels then # second run needed doruntexmp(mpfile,mplabels) + else + # no labels end end end @@ -1123,10 +1129,11 @@ class TEX begin if mode and job = TEX.new(@logger) then options.each do |option| - if option=~ /^\-*(.*?)\=(.*)$/o then - job.setvariable($1,$2) - else - job.setvariable(option,true) + case option + when /^\-*(.*?)\=(.*)$/o then + job.setvariable($1,$2) + when /^\-*(.*?)$/o then + job.setvariable($1,true) end end job.setvariable("files",filename) @@ -1243,31 +1250,33 @@ class TEX # preprocess files - ctx = CtxRunner.new(rawname,@logger) - if getvariable('ctxfile').empty? then - ctx.manipulate(File.suffixed(rawname,'ctx'),'jobname.ctx') - else - ctx.manipulate(File.suffixed(getvariable('ctxfile'),'ctx')) - end - ctx.savelog(File.suffixed(rawname,'ctl')) + unless getvariable('noctx') then + ctx = CtxRunner.new(rawname,@logger) + if getvariable('ctxfile').empty? then + ctx.manipulate(File.suffixed(rawname,'ctx'),'jobname.ctx') + else + ctx.manipulate(File.suffixed(getvariable('ctxfile'),'ctx')) + end + ctx.savelog(File.suffixed(rawname,'ctl')) - envs = ctx.environments - mods = ctx.modules + envs = ctx.environments + mods = ctx.modules - # merge environment and module specs + # merge environment and module specs - envs << getvariable('environments') unless getvariable('environments').empty? - mods << getvariable('modules') unless getvariable('modules') .empty? + envs << getvariable('environments') unless getvariable('environments').empty? + mods << getvariable('modules') unless getvariable('modules') .empty? - envs = envs.uniq.join(',') - mods = mods.uniq.join(',') + envs = envs.uniq.join(',') + mods = mods.uniq.join(',') - report("using search method '#{Kpse.searchmethod}'") if getvariable('verbose') - report("using environments #{envs}") if envs.length > 0 - report("using modules #{mods}") if mods.length > 0 + report("using search method '#{Kpse.searchmethod}'") if getvariable('verbose') + report("using environments #{envs}") if envs.length > 0 + report("using modules #{mods}") if mods.length > 0 - setvariable('environments', envs) - setvariable('modules', mods) + setvariable('environments', envs) + setvariable('modules', mods) + end # end of preprocessing and merging @@ -1389,11 +1398,12 @@ class TEX end - # mp specific + # The labels are collected in the mergebe hash. Here we merge the relevant labels + # into beginfig/endfig. We could as well do this in metafun itself. Maybe some + # day ... (it may cost a bit of string space but that is cheap nowadays). - def doruntexmp(mpname,mergebe=true,context=true) + def doruntexmp(mpname,mergebe=nil,context=true) texfound = false - mpbetex = Hash.new mpfile = File.suffixed(mpname,'mp') mpcopy = File.suffixed(mpname,'copy','mp') setvariable('mp.file',mpfile) @@ -1402,38 +1412,28 @@ class TEX if mpdata = File.silentread(mpfile) then mpdata.gsub!(/^\#.*\n/o,'') File.silentrename(mpfile,mpcopy) - texfound = mergebe || mpdata =~ /btex .*? etex/mo + texfound = mergebe || (mpdata =~ /btex .*? etex/mo) if mp = openedfile(mpfile) then - mpdata.gsub!(/(btex.*?)\;(.*?etex)/o) do "#{$1}@@@#{$2}" end - # mpdata.gsub!(/(\".*?)\;(.*?\")/o) do "#{$1}@@@#{$2}" end - mpdata.gsub!(/(\".*?\")/o) do "#{$1.gsub(/\;/o,'@@@')}" end - mpdata.gsub!(/\;/o, "\;\n") - # mpdata.gsub!(/\n+/o, "\n") - # mpdata.gsub!(/(btex.*?)\@\@\@(.*?etex)/o) do "#{$1}\;#{$2}" end - # mpdata.gsub!(/(\".*?)\@\@\@(.*?\")/mo) do "#{$1};#{$2}" end - mpdata.gsub!(/\@\@\@/o) do ";" end if mergebe then - mpdata.gsub!(/beginfig\s*\((\d+)\)\s*\;(.*?)endfig\s*\;/o) do + mpdata.gsub!(/beginfig\s*\((\d+)\)\s*\;(.+?)endfig\s*\;/mo) do n, str = $1, $2 - if str =~ /(.*?)(verbatimtex.*?etex)\s*\;(.*)/o then - "beginfig(#{n})\;\n#{$1}#{$2}\;\n#{mpbetex(n)}\n#{$3}\;endfig\;\n" + if str =~ /^(.*?)(verbatimtex.*?etex)\s*\;(.*)$/mo then + "beginfig(#{n})\;\n#{$1}#{$2}\;\n#{mergebe[n]}\n#{$3}\;endfig\;\n" else - "beginfig(#{n})\;\n#{mpbetex(n)}\n#{str}\;endfig\;\n" + "beginfig(#{n})\;\n#{mergebe[n]}\n#{str}\;endfig\;\n" end end + unless mpdata =~ /beginfig\s*\(\s*0\s*\)/o then + mp << mergebe['0'] if mergebe.key?('0') + end end - mpdata.gsub!(/\n+/mo, "\n") - mpdata.gsub!(/^\s*\;\s*\n/o, "") - unless mpdata =~ /beginfig\s*\(\s*0\s*\)/o then - mp << mpbetex['0'] if mpbetex.key?('0') - end - mp << mpdata # ?? + mp << splitmplines(mpdata) mp << "\n" mp << "end" mp << "\n" mp.close end - processmpx(mpname) if texfound + processmpx(mpname,true) if texfound if getvariable('batchmode') then options = ' --interaction=batch' elsif getvariable('nonstopmode') then @@ -1458,39 +1458,50 @@ class TEX end end - def processmpx(mpname,context=true) - mpname = File.suffixed(mpname,'mp') - if File.atleast?(mpname,10) && (data = File.silentread(mpname)) then + def processmpx(mpname,force=false,context=true) + unless force then + mpname = File.suffixed(mpname,'mp') + if File.atleast?(mpname,10) && (data = File.silentread(mpname)) then + if data =~ /(btex|etex|verbatimtex|textext)/o then + force = true + end + end + end + if force then begin - if data =~ /(btex|etex|verbatimtex)/o then - mptex = File.suffixed(mpname,'temp','tex') - mpdvi = File.suffixed(mpname,'temp','dvi') - mplog = File.suffixed(mpname,'temp','log') - mpmpx = File.suffixed(mpname,'mpx') - ok = system("mpto #{mpname} > #{mptex}") - if ok && File.appended(mptex, "\\end\n") then - if localjob = TEX.new(@logger) then - localjob.setvariable('files',mptex) - localjob.setvariable('backend','dvips') - localjob.setvariable('engine',getvariable('engine')) unless getvariable('engine').empty? - localjob.setvariable('once',true) - localjob.setvariable('nobackend',true) - if context then - localjob.setvariable('texformats',[getvariable('interface')]) unless getvariable('interface').empty? - elsif getvariable('interface').empty? then - localjob.setvariable('texformats',['plain']) - else - localjob.setvariable('texformats',[getvariable('interface')]) - end - localjob.processtex - ok = true # todo + mptex = File.suffixed(mpname,'temp','tex') + mpdvi = File.suffixed(mpname,'temp','dvi') + mplog = File.suffixed(mpname,'temp','log') + mpmpx = File.suffixed(mpname,'mpx') + command = "mpto #{mpname} > #{mptex}" + report(command) if getvariable('verbose') + ok = system(command) + if ok && File.appended(mptex, "\\end\n") then + # to be replaced by runtexexec([filenames],options,1) + if localjob = TEX.new(@logger) then + localjob.setvariable('files',mptex) + localjob.setvariable('backend','dvips') + localjob.setvariable('engine',getvariable('engine')) unless getvariable('engine').empty? + localjob.setvariable('once',true) + localjob.setvariable('nobackend',true) + if context then + localjob.setvariable('texformats',[getvariable('interface')]) unless getvariable('interface').empty? + elsif getvariable('interface').empty? then + localjob.setvariable('texformats',['plain']) else - ok = false - end - ok = ok && FileTest.file?(mpdvi) && system("dvitomp #{mpdvi} #{mpmpx}") - [mptex,mpdvi,mplog].each do |mpfil| - File.silentdelete(mpfil) + localjob.setvariable('texformats',[getvariable('interface')]) end + localjob.processtex + ok = true # todo + else + ok = false + end + # so far + command = "dvitomp #{mpdvi} #{mpmpx}" + report(command) if getvariable('verbose') + ok = ok && FileTest.file?(mpdvi) && system(command) + [mptex,mpdvi,mplog].each do |mpfil| + File.silentdelete(mpfil) end end rescue @@ -1551,4 +1562,42 @@ class TEX return nil end + # mp specific (todo: mp module) + + def splitmplines(str) + btex, verbatimtex, strings, result = Array.new, Array.new, Array.new, str.dup + # protect texts + result.gsub!(/btex\s*(.*?)\s*etex/) do + btex << $1 + "btex(#{btex.length-1})" + end + result.gsub!(/verbatimtex\s*(.*?)\s*etex/) do + verbatimtex << $1 + "verbatimtex(#{verbatimtex.length-1})" + end + result.gsub!(/\"(.*?)\"/) do + strings << $1 + "\"#{strings.length-1}\"" + end + result.gsub!(/\;/) do + ";\n" + end + result.gsub!(/(.{80,})(\-\-\-|\-\-|\.\.\.|\.\.)/) do + "#{$1}#{$2}\n" + end + result.gsub!(/\n[\s\n]+/mois) do + "\n" + end + result.gsub!(/btex\((\d+)\)/) do + "btex #{btex[$1.to_i]} etex" + end + result.gsub!(/verbatimtex\((\d+)\)/) do + "verbatimtex #{verbatimtex[$1.to_i]} etex" + end + result.gsub!(/\"(\d+)\"/) do + "\"#{strings[$1.to_i]}\"" + end + result + end + end diff --git a/scripts/context/ruby/base/texutil.rb b/scripts/context/ruby/base/texutil.rb index 12337c643..01ef11012 100644 --- a/scripts/context/ruby/base/texutil.rb +++ b/scripts/context/ruby/base/texutil.rb @@ -126,6 +126,8 @@ class TeXUtil class Sorter + @@downcase = true + def initialize(max=12) @rep, @map, @exp, @div = Hash.new, Hash.new, Hash.new, Hash.new @max = max @@ -149,7 +151,7 @@ class TeXUtil # sorter.expander('ijligature', 'y') def expander(from,to=nil) - from, to = converted(from), converted(to) + to = converted(to) # not from !!! @max = [@max,to.length+1].max if to @exp[from] = to || from || '' end @@ -179,17 +181,39 @@ class TeXUtil end if @map.size > 0 then # watch out, order of match matters - @rexb = /(\\[a-zA-Z]+|#{@map.keys.join('|')}|.)\s*/ # o + if @@downcase then + @rexb = /(\\[a-zA-Z]+|#{@map.keys.join('|')}|.)\s*/i # o + else + @rexb = /(\\[a-zA-Z]+|#{@map.keys.join('|')}|.)\s*/ # o + end else - @rexb = /(\\[a-zA-Z]+|.)\s*/o + if @@downcase then + @rexb = /(\\[a-zA-Z]+|.)\s*/io + else + @rexb = /(\\[a-zA-Z]+|.)\s*/o + end end - if true then + if false then @exp.keys.each do |e| @exp[e].downcase! end end end + def replace(str) + str.gsub(@rexa) do + @rep[$1.escaped] + end + end + + def normalize(str) + replace(str).gsub(/ +/,' ') + end + + def tokenize(str) + str.gsub(/\\strchr\{(.*?)\}/o) do "\\#{$1}" end + end + def remap(str) s = str.dup s.gsub!(/(\d+)/o) do @@ -203,6 +227,9 @@ class TeXUtil if @rexb then s.gsub!(@rexb) do token = $1.sub(/\\/o, '') +if @@downcase then + token.downcase! +end if @exp.key?(token) then @exp[token].ljust(@max,' ') elsif @map.key?(token) then @@ -220,7 +247,7 @@ class TeXUtil 'A'.upto('Z') do |c| expander(c) ; division(c) end expander('1','b') ; expander('2','c') ; expander('3','e') ; expander('4','f') expander('5','g') ; expander('6','h') ; expander('7','i') ; expander('8','i') - expander('9','j') ; expander('0','a') ; expander('-','-') ; + expander('9','j') ; expander('0','a') ; expander('-',"-") ; # end potential move shortcuts.each do |s| shortcut(s[0],s[1]) end expansions.each do |e| expander(e[0],e[1]) end @@ -261,6 +288,7 @@ class TeXUtil def converted(str) if str then + # puts str str.gsub(/([\+\-]*\d+)/o) do n = $1.to_i if n > 0 then @@ -400,6 +428,7 @@ class TeXUtil attr_writer :sortkey def build(sorter) +@sortkey = sorter.normalize(sorter.tokenize(@sortkey)) @sortkey = sorter.remap(sorter.simplify(@key.downcase)) if @sortkey.empty? then @sortkey = sorter.remap(@command.downcase) @@ -487,6 +516,8 @@ class TeXUtil attr_writer :sortkey def build(sorter) +@entry, @key = sorter.normalize(@entry), sorter.normalize(sorter.tokenize{@key}) +if false then @entry, @key = [@entry, @key].collect do |target| # +a+b+c &a&b&c a+b+c a&b&c case target[0,1] @@ -501,13 +532,15 @@ class TeXUtil target # end end +else + @entry, @key = cleanupsplit(@entry), cleanupsplit(@key) +end @sortkey = sorter.simplify(@key) @sortkey = @sortkey.split(@@split).collect do |c| sorter.remap(c) end.join(@@split) - # if ($Key eq "") { $Key = SanitizedString($Entry) } - # if ($ProcessHigh){ $Key = HighConverted($Key) } @sortkey = [ @sortkey.downcase, @sortkey, + @entry, @texthowto.ljust(10,' '), # @state, # no, messes up things (@realpage ||'').rjust(6,' ').gsub(/0/,' '), @@ -516,6 +549,15 @@ class TeXUtil ].join(@@split) end + def cleanupsplit(target) + # +a+b+c &a&b&c a+b+c a&b&c + case target[0,1] + when '&' then target.sub(/^./o,'').gsub(/([^\\])\&/o) do "#{$1}#{@@split}" end + when '+' then target.sub(/^./o,'').gsub(/([^\\])\+/o) do "#{$1}#{@@split}" end + else target .gsub(/([^\\])[\&\+]/o) do "#{$1}#{@@split}" end + end + end + def <=> (other) @sortkey <=> other.sortkey end @@ -561,7 +603,7 @@ class TeXUtil else testalpha = entry.sortkey[0,1].downcase end - if testalpha != alpha.downcase || alphaclass != entry.class then + if (testalpha != alpha.downcase) || (alphaclass != entry.class) then alpha = testalpha alphaclass = entry.class if alpha != ' ' then diff --git a/scripts/context/ruby/ctxtools.rb b/scripts/context/ruby/ctxtools.rb index a768264d9..0ba1a7561 100644 --- a/scripts/context/ruby/ctxtools.rb +++ b/scripts/context/ruby/ctxtools.rb @@ -17,7 +17,34 @@ # # todo: move kpse call to kpse class/module, faster and better -banner = ['CtxTools', 'version 1.3.1', '2004/2006', 'PRAGMA ADE/POD'] +# Taco Hoekwater on patterns and lig building (see 'agr'): +# +# Any direct use of a ligature (as accessed by \char or through active +# characters) is wrong and will create faulty hypenation. Normally, +# when TeX sees "office", it has six tokens, and it knows from the +# patterns that it can hyphenate between the "ff". It will build an +# internal list of four nodes, like this: +# +# [char, o , ffi ] +# [lig , ffi, c ,[f,f,i]] +# [char, c , e ] +# [char, e , NULL] +# +# as you can see from the ffi line, it has remembered the original +# characters. While hyphenating, it temporarily changes back to +# that, then re-instates the ligature afterwards. +# +# If you feed it the ligature directly, like so: +# +# [char, o , ffi ] +# [char, ffi , c ] +# [char, c , e ] +# [char, e , NULL] +# +# it cannot do that (it tries to hyphenate as if the "ffi" was a +# character), and the result is wrong hyphenation. + +banner = ['CtxTools', 'version 1.3.2', '2004/2006', 'PRAGMA ADE/POD'] unless defined? ownpath ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'') @@ -772,6 +799,7 @@ class Language case @encoding.downcase when 't1', 'ec', 'cork' then preload_vector('ec') when 'y', 'texnansi' then preload_vector('texnansi') + when 'agr', 'agreek' then preload_vector('agr') end end @@ -818,11 +846,32 @@ class Language def convert if @data then n = 0 - @remapping.each do |k| - @data.gsub!(k[0]) do - # report("#{k[0]} => #{k[1]}") - n += 1 - k[1] + if true then + @data.gsub!(/\\(patterns|hypenation)\{(.*?)\}/mois) do + command, content = $1, $2 + @remapping.each_index do |i| + from, to, m = @remapping[i][0], @remapping[i][1], 0 + content.gsub!(from) do + m += 1 + "[#{i}]" + end + report("#{m.to_s.rjust(5)} entries remapped to #{to}") unless m == 0 + n += m + end + content.gsub!(/\[(\d+)\]/) do + @remapping[$1.to_i][1] + end + "\\#{command}\{#{content}\}" + end + else + @remapping.each do |k| + from, to, m = k[0], k[1], 0 + @data.gsub!(from) do + m += 1 + to + end + report("#{m.to_s.rjust(5)} entries remapped to #{to}") unless m == 0 + n += m end end report("#{n} changes in patterns and exceptions") @@ -1147,6 +1196,198 @@ class Language remap(/\\c\{.*?\}/, "") remap(/\\a\s*/, "[aeligature]") remap(/\\o\s*/, "[oeligature]") + when 'agr' then + remap(/\<\'a\|/, "[greekalphaiotasubdasiatonos]") + # remap(/\<\'a\|/, "[greekdasiatonos][greekAlpha][greekiota]") + remap(/\>\'a\|/, "[greekalphaiotasubpsilitonos]") + remap(/\<\`a\|/, "[greekalphaiotasubdasiavaria]") + remap(/\>\`a\|/, "[greekalphaiotasubpsilivaria]") + remap(/\<\~a\|/, "[greekalphaiotasubdasiaperispomeni]") + remap(/\>\~a\|/, "[greekalphaiotasubpsiliperispomeni]") + remap(/\'a\|/, "[greekalphaiotasubtonos]") + remap(/\`a\|/, "[greekalphaiotasubvaria]") + remap(/\~a\|/, "[greekalphaiotasubperispomeni]") + remap(/\a\|/, "[greekalphaiotasubpsili]") + remap(/a\|/, "[greekalphaiotasub]") + remap(/\<\'h\|/, "[greeketaiotasubdasiatonos]") + remap(/\>\'h\|/, "[greeketaiotasubpsilitonos]") + remap(/\<\`h\|/, "[greeketaiotasubdasiavaria]") + remap(/\>\`h\|/, "[greeketaiotasubpsilivaria]") + remap(/\<\~h\|/, "[greeketaiotasubdasiaperispomeni]") + remap(/\>\~h\|/, "[greeketaiotasubpsiliperispomeni]") + remap(/\'h\|/, "[greeketaiotasubtonos]") + remap(/\`h\|/, "[greeketaiotasubvaria]") + remap(/\~h\|/, "[greeketaiotasubperispomeni]") + remap(/\h\|/, "[greeketaiotasubpsili]") + remap(/h\|/, "[greeketaiotasub]") + remap(/\<'w\|/, "[greekomegaiotasubdasiatonos]") + remap(/\>'w\|/, "[greekomegaiotasubpsilitonos]") + remap(/\<`w\|/, "[greekomegaiotasubdasiavaria]") + remap(/\>`w\|/, "[greekomegaiotasubpsilivaria]") + remap(/\<~w\|/, "[greekomegaiotasubdasiaperispomeni]") + remap(/\>~w\|/, "[greekomegaiotasubpsiliperispomeni]") + remap(/\w\|/, "[greekomegaiotasubpsili]") + remap(/\'w\|/, "[greekomegaiotasubtonos]") + remap(/\`w\|/, "[greekomegaiotasubvaria]") + remap(/\~w\|/, "[greekomegaiotasubperispomeni]") + remap(/w\|/, "[greekomegaiotasub]") + remap(/\<\'i/, "[greekiotadasiatonos]") + remap(/\>\'i/, "[greekiotapsilitonos]") + remap(/\<\`i/, "[greekiotadasiavaria]") + remap(/\>\`i/, "[greekiotapsilivaria]") + remap(/\<\~i/, "[greekiotadasiaperispomeni]") + remap(/\>\~i/, "[greekiotapsiliperispomeni]") + remap(/\"\'i/, "[greekiotadialytikatonos]") + remap(/\"\`i/, "[greekiotadialytikavaria]") + remap(/\"\~i/, "[greekiotadialytikaperispomeni]") + remap(/\i/, "[greekiotapsili]") + remap(/\'i/, "[greekiotaoxia]") + remap(/\`i/, "[greekiotavaria]") + remap(/\~i/, "[greekiotaperispomeni]") + remap(/\"i/, "[greekiotadialytika]") + remap(/\>\~e/, "[greekepsilonpsiliperispomeni]") + remap(/\<\~e/, "[greekepsilondasiaperispomeni]") + remap(/\<\'e/, "[greekepsilondasiatonos]") + remap(/\>\'e/, "[greekepsilonpsilitonos]") + remap(/\<\`e/, "[greekepsilondasiavaria]") + remap(/\>\`e/, "[greekepsilonpsilivaria]") + remap(/\e/, "[greekepsilonpsili]") + remap(/\'e/, "[greekepsilonoxia]") + remap(/\`e/, "[greekepsilonvaria]") + remap(/\~e/, "[greekepsilonperispomeni]") + remap(/\<\'a/, "[greekalphadasiatonos]") + remap(/\>\'a/, "[greekalphapsilitonos]") + remap(/\<\`a/, "[greekalphadasiavaria]") + remap(/\>\`a/, "[greekalphapsilivaria]") + remap(/\<\~a/, "[greekalphadasiaperispomeni]") + remap(/\>\~a/, "[greekalphapsiliperispomeni]") + remap(/\a/, "[greekalphapsili]") + remap(/\'a/, "[greekalphaoxia]") + remap(/\`a/, "[greekalphavaria]") + remap(/\~a/, "[greekalphaperispomeni]") + remap(/\<\'h/, "[greeketadasiatonos]") + remap(/\>\'h/, "[greeketapsilitonos]") + remap(/\<\`h/, "[greeketadasiavaria]") + remap(/\>\`h/, "[greeketapsilivaria]") + remap(/\<\~h/, "[greeketadasiaperispomeni]") + remap(/\>\~h/, "[greeketapsiliperispomeni]") + remap(/\h/, "[greeketapsili]") + remap(/\'h/, "[greeketaoxia]") + remap(/\`h/, "[greeketavaria]") + remap(/\~h/, "[greeketaperispomeni]") + remap(/\<\~o/, "[greekomicrondasiaperispomeni]") + remap(/\>\~o/, "[greekomicronpsiliperispomeni]") + remap(/\<\'o/, "[greekomicrondasiatonos]") + remap(/\>\'o/, "[greekomicronpsilitonos]") + remap(/\<\`o/, "[greekomicrondasiavaria]") + remap(/\>\`o/, "[greekomicronpsilivaria]") + remap(/\o/, "[greekomicronpsili]") + remap(/\'o/, "[greekomicronoxia]") + remap(/\`o/, "[greekomicronvaria]") + remap(/\~o/, "[greekomicronperispomeni]") + remap(/\<\'u/, "[greekupsilondasiatonos]") + remap(/\>\'u/, "[greekupsilonpsilitonos]") + remap(/\<\`u/, "[greekupsilondasiavaria]") + remap(/\>\'u/, "[greekupsilonpsilivaria]") + remap(/\<\~u/, "[greekupsilondasiaperispomeni]") + remap(/\>\~u/, "[greekupsilonpsiliperispomeni]") + remap(/\"\'u/, "[greekupsilondialytikatonos]") + remap(/\"\`u/, "[greekupsilondialytikavaria]") + remap(/\"\~u/, "[greekupsilondialytikaperispomeni]") + remap(/\u/, "[greekupsilonpsili]") + remap(/\'u/, "[greekupsilonoxia]") + remap(/\`u/, "[greekupsilonvaria]") + remap(/\~u/, "[greekupsilonperispomeni]") + remap(/\"u/, "[greekupsilondiaeresis]") + remap(/\<\'w/, "[greekomegadasiatonos]") + remap(/\>\'w/, "[greekomegapsilitonos]") + remap(/\<\`w/, "[greekomegadasiavaria]") + remap(/\>\`w/, "[greekomegapsilivaria]") + remap(/\<\~w/, "[greekomegadasiaperispomeni]") + remap(/\>\~w/, "[greekomegapsiliperispomeni]") + remap(/\w/, "[greekomegapsili]") + remap(/\'w/, "[greekomegaoxia]") + remap(/\`w/, "[greekomegavaria]") + remap(/\~w/, "[greekomegaperispomeni]") + remap(/\r/, "[greekrhopsili]") + remap(/\<\~/, "[greekdasiaperispomeni]") + remap(/\>\~/, "[greekpsiliperispomeni]") + remap(/\<\'/, "[greekdasiatonos]") + remap(/\>\'/, "[greekpsilitonos]") + remap(/\<\`/, "[greekdasiavaria]") + remap(/\>\`/, "[greekpsilivaria]") + remap(/\"\'/, "[greekdialytikatonos]") + remap(/\"\`/, "[greekdialytikavaria]") + remap(/\"\~/, "[greekdialytikaperispomeni]") + remap(/\/, "[psili]") + remap(/\'/, "[oxia]") + remap(/\`/, "[greekvaria]") + remap(/\~/, "[perispomeni]") + remap(/\"/, "[dialytika]") + # unknown + remap(/\|/, "[greekIotadialytika]") + # next + remap(/A/, "[greekAlpha]") + remap(/B/, "[greekBeta]") + remap(/D/, "[greekDelta]") + remap(/E/, "[greekEpsilon]") + remap(/F/, "[greekPhi]") + remap(/G/, "[greekGamma]") + remap(/H/, "[greekEta]") + remap(/I/, "[greekIota]") + remap(/J/, "[greekTheta]") + remap(/K/, "[greekKappa]") + remap(/L/, "[greekLambda]") + remap(/M/, "[greekMu]") + remap(/N/, "[greekNu]") + remap(/O/, "[greekOmicron]") + remap(/P/, "[greekPi]") + remap(/Q/, "[greekChi]") + remap(/R/, "[greekRho]") + remap(/S/, "[greekSigma]") + remap(/T/, "[greekTau]") + remap(/U/, "[greekUpsilon]") + remap(/W/, "[greekOmega]") + remap(/X/, "[greekXi]") + remap(/Y/, "[greekPsi]") + remap(/Z/, "[greekZeta]") + remap(/a/, "[greekalpha]") + remap(/b/, "[greekbeta]") + remap(/c/, "[greekfinalsigma]") + remap(/d/, "[greekdelta]") + remap(/e/, "[greekepsilon]") + remap(/f/, "[greekphi]") + remap(/g/, "[greekgamma]") + remap(/h/, "[greeketa]") + remap(/i/, "[greekiota]") + remap(/j/, "[greektheta]") + remap(/k/, "[greekkappa]") + remap(/l/, "[greeklambda]") + remap(/m/, "[greekmu]") + remap(/n/, "[greeknu]") + remap(/o/, "[greekomicron]") + remap(/p/, "[greekpi]") + remap(/q/, "[greekchi]") + remap(/r/, "[greekrho]") + remap(/s/, "[greeksigma]") + remap(/t/, "[greektau]") + remap(/u/, "[greekupsilon]") + remap(/w/, "[greekomega]") + remap(/x/, "[greekxi]") + remap(/y/, "[greekpsi]") + remap(/z/, "[greekzeta]") else end @@ -1197,7 +1438,7 @@ class Commands # todo: filter the fallback list from context # The first entry in the array is the encoding which will be used - # when interpreting th eraw patterns. The second entry is a list of + # when interpreting the raw patterns. The second entry is a list of # filesets (string|aray), each first match of a set is taken. @@languagedata['ba' ] = [ 'ec' , ['bahyph.tex'] ] @@ -1224,7 +1465,7 @@ class Commands # mnhyph @@languagedata['nl' ] = [ 'ec' , ['nehyph96.tex'] ] @@languagedata['no' ] = [ 'ec' , ['nohyph.tex'] ] - # oldgrhyph.tex + @@languagedata['agr'] = [ 'agr' , [['grahyph4.tex','oldgrhyph.tex']] ] # new, todo @@languagedata['pl' ] = [ 'ec' , ['plhyph.tex'] ] @@languagedata['pt' ] = [ 'ec' , ['pthyph.tex'] ] @@languagedata['ro' ] = [ 'ec' , ['rohyph.tex'] ] @@ -1235,7 +1476,6 @@ class Commands @@languagedata['sv' ] = [ 'ec' , ['svhyph.tex'] ] @@languagedata['tr' ] = [ 'ec' , ['tkhyph.tex'] ] @@languagedata['uk' ] = [ 'default' , [['ukhyphen.tex','ukhyph.tex']] ] - end class Commands diff --git a/scripts/context/ruby/graphics/gs.rb b/scripts/context/ruby/graphics/gs.rb index 807cad10c..588ef2417 100644 --- a/scripts/context/ruby/graphics/gs.rb +++ b/scripts/context/ruby/graphics/gs.rb @@ -13,11 +13,14 @@ require 'base/variables' require 'base/system' +require 'ftools' class GhostScript include Variables + @@pdftrimwhite = 'pdftrimwhite.pl' + @@pstopdfoptions = [ 'AntiAliasColorImages', 'AntiAliasGrayImages', @@ -213,7 +216,7 @@ class GhostScript else report("invalid conversion method #{gsmethod}") end rescue - report("job aborted due to some error #{$!}") + report("job aborted due to some error: #{$!}") begin File.delete(resultfile) if test(?e,resultfile) rescue @@ -338,9 +341,12 @@ class GhostScript end - def convertbounded (inpfile, outfile) - + def convertbounded(inpfile, outfile) report("converting #{inpfile} bounded") + do_convertbounded(inpfile, outfile) + end + + def do_convertbounded(inpfile, outfile) begin return false if FileTest.file?(outfile) && (! File.delete(outfile)) @@ -456,13 +462,14 @@ class GhostScript report("converting #{inpfile} cropped") - convertbounded(inpfile, @@pdftempfile) + do_convertbounded(inpfile, @@pdftempfile) return unless test(?e,@@pdftempfile) arguments = " --offset=#{@offset} #{@@pdftempfile} #{outfile}" - unless ok = System.run('cropcrap',arguments) then + report("calling #{@@pdftrimwhite}") + unless ok = System.run(@@pdftrimwhite,arguments) then report('cropping failed') begin File.delete(outfile) diff --git a/scripts/context/ruby/newtexexec.rb b/scripts/context/ruby/newtexexec.rb index 564205d2e..a44cf1116 100644 --- a/scripts/context/ruby/newtexexec.rb +++ b/scripts/context/ruby/newtexexec.rb @@ -356,7 +356,7 @@ class Commands copyortrim(true,'trim') end - def copyortrim(trim=false) + def copyortrim(trim=false,what='unknown') if job = TEX.new(logger) then prepare(job) job.cleanuptemprunfiles diff --git a/scripts/context/ruby/texmfstart.rb b/scripts/context/ruby/texmfstart.rb index dfc9b1a26..0320ce97a 100644 --- a/scripts/context/ruby/texmfstart.rb +++ b/scripts/context/ruby/texmfstart.rb @@ -85,8 +85,9 @@ $predefined['mpstools'] = 'mpstools.rb' $predefined['exatools'] = 'exatools.rb' $predefined['xmltools'] = 'xmltools.rb' -$predefined['newpstopdf'] = 'newpstopdf.rb' -$predefined['newtexexec'] = 'newtexexec.rb' +$predefined['newpstopdf'] = 'newpstopdf.rb' +$predefined['newtexexec'] = 'newtexexec.rb' +$predefined['pdftrimwhite'] = 'pdftrimwhite.pl' $makelist = [ # context diff --git a/scripts/context/ruby/textools.rb b/scripts/context/ruby/textools.rb index 78982f175..3c257b7db 100644 --- a/scripts/context/ruby/textools.rb +++ b/scripts/context/ruby/textools.rb @@ -13,7 +13,7 @@ # This script will harbor some handy manipulations on tex # related files. -banner = ['TeXTools', 'version 1.2.2', '2002/2005', 'PRAGMA ADE/POD'] +banner = ['TeXTools', 'version 1.3.1', '2002/2006', 'PRAGMA ADE/POD'] unless defined? ownpath ownpath = $0.sub(/[\\\/][a-z0-9\-]*?\.rb/i,'') @@ -37,6 +37,70 @@ require 'ftools' # aware of this). Files will only be moved when --force is given. Let # me know if more fixes need to be made. +class Commands + + include CommandBase + + def tpmmake + if filename = @commandline.argument('first') then + filename = File.join('tpm',filename) unless filename =~ /^tpm[\/\\]/ + filename += '.tpm' unless filename =~ /\.tpm$/ + if FileTest.file?(filename) then + data = IO.read(filename) rescue '' + data, fn, n = calculate_tpm(data,"TPM:RunFiles") + data, fm, m = calculate_tpm(data,"TPM:DocFiles") + data = replace_tpm(data,"TPM:Size",n+m) + report("total size #{n+m}") + begin + File.open(filename, 'w') do |f| + f << data + end + rescue + report("unable to save '#{filename}'") + else + report("file '#{filename}' is updated") + filename = File.basename(filename).sub(/\..*$/,'') + zipname = sprintf("%s-%04i.%02i.%02i%s",filename,Time.now.year,Time.now.month,Time.now.day,'.zip') + File.delete(zipname) rescue true + report("zipping file '#{zipname}'") + system("zip -r -9 -q #{zipname} #{[fn,fm].flatten.join(' ')}") + end + else + report("no file '#{filename}'") + end + end + end + + def calculate_tpm(data, tag='') + size, ok = 0, Array.new + data.gsub!(/<#{tag}.*>(.*?)<\/#{tag}>/m) do + content = $1 + files = content.split(/\s+/) + files.each do |file| + unless file =~ /^\s*$/ then + if FileTest.file?(file) then + report("found file #{file}") + size += FileTest.size(file) rescue 0 + ok << file + else + report("missing file #{file}") + end + end + end + "<#{tag} size=\"#{size}\">#{content}" + end + [data, ok, size] + end + + def replace_tpm(data, tag='', txt='') + data.gsub(/(<#{tag}.*>)(.*?)(<\/#{tag}>)/m) do + $1 + txt.to_s + $3 + end + end + + +end + class Commands include CommandBase @@ -871,6 +935,8 @@ commandline.registeraction('downcasefilenames', '[--recurse] [--force]') # not y commandline.registeraction('stripformfeeds' , '[--recurse] [--force]') # not yet documented commandline.registeraction('showfont' , 'filename') +commandline.registeraction('tpmmake' , 'tpm file (run in texmf root)') + commandline.registeraction('help') commandline.registeraction('version') 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{Žluouècí konì úpí} +% \placelist[chapter][criterium=all] +% +% \startbuffer +% +% Žluouècí konì úpí +% +% \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 test 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 @@ Vietnamese needs no patterns. + + grahyph4.tex + TeX hyphenation patterns for the ancient Greek language + + 2004 + Dimitrios Filippou + 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 "???". + + + 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} % +\defineactivetoken 130 {\quotesinglebase} % 201A SINGLE LOW-9 QUOTATION MARK +\defineactivetoken 131 {\unknownchar} % +\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} % +\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} % +\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} % +\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 + \unknownchar \or % U+2073 + \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 +% +% \stopXMLdata +% +% \defineXMLcommand +% [whatever] +% [test=unknown] +% {\defXMLtex\SomethingTex{\XMLop{test}}% +% \SomethingTex} +% +% \startXMLdata +% +% \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 - - + + 10 - + \stopXMLdata \startXMLdata - - + + 10 - + \stopXMLdata \startXMLdata - - + + 10 - + \stopXMLdata \startXMLdata - - + + 10 - + \stopXMLdata \startXMLdata - - + + 10 - + \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 @@ -21,72 +21,72 @@ %D %D %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 -%D 10 +%D +%D 10 %D -%D +%D %D \stopbuffer -%D +%D %D \typebuffer \processXMLbuffer -%D -%D A bit more compact: +%D +%D A bit more compact: %D %D \startbuffer -%D -%D 10 +%D +%D 10 %D -%D +%D %D \stopbuffer -%D +%D %D \typebuffer \processXMLbuffer %D -%D A bit more complicated: -%D +%D A bit more complicated: +%D %D \startbuffer -%D -%D a 10 +%D +%D a 10 %D -%D +%D %D \stopbuffer -%D +%D %D \typebuffer \processXMLbuffer -%D -%D An alternative (equivalent) for \type {}: +%D +%D An alternative (equivalent) for \type {}: %D %D \startbuffer -%D +%D %D 10 -%D +%D %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}{}{}{} +%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{}} -%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}{}{}{} -%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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ + @@ -9346,6 +9347,8 @@ + + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ - + @@ -236,6 +236,7 @@ + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + -- cgit v1.2.3