From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- language/inuktitut/oinuit/README.1ST | 39 + language/inuktitut/oinuit/dvips/oinuit.map | 5 + language/inuktitut/oinuit/examples/book.tex | 94 + language/inuktitut/oinuit/examples/taqtu.tex | Bin 0 -> 2050 bytes language/inuktitut/oinuit/lambda/Table.eps | 4888 +++++++++++++++++++++++++ language/inuktitut/oinuit/lambda/oinuit.dtx | 958 +++++ language/inuktitut/oinuit/lambda/oinuit.ins | 65 + language/inuktitut/oinuit/ocp/Ninuit2uni.ocp | Bin 0 -> 5428 bytes language/inuktitut/oinuit/ocp/Qinuit2uni.ocp | Bin 0 -> 3208 bytes language/inuktitut/oinuit/ocp/inuitscii.ocp | Bin 0 -> 832 bytes language/inuktitut/oinuit/ofm/OInuit.ofm | Bin 0 -> 515176 bytes language/inuktitut/oinuit/ofm/OInuitb.ofm | Bin 0 -> 515120 bytes language/inuktitut/oinuit/ofm/OInuitbo.ofm | Bin 0 -> 515560 bytes language/inuktitut/oinuit/ofm/OInuito.ofm | Bin 0 -> 515500 bytes language/inuktitut/oinuit/ovf/OInuit.ovf | Bin 0 -> 2668 bytes language/inuktitut/oinuit/ovf/OInuitb.ovf | Bin 0 -> 2672 bytes language/inuktitut/oinuit/ovf/OInuitbo.ovf | Bin 0 -> 2676 bytes language/inuktitut/oinuit/ovf/OInuito.ovf | Bin 0 -> 2672 bytes language/inuktitut/oinuit/tfm/Inuit.tfm | Bin 0 -> 1348 bytes language/inuktitut/oinuit/tfm/Inuitb.tfm | Bin 0 -> 1480 bytes language/inuktitut/oinuit/tfm/Inuitbo.tfm | Bin 0 -> 1732 bytes language/inuktitut/oinuit/tfm/Inuito.tfm | Bin 0 -> 1600 bytes language/inuktitut/oinuit/tfm/cmssbxo10.tfm | Bin 0 -> 1592 bytes language/inuktitut/oinuit/type1/Inuit.pfb | Bin 0 -> 32978 bytes language/inuktitut/oinuit/type1/Inuitb.pfb | Bin 0 -> 27236 bytes language/inuktitut/oinuit/type1/Inuitbo.pfb | Bin 0 -> 28284 bytes language/inuktitut/oinuit/type1/Inuito.pfb | Bin 0 -> 32768 bytes language/inuktitut/oinuit/type1/cmssbxo10.pfb | Bin 0 -> 31681 bytes 28 files changed, 6049 insertions(+) create mode 100644 language/inuktitut/oinuit/README.1ST create mode 100644 language/inuktitut/oinuit/dvips/oinuit.map create mode 100644 language/inuktitut/oinuit/examples/book.tex create mode 100644 language/inuktitut/oinuit/examples/taqtu.tex create mode 100644 language/inuktitut/oinuit/lambda/Table.eps create mode 100644 language/inuktitut/oinuit/lambda/oinuit.dtx create mode 100644 language/inuktitut/oinuit/lambda/oinuit.ins create mode 100644 language/inuktitut/oinuit/ocp/Ninuit2uni.ocp create mode 100644 language/inuktitut/oinuit/ocp/Qinuit2uni.ocp create mode 100644 language/inuktitut/oinuit/ocp/inuitscii.ocp create mode 100644 language/inuktitut/oinuit/ofm/OInuit.ofm create mode 100644 language/inuktitut/oinuit/ofm/OInuitb.ofm create mode 100644 language/inuktitut/oinuit/ofm/OInuitbo.ofm create mode 100644 language/inuktitut/oinuit/ofm/OInuito.ofm create mode 100644 language/inuktitut/oinuit/ovf/OInuit.ovf create mode 100644 language/inuktitut/oinuit/ovf/OInuitb.ovf create mode 100644 language/inuktitut/oinuit/ovf/OInuitbo.ovf create mode 100644 language/inuktitut/oinuit/ovf/OInuito.ovf create mode 100644 language/inuktitut/oinuit/tfm/Inuit.tfm create mode 100644 language/inuktitut/oinuit/tfm/Inuitb.tfm create mode 100644 language/inuktitut/oinuit/tfm/Inuitbo.tfm create mode 100644 language/inuktitut/oinuit/tfm/Inuito.tfm create mode 100644 language/inuktitut/oinuit/tfm/cmssbxo10.tfm create mode 100644 language/inuktitut/oinuit/type1/Inuit.pfb create mode 100644 language/inuktitut/oinuit/type1/Inuitb.pfb create mode 100644 language/inuktitut/oinuit/type1/Inuitbo.pfb create mode 100644 language/inuktitut/oinuit/type1/Inuito.pfb create mode 100644 language/inuktitut/oinuit/type1/cmssbxo10.pfb (limited to 'language/inuktitut') diff --git a/language/inuktitut/oinuit/README.1ST b/language/inuktitut/oinuit/README.1ST new file mode 100644 index 0000000000..89058350bc --- /dev/null +++ b/language/inuktitut/oinuit/README.1ST @@ -0,0 +1,39 @@ +The ``oinuit'' system is a set of Lambda (Omega LaTeX) typesetting tools for +the Inuktitut language. The ``oinuit'' package supports five different +input methods and is bundled with the necessary fonts. To learn more about +the system, typeset with LaTeX the file omega/oinuit.dtx; to get the system +files run LaTeX on file omega/oinuit.ins. To install the package: + +1) Create the directories + a) texmf/omega/ocp/oinuit + b) texmf/omega/otp/oinuit + c) texmf/omega/lambda/oinuit + d) texmf/fonts/ovf/public/oinuit + e) texmf/fonts/ofm/public/oinuit + f) texmf/fonts/type1/public/oinuit + g) texmf/dvips/oinuit + +2) Copy to directory c) all the *.sty, *.fd, *.def and *.tex files generated + by running LaTeX on file oinuit.ins. The *.otp files generated with the + same process should be installed on directory b). + +3) Copy all the font files to the corresponding directories. + +4) Append the following line + + inuit inuit.tex + + to file texmf/omega/lambda/base/language.dat and regenarate the Lambda + format so that the Inuktitut hyphenation patterns can be loaded. + +5) Copy the *.ocp files to directory a). + +6) Copy the file oinuit.map to directory g). + +7) Rehash your system and make sure that you can process the examples. + +Please forward any commends, questions, or error reports to + apostolo@obelix.e.duth.gr + +Apostolos Syropoulos +Sun Jul 21, 2002 \ No newline at end of file diff --git a/language/inuktitut/oinuit/dvips/oinuit.map b/language/inuktitut/oinuit/dvips/oinuit.map new file mode 100644 index 0000000000..d10aff08e1 --- /dev/null +++ b/language/inuktitut/oinuit/dvips/oinuit.map @@ -0,0 +1,5 @@ +Inuit Inuit )p 3484 845 V +166 w(?)p 3742 845 V 440 848 3305 4 v 490 918 a(40)p +624 948 4 100 v 147 w Fe(@)p 874 948 V 172 w(A)p 1078 +948 V 148 w(B)p 1281 948 V 152 w(C)p 1489 948 V 151 w(D)p +1697 948 V 138 w(E)p 1873 948 V 121 w(F)p 2036 948 V +119 w(G)p 2215 948 V 126 w(H)p 2400 948 V 144 w(I)p 2586 +948 V 155 w(J)p 2771 948 V 136 w(K)p 2955 948 V 133 w(L)p +3140 948 V 126 w(M)p 3326 948 V 106 w(N)p 3484 948 V +148 w(O)p 3742 948 V 440 951 3305 4 v 490 1021 a Ff(50)p +624 1051 4 100 v 147 w Fe(P)p 874 1051 V 170 w(Q)p 1078 +1051 V 146 w(R)p 1281 1051 V 156 w(S)p 1489 1051 V 156 +w(T)p 1697 1051 V 135 w(U)p 1873 1051 V 114 w(V)p 2036 +1051 V 104 w(W)p 2215 1051 V 115 w(X)p 2400 1051 V 131 +w(Y)p 2586 1051 V 133 w(Z)p 2771 1051 V 148 w Ff(v)p +2955 1051 V 154 w Fb(n)p 3140 1051 V 153 w Ff(\340)p +3326 1051 V 141 w Fe(^)p 3484 1051 V 3605 1021 25 4 v +3742 1051 4 100 v 440 1054 3305 4 v 490 1124 a Ff(60)p +624 1154 4 100 v 162 w Fe(`)p 874 1154 V 196 w(a)p 1078 +1154 V 162 w(b)p 1281 1154 V 165 w(c)p 1489 1154 V 168 +w(d)p 1697 1154 V 152 w(e)p 1873 1154 V 139 w(f)p 2036 +1154 V 137 w(g)p 2215 1154 V 140 w(h)p 2400 1154 V 154 +w(i)p 2586 1154 V 164 w(j)p 2771 1154 V 153 w(k)p 2955 +1154 V 154 w(l)p 3140 1154 V 143 w(m)p 3326 1154 V 117 +w(n)p 3484 1154 V 166 w(o)p 3742 1154 V 440 1157 3305 +4 v 490 1227 a Ff(70)p 624 1257 4 100 v 155 w Fe(p)p +874 1257 V 184 w(q)p 1078 1257 V 168 w(r)p 1281 1257 +V 176 w(s)p 1489 1257 V 176 w(t)p 1697 1257 V 156 w(u)p +1873 1257 V 129 w(v)p 2036 1257 V 124 w(w)p 2215 1257 +V 134 w(x)p 2400 1257 V 148 w(y)p 2586 1257 V 148 w(z)p +2771 1257 V 146 w Fb(f)p 2955 1257 V 3140 1257 V 328 +w(g)p 3326 1257 V 130 w Fe(~)p 3484 1257 V 107 w Fd(DEL)p +3742 1257 V 440 1260 3305 4 v 490 1331 a Ff(80)p 624 +1361 4 101 v 145 w(@)p 874 1361 V 165 w(A)p 1078 1361 +V 146 w(B)p 1281 1361 V 152 w(C)p 1489 1361 V 154 w(D)p +1697 1361 V 127 w(E)p 1873 1361 V 105 w(F)p 2036 1361 +V 113 w(G)p 2215 1361 V 120 w(H)p 2400 1361 V 129 w(I)p +2586 1361 V 133 w(J)p 2771 1361 V 131 w(K)p 2955 1361 +V 130 w(L)p 3140 1361 V 142 w(M)p 3326 1361 V 128 w(N)p +3484 1361 V 153 w(O)p 3742 1361 V 440 1364 3305 4 v 490 +1435 a(90)p 624 1465 4 101 v 152 w(P)p 874 1465 V 194 +w(Q)p 1078 1465 V 187 w(R)p 1281 1465 V 181 w(S)p 1489 +1465 V 177 w(T)p 1697 1465 V 155 w(U)p 1873 1465 V 130 +w(V)p 2036 1465 V 119 w(W)p 2215 1465 V 125 w(X)p 2400 +1465 V 131 w(Y)p 2586 1465 V 130 w(Z)p 2771 1465 V 136 +w([)p 2955 1465 V 146 w(\\)p 3140 1465 V 149 w(])p 3326 +1465 V 129 w(^)p 3484 1465 V 166 w(_)p 3742 1465 V 440 +1468 3305 4 v 490 1597 a Fe(a)p Ff(0)p 624 1627 4 160 +v 703 1532 a Fa(NB)710 1597 y(SP)p 874 1627 V 164 w Ff(a)p +1078 1627 V 161 w(b)p 1281 1627 V 162 w(c)p 1489 1627 +V 172 w(d)p 1697 1627 V 156 w(e)p 1873 1627 V 127 w(f)p +2036 1627 V 130 w(g)p 2215 1627 V 140 w(h)p 2400 1627 +V 142 w(i)p 2586 1627 V 140 w(j)p 2771 1627 V 143 w(k)p +2955 1627 V 150 w(l)p 3140 1627 V 148 w(m)p 3326 1627 +V 124 w(n)p 3484 1627 V 161 w(o)p 3742 1627 V 440 1630 +3305 4 v 490 1701 a Fe(b)p Ff(0)p 624 1731 4 101 v 874 +1731 V 380 w(q)p 1078 1731 V 159 w(r)p 1281 1731 V 160 +w(s)p 1489 1731 V 163 w(t)p 1697 1731 V 153 w(u)p 1873 +1731 V 2036 1731 V 294 w(w)p 2215 1731 V 119 w(x)p 2400 +1731 V 122 w(y)p 2586 1731 V 123 w(z)p 2771 1731 V 121 +w({)p 2955 1731 V 122 w(|)p 3140 1731 V 133 w(})p 3326 +1731 V 127 w(~)p 3484 1731 V 161 w(\241)p 3742 1731 V +440 1734 3305 4 v 490 1805 a Fe(c)p Ff(0)p 624 1835 4 +101 v 158 w(\242)p 874 1835 V 179 w(\243)p 1078 1835 +V 155 w(\244)p 1281 1835 V 158 w(\245)p 1489 1835 V 167 +w(\246)p 1697 1835 V 145 w(\247)p 1873 1835 V 107 w(\250)p +2036 1835 V 108 w(\251)p 2215 1835 V 119 w(\252)p 2400 +1835 V 122 w(\253)p 2586 1835 V 123 w(\254)p 2771 1835 +V 132 w(\255)p 2955 1835 V 140 w(\256)p 3140 1835 V 138 +w(\257)p 3326 1835 V 124 w(\260)p 3484 1835 V 161 w(\261)p +3742 1835 V 440 1838 3305 4 v 490 1908 a Fe(d)p Ff(0)p +624 1938 4 101 v 153 w(\262)p 874 1938 V 179 w(\263)p +1078 1938 V 1281 1938 V 356 w(\265)p 1489 1938 V 147 +w(\266)p 1697 1938 V 134 w(\267)p 1873 1938 V 114 w(\270)p +2036 1938 V 115 w(\271)p 2215 1938 V 126 w(\272)p 2400 +1938 V 140 w(\273)p 2586 1938 V 134 w(\274)p 2771 1938 +V 121 w(\275)p 2955 1938 V 131 w(\276)p 3140 1938 V 142 +w(\277)p 3326 1938 V 129 w(\300)p 3484 1938 V 165 w(\301)p +3742 1938 V 440 1942 3305 4 v 490 2012 a Fe(e)p Ff(0)p +624 2042 4 101 v 170 w(\302)p 874 2042 V 183 w(\303)p +1078 2042 V 139 w(\304)p 1281 2042 V 142 w(\305)p 1489 +2042 V 143 w(\306)p 1697 2042 V 128 w(\307)p 1873 2042 +V 106 w(\310)p 2036 2042 V 112 w(\311)p 2215 2042 V 113 +w(\312)p 2400 2042 V 100 w(\313)p 2586 2042 V 100 w(\314)p +2771 2042 V 99 w(\315)p 2955 2042 V 100 w(\316)p 3140 +2042 V 99 w(\317)p 3326 2042 V 105 w(\320)p 3484 2042 +V 132 w(\321)p 3742 2042 V 440 2045 3305 4 v 490 2116 +a Fe(f)p Ff(0)p 624 2146 4 101 v 140 w(\322)p 874 2146 +V 121 w(\323)p 1078 2146 V 99 w(\324)p 1281 2146 V 100 +w(\325)p 1489 2146 V 99 w(\326)p 1697 2146 V 104 w(\327)p +1873 2146 V 104 w(\330)p 2036 2146 V 108 w(\331)p 2215 +2146 V 119 w(\332)p 2400 2146 V 122 w(\333)p 2586 2146 +V 123 w(\334)p 2771 2146 V 121 w(\335)p 2955 2146 V 131 +w(\336)p 3140 2146 V 140 w(\337)p 3326 2146 V 3484 2146 +V 3742 2146 V 440 2149 3305 4 v eop +%%Trailer +end +userdict /end-hook known{end-hook}if +%%EOF diff --git a/language/inuktitut/oinuit/lambda/oinuit.dtx b/language/inuktitut/oinuit/lambda/oinuit.dtx new file mode 100644 index 0000000000..78b4ba079b --- /dev/null +++ b/language/inuktitut/oinuit/lambda/oinuit.dtx @@ -0,0 +1,958 @@ +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%\iffalse +% +% oinuit.dtx +% Copyright 2002 Apostolos Syropoulos +% +% This program may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% This program consists of the files oinuit.dtx and oinuit.ins +% +% Please report errors or suggestions for improvement to +% +% Apostolos Syropoulos +% 366, 28th October Str. +% GR-671 00 Xanthi, GREECE +% apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr +% +%\fi +% \CheckSum{475} +% \iffalse This is a Metacomment +% +%\ProvidesPackage{oinuit.sty} +%\ProvidesFile{litenc.def} +%\ProvidesFile{litcmr.fd} +%\message{2002/07/21 v1.0 Inuktitut hyphenation patterns} +%%% Omega translation process Ninuit2uni +%%% Omega translation process Qinuit2uni +%%% Omega translation process inuitscii +% +%[2002/07/21 v1.0 Package `oinuit.sty'] +%[2002/07/21 v1.0 Local Inuktitut Encoding] +%[2002/07/21 v1.0 Inuktitut Font Definition] +%%% 2002/07/21 v1.0 Inuktitut Latin transcription to Unicode, +%%% follows the Anglican orthography. +%%% 2002/07/21 v1.0 Inuktitut Latin transcription to Unicode, +%%% follows the Catholic orthography. +%%% 2002/07/21 v1.0 Inuit ASCII to Unicode. +% +% \begin{macrocode} +%<*driver> +\documentclass{ltxdoc} +\usepackage{url,graphicx} +\GetFileInfo{oinuit.drv} +\begin{document} + \frenchspacing + \DocInput{oinuit.dtx} +\end{document} +% +% \end{macrocode} +% \fi +% +% \title{The \textit{oinuit} package} +% \author{Apostolos Syropoulos\\366, 28th October Str.\\ +% GR-671 00 Xanthi, HELLAS\\ +% Email:\texttt{apostolo@obelix.ee.duth.gr}\\ or \\ +% \hphantom{Email:}\texttt{apostolo@ocean1.ee.duth.gr}} +% \date{2002/07/21} +% \maketitle +% +%\MakeShortVerb{\|} +%\StopEventually{} +% +% \section{Introduction} +% +% This $\Lambda$\footnote{$\Lambda$ is \LaTeX's nickname when used with the +% $\Omega$ typesetting engine.} package is part of a system that +% provides a rather complete solution to the problem of typesetting Inuktitut +% documents. The package is bundled with a PostScript version of the Nunacom +% TrueType font developed by Nortext (\url{http://www.nortext.com}), which is +% redistributed with permission from Nortext. In addition, there four $\Omega$ +% virtual fonts, which define a Unicode encoded font that consists of the +% English alphabet, the digits, some symbols and the Inuktitut syllabary. +% +% Inuktitut is the language of the Inuit (also known as Eskimos, but the term +% is considered offensive by Inuit who live in Canada and Greenland). The +% language is spoken in Greenland, Canada, Alaska, and the Chukotka Autonomous +% Okrug, which is located in the far northeast region of the Russian +% Federation, by approximately 152,000 people. The Inuktitut syllabics are +% used by Inuit who live in Canada, especially in the new Canadian territory +% of Nunavut. This writing system was invented by Reverend James Evans, a +% Wesleyan missionary. This system was based on earlier work on the Cree +% language, which, in turn, was based on work on the Ojibway language. +% +% The complete system consists of the following files: +% \begin{description} +% \item[\texttt{driver}] produces a documentation driver file. +% \item[\texttt{oinuit.sty}] the package itself. +% \item[\texttt{litenc.def}] font encoding definition file. +% \item[\texttt{litcmr.fd}] font definition file. +% \item[\texttt{inuit.tex}] Inuktitut hyphenation patterns. +% \item[\texttt{Ninuit2uni.otp}] an $\Omega$TP that transforms text written +% in the Inuktitut Latin transcription to Unicode that follows the +% Anglican orthography. +% \item[\texttt{Qinuit2uni.otp}] an $\Omega$TP that transforms text written +% in the Inuktitut Latin transcription to Unicode that follows the +% Catholic orthography. +% \item[\texttt{inuitscii.otp}] an $\Omega$TP that transforms text written in +% a Inuit ASCII to Unicode. +% \end{description} +% +% \section{The package `oinuit'} +% +% The package `oinuit' provides the basic user-interface for the typesetting +% of Inuktitut text with $\Lambda$. The package provides five options: +% \texttt{nunavut} (default option), \texttt{quebec}, \texttt{iscii}, +% \texttt{utf8}, and \texttt{ucs2}, which should be used when users want to +% enter text using the Latin transcription of Inuktitut and the Anglican +% orthography, the Latin transcription of Inuktitut and the Catholic +% orthography, the Inuit ASCII (see Table~\ref{iscii}), the UTF-8 Unicode, +% or the UCS-2 Unicode encoding, respectively. +% \begin{table} +% \begin{center} +% \includegraphics[scale=0.8]{Table.eps} +% \end{center} +% \caption{The Inuit character table that the \texttt{inuitscii} +% $\Omega$TP implements.}\label{iscii} +% \end{table} +% The Inuit ASCII presented in the above is based on PC Inuit Character Table +% proposed by Everson Typography +% (see \url{http://www.evertype.com/standards/iu/iu-tables.html}). +% +% The first thing we have to do is to redefine the +% \texttt{\char`\\ttde\-fault} or, else, we will not be able to use the +% |\verb| command and the \texttt{verbatim} environment. +% \begin{macrocode} +%<*oinuit> +\IfFileExists{ot1uctt.fd}{% + \def\ttdefault{uctt}}{}% +% \end{macrocode} +% Each option corresponds to a particular ``$\Omega$ Translation Process,'' +% or $\Omega$TP, for short. Consequently, depending on the option the user has +% specified, we must load the corresponding $\Omega$TP. The \texttt{nunavut} +% option should be used to transform Inuktitut text that is ``encoded'' in the +% Latin transcription that follows the Anglican orthography to Unicode. In all +% cases we use the same $\Omega$CP (for $\Omega$ Compiled Process) list that +% consists of only one $\Omega$CP, namely the one that corresponds to the +% option. +% \begin{macrocode} +\DeclareOption{nunavut}{% + \ocp\InInuit=Ninuit2uni + \ocplist\InInuitList= + \addbeforeocplist 1 \InInuit + \nullocplist +} +% \end{macrocode} +% The \texttt{quebec} option should be used to transform Inuktitut text that +% is ``encoded'' in the Latin transcription that follows the Catholic +% orthography to Unicode: +% \begin{macrocode} +\DeclareOption{quebec}{% + \ocp\InInuit=Qinuit2uni + \ocplist\InInuitList= + \addbeforeocplist 1 \InInuit + \nullocplist +} +% \end{macrocode} +% The \texttt{iscii} option should be used when Inuit ASCII is the prefered +% input encoding: +% \begin{macrocode} +\DeclareOption{iscii}{% + \ocp\InInuit=inuitscii + \ocplist\InInuitList= + \addbeforeocplist 1 \InInuit + \nullocplist +} +% \end{macrocode} +% Naturally, people may find it easier to type directly prepare their +% documents using a Unicode editor, so we support UTF-8 input. Note +% that the \texttt{inutf8} $\Omega$CP is a standard part of every $\Omega$ +% installtion. +% \begin{macrocode} +\DeclareOption{utf8}{% + \ocp\InInuit=inutf8 + \ocplist\InInuitList= + \addbeforeocplist 1 \InInuit + \nullocplist +} +% \end{macrocode} +% Naturally, we support UCS-2 input. Note that here we use the \texttt{id} +% $\Omega$CP which maps any character to itself. +% \begin{macrocode} +\DeclareOption{ucs2}{% + \ocp\InInuit=id + \ocplist\InInuitList= + \addbeforeocplist 1 \InInuit + \nullocplist +} +% \end{macrocode} +% The default input encoding for the Inuktitut text is the Latin transcription +% that follows the Anglican orthography: +% \begin{macrocode} +\ExecuteOptions{nunavut} +\ProcessOptions +% \end{macrocode} +% Now, we load a local font encoding which is a temporal solution as we do +% not really have a complete Unicode font. +% \begin{macrocode} +\input litenc.def +% \end{macrocode} +%\begin{macro}{\selectlanguage} +% The command |\selectlanguage| is actaully a hack that simulates the +% behavior of the corresponding command that the \textsf{babel} package +% provides. The command has one argument, which is the name of a lnaguage +% whose hyphenation patterns will be enabled. Each language, +% \texttt{\textit{lang}}, is internally represented by the control sequence +% \texttt{\char`\\l@\textit{lang}}. If this control sequence expands to +% \texttt{\char`\\re\-lax}, then there are no preloaded hyphenation patterns +% for \texttt{\textit{lang}} and so the default (American) hyphenation +% patterns are loaded. Otherwise, we load the hyphenation patterns of the +% requested \texttt{\textit{lang}}. +% \begin{macrocode} +\def\selectlanguage#1{% + \expandafter\ifx\csname l@#1\endcsname\relax% + \typeout{^^J Error: No hyphenation pattern for language #1 loaded,}% + \typeout{ default hyphenation patterns are used.^^J}% + \language=0% + \else\language=\csname l@#1\endcsname\fi} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\inuittext} +% The |\inuittext| command should be used to permanently change the font +% encoding, make the Inuktitut hyphenation patterns the default hyphenation +% patterns and select the appropriate $\Omega$CP list. +% \begin{macrocode} +\def\inuittext{% + \fontencoding{LIT}\selectfont% + \def\encodingdefault{LIT}% + \selectlanguage{inuit}% + \pushocplist\InInuitList% +} +% \end{macrocode} +% Although we do not provide the ``opposite'' declaration, it is fairly +% easy to write a macro that will do this job. +%\end{macro} +%\begin{macro}{inuit} +% The \texttt{inuit} environment is actually a local scope in which we +% activate the equivalent of the \texttt{\char`\\inuit\-text} declaration. +% \begin{macrocode} +\newenvironment{inuit}{\fontencoding{LIT}\selectfont% + \selectlanguage{inuit}% + \pushocplist\InInuitList}% + {\popocplist} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\textinuit} +% The |\textinuit| command is a long command that does exactly what the +% \texttt{inuit} environment does: +% \begin{macrocode} +\DeclareRobustCommand{\textinuit}[1]{{% + \leavevmode\fontencoding{LIT}\selectfont% + \selectlanguage{inuit}% + \pushocplist\InInuitList #1}} +% \end{macrocode} +%\end{macro} +%\begin{macro}{\InuitToday} +% The |\InuitToday| command prints the current date in Inuktitut. Note that +% we use the |^^^^hhhh| notation to write the letters of the word and so we +% actually using Unicode code points instead of ``letters.'' +% \begin{macrocode} +\DeclareRobustCommand{\InuitToday}{{% + \fontencoding{LIT}\selectfont% + \number\day\space% + \ifcase\month% + \or ^^^^1528^^^^14c4^^^^140a^^^^1546 %January + \or ^^^^1555^^^^1433^^^^140a^^^^1546 %February + \or ^^^^14ab^^^^1550^^^^14ef %March + \or ^^^^140a^^^^1403^^^^1433^^^^1546^^^^14ea %April + \or ^^^^14aa^^^^1403 %May + \or ^^^^152a^^^^14c2 %June + \or ^^^^152a^^^^14da^^^^1403 %July + \or ^^^^140a^^^^1405^^^^148d^^^^1505 %August + \or ^^^^14ef^^^^144e^^^^14bb^^^^1433^^^^1546 %September + \or ^^^^1505^^^^1483^^^^1450^^^^1433^^^^1546 %October + \or ^^^^14c4^^^^1555^^^^14bb^^^^1433^^^^1546 %November + \or ^^^^144e^^^^14ef^^^^14bb^^^^1433^^^^1546 %December + \fi% + \number\year}} +% +% \end{macrocode} +% Of course, we do need to do a few more things (e.g., provide translation +% of the common strings that \LaTeX\ uses), but we wanted to release the +% package to make available the tools and to give other package writer's +% the chance to check out a complete and (hopefully) well-documented $\Lambda$ +% package. +%\end{macro} +% +% \section{Font Encoding and Font Definition Files} +% +% Since the fonts that we use do not have a standard encoding (they support +% ASCII and the Inuktitut symbols that are contained in the Canadian +% Aboriginal Syllabics section of the Unicode Standard), we have to declare +% a new ``local'' font encoding. +% \begin{macrocode} +%<*LITenc> +\DeclareFontEncoding{LIT}{}{} +\DeclareFontSubstitution{LIT}{cmr}{m}{n} +\DeclareErrorFont{LIT}{cmr}{m}{n}{10} +% +% \end{macrocode} +% +% Of course, declaring a new font encoding is not enough: we need a font +% definition file. Note that we claim to support a Roman font, but we +% actually support a san-serif font as this matches with the Inuktitut +% symbols. In addition, the available ``shapes'' are: up-right, slanted, +% bold, and bold slanted. +% +% \begin{macrocode} +%<*LITcmr> +\DeclareFontShape{LIT}{cmr}{m}{n}{% + <-> OInuit}{} +\DeclareFontShape{LIT}{cmr}{m}{sc}{% + <-> ssub * cmr/m/n}{} +\DeclareFontShape{LIT}{cmr}{m}{sl}{% + <-> OInuito}{} +\DeclareFontShape{LIT}{cmr}{m}{it}{% + <-> ssub * cmr/m/sl}{} +\DeclareFontShape{LIT}{cmr}{bx}{n}{% + <-> OInuitb}{} +\DeclareFontShape{LIT}{cmr}{bx}{sc}{% + <-> ssub * cmr/bx/n}{} +\DeclareFontShape{LIT}{cmr}{bx}{sl}{% + <-> OInuitbo}{} +\DeclareFontShape{LIT}{cmr}{bx}{it}{% + <-> ssub * cmr/bx/sl}{} +% +% \end{macrocode} +% +% \section{Inuktitut Hyphenation Patterns} +% +% The hyphenation rules of the Inuktitut language are very simple: +% words can be broken at any point! The only exception is that a +% break-point cannot appear before a final consonant. Before, we code +% the hyphenation patterns, we must change the catcode of all symbols that +% the Inuktitut language uses. By default, all these symbols have catcode +% ``other,'' so we set it to ``letter.'' In addition, we set the lowercase +% codes and the uppercase codes of each symbol. Since there are no uppercase +% or lowercase letters, we define that the uppercase/lowercase of a symbol +% is the symbol itself. +% \begin{macrocode} +%<*Hyphenation> +\catcode`^^^^1403=11 \lccode`^^^^1403=`^^^^1403 + \uccode`^^^^1403=`^^^^1403 +\catcode`^^^^1404=11 \lccode`^^^^1404=`^^^^1404 + \uccode`^^^^1404=`^^^^1404 +\catcode`^^^^1405=11 \lccode`^^^^1405=`^^^^1405 + \uccode`^^^^1405=`^^^^1405 +\catcode`^^^^1406=11 \lccode`^^^^1406=`^^^^1406 + \uccode`^^^^1406=`^^^^1406 +\catcode`^^^^140a=11 \lccode`^^^^140a=`^^^^140a + \uccode`^^^^140a=`^^^^140a +\catcode`^^^^140b=11 \lccode`^^^^140b=`^^^^140b + \uccode`^^^^140b=`^^^^140b +\catcode`^^^^1431=11 \lccode`^^^^1431=`^^^^1431 + \uccode`^^^^1431=`^^^^1431 +\catcode`^^^^1432=11 \lccode`^^^^1432=`^^^^1432 + \uccode`^^^^1432=`^^^^1432 +\catcode`^^^^1433=11 \lccode`^^^^1433=`^^^^1433 + \uccode`^^^^1433=`^^^^1433 +\catcode`^^^^1434=11 \lccode`^^^^1434=`^^^^1434 + \uccode`^^^^1434=`^^^^1434 +\catcode`^^^^1438=11 \lccode`^^^^1438=`^^^^1438 + \uccode`^^^^1438=`^^^^1438 +\catcode`^^^^1439=11 \lccode`^^^^1439=`^^^^1439 + \uccode`^^^^1439=`^^^^1439 +\catcode`^^^^1449=11 \lccode`^^^^1449=`^^^^1449 + \uccode`^^^^1449=`^^^^1449 +\catcode`^^^^144e=11 \lccode`^^^^144e=`^^^^144e + \uccode`^^^^144e=`^^^^144e +\catcode`^^^^144f=11 \lccode`^^^^144f=`^^^^144f + \uccode`^^^^144f=`^^^^144f +\catcode`^^^^1450=11 \lccode`^^^^1450=`^^^^1450 + \uccode`^^^^1450=`^^^^1450 +\catcode`^^^^1451=11 \lccode`^^^^1451=`^^^^1451 + \uccode`^^^^1451=`^^^^1451 +\catcode`^^^^1455=11 \lccode`^^^^1455=`^^^^1455 + \uccode`^^^^1455=`^^^^1455 +\catcode`^^^^1456=11 \lccode`^^^^1456=`^^^^1456 + \uccode`^^^^1456=`^^^^1456 +\catcode`^^^^1466=11 \lccode`^^^^1466=`^^^^1466 + \uccode`^^^^1466=`^^^^1466 +\catcode`^^^^146d=11 \lccode`^^^^146d=`^^^^146d + \uccode`^^^^146d=`^^^^146d +\catcode`^^^^146e=11 \lccode`^^^^146e=`^^^^146e + \uccode`^^^^146e=`^^^^146e +\catcode`^^^^146f=11 \lccode`^^^^146f=`^^^^146f + \uccode`^^^^146f=`^^^^146f +\catcode`^^^^1470=11 \lccode`^^^^1470=`^^^^1470 + \uccode`^^^^1470=`^^^^1470 +\catcode`^^^^1472=11 \lccode`^^^^1472=`^^^^1472 + \uccode`^^^^1472=`^^^^1472 +\catcode`^^^^1473=11 \lccode`^^^^1473=`^^^^1473 + \uccode`^^^^1473=`^^^^1473 +\catcode`^^^^1483=11 \lccode`^^^^1483=`^^^^1483 + \uccode`^^^^1483=`^^^^1483 +\catcode`^^^^148b=11 \lccode`^^^^148b=`^^^^148b + \uccode`^^^^148b=`^^^^148b +\catcode`^^^^148c=11 \lccode`^^^^148c=`^^^^148c + \uccode`^^^^148c=`^^^^148c +\catcode`^^^^148d=11 \lccode`^^^^148d=`^^^^148d + \uccode`^^^^148d=`^^^^148d +\catcode`^^^^148e=11 \lccode`^^^^148e=`^^^^148e + \uccode`^^^^148e=`^^^^148e +\catcode`^^^^1490=11 \lccode`^^^^1490=`^^^^1490 + \uccode`^^^^1490=`^^^^1490 +\catcode`^^^^1491=11 \lccode`^^^^1491=`^^^^1491 + \uccode`^^^^1491=`^^^^1491 +\catcode`^^^^14a1=11 \lccode`^^^^14a1=`^^^^14a1 + \uccode`^^^^14a1=`^^^^14a1 +\catcode`^^^^14a5=11 \lccode`^^^^14a5=`^^^^14a5 + \uccode`^^^^14a5=`^^^^14a5 +\catcode`^^^^14a6=11 \lccode`^^^^14a6=`^^^^14a6 + \uccode`^^^^14a6=`^^^^14a6 +\catcode`^^^^14a7=11 \lccode`^^^^14a7=`^^^^14a7 + \uccode`^^^^14a7=`^^^^14a7 +\catcode`^^^^14a8=11 \lccode`^^^^14a8=`^^^^14a8 + \uccode`^^^^14a8=`^^^^14a8 +\catcode`^^^^14aa=11 \lccode`^^^^14aa=`^^^^14aa + \uccode`^^^^14aa=`^^^^14aa +\catcode`^^^^14ab=11 \lccode`^^^^14ab=`^^^^14ab + \uccode`^^^^14ab=`^^^^14ab +\catcode`^^^^14bb=11 \lccode`^^^^14bb=`^^^^14bb + \uccode`^^^^14bb=`^^^^14bb +\catcode`^^^^14c2=11 \lccode`^^^^14c2=`^^^^14c2 + \uccode`^^^^14c2=`^^^^14c2 +\catcode`^^^^14c3=11 \lccode`^^^^14c3=`^^^^14c3 + \uccode`^^^^14c3=`^^^^14c3 +\catcode`^^^^14c4=11 \lccode`^^^^14c4=`^^^^14c4 + \uccode`^^^^14c4=`^^^^14c4 +\catcode`^^^^14c5=11 \lccode`^^^^14c5=`^^^^14c5 + \uccode`^^^^14c5=`^^^^14c5 +\catcode`^^^^14c7=11 \lccode`^^^^14c7=`^^^^14c7 + \uccode`^^^^14c7=`^^^^14c7 +\catcode`^^^^14c8=11 \lccode`^^^^14c8=`^^^^14c8 + \uccode`^^^^14c8=`^^^^14c8 +\catcode`^^^^14d0=11 \lccode`^^^^14d0=`^^^^14d0 + \uccode`^^^^14d0=`^^^^14d0 +\catcode`^^^^14ef=11 \lccode`^^^^14ef=`^^^^14ef + \uccode`^^^^14ef=`^^^^14ef +\catcode`^^^^14f0=11 \lccode`^^^^14f0=`^^^^14f0 + \uccode`^^^^14f0=`^^^^14f0 +\catcode`^^^^14f1=11 \lccode`^^^^14f1=`^^^^14f1 + \uccode`^^^^14f1=`^^^^14f1 +\catcode`^^^^14f2=11 \lccode`^^^^14f2=`^^^^14f2 + \uccode`^^^^14f2=`^^^^14f2 +\catcode`^^^^14f4=11 \lccode`^^^^14f4=`^^^^14f4 + \uccode`^^^^14f4=`^^^^14f4 +\catcode`^^^^14f5=11 \lccode`^^^^14f5=`^^^^14f5 + \uccode`^^^^14f5=`^^^^14f5 +\catcode`^^^^1505=11 \lccode`^^^^1505=`^^^^1505 + \uccode`^^^^1505=`^^^^1505 +\catcode`^^^^14d5=11 \lccode`^^^^14d5=`^^^^14d5 + \uccode`^^^^14d5=`^^^^14d5 +\catcode`^^^^14d6=11 \lccode`^^^^14d6=`^^^^14d6 + \uccode`^^^^14d6=`^^^^14d6 +\catcode`^^^^14d7=11 \lccode`^^^^14d7=`^^^^14d7 + \uccode`^^^^14d7=`^^^^14d7 +\catcode`^^^^14d8=11 \lccode`^^^^14d8=`^^^^14d8 + \uccode`^^^^14d8=`^^^^14d8 +\catcode`^^^^14da=11 \lccode`^^^^14da=`^^^^14da + \uccode`^^^^14da=`^^^^14da +\catcode`^^^^14db=11 \lccode`^^^^14db=`^^^^14db + \uccode`^^^^14db=`^^^^14db +\catcode`^^^^14ea=11 \lccode`^^^^14ea=`^^^^14ea + \uccode`^^^^14ea=`^^^^14ea +\catcode`^^^^1528=11 \lccode`^^^^1528=`^^^^1528 + \uccode`^^^^1528=`^^^^1528 +\catcode`^^^^1529=11 \lccode`^^^^1529=`^^^^1529 + \uccode`^^^^1529=`^^^^1529 +\catcode`^^^^152a=11 \lccode`^^^^152a=`^^^^152a + \uccode`^^^^152a=`^^^^152a +\catcode`^^^^152b=11 \lccode`^^^^152b=`^^^^152b + \uccode`^^^^152b=`^^^^152b +\catcode`^^^^152d=11 \lccode`^^^^152d=`^^^^152d + \uccode`^^^^152d=`^^^^152d +\catcode`^^^^152e=11 \lccode`^^^^152e=`^^^^152e + \uccode`^^^^152e=`^^^^152e +\catcode`^^^^153e=11 \lccode`^^^^153e=`^^^^153e + \uccode`^^^^153e=`^^^^153e +\catcode`^^^^1555=11 \lccode`^^^^1555=`^^^^1555 + \uccode`^^^^1555=`^^^^1555 +\catcode`^^^^1556=11 \lccode`^^^^1556=`^^^^1556 + \uccode`^^^^1556=`^^^^1556 +\catcode`^^^^1557=11 \lccode`^^^^1557=`^^^^1557 + \uccode`^^^^1557=`^^^^1557 +\catcode`^^^^1558=11 \lccode`^^^^1558=`^^^^1558 + \uccode`^^^^1558=`^^^^1558 +\catcode`^^^^1559=11 \lccode`^^^^1559=`^^^^1559 + \uccode`^^^^1559=`^^^^1559 +\catcode`^^^^155a=11 \lccode`^^^^155a=`^^^^155a + \uccode`^^^^155a=`^^^^155a +\catcode`^^^^155d=11 \lccode`^^^^155d=`^^^^155d + \uccode`^^^^155d=`^^^^155d +\catcode`^^^^1546=11 \lccode`^^^^1546=`^^^^1546 + \uccode`^^^^1546=`^^^^1546 +\catcode`^^^^1547=11 \lccode`^^^^1547=`^^^^1547 + \uccode`^^^^1547=`^^^^1547 +\catcode`^^^^1548=11 \lccode`^^^^1548=`^^^^1548 + \uccode`^^^^1548=`^^^^1548 +\catcode`^^^^1549=11 \lccode`^^^^1549=`^^^^1549 + \uccode`^^^^1549=`^^^^1549 +\catcode`^^^^154b=11 \lccode`^^^^154b=`^^^^154b + \uccode`^^^^154b=`^^^^154b +\catcode`^^^^154c=11 \lccode`^^^^154c=`^^^^154c + \uccode`^^^^154c=`^^^^154c +\catcode`^^^^1550=11 \lccode`^^^^1550=`^^^^1550 + \uccode`^^^^1550=`^^^^1550 +\catcode`^^^^157f=11 \lccode`^^^^157f=`^^^^157f + \uccode`^^^^157f=`^^^^157f +\catcode`^^^^1580=11 \lccode`^^^^1580=`^^^^1580 + \uccode`^^^^1580=`^^^^1580 +\catcode`^^^^1581=11 \lccode`^^^^1581=`^^^^1581 + \uccode`^^^^1581=`^^^^1581 +\catcode`^^^^1582=11 \lccode`^^^^1582=`^^^^1582 + \uccode`^^^^1582=`^^^^1582 +\catcode`^^^^1583=11 \lccode`^^^^1583=`^^^^1583 + \uccode`^^^^1583=`^^^^1583 +\catcode`^^^^1584=11 \lccode`^^^^1584=`^^^^1584 + \uccode`^^^^1584=`^^^^1584 +\catcode`^^^^1585=11 \lccode`^^^^1585=`^^^^1585 + \uccode`^^^^1585=`^^^^1585 +\catcode`^^^^158f=11 \lccode`^^^^158f=`^^^^158f + \uccode`^^^^158f=`^^^^158f +\catcode`^^^^1590=11 \lccode`^^^^1590=`^^^^1590 + \uccode`^^^^1590=`^^^^1590 +\catcode`^^^^1592=11 \lccode`^^^^1592=`^^^^1592 + \uccode`^^^^1592=`^^^^1592 +\catcode`^^^^1591=11 \lccode`^^^^1591=`^^^^1591 + \uccode`^^^^1591=`^^^^1591 +\catcode`^^^^1593=11 \lccode`^^^^1593=`^^^^1593 + \uccode`^^^^1593=`^^^^1593 +\catcode`^^^^1594=11 \lccode`^^^^1594=`^^^^1594 + \uccode`^^^^1594=`^^^^1594 +\catcode`^^^^1595=11 \lccode`^^^^1595=`^^^^1595 + \uccode`^^^^1595=`^^^^1595 +\catcode`^^^^1671=11 \lccode`^^^^1671=`^^^^1671 + \uccode`^^^^1671=`^^^^1671 +\catcode`^^^^1672=11 \lccode`^^^^1672=`^^^^1672 + \uccode`^^^^1672=`^^^^1672 +\catcode`^^^^1673=11 \lccode`^^^^1673=`^^^^1673 + \uccode`^^^^1673=`^^^^1673 +\catcode`^^^^1674=11 \lccode`^^^^1674=`^^^^1674 + \uccode`^^^^1674=`^^^^1674 +\catcode`^^^^1675=11 \lccode`^^^^1675=`^^^^1675 + \uccode`^^^^1675=`^^^^1675 +\catcode`^^^^1676=11 \lccode`^^^^1676=`^^^^1676 + \uccode`^^^^1676=`^^^^1676 +\catcode`^^^^1596=11 \lccode`^^^^1596=`^^^^1596 + \uccode`^^^^1596=`^^^^1596 +\catcode`^^^^15a0=11 \lccode`^^^^15a0=`^^^^15a0 + \uccode`^^^^15a0=`^^^^15a0 +\catcode`^^^^15a1=11 \lccode`^^^^15a1=`^^^^15a1 + \uccode`^^^^15a1=`^^^^15a1 +\catcode`^^^^15a2=11 \lccode`^^^^15a2=`^^^^15a2 + \uccode`^^^^15a2=`^^^^15a2 +\catcode`^^^^15a3=11 \lccode`^^^^15a3=`^^^^15a3 + \uccode`^^^^15a3=`^^^^15a3 +\catcode`^^^^15a4=11 \lccode`^^^^15a4=`^^^^15a4 + \uccode`^^^^15a4=`^^^^15a4 +\catcode`^^^^15a5=11 \lccode`^^^^15a5=`^^^^15a5 + \uccode`^^^^15a5=`^^^^15a5 +\catcode`^^^^15a6=11 \lccode`^^^^15a6=`^^^^15a6 + \uccode`^^^^15a6=`^^^^15a6 +\catcode`^^^^157c=11 \lccode`^^^^157c=`^^^^157c + \uccode`^^^^157c=`^^^^157c +% \end{macrocode} +% Before we present the hyphenation patterns, we must explain the +% hyphenation rules of the language. The rules are very easy: a word +% can be broken at any point and the only exception is that we should never +% break a word before or after a final consonant. Let us now see how we can +% code this rule. Given a letter \texttt{\textit{c}}, the pattern +% \texttt{\textit{c}1} means that it is possible to break a word just after +% this letter. So, we need such a pattern for each syllable. +% \begin{macrocode} +\patterns{% +^^^^14031 ^^^^14041 ^^^^14051 ^^^^14061 ^^^^140a1 ^^^^140b1 ^^^^14311 +^^^^14321 ^^^^14331 ^^^^14341 ^^^^14381 ^^^^14391 ^^^^14491 ^^^^144e1 +^^^^144f1 ^^^^14501 ^^^^14511 ^^^^14551 ^^^^14561 ^^^^14661 ^^^^146d1 +^^^^146e1 ^^^^146f1 ^^^^14701 ^^^^14721 ^^^^14731 ^^^^14831 ^^^^148b1 +^^^^148c1 ^^^^148d1 ^^^^148e1 ^^^^14901 ^^^^14911 ^^^^14a11 ^^^^14a51 +^^^^14a61 ^^^^14a71 ^^^^14a81 ^^^^14aa1 ^^^^14ab1 ^^^^14bb1 ^^^^14c21 +^^^^14c31 ^^^^14c41 ^^^^14c51 ^^^^14c71 ^^^^14c81 ^^^^14d01 ^^^^14ef1 +^^^^14f01 ^^^^14f11 ^^^^14f21 ^^^^14f41 ^^^^14f51 ^^^^15051 ^^^^14d51 +^^^^14d61 ^^^^14d71 ^^^^14d81 ^^^^14da1 ^^^^14db1 ^^^^14ea1 ^^^^15281 +^^^^15291 ^^^^152a1 ^^^^152b1 ^^^^152d1 ^^^^152e1 ^^^^153e1 ^^^^15551 +^^^^15561 ^^^^15571 ^^^^15581 ^^^^15591 ^^^^155a1 ^^^^155d1 ^^^^15461 +^^^^15471 ^^^^15481 ^^^^15491 ^^^^154b1 ^^^^154c1 ^^^^15501 ^^^^157f1 +^^^^15801 ^^^^15811 ^^^^15821 ^^^^15831 ^^^^15841 ^^^^15851 ^^^^158f1 +^^^^15901 ^^^^15911 ^^^^15921 ^^^^15931 ^^^^15941 ^^^^15951 ^^^^16711 +^^^^16721 ^^^^16731 ^^^^16741 ^^^^16751 ^^^^16761 ^^^^15961 ^^^^15a01 +^^^^15a11 ^^^^15a21 ^^^^15a31 ^^^^15a41 ^^^^15a51 ^^^^15a61 ^^^^157c1 +% +% \end{macrocode} +% Now, we are going to code the exception. Given a letter \texttt{\textit{c}}, +% the pattern \texttt{2\textit{c}.} prohibits hyphenation before the letter +% \texttt{\textit{c}}. So, we need such a pattern for each final consonant. +% \begin{macrocode} +2^^^^1449. 2^^^^1466. 2^^^^1483. 2^^^^14a1. 2^^^^14bb. 2^^^^14d0. +2^^^^1505. 2^^^^14ea. 2^^^^153e. 2^^^^155d. 2^^^^1550. 2^^^^1585. +2^^^^1595. 2^^^^1596. 2^^^^15a6. 2^^^^157c.} +% +% \end{macrocode} +% The hyphenation pattern can be used only if we remake the $\Lambda$ +% format. To do this we append the following line +% \begin{center} +% \texttt{inuit inuit.tex} +% \end{center} +% to file \texttt{language.dat}, which can should be in the +% \texttt{omega/lambda/base} directory. Note that you should not use +% the file that resides in the directory \texttt{tex/generic/config}, as the +% the later is used by \TeX\ only. +% +% \section{Translation Processes} +% +% In this section we present the various $\Omega$TPs that we have to design +% to facilitate input for Inuktitut texts. We first describe the $\Omega$TPs +% that transform Inuktitut text written in using the Latin transcription. Then +% we descibe the $\Omega$TP that is used to transform text written in the +% Inuktitut ASCII presented above to Unicode. +% +% First of all, we need to specify the length (in bytes) of each input and +% output character, respectively. +% \begin{macrocode} +%<*Ninuit2uni|Qinuit2uni> +input : 1; +output: 2; +% \end{macrocode} +% The input stream we are dealing is not very complex, so we start immediately +% the \texttt{expressions} section of the $\Omega$TPs. First, we have to +% handle the voweles of the language and the letter ``h'': +% +% \begin{macrocode} +expressions: +%`i' `i' => @"1404; +`i' => @"1403; +%`u' `u' => @"1406; +`u' => @"1405; +%`a' `a' => @"140B; +`a' => @"140A; +`h' => @"157C; +% \end{macrocode} +% Now, we will discribe how we will handle a consonant and the various +% syllables that start with with this consonant. If this consonant is the +% last character of the input stream, we simply push to the output stream +% the Unicode charcater that corresponds to this letter. If the consonant +% is not followed by one of the vowels, then we push back to the input stream +% the character that immediately follows the consonant and to the output +% stream the code point of the consonant. Finally, depending on the vowel +% (or vowels) that follow the consonant, we push to the output stream the +% Unicode character that corresponds to this syllable. We start with the +% consonant ``p'': +% \begin{macrocode} +`p' end: => @"1449; +`p' ^(`i'|`a'|`u') => @"1449 <= \2; +%`p' `i' `i' => @"1432; +`p' `i' => @"1431; +%`p' `a' `a' => @"1439; +`p' `a' => @"1438; +%`p' `u' `u' => @"1434; +`p' `u' => @"1433; +% \end{macrocode} +% Since the all other cases are coded in a similar way, we will not +% comment the rest of the code. +% \begin{macrocode} +`t' end: => @"1466; +`t' ^(`i'|`a'|`u') => @"1466 <= \2; +%`t' `i' `i' => @"144F; +`t' `i' => @"144E; +%`t' `a' `a' => @"1456; +`t' `a' => @"1455; +%`t' `u' `u' => @"1451; +`t' `u' => @"1450; +% +`k' end: => @"1483; +`k' ^(`i'|`a'|`u') => @"1483 <= \2; +%`k' `i' `i' => @"146E; +`k' `i' => @"146D; +%`k' `a' `a' => @"1473; +`k' `a' => @"1472; +%`k' `u' `u' => @"1470; +`k' `u' => @"146F; +% +`n' `n' `g' end: => @"1596; +`n' `n' `g' ^(`i'|`a'|`u') => @"1596 <= \2; +%`n' `n' `g' `i' `i' => @"1672; +`n' `n' `g' `i' => @"1671; +%`n' `n' `g' `u' `u' => @"1674; +`n' `n' `g' `u' => @"1673; +%`n' `n' `g' `a' `a' => @"1676; +`n' `n' `g' `a' => @"1675; +% +`n' `g' end: => @"1595; +`n' `g' ^(`i'|`a'|`u') => @"1595 <= \2; +%`n' `g' `i' `i' => @"1590; +`n' `g' `i' => @"158F; +%`n' `g' `u' `u' => @"1592; +`n' `g' `u' => @"1591; +%`n' `g' `a' `a' => @"1594; +`n' `g' `a' => @"1593; +% +`g' end: => @"14A1; +`g' ^(`i'|`a'|`u') => @"14A1 <= \2; +%`g' `i' `i' => @"148C; +`g' `i' => @"148B; +%`g' `a' `a' => @"1491; +`g' `a' => @"1490; +%`g' `u' `u' => @"148E; +`g' `u' => @"148D; +% +`m' end: => @"14BB; +`m' ^(`i'|`a'|`u') => @"14BB <= \2; +%`m' `i' `i' => @"14A6; +`m' `i' => @"14A5; +%`m' `a' `a' => @"14AB; +`m' `a' => @"14AA; +%`m' `u' `u' => @"14A8; +`m' `u' => @"14A7; +% +`n' end: => @"14D0; +`n' ^(`i'|`a'|`u') => @"14D0 <= \2; +%`n' `i' `i' => @"14C3; +`n' `i' => @"14C2; +%`n' `a' `a' => @"14C8; +`n' `a' => @"14C7; +%`n' `u' `u' => @"14C5; +`n' `u' => @"14C4; +% +`l' end: => @"14EA; +`l' ^(`i'|`a'|`u'|`h') => @"14EA <= \2; +%`l' `i' `i' => @"14D6; +`l' `i' => @"14D5; +%`l' `a' `a' => @"14DB; +`l' `a' => @"14DA; +%`l' `u' `u' => @"14D8; +`l' `u' => @"14D7; +% +`s' end: => @"1505; +`s' ^(`i'|`a'|`u') => @"1505 <= \2; +%`s' `i' `i' => @"14F0; +`s' `i' => @"14EF; +%`s' `a' `a' => @"14F5; +`s' `a' => @"14F4; +%`s' `u' `u' => @"14F2; +`s' `u' => @"14F1; +% +`j' end: => @"153E; +`j' ^(`i'|`a'|`u') => @"153E <= \2; +%`j' `i' `i' => @"1529; +`j' `i' => @"1528; +%`j' `u' `u' => @"152B; +`j' `u' => @"152A; +%`j' `a' `a' => @"1529; +`j' `a' => @"152D; +% +`r' end: => @"1550; +`r' ^(`i'|`a'|`u') => @"1550 <= \2; +%`r' `i' `i' => @"1547; +`r' `i' => @"1546; +%`r' `u' `u' => @"1549; +`r' `u' => @"1548; +%`r' `a' `a' => @"154C; +`r' `a' => @"154B; +% +`v' end: => @"155D; +`v' ^(`i'|`a'|`u') => @"155D <= \2; +%`v' `i' `i' => @"1556; +`v' `i' => @"1555; +%`v' `u' `u' => @"1558; +`v' `u' => @"1559; +%`v' `a' `a' => @"155A; +`v' `a' => @"1559; +% +`q' end: => @"1585; +`q' ^(`i'|`a'|`u') => @"1585 <= \2; +%`q' `i' `i' => @"1580; +`q' `i' => @"157F; +%`q' `u' `u' => @"1582; +`q' `u' => @"1581; +%`q' `a' `a' => @"1584; +`q' `a' => @"1583; +% \end{macrocode} +% The consonant we dealing with in the last case is usually writen as \l, +% however, the Unicode standard uses the name ``lh.'' Since we want to be +% Unicode compliant, we opt to use this name. Note that in the very last +% case, we simply push to the output stream unprocessed any other character. +% This is quite useful as one may want to have punctuation marks or numbers +% in the text. +% \begin{macrocode} +`l' `h' end: => @"15A6; +`l' `h' ^(`i'|`a'|`u') => @"15A6 <= \2; +%`l' `h' `i' `i' => @"15A1; +`l' `h' `i' => @"15A0; +%`l' `h' `u' `u' => @"15A3; +`l' `h' `u' => @"15A2; +%`l' `h' `a' `a' => @"15A5; +`l' `h' `a' => @"15A4; +. => \1; +% +% \end{macrocode} +% Now, we present the code of the $\Omega$TP that transforms an input stream +% encoded in the 8-bit Inuit ASCII to Unicode. +% \begin{macrocode} +%<*inuitscii> +input: 1; +output: 2; +% \end{macrocode} +% Since, we have quite a specific code page, we use an array to store the +% Unicode code points of the upper-half of the code page. +% \begin{macrocode} +tables: +tabInuitSCII[@"81] = { +@"1403, @"1404, @"1405, @"1406, @"140A, @"2026, @"140B, @"1431, +@"1432, @"1433, @"1434, @"1438, @"1439, @"1449, @"144E, @"144F, +@"1450, @"2018, @"2019, @"201C, @"201D, @"2022, @"2013, @"2014, +@"1451, @"2122, @"1455, @"1456, @"1466, @"146D, @"146E, @"146F, +@"00A0, @"1470, @"1472, @"1473, @"1483, @"148B, @"148C, @"148D, +@"148E, @"00A9, @"1490, @"1491, @"14A1, @"14A5, @"00AE, @"14A6, +@"FFFD, @"14A7, @"14A8, @"14AA, @"14AB, @"14BB, @"FFFD, @"14C2, +@"14C3, @"14C4, @"14C5, @"14C7, @"14C8, @"14D0, @"14EF, @"14F0, +@"14F1, @"14F2, @"14F4, @"14F5, @"1505, @"14D5, @"14D6, @"14D7, +@"14D8, @"14DA, @"14DB, @"14EA, @"1528, @"1529, @"152A, @"152B, +@"152D, @"152E, @"143E, @"1555, @"1556, @"1557, @"1558, @"1559, +@"155A, @"155D, @"1546, @"1547, @"1548, @"1549, @"154B, @"154C, +@"1550, @"157F, @"1580, @"1581, @"1582, @"1583, @"1584, @"1585, +@"158F, @"1590, @"1591, @"1592, @"1593, @"1594, @"1595, @"1671, +@"1672, @"1673, @"1674, @"1675, @"1676, @"1596, @"15A0, @"15A1, +@"15A2, @"15A3, @"15A4, @"15A5, @"15A6, @"157C, @"FFFD, @"FFFD}; +% \end{macrocode} +% Now we proceed with the expressions. First, we define some ligatures, though +% these should be part of the virtual font. On the other hand, these ligatures +% are proper Unicode characters, so go figure! +% \begin{macrocode} +expressions: +`f' `f' => @"FB00; +`f' `i' => @"FB01; +`f' `l' => @"FB02; +`f' `f' `i' => @"FB03; +`f' `f' `l' => @"FB04; +% \end{macrocode} +% And now we show how we map the ISCII characters to Unicode characters: +% if the character has ordinal number less than or equal to 127, then +% we just push to the output stream the character as it is. If its ordinal +% number is greater than 127, we consult the array and return its entry +% at the index which determined by the ordinal number minus 0x80 (128). +% Any other character is mapped to the Unicode \textit{replacement character}, +% which is used to replace an incoming character whose value is unknown or +% unpresentable in Unicode. +% \begin{macrocode} +@"00-@"7F => \1; +@"80-@"FF => #(tabInuitSCII[\1-@"80]); +. => @"FFFD; +% +% \end{macrocode} +% +% \section{The Virtual Fonts} +% +% In this section we present only the general structure of the $\Omega$ +% virtual property list files that we had to create to allow users to enter +% directly Unicode text. The reader may wonder why we do not present the +% complete code of all four $\Omega$VP file? The answer simply is that each +% file is about 2,000 lines long with repeated information. In addition, the +% package does not inlcude these files, as the \texttt{ovp2ovf} program that +% is included with most \TeX\ distributions fails to process these +% files and so they are practically useless\footnote{The author used +% \texttt{ovp2ovf} version 1.5 to process the files, while most \TeX\ +% installations provide version 2.0, which is buggy.} Users who want to +% experiment with the files can obtain them directly from the author of the +% package. +% +% At the beggining of each $\Omega$VP file, we have the identification part +% and the assigment of the font dimensions. +% \begin{macrocode} +%<*OVP> +(FAMILY OINUIT) +(CODINGSCHEME Unicode Inuit) +(DESIGNSIZE R 10.0) +(COMMENT DESIGNSIZE IS IN POINTS) +(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) +(FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.5) + (STRETCH R 0.3) + (SHRINK R 0.1) + (XHEIGHT R 0.583) + (QUAD R 1.0) + ) +% \end{macrocode} +% We wanted each virtual font to inlcude the ASCII characters and the +% characters used in Inuktitut. That is why we have two \texttt{MAPFONT} +% definitions (more complex fonts, may need more \texttt{MAFONT} definitions). +% Note that we use the Computer Modern sans serif font as this matches better +% with the Nunacom font. +% \begin{macrocode} +(MAPFONT D 0 + (FONTNAME Inuit) + (FONTDSIZE R 10.0) + ) +(MAPFONT D 1 + (FONTNAME cmss10) + (FONTDSIZE R 10.0) + ) +% \end{macrocode} +% The ligature table contains the ``ordinary'' kerning information found in all% Computer Modern fonts plus some that deal with the Inuktitut charcaters. +% It is interesting to note that we cannot have ligature definitions, as +% these instructions cause \texttt{ovp2ovf} to crash! +% \begin{macrocode} +(LIGTABLE + (LABEL H 0066) + (KRN H 0027 R 0.069445) + (KRN H 003F R 0.069445) + (KRN H 0021 R 0.069445) + (KRN H 0029 R 0.069445) + (KRN H 005D R 0.069445) + (STOP) + ) +% \end{macrocode} +% Although each character entry is quite standard, we present just one so +% that can see what has to be done. +% \begin{macrocode} +(CHARACTER H 0021 + (CHARWD R 0.256) + (CHARHT R 0.689) + (CHARDP R 0.004) + (MAP + (SELECTFONT D 0) + (SETCHAR O 41) + ) + ) +% +% \end{macrocode} +% +% \section*{Acknowledgments} +% +% I would like to thank Andrea Tomkins for giving me the right to redistribute +% the Nunacom font. I also thank Luis-Jacques Dorais, who explained to me the +% hyphenation rules of the Inuktitut language, and Dimitrios Filippou, who +% deciphered to me the secrets of transforming hyphenation rules into +% hyphenation patterns suitable for use with \TeX/$\Omega$. +% diff --git a/language/inuktitut/oinuit/lambda/oinuit.ins b/language/inuktitut/oinuit/lambda/oinuit.ins new file mode 100644 index 0000000000..9ead2e8bd4 --- /dev/null +++ b/language/inuktitut/oinuit/lambda/oinuit.ins @@ -0,0 +1,65 @@ +%% Copyright 2002 Apostolos Syropoulos +%% +%% This file is part of the `grtimes' package. +%% You are not allowed to modify its contents. +%% +\def\filedate{2002/07/21} +\def\batchfile{oinuit.ins} +\input docstrip.tex + +{\ifx\generate\undefined +\Msg{**********************************************} +\Msg{*} +\Msg{* This installation requires docstrip} +\Msg{* version 2.3c or later.} +\Msg{*} +\Msg{* An older version of docstrip has been input} +\Msg{*} +\Msg{**********************************************} +\errhelp{Move or rename old docstrip.tex.} +\errmessage{Old docstrip in input path} +\batchmode +\csname @@end\endcsname +\fi} + +\preamble + + (c) copyright 2002 Apostolos Syropoulos + This program can be redistributed and/or modified under the terms + of the LaTeX Project Public License Distributed from CTAN + archives in directory macros/latex/base/lppl.txt; either + version 1 of the License, or any later version. + use or alter this file in any way. + + Please report errors or suggestions for improvement to + + Apostolos Syropoulos + 366, 28th October Str. + GR-671 00 Xanthi, GREECE + apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr + +\endpreamble + + +\keepsilent + +\generate{\generateFile{oinuit.sty}{f}{\from{oinuit.dtx}{oinuit}} + \generateFile{litenc.def}{f}{\from{oinuit.dtx}{LITenc}} + \generateFile{litcmr.fd}{f}{\from{oinuit.dtx}{LITcmr}} + \generateFile{inuit.tex}{f}{\from{oinuit.dtx}{Hyphenation}}} +\postamble +\endpostamble +\generate{\generateFile{Ninuit2uni.otp}{f}{\from{oinuit.dtx}{Ninuit2uni}} + \generateFile{Qinuit2uni.otp}{f}{\from{oinuit.dtx}{Qinuit2uni}} + \generateFile{inuitscii.otp}{f}{\from{oinuit.dtx}{inuitscii}}} +\Msg{********************************************************} +\Msg{To finish installation you have to create the directory } +\Msg{/omega/lambda/oinuit and copy there the .fd, the .end } +\Msg{and the .sty files. The .otp files should be copied to } +\Msg{the directory omega/ocp/oinuit, which must be created. } +\Msg{Now, rehash your TeX installation , if it is required to} +\Msg{do this. Optionally, you can regenerate the Lambda } +\Msg{format. } +\Msg{ Happy Inuiktitut ``Omega''-ing!} +\Msg{********************************************************} +\endinput diff --git a/language/inuktitut/oinuit/ocp/Ninuit2uni.ocp b/language/inuktitut/oinuit/ocp/Ninuit2uni.ocp new file mode 100644 index 0000000000..d50fd72611 Binary files /dev/null and b/language/inuktitut/oinuit/ocp/Ninuit2uni.ocp differ diff --git a/language/inuktitut/oinuit/ocp/Qinuit2uni.ocp b/language/inuktitut/oinuit/ocp/Qinuit2uni.ocp new file mode 100644 index 0000000000..3cf41a7e0a Binary files /dev/null and b/language/inuktitut/oinuit/ocp/Qinuit2uni.ocp differ diff --git a/language/inuktitut/oinuit/ocp/inuitscii.ocp b/language/inuktitut/oinuit/ocp/inuitscii.ocp new file mode 100644 index 0000000000..28bbc828c8 Binary files /dev/null and b/language/inuktitut/oinuit/ocp/inuitscii.ocp differ diff --git a/language/inuktitut/oinuit/ofm/OInuit.ofm b/language/inuktitut/oinuit/ofm/OInuit.ofm new file mode 100644 index 0000000000..2150de2dc2 Binary files /dev/null and b/language/inuktitut/oinuit/ofm/OInuit.ofm differ diff --git a/language/inuktitut/oinuit/ofm/OInuitb.ofm b/language/inuktitut/oinuit/ofm/OInuitb.ofm new file mode 100644 index 0000000000..95f85d71c9 Binary files /dev/null and b/language/inuktitut/oinuit/ofm/OInuitb.ofm differ diff --git a/language/inuktitut/oinuit/ofm/OInuitbo.ofm b/language/inuktitut/oinuit/ofm/OInuitbo.ofm new file mode 100644 index 0000000000..4b9de858f5 Binary files /dev/null and b/language/inuktitut/oinuit/ofm/OInuitbo.ofm differ diff --git a/language/inuktitut/oinuit/ofm/OInuito.ofm b/language/inuktitut/oinuit/ofm/OInuito.ofm new file mode 100644 index 0000000000..23cdda91a2 Binary files /dev/null and b/language/inuktitut/oinuit/ofm/OInuito.ofm differ diff --git a/language/inuktitut/oinuit/ovf/OInuit.ovf b/language/inuktitut/oinuit/ovf/OInuit.ovf new file mode 100644 index 0000000000..9374147d33 Binary files /dev/null and b/language/inuktitut/oinuit/ovf/OInuit.ovf differ diff --git a/language/inuktitut/oinuit/ovf/OInuitb.ovf b/language/inuktitut/oinuit/ovf/OInuitb.ovf new file mode 100644 index 0000000000..9e208c9db3 Binary files /dev/null and b/language/inuktitut/oinuit/ovf/OInuitb.ovf differ diff --git a/language/inuktitut/oinuit/ovf/OInuitbo.ovf b/language/inuktitut/oinuit/ovf/OInuitbo.ovf new file mode 100644 index 0000000000..d6efcd18e9 Binary files /dev/null and b/language/inuktitut/oinuit/ovf/OInuitbo.ovf differ diff --git a/language/inuktitut/oinuit/ovf/OInuito.ovf b/language/inuktitut/oinuit/ovf/OInuito.ovf new file mode 100644 index 0000000000..76516ccc5a Binary files /dev/null and b/language/inuktitut/oinuit/ovf/OInuito.ovf differ diff --git a/language/inuktitut/oinuit/tfm/Inuit.tfm b/language/inuktitut/oinuit/tfm/Inuit.tfm new file mode 100644 index 0000000000..f61bf0ce7f Binary files /dev/null and b/language/inuktitut/oinuit/tfm/Inuit.tfm differ diff --git a/language/inuktitut/oinuit/tfm/Inuitb.tfm b/language/inuktitut/oinuit/tfm/Inuitb.tfm new file mode 100644 index 0000000000..b824d0e41e Binary files /dev/null and b/language/inuktitut/oinuit/tfm/Inuitb.tfm differ diff --git a/language/inuktitut/oinuit/tfm/Inuitbo.tfm b/language/inuktitut/oinuit/tfm/Inuitbo.tfm new file mode 100644 index 0000000000..ace6bb0b90 Binary files /dev/null and b/language/inuktitut/oinuit/tfm/Inuitbo.tfm differ diff --git a/language/inuktitut/oinuit/tfm/Inuito.tfm b/language/inuktitut/oinuit/tfm/Inuito.tfm new file mode 100644 index 0000000000..bd9aa898c3 Binary files /dev/null and b/language/inuktitut/oinuit/tfm/Inuito.tfm differ diff --git a/language/inuktitut/oinuit/tfm/cmssbxo10.tfm b/language/inuktitut/oinuit/tfm/cmssbxo10.tfm new file mode 100644 index 0000000000..25eae8e556 Binary files /dev/null and b/language/inuktitut/oinuit/tfm/cmssbxo10.tfm differ diff --git a/language/inuktitut/oinuit/type1/Inuit.pfb b/language/inuktitut/oinuit/type1/Inuit.pfb new file mode 100644 index 0000000000..028de92201 Binary files /dev/null and b/language/inuktitut/oinuit/type1/Inuit.pfb differ diff --git a/language/inuktitut/oinuit/type1/Inuitb.pfb b/language/inuktitut/oinuit/type1/Inuitb.pfb new file mode 100644 index 0000000000..ee87ac573a Binary files /dev/null and b/language/inuktitut/oinuit/type1/Inuitb.pfb differ diff --git a/language/inuktitut/oinuit/type1/Inuitbo.pfb b/language/inuktitut/oinuit/type1/Inuitbo.pfb new file mode 100644 index 0000000000..a75aa2da6d Binary files /dev/null and b/language/inuktitut/oinuit/type1/Inuitbo.pfb differ diff --git a/language/inuktitut/oinuit/type1/Inuito.pfb b/language/inuktitut/oinuit/type1/Inuito.pfb new file mode 100644 index 0000000000..2b7aa699dd Binary files /dev/null and b/language/inuktitut/oinuit/type1/Inuito.pfb differ diff --git a/language/inuktitut/oinuit/type1/cmssbxo10.pfb b/language/inuktitut/oinuit/type1/cmssbxo10.pfb new file mode 100644 index 0000000000..c950b26a4b Binary files /dev/null and b/language/inuktitut/oinuit/type1/cmssbxo10.pfb differ -- cgit v1.2.3