diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/cjk/utils/thaifont/tools/INSTALL')
-rw-r--r-- | Master/texmf-dist/source/latex/cjk/utils/thaifont/tools/INSTALL | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/Master/texmf-dist/source/latex/cjk/utils/thaifont/tools/INSTALL b/Master/texmf-dist/source/latex/cjk/utils/thaifont/tools/INSTALL deleted file mode 100644 index 025e923ed99..00000000000 --- a/Master/texmf-dist/source/latex/cjk/utils/thaifont/tools/INSTALL +++ /dev/null @@ -1,337 +0,0 @@ -Installation of Thai fonts for TeX with fontinst ------------------------------------------------- - -0. The files `c90.etx' and `c90.mtx' must be in the TeX inputs path. - Normally, the current directory also works. Note that you need - fontinst version 1.918 or higher. - -1. In case your Thai font doesn't come with an AFM metrics file you - must extract it from the font using tools like `type1afm' (from - the t1lib package) or ghostscript's `ps2afm' program. - -2. Create a control file for fontinst. - - Example: - - Let us assume that we have the following AFM files for the - Garuda family, using version 2.1 of the fonts (from the - ThaiLaTeX project): - - garuda.afm - garuda_b.afm - garuda_o.afm - garuda_bo.afm - - You should use glyph names compliant to Karl Berry's `fontname' - scheme. For `garuda', this could be `fgdr8z': `f' is the foundry - (`small foundry'), `gd' is the typeface name, `r' means the - weight (`regular'), and `8z' the encoding (8bit user). - Similarly, suitable names for the other fonts are `fgdb8z', - `fgdo8z', and `fgdbo8z', respectively. - - Fonts with `f' as the supplier should go into a `public' font - directory. The typeface `Garuda' already exists in the latest - fontname version (typeface.map version 4-Jul-2005 at the time of - writing), the associated directory is `garuda'. Please consult - the `fontname' standard for more information. - - A template for the fontinst control file can be found as - `norasi.fontinst'; here a version for garuda: - - ==== garuda.fontinst ==== - - \input fontinst.sty - - \needsfontinstversion{1.918} - - - % we explicitly set all slots in the encoding, so provide all - % glyph names in AFM files equally (this is, don't create - % `<glyph>-not' names) - \let\setnotglyph \setrawglyph - - % we want warnings for missing glyphs - \fontinstcc - \add_to\pre_fourth_etx_pass_hook{ - \def\do_slot{ - \if_undefined{g-\slot_name}\then - \fontinstwarningnoline{fontinst} - {missing~glyph~`\slot_name'\space - for~slot~\the\slot_number\space - in~font~`\out_filename'} - \fi - \do_character - } - } - \normalcc - - - % create PL files and an FD file - \installfonts - \setint{fontdimen(2)}{500} % SPACE - \setint{fontdimen(3)}{300} % STRETCH - \setint{fontdimen(4)}{100} % SHRINK - \setint{fontdimen(6)}{1000} % QUAD - \setint{fontdimen(7)}{0} % EXTRASPACE - - \installrawfont{fdbr8z}{garuda,c90}{c90} - {C90}{garuda}{m}{n}{} - \installrawfont{fdbb8z}{garuda_b,c90}{c90} - {C90}{garuda}{bx}{n}{} - \installrawfont{fdbbo8z}{garuda_bo,c90}{c90} - {C90}{garuda}{bx}{sl}{} - \installrawfont{fdbo8z}{garuda_o,c90}{c90} - {C90}{garuda}{m}{sl}{} - \endinstallfonts - - - \input finstmsc.sty - - - % create the c90.enc file - \installfonts - % the `makeenc' flag is used in c90.etx - \setint{makeenc}{1} - \setstr{encodingname}{C90Encoding} - \etxtoenc{c90}{c90} - \endinstallfonts - - \end - - ==== garuda.fontinst ==== - - Some explanations. - - - The control files also creates MTX and PL files for the AFM - files (e.g., garuda.mtx and garuda.pl) which aren't needed and - can be deleted. - - - AFM files don't provide all necessary font dimensions for TeX. - Consequently, you have to set some dimensions manually. The - `SPACE' value must be larger than for a Latin font; a - reasonable value is 500. You should increase the `STRETCH' - value also -- some tests have shown that 300 yields good - results, but this depends on the font. `EXTRASPACE' can be - set to zero since you must always use TeX's \frenchspacing - command for Thai. All other font dimension values given above - are default values and can stay unmodified. - - There is nothing for free: The changed font dimensions improve - spacing between Thai words, but Latin words are far too widely - spaced. - - - The arguments to \installrawfont are as follows. - - #1 The target font name. - #2 A comma separated list (without spaces) of metric - files. Above, the first one is the AFM file, the - second one is c90.mtx which sets up the three - mandatory alias glyph slots. - #3 The name of the encoding file (c90.etx). - #4-#7 The NFSS attributes for the font. - #8 The size command. If it is empty, `<->' is used. - - - The second \installfonts...\endinstallfonts block creates an - encoding file. - -3. Run fontinst: - - tex garuda.fontinst - - If you get warnings about missing glyphs which are critical (this - is, if it affects Thai characters), you have to configure fontinst - to use an alias file for glyph names. This is described below. - -4. Say - - pltotf <PL-file> - - for all target PL files to create TFM files. - - Example: - - pltotf fgdr8z - pltotf fgdb8z - pltotf fgdo8z - pltotf fgdbo8z - - After the conversion, the PL files are no longer needed and can be - deleted. As mentioned above, the PL files created directly from - the AFM files need not be converted. - -5. Create a mapping file <font>.map for the PS fonts (which can be - used by both dvips and pdftex). - - Example `garuda.map' (the lines are splitted for readability only): - - fgdr8z Garuda \ - " C90Encoding ReEncodeFont " <c90.enc <garuda.pfb - fgdb8z Garuda-Bold \ - " C90Encoding ReEncodeFont " <c90.enc <garuda_b.pfb - fgdo8z Garuda-Oblique \ - " C90Encoding ReEncodeFont " <c90.enc <garuda_o.pfb - fgdbo8z Garuda-BoldOblique \ - " C90Encoding ReEncodeFont " <c90.enc <garuda_bo.pfb - - A proper entry for the mapping file (dvipdfm.map) of dvipdfm (and - dvipdfmx) looks like this: - - fgdr8z c90 garuda - fgdb8z c90 garuda_b - fgdo8z c90 garuda_o - fgdbo8z c90 garuda_bo - - Note that teTeX's (and TeXLive's) `updmap' script can automatically - convert a map line for dvips to a proper entry for dvipdfm and - dvipdfmx. - -6. There are two possibilities how to make the Thai fonts known to - dvips. - - - Append the contents of the map file to `psfonts.map' (or the map - file specified in the configuration file of dvips, `config.ps', - with the `p' option). How to do this may vary depending on the - used TeX system; for example, teTeX and TeXLive both use a script - called `updmap' to maintain `psfonts.map'. - - - Write a small file called config.<font> (e.g., `config.garuda'; on - platforms like MS-DOS which don't support long filename - extensions you can use `garuda.cfg' instead) with the following - line in it: - - p +<map_file> - - Example: - - p +garuda.map - - Then you can use the `-P' command line option of dvips to - include the reencoded font. Example: - - dvips -P garuda test.dvi - -7. After testing, install the font and its support files in your TeX - tree. In the following example, `TEXMF' denotes the location of - your (local) `texmf' directory (we assume a TeX installation - compliant to TDS 1.1 as provided recent versions of TeXLive and - teTeX). - - garuda.pfb -> TEXMF/fonts/type1/public/garuda/ - garuda.afm -> TEXMF/fonts/afm/public/garuda/ - ... - - c90.enc -> TEXMF/fonts/enc/dvips/thai/ - - garuda.map -> TEXMF/fonts/map/dvips/garuda/ - config.garuda -> TEXMF/dvips/garuda/ - - fgdr8z.tfm -> TEXMF/fonts/tfm/public/garuda/ - ... - - c90gar.fd -> TEXMF/tex/latex/CJK/thai/ - -8. Run texhash or a similar program to update the TDS database if - necessary. - - -You are done! With plain TeX, say e.g. - - \font\thai = fgdr9z at 16pt - -to use the font \thai. This will typeset TIS-620 encoded Thai. -Note, however, that you need CJK's cjk-enc.el for Emacs to insert -proper inter-character glue and word breakpoints in case you want -to typeset longer Thai phrases. - - -Reencoding Thai fonts ---------------------- - -Older Thai fonts don't use proper glyph names, and recent ones -probably use different suffixes; it is thus necessary to make fontinst -aware of those names. - -A complete example can be found in the `dbtt-old' subdirectory (which -can be used for the dbtt fonts from TeXLive 8 or earlier). - -a. Set up a file which contains all the aliases, using the \galias - macro. This file should have the extension `.tex'. - - Example: - - If glyph `endash' is represented with glyph name `ucircumflex' - in the font, use the following: - - \galias{ucircumflex}{endash} - -b. Set up both ETX and MTX files which load the just created glyph - alias file. To do that, use the files `dbtt-old-alias.etx' and - `dbtt-old-alias.mtx' as templates. Leave everything unchanged - except the line with \input which should load your glyph alias - file. - -c. Set up a proper fontinst control file. Use `dbtt-old.fontinst' - as a template, replacing the `dbtt-old-alias' items in the - \installrawfont lines with the name of your MTX file. Similarly, - the three last lines in the second - \installfonts...\endinstallfonts block should be adjusted - accordingly. - -d. Continue with item 3 above. Note that in item 5, you have to use - not `C90Encoding' but the encoding name defined with the \setstr - line in your fontinst control file. - - -Using different LaTeX encodings for Thai ----------------------------------------- - -The used encoding scheme within the CJK package for Thai is `C90', -but it is straightforward to adapt it to other Thai encodings like -`LTH' by reordering the `\setslot ... \endsetslot' blocks in the file -`c90.etx'. - -Currently, only CJK's cjk-enc.el output filter for Emacs needs the -Thai ligatures -- other Thai word segmentation programs like `swath' -or `cttex' already replace the input characters with proper glyph -variants. Anyway, they don't harm, and it is on the TODO list of the -thailatex maintainers to finally use those ligatures also. - - -Printing c90.etx ----------------- - -It is possible to convert the main fontinst encoding file for Thai, -c90.etx, into a printable document. To do so, you have to apply the -patch below to the file `fontdoc.sty' (which is part of the fontinst -package -- tested with fontinst version 1.926; newer versions have -already been corrected and don't need this patch), then simply say - - latex c90.etx - - -==================================================================== - - ---- fontdoc.sty.old Mon Feb 9 21:28:59 2004 -+++ fontdoc.sty Wed Jun 23 12:13:04 2004 -@@ -1052,7 +1052,7 @@ - \x@cs\def{FD@lig-/LIG}#1#2{% - \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#1}% - ${}\rightarrow{}$% -- \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#2}$% -+ \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#2}% - } - \x@cs\def{FD@lig-LIG/}#1#2{% - \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#1}% -@@ -1085,7 +1085,7 @@ - \FD@typeset@string{\slot@name}${}*{}$\typeset@glyph{#1}% - ${}\rightarrow{}$% - \FD@typeset@string{\slot@name}${}*{}$% -- \typeset@glyph{#2}${}*\lfloor$\typeset@glyph{#1}$} -+ \typeset@glyph{#2}${}*\lfloor$\typeset@glyph{#1}} - \def\nextlarger#1{\Bheading{Next larger} \typeset@glyph{#1}} - \def\makerightboundary#1{% - \Bheading{Right boundary marker slot} designation \typeset@glyph{#1}% - - ----end of INSTALL--- |