diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-07-02 16:09:16 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2018-07-02 16:09:16 +0200 |
commit | 847821faaecf92833f1e1564e1ef9377758d4d45 (patch) | |
tree | 7a033668d823e231478c055daeb47c4582883059 /doc/context/sources/general/manuals/luatex/luatex-languages.tex | |
parent | 052a096e160508ddbbbfcbf1522eb8ddbfc3b1cd (diff) | |
download | context-847821faaecf92833f1e1564e1ef9377758d4d45.tar.gz |
2018-07-02 14:46:00
Diffstat (limited to 'doc/context/sources/general/manuals/luatex/luatex-languages.tex')
-rw-r--r-- | doc/context/sources/general/manuals/luatex/luatex-languages.tex | 64 |
1 files changed, 43 insertions, 21 deletions
diff --git a/doc/context/sources/general/manuals/luatex/luatex-languages.tex b/doc/context/sources/general/manuals/luatex/luatex-languages.tex index 10ccc335f..6ec75e375 100644 --- a/doc/context/sources/general/manuals/luatex/luatex-languages.tex +++ b/doc/context/sources/general/manuals/luatex/luatex-languages.tex @@ -6,6 +6,8 @@ \startchapter[reference=languages,title={Languages, characters, fonts and glyphs}] +\section {Introduction} + \topicindex {languages} \LUATEX's internal handling of the characters and glyphs that eventually become @@ -49,7 +51,7 @@ font information in the whole list (creating ligatures and adjusting kerning), and finally it adjusts all the subtype identifiers so that the records are \quote {glyph nodes} from now on. -\section[charsandglyphs]{Characters and glyphs} +\section[charsandglyphs]{Characters, glyphs and discretionaries} \topicindex {characters} \topicindex {glyphs} @@ -274,6 +276,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{one}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:2,title={\type{one\null two}}] \startcombination[4*1] {\SomeTest{0}{one\null two}} {\type{0}} @@ -282,6 +285,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{one\null two}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:3,title={\type{\null one\null two}}] \startcombination[4*1] {\SomeTest{0}{\null one\null two}} {\type{0}} @@ -290,6 +294,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{\null one\null two}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:4,title={\type{one\null two\null}}] \startcombination[4*1] {\SomeTest{0}{one\null two\null}} {\type{0}} @@ -298,6 +303,7 @@ min values to 1 and make sure that the words hyphenate at each character. {\SomeTest{3}{one\null two\null}} {\type{3}} \stopcombination \stopplacefigure + \startplacefigure[reference=hb:5,title={\type{\null one\null two\null}}] \startcombination[4*1] {\SomeTest{0}{\null one\null two\null}} {\type{0}} @@ -344,18 +350,6 @@ before--after \par before---after \par \stopbuffer -In \in {figure} [automatichyphenmode:1] \in {and} [automatichyphenmode:2] we show -what happens with three samples: - -Input A: \typebuffer[a] -Input B: \typebuffer[b] -Input C: \typebuffer[c] - -As with primitive companions of other single character commands, the \prm {-} -command has a more verbose primitive version in \lpr {explicitdiscretionary} -and the normally intercepted in the hyphenator character \type {-} (or whatever -is configured) is available as \lpr {automaticdiscretionary}. - \startbuffer[demo] \startcombination[nx=4,ny=3,location=top] {\framed[align=normal,strut=no,top=\vskip.5ex,bottom=\vskip.5ex]{\automatichyphenmode\zerocount \hsize6em \getbuffer[a]}} {A~0~6em} @@ -373,7 +367,7 @@ is configured) is available as \lpr {automaticdiscretionary}. \stopcombination \stopbuffer -\startplacefigure[reference=automatichyphenmode:1,title={The automatic modes \type {0} (default), \type {1} and \type {2}, with a \prm {hsize} +\startplacefigure[locationreference=automatichyphenmode:1,title={The automatic modes \type {0} (default), \type {1} and \type {2}, with a \prm {hsize} of 6em and 2pt (which triggers a linebreak).}] \dontcomplain \tt \getbuffer[demo] \stopplacefigure @@ -384,6 +378,18 @@ of 6em and 2pt (which triggers a linebreak).}] \dontcomplain \tt \getbuffer[demo] \stopplacefigure +In \in {figure} [automatichyphenmode:1] \in {and} [automatichyphenmode:2] we show +what happens with three samples: + +Input A: \typebuffer[a] +Input B: \typebuffer[b] +Input C: \typebuffer[c] + +As with primitive companions of other single character commands, the \prm {-} +command has a more verbose primitive version in \lpr {explicitdiscretionary} +and the normally intercepted in the hyphenator character \type {-} (or whatever +is configured) is available as \lpr {automaticdiscretionary}. + \section{The main control loop} \topicindex {main loop} @@ -911,10 +917,12 @@ ligatures are used. Of course kerning also complicates matters here. \section{The \type {lang} library} +\subsection {\type {lang.new} and \type {lang.id}} + \topicindex {languages+library} -This library provides the interface to \LUATEX's structure -representing a language, and the associated functions. +This library provides the interface to \LUATEX's structure representing a +language, and the associated functions. \startfunctioncall <language> l = lang.new() @@ -934,11 +942,17 @@ the internal language with that id number. The number returned is the internal \prm {language} id number this object refers to. +\subsection {\type {lang.hyphenation}} + +You can hyphenate a string directly with: + \startfunctioncall <string> n = lang.hyphenation(<language> l) lang.hyphenation(<language> l, <string> n) \stopfunctioncall +\subsection {\type {lang.clear_hyphenation} and \type {lang.clean}} + This either returns the current hyphenation exceptions for this language, or adds new ones. The syntax of the string is explained in~\in {section} [patternsexceptions]. @@ -959,6 +973,8 @@ syntax of the argument string is explained in \in {section} [patternsexceptions] This function is useful if you want to do something else based on the words in a dictionary file, like spell|-|checking. +\subsection {\type {lang.patterns} and \type {lang.clear_patterns}} + \startfunctioncall <string> n = lang.patterns(<language> l) lang.patterns(<language> l, <string> n) @@ -974,6 +990,8 @@ lang.clear_patterns(<language> l) This can be used to clear the pattern dictionary for a language. +\subsection {\type {lang.[pre|post]hyphenchar}} + \startfunctioncall <number> n = lang.prehyphenchar(<language> l) lang.prehyphenchar(<language> l, <number> n) @@ -998,21 +1016,25 @@ These gets or set the \quote {pre|-|break} and \quote {post|-|break} hyphen characters for explicit hyphenation in this language. Both are initially decimal~0 (indicating emptiness). -\startfunctioncall -<boolean> success = lang.hyphenate(<node> head) -<boolean> success = lang.hyphenate(<node> head, <node> tail) -\stopfunctioncall +\subsection {\type {lang.hyphenate}} -This call inserts hyphenation points (discretionary nodes) in a node list. If +The next call inserts hyphenation points (discretionary nodes) in a node list. If \type {tail} is given as argument, processing stops on that node. Currently, \type {success} is always true if \type {head} (and \type {tail}, if specified) are proper nodes, regardless of possible other errors. +\startfunctioncall +<boolean> success = lang.hyphenate(<node> head) +<boolean> success = lang.hyphenate(<node> head, <node> tail) +\stopfunctioncall + Hyphenation works only on \quote {characters}, a special subtype of all the glyph nodes with the node subtype having the value \type {1}. Glyph modes with different subtypes are not processed. See \in {section} [charsandglyphs] for more details. +\subsection {\type {lang.[set|get]hjcode}} + The following two commands can be used to set or query hj codes: \startfunctioncall |