summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/hyph-utf8/hyphenation-distribution.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/hyph-utf8/hyphenation-distribution.tex')
-rw-r--r--Master/texmf-dist/doc/generic/hyph-utf8/hyphenation-distribution.tex319
1 files changed, 319 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/hyph-utf8/hyphenation-distribution.tex b/Master/texmf-dist/doc/generic/hyph-utf8/hyphenation-distribution.tex
new file mode 100644
index 00000000000..7a349e603eb
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/hyph-utf8/hyphenation-distribution.tex
@@ -0,0 +1,319 @@
+\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 <foo>}.
+
+\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<foo>} 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<foo>} 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 \ No newline at end of file