diff options
author | Karl Berry <karl@freefriends.org> | 2013-04-13 23:04:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-04-13 23:04:44 +0000 |
commit | 7b85ff3b395eead1f1311abc4b4cac881d0fd50b (patch) | |
tree | 64792be49db994614043ec99f37f38d8d8adc971 /Master/texmf-dist/doc/context/third | |
parent | 215ff8c0d4b35463f2a094477c2308a8986d424c (diff) |
context-cyrillicnumbers (12apr13)
git-svn-id: svn://tug.org/texlive/trunk@29905 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/context/third')
-rw-r--r-- | Master/texmf-dist/doc/context/third/cyrillicnumbers/COPYING | 22 | ||||
-rw-r--r-- | Master/texmf-dist/doc/context/third/cyrillicnumbers/README.rst | 42 | ||||
-rw-r--r-- | Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.pdf | bin | 0 -> 178751 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.tex | 1314 |
4 files changed, 1378 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/context/third/cyrillicnumbers/COPYING b/Master/texmf-dist/doc/context/third/cyrillicnumbers/COPYING new file mode 100644 index 00000000000..0c6238f81c0 --- /dev/null +++ b/Master/texmf-dist/doc/context/third/cyrillicnumbers/COPYING @@ -0,0 +1,22 @@ +Copyright 2012--2013 Philipp Gesang. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/Master/texmf-dist/doc/context/third/cyrillicnumbers/README.rst b/Master/texmf-dist/doc/context/third/cyrillicnumbers/README.rst new file mode 100644 index 00000000000..72d47e71efa --- /dev/null +++ b/Master/texmf-dist/doc/context/third/cyrillicnumbers/README.rst @@ -0,0 +1,42 @@ +Cyrillic Numerals in ConTeXt +================================================================================ + +Module for typesetting Cyrillic numbers. Take your time to read the manual under +``./doc/context/third/cyrillicnumbers/cyrillicnumbers.tex``. To build the +documentation a recent versions of ConTeXt will be needed. + +Installation +================================================================================ + +First, get a checkout from BitBucket_: :: + + hg clone http://bitbucket.org/phg/context-cyrillicnumbers + +In the next step, copy the files into the path of your ConTeXt distribution. +Assuming it is installed in $HOME/context/, you would accomplish this like +so: :: + + cd context-cyrillicnumbers + cp -r doc/ tex/ ~/context/tex/texmf-modules/ + +Finally, rebuild the file name database: :: + + context --generate + +and the module is ready to use! + +License +================================================================================ + +All code and documentation is licensed under a modified BSD license, see the +file COPYING in the repository root. + +Author +================================================================================ + +This module was written by Philipp Gesang, ``megas.kapaneus`` at ``gmail`` dot +``com`` (find me on BitBucket_). + +.. _BitBucket: http://bitbucket.org/phg + + diff --git a/Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.pdf b/Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.pdf Binary files differnew file mode 100644 index 00000000000..1f129730bd3 --- /dev/null +++ b/Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.pdf diff --git a/Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.tex b/Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.tex new file mode 100644 index 00000000000..238836f9b2d --- /dev/null +++ b/Master/texmf-dist/doc/context/third/cyrillicnumbers/cyrillicnumbers.tex @@ -0,0 +1,1314 @@ +% \enablemode[print] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Module loading % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\usemodule[cyrillicnumbers] +\definecyrnum[normaltextcyrnum][ + command=\oldrussian, + dots=no, + titlo=no, +] + +\definecyrnum[rednum][ + command={\switchtocolor[red]}, +] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Colors % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\definecolor [primarycolor] [darkmagenta] +\definecolor[secondarycolor] [magenta] + +\startmode[print] + \definecolor [primarycolor] [gray12] + \definecolor[secondarycolor] [gray22] +\stopmode%%% print + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Letterspacing / emphases % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\usemodule [letterspace] + +\defineletterspace [largecaps] +\setupletterspace [largecaps] [ + factor=.5, + spaceskip=.4em, + suppresskern=yes, +] + +\def\pompoustitle#1{% + \setuplocalinterlinespace[line=33pt]% + \color[primarycolor]{% + \tfd\bold\WORD\largecaps{#1}% + }% +} + +\defineletterspace [mediumcaps] +\setupletterspace [mediumcaps] [ + factor=.25, + spaceskip=.5em, + suppresskern=yes, +] + +\definefontfeature[smallcaps][smcp=yes,mode=node,script=latn] + +\def\mediumtitle#1{% + \setuplocalinterlinespace[line=33pt]% + \color[primarycolor]{% + \tfa\sc\mediumcaps{#1}% + }% +} + +\defineletterspace [smallcaps] +\setupletterspace [smallcaps] [ + factor=.05, + spaceskip=.25em, + suppresskern=yes, +] + +\defineletterspace [textemph] +\setupletterspace [textemph] [ + factor=.125, + spaceskip=.33em, + suppresskern=no, +] + +\defineletterspace [slightly] +\setupletterspace [slightly] [ + factor=.075, + spaceskip=.33em, + suppresskern=no, +] + +\let\te\textemph + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Font Setups % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\definefontfeature [default] [default] [ + protrusion=quality, + expansion=quality, + mode=node, + script=latn, + onum=yes, + dlig=yes, + liga=yes, + kern=yes, +] + +\definefontfeature [kerning] [kern=yes]% + +\starttypescript [serif] [bukyvede] + % \setups [font:fallback:serif] + \definefontsynonym [Serif] [name:Bukyvede] [features=default] + \definefontsynonym [SerifItalic] [name:Bukyvede-Italic] [features=default] +\stoptypescript + +\usetypescript [bukyvede] +\definetypeface [vintagecyrillic] [rm] [serif] [bukyvede] [default] [encoding=ec] + +\usetypescriptfile [type-gfsbodoni.mkiv] +\usetypescript [gfs-bodoni] +\usetypescriptfile [type-imp-computer-modern-unicode.mkiv] +\usetypescript [computer-modern-unicode] + +\def \russian#1{\begingroup\language[ru]\setupbodyfont[computer-modern-unicode]#1\endgroup} +\def\oldrussian#1{\begingroup\language[ru]\setupbodyfont[vintagecyrillic]#1\endgroup} +\def \greek#1{\begingroup\language[agr]\setupbodyfont[computer-modern-unicode]#1\endgroup} + +\usetypescript [modern] +\starttypescript [mymodern] + \definetypeface [mymodern] [rm] [serif] [modern] [default] + \definetypeface [mymodern] [tt] [mono] [computer-modern-unicode] [default] +\stoptypescript %% this will do as lm and cmu are acceptably similar +\usetypescript [mymodern] +\setupbodyfont [mymodern] + +\usetypescript [serif] [hz] [highquality] +\setupalign [hanging,hz] + +\setupbodyfontenvironment [default] [em=italic] + +\def\quote#1{\bgroup\italic#1\egroup} +\def\uprightslash{\bgroup\tf/\egroup} +\def\uprightomiss{\bgroup\tf[\dots]\egroup} + +%%% The Wiki is great. Long live the Gardener! +\definetextbackground[verbatim] [ + background=color, + backgroundcolor=gray92, + backgroundoffset=0cm, + frame=off, + location=paragraph, + offset=0.5cm, +] + +\setuptyping[ + after={\stoptextbackground\blank[line]}, + before={\blank[line]\noindentation\starttextbackground[verbatim]}, + bodyfont=9pt, + margin=1em, + % style=\tfx\sans, +] + +%%% TODO: find out if this is documented already +%%% http://archive.contextgarden.net/message/20060523.151528.b6da35e1.en.html +%%% http://archive.contextgarden.net/message/20111221.083957.5c85d357.en.html +\setconstant\kindofpagetextareas\plusone + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Presenting the Interface % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\usemodule [int-load] +\loadsetups [t-cyrillicnumbers.xml] +\setupcolor [x11] + +\define\beautifyshowsetups{% + \unexpanded\def\setupnumfont {\rm}% + \unexpanded\def\setuptxtfont {\rm}% + \unexpanded\def\setupintfont {\rm\sc\Word}% + \unexpanded\def\setupvarfont {\rm\it}% + \unexpanded\def\setupoptfont {\rm\it}% + \unexpanded\def\setupalwcolor {primarycolor}% + \unexpanded\def\setupoptcolor {primarycolor}% + \defineframedtext [setuptext] [ + frame=off, + background=color, + backgroundcolor=gray92, + width=\hsize, + height=fit, + align=right, + offset=0.75em, + ]% +} + +\let\Oldshowsetup\showsetup + +\define[1]\showsetup{% hurray for diversity + \bgroup\beautifyshowsetups% + \Oldshowsetup{#1}% + \egroup% +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Paper % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\definepapersize[LHS][ + width=160mm, + height=239mm, +] + +\setuppapersize[LHS][LHS] + +% \showframe +\setuplayout [ + width=122mm, + %textheight=199mm, % ca. 47 rows * 12pt + height=224mm, % text height should end up at ca. 47 rows * 12pt + %height=fit, + % + topspace=14mm, + header=12pt, + headerdistance=4mm, + top=00mm, + % + bottomspace=0mm, + footer=23mm, + bottom=0mm, + footerdistance=0mm, + % + backspace=16mm, + leftedge=0mm, + leftedgedistance=0mm, + leftmargin=16mm, + leftmargindistance=1em, + % + rightmargin=15mm, + rightmargindistance=5mm, + rightedge=0mm, + rightedgedistance=0mm, +] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Interaction % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\setupinteraction[% + state=start, + color=primarycolor, + contrastcolor=primarycolor, + %color=, + %contrastcolor=, + style=, + focus=standard, + title={Cyrillic Numbers Module}, + subtitle={Yet Another Number Converter}, + author={Philipp Gesang}, + keyword={ConTeXt, LuaTeX, cyrillic numerals}, +] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Headings % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\defineletterspace [LSchapter] +\defineletterspace [LSsection] +\defineletterspace [LSsubsection] +\setupletterspace [LSchapter] [factor=.1, spaceskip=.33em,suppresskern=yes] +\setupletterspace [LSsection] [factor=.15, spaceskip=.40em,suppresskern=yes] +\setupletterspace [LSsubsection] [factor=.125,spaceskip=.33em] + +\def \fontchapter#1{\setupbodyfont[10pt]\bold\WORD\LSchapter{#1}} +\def \fontsection#1{\setupbodyfont[10pt]\word\sc\LSsection{#1}} +\def\fontsubsection#1{\setupbodyfont[10pt]\LSsubsection{#1}} + +\def \Chapterheadfontcmd{\fontchapter} +\def \Sectionheadfontcmd{\fontsection} +\def\Subsectionheadfontcmd{\fontsubsection} + +\def\empholdrussian#1{\russian{\italic#1}} + +\definecyrnum[cyrnumone][ + command=\oldrussian, + titlo=mp, + titlomode=2, + dots=no, +] + +\definecyrnum[cyrnumtwo][ + command=\empholdrussian, + titlo=mp, + titlomode=7, + dots=no, +] + +\defineconversion[cyrnumone][\cyrnumone] +\defineconversion[cyrnumtwo][\cyrnumtwo] + +\definestructureconversionset[regularstructure] [numbers,cyrnumone,cyrnumtwo] [cyrnumone] +\definestructureconversionset[regularstructure] [numbers,cyrnumone,cyrnumtwo] [cyrnumone] + +\setuphead [chapter] [ + align=middle, + footer=text, + grid=yes, + header=empty, + number=yes, + sectionconversionset=regularstructure, + % numberconversion=cyrnumone, + page=yes, + style=, + textcommand=\Chapterheadfontcmd, + before={\startlinecorrection\blank[3*line,force]}, + after={\stoplinecorrection\blank[line,force]}, +] + +\definetext [text] [footer] [pagenumber] + +\setuphead [section] [ + align=middle, + number=yes, + page=no, + style=, + sectionconversionset=regularstructure, + textcommand=\Sectionheadfontcmd, + before={\blank[line]}, + after={\blank[line]}, +] + +% \setuphead [subsection] [ +% align=middle, +% number=no, +% page=no, +% style=, +% textcommand=\Subsectionheadfontcmd, +% before={\blank[line]}, +% after={\blank[line]}, +% ] + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Header and Footers % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\setupfooter[text][% handy for occasional pagenumbers in footnotes at chapters + style=\tfx, +] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Margins % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%% loosely based on: http://archive.contextgarden.net/message/20110804.141422.6e52d0bc.en.html +\define[1]\marginhintbox{% + \toplinebox{\rotate{#1}}% + % \toplinebox{\rotate{\framed{#1}}}% +} + +\definemargindata[marginhint][% + style={\tfx\tt}, + location=outer, + align=outer, + margin=margin, + command=\marginhintbox, + stack=yes, +] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ToC % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def \tocfontchapter#1{\tfx\WORD\LSchapter{#1}} +%\def \tocfontsection#1{\word\sc\LSsection{#1}} +\def \tocfontsection#1{\tfx\slightly{#1}} +\def\tocfontsubsection#1{\LSsubsection{#1}} + +\setuplist [chapter] [ + alternative=c, + interaction=text, + textcommand=\tocfontchapter, +] + +\setuplist [section] [ + before={\blank[halfline]}, + alternative=b, + interaction=text, + margin=2em, + numberstyle=, + textcommand=\tocfontsection, + textstyle=, + numberstyle=\tfx, +] + +% \setuplist [subsection] [ +% %after=2.5em, % from the hack +% alternative=d, +% interaction=text, +% margin=3em, % hanging +% textcommand=\tocfontsubsection, +% ] + +\setuplistalternative[c] [ + %distance=0em, + %width=0pt, + stretch=.5em, + command=\hskip.5em\phglistdots\hskip.5em\relax, +] + +\def\phglistdots{\gleaders\hbox to 1em{\hss.\hss}\hfill} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Captions % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +\setupcaptions[ + location=bottom, + headstyle=\tfx\italic, + way=bytext, + prefixsegments=none, + style={\setupinterlinespace[9pt]\tfx}, +] + +\setupcaption [figure] [way=bytext] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Bibliography % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Bib: Setups % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\setuppublications [ + alternative=ssa, + refcommand=authoryear, + %sorttype=bbl, + sort=author, + numbering=yes, + autohang=yes, +] + +\setuppublicationlist [ + artauthor=\invertedauthor, +] + +\setupcite [authoryear] [compress=no] + +%%% Used in bibliography formatting. +\definestartstop [bibindent] [ + before={\startnarrower[left]% + \setupindenting[-\leftskip,yes,first]% + \clubpenalty-9000% + \widowpenalty-9000}, + after=\stopnarrower, +] + +\def\ctay#1{\cite[authoryear][#1]} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Bib: Entries % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\startpublication [ + k=fonts, + t=book, % bibtex go to hell + a={Hagen/Hoekwater}, + y=2011, + n=1, + s={Fonts}, +] + \author[]{Hans}[]{}{Hagen} + \author[]{Taco}[]{}{Hoekwater} + \pubyear{2011} + \title{Fonts in \CONTEXT} + \city{Hasselt} +\stoppublication + +\startpublication [ + k=trunte, + t=inproceedings, % bibtex go to hell + a={Trunte}, + y=2005, + n=2, + s={Altkirchenslavisch}, +] + \author[]{Nikolaos H.}[]{}{Trunte} + \pubyear{2005} + \arttitle{Altkirchenslavisch} + \title{\oldrussian{Словѣньскъи ѩꙁъікъ}. Ein praktisches Lehrbuch des + Kirchenslavischen in 30 Lektionen. Zugleich eine + Einführung in die slavische Philologie} + \edition{3} + \city{München} +\stoppublication + +\startpublication [ + k=zolobov, + t=inproceedings, + a={Žolobov}, + y=2006, + n=3, + s={Čislitelʹnye}, +] + \author[]{O. F.}[]{}{Žolobov} + \pubyear{2006} + \arttitle{Čislitelʹnye} + \title{Istoričeskaâ grammatika drevnerusskogo âzyka} + \pages{58--63} + \editor[]{S.I.}[]{}{Iordanidi} + \editor[]{V.B.}[]{}{Krysʹko} +\stoppublication + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Misc % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\clubpenalty -7000 +\widowpenalty -7000 + +\def\etc{{\italic\letterampersand}c} + +\setupindenting [yes,next,medium] + +% \sethyphenatedurlnormal{:=?&} +\sethyphenatedurlbefore{?&abcdefghijklmnopqrstuvwxyz} +% \sethyphenatedurlafter {:=} + +\startasciimode +\useURL [petr] [http://www.paratype.ru/e-zine/issue04/peter1/peter1a.htm] + [] [\hyphenatedurl{http://www.paratype.ru/e-zine/issue04/peter1/peter1a.htm}] + +\useURL [reform1917] [http://ru.wikipedia.org/wiki/Реформа_русской_орфографии_1918_года] + [] [\hyphenatedurl{http://ru.wikipedia.org/wiki/Реформа_русской_орфографии_1918_года}] + +\useURL [wp_titlo] [http://commons.wikimedia.org/wiki/Category:Titlo?uselang=uk] + [] [\hyphenatedurl{http://commons.wikimedia.org/wiki/Category:Titlo?uselang=uk}] +\useURL [rubl’] [http://ru.wikipedia.org/wiki/Рубль#.D0.92_.D0.98.D0.BC.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.BE.D1.80.D1.81.D0.BA.D0.BE.D0.B9_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8] + [] [\hyphenatedurl{http://ru.wikipedia.org/wiki/Рубль#.D0.92_.D0.98.D0.BC.D0.BF.D0.B5.D1.80.D0.B0.D1.82.D0.BE.D1.80.D1.81.D0.BA.D0.BE.D0.B9_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8}] +\useURL [pttypescript] [http://archive.contextgarden.net/message/20110105.204326.d0228ca7.en.html] + +\useURL [phg-mail] [mailto:megas.kapaneus@gmail.com] [] [\hyphenatedurl{megas.kapaneus@gmail.com}] +\useURL [phg-bibu] [https://bitbucket.org/phg/] [] [] + +\useURL [cmu-home] [http://cm-unicode.sourceforge.net/] [] [\hyphenatedurl{http://cm-unicode.sourceforge.net/}] +\useURL [cmu-debian] [http://packages.debian.org/wheezy/fonts-cmu] [] [\hyphenatedurl{http://packages.debian.org/wheezy/fonts-cmu}] +\useURL [cmu-arch] [http://aur.archlinux.org/packages.php?ID=44029] [] [\hyphenatedurl{http://aur.archlinux.org/packages.php?ID=44029}] +\useURL [cmu-tl] [http://tug.org/svn/texlive/trunk/Master/texmf-dist/fonts/opentype/public/cm-unicode/] + [] [\hyphenatedurl{http://tug.org/svn/texlive/trunk/Master/texmf-dist/fonts/opentype/public/cm-unicode/}] +\useURL [bukyvede] [http://kodeks.uni-bamberg.de/aksl/Schrift/BukyVede.htm] + [] [\hyphenatedurl{http://kodeks.uni-bamberg.de/aksl/Schrift/BukyVede.htm}] +\useURL [romancyr] [http://kodeks.uni-bamberg.de/aksl/Schrift/RomanCyrillicStd.htm] + [] [\hyphenatedurl{http://kodeks.uni-bamberg.de/aksl/Schrift/RomanCyrillicStd.htm}] +\stopasciimode + +\pdfcompresslevel9 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Makeup for Front Matter % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\definemakeup [FM] [standard] +\setupmakeup [FM] [ + width=125mm, + height=172.506mm, + location=middle, +] + +\setupheadertexts [] [] [] [] +\setuppagenumbering [state=stop,location=] + +\startbuffer[showcase1] + local tab = { } + tab[#tab+1] = [[\placetable[right,3*hang][numval]{Number values of the Cyrillic alphabet.}{\starttabulate[|r|]]..string.rep("l|", 9).."]" + tab[#tab+1] = [[\NR\NC $n$]] + for i=1, 9 do tab[#tab+1] = [[\NC $]]..i.."$" end + tab[#tab+1] = [[\NC\NR\HL\NC $n · 10^0$]] + for i=1, 9 do tab[#tab+1] = [[\NC\normaltextcyrnum{]]..i.."}" end + tab[#tab+1] = [[\NC\NR\NC $n · 10^1$]] + for i=10, 90, 10 do tab[#tab+1] = [[\NC\normaltextcyrnum{]]..i.."}" end + tab[#tab+1] = [[\NC\NR\NC $n · 10^2$]] + for i=100, 900, 100 do tab[#tab+1] = [[\NC\normaltextcyrnum{]]..i.."}" end + tab[#tab+1] = [[\stoptabulate\blank[force,2*big]}]] + context(table.concat(tab)) +\stopbuffer + +\defineframed[showcaseframed][ + frame=off, + loffset=3pt, + roffset=\framedparameter{loffset}, + toffset=\framedparameter{loffset}, + boffset=\framedparameter{loffset}, + background=color, + backgroundcolor=gray92, +] +\startbuffer[titloshowcase]% +% \placefigure[right,2*hang][mptitlodemo]{Titlo as a matter of taste.}{% +% \placefigure[][mptitlodemo]{Titlo as a matter of taste.}{% +\placefigure[top][mptitlodemo]{Titlo as a matter of taste.}{% + \showcaseframed[ + width=\hsize, + roffset=\framedparameter{loffset}, + toffset=6pt, + ]{% + \tfc% + \dorecurse{9}{\normaltextcyrnum[titlo=mp,titlocolor=primarycolor,titlomode=\recurselevel]{42}% + \ifnum\recurselevel=9\else\hfill\fi}% + }% +}% +\stopbuffer + +\startbuffer[titlospanshowcase]% +\placefigure[left][titlospandemo]{Different titlo spans.}{% + \showcaseframed[width=.333\hsize,align=left]{% + \type{titlospan}\hfill result\par + \dorecurse{6}{% + \recurselevel + \hfill + \normaltextcyrnum[titlo=mp,titlomode=1,titlocolor=primarycolor,titlospan=\recurselevel]{424242}% + \ifnum\recurselevel<6\par\fi% + } + }% +}% +\stopbuffer + +\startbuffer[penwidthshowcase]% +\start\setuptolerance[horizontal,tolerant,stretch]% +% \placetable[left][penwidthdemo]{Comparison of different values for the parameter \type{penwidth}.}{% +\placetable[middle][penwidthdemo]{Comparison of different values for the parameter \type{penwidth}.}{% + \starttabulate[|r|r|l|r|r|l|]%% tabulate sucks hard, just try to use it with a macro that contains a numberconversion and you’ll know why + \let\lp\letterpercent + \startluacode + local max = 10 + local step = .2 + local dimleft = .4 + local f_row = [[\NC \lp d \NC \lp .3fpt \NC \cyrnum[penwidth=\lp dpt]{\lp d} \NC \lp d \NC \lp .3fpt \NC \cyrnum[penwidth=\lp dpt]{\lp d} \AR]] + for i=1, max do + dimleft = dimleft + step + local dimright = dimleft + max * step + context(string.format(f_row, i, dimleft, dimleft, i, i+4200, dimright, dimright, i+4200)) + end + \stopluacode + \stoptabulate% +}% +\stop +\stopbuffer + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\starttext % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\startfrontmatter +\setuplayout [width=middle] +\startFMmakeup + \raggedcenter + \vfill + {\tfc\italic Typesetting}\par + \vfill + % {\tfd\WORD\largecaps{Cyrillic Numerals}}\par + \pompoustitle{Cyrillic Numerals}\par + \vfill + {\tfc\italic with {\CONTEXT} MkIV}\par + \vfill + % {\tfa\sc \mediumcaps{A Module}}\par + \mediumtitle{A Module}\par + \vfill +\stopFMmakeup + +\page + +% \def\cyrillicalphabet{% +% А,Б,В,Г,Д,Е,Ж,Ѕ,ʐ,И,І,К,Л,М,Н,О,П,Р,С,Т,ОУ,Ф,% +% Х,Ѡ,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Ѣ,Ю,Ι,Ѥ,Ѧ,Ѫ,Ѩ,Ѭ,Ѯ,Ѱ,Ѳ,Ѵ,% +% } + +\def\showoldrussian#1{\begingroup\language[ru]\setupbodyfont[vintagecyrillic]\tfb#1\endgroup} +\def\numbershowcase{% + \bgroup + \setupindenting[no] + \definecyrnum[showcasecyrnum][ + dots=yes, + titlo=mp, + titlomode=\the\thistitlomode, + command=\showoldrussian, + titlocolor=secondarycolor, + ] + \newdimen\skipincrement \skipincrement=0.047619047619048\hsize + \newdimen\showskip \showskip=\zeropoint + \newconditional\checker \setfalse\checker + \newcount\thistitlomode \thistitlomode=1 + \startlines + \dorecurse{20}{% + \getrandomcount\thistitlomode{1}{9}% + \dontleavehmode\hbox to\showskip{}% + \ifconditional\checker + \setfalse\checker + \colored[primarycolor]{\showcasecyrnum{\recurselevel}}% + \else + \settrue\checker + \showcasecyrnum{\recurselevel}% + \fi% + \advance\showskip by \skipincrement + \crlf% + } + \stoplines + \egroup +} + +\startstandardmakeup + \numbershowcase + \vfill\raggedright\tfx + © 2011--2013 {\italic Philipp Gesang}, Radebeul\par + The latest Version can be found at \from [phg-bibu].\par + Mail bugs and fixes or complaints and suggestions to \from + [phg-mail].\par +\stopstandardmakeup +\stopfrontmatter + +\startbodymatter +\page [odd] + +\setuppagenumber [number=1] +\setuppagenumbering [ + state=start, + alternative=doublesided, + location={right,header}, +] + +\title{Content} + +\placelist[chapter,section][criterium=all] + +\def\headertextformat{\tfx\word\sc} + +\setupheadertexts + [{\headertextformat\getmarking[chapter]}] [{\headertextformat\pagenumber}] + [{\headertextformat\pagenumber}] [{\headertextformat\getmarking[chapter]}] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\startchapter[title=Introduction] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The \CONTEXT\ format comes with a collection of conversion +routines for different number systems that are specified in the +files \type{core-con.mkiv} and \type{core-con.lua}. +\te{Cyrillic numerals}, however, are not part of this collection. +The aim of the module at hand is to provide means of handling +Cyrillic numbers and make them seamlessly integrate with the +existing interface for number conversion. + +If you are familiar with Cyrillic numbers, you might choose to +skip the rest of this section and instead continue in medias res +with the description on the module’s usage in the section on +\about[functionality]. + +\ctxluabuffer[showcase1] +\start\setuptolerance[horizontal,verytolerant]%% stupid float +\indentation The Cyrillic numeral system, like the alphabet +it is based on, originated from the Greek numerals and thus +continues many features of the latter.\footnote{% + Thorough examinations of how Cyrillic numbers were used in + praxi are hard to find. + The best that the couple of bookshelfs dedicated to grammar in + a local department of Slavonic languages has to offer appears + to be \ctay{zolobov}. + Another work, \ctay{trunte}, although it follows a less + descriptive but rather instructional approach, deserves + mentioning as well. +} +As with the Roman number system, there are no dedicated glyphs +reserved for numerals, instead numbers are represented by strings +of letters from the ordinary alphabet, organized in a peculiar +way. +Both systems also have the base (10) in common. +However, unlike the Roman system Cyrillic numbers are +\te{positional}, meaning that the numerical value of a digit +depends on its location relative to the other digits. +The first nine digits, in ascending order, are: +\dorecurse{9}{\ifnum\recurselevel=9 and \fi% + “\normaltextcyrnum{\recurselevel}”% + \ifnum\recurselevel<9, \fi}. +As you might have noticed, this series does not correspond to the +first nine glyphs of the Cyrillic alphabet +(\oldrussian{а б в г д е ж ѕ з}), but rather to the order of the +original Greek letters from which they were derived +(\greek{α β γ δ ε ϛ ζ η θ}, with the character \greek{ϛ} at +position №~6 representing “stigma”). +The inherited order of numerical values was kept, essentially +trading backward compatibility for simplicity. +The two other sets of letters that represent multiples of ten and +hundred are listed in \in{Table}[numval]. +The digits are written in descending order, beginning with the +most significant one. +The numbers from 11 to 19 follow a different rule for their order +mimicks the spoken language, which means that the \te{less} +significant digit \te{precedes} the more significant one +(\dostepwiserecurse{11}{18}{1}{\normaltextcyrnum{\recurselevel}, }% +\normaltextcyrnum{19}). +There are no glyphs to represent zeros, so they are simply omitted. +For example, in the Cyrillic system the number 42 is written as +\normaltextcyrnum{42}; the lack of a distinct zero sign causes +402 to have \te{two} digits as well, but the character +representing the digit 4 is chosen from the hundreds set: +\normaltextcyrnum{402}.\par +\stop + +% above 10^3 +The rules so far do not allow for numbers above 999. +To compensate for the lack of additional letters, greater numbers +are represented by the same glyphs (their value being padded by +1000). +There are two ways to avoid confusion: Each digit may be prefixed +with a special character, the thousands sign \oldrussian{҂}. +That way, 42 is still written \normaltextcyrnum{42}, but 42~000 +becomes \normaltextcyrnum{42000}, and their sum +\normaltextcyrnum{42042}. +But if numbers become bigger, the high digits can take +alternative ornate forms: +\space\normaltextcyrnum[preferhundredk=yes]{100000} -- instead of +\normaltextcyrnum{100000} -- for 100~000, and +\space\normaltextcyrnum{1000000} for 1~000~000. + +% dots, titlo +In an environment where punctuation was at best minimal and +interword spacing a luxury, numbers of this kind tend to be +confused with text. +Therefore, a Cyrillic number can have additional markers. +\te{Dots} are used as delimiters before and after a number: +\normaltextcyrnum[dots=yes]{42}. +Additionally, a number may be indicated by the \te{titlo}, which +may span its whole length or just parts of it: +\normaltextcyrnum[titlo=mp]{42}. + +The Cyrillic number module combines all the above mentioned +aspects into one handy command generator, relying on Lua for the +conversion routine and \METAPOST\ for the titlo placement. +With all options in one place, it is trivial to create and +maintain different conversion settings for different purposes. + +\stopchapter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\startchapter[reference=functionality,title=Functionality] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\startsection[title=Setup] + +The module is initialized as any other: + +\starttyping +\usemodule[cyrillicnumbers] +\stoptyping + +Once the module code is loaded, the \te{setup} command provides +means to configure all the functionality it offers. + +\showsetup{setupcyrnum} + +Let’s walk through the options one by one.\marginhint{dots} +As was hinted in the introduction a common practice is to delimit +Cyrillic numbers with dots. +Dot placement is enabled or disabled by setting the \type{dots} +key to {\italic yes} or {\italic no} respectively. +The \type{dotsymbol} key allows the user to supply a delimiter of Eir +own choice; it defaults to the character “·” (unicode +{\sc u+00b7}).\marginhint{dotsymbol} +If a font doesn’t contain a glyph for this code point or for +whatever reason another symbol is required, the solution will +look like this: \type{\setupcyrnum[dots=yes,dotsymbol=\cdot]}. +The result of this modification looks as follows: +\normaltextcyrnum[dots=yes,dotsymbol=\cdot]{42}. +As the dot can be an arbitrary symbol, it could be replaced by +the asterisk: \normaltextcyrnum[dots=yes,dotsymbol=*]{42}, or -- +even weirder -- the hash character (“Gartenzaun”): +\normaltextcyrnum[dots=yes,dotsymbol=\#]{42}. + +In order to notate the sixth decimal digit (for multiples of one +hundred million) there are two mutually excluding +options\marginhint{preferhundredk}: either the hundred thousands +sign or the thousands prefix may be employed. +Thus, the setup key \type{preferhundredk} determines which one +will be chosen. If set to {\italic yes}, then it’s going to be +the houndred thousands sign, else the regular thousands sign: +\normaltextcyrnum[preferhundredk=yes]{900000} $=$ +\normaltextcyrnum[preferhundredk=no] {200000} $+$ +\normaltextcyrnum[preferhundredk=no] {700000}. +(As is obvious from this example, the visual quality of the +houndred thousands sign, which is a separate glyph, depends on +the font used.) + +Not every font contains proper glyphs for the entire Cyrillic unicode +range, in fact every dedicated font for a single Cyrillic alphabet -- +contemporary Russian, say -- might not contain all the characters needed +to represent every Cyrillic numeral.\marginhint{command} +This is the result of the historical development the respective +scripts went through. +This process usually lead to the elimination of several glyphs at +different stages of the development. +For example the Russian alphabet experienced one significant +reduction of letters at the hand of emperor Peter~I\footnote{% + For an overview cf. \from[petr] or just google + \quotation{\russian{гражданский шрифт}}. +} +and another later in 1917 as a consequence of -- not only -- +the revolution.\footnote{% + Cf. \from[reform1917]. +} +Thus, chances are that in order to represent Cyrillic numbers, +which rely on a superset of the modern Russian alphabet, another +font needs to be chosen.\footnote{% + Font fallbacks are another option if the substitutes match the + main font typographically; see \ctay{fonts}, pp. 97--99. +} +The Cyrillic Numbers module provides a hook for this kind of +customization: you may define your own font switching macro and +assign it to the \type{command} key of the setup. +Suppose you decide to typeset your numbers using the Paratype +Serif font.\footnote{% + A typescript can be found on the \CONTEXT\ mailing list: + \from[pttypescript]. Keep in mind that ParaType Serif itself is + not a particularly suitable number font as it does not contain + all required glyphs. +} + +\starttyping + +%%% 1. Load the module and the font. +\usemodule [cyrillicnumbers] +\usetypescriptfile [type-paratype.mkiv] + +%%% 2. Define the font and a command that switches to it. +\definetypeface [numberfont] [rm] [serif] + [paratype] [default] [] +\unexpanded\define[1]\numbercommand{% + \begingroup + \language[ru]% + \setupbodyfont[numberfont]% + #1% + \endgroup% +} + +%%% 3. Hook the command into our converter. +\setupcyrnum [dots=yes,command=\numbercommand] + +%%% 4. Use as needed. +\starttext +Normal text \cyrnum{42} \dots +\stoptext + +%%% 5. ???? + +%%% 6. Profit!!!!! + +\stoptyping + +Naturally, the \type{command} may do anything that fits inside a +one-argument macro, from coloring (\rednum[titlo=no]{42}) to case +manipulation +(\normaltextcyrnum[command=\WORD\oldrussian]{42}). + +The key \type{titlo} controls the placement and, if applicable, +placement method of the +\cyrnumdrawtitlo{\te{titlo}}.\marginhint{titlo} +The two valid method identifiers are {\italic mp} and {\italic +font}, everything else will be interpreted as {\italic no}, e.~g. +the titlo will be omitted. +The latter method, {\italic font}, takes the titlo glyph as +supplied by the font file (code point U+483). +The main drawback of this solution is that to my knowledge the +font titla are designed to span a single character only. +As the titlo belongs to the class of combining characters, in the +stream of unicode glyphs it will be \te{appended} to the +character above which it is placed. +Thus, multi-digit Cyrillic numbers (i.~e. essentially any number +with two or more non-zero digits) won’t be represented in an +optimal way: \normaltextcyrnum[titlo=font]{42}. +There is a further option, \type{titlolocation}, which controls +the placement of a font specific titlo.\marginhint{titlolocation} +The three possible values specify a position +{\italic first}: \normaltextcyrnum[titlo=font, titlolocation=first]{4242}, +{\italic middle}: \normaltextcyrnum[titlo=font,titlolocation=middle]{4242}, and +{\italic final}: \normaltextcyrnum[titlo=font, titlolocation=final]{4242}. +(For even character counts, the {\italic middle} argument will +pick one place to the right of the exact middle.) + +\getbuffer[titloshowcase] +\getbuffer[titlospanshowcase]\indentation An alternative to the +font titlo is provided by the {\italic mp} variant which uses +\METAPOST\ to actually \te{draw} a titlo above the string of +digits. +Not only does this titlo cover the entire numeral, it also comes +in a variety of drawing routines. +At the moment there are nine more or less different titla you +may choose from as demonstrated in \in{figure}[mptitlodemo]. +These can be enabled on via the \type{titlomode} key. +(Observant users will have recognized mode 8 as the old Rubl’ +sign: +\normaltextcyrnum[titlo=mp,titlomode=8,penwidth=.21]{42}.\footnote{% + Cf. \from[rubl’]. +}) +The range of digits to be covered by the titlo can be customized +by passing the parameter \type{titlospan} an integer. +The default value of 3 results in the titlo spanning at maximum the +least significant three digits, because these will not be prefixed +by a thousands sign.\marginhint{titlomode,titlospan} +If the user wants the numeral to be covered as a whole, E can +simply pass the value {\italic all}. +Beware that the dimensions of the titlo are proportional to the +width of the numeral. +Therefore, sufficiently wide (in terms of non-zero digits) +numbers will cause the titlo to shrink horizontally as seen in +\in{figure}[titlospandemo]. +E.~g. for the single digit number +\normaltextcyrnum[titlo=mp,titlomode=5]{1} the titlo even exceeds +the character it sits on, while it does not entirely cover the +five digits plus two thousand signs of +\normaltextcyrnum[titlo=mp,titlospan=all,titlomode=5]{54321}. +When using the {\italic mp} titlo the color of this element can +be chosen separately by passing a valid color identifier to the +\type{titlocolor} key.\marginhint{titlocolor} +The following example code demonstrates the colorization and +drawing facilities. + +\starttyping + +\usemodule [cyrillicnumbers] +\setupbodyfont [computer-modern-unicode] +\setupcyrnum [ + titlo=mp, + titlocolor=blue, + titlospan=all, + titlomode=7, +] + +\starttext +\startlines +\cyrnum {42} +\cyrnum [titlocolor=red,titlomode=9] {141213} +\cyrnum [titlocolor=green,titlomode=2] {271828} +\cyrnum [titlocolor=cyan,titlomode=4] {314159} +\stoplines +\stoptext + +\stoptyping + +\indentation The \METAPOST\ method also comes with a key +\type{penwidth}\marginhint{penwidth}, which rather obviously determines +the width of the pen that is used when drawing a titlo. +Finding the optimal width can involve a lot of testing on the +user’s side; as a rule, the greater the font size, the wider the +pen should be. +Refer to \in{table}[penwidthdemo] for a demonstration of +different values for this parameter. +\getbuffer[penwidthshowcase] + +\stopsection + +\startsection[title=Predefined Commands] + +Once the module is loaded, the commands \type{\cyrnum} and +\type{\cyrnumdrawtitlo} will have been predefined. + +\showsetup{cyrnum} + +\type{\cyrnum} is the default Cyrillic number macro. It is +fully functional, meaning that besides converting a nonnegative +integer into a Cyrillic numeral, it takes a key-value set of +options as an optional first argument. + +\starttyping +\usemodule[cyrillicnumbers] +\starttext + +\cyrnum{1} + +\cyrnum[titlo=mp,titlomode=4]{42} + +\cyrnum{15} + +\stoptext +\stoptyping + +Any of the abovementioned settings can be specified in the first +argument. +As customary with \CONTEXT\ macros, these additional settings are +local to one instance. +Further calls to the macro won’t be affected, unless they are +explicitly applied via \type{\setupcyrnum}, + +The use of \te{titla} is not restricted to indicating numerals. +In addition it is often employed as a kind of emphasis in +handwritten text where it is not easy to achieve visual +distinction by font switching. +Also, the titlo serves as a default marker for abbreviations as +in \oldrussian{благодѣть} \rightarrow\space +\oldrussian{\cyrnumdrawtitlo{блг}одѣть}. + +\showsetup{cyrnumdrawtitlo} + +This is where the macro \type{\cyrnumdrawtitlo} comes into play. +For instance, designations of things considered “sacred” are +highlighted by default in some texts. +Because they appear very frequently, they were shortened as +well, like \oldrussian{господь} +\rightarrow\space\oldrussian{\cyrnumdrawtitlo{гь}}.\footnote{% + Examples taken from \from[wp_titlo]. +} + +\starttyping +господь ->\cyrnumdrawtitlo{гь} + +благодѣть -> \cyrnumdrawtitlo{блг}одѣть +\stoptyping + +\stopsection + +\startsection[title=Command Derivation] + +There is no need to reconfigure the \type{\cyrnum} macro whenever +you intend to deviate from the presets. +Instead, special purpose commands can be defined via +\type{\definecyrnum}. + +\showsetup{definecyrnum} + +All the options that can be passed to \type{\definecyrnum} are +also valid for derived macros; they inherit the setups of +the macros they are derived from. +A full example to play with is given in below listing: + +\starttyping +\usemodule[cyrillicnumbers] +\setupbodyfont[computer-modern-unicode] + +\definecyrnum[mynumone][titlo=no,dots=no] + +\definecyrnum[mynumtwo][mynumone] +\setupcyrnum [mynumtwo][titlo=mp,titlomode=2,titlocolor=red] + +\definecyrnum[mynumthree][mynumtwo] +\setupcyrnum [mynumthree][titlomode=4,dots=yes] + +\starttext + +\mynumone{42} +\mynumtwo{42} +\mynumthree{42} + +\stoptext \endinput +\stoptyping + +\start + \definecyrnum[mynumone][titlo=no,dots=no] + + \definecyrnum[mynumtwo][mynumone] + \setupcyrnum [mynumtwo][titlo=mp,titlomode=2,titlocolor=red] + + \definecyrnum[mynumthree][mynumtwo] + \setupcyrnum [mynumthree][titlomode=4,dots=yes] + + \noindentation Which results in: + \mynumone{42} + \mynumtwo{42} + \mynumthree{42}. +\stop + +\stopsection + +\stopchapter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\startchapter[reference=usage,title=Usage and Precautions] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\startsection[title=Counters] +The macros created by \type{\definecyrnum} are generic conversion +commands. +As such, they can be hooked into any functionality that outputs +integers of some sort: document structure elements, page numbers +{\italic\letterampersand}c. +In order to have \CONTEXT\ recognize your personal Cyrillic +number macro as a converter you need the macro +\type{\defineconversion}. + +\starttyping +\usemodule [cyrillicnumbers] +\setupbodyfont [computer-modern-unicode] + +%%% 1. Define a number converter. +\definecyrnum [neatsections] [ + dots=yes, + titlo=mp, + titlomode=7, +] + +%%% 2. Register the converter. +\defineconversion [my_section_conversion] [\neatsections] + +%%% 3. Insert it into a structure set. +\definestructureconversionset [my_section_set] + [numbers,my_section_conversion] [my_section_conversion] + +%%% 4. Use the set in your chapter command. +\definehead [mychapter] [chapter] +\setuphead [mychapter] [ + sectionconversionset=my_section_set, + page=no, +] + +\starttext + +\dorecurse{10}{% + \startmychapter[title=foo] + \input knuth + \stopmychapter +} + +\stoptext \endinput +\stoptyping + +\stopsection + +% \startsection[title=The Titlo] +% \stopsection + +\startsection[title=Font Issues] + +Although not the entire Cyrillic alphabet is needed to represent +the numerals, they involve certain characters which are uncommon +in contemporary languages. +Therefore they are usually omitted in Cyrillic fonts, which leads +to the problem of finding an adequate font. +A matching superset of Knuth’s typeface is {\italic Computer Modern +Unicode} which is part of \TEX Live and packaged for many +distributions.\footnote{% + Home: \from[cmu-home]; + \TEX Live: \from[cmu-tl]; + Arch: \from[cmu-arch]; + Debian: \from[cmu-debian]. +} +CMU is SIL-OpenFont licensed; it has been used in some of the +above examples. + +There are alternatives offering glyph shapes that resemble the +hand written script of Old Slavonic codices. +One of them is the beautiful {\italic BukyVede} which has been +used as the main Cyrillic font throughout the text. +It was created by the Codex project of the Bamberg +University\footnote{% + Home: \from[bukyvede]. +} +but unfortunately the licensing terms are imprecise (non-free). +Its authors offer another font matching the popular Times +typeface under a yet more restrictive license.\footnote{% + Home: \from[romancyr]. +} + +\stopsection + +\stopchapter + +\stopbodymatter + +\startbackmatter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\startchapter[title=License] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +Copyright 2011--2013 \te{Philipp Gesang}. All rights reserved. + +Redistribution and use in source and binary forms, with or +without modification, are permitted provided that the following +conditions are met: + +\startitemize[n] + \item Redistributions of source code must retain the above + copyright notice, this list of conditions and the following + disclaimer. + \item Redistributions in binary form must reproduce the + above copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. +\stopitemize + +\begingroup +\setuptolerance [horizontal,strict] +\startalignment [right,nothyphenated] +\noindentation\sc\startsmallcaps + this software is provided by the copyright + holder “as is” and any express or implied warranties, + including, but not limited to, the implied warranties of + merchantability and fitness for a particular purpose are + disclaimed. in no event shall the copyright holder or + contributors be liable for any direct, indirect, incidental, + special, exemplary, or consequential damages (including, but + not limited to, procurement of substitute goods or services; + loss of use, data, or profits; or business interruption) + however caused and on any theory of liability, whether in + contract, strict liability, or tort (including negligence or + otherwise) arising in any way out of the use of this software, + even if advised of the possibility of such damage. +\stopsmallcaps\endgraf +\stopalignment +\endgroup + +\stopchapter + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\startchapter[title=References] +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\startbibindent + \placepublications[criterium=all] +\stopbibindent + +\stopchapter + +\stopbackmatter + +\stoptext |