languages-introduction.tex /size: 3610 b    last modification: 2021-10-28 13:50
1% language=us runpath=texruns:manuals/languages
2
3\startcomponent languages-introduction
4
5\environment languages-environment
6
7\startchapter[title=Introduction][color=darkgray]
8
9This document describes an important property of the \TEX\ typesetting system and
10\CONTEXT\ in particular: the ability to deal with different languages at the same
11time. With languages we refer to natural languages. So, we're not going to
12discuss the \TEX\ language itself, not \METAPOST, nor \LUA.
13
14The original application of \TEX\ was English that uses the Latin script. The
15fonts that came with \TEX\ were suitable for that usage. When lines became too
16long they could be hyphenated using so called hyphenation patterns. Due to the
17implementation for many years there was a close relationship between fonts and
18hyphenation. Although at some point many more languages and scripts were
19supported, it was only when the \UNICODE\ aware variants showed up that
20hyphenation and fonts were decoupled. This makes it much more easier to mix
21languages that use different scripts. Although Greek, Cyrillic, Arabic, Chinese,
22Japanese, Korean and other languages have been supported for a while using
23(sometimes dirty) tricks, we now have cleaner implementations.
24
25We can hyphenate words in all languages (and scripts) that have a need for it,
26that is, split it at the end of a line and add a symbol before and|/|or after the
27break. The way words are broken into parts is called hyphenation and so called
28patterns are used to achieve that goal. The way these patterns are constructed
29and applied was part of the research related to \TEX\ development. The method
30used is also applied in other programs and is probably one of the few popular
31ways to deal with hyphenation. There have been ideas about extensions that cover
32the demands of certain languages but so far nothing better has shown up. In the
33end \TEX\ does a pretty decent job and more advanced tricks don't necessarily
34lead to better results.
35
36Hyphenation is driven by a language number and that's about it. This means that
37one cannot claim that \TEX\ in its raw form supports languages, other than that
38it can hyphenate and use fonts that provide the glyphs. It's upto a macro package
39to wrap this into a mechanism that provides the user an interface. So, when we
40speak about language support, hyphenation is only one aspect. Labels, like the
41\type {figure} in {\em figure~1.2} need to adapt to the main document language.
42When dates are shown they can be language specific. Scientific units and math
43function names can also be subjected to translation. Registers and other lists
44have to be sorted according to specific rules. Spacing dan differ per language.
45
46In this manual we will cover some of functionality in \CONTEXT\ \MKIV\ that
47relates to languages (and scripts). This manual is a compliment to other manuals,
48articles and documentation. Here we mostly focus on the language aspects. Some of
49the content (or maybe most) might looks alien and complex to you. This is because
50one purpose of this manual is to provide a place to wrap up some aspects of
51\CONTEXT. If you're not interested in that, just stick to the more general
52manuals that also cover language aspects.
53
54\startnotabene
55    This document is still under construction. The functionality discussed here
56    will stay and more might show up. Of course there are errors, and they're all
57    mine. The text is not checked for spelling errors. Feel free to let me know
58    what should get added.
59\stopnotabene
60
61\startlines
62Hans Hagen
63PRAGMA ADE, Hasselt NL
642013 \emdash\ 2016
65\stoplines
66
67\stopchapter
68
69\stopcomponent
70