summaryrefslogtreecommitdiff
path: root/Master/texmf/doc/ttf2pk/ttf2pk.doc
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf/doc/ttf2pk/ttf2pk.doc')
-rw-r--r--Master/texmf/doc/ttf2pk/ttf2pk.doc806
1 files changed, 0 insertions, 806 deletions
diff --git a/Master/texmf/doc/ttf2pk/ttf2pk.doc b/Master/texmf/doc/ttf2pk/ttf2pk.doc
deleted file mode 100644
index 6c3b4937f5c..00000000000
--- a/Master/texmf/doc/ttf2pk/ttf2pk.doc
+++ /dev/null
@@ -1,806 +0,0 @@
-
-ttf2tfm -- TrueType to TFM converter
-ttf2pk -- TrueType to PK converter
-====================================
-
-These two auxiliary programs make TrueType fonts usable with TeX.
-ttf2tfm extracts the metric and kerning information of a TrueType font
-and converts it into metric files usable by TeX (quite similar to
-afm2tfm which is part of the dvips package). ttf2pk rasterizes the
-glyph outlines of a TrueType font into a bitmap font in PK format.
-
-Since a TrueType font often contains more than 256 glyphs, some means
-are necessary to map a subset of the TrueType glyphs into a TeX font.
-To do this, two mapping tables are needed: the first maps from the
-TrueType font to a raw TeX font (this mapping table is used both by
-ttf2tfm and ttf2pk), and the second maps from the raw TeX font to
-another (virtual) TeX font providing all kerning and ligature
-information needed by TeX.
-
-We sometimes refer to this first map as the `input' or `raw' map, and
-to the second as the `output' or `virtual' map.
-
-This two stage mapping has the advantage that one raw font can be
-accessed with various TeX encodings (e.g. T1 and OT1) via the virtual
-font mechanism, and just one PK file is necessary.
-
-For CJKV fonts, a different mechanism is provided (see section
-`Subfont definition files' below). Additionally, rotated glyphs for
-pseudo-vertical writing are supported -- if possible, vertical glyph
-presentation forms are used from the font's GSUB table.
-
-
-
-ttf2tfm
-=======
-
-Usage:
-
- ttf2tfm FILE[.ttf|.ttc] [OPTION]... [FILE[.tfm]]
-
-Options (default values are given in brackets):
-
--c REAL use REAL for height of small caps made with -V [0.8]
--e REAL widen (extend) characters by a factor of REAL [1.0]
--E INT select INT as the TTF encoding ID [1]
--f INT select INT as the font index in a TTC [0]
--l create 1st/2nd byte ligatures in subfonts
--L LIGFILE[.sfd] create 1st/2nd byte ligatures in subfonts using LIGFILE
--n use PS names of TrueType font
--N use only PS names and no cmap
--O use octal for all character codes in the vpl file
--p ENCFILE[.enc] read ENCFILE for the TTF->raw TeX mapping
--P INT select INT as the TTF platform ID [3]
--q suppress informational output
--r OLDNAME NEWNAME replace glyph name OLDNAME with NEWNAME
--R RPLFILE[.rpl] read RPLFILE containing glyph replacement names
--s REAL oblique (slant) characters by REAL, usually <<1 [0.0]
--t ENCFILE[.enc] read ENCFILE for the encoding of the vpl file
--T ENCFILE[.enc] equivalent to -p ENCFILE -t ENCFILE
--u output only characters from encodings, nothing extra
--v FILE[.vpl] make a VPL file for conversion to VF
--V SCFILE[.vpl] like -v, but synthesize smallcaps as lowercase
--w generate subfont enc. vectors containing glyph indices
--x rotate subfont glyphs by 90 degrees
--y REAL move rotated glyphs down by a factor of REAL [0.25]
---help print this message and exit
---version print version number and exit
-
-
-The usage is very similar to afm2tfm. Please consult the dvips info
-file for more details on the various parameters. Here we will
-concentrate on the differences between afm2tfm and ttf2tfm.
-
-
-cmaps
------
-
-Contrary to Type 1 PostScript fonts (but similar to the new CID-keyed
-PostScript fonts), most TrueType fonts have more than one native
-mapping table, also called `cmap', which maps the (internal) TTF glyph
-indices to the (external) TTF character codes. Common examples are a
-mapping table to Unicode encoded character positions and the standard
-Macintosh mapping. To specify this TrueType mapping table, use the
-options `-P' and `-E'. With `-P' you specify the platform ID; defined
-values are:
-
- platform platform ID (pid)
- ----------------------------------
- Apple Unicode 0
- Macintosh 1
- ISO 2
- Microsoft 3
-
-The encoding ID depends on the platform. For pid=0, we ignore the
-`-E' parameter (setting it to zero) since the mapping table is always
-Unicode version 2.0. For pid=1, the following table lists the defined
-values:
-
- platform ID = 1
- script encoding ID (eid)
- ---------------------------------
- Roman 0
- Japanese 1
- Chinese 2
- Korean 3
- Arabic 4
- Hebrew 5
- Greek 6
- Russian 7
- Roman Symbol 8
- Devanagari 9
- Gurmukhi 10
- Gujarati 11
- Oriya 12
- Bengali 13
- Tamil 14
- Telugu 15
- Kannada 16
- Malayalam 17
- Sinhalese 18
- Burmese 19
- Khmer 20
- Thai 21
- Laotian 22
- Georgian 23
- Armenian 24
- Maldivian 25
- Tibetan 26
- Mongolian 27
- Geez 28
- Slavic 29
- Vietnamese 30
- Sindhi 31
- Uninterpreted 32
-
-Here are the ISO encoding IDs:
-
- platform ID = 2
- encoding encoding ID
- ----------------------------
- ASCII 0
- ISO 10646 1
- ISO 8859-1 2
-
-And finally, the Microsoft encoding IDs:
-
- platform ID = 3
- encoding encoding ID
- ---------------------------
- Symbol 0
- Unicode 2.0 1
- Shift JIS 2
- GB 2312 (1980) 3
- Big 5 4
- KSC 5601 (Wansung) 5
- KSC 5601 (Johab) 6
- UCS-4 10
-
-The program will abort if you specify an invalid platform/encoding ID
-pair. It will then show the possible pid/eid pairs. Please note that
-most fonts have at most two or three cmaps, usually corresponding to
-the pid/eid pairs (1,0), (3,0), or (3,1) in case of Latin based fonts.
-Valid Microsoft fonts should have a (3,1) mapping table, but some
-fonts exist (mostly Asian fonts) which have a (3,1) cmap not encoded
-in Unicode. The reason for this strange behavior is the fact that
-some old MS Windows versions will reject fonts having a non-Unicode
-cmap (since all non-Unicode Microsoft encoding IDs are for Asian
-specific MS Windows versions).
-
-The `-P' and `-E' options to ttf2tfm must be equally specified for
-ttf2pk; the corresponding parameters in a map file are `Pid' and
-`Eid', respectively.
-
-The default pid/eid pair is (3,1).
-
-If you use the `-N' switch, all cmaps are ignored, using only the
-PostScript names in the TrueType font. The corresponding option in a
-map file is `PS=Only'.
-
-If you use the `-n' switch, the default glyph names built into ttf2tfm
-are replaced with the PS glyph names found in the font. In many cases
-this is not what you want because the glyph names in the font are
-often incorrect or non-standard. The corresponding option in a map
-file is `PS=Yes'.
-
-
-input and output encodings
---------------------------
-
-You must specify the encoding vectors from the TrueType font to the
-raw TeX font and from the raw TeX font to the virtual TeX font exactly
-as with afm2tfm, but you have more possibilities to address the
-character codes. [With `encoding vector' a mapping table with 256
-entries in form of a PostScript vector is meant; see the file
-`T1-WGL4.enc' of this package for an example.] With afm2tfm, you must
-access each glyph with its Adobe glyph name, e.g. `/quotedsingle' or
-`/Acircumflex'. This has been extended with ttf2tfm; now you can (and
-sometimes must) access the code points and/or glyphs directly using
-the following syntax for specifying the character position in decimal,
-octal, or hexadecimal notation: `/.c<decimal-number>',
-`/.c0<octal-number>', or `/.c0x<hexadecimal-number>'. Examples:
-`/.c72', `/.c0646', `/.c0x48'. To access a glyph index directly, use
-the character `g' instead of `c' in the just introduced notation.
-Example: `/.g0x32'.
-
-[Note: The `.cXXX' notation makes no sense if `-N' is used.]
-
-Another possibility is to use the `-r old-glyphname new-glyphname'
-switch to rename a glyph. Example:
-
- ttf2tfm ... -r .g0xc7 dotlessi -r hungarumlaut dblacute ...
-
-Nevertheless, it is not allowed to use the `.gXXX' or `.cXXX' glyph
-name construct for `new-glyphname'.
-
-Alternatively, you can collect such replacement pairs in a file which
-should have `.rpl' as extension, using the `-R' option. The syntax is
-simple: Each line contains a pair `old-glyphname new-glyphname'
-separated by whitespace (without the quotation marks). The percent
-sign starts a line comment; you can continue a line with a backslash
-as the last character. An example for a replacement file is `VPS.rpl'
-(to be used in conjunction with `t5.enc' for Vietnamese) which is
-part of this package.
-
-The `-r' and `-R' switches are ignored for subfonts or if no encoding
-tables are specified. For ttf2pk, the corresponding option to `-R' is
-`Replacement'. Single replacements are directly given as
-old_glyphname=newglyphname in a map file.
-
-For pid/eid pairs (1,0) and (3,1), both ttf2tfm and ttf2pk recognize
-built-in default Adobe glyph names; the former pair follows the names
-given in Appendix E of the book `Inside Macintosh', volume 6, the
-latter uses the names given in the TrueType Specification (WGL4, a
-Unicode subset). Note that Adobe glyph names are not unique and do
-sometimes differ: E.g., many PS fonts have the glyph `mu', whereas
-this glyph is called `mu1' in the WGL4 character set to distinguish it
-from the real Greek letter mu. You can find those mapping tables in
-the source code file `ttfenc.c'. Be also aware that OpenType
-(i.e. TrueType 2.0) fonts use an updated WGL4 table; we use the data
-from the latest published TrueType specification (1.66).
-
-On the other hand, the switches `-n' and `-N' make ttf2tfm read in and
-use the PostScript names in the TrueType font itself (stored in the
-font's `post' table) instead of the default Adobe glyph names.
-
-If you don't select an input encoding, the first 256 glyphs of the
-TrueType font with a valid entry in the selected cmap will be mapped
-to the TeX raw font (without the `-q' option ttf2tfm prints this
-mapping table to standard output), followed by all glyphs not yet
-addressed in the selected cmap. However, some code points for the
-(1,0) pid/eid pair are omitted since they do not represent glyphs
-useful for TeX: 0x00 (null), 0x08 (backspace), 0x09 (horizontal
-tabulation), 0x0d (carriage return), and 0x1d (group separator). The
-`invalid character' with glyph index 0 will be omitted too.
-
-If you select the `-N' switch, the first 256 glyphs of the TrueType
-font with a valid PostScript name will be used in case no input
-encoding is specified. Again, some glyphs are omitted: `.notdef',
-`.null', and `nonmarkingreturn'.
-
-If you don't select an output encoding, ttf2tfm uses the same mapping
-table as afm2tfm would use (you can find it in the source code file
-texenc.c); it corresponds to TeX typewriter text. Unused positions
-(either caused by empty code points in the mapping table or missing
-glyphs in the TrueType font) will be filled (rather arbitrarily) with
-characters present in the input encoding but not specified in the
-output encoding (without the `-q' option ttf2tfm prints the final
-output encoding to standard output). Use the `-u' option if you want
-only glyphs in the virtual font which are defined in the output
-encoding file, and nothing more.
-
-One feature missing in afm2tfm has been added which is needed by the
-LaTeX T1 encoding: ttf2tfm will construct the glyph `Germandbls' (by
-simply concatenating to `S' glyphs) even for normal fonts if possible.
-It appears in the glyph list (written to stdout) as the last item,
-marked with an asterisk. Since this isn't a real glyph it will be
-available only in the virtual font.
-
-For both input and output encoding, an empty code position is
-represented by the glyph name `.notdef'.
-
-In encoding files, you can use `\' as the final character of a line to
-indicate that the input is continued on the next line. The backslash
-and the following newline character will be removed.
-
-ttf2tfm returns 0 on success and 1 on error; warning and error
-messages are written to standard error.
-
-
-other options
--------------
-
-You can select the font in a TrueType font collection (which usually
-has the extension `.ttc') with `-f'; the default value, zero,
-specifies the first font. For fonts not being a collection this
-parameter is ignored.
-
-The option `-l' makes ttf2tfm create ligatures in subfonts between
-first and second bytes of all the original character codes. Example:
-Character code 0xABCD maps to character position 123 in subfont 45.
-Then a ligature in subfont 45 between position 0xAB and 0xCD pointing
-to character 123 will be produced. The fonts of the Korean HLaTeX
-package use this feature. Note that this option generates correct
-ligatures only for TrueType fonts where the input cmap is identical to
-the output encoding. In case of HLaTeX, TTFs must have platform ID 3
-and encoding ID 5.
-
-Option `-L' is the same as `-l', but character codes for ligatures are
-specified in a ligature file. For example, `-L KS-HLaTeX' generates
-correct ligatures for the Korean HLaTeX package regardless of the
-platform and encoding ID of the used TrueType font (the file
-`KS-HLaTeX.sfd' is part of the ttf2pk package). Ligature files have
-the same format and extension as SFD files. Both `-L'and `-l' are
-ignored if not in subfont mode.
-
-PostScript encoding vectors containing glyph indices of subfonts,
-primarily used to embed TrueType fonts in pdfLaTeX, can be created
-with option `-w'. ttf2tfm takes the TFM names and replaces the suffix
-with `.enc'; that is, for files `foo01.tfm', `foo02.tfm', ... it
-creates `foo01.enc', `foo02.enc', ... at the same place.
-
-To produce glyphs rotated by 90 degrees counter-clockwise, use `-x'.
-If the font contains a GSUB table (with feature `vert') to specify
-vertical glyph presentation forms, both ttf2pk and ttf2tfm will use
-it. This will work only in subfont mode. The y-offset of rotated
-glyphs can be specified with the `-y' option; its parameter gives the
-fractional amount of shifting downwards (the unit is one EM). If not
-specified, a value of 0.25 (em) is used.
-
-
-
-ttf2pk
-======
-
-Usage:
-
- ttf2pk [-q] [-n] FONT DPI
- ttf2pk -t [-q] FONT
-
-Options:
-
--q suppresses informational output
--n only use `.pk' as extension
--t test for FONT (returns 0 on success)
---help print this message and exit
---version print version number and exit
-
-
-The FONT parameter must correspond to an entry in a map file recorded
-in the configuration file ttf2pk.cfg (see below for details),
-otherwise error code 2 is returned -- this can be used for scripts
-like mktexpk to test whether the given font name is a (registered)
-TrueType font.
-
-Another possibility is to use the `-t' switch which will print the
-line of a map file corresponding to FONT and return 0 on success (`-q'
-suppresses any output).
-
-DPI specifies the intended resolution (we always assume a design size
-of 10pt).
-
-
-ttf2pk.cfg
-----------
-
-ttf2pk uses a small configuration file called ttf2pk.cfg; in each line
-it contains a keyword with its value, separated by whitespace.
-Comment lines can start with any of the following characters: `*',
-`#', `;', and `%'. Leading whitespace is ignored.
-
-Currently, only one keyword, `map', is recognized in this file; it
-takes a map file name as a parameter. If no extension is given to the
-map file name, `.map' is appended. No whitespace is allowed in the
-map file name. The `map' keyword can be given more than once to
-specify multiple map files; if the map file name is prepended by a
-plus sign, it is added to the list of map files to be used. Example:
-
- map foo
- map +bar
-
-This makes ttf2pk to first read `foo.map', then `bar.map'.
-
-If the configuration file is not found, ttf2pk tries to use
-`ttfonts.map' instead.
-
-
-map files
----------
-
-Parameters specified to ttf2tfm are preserved for ttf2pk in map files
--- ttf2tfm writes out to standard output, as the last line, a proper
-entry for a map file.
-
-As an example, a call to
-
- ttf2tfm arial -s 0.25 -P 1 -E 0 -r .g0xc7 caron \
- -p 8r.enc -t T1-WGL4.enc -v arialsx arials
-
-will produce the following line:
-
- arials arial Slant=0.25 Encoding=8r.enc Pid=1 Eid=0 .g0xc7=caron
-
-The output encoding given with `-t' for the virtual font `arialsx' is
-immaterial to ttf2pk (nevertheless, input encoding files must have the
-same format as with ttf2tfm, and all said above about encoding files
-holds).
-
-Here a table listing the various ttf2tfm parameters and its
-corresponding entries in a map file:
-
- -s Slant
- -e Extend
- -p Encoding
- -f Fontindex
- -P Pid
- -E Eid
- -n PS=Yes
- -N PS=Only
- -R Replacement
- -x Rotate=Yes
- -y Y-Offset
-
-Single replacement glyph names given to ttf2tfm with the `-r' switch
-are directly specified with old-glyphname=new-glyphname. For subfonts
-or if no encoding file is given, replacement glyphs are ignored.
-
-One additional parameter in a map file is unique to ttf2pk: `Hinting',
-which can take the values `On' or `Off'. Some fonts (e.g. the CJKV
-part of cyberbit.ttf) are rendered incorrectly if hinting is
-activated. Default is `On' (you can also use `Yes', `No', `1', and
-`0').
-
-The format of map files is simple. Each line defines a font; first
-comes the TeX font name, then its TrueType font file name, followed by
-the parameters in any order. Case is significant (even for parameter
-names); the parameters are separated from its values by an equal sign,
-with possible whitespace surrounding it. ttf2pk reads in a map file
-line by line, continuing until the TeX font specified on the command
-line is found, otherwise the programs exits with error code 2. Thus
-you can use any character invalid in a TeX font name to start a
-comment line.
-
-In both map files and encoding files, use `\' as the final character
-of a line to indicate that the input is continued on the next line.
-The backslash and the following newline character will be removed.
-
-ttf2pk will abort if it can't find and read the TeX font metrics file
-of the given TeX font name.
-
-
-Subfont definition files
-========================
-
-CJKV (Chinese/Japanese/Korean/old Vietnamese) fonts usually contain
-several thousand glyphs; to use them with TeX it is necessary to split
-such large fonts into subfonts. Subfont definition files (usually
-having the extension `.sfd') are a simple means to do this smoothly.
-A subfont file name usually consists of a prefix, a subfont infix, and
-a postfix (which is empty in most cases), e.g.
-
- ntukai23 -> prefix: ntukai, infix: 23, postfix: (empty)
-
-Here the syntax of a line in an SFD file, describing one subfont:
-
- <whitespace> <infix> <whitespace> <ranges> <whitespace> `\n'
-
- <infix> := anything except whitespace. It's best to use only
- alphanumerical characters.
- <whitespace> := space, formfeed, carriage return, horizontal and
- vertical tabs -- no newline characters.
- <ranges> := <ranges> <whitespace> <codepoint> |
- <ranges> <whitespace> <range> |
- <ranges> <whitespace> <offset> <whitespace> <range>
-
- <codepoint> := <number>
- <range> := <number> `_' <number>
- <offset> := <number> `:'
-
- <number> := hexadecimal (prefix `0x'), decimal, or octal
- (prefix `0')
-
-A line can be continued on the next line with a backslash ending the
-line. The ranges must not overlap; offsets have to be in the range
-0-255.
-
-Example:
-
- The line
-
- 03 10: 0x2349 0x2345_0x2347
-
- assigns to the code positions 10, 11, 12, and 13 of the subfont
- having the infix `03' the character codes 0x2349, 0x2345, 0x2346,
- and 0x2347, respectively.
-
-The SFD files in the distribution are customized for the CJK package
-for LaTeX.
-
-You have to embed the SFD file into the TFM font name (at the place
-where the infix will appear) surrounded by two `@' signs, on the
-command line resp. a map file; both ttf2tfm and ttf2pk switch then
-to subfont mode.
-
-It is possible to use more than a single SFD file by separating them
-with commata and no whitespace; for a given subfont, the first file is
-scanned for an entry, then the next file, and so on. Later entries
-override entries found earlier (possibly only partially). For example,
-the first SFD file sets up range 0x10-0xA0, and the next one modifies
-entries 0x12 and 0x25. As can be easily seen, this algorithm allows
-for adding and replacing, but not for removing entries.
-
-Subfont mode disables the options `-n', `-N', `-p', `-r', `-R', `-t',
-`-T', `-u', `-v', `-w', and `-V' for ttf2tfm; similarly, no `Encoding'
-and `Replacement' parameter resp. single replacement glyph names are
-allowed in a map file.
-
-ttf2tfm will create ALL subfont TFM files specified in the SFD files
-(provided the subfont contains glyphs) in one run.
-
-Example:
-
- The call
-
- ttf2tfm ntukai.ttf ntukai@Big5,Big5-supp@
-
- will use `Big5.sfd' and `Big5-supp.sfd', producing the subfont files
- ntukai01.tfm, ntukai02.tfm etc.
-
- ttf2pk should be then called on the subfonts directly:
-
- ttf2pk ntukai01 600
- ttf2pk ntukai02 600
- ...
-
-
-Some notes on file searching
-============================
-
-Both ttf2pk and ttf2tfm use either the kpathsea, emtexdir, or MiKTeX
-library for searching files (emtexdir will work only on operating
-systems which have an MS-DOSish background, i.e. MS-DOS, OS/2,
-Windows; MiKTeX is specific to MS Windows).
-
-During compilation, you have to define HAVE_KPATHSEA, HAVE_EMTEXDIR,
-or MIKTEX to activate the specific file search code.
-
-As a last resort, both programs can be compiled without a search
-library; the searched files must be then in the current directory or
-specified with a path. Default extensions will be appended also (with
-the exception that only `.ttf' is appended and not `.ttc').
-
-
-kpathsea
---------
-
-Please note that older versions of kpathsea (<3.2) have no special
-means to search for TrueType fonts and related files, thus we use the
-paths for PostScript related stuff. The actual version of kpathsea is
-displayed on screen if you call either ttf2pk or ttf2tfm with the
-`--version' command line switch.
-
-Here is a table of the file type and the corresponding kpathsea
-variables. TTF2PKINPUTS and TTF2TFMINPUTS are program specific
-environment variables introduced in kpathsea version 3.2:
-
- .ttf and .ttc TTFONTS
- ttf2pk.cfg TTF2PKINPUTS
- .map TTF2PKINPUTS
- .enc TTF2PKINPUTS, TTF2TFMINPUTS
- .rpl TTF2PKINPUTS, TTF2TFMINPUTS
- .tfm TFMFONTS
- .sfd TTF2PKINPUTS, TTF2TFMINPUTS
-
-And here the same for pre-3.2-versions of kpathsea:
-
- .ttf and .ttc T1FONTS
- ttf2pk.cfg TEXCONFIG
- .map TEXCONFIG
- .enc TEXPSHEADERS
- .rpl TEXPSHEADERS
- .tfm TFMFONTS
- .sfd TEXPSHEADERS
-
-Finally, the same for pre-3.0-versions:
-
- .ttf and .ttc DVIPSHEADERS
- ttf2pk.cfg TEXCONFIG
- .map TEXCONFIG
- .enc DVIPSHEADERS
- .rpl DVIPSHEADERS
- .tfm TFMFONTS
- .sfd DVIPSHEADERS
-
-Please consult the info files for kpathsea for details on these
-variables. The decision whether to use the old or the new scheme will
-be done during compilation.
-
-You should set the TEXMFCNF variable to the directory where your
-texmf.cnf configuration file resides.
-
-The default TDS location for the files in the data subdirectory is
-
- $TEXMF/ttf2tfm
-
-(or $TEXMF/ttf2pk; you should either make a symbolic link
-
- % ln -s $TEXMF/ttf2tfm $TEXMF/ttf2pk
-
-or set the variable TTF2PKINPUTS to $TEXMF/ttf2tfm for newer kpathsea
-versions)
-
-Here is the proper command to find out to which value a kpathsea
-variable is set (we use `TTFONTS' as an example). This is especially
-useful if a variable isn't set in texmf.cnf or in the environment,
-thus pointing to the default value which is hard-coded into the
-kpathsea library.
-
- % kpsewhich --progname=ttf2tfm --expand-var='$TTFONTS'
-
-We select the program name also since it is possible to specify
-variables which are searched only for a certain program -- in our
-example it would be `TTFONTS.ttf2tfm'.
-
-A similar but not identical method is to say
-
- % kpsewhich --progname=ttf2tfm --show-path='truetype fonts'
-
-[A full list of format types can be obtained by saying `kpsewhich
---help' on the command line prompt.] This is exactly how ttf2tfm (and
-ttf2pk) searches for files; the disadvantage is that all variables are
-expanded which can cause a very long string.
-
-
-emtexdir
---------
-
-Here the list of suffixes and its related environment variables to be
-set in autoexec.bat (resp. in config.sys for OS/2):
-
- .ttf and .ttc TTFONTS
- ttf2pk.cfg TTFCFG
- .map TTFCFG
- .enc TTFCFG
- .rpl TTFCFG
- .tfm TEXTFM
- .sfd TTFCFG
-
-With other words, all files in the `data' subdirectory should be moved
-to a place in your emtex tree with TTFCFG pointing to this directory.
-
-If one of the variables isn't set, a warning message is emitted. The
-current directory will always be searched. As usual, one exclamation
-mark appended to a directory path causes subdirectories one level deep
-to be searched, two exclamation marks causes all subdirectories to be
-searched. Example:
-
- TTFONTS=c:\fonts\truetype!!;d:\myfonts\truetype!
-
-Constructions like `c:\fonts!!\truetype' aren't possible.
-
-
-MiKTeX
-------
-
-Both ttf2tfm and ttf2pk have been fully integrated into MiKTeX.
-Please refer to the documentation of MiKTeX for more details on file
-searching.
-
-
-
-A full example
-==============
-
-Here an example how to handle the font `verdana.ttf' and its variants.
-
-
-1. Construct the font name
---------------------------
-
- [This is the most complicated part -- in case you are too lazy to
- construct font names compliant to TeX's `fontname' scheme, just use
- your own names.]
-
- Using the `ftdump' utility (which is part of FreeType 1) you can
- find out the PostScript name of the specific TTF which is probably
- the best choice to adapt TrueType fonts to the PostScript-oriented
- `fontname' scheme.
-
- In our example, the PostScript name is `Verdana'.
-
- `fontname' uses the scheme
-
- S TT W [V...] [N] [E] [DD]
-
- as documented in `fontname.texi' resp. `fontname.dvi'. Now you have
- to check the various mapping files:
-
- S: supplier.map: `j' for `Microsoft'
- TT: typeface.map: `vn' for `Verdana'
- W: weight.map: `r' for `Regular Roman',
- `b' for `bold'
- V,
- N: variant.map: `8r' for the raw base font
- `8t' for the virtual font
- (i.e., LaTeX's T1 encoding)
- [additionally an inserted `c' for small caps,
- `o' for slanted (`oblique'), or `i' for italic
- fonts]
-
- Here the standard combinations:
-
- `jvnr8r' for the default base font.
- `jvnr8t' for the virtual default font.
- `jvnrc8t' for the virtual font with small caps. [As you can
- see, no additional raw font is needed.]
- `jvnro8r' for the slanted base font.
- `jvnro8t' for the virtual slanted font.
-
- The corresponding variants are:
-
- bold: verdanab.ttf -> jvnb{8r,8t}
- small caps: jvnbc8t
- slanted: jvnbo{8r,8t}
- italic: verdanai.ttf -> jvni{8r,8t}
- bold and italic: verdanaz.ttf -> jvnbi{8r,8t}
-
-
-* NOTE: Be careful to use different names for the virtual font and the
-* raw font! In the above example, `*8r' and `*8t' is used. You
-* could also use the postfix `*-raw', to name an example, for
-* the raw font if you don't follow the `fontname' naming scheme.
-
-
-2. Font definition files
-------------------------
-
- The FD file should be called `t1jvn.fd' (as you can see, this is T1
- encoding). It is very similar to `t1ptm.fd', part of the PSNFSS
- package (which can be found in almost all TeX distributions). A
- `verdana.sty' file can also be modeled after `times.sty'.
-
-
-3. Calling ttf2tfm
-------------------
-
- To make the example simpler, we use `T1-WGL4.enc' for both the raw
- and the virtual encoding. This should be sufficient for most
- TrueType fonts mapped to T1 encoding. Other packages may define
- other encodings (e.g. the `t2' package available from CTAN defines
- mapping files for Cyrillic encodings) -- it may also be necessary to
- use the `-n' or `-N' switch together with replacement glyph names to
- access all glyph names in the TrueType font.
-
- To create `jvnr8r' and `jvnr8t', just call
-
- ttf2tfm verdana -T T1-WGL4 -v jvnr8t jvnr8r
- vptovf jvnr8t
-
- For `jvnrc8t', do
-
- ttf2tfm verdana -T T1-WGL4 -V jvnrc8t jvnr8r
- vptovf jvnrc8t
-
- Note that almost always some warnings will appear about missing
- glyphs.
-
- The last line written to stdout by ttf2tfm is a suitable entry for a
- map file -- let's call it `verdana.map'. Since ttf2pk doesn't care
- about virtual fonts, both calls below produce the same.
-
- Now just repeat this procedure. For slanted fonts you should
- additionally use the switch `-s 0.176' (of course you can change the
- slanting amount to make it fit your needs).
-
-
-4. Modifying ttf2pk.cfg
------------------------
-
- The final step is to add `verdana.map' to ttf2pk's configuration
- file. Simply insert the following line at the end of `ttf2pk.cfg':
-
- map +verdana
-
-
-Problems
-========
-
-Most vptovf implementations allow only 100 bytes for the TFM header
-(the limit is 1024 in the TFM file itself): 8 bytes for checksum and
-design size, 40 bytes for the family name, 20 bytes for the encoding,
-and 4 bytes for a face byte. There remain only 28 bytes for some
-additional information which is used by ttf2tfm for an identification
-string (which is essentially a copy of the command line), and this
-limit is always exceeded.
-
-The optimal solution is to increase the value of `max_header_bytes' in
-the file vptovf.w (and probably pltotf.w) to, say, 400 and recompile
-vptovf (and pltotf). Otherwise you will get some (harmless) error
-messages like
-
- This HEADER index is too big for my present table size
-
-which can be safely ignored.
-
-
---- end of ttf2pk.doc ---