\setuplayout [backspace=2cm,width=middle] % \usetypescript[antykwa-poltawskiego] % \setupbodyfont[antykwa-poltawskiego,10pt] \usetypescript[antykwa-poltawskiego][ec] \setupbodyfont[antykwa-poltawskiego,10pt] \setuphead [section,subject] [style=\bfc] \setuphead [subsection,subsubject] [style=\bfb] \setuppagenumbering [location={footer}] \setuplayout [header=0pt,headerdistance=0pt,height=24cm] \setupwhitespace [medium] \def\TeXLive{\TeX\ Live} \def\MiKTeX{MiK\TeX} \def\W32TeX{W32\TeX} \def\pTeX{p\TeX} \starttext \section{\TeX\ distributions} \subsection{\TeXLive} In \TeXLive\ you can install different language collections \type{collection-lang}{\tt\sl }. \placefigure[force]{}{\externalfigure[img/texlive-collection-lang.png]} For example, the German collection \type{collection-langgerman} contains packages \type{hyphen-german} and \type{dehyph-exptl} which both contain hyphenation patterns (in addition to many other packages related to German language). The Greek collection \type{collection-langgreek} contains \type{hyphen-greek} and \type{hyphen-ancientgreek} among other packages. The package \type{dehyph-exptl} is maintained independently, while all packages \type{hyphen-}{\tt\sl} belong to \type{hyph-utf8}. Hyphenation packages may contain one or more patterns. For example \type{hyphen-norwegian} contains two directives for adding two hyphenation patterns: \starttyping execute AddHyphen \ name=bokmal synonyms=norwegian,norsk \ lefthyphenmin=2 \ righthyphenmin=2 \ file=loadhyph-nb.tex \ file_patterns=hyph-nb.pat.txt \ file_exceptions=hyph-nb.hyp.txt execute AddHyphen \ name=nynorsk \ lefthyphenmin=2 \ righthyphenmin=2 \ file=loadhyph-nn.tex \ file_patterns=hyph-nn.pat.txt \ file_exceptions=hyph-nn.hyp.txt \stoptyping The keywords {\bf name} and {\bf synonyms} are used as language name to access the patterns in \TeX, {\bf file} is used as pattern loader for 8-bit engines and \XeTeX, while {\bf file\_patterns} and {\bf file\_exceptions} are plain text files used by \LuaTeX. The information from \type{AddHyphen} directives end up in three different files: \type{language.dat} used by \LaTeX, \type{language.def} used by plain \eTeX\ and \type{language.dat.lua} used by \LuaTeX. All the three are placed in\crlf \type{ $TEXMFSYSVAR/tex/generic/config},\crlf for example to\crlf \type{ /usr/local/texlive/2011/texmf-var/tex/generic/config},\crlf while a static copy also exists in\crlf \type{ $TEXMFMAIN/tex/generic/config},\crlf but that one contains all languages and only makes sense if you have a complete checkout from SVN repository for example. \placefigure[force]{\type{language.dat}}{ \starttyping % from hyphen-norwegian: bokmal loadhyph-nb.tex =norwegian =norsk nynorsk loadhyph-nn.tex \stoptyping } \placefigure[force]{\type{language.def}}{ \starttyping % from hyphen-norwegian: \addlanguage{bokmal}{loadhyph-nb.tex}{}{2}{2} \addlanguage{norwegian}{loadhyph-nb.tex}{}{2}{2} \addlanguage{norsk}{loadhyph-nb.tex}{}{2}{2} \addlanguage{nynorsk}{loadhyph-nn.tex}{}{2}{2} \stoptyping } \placefigure[force]{\type{language.dat.lua} (the keyword \type{loader} is not used anywhere at the moment)}{ \starttyping -- from hyphen-norwegian: ['bokmal'] = { loader = 'loadhyph-nb.tex', lefthyphenmin = 2, righthyphenmin = 2, synonyms = { 'norwegian', 'norsk' }, patterns = 'hyph-nb.pat.txt', hyphenation = 'hyph-nb.hyp.txt', }, ['nynorsk'] = { loader = 'loadhyph-nn.tex', lefthyphenmin = 2, righthyphenmin = 2, synonyms = { }, patterns = 'hyph-nn.pat.txt', hyphenation = 'hyph-nn.hyp.txt', }, \stoptyping } The files \type{language.dat} and \type{language.def} are used both by 8-bit and native Unicode engines. On one hand this simplifies things, while on the other it makes very little sense to include sanskrit patterns in \pdfTeX\ -- the package doesn't load any patterns in that case any way. It might be that there will be multiple copies of \type{language.dat} for different engines in future. In addition to the three mentioned files, \TeXLive\ also provides two additional files for \pTeX: \startitemize[packed,joinedup] \item \type{$TEXMFDIST/tex/ptexgeneric/config/language.ptx} as an equivalent of \type{language.dat} which enables all languages that make sense in an 8-bit engine \item \type{$TEXMFDIST/tex/ptex/config/language.def} which enables just most frequently used languages \stopitemize The contents are almost the same as in the generated \type{language.dat} and \type{language.def}, except that these two files are not generated and might enable a different set of languages, independent of installed language collections. When \pTeX\ was first included into \TeXLive\ it was loading its own files with patterns, so it needed its own \type{language.ptx}. Nowadays this restriction is gone and one could replace both static files with the generated ones if needed. TODO: explain where are the sources \subsection{\MiKTeX} In \MiKTeX\ application {\bf MiKTeX Options} which you can run from Start menu ({\em Maintenance} $\rightarrow$ {\em Settings} or {\em Maintenance (Admin)} $\rightarrow$ {\em Settings (Admin)\/}) or from command line (\type{mo.exe} or \type{mo_admin.exe}) you can select which languages you want to include into \TeX\ formats. \placefigure[force]{user interface to select the desired languages}{\externalfigure[img/MiKTeX-languages.png]}%[width=7cm] Based on that selection \MiKTeX\ creates three files \type{language.dat}, \type{language.def} and \type{language.dat.lua} in directory \starttyping C:\ProgramData\MiKTeX\2.9\tex\generic\config \stoptyping The contents of those files are the same as described in \TeXLive\ section, but the needed information about names of languages and required files comes from \starttyping C:\Program Files\MiKTeX 2.9\MiKTeX\config\languages.ini \stoptyping instead of special \type{hyphen-}{\tt\sl} packages. (Exact location might depend on where you install \MiKTeX\ and whether you install it for all users or just for yourself. It may also depend on Windows version. The information above holds for \MiKTeX\ 2.9 on Windows 7 with system-wide installation.) \placefigure[force]{\type{languages.ini}}{ \starttyping [bokmal] loader=loadhyph-nb.tex lefthyphenmin=2 righthyphenmin=2 synonyms=norwegian,norsk patterns=hyph-nb.pat.txt [nynorsk] loader=loadhyph-nn.tex lefthyphenmin=2 righthyphenmin=2 patterns=hyph-nn.pat.txt \stoptyping } \subsection{\W32TeX} \page List of languages in \TeXLive\ (has to be nicer): \starttyping collection-langafrican hyphen-ethiopic ethiopic,amharic,geez collection-langarabic hyphen-arabic arabic hyphen-farsi farsi,persian collection-langcjk hyphen-chinese pinyin collection-langcroatian hyphen-croatian croatian collection-langcyrillic hyphen-bulgarian bulgarian hyphen-russian russian hyphen-ukrainian ukrainian collection-langczechslovak hyphen-czech czech hyphen-slovak slovak collection-langdanish hyphen-danish danish collection-langdutch hyphen-dutch dutch collection-langenglish hyphen-english ukenglish,british,UKenglish usenglishmax collection-langfinnish hyphen-finnish finnish collection-langfrench hyphen-basque basque hyphen-french french,patois,francais collection-langgerman hyphen-german german ngerman swissgerman collection-langgreek hyphen-greek monogreek greek,polygreek hyphen-ancientgreek ancientgreek ibycus collection-langhungarian hyphen-hungarian hungarian collection-langindic hyphen-indic assamese bengali gujarati hindi kannada malayalam marathi oriya panjabi tamil telugu hyphen-sanskrit sanskrit collection-langitalian hyphen-italian italian collection-langlatin hyphen-latin latin collection-langlatvian hyphen-latvian latvian collection-langlithuanian hyphen-lithuanian lithuanian collection-langmongolian hyphen-mongolian mongolian mongolianlmc collection-langnorwegian hyphen-norwegian bokmal,norwegian,norsk nynorsk collection-langother hyphen-afrikaans afrikaans hyphen-armenian armenian hyphen-coptic coptic hyphen-esperanto esperanto hyphen-estonian estonian hyphen-icelandic icelandic hyphen-indonesian indonesian hyphen-interlingua interlingua hyphen-irish irish hyphen-kurmanji kurmanji hyphen-lao lao hyphen-romanian romanian hyphen-serbian serbian serbianc hyphen-slovenian slovenian,slovene hyphen-turkish turkish hyphen-uppersorbian uppersorbian hyphen-welsh welsh collection-langpolish hyphen-polish polish collection-langportuguese hyphen-portuguese portuguese,portuges collection-langspanish hyphen-spanish spanish,espanol hyphen-catalan catalan hyphen-galician galician collection-langswedish hyphen-swedish swedish collection-langturkmen hyphen-turkmen turkmen \stoptyping % \section{Special cases} % % \subsection{German} % % \subsection{Russian and Ukrainian} % % \section{How to add your own language?} \stoptext