summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/accfonts/README
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/accfonts/README')
-rw-r--r--Master/texmf-dist/doc/latex/accfonts/README333
1 files changed, 333 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/accfonts/README b/Master/texmf-dist/doc/latex/accfonts/README
new file mode 100644
index 00000000000..3f5a5ecc54e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/accfonts/README
@@ -0,0 +1,333 @@
+
+
+ Mkt1font and vpl2vpl: programs to generate accented fonts
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ John D. Smith, University of Cambridge, 1997
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+These two programs address the same requirement using the same basic
+algorithms: their aim is to make it easy to create versions of
+existing fonts containing whatever accented characters the user may
+need, arranged according to whatever encoding he/she may favour.
+Mkt1font does this by reading in the two files that define a Type 1
+PostScript font and writing out new versions of them; vpl2vpl does
+it by reading in the file that defines a TeX virtual font and
+writing out a new version of it. In each case information about what
+accented characters are required and where they should be located is
+supplied by means of a simple definition file, which has the same
+format for both programs.
+
+It is common to hear someone say, "I need a font containing
+such-and-such special characters," when really they should be
+saying, "I need a version of Times/Palatino/New Century Schoolbook
+etc. containing the special characters for such-and-such a
+language." If we are to take full advantage of computer typesetting
+and desktop publishing, we need to be able to choose our fonts on
+grounds of aesthetic merit rather than expediency, and to move
+towards standardised encodings. These programs should go some way to
+making this possible.
+
+Note that most Type 1 PostScript fonts are commercial products
+subject to both copyright and licensing restrictions. If the license
+for such a font forbids reverse-engineering it, it is presumably
+illegal to run mkt1font on it; in any case it would certainly be a
+serious breach of copyright to make modified versions of the font
+available to third parties. The author of mkt1font will not be held
+responsible for any such misuses of the software. (No such legal
+problems surround the use of TeX virtual fonts, which merely specify
+new ways to use existing fonts.) However, would-be users may wish to
+note the existence of a body of high-quality freeware lookalikes for
+many of the standard Type 1 fonts: like mkt1font and vpl2vpl, the
+Ghostscript fonts developed by URW++ Design and Development
+Incorporated are made available under the GNU General Public License
+(see the file COPYING), which permits them to be modified and
+redistributed provided that certain simple decencies are observed.
+These fonts are available from many ftp sites, including those
+forming the Comprehensive TeX Archive Network (CTAN), for example
+ftp.tex.ac.uk: look for the most recent font archive file in the
+directory /tex-archive/support/ghostscript/gnu/fonts.
+
+A detailed specification of the form of the definition file used by
+mkt1font and vpl2vpl is given below in the instructions for using
+the two programs, but it may be helpful to give a quick idea of its
+contents here. Each line of the file contains something similar to
+"128 x acute", which is an instruction to create a new character
+formed from "x" with an acute accent and located at position 128 in
+the character set. Once a new character has been defined in this
+way, it "exists" in just the same way as any other character, under
+the name "xacute" (or whatever); thus it can even receive further
+accents. The two lines
+
+ 129 e macron
+ 130 emacron breve
+
+will create a "long e" and a "long-or-short e" at the positions
+specified. (If only the latter is desired, they can both be assigned
+the same position in the encoding -- the second will overwrite the
+first.) Subscript as well as superscript accents are available. Some
+sample definition files are included to give an idea of the format:
+note that two of these (CSX.def and Norman.def), used for Indian
+language material in Roman script, contain the triple-accented
+character "runderdotmacron acute"!
+
+In addition to accented characters proper, both programs can produce
+digraphs -- single characters composed of pairs of other characters.
+In itself this may seem to be of limited use, since the digraph
+should always be indistinguishable from its two constituent
+characters printed consecutively. However, some Unicode-style
+encodings require that certain character-pairs be treated as
+digraphs. In addition, use of a digraph in subsequent definitions
+allows an accent to be applied to two characters as a pair: so, for
+example,
+
+ 131 k h
+ 131 kh underbar
+
+will produce a character consisting of an underlined "kh" at
+position 131.
+
+The algorithms used in both programs take great care to secure the
+most attractive results, placing accents centrally over/under their
+characters at appropriate heights/depths, varying their position
+according to the angle of slant in Italic and similar fonts,
+providing new characters with kerning information (which will be
+resolutely ignored by most word-processors), and -- in the case of
+mkt1font -- giving hinting instructions to improve output on
+low-resolution printers. However, users may feel that some
+characters need "tweaking". This tends to happen when the part of
+the character adjacent to the accent is highly asymmetrical:
+subscript accents below "r" may need moving to the left, while
+superscript accents above "d" may need moving to the right. It is
+relatively easy to modify the output of vpl2vpl to make such
+improvements by hand (vpl files are designed to be easy for humans
+to read, and vpl2vpl identifies each character with a comment). Type
+1 fonts are another matter; mkt1font generates a human-readable and
+commented ".dis" file as well as the ".pfb" font file, and it is
+possible to make changes to this and rebuild the pfb file with t1asm
+(see below), but this is not quite as simple as modifying a TeX
+virtual font.
+
+The programs are written in Perl, and have not been tested on
+systems other than Unix. (Apart from the #! line at the top, the
+only Unix specificities the author is aware of are two references to
+"/dev/null" in mkt1font and the general assumption that filenames
+can be of any length.) At run time, mkt1font invokes two further
+font utilities, t1asm and t1disasm, written by I. Lee Hetherington
+and available from CTAN ftp sites: look in the directory
+/tex-archive/fonts/utilities/t1utils. If it is intended to use the
+fonts output by mkt1font with Adobe Type Manager, it will probably
+be necessary to create ".inf" and/or ".pfm" files for them: for this
+there is a useful shareware program for MS-DOS called REFONT, which
+can be found at http://www.asy.com/sharewr.htm.
+
+Detailed instructions for using the two programs follow. In each
+case these instructions can also be seen by typing the name of the
+program with a "-h" option.
+
+
+Mkt1font
+~~~~~~~~
+Syntax: mkt1font -n fontname -d definition-file -a afm-file -f font-file
+ [-s shrink-factor] [-c candrabindu-adjustment] [-b]
+
+Mkt1font creates new Type 1 PostScript fonts based on existing fonts
+("input fonts"). In order to do this it makes use of I. Lee
+Hetherington's programs t1asm and t1disasm, which must be present on
+the system. A successful run will generate an AFM file and a PFB
+file, as well as a DIS file containing a disassembled version of the
+PFB file (including useful comments). Four options must be specified
+on the command line, as follows:
+
+ -n should name the font it is intended to generate. Avoid names
+ such as "myfont", as both mkt1font and other programs attempt
+ to draw conclusions from the name; better would be something
+ like "Utopia_French-BoldItalic". The generated font files will
+ also use this for their basename.
+
+ -d should refer to a font definition file. This file (which could
+ usefully be named, e.g., "French.def") should consist of lines
+ of character definitions, in the form
+ "number" "character"
+ or
+ "number" "character" "accent"
+ Here "number" represents the character's position in the new
+ encoding and may be expressed in decimal, octal or hex;
+ "character" names the character (e.g. "comma", "eight", "A")
+ or consists of the word ".notdef" (indicating that the
+ specified number's "slot" in the new encoding is to be empty);
+ and "accent" optionally names an accent to be placed on the
+ character. In addition to the standard accents available in
+ PostScript fonts, "underbar" and "underdot" are also available,
+ as are "under" versions of all the normal superscript accents
+ ("underdieresis", "underring", etc.). The Indian accent
+ "candrabindu" may also be specified: it is formed by
+ overprinting a breve with a dotaccent. Finally, "overdot" may
+ be used as a synonym for "dotaccent".
+
+ If the character named in the "accent" position is not in fact
+ a valid accent character, the program interprets the definition
+ as a request for a digraph formed from the "character" and the
+ "accent". A digraph consisting of, say, "k" and "h" will be
+ indistinguishable from the letters "k" and "h" printed
+ consecutively, but the digraph "kh" can itself receive accents
+ like any other character: see next paragraph.
+
+ A new character (such as "amacron" or "kh") may be freely
+ used in the "character" position of a further definition (such
+ as "amacron breve" or "kh underbar"). There is no constraint
+ on the ordering of definitions within a definition file. The
+ definition of "a macron" does not have to precede that of
+ "amacron breve": requests for "impossible" characters are
+ deferred until their constituents have had a chance to come into
+ being.
+
+ "Slots" for which no new definition is given retain the
+ definition they have in the input font.
+
+ The definition file may also contain blank lines and comments
+ (introduced by "#").
+
+ -a should refer to the AFM (Adobe Font Metrics) file for the input
+ font.
+
+ -f should refer to the binary font file (PFB) for the input font.
+ (In fact the equivalent ASCII file (PFA) is also acceptable for
+ input, but the output font is always in PFB format.)
+
+ -s may optionally give the factor, expressed as a per-thousand
+ value, by which normally superscript accents (such as dieresis,
+ ring) should be shrunk when they are used as subscript accents
+ (such as underdieresis, underring). Values of around 800 may be
+ found useful.
+
+ -c may optionally give two comma-separated numerical values to
+ adjust the x and y coordinates of the dotaccent placed within a
+ breve to form the candrabindu accent.
+
+ -b may optionally be specified to block the use of predefined
+ accented characters, forcing mkt1font to define its own
+ versions. This may be useful to secure a consistent appearance
+ in cases where a font designer does not share mkt1font's views
+ on where accents should be placed.
+
+The -h option prints this help.
+
+
+Vpl2vpl
+~~~~~~~
+Syntax: vpl2vpl -d definition-file [-s shrink-factor]
+ [-c candrabindu-adjustment] [-b] vpl-file
+
+Vpl2vpl creates new TeX virtual fonts based on existing virtual
+fonts ("input fonts"). A successful run will read a vpl (Virtual
+Property List) file and a definition file, and will generate a new
+vpl file on standard output. The input font is assumed to adhere to
+the standard TeX encoding for text fonts unless it was created with
+the program afm2tfm, in which case it is assumed to conform to the
+encoding specified in the file dvips.enc. In either case, the name
+of the input font is assumed to be the name of the input file
+without its .vpl extension: it must conform to normal TeX
+conventions for naming fonts, as vpl2vpl attempts to draw
+conclusions from it about the kind of font it is dealing with.
+
+In the case of a non-virtual font (such as the Computer Modern
+fonts), use a pl (Property List) file, created with the standard
+utility tftopl, as the input file in place of a vpl file; vpl2vpl
+will make the necessary changes on the fly.
+
+A typical complete sequence of commands to create a new virtual
+font might therefore be
+ afm2tfm Times-Roman.afm -t dvips.enc -v ptmr rptmr
+ vpl2vpl -d ISO-Latin1.def ptmr.vpl >ptmr_isol1.vpl
+ vptovf ptmr_isol1.vpl ptmr_isol1.vf ptmr_isol1.tfm
+for a PostScript font, or
+ tftopl cmr10.tfm cmr10.pl
+ vpl2vpl -d ISO-Latin1.def cmr10.pl >cmr10_isol1.vpl
+ vptovf cmr10_isol1.vpl cmr10_isol1.vf cmr10_isol1.tfm
+for a Computer Modern font.
+
+In order to keep the whole upper half of the character set free for
+the requirements of the encoding specified in the definition file,
+certain modifications are made to input fonts following the
+dvips.enc encoding to bring them into greater conformity with the
+TeX norm. In particular, the characters dotaccent and hungarumlaut
+are placed in the positions assigned by TeX ("5F, "7D), not those
+enforced by dvips.enc ("C7, "CD). The f-ligatures, double quotes and
+dashes are also moved from the upper half of the character set to
+their normal TeX positions. As a result, the following characters
+are not found in the lower half of the character set: quotesingle,
+quotedbl, backslash, underscore, braceleft, bar, braceright. These
+characters can, however, be assigned positions in the output font if
+they are needed. (Indeed, they could all be explicitly restored to
+their dvips.enc positions if this were desired.)
+
+Options:
+
+ -d should refer to a font definition file. This file (which could
+ usefully be named, e.g., "French.def") should consist of lines
+ of character definitions, in the form
+ "number" "character"
+ or
+ "number" "character" "accent"
+
+ Here "number" represents the character's position in the new
+ encoding and may be expressed in decimal, octal or hex;
+ "character" names the character (e.g. "comma", "eight", "A") or
+ consists of the word ".notdef" (indicating that the specified
+ number's "slot" in the new encoding is to be empty); and
+ "accent" optionally names an accent to be placed on the
+ character. In addition to the standard accents available in
+ PostScript fonts, "underbar" and "underdot" are also available,
+ as are "under" versions of all the normal superscript accents
+ ("underdieresis", "underring", etc.). The Indian accent
+ "candrabindu" may also be specified: it is formed by
+ overprinting a breve with a dotaccent. Finally, "overdot" may
+ be used as a synonym for "dotaccent".
+
+ If the character named in the "accent" position is not in fact
+ a valid accent character, the program interprets the definition
+ as a request for a digraph formed from the "character" and the
+ "accent". A digraph consisting of, say, "k" and "h" will be
+ indistinguishable from the letters "k" and "h" printed
+ consecutively, but the digraph "kh" can itself receive accents
+ like any other character: see next paragraph.
+
+ A new character (such as "amacron" or "kh") may be freely
+ used in the "character" position of a further definition (such
+ as "amacron breve" or "kh underbar"). There is no constraint
+ on the ordering of definitions within a definition file. The
+ definition of "a macron" does not have to precede that of
+ "amacron breve": requests for "impossible" characters are
+ deferred until their constituents have had a chance to come into
+ being.
+
+ "Slots" for which no new definition is given retain the
+ definition they have in the input font.
+
+ The definition file may also contain blank lines and comments
+ (introduced by "#").
+
+ -s may optionally give the factor, expressed as a per-thousand
+ value, by which normally superscript accents (such as dieresis,
+ ring) should be shrunk when they are used as subscript accents
+ (such as underdieresis, underring). Values of around 800 may be
+ found useful.
+
+ -c may optionally give two comma-separated numerical values to
+ adjust the x and y coordinates of the dotaccent placed within a
+ breve to form the candrabindu accent. A coordinate scheme using
+ "DESIGNUNITS R 1000" is assumed.
+
+ -b may optionally be specified to block the use of predefined
+ accented characters, forcing vpl2vpl to define its own
+ versions. This may be useful to secure a consistent appearance
+ in cases where a font designer does not share vpl2vpl's views
+ on where accents should be placed.
+
+ -h prints this help.
+
+
+John D. Smith jds10@cam.ac.uk
+University of Cambridge http://bombay.oriental.cam.ac.uk