diff options
author | Karl Berry <karl@freefriends.org> | 2016-02-01 00:29:20 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-02-01 00:29:20 +0000 |
commit | 1d8a0a4de7511796c6ae480e117312e0a7f25762 (patch) | |
tree | 50c54f4587dfbbe8414f441f3d65e8b73f53ce42 /Build/source/texk/dvipsk | |
parent | cb8f0920baea5f42d4c347411027950f260eb62f (diff) |
afm2tfm 8.4: do not adjust heights downward; new option -a to omit all height adjustments
git-svn-id: svn://tug.org/texlive/trunk@39530 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk')
-rw-r--r-- | Build/source/texk/dvipsk/ChangeLog | 9 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/NEWS | 4 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/afm2tfm.1 | 17 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/afm2tfm.c | 125 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/dvips.info | 296 | ||||
-rw-r--r-- | Build/source/texk/dvipsk/dvips.texi | 35 |
6 files changed, 293 insertions, 193 deletions
diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog index 978043f2b40..ef13ba12963 100644 --- a/Build/source/texk/dvipsk/ChangeLog +++ b/Build/source/texk/dvipsk/ChangeLog @@ -1,3 +1,12 @@ +2016-01-21 Karl Berry <karl@freefriends.org> + + * dvips.texi (Afm2tfm options) <-a>: document new option. + * afm2tfm.c (openfiles): new option -a. + (USAGE): include it in list for --help. + (noaccentheightadjust): new global to remember it. + (texheight): do nothing if -a is specified, + or if the heuristically-guessed height is less than the original. + 2015-07-10 Peter Breitenlohner <peb@mppmu.mpg.de> * test-dvips (removed): Renamed ... diff --git a/Build/source/texk/dvipsk/NEWS b/Build/source/texk/dvipsk/NEWS index 411391f7dae..2a42138ee09 100644 --- a/Build/source/texk/dvipsk/NEWS +++ b/Build/source/texk/dvipsk/NEWS @@ -1,5 +1,9 @@ This file records noteworthy changes. (Public domain.) +dvips 5.996 (TeX Live 2016). + afm2tfm 8.4: only adjust heights of base characters upward for accent + position, and new option -a to omit all adjustments. + dvips 5.995 (TeX Live 2015). Portability/build changes only. diff --git a/Build/source/texk/dvipsk/afm2tfm.1 b/Build/source/texk/dvipsk/afm2tfm.1 index 32822173aa4..dc13351833c 100644 --- a/Build/source/texk/dvipsk/afm2tfm.1 +++ b/Build/source/texk/dvipsk/afm2tfm.1 @@ -1,5 +1,4 @@ -.\" man page for afm2tfm -.TH AFM2TFM 1 "9 August 1990" +.TH AFM2TFM 1 "21 January 2016" .SH NAME afm2tfm \- convert Adobe font metrics to TeX font metrics .SH DESCRIPTION @@ -9,17 +8,15 @@ such as which describes the characteristics of the font called Times-Roman. To use such fonts with TeX, we need TFM files that contain similar information. This program does that conversion. For more -information, print out the dvips manual. +information, see the dvips documentation. .SH FILES .I psfonts.map -in the config directory used by dvips (update this). -.br -.I ../afm/Makefile -in the dvips sources (look at this for examples). +in the config directory used by dvips. .SH "SEE ALSO" -dvips(1), tex(1), vptovf(1) +dvips(1), tex(1), vptovf(1), fontinst(1), afm2pl(1), otftotfm(1) .SH BUGS An option to add letterspacing to the virtual font was rejected by Knuth -because it would make the fi and fl ligatures break the normal rhythmic pattern. +because it would make the fi and fl ligatures break the normal rhythmic +pattern. .SH AUTHORS -Tomas Rokicki <rokicki@cs.stanford.edu> and Donald E. Knuth +Tomas Rokicki and Donald E. Knuth. Send bug reports to tex-k@tug.org. diff --git a/Build/source/texk/dvipsk/afm2tfm.c b/Build/source/texk/dvipsk/afm2tfm.c index 75eaf26d886..bc629ca03aa 100644 --- a/Build/source/texk/dvipsk/afm2tfm.c +++ b/Build/source/texk/dvipsk/afm2tfm.c @@ -226,6 +226,7 @@ float italicangle = 0.0; char fixedpitch; char makevpl; char pedantic; +int noaccentheightadjust; int xheight = 400; int fontspace; int bc, ec; @@ -1188,27 +1189,82 @@ writetfm(void) { /* OK, the TFM file is done! Now for our next trick, the VPL file. */ /* For TeX we want to compute a character height that works properly - * with accents. The following list of accents doesn't need to be complete. */ -/* - * We only do this if the xheight has a reasonable value. - * (>50) - */ -const char *accents[] = { "acute", "tilde", "caron", "dieresis", NULL}; + with accents. We only do this if the xheight has a reasonable value + (>50), and only if the -a flag is not given. Furthermore, we never + return a height less than the height of the original character. + + The idea of this routine is to adjust the heights of bare characters + (say, t) so that the result of using the \accent primitive (say, \"t) + is the same as a precomposed tdieresis character. This is done in + the vpl output, so the vf+tfm generated from the vpl are affected, + but not the original tfm. + + This idea is reasonable, but the downside is that changing the height + of the base character at all, but especially downward, has + undesirable consequences: when putting a rule over the character or + constructing a math bar-over accent, for example, the rule will be + too close to (or too far from, if the height is increased) the + character. + + Furthermore, these days, except when using the original CM fonts, + precomposed accent glyphs are widely available and used. And afm2tfm + is not used much with the original CM fonts, as they don't come with + afm files :). + + In any case, there is one situation where adjusting the height of the + base character by looking at the standalone accent is definitely + wrong: the dcaron, tcaron, and [Ll]caron glyphs. In these cases, the + usual check-above shape is replaced by (approximately) an apostrophe + to the right of the character. Therefore looking at the standalone + check glyph is inapplicable. + + In general, it seems wrong to ever decrease the height from the + original, since that will almost certainly result in crashes with + \bar and the like. That seems worse than a mispositioned accent. + So the routine returns the original height if the heuristic would + decrease it. + + Nevertheless, despite all the above, the original behavior has been + around for so many years that it seems bad to change it now. So + adjustments upward are still made, unless -a is given. + + The following list of accents doesn't need to be complete. */ +const char *accents[] = { "acute", "tilde", "caron", "dieresis", NULL }; + static int -texheight(register struct adobeinfo *ai) +texheight(struct adobeinfo *ai) { - register const char **p; - register struct adobeinfo *aci, *acci; - if (xheight <= 50 || *(ai->adobename + 1)) return (ai->ury); - /* that was the simple case */ - for (p=accents; *p; p++) /* otherwise we look for accented letters */ - if (0 != (aci=findadobe(*p))) { - strcpy(buffer,ai->adobename); - strcat(buffer,*p); - if (0 != (acci=findadobe(buffer))) - return (acci->ury - aci->ury + xheight); + const char **p; + struct adobeinfo *aci, *acci; + /* The `ai' argument is the base letter, e.g., "d". + `aci' is the accent, e.g., "caron". + `acci' is the pre-composed accented letter, e.g., "dcaron". */ + + /* If -a was given, or the xheight is too small, or the character + name is more than one letter long, return the original height. */ + if (noaccentheightadjust + || xheight <= 50 + || *(ai->adobename + 1)) + return ai->ury; + + for (p = accents; *p; p++) { /* otherwise we look for accented letters */ + aci = findadobe(*p); + if (aci) { + strcpy(buffer, ai->adobename); + strcat(buffer, *p); + acci = findadobe(buffer); + if (acci) { + /* height heuristic since \accent assumes x-height positioning */ + int guess = acci->ury - aci->ury + xheight; + if (guess > ai->ury) { /* ignore guess if it reduces height */ + return guess; + } + } } - return (ai->ury); + } + + /* didn't find anything to adjust, return original */ + return ai->ury; } /* modified tgr to eliminate varargs problems */ @@ -1505,9 +1561,9 @@ writevpl(void) static void version(FILE *f) { - fputs ("afm2tfm(k) (dvips(k) 5.995) 8.3\n", f); + fputs ("afm2tfm(k) (dvips(k) 5.996) 8.4\n", f); fprintf (f, "%s\n", kpathsea_version_string); - fputs ("Copyright 2015 Radical Eye Software.\n\ + fputs ("Copyright 2016 Radical Eye Software.\n\ There is NO warranty. You may redistribute this software\n\ under the terms of the GNU General Public License\n\ and the Dvips copyright.\n\ @@ -1519,6 +1575,7 @@ Original author of afm2tfm: T. Rokicki.\n", f); #define USAGE "\ Convert an Adobe font metric file to TeX font metric format.\n\ \n\ +-a omit heuristic adjustment of heights for accents\n\ -c REAL use REAL for height of small caps made with -V [0.8]\n\ -e REAL widen (extend) characters by a factor of REAL\n\ -O use octal for all character codes in the vpl file\n\ @@ -1634,15 +1691,28 @@ case 'v': makevpl++; #endif error("! can't open vpl output file"); break; +case 'a': + noaccentheightadjust = 1; + arginc = 1; + break; +case 'c': + CHECKARG3 + if (sscanf(argv[3], "%f", &capheight)==0 || capheight<0.01) + error("! Bad small caps height"); + break; case 'e': CHECKARG3 if (sscanf(argv[3], "%f", &efactor)==0 || efactor<0.01) error("! Bad extension factor"); efactorparam = argv[3]; break; -case 'c': +case 'O': + forceoctal = 1; + arginc = 1; + break; +case 'P': +case 'p': CHECKARG3 - if (sscanf(argv[3], "%f", &capheight)==0 || capheight<0.01) - error("! Bad small caps height"); + inenname = argv[3]; break; case 's': CHECKARG3 @@ -1650,11 +1720,6 @@ case 's': error("! Bad slant parameter"); slantparam = argv[3]; break; -case 'P': -case 'p': - CHECKARG3 - inenname = argv[3]; - break; case 'T': CHECKARG3 inenname = outenname = argv[3]; @@ -1663,10 +1728,6 @@ case 't': CHECKARG3 outenname = argv[3]; break; -case 'O': - forceoctal = 1; - arginc = 1; - break; case 'u': pedantic = 1; arginc = 1; diff --git a/Build/source/texk/dvipsk/dvips.info b/Build/source/texk/dvipsk/dvips.info index 919e98ee7a3..d7b14581ecf 100644 --- a/Build/source/texk/dvipsk/dvips.info +++ b/Build/source/texk/dvipsk/dvips.info @@ -1,4 +1,5 @@ -This is dvips.info, produced by makeinfo version 5.2 from dvips.texi. +This is dvips.info, produced by texi2any version 6.0.92+dev from +dvips.texi. This manual documents Dvips version 5.995 (April 2015), a program to translate a DVI file into PostScript. You may freely use, modify and/or @@ -2866,10 +2867,10 @@ results of the conversion are affected by the command-line options and especially by the reencodings you can specify with those options. You can also obtain special effects such as an oblique font. - An alternative to Afm2tfm for creating virtual fonts is Alan -Jeffrey's 'fontinst' program, available from -'CTAN:fonts/utilities/fontinst' (for CTAN info, *note -(kpathsea)unixtex.ftp::). + Alternatives to Afm2tfm for creating virtual fonts include 'fontinst' +<http://ctan.org/pkg/fontinst>, 'lcdf-typetools', particularly +'otftotfm' (<http://ctan.org/pkg/lcdf-typetools>), and 'afm2p' +(<http://tex.aanhet.net/afm2pl/>), among others. * Menu: @@ -3187,22 +3188,22 @@ File: dvips.info, Node: Afm2tfm options, Prev: Special font effects, Up: Invo Synopsis: afm2tfm [OPTION]... AFMFILE[.afm] [TFMFILE[.tfm]] - Afm2tfm reads AFMFILE and writes a corresponding (but raw) TFM file. -If TFMFILE is not supplied, the base name of the AFM file is extended -with '.tfm' to get the output filename. + Afm2tfm reads AFMFILE and writes a corresponding (but "raw", see +below) TFM file. If TFMFILE is not supplied, the base name of the AFM +file is extended with '.tfm' to get the output filename. The simplest example: afm2tfm Times-Roman rptmr The TFM file thus created is "raw" because it omits ligature and kern -information, and does no character remapping; it simply contains the -character information in the AFM file in TFM form, which is the form +information, and does no character remapping; it contains only the +character information in the AFM file in TFM format, which is the form that TeX understands. The characters have the same code in the TFM file as in the AFM file. For text fonts, this means printable ASCII characters will work ok, but little else, because standard PostScript fonts have a different encoding scheme than the one that plain TeX -expects (*note Encodings::). Although both schemes agree for the +expects (*note Encodings::). Although the encodings agree for most printable ASCII characters, other characters such as ligatures and accents vary. Thus, in practice, it's almost always desirable to create a virtual font as well with the '-v' or '-V' option. *Note Making a @@ -3210,6 +3211,16 @@ font available::. The command line options to Afm2tfm: +'-a' + By default, Afm2tfm looks for precomposed accented characters, such + as tdieresis, and possibly adjusts the height of the basic letter + (t) upward so that the result of using '\accent' (as in '\"t') is + visually the same as the precomposed characters. The '-a' option + omits such adjustments, so that all characters' heights remain as + they are given in the AFM file. (Until Afm2tfm 8.4, released in + 2016, heights could also be adjusted downward, but this is no + longer the case.) + '-c RATIO' See '-V'; overrides the default ratio of 0.8 for the scaling of small caps. @@ -3714,16 +3725,17 @@ Index * --version: Option details. (line 18) * -a: Option details. (line 21) * -A: Option details. (line 27) +* -a <1>: Afm2tfm options. (line 33) * -B: Option details. (line 37) * -b NUM: Option details. (line 31) * -c NUM: Option details. (line 41) * -C NUM: Option details. (line 46) -* -c RATIO: Afm2tfm options. (line 33) +* -c RATIO: Afm2tfm options. (line 43) * -d NUM: Option details. (line 52) * -D NUM: Option details. (line 58) * -E: Option details. (line 82) * -e NUM: Option details. (line 71) -* -e RATIO: Afm2tfm options. (line 37) +* -e RATIO: Afm2tfm options. (line 47) * -f: Option details. (line 98) * -F: Option details. (line 110) * -G: Option details. (line 117) @@ -3741,13 +3753,13 @@ Index * -n NUM: Option details. (line 200) * -noomega: Option details. (line 211) * -noptex: Option details. (line 217) -* -O: Afm2tfm options. (line 41) +* -O: Afm2tfm options. (line 51) * -o NAME: Option details. (line 233) * -O X-OFFSET,Y-OFFSET: Option details. (line 250) * -P PRINTER: Option details. (line 282) * -p PS-ENC: Changing PostScript encodings. (line 6) -* -p PS-ENC <1>: Afm2tfm options. (line 46) +* -p PS-ENC <1>: Afm2tfm options. (line 56) * -p [=]NUM: Option details. (line 268) * -pp FIRST-LAST: Option details. (line 277) * -pp RANGE: Option details. (line 277) @@ -3758,29 +3770,29 @@ Index * -R: Option details. (line 308) * -s: Option details. (line 316) * -S NUM: Option details. (line 323) -* -s SLANT: Afm2tfm options. (line 51) +* -s SLANT: Afm2tfm options. (line 61) * -T ENC-FILE: Changing both encodings. (line 6) * -T HSIZE,VSIZE: Option details. (line 348) * -t PAPERTYPE: Option details. (line 328) -* -T PS-TEX-ENC: Afm2tfm options. (line 61) +* -T PS-TEX-ENC: Afm2tfm options. (line 71) * -t TEX-ENC: Changing TeX encodings. (line 6) -* -t TEX-ENC <1>: Afm2tfm options. (line 56) +* -t TEX-ENC <1>: Afm2tfm options. (line 66) * -U: Option details. (line 363) -* -u: Afm2tfm options. (line 65) +* -u: Afm2tfm options. (line 75) * -u PSMAPFILE: Option details. (line 355) * -v: Option details. (line 371) * -V: Option details. (line 374) -* -v VPL-FILE: Afm2tfm options. (line 71) -* -V VPL-FILE: Afm2tfm options. (line 74) +* -v VPL-FILE: Afm2tfm options. (line 81) +* -V VPL-FILE: Afm2tfm options. (line 84) * -x NUM: Option details. (line 383) * -X NUM: Option details. (line 391) * -Y NUM: Option details. (line 398) * -z: Hypertext. (line 6) * -Z for compressing bitmap fonts: Option details. (line 407) * -z for recognizing hyperdvi: Option details. (line 401) -* '..'-relative filenames: Option details. (line 308) +* ..-relative filenames: Option details. (line 308) * .afm Adobe metric files: Metric files. (line 26) * .dvipsrc, searched for: Configuration file searching. (line 14) @@ -3844,8 +3856,9 @@ Index * A4size paper size: Config file paper sizes. (line 90) * absolute filenames, disabling: Option details. (line 308) -* absolute page number, and '-l': Option details. (line 169) -* absolute page number, and '-p': Option details. (line 268) +* absolute page number, and -l: Option details. (line 169) +* absolute page number, and -p: Option details. (line 268) +* accent height adjustment, omitting: Afm2tfm options. (line 33) * accents, in wrong position: Reencoding with Afm2tfm. (line 32) * accents, wrong: Afm2tfm options. (line 17) @@ -3860,7 +3873,7 @@ Index * Aladdin Ghostscript: Ghostscript installation. (line 6) * Anderson, Laurie: Hypertext specials. (line 42) -* angle ('psfile' special option): psfile special. (line 36) +* angle (psfile special option): psfile special. (line 36) * arcs: Glyph files. (line 17) * ASCII character codes, used by PostScript: PostScript typesetting. (line 31) @@ -3904,7 +3917,7 @@ Index (line 6) * CharStrings Type 1 dictionary: PostScript typesetting. (line 51) -* clip ('psfile' special option): psfile special. (line 39) +* clip (psfile special option): psfile special. (line 39) * clipping of EPSF: EPSF clipping. (line 6) * CODINGSCHEME: Reencoding with Afm2tfm. (line 51) @@ -3935,7 +3948,7 @@ Index * compressing bitmap fonts: Option details. (line 407) * Computer Modern in PostScript: Hypertext caveats. (line 6) * Computer Modern, encoding of: Encodings. (line 15) -* condensed fonts: Afm2tfm options. (line 37) +* condensed fonts: Afm2tfm options. (line 47) * config.proto: config.ps installation. (line 14) * config.ps: Option details. (line 282) @@ -3988,13 +4001,13 @@ Index (line 6) * device dependency, and virtual fonts: Configuration file commands. (line 177) -* dictionary, 'CharStrings': PostScript typesetting. +* dictionary, CharStrings: PostScript typesetting. (line 51) * dictionary, PostScript language: PostScript typesetting. (line 35) -* dictionary, 'SDict': Literal headers. (line 6) -* dictionary, 'userdict': Header files. (line 21) -* distillation, and '-z': Option details. (line 401) +* dictionary, SDict: Literal headers. (line 6) +* dictionary, userdict: Header files. (line 21) +* distillation, and -z: Option details. (line 401) * distiller, for PDF files: Hypertext. (line 11) * dot accent: Reencoding with Afm2tfm. (line 32) @@ -4066,7 +4079,7 @@ Index * examples of literal PostScript: Literal examples. (line 6) * expanded fonts: Special font effects. (line 24) -* expanded fonts <1>: Afm2tfm options. (line 37) +* expanded fonts <1>: Afm2tfm options. (line 47) * expanded fonts <2>: psfonts.map. (line 19) * expansion, of virtual fonts: Virtual fonts. (line 33) * extended URL: Hypertext specials. (line 20) @@ -4121,7 +4134,7 @@ Index (line 6) * ghostview: Ghostscript installation. (line 12) -* Ghostview, and no 'N': Ghostscript installation. +* Ghostview, and no N: Ghostscript installation. (line 12) * glyph files: Glyph files. (line 6) * GLYPHFONTS, overrides P: Configuration file commands. @@ -4153,15 +4166,15 @@ Index (line 6) * hints: PostScript typesetting. (line 55) -* hoffset ('psfile' special option): psfile special. (line 18) +* hoffset (psfile special option): psfile special. (line 18) * HP4Si printer and paper trays: Paper trays. (line 6) * href: Hypertext specials. (line 32) -* hscale ('psfile' special option): psfile special. (line 30) -* hsize ('psfile' special option): psfile special. (line 24) +* hscale (psfile special option): psfile special. (line 30) +* hsize (psfile special option): psfile special. (line 24) * html specials: Hypertext. (line 6) -* html specials, and '-z': Option details. (line 401) -* 'http://www.win.tue.nl/~dickie/idvi': Hypertext. (line 21) -* 'http://xxx.lanl.gov/hypertex': Hypertext. (line 21) +* html specials, and -z: Option details. (line 401) +* http://www.win.tue.nl/~dickie/idvi: Hypertext. (line 21) +* http://xxx.lanl.gov/hypertex: Hypertext. (line 21) * Hungarian umlaut: Reencoding with Afm2tfm. (line 32) * hyperdvi extensions, enabling: Option details. (line 401) @@ -4182,7 +4195,7 @@ Index (line 6) * including headers in TeX: Including headers from TeX. (line 6) -* installation of 'config.ps': config.ps installation. +* installation of config.ps: config.ps installation. (line 6) * installation of PostScript fonts: PostScript font installation. (line 6) @@ -4205,11 +4218,11 @@ Index * landscape orientation, defined: Paper size and landscape. (line 11) * landscape papertype: Option details. (line 328) -* landscape, as '\special': papersize special. (line 16) +* landscape, as \special: papersize special. (line 16) * last page printed: Option details. (line 169) -* last-resort font scaling, with 'DVIPSSIZES': Environment variables. +* last-resort font scaling, with DVIPSSIZES: Environment variables. (line 47) -* last-resort scaling, with 'R': Configuration file commands. +* last-resort scaling, with R: Configuration file commands. (line 138) * ledger papertype: Option details. (line 328) * legal papertype: Option details. (line 328) @@ -4229,8 +4242,8 @@ Index * literal headers: Literal headers. (line 6) * literal PostScript, examples: Literal examples. (line 6) * literal PostScript, using: Literal PS. (line 6) -* llx ('psfile' special option): psfile special. (line 42) -* lly ('psfile' special option): psfile special. (line 42) +* llx (psfile special option): psfile special. (line 42) +* lly (psfile special option): psfile special. (line 42) * long documents not printing: Long documents fail. (line 6) * low characters, shifting: Option details. (line 117) * lpr spooler, MS-DOS emulation: Option details. (line 238) @@ -4284,7 +4297,7 @@ Index * no output at all: No output. (line 6) * non-printing characters, shifting: Option details. (line 117) * non-resident fonts: psfonts.map. (line 6) -* nopaper, paper format for '-t': Config file paper sizes. +* nopaper, paper format for -t: Config file paper sizes. (line 74) * O config command (offset): Configuration file commands. (line 114) @@ -4292,7 +4305,7 @@ Index (line 106) * oblique fonts: Special font effects. (line 6) -* octal character codes: Afm2tfm options. (line 41) +* octal character codes: Afm2tfm options. (line 51) * odd pages only: Option details. (line 27) * offset pages: Option details. (line 250) * Omega extensions: Option details. (line 211) @@ -4334,7 +4347,7 @@ Index * paper trays: Paper trays. (line 6) * paper type: Option details. (line 328) * papersize special: papersize special. (line 6) -* papersize special, and no '-t': Option details. (line 328) +* papersize special, and no -t: Option details. (line 328) * partial font downloading: psfonts.map. (line 55) * PDF files, font quality: Hypertext caveats. (line 6) * PDF files, making: Ghostscript installation. @@ -4348,14 +4361,14 @@ Index * pfm files: Metric files. (line 48) * Phaser printer, used for color calibration: Color device configuration. (line 18) -* physical page number, and '-l': Option details. (line 169) -* physical page number, and '-p': Option details. (line 268) -* physical page number, and 'bop-hook': PostScript hooks. (line 26) +* physical page number, and -l: Option details. (line 169) +* physical page number, and -p: Option details. (line 268) +* physical page number, and bop-hook: PostScript hooks. (line 26) * pipes, not readable: Option details. (line 98) * pk files: Glyph files. (line 35) * PKFONTS, overrides P: Configuration file commands. (line 126) -* plotfile, 'ps' subspecial: ps special. (line 29) +* plotfile, ps subspecial: ps special. (line 29) * pltotf: Metric files. (line 39) * popen for output: Option details. (line 238) * portrait orientation, defined: Paper size and landscape. @@ -4400,7 +4413,7 @@ Index * printer offset: Option details. (line 250) * PRINTER, and config file searching: Configuration file searching. (line 36) -* PRINTER, avoided with '-f': Option details. (line 98) +* PRINTER, avoided with -f: Option details. (line 98) * printer, driving directly: Option details. (line 110) * problems: Diagnosing problems. (line 6) * property list files: Metric files. (line 39) @@ -4427,6 +4440,7 @@ Index (line 135) * R fallback resolution config command: Configuration file commands. (line 138) +* raw tfm files: Afm2tfm options. (line 17) * reencode/*.enc: Encodings. (line 35) * reencoding: Reencoding with Afm2tfm. (line 6) @@ -4443,10 +4457,10 @@ Index * resolution <1>: Option details. (line 398) * resolution, setting: Option details. (line 58) * reverse pagination: Option details. (line 305) -* rhi ('psfile' special option): psfile special. (line 46) +* rhi (psfile special option): psfile special. (line 46) * Rokicki, Tomas: Why Dvips. (line 60) * rotate.tex: ps special. (line 33) -* rwi ('psfile' special option): psfile special. (line 46) +* rwi (psfile special option): psfile special. (line 46) * S config command (pict path): Configuration file commands. (line 163) * s config command (save/restore): Configuration file commands. @@ -4457,7 +4471,7 @@ Index * save/restore, generating global: Option details. (line 316) * scaleunit: psfile special. (line 66) * scaling of figures: EPSF scaling. (line 6) -* scaling small caps: Afm2tfm options. (line 33) +* scaling small caps: Afm2tfm options. (line 43) * Scandinavian A ring: Reencoding with Afm2tfm. (line 32) * screen frequencies, setting: Including headers from the command line. @@ -4481,7 +4495,7 @@ Index (line 13) * slanted fonts: Special font effects. (line 6) -* slanted fonts, making: Afm2tfm options. (line 51) +* slanted fonts, making: Afm2tfm options. (line 61) * SlantFont: Special font effects. (line 17) * small caps fonts: Special font effects. @@ -4556,13 +4570,13 @@ Index * uncompressing PostScript: Dynamic creation of graphics. (line 6) * uniform resource locator: Hypertext specials. (line 20) -* unknown, paper format for '-t': papersize special. (line 29) -* unknown, paper format for '-t' <1>: Config file paper sizes. +* unknown, paper format for -t: papersize special. (line 29) +* unknown, paper format for -t <1>: Config file paper sizes. (line 69) * URL, definition: Hypertext specials. (line 27) * URL, extended for TeX: Hypertext specials. (line 20) -* urx ('psfile' special option): psfile special. (line 42) -* ury ('psfile' special option): psfile special. (line 42) +* urx (psfile special option): psfile special. (line 42) +* ury (psfile special option): psfile special. (line 42) * usage, basic: Basic usage. (line 6) * user-definable colors: User-definable colors. (line 6) @@ -4580,12 +4594,12 @@ Index * VM exhausted: Printer errors. (line 14) * VMusage: Headers and memory usage. (line 12) -* voffset ('psfile' special option): psfile special. (line 21) +* voffset (psfile special option): psfile special. (line 21) * vpl files: Virtual fonts. (line 16) * vptovf: Making a font available. (line 52) -* vscale ('psfile' special option): psfile special. (line 33) -* vsize ('psfile' special option): psfile special. (line 27) +* vscale (psfile special option): psfile special. (line 33) +* vsize (psfile special option): psfile special. (line 27) * W config command (warning): Configuration file commands. (line 182) * warning messages, defining: Configuration file commands. @@ -4606,82 +4620,82 @@ Index Tag Table: -Node: Top517 -Node: Why Dvips1263 -Node: Installation4280 -Node: config.ps installation5283 -Node: PostScript font installation7890 -Node: Ghostscript installation8810 -Node: Diagnosing problems9747 -Node: Debug options10838 -Node: No output11842 -Node: Small or inverted13308 -Node: Printer errors14026 -Node: Long documents fail15358 -Node: Including graphics fails15699 -Node: Invoking Dvips16938 -Node: Basic usage17560 -Node: Command-line options18564 -Node: Option summary19012 -Node: Option details21206 -Node: Environment variables40851 -Node: Config files43712 -Node: Configuration file searching44382 -Node: Configuration file commands47635 -Node: Paper size and landscape55292 -Node: papersize special56890 -Node: Config file paper sizes58299 -Node: Paper trays62455 -Node: Interaction with PostScript63789 -Node: PostScript figures64442 -Node: Bounding box65168 -Node: \includegraphics68540 -Node: EPSF macros70833 -Node: EPSF scaling72833 -Node: EPSF clipping75403 -Node: psfile special76045 -Node: Dynamic creation of graphics78437 -Node: Fonts in figures79755 -Node: Header files81405 -Node: Including headers from TeX82615 -Node: Including headers from the command line84653 -Node: Headers and memory usage85752 -Node: Literal PS86963 -Node: " special87545 -Node: ps special88286 -Node: Literal headers89784 -Node: PostScript hooks90493 -Node: Literal examples92589 -Node: Hypertext94043 -Node: Hypertext caveats95591 -Node: Hypertext specials99979 -Node: PostScript fonts102613 -Node: Font concepts103730 -Node: Metric files104897 -Node: Glyph files107677 -Node: Virtual fonts110036 -Node: Encodings111862 -Node: PostScript typesetting114265 -Node: Making a font available117350 -Node: Invoking afm2tfm122384 -Node: Changing font encodings123342 -Node: Changing TeX encodings124133 -Node: Changing PostScript encodings125235 -Node: Changing both encodings126579 -Node: Reencoding with Afm2tfm127253 -Node: Encoding file format130356 -Node: Special font effects134560 -Node: Afm2tfm options136820 -Node: psfonts.map139806 -Node: Color144536 -Node: Color macro files145580 -Node: User-definable colors148773 -Node: Color subtleties150049 -Node: Ted Turner151701 -Node: Color device configuration152926 -Node: Color support details155370 -Node: Color specifications155748 -Node: Color specials157152 -Node: Index159281 +Node: Top524 +Node: Why Dvips1270 +Node: Installation4287 +Node: config.ps installation5290 +Node: PostScript font installation7897 +Node: Ghostscript installation8817 +Node: Diagnosing problems9754 +Node: Debug options10845 +Node: No output11849 +Node: Small or inverted13315 +Node: Printer errors14033 +Node: Long documents fail15365 +Node: Including graphics fails15706 +Node: Invoking Dvips16945 +Node: Basic usage17567 +Node: Command-line options18571 +Node: Option summary19019 +Node: Option details21213 +Node: Environment variables40858 +Node: Config files43719 +Node: Configuration file searching44389 +Node: Configuration file commands47642 +Node: Paper size and landscape55299 +Node: papersize special56897 +Node: Config file paper sizes58306 +Node: Paper trays62462 +Node: Interaction with PostScript63796 +Node: PostScript figures64449 +Node: Bounding box65175 +Node: \includegraphics68547 +Node: EPSF macros70840 +Node: EPSF scaling72840 +Node: EPSF clipping75410 +Node: psfile special76052 +Node: Dynamic creation of graphics78444 +Node: Fonts in figures79762 +Node: Header files81412 +Node: Including headers from TeX82622 +Node: Including headers from the command line84660 +Node: Headers and memory usage85759 +Node: Literal PS86970 +Node: " special87552 +Node: ps special88293 +Node: Literal headers89791 +Node: PostScript hooks90500 +Node: Literal examples92596 +Node: Hypertext94050 +Node: Hypertext caveats95598 +Node: Hypertext specials99986 +Node: PostScript fonts102620 +Node: Font concepts103737 +Node: Metric files104904 +Node: Glyph files107684 +Node: Virtual fonts110043 +Node: Encodings111869 +Node: PostScript typesetting114272 +Node: Making a font available117357 +Node: Invoking afm2tfm122391 +Node: Changing font encodings123408 +Node: Changing TeX encodings124199 +Node: Changing PostScript encodings125301 +Node: Changing both encodings126645 +Node: Reencoding with Afm2tfm127319 +Node: Encoding file format130422 +Node: Special font effects134626 +Node: Afm2tfm options136886 +Node: psfonts.map140411 +Node: Color145141 +Node: Color macro files146185 +Node: User-definable colors149378 +Node: Color subtleties150654 +Node: Ted Turner152306 +Node: Color device configuration153531 +Node: Color support details155975 +Node: Color specifications156353 +Node: Color specials157757 +Node: Index159886 End Tag Table diff --git a/Build/source/texk/dvipsk/dvips.texi b/Build/source/texk/dvipsk/dvips.texi index 5f24ef52d81..d841bcdea37 100644 --- a/Build/source/texk/dvipsk/dvips.texi +++ b/Build/source/texk/dvipsk/dvips.texi @@ -3621,10 +3621,11 @@ can also obtain special effects such as an oblique font. @pindex fontinst @cindex virtual fonts, creating @cindex Jeffrey, Alan -An alternative to Afm2tfm for creating virtual fonts is Alan Jeffrey's -@code{fontinst} program, available from -@file{@var{CTAN:}fonts/utilities/fontinst} (for CTAN info, -@pxref{unixtex.ftp,,, kpathsea, Kpathsea}). +Alternatives to Afm2tfm for creating virtual fonts include +@code{fontinst} @url{http://ctan.org/pkg/fontinst}, +@code{lcdf-typetools}, particularly @code{otftotfm} +(@url{http://ctan.org/pkg/lcdf-typetools}), and @code{afm2p} +(@url{http://tex.aanhet.net/afm2pl/}), among others. @menu * Changing font encodings:: Reencoding with -t, -p, -T. @@ -4032,9 +4033,10 @@ Synopsis: afm2tfm [@var{option}]@dots{} @var{afmfile}[.afm] [@var{tfmfile}[.tfm]] @end example -Afm2tfm reads @var{afmfile} and writes a corresponding (but raw) TFM -file. If @var{tfmfile} is not supplied, the base name of the AFM file is -extended with @samp{.tfm} to get the output filename. +Afm2tfm reads @var{afmfile} and writes a corresponding (but ``raw'', +see below) TFM file. If @var{tfmfile} is not supplied, the base name +of the AFM file is extended with @samp{.tfm} to get the output +filename. The simplest example: @@ -4043,15 +4045,16 @@ afm2tfm Times-Roman rptmr @end example @cindex accents, wrong +@cindex raw tfm files @noindent The TFM file thus created is @dfn{raw} because it omits ligature and -kern information, and does no character remapping; it simply contains -the character information in the AFM file in TFM form, which is the form +kern information, and does no character remapping; it contains only +the character information in the AFM file in TFM format, which is the form that @TeX{} understands. The characters have the same code in the TFM file as in the AFM file. For text fonts, this means printable ASCII characters will work ok, but little else, because standard PostScript fonts have a different encoding scheme than the one that plain @TeX{} -expects (@pxref{Encodings}). Although both schemes agree for the +expects (@pxref{Encodings}). Although the encodings agree for most printable ASCII characters, other characters such as ligatures and accents vary. Thus, in practice, it's almost always desirable to create a virtual font as well with the @samp{-v} or @samp{-V} option. @@ -4060,6 +4063,18 @@ a virtual font as well with the @samp{-v} or @samp{-V} option. The command line options to Afm2tfm: @table @samp +@item -a +@opindex -a +@cindex accent height adjustment, omitting +By default, Afm2tfm looks for precomposed accented characters, such as +tdieresis, and possibly adjusts the height of the basic letter (t) +upward so that the result of using @code{\accent} (as in @code{\"t}) +is visually the same as the precomposed characters. The @code{-a} +option omits such adjustments, so that all characters' heights remain +as they are given in the AFM file. (Until Afm2tfm 8.4, released in +2016, heights could also be adjusted downward, but this is no longer +the case.) + @item -c @var{ratio} @opindex -c @var{ratio} @cindex scaling small caps |