diff options
Diffstat (limited to 'doc/context/presentations/context/2011/context-2011-sorting-registers.tex')
-rw-r--r-- | doc/context/presentations/context/2011/context-2011-sorting-registers.tex | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/doc/context/presentations/context/2011/context-2011-sorting-registers.tex b/doc/context/presentations/context/2011/context-2011-sorting-registers.tex new file mode 100644 index 000000000..f05290906 --- /dev/null +++ b/doc/context/presentations/context/2011/context-2011-sorting-registers.tex @@ -0,0 +1,161 @@ +% tests/mkiv/scripts/korean-005.tex +% examplex elsewhere + +% \enablemode[print] + +\usemodule[present-overlap,abr-02] + +\startdocument + [title=Sorting, + subtitle=registers, + location=\ConTeXt\ Meeting 2011] + +\startluacode + +local function show(t,start,stop) + if type(t) == "table" then + start = start or 1 + stop = stop or #t + for i=start,stop do + if i > start then + context.space() + end + if type(t[i]) == "number" then + context(utf.char(t[i])) + else + context(t[i]) + end + end + elseif type(t) == "string" then + context(t) + elseif type(t) == "number" then + context(utf.char(t)) + end +end + +function context.ShowCharacterData(n) + local d = characters.data[n] + if d then + local bTR, bTD, eTD, eTR = context.bTR, context.bTD, context.eTD, context.eTR + context.bTABLE() + bTR() bTD() context("unicode") eTD() bTD() show(n) eTD() eTR() + bTR() bTD() context("shcode") eTD() bTD() show(characters.shchars [n]) eTD() eTR() + bTR() bTD() context("lccode") eTD() bTD() show(characters.lcchars [n]) eTD() eTR() + bTR() bTD() context("uccode") eTD() bTD() show(characters.ucchars [n]) eTD() eTR() + bTR() bTD() context("fscode") eTD() bTD() show(characters.fschars [n]) eTD() eTR() -- leadconsonant + bTR() bTD() context("specials") eTD() bTD() show( + characters.remap_hangul_syllabe(characters.specials[n]),2) eTD() eTR() + context.eTABLE() + end +end + +\stopluacode + +\unexpanded\def\ShowCharacterData#1{\cldcommand{ShowCharacterData("#1")}} + +\Topic{The old way} + +\StartSteps +\startitemize +\startitem in \MKII\ sorting is delegated to \TEXUTIL\ i.e.\ a multipass action \stopitem \FlushStep +\startitem encoding vectors are passed along \stopitem \FlushStep +\startitem sort vectors depend on the language \stopitem \FlushStep +\startitem there are the usual complications with direct characters and commands \stopitem \FlushStep +\stopitemize +\StopSteps + +\Topic{Moving on} + +\StartSteps +\startitemize +\startitem in \MKIV\ sorting happens during the run \stopitem \FlushStep +\startitem we only have to deal with \UNICODE\ (utf) \stopitem \FlushStep +\startitem sort vectors still depend on the language \stopitem \FlushStep +\startitem sorting can be controlled by methods \stopitem \FlushStep +\startitem there is no universal solution (conflicting user demands, mixed languages) \stopitem \FlushStep +\stopitemize +\StopSteps + +\Topic{Character data} + +\setupTABLE[background=color,backgroundcolor=lightgray,rulethickness=.75bp,framecolor=darkgray] + +\StartSteps +\startcombination[5*1] + {\definedfont[Normal*none]\ShowCharacterData{a}} {regular\FlushStep} + {\definedfont[Normal*none]\ShowCharacterData{ä}} {accent\FlushStep} + {\definedfont[Normal*none]\ShowCharacterData{æ}} {ligature\FlushStep} + {\definedfont[adobemyungjostd-medium]\ShowCharacterData{그}} {hangul\FlushStep} + {\definedfont[adobemyungjostd-medium]\ShowCharacterData{학}} {hangul\FlushStep} +\stopcombination +\StopSteps + +\Topic{Sorting methods} + +\StartSteps +\starttabulate[|l|l|r|] + \NC ch \NC raw character \NC \FlushStep \NC \NR + \NC uc \NC unicode \NC \FlushStep \NC \NR + \NC mm \NC mapping \NC minus \FlushStep \NC \NR + \NC zm \NC \NC zero \FlushStep \NC \NR + \NC pm \NC \NC plus \FlushStep \NC \NR + \NC mc \NC lower case \NC minus \FlushStep \NC \NR + \NC zc \NC \NC zero \FlushStep \NC \NR + \NC pc \NC \NC plus \FlushStep \NC \NR +\stoptabulate +\StopSteps + +\Topic{Predefined methods} + +\StartSteps +\starttabulate[|l|l|] + \NC before \NC mm,mc,uc \NC \NR + \NC after \NC pm,mc,uc \NC \NR + \NC first \NC pc,mm,uc \NC \NR + \NC last \NC mc,mm,uc \NC \NR +\stoptabulate + +\FlushStep + +\starttyping +\enabletrackers[sorters.tests] +\enabletrackers[sorters.methods] +\stoptyping + +\FlushStep +\StopSteps + +\Topic{An example (1)} + +\startbuffer +àâá\index{àâá} +aaa\index{aaa} +aab\index{aab} +Aaa\index{Aaa} +Aab\index{Aab} +\stopbuffer + +\StartSteps +\typebuffer \FlushStep + +\startlines \getbuffer \stoplines \FlushStep +\StopSteps + +\Topic{An example (2)} + +% \enabletrackers[sorters.tests] +% \enabletrackers[sorters.methods] + +\setupregister[index][criterium=text,n=1,before=,after=] +\defineframed[indexframed][align=normal,width=.2\textwidth,strut=no] + +\StartSteps +\startcombination[4*1] + {\setupinteraction[state=stop]\indexframed{\placeregister[index][method={mm,mc,uc}]}} {mm,mc,uc\FlushStep} + {\setupinteraction[state=stop]\indexframed{\placeregister[index][method={pm,mc,uc}]}} {pm,mc,uc\FlushStep} + {\setupinteraction[state=stop]\indexframed{\placeregister[index][method={pc,mm,uc}]}} {pc,mm,uc\FlushStep} + {\setupinteraction[state=stop]\indexframed{\placeregister[index][method={mc,mm,uc}]}} {mc,mm,uc\FlushStep} +\stopcombination +\StopSteps + +\stopdocument |