diff options
Diffstat (limited to 'Master/texmf/doc/info')
-rw-r--r-- | Master/texmf/doc/info/dir | 71 | ||||
-rw-r--r-- | Master/texmf/doc/info/dvipng.info | 977 | ||||
-rw-r--r-- | Master/texmf/doc/info/dvips.info | 4675 | ||||
-rw-r--r-- | Master/texmf/doc/info/eplain.info | 6422 | ||||
-rw-r--r-- | Master/texmf/doc/info/fontname.info | 15489 | ||||
-rw-r--r-- | Master/texmf/doc/info/info-stnd.info | 2620 | ||||
-rw-r--r-- | Master/texmf/doc/info/info.info | 1410 | ||||
-rw-r--r-- | Master/texmf/doc/info/kpathsea.info | 4647 | ||||
-rw-r--r-- | Master/texmf/doc/info/latex.info | 4309 | ||||
-rw-r--r-- | Master/texmf/doc/info/tds.info | 1714 | ||||
-rw-r--r-- | Master/texmf/doc/info/texdraw.info | 2429 | ||||
-rw-r--r-- | Master/texmf/doc/info/texi2html.info | 3637 | ||||
-rw-r--r-- | Master/texmf/doc/info/texinfo.info | 18328 | ||||
-rw-r--r-- | Master/texmf/doc/info/web2c.info | 4739 |
14 files changed, 71467 insertions, 0 deletions
diff --git a/Master/texmf/doc/info/dir b/Master/texmf/doc/info/dir new file mode 100644 index 00000000000..2c439c310f0 --- /dev/null +++ b/Master/texmf/doc/info/dir @@ -0,0 +1,71 @@ +This is the file .../info/dir, which contains the +topmost node of the Info hierarchy, called (dir)Top. +The first time you invoke Info you start off looking at this node. + +File: dir, Node: Top This is the top of the INFO tree + + This (the Directory node) gives a menu of major topics. + Typing "q" exits, "?" lists all Info commands, "d" returns here, + "h" gives a primer for first-timers, + "mEmacs<Return>" visits the Emacs manual, etc. + + In Emacs, you can click mouse button 2 on a menu item or cross reference + to select it. + +* Menu: + +Texinfo documentation system +* Info: (info). How to use the documentation browsing system. +* Texinfo: (texinfo). The GNU documentation format. +* Texi2HTML: (texi2html). Texinfo to HTML Converter. +* info standalone: (info-stnd). Read Info documents without Emacs. +* infokey: (info-stnd)Invoking infokey. Compile Info customizations. +* install-info: (texinfo)Invoking install-info. Update info/dir entries. +* makeinfo: (texinfo)Invoking makeinfo. Translate Texinfo source. +* texi2dvi: (texinfo)Format with texi2dvi. Print Texinfo documents. +* texindex: (texinfo)Format with tex/texindex. Sort Texinfo index files. + +TeX +* DVI-to-PNG: (dvipng). DVI to Portable Network Graphics (PNG). +* DVI-to-Postscript: (dvips). Translating TeX DVI files to PostScript. +* Eplain: (eplain). Expanding on plain TeX. +* Kpathsea: (kpathsea). File lookup along search paths. +* LaTeX2e: (latex). LaTeXe help 1.6. +* Naming TeX fonts: (fontname). Filenames for TeX fonts. +* TDS: (tds). Standard TeX directory structure. +* TeXDraw: (texdraw). Drawing PostScript diagrams within TeX. +* Web2c: (web2c). TeX, Metafont, and companion programs. +* afm2tfm: (dvips)Invoking afm2tfm. Making Type 1 fonts available to TeX. +* bibtex: (web2c)bibtex invocation. Maintaining bibliographies. +* dmp: (web2c)dmp invocation. Troff->MPX (MetaPost pictures). +* dvicopy: (web2c)dvicopy invocation. Virtual font expansion +* dvips: (dvips)Invoking Dvips. DVI-to-PostScript translator. +* dvitomp: (web2c)dvitomp invocation. DVI to MPX (MetaPost pictures). +* dvitype: (web2c)dvitype invocation. DVI to human-readable text. +* gftodvi: (web2c)gftodvi invocation. Generic font proofsheets. +* gftopk: (web2c)gftopk invocation. Generic to packed fonts. +* gftype: (web2c)gftype invocation. GF to human-readable text. +* kpsewhich: (kpathsea)Invoking kpsewhich. TeX file searching. +* makempx: (web2c)makempx invocation. MetaPost label typesetting. +* mf: (web2c)mf invocation. Creating typeface families. +* mft: (web2c)mft invocation. Prettyprinting Metafont source. +* mktexlsr: (kpathsea)Filename database. Update ls-R. +* mktexmf: (kpathsea)mktex scripts. MF source generation. +* mktexpk: (kpathsea)mktex scripts. PK bitmap generation. +* mktextex: (kpathsea)mktex scripts. TeX source generation. +* mktextfm: (kpathsea)mktex scripts. TeX font metric generation. +* mltex: (web2c)MLTeX. Multi-lingual TeX. +* mpost: (web2c)mpost invocation. Creating technical diagrams. +* mpto: (web2c)mpto invocation. MetaPost label extraction. +* newer: (web2c)newer invocation. Compare modification times. +* patgen: (web2c)patgen invocation. Creating hyphenation patterns. +* pktogf: (web2c)pktogf invocation. Packed to generic fonts. +* pktype: (web2c)pktype invocation. PK to human-readable text. +* pltotf: (web2c)pltotf invocation. Property list to TFM. +* pooltype: (web2c)pooltype invocation. Display WEB pool files. +* tangle: (web2c)tangle invocation. WEB to Pascal. +* tex: (web2c)tex invocation. Typesetting. +* tftopl: (web2c)tftopl invocation. TFM -> property list. +* vftovp: (web2c)vftovp invocation. Virtual font -> virtual pl. +* vptovf: (web2c)vptovf invocation. Virtual pl -> virtual font. +* weave: (web2c)weave invocation. WEB to TeX. diff --git a/Master/texmf/doc/info/dvipng.info b/Master/texmf/doc/info/dvipng.info new file mode 100644 index 00000000000..a575c11a9fd --- /dev/null +++ b/Master/texmf/doc/info/dvipng.info @@ -0,0 +1,977 @@ +This is dvipng.info, produced by makeinfo version 4.8 from dvipng.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* DVI-to-PNG: (dvipng). Translating TeX DVI files to Portable Network Graphics (PNG). +* dvipng: (dvipng). A DVI-to-PNG translator. +END-INFO-DIR-ENTRY + + +File: dvipng.info, Node: Top, Next: Introduction, Up: (dir) + +dvipng +****** + +This manual documents dvipng, a program to translate a DVI (DeVice +Independent) file into PNG (Portable Network Graphics). + + This file documents dvipng version 1.6 + + Corrections or perhaps rewrites of sections are _very welcome_. + + Jan-AAke Larsson + +* Menu: + +* Introduction:: Introduction +* Installation:: How to compile and install dvipng +* Basic usage:: First things first +* Command-line options:: Advanced usage +* Diagnosing problems:: Problems? +* Color:: Using color with dvipng +* Copying:: GNU General Public License +* Credits:: People who have contributed +* Index:: General index + + +File: dvipng.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top + +1 Introduction +************** + +This program makes PNG and/or GIF graphics from DVI files as obtained +from TeX and its relatives. + + If GIF support is enabled, GIF output is chosen by using the +`dvigif' binary or with the `--gif' option. + + It is intended to produce anti-aliased screen-resolution images as +fast as is possible. The target audience is people who need to generate +and regenerate many images again and again. The primary target is the +preview-latex (X)Emacs package, a package to preview formulas from +within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs +buffer, see `http://preview-latex.sf.net'. + + Another example is WeBWorK, an internet-based method for delivering +homework problems to students over the internet, giving students +instant feedback as to whether or not their answers are correct, see +`http://webwork.math.rochester.edu'. + + Other applications may also benefit, like web applications as +latex2html and WYSIWYG editors like LyX. + + The benefits of `dvipng'/`dvigif' include + + * Speed. It is a very fast bitmap-rendering code for DVI files. On a + fairly low-end laptop, it takes less than a second to generate 150 + one-formula images. This makes dvipng suitable for generating large + amounts of images on-the-fly, as needed in preview-latex, WeBWorK + and others. + + * It does not read the postamble, so it can be started before TeX + finishes. There is a -follow switch that makes dvipng wait at EOF + for further output, unless it finds the POST marker that indicates + the end of the DVI. + + * Interactive query of options. dvipng can read options interactively + through stdin, and all options are usable. It is even possible to + change the input file through this interface. + + * Supports PK, VF, PostScript Type1, and TrueType fonts, color + specials and simple PostScript inclusion specials. + + * and more... + + + +File: dvipng.info, Node: Installation, Next: Basic usage, Prev: Introduction, Up: Top + +2 Installation +************** + +Installing dvipng should be simple: merely `./configure', `make', and +`make install'. + +* Menu: + +* Prerequisites:: +* Configure:: +* Build/install:: +* Installation outside the texmf tree:: +* Advice for non-privileged users:: + + +File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation + +2.1 Prerequisites +================= + + * The GD Graphics Draw library, libgd + + The drawing library `libgd' is necessary, and is downloadable at + `http://www.boutell.com/gd', and there are binary packages for + most operating systems from their respective distributors. In any + case, the latest version of the library installs using `autoconf' + so it should not be difficult for you to install it from source, + and then proceed with installing dvipng. + + * The path-searching library kpathsea + + Kpathsea is most likely included in your LaTeX installation, but it + may happen that ./configure does not find it; see below. If you do + not have it, download it from `http://www.ctan.org' and compile it. + I have no experience with this, so I cannot help much here. + + * FreeType 2 and/or T1lib + + While not strictly necessary, you may want to have FreeType 2 or + T1lib available. Their presence will enable direct support for + PostScript fonts in dvipng, rather than using `gsftopk' for + rendering the fonts. If you have PostScript versons of Computer + Modern installed, there will be no need to generate bitmapped + variants on disk of these. Then, you can render images at + different (and unusual) resolutions without cluttering the disk + with lots of bitmapped fonts. If both FreeType 2 and T1lib are + present, FreeType will be internally preferred by dvipng, but + T1lib can be chosen at runtime. + + * libpng and libz + + To be able to compress and write PNG files to disk, dvipng (or + really libgd) uses libpng which in turn uses libz. These should be + available on any modern system, if not, download them and install + them. + + * The `texinfo' package + + This is needed for building the documentation. + + +File: dvipng.info, Node: Configure, Next: Build/install, Prev: Prerequisites, Up: Installation + +2.2 Configure +============= + +The first step is to configure the source code, telling it where +various files will be. To do so, run + + ./configure OPTIONS + + (Note: if you have fetched dvipng from CVS rather than a regular +release, you will have to first generate `./configure' by running +`autoconf' 2.53 or later in the `preview' directory.) + + On many machines, you will not need to specify any options, but if +`configure' cannot determine something on its own, you'll need to help +it out. For a list of the options type + + ./configure --help + + On some machines, the libraries will be installed in directories that +are not in the linker's search path. This will generate an error when +running `./configure', indicating that it cannot find libgd or +libkpathsea (most likely). You then need to specify the path to the +respective library's object files. They are typically called e.g., +`libgd.a' or `libgd.so'. If they are located in e.g., `/sw/local/lib', +do + + ./configure LDFLAGS=-L/sw/local/lib + + If the library is available as a shared object file (`.so'), the +runtime linker may also need to be told where to find the library, then +use + + ./configure LDFLAGS='-L/sw/local/lib -R/sw/local/lib' + + When either of these is necessary, it is likely that the C header +files are also installed in directories that are not in the C +preprocessor's search path. This will also generate an error when +running `./configure', indicating that it cannot find e.g., `gd.h' or +`kpathsea.h' (most likely). You then need to specify the path to the +respective library's C header files. If they are located in e.g., +`/sw/local/include', do + + ./configure CPPFLAGS=-I/sw/local/include + + On my SUN Solaris workstation, I had to combine this into + + ./configure CPPFLAGS='-I/sw/local/include -I/sw/tex/teTeX/1.0/include'\ + LDFLAGS='-L/sw/local/lib -R/sw/local/lib -L/sw/tex/teTeX/1.0/lib/' + +where the backslash denotes a continuation of the line. + + +File: dvipng.info, Node: Build/install, Next: Installation outside the texmf tree, Prev: Configure, Up: Installation + +2.3 Build/install +================= + +Once `configure' has been run, simply enter + + make + at the prompt to compile the C code, and build the documentation +files. To install the files into the locations chosen earlier, type + + make install + +You may need special privileges to install, e.g., if you are installing +into system directories. + + +File: dvipng.info, Node: Installation outside the texmf tree, Next: Advice for non-privileged users, Prev: Build/install, Up: Installation + +2.4 Installation outside the texmf tree +======================================= + +In some cases, a dvipng binary installed outside the texmf tree will +not be able to find virtual fonts, or the PostScript font maps +(normally used by dvips). This may be because _only_ $SELFAUTOLOC, +$SELFAUTODIR, and $SELFAUTOPARENT are used in the texmf tree +configuration file `texmf.cnf'. If so, give the switch +`--enable-selfauto-set' to `./configure'. This will make dvipng adjust +these three internally so that kpathsea thinks that dvipng _is_ +installed in the texmf tree. + + +File: dvipng.info, Node: Advice for non-privileged users, Prev: Installation outside the texmf tree, Up: Installation + +2.5 Installation for non-privileged users +========================================= + +Often people without system administration privileges want to install +software for their private use. In that case you need to specify more +options to the `configure' script, usually this is done by using the +`--prefix' option to the `configure' script, and let it point to the +personal home directory. In that way, resulting binaries will be +installed under the `bin' subdirectory of your home directory, manual +pages under `man' and so on. That way, it is reasonably easy to +maintain a bunch of additional packages, since the prefix argument is +supported by most `configure' scripts. + + You'll have to add something like `/home/myself/bin' to your `PATH' +shell variable, if it isn't there already, and similarly set the +`INFOPATH' variable to be able to access the documentation. + + +File: dvipng.info, Node: Basic usage, Next: Command-line options, Prev: Installation, Up: Top + +3 Basic usage of dvipng +*********************** + +To use dvipng at its simplest, simply type + + dvipng foo + +where `foo.dvi' is the output of TeX that you want to convert to PNG +format. If there are four pages in `foo.dvi', those pages will be +output as `foo1.png', `foo2.png', `foo3.png', and `foo4.png', +respectively. + + If you have enabled the PostScript font support (via FreeType or +T1lib), fonts will be rendered as they are needed. Otherwise, if you +use fonts that have not been used on your system before, they may be +automatically generated; this process can take a few minutes, so +progress reports appear by default. The next time the same font is +used, it will have been saved on disk, so rendering will go much +faster. (If dvipng tries to endlessly generate the same fonts over and +over again, something is wrong. *Note Unable to generate fonts: +(kpathsea)Unable to generate fonts.) + + Many options are available (see the next section). For a brief +summary of available options, just type + + dvipng --help + + +File: dvipng.info, Node: Command-line options, Next: Diagnosing problems, Prev: Basic usage, Up: Top + +4 Command-line options +********************** + +dvipng has a plethora of command line options. Reading through this +section will give a good idea of the capabilities of the driver. + +* Menu: + +* Option summary:: Quick listing, from dvipng --help. +* Option details:: More information about each option. + + +File: dvipng.info, Node: Option summary, Next: Option details, Up: Command-line options + +4.1 Option summary +================== + +Here is a handy summary of the options; it is printed out when you run +dvipng with no arguments or with the standard `--help' option. + + This is dvipng 1.6 Copyright 2002-2005 Jan-Ake Larsson + + Usage: dvipng [OPTION]... FILENAME[.dvi] + Options are chosen to be similar to dvips' options where possible: + -d # Debug (# is the debug bitmap, 1 if not given) + -D # Output resolution + -l # Last page to be output + --mode s MetaFont mode (default 'cx') + -M* Don't make PK fonts + -o f Output file, '%d' is pagenumber + -O c Image offset + -p # First page to be output + -pp #,#.. Page list to be output + -q* Quiet operation + -r* Reverse order of pages + -T c Image size (also accepts '-T bbox' and '-T tight') + -v* Verbose operation + -x # Override dvi magnification + - Interactive query of options + + These do not correspond to dvips options: + -bd # Transparent border width in dots + -bd s Transparent border fallback color (TeX-style color) + --bdpi # Set the base (Metafont) resolution + -bg s Background color (TeX-style color or 'Transparent') + --depth* Output the image depth on stdout + --dvinum* Use TeX page numbers in output filenames + -fg s Foreground color (TeX-style color) + --follow* Follow mode + --gamma # Control color interpolation + --gif Output GIF images (dvigif default) + --height* Output the image height on stdout + --noghostscript* Don't use ghostscript for PostScript specials + --nogssafer* Don't use -dSAFER in ghostscript calls + --picky When a warning occurs, don't output image + --png Output PNG images (dvipng default) + --strict When a warning occurs, exit + --t1lib* T1lib font rendering (default on) + --truecolor* Truecolor output + -Q # Quality (T1lib and PK subsampling) + -z # PNG compression level + + # = number f = file s = string * = suffix, '0' to turn off + c = comma-separated dimension pair (e.g., 3.2in,-32.1cm) + + +File: dvipng.info, Node: Option details, Prev: Option summary, Up: Command-line options + +4.2 Option details +================== + +Many of the parameterless options listed here can be turned off by +suffixing the option with a zero (`0'); for instance, to turn off page +reversal, use `-r0'. Such options are marked with a trailing `*'. + +`-' + Read additional options from standard input after processing the + command line. + +`--help' + Print a usage message and exit. + +`--version' + Print the version number and exit. + +`-bd NUM' + +`-bd COLOR_SPEC' + +`-bd 'NUM COLOR_SPEC'' + Set the pixel width of the transparent border (default 0). Using + this option will make the image edges transparent, but it only + affects pixels with the background color. Giving a COLOR_SPEC will + set the fallback color, to be used in viewers that cannot handle + transparency (the default is the background color). The color spec + should be in TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'. + Setting the fallback color makes the default border width 1 px. + *Note Color::. + +`--bdpi NUM' + Set the base (Metafont) resolution, both horizontal and vertical, + to NUM dpi (dots per inch). This option is necessary when manually + selecting Metafont mode with the -mode option (see below). + +`-bg COLOR_SPEC' + Choose background color for the images. This option will be + ignored if there is a background color \special in the DVI. The + color spec should be in TeX color \special syntax, e.g., 'rgb 1.0 + 0.0 0.0'. You can also specify 'Transparent' or 'transparent' + which will give you a transparent background with the normal + background as a fallback color. A capitalized 'Transparent' will + give a full-alpha transparency, while an all-lowercase + 'transparent' will give a simple fully transparent background with + non-transparent antialiased pixels. The latter would be suitable + for viewers who cannot cope with a true alpha channel. GIF images + do not support full alpha transparency, so in case of GIF output, + both variants will use the latter behaviour. *Note Color::. + +`-d NUM' + Set the debug flags, showing what dvipng (thinks it) is doing. + This will work unless dvipng has been compiled without the `DEBUG' + option (not recommended). Set the flags as you need them, use `-d + -1' as the first option for maximum output. *Note Debug options::. + +`-D NUM' + Set the output resolution, both horizontal and vertical, to NUM + dpi (dots per inch). + + One may want to adjust this to fit a certain text font size (e.g., + on a web page), and for a text font height of FONT_PX pixels (in + Mozilla) the correct formula is + DPI = FONT_PX * 72.27 / 10 [px * TeXpt/in / TeXpt] + The last division by ten is due to the standard font height 10pt in + your document, if you use 12pt, divide by 12. Unfortunately, some + proprietary browsers have font height in pt (points), not pixels. + You have to rescale that to pixels, using the screen resolution + (default is usually 96 dpi) which means the formula is + FONT_PX = FONT_PT * 96 / 72 [pt * px/in / (pt/in)] + On some high-res screens, the value is instead 120 dpi. Good luck! + +`--depth*' + Report the depth of the image. This only works reliably when the + LaTeX style `preview.sty' from preview-latex is used. It reports + the number of pixels from the bottom of the image to the baseline + of the image. This can be used for vertical positioning of the + image in, e.g., web documents, where one would use (Cascading + StyleSheets 1) + <IMG SRC="FILENAME.PNG" STYLE="vertical-align: -DEPTHpx"> + The depth is a negative offset in this case, so the minus sign is + necessary, and the unit is pixels (px). + +`--dvinum*' + Set this option to make the output page number be the TeX page + numbers rather than the physical page number. See the `-o' switch. + +`-fg COLOR_SPEC' + Choose foreground color for the images. This option will be + ignored if there is a foreground color \special in the DVI. The + color spec should be in TeX color \special syntax, e.g., 'rgb 1.0 + 0.0 0.0'. *Note Color::. + +`--follow*' + Enable follow mode. One of the benefits of dvipng is that it does + not read the postamble, so it can be started before TeX finishes. + This switch makes dvipng wait at EOF for further output, unless it + finds the POST marker that indicates the end of the DVI. This is + similar to `tail -f' but for DVI-to-PNG conversion. + +`--freetype*' + Enable/disable FreeType font rendering (default on). This option is + available if the FreeType2 font library was present at compilation + time. If this is the case, dvipng will have direct support for + PostScript Type1 and TrueType fonts internally, rather than using + `gsftopk' for rendering the fonts. If you have PostScript versions + of Computer Modern installed, there will be no need to generate + bitmapped variants on disk of these. Then, you can render images + at different (and unusual) resolutions without cluttering the disk + with lots of bitmapped fonts. Note that if you have both FreeType + and T1lib on your system, FreeType will be preferred by dvipng. If + you for some reason would want to use T1lib rendering, use this + option. + +`--gamma NUM' + Control the interpolation of colors in the greyscale anti-aliasing + color palette. Default value is 1.0. For 0 < NUM < 1, the fonts + will be lighter (more like the background), and for NUM > 1, the + fonts will be darker (more like the foreground). + +`--gif*' + The images are output in the GIF format, if GIF support is + enabled. This is the default for the `dvigif' binary, which only + will be available when GIF support is enabled. See also the + `--png' option. + +`--height*' + Report the height of the image. This only works reliably when the + LaTeX style `preview.sty' from preview-latex is used. It reports + the number of pixels from the top of the image to the baseline of + the image. The total height of the image is obtained as the sum of + the values reported from -height and the -depth. + +`-l [=]NUM' + The last page printed will be the first one numbered NUM. Default + is the last page in the document. If NUM is prefixed by an equals + sign, then it (and the argument to the `-p' option, if specified) + is treated as a physical (absolute) page number, rather than a + value to compare with the TeX `\count0' values stored in the DVI + file. Thus, using `-l =9' will end with the ninth page of the + document, no matter what the pages are actually numbered. + +`--mode MODE' + Use MODE as the Metafont device name for the PK fonts (both for + path searching and font generation). This needs to be augmented + with the base device resolution, given with the `--bdpi' option. + See the file `ftp://ftp.tug.org/tex/modes.mf' for a list of + resolutions and mode names for most devices. *Note Unable to + generate fonts: (kpathsea)Unable to generate fonts. + +`-M*' + Turns off automatic PK font generation (`mktexpk'). This will have + no effect when using PostScript fonts, since no PK font generation + will be done anyway. + +`--noghostscript*' + This switch prohibits the internal call to GhostScript for + displaying PostScript specials. `--noghostscript0' turns the call + back on. + +`--nogssafer*' + Normally, if GhostScript is used to render PostScript specials, the + GhostScript interpreter is run with the option `-dSAFER'. The + `-nogssafer' option runs GhostScript without `-dSAFER'. The + `-dSAFER' option in Ghostscript disables PostScript operators such + as deletefile, to prevent possibly malicious PostScript programs + from having any effect. + +`-o NAME' + Send output to the file NAME. A single occurrence of `%d' or + `%01d', ..., `%09d' will be exchanged for the physical page number + (this can be changed, see the `--dvinum' switch). The default + output filename is `FILE%d.png' where the input DVI file was + `FILE.dvi'. + +`-O X-OFFSET,Y-OFFSET' + Move the origin by X-OFFSET,Y-OFFSET, a comma-separated pair of + dimensions such as `.1in,-.3cm'. The origin of the page is + shifted from the default position (of one inch down, one inch to + the right from the upper left corner of the paper) by this amount. + +`-p [=]NUM' + The first page printed will be the first one numbered NUM. Default + is the first page in the document. If NUM is prefixed by an + equals sign, then it (and the argument to the `-l' option, if + specified) is treated as a physical (absolute) page number, rather + than a value to compare with the TeX `\count0' values stored in the + DVI file. Thus, using `-p =3' will start with the third page of + the document, no matter what the pages are actually numbered. + +`--picky*' + No images are output when a warning occurs. Normally, dvipng will + output an image in spite of a warning, but there may be something + missing in this image. One reason to use this option would be if + you have a more complete but slower fallback converter. Mainly, + this is useful for failed figure inclusion and unknown \special + occurrences, but warnings will also occur for missing or unknown + color specs and missing PK fonts. + +`--png*' + The images are output in the PNG format. This is the default for + the `dvipng' binary. See also the `--gif' option. + +`-pp FIRSTPAGE-LASTPAGE' + Print pages FIRSTPAGE through LASTPAGE; but not quite equivalent + to `-p FIRSTPAGE -l LASTPAGE'. For example, when rendering a book, + there may be several instances of a page in the DVI file (one in + `\frontmatter', one in `\mainmatter', and one in `\backmatter'). + In case of several pages matching, `-pp FIRSTPAGE-LASTPAGE' will + render _all_ pages that matches the specified range, while `-p + FIRSTPAGE -l LASTPAGE' will render the pages from the _first_ + occurrence of FIRSTPAGE to the _first_ occurrence of LASTPAGE. + This is the (undocumented) behaviour of dvips. In dvipng you can + give both kinds of options, in which case you get all pages that + matches the range in `-pp' between the pages from `-p' to `-l'. + Also multiple `-pp' options accumulate, unlike `-p' and `-l'. The + `-' separator can also be `:'. Note that `-pp -1' will be + interpreted as "all pages up to and including 1", if you want a + page numbered -1 (only the table of contents, say) put `-pp -1--1', + or more readable, `-pp -1:-1'. + +`-q*' + Run quietly. Don't chatter about pages converted, etc. to standard + output; report no warnings (only errors) to standard error. + +`-Q NUM' + Set the quality to NUM. That is, choose the number of antialiasing + levels for PK and T1lib rendering to be NUM*NUM. The default value + is 4 which gives 16 levels of antialiasing for antialiased fonts + from these two. If FreeType is available, its rendering is + unaffected by this option. + +`-r*' + Toggle output of pages in reverse/forward order. By default, the + first page in the DVI is output first. + +`-T IMAGE_SIZE' + Set the image size to IMAGE_SIZE which can be either of `bbox', + `tight', or a comma-separated pair of dimensions HSIZE,VSIZE such + as `.1in,.3cm'. The default is `bbox' which produces a PNG that + includes all ink put on the page and in addition the DVI origin, + located 1in from the top and 1in from the left edge of the paper. + This usually gives whitespace above and to the left in the + produced image. The value `tight' will make dvipng only include + all ink put on the page, producing neat images. This option + overrides any papersize special in the DVI file. + +`--t1lib*' + Enable/disable T1lib font rendering (default on). This option is + available if the T1lib font library was present at compilation + time. If this is the case, dvipng will have direct support for + PostScript Type1 fonts internally, rather than using `gsftopk' for + rendering the fonts. If you have PostScript versions of Computer + Modern installed, there will be no need to generate bitmapped + variants on disk of these. Then, you can render images at + different (and unusual) resolutions without cluttering the disk + with lots of bitmapped fonts. Note that if you have both FreeType + and T1lib on your system FreeType will be preferred by dvipng, and + if you for some reason rather want to use T1lib, give the option + `--freetype0' (see above). + +`--truecolor*' + On systems with a fairly new `libgd', one can choose to generate + truecolor output. This will not be necessary in general unless you + include truecolor images via a PostScript special (i.e., the + `graphics' or `graphicx' package). It will lead to longer + execution time, mostly because more data is written to disk. + +`-v*' + Enable verbose operation. This will currently indicate what fonts + is used, in addition to the usual output. + +`-x NUM' + Set the x magnification ratio to NUM/1000. Overrides the + magnification specified in the DVI file. Must be between 10 and + 100000. It is recommended that you use standard magstep values + (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help + reduce the total number of PK files generated. NUM may be a real + number, not an integer, for increased precision. + +`-z NUM' + Set the PNG compression level to NUM. This option is enabled if + your `libgd' is new enough. The default compression level is 1, + which selects maximum speed at the price of slightly larger PNGs. + For an older `libgd', the hard-soldered value 5 is used. The + include file `png.h' says + + Currently, valid values range from 0 - 9, corresponding + directly to the zlib compression levels 0 - 9 (0 - no + compression, 9 - "maximal" compression). Note that tests have + shown that zlib compression levels 3-6 usually perform as + well as level 9 for PNG images, and do considerably fewer + calculations. In the future, these values may not correspond + directly to the zlib compression levels. + + +File: dvipng.info, Node: Diagnosing problems, Next: Color, Prev: Command-line options, Up: Top + +5 Diagnosing problems +********************* + +You've gone through all the trouble of installing dvipng, carefully read +all the instructions in this manual, and still can't get something to +work. The following sections provide some helpful hints if you find +yourself in such a situation. + + Bug reports should be sent to <dvipng@nongnu.org>. + + Questions, suggestions for new features, pleas for help, and/or +praise should go to <dvipng@nongnu.org>. For more information on this +mailing list, send a message with just the word `help' as subject or +body to <dvipng-request@nongnu.org> or look at +`http://lists.nongnu.org/mailman/listinfo/dvipng'. + + Offers to support further development will be appreciated. For +developer access, ask on <dvipng@nongnu.org>. + + For details on the TeX path-searching library, and `mktexpk' +problems, *note Common problems: (kpathsea)Common problems. + +* Menu: + +* Debug options:: Getting diagnostics. +* Included graphics problems:: Figures are wrongly rendered. + + +File: dvipng.info, Node: Debug options, Next: Included graphics problems, Up: Diagnosing problems + +5.1 Debug options +================= + +The `-d' flag to dvipng helps in tracking down certain errors. The +parameter to this flag is an integer that tells what errors are +currently being tracked. To track a certain class of debug messages, +simply provide the appropriate number given below; if you wish to track +multiple classes, sum the numbers of the classes you wish to track. To +track all classes, you can use `-1'. + + Some of these debugging options are actually provided by Kpathsea +(*note Debugging: (kpathsea)Debugging.). + + The classes are: +1 + Normal dvi op-codes + +2 + Virtual fonts + +4 + PK fonts + +8 + TFM files + +16 + Glyph rendering + +32 + FreeType calls + +64 + Encoding loads + +128 + Color specials + +256 + GhostScript specials + +512 + T1lib calls + +1024 + Kpathsea `stat' calls + +2048 + Kpathsea hash table lookups + +4096 + Kpathsea path element expansion + +8192 + Kpathsea path searches + + + +File: dvipng.info, Node: Included graphics problems, Prev: Debug options, Up: Diagnosing problems + +5.2 Included graphics problems +============================== + +The most common problem with including graphics is an incorrect bounding +box. Complain to whoever wrote the software that generated the file if +the bounding box is indeed incorrect. + + An additional problem is that the image in dvipng is always clipped +to the bounding box. This is because the image is rendered by +GhostScript by an internal call and then copied to the dvipng image. At +present no workaround is known, but there may be one for a future +GhostScript. We'll see. + + +File: dvipng.info, Node: Color, Next: Copying, Prev: Diagnosing problems, Up: Top + +6 Color +******* + +To support color, dvipng recognizes a certain set of specials. These +specials start with the keyword `color' or the keyword `background', +followed by a color specification. + +* Menu: + +* Color specifications:: +* Color specials:: + + +File: dvipng.info, Node: Color specifications, Next: Color specials, Up: Color + +6.1 Color specifications +======================== + +The color specification supported by dvipng is by-value or by-name. The +by-value spec starts with the name of a color model (one of `rgb', +`hsb', `cmy', `cmyk', or `gray') followed by the appropriate number of +parameters. Thus, the color specification `rgb 0.3 0.4 0.5' would +correspond to the color that is `0.3 0.4 0.5' in its red, blue and +green values. The color used internally in dvipng is `RGB' (discretized +to 256 levels), for details on the formulas used in conversion, see the +`xcolor' documentation. + + By-name color specifications are single (case-dependent) words and +are compared with color names defined in `dvipsnam.def' (from the +`graphics' bundle), `svgnam.def' and `xcolor.sty' (from the `xcolor' +bundle). + + On the command-line, the name `Transparent' can also be used in as +an argument to `--bg' to choose transparent background. *Note Option +details::. + + +File: dvipng.info, Node: Color specials, Prev: Color specifications, Up: Color + +6.2 Color specials +================== + +We will describe `background' first, since it is the simplest. The +`background' keyword must be followed by a color specification. That +color specification is used as a fill color for the background. The +last `background' special on a page is the one that gets used, and is +used for the whole of the page image. (This is possible because the +prescan phase of dvipng notices all of the color specials so that the +appropriate information can be written out during the second phase.) + + The `color' special itself has three forms. The first is just +`color' followed by a color specification. In this case, the current +global color is set to that color; the color stack must be empty when +such a command is executed. + + The second form is `color push' followed by a color specification. +This saves the current color on the color stack and sets the color to be +that given by the color specification. This is the most common way to +set a color. + + The final version of the `color' special is just `color pop', with +no color specification; this says to pop the color last pushed on the +color stack from the color stack and set the current color to be that +color. + + dvipng correctly handles these color specials across pages, even when +the pages are rendered repeatedly or in reverse order. + + +File: dvipng.info, Node: Credits, Next: Index, Prev: Copying, Up: Top + +7 Credits +********* + +A number of persons have contributed, if I forget to mention someone, I +apologize. First and foremost we have David Kastrup whose preview-latex +project provided the incentive to write this program. There is also a +number of people who have contributed by reporting bugs and suggesting +improvements as the thing has evolved. These include but is perhaps not +limited to (in semi-random order): Thomas Esser (teTeX), Christian +Schenk (MIKTeX), Brian R Furry (debian package), Angus Leeming (LyX), +Thomas Boutell (libgd), John Jones (first user report), Uwe Kern +(xcolor), Alan Shutko, Reiner Stieb, Nick Alcock, Adam Buchbinder, +Svend Tollak Munkejord, James Longstreet, Bernhard Simon, Bob McElrath, +Georg Schwarz, Jason Farmer, Brian V. Smith, Samuel Hathaway, Thomas R. +Shemanske, Stephen Gibson, Christian Ridderstro"m, Ezra Peisach, +William H Wheeler, Thomas Klausner, Harald Koenig, Adrian Bunk, Kevin +Smith, and Jason Riedy. + + +File: dvipng.info, Node: Copying, Next: Credits, Prev: Color, Up: Top + +8 Copying +********* + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. + + This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + + You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + + +Copyright (C) 2002-2005 Jan-AAke Larsson + + +File: dvipng.info, Node: Index, Prev: Credits, Up: Top + +Index +***** + + +* Menu: + +* -dSAFER: Option details. (line 164) +* absolute page number, and -l: Option details. (line 137) +* absolute page number, and -p: Option details. (line 185) +* antialiasing levels, number of: Option details. (line 229) +* background color (option): Option details. (line 40) +* base resolution, setting: Option details. (line 35) +* baseline reporting: Option details. (line 76) +* color specifications: Color specifications. + (line 6) +* command-line options: Command-line options. + (line 6) +* compilation: Installation. (line 6) +* compression: Option details. (line 284) +* configuration, of dvipng: Installation. (line 6) +* dark fonts: Option details. (line 118) +* debugging <1>: Diagnosing problems. (line 6) +* debugging: Option details. (line 54) +* debugging options: Debug options. (line 6) +* depth reporting: Option details. (line 76) +* first page printed: Option details. (line 185) +* follow mode: Option details. (line 97) +* font generation, avoiding: Option details. (line 154) +* foreground color (option): Option details. (line 91) +* FreeType font rendering: Option details. (line 104) +* fuzzy images: Option details. (line 118) +* gamma: Option details. (line 118) +* GhostScript and -dSAFER: Option details. (line 164) +* GhostScript, turning off: Option details. (line 159) +* GIF image format: Option details. (line 124) +* graphics inclusion problems: Included graphics problems. + (line 6) +* height reporting: Option details. (line 130) +* installation, of dvipng: Installation. (line 6) +* invoking dvipng: Basic usage. (line 6) +* last page printed: Option details. (line 137) +* light fonts: Option details. (line 118) +* magnification, overriding DVI: Option details. (line 276) +* Metafont mode, specifying: Option details. (line 146) +* mktexpk, avoiding: Option details. (line 154) +* mode name, specifying: Option details. (line 146) +* no erroneous images: Option details. (line 194) +* offset pages: Option details. (line 179) +* option, details of: Option details. (line 6) +* options, debugging: Debug options. (line 6) +* options, dvipng: Command-line options. + (line 6) +* options, reading from standard input: Option details. (line 11) +* options, summary: Option summary. (line 6) +* output resolution, setting: Option details. (line 60) +* output, redirecting: Option details. (line 172) +* page range: Option details. (line 207) +* page, first printed: Option details. (line 185) +* page, last printed: Option details. (line 137) +* physical page number, and -l: Option details. (line 137) +* physical page number, and -p: Option details. (line 185) +* PNG image format: Option details. (line 203) +* problems: Diagnosing problems. (line 6) +* quality: Option details. (line 229) +* quiet operation: Option details. (line 225) +* reverse pagination: Option details. (line 236) +* silent operation: Option details. (line 225) +* standard input, reading options from: Option details. (line 11) +* standard output, output to: Option details. (line 172) +* T1lib font rendering: Option details. (line 251) +* transparent border fallback color: Option details. (line 25) +* transparent border width: Option details. (line 25) +* trouble: Diagnosing problems. (line 6) +* truecolor output: Option details. (line 265) +* warnings, suppressing: Option details. (line 225) + + + +Tag Table: +Node: Top296 +Node: Introduction1115 +Node: Installation3107 +Node: Prerequisites3454 +Node: Configure5337 +Node: Build/install7403 +Node: Installation outside the texmf tree7874 +Node: Advice for non-privileged users8581 +Node: Basic usage9574 +Node: Command-line options10701 +Node: Option summary11136 +Node: Option details13559 +Node: Diagnosing problems27947 +Node: Debug options29059 +Node: Included graphics problems30101 +Node: Color30749 +Node: Color specifications31083 +Node: Color specials32098 +Node: Credits33513 +Node: Copying34542 +Node: Index35369 + +End Tag Table diff --git a/Master/texmf/doc/info/dvips.info b/Master/texmf/doc/info/dvips.info new file mode 100644 index 00000000000..6f7348095fb --- /dev/null +++ b/Master/texmf/doc/info/dvips.info @@ -0,0 +1,4675 @@ +This is dvips.info, produced by makeinfo version 4.8 from dvips.texi. + + This manual documents Dvips version 5.95b (August 2005), a program +to translate a DVI file into PostScript. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* DVI-to-Postscript: (dvips). Translating TeX DVI files to PostScript. +* afm2tfm: (dvips)Invoking afm2tfm. Making Type 1 fonts available to TeX. +* dvips: (dvips)Invoking Dvips. DVI-to-PostScript translator. +END-INFO-DIR-ENTRY + + +File: dvips.info, Node: Top, Next: Why Dvips, Up: (dir) + +Dvips +***** + +This manual documents Dvips version 5.95b (August 2005), a program to +translate a DVI file into PostScript. + +* Menu: + +* Why Dvips:: Why use Dvips? +* Installation:: How to compile and install Dvips. +* Invoking Dvips:: Command-line options, configuration files, etc. +* Paper size and landscape:: Changing the paper dimensions. +* Interaction with PostScript:: TeX meets Dvips meets PostScript. +* PostScript fonts:: Installing and using PostScript fonts. +* Color:: Using color with Dvips. +* Index:: General index. + + +File: dvips.info, Node: Why Dvips, Next: Installation, Prev: Top, Up: Top + +1 Why use Dvips? +**************** + +The Dvips program has a number of features that set it apart from other +PostScript drivers for TeX. This rather long section describes the +advantages of using Dvips, and may be skipped if you are just +interested in learning how to use the program. *Note Installation::, +for details of compilation and installation. + + The Dvips driver generates excellent, standard PostScript, that can +be included in other documents as figures or printed through a variety +of spoolers. The generated PostScript requires very little printer +memory, so very complex documents with a lot of fonts can easily be +printed even on PostScript printers without much memory, such as the +original Apple LaserWriter. The PostScript output is also compact, +requiring less disk space to store and making it feasible as a transfer +format. + + Even those documents that are too complex to print in their entirety +on a particular printer can be printed, since Dvips will automatically +split such documents into pieces, reclaiming the printer memory between +each piece. + + The Dvips program supports graphics in a natural way, allowing +PostScript graphics to be included and automatically scaled and +positioned in a variety of ways. + + Printers with any resolution are supported, even if they have +different resolutions in the horizontal and vertical directions. High +resolution output is supported for typesetters, including an option +that compresses the bitmap fonts so that typesetter virtual memory is +not exhausted. This option also significantly reduces the size of the +PostScript file and decoding in the printer is very fast. + + Missing fonts can be automatically generated if Metafont exists on +the system, or fonts can be converted from GF to PK format on demand. +If a font cannot be generated, a scaled version of the same font at a +different size can be used instead, although Dvips will complain loudly +about the poor aesthetics of the resulting output. + + Users will appreciate features such as collated copies and support +for `tpic', `psfig', `emtex', and `METAPOST'; system administrators +will love the support for multiple printers, each with their own +configuration file, and the ability to pipe the output directly to a +program such as `lpr'. Support for MS-DOS, OS/2, and VMS in addition +to Unix is provided in the standard distribution, and porting to other +systems is easy. + + One of the most important features is the support of virtual fonts, +which add an entirely new level of flexibility to TeX. Virtual fonts +are used to give Dvips its excellent PostScript font support, handling +all the font remapping in a natural, portable, elegant, and extensible +way. Dvips even comes with its own Afm2tfm program that creates the +necessary virtual fonts and TeX font metric files automatically from +the Adobe font metric files. + + Source is provided and freely distributable, so adding a +site-specific feature is possible. Adding such features is made easier +by the highly modular structure of the program. + + There is really no reason to use another driver, and the more people +use Dvips, the less time will be spent fighting with PostScript and the +more time will be available to create beautiful documents. So if you +don't use Dvips on your system, get it today. + + Tom Rokicki wrote and maintains the original Dvips program. + + +File: dvips.info, Node: Installation, Next: Invoking Dvips, Prev: Why Dvips, Up: Top + +2 Installation +************** + +(A copy of this chapter is in the distribution file `dvipsk/INSTALL'.) + +Installing Dvips is mostly the same as installing any Kpathsea-using +program. Therefore, for the basic steps involved, *note Installation: +(kpathsea)Installation. (A copy is in the file `kpathsea/INSTALL'.) + + For solutions to common installation problems and information on how +to report a bug, see the file `kpathsea/BUGS' (*note Bugs: +(kpathsea)Bugs.). For solutions to Dvips-specific problems, *note +Debug options::. Also see the Dvips home page at +`http://www.radicaleye.com/dvips'. + + Dvips does require some additional installation, detailed in the +sections below. Also, to configure color devices, *note Color device +configuration::. + +* Menu: + +* config.ps installation:: Printer and site Dvips configuration. +* PostScript font installation:: Many PostScript fonts are freely available. +* Ghostscript installation:: A free PostScript interpreter. +* Diagnosing problems:: Some common runtime difficulties. + + +File: dvips.info, Node: config.ps installation, Next: PostScript font installation, Up: Installation + +2.1 `config.ps' installation +============================ + +Dvips has its own configuration files: a file `config.ps' for sitewide +defaults, and a file `config.PRINTER' for each printer (output device). +Since these are site-specific, `make install' does not create them; +you must create them yourself. + + (These Dvips configuration files are independent of the Kpathsea +onfiguration file `texmf.cnf' (*note Config files: (kpathsea)Config +files.). + + Dvips configuration files contents and searching are described fully +in *Note Config files::. The simplest way to create a new +configuration file is to copy and modify the file +`dvipsk/contrib/config.proto', seasoning with options to your taste +from *Note Config files::. Here is `config.proto' for your reading +pleasure: + % Prototype Dvips configuration file. + + % How to print, maybe with lp instead lpr, etc. + o |lpr + + % Default resolution of this device, in dots per inch. + D 600 + + % Metafont mode. (This is completely different from the -M command-line + % option, which controls whether MakeTeXPK is invoked.) Get + % `ftp://ftp.tug.org/tex/modes.mf' for a list of mode names. This mode + % and the D number above must agree, or MakeTeXPK will get confused. + M ljfour + + % Memory available. Download the three-line PostScript file: + % %! Hey, we're PostScript + % /Times-Roman findfont 30 scalefont setfont 144 432 moveto + % vmstatus exch sub 40 string cvs show pop showpage + % to determine this number. (It will be the only thing printed.) + m 3500000 + + % Correct printer offset. You can use testpage.tex from the LaTeX + % distribution to find these numbers. Print testpage.dvi more than once. + O 0pt,0pt + + % Partially download Type 1 fonts by default. Only reason not to do + % this is if you encounter bugs. (Please report them to + % <tex-k@mail.tug.org> if you do.) + j + + % Also look for fonts at these resolutions. + R 300 600 + + % With a high resolution and a RISC cpu, better to compress the bitmaps. + Z + + % Uncomment these if you have and want to use PostScript versions of the + % fonts. + %p +cmfonts.map + %p +lafonts.map + %p +cyrfonts.map + %p +eufonts.map + + % You will also want definitions for alternative paper sizes -- A4, + % legal, and such. Examples in `contrib/papersize.level2' and + % `contrib/papersize.simple'. + + +File: dvips.info, Node: PostScript font installation, Next: Ghostscript installation, Prev: config.ps installation, Up: Installation + +2.2 PostScript font installation +================================ + +To use PostScript fonts with TeX and Dvips, you need both metric files +(`.tfm' and `.vf') and the outlines (`.pfa' or `.pfb'). *Note Font +concepts::. + + To support the basic PostScript font set, the recommended (and +simplest) approach is to install the files at +`http://www.ctan.org/tex-archive/fonts/psfonts/lw35nfsx.zip'. This +archive contains metrics, outlines, and bitmaps (for previewing) for +the 35 de facto standard fonts donated by URW and the additional +high-quality freely available PostScript fonts donated by Adobe, +Bitstream, and URW, including geometrically-created variants such as +oblique and small caps. + + `CTAN:/fonts/psfonts' contains support for many additional fonts for +which you must buy outlines (Adobe, Bigelow & Holmes, Monotype, +Softkey, Y&Y). (For CTAN info, *note unixtex.ftp: +(kpathsea)unixtex.ftp.; a copy is in the top-level file `INSTALL'.) + + If you have additional PostScript fonts, you can make them available +to Dvips by (1) giving them with appropriate filenames; and (2) running +Afm2tfm (*note Making a font available::) to make TFM and VF metrics for +TeX and Dvips to use. Also add them to `psfonts.map' if necessary +(*note psfonts.map::); it contains everything contained in +`lw35nfsx.zip' and most fonts that come with Unix systems. + + Following are locations for vendor-supplied fonts. Please mail +<tex-k@tug.org> if you find fonts elsewhere on your system. + +DEC Ultrix + /usr/lib/DPS/outline/decwin + +DEC Digital Unix + /usr/lib/X11/fonts/Type1Adobe + +HP HP-UX 9, 10 + /usr/lib/X11/fonts/type1.st/typefaces + +IBM AIX + /usr/lpp/DPS/fonts/outlines + /usr/lpp/X11/lib/X11/fonts/Type1 + /usr/lpp/X11/lib/X11/fonts/Type1/DPS + +NeXT + /NextLibrary/Fonts/outline + +SGI IRIX + /usr/lib/DPS/outline/base /usr/lib/X11/fonts/Type1 + +Sun SunOS 4.x + (NeWSprint only) + newsprint_2.5/SUNWsteNP/reloc/$BASEDIR/ + NeWSprint/small_openwin/lib/fonts + /usr/openwin/lib/X11/fonts/Type1/outline + +Sun Solaris 2 + /usr/openwin/lib/X11/fonts/Type1/outline + +VMS + SYS$COMMON:[SYSFONT.XDPS.OUTLINE] + +The NeXT system supplies more fonts than any others, but there's a lot +of overlap. + + Finally, if you have an Hewlett-Packard printer, you should be able +to get Type 1 font files for the standard 35 fonts from HP, if the +freely available URW Type 1's do not satisfy for whatever reason. The +phone number for HP Printer Drivers is (in the United States) +303-339-7009. The driver set to ask for is Adobe Type Manager 2.51, +and the disk set number is `MP210en3'. Mentioning anything other than +Microsoft Windows when you ask for the driver set will likely lead to +great confusion on the other end. + + +File: dvips.info, Node: Ghostscript installation, Next: Diagnosing problems, Prev: PostScript font installation, Up: Installation + +2.3 Ghostscript installation +============================ + +Ghostscript is a PostScript interpreter freely available to end-users, +written by Peter Deutsch. It can read the PostScript produced by Dvips +and render it on your monitor, or for another device (e.g., an Epson +printer) that does not support PostScript, or in PDF format. The latest +version is available via `http://www.cs.wisc.edu/~ghost/index.html' and +`ftp://ftp.cs.wisc.edu/pub/ghost/aladdin/'. + + A somewhat older version of Ghostscript is available under the GNU +General Public License, free to everyone. You can get that from +`ftp://prep.ai.mit.edu/pub/gnu/'. + + The program Ghostview, written by Tim Theisen, provides typical +previewing capabilities (next page/previous page, magnification, etc.). +It requires Ghostscript to run, and files in structured Postscript, +specifically with `%%Page' comments (no `N' in `config.ps'). You can +get Ghostview from the same places as Ghostscript. + + +File: dvips.info, Node: Diagnosing problems, Prev: Ghostscript installation, Up: Installation + +2.4 Diagnosing problems +======================= + +You've gone through all the trouble of installing Dvips, carefully read +all the instructions in this manual, and still can't get something to +work. The following sections provide some helpful hints if you find +yourself in such a situation. + + For details on effective bug reporting, common installation problems, +and `mktexpk' problems, *note Bugs: (kpathsea)Bugs. + +* Menu: + +* Debug options:: Getting diagnostics. +* No output:: No output at all. +* Small or inverted:: Output too small or inverted. +* Printer errors:: The printer sends back errors. +* Long documents fail:: Long documents fail to print. +* Including graphics fails:: Figures don't work. + + +File: dvips.info, Node: Debug options, Next: No output, Up: Diagnosing problems + +2.4.1 Debug options +------------------- + +The `-d' flag to Dvips helps in tracking down certain errors. The +parameter to this flag is an integer that tells what errors are +currently being tracked. To track a certain class of debug messages, +simply provide the appropriate number given below; if you wish to track +multiple classes, sum the numbers of the classes you wish to track. To +track all classes, you can use `-1'. Another useful value is `3650', +which tracks everything having to do with file searching and opening. + + Some of these debugging options are actually provided by Kpathsea +(*note Debugging: (kpathsea)Debugging.). + + The classes are: +1 + specials + +2 + paths + +4 + fonts + +8 + pages + +16 + headers + +32 + font compression + +64 + files + +128 + config files + +256 + Partial Type 1 font encoding vectors + +512 + Partial Type 1 subr calls + +1024 + Kpathsea `stat' calls + +2048 + Kpathsea hash table lookups + +4096 + Kpathsea path element expansion + +8192 + Kpathsea path searches + + +File: dvips.info, Node: No output, Next: Small or inverted, Prev: Debug options, Up: Diagnosing problems + +2.4.2 No output at all +---------------------- + +If you are not getting any output at all, even from the simplest +one-character file (for instance, `\ \bye'), then something is very +wrong. Practically any file sent to a PostScript laser printer should +generate some output, at the very least a page detailing what error +occurred, if any. Talk to your system administrator about downloading a +PostScript error handler. (Adobe distributes a good one called +`ehandler.ps'.) + + It is possible, especially if you are using non-Adobe PostScript, +that your PostScript interpreter is broken. Even then it should +generate an error message. Dvips tries to work around as many bugs as +possible in common non-Adobe PostScript interpreters, but doubtless it +misses a few. PowerPage Revision 1, Interpreter Version 20001.001, on +a Mitsubishi Shinko CHC-S446i color thermal dye sublimation printer is +known to be unable to print with any but builtin fonts. + + If Dvips gives any strange error messages, or compilation on your +machine generated a lot of warnings, perhaps the Dvips program itself is +broken. Try using the debug options to determine where the error +occurred (*note Debug options::). + + It is possible your spooler is broken and is misinterpreting the +structured comments. Try the `-N' flag to turn off structured comments +and see what happens. + + +File: dvips.info, Node: Small or inverted, Next: Printer errors, Prev: No output, Up: Diagnosing problems + +2.4.3 Output too small or inverted +---------------------------------- + +If some documents come out inverted or too small, probably your spooler +is not supplying an end of job indicator at the end of each file. (This +commonly happens on small machines that don't have spoolers.) You can +force Dvips to do this with the `-F' flag (or `F' config file option), +but this generates files with a terminating binary character +(control-D). You can also try using the `-s' flag (or `s' config file +option) to enclose the entire job in a save/restore pair. *Note +Command-line options::, and *Note Config files::. + + +File: dvips.info, Node: Printer errors, Next: Long documents fail, Prev: Small or inverted, Up: Diagnosing problems + +2.4.4 Error messages from printer +--------------------------------- + +If your printer returns error messages, the error message gives very +good information on what might be going wrong. One of the most common +error messages is `bop undefined'. This is caused by old versions of +Transcript and other spoolers that do not properly parse the setup +section of the PostScript. To fix this, turn off structured comments +with the `-N' option, but it'd be best to get your spooling software +updated. + + Another error message is `VM exhausted'. Some printers indicate +this error by locking up, others quietly reset. This is caused by Dvips +thinking that the printer has more memory than it actually does, and +then printing a complicated document. To fix this, try lowering the +`m' parameter in the configuration file; use the debug option to make +sure you adjust the correct file. + + Other errors may indicate you are trying to include graphics that +don't nest properly in other PostScript documents, among other things. +Try the PostScript file on a QMS PS-810 or other Adobe PostScript +printer if you have one, or Ghostscript (*note Ghostscript +installation::); it might be a problem with the printer itself. + + +File: dvips.info, Node: Long documents fail, Next: Including graphics fails, Prev: Printer errors, Up: Diagnosing problems + +2.4.5 Long documents fail to print +---------------------------------- + +This is usually caused by incorrectly specifying the amount of memory +the printer has in the configuration file; see the previous section. + + +File: dvips.info, Node: Including graphics fails, Prev: Long documents fail, Up: Diagnosing problems + +2.4.6 Including graphics fails +------------------------------ + +The most common problem with including graphics is an incorrect bounding +box (*note Bounding box::). Complain to whoever wrote the software that +generated the file if the bounding box is indeed incorrect. + + Another possible problem is that the figure you are trying to include +does not nest properly; there are certain rules PostScript applications +must follow when generating files to be included. The Dvips program +includes work-arounds for such errors in Adobe Illustrator and other +programs, but there are certainly applications that haven't been tested. + + One possible thing to try is the `-K' flag which strips the comments +from an included figure. This might be necessary if the PostScript +spooling software does not read the structured comments correctly. Use +of this flag will break graphics from some applications, though, since +some applications read the PostScript file from the input stream, +looking for a particular comment. + + Any application which generates graphics output containing raw binary +(not ASCII hex) will probably fail with Dvips. + + +File: dvips.info, Node: Invoking Dvips, Next: Paper size and landscape, Prev: Installation, Up: Top + +3 Invoking Dvips +**************** + +Dvips reads a DVI file as output by (for example) TeX, and converts it +to PostScript, taking care of builtin or downloaded PostScript fonts, +font reencoding, color, etc. These features are described in other +chapters in this document. + + There many ways to control Dvips' behavior: configuration files, +environment variables, and command-line options. + +* Menu: + +* Basic usage:: +* Command-line options:: +* Environment variables:: +* Config files:: + + +File: dvips.info, Node: Basic usage, Next: Command-line options, Up: Invoking Dvips + +3.1 Basic usage of Dvips +======================== + +To use Dvips at its simplest, simply type + dvips foo + where `foo.dvi' is the output of TeX that you want to print. If +Dvips has been installed correctly, the document will probably roll out +of your default printer. + + If you use fonts that have not been used on your system before, they +may be automatically generated; this process can take a few minutes, so +progress reports appear by default. The next time that document is +printed, these fonts will have been saved in the proper directories, so +printing will go much faster. (If Dvips tries to endlessly generate the +same fonts over and over again, it hasn't been installed properly. +*Note Unable to generate fonts: (kpathsea)Unable to generate fonts.) + + Many options are available (see the next section). For a brief +summary of available options, just type + dvips --help + + +File: dvips.info, Node: Command-line options, Next: Environment variables, Prev: Basic usage, Up: Invoking Dvips + +3.2 Command-line options +======================== + +Dvips has a plethora of command line options. Reading through this +section will give a good idea of the capabilities of the driver. + +* Menu: + +* Option summary:: Quick listing, from Dvips --help. +* Option details:: More information about each option. + + +File: dvips.info, Node: Option summary, Next: Option details, Up: Command-line options + +3.2.1 Option summary +-------------------- + +Here is a handy summary of the options; it is printed out when you run +Dvips with no arguments or with the standard `--help' option. + +Usage: dvips [OPTION]... FILENAME[.dvi] +a* Conserve memory, not time A Print only odd (TeX) pages +b # Page copies, for posters e.g. B Print only even (TeX) pages +c # Uncollated copies C # Collated copies +d # Debugging D # Resolution +e # Maxdrift value E* Try to create EPSF +f* Run as filter F* Send control-D at end + G* Shift low chars to higher pos. +h f Add header file +i* Separate file per section +j* Download fonts partially +k* Print crop marks K* Pull comments from inclusions +l # Last page +m* Manual feed M* Don't make fonts +mode s Metafont device name +n # Maximum number of pages N* No structured comments +noomega Disable Omega extensions +o f Output file O c Set/change paper offset +p # First page P s Load config.$s +pp l Print only pages listed +q* Run quietly +r* Reverse order of pages R* Run securely +s* Enclose output in save/restore S # Max section size in pages +t s Paper format T c Specify desired page size +u s PS mapfile U* Disable string param trick +v Print version number and quit V* Send downloadable PS fonts as PK +x # Override dvi magnification X # Horizontal resolution +y # Multiply by dvi magnification Y # Vertical resolution +z* Hyper PS Z* Compress bitmap fonts + # = number f = file s = string * = suffix, `0' to turn off + c = comma-separated dimension pair (e.g., 3.2in,-32.1cm) + l = comma-separated list of page ranges (e.g., 1-4,7-9) + +Email bug reports to tex-k@mail.tug.org. + + +File: dvips.info, Node: Option details, Prev: Option summary, Up: Command-line options + +3.2.2 Option details +-------------------- + +Many of the parameterless options listed here can be turned off by +suffixing the option with a zero (`0'); for instance, to turn off page +reversal, use `-r0'. Such options are marked with a trailing `*'. + +`-' + Read additional options from standard input after processing the + command line. + +`--help' + Print a usage message and exit. + +`--version' + Print the version number and exit. + +`-a*' + Conserve memory by making three passes over the DVI file instead + of two and only loading those characters actually used. Generally + only useful on machines with a very limited amount of memory, like + some PCs. + +`-A' + Print only the odd pages. This option uses TeX page numbers, not + physical page numbers. + +`-b NUM' + Generate NUM copies of each page, but duplicating the page body + rather than using the `/#copies' PostScript variable. This can be + useful in conjunction with a header file setting `bop-hook' to do + color separations or other neat tricks. + +`-B' + Print only the even pages. This option uses TeX page numbers, not + physical page numbers. + +`-c NUM' + Generate NUM consecutive copies of every page, i.e., the output is + uncollated. This merely sets the builtin PostScript variable + `/#copies'. + +`-C NUM' + Generate NUM copies, but collated (by replicating the data in the + PostScript file). Slower than the `-c' option, but easier on the + hands, and faster than resubmitting the same PostScript file + multiple times. + +`-d NUM' + Set the debug flags, showing what Dvips (thinks it) is doing. + This will work unless Dvips has been compiled without the `DEBUG' + option (not recommended). *Note Debug options::, for the possible + values of NUM. Use `-d -1' as the first option for maximum output. + +`-D NUM' + Set both the horizontal and vertical resolution to NUM, given in + dpi (dots per inch). This affects the choice of bitmap fonts that + are loaded and also the positioning of letters in resident + PostScript fonts. Must be between 10 and 10000. This affects both + the horizontal and vertical resolution. If a high resolution + (something greater than 400 dpi, say) is selected, the `-Z' flag + should probably also be used. If you are using fonts made with + Metafont, such as Computer Modern, `mktexpk' needs to know about + the value for NUM that you use or Metafont will fail. See the file + `ftp://ftp.tug.org/tex/modes.mf' for a list of resolutions and mode + names for most devices. + +`-e NUM' + Maximum drift in pixels of each character from its `true' + resolution-independent position on the page. The default value of + this parameter is resolution dependent (it is the number of + entries in the list [100, 200, 300, 400, 500, 600, 800, 1000, + 1200, 1600, 2000, 2400, 2800, 3200, ...] that are less than or + equal to the resolution in dots per inch). Allowing individual + characters to `drift' from their correctly rounded positions by a + few pixels, while regaining the true position at the beginning of + each new word, improves the spacing of letters in words. + +`-E*' + Generate an EPSF file with a tight bounding box. This only looks + at marks made by characters and rules, not by any included + graphics. In addition, it gets the glyph metrics from the TFM + file, so characters that print outside their enclosing TFM box may + confuse it. In addition, the bounding box might be a bit too + loose if the character glyph has significant left or right side + bearings. Nonetheless, this option works well enough for creating + small EPSF files for equations or tables or the like. (Of course, + Dvips output, especially when using bitmap fonts, is + resolution-dependent and thus does not make very good EPSF files, + especially if the images are to be scaled; use these EPSF files + with care.) For multiple page input files, also specify `-i' to + get each page as a separate EPSF file; otherwise, all the pages + are overlaid in the single output file. + +`-f*' + Run as a filter. Read the DVI file from standard input and write + the PostScript to standard output. The standard input must be + seekable, so it cannot be a pipe. If your input must be a pipe, + write a shell script that copies the pipe output to a temporary + file and then points Dvips at this file. This option also + disables the automatic reading of the `PRINTER' environment + variable; use `-P$PRINTER' after the `-f' to read it anyway. It + also turns off the automatic sending of control-D if it was turned + on with the `-F' option or in the configuration file; use `-F' + after the `-f' to send it anyway. + +`-F*' + Write control-D (ASCII code 4) as the very last character of the + PostScript file. This is useful when Dvips is driving the printer + directly instead of working through a spooler, as is common on + personal systems. On systems shared by more than one person, this + is not recommended. + +`-G*' + Shift non-printing characters (ASCII 0-32, 127) to higher-numbered + positions. This may be useful sometimes. + +`-h NAME' + Prepend NAME as an additional header file, or, if NAME is `-', + suppress all header files. Any definitions in the header file get + added to the PostScript `userdict'. + +`-i*' + Make each section be a separate file; a "section" is a part of the + document processed independently, most often created to avoid + memory overflow. The filenames are created replacing the suffix + of the supplied output file name by a three-digit sequence number. + This option is most often used in conjunction with the `-S' + option which sets the maximum section length in pages; if `-i' is + specified and `-S' is not, each page is output as a separate file. + For instance, some phototypesetters cannot print more than ten or + so consecutive pages before running out of steam; these options + can be used to automatically split a book into ten-page sections, + each to its own file. + +`-j*' + Download only needed characters from Type 1 fonts. This is the + default in the current release. Some debugging flags trace this + operation (*note Debug options::). You can also control partial + downloading on a per-font basis (*note psfonts.map::). + +`-k*' + Print crop marks. This option increases the paper size (which + should be specified, either with a paper size special or with the + `-T' option) by a half inch in each dimension. It translates each + page by a quarter inch and draws cross-style crop marks. It is + mostly useful with typesetters that can set the page size + automatically. This works by downloading `crop.pro'. + +`-K*' + Remove comments in included PostScript graphics, font files, and + headers; only necessary to get around bugs in spoolers or + PostScript post-processing programs. Specifically, the `%%Page' + comments, when left in, often cause difficulties. Use of this + flag can cause other graphics to fail, however, since the + PostScript header macros from some software packages read portion + the input stream line by line, searching for a particular comment. + +`-l [=]NUM' + The last page printed will be the first one numbered NUM. Default + is the last page in the document. If NUM is prefixed by an equals + sign, then it (and the argument to the `-p' option, if specified) + is treated as a physical (absolute) page number, rather than a + value to compare with the TeX `\count0' values stored in the DVI + file. Thus, using `-l =9' will end with the ninth page of the + document, no matter what the pages are actually numbered. + +`-m*' + Specify manual feed, if supported by the output device. + +`-mode MODE' + Use MODE as the Metafont device name for path searching and font + generation. This overrides any value from configuration files. + With the default paths, explicitly specifying the mode also makes + the program assume the fonts are in a subdirectory named MODE. + *Note TeX directory structure: (kpathsea)TeX directory structure. + If Metafont does not understand the MODE name, see *Note Unable to + generate fonts: (kpathsea)Unable to generate fonts. + +`-M*' + Turns off automatic font generation (`mktexpk'). If `mktexpk', + the invocation is appended to a file `missfont.log' (by default) + in the current directory. You can then execute the log file to + create the missing files after fixing the problem. If the current + directory is not writable and the environment variable or + configuration file value `TEXMFOUTPUT' is set, its value is used. + Otherwise, nothing is written. The name `missfont.log' is + overridden by the `MISSFONT_LOG' environment variable or + configuration file value. + +`-n NUM' + Print at most NUM pages. Default is 100000. + +`-N*' + Turns off generation of structured comments such as `%%Page'; this + may be necessary on some systems that try to interpret PostScript + comments in weird ways, or on some PostScript printers. Old + versions of TranScript in particular cannot handle modern + Encapsulated PostScript. Beware: This also disables page + movement, etc., in PostScript viewers such as Ghostview. + +`-noomega' + This will disable the use of Omega extensions when interpreting + DVI files. By default, the additional opcodes `129' and `134' are + recognized by Dvips as Omega extensions and interpreted as + requests to set 2-byte characters. The only drawback is that the + virtual font array will (at least temporarily) require 65536 + positions instead of the default 256 positions, i.e., the memory + requirements of Dvips will be slightly larger. If you find this + unacceptable or encounter another problem with the Omega + extensions, you can switch this extension off by using `-noomega' + (but please do send a bug report if you find such problems, *note + Bugs: (kpathsea)Bugs.). + +`-o NAME' + Send output to the file NAME. If `-o' is specified without NAME, + the default is `FILE.ps' where the input DVI file was `FILE.dvi'. + If `-o' isn't given at all, the configuration file default is used. + + If NAME is `-', output goes to standard output. If the first + character of NAME is `!' or `|', then the remainder will be used + as an argument to `popen'; thus, specifying `|lpr' as the output + file will automatically queue the file for printing as usual. + (The MS-DOS version will print to the local printer device `PRN' + when NAME is `|lpr' and a program by that name cannot be found.) + + `-o' disables the automatic reading of the `PRINTER' environment + variable, and turns off the automatic sending of control-D. See + the `-f' option for how to override this. + +`-O X-OFFSET,Y-OFFSET' + Move the origin by X-OFFSET,Y-OFFSET, a comma-separated pair of + dimensions such as `.1in,-.3cm' (*note papersize special::). The + origin of the page is shifted from the default position (of one + inch down, one inch to the right from the upper left corner of the + paper) by this amount. This is usually best specified in the + printer-specific configuration file. + + This is useful for a printer that consistently offsets output + pages by a certain amount. You can use the file `testpage.tex' to + determine the correct value for your printer. Be sure to do + several runs with the same `O' value--some printers vary widely + from run to run. + + If your printer offsets every other page consistently, instead of + every page, your best recourse is to use `bop-hook' (*note + PostScript hooks::). + +`-p [=]NUM' + The first page printed will be the first one numbered NUM. Default + is the first page in the document. If NUM is prefixed by an + equals sign, then it (and the argument to the `-l' option, if + specified) is treated as a physical (absolute) page number, rather + than a value to compare with the TeX `\count0' values stored in the + DVI file. Thus, using `-p =3' will start with the third page of + the document, no matter what the pages are actually numbered. + +`-pp FIRST-LAST' + Print pages FIRST through LAST; equivalent to `-p FIRST -l LAST', + except that multiple `-pp' options accumulate, unlike `-p' and + `-l'. The `-' separator can also be `:'. + +`-P PRINTER' + Read the configuration file `config.PRINTER' (`PRINTER.cfg' on + MS-DOS), which can set the output name (most likely `o |lpr + -PPRINTER'), resolution, Metafont mode, and perhaps font paths and + other printer-specific defaults. It works best to put sitewide + defaults in the one master `config.ps' file and only things that + vary printer to printer in the `config.PRINTER' files; `config.ps' + is read before `config.PRINTER'. + + A configuration file for creating Adobe PDF files is provided in + `config.pdf' and can be loaded with `-Ppdf', it will try to + include Type1 outline fonts into the PostScript file (*note + Hypertext caveats::). + + If no `-P' or `-o' is given, the environment variable `PRINTER' is + checked. If that variable exists, and a corresponding + `config.PRINTER' (`PRINTER.cfg' on MS-DOS) file exists, it is read. + *Note Configuration file searching::. + +`-q*' + Run quietly. Don't chatter about pages converted, etc. to standard + output; report no warnings (only errors) to standard error. + +`-r*' + Output pages in reverse order. By default, page 1 is output first. + +`-R' + Run securely. This disables shell command execution in `\special' + (via ``', *note Dynamic creation of graphics::) and config files + (via the `E' option, *note Configuration file commands::), and + opening of any absolute filenames. + +`-s*' + Enclose the output in a global save/restore pair. This causes the + file to not be truly conformant, and is thus not recommended, but + is useful if you are driving a deficient printer directly and thus + don't care too much about the portability of the output to other + environments. + +`-S NUM' + Set the maximum number of pages in each `section'. This option is + most commonly used with the `-i' option; see its description above + for more information. + +`-t PAPERTYPE' + Set the paper type to PAPERTYPE, usually defined in one of the + configuration files, along with the appropriate PostScript code to + select it (*note Config file paper sizes::). You can also specify + a PAPERTYPE of `landscape', which rotates a document by 90 + degrees. To rotate a document whose paper type is not the + default, you can use the `-t' option twice, once for the paper + type, and once for `landscape'. You should not use any `-t' + option when TeX writes a `papersize' special, as is done by some + LaTeX packages, e.g., `hyperref.sty'. + +`-T HSIZE,VSIZE' + Set the paper size to (HSIZE,VSIZE), a comma-separated pair of + dimensions such as `.1in,-.3cm' (*note papersize special::). It + overrides any paper size special in the DVI file. + +`-u PSMAPFILE' + Set PSMAPFILE to be the file that dvips uses for looking up + PostScript font aliases. If PSMAPFILE begins with a `+' + character, then the rest of the name is used as the name of the + map file, and the map file is appended to the list of map files + (instead of replacing the list). In either case, if the name has + no extension, then `.map' is added at the end. + +`-U*' + Disable a PostScript virtual memory-saving optimization that + stores the character metric information in the same string that is + used to store the bitmap information. This is only necessary when + driving the Xerox 4045 PostScript interpreter, which has a bug + that puts garbage on the bottom of each character. Not + recommended unless you must drive this printer. + +`-v' + Print the dvips version number and exit. + +`-V*' + Download non-resident PostScript fonts as bitmaps. This requires + use of `mtpk' or `gsftopk' or `pstopk' or some combination thereof + to generate the required bitmap fonts; these programs are supplied + with Dvips. The bitmap must be put into `psfonts.map' as the + downloadable file for that font. This is useful only for those + fonts for which you do not have real outlines, being downloaded to + printers that have no resident fonts, i.e., very rarely. + +`-x NUM' + Set the magnification ratio to NUM/1000. Overrides the + magnification specified in the DVI file. Must be between 10 and + 100000. It is recommended that you use standard magstep values + (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so on) to help + reduce the total number of PK files generated. NUM may be a real + number, not an integer, for increased precision. + +`-X NUM' + Set the horizontal resolution in dots per inch to NUM. + +`-y NUM' + Set the magnification ratio to NUM/1000 times the magnification + specified in the DVI file. See `-x' above. + +`-Y NUM' + Set the vertical resolution in dots per inch to NUM. + +`-z*' + Pass `html' hyperdvi specials through to the output for eventual + distillation into PDF. This is not enabled by default to avoid + including the header files unnecessarily, and use of temporary + files in creating the output. *Note Hypertext::. + +`-Z*' + Compress bitmap fonts in the output file, thereby reducing the + size of what gets downloaded. Especially useful at high + resolutions or when very large fonts are used. May slow down + printing, especially on early 68000-based PostScript printers. + Generally recommend today, and can be enabled in the configuration + file (*note Configuration file commands::). + + + +File: dvips.info, Node: Environment variables, Next: Config files, Prev: Command-line options, Up: Invoking Dvips + +3.3 Environment variables +========================= + +Dvips looks for many environment variables, to define search paths and +other things. The path variables are read as needed, after all +configuration files are read, so they override values in the +configuration files. (Except for `TEXCONFIG', which defines where the +configuration files themselves are found.) + + *Note Path specifications: (kpathsea)Path specifications, for +details of interpretation of path and other environment variables +common to all Kpathsea-using programs. Only the environment variables +specific to Dvips are mentioned here. + +`DVIPSFONTS' + Default path to search for all fonts. Overrides all the font path + config file options and other environment variables (*note + Supported file formats: (kpathsea)Supported file formats.). + +`DVIPSHEADERS' + Default path to search for PostScript header files. Overrides the + `H' config file option (*note Configuration file commands::). + +`DVIPSMAKEPK' + Overrides `mktexpk' as the name of the program to invoke to create + missing PK fonts. You can change the arguments passed to the + `mktexpk' program with the `MAKETEXPK' environment variable; *note + MakeTeX script arguments: (kpathsea)MakeTeX script arguments. + +`DVIPSRC' + Specifies the name of the startup file (*note Configuration file + searching::) which is read after `config.ps' but before any + printer-specific configuration files. + +`DVIPSSIZES' + Last-resort sizes for scaling of unfound fonts. Overrides the `R' + definition in config files (*note Configuration file commands::). + +`PRINTER' + Determine the default printer configuration file. (Dvips itself + does not use `PRINTER' to determine the output destination in any + way.) + +`TEXCONFIG' + Path to search for Dvips' `config.PRINTER' configuration files, + including the base `config.ps'. Using this single environment + variable, you can override everything else. (The printer-specific + configuration files are called `PRINTER.cfg' on MS-DOS, but + `config.ps' is called by that name on all platforms.) + +`TEXPICTS' + Path to search for included graphics files. Overrides the `S' + config file option (*note Configuration file commands::). If not + set, `TEXINPUTS' is looked for. *Note Supported file formats: + (kpathsea)Supported file formats. + + + +File: dvips.info, Node: Config files, Prev: Environment variables, Up: Invoking Dvips + +3.4 Dvips configuration files +============================= + +This section describes in detail the Dvips-specific `config.*' device +configuration files (called `*.cfg' on MS-DOS), which override the +`texmf.cnf' configuration files generic to Kpathsea which Dvips also +reads (*note Config files: (kpathsea)Config files.). + + For information about installing these files, including a prototype +file you can copy, *note config.ps installation::. + +* Menu: + +* Configuration file searching:: Where config.* files are searched for. +* Configuration file commands:: What can go in a config.* file. + + +File: dvips.info, Node: Configuration file searching, Next: Configuration file commands, Up: Config files + +3.4.1 Configuration file searching +---------------------------------- + +The Dvips program loads many different configuration files, so that +parameters can be set globally across the system, on a per-device basis, +or individually by each user. + + 1. Dvips first reads (if it exists) `config.ps'; it is searched for + along the path for Dvips configuration files, as described in + *Note Supported file formats: (kpathsea)Supported file formats. + + 2. A user-specific startup file is loaded, so individual users can + override any options set in the global file. The environment + variable `DVIPSRC', if defined, is used as the specification of + the startup file. If this variable is undefined, Dvips uses a + platform-specific default name. On Unix Dvips looks for the + default startup file under the name `$HOME/.dvipsrc', which is in + the user's home directory. On MS-DOS and MS-Windows, where users + generally don't have their private directories, the startup file + is called `dvips.ini' and it is searched for along the path for + Dvips configuration files (as described in *Note Supported file + formats: (kpathsea)Supported file formats.); users are expected to + set this path as they see fit for their taste. + + 3. The command line is read and parsed: if the `-PDEVICE' option is + encountered, at that point `config.DEVICE' is loaded. Thus, the + printer configuration file can override anything in the site-wide + or user configuration file, and it can also override options in + the command line up to the point that the `-P' option was + encountered. (On MS-DOS, the printer configuration files are + called `DEVICE.cfg', since DOS doesn't allow more than 3 characters + after the dot in filenames.) + + 4. If no `-P' option was specified, and also the `-o' and `-f' + command line options were not used, Dvips checks the environment + variable `PRINTER'. If it exists, then `config.$PRINTER' + (`$PRINTER.cfg' on MS-DOS) is loaded (if it exists). + + + Because the `.dvipsrc' file is read before the printer-specific +configuration files, individual users cannot override settings in the +latter. On the other hand, the `TEXCONFIG' path usually includes the +current directory, and can in any case be set to anything, so the users +can always define their own printer-specific configuration files to be +found before the system's. + + A few command-line options are treated specially, in that they are +not overridden by configuration files: + +`-D' + As well as setting the resolution, this unsets the mode, if the + mode was previously set from a configuration file. If + `config.$PRINTER' is read, however, any `D' or `M' lines from + there will take effect. + +`-mode' + This overrides any mode setting (`M' line) in configuration files. + `-mode' does not affect the resolution. + +`-o' + This overrides any output setting (`o' line) in configuration + files. + + + The purpose of these special cases is to (1) minimize the chance of +having a mismatched mode and resolution (which `mktexpk' cannot +resolve), and (2) let command-line options override config files where +possible. + + +File: dvips.info, Node: Configuration file commands, Prev: Configuration file searching, Up: Config files + +3.4.2 Configuration file commands +--------------------------------- + +Most of the configuration file commands are similar to corresponding +command line options, but there are a few exceptions. When they are the +same, we omit the description here. + + As with command line options, many may be turned off by suffixing the +letter with a zero (`0'). + + Within a configuration file, empty lines, and lines starting with a +space, asterisk, equal sign, percent sign, or pound sign are ignored. +There is no provision for continuation lines. + +`@ NAME HSIZE VSIZE' + Define paper sizes. *Note Config file paper sizes::. + +`a*' + Memory conservation. Same as `-a', *note Option details::. + +`b #COPIES' + Multiple copies. Same as `-b', *note Option details::. + +`D DPI' + Output resolution. Same as `-D', *note Option details::. + +`e NUM' + Max drift. Same as `-e', *note Option details::. + +`E COMMAND' + Executes the command listed with `system'(3); can be used to get + the current date into a header file for inclusion, for instance. + Possibly dangerous; this may be disabled, in which case a warning + will be printed if the option is used (and warnings are not + suppressed). + +`f*' +`F' + Run as a filter. Same as `-f', *note Option details::. + +`h HEADER' + Prepend HEADER to output. Same as `h-', *note Option details::. + +`H PATH' + Use PATH to search for PostScript header files. The environment + variable `DVIPSHEADERS' overrides this. + +`i N' + Make multiple output files. Same as `-i -S N', *note Option + details::. + +`j*' + Partially download Type 1 fonts. Same as `-j', *note Option + details::. + +`K*' + Remove comments from included PostScript files. Same as `-K', + *note Option details::. + +`m NUM' + Declare NUM as the memory available for fonts and strings in the + printer. Default is 180000. This value must be accurate if memory + conservation and document splitting is to work correctly. To + determine this value, send the following file to the printer: + + %! Hey, we're PostScript + /Times-Roman findfont 30 scalefont setfont 144 432 moveto + vmstatus exch sub 40 string cvs show pop showpage + + The number printed by this file is the total memory free; it is + usually best to tell Dvips that the printer has slightly less + memory, because many programs download permanent macros that can + reduce the memory in the printer. Some systems or printers can + dynamically increase the memory available to a PostScript + interpreter, in which case this file might return a ridiculously + low number; for example, the NeXT computer and Ghostscript. In + these cases, a value of one million works fine. + +`M MODE' + Metafont mode. Same as `-mode', *note Option details::. + +`N*' + Disable structured comments. Beware: This also turns off + displaying page numbers or changing to specific pagenumbers in + PostScript viewers. Same as `-N', *note Option details::. + +`o NAME' + Send output to NAME. Same as `-o', *note Option details::. In + the file `config.foo', a setting like this is probably appropriate: + o |lpr -Pfoo + The MS-DOS version will emulate spooling to `lpr' by printing to + the local printer device `PRN' if it doesn't find an executable + program by that name in the current directory or along the `PATH'. + +`O XOFF,YOFF' + Origin offset. Same as `-O', *note Option details::. + +`p [+]NAME' + Examine NAME for PostScript font aliases. Default is + `psfonts.map'. This option allows you to specify different + resident fonts that different printers may have. If NAME starts + with a `+' character, then the rest of the name (after any leading + spaces) is used as an additional map file; thus, it is possible to + have local map files pointed to by local configuration files that + append to the global map file. This can be used for font families. + +`P PATH' + Use PATH to search for bitmap PK font files is PATH. The + `PKFONTS', `TEXPKS', `GLYPHFONTS', and `TEXFONTS' environment + variables override this. *Note Supported file formats: + (kpathsea)Supported file formats. + +`q*' +`Q' + Run quietly. Same as `-q', *note Option details::. + +`r*' + Page reversal. Same as `-r', *note Option details::. + +`R NUM1 NUM2 ...' + Define the list of default resolutions for PK fonts. If a font + size actually used in a document is not available and cannot be + created, Dvips will scale the font found at the closest of these + resolutions to the requested size, using PostScript scaling. The + resulting output may be ugly, and thus a warning is issued. To + turn this last-resort scaling off, use a line with just the `R' + and no numbers. + + The given numbers must be sorted in increasing order; any number + smaller than the preceding one is ignored. This is because it is + better to scale a font up than down; scaling down can obliterate + small features in the character shape. + + The environment and config file values `DVIPSSIZES' or `TEXSIZES' + override this configuration file setting. + + If no `R' settings or environment variables are specified, a list + compiled in during installation is used. This default list is + defined by the Makefile variable `default_texsizes', defined in + the file `make/paths.make'. + +`s*' + Output global save/restore. Same as `-s', *note Option details::. + +`S PATH' + Use PATH to search for special illustrations (Encapsulated + PostScript files or psfiles). The `TEXPICTS' and then `TEXINPUTS' + environment variables override this. + +`T PATH' + Use PATH to search for TFM files. The `TFMFONTS' and then + `TEXFONTS' environment variables overrides this. This path is used + for resident fonts and fonts that can't otherwise be found. + +`U*' + Work around bug in Xerox 4045 printer. Same as `-U', *note Option + details::. + +`V PATH' + Use PATH to search for virtual font files. This may be + device-dependent if you use virtual fonts to simulate actual fonts + on different devices. + +`W [STRING]' + If STRING is supplied, write it to standard error after reading + all the configuration files; with no STRING, cancel any previous + `W' message. This is useful in the default configuration file to + remind users to specify a printer, for instance, or to notify users + about special characteristics of a particular printer. + +`X NUM' + Horizontal resolution. Same as `-X' (*note Option details::). + +`Y NUM' + Vertical resolution. Same as `-Y' (*note Option details::). + +`Z*' + Compress bitmap fonts. Same as `-Z' (*note Option details::). + +`z*' + Disables execution of system commands, like `-R' (*note Option + details::). If `-R1' is given to disable system commands, + however, this will not re-enable them. + + + +File: dvips.info, Node: Paper size and landscape, Next: Interaction with PostScript, Prev: Invoking Dvips, Up: Top + +4 Paper size and landscape orientation +************************************** + +Most TeX documents at a particular site are designed to use the +standard paper size (letter size in the United States, A4 in Europe). +The Dvips program can be customized either sitewide or for a particular +printer. + + But many documents are designed for other paper sizes. For instance, +you may want to design a document that has the long edge of the paper +horizontal. This can be useful when typesetting booklets, brochures, +complex tables, or many other documents. This type of paper orientation +is called "landscape" orientation (the default orientation is +"portrait"). Alternatively, a document might be designed for ledger or +A3 paper. + + Since the intended paper size is a document design decision, not a +printing decision, such information should be given in the TeX file and +not on the Dvips command line. For this reason, Dvips supports a +`papersize' special. It is hoped that this special will become +standard over time for TeX previewers and other printer drivers. + + Some LaTeX packages, e.g., `hyperref.sty', write a `papersize' +special into the DVI file. In this case, you need not and should not +attempt to override it manually. + +* Menu: + +* papersize special:: Specifying the paper size in TeX. +* Config file paper sizes:: Specifying printer- and site-specific sizes. +* Paper trays:: Changing paper trays automatically. + + +File: dvips.info, Node: papersize special, Next: Config file paper sizes, Up: Paper size and landscape + +4.1 `papersize' special +======================= + +The format of the `papersize' special is + + \special{papersize=WIDTH,HEIGHT} + +WIDTH is the horizontal size of the page, and HEIGHT is the vertical +size. The dimensions supported are the same as for TeX; namely, in +(inches), cm (centimeters), mm (millimeters), pt (points), sp (scaled +points), bp (big points, the same as the default PostScript unit), pc +(picas), dd (didot points), and cc (ciceros). + + For a US letter size landscape document, the `papersize' would be: + \special{papersize=11in,8.5in} + +An alternate specification of `landscape': + \special{landscape} + +This is supported for backward compatibility, but it is hoped that +reventually the `papersize' comment will dominate. + + Of course, such a `\special' only informs Dvips of the desired paper +size; you must also adjust `\hsize' and `\vsize' in your TeX document +typeset to those dimensions. + + The `papersize' special must occur somewhere on the first page of +the document. + + +File: dvips.info, Node: Config file paper sizes, Next: Paper trays, Prev: papersize special, Up: Paper size and landscape + +4.2 Configuration file paper size command +========================================= + +The `@' command in a configuration file sets the paper size defaults +and options. The first `@' command defines the default paper size. It +has three possible parameters: + + @ [NAME [HSIZE VSIZE]] + + If `@' is specified on a line by itself, with no parameters, it +instructs Dvips to discard all previous paper size information (possibly +from another configuration file). + + If three parameters are given, with the first parameter being a name +and the second and third being a dimension (as in `8.5in' or `3.2cc', +just like in the `papersize' special), then the option is interpreted +as starting a new paper size description, where NAME is the name and +HSIZE and VSIZE define the horizontal and vertical size of the sheet of +paper, respectively. For example: + + @ letterSize 8.5in 11in + + If both HSIZE and VSIZE are zero (you must still specify units!) +then any page size will match. If the `@' character is immediately +followed by a `+' sign, then the remainder of the line (after skipping +any leading blanks) is treated as PostScript code to send to the +printer, presumably to select that particular paper size: + + @ letter 8.5in 11in + @+ %%BeginPaperSize: Letter + @+ letter + @+ %%EndPaperSize + + After all that, if the first character of the line is an exclamation +point, then the line is put in the initial comments section of the final +output file; else, it is put in the setup section of the output file. +For example: + + @ legal 8.5in 14in + @+ ! %%DocumentPaperSizes: Legal + @+ %%BeginPaperSize: Legal + @+ legal + @+ %%EndPaperSize + + When Dvips has a paper format name given on the command line, it +looks for a match by the NAME; when it has a `papersize' special, it +looks for a match by dimensions. The first match found (in the order +the paper size information is found in the configuration file) is used. +If nothing matches, a warning is printed and the first paper size is +used. The dimensions must match within a quarter of an inch. Landscape +mode for all paper sizes is automatically supported. + + If your printer has a command to set a special paper size, then give +dimensions of `0in 0in'; the PostScript code that sets the paper size +can refer to the dimensions the user requested as `hsize' and `vsize'; +these will be macros defined in the PostScript that return the +requested size in default PostScript units. Virtually all of the +PostScript commands you use here are device-dependent and degrade the +portability of the file; that is why the default first paper size entry +should not send any PostScript commands down (although a structured +comment or two would be okay). Also, some printers want +`BeginPaperSize' comments and paper size setting commands; others (such +as the NeXT) want `PaperSize' comments and they will handle setting the +paper size. There is no solution I could find that works for both +(except maybe specifying both). + + The Perl 5 script `contrib/mkdvipspapers' in the distribution +directory may help in determining appropriate paper size definitions. + + If your printers are configured to use A4 paper by default, the +configuration file (probably the global `config.ps' in this case) +should include this as the first `@' command: + + @ A4size 210mm 297mm + @+ %%PaperSize: A4 + +so that `A4size' is used as the default, and not `A4' itself; thus, no +PostScript `a4' command is added to the output file, unless the user +explicitly says to use paper size `a4'. That is, by default, no paper +size PostScript command should be put in the output, but Dvips will +still know that the paper size is A4 because `A4size' is the first (and +therefore default) size in the configuration file. + + Executing the `letter' or `a4' or other PostScript operators cause +the document to be nonconforming and can cause it not to print on +certain printers, so the default paper size should not execute such an +operator if at all possible. + + +File: dvips.info, Node: Paper trays, Prev: Config file paper sizes, Up: Paper size and landscape + +4.3 Paper trays +=============== + +Some printers, such as the Hewlett-Packard HP4si, have multiple paper +trays. You can set up Dvips to take advantage of this using the +`bop-hook' PostScript variable (*note PostScript hooks::). + + For example, suppose you have an alternate tray stocked with +letterhead paper; the usual tray has the usual paper. You have a +document where you want the first page printed on letterhead, and the +remaining pages on the usual paper. You can create a header file, say +`firstletterhead.PS', with the following (PostScript) code (`bop-hook' +is passed the current physical page number, which starts at zero): + + /bop-hook { dup 0 eq { ALTERNATETRAY } { NORMALTRAY } ifelse } def + +where ALTERNATETRAY and NORMALTRAY are the appropriate commands to +select the paper trays. On the 4SI, ALTERNATETRAY is `statusdict begin +1 setpapertray end' and NORMALTRAY is `statusdict begin 0 setpapertray +end'. + + Then, include the file with either + * the `-h' command-line option (*note Option details::); or + + * the `h' config file option (*note Configuration file commands::); + or + + * `\special{header=FILE}' in your TeX document (*note Including + headers from TeX: Including headers from TeX.). + + + +File: dvips.info, Node: Interaction with PostScript, Next: PostScript fonts, Prev: Paper size and landscape, Up: Top + +5 Interaction with PostScript +***************************** + +Dvips supports inclusion of PostScript figure files (e.g., Encapsulated +PostScript), downloading other header files (e.g., fonts), including +literal PostScript code, and hypertext. + +* Menu: + +* PostScript figures:: Including an Encapsulated PostScript figure. +* Header files:: Downloading extra definitions. +* Literal PS:: Writing literal PostScript code. +* Hypertext:: Producing HyperPostScript to make PDF. + + +File: dvips.info, Node: PostScript figures, Next: Header files, Up: Interaction with PostScript + +5.1 PostScript figures +====================== + +Scaling and including PostScript graphics is a breeze--if the PostScript +file is correctly formed. Even if it is not, however, the file can +usually be accommodated with just a little more work. + +* Menu: + +* Bounding box:: The %%BoundingBox EPS comment. +* \includegraphics:: The LaTeX \includegraphics macro. +* EPSF macros:: Including the file in TeX. +* psfile special:: The basic special. +* Dynamic creation of graphics:: Handling compressed or generated figures. +* Fonts in figures:: The %*Font comment. + + +File: dvips.info, Node: Bounding box, Next: \includegraphics, Up: PostScript figures + +5.1.1 The bounding box comment +------------------------------ + +The most important feature of a good PostScript file from the standpoint +of including it in another document is an accurate bounding box comment. +Every well-formed PostScript file has a comment describing where on the +page the graphic is located, and how big that graphic is. + + This information is given as the lower left and upper right corners +of the box just enclosing the graphic, and is thus referred to as the +"bounding box". These coordinates are given in the default PostScript +units (there are precisely 72 PostScript units to the inch, like TeX +big points) with respect to the lower left corner of the sheet of paper. + + To see if a PostScript file has a bounding box comment, just look at +the first few lines of the file. PostScript files are standard ASCII, +so you can use any text editor to do this. If within the first few +dozen lines there is a line like + + %%BoundingBox: 25 50 400 300 + +(with any reasonable numbers), chances are very good that the file is +Encapsulated PostScript and will work easily with Dvips. If the file +contains instead a line like + + %%BoundingBox: (atend) + +the file is still probably Encapsulated PostScript, but the bounding box +is given at the end of the file. Dvips needs it at the beginning. You +can move it with that same text editor, or a simple script. (The +bounding box is given in this way when the program that generated the +PostScript couldn't know the size in advance, or was too lazy to compute +it.) + + If the document lacks a `%%BoundingBox:' altogether, you can +determine one in a couple of ways. One is to use the `bbfig' program +distributed with Dvips in the `contrib' directory. This can usually +find the correct bounding box automatically; it works best with +Ghostscript. + + If the comment looks like this: + %%BoundingBox: 0 0 612 792 + +the graphic claims to take up an entire sheet of paper. This is +usually a symptom of a bug in the program that generated it. + + The other is to do it yourself: print the file. Now, take a ruler, +and make the following measurements (in PostScript units, so measure in +inches and multiply by 72): From the left edge of the paper to the +leftmost mark on the paper is LLX, the first number. From the bottom +edge of the paper to the bottommost mark on the paper is LLY, the +second number. From the left edge of the paper to the rightmost mark +on the paper is URX, the third number. The fourth and final number, +URY, is the distance from the bottom of the page to the uppermost mark +on the paper. + + Once you have the numbers, add a comment of the following form as the +second line of the document. (The first line should already be a line +starting with the two characters `%!'; if it is not, the file probably +isn't PostScript.) + + %%BoundingBox: LLX LLY URX URY + +Or, if you don't want to modify the file, you can simply write these +numbers down in a convenient place and give them in your TeX document +when you import the graphic, as described in the next section. + + If the document does not have such a bounding box, or if the bounding +box is given at the end of the document, or the bounding box is wrong, +please complain to the authors of the software package that generated +the file. + + +File: dvips.info, Node: \includegraphics, Next: EPSF macros, Prev: Bounding box, Up: PostScript figures + +5.1.2 The \includegraphics macro for LaTeX +------------------------------------------ + +Once the figure file has a bounding box comment (see the previous +section) you are ready to import the graphic into a LaTeX document. For +LaTeX 2e, you can use the epsf, graphics or graphicx packages, but the +last is recommended--it has the most flexible syntax, and is briefly +described here. Further information can be found in `grfguide' or +`epslatex', which should be included in your LaTeX distribution in DVI, +PDF, or other formats. (If you are still using LaTeX 2.09, use +epsf.sty). + + Just put the following command into your preamble: + + \usepackage[dvips]{graphicx} + + Depending on your system, a suitable driver setup may already be +present, so that LaTeX automatically produces DVI files suitable for +Dvips. In this case you can leave out the `[dvips]' parameter. + + Now, at the point you want to include a file `foo.eps', enter a line +such as: + + \includegraphics{foo.eps} + + However, it is usually best to omit the file extension and only use + + \includegraphics{foo} + +because then you can process the same LaTeX file with different TeX +engines or DVI converters if you also provide suitable graphics files +for them, e.g., `foo.pdf' or `foo.png'. + + The \includegraphics command has many options, specified in +`key=value' syntax, to allow you to resize, rotate or trim the included +graphic--see `grfguide' or `epslatex'. If your file does not have a +bounding box comment, you can supply the numbers as determined in the +previous section, in the same order they would have been in a normal +bounding box comment: + + \includegraphics[bb=100 100 500 500]{foo.ps} + +Now, save your changes and run LaTeX and Dvips; the output should have +your graphic positioned at precisely the point you indicated, occupying +the proper amount of space. + + PostScript graphics have their origin in the lower left corner. +Therefore, in TeX, a graphic will occupy a box that extends far above +the line where it is put in, but has depth zero below it. Combining +`\includegraphics' with `\parbox' commands or minipages can sometimes +be confusing when this is not taken into account. + + +File: dvips.info, Node: EPSF macros, Next: psfile special, Prev: \includegraphics, Up: PostScript figures + +5.1.3 Using the EPSF macros +--------------------------- + +If you are using LaTeX 2e, use the `graphics' or `graphicx' package. +*Note \includegraphics::. + + If you are using plain TeX or LaTeX 2.09, you need `epsf.tex' (for +plain TeX) and `epsf.sty' (for LaTeX). For plain TeX, add a line like +this near the top of your input file: + + \input epsf + +If you are using LaTeX 2.09, add the `epsf' style option, as in: + + \documentstyle[12pt,epsf]{article} + +In any case, the above only needs to be done once, no matter how many +figures you plan to include. + + Now, at the point you want to include a file, enter a line such as: + + \epsffile{foo.eps} + + If you are using LaTeX, you may need to add `\leavevmode' +immediately before the `\epsffile' command to get certain environments +to work correctly. If your file does not have a bounding box comment, +you can supply the numbers as determined in the previous section, in +the same order they would have been in a normal bounding box comment: + + \epsffile[100 100 500 500]{foo.ps} + +Now, save your changes and run TeX and Dvips; the output should have +your graphic positioned at precisely the point you indicated, occupying +the proper amount of space. + + The `\epsffile' macro typesets the figure as a TeX `\vbox' at the +point of the page that the command is executed. By default, the +graphic will have its `natural' width (namely, the width of its bounding +box). The TeX box will have depth zero and its natural height. By +default, the graphic will be scaled by any DVI magnification in effect, +just as is everything else in your document. See the next section for +more information on scaling. + + If you want TeX to report the size of the figure as a message on your +terminal when it processes each figure, give the command: + + \epsfverbosetrue + +* Menu: + +* EPSF scaling:: +* EPSF clipping:: + + +File: dvips.info, Node: EPSF scaling, Next: EPSF clipping, Up: EPSF macros + +5.1.3.1 EPSF scaling +.................... + +Usually, you will want to scale an EPSF figure to some size appropriate +for your document, since its natural size is determined by the creator +of the EPS file. + + The best way to do this is to assign the desired size to the TeX +`\epsfxsize' or `\epsfysize' variables, whichever is more convenient +for you. That is, put + + \epsfxsize=DIMEN + +right before the call to `\epsffile'. Then the width of the TeX box +will be DIMEN and its height will be scaled proportionately. +Similarly, you can set the vertical size with + + \epsfysize=DIMEN + +in which case the height will be set and the width scaled +proportionally. + + If you set both, both will be honored, but the aspect ratio of the +included graphic may necessarily be distorted, i.e., its contents +stretched in one direction or the other. + + You can resize graphics in a more general way by redefining the +`\epsfsize' macro. `\epsffile' calls this with two parameters: the +natural horizontal and vertical sizes of the PostScript graphic. +`\epsfsize' must expand to the desired horizontal size, that is, the +width of the `\vbox'. Schematically: + + \def\epsfsize#1#2{BODY} + + Some useful definitions of BODY: + +`\epsfxsize' + This definition (the default) enables the default features listed + above, by setting `\epsfxsize' to the same value it had before the + macro was called. + +`#1' + Force the natural size by returning the first parameter (the + original width). + +`0pt' + A special case, equivalent to `#1'. + +`0.5#1' + Scale to half the natural size. + +`\hsize' + Scale to the current `\hsize'. (In LaTeX, use `\textwidth' + instead of `\hsize'.) + +`\ifnum#1>\hsize\hsize\else#1\fi' + If the natural width is greater than the current `\hsize', scale to + `\hsize', otherwise use the natural width. + + + For compatibility with other PostScript drivers, it is possible to +turn off the default scaling of included figures by the DVI +magnification with the following TeX command: + + \special{! /magscale false def} + +Use of this command is not recommended because it will make the +`\epsffile' graphics the "wrong" size if global magnification is being +used, and it will cause any PostScript graphics to appear improperly +scaled and out of position if a DVI to DVI program is used to scale or +otherwise modify the document. + + DVI magnification is not applied to any output from code you write in +`bop-hook' or its ilk (*note PostScript hooks::), + + +File: dvips.info, Node: EPSF clipping, Prev: EPSF scaling, Up: EPSF macros + +5.1.3.2 EPSF clipping +..................... + +By default, clipping is disabled for included EPSF images. This is +because clipping to the bounding box dimensions often cuts off a small +portion of the figure, due to slightly inaccurate bounding box +arguments. The problem might be subtle; lines around the boundary of +the image might be half their intended width, or the tops or bottoms of +some text annotations might be sliced off. If you want to turn +clipping on, just use the command + + \epsfclipon + +and to turn clipping back off, use + + \epsfclipoff + + +File: dvips.info, Node: psfile special, Next: Dynamic creation of graphics, Prev: EPSF macros, Up: PostScript figures + +5.1.4 `psfile' special +---------------------- + +The basic special for file inclusion is as follows: + + \special{psfile=FILENAME.ps [KEY=VALUE] ... } + +This downloads the PostScript file `FILENAME.ps' such that the current +point will be the origin of the PostScript coordinate system. The +optional KEY=VALUE assignments allow you to specify transformations on +the PostScript. + + The possible KEYs are: + +`hoffset' + The horizontal offset (default 0) + +`voffset' + The vertical offset (default 0) + +`hsize' + The horizontal clipping size (default 612) + +`vsize' + The vertical clipping size (default 792) + +`hscale' + The horizontal scaling factor (default 100) + +`vscale' + The vertical scaling factor (default 100) + +`angle' + The rotation (default 0) + +`clip' + Enable clipping to the bounding box + + The dimension parameters are all given in PostScript units. The +`hscale' and `vscale' are given in non-dimensioned percentage units, +and the rotation value is specified in degrees. Thus + + \special{psfile=foo.ps hoffset=72 hscale=90 vscale=90} + +will shift the graphics produced by file `foo.ps' right by one inch and +will draw it at 0.9 times normal size. Offsets are given relative to +the point of the special command, and are unaffected by scaling or +rotation. Rotation is counterclockwise about the origin. The order of +operations is to rotate the figure, scale it, then offset it. + + For compatibility with older PostScript drivers, it is possible to +change the units that `hscale' and `vscale' are given in. This can be +done by redefining `@scaleunit' in `SDict' by a TeX command such as + + \special{! /@scaleunit 1 def} + +The `@scaleunit' variable, which is by default 100, is what `hscale' +and `vscale' are divided by to yield an absolute scale factor. + + +File: dvips.info, Node: Dynamic creation of graphics, Next: Fonts in figures, Prev: psfile special, Up: PostScript figures + +5.1.5 Dynamic creation of PostScript graphics files +--------------------------------------------------- + +PostScript is an excellent page description language--but it does tend +to be rather verbose. Compressing PostScript graphics files can reduce +them by factor of five or more. For this reason, if the name of an +included PostScript file ends with `.Z' or `.gz', Dvips automatically +runs `gzip -d'. For example: + + \epsffile[72 72 540 720]{foo.ps.gz} + +Since the results of such a command are not accessible to TeX, if you +use this facility with the `epsf' macros, you need to supply the +bounding box parameter yourself, as shown. + + More generally, if the filename parameter to one of the graphics +inclusion techniques starts with a left quote (``'), the parameter is +instead interpreted as a command to execute that will send the actual +file to standard output. For example: + + \special{psfile="`gnuplot foo"} + +to include the file `foo'. Of course, the command to be executed can +be anything, including using a file conversion utility such as `tek2ps' +or whatever is appropriate. This feature can be disabled with the `-R' +command-line option or `R' configuration option. + + +File: dvips.info, Node: Fonts in figures, Prev: Dynamic creation of graphics, Up: PostScript figures + +5.1.6 Fonts in figures +---------------------- + +You can use any font available to TeX and Dvips within a graphics file +by putting a `%*Font:' line in the leading commentary of the file. +Schematically, this looks like: + + %*Font: TFMNAME SCALEDBP DESIGNBP HEX-START:HEX-BITSTRING + + Here is the meaning of each of these elements: + +TFMNAME + The TeX TFM filename, e.g., `cmr10'. You can give the same + TFMNAME on more than one `%*Font' line; this is useful when the + number of characters from the font used needs a longer + HEX-BITSTRING (see item below) than conveniently fits on one line. + +SCALEDBP + The size at which you are using the font, in PostScript points (TeX + big points). 72bp = 72.27pt = 1in. + +DESIGNBP + The designsize of the font, again in PostScript points. This + should match the value in the TFM file TFMNAME. Thus, for `cmr10', + it should be `9.96265'. + +HEX-START + The character code of the first character used from the font, + specified as two ASCII hexadecimal characters, e.g., `4b' or `4B' + for `K'. + +HEX-BITSTRING + An arbitrary number of ASCII hexadecimal digits specifying which + characters following (and including) HEX-START are used. This is + treated as a bitmap. For example, if your figure used the single + letter `K', you would use `4b:8' for HEX-START and HEX-BITSTRING. + If it used `KLMNP', you would use `4b:f4'. + + + MetaPost's output figures contain lines like this for bitmap fonts +used in a MetaPost label (*note MetaPost: (web2c)MetaPost.). + + +File: dvips.info, Node: Header files, Next: Literal PS, Prev: PostScript figures, Up: Interaction with PostScript + +5.2 PostScript header files +=========================== + +"Header files" are bits of PostScript included in the output file; +generally they provide support for special features, rather than +producing any printed output themselves. You can explicitly request +downloading header files if necessary for some figure, or to achieve +some special effect. + + Dvips includes some headers on its own initiative, to implement +features such as PostScript font reencoding, bitmap font downloading, +handling of `\special''s, and so on. These standard headers are the +`.pro' files (for "prologue") in the installation directory +`$(psheaderdir)'; they are created from the `.lpro' ("long prologue") +files in the distribution by stripping comments, squeezing blank lines, +etc., for maximum efficiency. If you want to peruse one of the +standard header files, read the `.lpro' version. + + The PostScript dictionary stack will be at the `userdict' level when +header files are included. + +* Menu: + +* Including headers from TeX:: +* Including headers from the command line:: +* Headers and memory usage:: + + +File: dvips.info, Node: Including headers from TeX, Next: Including headers from the command line, Up: Header files + +5.2.1 Including headers from TeX +-------------------------------- + +In order to get a particular graphic file to work, a certain font or +header file might need to be sent first. The Dvips program provides +support for this with the `header' `\special'. For instance, to ensure +that `foo.ps' gets downloaded: + + \special{header=foo.ps} + + As another example, if you have some PostScript code that uses a +PostScript font not built into your printer, you must download it to the +printer. If the font isn't used elsewhere in the document, Dvips can't +know you've used it, so you must include it in the same way, as in: + + \special{header=putr.pfa} + +to include the font definition file for Adobe Utopia Roman. + + The `header' also special allows for specifying some additional code +that should be inserted into the PostScript document before and after +the file itself, as follows: + + \special{header={foo.ps} pre={pre code} post={post code}} + + This will insert `pre code' just before `foo.ps' and `post code' +just after. It is required to use the (balanced) braces in _all_ of +the arguments, including the `header', when using this extended syntax. + + This allows, for instance, dynamic headers, where some of the content +depends on settings from the user in (La)TeX. Another application is +the inclusion of graphics inside the PostScript header, so that they +can be reused throughout the document, as with logs. That avoids +including the same graphic several times. This is implemented in the +`graphics/graphicx-psmin' package. + + This extended syntax has one additional feature. When Dvips finds the +extended syntax, it will also look in the installed `tex/' tree(s) for +the header file (`foo.ps' in our example), and not only in the current +directory and dvips tree as the original syntax does. This is because +common graphics may well come with packages which are installed in the +`tex/' tree. + + +File: dvips.info, Node: Including headers from the command line, Next: Headers and memory usage, Prev: Including headers from TeX, Up: Header files + +5.2.2 Including headers from the command line +--------------------------------------------- + +You can include headers when you run Dvips, as well as from your +document (see the previous section). To do this, run Dvips with the +option `-P HEADER'; this will read the file `config.HEADER', which in +turn can specify a header file to be downloaded with the `h' option. +*Note Configuration file commands::. These files are called +`HEADER.cfg' on MS-DOS. + + You can arrange for the same file to serve as a `-P' config file and +the downloadable header file, by starting the lines of PostScript code +with a space, leaving only the `h' line and any comments starting in +the first column. As an example, see `contrib/volker/config.*' +(`contrib/volker/*.cfg' on MS-DOS). (These files also perform useful +functions: controlling duplex/simplex mode on duplex printers, and +setting various screen frequencies; `contrib/volker/README' explains +further.) + + +File: dvips.info, Node: Headers and memory usage, Prev: Including headers from the command line, Up: Header files + +5.2.3 Headers and memory usage +------------------------------ + +Dvips tries to avoid overflowing the printer's memory by splitting the +output files into "sections" (see the `-i' option in *Note Option +details::). Therefore, for all header files, Dvips debits the printer +VM budget by some value. If the header file has, in its leading +commentary a line of the form + + %%VMusage: MIN MAX + +then MAX is used. If there is no `%%VMusage' line, then the size (in +bytes) of the header file is used as an approximation. + + Illustrations (figure files) are also checked for `%%VMusage' line. + + +File: dvips.info, Node: Literal PS, Next: Hypertext, Prev: Header files, Up: Interaction with PostScript + +5.3 Literal PostScript +====================== + +You can include literal PostScript code in your document in several +ways. + +* Menu: + +* " special:: To include inline PostScript code. +* ps special:: Inline PostScript without save/restore. +* PostScript hooks:: Specifying code to run in the PS interpreter. +* Literal headers:: Literal PostScript for the whole document. +* Literal examples:: Neat example. + + +File: dvips.info, Node: " special, Next: ps special, Up: Literal PS + +5.3.1 `"' special: Literal PostScript +------------------------------------- + +For simple graphics, or just for experimentation, literal PostScript +code can be included. Simply use a `\special' beginning with a double +quote character `"'; there is no matching closing `"'. + + For instance, the following (simple) graphic: + + [ picture of a grey triangle ] + +was created by typing: + + \vbox to 100bp{\vss % a bp is the same as a PostScript unit + \special{" newpath 0 0 moveto 100 100 lineto 394 0 lineto + closepath gsave 0.8 setgray fill grestore stroke}} + + You are responsible for leaving space for such literal graphics, as +with the `\vbox' above. + + +File: dvips.info, Node: ps special, Next: PostScript hooks, Prev: " special, Up: Literal PS + +5.3.2 `ps' special +------------------ + +Generally, Dvips encloses specials in a PostScript save/restore pair, +guaranteeing that the special will have no effect on the rest of the +document. The `ps' special, however, allows you to insert literal +PostScript instructions without this protective shield; you should +understand what you're doing (and you shouldn't change the PostScript +graphics state unless you are willing to take the consequences). This +command can take many forms because it has had a torturous history; any +of the following will work: + + \special{ps:TEXT} + \special{ps::TEXT} + \special{ps::[begin]TEXT} + \special{ps::[end]TEXT} + +(with longer forms taking precedence over shorter forms, when they are +present). `ps::' and `ps::[end]' do no positioning, so they can be +used to continue PostScript literals started with `ps:' or +`ps::[begin]'. + + In addition, the variant + + \special{ps: plotfile FILENAME} + +inserts the contents of FILENAME verbatim into the output (except for +omitting lines that begin with %). An example of the proper use of +literal specials can be found in the file `rotate.tex', which makes it +easy to typeset text turned in multiples of 90 degrees. + + +File: dvips.info, Node: Literal headers, Next: Literal examples, Prev: PostScript hooks, Up: Literal PS + +5.3.3 Literal headers: `!' `\special' +------------------------------------- + +You can download literal PostScript header code in your TeX document, +for use with (for example) literal graphics code that you include later. +The text of a `\special' beginning with an `!' is copied into the +output file. A dictionary `SDict' will be current when this code is +executed; Dvips arranges for `SDict' to be first on the dictionary +stack when any PostScript graphic is included, whether literally (the +`"' special) or through macros (e.g., `epsf.tex'). + + For example: + + \special{! /reset { 0 0 moveto} def} + + +File: dvips.info, Node: PostScript hooks, Next: Literal headers, Prev: ps special, Up: Literal PS + +5.3.4 PostScript hooks +---------------------- + +Besides including literal PostScript at a particular place in your +document (as described in the previous section), you can also arrange to +execute arbitrary PostScript code at particular times while the +PostScript is printing. + + If any of the PostScript names `bop-hook', `eop-hook', `start-hook', +or `end-hook' are defined in `userdict', they will be executed at the +beginning of a page, end of a page, start of the document, and end of a +document, respectively. + + When these macros are executed, the default PostScript coordinate +system and origin is in effect. Such macros can be defined in headers +added by the `-h' option or the `header=' special, and might be useful +for writing, for instance, `DRAFT' across the entire page, or, with the +aid of a shell script, dating the document. These macros are executed +outside of the save/restore context of the individual pages, so it is +possible for them to accumulate information, but if a document must be +divided into sections because of memory constraints, such added +information will be lost across section breaks. + + The single argument to `bop-hook' is the physical page number; the +first page gets zero, the second one, etc. `bop-hook' must leave this +number on the stack. None of the other hooks are passed arguments. + + As an example of what can be done, the following special will write +a light grey `DRAFT' across each page in the document: + + \special{!userdict begin /bop-hook{gsave 200 30 translate + 65 rotate /Times-Roman findfont 216 scalefont setfont + 0 0 moveto 0.7 setgray (DRAFT) show grestore}def end} + + Using `bop-hook' or `eop-hook' to preserve information across pages +breaks compliance with the Adobe document structuring conventions, so +if you use any such tricks, you may also want to use the `-N' option to +turn off structured comments (such as `%%Page'). Otherwise, programs +that read your file will assume its pages are independent. + + +File: dvips.info, Node: Literal examples, Prev: Literal headers, Up: Literal PS + +5.3.5 Literal examples +---------------------- + +To finish off this section, the following examples of literal PostScript +are presented without explanation: + + \def\rotninety{\special{ps:currentpoint currentpoint translate 90 + rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept + \setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0 + \special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety + \box0\special{ps:grestore}}\vskip16truept + + [ There are 4 `A' characters, each rotated 90 degrees about a +common center point ] + + \vbox to 2truein{\special{ps:gsave 0.3 setgray}\hrule height 2in + width\hsize\vskip-2in\special{ps:grestore}\font\big=cminch\big + \vss\special{ps:gsave 1 setgray}\vbox to 0pt{\vskip2pt + \line{\hss\hskip4pt NEAT\hss}\vss}\special{ps:0 setgray}% + \hbox{\raise2pt\line{\hss NEAT\hss}\special{ps:grestore}}\vss} + + [ There is a big gray box with the word `NEAT' inside in big letters +] + + Some caveats are in order, however. Make sure that each `gsave' is +matched with a `grestore' on the same page. Do not use `save' and +`restore'; they can interact with the PostScript generated by Dvips if +care is not taken. Try to understand what the above macros are doing +before writing your own. The `\rotninety' macro especially has a +useful trick that appears again and again. + + +File: dvips.info, Node: Hypertext, Prev: Literal PS, Up: Interaction with PostScript + +5.4 HyperTeXt +============= + +Dvips has support for producing hypertext PostScript documents. If you +specify the `-z' option, the `html:' specials described below will be +converted into `pdfmark' PostScript operators to specify links. +Without `-z', `html:' specials are ignored. + + The resulting PostScript can then be processed by a distiller +program to make a PDF file. (It can still be handled by ordinary +PostScript interpreters as well.) Various versions of both PC and Unix +distillers are supported; Ghostscript includes limited distiller support +(*note Ghostscript installation::). + + Macros you can use in your TeX document to insert the specials in the +first place are available from `CTAN:/support/hypertex'. For CTAN +info, *note unixtex.ftp: (kpathsea)unixtex.ftp. + + This hypertext support (and original form of the documentation) was +written by Mark Doyle and Tanmoy Bhattacharya as the `dvihps' program. +You can retrieve their software and additional documentation via the +CTAN reference above. You may also be interested in the Java previewer +IDVI, available at `http://www.win.tue.nl/~dickie/idvi', and/or in +`http://www.emrg.com/texpdf.html', which describes the process of +making PDF files from TeX files in more detail. + + Mail archives for the original project are at +`http://math.albany.edu:8800/hm/ht/'. + +* Menu: + +* Hypertext caveats:: Font quality, missing character psi. +* Hypertext specials:: The details on the specials. + + +File: dvips.info, Node: Hypertext caveats, Next: Hypertext specials, Up: Hypertext + +5.4.1 Hypertext caveats +----------------------- + +If you intend to go all the way to PDF, you may want to use the standard +35 PostScript fonts exclusively, since other fonts are embedded as +bitmaps by default. The Adobe PDF readers are extremely slow when +dealing with bitmap fonts and the results look terrible on the screen. +Printouts will probably look fine, but may not take full advantage of a +high-resolution printer. Alternatively, you can have your fonts +embedded as Type 1 scalable outlines. The resulting PostScript files +may be larger, but can be effectively rasterized at any resolution. +They can also be converted to PDF files that can be used effectively at +any screen or printer resolution. + + To get the TeX fonts embedded in the PostScript file as Type 1 fonts, +add `-Ppdf' to the dvips command line switches. The printout for a run +should look something like this: + + dvips report -Ppdf -o report.ps + This is dvips(k) 5.86 Copyright 1999 Radical Eye Software (www.radicaleye.com) + ' TeX output 2001.06.15:0837' -> report.ps + <tex.pro><alt-rule.pro><texc.pro><texps.pro><special.pro>. + <cmbx9.pfb><cmsy6.pfb><cmsy7.pfb><cmr5.pfb><cmex10.pfb><cmr9.pfb> + <cmmi7.pfb><cmsy10.pfb><cmmib10.pfb><cmmi10.pfb><cmti10.pfb> + <cmr7.pfb><cmbx10.pfb><cmr10.pfb><cmti9.pfb><cmr12.pfb><cmbx12.pfb> + [1] [2<mean1.ps>] [3<bounce1-00.ps>] [4] + + An entry like "<cmr10.pfb>" indicates success: dvips found the +Computer Modern Roman 10 point font in a PostScript Font Binary file, +translated it to an ASCII encoding, and embedded it. You can confirm +this by examining the PostScript output file, looking for the section +starting `%%BeginFont: CMR10' followed by an entry `/FontType 1 def'. + + The `-Ppdf' option requires that the relevant outline (`.pfa' or +`.pfb') files be installed (*note Font concepts::). For example, the +`cmr10' file might be in +`/usr/share/texmf/fonts/type1/bluesky/cm/cmr10.pfb'. Your TeX +distribution may make those fonts available in a separate optional +package (e.g., `tetex-extra' in Debian). Failing that, commercial +versions of the Computer Modern fonts are available from Blue Sky; +public domain versions - in particular, the lm fonts, and the cm-super +fonts, are available from CTAN sites (for CTAN info, *note unixtex.ftp: +(kpathsea)unixtex.ftp.). + + You can convert a PostScript file to PDF using `distill', which +comes with Adobe Acrobat, or `ps2pdf', which comes with Ghostscript. +The `ps2pdf' that comes with `Ghostscript' version 6.0 or earlier will +not embed Type 1 fonts. Current recommendations are GNU Ghostscript +6.51 or Aladdin Ghostscript 7.0. You can check the fonts in a PDF file +with Acrobat Reader by selecting the menu entries `File|Document +Info|Fonts'. + + Also, the Adobe distillers prior to 2.1 drop trailing space +characters (character code 32) from strings. Unfortunately, the +PostScript fonts use this character code for characters other than +space (notably the Greek letter psi in the `Symbol' font), and so these +characters are dropped. This bug is fixed in version 2.1. + + If you can't upgrade, One workaround is to change all the trailing +blanks in strings to a character code that isn't in the font. This works +because the default behavior is to substitute a blank for a missing +character, i.e., the distiller is fooled into substituting the right +character. For instance, with the Blue Sky fonts, you can globally +replace ` )' with `\200)' (with `sed', for example) and get the desired +result. With the public domain fonts, you will probably have to use a +character code in the range 128 to 191 since these fonts duplicate the +first 32 characters starting at 192 to avoid MS-DOS problems. + + For more information on the use of TeX to produce PDF files, see the +article "Creating quality Adobe PDF files from TeX with DVIPS" by +Kendall Whitehouse of Adobe. Adobe seems not to offer the article any +more, but copies are available elsewhere: + `http://www.math.hawaii.edu/~ralph/MathOnWeb/TeXPDF.html' + `http://www.utdallas.edu/~cantrell/online/543e.html' + + You may also want to check "Notes on converting (La)TeX documents to +robust PDF using Rokicki's dvips and Acrobat Distiller" by Timothy P. +Van Zandt: +`http://www.emrg.com/texpdf.htmlhttp://zandtwerk.insead.fr/tex2pdf.html'. + + +File: dvips.info, Node: Hypertext specials, Prev: Hypertext caveats, Up: Hypertext + +5.4.2 Hypertext specials +------------------------ + +Current support for the World Wide Web in the TeX system does not +involve modifying TeX itself. We need only define some specials; +Arthur Smith (<apsmith@aps.org>), Tanmoy Bhattacharya, and Paul +Ginsparg originally proposed and implemented the following: + html:<a href="XURL"> + html:<a name="NAME"> + html:</a> + html:<img src="XURL"> + html:<base href="XURL"> + + Like all TeX `\special''s, these produce no visible output, and are +uninterpreted by TeX itself. They are instructions to DVI processors +only. + + Here, XURL is a standard WWW uniform resource locator (URL), +possibly extended with a `#TYPE.STRING' construct, where TYPE is +`page', `section', `equation', `reference' (for bibliographic +references), `figure', `table', etc. For example, + \special{html:<a href="http://www.maths.tcd.ie/~tim/ch1.dvi#equation.1.1">} + is a link to equation (1.1) in an example document by Tim Murphy. + + See the URL +`http://www.w3.org/hypertext/WWW/Addressing/Addressing.html' for a +precise description of base URL's. + + Descriptions of the `\special''s: +`href' + Creates links in your TeX document. For example: + \special{html:<a href="http://www.tug.org/">}\TeX\ Users + Group\special{html:</a>} + The user will be able to click on the text `TeX Users Group' while + running Xdvi and get to the TUG home page. (By the way, this is + for illustration. In practice, you most likely want to use macros + to insert the `\special' commands; reference above.) + +`name' + Defines URL targets in your TeX documents, so links can be + resolved. For example: + \special{html:<a name="paradise">}Paradise\special{html:</a>} + is exactly where you are right now. + This will resolve an `href="#paradise"'. You'll also have to + change the catcode of `#', etc. It's usually easiest to use + existing macro packages which take care of all the details, such as + `hyperref' for LaTeX. The HyperTeX FAQ + (http://arxiv.org/hypertex/) has more information. + +`img' + Links to an arbitrary external file. Interactively, a viewer is + spawned to read the file according to the file extension and your + `mailcap' file (see the Xdvi documentation). + +`base' + Defines a base URL that is prepended to all the `name' targets. + Typically unnecessary, as the name of the DVI file being read is + used by default. + + The `img' and `base' tags are not yet implemented in Dvips or the +NeXTSTEP DVI viewer. + + +File: dvips.info, Node: PostScript fonts, Next: Color, Prev: Interaction with PostScript, Up: Top + +6 PostScript fonts +****************** + +Dvips supports the use of PostScript fonts in TeX documents. To use a +PostScript font conveniently, you need to prepare a corresponding +virtual font; the program Afm2tfm, supplied with Dvips, helps with that. + + All the necessary support for the standard 35 PostScript fonts +(`AvantGarde-Book' through `ZapfDingbats'), plus other freely or +commonly available PostScript fonts is available along with Dvips. To +use these fonts, you need do nothing beyond what is mentioned in the +installation procedure (*note Installation::). This chapter is +therefore relevant only if you are installing new PostScript fonts not +supplied with Dvips. (Or if you're curious.) + +* Menu: + +* Font concepts:: Metrics, glyphs, virtual fonts, and encodings. +* Making a font available:: Installing and using a PostScript font. +* Invoking afm2tfm:: Creating TFM and AFM files for a virtual font. +* psfonts.map:: Defining available PostScript fonts. + + +File: dvips.info, Node: Font concepts, Next: Making a font available, Up: PostScript fonts + +6.1 Font concepts +================= + +The information needed to typeset using a particular font is contained +in two files: a "metric file" that contains shape-independent +information and a "glyph file" that contains the actual shapes of the +font's characters. A "virtual font" is an optional additional file +that can specify special ways to construct the characters. TeX itself +(or LaTeX) look only at the metric file, but DVI drivers such as Dvips +look at all three of these files. + + An "encoding file" defines the correspondence between the code +numbers of the characters in a font and their descriptive names. Two +encoding files used together can describe a reencoding that rearranges, +i.e., renumbers, the characters of a font. + +* Menu: + +* Metric files:: Shape-independent font information. +* Glyph files:: Character shapes. +* Virtual fonts:: Constructing one font from others. +* Encodings:: Character codes and character names. +* PostScript typesetting:: How PostScript typesets a character. + + +File: dvips.info, Node: Metric files, Next: Glyph files, Up: Font concepts + +6.1.1 Metric files +------------------ + +A "metric file" describes properties of the font that are independent +of what the characters actually look like. Aside from general +information about the font itself, a metric file has two kinds of +information: information about individual characters, organized by +character code, and information about sequences of characters. + + The per-character information specifies the width, height, depth, and +italic correction of each character in the font. Any might be zero. + + In addition to information on individual characters, the metric file +specifies "kerning", i.e., adding or removing space between particular +character pairs. It further specifies "ligature" information: when a +sequence of input characters should be typeset as a single (presumably +different) "ligature" character. For example, it's traditional for the +input `fi' to be typeset as `fi', not as `fi' (with the dot of the `i' +colliding with `f'). (In English, the only common ligatures are fi, +fl, ff, ffi, and ffl.) + + Different typesetting systems use different metric file formats: + + * Each Postscript font has an "Adobe font metrics" (`.afm') file. + These files are plain text, so you can inspect them easily. You + can get AFM files for Adobe's fonts from + `ftp://ftp.adobe.com/pub/adobe/Fonts/AFMs'. + + * TeX uses "TeX font metrics" (`.tfm') files. When you say `\font = + FONT' in your TeX document, TeX reads a file named `FONT.tfm'. + (Well, except for the `texfonts.map' feature; *note Fontmap: + (kpathsea)Fontmap.). TeX can then calculate the space occupied by + characters from the font when typesetting. In addition, the DVI + drivers you use to print or view the DVI file produced by TeX may + need to look at the TFM file. + + TFM files are binary (and hence are typically much smaller than AFM + files). You can use the `tftopl' program (*note tftopl invocation: + (web2c)tftopl invocation.) that comes with TeX to transform a TFM + file into a human-readable "property list" (`.pl') file. You can + also edit a PL file and transform it back to a TeX-readable TFM + with the companion program `pltotf' (*note pltotf invocation: + (web2c)pltotf invocation.). Editing metrics by hand is not + something you're likely to want to do often, but the capability is + there. + + * ATM and other typesetting systems use "printer font metric" + (`.pfm') files. These are binary files. They are irrelevant in the + TeX world, and not freely available, so we will not discuss them + further. + + + The Afm2tfm program distributed with Dvips converts an AFM file to a +TFM file and performs other useful transformations as well. *Note +Invoking afm2tfm::. + + +File: dvips.info, Node: Glyph files, Next: Virtual fonts, Prev: Metric files, Up: Font concepts + +6.1.2 Glyph files +----------------- + +Although a metric file (see the previous section) contains information +about the spatial and other properties of the character at position 75, +say, it contains nothing about what the character at position 75 +actually looks like. The glyphs--the actual shapes of the letterforms +in a font--are defined by other files, which we call glyph files. TeX +itself only reads the TFM file for a font; it does not need to know +character shapes. + + A "glyph file" is a file that defines the shapes of the characters +in a font. The shapes can be defined either by outlines or by bitmaps. + + PostScript fonts are defined as "outline fonts": Each character in +the font is defined by giving the mathematical curves (lines, arcs, and +splines) that define its contours. Different sizes of a character are +generated by linearly scaling a single shape. For example, a 10-point +`A' is simply half the size of a 20-point `A'. Nowadays, outline fonts +usually also contain "hints"--additional information to improve the +appearance of the font at small sizes or low resolutions. + + Although various kinds of PostScript outline fonts exist, by far the +most common, and the only one we will consider, is called "Type 1". +The glyph files for Postscript Type 1 fonts typically have names ending +in `.pfa' ("printer font ASCII") or `.pfb' ("printer font binary"). + + In contrast, glyph files for Computer Modern and the other standard +TeX fonts are "bitmap fonts", generated from Metafont (`.mf') +descriptions. The Metafont program distributed with TeX generates +bitmaps from these descriptions. + + The glyph files for TeX bitmap fonts are usually stored in "packed +font" (PK) files. The names of these files end in `.NNNpk', where NNN +is the resolution of the font in dots per inch. For example, +`cmr10.600pk' contains the bitmaps for the `cmr10' font at a resolution +of 600dpi. (On DOS filesystems, it's more likely `dpi600\cmr10.pk'.) + + Metafont actually outputs "generic font" (GF) files, e.g., +`cmr10.600gf', but the GF files are usually converted immediately to PK +format (using the `gftopk' utility that comes with TeX) since PK files +are smaller and contain the same information. (The GF format is a +historical artifact.) + + +File: dvips.info, Node: Virtual fonts, Next: Encodings, Prev: Glyph files, Up: Font concepts + +6.1.3 Virtual fonts +------------------- + +A "virtual font" is constructed by extracting characters from one or +more existing fonts and rearranging them, or synthesizing new characters +in various ways. The explanation in this manual is intended to suffice +for understanding enough about virtual fonts to use them with Dvips. It +isn't a reference manual on virtual fonts. For more information: The +primary document on virtual fonts is Donald E. Knuth, `TUGboat' 11(1), +Apr. 1990, pp. 13-23, "Virtual Fonts: More Fun for Grand Wizards" +(`CTAN:/info/virtual-fonts.knuth'; for CTAN info, *note unixtex.ftp: +(kpathsea)unixtex.ftp.). (Don't be intimidated by the subtitle.) + + A virtual font (`.vf') file specifies, for each character in the +virtual font, a recipe for typesetting that character. A VF file, like +a TFM file, is in a compressed binary format. The `vftovp' and +`vptovf' programs convert a VF file to a human-readable VPL (virtual +property list) format and back again. *Note vftovp invocation: +(web2c)vftovp invocation, and *Note vptovf invocation: (web2c)vptovf +invocation. + + In the case of a PostScript font F being used in a straightforward +way, the recipe says: character I in the VF font is character J in font +F. The font F is called a "base font". For example, the VF file could +remap the characters of the PostScript font to the positions where TeX +expects to find them. *Note Encodings::. + + Since TeX reads only TFM files, not VF's, each VF must have a +corresponding TFM for use with TeX. This corresponding TFM is created +when you run `vptovf'. + + You can "expand" virtual fonts into their base fonts with DVIcopy +(*note dvicopy invocation: (web2c)dvicopy invocation.). This is useful +if you are using a DVI translator that doesn't understand vf's itself. + + +File: dvips.info, Node: Encodings, Next: PostScript typesetting, Prev: Virtual fonts, Up: Font concepts + +6.1.4 Encodings +--------------- + +Every font, whatever its type, has an "encoding", that specifies the +correspondence between "logical" characters and character codes. For +example, the ASCII encoding specifies that the character numbered 65 +(decimal) is an uppercase `A'. The encoding does not specify what the +character at that position looks like; there are lots of ways to draw an +`A', and a glyph file (*note Glyph files::) tells how. Nor does it +specify how much space that character occupies; that information is in a +metric file (*note Metric files::). + + TeX implicitly assumes a particular encoding for the fonts you use +with it. For example, the plain TeX macro `\'', which typesets an +acute accent over the following letter, assumes the acute accent is at +position 19 (decimal). This happens to be true of standard TeX fonts +such as Computer Modern, as you might expect, but it is not true of +normal PostScript fonts. + + It's possible but painful to change all the macros that assume +particular character positions. A better solution is to create a new +font with the information for the acute accent at position 19, where +TeX expects it to be. *Note Making a font available::. + + PostScript represents encodings as a sequence of 256 character names +called an "encoding vector". An "encoding file" (`.enc') gives such a +vector, together with ligature and kerning information (with which we +are not concerned at the moment). These encoding files are used by the +Afm2tfm program. Encoding files are also downloaded to the PostScript +interpreter in your printer if you use one of them in place of the +default encoding vector for a particular PostScript font. + + Examples of encodings: the `dvips.enc' encoding file that comes with +Dvips in the `reencode' directory is a good (but not perfect) +approximation to the TeX encoding for TeX's Computer Modern text fonts. +This is the encoding of the fonts that originated with Dvips, such as +`ptmr.tfm'. The distribution includes many other encoding files; for +example, `8r.enc', which is the base font for the current PostScript +font distribution, and three corresponding to the TeX mathematics +fonts: `texmext.enc' for math extensions, `texmital.enc' for math +italics, and `texmsym.enc' for math symbols. + + +File: dvips.info, Node: PostScript typesetting, Prev: Encodings, Up: Font concepts + +6.1.5 How PostScript typesets a character +----------------------------------------- + +The output of Dvips is a program in the PostScript language that +instructs your (presumably PostScript-capable) printer how to typeset +your document by transforming it into toner on paper. Your printer, in +turn, contains a PostScript interpreter that carries out the +instructions in this typesetting program. + + The program must include the definition of any PostScript fonts that +you use in your document. Fonts built into your printer (probably the +standard 35: `Times-Roman', `ZapfDingbats', ...) are defined within the +interpreter itself. Other fonts must be downloaded as pfa or pfb files +(*note Glyph files::) from your host (the computer on which you're +running Dvips). + + You may be wondering exactly how a PostScript interpreter figures out +what character to typeset, with this mass of metrics, glyphs, encodings, +and other information. (If you're not wondering, skip this section ...) + + The basic PostScript operator for imaging characters is `show'. +Suppose you've asked TeX to typeset an `S'. This will eventually wind +up in the Dvips output as the equivalent of this PostScript operation: + + (S) show + +Here is how PostScript typesets the `S': + + 1. PostScript interpreters use ASCII; therefore `S' is represented as + the integer 83. (Any of the 256 possible characters representable + in a standard 8-bit byte can be typeset.) + + 2. A PostScript "dictionary" is a mapping of names to arbitrary + values. A font, to the interpreter, is a dictionary which + contains entries for certain names. (If these entries are + missing, the interpreter refuses to do anything with that font.) + + PostScript has a notion of "the current font"--whatever font is + currently being typeset in. + + 3. One of the mandatory entries in a font dictionary is `Encoding', + which defines the encoding vector (*note Encodings::) for that + font. This vector of 256 names maps each possible input character + to a name. + + 4. The interpreter retrieves the entry at position 83 of the encoding + vector. This value is a PostScript name: `/S'. + + 5. For Type 1 fonts (we're not going to discuss anything else), the + interpreter now looks up `/S' as a key in a dictionary named + `CharStrings', another mandatory entry in a font dictionary. + + 6. The value of `S' in `CharStrings' is the equivalent of a series of + standard PostScript commands like `curveto', `lineto', `fill', and + so on. These commands are executed to draw the character. There + can also be "hint information" that helps adapt the character to + low-resolution rasters. (*Note Glyph files::.) The commands are + actually represented in a more compact way than standard + PostScript source; see the Type 1 book for details. + + + This method for typesetting characters is used in both Level 1 and +Level 2 PostScript. See the PostScript reference manuals for more +information. + + +File: dvips.info, Node: Making a font available, Next: Invoking afm2tfm, Prev: Font concepts, Up: PostScript fonts + +6.2 Making a PostScript font available +====================================== + +To make a PostScript font available in a TeX document, you need to +install the font on your system and then define it within the document. +Once you have installed the font, of course, it is available for any +document thereafter and you don't need to reinstall it. You must have +an AFM file for any font you install. Unless the font is built into your +printer, you must also have a PFA or PFB file. + + In the following examples, we use the font `Times-Roman' to +illustrate the process. But you should use the prebuilt fonts for Times +and the other standard fonts, rather than rebuilding them. The prebuilt +fonts are made using a more complicated process than that described +here, to make them work as well as possible with TeX. So following the +steps in this manual will not generate files identical to the +distributed ones. *Note PostScript font installation::, for pointers to +the prebuilt fonts. + + Installation of a PostScript font proceeds in three steps. *Note +Font concepts::, for descriptions of the various files involved. + + 1. Run `afm2tfm' to create a TFM file for the original font, and the + VPL form of the virtual font: + afm2tfm Times-Roman -v ptmr rptmr + + 2. Run `vptovf' to generate a VF and TFM file for the virtual font + from the VPL file: + vptovf ptmr.vpl ptmr.vf ptmr.tfm + + 3. Insert an entry for the font in `psfonts.map' (*note + psfonts.map::): + rptmr Times-Roman <ptmr8a.pfa + + 4. Install the files in the standard locations, as in: + cp ptmr.vf FONTDIR/vf/... + cp *ptmr.tfm FONTDIR/tfm/... + cp ptmr.afm FONTDIR/afm/... + cp ptmr.pf? FONTDIR/type1/... + + The simplest invocation of Afm2tfm to make virtual fonts goes +something like this: + + afm2tfm Times-Roman -v ptmr rptmr + +This reads the file `Times-Roman.afm', and produces two files as +output, namely the virtual property list'file `ptmr.vpl', and the "raw" +font metric file `rptmr.tfm'. To use the font in TeX, you first run + + vptovf ptmr.vpl ptmr.vf ptmr.tfm + +You should then install the virtual font file `ptmr.vf' where Dvips +will see it and install `ptmr.tfm' and `rptmr.tfm' where TeX and Dvips +will see them. + + Using these raw fonts is not recommended; there are no raw fonts in +the prebuilt PostScript fonts distributed along with Dvips. But +nevertheless, that's how Afm2tfm presently operates, so that's what we +document here. The `r' prefix convention is likewise historical +accident. + + You can also make more complex virtual fonts by editing `ptmr.vpl' +before running `vptovf'; such editing might add the uppercase Greek +characters in the standard TeX positions, for instance. (This has +already been done for the prebuilt fonts.) + + Once the files have been installed, you're all set. You can now do +things like this in TeX: + \font\myfont = ptmr at 12pt + \myfont Hello, I am being typeset in 12-point Times-Roman. + + Thus, we have two fonts, one actual (`rptmr', which is analogous to +the font in the printer) and one virtual (`ptmr', which has been +remapped to the standard TeX encoding (almost)), and has typesetting +know-how added. You could also say + + \font\raw = rptmr at 10pt + +and typeset directly with that, but then you would have no ligatures or +kerning, and you would have to use Adobe character positions for special +letters like the ligature `AE'. The virtual font `ptmr' not only has +ligatures and kerning, and most of the standard accent conventions of +TeX, it also has a few additional features not present in the Computer +Modern fonts. For example, it includes all the Adobe characters (such +as the Polish ogonek and the French guillemots). The only things you +lose from ordinary TeX text fonts are the dotless `j' (which can be +hacked into the VPL file with literal PostScript specials if you have +the patience) and uppercase Greek letters (which just don't exist +unless you buy them separately). *Note Reencoding with Afm2tfm::. + + As a final step you need to record information about both the virtual +font and the original font (if you ever might want to use it) in the +`psfonts.map' file (*note psfonts.map::). For our example, you'd +insert the following into `psfonts.map': + rptmr Times-Roman <ptmr8a.pfa + +Of course, `Times-Roman' is already built in to most every printer, so +there's no need to download any Type 1 file for it. But if you are +actually following these instructions for new fonts, most likely they +are not built in to the printer. + + These PostScript fonts can be scaled to any size. Go wild! Using +PostScript fonts, however, does use up a great deal of the printer's +memory and it does take time. You may find downloading bitmap fonts +(possibly compressed, with the `Z' option) to be faster than using the +built-in PostScript fonts. + + +File: dvips.info, Node: Invoking afm2tfm, Next: psfonts.map, Prev: Making a font available, Up: PostScript fonts + +6.3 Invoking Afm2tfm +==================== + +The Afm2tfm program converts an AFM file for a PostScript font to a TFM +file and a VPL file for a corresponding virtual font (or, in its +simplest form, to a TFM file for the PostScript font itself). The +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 unixtex.ftp: +(kpathsea)unixtex.ftp.). + +* Menu: + +* Changing font encodings:: Reencoding with -t, -p, -T. +* Special font effects:: Oblique fonts, small caps, and such. +* Afm2tfm options:: afm2tfm command-line options. + + +File: dvips.info, Node: Changing font encodings, Next: Special font effects, Up: Invoking afm2tfm + +6.3.1 Changing font encodings +----------------------------- + +Afm2tfm allows you to specify a different encoding for a PostScript font +(for a general introduction to encodings, *note Encodings::). The `-t' +options changes the TeX encoding, `-p' changes the PostScript encoding, +and `-T' changes both simultaneously, as detailed in the sections below. + +* Menu: + +* Changing TeX encodings:: Where TeX finds a character. +* Changing PostScript encodings:: Where PostScript finds a character. +* Changing both encodings:: One and the same, simultaneously. +* Reencoding with Afm2tfm:: Problems with the default encoding. +* Encoding file format:: Syntax of an encoding file. + + +File: dvips.info, Node: Changing TeX encodings, Next: Changing PostScript encodings, Up: Changing font encodings + +6.3.1.1 `-t': Changing TeX encodings +.................................... + +To build a virtual font with Afm2tfm, you specify the `-v' or `-V' +option. You can then specify an encoding for that virtual font with `-t +TEX-ENC'. (`-t' is ignored if neither `-v' nor `-V' is present.) Any +ligature and kerning information you specify in TEX-ENC will be used in +the VPL, in addition to the ligature and kerning information from the +AFM file. + + If the AFM file has no entry for a character specified in TEX-ENC, +that character will be omitted from the output VPL. + + The `-t' option is likely to be needed when you have a PostScript +font corresponding to a TeX font other than a normal text font such as +Computer Modern. For instance, if you have a PostScript font that +contains math symbols, you'd probably want to use the encoding in the +`texmsym.enc' file supplied with Dvips. (For a start; to actually get +usable math fonts, you have to define much more than just an encoding.) + + +File: dvips.info, Node: Changing PostScript encodings, Next: Changing both encodings, Prev: Changing TeX encodings, Up: Changing font encodings + +6.3.1.2 `-p': Changing PostScript encodings +........................................... + +By default, Afm2tfm uses the encoding it finds in the AFM file. You can +specify a different PostScript encoding with `-p PS-ENC'. This makes +the raw TFM file (the one output by Afm2tfm) have the encoding +specified in the encoding file PS-ENC. Any ligature or kern +information specified in PS-ENC is ignored by Afm2tfm, since ligkern +info is always omitted from the raw TFM. + + If you use this option, you must also arrange to download PS-ENC as +part of any document that uses this font. You do this by adding a line +like the following one to `psfonts.map' (*note psfonts.map::): + zpopr Optima "MyEncoding ReEncodeFont" <myenc.enc + + Using `-p' is the only way to access characters in a PostScript font +that are neither encoded in the AFM file nor constructed from other +characters. For instance, Adobe's `Times-Roman' font contains the +extra characters `trademark' and `registered' (among others); these can +only be accessed through such a PostScript reencoding. + + The `8r' base encoding used for the current PostScript font +distribution does do this reencoding, for precisely this reason. + + +File: dvips.info, Node: Changing both encodings, Next: Reencoding with Afm2tfm, Prev: Changing PostScript encodings, Up: Changing font encodings + +6.3.1.3 `-T': Changing both TeX and PostScript encodings +........................................................ + +The option `-T ENC-FILE' is equivalent to `-p ENC-FILE -t ENC-FILE'. +If you make regular use of a private non-standard reencoding `-T' is +usually a better idea than the individual options, to avoid unexpected +inconsistencies in mapping otherwise. An example of when you might use +this option is a dingbats font: when you have a TeX encoding that is +designed to be used with a particular PostScript font. + + +File: dvips.info, Node: Reencoding with Afm2tfm, Next: Encoding file format, Prev: Changing both encodings, Up: Changing font encodings + +6.3.1.4 Reencoding with Afm2tfm +............................... + +The Afm2tfm program creates the TFM and VF files for the virtual font +corresponding to a PostScript font by "reencoding" the PostScript font. +Afm2tfm generates these files from two encodings: one for TeX and one +for PostScript. The TeX encoding is used to map character numbers to +character names while the PostScript encoding is used to map each +character name to a possibly different number. In combination, you can +get access to any character of a PostScript font at any position for +TeX typesetting. + + In the default case, when you specify none of the `-t', `-p', or +`-T' options, Afm2tfm uses a default TeX encoding (which mostly +corresponds to the Computer Modern text fonts) and the PostScript +encoding found in the AFM file being read. The reencoding is also +sometimes called a "remapping". + + For example, the default encodings reencode the acute accent in two +steps: first the default TeX encoding maps the number 19 to the +character name `acute'; then the default PostScript encoding, as found +in the AFM file for an ordinary PostScript font, maps the character +name `acute' to the number 194. (The PostScript encoding works in +reverse, by looking in the encoding vector for the name and then +yielding the corresponding number.) The combined mapping of 19 to 194 +shows up explicitly in the VF file and also implicitly in the fact that +the properties of PostScript character 194 appear in position 19 of the +TFM file for the virtual font. + + The default encoding of the distributed fonts (e.g., `ptmr.tfm') +mostly follows plain TeX conventions for accents. The exceptions: the +Hungarian umlaut (which is at position `0x7D' in `cmr10', but position +`0xCD' in `ptmr'); the dot accent (at positions `0x5F' and `0xC7', +respectively); and the Scandinavian A ring `\AA', whose definition +needs different tweaking. In order to use these accents with +PostScript fonts or in math mode when `\textfont0' is a PostScript +font, you will need to use the following definitions. These +definitions will not work with the Computer Modern fonts for the +relevant accents. They are already part of the distributed +`psfonts.sty' for use with LaTeX. + + \def\H#1{{\accent"CD #1}} + \def\.#1{{\accent"C7 #1}} + \def\dot{\mathaccent"70C7 } + \newdimen\aadimen + \def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0 + \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen + \hbox to \wd0{\hss\char'27\hss}}A} + + As a kind of summary, here are the `CODINGSCHEME's that result from +the various possible choices for reencoding. + +default encoding + (CODINGSCHEME TeX text + AdobeStandardEncoding) + +`-p dc.enc' + (CODINGSCHEME TeX text + DCEncoding) + +`-t dc.enc' + (CODINGSCHEME DCEncoding + AdobeStandardEncoding) + +`-T dc.enc' + (CODINGSCHEME DCEncoding + DCEncoding) + + +The `CODINGSCHEME' line appears in the VPL file but is ignored by Dvips. + + +File: dvips.info, Node: Encoding file format, Prev: Reencoding with Afm2tfm, Up: Changing font encodings + +6.3.1.5 Encoding file format +............................ + +Afm2tfm's encoding files have the same format as an encoding vector in a +PostScript font. Here is a skeletal example: + + % Comments are ignored, unless the first word after the percent sign + % is `LIGKERN'; see below. + /MyEncoding [ % exactly 256 entries follow, each with a leading `/' + /Alpha /Beta /Gamma /Delta ... + /A /B ... /Z + ... /.notdef /xfooaccent /yfooaccent /zfooaccent + ] def + + These encoding files are downloaded as part of changing the encoding +at the PostScript level (see the previous section). + + Comments, which start with a percent sign and continue until the end +of the line, are ignored unless they start with `LIGKERN' (see below). + + The first non-comment word of the file must start with a forward +slash `/' (i.e., a PostScript literal name) and defines the name of the +encoding. The next word must be an left bracket `['. Following that +must be precisely 256 character names; use `/.notdef' for any that you +want to leave undefined. Then there must be a matching right bracket +`]'. A final `def' token is optional. All names are case-sensitive. + + Any ligature or kern information is given as a comment. If the first +word after the `%' is `LIGKERN', then the entire rest of the line is +parsed for ligature and kern information. This ligature and kern +information is given in groups of words: each group is terminated by a +space and a semicolon and (unless the semicolon is at the end of a +line) another space. + + In these `LIGKERN' statements, three types of information may be +specified. These three types are ligature pairs, kerns to ignore, and +the character value of this font's boundary character. + + Throughout a `LIGKERN' statement, the boundary character is +specified as `||'. To set the font's boundary character value for TeX: + + % LIGKERN || = 39 ; + + To indicate a kern to remove, give the names of the two characters +(without the leading slash) separated by `{}', as in `one {} one ;'. +This is intended to be reminiscent of the way you might use `{}' in a +TeX file to turn off ligatures or kerns at a particular location. +Either or both of the character names can be given as `*', which is a +wild card matching any character; thus, all kerns can be removed with +`* {} * ;'. + + To specify a ligature, specify the names of the pair of characters, +followed by the ligature operation (as in Metafont), followed by the +replacing character name. Either (but not both) of the first two +characters can be `||' to indicate a word boundary. + + The most common operation is `=:' meaning that both characters are +removed and replaced by the third character, but by adding the `|' +character on either side of the `=:', you can retain either or both of +the two leading characters. In addition, by suffixing the ligature +operation with one or two `>' signs, you can make the ligature scanning +operation skip that many resulting characters before proceeding. This +works just like in Metafont. For example, the `fi' ligature is +specified with `f i =: fi ;'. A more convoluted ligature is `one one +|=:|>> exclam ;' which separates a pair of adjacent `1''s with an +exclamation point, and then skips over two of the resulting characters +before continuing searching for ligatures and kerns. You cannot give +more >'s than |'s in an ligature operation, so there are a total of +eight possibilities: + + =: |=: |=:> =:| =:|> |=:| |=:|> |=:|>> + + The default set of ligatures and kerns built in to Afm2tfm is: + + % LIGKERN question quoteleft =: questiondown ; + % LIGKERN exclam quoteleft =: exclamdown ; + % LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; + % LIGKERN quoteleft quoteleft =: quotedblleft ; + % LIGKERN quoteright quoteright =: quotedblright ; + % LIGKERN space {} * ; * {} space ; 0 {} * ; * {} 0 ; + % LIGKERN 1 {} * ; * {} 1 ; 2 {} * ; * {} 2 ; 3 {} * ; * {} 3 ; + % LIGKERN 4 {} * ; * {} 4 ; 5 {} * ; * {} 5 ; 6 {} * ; * {} 6 ; + % LIGKERN 7 {} * ; * {} 7 ; 8 {} * ; * {} 8 ; 9 {} * ; * {} 9 ; + + +File: dvips.info, Node: Special font effects, Next: Afm2tfm options, Prev: Changing font encodings, Up: Invoking afm2tfm + +6.3.2 Special font effects +-------------------------- + +Besides the reencodings described in the previous section, Afm2tfm can +do other manipulations. (Again, it's best to use the prebuilt fonts +rather than attempting to remake them.) + + `-s SLANT' makes an obliqued variant, as in: + + afm2tfm Times-Roman -s .167 -v ptmro rptmro + +This creates `ptmro.vpl' and `rptmro.tfm'. To use this font, put the +line + + rptmro Times-Roman ".167 SlantFont" + +into `psfonts.map'. Then `rptmro' (our name for the obliqued Times) +will act as if it were a resident font, although it is actually +constructed from Times-Roman via the PostScript routine `SlantFont' +(which will slant everything 1/6 to the right, in this case). + + Similarly, you can get an expanded font with + + afm2tfm Times-Roman -e 1.2 -v ptmrre rptmrre + +and by recording the pseudo-resident font + + rptmrre Times-Roman "1.2 ExtendFont" + +in `psfonts.map'. + + You can also create a small caps font with a command such as + + afm2tfm Times-Roman -V ptmrc rptmrc + +This will generate a set of pseudo-small caps mapped into the usual +lowercase positions and scaled down to 0.8 of the normal cap +dimensions. You can also specify the scaling as something other than +the default 0.8: + + afm2tfm Times-Roman -c 0.7 -V ptmrc rptmrc + + It is unfortunately not possible to increase the width of the small +caps independently of the rest of the font. If you want a really +professional looking set of small caps, you need to acquire a small caps +font. + + To change the `PaintType' in a font from filled (0) to outlined (2), +you can add `"/PaintType 2 store"' to `psfonts.map', as in the +following: + + rphvrl Helvetica "/PaintType 2 store" + + Afm2tfm writes to standard output the line you need to add to +`psfonts.map' to use that font, assuming the font is resident in the +printer; if the font is not resident, you must add the `<FILENAME' +command to download the font. Each identical line only needs to be +specified once in the `psfonts.map' file, even though many different +fonts (small caps variants, or ones with different output encodings) +may be based on it. + + +File: dvips.info, Node: Afm2tfm options, Prev: Special font effects, Up: Invoking afm2tfm + +6.3.3 Afm2tfm options +--------------------- + +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. + + 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 +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 +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 +font available::. + + The command line options to Afm2tfm: + +`-c RATIO' + See `-V'; overrides the default ratio of 0.8 for the scaling of + small caps. + +`-e RATIO' + Stretch characters horizontally by RATIO; if less than 1.0, you + get a condensed font. + +`-O' + Output all character codes in the `vpl' file as octal numbers, not + names; this is useful for symbol or other special-purpose fonts + where character names such as `A' have no meaning. + +`-p PS-ENC' + Use PS-ENC for the destination (PostScript) encoding of the font; + PS-ENC must be mentioned as a header file for the font in + `psfonts.map'. *Note Changing PostScript encodings::. + +`-s SLANT' + Slant characters to the right by SLANT. If SLANT is negative, the + letters slope to the left (or they might be upright if you start + with an italic font). + +`-t TEX-ENC' + Use TEX-ENC for the target (TeX) encoding of the font. Ligature + and kern information may also be specified in FILE. FILE is not + mentioned in `psfonts.map'. + +`-T PS-TEX-ENC' + Use PS-TEX-ENC for both the PostScript and target TeX encodings of + the font. Equivalent to `-p FILE -t FILE'. + +`-u' + Use only those characters specified in the TeX encoding, and no + others. By default, Afm2tfm tries to include all characters in the + input font, even those not present in the TeX encoding (it puts + them into otherwise-unused positions, arbitrarily). + +`-v VPL-FILE' + Output a VPL (virtual property list) file, as well as a TFM file. + +`-V VPL-FILE' + Same as `-v', but the virtual font generated is a pseudo small caps + font obtained by scaling uppercase letters by 0.8 to typeset + lowercase. This font handles accented letters and retains proper + kerning. + + +File: dvips.info, Node: psfonts.map, Prev: Invoking afm2tfm, Up: PostScript fonts + +6.4 `psfonts.map': PostScript font catalog +========================================== + +The `psfonts.map' file associates a PostScript font with related files +and constructs. Each line has the format: + + FILENAME POSTSCRIPT-NAME OPTIONS + + For example, the line + rpstrn StoneInformal <StoneInformal.pfb + causes Dvips to download `StoneInformal.pfb' if your document (just +as if it were a header file, *note Header files::) uses the font +`StoneInformal'. + + If the `j' config file or command-line option is enabled, +`StoneInformal.pfb' will be "partially downloaded"--only those +characters your document actually uses will be extracted and downloaded, +and the remainder discarded. *Note Option details::. + + Filenames of fonts that are partially downloaded are surrounded by +curly braces (`{...}') in the progress report Dvips writes to standard +output. Wholly-downloaded fonts appear inside angle brackets +(`<...>'), like other downloaded files. + + Adobe Multiple Master fonts, such as Minion, cannot be partially +downloaded. To partially download in general, but avoid partial +downloading for individual fonts, use `<<' instead `<': + pmnr8r Minion <<Minion.pfb + + You can generate transformed fonts with a line like this: + rpstrc StoneInformal <StoneInformal.pfb ".8 ExtendFont" + +*Note Special font effects::, for a complete list of font effects. + + You can change the encoding of the Type 1 font at the PostScript +level with a `ReEncodeFont' instruction, plus the name of the encoding +file. This allows you access to characters that may be present in the +Type 1 font file, but not encoded by default--most of the preaccented +characters, for example. An example: + pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <8r.enc <pstrn8a.pfb + + The `8r' encoding mentioned here has been designed to serve as a +base for all downloadable fonts; it allows access to all the characters +commonly present in a Type 1 font. For more details, see the `8r.enc' +source file that comes with (and is installed with) Dvips. + + You may notice that the same syntax is used for downloading encoding +vectors and Type 1 font files. To make your intentions clear, you can +also use `<[' to explicitly indicate you are downloading an encoding +vector, as in: + pstrn8r StoneInformal "TeXBase1Encoding ReEncodeFont" <[8r.enc <pstrn8a.pfb + + If the filename of your encoding vector does not end in `.enc', and +you are using partial font downloading, you must use the `<[' syntax, +or Dvips will not download the font properly. + + Similarly, the name of the Type 1 font file itself must have +extension `.pfa' or `.pfb' for partial downloading to work properly. + + When using PFB files, Dvips is smart enough to unpack the binary PFB +format into printable ASCII so there is no need to perform this +conversion yourself. In addition, Dvips scans the font to determine its +memory usage, just as it does for other header files (*note Header +files::). + + Here is a brief summary of how `psfonts.map' is read: + + 1. If a line is empty or begins with a space, percent, asterisk, + semicolon, or hash mark, it is ignored. + + 2. Otherwise, the line is separated into words, where words are + separated by spaces or tabs, except that if a word begins with a + double quote, it extends until the next double quote or the end of + the line. + + 3. If a word starts with `<<', it is taken as a font file to be + wholly downloaded. Use this to avoid partial downloading, as + described above. + + 4. If a word starts with `<[', it is taken as an encoding file to be + downloaded. Use this if the name of the encoding file does end in + `.enc', also as described above. + + 5. If a word starts with a `<' character, it is treated as a header + file that needs to be downloaded. If the name ends in `.pfa' or + `.pfb', it is taken as Type 1 font file that will be partially + downloaded if the `j' option is in effect. There can be more than + one such header for a given font. If a `<' is a word by itself, + the next word is taken as the name of the header file. + + 6. If a word starts with a `"' character, it is taken as PostScript + code used in generating that font, and is inserted into the output + verbatim at the appropriate point. (And the double quotes + beginning and ending the word are removed.) + + 7. Otherwise the word is a name. The first such name is the TFM file + that a virtual font file can refer to. If there is a second name, + it is used as the PostScript name; if there is only one name, it + is used for both the TeX name and the PostScript name. + + + +File: dvips.info, Node: Color, Next: Index, Prev: PostScript fonts, Up: Top + +7 Color +******* + +Dvips supports one-pass multi-color printing of TeX documents on any +color PostScript device. Initially added by Jim Hafner, IBM Research, +<hafner@almaden.ibm.com>, the color support has gone through many +changes by Tomas Rokicki. Besides the source code support itself, there +are additional TeX macro files: `colordvi.tex' and `blackdvi.tex', and +corresponding `.sty' versions for use with LaTeX. + + In this section we describe the use of color from the document +preparer's point of view and then add some instructions on installation +for the TeX administrator. + +* Menu: + +* Color macro files:: TeX macro definitions. +* User-definable colors:: Adding your own colors. +* Color subtleties:: Subtleties in using color. +* Ted Turner:: Printing in black/white after colorizing. +* Color device configuration:: Configuring Dvips for color devices. +* Color support details:: Color support details + + +File: dvips.info, Node: Color macro files, Next: User-definable colors, Up: Color + +7.1 Color macro files +===================== + +All the color macro commands are defined in `colordvi.tex' (or +`colordvi.sty'). To access these macros simply add to the top of your +plain TeX file the command: + \input colordvi + For (the obsolete) LaTeX 2.09, add the `colordvi' style option as in: + \documentstyle[12pt,colordvi]{article} + For LaTeX 2e, these examples are not applicable. Instead, please see +the documentation for the graphics package, available from +`CTAN:doc/latex/graphics/'. See also `CTAN:doc/epslatex.ps'. + + These macros provide two basic kinds of color macros: ones for local +color changes (a few words, a single symbol) and one for global color +changes (the whole document). All the color names use a mixed case +scheme to avoid conflicts with other macros. There are 68 predefined +colors, with names taken primarily from the Crayola crayon box of 64 +colors, and one pair of macros for the user to set his own color pattern +(*note User-definable colors::). You can browse the file +`colordvi.tex' for a list of the predefined colors. The comments in +this file also show a rough correspondence between the crayon names and +Pantones. + + A local color command has the form + + \COLORNAME{this is the color COLORNAME} + +where COLORNAME is the name of a predefined color, e.g., `Blue'. As +shown, these macros take one argument, the text to print in the +specified color. This can be used for nested color changes since it +restores the original color state when it completes. For example: + + This text is normal but here we are \Red{switching to red, + \Blue{nesting blue}, recovering the red} and back to original. + +The color nesting level has no hard limit, but it is not advisable to +nest too deeply lest you and the reader lose track of the color history. + + The global color command has the form + + \textCOLORNAME + +These macros take no arguments and changes the default color from that +point on to COLORNAME. This of course can be overridden globally by +another such command or locally by local color commands. For example, +expanding on the example above, we might have + + \textGreen + This text is green but here we are \Red{switching to red, + \Blue{nesting blue}, recovering the red} and back to + original green. + \textCyan + The text from here on will be cyan until + \Yellow{locally changed to yellow}. Now we are back to cyan. + + The color commands will even work in math mode and across math mode +boundaries. This means that if you have a color before going into math +mode, the mathematics will be set in that color as well. In alignment +environments like `\halign', `tabular' or `eqnarray', local color +commands cannot extend beyond the alignment characters. + + Because local color commands respect only some environment and +delimiter changes besides their own, care must be taken in setting +their scope. It is best not to have them stretch too far. + + At the present time there are no macros for color environments in +LaTeX which might have a larger range. This is primarily to keep the +TeX and LaTeX use compatible. + + +File: dvips.info, Node: User-definable colors, Next: Color subtleties, Prev: Color macro files, Up: Color + +7.2 User-definable colors +========================= + +There are two ways for the user to specify colors not already defined. +For local changes, there is the command `\Color' which takes two +arguments. The first argument is four numbers between zero and one and +specifies the intensity of cyan, magenta, yellow and black (CMYK) in +that order. The second argument is the text that should appear in the +given color. For example, suppose you want the words "this color is +pretty" to appear in a color which is 50% cyan, 85% magenta, 40% yellow +and 20% black. You would use the command + + \Color{.5 .85 .4 .2}{this color is pretty} + + For global color changes, there is a command `\textColor' which +takes one argument, the CMYK quadruple of relative color intensities. +For example, if you want the default color to be as above, then the +command + + \textColor{.5 .85 .4 .2} + The text from now on will be this pretty color + +will do the trick. + + Making a global color change in the midst of nested local colors is +highly discouraged. Consequently, Dvips will give you warning message +and do its best to recover by discarding the current color history. + + +File: dvips.info, Node: Color subtleties, Next: Ted Turner, Prev: User-definable colors, Up: Color + +7.3 Color subtleties +==================== + +Color macros are defined via `\special' keywords. As such, they are +put in the `.dvi' file only as explicit message strings to the driver. +The (unpleasant) result is that certain unprotected regions of the text +can have unwanted color side effects. For example, if a color region +is split by TeX across a page boundary, then the footers of the current +page (e.g., the page number) and the headers of the next page can +inherit that color. To avoid this effect globally, users should make +sure that these special regions of the text are defined with their own +local color commands. For example, to protect the header and footer in +plain TeX, use + + \headline{\Black{My Header}} + \footline{\Black{\hss\tenrm\folio\hss}} + + This warning also applies to figures and other insertions, so be +careful! + + Of course, in LaTeX, this is much more difficult to do because of the +complexity of the macros that control these regions. This is +unfortunate but inevitable, because TeX and LaTeX were not written with +color in mind. + + Even when writing your own macros, much care must be taken. The +macros that `colorize' a portion of the text work prefix the text work +by outputting one `\special' command to turn the color on before the +text, and outputting another `\special' command afterwards to restore +the original color. It is often useful to ensure that TeX is in +horizontal mode before the first special command is issued; this can be +done by prefixing the color command with `\leavevmode'. + + +File: dvips.info, Node: Ted Turner, Next: Color device configuration, Prev: Color subtleties, Up: Color + +7.4 Printing in black/white after colorizing +============================================ + +If you have a TeX or LaTeX document written with color macros and you +want to print it in black and white there are two options. On all +(good) PostScript devices, printing a color file will print in +corresponding gray levels. This is useful to get a rough idea of the +colors without using expensive color printing devices. The second +option is to replace the call to input `colordvi.tex' with +`blackdvi.tex' (and similarly for the `.sty' files). So in the above +example, replacing the word `colordvi' with `blackdvi' suffices. +`blackdvi.tex' defines the color macros as no-ops, and so will produce +normal black/white printing. By this simple mechanism, the user can +switch to all black/white printing without having to ferret out the +color commands. Also, some device drivers, particularly non-PostScript +ones like screen previewers, will simply ignore the color commands and +so print in black/white. Hopefully, in the future screen previewers +for color displays will be compatible with some form of color support. + + +File: dvips.info, Node: Color device configuration, Next: Color support details, Prev: Ted Turner, Up: Color + +7.5 Color device configuration +============================== + +To configure Dvips for a particular color device you need to fine tune +the color parameters to match your device's color rendition. To do +this, you will need a Pantone chart for your device. The header file +`color.lpro' shows a (rough) correspondence between the Crayola crayon +names and the Pantone numbers and also defines default CMYK values for +each of the colors. Note that these colors must be defined in CMYK +terms and not RGB, as Dvips outputs PostScript color commands in CMYK. +This header file also defines (if they are not known to the +interpreter) the PostScript commands `setcmykcolor' and +`currentcmykcolor' in terms of a RGB equivalent so if your device only +understands RGB, there should be no problem. + + The parameters set in this file were determined by comparing the +Pantone chart of a Tektronix Phaser printer with the actual Crayola +Crayons. Because these were defined for a particular device, the +actual color rendition on your device may be very different. There are +two ways to adjust this. One is to use the PAntone chart for your +device to rewrite `color.lpro' prior to compilation and installation. +A better alternative, which supports multiple devices, is to add a +header file option in the configuration file (*note Configuration file +commands::) for each device that defines, in `userdict', the color +parameters for those colors that need redefining. + + For example, if you need to change the parameters defining +`Goldenrod' (approximately Pantone 109 on the Phaser) for your device +`mycolordev', do the following. In the Pantone chart for your device, +find the CMYK values for Pantone 109. Let's say they are `{\ 0 0.10 +0.75 0.03 }'. Then create a header file named `mycolordev.pro' with the +commands + + userdict begin + /Goldenrod { 0 0.10 0.75 0.03 setcmykcolor} bind def + +Finally, in `config.mycolordev' add the line + + h mycolordev.pro + +This will then define `Goldenrod' in your device's CMYK values in +`userdict' which is checked before defining it in `TeXdict' by +`color.pro'. (On MS-DOS, you will have to call this file +`mycolordev.cfg'.) + + This mechanism, together with additions to `colordvi.tex' and +`blackdvi.tex' (and the `.sty' files), can also be used to predefine +other colors for your users. + + +File: dvips.info, Node: Color support details, Prev: Color device configuration, Up: Color + +7.6 Color support details +========================= + +To support color, Dvips recognizes a certain set of specials. These +specials start with the keyword `color' or the keyword `background', +followed by a color specification. + +* Menu: + +* Color specifications:: +* Color specials:: + + +File: dvips.info, Node: Color specifications, Next: Color specials, Up: Color support details + +7.6.1 Color specifications +-------------------------- + +What is a color specification? One of three things. First, it might be +a PostScript procedure as defined in a PostScript header file. The +`color.pro' file defines 64 of these, including `Maroon'. This +PostScript procedure must set the current color to be some value; in +this case, `Maroon' is defined as `0 0.87 0.68 0.32 setcmykcolor'. + + The second possibility is the name of a color model (initially, one +of `rgb', `hsb', `cmyk', or `gray') followed by the appropriate number +of parameters. When Dvips encounters such a macro, it sends out the +parameters first, followed by the string created by prefixing +`TeXcolor' to the color model. Thus, the color specification `rgb 0.3 +0.4 0.5' would generate the PostScript code `0.3 0.4 0.5 TeXrgbcolor'. +Note that the case of zero arguments is disallowed, as that is handled +by the single keyword case (`Maroon') above, where no changes to the +name are made before it is sent to the PostScript file. + + The third and final type of color specification is a double quote +followed by any sequence of PostScript. The double quote is stripped +from the output. For instance, the color specification `"AggiePattern +setpattern' will set the `color' to the Aggie logo pattern (assuming +such exists.) + + +File: dvips.info, Node: Color specials, Prev: Color specifications, Up: Color support details + +7.6.2 Color specials +-------------------- + +We will describe `background' first, since it is the simplest. The +`background' keyword must be followed by a color specification. That +color specification is used as a fill color for the background. The +last `background' special on a page is the one that gets issued, and it +gets issued at the very beginning of the page, before any text or +specials are sent. (This is possible because the prescan phase of +Dvips notices all of the color specials so that the appropriate +information can be written out during the second phase.) + + The `color' special itself has three forms. The first is just +`color' followed by a color specification. In this case, the current +global color is set to that color; the color stack must be empty when +such a command is executed. + + The second form is `color push' followed by a color specification. +This saves the current color on the color stack and sets the color to be +that given by the color specification. This is the most common way to +set a color. + + The final version of the `color' special is just `color pop', with +no color specification; this says to pop the color last pushed on the +color stack from the color stack and set the current color to be that +color. + + Dvips correctly handles these color specials across pages, even when +the pages are repeated or reversed. + + These color specials can be used for things such as patterns or +screens as well as simple colors. However, note that in the +PostScript, only one color specification can be active at a time. For +instance, at the beginning of a page, only the bottommost entry on the +color stack is sent; also, when a color is popped, all that is done is +that the color specification from the previous stack entry is sent. No +`gsave' or `grestore' is used. This means that you cannot easily mix +usage of the `color' specials for screens and colors, just one or the +other. This may be addressed in the future by adding support for +different categories of color-like state. + + +File: dvips.info, Node: Index, Prev: Color, Up: Top + +Index +***** + + +* Menu: + +* ! special (literal PS header): Literal headers. (line 6) +* ! starting output filename: Option details. (line 222) +* " special (literal PostScript): " special. (line 6) +* %%BoundingBox: Bounding box. (line 17) +* %%Page, and multi-page information: PostScript hooks. (line 37) +* %%Page, not generating: Option details. (line 197) +* %%Page, removing: Option details. (line 153) +* %%Page, required by Ghostview: Ghostscript installation. + (line 17) +* %%VMusage: Headers and memory usage. + (line 12) +* %*Font: Fonts in figures. (line 6) +* (atend), bounding box specification: Bounding box. (line 28) +* +PSMAPFILE: Configuration file commands. + (line 101) +* -: Option details. (line 11) +* - as output filename: Option details. (line 222) +* --help <1>: Option details. (line 15) +* --help: Option summary. (line 7) +* --version: Option details. (line 18) +* -A: Option details. (line 27) +* -a: Option details. (line 21) +* -B: Option details. (line 37) +* -b NUM: Option details. (line 31) +* -C NUM: Option details. (line 46) +* -c NUM: Option details. (line 41) +* -c RATIO: Afm2tfm options. (line 33) +* -D NUM: Option details. (line 58) +* -d NUM: Option details. (line 52) +* -E: Option details. (line 82) +* -e NUM: Option details. (line 71) +* -e RATIO: Afm2tfm options. (line 37) +* -F: Option details. (line 110) +* -f: Option details. (line 98) +* -G: Option details. (line 117) +* -h NAME: Option details. (line 121) +* -i: Option details. (line 126) +* -j for partial font downloading: Option details. (line 139) +* -K: Option details. (line 153) +* -k for cropmarks: Option details. (line 145) +* -l [=]NUM: Option details. (line 162) +* -M: Option details. (line 183) +* -m: Option details. (line 171) +* -mode: Option details. (line 174) +* -mode MODE: Option details. (line 174) +* -N: Option details. (line 197) +* -n NUM: Option details. (line 194) +* -noomega: Option details. (line 205) +* -O: Afm2tfm options. (line 41) +* -o NAME: Option details. (line 218) +* -O X-OFFSET,Y-OFFSET: Option details. (line 234) +* -p [=]NUM: Option details. (line 252) +* -P PRINTER: Option details. (line 266) +* -p PS-ENC <1>: Afm2tfm options. (line 46) +* -p PS-ENC: Changing PostScript encodings. + (line 6) +* -pp FIRST-LAST: Option details. (line 261) +* -pp RANGE: Option details. (line 261) +* -PPRINTER, and config file searching: Configuration file searching. + (line 27) +* -q: Option details. (line 285) +* -R: Option details. (line 292) +* -r: Option details. (line 289) +* -s: Option details. (line 298) +* -S NUM: Option details. (line 305) +* -s SLANT: Afm2tfm options. (line 51) +* -T ENC-FILE: Changing both encodings. + (line 6) +* -T HSIZE,VSIZE: Option details. (line 321) +* -t PAPERTYPE: Option details. (line 310) +* -T PS-TEX-ENC: Afm2tfm options. (line 61) +* -t TEX-ENC <1>: Afm2tfm options. (line 56) +* -t TEX-ENC: Changing TeX encodings. + (line 6) +* -u: Afm2tfm options. (line 65) +* -U: Option details. (line 334) +* -u PSMAPFILE: Option details. (line 326) +* -V: Option details. (line 345) +* -v: Option details. (line 342) +* -V VPL-FILE: Afm2tfm options. (line 74) +* -v VPL-FILE: Afm2tfm options. (line 71) +* -X NUM: Option details. (line 362) +* -x NUM: Option details. (line 354) +* -Y NUM: Option details. (line 369) +* -z: Hypertext. (line 6) +* -Z for compressing bitmap fonts: Option details. (line 378) +* -z for recognizing hyperdvi: Option details. (line 372) +* .afm Adobe metric files: Metric files. (line 26) +* .dvipsrc, searched for: Configuration file searching. + (line 14) +* .enc extension for encoding vectors: psfonts.map. (line 55) +* .lpro long prologue files: Header files. (line 12) +* .mf Metafont source files: Glyph files. (line 30) +* .NNNpk packed font bitmaps: Glyph files. (line 35) +* .pfa extension required for partial downloading: psfonts.map. + (line 59) +* .pfa printer font ascii files: Glyph files. (line 25) +* .pfb extension required for partial downloading: psfonts.map. + (line 59) +* .pfb printer font binary files: Glyph files. (line 25) +* .pfm printer font metric files: Metric files. (line 49) +* .pl property list files: Metric files. (line 39) +* .pro prologue files: Header files. (line 12) +* .tfm TeX font metric files: Metric files. (line 31) +* /#copies: Option details. (line 31) +* /magscale: EPSF scaling. (line 67) +* 612 792 bounding box size: Bounding box. (line 43) +* 8r encoding, and extra characters: Changing PostScript encodings. + (line 24) +* 8r font encoding: psfonts.map. (line 44) +* 8r.enc: Encodings. (line 35) +* < font downloading: psfonts.map. (line 11) +* << whole font downloading: psfonts.map. (line 27) +* <[ encoding vector downloading: psfonts.map. (line 49) +* =: ligature operation: Encoding file format. + (line 59) +* @ paper size config command: Configuration file commands. + (line 18) +* \.: Reencoding with Afm2tfm. + (line 44) +* \AA: Reencoding with Afm2tfm. + (line 44) +* \COLORNAME: Color macro files. (line 31) +* \dot: Reencoding with Afm2tfm. + (line 44) +* \epsffile macro: EPSF macros. (line 38) +* \epsfsize: EPSF scaling. (line 29) +* \epsfverbosetrue: EPSF macros. (line 46) +* \epsfxsize: EPSF scaling. (line 14) +* \epsfysize: EPSF scaling. (line 20) +* \H: Reencoding with Afm2tfm. + (line 44) +* \includegraphics LaTeX macro: \includegraphics. (line 6) +* \leavevmode: EPSF macros. (line 26) +* \magnification: EPSF scaling. (line 63) +* \rotninety: Literal examples. (line 27) +* \textCOLORNAME: Color macro files. (line 46) +* a config command (memory conservation): Configuration file commands. + (line 21) +* A ring, Scandinavian letter: Reencoding with Afm2tfm. + (line 32) +* a3 papertype: Option details. (line 310) +* a4 paper size, as default: Config file paper sizes. + (line 72) +* a4 papertype: Option details. (line 310) +* absolute filenames, disabling: Option details. (line 292) +* absolute page number, and -l: Option details. (line 162) +* absolute page number, and -p: Option details. (line 252) +* accents, in wrong position: Reencoding with Afm2tfm. + (line 32) +* accents, wrong: Afm2tfm options. (line 17) +* accuracy in positioning: Option details. (line 71) +* Adobe fonts: PostScript font installation. + (line 10) +* Adobe fonts, installing: PostScript font installation. + (line 19) +* afm files: Metric files. (line 26) +* afm2tfm <1>: Invoking afm2tfm. (line 6) +* afm2tfm: Making a font available. + (line 46) +* afm2tfm options: Afm2tfm options. (line 6) +* after header, inserting code: Including headers from TeX. + (line 28) +* Aladdin Ghostscript: Ghostscript installation. + (line 6) +* Anderson, Laurie: Hypertext specials. (line 42) +* arcs: Glyph files. (line 17) +* ASCII character codes, used by PostScript: PostScript typesetting. + (line 31) +* atend, bounding box specification: Bounding box. (line 28) +* b config command (#copies): Configuration file commands. + (line 24) +* base: Hypertext specials. (line 57) +* base encoding, recommended: psfonts.map. (line 44) +* base fonts: Virtual fonts. (line 24) +* bbfig: Bounding box. (line 37) +* before header, inserting code: Including headers from TeX. + (line 28) +* Bhattacharya, Tanmoy: Hypertext. (line 21) +* big points: Bounding box. (line 11) +* Bigelow & Holmes fonts: PostScript font installation. + (line 10) +* binary files, not supported: Including graphics fails. + (line 23) +* bitmap fonts: Glyph files. (line 30) +* Bitstream fonts, installing: PostScript font installation. + (line 19) +* bop undefined error: Printer errors. (line 6) +* bop-hook <1>: PostScript hooks. (line 11) +* bop-hook: EPSF scaling. (line 75) +* bop-hook, and offset pages: Option details. (line 247) +* boundary character: Encoding file format. + (line 41) +* bounding box, comment for: Bounding box. (line 6) +* bounding box, defined: Bounding box. (line 11) +* bounding box, determining: Bounding box. (line 37) +* bounding box, finding tight: Option details. (line 82) +* bounding box, inaccurate: EPSF clipping. (line 6) +* bounding box, supplying to TeX <1>: EPSF macros. (line 26) +* bounding box, supplying to TeX: \includegraphics. (line 36) +* changing PostScript encodings: Changing PostScript encodings. + (line 6) +* changing TeX encodings: Changing TeX encodings. + (line 6) +* character definitions in PostScript: PostScript typesetting. + (line 55) +* character lookup procedure in PostScript: PostScript typesetting. + (line 6) +* CharStrings Type 1 dictionary: PostScript typesetting. + (line 51) +* clipping of EPSF: EPSF clipping. (line 6) +* CODINGSCHEME: Reencoding with Afm2tfm. + (line 52) +* collated copies: Option details. (line 46) +* color: Color. (line 6) +* color configuration: Color device configuration. + (line 6) +* color macros: Color macro files. (line 6) +* color names, mixed case: Color macro files. (line 16) +* color nesting level: Color macro files. (line 39) +* color separations: Option details. (line 31) +* color specifications: Color specifications. + (line 6) +* color subtleties: Color subtleties. (line 6) +* colors, user-definable: User-definable colors. + (line 6) +* command line, including headers from: Including headers from the command line. + (line 6) +* command-line options: Invoking Dvips. (line 6) +* comments, in configuration files: Configuration file commands. + (line 13) +* comments, in encoding files: Encoding file format. + (line 20) +* comments, removing included: Option details. (line 153) +* compilation: Installation. (line 6) +* compressed PostScript: Dynamic creation of graphics. + (line 6) +* compressing bitmap fonts: Option details. (line 378) +* Computer Modern in PostScript: Hypertext caveats. (line 6) +* Computer Modern, encoding of: Encodings. (line 15) +* condensed fonts: Afm2tfm options. (line 37) +* config.proto: config.ps installation. + (line 15) +* config.ps: Option details. (line 266) +* config.ps installation: config.ps installation. + (line 6) +* config.ps, searched for: Configuration file searching. + (line 10) +* configuration file options: Configuration file commands. + (line 6) +* configuration file paper size command: Config file paper sizes. + (line 6) +* configuration file path: Environment variables. + (line 47) +* configuration file searching: Configuration file searching. + (line 6) +* configuration files: Config files. (line 6) +* configuration files, creating: config.ps installation. + (line 6) +* configuration files, prototype: config.ps installation. + (line 15) +* configuration, of color devices: Color device configuration. + (line 6) +* configuration, of Dvips: Installation. (line 6) +* continuation lines, not supported: Configuration file commands. + (line 13) +* control-D: Option details. (line 110) +* copies, collated: Option details. (line 46) +* copies, duplicated page bodies: Option details. (line 31) +* copies, uncollated: Option details. (line 41) +* Crayola crayon box: Color macro files. (line 16) +* crop.pro: Option details. (line 145) +* cropmarks: Option details. (line 145) +* current font, in PostScript: PostScript typesetting. + (line 35) +* D config command (dpi): Configuration file commands. + (line 27) +* dated output: PostScript hooks. (line 16) +* datestamp, in output: Configuration file commands. + (line 33) +* debugging <1>: Option details. (line 52) +* debugging: Diagnosing problems. (line 6) +* debugging options: Debug options. (line 6) +* default resolutions: Configuration file commands. + (line 123) +* default_texsizes Make variable: Configuration file commands. + (line 139) +* Deutsch, Peter: Ghostscript installation. + (line 6) +* device dependency, and virtual fonts: Configuration file commands. + (line 162) +* 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 372) +* distiller, for PDF files: Hypertext. (line 11) +* dot accent: Reencoding with Afm2tfm. + (line 32) +* double-sided printing: Option details. (line 37) +* downloading fonts partially: psfonts.map. (line 17) +* downloading PostScript fonts: psfonts.map. (line 6) +* Doyle, Mark: Hypertext. (line 21) +* draft copies: PostScript hooks. (line 16) +* dual paper trays: Paper trays. (line 6) +* duplex printers: Including headers from the command line. + (line 13) +* DVI magnification: EPSF scaling. (line 63) +* dvihps, hyperdvi to PostScript: Hypertext. (line 21) +* Dvips configuration file options: Configuration file commands. + (line 6) +* dvips.enc: Encodings. (line 35) +* DVIPSFONTS: Environment variables. + (line 17) +* DVIPSHEADERS: Environment variables. + (line 22) +* DVIPSHEADERS, overrides H: Configuration file commands. + (line 47) +* DVIPSMAKEPK: Environment variables. + (line 26) +* DVIPSRC: Environment variables. + (line 32) +* DVIPSSIZES: Environment variables. + (line 37) +* DVIPSSIZES, overrides R: Configuration file commands. + (line 136) +* dynamic creation of graphics: Dynamic creation of graphics. + (line 6) +* e config command (maxdrift): Configuration file commands. + (line 30) +* E config command (shell escape): Configuration file commands. + (line 33) +* efficiency, and fonts: Making a font available. + (line 104) +* ehandler.ps: No output. (line 12) +* embedding Type 1 fonts: Hypertext caveats. (line 6) +* encoding changes: Changing font encodings. + (line 6) +* encoding file format: Encoding file format. + (line 6) +* encoding files: Encodings. (line 27) +* Encoding Type 1 dictionary: PostScript typesetting. + (line 43) +* encoding vectors, defined: Encodings. (line 27) +* encoding vectors, in Type 1 fonts: PostScript typesetting. + (line 43) +* encodings: Encodings. (line 6) +* end-hook: PostScript hooks. (line 11) +* environment variables: Environment variables. + (line 6) +* EOF: Option details. (line 110) +* eop-hook: PostScript hooks. (line 11) +* EPS, and Ghostview: Ghostscript installation. + (line 17) +* EPSF macros: EPSF macros. (line 6) +* EPSF, generating: Option details. (line 82) +* epsf.sty: EPSF macros. (line 15) +* epsf.tex: EPSF macros. (line 13) +* Epson printers: Ghostscript installation. + (line 6) +* error messages from printer: Printer errors. (line 6) +* even pages only: Option details. (line 37) +* examples of literal PostScript: Literal examples. (line 6) +* expanded fonts <1>: psfonts.map. (line 32) +* expanded fonts <2>: Afm2tfm options. (line 37) +* expanded fonts: Special font effects. + (line 24) +* expansion, of virtual fonts: Virtual fonts. (line 34) +* extended URL: Hypertext specials. (line 20) +* ExtendFont: Special font effects. + (line 28) +* extra characters, accessing: Changing PostScript encodings. + (line 18) +* F config command (filter): Configuration file commands. + (line 41) +* f config command (filter): Configuration file commands. + (line 41) +* failure, and printer errors: Printer errors. (line 6) +* failure, of long documents: Long documents fail. (line 6) +* failure, to include graphics: Including graphics fails. + (line 6) +* failure, to print at all: No output. (line 6) +* fallback resolutions: Configuration file commands. + (line 123) +* figures and fonts: Fonts in figures. (line 6) +* figures, natural size: EPSF macros. (line 38) +* figures, scaling: EPSF scaling. (line 6) +* filter, running as a: Option details. (line 98) +* first page printed: Option details. (line 252) +* font concepts: Font concepts. (line 6) +* font generation, avoiding: Option details. (line 183) +* fontinst: Invoking afm2tfm. (line 13) +* fonts, as header files: Including headers from TeX. + (line 13) +* fonts, changing encoding of: Changing font encodings. + (line 6) +* fonts, downloading: psfonts.map. (line 6) +* fonts, expanded: Special font effects. + (line 24) +* fonts, in PostScript figures: Fonts in figures. (line 6) +* fonts, installation of PostScript: PostScript font installation. + (line 6) +* fonts, installing: Making a font available. + (line 6) +* fonts, outlined: Special font effects. + (line 50) +* fonts, slanted: Special font effects. + (line 6) +* fonts, small caps: Special font effects. + (line 34) +* fonts, system PostScript: PostScript font installation. + (line 24) +* gf files: Glyph files. (line 41) +* gftopk: Glyph files. (line 41) +* Ghostscript installation: Ghostscript installation. + (line 6) +* ghostview: Ghostscript installation. + (line 17) +* Ghostview, and no N: Ghostscript installation. + (line 17) +* glyph files: Glyph files. (line 6) +* GLYPHFONTS, overrides P: Configuration file commands. + (line 110) +* GNU Ghostscript: Ghostscript installation. + (line 13) +* gnuplot: Dynamic creation of graphics. + (line 25) +* graphics inclusion fails: Including graphics fails. + (line 6) +* gs installation: Ghostscript installation. + (line 6) +* gsave/grestore, and literal PS: Literal examples. (line 27) +* gsftopk: Option details. (line 346) +* h header downloading config command: Configuration file commands. + (line 44) +* H header path config command: Configuration file commands. + (line 47) +* Hafner, Jim: Color. (line 6) +* header file, downloading: Option details. (line 121) +* header files, defined: Header files. (line 6) +* header path, defining: Configuration file commands. + (line 47) +* header=FILE \special: Including headers from TeX. + (line 6) +* headers and memory usage: Headers and memory usage. + (line 6) +* headers, including from the command line: Including headers from the command line. + (line 6) +* headers, including in TeX: Including headers from TeX. + (line 6) +* hints: PostScript typesetting. + (line 55) +* HP printers and Type 1 fonts: PostScript font installation. + (line 69) +* HP4Si printer and paper trays: Paper trays. (line 6) +* href: Hypertext specials. (line 32) +* html specials: Hypertext. (line 6) +* html specials, and -z: Option details. (line 372) +* 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 372) +* hypertext and bitmap fonts: Hypertext caveats. (line 6) +* hypertext caveats: Hypertext caveats. (line 6) +* hypertext specials: Hypertext specials. (line 6) +* hypertext support: Hypertext. (line 6) +* i config command (pages/section): Configuration file commands. + (line 51) +* idvi Java DVI reader: Hypertext. (line 21) +* Illustrator, workaround for: Including graphics fails. + (line 10) +* img: Hypertext specials. (line 52) +* including graphics fails: Including graphics fails. + (line 6) +* including headers from the command line: Including headers from the command line. + (line 6) +* including headers in TeX: Including headers from TeX. + (line 6) +* installation of config.ps: config.ps installation. + (line 6) +* installation of PostScript fonts: PostScript font installation. + (line 6) +* installation, of Dvips: Installation. (line 6) +* installing fonts: Making a font available. + (line 6) +* interaction with PostScript: Interaction with PostScript. + (line 6) +* inverted output: Small or inverted. (line 6) +* invoking Dvips: Invoking Dvips. (line 6) +* j config command (partial font downloading): Configuration file commands. + (line 55) +* Java DVI reader: Hypertext. (line 21) +* Jeffrey, Alan: Invoking afm2tfm. (line 13) +* K config command (comment-removeal): Configuration file commands. + (line 59) +* kerning, defined: Metric files. (line 15) +* landscape orientation, defined: Paper size and landscape. + (line 11) +* landscape papertype: Option details. (line 310) +* landscape, as \special: papersize special. (line 16) +* last page printed: Option details. (line 162) +* last-resort font scaling, with DVIPSSIZES: Environment variables. + (line 38) +* last-resort scaling, with R: Configuration file commands. + (line 123) +* ledger papertype: Option details. (line 310) +* legal papertype: Option details. (line 310) +* letter papertype: Option details. (line 310) +* letterhead tray: Paper trays. (line 10) +* ligature operations: Encoding file format. + (line 54) +* ligature, defined: Metric files. (line 15) +* LIGKERN encoding file command: Encoding file format. + (line 37) +* lines in figures, wrong width: EPSF clipping. (line 6) +* links, hypertext: Hypertext specials. (line 33) +* literal headers: Literal headers. (line 6) +* literal PostScript, examples: Literal examples. (line 6) +* literal PostScript, using: Literal PS. (line 6) +* long documents not printing: Long documents fail. (line 6) +* low characters, shifting: Option details. (line 117) +* lpr spooler, MS-DOS emulation: Option details. (line 222) +* Lucida, installing: PostScript font installation. + (line 10) +* m config command (available memory): Configuration file commands. + (line 63) +* M config command (mf mode): Configuration file commands. + (line 82) +* macros for color: Color macro files. (line 6) +* macros for epsf inclusion <1>: EPSF macros. (line 6) +* macros for epsf inclusion: \includegraphics. (line 6) +* magnification, DVI: EPSF scaling. (line 63) +* magnification, overriding DVI: Option details. (line 354) +* magnification, vertical: Option details. (line 365) +* mailcap and hypertext: Hypertext specials. (line 53) +* manual feed: Option details. (line 171) +* maxdrift: Option details. (line 71) +* maximum pages printed: Option details. (line 194) +* media: Option details. (line 310) +* memory available: Configuration file commands. + (line 63) +* memory of printer exhausted: Printer errors. (line 14) +* memory usage, and headers: Headers and memory usage. + (line 6) +* memory, conserving: Option details. (line 21) +* memory, used by PostScript fonts: Making a font available. + (line 104) +* Metafont ligature operations: Encoding file format. + (line 54) +* Metafont mode, specifying: Option details. (line 174) +* Metafont source files: Glyph files. (line 30) +* metric files: Metric files. (line 6) +* Minion typeface family: psfonts.map. (line 27) +* missfont.log: Option details. (line 183) +* MISSFONT_LOG: Option details. (line 186) +* Mitsubishi Shinko CHC-S446i printer: No output. (line 14) +* mkdvipspapers: Config file paper sizes. + (line 69) +* mktexpk, avoiding: Option details. (line 183) +* mktexpk, changing name: Environment variables. + (line 27) +* mode name, specifying: Option details. (line 174) +* Monotype fonts: PostScript font installation. + (line 10) +* Monotype fonts, installing: PostScript font installation. + (line 19) +* mtpk: Option details. (line 346) +* multiple master fonts: psfonts.map. (line 27) +* multiple output files: Option details. (line 126) +* multiple paper trays: Paper trays. (line 6) +* Murphy, Tim: Hypertext specials. (line 20) +* N EPS-disabling config command: Configuration file commands. + (line 85) +* name: Hypertext specials. (line 41) +* narrow fonts: psfonts.map. (line 32) +* no output at all: No output. (line 6) +* non-printing characters, shifting: Option details. (line 117) +* non-resident fonts: psfonts.map. (line 6) +* O config command (offset): Configuration file commands. + (line 98) +* o config command (output file): Configuration file commands. + (line 90) +* oblique fonts: Special font effects. + (line 6) +* octal character codes: Afm2tfm options. (line 41) +* odd pages only: Option details. (line 27) +* offset pages: Option details. (line 234) +* Omega extensions: Option details. (line 205) +* option, details of: Option details. (line 6) +* options, debugging: Debug options. (line 6) +* options, Dvips: Invoking Dvips. (line 6) +* options, reading from standard input: Option details. (line 11) +* options, summary: Option summary. (line 6) +* options, to Afm2tfm: Afm2tfm options. (line 6) +* outline fonts <1>: Special font effects. + (line 50) +* outline fonts: Glyph files. (line 17) +* output file, sectioning of: Headers and memory usage. + (line 6) +* output file, setting: Configuration file commands. + (line 90) +* output files, multiple: Option details. (line 126) +* output, inverted: Small or inverted. (line 6) +* output, none: No output. (line 6) +* output, redirecting: Option details. (line 218) +* output, too small: Small or inverted. (line 6) +* p config command (font aliases): Configuration file commands. + (line 101) +* P config command (PK path): Configuration file commands. + (line 110) +* page range: Option details. (line 261) +* page, first printed: Option details. (line 252) +* page, last printed: Option details. (line 162) +* pages, maximum printed: Option details. (line 194) +* PaintType: Special font effects. + (line 50) +* Pantone colors: Color macro files. (line 16) +* paper size configuration file command: Config file paper sizes. + (line 6) +* paper size, default: config.ps installation. + (line 6) +* paper size, general: Paper size and landscape. + (line 6) +* paper trays: Paper trays. (line 6) +* paper type: Option details. (line 310) +* papersize special: papersize special. (line 6) +* papersize special, and no -t: Option details. (line 310) +* partial font downloading: psfonts.map. (line 17) +* PDF files, font quality: Hypertext caveats. (line 6) +* PDF files, making <1>: Hypertext. (line 11) +* PDF files, making: Ghostscript installation. + (line 6) +* PDF files, option for: Option details. (line 372) +* pdfmark: Hypertext. (line 6) +* pfa files: Glyph files. (line 25) +* pfb files: Glyph files. (line 25) +* pfb files, automatically unpacked: psfonts.map. (line 62) +* pfm files: Metric files. (line 49) +* Phaser printer, used for color calibration: Color device configuration. + (line 18) +* physical page number, and -l: Option details. (line 162) +* physical page number, and -p: Option details. (line 252) +* 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 110) +* plotfile, ps subspecial: ps special. (line 25) +* pltotf: Metric files. (line 39) +* popen for output: Option details. (line 222) +* positioning accuracy: Option details. (line 71) +* post code after headers: Including headers from TeX. + (line 28) +* PostScript code, literal: Literal PS. (line 6) +* PostScript encoding: Encodings. (line 27) +* PostScript encoding, changing: Changing PostScript encodings. + (line 6) +* PostScript font alias file <1>: Configuration file commands. + (line 101) +* PostScript font alias file: Option details. (line 326) +* PostScript fonts: PostScript fonts. (line 6) +* PostScript fonts, installing: PostScript font installation. + (line 6) +* PostScript fonts, on your system: PostScript font installation. + (line 24) +* PostScript header files: Header files. (line 6) +* PostScript hooks: PostScript hooks. (line 6) +* PostScript interaction: Interaction with PostScript. + (line 6) +* PostScript previewers: Ghostscript installation. + (line 6) +* PostScript units: Bounding box. (line 11) +* PowerPage PostScript implementation: No output. (line 14) +* pre code before headers: Including headers from TeX. + (line 28) +* previewing Dvips output: Ghostscript installation. + (line 6) +* PRINTER: Environment variables. + (line 41) +* printer configuration: config.ps installation. + (line 6) +* printer configuration file, prototype: config.ps installation. + (line 15) +* printer errors: Printer errors. (line 6) +* printer memory: Configuration file commands. + (line 63) +* printer memory exhausted: Printer errors. (line 14) +* printer offset: Option details. (line 234) +* PRINTER, and config file searching: Configuration file searching. + (line 36) +* 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) +* prototype printer configuration file: config.ps installation. + (line 15) +* ps special: ps special. (line 6) +* psfile special: psfile special. (line 6) +* psfonts.map <1>: psfonts.map. (line 6) +* psfonts.map <2>: Special font effects. + (line 19) +* psfonts.map: PostScript font installation. + (line 24) +* psheaderdir: Header files. (line 12) +* psi character missing: Hypertext caveats. (line 55) +* pstopk: Option details. (line 346) +* Q config command (quiet): Configuration file commands. + (line 117) +* q config command (quiet): Configuration file commands. + (line 117) +* quiet operation: Option details. (line 285) +* r config command (page reversal): Configuration file commands. + (line 120) +* R fallback resolution config command: Configuration file commands. + (line 123) +* reencode/*.enc: Encodings. (line 35) +* reencoding: Reencoding with Afm2tfm. + (line 6) +* reencoding PostScript fonts: psfonts.map. (line 37) +* registered character, accessing: Changing PostScript encodings. + (line 18) +* remapping: Reencoding with Afm2tfm. + (line 6) +* resident fonts, different in different printers <1>: Configuration file commands. + (line 101) +* resident fonts, different in different printers: Option details. + (line 326) +* resolution: Option details. (line 362) +* resolution, setting: Option details. (line 58) +* reverse pagination: Option details. (line 289) +* Rokicki, Tomas: Why Dvips. (line 68) +* rotate.tex: ps special. (line 29) +* S config command (pict path): Configuration file commands. + (line 148) +* s config command (save/restore): Configuration file commands. + (line 145) +* save/restore, and inverted output: Small or inverted. (line 6) +* save/restore, and literal PS: Literal examples. (line 27) +* save/restore, and specials: ps special. (line 6) +* save/restore, generating global: Option details. (line 298) +* scaleunit: psfile special. (line 55) +* scaling of figures: EPSF scaling. (line 6) +* scaling small caps: Afm2tfm options. (line 33) +* Scandinavian A ring: Reencoding with Afm2tfm. + (line 32) +* screen frequencies, setting: Including headers from the command line. + (line 13) +* SDict: psfile special. (line 55) +* SDict dictionary: Literal headers. (line 6) +* searching config files, order of: Configuration file searching. + (line 6) +* sections of output file, and memory: Headers and memory usage. + (line 6) +* sections output, in separate files: Option details. (line 126) +* security: Option details. (line 292) +* shell command execution, disabling: Option details. (line 292) +* shell escape, in config file: Configuration file commands. + (line 33) +* Shinko CHC-S446i printer: No output. (line 14) +* show PostScript operator: PostScript typesetting. + (line 23) +* silent operation: Option details. (line 285) +* simplex mode on duplex printers: Including headers from the command line. + (line 13) +* slanted fonts: Special font effects. + (line 6) +* slanted fonts, making: Afm2tfm options. (line 51) +* SlantFont: Special font effects. + (line 17) +* small caps fonts: Special font effects. + (line 34) +* Smith, Arthur: Hypertext specials. (line 6) +* Softkey fonts: PostScript font installation. + (line 10) +* Softkey fonts, installing: PostScript font installation. + (line 19) +* spaces, dropped trailing: Hypertext caveats. (line 55) +* specials, hypertext: Hypertext specials. (line 6) +* splines: Glyph files. (line 17) +* spooler, lacking: Option details. (line 110) +* spooling to lpr on MS-DOS: Option details. (line 222) +* standard I/O: Option details. (line 98) +* standard input, reading options from: Option details. (line 11) +* standard output, output to: Option details. (line 218) +* standard PostScript, required by Ghostview: Ghostscript installation. + (line 17) +* start-hook: PostScript hooks. (line 11) +* structured comments: Option details. (line 197) +* system in config file: Configuration file commands. + (line 33) +* T config command (TFM path): Configuration file commands. + (line 153) +* Tektronix Phaser printer, used for color calibration: Color device configuration. + (line 18) +* testpage.tex: Option details. (line 241) +* TeX encoding, changing: Changing TeX encodings. + (line 6) +* TeX, including headers in: Including headers from TeX. + (line 6) +* TEXCONFIG: Environment variables. + (line 46) +* TEXFONTS, overrides P: Configuration file commands. + (line 110) +* TEXFONTS, overrides T: Configuration file commands. + (line 153) +* TEXINPUTS, overrides S: Configuration file commands. + (line 148) +* texmext.enc: Encodings. (line 35) +* TEXMFOUTPUT: Option details. (line 186) +* texmital.enc: Encodings. (line 35) +* texmsym.enc <1>: Changing TeX encodings. + (line 16) +* texmsym.enc: Encodings. (line 35) +* TEXPICTS: Environment variables. + (line 53) +* TEXPICTS, overrides S: Configuration file commands. + (line 148) +* TEXPKS, overrides P: Configuration file commands. + (line 110) +* TEXSIZES, overrides R: Configuration file commands. + (line 136) +* text in figures, chopped off: EPSF clipping. (line 6) +* tfm files: Metric files. (line 31) +* TFMFONTS, overrides T: Configuration file commands. + (line 153) +* tftopl: Metric files. (line 39) +* Theisen, Tim: Ghostscript installation. + (line 17) +* tight bounding box, finding: Option details. (line 82) +* too-small output: Small or inverted. (line 6) +* trademark character, accessing: Changing PostScript encodings. + (line 18) +* trailing spaces, dropped: Hypertext caveats. (line 55) +* TranScript: Option details. (line 197) +* transforming downloaded fonts: psfonts.map. (line 32) +* trouble: Diagnosing problems. (line 6) +* Type 1 fonts: Glyph files. (line 25) +* typesetting in PostScript: PostScript typesetting. + (line 6) +* U config command (Xerox 4045): Configuration file commands. + (line 158) +* uncollated copies: Option details. (line 41) +* uncompressing PostScript: Dynamic creation of graphics. + (line 6) +* uniform resource locator: Hypertext specials. (line 20) +* URL, definition: Hypertext specials. (line 27) +* URL, extended for TeX: Hypertext specials. (line 20) +* user-definable colors: User-definable colors. + (line 6) +* userdict, and dictionary files: Header files. (line 21) +* userdict, used for header files: Option details. (line 121) +* V config command (vf path): Configuration file commands. + (line 162) +* verbose EPSF processing: EPSF macros. (line 46) +* vf files: Virtual fonts. (line 16) +* virtual font expansion: Virtual fonts. (line 34) +* virtual font path: Configuration file commands. + (line 162) +* virtual fonts: Virtual fonts. (line 6) +* virtual fonts, creating: Invoking afm2tfm. (line 13) +* VM exhausted: Printer errors. (line 14) +* VMusage: Headers and memory usage. + (line 12) +* vpl files: Virtual fonts. (line 16) +* vptovf: Making a font available. + (line 52) +* W config command (warning): Configuration file commands. + (line 167) +* warning messages, defining: Configuration file commands. + (line 167) +* warnings, suppressing: Option details. (line 285) +* whole font downloading: psfonts.map. (line 27) +* wide fonts: psfonts.map. (line 32) +* X config command (horizontal resolution): Configuration file commands. + (line 174) +* Xerox 4045: Option details. (line 334) +* Y config command (vertical resolution): Configuration file commands. + (line 177) +* Y&Y fonts, installing: PostScript font installation. + (line 19) +* Z config command (compression): Configuration file commands. + (line 180) +* z config command (secure mode): Configuration file commands. + (line 183) +* | starting output filename: Option details. (line 222) + + + +Tag Table: +Node: Top465 +Node: Why Dvips1155 +Node: Installation4603 +Node: config.ps installation5741 +Node: PostScript font installation8282 +Node: Ghostscript installation11156 +Node: Diagnosing problems12253 +Node: Debug options13122 +Node: No output14238 +Node: Small or inverted15706 +Node: Printer errors16425 +Node: Long documents fail17757 +Node: Including graphics fails18098 +Node: Invoking Dvips19336 +Node: Basic usage19927 +Node: Command-line options20911 +Node: Option summary21360 +Node: Option details23336 +Node: Environment variables41418 +Node: Config files43921 +Node: Configuration file searching44604 +Node: Configuration file commands47904 +Node: Paper size and landscape54941 +Node: papersize special56518 +Node: Config file paper sizes57632 +Node: Paper trays61765 +Node: Interaction with PostScript63099 +Node: PostScript figures63752 +Node: Bounding box64478 +Node: \includegraphics67849 +Node: EPSF macros70140 +Node: EPSF scaling72110 +Node: EPSF clipping74680 +Node: psfile special75322 +Node: Dynamic creation of graphics77242 +Node: Fonts in figures78560 +Node: Header files80220 +Node: Including headers from TeX81426 +Node: Including headers from the command line83460 +Node: Headers and memory usage84560 +Node: Literal PS85270 +Node: " special85852 +Node: ps special86593 +Node: Literal headers87901 +Node: PostScript hooks88616 +Node: Literal examples90706 +Node: Hypertext92158 +Node: Hypertext caveats93716 +Node: Hypertext specials98113 +Node: PostScript fonts100747 +Node: Font concepts101863 +Node: Metric files103030 +Node: Glyph files105856 +Node: Virtual fonts108212 +Node: Encodings110102 +Node: PostScript typesetting112484 +Node: Making a font available115566 +Node: Invoking afm2tfm120596 +Node: Changing font encodings121566 +Node: Changing TeX encodings122357 +Node: Changing PostScript encodings123457 +Node: Changing both encodings124801 +Node: Reencoding with Afm2tfm125474 +Node: Encoding file format128578 +Node: Special font effects132781 +Node: Afm2tfm options135044 +Node: psfonts.map138029 +Node: Color142753 +Node: Color macro files143797 +Node: User-definable colors146995 +Node: Color subtleties148270 +Node: Ted Turner149921 +Node: Color device configuration151146 +Node: Color support details153588 +Node: Color specifications153966 +Node: Color specials155369 +Node: Index157498 + +End Tag Table diff --git a/Master/texmf/doc/info/eplain.info b/Master/texmf/doc/info/eplain.info new file mode 100644 index 00000000000..070eb62f509 --- /dev/null +++ b/Master/texmf/doc/info/eplain.info @@ -0,0 +1,6422 @@ +This is eplain.info, produced by makeinfo version 4.7 from eplain.texi. + + This manual documents the Eplain macros, version 3.0, September +2005. Eplain provides functionality for plain TeX that is intended to +be useful regardless of how your document is actually formatted. + + Most of this manual is in the public domain, like most of the Eplain +code. It was mostly written by Karl Berry, starting in 1989. Steven +Smith wrote the documentation for the commutative diagram macros; this +chapter is under the GNU General Public License. Oleg Katsitadze and +Adam Lewenberg have made additions and corrections. + +INFO-DIR-SECTION Texinfo documentation system +START-INFO-DIR-ENTRY +* Eplain: (eplain). Expanding on plain Tex. +END-INFO-DIR-ENTRY + + +File: eplain.info, Node: Top, Next: Introduction, Up: (dir) + +Eplain +****** + +This manual documents the Eplain macros, version 3.0, September 2005. +Eplain provides functionality for plain TeX that is intended to be +useful regardless of how your document is actually formatted. + + Most of this manual is in the public domain, like most of the Eplain +code. It was mostly written by Karl Berry, starting in 1989. Steven +Smith wrote the documentation for the commutative diagram macros; this +chapter is under the GNU General Public License. Oleg Katsitadze and +Adam Lewenberg have made additions and corrections. + +* Menu: + +* Introduction:: Eplain's purpose and philosophy. +* Installation:: Installing Eplain. +* Invoking Eplain:: Using Eplain from a TeX file. +* User definitions:: Macros to be used in a document. +* Hyperlinks:: Producing documents with hyperlinks. +* Arrow theoretic diagrams:: Macros for commutative diagrams. +* Programming definitions:: Macros to be used in writing other macros. +* Macro index:: Entries for TeX and Eplain control sequences. +* Concept index:: General index. + + --- The Detailed Node Listing --- + +User definitions + +* Diagnostics:: Tracing information. +* Rules:: Changing the default rule dimensions. +* Citations:: Using BibTeX and Eplain to make bibliographies. +* Displays:: Changing the formatting of math displays. +* Time of day:: Producing the time of day. +* Lists:: Producing numbered and unordered lists. +* Verbatim listing:: Producing text just as it appears. +* Contents:: Making a table of contents. +* Cross-references:: Symbolically referring to pages or equations. +* Page references:: Symbolic references to page numbers. +* Equation references:: Symbolic references to equation numbers. +* Indexing:: Creating and typesetting indexes. +* Justification:: Left- or right-justification, or centering. +* Tables:: Producing ordered tables. +* Margins:: Changing the margins directly. +* Multiple columns:: Getting output in two columns. +* Footnotes:: Autonumbered footnotes; changing formatting. +* Fractions:: A better way to produce fractions in text. +* Paths:: Allowing line breaks in pathnames. +* Logos:: Various logos. +* Boxes:: Producing filled or open rectangles. +* Checking for PDF output:: Checking for pdfTeX in PDF mode. + +Citations + +* Formatting citations:: Changing the way citations are printed. +* Formatting bibliographies:: Changing the way bibliographies are printed. + +Displays + +* Formatting displays:: General formatting of displays. + +Lists + +* Formatting lists:: Changing how the lists look. + +Cross-references + +* Defining generic references:: +* Using generic references:: + +Equation references + +* Formatting equation references:: +* Subequation references:: + +Indexing + +* Indexing terms:: Specifying what to index. +* Typesetting an index:: Printing the sorted output. +* Customizing indexing:: Creating commands and specifying extra actions. + +Indexing terms + +* Indexing commands:: Making index entries. +* Modifying index entries:: Ranges, see/see also, page number typesetting. +* Proofing index terms:: Noting index entries in the margins. + +Hyperlinks + +* Introduction to hyperlinks:: +* Explicit hyperlinks:: +* Implicit hyperlinks:: +* Hyperlink drivers:: +* Setting hyperlink types and options:: +* Turning hyperlinks on/off:: + +Implicit hyperlinks + +* URL hyperlinks:: url +* Citation hyperlinks:: cite, bib +* List hyperlinks:: li +* Cross-reference hyperlinks:: definexref, ref +* Page reference hyperlinks:: xrdef, xref +* Equation reference hyperlinks:: eq +* Index hyperlinks:: idx +* Footnote hyperlinks:: foot, footback +* Contents hyperlinks:: + +Index hyperlinks + +* Exact destinations for index terms:: +* Page destinations for index terms:: +* Choosing destination placement:: +* Index page list and page range parsers:: +* Hyperlinks in see and see also entries:: + +Hyperlink drivers + +* Options supported by all drivers:: +* Hyperlink drivers pdftex and dvipdfm:: +* Hyperlink driver nolinks:: + +Hyperlink drivers pdftex and dvipdfm:: + +* Destination types for pdftex and dvipdfm:: +* Destination options for pdftex and dvipdfm:: +* Link types for pdftex and dvipdfm:: +* Link options for pdftex and dvipdfm:: + +Setting hyperlink types and options + +* Setting default types and options:: +* Setting group types:: +* Setting group options:: + +Turning hyperlinks on/off + +* Turning low-level commands on/off:: +* Turning hyperlinks on/off for a group:: + +Arrow theoretic diagrams + +* Slanted lines and vectors:: +* Commutative diagrams:: + +Commutative diagrams + +* Arrows and morphisms:: +* Construction of commutative diagrams:: +* Commutative diagram parameters:: + +Programming definitions + +* Category codes:: Changing category codes. +* Allocation macros:: Non-outer versions of \newcount et al. +* Iteration:: Doing `for' loops in TeX. +* Macro arguments:: Reading and ignoring them. +* Converting to characters:: Normalizing control sequences and spaces. +* Expansion:: Controlling expansion. +* Obeying spaces:: Making whitespace count anywhere. +* Writing out numbers:: Making `1' into `one'. +* Mode-specific penalties:: +* Auxiliary files:: Testing for their existence. +* User-defined environments:: User-defined environments. +* Page list and page range parsers:: + +Expansion + +* \csn and \ece:: +* \edefappend:: +* Hooks:: Manipulating and executing named actions. +* Properties:: Associating information with a csname. +* \expandonce:: +* \ifundefined:: +* \futurenonspacelet:: + + +File: eplain.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top + +1 Introduction +************** + +The "Eplain" macro package expands on and extends the definitions in +plain TeX. This manual describes the definitions that you, as either +an author or a macro writer, might like to use. It doesn't discuss the +implementation; see comments in the source code (`xeplain.tex') for +that. + + Eplain is not intended to provide "generic" typesetting +capabilities, as do LaTeX (written by Leslie Lamport) or Texinfo (written +by Richard Stallman and others). Instead, it provides definitions that +are intended to be useful regardless of the high-level commands that +you use when you actually prepare your manuscript. + + For example, Eplain does not have a command `\section', which would +format section headings in an "appropriate" way, such as LaTeX's +`\section'. The philosophy of Eplain is that some people will always +need or want to go beyond the macro designer's idea of "appropriate". +Such canned macros are fine--as long as you are willing to accept the +resulting output. If you don't like the results, or if you are trying +to match a different format, you are out of luck. + + On the other hand, almost everyone would like capabilities such as +cross-referencing by labels, so that you don't have to put actual page +numbers in the manuscript. The author of Eplain is not aware of any +generally available macro packages that (1) do not force their +typographic style on an author, and yet (2) provide such capabilities. + + Besides such generic macros as cross-referencing, Eplain contains +another set of definitions: ones that change the conventions of plain +TeX's output. For example, math displays in TeX are, by default, +centered. If you want your displays to come out left-justified, you +have to plow through `The TeXbook' to find some way to do it, and then +adapt the code to your own needs. Eplain tries to take care of the +messy details of such things, while still leaving the detailed +appearance of the output up to you. + + Finally, numerous definitions turned out to be useful as Eplain was +developed. They are also documented in this manual, on the chance that +people writing other macros will be able to use them. + + You can send bug reports or suggestions to <tex-eplain@tug.org>. +The current version number of Eplain is defined as the macro +`\fmtversion' at the end of the source file `eplain.tex'. When +corresponding, please refer to it. + + To get on this mailing list yourself, email +<tex-eplain-request@tug.org> with a message whose body contains a line + subscribe YOU@YOUR.PREFERRED.ADDRESS + + +File: eplain.info, Node: Installation, Next: Invoking Eplain, Prev: Introduction, Up: Top + +2 Installation +************** + +The simplest way to install Eplain is simply to install the file +`eplain.tex' in a directory where TeX will find it. What that +directory is obviously depends on your operating system and TeX +installation. I personally install `eplain.tex' in a directory +`/usr/local/lib/texmf/tex/plain'. + + If you want, you can also create a format (`.fmt') file for Eplain, +which will eliminate the time spent reading the macro source file with +`\input'. You do this by issuing a sequence of Unix commands something +like this: + + prompt$ touch eplain.aux + prompt$ initex + This is TeX, ... + **&plain eplain + (eplain.tex) + *\dump + ... MESSAGES ... + +You must make sure that `eplain.aux' exists _before_ you run `initex'; +otherwise, warning messages about undefined labels will never be issued. + + You then have to install the resulting `eplain.fmt' in some system +directory or set an environment variable to tell TeX how to find it. I +install the format files in `/usr/local/lib/texmf/ini'; the environment +variable for the Web2C port of TeX to Unix is `TEXFORMATS'. + + Some implementations of TeX (including Web2C) use the name by which +TeX is invoked to determine what format to read. For them, you should +make a link to the `virtex' program named `etex', and then install the +format file with the name `etex.fmt'. This lets users invoke TeX as +`etex' and get the format file read automatically, without having to +say `&eplain'. + + For convenience, the file `etex.tex' in the distribution directory +does `\input eplain' and then `\dump', so that if you replace `eplain' +with `etex' in the example above, the format file will end up with the +right name. + + The `install' target in the `Makefile' does all this properly for +Unix systems and Web2C. You may have to change the pathnames. + + Under emtex, `eaj@acpub.duke.edu' says that + + tex386 -i ^&plain eplain \dump + +produces a format file. + + +File: eplain.info, Node: Invoking Eplain, Next: User definitions, Prev: Installation, Up: Top + +3 Invoking Eplain +***************** + +The simplest way to use Eplain is simply to put: + + \input eplain + +at the beginning of your input file. The macro file is small enough +that reading it does not take an unbearably long time--at least on +contemporary machines. + + In addition, if a format (`.fmt') file has been created for Eplain +(see the previous section), you can eliminate the time spent reading +the macro source file. You do this by responding `&eplain' to TeX's +`**' prompt. For example: + + initex + This is TeX, ... + **&eplain myfile + + Depending on the implementation of TeX which you are using, you might +also be able to invoke TeX as `eplain' and have the format file +automatically read. + + If you write something which you will be distributing to others, you +won't know if the Eplain format will be loaded already. If it is, then +doing `\input eplain' will waste time; if it isn't, then you must load +it. To solve this, Eplain defines the control sequence `\eplain' to be +the letter `t' (a convention borrowed from Lisp; it doesn't actually +matter what the definition is, only that the definition exists). +Therefore, you can do the following: + \ifx\eplain\undefined \input eplain \fi + where `\undefined' must never acquire a definition. + + Eplain consists of several source files: +`xeplain.tex' + most of the macros; + +`arrow.tex' + commutative diagram macros (*note Arrow theoretic diagrams::), + written by Steven Smith; + +`btxmac.tex' + bibliography-related macros (*note Citations::); + +`ifpdf.sty' + sets the switch `\ifpdf', which can be used to detect pdfTeX in + PDF mode (*note Checking for PDF output::), written by Heiko + Oberdiek; + +`path.sty' + macro for allowing line breaks at punctuation characters within + long pathnames, electronic mail addresses, etc., (*note Paths::), + written by Philip Taylor; + +`texnames.sty' + abbreviations for various TeX-related names (*note Logos::), edited + by Nelson Beebe. + + +The file `eplain.tex' is all of these files merged together, with +comments removed. + + All of these files except `xeplain.tex' can be input individually, +if all you want are the definitions in that file. + + Also, since the bibliography macros are fairly extensive, you might +not want to load them, to conserve TeX's memory. Therefore, if the +control sequence `\nobibtex' is defined, then the bibliography +definitions are skipped. You must set `\nobibtex' before `eplain.tex' +is read, naturally. For example, you could start your input file like +this: + + \let\nobibtex = t + \input eplain + + By default, `\nobibtex' is undefined, and so the bibliography +definitions _are_ made. + + Likewise, define `\noarrow' if you don't want to include the +commutative diagram macros from `arrow.tex', perhaps because you +already have conflicting ones. + + If you don't want to read or write an `aux' file at all, for any +kind of cross-referencing, define `\noauxfile' before reading +`eplain.tex'. This also turns off all warnings about undefined labels. + + Eplain conflicts with AMSTeX (to be precise, with `amsppt.sty'): the +macros `\cite' and `\ref' are defined by both. + + If you want to use AMSTeX's `\cite', the solution is to define +`\nobibtex' before reading Eplain, as described above. + + If you have `amsppt.sty' loaded and use `\ref', Eplain writes a +warning on your terminal. If you want to use the AMSTeX `\ref', do +`\let\ref = \amsref' after reading Eplain. To avoid the warning, do +`\let\ref = \eplainref' after reading Eplain and before using `\ref'. + + Sometimes you may need to run TeX more then once on your `.tex' file +in order to produce and typeset indexes, resolve undefined +cross-references and/or citations. The shell script `texi2dvi' from +the Texinfo documentation system (see +`http://www.gnu.org/software/texinfo/') can automate this process: it +runs BibTeX, MakeIndex and TeX as many times as needed to complete the +compilation process. You will need to set the `LATEX' environment +variable to `tex'. For example, in a Bourne-compatible shell, the +following command will do all the work: + + prompt$ LATEX=tex texi2dvi file.tex + +(Despite the name, `texi2dvi' can also produce `.pdf' files; just set +`LATEX=pdftex'.) See the output from the command `texi2dvi --help' for +invoking information and a full list of options. + + +File: eplain.info, Node: User definitions, Next: Hyperlinks, Prev: Invoking Eplain, Up: Top + +4 User definitions +****************** + +This chapter describes definitions that are meant to be used directly +in a document. When appropriate, ways to change the default formatting +are described in subsections. + +* Menu: + +* Diagnostics:: Tracing information. +* Rules:: Changing the default rule dimensions. +* Citations:: Using BibTeX and Eplain to make bibliographies. +* Displays:: Changing the formatting of math displays. +* Time of day:: Producing the time of day. +* Lists:: Producing numbered and unordered lists. +* Verbatim listing:: Producing text just as it appears. +* Contents:: Making a table of contents. +* Cross-references:: Symbolic references to equations, figures, etc. +* Page references:: Symbolic references to page numbers. +* Equation references:: Symbolic references to equation numbers. +* Indexing:: Creating and typesetting indexes. +* Justification:: Ragged left, ragged right, centered. +* Tables:: Producing ordered tables. +* Margins:: Changing the margins directly. +* Multiple columns:: Getting output in two columns. +* Footnotes:: Autonumbered footnotes; changing formatting. +* Fractions:: A better way to produce fractions in text. +* Paths:: Allowing line breaks in pathnames. +* Logos:: Various logos. +* Boxes:: Producing filled or open rectangles. +* Checking for PDF output:: Checking for pdfTeX in PDF mode. +* Loading LaTeX packages:: Support for LaTeX packages under plain TeX. + + +File: eplain.info, Node: Diagnostics, Next: Rules, Up: User definitions + +4.1 Diagnostics +=============== + +Plain TeX provides the `\tracingall' command, to turn on the maximum +amount of tracing possible in TeX. The (usually voluminous) output +from `\tracingall' goes both on the terminal and into the transcript +file. It is sometimes easier to have the output go only to the +transcript file, so you can peruse it at your leisure and not obscure +other output to the terminal. So, Eplain provides the command +`\loggingall'. (For some reason, this command is available in +Metafont, but not in TeX.) + + It is also sometimes useful to see the complete contents of boxes. +`\tracingboxes' does this. (It doesn't affect whether or not the +contents are shown on the terminal.) + + You can turn off all tracing with `\tracingoff'. + + You can also turn logging on and off globally, so you don't have to +worry about whether or not you're inside a group at the time of command. +These variants are named `\gloggingall' and `\gtracingall'. + + Finally, if you write your own help messages (see `\newhelp' in `The +TeXbook'), you want a convenient way to break lines in them. This is +what TeX's `\newlinechar' parameter is for; however, plain TeX doesn't +set `\newlinechar'. Therefore, Eplain defines it to be the character +`^^J'. + + For example, one of Eplain's own error messages is defined as +follows: + \newhelp\envhelp{Perhaps you forgot to end the previous^^J% + environment? I'm finishing off the current group,^^J% + hoping that will fix it.}% + + +File: eplain.info, Node: Rules, Next: Citations, Prev: Diagnostics, Up: User definitions + +4.2 Rules +========= + +The default dimensions of rules are defined in chapter 21 of the `The +TeXbook'. To sum up what is given there, the "thickness" of rules is 0.4pt +by default. Eplain defines three parameters that let you change this +dimension: `\hruledefaultheight', `\hruledefaultdepth', and +`\vruledefaultwidth'. By default, they are defined as `The TeXbook' +describes. + + But it would be wrong to redefine `\hrule' and `\vrule'. For one +thing, some macros in plain TeX depend on the default dimensions being +used; for another, rules are used quite heavily, and the performance +impact of making it a macro can be noticeable. Therefore, to take +advantage of the default rule parameters, you must use `\ehrule' and +`\evrule'. + + +File: eplain.info, Node: Citations, Next: Displays, Prev: Rules, Up: User definitions + +4.3 Citations +============= + +Bibliographies are part of almost every technical document. To handle +them easily, you need two things: a program to do the tedious +formatting, and a way to cite references by labels, rather than by +numbers. The BibTeX program, written by Oren Patashnik, takes care of +the first item; the citation commands in LaTeX, written to be used with +BibTeX, take care of the second. Therefore, Eplain adopts the use of +BibTeX, and virtually the same interface as LaTeX. + + The general idea is that you put citation commands in the text of +your document, and commands saying where the bibliography data is. +When you run TeX, these commands produce output on the file with the +same root name as your document (by default) and the extension `.aux'. BibTeX +reads this file. You should put the bibliography data in a file or +files with the extension `.bib'. BibTeX writes out a file with the same +root name as your document and extension `.bbl'. Eplain reads this file the +next time you run your document through TeX. (It takes multiple passes +to get everything straight, because usually after seeing your +bibliography typeset, you want to make changes in the `.bib' file, +which means you have to run BibTeX again, which means you have to run +TeX again...) An annotated example of the whole process is given below. + + If your document has more than one bibliography--for example, if it +is a collection of papers--you can tell Eplain to use a different root +name for the `.bbl' file by defining the control sequence +`\bblfilebasename'. The default definition is simply `\jobname'. + + See the document `BibTeXing' (whose text is in the file +`btxdoc.tex', which should be in the Eplain distribution you got) for +information on how to write your .bib files. Both the BibTeX and the +Eplain distributions contain several examples, also. + + The `\cite' command produces a citation in the text of your +document. The exact printed form the citation will take is under your +control; *note Formatting citations::. `\cite' takes one required +argument, a comma-separated list of cross-reference labels (*note +Cross-references::, for exactly what characters are allowed in such +labels). Warning: spaces in this list are taken as part of the +following label name, which is probably not what you expect. The +`\cite' command also produces a command in the .aux file that tells +BibTeX to retrieve the given reference(s) from the .bib file. `\cite' +also takes one optional argument, which you specify within square +brackets, as in LaTeX. This text is simply typeset after the +citations. (See the example below.) + + Eplain can create hypertext links for citations pointing to the +relevant bibliography entries; *note Citation hyperlinks::. + + Another command, `\nocite', puts the given reference(s) into the +bibliography, but produces nothing in the text. + + The `\bibliography' command is next. It serves two purposes: +producing the typeset bibliography, and telling BibTeX the root names +of the .bib files. Therefore, the argument to `\bibliography' is a +comma separated list of the .bib files (without the `.bib'). Again, +spaces in this list are significant. + + You tell BibTeX the particular style in which you want your +bibliography typeset with one more command: `\bibliographystyle'. The +argument to this is a single filename STYLE, which tells BibTeX to look +for a file STYLE.bst. See the document `Designing BibTeX styles' +(whose text is in the `btxhak.tex') for information on how to write +your own styles. + + Eplain automatically reads the citations from the .aux file when +your job starts. + + If you don't want to see the messages about undefined citations, you +can say `\xrefwarningfalse' before making any citations. Eplain +automatically does this if the .aux file does not exist. You can +restore the default by saying `\xrefwarningtrue'. + + Here is a TeX input file that illustrates the various commands. + + \input eplain % Reads the .aux file. + Two citations to Knuthian works: + \cite[note]{surreal,concrete-math}. + \beginsection{References.}\par % Title for the bibliography. + \bibliography{knuth} % Use knuth.bib for the labels. + \bibliographystyle{plain} % Number the references. + \end % End of the document. + + If we suppose that this file was named `citex.tex' and that the +bibliography data is in `knuth.bib' (as the `\bibliography' command +says), the following commands do what's required. (`$ ' represents the +shell prompt.) + + $ tex citex (produces undefined citation messages) + $ bibtex citex (read knuth.bib and citex.aux, write citex.bbl) + $ tex citex (read citex.bbl, still have undefined citations) + $ tex citex (one more time, to resolve the references) + +(The `texi2dvi' program can help you automate this process, *note +Invoking Eplain::.) + + The output looks something like (because we used the plain +bibliography style): + + Two citations to Knuthian works: [2,1 note]. + + References + + [1] Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. + Concrete Mathematics. Addison-Wesley, Reading, Massachusetts, 1989. + + [2] Donald E. Knuth. Surreal Numbers. Addison-Wesley, Reading, + Massachusetts, 1974. + + See the BibTeX documentation for information on how to write the +bibliography databases, and the bibliography styles that are available. +(If you want your references printed with names, as in [Knu74], instead +of numbered, the bibliography style is `alpha'.) + +* Menu: + +* Formatting citations:: Changing the way citations are printed. +* Formatting bibliographies:: Changing the way bibliographies are printed. + + +File: eplain.info, Node: Formatting citations, Next: Formatting bibliographies, Up: Citations + +4.3.1 Formatting citations +-------------------------- + +You may wish to change Eplain's formatting of citations; i.e., the +result of your `\cite' commands. By default, the citation labels are +printed one after another, separated by commas and enclosed in +brackets, using the main text font. Some formats require other styles, +such as superscripted labels. You can accomodate such formats by +redefining the following macros. + +`\printcitestart' + +`\printcitefinish' + Eplain expands these macros at the begining and end of the list of + citations for each `\cite' command. By default, they produce a + `[' and `]', respectively. + +`\printbetweencitations' + If a `\cite' command has multiple citations, as in + `\cite{acp,texbook}', Eplain expands this macro in between each + pair of citations. By default, it produces a comma followed by a + space. + +`\printcitenote' + This macro takes one argument, which is the optional note to the + `\cite' command. If the `\cite' command had no note, this macro + isn't used. Otherwise, it should print the note. By default, the + note is preceded with a comma and a space. + + Here is an example, showing you could produce citations as +superscripted labels, with the optional notes in parentheses. + + \def\printcitestart{\unskip $^\bgroup} + \def\printbetweencitations{,} + \def\printcitefinish{\egroup$} + \def\printcitenote#1{\hbox{\sevenrm\space (#1)}} + + +File: eplain.info, Node: Formatting bibliographies, Prev: Formatting citations, Up: Citations + +4.3.2 Formatting bibliographies +------------------------------- + +You may wish to change Eplain's formatting of the bibliography, +especially with respect to the fonts that are used. Therefore, Eplain +provides the following control sequences: + +`\biblabelwidth' + This control sequence represents a `\dimen' register, and its value + is the width of the widest label in the bibliography. Although it + is unlikely you will ever want to redefine it, you might want to + use it if you redefine `\biblabelprint', below. + +`\biblabelprint' + This macro takes one argument, the label to print. By default, the + label is put in a box of width `\biblabelwidth', and is followed by + an enspace. When you want to change the spacing around the + labels, this is the right macro to redefine. + +`\biblabelcontents' + This macro also takes one argument, the label to print. By + default, the label is printed using the font `\bblrm' (below), and + enclosed in brackets. When you want to change the appearance of + the label, but not the spacing around it, this is the right macro + to redefine. + +`\bblrm' + The default font used for printing the bibliography. + +`\bblem' + The font used for printing the titles and other "emphasized" + material. + +`\bblsc' + In some styles, authors' names are printed in a caps-and-small-caps + font. In those cases, this font is used. + +`\bblnewblock' + This is invoked between each of the parts of a bibliography entry. + The default is to leave some extra space between the parts; you + could redefine it to start each part on a new line (for example). + A part is simply a main element of the entry; for example, the + author is a part. (It was LaTeX that introduced the (misleading, + as far as I am concerned) term `block' for this.) + +`\biblabelextraspace' + Bibliography entries are typeset with a hanging indentation of + `\biblabelwidth' plus this. The default is `.5em', where the em + width is taken from the `\bblrm' font. If you want to change + this, you should do it inside `\bblhook'. + +`\bblhook' + This is expanded before reading the .bbl file. By default, it + does nothing. You could, for example, define it to set the + bibliography fonts, or produce the heading for the references. Two + spacing parameters must be changed inside `\bblhook': `\parskip', + which produces extra space between the items; and + `\biblabelextraspace', which is described above. (By the way, + `\hookappend' won't work with `\bblhook', despite the names. Just + use `\def'.) + + + If you are really desperate, you can also hand-edit the .bbl file +that BibTeX produces to do anything you wish. + + +File: eplain.info, Node: Displays, Next: Time of day, Prev: Citations, Up: User definitions + +4.4 Displays +============ + +By default, TeX centers displayed material. (Displayed material is +just whatever you put between `$$''s--it's not necessarily +mathematics.) Many layouts would be better served if the displayed +material was left-justified. Therefore, Eplain provides the command +`\leftdisplays', which indents displayed material by `\parindent' plus +`\leftskip', plus `\leftdisplayindent'. + + You can go back to centering displays with `\centereddisplays'. (It +is usually poor typography to have both centered and left-justified +displays in a single publication, though.) + + `\leftdisplays' also changes the plain TeX commands that deal with +alignments inside math displays, `\displaylines', `\eqalignno', and +`\leqalignno', to produce left-justified text. You can still override +this formatting by inserting `\hfill' glue, as explained in `The +TeXbook'. + +* Menu: + +* Formatting displays:: General formatting of displays. + + +File: eplain.info, Node: Formatting displays, Up: Displays + +4.4.1 Formatting displays +------------------------- + +If you want some other kind of formatting, you can write a definition +of your own, analogous to `\leftdisplays'. You need only make sure +that `\leftdisplaysetup' is called at the beginning of every display +(presumably by invoking it in TeX's `\everydisplay' parameter), and to +define `\generaldisplay'. + + `\leftdisplays' expands the old value of `\everydisplay' before +calling `\leftdisplaysetup', so that any changes you have made to it +won't be lost. That old token list as available as the value of the +token register `\previouseverydisplay'. + + +File: eplain.info, Node: Time of day, Next: Lists, Prev: Displays, Up: User definitions + +4.5 Time of day +=============== + +TeX provides the day, month, and year as numeric quantities (unless +your TeX implementation is woefully deficient). Eplain provides some +control sequences to make them a little more friendly to humans. + + `\monthname' produces the name of the current month, abbreviated to +three letters. + + `\fullmonthname' produces the name of the current month, +unabbreviated (in English). + + `\timestring' produces the current time, as in `1:14 p.m.' + + `\timestamp' produces the current date and time, as in `23 Apr 64 +1:14 p.m.'. (Except the spacing is slightly different.) + + `\today' produces the current date, as in `23 April 1964'. + + +File: eplain.info, Node: Lists, Next: Verbatim listing, Prev: Time of day, Up: User definitions + +4.6 Lists +========= + +Many documents require lists of items, either numbered or simply +enumerated. Plain TeX defines one macro to help with creating lists, +`\item', but that is insufficient in many cases. Therefore, Eplain +provides two pairs of commands: + +`\numberedlist ... \endnumberedlist' + +`\orderedlist ... \endorderedlist' + These commands (they are synonyms) produce a list with the items + numbered sequentially, starting from one. A nested `\numberedlist' + labels the items with lowercase letters, starting with `a'. + Another nested `\numberedlist' labels the items with roman + numerals. Yet more deeply nested numbered lists label items with + `*'. + +`\unorderedlist ... \endunorderedlist' + This produces a list with the items labelled with small black boxes + ("square bullets"). A nested `\unorderedlist' labels items with + em-dashes. Doubly (and deeper) nested unordered lists label items + with `*'s. + + + The two kinds of lists can be nested within each other, as well. + + In both kinds of lists, you begin an item with `\li'. An item may +continue for several paragraphs. Each item starts a paragraph. + + You can give `\li' an optional argument, a cross-reference label. +It's defined to be the "marker" for the current item. This is useful +if the list items are numbered. You can produce the value of the label +with `\xrefn'. *Note Cross-references::. + + Eplain can create hypertext links for the markers produced by +`\xrefn' pointing to the relevant list item; *note List hyperlinks::. + + You can also say `\listcompact' right after `\numberedlist' or +`\unorderedlist'. The items in the list will then not have any extra +space between them (*note Formatting lists::). You might want to do +this if the items in this particular list are short. + + Here is an example: + \numberedlist\listcompact + \li The first item. + \li The second item. + + The second paragraph of the second item. + \endnumberedlist + +* Menu: + +* Formatting lists:: Changing how the lists look. + + +File: eplain.info, Node: Formatting lists, Up: Lists + +4.6.1 Formatting lists +---------------------- + +Several registers define the spacing associated with lists. It is +likely that their default values won't suit your particular layout. + +`\abovelistskipamount, \belowlistskipamount' + The vertical glue inserted before and after every list, + respectively. + +`\interitemskipamount' + The vertical glue inserted before each item except the first. + `\listcompact' resets this to zero, as mentioned above. + +`\listleftindent, \listrightindent' + `\listrightindent' is the amount of space by which the list is + indented on the right; i.e., it is added to `\rightskip'. + `\listleftindent' is the amount of space, _relative to_ + `\parindent', by which the list is indented on the left. Why treat + the two parameters differently? Because (a) it is more useful to + make the list indentation depend on the paragraph indentation; + (b) footnotes aren't formatted right if `\parindent' is reset to + zero. + + + The three vertical glues are inserted by macros, and preceded by +penalties: `\abovelistskip' does `\vpenalty\abovelistpenalty' and then +`\vskip\abovelistskip'. `\belowlistskip' and `\interitemskip' are +analogous. + + In addition, the macro `\listmarkerspace' is called to separate the +item label from the item text. This is set to `\enspace' by default. + + If you want to change the labels on the items, you can redefine these +macros: `\numberedmarker' or `\unorderedmarker'. The following +registers might be useful if you do: + +`\numberedlistdepth, \unorderedlistdepth' + These keep track of the depth of nesting of the two kinds of lists. + +`\itemnumber, \itemletter' + These keep track of the number of items that have been seen in the + current numbered list. They are both integer registers. The + difference is that `\itemnumber' starts at one, and `\itemletter' + starts at 97, i.e., lowercase `a'. + + + You can also redefine the control sequences that are used internally, +if you want to do something radically different: `\beginlist' is +invoked to begin both kinds of lists; `\printitem' is invoked to print +the label (and space following the label) for each item; and `\endlist' is +invoked to end both kinds of lists. + + +File: eplain.info, Node: Verbatim listing, Next: Contents, Prev: Lists, Up: User definitions + +4.7 Verbatim listing +==================== + +It is sometimes useful to include a file verbatim in your document; for +example, part of a computer program. The `\listing' command is given +one argument, a filename, and produces the contents of that file in +your document. `\listing' expands `\listingfont' to set the current +font. The default value of `\listingfont' is `\tt'. + + You can take arbitrary actions before reading the file by defining +the macro `\setuplistinghook'. This is expanded just before the file +is input. + + If you want to have line numbers on the output, you can say +`\let\setuplistinghook = \linenumberedlisting'. The line numbers are +stored in the count register `\lineno' while the file is being read. +You can redefine the macro `\printlistinglineno' to change how they are +printed. + + You can produce in-line verbatim text in your document with +`\verbatim'. End the text with `|endverbatim'. If you need a `|' in +the text, double it. If the first character of the verbatim text is a +space, use `| '. (`| ' will work elsewhere in the argument, too, but +isn't necessary.) + + For example: + + \verbatim| ||\#%&!|endverbatim + +produces ` |\#%&!'. + + Line breaks and spaces in the verbatim text are preserved. + + You can change the verbatim escape character from the default `|' +with `\verbatimescapechar CHAR'; for example, this changes it to `@'. + + \verbatimescapechar \@ + +The backslash is not necessary in some cases, but is in others, +depending on the catcode of the character. The argument to +`\verbatimescapechar' is used as `\catcode `CHAR', so the exact rules +follow that for `\catcode'. + + Because `\verbatim' must change the category code of special +characters, calling inside a macro definition of your own does not work +properly. For example: + + \def\mymacro{\verbatim &#%|endverbatim}% Doesn't work! + + To accomplish this, you must change the category codes yourself +before making the macro definition. Perhaps `\uncatcodespecials' will +help you (*note Category codes::). + + +File: eplain.info, Node: Contents, Next: Cross-references, Prev: Verbatim listing, Up: User definitions + +4.8 Contents +============ + +Producing a table of contents that is both useful and aesthetic is one +of the most difficult design problems in any work. Naturally, Eplain +does not pretend to solve the design problem. Collecting the raw data +for a table of contents, however, is much the same across documents. +Eplain uses an auxiliary file with extension `.toc' (and the same root +name as your document) to save the information. + + To write an entry for the table of contents, you say +`\writetocentry{PART}{TEXT}', where PART is the type of part this entry +is, e.g., `chapter', and TEXT is the text of the title. +`\writetocentry' puts an entry into the .toc file that looks like +`\tocPARTentry{TEXT}{PAGE NUMBER}'. The TEXT is written unexpanded. + + A related command, `\writenumberedtocentry', takes one additional +argument, the first token of which is expanded at the point of the +`\writenumberedtocentry', but the rest of the argument is not expanded. +The usual application is when the parts of the document are numbered. +On the other hand, the one-level expansion allows you to use the +argument for other things as well (author's names in a proceedings, +say), and not have accents or other control sequences expanded. The +downside is that if you _want_ full expansion of the third argument, +you don't get it--you must expand it yourself, before you call +`\writenumberedtocentry'. + + For example: + + \writenumberedtocentry{chapter}{A $\sin$ wave}{\the\chapno} + \writetocentry{section}{A section title} + +Supposing `\the\chapno' expanded to `3' and that the `\write''s +occurred on pages eight and nine, respectively, the above writes the +following to the .toc file: + + \tocchapterentry{A $\sin$ wave}{3}{8} + \tocsectionentry{A section title}{9} + + You read the .toc file with the command `\readtocfile'. Naturally, +whatever `\toc... entry' commands that were written to the file must be +defined when `\readtocfile' is invoked. Eplain has minimal definitions +for `\tocchapterentry', `\tocsectionentry', and `\tocsubsectionentry', +just to prevent undefined control sequence errors in common cases. +They aren't suitable for anything but preliminary proofs. + + Each of `\writetocentry' and `\writenumberedtocentry' opens the .toc +file for writing, thereby deleting the information from the previous +run. You should therefore arrange that `\readtocfile' be called +_before_ the first call to a `\writetoc...' macro. `\readtocfile' does +not itself delete the information from the .toc file, so that you can +call it several times, e.g., to create both a short and normal table of +contents. (To produce this in particular, define `\tocsectionentry' to +produce nothing while you are reading .toc file for a short table of +contents (*note Macro arguments::).) + + On the other hand, if you don't want to rewrite the .toc file at +all, perhaps because you are only running TeX on part of your +manuscript, you can set `\rewritetocfilefalse'. + + By default, the `.toc' file has the root `\jobname'. If your +document has more than one contents--for example, if it is a collection +of papers, some of which have their own contents--you can tell Eplain +to use a different root name by defining the control sequence +`\tocfilebasename'. + + In addition to the usual table of contents, you may want to have a +list of figures, list of tables, or other such contents-like list. You +can do this with `\definecontentsfile{ABBREV}'. All of the above +commands are actually a special case that Eplain predefines with + + \definecontentsfile{toc} + +The ABBREV is used both for the file extension and in the control +sequence names. + + +File: eplain.info, Node: Cross-references, Next: Page references, Prev: Contents, Up: User definitions + +4.9 Cross-references +==================== + +It is often useful to refer the reader to other parts of your document; +but putting literal page, section, equation, or whatever numbers in the +text is certainly a bad thing. + + Eplain therefore provides commands for symbolic cross-references. It +uses an auxiliary file with extension .aux (and the same root name as +your document) to keep track of the information. Therefore, it takes +two passes to get the cross-references right--one to write them out, +and one to read them in. Eplain automatically reads the .aux file at +the first reference; after reading it, Eplain reopens it for writing. + + You can control whether or not Eplain warns you about undefined +labels. *Note Citations::. + + Labels in Eplain's cross-reference commands can use characters of +category code eleven (letter), twelve (other), ten (space), three (math +shift), four (alignment tab), seven (superscript), or eight (subscript). +For example, `(a1 $&^_' is a valid label (assuming the category codes +of plain TeX), but `%#\{' has no valid characters. + + You can also do symbolic cross-references for bibliographic citations +and list items. *Note Citations::, and *Note Lists::. + + Eplain can create hypertext links for the cross-references; *note +Cross-reference hyperlinks::. + +* Menu: + +* Defining generic references:: +* Using generic references:: + + +File: eplain.info, Node: Defining generic references, Next: Using generic references, Up: Cross-references + +4.9.1 Defining generic references +--------------------------------- + +Eplain provides the command `\definexref' for general cross-references. +It takes three arguments: the name of the label (see section above for +valid label names), the value of the label (which can be anything), and +the "class" of the reference--whether it's a section, or theorem, or +what. For example: + + \definexref{sec-intro}{3.1}{section} + +Of course, the label value is usually generated by another macro using +TeX count registers or some such. + + `\definexref' doesn't actually define LABEL; instead, it writes out +the definition to the .aux file, where Eplain will read it on the next +TeX run. + + The CLASS argument is used by the `\ref' and `\refs' commands. See +the next section. + + +File: eplain.info, Node: Using generic references, Prev: Defining generic references, Up: Cross-references + +4.9.2 Using generic references +------------------------------ + +To retrieve the value of the label defined via `\definexref' (see the +previous section), Eplain provides the following macros: + +`\refn{LABEL}' + +`\xrefn{LABEL}' + `\refn' and `\xrefn' (they are synonyms) produce the bare + definition of LABEL. If LABEL isn't defined, issue a warning, and + produce LABEL itself instead, in typewriter. (The warning isn't + given if `\xrefwarningfalse'.) + +`\ref{LABEL}' + Given the class C for LABEL (see the description of `\definexref' + in the previous section), expand the control sequence `\C word' + (if it's defined) followed by a tie. Then call `\refn' on LABEL. + (Example below.) + +`\refs{LABEL}' + Like `\ref', but append the letter `s' to the `\...word'. + + + The purpose of the `\...word' macro is to produce the word `Section' +or `Figure' or whatever that usually precedes the actual reference +number. + + Here is an example: + + \def\sectionword{Section} + \definexref{sec-intro}{3.1}{section} + \definexref{sec-next}{3.2}{section} + See \refs{sec-intro} and \refn{sec-next} ... + +This produces `See Sections 3.1 and 3.2 ...' + + +File: eplain.info, Node: Page references, Next: Equation references, Prev: Cross-references, Up: User definitions + +4.10 Page references +==================== + +Eplain provides two commands for handling references to page numbers, +one for definition and one for use. + +`\xrdef{LABEL}' + Define LABEL to be the current page number. This produces no + printed output, and ignores following spaces. + +`\xref{LABEL}' + Produce the text `p. PAGENO', which is the usual form for + cross-references. The PAGENO is actually LABEL's definition; if + LABEL isn't defined, the text of the label itself is printed. The + `p. ' prefix is defined by `\xrefpageword'. Its default + definition is `p.\thinspace'. + + + Eplain can create hypertext links for the page references; *note +Page reference hyperlinks::. + + +File: eplain.info, Node: Equation references, Next: Indexing, Prev: Page references, Up: User definitions + +4.11 Equation references +======================== + +Instead of referring to pages, it's most useful if equation labels +refer to equation numbers. Therefore, Eplain reserves a `\count' +register, `\eqnumber', for the current equation number, and increments +it at each numbered equation. + + Here are the commands to define equation labels and then refer to +them: + +`\eqdef{LABEL}' + This defines LABEL to be the current value of `\eqnumber', and, if + the current context is not inner, then produces a `\eqno' command. + (The condition makes it possible to use `\eqdef' in an + `\eqalignno' construction, for example.) The text of the equation + number is produced using `\eqprint'. *Note Formatting equation + references::. + + If LABEL is empty, you still get an equation number (although + naturally you can't reliably refer to it). This is useful if you + want to put numbers on all equations in your document, and you + don't want to think up unique labels. + + To refer to the last equation with the empty label, you just use + the empty label in one of the equation reference macros (see + below). This can be handy when you want to refer to an equation + shortly after its definition, say, in the sentence following the + displayed equation, and do not intend to refer to the equation + later. But use this trick with extreme caution: if later you + change the text and insert another empty definition between the + original definition and the reference, the reference will start to + refer to the new empty-labeled equation. + +`\eqdefn{LABEL}' + This is like `\eqdef', except it always omits the `\eqno' command. + It can therefore be used in places where `\eqdef' can't; for + example, in a non-displayed equation. The text of the equation + number is not produced, so you can also use it in the (admittedly + unusual) circumstance when you want to define an equation label + but not print that label. + +`\eqref{LABEL}' + This produces a formatted reference to LABEL. If LABEL is + undefined (perhaps because it is a forward reference), it just + produces the text of the label itself. Otherwise, it calls + `\eqprint'. + +`\eqrefn{LABEL}' + This produces the cross-reference text for LABEL. That is, it is + like `\eqref', except it doesn't call `\eqprint'. + + + Equation labels can contain the same characters that are valid in +general cross-references. + + Eplain can create hypertext links for the equation references; *note +Equation reference hyperlinks::. + +* Menu: + +* Formatting equation references:: +* Subequation references:: + + +File: eplain.info, Node: Formatting equation references, Next: Subequation references, Up: Equation references + +4.11.1 Formatting equation references +------------------------------------- + +Both defining an equation label and referring to it should usually +produce output. This output is produced with the `\eqprint' macro, +which takes one argument, the equation number being defined or referred +to. By default, this just produces `(NUMBER)', where NUMBER is the +equation number. To produce the equation number in a different font, +or with different surrounding symbols, or whatever, you can redefine +`\eqprint'. For example, the following definition would print all +equation numbers in italics. (The extra braces define a group, to keep +the font change from affecting surrounding text.) + + \def\eqprint#1{{\it (#1)}} + + In addition to changing the formatting of equation numbers, you might +to add more structure to the equation number; for example, you might +want to include the chapter number, to get equation numbers like +`(1.2)'. To achieve this, you redefine `\eqconstruct'. For example: + + \def\eqconstruct#1{\the\chapternumber.#1} + +(If you are keeping the chapter number in a count register named +`\chapternumber', naturally.) + + The reason for having both `\eqconstruct' and `\eqprint' may not be +immediately apparent. The difference is that `\eqconstruct' affects +the text that cross-reference label is defined to be, while `\eqprint' +affects only what is typeset on the page. The example just below might +help. + + Usually, you want equation labels to refer to equation numbers. But +sometimes you might want a more complicated text. For example, you +might have an equation `(1)', and then have a variation several pages +later which you want to refer to as `(1*)'. + + Therefore, Eplain allows you to give an optional argument (i.e., +arbitrary text in square brackets) before the cross-reference label to +\eqdef. Then, when you refer to the equation, that text is produced. +Here's how to get the example just mentioned: + + $$...\eqdef{a-eq}$$ + ... + $$...\eqdef[\eqrefn{a-eq}*]{a-eq-var}$$ + In \eqref{a-eq-var}, we expand on \eqref{a-eq}, ... + + We use `\eqrefn' in the cross-reference text, not `\eqref', so that +`\eqprint' is called only once. + + +File: eplain.info, Node: Subequation references, Prev: Formatting equation references, Up: Equation references + +4.11.2 Subequation references +----------------------------- + +Eplain also provides for one level of substructure for equations. That +is, you might want to define a related group of equations with numbers +like `2.1' and `2.2', and then be able to refer to the group as a whole: +"... in the system of equations (2)...". + + The commands to do this are `\eqsubdef' and `\eqsubdefn'. They take +one LABEL argument like their counterparts above, and generally behave +in the same way. The difference is in how they construct the equation +number: instead of using just `\eqnumber', they also use another +counter, `\subeqnumber'. This counter is advanced by one at every +`\eqsubdef' or `\eqsubdefn', and reset to zero at every `\eqdef' or +`\eqdefn'. + + You use `\eqref' to refer to subequations as well as main equations. + + To put the two together to construct the text that the label will +produce, they use a macro `\eqsubreftext'. This macros takes two +arguments, the "main" equation number (which, because the equation +label can be defined as arbitrary text, as described in the previous +section, might be anything at all) and the "sub" equation number (which +is always just a number). Eplain's default definition just puts a +period between them: + \def\eqsubreftext#1#2{#1.#2}% + +You can redefine `\eqsubreftext' to print however you like. For +example, this definition makes the labels print as `2a', `2b', and so +on. + \newcount\subref + \def\eqsubreftext#1#2{% + \subref = #2 % The space stops a <number>. + \advance\subref by 96 % `a' is character code 97. + #1\char\subref + } + +Sadly, we must define a new count register, `\subref', instead of using +the scratch count register `\count255', because `#1' might include +other macro calls which use `\count255'. + + +File: eplain.info, Node: Indexing, Next: Justification, Prev: Equation references, Up: User definitions + +4.12 Indexing +============= + +Eplain provides support for generating raw material for an index, and +for typesetting a sorted index. A separate program must do the actual +collection and sorting of terms, because TeX itself has no support for +sorting. + + Eplain can create hypertext links pointing from the index to the +index terms; *note Index hyperlinks::. + + Eplain's indexing commands were designed to work with the program +MakeIndex, available from CTAN hosts in +`tex-archive/indexing/makeindex'; MakeIndex is also commonly included +in prepackaged TeX distributions. It is beyond the scope of this +manual to explain how to run MakeIndex, and all of its many options. +See `http://www.ctan.org/tex-archive/indexing/makeindex/' + + The basic strategy for indexing works like this: + + 1. For a document `foo.tex', Eplain's indexing commands (e.g., + `\idx'; see the section `Indexing terms' below) write the raw index + material to `foo.idx'. + + 2. MakeIndex reads `foo.idx', collects and sorts the index, and + writes the result to `foo.ind'. + + 3. Eplain reads and typesets `foo.ind' on a subsequent run of TeX. + See the section `Typesetting an index' below. + + +The `texi2dvi' program can help you automate this process, *note +Invoking Eplain::. + + If your document needs more than one index, each must have its own +file. Therefore, Eplain provides the command `\defineindex', which +takes an argument that is a single letter, which replaces `i' in the +filenames and in the indexing command names described below. For +example, + + \defineindex{m} + +defines the command `\mdx' to write to the file `foo.mdx'. Eplain +simply does `\defineindex{i}' to define the default commands. + +* Menu: + +* Indexing terms:: Specifying what to index. +* Typesetting an index:: Printing the sorted output. +* Customizing indexing:: Creating commands and specifying extra actions. + + +File: eplain.info, Node: Indexing terms, Next: Typesetting an index, Up: Indexing + +4.12.1 Indexing terms +--------------------- + +Indexing commands in Eplain come in pairs: one command that only writes +the index entry to the `.idx' file (see above section), and one that +also typesets the term being indexed. The former always starts with `s' +(for "silent"). In either case, the name always includes `Idx', where I +is the index letter, also described above. Eplain defines the index `i' +itself, so that's what we'll use in the names below. + + The silent form of the commands take a subterm as a trailing optional +argument. For example, `\sidx{truth}[definition of]' on page 75 makes +an index entry that will eventually be typeset (by default) as + + truth + definition of, 75 + + Also, the silent commands ignore trailing spaces. The non-silent +ones do not. + +* Menu: + +* Indexing commands:: Making index entries. +* Modifying index entries:: Ranges, see/see also, page number typesetting. +* Proofing index terms:: Noting index entries in the margins. + + +File: eplain.info, Node: Indexing commands, Next: Modifying index entries, Up: Indexing terms + +4.12.1.1 Indexing commands +.......................... + +Here are the commands. + + * `\sidx{TERM}[SUBTERM]' makes an index entry for TERM, optionally + with subterm SUBTERM. `\idx{TERM}' also produces TERM as output. + Example: + + \sidx{truth}[beauty of] + The beauty of truth is \idx{death}. + + Subterms at the second and further levels can also be specified in + SUBTERM, using the `\idxsubentryseparator' character to separate + them. This character is by default `!'. + + * `\sidxname{FIRST M.}{VON LAST}[SUBTERM]' makes an index entry for + `VON LAST, FIRST M.'. You can change the `, ' by redefining + `\idxnameseparator'. `\idxname{FIRST M.}{VON LAST}' also produces + FIRST M. VON LAST as output. (These commands are useful special + cases of `\idx' and `\sidx'.) Example: + + \sidxname{Richard}{Stark} + \idxname{Donald}{Westlake} has written many kinds of novels, under + almost as many names. + + * `\sidxmarked\CS{TERM}[SUBTERM]' makes an index entry for + `TERM[SUBTERM]', but TERM will be put in the index as `\CS{term}', + but still sorted as just TERM. `\idxmarked\CS{TERM}' also typesets + `\CS{term}'. This provides for the usual ways of changing the + typesetting of index entries. Example: + + \def\article#1{``#1''} + \sidxmarked\article{Miss Elsa and Aunt Sophie} + Peter Drucker's \idxmarked\article{The Polanyis} is a remarkable + essay about a remarkable family. + + * `\sidxsubmarked{TERM}\CS{subterm}' makes an index entry for TERM, + SUBTERM as usual, but also puts SUBTERM in the index as + `\CS{term}'. `\idxsubmarked{TERM}\CS{subterm}' also typesets + `TERM \CS{subterm}', in the unlikely event that your syntax is + convoluted enough to make this useful. Example: + + \def\title#1{{\sl #1}} + \sidxsubmarked{Anderson, Laurie}\title{Strange Angels} + The \idxsubmarked{Anderson}\title{Carmen} is a strange twist. + + + The commands above rely on MakeIndex's feature for separating +sorting of an index entry's from its typesetting. You can use this +directly by specifying an index entry as `SORT@TYPESET'. For example: + + \sidx{Ap-weight@$A_\pi$-weight} + +will sort as `Ap-weight', but print with the proper math. The `@' here +is MakeIndex's default character for this purpose. See +`http://www.ctan.org/tex-archive/indexing/makeindex/'. To make an index +entry with an `@' in it, you have to escape it with a backslash; Eplain +provides no macros for doing this. + + After any index command, Eplain runs `\hookaction{afterindexterm}'. +Because the index commands always add a whatsit item to the current +list, you may wish to preserve a penalty or space past the new item. +For example, given a conditional `\if@aftersctnhead' set true when +you're at a section heading, you could do: + + \hookaction{afterindexterm}{\if@aftersctnhead \nobreak \fi} + + +File: eplain.info, Node: Modifying index entries, Next: Proofing index terms, Prev: Indexing commands, Up: Indexing terms + +4.12.1.2 Modifying index entries +................................ + +All the index commands described in the previous section take an initial +optional argument before the index term, which modify the index entry's +meaning in various ways. You can specify only one of the following in +any given command, except that `begin' and `end' can be specified +together with `pagemarkup=CS' (separate them with a comma without a +following space, like this: `[begin,pagemarkup=defn]'). + + These work via MakeIndex's "encapsulation" feature. *Note +Customizing indexing::, if you're not using the default characters for +the MakeIndex operators. The other optional argument (specifying a +subterm) is independent of these. + + Here are the possibilities: + +`begin' +`end' + These mark an index entry as the beginning or end of a range. The + index entries must match exactly for MakeIndex to recognize them. + Example: + + \sidx[begin]{future}[Cohen, Leonard] + ... + \sidx[end]{future}[Cohen, Leonard] + + will typeset as something like + + future, + Cohen, Leonard, 65-94 + +`see' + This marks an index entry as pointing to another; the real index + term is an additional (non-optional) argument to the command. Thus + you can anticipate a term readers may wish to look up, yet which + you have decided not to index. Example: + + \sidx[see]{analysis}[archetypal]{archetypal criticism} + + becomes + + analysis, + archetypal, see archetypal criticism + +`seealso' + Similar to `see' (the previous item), but also allows for normal + index entries of the referencing term. Example: + + \sidx[seealso]{archetypal criticism}[elements of]{dichotomies} + + becomes + + archetypal criticism, + elements of, 75, 97, 114, see also dichotomies + + (Aside for the academically curious: The archetypally critical + book I took these dichotomous examples from is Laurence Berman's + `The Musical Image', which I happened to co-design and typeset.) + +`pagemarkup=CS' + This puts `\CS' before the page number in the typeset index, thus + allowing you to underline definitive entries, italicize examples, + and the like. You do _not_ precede the control sequence CS with a + backslash. (That just leads to expansive difficulties.) Naturally + it is up to you to define the control sequences you want to use. + Example: + + \def\defn#1{{\sl #1}} + \sidx[pagemarkeup=defn]{indexing} + + becomes something like + + indexing, `\defn{75}' + + + +File: eplain.info, Node: Proofing index terms, Prev: Modifying index entries, Up: Indexing terms + +4.12.1.3 Proofing index terms +............................. + +As you are reading through a manuscript, it is helpful to see what terms +have been indexed, so you can add others, catch miscellaneous errors, +etc. (Speaking from bitter experience, I can say it is extremely +error-prone to leave all indexing to the end of the writing, since it +involves adding many TeX commands to the source files.) + + So Eplain puts index terms in the margin of each page, if you set +`\indexproofingtrue'. It is `false' by default. The terms are typeset +by the macro `\indexproofterm', which takes a single argument, the term +to be typeset. Eplain's definition of `\indexproofterm' just puts it +into an `\hbox', first doing `\indexprooffont', which Eplain defines to +select the font `cmtt8'. With this definition long terms run off the +page, but since this is just for proofreading anyway, it seems +acceptable. + + On the other hand, we certainly don't want the index term to run into +the text of the page, so Eplain uses the right-hand side of the page +rather than the left-hand page (assuming a language read left to right +here). So `\ifodd\pageno', Eplain kerns by `\outsidemargin', otherwise +by `\insidemargin'. If those macros are undefined, `\indexsetmargins' +defines them to be one inch plus `\hoffset'. + + To get the proofing index entries on the proper page, Eplain defines +a new insertion class `\@indexproof'. To unbox any index proofing +material, Eplain redefines `\makeheadline' to call `\indexproofunbox' +before the original `\makeheadline'. Thus, if you have your own output +routine, that redefines or doesn't use `\makeheadline', it's up to you +to call `\indexproofunbox' at the appropriate time. + + +File: eplain.info, Node: Typesetting an index, Next: Customizing indexing, Prev: Indexing terms, Up: Indexing + +4.12.2 Typesetting an index +--------------------------- + +The command `\readindexfile{i}' reads and typesets the `.ind' file that +MakeIndex outputs (from the `.idx' file which the indexing commands in +the previous sections write). Eplain defines a number of commands that +support the default MakeIndex output. + + More precisely, `\readindexfile' reads +`\indexfilebasename.INDEX-LETTERnd', where the INDEX-LETTER is the +argument. `\indexfilebasename' is `\jobname' by default, but if you +have different indexes in different parts of a book, you may wish to +change it, just as with bibliographies (*note Citations::). + + MakeIndex was designed to work with LaTeX; therefore, by default the +`.ind' file starts with `\begin{theindex}' and ends with +`\end{theindex}'. If no `\begin' has been defined, Eplain defines one +to ignore its argument and set up for typesetting the index (see +below), and also defines a `\end' to ignore its argument. (In a group, +naturally, since there is a primitive `\end'). + + Eplain calls `\indexfonts', sets `\parindent = 0pt', and does +`\doublecolumns' (*note Multiple columns::) at the `\begin{theindex}'. +`\indexfonts' does nothing by default; it's just there for you to +override. (Indexes are usually typeset in smaller type than the main +text.) + + It ends the setup with `\hookrun{beginindex}', so you can override +anything you like in that hook (*note Hooks::). For example: + + \hookaction{beginindex}{\triplecolumns} + + MakeIndex turns each main index entry into an `\item', subentries +into `\subitem', and subsubentries into `\subsubitem'. By default, the +first line of main entries are not indented, and subentries are +indented 1em per level. Main entries are preceded by a `\vskip' of +`\aboveitemskipamount', `0pt plus2pt' by default. Page breaks are +encouraged before main entries (`\penalty -100'), but prohibited +afterwards--Eplain has no provision for "continued" index entries. + + All levels do the following: + + \hangindent = 1em + \raggedright + \hyphenpenalty = 10000 + + Each entry ends with `\hookrun{indexitem}', so you can change any of +this. For example, to increase the allowable rag: + + \hookaction{indexitem}{\advance\rightskip by 2em} + + Finally, MakeIndex outputs `\indexspace' between each group of +entries in the `.ind' file. Eplain makes this equivalent to `\bigbreak'. + + +File: eplain.info, Node: Customizing indexing, Prev: Typesetting an index, Up: Indexing + +4.12.3 Customizing indexing +--------------------------- + +By default, MakeIndex outputs `, ' after each term in the index. To +change this, you can add the following to your MakeIndex style (`.ist') +file: + + delim_0 "\\afterindexterm " + delim_1 "\\afterindexterm " + delim_2 "\\afterindexterm " + +Eplain makes `\afterindexterm' equivalent to `\quad'. + + You can also change the keywords Eplain recognizes (*note Modifying +index entries::): + +`\idxrangebeginword' + `begin' + +`\idxrangeendword' + `end' + +`\idxseecmdword' + `see' + +`\idxseealsocmdword' + `seealso' + + + You can also change the magic characters Eplain puts into the `.idx' +file, in case you've changed them in the `.ist' file: + +`\idxsubentryseparator' + `!' + +`\idxencapoperator' + `|' + +`\idxbeginrangemark' + `(' + +`\idxendrangemark' + `)' + + + There is no macro for the `actual' (`@' by default) character, +because it's impossible to make it expand properly. + + You can change the (imaginary) page number that "see also" entries +sort as by redefining `\idxmaxpagenum'. This is 99999 by default, which +is one digit too many for old versions of MakeIndex. + + The words output by Eplain for "see" and "see also" index entries +are defined by `\indexseeword' and `\indexseealsowords' respectively. +You can change the typeface used for these words by redefining +`\seevariant'. And finally, the macros `\indexsee' and `\indexseealso' +actually produce the "see ..." entries, so you can redefine them if you +want something entirely different. If you do redefine them, make them +take two parameters, the term being referenced and the `\idxmaxpagenum' +(the latter should normally be ignored). See the example below. + + Unfortunately, it is impossible to reliably control the commas +produced by MakeIndex in front of "see ..." entries in the `.ind' file, +either at MakeIndex level or at Eplain level. However, the `sed' +script named `trimsee' distributed with Eplain in the `test' directory +can be used to filter out these commas from the output of MakeIndex. +For example, suppose you want the following style for your "see ..." +entries: + + analysis, + archetypal (see archetypal criticism) + archetypal criticism, + elements of, 75, 97, 114 (see also dichotomies) + +You would need to redefine these macros in your TeX file: + + \def\indexsee#1#2{({\seevariant \indexseeword\/ }#1)} + \def\indexseealso#1#2{({\seevariant \indexseealsowords\/ }#1)} + +and then filter out the commas in front of the "see ..." entries by +running the following command to produce the `.ind' file (assuming the +name of the `.idx' file is `myfile.idx' and the `trimsee' script is +placed in the current directory): + + prompt$ cat myfile.idx | makeindex | ./trimsee > myfile.ind + + By default, `trimsee' uses default page list separators and default +"see ..." command names. If you set up MakeIndex to use different page +list separator or change the names of `\indexsee' and `\indexseealso' +commands, it is possible to adjust the `trimsee' script through its +command line options, which are the following: + +`-i IS' + Use IS as a regular expression matching separator before "see ..." + commands in the input (default: `, \+'). + +`-o OS' + Use OS as a separator to replace IS before "see ..." commands + (default: ` '). + +`-s SEE' + Use SEE as a regular expression matching "see ..." commands + (default: `\\indexsee'). + +`-h' +`--help' + Print a usage message. + +`-v' +`--version' + Print version. + + `trimsee' reads input from the standard input, and directs its +output to the standard output. + + +File: eplain.info, Node: Justification, Next: Tables, Prev: Indexing, Up: User definitions + +4.13 Justification +================== + +Eplain defines three commands to conveniently justify multiple lines of +text: `\flushright', `\flushleft', and `\center'. + + They all work in the same way; let's take `\center' as the example. +To start centering lines, you say `\center' inside a group; to stop, +you end the group. Between the two commands, each end-of-line in the +input file also starts a new line in the output file. + + The entire block of text is broken into paragraphs at blank lines, +so all the TeX paragraph-shaping parameters apply in the usual way. +This is convenient, but it implies something else that isn't so +convenient: changes to any linespacing parameters, such as +`\baselineskip', will have _no effect_ on the paragraph in which they +are changed. TeX does not handle linespacing changes within a +paragraph (because it doesn't know where the line breaks are until the +end of the paragraph). + + The space between paragraphs is by default one blank line's worth. +You can adjust this space by assigning to `\blanklineskipamount'; this +(vertical) glue is inserted after each blank line. + + Here is an example: + {\center First line. + + Second line, with a blank line before. + } + + This produces: + + First line. + + Second line, with a blank line before. + + You may wish to use the justification macros inside of your own +macros. Just be sure to put them in a group. For example, here is how +a title macro might be defined: + + \def\title{\begingroup\titlefont\center} + \def\endtitle{\endgroup} + + +File: eplain.info, Node: Tables, Next: Margins, Prev: Justification, Up: User definitions + +4.14 Tables +=========== + +Eplain provides a single command, `\makecolumns', to make generating +one particular kind of table easier. More ambitious macro packages +might be helpful to you for more difficult applications. The files +`ruled.tex' and `TXSruled.tex', available from `lifshitz.ph.utexas.edu' +in `texis/tables', is the only one I know of. + + Many tables are homogenous, i.e., all the entries are semantically +the same. The arrangement into columns is to save space on the page, +not to encode different meanings. In this kind of the table, it is +useful to have the column breaks chosen automatically, so that you can +add or delete entries without worrying about the column breaks. + + `\makecolumns' takes two arguments: the number of entries in the +table, and the number of columns to break them into. As you can see +from the example below, the first argument is delimited by a slash, and +the second by a colon and a space (or end-of-line). The entries for the +table then follow, one per line (not including the line with the +`\makecolumns' command itself). + + `\parindent' defines the space to the left of the table. `\hsize' +defines the width of the table. So you can adjust the position of the +table on the page by assignments to these parameters, probably inside a +group. + + You can also control the penalty at a page break before the +`\makecolumns' by setting the parameter `\abovecolumnspenalty'. Usually, +the table is preceded by some explanatory text. You wouldn't want a +page break to occur after the text and before the table, so Eplain sets +it to `10000'. But if the table produced by `\makecolumns' is standing +on its own, `\abovecolumnspenalty' should be decreased. + + If you happen to give `\makecolumns' a smaller number of entries +than you really have, some text beyond the (intended) end of the table +will be incorporated into the table, probably producing an error +message, or at least some strange looking entries. And if you give +`\makecolumns' a larger number of entries than you really have, some of +the entries will be typeset as straight text, probably also looking +somewhat out of place. + + Here is an example: + % Arrange 6 entries into 2 columns: + \makecolumns 6/2: % This line doesn't have an entry. + one + two + three + four + five + six + Text after the table. + + This produces `one', `two', and `three' in the first column, and +`four', `five', and `six' in the second. + + +File: eplain.info, Node: Margins, Next: Multiple columns, Prev: Tables, Up: User definitions + +4.15 Margins +============ + +TeX's primitives describe the type area in terms of an offset from the +upper left corner, and the width and height of the type. Some people +prefer to think in terms of the "margins" at the top, bottom, left, and +right of the page, and most composition systems other than TeX conceive +of the page laid out in this way. Therefore, Eplain provides commands +to directly assign and increment the margins. + +`\topmargin = DIMEN' +`\bottommargin = DIMEN' +`\leftmargin = DIMEN' + +`\rightmargin = DIMEN' + These commands set the specified margin to the DIMEN given. The + `=' and the spaces around it are optional. The control sequences + here are not TeX registers, despite appearances; therefore, + commands like `\showthe\topmargin' will not do what you expect. + +`\advancetopmargin by DIMEN' +`\advancebottommargin by DIMEN' +`\advanceleftmargin by DIMEN' + +`\advancerightmargin by DIMEN' + These commands change the specified margin by the DIMEN given. + + Regardless of whether you use the assignment or the advance commands, +Eplain always changes the type area in response, not the other margins. +For example, when TeX starts, the left and right margins are both one +inch. If you then say `\leftmargin = 2in', the right margin will +remain at one inch, and the width of the lines (i.e., `\hsize') will +decrease by one inch. + + When you use any of these commands, Eplain computes the old value of +the particular margin, by how much you want to change it, and then +resets the values of TeX's primitive parameters to correspond. +Unfortunately, Eplain cannot compute the right or bottom margin without +help: you must tell it the full width and height of the final output +page. It defines two new parameters for this: + +`\paperheight' + The height of the output page; default is 11truein. + +`\paperwidth' + The width of the output page; default is 8.5truein. + + If your output page has different dimensions than this, you must +reassign to these parameters, as in + + \paperheight = 11truein + \paperwidth = 17truein + + +File: eplain.info, Node: Multiple columns, Next: Footnotes, Prev: Margins, Up: User definitions + +4.16 Multiple columns +===================== + +Eplain provides for double, triple, and quadruple column output: say +`\doublecolumns', `\triplecolumns', or `\quadcolumns', and from that +point on, the manuscript will be set in columns. To go back to one +column, say `\singlecolumn'. + + You may need to invoke `\singlecolumn' to balance the columns on the +last page of output. + + To do a "column eject", i.e., move to the top of the next column, do +`\columnfill'. This does not actually force an eject, however: it +merely inserts a kern of size `\@normalvsize' minus `\pagetotal' +(`\@normalvsize' being the usual height of the page; to implement +multicolumns, Eplain multiplies `\vsize' itself by the number of +columns). In most circumstances, a column break will be forced after +this kern (during the column splitting operation when the whole page is +output), as desired. + + The columns are separated by the value of the dimen parameter +`\gutter'. Default value is two picas. If you want to add vertical +material between the columns, use `\gutterbox'. For example, to put a +vertical line between columns, define `\gutterbox' as + \def\gutterbox{\vbox to \dimen0{\vfil\hbox{\vrule height\dimen0}\vfil}}% + The dimension counter `\dimen0' contains the height of the column. + + All the `\...columns' macros insert the value of the glue parameter +`\abovecolumnskip' before the multicolumn text, and the value of the +glue parameter `\belowcolumnskip' after it. The default value for both +of these parameters is `\bigskipamount', i.e., one linespace in plain +TeX. + + The macros take into account only the insertion classes defined by +plain TeX; namely, footnotes and `\topinsert's. If you have additional +insertion classes, you will need to change the implementation. + + Also, Eplain makes insertions the full page width. There is no +provision for column-width insertions. + + +File: eplain.info, Node: Footnotes, Next: Fractions, Prev: Multiple columns, Up: User definitions + +4.17 Footnotes +============== + +The most common reference mark for footnotes is a raised number, +incremented on each footnote. The `\numberedfootnote' macro provides +this. It takes one argument, the footnote text. + + If your document uses only numbered footnotes, you could make typing +`\numberedfootnote' more convenient with a command such as: + + \let\footnote = \numberedfootnote + + After doing this, you can type your footnotes as `\footnote{FOOTNOTE +TEXT}', instead of as `\numberedfootnote{FOOTNOTE TEXT}'. + + Eplain keeps the current footnote number in the count register +`\footnotenumber'. So, to reset the footnote number to zero, as you +might want to do at, for example, the beginning of a chapter, you could +say `\footnotenumber=0'. + + Plain TeX separates the footnote marker from the footnote text by an +en space (it uses the `\textindent' macro). In Eplain, you can change +this space by setting the dimension register `\footnotemarkseparation'. The +default is still an en. + + You can produce a space between footenotes by setting the glue +register `\interfootnoteskip'. The default is zero. + + `\parskip' is also set to zero by default before the beginning of +each footnote (but not for the text of the footnote). + + You can also control footnote formatting in a more general way: +Eplain expands the token register `\everyfootnote' before a footnote is +typeset, but after the default values for all the parameters have been +established. For example, if you want your footnotes to be printed in +seven-point type, indented by one inch, you could say: + \everyfootnote = {\sevenrm \leftskip = 1in} + + By default, an `\hrule' is typeset above each group of footnotes on +a page. You can control the dimensions of this rule by setting the +dimension registers `\footnoterulewidth' and `\footnoteruleheight'. The +space between the rule and the first footnote on the page is determined +by the dimension register `\belowfootnoterulespace'. If you don't want +any rule at all, set `\footenoteruleheight=0pt', and, most likely, +`\belowfootnoterulespace=0pt'. The defaults for these parameters +typeset the rule in the same way as plain TeX: the rule is 0.4 points +high, 2 true inches wide, with 2.6 points below it. + + The space above the rule and below the text on the page is controlled +by the glue register `\skip\footins'. The default is a plain TeX +`\bigskip'. + + Eplain can create hypertext links for the footnote marks; *note +Footnote hyperlinks::. + + +File: eplain.info, Node: Fractions, Next: Paths, Prev: Footnotes, Up: User definitions + +4.18 Fractions +============== + +Exercise 11.6 of `The TeXbook' describes a macro `\frac' for setting +fractions, but `\frac' never made it into plain TeX. So Eplain +includes it. + + `\frac' typesets the numerator and denominator in `\scriptfont0', +slightly raised and lowered. The numerator and denominator are +separated by a slash. The denominator must be enclosed in braces if +it's more than one token long, but the numerator need not be. (This is +a consequence of `\frac' taking delimited arguments; see page 203 of +`The TeXbook' for an explanation of delimited macro arguments.) + + For example, `\frac 23/{64}' turns `23/64' into 23/64 (you can't see +the difference in the Info file). + + +File: eplain.info, Node: Paths, Next: Logos, Prev: Fractions, Up: User definitions + +4.19 Paths +========== + +When you typeset long pathnames, electronic mail addresses, or other +such "computer" names, you would like TeX to break lines at punctuation +characters within the name, rather than trying to find hyphenation +points within the words. For example, it would be better to break the +email address `letters@alpha.gnu.ai.mit.edu' at the `@' or a `.', +rather than at the hyphenation points in `letters' and `alpha'. + + If you use the `\path' macro to typeset the names, TeX will find +these good breakpoints. The argument to `\path' is delimited by any +character other other than `\' which does not appear in the name itself. +`|' is often a good choice, as in: + \path|letters@alpha.gnu.ai.mit.edu| + + You can control the exact set of characters at which breakpoints +will be allowed by calling `\discretionaries'. This takes the same +sort of delimited argument; any character in the argument will +henceforth be a valid breakpoint within `\path'. The default set is +essentially all the punctuation characters: + \discretionaries |~!@$%^&*()_+`-=#{}[]:";'<>,.?\/| + + If for some reason you absolutely must use `\' as the delimiter +character for `\path', you can set `\specialpathdelimiterstrue'. +(Other delimiter characters can still be used.) TeX then processes the +`\path' argument about four times more slowly. + + The `\path' macro comes from `path.sty', written by Nelson Beebe and +Philip Taylor and available at +`http://www.ctan.org/tex-archive/macros/latex/contrib/misc/path.sty'. + + +File: eplain.info, Node: Logos, Next: Boxes, Prev: Paths, Up: User definitions + +4.20 Logos +========== + +Eplain redefines the `\TeX' macro of plain TeX to end with `\null', so +that the proper spacing is produced when `\TeX' is used at the end of a +sentence. The other ...TeX macros listed here do this, also. + + Eplain defines `\AMSTeX', `\BibTeX' `\AMSLaTeX', `\LAMSTeX', `\LaTeX' `\MF', and +`\SLiTeX' to produce their respective logos. (Sorry, the logos are not +shown here.) Some spelling variants of these are also supported. + + All these macros come from `texnames.sty', compiled by Nelson Beebe +and available at +`http://www.ctan.org/tex-archive/info/biblio/texnames.sty'. + + +File: eplain.info, Node: Boxes, Next: Checking for PDF output, Prev: Logos, Up: User definitions + +4.21 Boxes +========== + +The solid rectangle that Eplain uses as a marker in unordered lists +(*note Lists::) is available by itself: just say `\blackbox'. + + You can create black boxes of arbitrary size with `\hrule' or +`\vrule'. + + You can also get unfilled rectangles with `\makeblankbox'. This +takes two explicit arguments: the height and depth of the rules that +define the top and bottom of the rectangle. (The two arguments are +added to get the width of the left and right borders, so that the +thickness of the border is the same on all four sides.) It also uses, +as implicit arguments, the dimensions of `\box0' to define the +dimensions of the rectangle it produces. (The contents of `\box0' are +ignored.) + + Here is an example. This small raised open box is suitable for +putting next to numbers in, e.g., a table of contents. + + \def\openbox{% + \ht0 = 1.75pt \dp0 = 1.75pt \wd0 = 3.5pt + \raise 2.75pt \makeblankbox{.2pt}{.2pt} + } + + Finally, you can put a box around arbitrary text with `\boxit'. This +takes one argument, which must itself be a (TeX) box, and puts a +printed box around it, separated by `\boxitspace' white space (3 points +by default) on all four sides. For example: + + \boxit{\hbox{This text is boxed.}} + + The reason that the argument must be a box is that when the text is +more than one line long, TeX cannot figure out the line length for +itself. Eplain does set `\parindent' to zero inside `\boxit', since it +is very unlikely you would want indentation there. (If you do, you can +always reset it yourself.) + + `\boxit' uses `\ehrule' and `\evrule' so that you can easily adjust +the thicknesses of the box rules. *Note Rules::. + + +File: eplain.info, Node: Checking for PDF output, Next: Loading LaTeX packages, Prev: Boxes, Up: User definitions + +4.22 Checking for PDF output +============================ + +pdfTeX is a TeX variant that can output both `.dvi' and `.pdf' (Adobe's +Portable Document Format) files (see +`http://www.ctan.org/tex-archive/systems/pdftex/'). You might +sometimes want to know whether the target format is `.pdf' or `.dvi'. +The `\ifpdf' switch can be used to detect pdfTeX in PDF mode: + + \ifpdf + This text is produced when pdfTeX is in PDF mode. + \else + This text is produced when pdfTeX is in DVI mode, + or when some program other than pdfTeX is used. + \fi + + Keep in mind that `\ifpdf' is set based on the value of the +`\pdfoutput' primitive of pdfTeX at the time Eplain is loaded. If you +change the value of `\pdfoutput' after you load Eplain, `\ifpdf' will +not reflect the change. + + Eplain defines `\ifpdf' by incorporating Heiko Oberdiek's +`ifpdf.sty', which is available at +`http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/ifpdf.sty'. + + +File: eplain.info, Node: Loading LaTeX packages, Prev: Checking for PDF output, Up: User definitions + +4.23 Loading LaTeX packages +=========================== + +Eplain provides a limited support for loading LaTeX packages (`.sty' +files--not `.cls'). This will mostly work for packages which were +designed with plain TeX compatibility in mind, which means that most +LaTeX packages cannot be loaded. The packages which are known to work +are listed below (*note Packages known to work::). If you discover a +working package which is not in the list, please report it to the +Eplain mailing list (*note Introduction::). + + To set up a pseudo-LaTeX environment for the packages, Eplain uses +`miniltx.tex' +(`http://www.ctan.org/tex-archive/macros/plain/graphics/miniltx.tex') +from the LaTeX graphics collection, written by David Carlisle and +Sebastian Rahtz (the collection is available at +`http://www.ctan.org/tex-archive/macros/latex/required/graphics/'). +Eplain extends `miniltx.tex' to provide some additional features, e.g., +support for package options. + +* Menu: + +* The \usepackage command:: Command to load packages. +* Environment for loading packages:: Environment for the \usepackage commands. +* Packages known to work:: Supported packages. +* Packages known not to work:: Packages known not to work with Eplain. + + +File: eplain.info, Node: The \usepackage command, Next: Environment for loading packages, Up: Loading LaTeX packages + +4.23.1 The `\usepackage' command +-------------------------------- + +`\usepackage' loads a LaTeX package. Its syntax is similar to that of +LaTeX's `\usepackage' command: + + \usepackage[OPTIONS]{PACKAGES}[VERSION] + +where OPTIONS is a comma-separated list of package options, PACKAGES is +a comma-separated list of packages to load (without the `.sty' suffix), +and VERSION is a package version number given as a date in the format +`YYYY/MM/DD'. If an older version of the package is found, a warning +is issued. If several packages are loaded within a single `\usepackage' +command, the OPTIONS will be applied to each of the packages. As +usual, parameters in square brackets are optional and can be omitted +(together with the square brackets). + + For example: + + \usepackage[foo,bar]{pack1,pack2}[2005/08/29] + +will load packages `pack1' and `pack2', each with the options `foo' and +`bar', and will check that each of the packages are dated 2005/08/29 or +newer. + + +File: eplain.info, Node: Environment for loading packages, Next: Packages known to work, Prev: The \usepackage command, Up: Loading LaTeX packages + +4.23.2 Environment for loading packages +--------------------------------------- + +Some packages request that certain commands are executed after all +packages have been loaded. In LaTeX, this means that the commands are +executed at the beginning of the document, after the so-called +"preamble". Neither plain TeX nor Eplain have any kind of preamble; +therefore, Eplain requires that all packages be loaded inside a +`\beginpackages...\endpackages' block, for example: + + \beginpackages + \usepackage[foo,bar]{pack1} + \usepackage{pack2} + \endpackages + +This requirement enables Eplain to execute the "delayed" commands at +the end of the `\beginpackages...\endpackages' block. + + For the same reason, it is advisable to specify only one such block +per document, just like there is only one preamble in LaTeX. + + +File: eplain.info, Node: Packages known to work, Next: Packages known not to work, Prev: Environment for loading packages, Up: Loading LaTeX packages + +4.23.3 Packages known to work +----------------------------- + +The following table lists packages that had been tested and are known +to work with Eplain, and locations where you can find manuals for these +packages. Some of the short descriptions of the packages were taken +from the documentation for those packages. + +autopict (`2001/06/04 v1.1j Picture mode autoload file') + `http://tug.org/eplain/ltpictur.pdf' + + This is the LaTeX "picture mode", started by `\begin{picture}' and + ended by `\end{picture}' (in LaTeX, this package is not explicitly + loaded since it is part of the LaTeX kernel). It provides + commands to draw simple figures inside your document without + resorting to any external tools. + +color (`1999/02/16 v1.0i Standard LaTeX Color (DPC)') +graphics (`2001/07/07 v1.0n Standard LaTeX Graphics (DPC,SPQR)') +graphicx (`1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)') + `http://www.ctan.org/tex-archive/macros/latex/required/graphics/grfguide.pdf' + + These packages are from the LaTeX graphics collection. They + provide commands for changing text/page colors, text rotation and + scaling, and much more. + +psfrag (`1998/04/11 v3.04 PSfrag (MCG)') + `http://www.ctan.org/tex-archive/macros/latex/contrib/psfrag/pfgguide.pdf' + + PSfrag allows the user to precisely overlay Encapsulated PostScript + (EPS) files with arbitrary (La)TeX constructions. In order to + accomplish this, the user places a simple text "tag" in the + graphics file, as a "position marker" of sorts. Then, using simple + (La)TeX commands, the user instructs PSfrag to remove that tag from + the figure, and replace it with a properly sized, aligned, and + rotated (La)TeX equation. + +url (`2005/06/27 ver 3.2 Verb mode for urls, etc.') + `http://www.ctan.org/tex-archive/macros/latex/contrib/misc/url.sty' + + This package provides a form of `\verbatim' that allows line + breaks at certain characters or combinations of characters, + accepts reconfiguration, and can usually be used in the argument to + another command. It is intended for email addresses, hypertext + links, directories/paths, etc., which normally have no spaces. + + Eplain can create hypertext links with the `\url' command; *note + URL hyperlinks::. + + +File: eplain.info, Node: Packages known not to work, Prev: Packages known to work, Up: Loading LaTeX packages + +4.23.4 Packages known not to work +--------------------------------- + +The following packages are known not to work with Eplain: + +pict2e (`2005/07/15 v0.2r Improved picture commands (HjG,RN)') + `http://www.ctan.org/tex-archive/macros/latex/contrib/pict2e/' + +xcolor (`2005/06/06 v2.03 LaTeX color extensions (UK)') + `http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor/' + + +File: eplain.info, Node: Hyperlinks, Next: Arrow theoretic diagrams, Prev: User definitions, Up: Top + +5 Hyperlinks +************ + +This chapter describes the support which Eplain provides for hypertext +links ("hyperlinks" for short). Hyperlinks can be created implicitly +by the cross-reference, indexing and other macros in Eplain. Macros +for constructing explicit hyperlinks are also provided. + +* Menu: + +* Introduction to hyperlinks:: +* Explicit hyperlinks:: +* Implicit hyperlinks:: +* Hyperlink drivers:: +* Setting hyperlink types and options:: +* Turning hyperlinks on/off:: + + +File: eplain.info, Node: Introduction to hyperlinks, Next: Explicit hyperlinks, Up: Hyperlinks + +5.1 Introduction to hyperlinks +============================== + +The original TeX engine has no built-in support for hyperlinks. Many +of the present-day file formats with hyperlinking capabilities did not +even exist at the time TeX was written. However, TeX's `\special' +primitive can be used to instruct TeX to write special directives into +its `.dvi' output file. These directives are not interpreted by TeX in +any way; they are intended for programs which process the `.dvi' files +produced by TeX, be it printing or converting to other formats, such as `.ps' +or `.pdf'. + + Another approach is to extend the original TeX engine with the +ability to generate one of the hyperlinking formats; TeX's set of +primitives can be extended to include hyperlink commands. This is the +approach used by the pdfTeX engine, which is capable of producing +`.pdf' files directly from the TeX source, skipping the `.dvi' +generation and processing step. + + It turns out that the sets of commands for different formats are +mostly not interchangeable, as each of the file formats has its own +quirks and capabilities. And this is where Eplain "hyperlink drivers" +come into play. + + In order for Eplain to generate proper commands, Eplain has to know +two things: which engine or `.dvi' processor you are using, and the set +of commands it understands. + + The knowledge about the commands that the various processors +understand is programmed into Eplain's hyperlink drivers. Eplain +provides two drivers, `pdftex' and `dvipdfm', named after the programs +which process the hyperlink commands, pdfTeX and dvipdfm. Therefore, +Eplain can only produce hyperlink commands for one of these two +programs--except that the extended `dvipdfmx' program can be used as +well as the original `dvipdfm', since they are compatible. + + To tell Eplain which `.dvi' processor or extended TeX engine you are +using, use the command `\enablehyperlinks'. + + For example: + + \enablehyperlinks + +instructs Eplain to attempt to automatically detect which driver to +use, as follows: if it detects pdfTeX in PDF mode, it loads the +`pdftex' driver. If it does not detect pdfTeX in PDF mode, the +`dvipdfm' driver is loaded. The detection is based on the `\ifpdf' +switch (*note Checking for PDF output::). + + If necessary, you can explicitly specify the driver name: + + \enablehyperlinks[pdftex] + +will start producing hyperlinks under the assumption that you are using +pdfTeX. + + Eplain does not produce any hyperlinks until you explicitly enable +them with `\enablehyperlinks'. For one thing, this keeps Eplain +backward-compatible with previous releases without hyperlink support. +For another, you may be using a program other than pdfTeX or `dvipdfm', +which does not understand their hyperlink commands. + +Concepts and Terminology +------------------------ + +In general, hyperlinks work as follows. You mark some place in your +document as a hyperlink destination, associating a "hyperlink label" +with that destination. Next, somewhere within your document, you +create a hyperlink, using a label to identify the destination you want +this link to point to. A hyperlink is a region in the document (which +can take many forms, for example, text or a picture); when a user +clicks on that region, they will be taken to a place in the document +marked by the corresponding destination. The following two sections +(*Note Explicit hyperlinks::, and *Note Implicit hyperlinks::) describe +the macros you can use to define destinations and create links pointing +to those destinations. + + In the rest of this chapter, we will often need to refer to links and +destinations jointly, in which case we will use the term "hyperlinks". +We will use the terms "links" and "destinations" in cases when we need +to refer specifically to links or destinations. + + Hyperlink drivers provide several kinds of links and destinations. +We will refer to them as "link types" and "destination types". + + For example, one of the destination types that the `pdftex' driver +provides is the `xyz' type; when the user follows a link pointing to an +`xyz' destination, the exact location marked by that destination is +displayed. Another destination type provided by the `pdftex' driver is +the `fit' type; when the user follows a link pointing to a `fit' +destination, the page containing that destination is zoomed to fit into +the window in which the document is displayed. + + Similarly, drivers support various link types. For example, with the +`pdftex' driver, the usual link type used to refer to destinations in +the current document is called `name'. You can also create a link +pointing to another local document (by using the `filename' link type) +or to a URL (by using the `url' link type). + + In addition, each hyperlink driver supports a number of destination +and link "options". By setting these options you can customize +hyperlink parameters (e.g., the thickness of the border drawn around a +hyperlink) or pass information to hyperlinks (for example, file name of +a document, for a link pointing to a destination in another document). + + *Note Hyperlink drivers::, for the description of hyperlink types and +options supported by the drivers. *Note Setting hyperlink types and +options::, for the information on how to set hyperlink options. + + +File: eplain.info, Node: Explicit hyperlinks, Next: Implicit hyperlinks, Prev: Introduction to hyperlinks, Up: Hyperlinks + +5.2 Explicit hyperlinks +======================= + +Explicit hyperlinks are created by you, in the source of your document. +The simplest command is `\hldest', which marks the current position in +your document as a destination: + + \hldest{TYPE}{OPTIONS}{LABEL} + +Here TYPE is one of the destination types supported by the hyperlink +driver (*note Hyperlink drivers::), OPTIONS is a comma-separated list +of option assignments, and LABEL is the hyperlink label to associate +with this destination. This label will identify the destination when +creating links pointing to this destination. For example, with the +`pdftex' driver, the command + + \hldest{xyz}{zoom=2000}{index} + +creates a destination of type `xyz' ("the current position"), sets the +magnification ratio for this destination to be 200%, and associates the +label `index' with the destination. + + Another command, `\hlstart', paired with `\hlend', turns all +intervening material into a link: + + \hlstart{TYPE}{OPTIONS}{LABEL} ... \hlend + +Here TYPE, OPTIONS and LABEL have the same meaning as for `\hldest'. +Continuing the previous example, + + \hlstart{name}{bstyle=U,bwidth=2}{index} Index\hlend + +typesets the word `Index' as a link with underline border of +width 2 PostScript points, pointing to the named destination `index' +defined in the previous example. (The other options, like highlight +mode and border color, are determined by the defaults, *note Setting +default types and options::). + + Both `\hldest' and `\hlstart' ignore following spaces. + + Both `\hldest' and `\hlstart' expand the first token of OPTIONS +once, so you can save a list of options in a macro and pass it for the +OPTIONS. For example: + + \def\linkopts{bstyle=U,bwidth=2} + \hlstart{name}{\linkopts}{index}Index\hlend + +is functionally equivalent to the previous example. + + +File: eplain.info, Node: Implicit hyperlinks, Next: Hyperlink drivers, Prev: Explicit hyperlinks, Up: Hyperlinks + +5.3 Implicit hyperlinks +======================= + +"Implicit hyperlinks" are hyperlinks created implicitly by various +Eplain macros, such as the macros for citations, cross-references, +indexing, etc. + + All such macros are divided into "link groups" and "destination +groups" (or "linkgroups" and "destgroups" for short) so that parameters +can be set individually for each group. For example, all equation +macros which define a destination are assigned to the `eq' destgroup; +equation macros which create a link are assigned to the `eq' linkgroup. +By setting parameters for the `eq' linkgroup (destgroup), you can +uniformly customize all links (destinations) related to equation +references, without interfering with settings for the other groups. + + *Note Setting hyperlink types and options::, for information on how +to set parameters for a group. + + Here is the list of the linkgroups: + + cite, ref, xref, eq, idx, foot, footback, url. + + And here are the destgroups: + + bib, li, definexref, xrdef, eq, idx, foot, footback. + + The following subsections describe each of the linkgroups and +destgroups and the hyperlink support provided. + +* Menu: + +* URL hyperlinks:: url +* Citation hyperlinks:: cite, bib +* List hyperlinks:: li +* Cross-reference hyperlinks:: definexref, ref +* Page reference hyperlinks:: xrdef, xref +* Equation reference hyperlinks:: eq +* Index hyperlinks:: idx +* Footnote hyperlinks:: foot, footback +* Contents hyperlinks:: + + +File: eplain.info, Node: URL hyperlinks, Next: Citation hyperlinks, Up: Implicit hyperlinks + +5.3.1 URL hyperlinks: url +-------------------------- + +The `url' linkgroup covers the `\url' command from the LaTeX package `url' +(*note Packages known to work::), as well as any new `\url'-like +commands you define. The type for this linkgroup is set to `url' by +the drivers which support this link type. `url' links use the +parameter to the `\url' command as the URL to point to. + + You may be using the `\url' command to typeset something other than +a URL, e.g., a path, for which you do not want a link to be created; in +that case, you can disable the `url' linkgroup with the command +`\hloff[url]' (*note Turning hyperlinks on/off for a group::). + + +File: eplain.info, Node: Citation hyperlinks, Next: List hyperlinks, Prev: URL hyperlinks, Up: Implicit hyperlinks + +5.3.2 Citation hyperlinks: cite, bib +------------------------------------- + +The `cite' linkgroup includes only the `\cite' command (*note +Citations::). `\cite' turns each of the references in the list into a +link pointing to the respective bibliography entry produced by the +`\bibliography' command. + + The `bib' destgroup includes the macros related to the +`\bibliography' command (*note Citations::). `\bibliography' inputs a +`.bbl' file, which contains a list of bibliography entries. For each +of the entries, a destination is defined. + + Both commands use the citation label as the hyperlink label. + + +File: eplain.info, Node: List hyperlinks, Next: Cross-reference hyperlinks, Prev: Citation hyperlinks, Up: Implicit hyperlinks + +5.3.3 List hyperlinks: li +-------------------------- + +The `li' destgroup consists of the `\li' command (*note Lists::), which +defines a destination if you supply the optional argument +(cross-reference label). This label is also used as the hyperlink +label. + + +File: eplain.info, Node: Cross-reference hyperlinks, Next: Page reference hyperlinks, Prev: List hyperlinks, Up: Implicit hyperlinks + +5.3.4 Cross-reference hyperlinks: definexref, ref +-------------------------------------------------- + +The `definexref' destgroup is for the `\definexref' command (*note +Defining generic references::). `\definexref' defines a destination +using the cross-reference label (the first argument) as the hyperlink +label. + + The `ref' linkgroup includes `\refn' and `\xrefn' (they are +synonyms), `\ref', and `\refs' (*note Using generic references::). + + `\refn' turns the cross-reference it produces into a link, using the +cross-reference label as the hyperlink label. If an optional argument +is present, it is tied by `\reftie' to the reference and become part of +the link. + + `\ref' works similarly to `\refn'. It takes an optional argument, +which is treated the same way as the optional argument to `\refn'. In +addition, `\ref' can produce a "class word". Both the optional +argument and the class word become part of the link, when present. The +cross-reference is tied by `\reftie' to the preceding word. The +optional argument is separated from the class word by `\refspace'. + + Unlike `\ref', `\refs' does not take an optional argument and does +not make the class word part of the link, which is appropriate for its +intended use. + + +File: eplain.info, Node: Page reference hyperlinks, Next: Equation reference hyperlinks, Prev: Cross-reference hyperlinks, Up: Implicit hyperlinks + +5.3.5 Page reference hyperlinks: xrdef, xref +--------------------------------------------- + +The `xrdef' destgroup is for `\xrdef' (*note Page references::). +`\xrdef' defines a destination using cross-reference label as the +hyperlink label. + + The `xref' linkgroup includes the `\xref' command (*note Page +references::). `\xref' turns its optional argument (followed by +`\refspace'), `\xrefpageword' and the cross-reference (page number) +into a link, using the cross-reference label as the hyperlink label. + + +File: eplain.info, Node: Equation reference hyperlinks, Next: Index hyperlinks, Prev: Page reference hyperlinks, Up: Implicit hyperlinks + +5.3.6 Equation reference hyperlinks: eq +---------------------------------------- + +All commands that define equation labels are part of the `eq' destgroup. +These are `\eqdef', `\eqdefn', `\eqsubdef' and `\eqsubdefn' (*note +Equation references::). All these commands use the equation label as +the hyperlink label. However, if the equation label is empty, they +make up a (hopefully) unique hyperlink label for the destination. This +label will be used for the link when you refer to this empty-labeled +equation with one of the equation reference macros. + + The command `\phantomeqlabel' is called to generate hyperlink labels +for the empty-labeled equations. By default, it produces the labels in +the format `PHEQNUMBER', where NUMBER comes from the count register +`\phantomeqnumber'; this count register is incremented at every +empty-labeled equation definition. + + The commands `\eqref' and `\eqrefn' (*note Equation references::) +form the `eq' linkgroup. These commands take an optional argument, +which, when present, is tied with `\reftie' to the equation reference +and becomes part of the link. The equation label is used for the +hyperlink label; if the label is empty, the link is for the label +generated for the last empty-labeled equation. + + +File: eplain.info, Node: Index hyperlinks, Next: Footnote hyperlinks, Prev: Equation reference hyperlinks, Up: Implicit hyperlinks + +5.3.7 Index hyperlinks: idx +---------------------------- + +All indexing commands (`\idx', `\idxname', `\idxmarked', +`\idxsubmarked' and their silent equivalents, *note Indexing +commands::) form the `idx' destgroup. The `idx' linkgroup consists of +the macros which are used to typeset the index when you say `\readindexfile{INDEX-LETTER}' +(*note Typesetting an index::). + + To create the links in index entries, Eplain uses MakeIndex's +"encapsulation" feature. When you use an indexing macro to mark an +index term, Eplain writes out a line to the `.idx' file of the +following general form: + + \indexentry{ENTRY|PAGEMARKUP}{PAGENO} + +where ENTRY is the index entry (converted into the internal format that +MakeIndex understands), CS is the markup command you specified with the +`pagemarkup=CS' optional argument to the indexing commands (*note +Modifying index entries::), and PAGENO is the page number on which the +term appeared. When processing the `.idx' file, MakeIndex makes the +page number an argument to the page markup command ("encapsulates" the +page number), so the page number in the `.ind' file appears as +`\CS{PAGENO}'. Eplain internally replaces the CS command name with its +own command, which, in addition to calling the original `\CS' +encapsulator, turns the page number into a link. + + Eplain provides two approaches to linking page numbers in the index +to locations of index terms in the text. + +* Menu: + +* Exact destinations for index terms:: +* Page destinations for index terms:: +* Choosing destination placement:: +* Index page list and page range parsers:: +* Hyperlinks in see and see also entries:: + + +File: eplain.info, Node: Exact destinations for index terms, Next: Page destinations for index terms, Up: Index hyperlinks + +5.3.7.1 Exact destinations for index terms +.......................................... + +In this approach, each command that marks an index term defines a unique +destination and passes its label on to the `.idx' file as part of the +`\indexentry' command. The `\indexentry' line that Eplain writes to +the `.idx' file becomes + + \indexentry{ENTRY|hlidx{LABEL}{CS}}{PAGENO} + +where `\hlidx' is the command that is defined by Eplain to take three +arguments: a hyperlink label (LABEL), a name of page number +encapsulator (CS) and a page number (PAGENO). In the `.ind' file that +MakeIndex will generate, the page number will now appear as + + \hlidx{LABEL}{CS}{PAGENO} + +The result of this command is `\CS{PAGENO}', wrapped up into a link +pointing to LABEL destination. + + The hyperlink labels for the index terms are generated by the `\hlidxlabel' +command, by default in the format `IDXNUMBER', where NUMBER is the +value of the count register `\hlidxlabelnumber'. This count register +is incremented at each index term. + + The advantage of this approach, as compared to the second approach +described below, is that links in the index point to exact locations of +the indexed terms on the page. The disadvantage of this approach is +that MakeIndex will regard _all_ index entries as distinct, because +each one contains a (unique) hyperlink label. This disadvantage can be +partially overcome by the script `idxuniq' distributed with Eplain in +the `util' directory. This script filters out `\indexentry' lines +differing only in the hyperlink label but identical otherwise. You +should process the `.idx' with this script before passing it on to +MakeIndex. For example: + + prompt$ ./idxuniq file.idx | makeindex > file.ind + +Still, this solution is not ideal, as the page-range formation ability +of MakeIndex will not work, and there will be problems of apparently +identical index entries clashing (e.g., when a range-end entry appears +on the same page as another entry with the same definition; `idxuniq' +will not filter out the second entry). + + +File: eplain.info, Node: Page destinations for index terms, Next: Choosing destination placement, Prev: Exact destinations for index terms, Up: Index hyperlinks + +5.3.7.2 Page destinations for index terms +......................................... + +In the second approach, Eplain does not write out any destination labels +for the index terms. Instead, Eplain writes out a wrapper for page +number encapsulator which can parse the page number and generate a link +pointing to the _page_ on which the term appeared. On top of each page +containing an index term, Eplain defines a destination with label +produced by `\hlidxpagelabel'. The `\hlidxpagelabel' command takes a +single argument (page number NUMBER) and by default produces the label +in the format `IDXPGNUMBER'. + + With this approach, the `\indexentry' line which Eplain writes to +the `.idx' file looks like this: + + \indexentry{ENTRY|hlidxpage{CS}}{PAGENO} + +where `\hlidxpage' is the command that is defined by Eplain to take two +arguments: a name of page number encapsulator (CS) and a page number +(PAGENO). In the `.ind' file that MakeIndex will generate, the page +number will appear as + + \hlidxpage{CS}{PAGENO} + + The advantage of this approach is that all features of MakeIndex are +intact. The drawback is that links in the index do not point to exact +locations of indexed terms on a page, but to the top of a page on which +the term appears. + + Another disadvantage is that this approach depends on the page range +and page list separators which MakeIndex was configured to output. +`\hlidxpage' must be able to parse the first page number in a page +range like `1--4'. In addition, page list parsing is needed because +MakeIndex combines two consecutive page numbers in one call to the page +number encapsulator, so `\hlidxpage' can be passed, e.g., `1, 2' for +the PAGENO. In this last case, `\hlidxpage' splits the two page +numbers, applies `\CS' to each of them, and makes each of the page +numbers a link to the appropriate page. Note that this will alter +typesetting slightly, because now the page list separator (a comma +followed by a space, by default) is not typeset using the page number +encapsulator (`\CS'). + + Eplain's defaults for the page list and page number delimiters are +the same as those in MakeIndex, a comma followed by a space (`, ') and +two dashes (`--'), respectively. If you customize MakeIndex to use +different delimiters, you must not forget to let Eplain know about them +with the commands + + \setidxpagelistdelimiter{LIST-DELIM} + \setidxpagerangedelimiter{PAGE-DELIM} + +(*note Page list and page range parsers::). + + +File: eplain.info, Node: Choosing destination placement, Next: Index page list and page range parsers, Prev: Page destinations for index terms, Up: Index hyperlinks + +5.3.7.3 Choosing destination placement +...................................... + +The approach that Eplain should use for the index terms can be selected +in the `\enablehyperlinks' command. The optional argument it accepts is +a comma-separated list of options. The `idxexact' option selects the +first approach, `idxpage' the second, and `idxnone' disables hyperlink +support for the index terms altogether, in case you want to stop Eplain +from writing its link wrappers into the `.idx' file. The default is +`idxpage'. + + For example: + + \enablehyperlinks[idxexact] + +selects the first approach ("exact index links"). + + +File: eplain.info, Node: Index page list and page range parsers, Next: Hyperlinks in see and see also entries, Prev: Choosing destination placement, Up: Index hyperlinks + +5.3.7.4 Index page list and page range parsers +.............................................. + +The macros that Eplain uses to parse page lists and page ranges, +`\idxparselist' and `\idxparserange', can sometimes be useful when +defining page number encapsulators. *Note Page list and page range +parsers::, for the description of these commands and an example of their +usage. + + +File: eplain.info, Node: Hyperlinks in see and see also entries, Prev: Index page list and page range parsers, Up: Index hyperlinks + +5.3.7.5 Hyperlinks in see and see also entries +.............................................. + +There is no automatic support for hyperlinks with "see" and "see also" +index entries, as there is not enough information to trace the +parameters of `\indexsee' and `\indexseealso' to corresponding index +entries. But if desired, this can be implemented with `\hldest' and +`\hlstart' (*note Explicit hyperlinks::); for example: + + \sidx{semantic theory of truth@% + \leavevmode\hldest{}{}{idx:theo truth}semantic theory of truth} + ... + \sidx[seealso]{truth}[definition of]% + {\hlstart{}{}{idx:theo truth}semantic theory of truth\hlend} + + +File: eplain.info, Node: Footnote hyperlinks, Next: Contents hyperlinks, Prev: Index hyperlinks, Up: Implicit hyperlinks + +5.3.8 Footnote hyperlinks: foot, footback +------------------------------------------ + +The `foot' link and destination groups include the `\numberedfootnote' +and `\footnote' macros (*note Footnotes::). The `footback' groups +include the same macros, but control parameters for links and +destinations created inside the footnote to point back to the footnote +mark within the text body. + + The macros use hyperlink labels generated by `\hlfootlabel' and `\hlfootbacklabel'. +The default formats for the labels are `FOOTNUMBER' and `FOOTBNUMBER', +respectively, where NUMBER is the value of the count register `\hlfootlabelnumber'. +This register is incremented at every footnote. + + +File: eplain.info, Node: Contents hyperlinks, Prev: Footnote hyperlinks, Up: Implicit hyperlinks + +5.3.9 Contents hyperlinks +------------------------- + +There is currently no special support for hyperlinks in the table of +contents (*note Contents::), but implementing them with the `\hldest' +and `\hlstart ... \hlend' commands (*note Explicit hyperlinks::) should +be possible. + + +File: eplain.info, Node: Hyperlink drivers, Next: Setting hyperlink types and options, Prev: Implicit hyperlinks, Up: Hyperlinks + +5.4 Hyperlink drivers +===================== + +This section describes the hyperlink drivers: the types of hyperlinks +they support, and the options they accept. During the first reading, +you may only want to skim through this section. + + Some of the descriptions below come from `Portable Document Format +Reference Manual Version 1.3', March 11, 1999. + +* Menu: + +* Options supported by all drivers:: +* Hyperlink drivers pdftex and dvipdfm:: +* Hyperlink driver nolinks:: + + +File: eplain.info, Node: Options supported by all drivers, Next: Hyperlink drivers pdftex and dvipdfm, Up: Hyperlink drivers + +5.4.1 Options supported by all drivers +-------------------------------------- + +This subsection describes the destination and link options which are +supported by all hyperlink drivers. + +Destination options supported by all drivers +............................................ + +`raise' + Specifies how much to raise destinations above the baseline. When + set to zero or empty, destinations are placed at the baseline. + + It is usually convenient to set this option to some variable + parameter, so that the height to which destinations are raised is + automatically adjusted according to the current context. For + example, setting it to `\normalbaselineskip' (or some fraction of + it, like `1.7\normalbaselineskip') makes the setting appropriate + for different point sizes, in case your document uses more than + one. + + The default setting is `\normalbaselineskip'. Initially, the + destgroups do not define this option, so they fall back on the + default, except for the `eq' destgroup, for which this option is + set to `1.7\normalbaselineskip', to accommodate the usual cases of + large operators in displayed math. + + Example: `\hldestopts[eq]{raise=2.5\normalbaselineskip}' + +Link options supported by all drivers +..................................... + +`colormodel' +`color' + These two options define the color to be used for rendering the + link text. The colors are used only when a `\color' command is + defined, e.g., by loading the LaTeX `color' package (*note + Packages known to work::). The `\color' command is called as + `\color[COLORMODEL]{COLOR}', where COLORMODEL and COLOR are the + definitions of the `colormodel' and `color' options, respectively. + However, if COLORMODEL is empty, the optional argument to + `\color' is omitted; and if COLOR is empty, the `\color' command + is omitted altogether. The default setting is `COLORMODEL=cmyk' + and `COLOR=0.28,1,1,0.35'. + + When specifying colors with several components delimited by commas + (e.g., RGB and CMYK colors in the LaTeX `color' package), it is not + possible to specify the components directly in the option list of + `\hlopts', because comma is the option list delimiter. With the + `color' package, it is possible to specify such colors by defining + a custom color with `\definecolor' and using the new color name + with an empty COLORMODEL (see examples below). + + Examples: + \hlopts{colormodel=,color=blue}% predefined color + \definecolor{mycolor}{rgb}{.3,.8,.95} + \hlopts{colormodel=,color=mycolor}% custom color + \hlopts{colormodel=gray,color=.4} + + +File: eplain.info, Node: Hyperlink drivers pdftex and dvipdfm, Next: Hyperlink driver nolinks, Prev: Options supported by all drivers, Up: Hyperlink drivers + +5.4.2 Hyperlink drivers `pdftex' and `dvipdfm' +---------------------------------------------- + +This subsection describes link and destination types and options +supported by the `pdftex' and `dvipdfm' drivers. Many of the hyperlink +types and options are common to both drivers, so we describe them +together. + +* Menu: + +* Destination types for pdftex and dvipdfm:: +* Destination options for pdftex and dvipdfm:: +* Link types for pdftex and dvipdfm:: +* Link options for pdftex and dvipdfm:: + + +File: eplain.info, Node: Destination types for pdftex and dvipdfm, Next: Destination options for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm + +5.4.2.1 Destination types for `pdftex' and `dvipdfm' +.................................................... + +`xyz' + "Current position". The option `zoom' specifies magnification to + use (zero or empty means leave magnification unchanged, which is + the default). This is the default type. + + For `dvipdfm': the options `left' and `top' specify position + coordinates to use (empty options mean current position + coordinate, which is the default). + + Example: `\hldest{xyz}{zoom=2000}{dest123}' + +`fit' + Fit the page to the window. + + Example: `\hldest{fit}{}{dest123}' + +`fith' + Fit the width of the page to the window. + + For `dvipdfm': the `top' option specifies vertical position + (default is empty, meaning current position). + + Example: `\hldest{fith}{}{dest123}' + +`fitv' + Fit the height of the page to the window. + + For `dvipdfm': The option `left' specifies horizontal position + (default is empty, meaning current position). + + Example: `\hldest{fitv}{}{dest123}' + +`fitb' + Fit the page's bounding box to the window. + + Example: `\hldest{fitb}{}{dest123}' + +`fitbh' + Fit the width of the page's bounding box to the window. + + For `dvipdfm': the option `top' specifies vertical position + (default is empty, meaning current position). + + Example: `\hldest{fitbh}{}{dest123}' + +`fitbv' + Fit the height of the page's bounding box to the window. + + For `dvipdfm': the option `left' specifies horizontal position + (default is empty, meaning current position). + + Example: `\hldest{fitbv}{}{dest123}' + +`fitr' + For `pdftex': fit the rectangle specified by the options `width', `height' + and `depth' (as a TeX rule specification) in the window. For + dimensions set to empty, the corresponding value of the parent box + is used (these are the defaults). + + For `dvipdfm': fit the rectangle specified by the options `left', `bottom', `right' + and `top' (in PostScript points, 72 points per inch) in the + window. For dimensions set to empty, current position coordinate + is substituted (these are the defaults). + + Example for `pdftex': + + \hldest{fitr}{width=\hsize,height=.5\vsize,depth=0pt}{dest123} + + Example for `dvipdfm': + + \hldest{fitr}{left=72,bottom=72,right=720,top=360}{dest123} + +`raw' + The destination specification (in the form of a pdfTeX command or a + dvipdfm `\special') is taken from the command sequence `\CS', + where CS is the value of the `cmd' option. In the definition of + `\CS', use `\@hllabel' to refer to the hyperlink label. This + option is intended to be used with destgroups (*note Setting + hyperlink types and options::), as it does not make sense to use + it in a direct call to `\hldest'--you can just call the raw + command. + + Example for `pdftex': + + \makeatletter + \def\mydest{\pdfdest name{\@hllabel} xyz} + \hldesttype{raw} + \hldestopts{cmd=mydest} + \resetatcatcode + + Example for `dvipdfm': + + \makeatletter + \def\mydest{\special{pdf: dest (\@hllabel) + [@thispage /XYZ @xpos @ypos 0]}} + \hldesttype{raw} + \hldestopts{cmd=mydest} + \resetatcatcode + + +File: eplain.info, Node: Destination options for pdftex and dvipdfm, Next: Link types for pdftex and dvipdfm, Prev: Destination types for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm + +5.4.2.2 Destination options for `pdftex' and `dvipdfm' +...................................................... + +With respect to the destination options, the `pdftex' and `dvipdfm' +differ in the way the fit rectangle is specified (relative coordinates +for `pdftex', absolute coordinates for `dvipdfm'). + +Common destination options +.......................... + +`cmd' + Name of the macro (without the leading `\') containing a pdfTeX + command or a dvipdfm `\special' for the `raw' destination. + + For an example of usage, *note Destination types for pdftex and + dvipdfm::, description of the `raw' destination. + +`zoom' + Magnification ratio times 1000 (like TeX's scale factor). Zero or + empty means leave magnification unchanged, which is the default. + + Example: `\hldest{xyz}{zoom=2000}{dest123}' + +`pdftex'-specific destination options +..................................... + +The dimension options below must be specified as a TeX rule +specification. When set to empty, the corresponding value of the +parent box is used (this is the default for all dimension options). + +`depth' + Depth of the fit rectangle for the `fitr' destination. + +`height' + Height of the fit rectangle for the `fitr' destination. + +`width' + Width of the fit rectangle for the `fitr' destination. + + Example: + + \hldest{fitr}{width=\hsize,height=.5\vsize,depth=0pt}{dest123} + +`dvipdfm'-specific destination options +...................................... + +The dimension options below must be specified in PostScript points +(72 points per inch), as a number without the `bp' unit name. When set +to empty, the current position coordinate is used (this is the default +for all dimension options). + +`bottom' + Bottom position coordinate of a box specification for the various + destination types. + +`left' + Left position coordinate of a box specification for the various + destination types. + +`right' + Right position coordinate of a box specification for the various + destination types. + +`top' + Top position coordinate of a box specification for the various + destination types. + + Example: + + \hldest{fitr}{left=72,bottom=72,right=720,top=360}{dest123} + + +File: eplain.info, Node: Link types for pdftex and dvipdfm, Next: Link options for pdftex and dvipdfm, Prev: Destination options for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm + +5.4.2.3 Link types for `pdftex' and `dvipdfm' +............................................. + +Link types are the same for the `pdftex' and `dvipdfm' drivers, except +that the `pdftex' driver provides one additional link type `num' (link +to a numbered destination). dvipdfm does not support numbered +destinations, therefore it does not have this link type. Note that all +destinations created by Eplain hyperlink macros are named destinations; +to define a numbered destination, you have to use low-level pdfTeX +commands. + +Common link types +................. + +`name' + Go to a "named destination". The label is the destination name. + All destinations created with `\hldest' are named destinations. + This is the default type. + + Example: `\hlstart{name}{}{dest123}Link to dest123\hlend' + +`page' + Go to a page. The label is the page number (counting from 1). + Page fitting is specified by the `pagefit' option. + + Example: + + \hlstart{page}{pagefit=/FitH 600}{123}Link to page~123\hlend + +`filename' + Go to a named destination in another file. The label is the + destination name. The file name is specified by the `file' + option. Page fitting is specified by the `pagefit' option. The `newwin' + option specifies whether the destination document is opened in the + same window or in a new window. + + Example: + \hlstart{filename}{file=book.pdf,newwin=1}{dest123} + Link to dest123 in file `book.pdf'\hlend + +`filepage' + Go to a page in another file. The label is the page number + (counting from 1). The file name is specified by the `file' + option. Page fitting is specified by the `pagefit' option. The `newwin' + option specifies whether the destination document is opened in the + same window or in a new window. + + Example: + \hlstart{filepage}{file=book.pdf,newwin=,% + pagefit=/FitR 50 100 300 500}{1} + Link to page~1 in file `book.pdf'\hlend + +`url' + Go to a URL. The label is the URL. + + Example: `\hlstart{url}{}{http://tug.org/eplain/}Eplain + home\hlend' + +`raw' + The link specification (in the form of a pdfTeX command or a + dvipdfm `\special' primitive) is taken from the command sequence + `\CS', where CS is the value of the `cmd' option. This option is + intended to be used with linkgroups (*note Setting hyperlink types + and options::), as it does not make sense to use it in a direct + call to `\hlstart'--you can just call the raw command. + + Example for `pdftex': + + % Redirect all \url links to the first page + \def\mycmd{\pdfstartlink goto page 1 {/Fit}} + \hltype[url]{raw} + \hlopts[url]{cmd=mycmd} + + Example for `dvipdfm': + + % Redirect all \url links to the first page + \def\mycmd{\special{pdf: beginann <</Type/Annot /Subtype/Link + /Dest[0 /Fit]>>}} + \hltype[url]{raw} + \hlopts[url]{cmd=mycmd} + +`pdftex'-specific link types +............................ + +`num' + Go to a "numbered destination". The label is the destination + number. + + Example: `\hlstart{num}{}{123}Link to 123\hlend' + + +File: eplain.info, Node: Link options for pdftex and dvipdfm, Prev: Link types for pdftex and dvipdfm, Up: Hyperlink drivers pdftex and dvipdfm + +5.4.2.4 Link options for `pdftex' and `dvipdfm' +............................................... + +Link options are mostly the same for the `pdftex' and `dvipdfm' +drivers. The `pdftex' driver has additional options to specify link +dimensions. + +Common link options +................... + +`bcolor' + Border color. An array of three numbers in the range 0 to 1, + representing a color in DeviceRGB. + + Example: `\hlstart{name}{bcolor=.1 .5 1}{dest123}Link\hlend' + +`bdash' + Array of numbers representing on and off stroke lengths for drawing + dashes. + + Example: `\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend' + +`bstyle' + Link border style: + + `S' + The border is drawn as a solid line. + + `D' + The border is drawn with a dashed line (the dash pattern is + specified by the `bdash' option). + + `B' + The border is drawn in a beveled style. + + `I' + The border is drawn in an inset style. + + `U' + The border is drawn as a line on the bottom of the link + rectangle. + + The default is `S'. + + Example: `\hlstart{name}{bstyle=D,bdash=2 4}{dest123}Link\hlend' + +`bwidth' + Border width in PostScript points (72 points per inch). The + default is 1. + + Example: `\hlstart{name}{bwidth=2}{dest123}Link\hlend' + +`cmd' + Name of the macro (without the leading `\') containing a pdfTeX + command or a dvipdfm `\special' for the `raw' link. + + For an example of usage, *note Link types for pdftex and dvipdfm::, + description of the `raw' link. + +`file' + File name for the `filename' and `filepage' link types. + + For an example of usage, *note Link types for pdftex and dvipdfm::, + description of the `filename' and `filepage' links. + +`hlight' + Link border highlight modes: + + `I' + The rectangle specified by the bounding box of the link is + inverted. + + `N' + No highlighting is done. + + `O' + The border of the link is inverted. + + `P' + The region underneath the bounding box of the link is drawn + inset into the page. + + The default is `I'. + + Example: `\hlstart{name}{bstyle=S,hlight=O}{dest123}Link\hlend' + +`newwin' + For the `filename' and `filepage' links, specifies whether the + destination document is opened in the same window or in a new + window. The settings are: + + `0' + Open in the same window. + + `non-0' + Open in a new window. + + `empty' + Behavior according to the viewer settings. + + The default is empty. + + For an example of usage, *note Link types for pdftex and dvipdfm::, + description of the `filename' and `filepage' links. + +`pagefit' + For the `page' and `filepage links', specifies how the page must + be fitted to the window. `pagefit' specification is written to + the PDF file as is, so it must conform to the PDF standard. + + For an example of usage, *note Link types for pdftex and dvipdfm::, + description of the `page' and `filepage' links. + +`pdftex'-specific link options +.............................. + +The dimension options below must be specified as a TeX rule +specification. When set to empty, the corresponding value of the +parent box is used (this is the default for all dimension options). + +`depth' + Depth of the link. + +`height' + Height of the link. + +`width' + Width of the link. + + Example: + + \hlstart{name}{width=5in,height=20pc,depth=0pt}{dest123} + Link\hlend + + +File: eplain.info, Node: Hyperlink driver nolinks, Prev: Hyperlink drivers pdftex and dvipdfm, Up: Hyperlink drivers + +5.4.3 Hyperlink driver `nolinks' +-------------------------------- + +Select this driver to suppress all hyperlinks in your document. + + Selecting this driver is quite different from not selecting any +driver at all, or from selecting some driver and then turning +hyperlinks off for the entire document with `\hloff' and `\hldestoff' +(*note Turning hyperlinks on/off::). + + The purpose of `\hldestoff' and `\hloff' is to mark (parts) of your +document where hyperlinks should never appear. (Imagine you want to +prevent a cross-referencing macro from generating a link at a certain +spot in your document.) + + If instead you have prepared a document with hyperlinks and just +want to compile a version without them, it is better to select the +driver `nolinks'. This ensures that spacing and page-breaking are the +same as what you were getting with hyperlinks enabled. + + The reason for this is that hyperlinks are produced by the +`\special' primitives or low-level hyperlink commands. Each such +command is placed inside a "whatsit" (an internal TeX object), which +may introduce legitimate breakpoints at places where none would exist +without the whatsits. The macros `\hldestoff' and `\hloff' disable the +hyperlink macros completely, so that no whatsits are produced. + + In contrast, the `nolinks' driver does not completely disable +hyperlink macros. Instead, it defines them to merely write to the log +file (what gets written is unimportant). This also produces whatsits, +thus imitating the whatsits from the hyperlink commands. (This trick +was borrowed from the LaTeX `color' package.) + + Another reason for using `nolinks' is that in horizontal mode +`\hldest' places destinations inside boxes of zero width, height, and +depth. When you say `\hldestoff', `\hldest' will omit both destination +definitions and these boxes. The missing boxes can again cause the +typesetting to be inconsistent with that with destinations enabled. +Here again, the `nolinks' driver helps by defining `\hldest' to produce +the empty boxes. + + +File: eplain.info, Node: Setting hyperlink types and options, Next: Turning hyperlinks on/off, Prev: Hyperlink drivers, Up: Hyperlinks + +5.5 Setting hyperlink types and options +======================================= + +You can define default types for links and destinations, which will be +used when you do not specify a type in `\hlstart' or `\hldest'. +Similarly, you can define default values for the options; the default +value for an option is used when you do not set the option in the +argument to `\hlstart' or `\hldest'. + + The parameters for implicit links and destinations can be customized +by setting the "group" types and options. When not set, the defaults +are used. + + All these settings are local to the current (TeX) group, so if you +want to set an option temporarily, you can do so inside a +`\begingroup...\endgroup' block; when the group ends, the previous +settings are restored. + +* Menu: + +* Setting default types and options:: +* Setting group types:: +* Setting group options:: + + +File: eplain.info, Node: Setting default types and options, Next: Setting group types, Up: Setting hyperlink types and options + +5.5.1 Setting default types and options +--------------------------------------- + +The default types for links and destinations can be set with the +following commands: + + \hltype{TYPE} + \hldesttype{TYPE} + +where TYPE is one of the link/destination types supported by the +selected hyperlink driver (*note Hyperlink drivers::). + + Default values for the options can be set with the following +commands: + + \hlopts{OPTIONS} + \hldestopts{OPTIONS} + +where OPTIONS is a comma-separated list of option assignments in the +format `OPTION=VALUE'. Again, what options are allowed depends on the +selected hyperlink driver. + + +File: eplain.info, Node: Setting group types, Next: Setting group options, Prev: Setting default types and options, Up: Setting hyperlink types and options + +5.5.2 Setting group types +------------------------- + +When called with an optional argument, as in + + \hltype[GROUPS]{TYPE} + \hldesttype[GROUPS]{TYPE} + +where GROUPS is a comma-separated list of groups, `\hltype' and +`\hldesttype' set the type for each group from GROUPS to TYPE. The +default type is used for all groups with an empty type (this is the +initial setting for all groups, except that the type for the `url' +linkgroup is set to `url' by the drivers which support this link type). + + There are two special "groups" which can be used inside the GROUPS +list. An empty group sets the default type. This allows to set the +default type and group types in one command, for example: + + \hltype[eq,]{TYPE} + +sets the link type for the `eq' linkgroup and the default link type to +TYPE. + + Another special group is a star (`*') group, which signifies all +defined groups. For example, the command + + \hldesttype[*,]{TYPE} + +sets the destination type to TYPE for each group, as well as the +default destination type. + + +File: eplain.info, Node: Setting group options, Prev: Setting group types, Up: Setting hyperlink types and options + +5.5.3 Setting group options +--------------------------- + +Option values for each group are stored as a list of option +assignments. This list does not have to contain every supported +option. Values for options missing from this list are taken from the +default option values. + + To manipulate the list of option values for the groups, you use the +`\hlopts' and `\hldestopts' commands with an optional argument: + + \hlopts[GROUPS]{OPTIONS} + \hldestopts[GROUPS]{OPTIONS} + \hlopts![GROUPS]{OPTIONS} + \hldestopts![GROUPS]{OPTIONS} + +where GROUPS is a comma-separated list of groups and OPTIONS is a +comma-separated list of option assignments. The two special "groups", +the empty group and the star (`*') group, have the same meaning as for +`\hltype' and `\hldesttype'. When used without the exclamation mark, +`\hlopts' and `\hldestopts' preserve the current list of options for +the groups, and only update the options listed in OPTIONS. If you add +the exclamation mark, the current list of options for each group in +GROUPS is discarded and the new list is set to OPTIONS. + + The "overriding" nature of the `!' is appropriate when you give a +complete specification of the options for a group, e.g., at the +beginning of your document. On the other hand, when you want to adjust +some option(s) and leave others intact, you should use the macros +without the `!'. + + For example, with displayed mathematical formulas, you often need to +adjust the `raise' option for the `eq' destgroup, because the formulas +often contain large parentheses and brackets. But when doing so, you +want to leave the other settings unchanged. To achieve this, call +`\hldestopts' without the `!', for example: + + $$\hldestopts[eq]{raise=2.5\normalbaselineskip} + ... + $$ + +The display commands (`$$') implicitly put the entire formula inside a +(TeX) group (`\begingroup...\endgroup'), so you do not need to isolate +the setting of the `raise' option--it will be restored after the +closing `$$'. + + Initially, Eplain sets the option lists for almost all groups to +empty, so that the groups fall back on the default values for all +options. The one exception to this rule is the `eq' destgroup, whose +initial option list contains one setting: + + raise=1.7\normalbaselineskip + +This setting usually accommodates the large operators, which often +appear in displayed math. + + +File: eplain.info, Node: Turning hyperlinks on/off, Prev: Setting hyperlink types and options, Up: Hyperlinks + +5.6 Turning hyperlinks on/off +============================= + +Links and/or destinations can be turned on or off globally by disabling +the low-level commands, or for each group individually. + + All these settings are local to the current (TeX) group, so if you +want to enable or disable links/destinations temporarily, you can do so +inside a `\begingroup...\endgroup' block; when the group ends, the +previous settings are restored. + +* Menu: + +* Turning low-level commands on/off:: +* Turning hyperlinks on/off for a group:: + + +File: eplain.info, Node: Turning low-level commands on/off, Next: Turning hyperlinks on/off for a group, Up: Turning hyperlinks on/off + +5.6.1 Turning low-level commands on/off +--------------------------------------- + +The low-level commands `\hlstart', `\hlend' and `\hldest' can be turned +on/off with the following commands: + + \hldeston + \hldestoff + \hlon + \hloff + +*Note Hyperlink driver nolinks::, for the implications of using these +commands to disable hyperlinks for the entire document. + + +File: eplain.info, Node: Turning hyperlinks on/off for a group, Prev: Turning low-level commands on/off, Up: Turning hyperlinks on/off + +5.6.2 Turning hyperlinks on/off for a group +------------------------------------------- + +If you want to disable links/destinations produced by certain groups, +you can give a list of the groups as an optional argument to these +commands: + + \hldeston[GROUPS] + \hldestoff[GROUPS] + \hlon[GROUPS] + \hloff[GROUPS] + +where GROUPS is the list of linkgroups/destgroups. This list can +contain two special groups. The empty group switches the low-level +commands (*note Turning low-level commands on/off::), and the star +(`*') group operates on all defined groups. + + Note that turning off the low-level commands disables all hyperlinks +globally, including groups which have them enabled. Turning off certain +linkgroups/destgroups records the fact that the macros in the group +should not produce links/destinations. To illustrate the distinction, +assume that all links are on; after the following sequence of commands: + + \hloff + \hloff[eq] + \hlon + +all links are on except for the `eq' linkgroup. + + +File: eplain.info, Node: Arrow theoretic diagrams, Next: Programming definitions, Prev: Hyperlinks, Up: Top + +6 Arrow theoretic diagrams +************************** + +This chapter describes definitions for producing commutative diagrams. + + Steven Smith wrote this documentation (and the macros). + +* Menu: + +* Slanted lines and vectors:: +* Commutative diagrams:: + + +File: eplain.info, Node: Slanted lines and vectors, Next: Commutative diagrams, Up: Arrow theoretic diagrams + +6.1 Slanted lines and vectors +============================= + +The macros `\drawline' and `\drawvector' provide the capability found +in LaTeX's picture mode to draw slanted lines and vectors of certain +directions. Both of these macros take three arguments: two integer +arguments to specify the direction of the line or vector, and one +argument to specify its length. For example, `\drawvector(-4,1){60pt}' +produces the vector + + (A vector in the 2d quadrant of length 60 pt appears here.) + + which lies in the 2d quadrant, has a slope of minus 1/4, and a width +of 60 pt. + + Note that if an `\hbox' is placed around `\drawline' or +`\drawvector', then the width of the `\hbox' will be the positive +dimension specified in the third argument, except when a vertical line +or vector is specified, e.g., `\drawline(0,1){1in}', which has zero +width. If the specified direction lies in the 1st or 2d quadrant +(e.g., `(1,1)' or `(-2,3)'), then the `\hbox' will have positive height +and zero depth. Conversely, if the specified direction lies in the 3d +or 4th quadrant (e.g., `(-1,-1)' or `(2,-3)'), then the `\hbox' will +have positive depth and zero height. + + There are a finite number of directions that can be specified. For +`\drawline', the absolute value of each integer defining the direction +must be less than or equal to six, i.e., `(7,-1)' is incorrect, but +`(6,-1)' is acceptable. For `\drawvector', the absolute value of each +integer must be less than or equal to four. Furthermore, the two +integers cannot have common divisors; therefore, if a line with slope 2 +is desired, say `(2,1)' instead of `(4,2)'. Also, specify `(1,0)' +instead of, say, `(3,0)' for horizontal lines and likewise for vertical +lines. + + Finally, these macros depend upon the LaTeX font `line10'. If your +site doesn't have this font, ask your system administrator to get it. +Future enhancements will include macros to draw dotted lines and dotted +vectors of various directions. + + +File: eplain.info, Node: Commutative diagrams, Prev: Slanted lines and vectors, Up: Arrow theoretic diagrams + +6.2 Commutative diagrams +======================== + +The primitive commands `\drawline' and `\drawvector' can be used to +typeset arrow theoretic diagrams. This section describes (1) macros to +facilitate typesetting arrows and morphisms, and (2) macros to +facilitate the construction of commutative diagrams. All macros +described in this section must be used in math mode. + +* Menu: + +* Arrows and morphisms:: +* Construction of commutative diagrams:: +* Commutative diagram parameters:: + + +File: eplain.info, Node: Arrows and morphisms, Next: Construction of commutative diagrams, Up: Commutative diagrams + +6.2.1 Arrows and morphisms +-------------------------- + +The macros `\mapright' and `\mapleft' produce right and left pointing +arrows, respectively. Use superscript (`^') to place a morphism above +the arrow, e.g., `\mapright^\alpha'; use subscript (`_') to place a +morphism below the arrow, e.g., `\mapright_{\tilde l}'. Superscripts +and subscripts may be used simulataneously, e.g., `\mapright^\pi_{\rm +epimor.}'. + + Similarly, the macros `\mapup' and `\mapdown' produce up and down +pointing arrows, respectively. Use `\rt' to place a morphism to the +right of the arrow, e.g., `\mapup\rt{\rm id}'; use `\lft' to place a +morphism to the left of the arrow, e.g., `\mapup\lft\omega'. `\lft' +and `\rt' may be used simultaneously, e.g., `\mapdown\lft\pi\rt{\rm +monomor.}'. + + Slanted arrows are produced by the macro `\arrow', which takes a +direction argument (e.g., `\arrow(3,-4)'). Use `\rt' and `\lft' to +place morphisms to the right and left, respectively, of the arrow. A +slanted line (no arrowhead) is produced with the macro `\sline', whose +syntax is identical to that of `\arrow'. + + The length of these macros is predefined by the default TeX +dimensions `\harrowlength', for horizontal arrows (or lines), +`\varrowlength', for vertical arrows (or lines), and `\sarrowlength', for +slanted arrows (or lines). To change any of these dimensions, say, +e.g., `\harrowlength=40pt'. As with all other TeX dimensions, the +change may be as global or as local as you like. Furthermore, the +placement of morphisms on the arrows is controlled by the dimensions +`\hmorphposn', `\vmorphposn', and `\morphdist'. The first two +dimensions control the horizontal and vertical position of the morphism +from its default position; the latter dimension controls the distance +of the morphism from the arrow. If you have more than one morphism per +arrow (i.e., a `^'/`_' or `\lft'/`\rt' construction), use the parameters +`\hmorphposnup', `\hmorphposndn', `\vmorphposnup', `\vmorphposndn', `\hmorphposnrt', `\hmorphposnlft', `\vmorphposnrt', and +`\vmorphposnlft'. The default values of all these dimensions are +provided in the section on parameters that follows below. + + There is a family of macros to produce horizontal lines, arrows, and +adjoint arrows. The following macros produce horizontal maps and have +the same syntax as `\mapright': + +`\mapright' + `$X\mapright Y$' = (a right arrow). + +`\mapleft' + `$X\mapleft Y$' = (a left arrow). + +`\hline' + `$X\hline Y$' = (horizontal line) + +`\bimapright' + `$X\bimapright Y$' = (two right arrows). + +`\bimapleft' + `$X\bimapleft Y$' = (two left arrows) + +`\adjmapright' + `$X\adjmapright Y$' = (two adjoint arrows; left over right) + +`\adjmapleft' + `$X\adjmapleft Y$' = (two adjoint arrows; right over left) + +`\bihline' + `$X\bihline Y$' = (two horizontal lines) + + There is also a family of macros to produce vertical lines, arrows, +and adjoint arrows. The following macros produce vertical maps and have +the same syntax as `\mapdown': + +`\mapdown' + (a down arrow) + +`\mapup' + (an up arrow) + +`\vline' + (vertical line) + +`\bimapdown' + (two down arrows) + +`\bimapup' + (two up arrows) + +`\adjmapdown' + (two adjoint arrows; down then up) + +`\adjmapup' + (two adjoint arrows; up then down) + +`\bivline' + (two vertical lines) + + Finally, there is a family of macros to produce slanted lines, +arrows, and adjoint arrows. The following macros produce slanted maps +and have the same syntax as `\arrow': + +`\arrow' + (a slanted arrow) + +`\sline' + (a slanted line) + +`\biarrow' + (two straight arrows) + +`\adjarrow' + (two adjoint arrows) + +`\bisline' + (two straight lines) + + + The width between double arrows is controlled by the parameter +`\channelwidth'. The parameters `\hchannel' and `\vchannel', if +nonzero, override `\channelwidth' by controlling the horizontal and +vertical shifting from the first arrow to the second. + + There are no adornments on these arrows to distinguish inclusions +from epimorphisms from monomorphisms. Many texts, such as Lang's book +`Algebra', use as a tasteful alternative the symbol `inc' (in roman) +next to an arrow to denote inclusion. + + Future enhancements will include a mechanism to draw curved arrows +found in, e.g., the Snake Lemma, by employing a version of the `\path' +macros of Appendix D of `The TeXbook'. + + +File: eplain.info, Node: Construction of commutative diagrams, Next: Commutative diagram parameters, Prev: Arrows and morphisms, Up: Commutative diagrams + +6.2.2 Construction of commutative diagrams +------------------------------------------ + +There are two approaches to the construction of commutative diagrams +described here. The first approach, and the simplest, treats +commutative diagrams like fancy matrices, as Knuth does in Exercise +18.46 of `The TeXbook'. This case is covered by the macro `\commdiag', which +is an altered version of the Plain TeX macro `\matrix'. An example +suffices to demonstrate this macro. The following commutative diagram +(illustrating the covering homotopy property; Bott and Tu, +`Differential Forms in Algebraic Topology') + + (A commutative diagram appears here in the printed output.) + + is produced with the code + + $$\commdiag{Y&\mapright^f&E\cr \mapdown&\arrow(3,2)\lft{f_t}&\mapdown\cr + Y\times I&\mapright^{\bar f_t}&X}$$ + + Of course, the parameters may be changed to produce a different +effect. The following commutative diagram (illustrating the universal +mapping property; Warner, `Foundations of Differentiable Manifolds and +Lie Groups') + + (A commutative diagram appears here in the printed output.) + + is produced with the code + + $$\varrowlength=20pt + \commdiag{V\otimes W\cr \mapup\lft\phi&\arrow(3,-1)\rt{\tilde l}\cr + V\times W&\mapright^l&U\cr}$$ + + A diagram containing isosceles triangles is achieved by placing the +apex of the triangle in the center column, as shown in the example +(illustrating all constant minimal realizations of a linear system; +Brockett, `Finite Dimensional Linear Systems') + + (A commutative diagram appears here in the printed output.) + + which is produced with the code + + $$\sarrowlength=.42\harrowlength + \commdiag{&R^m\cr &\arrow(-1,-1)\lft{\bf B}\quad \arrow(1,-1)\rt{\bf G}\cr + R^n&\mapright^{\bf P}&R^n\cr + \mapdown\lft{e^{{\bf A}t}}&&\mapdown\rt{e^{{\bf F}t}}\cr + R^n&\mapright^{\bf P}&R^n\cr + &\arrow(1,-1)\lft{\bf C}\quad \arrow(-1,-1)\rt{\bf H}\cr + &R^q\cr}$$ + + Other commutative diagram examples appear in the file +`commdiags.tex', which is distributed with this package. + + In these examples the arrow lengths and line slopes were carefully +chosen to blend with each other. In the first example, the default +settings for the arrow lengths are used, but a direction for the arrow +must be chosen. The ratio of the default horizontal and vertical arrow +lengths is approximately the golden mean gamma=1.618...; the arrow +direction closest to this mean is `(3,2)'. In the second example, a +slope of -1/3 is desired and the default horizontal arrow length is 60 +pt; therefore, choose a vertical arrow length of 20 pt. You may affect +the interline glue settings of `\commdiag' by redefining the macro +`\commdiagbaselines'. (cf. Exercise 18.46 of `The TeXbook' and the +section on parameters below.) + + The width, height, and depth of all morphisms are hidden so that the +morphisms' size do not affect arrow positions. This can cause a large +morphism at the top or bottom of a diagram to impinge upon the text +surrounding the diagram. To overcome this problem, use TeX's +`\noalign' primitive to insert a `\vskip' immediately above or below +the offending line, e.g., +`$$\commdiag{\noalign{\vskip6pt}X&\mapright^\int&Y\cr ...}'. + + The macro `\commdiag' is too simple to be used for more complicated +diagrams, which may have intersecting or overlapping arrows. A second +approach, borrowed from Francis Borceux's `Diagram' macros for LaTeX, +treats the commutative diagram like a grid of identically shaped boxes. +To compose the commutative diagram, first draw an equally spaced grid, +e.g., + + . . . . . . + . . . . . . + . . . . . . + . . . . . . + + on a piece of scratch paper. Then draw each element (vertices and +arrows) of the commutative diagram on this grid, centered at each grid +point. Finally, use the macro `\gridcommdiag' to implement your design +as a TeX alignment. For example, the cubic diagram + + (A commutative diagram appears here.) + + that appears in Francis Borceux's documentation can be implemented on +a 7 by 7 grid, and is achieved with the code + + $$\harrowlength=48pt \varrowlength=48pt \sarrowlength=20pt + \def\cross#1#2{\setbox0=\hbox{$#1$}% + \hbox to\wd0{\hss\hbox{$#2$}\hss}\llap{\unhbox0}} + \gridcommdiag{&&B&&\mapright^b&&D\cr + &\arrow(1,1)\lft a&&&&\arrow(1,1)\lft d\cr + A&&\cross{\hmorphposn=12pt\mapright^c}{\vmorphposn=-12pt\mapdown\lft f} + &&C&&\mapdown\rt h\cr\cr + \mapdown\lft e&&F&&\cross{\hmorphposn=-12pt\mapright_j} + {\vmorphposn=12pt\mapdown\rt g}&&H\cr + &\arrow(1,1)\lft i&&&&\arrow(1,1)\rt l\cr + E&&\mapright_k&&G\cr}$$ + + The dimensions `\hgrid' and `\vgrid' control the horizontal and +vertical spacing of the grid used by `\gridcommdiag'. The default +setting for both of these dimensions is 15 pt. Note that in the +example of the cube the arrow lengths must be adjusted so that the +arrows overlap into neighboring boxes by the desired amount. Hence, +the `\gridcommdiag' method, albeit more powerful, is less automatic +than the simpler `\commdiag' method. Furthermore, the ad hoc macro +`\cross' is introduced to allow the effect of overlapping arrows. +Finally, note that the positions of four of the morphisms are adjusted +by setting `\hmorphposn' and `\vmorphposn'. + + One is not restricted to a square grid. For example, the proof of +Zassenhaus's Butterfly Lemma can be illustrated by the diagram +(appearing in Lang's book `Algebra') + + (A commutative diagram appears here.) + + This diagram may be implemented on a 9 by 12 grid with an aspect +ratio of 1/2, and is set with the code + + $$\hgrid=16pt \vgrid=8pt \sarrowlength=32pt + \def\cross#1#2{\setbox0=\hbox{$#1$}% + \hbox to\wd0{\hss\hbox{$#2$}\hss}\llap{\unhbox0}} + \def\l#1{\llap{$#1$\hskip.5em}} + \def\r#1{\rlap{\hskip.5em$#1$}} + \gridcommdiag{&&U&&&&V\cr &&\bullet&&&&\bullet\cr + &&\sarrowlength=16pt\sline(0,1)&&&&\sarrowlength=16pt\sline(0,1)\cr + &&\l{u(U\cap V)}\bullet&&&&\bullet\r{(U\cap V)v}\cr + &&&\sline(2,-1)&&\sline(2,1)\cr + &&\cross{=}{\sline(0,1)}&&\bullet&&\cross{=}{\sline(0,1)}\cr\cr + &&\l{^{\textstyle u(U\cap v)}}\bullet&&\cross{=}{\sline(0,1)}&& + \bullet\r{^{\textstyle(u\cap V)v}}\cr + &\sline(2,1)&&\sline(2,-1)&&\sline(2,1)&&\sline(2,-1)\cr + \l{u}\bullet&&&&\bullet&&&&\bullet\r{v}\cr + &\sline(2,-1)&&\sline(2,1)&&\sline(2,-1)&&\sline(2,1)\cr + &&\bullet&&&&\bullet\cr &&u\cap V&&&&U\cap v\cr}$$ + + Again, the construction of this diagram requires careful choices for +the arrow lengths and is facilitated by the introduction of the ad hoc +macros `\cross', `\r', and `\l'. Note also that superscripts were used +to adjust the position of the vertices u(U intersection v) and (u +intersection V)v. Many diagrams may be typeset with the predefined +macros that appear here; however, ingenuity is often required to handle +special cases. + + +File: eplain.info, Node: Commutative diagram parameters, Prev: Construction of commutative diagrams, Up: Commutative diagrams + +6.2.3 Commutative diagram parameters +------------------------------------ + +The following is a list describing the parameters used in the +commutative diagram macros. These dimensions may be changed globally or +locally. + +`\harrowlength' + (Default: 60 pt) The length of right or left arrows. + +`\varrowlength' + (Default: 0.618`\harrowlength') The length of up or down arrows. + +`\sarrowlength' + (Default: 60 pt) The horizontal length of slanted arrows. + +`\hmorphposn' + (Default: 0 pt) The horizontal position of the morphism with + respect to its default position. There are also the dimensions + `\hmorphposnup', `\hmorphposndn', `\hmorphposnrt', and + `\hmorphposnlft' for `^'/`_' or `\lft'/`\rt' constructions. + +`\vmorphposn' + (Default: 0 pt) The vertical position of the morphism with respect + to its default position. There are also the dimensions + `\vmorphposnup', `\vmorphposndn', `\vmorphposnrt', and + `\vmorphposnlft' for `^'/`_' or `\lft'/`\rt' constructions. + +`\morphdist' + (Default: 4 pt) The distance of morphisms from slanted lines or + arrows. + +`\channelwidth' + (Default: 3 pt) The distance between double lines or arrows. + +`\hchannel, \vchannel' + (Defaults: 0 pt) Overrides `\channelwidth'. The horizontal and + vertical shifts between double lines or arrows. + +`\commdiagbaselines' + (Default: `\baselineskip=15pt \lineskip=3pt \lineskiplimit=3pt ') + The parameters used by `\commdiag' for setting interline glue. + +`\hgrid' + (Default: 15 pt) The horizontal spacing of the grid used by + `\gridcommdiag'. + +`\vgrid' + (Default: 15 pt) The vertical spacing of the grid used by + `\gridcommdiag'. + + + +File: eplain.info, Node: Programming definitions, Next: Macro index, Prev: Arrow theoretic diagrams, Up: Top + +7 Programming definitions +************************* + +The definitions in this section are only likely to be useful when you +are writing nontrivial macros, not when writing a document. + +* Menu: + +* Category codes:: Changing category codes. +* Allocation macros:: Non-outer versions of \newcount et al. +* Iteration:: Doing `for' loops in TeX. +* Macro arguments:: Reading and ignoring them. +* Converting to characters:: Normalizing control sequences and spaces. +* Expansion:: Controlling expansion. +* Obeying spaces:: Making whitespace count anywhere. +* Writing out numbers:: Making `1' into `one'. +* Mode-specific penalties:: +* Auxiliary files:: Testing for their existence. +* User-defined environments:: User-defined environments. +* Page list and page range parsers:: + + +File: eplain.info, Node: Category codes, Next: Allocation macros, Up: Programming definitions + +7.1 Category codes +================== + +Plain TeX defines `\active' (as the number 13) for use in changing +category codes. Although the author of `The TeXbook' has +"intentionally kept the category codes numeric", two other categories +are commonly used: letters (category code 11) and others (12). +Therefore, Eplain defines `\letter' and `\other'. + + Sometimes it is cleaner to make a character active without actually writing +a `\catcode' command. The `\makeactive' command takes a character as +an argument to make active (and ignores following spaces). For +example, here are two commands which both make `\' active: + + \makeactive`\\ \makeactive92 + + Sometimes you might want to temporarily change the category code of +the `@' character to `\letter', so that you can use or define macros +which are normally inaccessible to the user. For such situations, +Eplain provides the `\makeatletter' command. It sets the category code +of `@' to `\letter' (11) and defines `\resetatcatcode' to restore the +category code to whatever it was before the call to `\makeatletter'. +For example: + + \makeatletter + \def\@hidden@macro{This macro cannot normally be + called / redefined by the user} + \resetatcatcode + +There is also `\makeatother' which works similarly but sets the +category code of `@' to `\other' (12). + + Usually, when you give a definition to an active character, you have +to do so inside a group where you temporarily make the character active, +and then give it a global definition (cf. the definition of +`\obeyspaces' in `The TeXbook'). This is inconvenient if you are +writing a long macro, or if the character already has a global +definition you do not wish to transcend. Eplain provides `\letreturn', +which defines the usual end-of-line character to be the argument. For +example: + + \def\mymacro{... \letreturn\myreturn ... } + \mymacro hello + there + +The end-of-line between `hello' and `there' causes `\myreturn' to be +expanded. + + `The TeXbook' describes `\uncatcodespecials', which makes all +characters which are normally "special" into "other" characters, but +the definition never made it into plain TeX. Eplain therefore defines +it. + + Finally, `\percentchar' expands into a literal `%' character. This +is useful when you `\write' TeX output to a file, and want to avoid +spurious spaces. For example, Eplain writes a `\percentchar' after the +definition of cross-references. The macros `\lbracechar' and +`\rbracechar' expand similarly. + + +File: eplain.info, Node: Allocation macros, Next: Iteration, Prev: Category codes, Up: Programming definitions + +7.2 Allocation macros +===================== + +Plain TeX provides macros that allocate registers of each primitive +type in TeX, to prevent different sets of macros from using the same +register for two different things. The macros are all named starting +with `new', e.g., `\newcount' allocates a new "count" (integer) +register. Such allocations are usually needed only at the top level of +some macro definition file; therefore, plain TeX makes the allocation +registers `\outer', to help find errors. (The error this helps to find +is a missing right brace in some macro definition.) + + Sometimes, however, it is useful to allocate a register as part of +some macro. An outer control sequence cannot be used as part of a macro +definition (or in a few other contexts: the parameter text of a +definition, an argument to a definition, the preamble of an alignment, +or in conditional text that is being skipped). Therefore, Eplain +defines "inner" versions of all the allocation macros, named with the +prefix `inner': `\innernewbox', `\innernewcount', `\innernewdimen', `\innernewfam', `\innernewhelp', `\innernewif', `\innernewinsert', `\innernewlanguage', `\innernewread', +`\innernewskip', `\innernewtoks', `\innernewwrite'. + + You can also define non-outer versions of other macros in the same +way that Eplain defines the above. The basic macro is called +`\innerdef': + + \innerdef \INNERNAME {OUTERNAME} + + The first argument (\INNERNAME) to `\innerdef' is the control +sequence that you want to define. Any previous definition of +\INNERNAME is replaced. The second argument (OUTERNAME) is the +_characters_ in the name of the outer control sequence. (You can't use +the actual control sequence name, since it's outer!) + + If the outer control sequence is named \CS, and you want to define +`innerCS' as the inner one, you can use `\innerinnerdef', which is just +an abbreviation for a call to `\innerdef'. For example, these two +calls are equivalent: + + \innerdef\innerproclaim{proclaim} + \innerinnerdef{proclaim} + + +File: eplain.info, Node: Iteration, Next: Macro arguments, Prev: Allocation macros, Up: Programming definitions + +7.3 Iteration +============= + +You can iterate through a comma-separated list of items with `\for'. Here +is an example: + + \for\name:=karl,kathy\do{% + \message{\name}% + }% + + This writes `karl' and `kathy' to the terminal. Spaces before or +after the commas in the list, or after the `:=', are _not_ ignored. + + `\for' expands the iterated values fully (with `\edef'), so this is +equivalent to the above: + + \def\namelist{karl,kathy}% + \for\name:=\namelist\do ... + + +File: eplain.info, Node: Macro arguments, Next: Converting to characters, Prev: Iteration, Up: Programming definitions + +7.4 Macro arguments +=================== + +It is occasionally useful to redefine a macro that takes arguments to +do nothing. Eplain defines `\gobble', `\gobbletwo', and `\gobblethree' +to swallow one, two, and three arguments, respectively. + + For example, if you want to produce a "short" table of contents--one +that includes only chapters, say--the easiest thing to do is read the +entire `.toc' file (*note Contents::), and just ignore the commands +that produce section or subsection entries. To be specific: + + \let\tocchapterentry = \shorttocchapter + \let\tocsectionentry = \gobbletwo + \let\tocsubsectionentry = \gobbletwo + \readtocfile + (Of course, this assumes you only have chapters, sections, and +subsections in your document.) + + In addition, Eplain defines `\eattoken' to swallow the single +following token, using `\let'. Thus, `\gobble' followed by `{...}' +ignores the entire brace-enclosed text. `\eattoken' followed by the +same ignores only the opening left brace. + + Eplain defines a macro `\identity' which takes one argument and +expands to that argument. This may be useful if you want to provide a +function for the user to redefine, but don't need to do anything by +default. (For example, the default definition of `\eqconstruct' (*note +Formatting equation references::) is `\identity'.) + + You may also want to read an optional argument. The established +convention is that optional arguments are put in square brackets, so +that is the syntax Eplain recognizes. Eplain ignores space tokens +before an optional argument, via `\futurenonspacelet'. + + You test for an optional argument by using `\@getoptionalarg'. It +takes one argument, a control sequence to expand after reading the +argument, if present. If an optional argument is present, the control +sequence `\@optionalarg' expands to it; otherwise, `\@optionalarg' is +`\empty'. You must therefore have the category code of `@' set to 11 +(letter). Here is an example: + + \catcode`@=\letter + \def\cmd{\@getoptionalarg\finishcmd} + \def\finishcmd{% + \ifx\@optionalarg\empty + % No optional argument present. + \else + % One was present. + \fi + } + + If an optional argument contains another optional argument, the inner +one will need to be enclosed in braces, so TeX does not mistake the end +of the first for the end of the second. + + +File: eplain.info, Node: Converting to characters, Next: Expansion, Prev: Macro arguments, Up: Programming definitions + +7.5 Converting to characters +============================ + +Eplain defines `\xrlabel' to produce control sequence names for +cross-reference labels, et al. This macro expands to its argument with +an `_' appended. (It does this because the usual use of `\xrlabel' is +to generate a control sequence name, and we naturally want to avoid +conflicts between control sequence names.) + + Because `\xrlabel' is fully expandable, to make a control sequence +name out of the result you need only do + `\csname \xrlabel{LABEL}\endcsname' + +The `\csname' primitive makes a control sequence name out of any +sequence of character tokens, regardless of category code. Labels can +therefore include any characters except for `\', `{', `}', and `#', all +of which are used in macro definitions themselves. + + `\sanitize' takes a control sequence as an argument and converts the +expansion of the control sequence into a list of character tokens. +This is the behavior you want when writing information like chapter +titles to an output file. For example, here is part of the definition +of `\writenumberedtocentry'; `#2' is the title that the user has given. + + ... + \def\temp{#2}% + ... + \write\tocfile{% + ... + \sanitize\temp + ... + }% + + +File: eplain.info, Node: Expansion, Next: Obeying spaces, Prev: Converting to characters, Up: Programming definitions + +7.6 Expansion +============= + +This section describes some miscellanous macros for expansion, etc. + +* Menu: + +* \csn and \ece:: Abbreviations for \csname expansions. +* \edefappend:: +* Hooks:: Manipulating and executing named actions. +* Properties:: Associating information with a csname. +* \expandonce:: +* \ifundefined:: +* \futurenonspacelet:: + + +File: eplain.info, Node: \csn and \ece, Next: \edefappend, Up: Expansion + +7.6.1 `\csn' and `\ece' +----------------------- + +`\csn'{NAME} simply abbreviates `\csname' NAME `\endcsname', thus +saving some typing. The extra level of expansion does take some time, +though, so I don't recommend it for an inner loop. + + `\ece'{TOKEN}{NAME} abbreviates + + \expandafter TOKEN \csname NAME \endcsname + +For example, + + \def\fontabbrevdef#1#2{\ece\def{@#1font}{#2}} + \fontabbrevdef{normal}{ptmr} + +defines a control sequence `\@normalfont' to expand to `ptmr'. + + +File: eplain.info, Node: \edefappend, Next: Hooks, Prev: \csn and \ece, Up: Expansion + +7.6.2 `\edefappend' +------------------- + +`\edefappend' is a way of adding on to an existing definition. It +takes two arguments: the first is the control sequence name, the second +the new tokens to append to the definition. The second argument is +fully expanded (in the `\edef' that redefines the control sequence). + + For example: + + \def\foo{abc} + \def\bar{xyz} + \edefappend\foo{\bar karl} + +results in `\foo' being defined as `abcxyzkarl'. + + +File: eplain.info, Node: Hooks, Next: Properties, Prev: \edefappend, Up: Expansion + +7.6.3 Hooks +----------- + +A "hook" is simply a name for a group of actions which is executed in +certain places--presumably when it is most useful to allow +customization or modification. TeX already provides many builtin +hooks; for example, the `\every ...' token lists are all examples of +hooks. + + Eplain provides several macros for adding actions to hooks. They all +take two arguments: the name of the hook and the new actions. + +`hookaction NAME ACTIONS' +`hookappend NAME ACTIONS' + +`hookprepend NAME ACTIONS' + Each of these adds ACTIONS to the hook NAME. (Any + previously-defined actions are retained.) NAME is not a control + sequence, but rather the characters of the name. + +`hookactiononce NAME `\CS'' + `\hookactiononce' adds CS to NAME, like the macros above, but + first it adds + + \global\let \CS \relax + + to the definition of \CS. (This implies \CS must be a true + expandable macro, not a control sequence `\let' to a primitive or + some other such thing.) Thus, \CS is expanded the next time the + hook NAME is run, but it will disappear after that. + + The `\global' is useful because `\hookactiononce' is most useful + when the grouping structure of the TeX code could be anything. + Neither this nor the other hook macros do global assignments to + the hook variable itself, so TeX's usual grouping rules apply. + + The companion macro to defining hook actions is `\hookrun', for +running them. This takes a single argument, the name of the hook. If +no actions for the hook are defined, no error ensues. + + Here is a skeleton of general `\begin' and `\end' macros that run +hooks, and a couple of calls to define actions. The use of +`\hookprepend' for the begin action and `\hookappend' for the end +action ensures that the actions are executed in proper sequence with +other actions (as long as the other actions use `\hookprepend' and +`\hookappend' also). + + \def\begin#1{ ... \hookrun{begin} ... } + \def\end#1{ ... \hookrun{end} ... } + \hookprepend{begin}\start_underline + \hookappend{end}\finish_underline + + +File: eplain.info, Node: Properties, Next: \expandonce, Prev: Hooks, Up: Expansion + +7.6.4 Properties +---------------- + +A "property" is a name/value pair associated with another symbol, +traditionally called an "atom". Both atom and property names are +control sequence names. + + Eplain provides two macros for dealing with property lists: +`\setproperty' and `\getproperty'. + +`\setproperty ATOM PROPNAME VALUE' + `\setproperty' defines the property PROPERTY on the atom ATOM to + be VALUE. ATOM and PROPNAME can be anything acceptable to + `\csname'. VALUE can be anything. + +`\getproperty ATOM PROPNAME' + `\getproperty' expands to the value stored for PROPNAME on ATOM. + If PROPNAME is undefined, it expands to nothing (i.e., `\empty'). + + + The idea of properties originated in Lisp (I believe). There, the +implementation truly does associate properties with atoms. In TeX, +where we have no builtin support for properties, the association is only +conceptual. + + The following example typesets `xyz'. + + \setproperty{a}{pr}{xyz} + \getproperty{a}{pr} + + +File: eplain.info, Node: \expandonce, Next: \ifundefined, Prev: Properties, Up: Expansion + +7.6.5 `\expandonce' +------------------- + +`\expandonce' is defined as `\expandafter\noexpand'. Thus, +`\expandonce TOKEN' expands TOKEN once, instead of to TeX primitives. +This is most useful in an `\edef'. + + For example, the following defines `\temp' to be `\foo', not `abc'. + + \def\foo{abc} + \def\bar{\foo} + \edef\temp{\expandonce\bar} + + +File: eplain.info, Node: \ifundefined, Next: \futurenonspacelet, Prev: \expandonce, Up: Expansion + +7.6.6 `\ifundefined' +-------------------- + +`\ifundefined{CS} T \else F \fi' expands the T text if the control +sequence `\CS' is undefined or has been `\let' to `\relax', and the F +text otherwise. + + Since `\ifundefined' is not a primitive conditional, it cannot be +used in places where TeX might skip tokens "at high speed", e.g., +within another conditional--TeX can't match up the `\if''s and `\fi''s. + + This macro was taken directly from `The TeXbook', page 308. + + +File: eplain.info, Node: \futurenonspacelet, Prev: \ifundefined, Up: Expansion + +7.6.7 `\futurenonspacelet' +-------------------------- + +The `\futurelet' primitive allows you to look at the next token from +the input. Sometimes, though, you want to look ahead ignoring any +spaces. This is what `\futurenonspacelet' does. It is otherwise the +same as `\futurelet': you give it two control sequences as arguments, +and it assigns the next nonspace token to the first, and then expands +the second. For example: + + \futurenonspacelet\temp\finishup + \def\finishup{\ifx\temp ...} + + +File: eplain.info, Node: Obeying spaces, Next: Writing out numbers, Prev: Expansion, Up: Programming definitions + +7.7 Obeying spaces +================== + +`\obeywhitespace' makes both end-of-lines and space characters in the +input be respected in the output. Unlike plain TeX's `\obeyspaces', +even spaces at the beginnings of lines turn into blank space. + + By default, the size of the space that is produced by a space +character is the natural space of the current font, i.e., what `\ ' +produces. + + Ordinarily, a blank line in the input produces as much blank vertical +space as a line of text would occupy. You can adjust this by assigning +to the parameter `\blanklineskipamount': if you set this negative, the +space produced by a blank line will be smaller; if positive, larger. + + Tabs are not affected by this routine. In particular, if tabs occur +at the beginning of a line, they will disappear. (If you are trying to +make TeX do the "right thing" with tabs, don't. Use a utility program +like expand instead.) + + +File: eplain.info, Node: Writing out numbers, Next: Mode-specific penalties, Prev: Obeying spaces, Up: Programming definitions + +7.8 Writing out numbers +======================= + +`\numbername' produces the written-out form of its argument, i.e., +`zero' through `ten' for the numbers 0-10, and numerals for all others. + + +File: eplain.info, Node: Mode-specific penalties, Next: Auxiliary files, Prev: Writing out numbers, Up: Programming definitions + +7.9 Mode-specific penalties +=========================== + +TeX's built-in `\penalty' command simply appends to the current list, +no matter what kind of list it is. You might intend a particular +penalty to always be a "vertical" penalty, however, i.e., appended to a +vertical list. Therefore, Eplain provides `\vpenalty' and `\hpenalty' +which first leave the other mode and then do `\penalty'. + + More precisely, `\vpenalty' inserts `\par' if the current mode is +horizontal, and `\hpenalty' inserts `\leavevmode' if the current mode +is vertical. (Thus, `\vpenalty' cannot be used in math mode.) + + +File: eplain.info, Node: Auxiliary files, Next: User-defined environments, Prev: Mode-specific penalties, Up: Programming definitions + +7.10 Auxiliary files +==================== + +It is common to write some information out to a file to be used on a +subsequent run. But when it is time to read the file again, you only +want to do so if the file actually exists. `\testfileexistence' is +given an argument which is appended to `\jobname', and sets the +conditional `\iffileexists' appropriately. For example: + + \testfileexistence{toc}% + \iffileexists + \input \jobname.toc + \fi + + `\testfileexistence' takes an optional parameter; when given, it +will override `\jobname' for the root part of the file name. For +example, if you want to test for the file `answers.aux', you can do +this with the following: + + \testfileexistence[answers]{aux}% + \iffileexists + \input answers.aux + \fi + + +File: eplain.info, Node: User-defined environments, Next: Page list and page range parsers, Prev: Auxiliary files, Up: Programming definitions + +7.11 User-defined environments +============================== + +Plain TeX does not provide "named" block structures, only the anonymous +`\begingroup' and `\endgroup' pair. The disadvantage of this is that +when there are several such groups and one is mismatched, it can be +difficult to find the error. Eplain provides a named block structure so +that if you forget an `\environment' or an `\endenvironment', you will +(probably) get an error message about it. + + For example: + + \def\itpar{ + \environment{@italicpar} + \it\par + } + \def\enditpar{ + \par + \endenvironment{@italicpar}% + } + which could then be used to set italicized paragraphs: + \itpar + If I reprehend anything in this world, it is the use of my oracular + tongue, and a nice derangement of epitaphs! + \enditpar + + The above sort of environment allows nesting. But environments +shouldn't always be allowed to nest. Put the control sequence +`\checkenv' at the beginning of a macro that is going to define an +environment that should not be nested. + + +File: eplain.info, Node: Page list and page range parsers, Prev: User-defined environments, Up: Programming definitions + +7.12 Page list and page range parsers +===================================== + +The macros which Eplain uses to parse the page lists and ranges in the +index, `\idxparselist' and `\idxparserange' (*note Page destinations +for index terms::), are sometimes useful when defining page number +encapsulators. They take one argument, text to parse. When a page +list (range) is not present, they set `\idxpagei' to be `\empty'; when +a list (range) is detected, they set `\idxpagei' and `\idxpageii' to +the first and the second page numbers, respectively. + + Eplain's defaults for the page list and page range delimiters are the +same as those in MakeIndex, a comma followed by a space (`, ') and two +dashes (`--'), respectively. If you customize MakeIndex to use +different delimiters, you must not forget to let Eplain know about them +with the commands + + \setidxpagelistdelimiter{LIST-DELIM} + \setidxpagerangedelimiter{PAGE-DELIM} + +These commands save the LIST-DELIM and PAGE-DELIM delimiters in `\idxpagelistdelimiter' +and `\idxpagerangedelimiter', respectively. + + For example, you may want to define a page number markup command +which italicizes and properly underlines page ranges by underlining +only the page numbers and not the delimiter: + + \def\ituline#1{% + {\it + \idxparserange{#1}% + \ifx\idxpagei\empty + % The argument is a single page number. + \underbar{#1}% + \else + % The argument is a page range. + \underbar{\idxpagei}\idxpagerangedelimiter\underbar{\idxpageii}% + \fi}% + } + +Note that the `\ituline' macro is not aware of page lists. This is not +needed if you use hyperlinks in the index, because `\hlidx' and +`\hlidxpage' will break up the page lists before calling the user's +page encapsulator (*note Page destinations for index terms::), so +`\ituline' will never see the lists. If, however, you need to design a +macro which also takes care of the lists, you can extend `\ituline' +with an additional call to `\idxparselist'. + + +File: eplain.info, Node: Macro index, Next: Concept index, Prev: Programming definitions, Up: Top + +Macro index +*********** + + +* Menu: + +* .aux file <1>: Cross-references. (line 11) +* .aux file: Citations. (line 17) +* .bbl file: Citations. (line 20) +* .bib file: Citations. (line 20) +* .bst files: Citations. (line 65) +* .cls files: Loading LaTeX packages. + (line 6) +* .eps files: Packages known to work. + (line 32) +* .fmt file <1>: Invoking Eplain. (line 14) +* .fmt file: Installation. (line 12) +* .idx files <1>: Index hyperlinks. (line 14) +* .idx files: Indexing. (line 23) +* .ind files <1>: Index hyperlinks. (line 25) +* .ind files: Indexing. (line 27) +* .pdf files <1>: Introduction to hyperlinks. + (line 12) +* .pdf files: Checking for PDF output. + (line 6) +* .ps files: Introduction to hyperlinks. + (line 12) +* .sty files: Loading LaTeX packages. + (line 6) +* .toc file: Contents. (line 10) +* @hllabel: Destination types for pdftex and dvipdfm. + (line 82) +* @indexproof insertion class: Proofing index terms. + (line 28) +* abovecolumnskip: Multiple columns. (line 31) +* abovecolumnspenalty: Tables. (line 31) +* abovelistpenalty: Formatting lists. (line 29) +* abovelistskip: Formatting lists. (line 29) +* abovelistskipamount: Formatting lists. (line 10) +* adjarrow: Arrows and morphisms. + (line 112) +* adjmapdown: Arrows and morphisms. + (line 90) +* adjmapleft: Arrows and morphisms. + (line 65) +* adjmapright: Arrows and morphisms. + (line 62) +* adjmapup: Arrows and morphisms. + (line 93) +* advancebottommargin: Margins. (line 28) +* advanceleftmargin: Margins. (line 28) +* advancerightmargin: Margins. (line 28) +* advancetopmargin: Margins. (line 28) +* afterindexterm: Customizing indexing. + (line 6) +* afterindexterm hook: Indexing commands. (line 63) +* AMSLaTeX: Logos. (line 10) +* amsppt.sty: Invoking Eplain. (line 90) +* AMSTeX: Logos. (line 10) +* arrow: Arrows and morphisms. + (line 20) +* autopict.sty: Packages known to work. + (line 12) +* bblem: Formatting bibliographies. + (line 33) +* bblfilebasename: Citations. (line 30) +* bblhook: Formatting bibliographies. + (line 55) +* bblnewblock: Formatting bibliographies. + (line 41) +* bblrm: Formatting bibliographies. + (line 30) +* bblsc: Formatting bibliographies. + (line 37) +* bcolor (hyperlink option): Link options for pdftex and dvipdfm. + (line 14) +* bdash (hyperlink option): Link options for pdftex and dvipdfm. + (line 20) +* begin for index entries: Modifying index entries. + (line 22) +* beginindex hook: Typesetting an index. + (line 30) +* beginlist: Formatting lists. (line 51) +* beginpackages: Environment for loading packages. + (line 6) +* begin{picture}: Packages known to work. + (line 14) +* begin{theindex}: Typesetting an index. + (line 17) +* belowcolumnskip: Multiple columns. (line 32) +* belowfootnoterulespace: Footnotes. (line 45) +* belowlistskip: Formatting lists. (line 30) +* belowlistskipamount: Formatting lists. (line 10) +* biarrow: Arrows and morphisms. + (line 109) +* biblabelcontents: Formatting bibliographies. + (line 23) +* biblabelextraspace: Formatting bibliographies. + (line 49) +* biblabelprint: Formatting bibliographies. + (line 17) +* biblabelwidth: Formatting bibliographies. + (line 11) +* bibliography: Citations. (line 56) +* bibliography (hyperlinks): Citation hyperlinks. (line 11) +* bibliographystyle: Citations. (line 63) +* BibTeX: Logos. (line 10) +* bibtex: Invoking Eplain. (line 101) +* bihline: Arrows and morphisms. + (line 68) +* bimapdown: Arrows and morphisms. + (line 84) +* bimapleft: Arrows and morphisms. + (line 59) +* bimapright: Arrows and morphisms. + (line 56) +* bimapup: Arrows and morphisms. + (line 87) +* bisline: Arrows and morphisms. + (line 115) +* bivline: Arrows and morphisms. + (line 96) +* blackbox: Boxes. (line 7) +* blanklineskipamount in justified text: Justification. (line 24) +* blanklineskipamount in obeyed text: Obeying spaces. (line 16) +* bottom (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 55) +* bottom (destination option): Destination types for pdftex and dvipdfm. + (line 65) +* bottommargin: Margins. (line 18) +* boxit: Boxes. (line 29) +* boxitspace: Boxes. (line 31) +* bstyle (hyperlink option): Link options for pdftex and dvipdfm. + (line 26) +* bwidth (hyperlink option): Link options for pdftex and dvipdfm. + (line 50) +* catcode: Category codes. (line 13) +* center: Justification. (line 7) +* centereddisplays: Displays. (line 13) +* channelwidth <1>: Commutative diagram parameters. + (line 36) +* channelwidth: Arrows and morphisms. + (line 119) +* cite: Citations. (line 37) +* cite (hyperlinks): Citation hyperlinks. (line 6) +* cmd (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 14) +* cmd (destination option): Destination types for pdftex and dvipdfm. + (line 81) +* cmd (hyperlink option) <1>: Link options for pdftex and dvipdfm. + (line 56) +* cmd (hyperlink option): Link types for pdftex and dvipdfm. + (line 64) +* cmtt8: Proofing index terms. + (line 12) +* color (hyperlink option): Options supported by all drivers. + (line 37) +* color.sty <1>: Hyperlink driver nolinks. + (line 34) +* color.sty: Packages known to work. + (line 21) +* colormodel (hyperlink option): Options supported by all drivers. + (line 37) +* columnfill: Multiple columns. (line 14) +* commdiag: Construction of commutative diagrams. + (line 9) +* commdiagbaselines <1>: Commutative diagram parameters. + (line 43) +* commdiagbaselines: Construction of commutative diagrams. + (line 64) +* csn: \csn and \ece. (line 6) +* definecontentsfile: Contents. (line 69) +* defineindex: Indexing. (line 37) +* definexref: Defining generic references. + (line 6) +* definexref (hyperlinks): Cross-reference hyperlinks. + (line 6) +* depth (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 34) +* depth (destination option): Destination types for pdftex and dvipdfm. + (line 61) +* depth (hyperlink option): Link options for pdftex and dvipdfm. + (line 124) +* discretionaries: Paths. (line 19) +* displaylines: Displays. (line 18) +* doublecolumns: Multiple columns. (line 7) +* drawline: Slanted lines and vectors. + (line 6) +* drawvector: Slanted lines and vectors. + (line 6) +* dvipdfm: Introduction to hyperlinks. + (line 34) +* eattoken: Macro arguments. (line 22) +* ece: \csn and \ece. (line 10) +* edefappend: \edefappend. (line 6) +* ehrule: Rules. (line 17) +* enablehyperlinks <1>: Choosing destination placement. + (line 7) +* enablehyperlinks: Introduction to hyperlinks. + (line 40) +* end for index entries: Modifying index entries. + (line 22) +* endlist: Formatting lists. (line 53) +* endnumberedlist: Lists. (line 14) +* endorderedlist: Lists. (line 14) +* endpackages: Environment for loading packages. + (line 6) +* endunorderedlist: Lists. (line 22) +* end{picture}: Packages known to work. + (line 14) +* end{theindex}: Typesetting an index. + (line 17) +* eplain: Invoking Eplain. (line 30) +* eplain.aux: Installation. (line 25) +* eqalignno: Displays. (line 18) +* eqconstruct: Formatting equation references. + (line 21) +* eqdef: Equation references. (line 15) +* eqdef (hyperlinks): Equation reference hyperlinks. + (line 6) +* eqdefn: Equation references. (line 38) +* eqdefn (hyperlinks): Equation reference hyperlinks. + (line 6) +* eqnumber: Equation references. (line 8) +* eqprint: Formatting equation references. + (line 12) +* eqref <1>: Equation reference hyperlinks. + (line 20) +* eqref: Equation references. (line 46) +* eqrefn <1>: Equation reference hyperlinks. + (line 20) +* eqrefn: Equation references. (line 52) +* eqsubdef: Subequation references. + (line 11) +* eqsubdef (hyperlinks): Equation reference hyperlinks. + (line 6) +* eqsubdefn: Subequation references. + (line 11) +* eqsubdefn (hyperlinks): Equation reference hyperlinks. + (line 6) +* eqsubreftext: Subequation references. + (line 22) +* everyfootnote: Footnotes. (line 35) +* evrule: Rules. (line 18) +* expandonce: \expandonce. (line 6) +* file (hyperlink option) <1>: Link options for pdftex and dvipdfm. + (line 63) +* file (hyperlink option): Link types for pdftex and dvipdfm. + (line 34) +* fileexists (conditional): Auxiliary files. (line 10) +* filename (hyperlink type): Link types for pdftex and dvipdfm. + (line 33) +* filepage (hyperlink type): Link types for pdftex and dvipdfm. + (line 44) +* fit (destination type): Destination types for pdftex and dvipdfm. + (line 18) +* fitb (destination type): Destination types for pdftex and dvipdfm. + (line 39) +* fitbh (destination type): Destination types for pdftex and dvipdfm. + (line 44) +* fitbv (destination type): Destination types for pdftex and dvipdfm. + (line 52) +* fith (destination type): Destination types for pdftex and dvipdfm. + (line 23) +* fitr (destination type): Destination types for pdftex and dvipdfm. + (line 60) +* fitv (destination type): Destination types for pdftex and dvipdfm. + (line 31) +* flushleft: Justification. (line 7) +* flushright: Justification. (line 7) +* fmtversion: Introduction. (line 47) +* footnote (hyperlinks): Footnote hyperlinks. (line 7) +* footnotemarkseparation: Footnotes. (line 25) +* footnoteruleheight: Footnotes. (line 43) +* footnoterulewidth: Footnotes. (line 43) +* for: Iteration. (line 6) +* frac: Fractions. (line 6) +* fullmonthname: Time of day. (line 13) +* futurenonspacelet: \futurenonspacelet. (line 6) +* generaldisplay: Formatting displays. (line 10) +* getproperty: Properties. (line 18) +* gloggingall: Diagnostics. (line 23) +* gobble: Macro arguments. (line 7) +* gobbletwo: Macro arguments. (line 7) +* graphics.sty: Packages known to work. + (line 22) +* graphicx.sty: Packages known to work. + (line 23) +* gridcommdiag: Construction of commutative diagrams. + (line 89) +* gtracingall: Diagnostics. (line 23) +* gutter: Multiple columns. (line 23) +* gutterbox: Multiple columns. (line 24) +* hangindent for index entries: Typesetting an index. + (line 45) +* harrowlength <1>: Commutative diagram parameters. + (line 11) +* harrowlength: Arrows and morphisms. + (line 27) +* hchannel: Commutative diagram parameters. + (line 39) +* height (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 37) +* height (destination option): Destination types for pdftex and dvipdfm. + (line 60) +* height (hyperlink option): Link options for pdftex and dvipdfm. + (line 127) +* hgrid <1>: Commutative diagram parameters. + (line 47) +* hgrid: Construction of commutative diagrams. + (line 109) +* hldest <1>: Setting hyperlink types and options. + (line 7) +* hldest <2>: Destination types for pdftex and dvipdfm. + (line 85) +* hldest: Explicit hyperlinks. (line 6) +* hldestoff <1>: Turning low-level commands on/off. + (line 6) +* hldestoff: Hyperlink driver nolinks. + (line 10) +* hldeston: Turning low-level commands on/off. + (line 6) +* hldestopts <1>: Setting group options. + (line 11) +* hldestopts: Setting default types and options. + (line 15) +* hldesttype <1>: Setting group types. (line 6) +* hldesttype: Setting default types and options. + (line 6) +* hlend: Explicit hyperlinks. (line 25) +* hlfootbacklabel: Footnote hyperlinks. (line 12) +* hlfootlabel: Footnote hyperlinks. (line 12) +* hlfootlabelnumber: Footnote hyperlinks. (line 14) +* hlidx: Exact destinations for index terms. + (line 13) +* hlidxlabel: Exact destinations for index terms. + (line 23) +* hlidxlabelnumber: Exact destinations for index terms. + (line 25) +* hlidxpage: Page destinations for index terms. + (line 20) +* hlidxpagelabel: Page destinations for index terms. + (line 11) +* hlight (hyperlink option): Link options for pdftex and dvipdfm. + (line 69) +* hline: Arrows and morphisms. + (line 53) +* hloff <1>: Turning low-level commands on/off. + (line 6) +* hloff: Hyperlink driver nolinks. + (line 10) +* hlon: Turning low-level commands on/off. + (line 6) +* hlopts <1>: Setting group options. + (line 11) +* hlopts: Setting default types and options. + (line 15) +* hlstart <1>: Setting hyperlink types and options. + (line 7) +* hlstart <2>: Link types for pdftex and dvipdfm. + (line 67) +* hlstart: Explicit hyperlinks. (line 25) +* hltype <1>: Setting group types. (line 6) +* hltype: Setting default types and options. + (line 6) +* hmorphposn <1>: Commutative diagram parameters. + (line 20) +* hmorphposn: Arrows and morphisms. + (line 33) +* hmorphposndn <1>: Commutative diagram parameters. + (line 22) +* hmorphposndn: Arrows and morphisms. + (line 38) +* hmorphposnlft <1>: Commutative diagram parameters. + (line 23) +* hmorphposnlft: Arrows and morphisms. + (line 38) +* hmorphposnrt <1>: Commutative diagram parameters. + (line 22) +* hmorphposnrt: Arrows and morphisms. + (line 38) +* hmorphposnup <1>: Commutative diagram parameters. + (line 22) +* hmorphposnup: Arrows and morphisms. + (line 38) +* hoffset: Proofing index terms. + (line 21) +* hookaction: Hooks. (line 15) +* hookactiononce: Hooks. (line 23) +* hookappend: Hooks. (line 16) +* hookprepend: Hooks. (line 17) +* hookrun: Hooks. (line 39) +* hruledefaultdepth: Rules. (line 9) +* hruledefaultheight: Rules. (line 9) +* hsize: Margins. (line 34) +* hyphenpenalty for index entries: Typesetting an index. + (line 45) +* identity: Macro arguments. (line 27) +* idx: Indexing commands. (line 8) +* idx (hyperlinks): Index hyperlinks. (line 6) +* idxbeginrangemark: Customizing indexing. + (line 42) +* idxencapoperator: Customizing indexing. + (line 39) +* idxendrangemark: Customizing indexing. + (line 45) +* idxexact: Choosing destination placement. + (line 8) +* idxmarked: Indexing commands. (line 29) +* idxmarked (hyperlinks): Index hyperlinks. (line 6) +* idxname: Indexing commands. (line 19) +* idxname (hyperlinks): Index hyperlinks. (line 6) +* idxnameseparator: Indexing commands. (line 19) +* idxnone: Choosing destination placement. + (line 9) +* idxpage: Choosing destination placement. + (line 9) +* idxpagei: Page list and page range parsers. + (line 6) +* idxpageii: Page list and page range parsers. + (line 6) +* idxpagelistdelimiter: Page list and page range parsers. + (line 23) +* idxpagenum: Customizing indexing. + (line 51) +* idxpagerangedelimiter: Page list and page range parsers. + (line 23) +* idxparselist: Page list and page range parsers. + (line 6) +* idxparserange: Page list and page range parsers. + (line 6) +* idxrangebeginword: Customizing indexing. + (line 20) +* idxrangeendword: Customizing indexing. + (line 23) +* idxseealsocmdword: Customizing indexing. + (line 29) +* idxseecmdword: Customizing indexing. + (line 26) +* idxsubentryseparator: Customizing indexing. + (line 36) +* idxsubmarked: Indexing commands. (line 40) +* idxsubmarked (hyperlinks): Index hyperlinks. (line 6) +* idxuniq: Exact destinations for index terms. + (line 33) +* iffileexists: Auxiliary files. (line 10) +* ifpdf <1>: Introduction to hyperlinks. + (line 49) +* ifpdf: Checking for PDF output. + (line 10) +* ifrewritetocfile: Contents. (line 61) +* ifundefined: \ifundefined. (line 6) +* indexfilebasename: Typesetting an index. + (line 11) +* indexfonts: Typesetting an index. + (line 24) +* indexitem hook: Typesetting an index. + (line 49) +* indexprooffont: Proofing index terms. + (line 12) +* indexproofterm: Proofing index terms. + (line 12) +* indexproofunbox: Proofing index terms. + (line 28) +* indexsee <1>: Hyperlinks in see and see also entries. + (line 8) +* indexsee: Customizing indexing. + (line 55) +* indexseealso <1>: Hyperlinks in see and see also entries. + (line 8) +* indexseealso: Customizing indexing. + (line 55) +* indexseealsowords: Customizing indexing. + (line 55) +* indexseeword: Customizing indexing. + (line 55) +* indexsetmargins: Proofing index terms. + (line 21) +* indexspace: Typesetting an index. + (line 54) +* innerdef: Allocation macros. (line 26) +* innerinnerdef: Allocation macros. (line 37) +* innernewbox: Allocation macros. (line 21) +* innernewcount: Allocation macros. (line 21) +* innernewdimen: Allocation macros. (line 21) +* innernewfam: Allocation macros. (line 21) +* innernewhelp: Allocation macros. (line 21) +* innernewif: Allocation macros. (line 21) +* innernewinsert: Allocation macros. (line 21) +* innernewlanguage: Allocation macros. (line 21) +* innernewread: Allocation macros. (line 22) +* innernewskip: Allocation macros. (line 22) +* innernewtoks: Allocation macros. (line 22) +* innernewwrite: Allocation macros. (line 22) +* insidemargin: Proofing index terms. + (line 21) +* interfootnoteskip: Footnotes. (line 29) +* interitemskip: Formatting lists. (line 30) +* interitemskipamount: Formatting lists. (line 14) +* item in indexes: Typesetting an index. + (line 35) +* itemletter: Formatting lists. (line 44) +* itemnumber: Formatting lists. (line 44) +* ituline: Page list and page range parsers. + (line 26) +* jobname <1>: Auxiliary files. (line 9) +* jobname <2>: Typesetting an index. + (line 11) +* jobname: Citations. (line 17) +* LAMSTeX: Logos. (line 10) +* LaTeX: Logos. (line 10) +* lbracechar: Category codes. (line 59) +* left (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 59) +* left (destination option): Destination types for pdftex and dvipdfm. + (line 11) +* leftdisplayindent: Displays. (line 11) +* leftdisplays: Displays. (line 10) +* leftdisplaysetup: Formatting displays. (line 8) +* leftmargin: Margins. (line 18) +* leqalignno: Displays. (line 19) +* letreturn: Category codes. (line 41) +* letter: Category codes. (line 10) +* lft: Arrows and morphisms. + (line 15) +* li: Lists. (line 30) +* li (hyperlinks): List hyperlinks. (line 6) +* linenumberedlisting: Verbatim listing. (line 17) +* listcompact: Lists. (line 41) +* listing: Verbatim listing. (line 7) +* listingfont: Verbatim listing. (line 10) +* listleftindent: Formatting lists. (line 18) +* listmarkerspace: Formatting lists. (line 33) +* listrightindent: Formatting lists. (line 18) +* loggingall: Diagnostics. (line 12) +* makeactive: Category codes. (line 13) +* makeatletter: Category codes. (line 22) +* makeatother: Category codes. (line 32) +* makeblankbox: Boxes. (line 12) +* makecolumns: Tables. (line 6) +* makeheadline: Proofing index terms. + (line 28) +* makeindex <1>: Index hyperlinks. (line 12) +* makeindex <2>: Indexing. (line 14) +* makeindex: Invoking Eplain. (line 101) +* mapdown: Arrows and morphisms. + (line 13) +* mapleft: Arrows and morphisms. + (line 6) +* mapright: Arrows and morphisms. + (line 6) +* mapup: Arrows and morphisms. + (line 13) +* matrix: Construction of commutative diagrams. + (line 10) +* MF: Logos. (line 10) +* miniltx.tex: Loading LaTeX packages. + (line 14) +* monthname: Time of day. (line 10) +* morphdist <1>: Commutative diagram parameters. + (line 32) +* morphdist: Arrows and morphisms. + (line 33) +* name (hyperlink type): Link types for pdftex and dvipdfm. + (line 18) +* new...: Allocation macros. (line 9) +* newwin (hyperlink option) <1>: Link options for pdftex and dvipdfm. + (line 90) +* newwin (hyperlink option): Link types for pdftex and dvipdfm. + (line 35) +* noarrow: Invoking Eplain. (line 82) +* noauxfile: Invoking Eplain. (line 87) +* nobibtex: Invoking Eplain. (line 71) +* nocite: Citations. (line 53) +* normalbaselineskip: Options supported by all drivers. + (line 19) +* num (hyperlink type): Link types for pdftex and dvipdfm. + (line 88) +* numberedfootnote: Footnotes. (line 7) +* numberedfootnote (hyperlinks): Footnote hyperlinks. (line 6) +* numberedlist: Lists. (line 14) +* numberedlistdepth: Formatting lists. (line 41) +* numberedmarker: Formatting lists. (line 37) +* numbername: Writing out numbers. (line 6) +* obeywhitespace: Obeying spaces. (line 6) +* orderedlist: Lists. (line 14) +* other: Category codes. (line 10) +* outer: Allocation macros. (line 12) +* outsidemargin: Proofing index terms. + (line 21) +* page (hyperlink type): Link types for pdftex and dvipdfm. + (line 25) +* pagefit (hyperlink option) <1>: Link options for pdftex and dvipdfm. + (line 109) +* pagefit (hyperlink option): Link types for pdftex and dvipdfm. + (line 26) +* pageno: Proofing index terms. + (line 21) +* pagetotal: Multiple columns. (line 14) +* paperheight: Margins. (line 45) +* paperwidth: Margins. (line 48) +* parindent in indexes: Typesetting an index. + (line 24) +* path: Paths. (line 13) +* pdfoutput: Checking for PDF output. + (line 20) +* pdftex <1>: Introduction to hyperlinks. + (line 34) +* pdftex <2>: Checking for PDF output. + (line 6) +* pdftex: Invoking Eplain. (line 113) +* percentchar: Category codes. (line 56) +* phantomeqlabel: Equation reference hyperlinks. + (line 14) +* phantomeqnumber: Equation reference hyperlinks. + (line 14) +* pict2e.sty: Packages known not to work. + (line 9) +* previouseverydisplay: Formatting displays. (line 15) +* printbetweencitations: Formatting citations. + (line 21) +* printcitefinish: Formatting citations. + (line 16) +* printcitenote: Formatting citations. + (line 27) +* printcitestart: Formatting citations. + (line 16) +* printitem: Formatting lists. (line 52) +* psfrag.sty: Packages known to work. + (line 30) +* quadcolumns: Multiple columns. (line 7) +* raggedright for index entries: Typesetting an index. + (line 45) +* raise (hyperlink option) <1>: Setting group options. + (line 34) +* raise (hyperlink option): Options supported by all drivers. + (line 13) +* raw (destination type): Destination types for pdftex and dvipdfm. + (line 79) +* raw (hyperlink type): Link types for pdftex and dvipdfm. + (line 62) +* rbracechar: Category codes. (line 60) +* readindexfile: Typesetting an index. + (line 6) +* readindexfile (hyperlinks): Index hyperlinks. (line 9) +* readtocfile: Contents. (line 42) +* ref: Using generic references. + (line 17) +* ref (hyperlinks): Cross-reference hyperlinks. + (line 19) +* refn: Using generic references. + (line 9) +* refn (hyperlinks): Cross-reference hyperlinks. + (line 14) +* refs: Using generic references. + (line 23) +* refs (hyperlinks): Cross-reference hyperlinks. + (line 26) +* refspace <1>: Page reference hyperlinks. + (line 10) +* refspace: Cross-reference hyperlinks. + (line 24) +* reftie <1>: Equation reference hyperlinks. + (line 20) +* reftie: Cross-reference hyperlinks. + (line 16) +* resetatcatcode: Category codes. (line 23) +* rewritetocfile (conditional): Contents. (line 61) +* right (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 63) +* right (destination option): Destination types for pdftex and dvipdfm. + (line 65) +* rightmargin: Margins. (line 18) +* rt: Arrows and morphisms. + (line 14) +* sanitize: Converting to characters. + (line 21) +* sarrowlength <1>: Commutative diagram parameters. + (line 17) +* sarrowlength: Arrows and morphisms. + (line 28) +* sed: Customizing indexing. + (line 66) +* see for index entries <1>: Customizing indexing. + (line 64) +* see for index entries: Modifying index entries. + (line 36) +* seealso for index entries: Modifying index entries. + (line 49) +* seevariant: Customizing indexing. + (line 55) +* setidxpagelistdelimiter: Page list and page range parsers. + (line 14) +* setidxpagerangedelimiter: Page list and page range parsers. + (line 14) +* setproperty: Properties. (line 13) +* setuplistinghook: Verbatim listing. (line 13) +* sidx: Indexing commands. (line 8) +* sidxmarked: Indexing commands. (line 29) +* sidxname: Indexing commands. (line 19) +* sidxsubmarked: Indexing commands. (line 40) +* singlecolumn: Multiple columns. (line 9) +* sline: Arrows and morphisms. + (line 23) +* SLiTeX: Logos. (line 11) +* special: Introduction to hyperlinks. + (line 8) +* specialpathdelimiters (conditional): Paths. (line 26) +* subeqnumber: Subequation references. + (line 15) +* subitem in indexes: Typesetting an index. + (line 35) +* subsubitem in indexes: Typesetting an index. + (line 35) +* testfileexistence: Auxiliary files. (line 8) +* TeX: Logos. (line 6) +* texi2dvi <1>: Indexing. (line 34) +* texi2dvi <2>: Citations. (line 97) +* texi2dvi: Invoking Eplain. (line 101) +* timestamp: Time of day. (line 18) +* timestring: Time of day. (line 16) +* toc...entry: Contents. (line 16) +* tocfilebasename: Contents. (line 67) +* today: Time of day. (line 21) +* top (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 67) +* top (destination option): Destination types for pdftex and dvipdfm. + (line 11) +* topmargin: Margins. (line 18) +* tracingall: Diagnostics. (line 9) +* tracingboxes: Diagnostics. (line 17) +* tracingoff: Diagnostics. (line 19) +* trimsee: Customizing indexing. + (line 67) +* triplecolumns: Multiple columns. (line 7) +* uncatcodespecials: Category codes. (line 51) +* unorderedlist: Lists. (line 22) +* unorderedlistdepth: Formatting lists. (line 41) +* unorderedmarker: Formatting lists. (line 37) +* url (hyperlink type): Link types for pdftex and dvipdfm. + (line 56) +* url (hyperlinks): URL hyperlinks. (line 6) +* url.sty <1>: URL hyperlinks. (line 6) +* url.sty: Packages known to work. + (line 41) +* usepackage: The \usepackage command. + (line 6) +* varrowlength <1>: Commutative diagram parameters. + (line 14) +* varrowlength: Arrows and morphisms. + (line 28) +* vchannel: Commutative diagram parameters. + (line 39) +* verbatim: Verbatim listing. (line 23) +* verbatimescapechar: Verbatim listing. (line 36) +* vgrid <1>: Commutative diagram parameters. + (line 51) +* vgrid: Construction of commutative diagrams. + (line 109) +* vline: Arrows and morphisms. + (line 81) +* vmorphposn <1>: Commutative diagram parameters. + (line 26) +* vmorphposn: Arrows and morphisms. + (line 33) +* vmorphposndn <1>: Commutative diagram parameters. + (line 28) +* vmorphposndn: Arrows and morphisms. + (line 38) +* vmorphposnlft <1>: Commutative diagram parameters. + (line 29) +* vmorphposnlft: Arrows and morphisms. + (line 39) +* vmorphposnrt <1>: Commutative diagram parameters. + (line 28) +* vmorphposnrt: Arrows and morphisms. + (line 38) +* vmorphposnup <1>: Commutative diagram parameters. + (line 28) +* vmorphposnup: Arrows and morphisms. + (line 38) +* vpenalty: Mode-specific penalties. + (line 9) +* vruledefaultwidth: Rules. (line 10) +* width (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 40) +* width (destination option): Destination types for pdftex and dvipdfm. + (line 60) +* width (hyperlink option): Link options for pdftex and dvipdfm. + (line 130) +* writenumberedtocentry: Contents. (line 19) +* writetocentry: Contents. (line 14) +* xcolor.sty: Packages known not to work. + (line 12) +* xeplain.tex: Introduction. (line 6) +* xrdef: Page references. (line 10) +* xrdef (hyperlinks): Page reference hyperlinks. + (line 6) +* xref: Page references. (line 14) +* xref (hyperlinks): Page reference hyperlinks. + (line 10) +* xrefn: Using generic references. + (line 10) +* xrefn (hyperlinks): Cross-reference hyperlinks. + (line 14) +* xrefpageword <1>: Page reference hyperlinks. + (line 10) +* xrefpageword: Page references. (line 17) +* xrefwarning conditional: Using generic references. + (line 15) +* xrefwarningfalse: Citations. (line 73) +* xrlabel: Converting to characters. + (line 6) +* xyz (destination type): Destination types for pdftex and dvipdfm. + (line 7) +* zoom (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 21) +* zoom (destination option): Destination types for pdftex and dvipdfm. + (line 7) + + +File: eplain.info, Node: Concept index, Prev: Macro index, Up: Top + +Concept index +************* + + +* Menu: + +* active characters: Category codes. (line 12) +* after index terms: Customizing indexing. + (line 6) +* alignments: Tables. (line 6) +* all groups, specifying: Setting group types. (line 26) +* allocation macros: Allocation macros. (line 6) +* alphanumeric references: Citations. (line 116) +* AMSLaTeX: Logos. (line 10) +* AMSTeX: Logos. (line 10) +* AMSTeX conflicts: Invoking Eplain. (line 90) +* arguments, ignoring: Macro arguments. (line 6) +* arrows: Arrows and morphisms. + (line 6) +* atom: Properties. (line 6) +* axuiliary files, existence of: Auxiliary files. (line 6) +* backslash character: Category codes. (line 15) +* balancing of columns with \singlecolumn: Multiple columns. (line 11) +* Berry, Karl: Introduction. (line 28) +* beveled hyperlink border: Link options for pdftex and dvipdfm. + (line 26) +* bibliographies: Citations. (line 6) +* bibliography fonts: Formatting bibliographies. + (line 30) +* bibliography items, extra space between: Formatting bibliographies. + (line 55) +* bibliography, formatting the: Formatting bibliographies. + (line 6) +* bibliography, hyperlinks: Citation hyperlinks. (line 11) +* BibTeX <1>: Logos. (line 10) +* BibTeX: Citations. (line 9) +* black boxes: Boxes. (line 6) +* Borceux, Francis: Construction of commutative diagrams. + (line 80) +* border color, hyperlink: Link options for pdftex and dvipdfm. + (line 14) +* border style, hyperlink: Link options for pdftex and dvipdfm. + (line 20) +* border width, hyperlink: Link options for pdftex and dvipdfm. + (line 50) +* Bott, Raoul: Construction of commutative diagrams. + (line 13) +* boxes, open: Boxes. (line 12) +* Brockett, Roger W.: Construction of commutative diagrams. + (line 38) +* Butterfly Lemma: Construction of commutative diagrams. + (line 122) +* Carlisle, David: Loading LaTeX packages. + (line 14) +* category codes: Category codes. (line 6) +* centering: Justification. (line 6) +* characters, converting to: Converting to characters. + (line 6) +* citations: Citations. (line 6) +* citations, formatting: Formatting citations. + (line 6) +* citations, hyperlinks: Citation hyperlinks. (line 6) +* citations, undefined: Citations. (line 43) +* color: Packages known to work. + (line 25) +* color, hyperlink border: Link options for pdftex and dvipdfm. + (line 14) +* color, hyperlinks: Options supported by all drivers. + (line 37) +* column balancing with \singlecolumn: Multiple columns. (line 11) +* column eject: Multiple columns. (line 14) +* commas after index terms: Customizing indexing. + (line 6) +* commas in cross-referencing index entries: Customizing indexing. + (line 64) +* commutative diagrams: Commutative diagrams. + (line 6) +* contents: Contents. (line 6) +* contents, hyperlinks: Contents hyperlinks. (line 6) +* continued index entries: Typesetting an index. + (line 35) +* covering homotopy property: Construction of commutative diagrams. + (line 13) +* cross-references: Cross-references. (line 6) +* cross-references, defining general <1>: Using generic references. + (line 6) +* cross-references, defining general: Defining generic references. + (line 6) +* cross-references, hyperlinks: Cross-reference hyperlinks. + (line 6) +* cross-referencing index entries <1>: Customizing indexing. + (line 64) +* cross-referencing index entries: Modifying index entries. + (line 36) +* cube: Construction of commutative diagrams. + (line 90) +* customizing indexing: Customizing indexing. + (line 6) +* dashed hyperlink border: Link options for pdftex and dvipdfm. + (line 20) +* date: Time of day. (line 6) +* default hyperlink options <1>: Setting group types. (line 17) +* default hyperlink options: Setting hyperlink types and options. + (line 6) +* default hyperlink type <1>: Setting group types. (line 17) +* default hyperlink type: Setting hyperlink types and options. + (line 6) +* defining general references <1>: Using generic references. + (line 6) +* defining general references: Defining generic references. + (line 6) +* definitions, global: Category codes. (line 38) +* destgroup: Implicit hyperlinks. (line 10) +* destgroup `bib': Citation hyperlinks. (line 11) +* destgroup `definexref': Cross-reference hyperlinks. + (line 6) +* destgroup `eq': Equation reference hyperlinks. + (line 6) +* destgroup `foot': Footnote hyperlinks. (line 6) +* destgroup `footback': Footnote hyperlinks. (line 6) +* destgroup `idx': Index hyperlinks. (line 6) +* destgroup `li': List hyperlinks. (line 6) +* destgroup `xrdef': Page reference hyperlinks. + (line 6) +* destgroup, options <1>: Setting group options. + (line 6) +* destgroup, options: Setting hyperlink types and options. + (line 12) +* destgroup, type <1>: Setting group types. (line 6) +* destgroup, type: Setting hyperlink types and options. + (line 12) +* destination group: Implicit hyperlinks. (line 10) +* destination options: Introduction to hyperlinks. + (line 102) +* destination options, common: Options supported by all drivers. + (line 12) +* destination options, dvipdfm: Destination options for pdftex and dvipdfm. + (line 6) +* destination options, pdftex: Destination options for pdftex and dvipdfm. + (line 6) +* destination type: Introduction to hyperlinks. + (line 85) +* destination types, dvipdfm: Destination types for pdftex and dvipdfm. + (line 6) +* destination types, pdftex: Destination types for pdftex and dvipdfm. + (line 6) +* destinations, default options <1>: Setting group types. (line 17) +* destinations, default options: Setting hyperlink types and options. + (line 6) +* destinations, default type <1>: Setting group types. (line 17) +* destinations, default type: Setting hyperlink types and options. + (line 6) +* destinations, dimensions: Destination options for pdftex and dvipdfm. + (line 34) +* destinations, disabling <1>: Turning hyperlinks on/off. + (line 6) +* destinations, disabling: Hyperlink driver nolinks. + (line 6) +* destinations, group options <1>: Setting group options. + (line 6) +* destinations, group options: Setting hyperlink types and options. + (line 12) +* destinations, group type <1>: Setting group types. (line 6) +* destinations, group type: Setting hyperlink types and options. + (line 12) +* destinations, in another file: Link types for pdftex and dvipdfm. + (line 33) +* destinations, large operators <1>: Setting group options. + (line 34) +* destinations, large operators: Options supported by all drivers. + (line 27) +* destinations, magnification: Destination options for pdftex and dvipdfm. + (line 21) +* destinations, named: Link types for pdftex and dvipdfm. + (line 18) +* destinations, numbered: Link types for pdftex and dvipdfm. + (line 88) +* destinations, page: Link types for pdftex and dvipdfm. + (line 25) +* destinations, raising: Options supported by all drivers. + (line 13) +* destinations, URL: Link types for pdftex and dvipdfm. + (line 56) +* diagnostics: Diagnostics. (line 6) +* Diagram, macros for LaTeX: Construction of commutative diagrams. + (line 80) +* dimensions, hyperlink: Link options for pdftex and dvipdfm. + (line 124) +* dimensions, hyperlink destination: Destination options for pdftex and dvipdfm. + (line 34) +* disabling hyperlinks <1>: Turning hyperlinks on/off. + (line 6) +* disabling hyperlinks: Hyperlink driver nolinks. + (line 6) +* displayed math and hyperlinks <1>: Setting group options. + (line 34) +* displayed math and hyperlinks: Options supported by all drivers. + (line 27) +* displays, left-justifying: Displays. (line 6) +* double column output: Multiple columns. (line 6) +* double columns in indexes: Typesetting an index. + (line 24) +* driver dvipdfm: Hyperlink drivers pdftex and dvipdfm. + (line 6) +* driver nolinks: Hyperlink driver nolinks. + (line 6) +* driver pdftex: Hyperlink drivers pdftex and dvipdfm. + (line 6) +* drivers, hyperlink: Introduction to hyperlinks. + (line 6) +* dvipdfm, destination options: Destination options for pdftex and dvipdfm. + (line 6) +* dvipdfm, destination types: Destination types for pdftex and dvipdfm. + (line 6) +* dvipdfm, hyperlink driver: Hyperlink drivers pdftex and dvipdfm. + (line 6) +* dvipdfm, link options: Link options for pdftex and dvipdfm. + (line 6) +* dvipdfm, link types: Link types for pdftex and dvipdfm. + (line 6) +* eject in multicolumns: Multiple columns. (line 14) +* electronic mail addresses, breaking <1>: Packages known to work. + (line 43) +* electronic mail addresses, breaking: Paths. (line 6) +* empty equation labels: Equation references. (line 22) +* empty equation labels, referring to: Equation references. (line 27) +* emtex, installation under: Installation. (line 48) +* Encapsulated PostScript: Packages known to work. + (line 32) +* environments, user-defined: User-defined environments. + (line 6) +* Eplain, installing: Installation. (line 6) +* Eplain, invoking: Invoking Eplain. (line 6) +* Eplain, purpose of: Introduction. (line 6) +* EPS: Packages known to work. + (line 32) +* equation labels, characters valid in: Equation references. (line 56) +* equation numbers, formatting of: Formatting equation references. + (line 6) +* equations, giving numbers to all: Equation references. (line 22) +* equations, groups of: Subequation references. + (line 6) +* equations, hyperlinks: Equation reference hyperlinks. + (line 6) +* equations, numbering: Equation references. (line 6) +* equations, references to: Equation references. (line 6) +* error messages: Diagnostics. (line 25) +* escape character, changing verbatim: Verbatim listing. (line 36) +* exact index hyperlinks: Exact destinations for index terms. + (line 28) +* expansion, one-level: \expandonce. (line 6) +* explicit hyperlinks: Explicit hyperlinks. (line 6) +* file, hyperlink to: Link types for pdftex and dvipdfm. + (line 33) +* filenames, breaking <1>: Packages known to work. + (line 43) +* filenames, breaking: Paths. (line 6) +* files, verbatim listing of: Verbatim listing. (line 6) +* filtering index entries with hyperlinks: Exact destinations for index terms. + (line 33) +* footnotes, hyperlinks: Footnote hyperlinks. (line 6) +* footnotes, numbered: Footnotes. (line 6) +* for loops: Iteration. (line 6) +* format file: Installation. (line 12) +* formatting index entries: Typesetting an index. + (line 35) +* fractions: Fractions. (line 6) +* gobbling arguments: Macro arguments. (line 6) +* golden mean: Construction of commutative diagrams. + (line 59) +* Graham, Ronald L.: Citations. (line 86) +* graphics collection, LaTeX <1>: Hyperlink driver nolinks. + (line 34) +* graphics collection, LaTeX <2>: Packages known to work. + (line 25) +* graphics collection, LaTeX: Loading LaTeX packages. + (line 14) +* grid: Construction of commutative diagrams. + (line 80) +* group `' (empty): Setting group types. (line 17) +* group `*': Setting group types. (line 26) +* group `bib': Citation hyperlinks. (line 11) +* group `cite': Citation hyperlinks. (line 6) +* group `definexref': Cross-reference hyperlinks. + (line 6) +* group `eq' <1>: Setting group options. + (line 35) +* group `eq': Equation reference hyperlinks. + (line 6) +* group `foot': Footnote hyperlinks. (line 6) +* group `footback': Footnote hyperlinks. (line 6) +* group `idx': Index hyperlinks. (line 6) +* group `li': List hyperlinks. (line 6) +* group `ref': Cross-reference hyperlinks. + (line 11) +* group `url': URL hyperlinks. (line 6) +* group `xrdef': Page reference hyperlinks. + (line 6) +* group `xref': Page reference hyperlinks. + (line 10) +* group option list: Setting group options. + (line 49) +* group, destination: Implicit hyperlinks. (line 10) +* group, disabling hyperlinks: Turning hyperlinks on/off for a group. + (line 6) +* group, link: Implicit hyperlinks. (line 10) +* group, options hyperlink <1>: Setting group options. + (line 6) +* group, options hyperlink: Setting hyperlink types and options. + (line 12) +* group, preserving option list: Setting group options. + (line 22) +* group, type hyperlink <1>: Setting group types. (line 6) +* group, type hyperlink: Setting hyperlink types and options. + (line 12) +* groups, specifying all: Setting group types. (line 26) +* help messages: Diagnostics. (line 25) +* highlight modes, hyperlink: Link options for pdftex and dvipdfm. + (line 69) +* hooks: Hooks. (line 6) +* hyperlink border color: Link options for pdftex and dvipdfm. + (line 14) +* hyperlink destination, dimensions: Destination options for pdftex and dvipdfm. + (line 34) +* hyperlink destination, magnification: Destination options for pdftex and dvipdfm. + (line 21) +* hyperlink destination, named: Link types for pdftex and dvipdfm. + (line 18) +* hyperlink destination, numbered: Link types for pdftex and dvipdfm. + (line 88) +* hyperlink destination, page: Link types for pdftex and dvipdfm. + (line 25) +* hyperlink destination, raising: Options supported by all drivers. + (line 13) +* hyperlink dimensions: Link options for pdftex and dvipdfm. + (line 124) +* hyperlink driver dvipdfm: Hyperlink drivers pdftex and dvipdfm. + (line 6) +* hyperlink driver nolinks: Hyperlink driver nolinks. + (line 6) +* hyperlink driver pdftex: Hyperlink drivers pdftex and dvipdfm. + (line 6) +* hyperlink drivers: Introduction to hyperlinks. + (line 6) +* hyperlink group, disabling hyperlinks: Turning hyperlinks on/off for a group. + (line 6) +* hyperlink group, preserving option list: Setting group options. + (line 22) +* hyperlink options, common: Options supported by all drivers. + (line 6) +* hyperlinks, bibliography: Citation hyperlinks. (line 11) +* hyperlinks, border style: Link options for pdftex and dvipdfm. + (line 20) +* hyperlinks, border width: Link options for pdftex and dvipdfm. + (line 50) +* hyperlinks, citations: Citation hyperlinks. (line 6) +* hyperlinks, cross-references: Cross-reference hyperlinks. + (line 6) +* hyperlinks, default options <1>: Setting group types. (line 17) +* hyperlinks, default options: Setting hyperlink types and options. + (line 6) +* hyperlinks, default type <1>: Setting group types. (line 17) +* hyperlinks, default type: Setting hyperlink types and options. + (line 6) +* hyperlinks, disabling <1>: Turning hyperlinks on/off. + (line 6) +* hyperlinks, disabling: Hyperlink driver nolinks. + (line 6) +* hyperlinks, equations: Equation reference hyperlinks. + (line 6) +* hyperlinks, explicit: Explicit hyperlinks. (line 6) +* hyperlinks, filtering index entries: Exact destinations for index terms. + (line 33) +* hyperlinks, footnotes: Footnote hyperlinks. (line 6) +* hyperlinks, group option list: Setting group options. + (line 49) +* hyperlinks, group options <1>: Setting group options. + (line 6) +* hyperlinks, group options: Setting hyperlink types and options. + (line 12) +* hyperlinks, group type <1>: Setting group types. (line 6) +* hyperlinks, group type: Setting hyperlink types and options. + (line 12) +* hyperlinks, highlight mode: Link options for pdftex and dvipdfm. + (line 69) +* hyperlinks, implicit: Implicit hyperlinks. (line 6) +* hyperlinks, index: Index hyperlinks. (line 6) +* hyperlinks, index destination placement: Choosing destination placement. + (line 6) +* hyperlinks, index, exact: Exact destinations for index terms. + (line 28) +* hyperlinks, large operators <1>: Setting group options. + (line 34) +* hyperlinks, large operators: Options supported by all drivers. + (line 27) +* hyperlinks, lists: List hyperlinks. (line 6) +* hyperlinks, opening in a new window: Link options for pdftex and dvipdfm. + (line 90) +* hyperlinks, page references: Page reference hyperlinks. + (line 6) +* hyperlinks, preserving page-breaking: Hyperlink driver nolinks. + (line 6) +* hyperlinks, preserving spacing: Hyperlink driver nolinks. + (line 6) +* hyperlinks, see and see also index entries: Hyperlinks in see and see also entries. + (line 6) +* hyperlinks, table of contents: Contents hyperlinks. (line 6) +* hyperlinks, to another file: Link types for pdftex and dvipdfm. + (line 33) +* hyperlinks, URL <1>: Link types for pdftex and dvipdfm. + (line 56) +* hyperlinks, URL: URL hyperlinks. (line 6) +* hypertext links: Hyperlinks. (line 6) +* ignoring arguments: Macro arguments. (line 6) +* implicit hyperlinks: Implicit hyperlinks. (line 6) +* inaccessible macros: Category codes. (line 19) +* index entries and ranges: Modifying index entries. + (line 22) +* index entries' page numbers, modifying: Modifying index entries. + (line 6) +* index entries, and cross-referencing <1>: Customizing indexing. + (line 64) +* index entries, and cross-referencing: Modifying index entries. + (line 36) +* index entry continuations: Typesetting an index. + (line 35) +* index entry formatting: Typesetting an index. + (line 35) +* index entry general sorting: Indexing commands. (line 51) +* index fonts: Typesetting an index. + (line 24) +* index groupings: Typesetting an index. + (line 54) +* index hyperlink: Index hyperlinks. (line 6) +* index terms, proofing: Proofing index terms. + (line 6) +* index typesetting: Typesetting an index. + (line 6) +* index, choosing destination placement: Choosing destination placement. + (line 6) +* index, destination placement: Choosing destination placement. + (line 6) +* index, exact hyperlinks: Exact destinations for index terms. + (line 28) +* index, hyperlinks in see and see also entries: Hyperlinks in see and see also entries. + (line 6) +* index, parsing page numbers: Page destinations for index terms. + (line 32) +* index, placement of destinations: Choosing destination placement. + (line 6) +* index, selecting destination placement: Choosing destination placement. + (line 6) +* index, underlining page numbers: Page list and page range parsers. + (line 26) +* indexes, multiple: Indexing. (line 37) +* indexing: Indexing. (line 6) +* indexing and trailing spaces: Indexing terms. (line 20) +* indexing commands: Indexing commands. (line 6) +* indexing terms: Indexing terms. (line 6) +* insertion classes: Multiple columns. (line 36) +* inset hyperlink border: Link options for pdftex and dvipdfm. + (line 26) +* installation: Installation. (line 6) +* item labels, changing: Formatting lists. (line 54) +* iteration: Iteration. (line 6) +* justification: Justification. (line 6) +* Knuth, Donald Ervin <1>: Category codes. (line 7) +* Knuth, Donald Ervin: Citations. (line 86) +* labels on items, changing: Formatting lists. (line 54) +* labels, characters valid in: Cross-references. (line 20) +* labels, empty equation: Equation references. (line 22) +* labels, empty equation, referring to: Equation references. (line 27) +* Lamport, Leslie: Introduction. (line 13) +* LAMSTeX: Logos. (line 10) +* Lang, Serge <1>: Construction of commutative diagrams. + (line 122) +* Lang, Serge: Arrows and morphisms. + (line 126) +* large operators and hyperlinks <1>: Setting group options. + (line 34) +* large operators and hyperlinks: Options supported by all drivers. + (line 27) +* LaTeX <1>: Slanted lines and vectors. + (line 7) +* LaTeX <2>: Logos. (line 10) +* LaTeX <3>: Citations. (line 10) +* LaTeX: Introduction. (line 13) +* LaTeX graphics collection <1>: Hyperlink driver nolinks. + (line 34) +* LaTeX graphics collection <2>: Packages known to work. + (line 25) +* LaTeX graphics collection: Loading LaTeX packages. + (line 14) +* LaTeX packages <1>: Packages known not to work. + (line 6) +* LaTeX packages <2>: Packages known to work. + (line 6) +* LaTeX packages: Loading LaTeX packages. + (line 6) +* left-justification: Justification. (line 6) +* left-justification of displays: Displays. (line 6) +* linear systems theory: Construction of commutative diagrams. + (line 38) +* lines: Slanted lines and vectors. + (line 15) +* link group: Implicit hyperlinks. (line 10) +* link options: Introduction to hyperlinks. + (line 102) +* link options, common: Options supported by all drivers. + (line 35) +* link options, dvipdfm: Link options for pdftex and dvipdfm. + (line 6) +* link options, pdftex: Link options for pdftex and dvipdfm. + (line 6) +* link type: Introduction to hyperlinks. + (line 85) +* link types, dvipdfm: Link types for pdftex and dvipdfm. + (line 6) +* link types, pdftex: Link types for pdftex and dvipdfm. + (line 6) +* link, group options <1>: Setting group options. + (line 6) +* link, group options: Setting hyperlink types and options. + (line 12) +* link, group type <1>: Setting group types. (line 6) +* link, group type: Setting hyperlink types and options. + (line 12) +* linkgroup: Implicit hyperlinks. (line 10) +* linkgroup `cite': Citation hyperlinks. (line 6) +* linkgroup `eq' <1>: Setting group options. + (line 35) +* linkgroup `eq': Equation reference hyperlinks. + (line 20) +* linkgroup `foot': Footnote hyperlinks. (line 6) +* linkgroup `footback': Footnote hyperlinks. (line 6) +* linkgroup `idx': Index hyperlinks. (line 6) +* linkgroup `ref': Cross-reference hyperlinks. + (line 11) +* linkgroup `url': URL hyperlinks. (line 6) +* linkgroup `xref': Page reference hyperlinks. + (line 10) +* linkgroup, options <1>: Setting group options. + (line 6) +* linkgroup, options: Setting hyperlink types and options. + (line 12) +* linkgroup, type <1>: Setting group types. (line 6) +* linkgroup, type: Setting hyperlink types and options. + (line 12) +* links, hypertext: Hyperlinks. (line 6) +* list of figures: Contents. (line 69) +* list of tables: Contents. (line 69) +* listing files: Verbatim listing. (line 6) +* lists: Lists. (line 6) +* lists, formatting: Formatting lists. (line 6) +* lists, hyperlinks: List hyperlinks. (line 6) +* logos: Logos. (line 6) +* lookahead without spaces: \futurenonspacelet. (line 6) +* magnification, hyperlink destination: Destination options for pdftex and dvipdfm. + (line 21) +* margins, changing: Margins. (line 6) +* margins, index terms in: Proofing index terms. + (line 6) +* mathematics displays, formatting: Displays. (line 6) +* mathematics displays, hyperlinks <1>: Setting group options. + (line 34) +* mathematics displays, hyperlinks: Options supported by all drivers. + (line 27) +* Metafont: Logos. (line 10) +* minimal realizations: Construction of commutative diagrams. + (line 38) +* modifying index entries' page numbers: Modifying index entries. + (line 6) +* morphisms: Arrows and morphisms. + (line 6) +* multiple column output: Multiple columns. (line 6) +* multiple indexes: Indexing. (line 37) +* named destination: Link types for pdftex and dvipdfm. + (line 18) +* names, of TeX variants: Logos. (line 6) +* new window, opening hyperlink in: Link options for pdftex and dvipdfm. + (line 90) +* newlinechar: Diagnostics. (line 27) +* newlines, obeying: Obeying spaces. (line 6) +* nolinks, hyperlink driver: Hyperlink driver nolinks. + (line 6) +* numbered destination: Link types for pdftex and dvipdfm. + (line 88) +* numbered lists: Lists. (line 6) +* numbered references: Citations. (line 86) +* numbers, written form of: Writing out numbers. (line 6) +* Oberdiek, Heiko: Checking for PDF output. + (line 24) +* omitting hyperlinks <1>: Turning hyperlinks on/off. + (line 6) +* omitting hyperlinks: Hyperlink driver nolinks. + (line 6) +* open boxes: Boxes. (line 12) +* option list, group: Setting group options. + (line 49) +* option list, preserving for group: Setting group options. + (line 22) +* options, destination, common: Options supported by all drivers. + (line 12) +* options, destination, dvipdfm: Destination options for pdftex and dvipdfm. + (line 6) +* options, destination, pdftex: Destination options for pdftex and dvipdfm. + (line 6) +* options, link and destination: Introduction to hyperlinks. + (line 102) +* options, link, common: Options supported by all drivers. + (line 35) +* options, link, dvipdfm: Link options for pdftex and dvipdfm. + (line 6) +* options, link, pdftex: Link options for pdftex and dvipdfm. + (line 6) +* ordered list: Lists. (line 6) +* output routine and index proofing: Proofing index terms. + (line 28) +* packages, LaTeX <1>: Packages known not to work. + (line 6) +* packages, LaTeX <2>: Packages known to work. + (line 6) +* packages, LaTeX: Loading LaTeX packages. + (line 6) +* page destination: Link types for pdftex and dvipdfm. + (line 25) +* page list, parsing: Page destinations for index terms. + (line 32) +* page range, parsing: Page destinations for index terms. + (line 32) +* page reference hyperlink: Page reference hyperlinks. + (line 6) +* page-breaking, preserving with hyperlinks: Hyperlink driver nolinks. + (line 6) +* parsing page numbers: Page destinations for index terms. + (line 32) +* Patashnik, Oren: Citations. (line 9) +* pathnames, breaking <1>: Packages known to work. + (line 43) +* pathnames, breaking: Paths. (line 6) +* PDF output: Checking for PDF output. + (line 6) +* pdftex, destination options: Destination options for pdftex and dvipdfm. + (line 6) +* pdftex, destination types: Destination types for pdftex and dvipdfm. + (line 6) +* pdftex, hyperlink driver: Hyperlink drivers pdftex and dvipdfm. + (line 6) +* pdftex, link options: Link options for pdftex and dvipdfm. + (line 6) +* pdftex, link types: Link types for pdftex and dvipdfm. + (line 6) +* picture mode <1>: Slanted lines and vectors. + (line 7) +* picture mode: Packages known to work. + (line 14) +* PostScript point <1>: Link options for pdftex and dvipdfm. + (line 50) +* PostScript point <2>: Destination options for pdftex and dvipdfm. + (line 49) +* PostScript point: Destination types for pdftex and dvipdfm. + (line 66) +* proofing index terms: Proofing index terms. + (line 6) +* properties: Properties. (line 6) +* quadruple column output: Multiple columns. (line 6) +* Rahtz, Sebastian: Loading LaTeX packages. + (line 14) +* raising hyperlink destinations <1>: Setting group options. + (line 34) +* raising hyperlink destinations: Options supported by all drivers. + (line 13) +* ranges and index entry: Modifying index entries. + (line 22) +* rectangles: Boxes. (line 6) +* references, alphanumeric: Citations. (line 116) +* references, defining general <1>: Using generic references. + (line 6) +* references, defining general: Defining generic references. + (line 6) +* references, numbered: Citations. (line 86) +* register allocation: Allocation macros. (line 6) +* return character: Category codes. (line 41) +* right-justification: Justification. (line 6) +* rms: Introduction. (line 14) +* rotation: Packages known to work. + (line 25) +* rule thickness: Rules. (line 7) +* scaling: Packages known to work. + (line 25) +* see also index entries and hyperlinks: Hyperlinks in see and see also entries. + (line 6) +* see also index entries and sorting: Customizing indexing. + (line 51) +* see, and index entries <1>: Customizing indexing. + (line 64) +* see, and index entries: Modifying index entries. + (line 36) +* see, and index entries, hyperlinks: Hyperlinks in see and see also entries. + (line 6) +* silent indexing: Indexing terms. (line 6) +* skipping tokens: \ifundefined. (line 10) +* SLiTeX: Logos. (line 11) +* Snake Lemma: Arrows and morphisms. + (line 130) +* solid hyperlink border: Link options for pdftex and dvipdfm. + (line 26) +* sorting an index: Indexing. (line 6) +* sorting of index entries: Indexing commands. (line 51) +* space above index entries: Typesetting an index. + (line 35) +* spaces, ignoring: \futurenonspacelet. (line 6) +* spaces, obeying: Obeying spaces. (line 6) +* spaces, trailing and indexing commands: Indexing terms. (line 20) +* spacing, preserving with hyperlinks: Hyperlink driver nolinks. + (line 6) +* Stallman, Richard: Introduction. (line 14) +* style, hyperlink border: Link options for pdftex and dvipdfm. + (line 26) +* subequations, referring to: Subequation references. + (line 6) +* subterm in indexing: Indexing terms. (line 13) +* table of contents: Contents. (line 6) +* table of contents, hyperlinks: Contents hyperlinks. (line 6) +* table of contents, short <1>: Macro arguments. (line 10) +* table of contents, short: Contents. (line 54) +* tables: Tables. (line 6) +* tabs: Obeying spaces. (line 22) +* Texinfo: Introduction. (line 13) +* time of day: Time of day. (line 6) +* tracing: Diagnostics. (line 6) +* trailing spaces and indexing commands: Indexing terms. (line 20) +* triple column output: Multiple columns. (line 6) +* Tu, Loring W.: Construction of commutative diagrams. + (line 13) +* type, link and destination: Introduction to hyperlinks. + (line 85) +* types, destination, dvipdfm: Destination types for pdftex and dvipdfm. + (line 6) +* types, destination, pdftex: Destination types for pdftex and dvipdfm. + (line 6) +* types, link, dvipdfm: Link types for pdftex and dvipdfm. + (line 6) +* types, link, pdftex: Link types for pdftex and dvipdfm. + (line 6) +* typesetting an index: Typesetting an index. + (line 6) +* undefined control sequence, checking for: \ifundefined. (line 10) +* undefined labels, warnings about: Installation. (line 25) +* underline hyperlink border: Link options for pdftex and dvipdfm. + (line 26) +* underlining page numbers in index: Page list and page range parsers. + (line 26) +* universal mapping property: Construction of commutative diagrams. + (line 25) +* unordered lists: Lists. (line 6) +* URL for ifpdf.sty: Checking for PDF output. + (line 24) +* URL for MakeIndex: Indexing. (line 14) +* URL for path.sty: Paths. (line 31) +* URL for pdfTeX: Checking for PDF output. + (line 6) +* URL for texnames.sty: Logos. (line 14) +* URL hyperlink <1>: Link types for pdftex and dvipdfm. + (line 56) +* URL hyperlink: URL hyperlinks. (line 6) +* user-inaccessible macros: Category codes. (line 19) +* vectors: Slanted lines and vectors. + (line 15) +* verbatim listing: Verbatim listing. (line 6) +* version number: Introduction. (line 47) +* Warner, Frank W.: Construction of commutative diagrams. + (line 25) +* whatsits made by index entries: Indexing commands. (line 63) +* whatsits, made by hyperlinks: Hyperlink driver nolinks. + (line 25) +* whitespace: Obeying spaces. (line 6) +* width, hyperlink border: Link options for pdftex and dvipdfm. + (line 50) +* Zassenhaus, Hans: Construction of commutative diagrams. + (line 122) +* zooming, hyperlink destination: Destination options for pdftex and dvipdfm. + (line 21) + + + +Tag Table: +Node: Top745 +Node: Introduction6915 +Node: Installation9557 +Node: Invoking Eplain11603 +Node: User definitions16060 +Node: Diagnostics17887 +Node: Rules19456 +Node: Citations20289 +Node: Formatting citations26131 +Node: Formatting bibliographies27677 +Node: Displays30506 +Node: Formatting displays31553 +Node: Time of day32225 +Node: Lists32986 +Node: Formatting lists35143 +Node: Verbatim listing37439 +Node: Contents39568 +Node: Cross-references43314 +Node: Defining generic references44798 +Node: Using generic references45676 +Node: Page references46967 +Node: Equation references47790 +Node: Formatting equation references50542 +Node: Subequation references52837 +Node: Indexing54758 +Node: Indexing terms56759 +Node: Indexing commands57830 +Node: Modifying index entries60859 +Node: Proofing index terms63559 +Node: Typesetting an index65358 +Node: Customizing indexing67825 +Node: Justification71524 +Node: Tables73205 +Node: Margins75757 +Node: Multiple columns77918 +Node: Footnotes79903 +Node: Fractions82491 +Node: Paths83278 +Node: Logos84883 +Node: Boxes85570 +Node: Checking for PDF output87368 +Node: Loading LaTeX packages88459 +Node: The \usepackage command89808 +Node: Environment for loading packages90898 +Node: Packages known to work91877 +Node: Packages known not to work94336 +Node: Hyperlinks94837 +Node: Introduction to hyperlinks95420 +Node: Explicit hyperlinks100808 +Node: Implicit hyperlinks102761 +Node: URL hyperlinks104418 +Node: Citation hyperlinks105171 +Node: List hyperlinks105903 +Node: Cross-reference hyperlinks106297 +Node: Page reference hyperlinks107677 +Node: Equation reference hyperlinks108341 +Node: Index hyperlinks109739 +Node: Exact destinations for index terms111503 +Node: Page destinations for index terms113679 +Node: Choosing destination placement116307 +Node: Index page list and page range parsers117099 +Node: Hyperlinks in see and see also entries117652 +Node: Footnote hyperlinks118451 +Node: Contents hyperlinks119256 +Node: Hyperlink drivers119637 +Node: Options supported by all drivers120242 +Node: Hyperlink drivers pdftex and dvipdfm123056 +Node: Destination types for pdftex and dvipdfm123709 +Node: Destination options for pdftex and dvipdfm127173 +Node: Link types for pdftex and dvipdfm129583 +Node: Link options for pdftex and dvipdfm133004 +Node: Hyperlink driver nolinks136660 +Node: Setting hyperlink types and options138809 +Node: Setting default types and options139811 +Node: Setting group types140567 +Node: Setting group options141760 +Node: Turning hyperlinks on/off144250 +Node: Turning low-level commands on/off144888 +Node: Turning hyperlinks on/off for a group145401 +Node: Arrow theoretic diagrams146558 +Node: Slanted lines and vectors146925 +Node: Commutative diagrams149007 +Node: Arrows and morphisms149606 +Node: Construction of commutative diagrams154084 +Node: Commutative diagram parameters161276 +Node: Programming definitions163095 +Node: Category codes164085 +Node: Allocation macros166696 +Node: Iteration168844 +Node: Macro arguments169450 +Node: Converting to characters171951 +Node: Expansion173342 +Node: \csn and \ece173862 +Node: \edefappend174428 +Node: Hooks174977 +Node: Properties177163 +Node: \expandonce178248 +Node: \ifundefined178697 +Node: \futurenonspacelet179271 +Node: Obeying spaces179857 +Node: Writing out numbers180888 +Node: Mode-specific penalties181211 +Node: Auxiliary files181943 +Node: User-defined environments182866 +Node: Page list and page range parsers184082 +Node: Macro index186219 +Node: Concept index244956 + +End Tag Table diff --git a/Master/texmf/doc/info/fontname.info b/Master/texmf/doc/info/fontname.info new file mode 100644 index 00000000000..2fc234d0122 --- /dev/null +++ b/Master/texmf/doc/info/fontname.info @@ -0,0 +1,15489 @@ +This is fontname.info, produced by makeinfo version 4.8 from +fontname.texi. + + This document is in the public domain and may be used freely. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* Naming TeX fonts: (fontname). Filenames for TeX fonts. +END-INFO-DIR-ENTRY + + +File: fontname.info, Node: Top, Next: Introduction, Up: (dir) + +Filenames for TeX fonts +*********************** + +This is Fontname, a naming scheme for (the base part of) external TeX +font filenames. Last update 10 September 2005. + +* Menu: + +* Introduction:: Rationale and basic information about fonts. +* Filenames for fonts:: The construction of font names. +* Long names:: A specification for long filenames. +* Font name lists:: Real fontnames for many existing fonts. +* Encodings:: Specifications for various encodings. +* Font legalities:: Legal issues vary from country to country. +* General index:: Index. + + --- The Detailed Node Listing --- + +Introduction + +* History:: +* References:: + +Filenames for fonts + +* Suppliers:: +* Typefaces:: +* Weights:: +* Variants:: +* Widths:: + +Long names + +* Name mapping file:: Aliases for fonts. +* Long naming scheme:: A way to use more than 8 alphanumerics. + +Font name lists + +* Standard PostScript fonts:: The standard 35 PostScript fonts. +* Adobe fonts:: +* Apple fonts:: +* Bitstream fonts:: +* DTC fonts:: +* ITC fonts:: +* Linotype fonts:: +* Monotype fonts:: +* URW fonts:: + +Encodings + +* 8a:: Adobe standard. +* 8r:: TeX base. +* cork:: Cork (aka EC, TeX Latin 1, tex256). +* dvips:: Dvips. +* qx:: QX, from GUST. +* t5:: Vietnamese, from vntex. +* texmext:: TeX math extension. +* texmsym:: TeX math symbol. +* texmital:: TeX math italic. +* texnansi:: From Y&Y. +* texnansx:: From Y&Y. +* xl2:: OT1 + ISO Latin 2 (extended). +* xt2:: Typewriter version of xl2. + + +File: fontname.info, Node: Introduction, Next: Filenames for fonts, Prev: Top, Up: Top + +1 Introduction +************** + +This is Fontname, a naming scheme for (the base part of) external TeX +font filenames. This makes at most eight-character names from (almost) +arbitrarily complex font names, thus helping portability of TeX +documents. We point out some shortcomings of the scheme, and ways of +dealing with them. + + Please send additions, corrections, or other comments to +<tex-fonts@tug.org>. Email <tex-fonts-request@tug.org> to join the +list. + + Besides this document, the Fontname distribution includes various +encoding files, mapping files, and utilities. See the file `README' +for details. You can retrieve the most up-to-date version of these +lists from `http://tug.org/fontname'. It is also mirrored on all CTAN +hosts in the directory `tex-archive/doc/fontname'. For a list of CTAN +mirrors, see `http://www.ctan.org/tex-archive/CTAN.sites'. + + This document is in the public domain and may be used freely. + +* Menu: + +* History:: +* References:: + + +File: fontname.info, Node: History, Next: References, Up: Introduction + +1.1 History +=========== + +The original inspiration for Fontname was Frank Mittelbach and Rainer +Schoepf's article in `TUGboat' 11(2) (June 1990), which led to my +article in `TUGboat' 11(4) (November 1990), pages 512-519. Mittelbach +wrote another article criticizing the scheme below in `TUGboat' 13(1) +(April 1992), pages 51-53; most of his points are well-taken, but I saw +no alternative then, and see no alternative now. Others of his points +are addressed in the appropriate sections below. + + In August 1995, Fontname version 2 was released, concomitantly with +a new release of the PostScript fonts for use with LaTeX and Dvips. +After several years of experience, several modifications of the original +distribution seemed desirable: more precise specification of encodings +(*note Variants::); machine-readable mapping files (the `*.map' files +in the distribution) and standardizing directory names as well as font +filenames (included in `supplier.map' and `typeface.map'). + + In Fontname version 1, some encoding variant characters (`0', `2', +etc.) have been reassigned to a `7' or `8' sequence (*note Variants::). +Although this is an incompatible change, the advantages of (1) +consistency in naming encoding variants, and (2) having some free +variants makes it worthwhile. Also, not so coincidentally, new metrics +for PostScript fonts in the Cork encoding were issued--same encoding, +different metrics. So a new name served a practical purpose as well. + + Many people have contributed to this work. In particular, I +gratefully acknowledge Nelson Beebe, Barbara Beeton, Rocky Bernstein, +Thierry Bouche, Damian Cugley, Berthold K.P. Horn, Alan Jeffrey, +Russell Lang, Pierre MacKay, Sebastian Rahtz, Jean Rivlin, and Tom +Rokicki. + + +File: fontname.info, Node: References, Prev: History, Up: Introduction + +1.2 References +============== + +Related files and distributions: + + * The TeX Directory Structure (TDS) standard, available at + (`ftp://tug.org/tex/tds' and `CTAN:/tds') specifies a directory + tree for all TeX library files. The directory names given in + *Note Suppliers:: and *Note Typefaces:: are intended to mesh with + that standard. + + * The `modes.mf' file (`ftp://tug.org/tex/modes.mf') contains + recommended mode names to use as directory names. + + * The PSfonts distribution (`CTAN:/fonts/psfonts') contains TeX + support for many fonts, both commercially available and free. + + * The Fontinst distribution (`CTAN:/fonts/utilities/psfonts') + supports quite general creation of virtual fonts, named according + to the scheme given here. + + * The Dvips translator (original at + `ftp://labrea.stanford.edu/pub/dvips*.tar.gz' and variation at + `ftp://tug.org/tex/dvipsk.tar.gz') supports resident and + downloadable PostScript fonts. Dvips was the first real + application of Fontname 1. Dvips also includes Afm2tfm, another + program that can create virtual fonts. + + * The Dviljk processor (`ftp://tug.org/tex/dviljk.tar.gz') contains + TeX support for the fonts built into the LaserJet 4. + + * `Designing New Typefaces with Metafont', by Richard Southall, + Stanford Computer Science Department Technical Report + STAN-CS-85-1074, September 1985, for a comprehensive terminology + of font design. + + + +File: fontname.info, Node: Filenames for fonts, Next: Long names, Prev: Introduction, Up: Top + +2 Filenames for fonts +********************* + +We must limit ourselves to eight character names, for compatibility with +DOS filesystems and the ISO 9660 standard used for CD-ROM distribution. +Names may consist of only the letters (monocase a-z), numerals (0-9), +and underscore. + + Here is the basic division of the eight characters (the spaces here +are merely for readability): + + S TT W [V...] [N] [E] [DD] + +where + +S + represents the supplier of the font. + +TT + represents the typeface name. + +W + represents the weight. + +V... + represents the variant(s), and is omitted if both it and the width + are normal. Many fonts have more than one variant. + +N + represents the encoding, and is omitted if the encoding is + nonstandard. Encodings are subsumed in the section on variants + (*note Variants::). + +E + represents the width ("expansion"), and is omitted if it is normal. + +DD + represents the design size (in decimal), and is omitted if the + font is linearly scaled. Mittelbach in `TUGboat' 13(1) proposes + using hexadecimal or base-36 notation. I don't think the + increased range makes up for the unreadability of the common sizes + (e.g., 10pt fonts would have a suffix `a' (in hex), or `j' (in + base 36)). + + + The weight, variants, and width are probably all best taken from the +original name of the font, instead of trying to relate them to some +external standard. + +* Menu: + +* Suppliers:: +* Typefaces:: +* Weights:: +* Variants:: +* Widths:: + + +File: fontname.info, Node: Suppliers, Next: Typefaces, Up: Filenames for fonts + +2.1 Suppliers +============= + +The "supplier" is the source of a font, typically a (digital) type +foundry. + + You should use the supplier letter which matches the supplier you +obtained the font from, not the original source; for example, Avant +Garde was designed by Herb Lubalin for ITC, but Adobe also sells it. +The name of the font that you get from Adobe should start with `p'. +This is because font resellers typically make modifications to the +original design. + + Notes on specific suppliers: + +`f' + For fonts that are distributed without any specific attribution to + the creator, by individuals, or by small foundries. + (Unfortunately, we don't have enough characters to assign one to + every font supplier in the world.) + +`r' + obsolete; specifies raw fonts, in the old distribution of Dvips. + New fonts should never use `r'. (The right thing to do is specify + the correct encoding, variant, or whatever the font's + characteristics actually are.) + +`z' + for fonts that just don't fit well into the naming scheme. The `z' + should be followed by the real supplier letter. + + Here is the table from the file `supplier.map'. It is organized +alphabetically by abbreviation. Each line consists of an abbreviation, +directory name, and comment. + + 0 fontfont FontFont + 2 elsnerflake Elsner & Flake + 5 softmake Softmaker + 9 unknown + a autologi Autologic + b bitstrea Bitstream + c cg Compugraphic + d dtc Digital Typeface Corporation + e apple Apple + f public small foundries + g gnu Free Software Foundation + h bh Bigelow & Holmes + i itc International Typeface Corporation + j microsft Microsoft + k softkey SoftKey + l linotype Linotype + m monotype Monotype + n ibm IBM + o corel Corel + p adobe Adobe (`p' for PostScript) + r - raw (for [obsolete] use with virtual fonts) + s sun Storm Type + t paragrap ParaGraph + u urw URW + w wolfram Wolfram + z - bizarre (fontname is nonstandard) + - autofont Eddie Kohler's autofont program + - jknappen Joerg Knappen + - mnm Hong Feng, free software in China + - yandy Y&Y + + +File: fontname.info, Node: Typefaces, Next: Weights, Prev: Suppliers, Up: Filenames for fonts + +2.2 Typefaces +============= + +For our purposes, a "typeface" is a collection of related fonts. + + We sometimes use the same typeface abbreviation for fonts with +different supplier names, where we know (usually by inspection) that +the fonts truly are the same. This helps conserve abbreviations. + + Notes on specific typefaces: + +`ad' +`gm' + To explain a common confusion: `ad' is Adobe Garamond (with a + `FontName' of `AGaramond'). This is quite different from the + `Garamond' typeface distributed by Adobe, which is actually ITC + Garamond. (Garamond No. 3 (`f3'), Simoncini Garamond (`ig'), and + Stempel Garamond (`eg') are still other variations on the Garamond + theme.) + +`lh' +`ls' +`lx' +`r1' + These abbreviations for Lucida typeface subfamilies, et al., solve + a problem with names getting too long, or help conserve variant + abbreviations. *Note Variants::. Ideally, they would not exist. + +`ns' +`nt' +`tm' + Suppliers offer as many variations on the Times New Roman design + as they do Garamond. Adobe has `Times', `TimesNewRoman', and + `TimesNewRomanPS'. Although this last has been used by other + foundries (e.g., Monotype) for a Times variation exactly + compatible with Adobe's `Times', Adobe itself also offers it, so + we must have abbreviations for all three. + +`pi' + For pi fonts. Since names of pi fonts are rather arbitrary, it is + not useful to try to assign typeface abbreviations to all of them. + Instead, we use the supplier letter, `pi', an arbitarily-assigned + three-digit number, a weight and (if necessary) a variant. For + example, `mpi001r'. Pi font `001' for one supplier has nothing to + do with pi font `001' for another. + + Here is the table, from the file `typeface.map'. It is organized +alphabetically by abbreviation. Each line consists of an abbreviation +and directory name, possibly followed by PostScript `FontName's and/or +a comment in roman. The `FontName' may be preceded by a letter S and a +`:', as in `b:Dutch'. In that case, the S is a supplier abbreviation, +and we've used that abbreviation for the given `FontName' from that +supplier. + + a1 arial Arial + a2 amasis Amasis + a3 adlib AdLib + a4 altgoth2 AlternateGothicNo2 + a5 allegro Allegro + a6 amelia Amelia + a7 amertext AmericanText + a8 aurora Aurora + a9 adsans Adsans b:Humanist970BT + aa aachen Aachen + ab aboeckli ArnoldBoecklin + ac acaslon ACaslon Adobe Caslon + ad agaramon AGaramond Adobe Garamond + ae andalemo AndaleMono + ag avantgar AvantGarde m:MAvantGardeGothicPS u:URWGothicL + ah ashleysc AshleyScript + ai abadi Abadi + aj ajenson AJenson + ak arkona Arkona + al albertus Albertus b:Flareserif821BT + am amercana Americana b:Americana + an anna Anna + ao atqolive AntiqueOlive b:Incised901BT + ap apollo Apollo + aq antiqua Antiqua u:URWAntiqua m:BookAntiqua + ar arcadia Arcadia + as aldus Aldus + at atypewri AmericanTypewriter + au auriol Auriol b:Freeform721 + av avenir Avenir + ax alexa Alexa + az azdzgrot AkzidenzGrotesk b:Gothic725BT + b0 blackoak Blackoak + b1 blado Blado + b2 binnyos BinnyOldStyle + b3 braggado Braggadocio + b4 bison Bison b:Brush738BT + b5 binghams BinghamScript b:Freehand591BT + b6 block Block b:Gothic821 + b7 bernhard Bernhard BernhardModern + b8 blippo Blippo + b9 bremen Bremen + ba barmeno Barmeno + bb bembo Bembo b:Aldine401BT + bc banco Banco + bd bodoni Bodoni u:URWBodoni + be bell Bell + bf biffo Biffo + bg benguiat Benguiat + bh bauhaus Bauhaus + bi birch Birch + bj birka Birka + bk bookman Bookman m:MBookmanPS u:URWBookmanL + bl belwe Belwe + bm bulmer Bulmer + bn bernard Bernard + bo balloon Balloon + bp bodocamp BodoniCampanile b:Modern735 + br berling Berling b:Revival565BT + bs bakersig BakerSignet + bt boton Boton + bu brush BrushScript + bv baskervi Baskerville u:URWBasker + bw broadway Broadway + by berkeley Berkeley + bz balzano Balzano + c0 carolina Carolina + c1 calisto Calisto + c2 casln224 CaslonTwoTwentyFour + c3 caslon3 CaslonThree + c4 chicago Chicago + c5 casln540 CaslonFiveForty + c6 clarion Clarion + c7 compacta Compacta + c8 calvert Calvert + c9 codex Codex b:Calligraphic421BT + ca caslon Caslon + cb cooper Cooper + cc cascade Cascade b:Freehand471BT + cd clarendo Clarendon u:URWClarendon + ce centenni Centennial + cf clearfac Clearface + cg charlema Charlemagne + ch charter Charter + ci candida Candida + ck caslonbe CaslonBookBE + cl cloister Cloister + cm cm Computer Modern + cn century Century + co cochin Cochin + cp copperpl Copperplate + cq cheq Cheq + cr courier Courier m:MCourierPS m:CourierTwelveMT u:NimbusMonL + cs cntursbk CenturySchoolbook + ct cheltenh Cheltenham + cu centuros CenturyOldStyle + cv clairvx Clairvaux + cw cottonwd Cottonwood + cx caxton Caxton + cy city City b:SquareSlabserif711BT + cz choc Choc b:Staccato555BT + d0 davida DavidaBold + dc domcasl Dom DomCasual DomDiagonal + dd ducberry DucDeBerry + de dellarob DellaRobbia + di diotima Diotima b:Calligraphic810BT + dj delta Delta + dk diskus Diskus + dl dolores Dolores + dm delima Delima + do didot DidotLH + dr doric Doric + ds dorchesc DorchesterScript + dt dante Dante + dy academy Academy + e0 embassy Embassy + e1 empire Empire + e2 metatwo Meta2 + ea electra Electra b:Transitional521BT + eb baskerbe BaskervilleBE + ec applecha e:AppleChancery + ee egyptian Egyptian EgyptianExtended + ef egyptien EgyptienneF u:URWEgyptienne + eg stgaramo StempelGaramond b:OriginalGaramondBT + eh engsft Engschrift + ei esprit Esprit + ek eckmann Eckmann b:Freeform710 + el ellingtn Ellington + en engraver Engravers + eo amerigo Amerigo b:AmerigoBT + er eras Eras + es eurostil Eurostile b:Square721BT k:Minima + et ehrhardt Ehrhardt + eu euler Euler + ev mrseaves MrsEaves + ex exclsior Excelsior + f0 flemishs FlemishScript + f1 fournier Fournier + f2 facade Facade + f3 festival Festival + f4 footligh Footlight + f5 french FrenchScript + f9 frutigernext FrutgerNext + fa formata Formata + fc freestyl FreeStyleScript + fe forte Forte + ff fairfld Fairfield b:Transitional551BT + fg frankgth FranklinGothic + fi figaro Figaro + fl flora Flora + fn fenice Fenice + fo folio Folio + fq frizquad FrizQuadrata + fr frutiger Frutiger b:Humanist777BT + fs falstaff Falstaff + ft fettefrk FetteFraktur Fraktur + fu futura Futura + fx felixttl FelixTitling + fy flyer Flyer + g0 gando Gando + g1 gothic13 GothicThirteen + g2 giddyup Giddyup + g3 garamon3 GaramondThree b:AmericanGaramondBT Garamond No. 3 + g4 gymodern GoudyModern + g5 gycatalg GoudyCatalogue + g6 gorilla GorillaITC + g9 ugaramon GaramondRetrospective + ga gillsana GillSana + gb gothicbb GothicBBB + gd garuda Garuda + ge geneva e:Geneva + gg garthgra GarthGraphic + gh galahad Galahad + gi georgia Georgia + gj granjon Granjon b:ElegantGaramondBT + gl galliard Galliard + gm garamond Garamond u:URWGaramond + go gyoldsty GoudyOldStyle + gp glypha Glypha + gq grotesq Grotesque u:URWGrotesk + gr gloucest Gloucester + gs gillsans GillSans m:GillAltOneMT b:Humanist521BT + gt goudytxt GoudyText + gu guardi Guardi + gv giovanni Giovanni + gy goudy Goudy + gz gazette GazetteLH + h0 handelgo HandelGothic + ha hadriano Hadriano + hb hobo Hobo Tramp + hc herculnm Herculanum + hd headline Headline + hg hiroshig Hiroshige + hh highland Highlander + hi hvinsera HelveticaInserat b:Swiss921BT + hm charme Charme + hn hvneue HelveticaNeue + ho horleyos HorleyOldStyle + hr hvround HelveticaRounded + hs hnseati Hanseatic B:Swiss924BT + ht hoeflert e:HoeflerText + hv helvetic Helvetica u:NimbusSans u:NimbusSanL b:Swiss721BT b:Monospace821BT b:Swiss911BT d:Sans Newton n:SonoranSansSerif + hw schadow Schadow + hx huxleyvr HuxleyVertical + i0 commscr CommercialScript + i1 impress Impress + i2 impuls Impuls + i3 imperial Imperial u:URWImperial + ia insignia Insignia + ib ibycus Ibycus + ic impact Impact + id isadora Isadora + if inflex Inflex + ig scgaramo SimonciniGaramond b:ItalianGaramond + ii imprint Imprint + il caecilia Caecilia + im imago Imago + in industri Industria + io ionic Ionic b:News701BT + ip impressm Impressum + is italnos ItalianOldStyle + it italia Italia + iw ironwood Ironwood + iy iowanold IowanOldStyle + iz isabella Isabella + jf jeffersn Jefferson b:Freehand575BT + jn janson Janson + jo joanna Joanna + jp juniper Juniper + kb kabel Kabel + kg bankgoth BankGothic + kl klang Klang + kn kino Kino + ko bookmano BookmanOldStyle + kp kepler Kepler + kr korinna Korinna + ks kuenstsc KuenstlerScript + ku kaufmann Kaufmann + kw kolo Kolo + kx kigali Kigali + l0 lineart LinearT u:URWLinear + l1 liberty Liberty + l2 libra Libra + l3 lucia Lucia + l4 lucian Lucian + l5 baltica Baltica + l6 literatu Literaturnaya + l7 luxiseri LuxiSerif + l8 luxisans LuxiSans + l9 luximono LuxiMono + lb lubaling LubalinGraph + lc lucida Lucida + le legacy Legacy + lf life Life + lg lettrgth LetterGothic ISILGothic + lh lubright LucidaBright + li latin Latin + ll linolett LinoLetter + ln lino Lino + lo lithos Lithos + ls lucsans LucidaSans + lt lutetia Lutetia + lw leawood Leawood + lx lucidfax LucidaFax + ly lydian Lydian + lz legacysans LegacySans + m0 monospac Monospace + m1 monolisc MonolineScript + m2 metro Metro b:Geometric415BT + m3 mirarae Mirarae + m4 mrearl MisterEarl + m5 murrayhl MurrayHill + m6 mittlsft Mittelschrift + m7 matura Matura + m8 monotyos MonotypeOldStyle + ma mandate Mandate b:Freehand521BT + mc monaco e:Monaco + md meridien Meridien + me mercursc MercuriusScript + mg marigold Marigold + mh machine Machine + mi medici Medici + mj mojo Mojo + ml melior Melior b:ZapfElliptical711BT + mn minion Minion + mo modern Modern b:Modern20BT + mp memphis Memphis b:GeometricSlab703BT + mq mesquite Mesquite + mr madrone Madrone + ms mistral Mistral b:Staccato222BT + mt minister Minister + mv malvern Malvern + mx maximus Maximus + my myriad Myriad + mz amazone Amazone + n0 normande Normande + n1 binner Binner not really a family + n7 news706 News706 + na newaster NewAster + nb nbaskerv NewBaskerville + nc ncntrsbk NewCenturySchlbk u:CenturySchL + nd ncaledon NewCaledonia + nf nofret Nofret + ng newsgth NewsGothic + ni nimrod Nimrod + nk neograph Neographik + nl neuland Neuland b:Informal011BT + nm nimbus Nimbus + nn nclarend NewClarendon + no notredam NotreDame + np nsplanti NewsPlantin + nr nberolin NewBerolina + ns timesnps TimesNewRomanPS + nt timesnew TimesNewRoman m:TimesNR n:SonoranSerif + nu nuptial Nuptial + nv novarese Novarese + nw neueunzi NeueHammerUnziale + nx nyx Nyx + nz neuzeits NeuzeitS + o0 oldreadf OldDreadfulNo7 + o1 oranda Oranda + o2 orbitb OrbitB + o3 colonna Colonna + o4 oceansan OceanSans + o5 comic Comic + o7 oldsty7 OldStyleSeven + o8 officina Officina + oa ocra OCR-A + ob ocrb OCR-B + oc concorde Concorde + oe oldengli OldEnglish + of oxford Oxford + oi ondine Ondine Mermaid b:FormalScript421BT + oj oldclaud OldClaude + ol colmcill Colmcille + om omnia Omnia + on corona Corona + op optima Optima d:Optimum b:ZapfHumanist601BT Omega + oq ouch Ouch + or orator Orator + os oldstyle OldStyle + ot coronet Coronet b:Ribbon131BT + ov octavian Octavian + ox onyx Onyx + oy olympian Olympian l:OlympicLH + oz ozhandcr OzHandicraft + p0 poplar Poplar + p1 palacesc PalaceScript + p2 pepita Pepita + p3 palette Palette b:Brush445BT + p4 pioneer PioneerITC + p5 piranesi Piranesi + p6 blueprin Blueprint + p7 petersbu Petersburg + pa parkave ParkAvenue + pb ptbarnum PtBarnum + pc poetica PoeticaChancery s:Scriptoria + pd placard Placard + pe prestige PrestigeElite + pf profile Profile Profil b:Decorated035BT + pg peignot Peignot b:Exotic350BT + ph photina Photina + pi pi pi fonts--see text and `*.map' files + pj pompeija Pompeijana + pl palatino Palatino d:Palton b:ZapfCalligraphic801BT u:URWPalladioL Palmspring k:Palindrome + pm postmed PostMediaeval + pn plantin Plantin b:Aldine721BT + po ponderos Ponderosa + pp perpetua Perpetua b:Lapidary333BT + pq postatqa PostAntiqua + pr popplres PopplResidenz + ps parisian Parisian + pt present Present + pu popplaud PopplLaudatio + pw perrywoo Perrywood + px popplpfx PopplPontifex + py playbill Playbill + pz poliphil Poliphilus + qr quorum Quorum + qs bellevue Bellevue + qt boulevar Boulevard + r0 romana Romana + r1 rotis RotisSemiSerif + r2 cantoria Cantoria + r3 rotis RotisSemiSans + r4 rotis RotisSansSerif + ra raleigh Raleigh + rc romic Romic + rm carmina Carmina + rn rotation Rotation + ro rotis RotisSerif + rp reporter Reporter + rq russelsq RussellSquare + rr raphael Raphael + rs arrus Arrus + rt carta Carta + ru runic Runic + rv revue Revue + rw rockwell Rockwell Slate b:GeometricSlab712BT + rc rustican Rusticana + ry ryumin Ryumin + rz ruzicka RuzickaFreehandLH + s0 sanmarco SanMarco + s1 scotchro ScotchRoman + s2 script Script + s3 seagull Seagull + s4 shotgun Shotgun ShotgunBlanks + s5 snell Snell + s6 stuyvesa Stuyvesant + s7 sassoon Sassoon + s8 stonesan StoneSans + sa scala Scala + sb sabon Sabon b:ClassicalGaramondBT + sc slimbach Slimbach + se shelley Shelley + sf serifa Serifa + sg serifgth SerifGothic + sh shannon Shannon + si stoneinf StoneInformal + sk skia e:Skia + sl stencil Stencil + sm spectrum Spectrum + sn spartan Spartan + so sonata Sonata + sp serpenti Serpentine + sr snellrnd SnellRoundhand + ss stschnei StempelSchneidler + st stone StoneSerif + sv souvenir Souvenir + sw swing Swing + sx syntax Syntax + sy symbol Symbol m:MSymbolPS u:StandardSymL + t0 tango Tango + t1 thunderb Thunderbird + t2 typo TypoUpright + tb bebodoni BodoniBE BBodoni Berthold Bodoni + te timeseur TimesEuropa + tf tiffany Tiffany + tg tradegth TradeGothic + th tahoma Tahoma + ti techphon TechPhonetic + tj trajan Trajan + tk tekton Tekton + tl castella Castellar + tm times Times u:NimbusRoman u:NimbusRomNo9L b:Dutch801BT + tn norasi Norasi + to torino Torino b:Industrial736BT + tp tempo Tempo + tr trebuche Trebuchet + tv trumpmed TrumpMediaeval b:Kuenstler480BT + tw twentyc TwentiethCentury + ty typewrit Typewriter u:URWTypewriter + u0 columbus Columbus + ub babodoni BauerBodoni + ud studio Studio + ug bengugth BenguiatGothic + uh cushing Cushing + ul universa Universal + um umbra Umbra + un univers Univers b:ZurichBT + ur centaur Centaur b:Venetian301BT + ut utopia Utopia + uw usherwoo Usherwood + uy universi University + v0 vineta Vineta + va activa Activa + vc vectora Vectora + vd vandijck VanDijck + ve veraseri VeraSerif + vg visigoth Visigoth + vi victoria Victoria + vj veljovic Veljovic + vm veramono VeraSansMono + vn verdana Verdana + vl versaill Versailles + vr vagrnd VAGRounded + vs verasans VeraSans + vv viva Viva + w0 weddingt WeddingT + w1 wiesbswi WiesbadenSwing + wb walbaum Walbaum + wc snowcap SnowCap + wd weideman Weidemann + wg wlklgth WilhelmKlingsporGotisch + wh wendy Wendy + wi wingding Wingdings + wk wilke Wilke + wn windsor Windsor + wr wittenbe WitternbergerFrakt + ws weiss Weiss + wt watertit WatersTitling + ww willow Willow + xc eccentri Eccentric + xp exponto ExPonto + yg centuryg CenturyGothic + yh strayhor Strayhorn + ym stymie Stymie + ys goudysan GoudySans + za zantiqua ZAntiqua + zc zapfchan ZapfChancery m:ZapfChanceryPS u:URWChanceryL + zd zapfding ZapfDingbats m:ZapfDingbatsPS u:Dingbats + zg neuzeitg NeuzeitGrotesk b:Geometric706BT + zp ziptydo ZiptyDo + zt zeitgeis Zeitgeist + __ agbook AGBookStencil + __ agbookrn AGBookRounded + __ agoldfac AGOldFace + __ agschlbk AGSchoolbook + __ aja Aja + __ albertin AlbertinaMT + __ amigo Amigo + __ andreas Andreas + __ ariadne Ariadne + __ banshee Banshee + __ beesknee Beesknees + __ bellcent BellCentenial + __ berlgrot BerlinerGrotesk + __ bermuda BermudaLP + __ berthold BertholdScript + __ bickham BickhamScript + __ blueisla BlueIsland + __ bodoniof BodoniOldFaceBE + __ bossanov BossaNovaMVB + __ briemaka BriemAkademi + __ briemscr BriemScript + __ buffalog BuffaloGalMT + __ caflisch CaflischScript + __ caliban Caliban + __ catull Catull + __ celestia CelestiaAntiqua + __ cerigo Cerigo + __ chaparra Chaparral + __ christia Christiana + __ colossal Colossalis + __ comenius ComeniusAntiqua + __ concorde ConcordeNova + __ congabra CongaBrava + __ copal Copal + __ coriande Coriander + __ cosmos Cosmos + __ cremona Cremona + __ critter Critter + __ cronos Cronos + __ ctmercur CTMercurius + __ curlz CurlzMT + __ cutout Cutout + __ delphin Delphin + __ elgreco ElGreco + __ else ElseNPL + __ emmascri Emmascript + __ flood Flood + __ florens FlorensLP + __ fusaka Fusaka + __ gallia MonotypeGallia + __ garamobe GaramondBE + __ gillfaci GillFaciaMT + __ gillflor GillFloriatedCapsMT + __ graphite Graphite + __ greymant GreymantleMVB + __ hardwood HardwoodLP + __ immi505 Immi505 + __ jimbo Jimbo + __ khaki Khaki + __ kidprint KidprintMT + __ kinesis Kinesis + __ kochantq KochAntiqua + __ legault Legault + __ lightlin LightlineGothicMT + __ lotype LoType + __ magnesiu MagnesiumMVB + __ magnolia MagnoliaMVB + __ mahsuri MahsuriSansMT + __ manito ManitoLP + __ mendoza MendozaRoman + __ mezz Mezz + __ micr MICR + __ monalisa MonaLisa + __ motterco MotterCorpus + __ mythos Mythos + __ nueva Nueva + __ oceansan OceanSans + __ origami Origami + __ ozwald Ozwald + __ pastonch PastonchiMT + __ pelican Pelican + __ penumbra Penumbra + __ pepperwo Pepperwood + __ poetica Poetica + __ pompeia Pompeia + __ popplexq PopplExquisit + __ postino Postino + __ quake Quake + __ rad Rad + __ reliq Reliq + __ rosewood Rosewood + __ rulngscr RulingScript + __ russlobl RusselOblique + __ sanvito Sanvito + __ sassafra Sassafras + __ serlio SerlioLH + __ sho Sho + __ shuriken Shuriken + __ smaragd Smaragd + __ spring SpringLP + __ spumoni SpumoniLP + __ studz Studz + __ tiepolo Tiepolo + __ toolbox Toolbox + __ verve Verve + __ volutasc VolutaScript + __ zebrawoo Zebrawood + __ shouyi Shouyi for mnm + + +File: fontname.info, Node: Weights, Next: Variants, Prev: Typefaces, Up: Filenames for fonts + +2.3 Weights +=========== + +The "weight" of a font specifies its boldness. Arranged from lightest +to heaviest (more or less): + + hairline, extra light, light + book, regular, medium + demibold, semibold, bold, extra bold, heavy + black, ultra, poster + + Here is the table, from the file `weight.map'. It is organized +alphabetically by abbreviation. Each line consists of an abbreviation +and any parts of a PostScript `FontName' which use that abbreviation. + + a Thin Hairline + b Bold + c Black + d Demi + h Heavy Heavyface + j ExtraLight + k Book + l Light + m Medium + p Poster + r Regular Roman + s Semibold + u Ultra UltraBlack + x ExtraBold ExtraBlack + + +File: fontname.info, Node: Variants, Next: Widths, Prev: Weights, Up: Filenames for fonts + +2.4 Variants +============ + +"Variants" include typeface variations (e.g., italic, sans serif), and +font encodings (e.g., Adobe standard, TeX text). + + A fontname may require multiple variants. To resolve the worst +ambiguities, we specify that any encoding variant (`7', `8', or `9', +see below) come last and any other numeral variant come first (to avoid +confusion with a design size). We recommend but do not require that +the other variants be given in alphabetical order. (It's not required +because it's too painful to implement the sorting in TeX, and many +existing names already have non-alphabetized variants.) + + The letterspacing possibilities introduced by `fontinst' and virtual +fonts have not yet become sufficiently widespread to make +standardization beneficial. Likewise for the many possible ways to +generate small caps fonts. + + Notes on specific variants, both old and new: + +`1' +`4' +`6' +`b' + These variants (`semisans', `bright', `semiserif', and `fax') were + used only for single typefaces, so to conserve variant + abbreviations, they now have typeface abbreviations instead. + Also, for `b', to avoid too-long names; and for the others, to + avoid variant vs. design-size ambiguities. + +`g' +`h' + Since these variants were not actually used in any font names, + they are now obsolete and may be reassigned in the future. + +`5' +`6' +`7' +`8' +`9' + These characters begin a two-character "encoding variant". + Generally, `7' is for 7-bit encodings, `8' is for 8-bit encodings, + and `9' is for expertised encodings with or without oldstyle + digits (see the `x' item below), but this is not an absolute rule. + Also, `5' is presently used for phonetic encodings and `6' for + Cyrillic encodings. The `9s' (`SuperFont') variant contain all of + Adobe, Latin 1, and Expert glyphs, perhaps with slightly different + metrics than the original fonts. + + For a font to be named with a certain encoding variant, it's not + necessary that all the characters appear in precisely the same + positions as in the encoding definition. It's enough that the + usual TeX macros work. In practice, this means that it's ok for a + font to be labelled `7t' if the only difference from Computer + Modern is that the ligatures and the `lslash' and `Lslash' + characters are different, since it's impossible to access or + change the ligature table from TeX. Standard PostScript fonts + don't have an `lslash' character the way Computer Modern does, but + they do have the `Lslash' and `lslash' characters themselves, so + the usual TeX `\lslash' and `\Lslash' macros can be made to work + via ligatures. See the file `T1.etx' file in the `fontinst' + distribution for details. + + If a name does not contain a specific encoding variant, its + encoding is unspecified. For example, some of the fonts + distributed with Dvips(k) have names like `ptmr' for + `Times-Roman'; they use the Dvips encoding (*note dvips::), which + is close to (but not the same as) the TeX text encoding (as in + Computer Modern Roman). Similarly, the TFM files distributed with + Dvilj(k) for the builtin LaserJet 4 fonts have names like `cunm', + since these fonts, while compatible with TeX text, contain many + additional characters. + +`9' + These items are needed only because `x' (and possibly `j') + followed by a two-character regular variant makes some names too + long. That is, `9t' is equivalent in meaning to `x7t', and `9d' + is equivalent to `jx7t'. (This may not be true for all `9X' + encodings, though.) + +`k' +`z' + These variants (indicating Greek and Cyrillic fonts, respectively) + are obsolete; future fonts in different scripts should be assigned + an appropriate encoding abbreviation. These are not currently + standardized, due to ignorance of the appropriate encodings. + Please send suggestions for abbreviations to the address in *Note + Introduction::. + +`m' +`v' +`y' + These math-related variants remain for the sake of + typeface-specific math encodings, e.g., Lucida. Fonts that use + the Computer Modern math encodings should use `7m' (*note + texmital::), `7v' (*note texmext::), and `7y' (*note texmsym::). + +`n' + This is used for several different (but very rare) variants: only + the Stone typeface has an "informal" variant, and only a few + Monotype fonts have a "schoolbook" variant, with different `a', + `g', and `y' shapes. + +`r' + Included only if no other variants, including encodings, apply, and + either the width (*note Widths::) is not `r' or a design size is + present. I.e., `r' is only used as a placeholder. When the normal + version of the typeface is sans serif (e.g., Helvetica), `r' should + be used when necessary, not `s'. Use `s' only when the typeface + family has both serif and sans serif variants. + +`s' +`t' + Mittelbach in `TUGboat' 13(1) suggests that these variants (for + `sans' and `typewriter') should be identified as part of the + typeface name, because there are few typeface families with these + variants. I feel that since they are logically variants, it's + best to name them that way. But `LucidaSans' (*note Typefaces::) + and a few others are exceptions, to avoid too-long names. + +`x' +`8x' +`9?' + `8x' indicates a font in the `Expert' encoding itself. `x' + indicates an "expertised" font, i.e., a composite (virtual) font + that includes characters from an `8x' font. And in fact an `xEE' + sequence is replaced by `9E', to save characters. + + Fontname 1 assignments are shown in brackets in the following table, +from the file `variant.map'. It is organized alphabetically by +abbreviation. Each line consists of an abbreviation and either any +parts of a PostScript `FontName' which use that abbreviation or the +PostScript `Encoding' name. + + 0 inferior + 1 superior + obsolete [2=>7c] Fraktur encoding + obsolete [3=>7f] Fraction + obsolete [4 fax; now typeface `lx', Lucida Fax] + 5 escape for (presently) phonetic encodings + 6 escape for Cyrillic encodings [was `SemiSerif'] + 7 escape for (mostly) 7-bit encodings + 8 escape for (mostly) 8-bit encodings + 9 escape for (presently) expert encodings [was oldstyle digits] + a Alt Arrows Alternative [was alternate encoding] + obsolete [b bright; now typeface lh, Lucida Bright] + c SmallCaps + d Display Titling Caption Headline TallCaps SwashCaps LombardicCaps Festive + e Engraved Copperplate Elite + f Fraktur Gothic OldEnglish Handtooled (`gothic' can also be sans) + g SmallText designed for small sizes [was grooved, as in the IBM logo] + h Shadow + i Italic Kursiv Ital text italic + j old-style digits [was invisible] + k Greek obsolete + l Outline OpenFace Blanks + m math italic + n Informal Fashion Schlbk for Stone + o Oblique Obl slanted + p Ornaments + obsolete [q=>8t Cork (TeX extended) encoding] + r roman or sans; often omitted, see text + s Gothic sans serif + t Monospace fixed-width typewriter + u unslanted italic + v MathExtension + w Script Handwritten Swash Calligraphy Cursive Tango + x built with Adobe expert encoding [was expert-encoded] + y MathSymbol + z Cyrillic font-dependent Cyrillic + 5a PhoneticAlternate + 5i PhoneticIPA + 5s sil-IPA + 5t TeX-IPA Fukui Rei, LaTeX T3 + 5w TeXAfricanLatin wsuipa fonts, LaTeX OT3 + 5z user + 6a T2A + 6b Cyrillic part of ISO 8859-5, seven bits + 6c T2C + 6d Cyrillic CP866 encoding + 6i ISO 8859-5 + 6k Cyrillic KOI8-R encoding + 6m Cyrillic Macintosh encoding + 6s Storm extra encoding + 6t T2B + 6w Cyrillic CP1251 encoding + 6x X2 + 6y LCY + 6z user + 7a A alternate characters only + 7c Dfr Fraktur + 7d OsF OSF oldstyle digit encoding + 7f Fraction + 7k OT2Cyrillic + 7m TeXMathItalicEncoding *note texmital:: + 7t TeX text encoding (as in Computer Modern Roman) + 7v TeXMathExtensionEncoding *note texmext:: + 7y TeXMathSymbolEncoding *note texmsym:: + 7z user + 82 GreekKeys + 83 Ibycus1 + 84 Ibycus2 + 8a StandardEncoding Adobe standard encoding, *note 8a:: + 8c TeXTextCompanion LaTeX TS1 + 8e CE Adobe CE + 8f TeXAfricanLatin LaTeX T4 + 8i TS0 Intersection of TS1/Adobe Standard + 8m Macintosh standard encoding + 8n LM1 Textures + 8q encqxoosix QX, from GUST + 8r TeXBase1Encoding (*note 8r::) + 8t CorkEncoding (*note cork::), aka tex256.enc + 8u XT2Encoding cmtt + Latin 2, see `xl2.enc' + 8v TeXVietnamese to be defined + 8w Windows 3.1 ANSI encoding + 8x Expert expert encoding + 8y LY1 texnansi + 8z XL2Encoding cmr + Latin 2, see `xl2.enc' + 9c expert + Text companion + 9d expert + oldstyle digits + Cork + 9e expert + Cork + 9i TS0X Intersection of TS1/Standard/Expert + 9o expert + oldstyle digits + TeX text + 9s SF SuperFont + 9t expert + TeX text + 9u Unicode-compatible + 9x TeXnANSIEncodingX texnansx, texnansi without repeats + 9z user + - songti for mnm + + +File: fontname.info, Node: Widths, Prev: Variants, Up: Filenames for fonts + +2.5 Widths +========== + +The "width" of a font specifies the compression or expansion of the +font. Arranged from narrowest to widest (more or less): + + ultra compressed, extra condensed, compressed, condensed, narrow + regular + extended, expanded, wide + + Expansion or compression of fonts is sometimes done automatically +(as by the PostScript `scale' operator), and sometimes done by humans. +In the latter case, the human will also presumably choose a font name +which includes `Extended' or `Expanded' or `Condensed' or `Narrow' or +whatever according to their own preferences; the abbreviation can +follow along. When creating a new synthetically expanded or compressed +font for use with TeX, e.g., with Afm2tfm or `fontinst', use `n' and +`e'. + + Here is the table, from the file `width.map'. It is organized +alphabetically by abbreviation. Each line consists of an abbreviation +and any parts of a PostScript `FontName' which use that abbreviation. + + c Condensed Cond + e Expanded + n Narrow + o UltraCondensed + p Compressed Compact + q ExtraCompressed ExtraCondensed + r Normal Medium Regular (usually omitted) + t Thin + u UltraCompressed + v ExtraExpanded more than Expanded, less than Wide + w Wide + x Extended Elongated + + +File: fontname.info, Node: Long names, Next: Font name lists, Prev: Filenames for fonts, Up: Top + +3 Long names +************ + +Eight characters is not enough to unambiguously represent all fonts. To +do that, we have to allow ourselves arbitrarily long names. Although we +certainly cannot use such names for the files themselves, we could still +use them in TeX documents given a simple mapping file, as discussed +below. + +* Menu: + +* Name mapping file:: Aliases for fonts. +* Long naming scheme:: A way to use more than 8 alphanumerics. + + +File: fontname.info, Node: Name mapping file, Next: Long naming scheme, Up: Long names + +3.1 A fontname mapping file +=========================== + +At the moment, most implementations of TeX look up a TFM file (as part +of the `\font' command), by searching for a file with the name given by +the user (possibly in any of series of directories). But if we also +looked TFM names up in _another_ file (or set of files), which +specifies the actual filename, the fontname given in the TeX source +file could be almost anything at all, of any length. + + In version 5.851d of Web2c, I implemented this mapping file. Each +file `texfonts.map' in a search path is read for abbreviations. The file +has a straightforward format: each line specifies the filename and the +TeX name for one font, separated by whitespace. Extra information on +the line is ignored; then more information could be specified for the +benefit of DVI-reading programs in the same file. Comments start with +`%' and continue to the end of the line. + + Besides allowing long names, this sort of mapping file has other +benefits. TeX source or DVI files can be more easily transported, +because the font names in a particular file can be made work on every +system. Also, when combined with a consistent naming scheme, macros +could be written to access any of a number of fonts. Right now, each +font family has to have specialized macros written to deal with it. + + Incidentally, Professor Knuth has approved this as a legitimate +"system-dependent" extension; a TeX with such a feature can still be +called "TeX". + + +File: fontname.info, Node: Long naming scheme, Prev: Name mapping file, Up: Long names + +3.2 A naming scheme for long names +================================== + +Once we allow ourselves long names, we can construct a naming scheme to +handle arbitrary fonts without much difficulty. Here is one proposal, +based on the X Window System font naming conventions. + + SUPPLIER-FAMILY-WEIGHT-VARIANTS-WIDTH-ENCODING--SIZE + + SUPPLIER is the usual `Adobe', `Autologic', etc., as well as +`unknown' or `bizarre'--this last meaning the rest of the name is +nonstandard. If the SUPPLIER is missing, i.e., the name starts with a +`-', "public domain" is assumed. For fonts made by individuals, the +initials of the designer would probably make a good SUPPLIER. + + FAMILY is `ComputerModern' or `Times' or whatever. + + Everything else is optional. The `--' before the SIZE lets one +specify a name with, say, a weight and variants, but then skip the +WIDTH and ENCODING, but still be able to give a size. + + WEIGHT and WIDTH are as described earlier. + + If there is more than one variant, they are separated with some +character other than `-', say `=': + B+H-Lucida-Bold-Sans=Typewriter--10 + + ENCODING is what Metafont calls the `font_coding_scheme'--the layout +of the characters in the font. For example, `Cork' or `ISOLatin1' or +`AdobeAlternate'. + + Names are case-sensitive, for consistency with the rest of TeX and +with PostScript, etc. Spaces cannot be used in the name, to make it +easier for TeX to parse. Likewise, characters with default category +codes other than 11 (letter) or 12 (other) should not be used. + + Another possibility is to forget all the above, and simply use the +vendor's name (perhaps prefixed by the vendor): `Times-Roman'. + + +File: fontname.info, Node: Font name lists, Next: Encodings, Prev: Long names, Up: Top + +Appendix A Font name lists +************************** + +These sections contain a list of fonts from various suppliers together +with the corresponding names. + +* Menu: + +* Standard PostScript fonts:: The standard 35 PostScript fonts. +* Adobe fonts:: +* Apple fonts:: +* Bitstream fonts:: +* DTC fonts:: +* ITC fonts:: +* Linotype fonts:: +* Monotype fonts:: +* URW fonts:: + + +File: fontname.info, Node: Standard PostScript fonts, Next: Adobe fonts, Up: Font name lists + +A.1 Standard PostScript fonts +============================= + +Abbreviated names for the 35 standard PostScript fonts. An encoding +variant, such as `8a' for the Adobe `StandardEncoding', is omitted. + +`pagk' + `AvantGarde-Book' + +`pagko' + `AvantGarde-BookOblique' + +`pagd' + `AvantGarde-Demi' + +`pagdo' + `AvantGarde-DemiOblique' + +`pbkd' + `Bookman-Demi' + +`pbkdi' + `Bookman-DemiItalic' + +`pbkl' + `Bookman-Light' + +`pbkli' + `Bookman-LightItalic' + +`pcrb' + `Courier-Bold' + +`pcrbo' + `Courier-BoldOblique' + +`pcrr' + `Courier' + +`pcrro' + `Courier-Oblique' + +`phvb' + `Helvetica-Bold' + +`phvbo' + `Helvetica-BoldOblique' + +`phvbrn' + `Helvetica-NarrowBold' + +`phvbon' + `Helvetica-NarrowBoldOblique' + +`phvr' + `Helvetica' + +`phvro' + `Helvetica-Oblique' + +`phvrrn' + `Helvetica-Narrow' + +`phvron' + `Helvetica-NarrowOblique' + +`pncb' + `NewCenturySchlbk-Bold' + +`pncbi' + `NewCenturySchlbk-BoldItalic' + +`pncri' + `NewCenturySchlbk-Italic' + +`pncr' + `NewCenturySchlbk-Roman' + +`pplb' + `Palatino-Bold' + +`pplbi' + `Palatino-BoldItalic' + +`pplri' + `Palatino-Italic' + +`pplr' + `Palatino-Roman' + +`psyr' + `Symbol' + +`ptmb' + `Times-Bold' + +`ptmbi' + `Times-BoldItalic' + +`ptmri' + `Times-Italic' + +`ptmr' + `Times-Roman' + +`pzcmi' + `ZapfChancery-MediumItalic' + +`pzdr' + `ZapfDingbats' + + +File: fontname.info, Node: Adobe fonts, Next: Apple fonts, Prev: Standard PostScript fonts, Up: Font name lists + +A.2 Adobe fonts +=============== + +The `adobe.map' file has abbreviations for Adobe fonts. + + pcrb8a Courier-Bold A 0.1 cob_____ + pcrbo8a Courier-BoldOblique A 0.1 cobo____ + pcrr8a Courier A 0.1 com_____ + pcrro8a Courier-Oblique A 0.1 coo_____ + phvr8a Helvetica A 0.2 hv______ + phvb8a Helvetica-Bold A 0.2 hvb_____ + phvbo8a Helvetica-BoldOblique A 0.2 hvbo____ + phvro8a Helvetica-Oblique A 0.2 hvo_____ + psyr Symbol A 0.3 sy______ + ptmb8a Times-Bold A 0.4 tib_____ + ptmbi8a Times-BoldItalic A 0.4 tibi____ + ptmri8a Times-Italic A 0.4 tii_____ + ptmr8a Times-Roman A 0.4 tir_____ + phvr8an Helvetica-Narrow A 0.5 hvn_____ + phvb8an Helvetica-Narrow-Bold A 0.5 hvnb____ + phvbo8an Helvetica-Narrow-BoldOblique A 0.5 hvnbo___ + phvro8an Helvetica-Narrow-Oblique A 0.5 hvno____ + pplb8a Palatino-Bold A 001 pob_____ + pplbi8a Palatino-BoldItalic A 001 pobi____ + pplri8a Palatino-Italic A 001 poi_____ + pplr8a Palatino-Roman A 001 por_____ + pbkd8a Bookman-Demi A 002 bkd_____ + pbkdi8a Bookman-DemiItalic A 002 bkdi____ + pbkl8a Bookman-Light A 002 bkl_____ + pbkli8a Bookman-LightItalic A 002 bkli____ + pzcmi8a ZapfChancery-MediumItalic A 003 zcmi____ + pzdr ZapfDingbats A 003 zd______ + pagd8a AvantGarde-Demi A 004 agd_____ + pagdo8a AvantGarde-DemiOblique A 004 agdo____ + pagk8a AvantGarde-Book A 004 agw_____ + pagko8a AvantGarde-BookOblique A 004 agwo____ + pncb8a NewCenturySchlbk-Bold A 005 ncb_____ + pncbi8a NewCenturySchlbk-BoldItalic A 005 ncbi____ + pncri8a NewCenturySchlbk-Italic A 005 nci_____ + pncr8a NewCenturySchlbk-Roman A 005 ncr_____ + popr8a Optima A 006 op______ + popb8a Optima-Bold A 006 opb_____ + popbi8a Optima-BoldItalic A 006 opbi____ + popbo8a Optima-BoldOblique A 006 opbo____ + popri8a Optima-Italic A 006 opi_____ + popro8a Optima-Oblique A 006 opo_____ + psvd8a Souvenir-Demi A 007 sud_____ + psvdi8a Souvenir-DemiItalic A 007 sudi____ + psvl8a Souvenir-Light A 007 sul_____ + psvli8a Souvenir-LightItalic A 007 suli____ + plbd8a LubalinGraph-Demi A 008 lud_____ + plbdo8a LubalinGraph-DemiOblique A 008 ludo____ + plbk8a LubalinGraph-Book A 008 luw_____ + plbko8a LubalinGraph-BookOblique A 008 luwo____ + pgmb8a Garamond-Bold A 009 gab_____ + pgmbi8a Garamond-BoldItalic A 009 gabi____ + pgml8a Garamond-Light A 009 gal_____ + pgmli8a Garamond-LightItalic A 009 gali____ + patb8a AmericanTypewriter-Bold A 010 atb_____ + patba8a AmericanTypewriter-BoldA A 010 atba____ + patb8ac AmericanTypewriter-BoldCond A 010 atbc____ + patba8ac AmericanTypewriter-BoldCondA A 010 atbca___ + patr8ac AmericanTypewriter-Cond A 010 atc_____ + patra8ac AmericanTypewriter-CondA A 010 atca____ + patl8a AmericanTypewriter-Light A 010 atl_____ + patla8a AmericanTypewriter-LightA A 010 atla____ + patl8ac AmericanTypewriter-LightCond A 010 atlc____ + patla8ac AmericanTypewriter-LightCondA A 010 atlca___ + patm8a AmericanTypewriter-Medium A 010 atm_____ + patma8a AmericanTypewriter-MediumA A 010 atma____ + pbgb8a Benguiat-Bold A 011 bgb_____ + pbgk8a Benguiat-Book A 011 bgw_____ + pfqr8a FrizQuadrata A 011 fq______ + pfqb8a FrizQuadrata-Bold A 011 fqb_____ + pgpr8a Glypha A 012 gy______ + pgpb8a Glypha-Bold A 012 gyb_____ + pgpbo8a Glypha-BoldOblique A 012 gybo____ + pgpro8a Glypha-Oblique A 012 gyo_____ + phvc8a Helvetica-Black A 013 hvbl____ + phvco8a Helvetica-BlackOblique A 013 hvblo___ + phvl8a Helvetica-Light A 013 hvl_____ + phvlo8a Helvetica-LightOblique A 013 hvlo____ + phvr8ac Helvetica-Condensed A 014 hvc_____ + phvb8ac Helvetica-Condensed-Bold A 014 hvcb____ + phvc8ac Helvetica-Condensed-Black A 014 hvcbl___ + phvbo8ac Helvetica-Condensed-BoldObl A 014 hvcbo___ + phvro8ac Helvetica-Condensed-Oblique A 014 hvcdo___ + phvl8ac Helvetica-Condensed-Light A 014 hvcl____ + phvlo8ac Helvetica-Condensed-LightObl A 014 hvclo___ + phvco8ac Helvetica-Condensed-BlackObl A 014 hvco____ + ptvb8a TrumpMediaeval-Bold A 015 tmb_____ + ptvbi8a TrumpMediaeval-BoldItalic A 015 tmbi____ + ptvri8a TrumpMediaeval-Italic A 015 tmi_____ + ptvr8a TrumpMediaeval-Roman A 015 tmr_____ + pmlr8a Melior A 016 me______ + pmlb8a Melior-Bold A 016 meb_____ + pmlbi8a Melior-BoldItalic A 016 mebi____ + pmlri8a Melior-Italic A 016 mei_____ + pglb8a Galliard-Bold A 017 glb_____ + pglbi8a Galliard-BoldItalic A 017 glbi____ + pglri8a Galliard-Italic A 017 gli_____ + pglr8a Galliard-Roman A 017 glr_____ + pnbb8a NewBaskerville-Bold A 018 nbb_____ + pnbbi8a NewBaskerville-BoldItalic A 018 nbbi____ + pnbri8a NewBaskerville-Italic A 018 nbi_____ + pnbr8a NewBaskerville-Roman A 018 nbr_____ + pkrb8a Korinna-Bold A 019 krb_____ + pkrbi8a Korinna-KursivBold A 019 krkb____ + pkrri8a Korinna-KursivRegular A 019 krkx____ + pkrr8a Korinna-Regular A 019 krrg____ + pgyr8a Goudy A 020 go______ + pgyb8a Goudy-Bold A 020 gob_____ + pgybi8a Goudy-BoldItalic A 020 gobi____ + pgyri8a Goudy-Italic A 020 goi_____ + psor Sonata A 021 so______ + pcub8a CenturyOldStyle-Bold A 022 csb_____ + pcuri8a CenturyOldStyle-Italic A 022 csi_____ + pcur8a CenturyOldStyle-Regular A 022 csrg____ + pfgd8a FranklinGothic-Demi A 023 frd_____ + pfgdi8a FranklinGothic-DemiItal A 023 frdi____ + pfgdo8a FranklinGothic-DemiOblique A 023 frdo____ + pfgh8a FranklinGothic-Heavy A 023 frh_____ + pfghi8a FranklinGothic-HeavyItal A 023 frhi____ + pfgho8a FranklinGothic-HeavyOblique A 023 frho____ + pfgm8a FranklinGothic-Medium A 023 frm_____ + pfgmi8a FranklinGothic-MediumItal A 023 frmi____ + pfgk8a FranklinGothic-Book A 023 frw_____ + pfgki8a FranklinGothic-BookItal A 023 frwi____ + pfgko8a FranklinGothic-BookOblique A 023 frwo____ + pctb8a Cheltenham-Bold A 024 chb_____ + pctbi8a Cheltenham-BoldItalic A 024 chbi____ + pctk8a Cheltenham-Book A 024 chw_____ + pctki8a Cheltenham-BookItalic A 024 chwi____ + ppar8a ParkAvenue A 025 pa______ + pbdr8a Bodoni A 026 bd______ + pbdb8a Bodoni-Bold A 026 bdb_____ + pbdbi8a Bodoni-BoldItalic A 026 bdbi____ + pbdri8a Bodoni-Italic A 026 bdi_____ + pbdp8a Bodoni-Poster A 026 bdps____ + plgr8a LetterGothic A 027 lg______ + plgb8a LetterGothic-Bold A 027 lgb_____ + plgbo8a LetterGothic-BoldSlanted A 027 lgbsl___ + plgro8a LetterGothic-Slanted A 027 lgsl____ + pper8a PrestigeElite A 028 pe______ + ppeb8a PrestigeElite-Bold A 028 peb_____ + ppebo8a PrestigeElite-BoldSlanted A 028 pebsl___ + ppero8a PrestigeElite-Slanted A 028 pesl____ + porr8a Orator A 029 or______ + porro8a Orator-Slanted A 029 orsl____ + pngr8a NewsGothic A 030 ng______ + pngb8a NewsGothic-Bold A 030 ngb_____ + pngbo8a NewsGothic-BoldOblique A 030 ngbo____ + pngro8a NewsGothic-Oblique A 030 ngo_____ + ptfr8a Tiffany A 031 tf______ + ptfd8a Tiffany-Demi A 031 tfd_____ + ptfdi8a Tiffany-DemiItalic A 031 tfdi____ + ptfh8a Tiffany-Heavy A 031 tfh_____ + ptfhi8a Tiffany-HeavyItalic A 031 tfhi____ + ptfri8a Tiffany-Italic A 031 tfi_____ + pcbc8a CooperBlack A 032 cb______ + pcbci8a CooperBlack-Italic A 032 cbi_____ + pburw8a BrushScript A 033 bs______ + phbrw8a Hobo A 033 ho______ + pslb8a Stencil A 033 st______ + paab8a Aachen-Bold A 034 acb_____ + pfcrw8a FreestyleScript A 034 fs______ + prvb8a Revue A 034 re______ + puyr8a UniversityRoman A 034 ur______ + prtr Carta A 035 cr______ + plcr8a Lucida A 036 lc______ + plcb8a Lucida-Bold A 036 lcb_____ + plcbi8a Lucida-BoldItalic A 036 lcbi____ + plcri8a Lucida-Italic A 036 lci_____ + punr8a Univers A 037 uv______ + punb8a Univers-Bold A 037 uvb_____ + punc8a Univers-Black A 037 uvbl____ + punco8a Univers-BlackOblique A 037 uvblo___ + punbo8a Univers-BoldOblique A 037 uvbo____ + punl8a Univers-Light A 037 uvl_____ + punlo8a Univers-LightOblique A 037 uvlo____ + punro8a Univers-Oblique A 037 uvo_____ + punr8ac Univers-Condensed A 038 uvc_____ + punb8ac Univers-CondensedBold A 038 uvcb____ + punbo8ac Univers-CondensedBoldOblique A 038 uvcbo___ + punro8ac Univers-CondensedOblique A 038 uvcdo___ + punl8ac Univers-CondensedLight A 038 uvcl____ + punlo8ac Univers-CondensedLightOblique A 038 uvclo___ + pfub8a Futura-Bold A 039 fub_____ + pfubo8a Futura-BoldOblique A 039 fubo____ + pful8a Futura-Light A 039 ful_____ + pfulo8a Futura-LightOblique A 039 fulo____ + pfuk8a Futura-Book A 039 fuw_____ + pfuko8a Futura-BookOblique A 039 fuwo____ + pstr8a StoneSerif A 040 sr______ + pstb8a StoneSerif-Bold A 040 srb_____ + pstbi8a StoneSerif-BoldItalic A 040 srbi____ + pstri8a StoneSerif-Italic A 040 sri_____ + psts8a StoneSerif-Semibold A 040 srsb____ + pstsi8a StoneSerif-SemiboldItalic A 040 srsbi___ + ps8r8a StoneSans A 041 ss______ + ps8b8a StoneSans-Bold A 041 ssb_____ + ps8bi8a StoneSans-BoldItalic A 041 ssbi____ + ps8ri8a StoneSans-Italic A 041 ssi_____ + ps8s8a StoneSans-Semibold A 041 sssb____ + ps8si8a StoneSans-SemiboldItalic A 041 sssbi___ + psir8a StoneInformal A 042 si______ + psib8a StoneInformal-Bold A 042 sib_____ + psibi8a StoneInformal-BoldItalic A 042 sibi____ + psiri8a StoneInformal-Italic A 042 sii_____ + psis8a StoneInformal-Semibold A 042 sisb____ + psisi8a StoneInformal-SemiboldItalic A 042 sisbi___ + ponr8a Corona A 043 cn______ + ponb8a Corona-Bold A 043 cnb_____ + ponri8a Corona-Italic A 043 cni_____ + pesr8a Eurostile A 044 eu______ + pesb8a Eurostile-Bold A 044 eub_____ + pesbi8a Eurostile-BoldOblique A 044 eubo____ + pesd8a Eurostile-Demi A 044 eud_____ + pesdi8a Eurostile-DemiOblique A 044 eudo____ + pesri8a Eurostile-Oblique A 044 euo_____ + pexr8a Excelsior A 045 ex______ + pexb8a Excelsior-Bold A 045 exb_____ + pexri8a Excelsior-Italic A 045 exi_____ + pfur8a Futura A 046 fu______ + pfux8a Futura-ExtraBold A 046 fueb____ + pfuxo8a Futura-ExtraBoldOblique A 046 fuebo___ + pfuh8a Futura-Heavy A 046 fuh_____ + pfuho8a Futura-HeavyOblique A 046 fuho____ + pfuro8a Futura-Oblique A 046 fuo_____ + pfuxo8ac Futura-CondExtraBoldObl A 047 fcebo___ + pfur8ac Futura-Condensed A 047 fuc_____ + pfub8ac Futura-CondensedBold A 047 fucb____ + pfubo8ac Futura-CondensedBoldOblique A 047 fucbo___ + pfux8ac Futura-CondensedExtraBold A 047 fuceb___ + pful8ac Futura-CondensedLight A 047 fucl____ + pfulo8ac Futura-CondensedLightOblique A 047 fuclo___ + pfuro8ac Futura-CondensedOblique A 047 fuco____ + plsr8a LucidaSans A 048 ls______ + plsb8a LucidaSans-Bold A 048 lsb_____ + plsbi8a LucidaSans-BoldItalic A 048 lsbi____ + plsri8a LucidaSans-Italic A 048 lsi_____ + pmpb8a Memphis-Bold A 049 mpb_____ + pmpbi8a Memphis-BoldItalic A 049 mpbi____ + pmpx8a Memphis-ExtraBold A 049 mpeb____ + pmpl8a Memphis-Light A 049 mpl_____ + pmpli8a Memphis-LightItalic A 049 mpli____ + pmpm8a Memphis-Medium A 049 mpm_____ + pmpmi8a Memphis-MediumItalic A 049 mpmi____ + phvx8ap Helvetica-ExtraCompressed A 050 hvek____ + phvr8ap Helvetica-Compressed A 050 hvk_____ + phvu8ap Helvetica-UltraCompressed A 050 hvuk____ + pitb8a Italia-Bold A 051 itb_____ + pitm8a Italia-Medium A 051 itm_____ + pitk8a Italia-Book A 051 itw_____ + pblb8a Belwe-Bold A 052 bwb_____ + pblr8ac Belwe-Condensed A 052 bwc_____ + pbll8a Belwe-Light A 052 bwl_____ + pblm8a Belwe-Medium A 052 bwm_____ + pc5ri8a CaslonFiveForty-Italic A 053 cfi_____ + pc5r8a CaslonFiveForty-Roman A 053 cfr_____ + pc3ri8a CaslonThree-Italic A 053 cti_____ + pc3r8a CaslonThree-Roman A 053 ctr_____ + pgyx8a Goudy-ExtraBold A 054 goeb____ + pgyh8a Goudy-Heavyface A 054 goh_____ + pgyhi8a Goudy-HeavyfaceItalic A 054 gohi____ + pjnb8a JansonText-Bold A 055 jtb_____ + pjnbi8a JansonText-BoldItalic A 055 jtbi____ + pjnri8a JansonText-Italic A 055 jti_____ + pjnr8a JansonText-Roman A 055 jtr_____ + ierb8a ItcEras-Bold A 056 erb_____ + ierk8a ItcEras-Book A 056 erbk____ + ierd8a ItcEras-Demi A 056 erd_____ + ierl8a ItcEras-Light A 056 erl_____ + ierm8a ItcEras-Medium A 056 erm_____ + ieru8a ItcEras-Ultra A 056 eru_____ + ikbb8a ItcKabel-Bold A 057 kbb_____ + ikbd8a ItcKabel-Demi A 057 kbd_____ + ikbm8a ItcKabel-Medium A 057 kbm_____ + ikbu8a ItcKabel-Ultra A 057 kbu_____ + ikbk8a ItcKabel-Book A 057 kbw_____ + p_____ MICR A 058 mi______ + poar OCRA A 058 oa______ + poara OCRA-Alternate A 058 oaalt___ + pobr OCRB A 058 ob______ + pobra OCRB-Alternate A 058 obalt___ + phnc8a HelveticaNeue-Black A 059 hlbl____ + phnci8a HelveticaNeue-BlackItalic A 059 hlbli___ + phnj8a HelveticaNeue-UltraLight A 059 hlul____ + phnji8a HelveticaNeue-UltraLightItal A 059 hluli___ + phnb8a HelveticaNeue-Bold A 060 hlb_____ + phnbi8a HelveticaNeue-BoldItalic A 060 hlbi____ + phnri8a HelveticaNeue-Italic A 060 hli_____ + phnr8a HelveticaNeue-Roman A 060 hlr_____ + phna8a HelveticaNeue-Thin A 060 hlt_____ + phnai8a HelveticaNeue-ThinItalic A 060 hlti____ + phnh8a HelveticaNeue-Heavy A 061 hlh_____ + phnhi8a HelveticaNeue-HeavyItalic A 061 hlhi____ + phnl8a HelveticaNeue-Light A 061 hll_____ + phnli8a HelveticaNeue-LightItalic A 061 hlli____ + phnm8a HelveticaNeue-Medium A 061 hlm_____ + phnmi8a HelveticaNeue-MediumItalic A 061 hlmi____ + pttb8a TimesTen-Bold A 062 ttb_____ + pttbi8a TimesTen-BoldItalic A 062 ttbi____ + pttri8a TimesTen-Italic A 062 tti_____ + pttr8a TimesTen-Roman A 062 ttr_____ + pkur8a Kaufmann A 063 kf______ + pkub8a Kaufmann-Bold A 063 kfb_____ + pcdr8a Clarendon A 064 cl______ + pcdb8a Clarendon-Bold A 064 clb_____ + pcdl8a Clarendon-Light A 064 cll_____ + ppgb8a Peignot-Bold A 065 pgb_____ + ppgd8a Peignot-Demi A 065 pgd_____ + ppgl8a Peignot-Light A 065 pgl_____ + pndr8a NewCaledonia A 066 nl______ + pndb8a NewCaledonia-Bold A 066 nlb_____ + pndbi8a NewCaledonia-BoldItalic A 066 nlbi____ + pndc8a NewCaledonia-Black A 066 nlbl____ + pndci8a NewCaledonia-BlackItalic A 066 nlbli___ + pndri8a NewCaledonia-Italic A 066 nli_____ + pnds8a NewCaledonia-SemiBold A 066 nls_____ + pndsi8a NewCaledonia-SemiBoldItalic A 066 nlsi____ + pcfb8a Clearface-Bold A 067 ceb_____ + pcfbi8a Clearface-BoldItalic A 067 cebi____ + pcfc8a Clearface-Black A 067 cebl____ + pcfci8a Clearface-BlackItalic A 067 cebli___ + pcfh8a Clearface-Heavy A 067 ceh_____ + pcfhi8a Clearface-HeavyItalic A 067 cehi____ + pcfr8a Clearface-Regular A 067 cerg____ + pcfri8a Clearface-RegularItalic A 067 cergi___ + pamr8a Americana A 068 am______ + pamb8a Americana-Bold A 068 amb_____ + pamx8a Americana-ExtraBold A 068 ameb____ + pamri8a Americana-Italic A 068 ami_____ + psgr8a SerifGothic A 069 sg______ + psgb8a SerifGothic-Bold A 069 sgb_____ + psgc8a SerifGothic-Black A 069 sgbl____ + psgx8a SerifGothic-ExtraBold A 069 sgeb____ + psgh8a SerifGothic-Heavy A 069 sgh_____ + psgl8a SerifGothic-Light A 069 sgl_____ + pcnr8ax CenturyExpanded A 070 cy______ + pcnri8ax CenturyExpanded-Italic A 070 cyi_____ + psfb8a Serifa-Bold A 071 seb_____ + psfc8a Serifa-Black A 071 sebl____ + psfri8a Serifa-Italic A 071 sei_____ + psfl8a Serifa-Light A 071 sel_____ + psfli8a Serifa-LightItalic A 071 seli____ + psfr8a Serifa-Roman A 071 ser_____ + pcarl8a CaslonOpenFace A 072 ca______ + pfrb8a Frutiger-Bold A 073 ftb_____ + pfrbi8a Frutiger-BoldItalic A 073 ftbi____ + pfrc8a Frutiger-Black A 073 ftbl____ + pfrci8a Frutiger-BlackItalic A 073 ftbli___ + pfrri8a Frutiger-Italic A 073 fti_____ + pfrl8a Frutiger-Light A 073 ftl_____ + pfrli8a Frutiger-LightItalic A 073 ftli____ + pfrr8a Frutiger-Roman A 073 ftr_____ + pfru8a Frutiger-UltraBlack A 073 ftubl___ + pceb8a Centennial-Bold A 074 cib_____ + pcebi8a Centennial-BoldItalic A 074 cibi____ + pcec8a Centennial-Black A 074 cibl____ + pceci8a Centennial-BlackItalic A 074 cibli___ + pceri8a Centennial-Italic A 074 cii_____ + pcel8a Centennial-Light A 074 cil_____ + pceli8a Centennial-LightItalic A 074 cili____ + pcer8a Centennial-Roman A 074 cir_____ + pegb8a StempelGaramond-Bold A 075 gsb_____ + pegbi8a StempelGaramond-BoldItalic A 075 gsbi____ + pegri8a StempelGaramond-Italic A 075 gsi_____ + pegr8a StempelGaramond-Roman A 075 gsr_____ + pwsr8a Weiss A 076 we______ + pwsb8a Weiss-Bold A 076 web_____ + pwsx8a Weiss-ExtraBold A 076 weeb____ + pwsri8a Weiss-Italic A 076 wei_____ + pg3r8a GaramondThree A 077 gm______ + pg3b8a GaramondThree-Bold A 077 gmb_____ + pg3bi8a GaramondThree-BoldItalic A 077 gmbi____ + pg3ri8a GaramondThree-Italic A 077 gmi_____ + pulrk Universal-GreekwithMathPi A 078 unvmg___ + pulrncp Universal-NewswithCommPi A 078 unvnc___ + pavh8a Avenir-Heavy A 079 aeh_____ + pavho8a Avenir-HeavyOblique A 079 aeho____ + pavl8a Avenir-Light A 079 ael_____ + pavlo8a Avenir-LightOblique A 079 aelo____ + pavr8a Avenir-Roman A 079 aer_____ + pavro8a Avenir-Oblique A 079 aero____ + pavc8a Avenir-Black A 080 aebl____ + pavco8a Avenir-BlackOblique A 080 aeblo___ + pavm8a Avenir-Medium A 080 aem_____ + pavmo8a Avenir-MediumOblique A 080 aemo____ + pavk8a Avenir-Book A 080 aew_____ + pavko8a Avenir-BookOblique A 080 aewo____ + pwbb8a WalbaumBook-Bold A 081 wbb_____ + pwbbi8a WalbaumBook-BoldItalic A 081 wbbi____ + pwbri8a WalbaumBook-Italic A 081 wbi_____ + pwbm8a WalbaumBook-Medium A 081 wbm_____ + pwbmi8a WalbaumBook-MediumItalic A 081 wbmi____ + pwbr8a WalbaumBook-Regular A 081 wbrg____ + paob8a AntiqueOlive-Bold A 082 aqb_____ + paoc8a AntiqueOlive-Black A 082 aqbl____ + paori8a AntiqueOlive-Italic A 082 aqi_____ + paol8a AntiqueOlive-Light A 082 aql_____ + paor8a AntiqueOlive-Roman A 082 aqr_____ + plfb8a Life-Bold A 083 lib_____ + plfri8a Life-Italic A 083 lii_____ + plfr8a Life-Roman A 083 lir_____ + pocri8a ConcordeBE-Italic A 084 qqi_____ + pocm8a ConcordeBE-Medium A 084 qqm_____ + pocmi8a ConcordeBE-MediumItalic A 084 qqmi____ + pocr8a ConcordeBE-Regular A 084 qqrg____ + pg1r8a Gothic-Thirteen A 085 gtt_____ + ptph8ac Tempo-HeavyCondensed A 085 tehc____ + ptphi8ac Tempo-HeavyCondensedItalic A 085 tehci___ + pcor8a Cochin A 086 cc______ + pcob8a Cochin-Bold A 086 ccb_____ + pcobi8a Cochin-BoldItalic A 086 ccbi____ + pcori8a Cochin-Italic A 086 cci_____ + pbhb8a Bauhaus-Bold A 087 bhb_____ + pbhd8a Bauhaus-Demi A 087 bhd_____ + pbhh8a Bauhaus-Heavy A 087 bhh_____ + pbhl8a Bauhaus-Light A 087 bhl_____ + pbhm8a Bauhaus-Medium A 087 bhm_____ + psbb8a Sabon-Bold A 088 sab_____ + psbbi8a Sabon-BoldItalic A 088 sabi____ + psbri8a Sabon-Italic A 088 sai_____ + psbr8a Sabon-Roman A 088 sar_____ + phgb8a Hiroshige-Bold A 089 hrb_____ + phgbi8a Hiroshige-BoldItalic A 089 hrbi____ + phgc8a Hiroshige-Black A 089 hrbl____ + phgci8a Hiroshige-BlackItalic A 089 hrbli___ + phgm8a Hiroshige-Medium A 089 hrm_____ + phgmi8a Hiroshige-MediumItalic A 089 hrmi____ + phgk8a Hiroshige-Book A 089 hrw_____ + phgki8a Hiroshige-BookItalic A 089 hrwi____ + pabr8a ArnoldBoecklin A 090 ab______ + pftrf8a FetteFraktur A 090 ff______ + pftrf7c FetteFraktur-Dfr A 090 ffdfr___ + phir8a HelveticaInserat-Roman A 090 hir_____ + pptr8a Present A 090 pr______ + pdcr8a DomCasual A 091 dc______ + pdcb8a DomCasual-Bold A 091 dcb_____ + ppqm8a PostAntiquaBE-Medium A 092 pbm_____ + ppqr8a PostAntiquaBE-Regular A 092 pbrg____ + pfob8a Folio-Bold A 093 fob_____ + pfob8ac Folio-BoldCondensed A 093 fobc____ + pfox8a Folio-ExtraBold A 093 foeb____ + pfol8a Folio-Light A 093 fol_____ + pfom8a Folio-Medium A 093 fom_____ + plnrw8a Linoscript A 094 lp______ + plnrf8a Linotext A 094 lx______ + plnrf7c Linotext-Dfr A 094 lxdfr___ + pvrb8a VAGRounded-Bold A 095 vrb_____ + pvrc8a VAGRounded-Black A 095 vrbl____ + pvrl8a VAGRounded-Light A 095 vrl_____ + pvra8a VAGRounded-Thin A 095 vrt_____ + pazb8a AkzidenzGroteskBE-Bold A 096 gfb_____ + pazbi8a AkzidenzGroteskBE-BoldIt A 096 gfbi____ + pazri8a AkzidenzGroteskBE-It A 096 gfi_____ + pazl8a AkzidenzGroteskBE-Light A 096 gfl_____ + pazlj8a AkzidenzGroteskBE-LightOsF A 096 gflos___ + pazm8a AkzidenzGroteskBE-Md A 096 gfm_____ + pazmi8a AkzidenzGroteskBE-MdIt A 096 gfmi____ + pazr8a AkzidenzGroteskBE-Regular A 096 gfrg____ + pazu8a AkzidenzGroteskBE-Super A 096 gfsu____ + pipb8a Impressum-Bold A 097 imb_____ + pipri8a Impressum-Italic A 097 imi_____ + pipr8a Impressum-Roman A 097 imr_____ + pubb8a BauerBodoni-Bold A 098 bbb_____ + pubbi8a BauerBodoni-BoldItalic A 098 bbbi____ + pubri8a BauerBodoni-Italic A 098 bbi_____ + pubr8a BauerBodoni-Roman A 098 bbr_____ + pnar8a NewAster A 099 na______ + pnab8a NewAster-Bold A 099 nab_____ + pnabi8a NewAster-BoldItalic A 099 nabi____ + pnac8a NewAster-Black A 099 nabl____ + pnaci8a NewAster-BlackItalic A 099 nabli___ + pnari8a NewAster-Italic A 099 nai_____ + pnas8a NewAster-SemiBold A 099 nas_____ + pnasi8a NewAster-SemiBoldItalic A 099 nasi____ + padb8a AGaramond-Bold A 100 gdb_____ + padbi8a AGaramond-BoldItalic A 100 gdbi____ + padri8a AGaramond-Italic A 100 gdi_____ + padr8a AGaramond-Regular A 100 gdrg____ + pads8a AGaramond-Semibold A 100 gdsb____ + padsi8a AGaramond-SemiboldItalic A 100 gdsbi___ + padbij8a AGaramond-BoldItalicOsF A 101 gdbio___ + padbj8a AGaramond-BoldOsF A 101 gdbos___ + padrij8a AGaramond-ItalicOsF A 101 gdio____ + padsc8a AGaramond-SemiboldSC A 101 gdsbs___ + padrc8a AGaramond-RegularSC A 101 gdsc____ + padsij8a AGaramond-SemiboldItalicOsF A 101 gdsis___ + padrd8a AGaramond-Titling A 101 gdttl___ + padb8x AGaramondExp-Bold A 101 geb_____ + padbi8x AGaramondExp-BoldItalic A 101 gebi____ + padri8x AGaramondExp-Italic A 101 gei_____ + padr8x AGaramondExp-Regular A 101 gerg____ + pads8x AGaramondExp-Semibold A 101 gesb____ + padsi8x AGaramondExp-SemiboldItalic A 101 gesbi___ + padri7a AGaramondAlt-Italic A 101 ggi_____ + padr7a AGaramondAlt-Regular A 101 ggrg____ + pcib8a Candida-Bold A 102 cgb_____ + pciri8a Candida-Italic A 102 cgi_____ + pcir8a Candida-Roman A 102 cgr_____ + pfgr8ac FranklinGothic-Condensed A 103 fgc_____ + pfgr8aq FranklinGothic-ExtraCond A 103 fgec____ + pfgr8a FranklinGothic-Roman A 103 fgr_____ + putb8a Utopia-Bold A 104 utb_____ + putbi8a Utopia-BoldItalic A 104 utbi____ + putc8a Utopia-Black A 104 utbl____ + putri8a Utopia-Italic A 104 uti_____ + putr8a Utopia-Regular A 104 utrg____ + puts8a Utopia-Semibold A 104 utsb____ + putsi8a Utopia-SemiboldItalic A 104 utsbi___ + putb8x UtopiaExp-Bold A 105 ueb_____ + putbi8x UtopiaExp-BoldItalic A 105 uebi____ + putc8x UtopiaExp-Black A 105 uebl____ + putri8x UtopiaExp-Italic A 105 uei_____ + putr8x UtopiaExp-Regular A 105 uerg____ + puts8x UtopiaExp-Semibold A 105 uesb____ + putsi8x UtopiaExp-SemiboldItalic A 105 uesbi___ + putbij8a Utopia-BoldItalicOsF A 105 utbio___ + putbj8a Utopia-BoldOsF A 105 utbos___ + putrij8a Utopia-ItalicOsF A 105 utio____ + putrp Utopia-Ornaments A 105 utor____ + putrc8a Utopia-RegularSC A 105 utrsc___ + putsc8a Utopia-SemiboldSC A 105 utsbs___ + putsij8a Utopia-SemiboldItalicOsF A 105 utsis___ + putrd8a Utopia-Titling A 105 utttl___ + putcj8a Utopia-BlackOsF A 105 utzof___ + pbyb8a Berkeley-Bold A 106 byb_____ + pbybi8a Berkeley-BoldItalic A 106 bybi____ + pbyc8a Berkeley-Black A 106 bybl____ + pbyci8a Berkeley-BlackItalic A 106 bybli___ + pbymi8a Berkeley-Italic A 106 byi_____ + pbym8a Berkeley-Medium A 106 bym_____ + pbyk8a Berkeley-Book A 106 byw_____ + pbyki8a Berkeley-BookItalic A 106 bywi____ + paob8ac AntiqueOlive-BoldCond A 107 aqbc____ + paor8ap AntiqueOlive-Compact A 107 aqct____ + paohix8a AntiqueOlive-Nord A 107 aqnr____ + paohrx8a AntiqueOlive-NordItalic A 107 aqnri___ + ppsr8a Parisian A 108 pn______ + pumr8a Umbra A 108 um______ + pmsrw8a Mistral A 109 ms______ + prprw8a Reporter-Two A 109 rp______ + pccrw8a CascadeScript A 110 ck______ + pmirw8a MediciScript A 110 mc______ + pnurw8a NuptialScript A 110 nu______ + pubb8ac BauerBodoni-BoldCond A 111 bbbc____ + pubc8a BauerBodoni-Black A 111 bbbl____ + pubc8ac BauerBodoni-BlackCond A 111 bbblc___ + pubci8a BauerBodoni-BlackItalic A 111 bbbli___ + pmdb8a Meridien-Bold A 112 m0b_____ + pmdbi8a Meridien-BoldItalic A 112 m0bi____ + pmdri8a Meridien-Italic A 112 m0i_____ + pmdm8a Meridien-Medium A 112 m0m_____ + pmdmi8a Meridien-MediumItalic A 112 m0mi____ + pmdr8a Meridien-Roman A 112 m0r_____ + zpcp29ab Copperplate-TwentyNineAB A 113 cp29a___ + zpcp29bc Copperplate-TwentyNineBC A 113 cp29c___ + zpcp30ab Copperplate-ThirtyAB A 113 cp30a___ + zpcp30bc Copperplate-ThirtyBC A 113 cp30c___ + zpcp31ab Copperplate-ThirtyOneAB A 113 cp31a___ + zpcp31bc Copperplate-ThirtyOneBC A 113 cp31c___ + zpcp32ab Copperplate-ThirtyTwoAB A 113 cp32a___ + zpcp32bc Copperplate-ThirtyTwoBC A 113 cp32c___ + zpcp33bc Copperplate-ThirtyThreeBC A 113 cp33c___ + pnvb8a Novarese-Bold A 114 nob_____ + pnvbi8a Novarese-BoldItalic A 114 nobi____ + pnvm8a Novarese-Medium A 114 nom_____ + pnvmi8a Novarese-MediumItalic A 114 nomi____ + pnvu8a Novarese-Ultra A 114 nou_____ + pnvk8a Novarese-Book A 114 now_____ + pnvki8a Novarese-BookItalic A 114 nowi____ + pksbw8a KuenstlerScript-TwoBold A 115 kt2b____ + pkscw8a KuenstlerScript-Black A 115 ktbl____ + pksmw8a KuenstlerScript-Medium A 115 ktm_____ + parr8a Arcadia A 116 a_______ + parra8a Arcadia-A A 116 a_aaa___ + pinrh8a Industria-Inline A 116 inin____ + pinrha8a Industria-InlineA A 116 inina___ + piar8a Insignia A 116 ins_____ + piara8a Insignia-A A 116 insa____ + pinr8a Industria-Solid A 116 insd____ + pinra8a Industria-SolidA A 116 insda___ + psvb8a Souvenir-Bold A 117 sub_____ + psvbi8a Souvenir-BoldItalic A 117 subi____ + psvm8a Souvenir-Medium A 117 sum_____ + psvmi8a Souvenir-MediumItalic A 117 sumi____ + pbdb8ac Bodoni-BoldCondensed A 118 bdbc____ + pbdp8ap Bodoni-PosterCompressed A 118 bdpsc___ + pbdpi8a Bodoni-PosterItalic A 118 bdpsi___ + pbdk8a Bodoni-Book A 118 bdw_____ + pbdki8a Bodoni-BookItalic A 118 bdwi____ + prqr8a RussellSquare A 119 ru______ + prqro8a RussellSquare-Oblique A 119 ruo_____ + pcgb8a Charlemagne-Bold A 120 czb_____ + pcgr8a Charlemagne-Regular A 120 czrg____ + ptjb8a Trajan-Bold A 120 tjb_____ + ptjr8a Trajan-Regular A 120 tjrg____ + plob8a Lithos-Bold A 121 lob_____ + ploc8a Lithos-Black A 121 lobl____ + ploi8a Lithos-ExtraLight A 121 loel____ + plol8a Lithos-Light A 121 lol_____ + plor8a Lithos-Regular A 121 lorg____ + pcwr8a Cottonwood A 122 c_______ + piwr8a Ironwood A 122 i_______ + pjpr8a Juniper A 122 j_______ + pmqr8a Mesquite A 122 m_______ + ppor8a Ponderosa A 122 p_______ + ppi026 WoodtypeOrnaments-One A 122 woor____ + ptkb8a Tekton-Bold A 123 tkb_____ + ptkbo8a Tekton-BoldOblique A 123 tkbo____ + ptkro8a Tekton-Oblique A 123 tko_____ + ptkr8a Tekton A 123 tkrg____ + pagb8ac AvantGarde-CondBold A 124 agcb____ + pagd8ac AvantGarde-CondDemi A 124 agcd____ + pagm8ac AvantGarde-CondMedium A 124 agcm____ + pagk8ac AvantGarde-CondBook A 124 agcw____ + pssb8a StempelSchneidler-Bold A 125 skb_____ + pssbi8a StempelSchneidler-BoldItalic A 125 skbi____ + pssc8a StempelSchneidler-Black A 125 skbl____ + pssci8a StempelSchneidler-BlackItalic A 125 skbli___ + pssri8a StempelSchneidler-Italic A 125 ski_____ + pssl8a StempelSchneidler-Light A 125 skl_____ + pssli8a StempelSchneidler-LightItalic A 125 skli____ + pssm8a StempelSchneidler-Medium A 125 skm_____ + pssmi8a StempelSchneidler-MedItalic A 125 skmi____ + pssr8a StempelSchneidler-Roman A 125 skr_____ + ptgr8a TradeGothic A 126 tg______ + ptgb8a TradeGothic-Bold A 126 tgb_____ + ptgbo8a TradeGothic-BoldOblique A 126 tgbo____ + ptgc8a TradeGothic-BoldTwo A 126 tgb2____ + ptgco8a TradeGothic-BoldTwoOblique A 126 tgb2o___ + ptgl8a TradeGothic-Light A 126 tgl_____ + ptglo8a TradeGothic-LightOblique A 126 tglo____ + ptgro8a TradeGothic-Oblique A 126 tgo_____ + ptgb8ac TradeGothic-BoldCondTwenty A 127 tgbc____ + ptgbo8ac TradeGothic-BoldCondTwentyObl A 127 tgbco___ + ptgr8ac TradeGothic-CondEighteen A 127 tgc_____ + ptgro8ac TradeGothic-CondEighteenObl A 127 tgco____ + prar8a Raleigh A 128 ra______ + prab8a Raleigh-Bold A 128 rab_____ + prad8a Raleigh-DemiBold A 128 rad_____ + pram8a Raleigh-Medium A 128 ram_____ + pmtb8a Minister-Bold A 129 mzb_____ + pmtbi8a Minister-BoldItalic A 129 mzbi____ + pmtc8a Minister-Black A 129 mzbl____ + pmtci8a Minister-BlackItalic A 129 mzbli___ + pmtl8a Minister-Light A 129 mzl_____ + pmtli8a Minister-LightItalic A 129 mzli____ + pmtk8a Minister-Book A 129 mzw_____ + pmtki8a Minister-BookItalic A 129 mzwi____ + pesb8ac Eurostile-BoldCondensed A 130 eubc____ + pesb8ax Eurostile-BoldExtendedTwo A 130 eubex___ + pesr8ac Eurostile-Condensed A 130 euc_____ + pesr8ax Eurostile-ExtendedTwo A 130 euex____ + pwdb8a Weidemann-Bold A 131 wdb_____ + pwdbi8a Weidemann-BoldItalic A 131 wdbi____ + pwdc8a Weidemann-Black A 131 wdbl____ + pwdci8a Weidemann-BlackItalic A 131 wdbli___ + pwdm8a Weidemann-Medium A 131 wdm_____ + pwdmi8a Weidemann-MediumItalic A 131 wdmi____ + pwdk8a Weidemann-Book A 131 wdw_____ + pwdki8a Weidemann-BookItalic A 131 wdwi____ + pqrb8a Quorum-Bold A 132 qob_____ + pqrc8a Quorum-Black A 132 qobl____ + pqrl8a Quorum-Light A 132 qol_____ + pqrm8a Quorum-Medium A 132 qom_____ + pqrk8a Quorum-Book A 132 qow_____ + pcxb8a Caxton-Bold A 133 cxb_____ + pcxbi8a Caxton-BoldItalic A 133 cxbi____ + pcxl8a Caxton-Light A 133 cxl_____ + pcxli8a Caxton-LightItalic A 133 cxli____ + pcxk8a Caxton-Book A 133 cxw_____ + pcxki8a Caxton-BookItalic A 133 cxwi____ + psxb8a Syntax-Bold A 134 sxb_____ + psxc8a Syntax-Black A 134 sxbl____ + psxri8a Syntax-Italic A 134 sxi_____ + psxr8a Syntax-Roman A 134 sxr_____ + psxu8a Syntax-UltraBlack A 134 sxubl___ + pdrb8a Doric-Bold A 135 drb_____ + pmxr8a Maximus A 135 mx______ + pserd8a Shelley-AllegroScript A 136 shal____ + pser8a Shelley-AndanteScript A 136 shan____ + pserw8a Shelley-VolanteScript A 136 shvo____ + pnzk8a NeuzeitS-Book A 137 new_____ + pnzh8a NeuzeitS-BookHeavy A 137 newh____ + pvlb8a Versailles-Bold A 138 veb_____ + pvlbi8a Versailles-BoldItalic A 138 vebi____ + pvlc8a Versailles-Black A 138 vebl____ + pvlci8a Versailles-BlackItalic A 138 vebli___ + pvlri8a Versailles-Italic A 138 vei_____ + pvll8a Versailles-Light A 138 vel_____ + pvlli8a Versailles-LightItalic A 138 veli____ + pvlr8a Versailles-Roman A 138 ver_____ + pgmb8ac Garamond-BoldCondensed A 139 gabc____ + pgmbi8ac Garamond-BoldCondensedItalic A 139 gabci___ + pgml8ac Garamond-LightCondensed A 139 galc____ + pgmlu8ac Garamond-LightCondensedItalic A 139 galci___ + pgmu8ac Garamond-UltraCondensed A 139 gauc____ + pgmui8ac Garamond-UltraCondensedItalic A 139 gauci___ + pgmk8ac Garamond-BookCondensed A 139 gawc____ + pgmki8ac Garamond-BookCondensedItalic A 139 gawci___ + pctl8a Cheltenham-Light A 140 chl_____ + pctli8a Cheltenham-LightItalic A 140 chli____ + pctu8a Cheltenham-Ultra A 140 chu_____ + pctui8a Cheltenham-UltraItalic A 140 chui____ + pcnb8a Century-Bold A 141 icb_____ + pcnbi8a Century-BoldItalic A 141 icbi____ + pcnl8a Century-Light A 141 icl_____ + pcnli8a Century-LightItalic A 141 icli____ + pcnu8a Century-Ultra A 141 icu_____ + pcnui8a Century-UltraItalic A 141 icui____ + pcnk8a Century-Book A 141 icw_____ + pcnki8a Century-BookItalic A 141 icwi____ + pcnb8ac Century-BoldCondensed A 142 icbc____ + pcnbi8ac Century-BoldCondensedItalic A 142 icbci___ + pcnl8ac Century-LightCondensed A 142 iclc____ + pcnli8ac Century-LightCondensedItalic A 142 iclci___ + pcnu8ac Century-UltraCondensed A 142 icuc____ + pcnui8ac Century-UltraCondensedItalic A 142 icuci___ + pcnk8ac Century-BookCondensed A 142 icwc____ + pcnki8ac Century-BookCondensedItalic A 142 icwci___ + pmnb8a Minion-Bold A 143 mob_____ + pmnbi8a Minion-BoldItalic A 143 mobi____ + pmnc8a Minion-Black A 143 mobl____ + pmnrd8a Minion-DisplayRegular A 143 mods____ + pmnrid8a Minion-DisplayItalic A 143 modsi___ + pmnri8a Minion-Italic A 143 moi_____ + pmnr8a Minion-Regular A 143 morg____ + pmns8a Minion-Semibold A 143 mosb____ + pmnsi8a Minion-SemiboldItalic A 143 mosbi___ + pmnb8x MinionExp-Bold A 144 mjb_____ + pmnbi8x MinionExp-BoldItalic A 144 mjbi____ + pmnc8x MinionExp-Black A 144 mjbl____ + pmnrd8x MinionExp-DisplayRegular A 144 mjds____ + pmnrid8x MinionExp-DisplayItalic A 144 mjdsi___ + pmnri8x MinionExp-Italic A 144 mji_____ + pmnr8x MinionExp-Regular A 144 mjrg____ + pmns8x MinionExp-Semibold A 144 mjsb____ + pmnsi8x MinionExp-SemiboldItalic A 144 mjsbi___ + pmnbij8a Minion-BoldItalicOsF A 144 mobio___ + pmnbj8a Minion-BoldOsF A 144 mobos___ + pmnricd8a Minion-DisplayItalicSC A 144 modis___ + pmnrcd8a Minion-DisplayRegularSC A 144 modsc___ + pmnric8a Minion-ItalicSC A 144 moisc___ + pmnrp Minion-Ornaments A 144 moor____ + pmnsc8a Minion-SemiboldSC A 144 mosbs___ + pmnrc8a Minion-RegularSC A 144 mosc____ + pmnriwd7a Minion-SwashDisplayItalic A 144 mosdi___ + pmnsic8a Minion-SemiboldItalicSC A 144 mosic___ + pmnsiw7a Minion-SwashSemiboldItalic A 144 mossb___ + pmnriw7a Minion-SwashItalic A 144 moswi___ + pmncj8a Minion-BlackOsF A 144 mozof___ + mnsb8a TimesNewRomanPS-Bold A 145 mtb_____ + mnsbi8a TimesNewRomanPS-BoldItalic A 145 mtbi____ + mnsri8a TimesNewRomanPS-Italic A 145 mti_____ + pnsr8a TimesNewRomanPS A 145 mtr_____ + pbkb8a Bookman-Bold A 146 bkb_____ + pbkbi8a Bookman-BoldItalic A 146 bkbi____ + pbkm8a Bookman-Medium A 146 bkm_____ + pbkmi8a Bookman-MediumItalic A 146 bkmi____ + psrrw8a SnellRoundhand-Script A 147 sn______ + psrbw8a SnellRoundhand-BoldScript A 147 snb_____ + psrcw8a SnellRoundhand-BlackScript A 147 snbl____ + pigb8a SimonciniGaramond-Bold A 148 gib_____ + pigri8a SimonciniGaramond-Italic A 148 gii_____ + pigr8a SimonciniGaramond A 148 gir_____ + pbcr8a Banco A 149 bc______ + phmr8a Charme A 149 cu______ + pfyc8ac Flyer-BlackCondensed A 149 flblc___ + pfyx8ac Flyer-ExtraBlackCondensed A 149 flebc___ + pwgrf8a WilhelmKlingsporGotisch A 149 wk______ + pwgrf7c WilhelmKlingsporGotisch-Dfr A 149 wkdfr___ + pgmu8a Garamond-Ultra A 150 gau_____ + pgmui8a Garamond-UltraItalic A 150 gaui____ + pgmk8a Garamond-Book A 150 gaw_____ + pgmki8a Garamond-BookItalic A 150 gawi____ + prwr8a Rockwell A 151 rk______ + prwb8a Rockwell-Bold A 151 rkb_____ + prwbi8a Rockwell-BoldItalic A 151 rkbi____ + prwri8a Rockwell-Italic A 151 rki_____ + prwl8a Rockwell-Light A 151 rkl_____ + prwli8a Rockwell-LightItalic A 151 rkli____ + pgsr8a GillSans A 152 gn______ + pgsb8a GillSans-Bold A 152 gnb_____ + pgsbi8a GillSans-BoldItalic A 152 gnbi____ + pgsri8a GillSans-Italic A 152 gni_____ + pgsl8a GillSans-Light A 152 gnl_____ + pgsli8a GillSans-LightItalic A 152 gnli____ + pspb8a Serpentine-Bold A 153 sfb_____ + pspbo8a Serpentine-BoldOblique A 153 sfbo____ + pspl8a Serpentine-Light A 153 sfl_____ + psplo8a Serpentine-LightOblique A 153 sflo____ + pspm8a Serpentine-Medium A 153 sfm_____ + pspmo8a Serpentine-MediumOblique A 153 sfmo____ + plcrv LucidaMath-Extension A 154 lme_____ + plcrim LucidaMath-Italic A 154 lmi_____ + plcry LucidaMath-Symbol A 154 lms_____ + ppi005 EuropeanPi-One A 155 euro1___ + ppi006 EuropeanPi-Two A 155 euro2___ + ppi007 EuropeanPi-Three A 155 euro3___ + ppi008 EuropeanPi-Four A 155 euro4___ + ppi001 BorderPi-OneFiveOneFiveNine A 155 j1515___ + ppi002 BundesbahnPi-One A 156 db1_____ + ppi003 BundesbahnPi-Two A 156 db2_____ + ppi004 BundesbahnPi-Three A 156 db3_____ + pc2b8a CaslonTwoTwentyFour-Bold A 157 c2b_____ + pc2bi8a CaslonTwoTwentyFour-BoldIt A 157 c2bi____ + pc2c8a CaslonTwoTwentyFour-Black A 157 c2bl____ + pc2ci8a CaslonTwoTwentyFour-BlackIt A 157 c2bli___ + pc2m8a CaslonTwoTwentyFour-Medium A 157 c2m_____ + pc2mi8a CaslonTwoTwentyFour-MediumIt A 157 c2mi____ + pc2k8a CaslonTwoTwentyFour-Book A 157 c2w_____ + pc2ki8a CaslonTwoTwentyFour-BookIt A 157 c2wi____ + ppi020 MathematicalPi-One A 158 mh1_____ + ppi021 MathematicalPi-Two A 158 mh2_____ + ppi022 MathematicalPi-Three A 158 mh3_____ + ppi023 MathematicalPi-Four A 158 mh4_____ + ppi024 MathematicalPi-Five A 158 mh5_____ + ppi025 MathematicalPi-Six A 158 mh6_____ + plwb8a Leawood-Bold A 159 lwb_____ + plwbi8a Leawood-BoldItalic A 159 lwbi____ + plwc8a Leawood-Black A 159 lwbl____ + plwci8a Leawood-BlackItalic A 159 lwbli___ + plwm8a Leawood-Medium A 159 lwm_____ + plwmi8a Leawood-MediumItalic A 159 lwmi____ + plwk8a Leawood-Book A 159 lww_____ + plwki8a Leawood-BookItalic A 159 lwwi____ + pbir8a Birch A 160 bi______ + pb0r8a Blackoak A 160 bo______ + pmrr8a Madrone A 160 mq______ + pp0r8a Poplar A 160 pp______ + pwwr8a Willow A 160 wi______ + ppi027 WoodtypeOrnaments-Two A 160 woor2___ + pbbr8a Bembo A 161 bm______ + pbbb8a Bembo-Bold A 161 bmb_____ + pbbbi8a Bembo-BoldItalic A 161 bmbi____ + pbbri8a Bembo-Italic A 161 bmi_____ + pgsb8ac GillSans-BoldCondensed A 162 gnbc____ + pgsr8ac GillSans-Condensed A 162 gnc_____ + pgsx8a GillSans-ExtraBold A 162 gneb____ + pgsu8a GillSans-UltraBold A 162 gnub____ + pgsu8ac GillSans-UltraBoldCondensed A 162 gnubc___ + prwb8ac Rockwell-BoldCondensed A 163 rkbc____ + prwr8ac Rockwell-Condensed A 163 rkc_____ + prwx8a Rockwell-ExtraBold A 163 rkeb____ + pgpc8a Glypha-Black A 164 gybl____ + pgpco8a Glypha-BlackOblique A 164 gyblo___ + pgpl8a Glypha-Light A 164 gyl_____ + pgplo8a Glypha-LightOblique A 164 gylo____ + pgpa8a Glypha-Thin A 164 gyt_____ + pgpao8a Glypha-ThinOblique A 164 gyto____ + pzcb8a ZapfChancery-Bold A 165 zcb_____ + pzcd8a ZapfChancery-Demi A 165 zcd_____ + pzcri8a ZapfChancery-Italic A 165 zci_____ + pzcl8a ZapfChancery-Light A 165 zcl_____ + pzcli8a ZapfChancery-LightItalic A 165 zcli____ + pzcr8a ZapfChancery-Roman A 165 zcr_____ + puwb8a Usherwood-Bold A 166 usb_____ + puwbi8a Usherwood-BoldItalic A 166 usbi____ + puwc8a Usherwood-Black A 166 usbl____ + puwci8a Usherwood-BlackItalic A 166 usbli___ + puwm8a Usherwood-Medium A 166 usm_____ + puwmi8a Usherwood-MediumItalic A 166 usmi____ + puwk8a Usherwood-Book A 166 usw_____ + puwki8a Usherwood-BookItalic A 166 uswi____ + isyb8a ItcSymbol-Bold A 167 isb_____ + isybi8a ItcSymbol-BoldItalic A 167 isbi____ + isyc8a ItcSymbol-Black A 167 isbl____ + isyci8a ItcSymbol-BlackItalic A 167 isbli___ + isym8a ItcSymbol-Medium A 167 ism_____ + isymi8a ItcSymbol-MediumItalic A 167 ismi____ + isyk8a ItcSymbol-Book A 167 isw_____ + isyki8a ItcSymbol-BookItalic A 167 iswi____ + punb8ax Univers-BoldExt A 168 uvbv____ + punbo8ax Univers-BoldExtObl A 168 uvbvo___ + punx8ax Univers-ExtraBlackExt A 168 uvfv____ + punxo8ax Univers-ExtraBlackExtObl A 168 uvfvo___ + punr8ax Univers-Extended A 168 uvv_____ + punro8ax Univers-ExtendedObl A 168 uvvo____ + punc8ax Univers-BlackExt A 168 uvzv____ + punco8ax Univers-BlackExtObl A 168 uvzvo___ + poyr8a Olympian A 169 ol______ + poyb8a Olympian-Bold A 169 olb_____ + poybi8a Olympian-BoldItalic A 169 olbi____ + poyri8a Olympian-Italic A 169 oli_____ + puhb8a Cushing-Bold A 170 iub_____ + puhbi8a Cushing-BoldItalic A 170 iubi____ + puhh8a Cushing-Heavy A 170 iuh_____ + puhhi8a Cushing-HeavyItalic A 170 iuhi____ + puhm8a Cushing-Medium A 170 ium_____ + puhmi8a Cushing-MediumItalic A 170 iumi____ + puhk8a Cushing-Book A 170 iuw_____ + puhki8a Cushing-BookItalic A 170 iuwi____ + pcqr Cheq A 171 cq______ + ps7rp Sassoon-Primary A 172 sass____ + pfnb8a Fenice-Bold A 173 feb_____ + pfnbo8a Fenice-BoldOblique A 173 febo____ + pfnl8a Fenice-Light A 173 fel_____ + pfnlo8a Fenice-LightOblique A 173 felo____ + pfnr8a Fenice-Regular A 173 ferg____ + pfnro8a Fenice-RegularOblique A 173 fergo___ + pfnu8a Fenice-Ultra A 173 feu_____ + pfnuo8a Fenice-UltraOblique A 173 feuo____ + pctb8ac Cheltenham-BoldCond A 174 chbc____ + pctbi8ac Cheltenham-BoldCondItalic A 174 chbci___ + pctl8ac Cheltenham-LightCond A 174 chlc____ + pctli8ac Cheltenham-LightCondItalic A 174 chlci___ + pctu8ac Cheltenham-UltraCond A 174 chuc____ + pctui8ac Cheltenham-UltraCondItalic A 174 chuci___ + pctk8ac Cheltenham-BookCond A 174 chwc____ + pctki8ac Cheltenham-BookCondItalic A 174 chwci___ + phrb8a HelveticaRounded-Bold A 175 heb_____ + phrb8ac HelveticaRounded-BoldCond A 175 hebc____ + phrbo8ac HelveticaRounded-BoldCondObl A 175 hebco___ + phrc8a HelveticaRounded-Black A 175 hebl____ + phrco8a HelveticaRounded-BlackObl A 175 heblo___ + phrbo8a HelveticaRounded-BoldObl A 175 hebo____ + pehra8a DINEngschrift-Alternate A 176 dinea___ + pehr8a DINEngschrift A 176 dinen___ + pm6ra8a DINMittelschrift-Alternate A 176 dinma___ + pm6r8a DINMittelschrift A 176 dinmi___ + pzgb8ac DINNeuzeitGrotesk-BoldCond A 176 dngbc___ + pzgl8a DINNeuzeitGrotesk-Light A 176 dngl____ + psnh8a Spartan-HeavyClassified A 177 sqhcl___ + psnk8a Spartan-BookClassified A 177 sqwcl___ + pugb8a BenguiatGothic-Bold A 178 beb_____ + pugbo8a BenguiatGothic-BoldOblique A 178 bebo____ + pugh8a BenguiatGothic-Heavy A 178 beh_____ + pugho8a BenguiatGothic-HeavyOblique A 178 beho____ + pugm8a BenguiatGothic-Medium A 178 bem_____ + pugmo8a BenguiatGothic-MediumOblique A 178 bemo____ + pugk8a BenguiatGothic-Book A 178 bew_____ + pugko8a BenguiatGothic-BookOblique A 178 bewo____ + ptmx8a Times-ExtraBold A 179 tieb____ + ptms8a Times-Semibold A 179 tisb____ + ptmsi8a Times-SemiboldItalic A 179 tisbi___ + pacb8a ACaslon-Bold A 180 awb_____ + pacbi8a ACaslon-BoldItalic A 180 awbi____ + pacri8a ACaslon-Italic A 180 awi_____ + pacr8a ACaslon-Regular A 180 awrg____ + pacs8a ACaslon-Semibold A 180 awsb____ + pacsi8a ACaslon-SemiboldItalic A 180 awsbi___ + pacb7a ACaslon-AltBold A 181 awab____ + pacbi7a ACaslon-AltBoldItalic A 181 awabi___ + pacri7a ACaslon-AltItalic A 181 awai____ + pacr7a ACaslon-AltRegular A 181 awarg___ + pacs7a ACaslon-AltSemibold A 181 awasb___ + pacsi7a ACaslon-AltSemiboldItalic A 181 awasi___ + pacbij8a ACaslon-BoldItalicOsF A 181 awbio___ + pacbj8a ACaslon-BoldOsF A 181 awbos___ + pacrij8a ACaslon-ItalicOsF A 181 awio____ + pacrp ACaslon-Ornaments A 181 awor____ + pacsc8a ACaslon-SemiboldSC A 181 awsbs___ + pacrc8a ACaslon-RegularSC A 181 awsc____ + pacsic8a ACaslon-SemiboldItalicOsF A 181 awsis___ + pacsiw7a ACaslon-SwashSemiboldItalic A 181 awssb___ + pacbiw7a ACaslon-SwashBoldItalic A 181 awswb___ + pacriw7a ACaslon-SwashItalic A 181 awswi___ + pacb8x ACaslonExp-Bold A 181 axb_____ + pacbi8x ACaslonExp-BoldItalic A 181 axbi____ + pacri8x ACaslonExp-Italic A 181 axi_____ + pacr8x ACaslonExp-Regular A 181 axrg____ + pacs8x ACaslonExp-Semibold A 181 axsb____ + pacsi8x ACaslonExp-SemiboldItalic A 181 axsbi___ + phnj8ax HelveticaNeue-UltraLigExt A 182 hlav____ + phnjo8ax HelveticaNeue-UltraLigExtObl A 182 hlavo___ + phnc8ax HelveticaNeue-BlackExt A 182 hlzv____ + phnco8ax HelveticaNeue-BlackExtObl A 182 hlzvo___ + phnb8ax HelveticaNeue-BoldExt A 183 hlbv____ + phnbo8ax HelveticaNeue-BoldExtObl A 183 hlbvo___ + phna8ax HelveticaNeue-ThinExt A 183 hltv____ + phnao8ax HelveticaNeue-ThinExtObl A 183 hltvo___ + phnr8ax HelveticaNeue-Extended A 183 hlv_____ + phnro8ax HelveticaNeue-ExtendedObl A 183 hlvo____ + phnh8ax HelveticaNeue-HeavyExt A 184 hlhv____ + phnho8ax HelveticaNeue-HeavyExtObl A 184 hlhvo___ + phnl8ax HelveticaNeue-LightExt A 184 hllv____ + phnlo8ax HelveticaNeue-LightExtObl A 184 hllvo___ + phnm8ax HelveticaNeue-MediumExt A 184 hlmv____ + phnmo8ax HelveticaNeue-MediumExtObl A 184 hlmvo___ + pshb8a Shannon-Bold A 185 sbb_____ + pshx8a Shannon-ExtraBold A 185 sbeb____ + pshro8a Shannon-Oblique A 185 sbo_____ + pshk8a Shannon-Book A 185 sbw_____ + pbbx8a Bembo-ExtraBold A 186 bmeb____ + pbbxi8a Bembo-ExtraBoldItalic A 186 bmebi___ + pbbs8a Bembo-Semibold A 186 bmsb____ + pbbsi8a Bembo-SemiboldItalic A 186 bmsbi___ + pggr8a GarthGraphic A 187 gh______ + pggb8a GarthGraphic-Bold A 187 ghb_____ + pggb8ac GarthGraphic-BoldCondensed A 187 ghbc____ + pggbi8a GarthGraphic-BoldItalic A 187 ghbi____ + pggr8ac GarthGraphic-Condensed A 187 ghc_____ + pggx8a GarthGraphic-ExtraBold A 187 gheb____ + pggri8a GarthGraphic-Italic A 187 ghi_____ + pggc8a GarthGraphic-Black A 187 ghz_____ + phnj8ac HelveticaNeue-UltraLigCond A 188 hla_____ + phnjo8ac HelveticaNeue-UltraLigCondObl A 188 hlao____ + phnx8ac HelveticaNeue-ExtBlackCond A 188 hlj_____ + phnxo8ac HelveticaNeue-ExtBlackCondObl A 188 hljo____ + phnc8ac HelveticaNeue-BlackCond A 188 hlzc____ + phnco8ac HelveticaNeue-BlackCondObl A 188 hlzco___ + phnb8ac HelveticaNeue-BoldCond A 189 hlbc____ + phnbo8ac HelveticaNeue-BoldCondObl A 189 hlbco___ + phnr8ac HelveticaNeue-Condensed A 189 hlc_____ + phnro8ac HelveticaNeue-CondensedObl A 189 hlco____ + phna8ac HelveticaNeue-ThinCond A 189 hltc____ + phnao8ac HelveticaNeue-ThinCondObl A 189 hltco___ + phnh8ac HelveticaNeue-HeavyCond A 190 hlhc____ + phnho8ac HelveticaNeue-HeavyCondObl A 190 hlhco___ + phnl8ac HelveticaNeue-LightCond A 190 hllc____ + phnlo8ac HelveticaNeue-LightCondObl A 190 hllco___ + phnm8ac HelveticaNeue-MediumCond A 190 hlmc____ + phnmo8ac HelveticaNeue-MediumCondObl A 190 hlmco___ + punx8a Univers-ExtraBlack A 191 uvf_____ + punxo8a Univers-ExtraBlackObl A 191 uvfo____ + punl8ao Univers-LightUltraCondensed A 191 uvluc___ + puna8ao Univers-ThinUltraCondensed A 191 uvtuc___ + punr8ao Univers-UltraCondensed A 191 uvuc____ + pglc8a Galliard-Black A 192 glbl____ + pglci8a Galliard-BlackItalic A 192 glbli___ + pglu8a Galliard-Ultra A 192 glu_____ + pglui8a Galliard-UltraItalic A 192 glui____ + pg3bij8a GaramondThree-BoldItalicOsF A 193 gmbio___ + pg3bj8a GaramondThree-BoldSC A 193 gmbsc___ + pg3rij8a GaramondThree-ItalicOsF A 193 gmio____ + pg3rc8a GaramondThree-SC A 193 gmsc____ + ptmbij8a Times-BoldItalicOsF A 194 tibio___ + ptmbc8a Times-BoldSC A 194 tibsc___ + ptmrij8a Times-ItalicOsF A 194 tiio____ + ptmrc8a Times-RomanSC A 194 tirsc___ + pddrf8a DucDeBerry A 195 du______ + pddrf7c DucDeBerry-Dfr A 195 dudfr___ + phcr8a Herculanum A 195 herc____ + pomr8a Omnia A 195 omni____ + pttbij8a TimesTen-BoldItalicOsF A 196 ttbio___ + pttbj8a TimesTen-BoldOsF A 196 ttbof___ + pttrij8a TimesTen-ItalicOsF A 196 ttiof___ + pttrc8a TimesTen-RomanSC A 196 ttrsc___ + psbbij8a Sabon-BoldItalicOsF A 197 sabio___ + psbbj8a Sabon-BoldOsF A 197 sabof___ + psbrij8a Sabon-ItalicOsF A 197 saiof___ + psbrc8a Sabon-RomanSC A 197 sarsc___ + pwbbij8a WalbaumBook-BoldItalicOsF A 198 wbbio___ + pwbbi8x WalbaumBook-BoldItalicExpert A 198 wbbix___ + pwbbj8a WalbaumBook-BoldOsF A 198 wbbos___ + pwbb8x WalbaumBook-BoldExpert A 198 wbbxp___ + pwbrij8a WalbaumBook-ItalicOsF A 198 wbios___ + pwbri8x WalbaumBook-ItalicExpert A 198 wbixp___ + pwbmij8a WalbaumBook-MdItalicOsF A 198 wbmio___ + pwbmi8x WalbaumBook-MdItalicExpert A 198 wbmix___ + pwbmc8a WalbaumBook-MediumSC A 198 wbmsc___ + pwbm8x WalbaumBook-MdExpert A 198 wbmxp___ + pwbr8x WalbaumBook-RegularExpert A 198 wbrgx___ + pwbrc8a WalbaumBook-RegularSC A 198 wbsc____ + pubbij8a BauerBodoni-BoldItalicOsF A 199 bbbio___ + pubbj8a BauerBodoni-BoldOsF A 199 bbbof___ + pubrij8a BauerBodoni-ItalicOsF A 199 bbiof___ + pubrc8a BauerBodoni-RomanSC A 199 bbrsc___ + pmhr8a Machine A 200 ma______ + pmhb8a Machine-Bold A 200 mab_____ + pr1r8a RotisSemiSerif A 201 rf______ + pr1b8a RotisSemiSerif-Bold A 201 rfb_____ + pror8a RotisSerif A 201 rg______ + prob8a RotisSerif-Bold A 201 rgb_____ + prori8a RotisSerif-Italic A 201 rgi_____ + pr3r8a RotisSemiSans A 202 rc______ + pr3b8a RotisSemiSans-Bold A 202 rcb_____ + pr3x8a RotisSemiSans-ExtraBold A 202 rceb____ + pr3ri8a RotisSemiSans-Italic A 202 rci_____ + pr3l8a RotisSemiSans-Light A 202 rcl_____ + pr3li8a RotisSemiSans-LightItalic A 202 rcli____ + pr4r8a RotisSansSerif A 203 rb______ + pr4b8a RotisSansSerif-Bold A 203 rbb_____ + pr4x8a RotisSansSerif-ExtraBold A 203 rbeb____ + pr4ri8a RotisSansSerif-Italic A 203 rbi_____ + pr4l8a RotisSansSerif-Light A 203 rbl_____ + pr4li8a RotisSansSerif-LightItalic A 203 rbli____ + pjnbij8a JansonText-BoldItalicOsF A 204 jtbio___ + pjnbj8a JansonText-BoldOsF A 204 jtbof___ + pjnrij8a JansonText-ItalicOsF A 204 jtiof___ + pjnrc8a JansonText-RomanSC A 204 jtrsc___ + pgjr8a Granjon A 205 gr______ + pgjb8a Granjon-Bold A 205 grb_____ + pgjri8a Granjon-Italic A 205 gri_____ + pcebij8a Centennial-BoldItalicOsF A 206 cibio___ + pcebj8a Centennial-BoldOsF A 206 cibof___ + pcerij8a Centennial-ItalicOsF A 206 ciiof___ + pcelij8a Centennial-LightItalicOsF A 206 cilio___ + pcelc8a Centennial-LightSC A 206 cilsc___ + pcerc8a Centennial-RomanSC A 206 cirsc___ + pcecij8a Centennial-BlackItalicOsF A 206 cizio___ + pcecj8a Centennial-BlackOsF A 206 cizof___ + ppnr8a Plantin A 207 pl______ + ppnb8a Plantin-Bold A 207 plb_____ + ppnbi8a Plantin-BoldItalic A 207 plbi____ + ppnri8a Plantin-Italic A 207 pli_____ + pteb8a TimesEuropa-Bold A 208 tub_____ + ptebi8a TimesEuropa-BoldItalic A 208 tubi____ + pteri8a TimesEuropa-Italic A 208 tui_____ + pter8a TimesEuropa-Roman A 208 tur_____ + pgjbj8a Granjon-BoldOsF A 209 grbos___ + pgjrij8a Granjon-ItalicOsF A 209 grios___ + pgjrc8a Granjon-SC A 209 grsc____ + ptvbij8a TrumpMediaeval-BoldItalicOsF A 210 tmbio___ + ptvbj8a TrumpMediaeval-BoldOsF A 210 tmbos___ + ptvrij8a TrumpMediaeval-ItalicOsF A 210 tmios___ + ptvrc8a TrumpMediaeval-SC A 210 tmsc____ + pbsr8a BakerSignet A 211 ba______ + picr8a Impact A 211 impa____ + pagb8a AvantGarde-Bold A 212 agb_____ + pagbo8a AvantGarde-BoldObl A 212 agbo____ + pagj8a AvantGarde-ExtraLight A 212 agel____ + pagjo8a AvantGarde-ExtraLightObl A 212 agelo___ + pagm8a AvantGarde-Medium A 212 agm_____ + pagmo8a AvantGarde-MediumObl A 212 agmo____ + pplbij8a Palatino-BoldItalicOsF A 213 pobio___ + pplbj8a Palatino-BoldOsF A 213 pobos___ + pplrij8a Palatino-ItalicOsF A 213 poios___ + pplrc8a Palatino-SC A 213 posc____ + pndbij8a NewCaledonia-BoldItalicOsF A 214 nlbio___ + pndbc8a NewCaledonia-BoldSC A 214 nlbsc___ + pndrij8a NewCaledonia-ItalicOsF A 214 nlios___ + pndrc8a NewCaledonia-SC A 214 nlsc____ + pppb8a Perpetua-Bold A 215 ptb_____ + pppbi8a Perpetua-BoldItalic A 215 ptbi____ + pppri8a Perpetua-Italic A 215 pti_____ + pppr8a Perpetua A 215 ptrg____ + pilb8a Caecilia-Bold A 216 ecb_____ + pilbi8a Caecilia-BoldItalic A 216 ecbi____ + pilbij8a Caecilia-BoldItalicOsF A 216 ecbio___ + pilbj8a Caecilia-BoldOsF A 216 ecbos___ + pilh8a Caecilia-Heavy A 216 ech_____ + pilhi8a Caecilia-HeavyItalic A 216 echi____ + pilhij8a Caecilia-HeavyItalicOsF A 216 echio___ + pilhj8a Caecilia-HeavyOsF A 216 echos___ + pilri8a Caecilia-Italic A 216 eci_____ + pilrij8a Caecilia-ItalicOsF A 216 ecios___ + pill8a Caecilia-Light A 216 ecl_____ + pilli8a Caecilia-LightItalic A 216 ecli____ + pillij8a Caecilia-LightItalicOsF A 216 eclio___ + pillj8a Caecilia-LightOsF A 216 eclos___ + pilr8a Caecilia-Roman A 216 ecr_____ + pilrj8a Caecilia-RomanOsF A 216 ecros___ + pimx8a Imago-ExtraBold A 217 ioeb____ + pimxi8a Imago-ExtraBoldItalic A 217 ioebi___ + piml8a Imago-Light A 217 iol_____ + pimli8a Imago-LightItalic A 217 ioli____ + pimm8a Imago-Medium A 217 iom_____ + pimmi8a Imago-MediumItalic A 217 iomi____ + pimk8a Imago-Book A 217 iow_____ + pimki8a Imago-BookItalic A 217 iowi____ + pfab8a Formata-Bold A 218 fmb_____ + pfabi8a Formata-BoldItalic A 218 fmbi____ + pfari8a Formata-Italic A 218 fmi_____ + pfal8a Formata-Light A 218 fml_____ + pfali8a Formata-LightItalic A 218 fmli____ + pfam8a Formata-Medium A 218 fmm_____ + pfami8a Formata-MediumItalic A 218 fmmi____ + pfar8a Formata-Regular A 218 fmrg____ + pnfb8a Nofret-Bold A 219 nfb_____ + pnfbi8a Nofret-BoldItalic A 219 nfbi____ + pnfri8a Nofret-Italic A 219 nfi_____ + pnfl8a Nofret-Light A 219 nfl_____ + pnfli8a Nofret-LightItalic A 219 nfli____ + pnfm8a Nofret-Medium A 219 nfm_____ + pnfmi8a Nofret-MediumItalic A 219 nfmi____ + pnfr8a Nofret-Regular A 219 nfrg____ + ppnb8ac Plantin-BoldCondensed A 220 plbc____ + ppnl8a Plantin-Light A 220 pll_____ + ppnli8a Plantin-LightItalic A 220 plli____ + ppns8a Plantin-Semibold A 220 plsb____ + ppnsi8a Plantin-SemiboldItalic A 220 plsbi___ + pbrb8a Berling-Bold A 221 bnb_____ + pbrbi8a Berling-BoldItalic A 221 bnbi____ + pbrri8a Berling-Italic A 221 bni_____ + pbrr8a Berling-Roman A 221 bnr_____ + pcyb8a City-Bold A 222 tzb_____ + pcybi8a City-BoldItalic A 222 tzbi____ + pcyl8a City-Light A 222 tzl_____ + pcyli8a City-LightItalic A 222 tzli____ + pcym8a City-Medium A 222 tzm_____ + pcymi8a City-MediumItalic A 222 tzmi____ + paur8a Auriol A 223 al______ + paub8a Auriol-Bold A 223 alb_____ + paubi8a Auriol-BoldItalic A 223 albi____ + pauc8a Auriol-Black A 223 albl____ + pauci8a Auriol-BlackItalic A 223 albli___ + pauri8a Auriol-Italic A 223 ali_____ + ptbb8a BodoniBE-Bold A 224 bpb_____ + ptbbi8a BodoniBE-BoldItalic A 224 bpbi____ + ptbri8a BodoniBE-Italic A 224 bpi_____ + ptbl8a BodoniBE-Light A 224 bpl_____ + ptbli8a BodoniBE-LightItalic A 224 bpli____ + ptbm8a BodoniBE-Medium A 224 bpm_____ + ptbmi8a BodoniBE-MediumItalic A 224 bpmi____ + ptbr8a BodoniBE-Regular A 224 bprg____ + pegbij8a StempelGaramond-BoldItalicOsF A 225 gsbio___ + pegbj8a StempelGaramond-BoldOsF A 225 gsbof___ + pegrij8a StempelGaramond-ItalicOsF A 225 gsiof___ + pegrc8a StempelGaramond-RomanSC A 225 gsrsc___ + pnbbij8a NewBaskerville-BoldItalicOsF A 226 nbbio___ + pnbbj8a NewBaskerville-BoldSC A 226 nbbsc___ + pnbrij8a NewBaskerville-ItalicOsF A 226 nbio____ + pnbrc8a NewBaskerville-SC A 226 nbsc____ + pgybij8a Goudy-BoldItalicOsF A 227 gobio___ + pgybj8a Goudy-BoldOsF A 227 gobos___ + pgyrij8a Goudy-ItalicOsF A 227 goios___ + pgyrc8a Goudy-SC A 227 gosc____ + phnbl8a HelveticaNeue-BoldOutline A 228 hlbou___ + pcvrf7c Clairvaux-Dfr A 229 aodfr___ + pcvrf8a Clairvaux A 229 aor_____ + pc0rf7c Carolina-Dfr A 229 kldfr___ + pc0rf8a Carolina A 229 klr_____ + ps0rf7c SanMarco-Dfr A 229 sjdfr___ + ps0rf8a SanMarco A 229 sjr_____ + pvjb8a Veljovic-Bold A 230 vlb_____ + pvjbi8a Veljovic-BoldItalic A 230 vlbi____ + pvjc8a Veljovic-Black A 230 vlbl____ + pvjci8a Veljovic-BlackItalic A 230 vlbli___ + pvjm8a Veljovic-Medium A 230 vlm_____ + pvjmi8a Veljovic-MediumItalic A 230 vlmi____ + pvjk8a Veljovic-Book A 230 vlw_____ + pvjki8a Veljovic-BookItalic A 230 vlwi____ + pscb8a Slimbach-Bold A 231 spb_____ + pscbi8a Slimbach-BoldItalic A 231 spbi____ + pscc8a Slimbach-Black A 231 spbl____ + pscci8a Slimbach-BlackItalic A 231 spbli___ + pscm8a Slimbach-Medium A 231 spm_____ + pscmi8a Slimbach-MediumItalic A 231 spmi____ + psck8a Slimbach-Book A 231 spw_____ + pscki8a Slimbach-BookItalic A 231 spwi____ + pbvri8a BaskervilleBook-Italic A 232 bti_____ + pbvm8a BaskervilleBook-Medium A 232 btm_____ + pbvmi8a BaskervilleBook-MedItalic A 232 btmi____ + pbvr8a BaskervilleBook-Regular A 232 btrg____ + murb8a CentaurMT-Bold A 233 nrb_____ + murbi8a CentaurMT-BoldItalic A 233 nrbi____ + murri8a CentaurMT-Italic A 233 nri_____ + murria8a CentaurMT-ItalicA A 233 nria____ + murr8a CentaurMT A 233 nrr_____ + phvr7f Helvetica-Fraction A 234 hvfr____ + phvb7f Helvetica-FractionBold A 234 hvfrb___ + pncr7f NewCenturySchlbk-Fraction A 234 ncfr____ + pncb7f NewCenturySchlbk-FractionBold A 234 ncfrb___ + pilbic8a Caecilia-BoldItalicSC A 235 ecbis___ + pilbc8a Caecilia-BoldSC A 235 ecbsc___ + pilhic8a Caecilia-HeavyItalicSC A 235 echis___ + pilhc8a Caecilia-HeavySC A 235 echsc___ + pilric8a Caecilia-ItalicSC A 235 ecisc___ + pillc8a Caecilia-LightItalicSC A 235 eclis___ + pillic8a Caecilia-LightSC A 235 eclsc___ + pilrc8a Caecilia-RomanSC A 235 ecrsc___ + mjob8a JoannaMT-Bold A 236 job_____ + mjobi8a JoannaMT-BoldItalic A 236 jobi____ + mjox8a JoannaMT-ExtraBold A 236 joeb____ + mjori8a JoannaMT-Italic A 236 joi_____ + mjor8a JoannaMT A 236 jor_____ + mjos8a JoannaMT-SemiBold A 236 josb____ + mjosi8a JoannaMT-SemiBoldItalic A 236 josbi___ + ppi017 LHolidayPi-One A 237 holi1___ + ppi018 LHolidayPi-Two A 237 holi2___ + ppi019 LHolidayPi-Three A 237 holi3___ + ppi011 LDecorationPi-One A 238 deco1___ + ppi012 LDecorationPi-Two A 238 deco2___ + po7r8a OldStyleSeven A 239 os______ + po7ri8a OldStyleSeven-Italic A 239 osi_____ + po7rij8a OldStyleSeven-ItalicOsF A 239 osios___ + po7rc8a OldStyleSeven-SC A 239 ossc____ + ppi013 LGamePi-ChessDraughts A 240 gamcd___ + ppi014 LGamePi-DiceDominoes A 240 gamdd___ + ppi015 LGamePi-EnglishCards A 240 gamec___ + ppi016 LGamePi-FrenchCards A 240 gamfc___ + pc5rij8a CaslonFiveForty-ItalicOsF A 241 cfiof___ + pc5rc8a CaslonFiveForty-RomanSC A 241 cfrsc___ + pc3rij8a CaslonThree-ItalicOsF A 241 ctiof___ + pc3rc8a CaslonThree-RomanSC A 241 ctrsc___ + mgtrf8a GoudyTextMT A 242 gx______ + mgtrf7a GoudyTextMT-Alternate A 242 gxalt___ + mgtrf7c GoudyTextMT-Dfr A 242 gxdfr___ + mgtrfd8a GoudyTextMT-LombardicCapitals A 242 gxlom___ + pefb8a EgyptienneF-Bold A 243 efb_____ + pefc8a EgyptienneF-Black A 243 efbl____ + pefri8a EgyptienneF-Italic A 243 efi_____ + pefr8a EgyptienneF-Roman A 243 efr_____ + pwkb8a Wilke-Bold A 244 wlb_____ + pwkbi8a Wilke-BoldItalic A 244 wlbi____ + pwkc8a Wilke-Black A 244 wlbl____ + pwkci8a Wilke-BlackItalic A 244 wlbli___ + pwkri8a Wilke-Italic A 244 wli_____ + pwkr8a Wilke-Roman A 244 wlr_____ + ppxb8a PopplPontifexBE-Bold A 245 pjb_____ + ppxri8a PopplPontifexBE-Italic A 245 pji_____ + ppxm8a PopplPontifexBE-Medium A 245 pjm_____ + ppxm8ac PopplPontifexBE-MediumCn A 245 pjmc____ + ppxr8a PopplPontifexBE-Regular A 245 pjrg____ + mtlr8a CastellarMT A 246 el______ + malr8a AlbertusMT A 246 lr______ + malri8a AlbertusMT-Italic A 246 lri_____ + mall8a AlbertusMT-Light A 246 lrl_____ + pgvb8a Giovanni-Bold A 247 gvb_____ + pgvbi8a Giovanni-BoldItalic A 247 gvbi____ + pgvc8a Giovanni-Black A 247 gvbl____ + pgvci8a Giovanni-BlackItalic A 247 gvbli___ + pgvk8a Giovanni-Book A 247 gvw_____ + pgvki8a Giovanni-BookItalic A 247 gvwi____ + pazbi8ax AkzidenzGroteskBE-BoldExIt A 248 gfbei___ + pazb8ax AkzidenzGroteskBE-BoldEx A 248 gfbv____ + pazr8ax AkzidenzGroteskBE-Ex A 248 gfex____ + pazl8ax AkzidenzGroteskBE-LightEx A 248 gflex___ + pazm8ax AkzidenzGroteskBE-MdEx A 248 gfmex___ + p_____ AGOldFace-Bold A 249 qwb_____ + p_____ AGOldFace-BoldOutline A 249 qwbou___ + p_____ AGOldFace-Medium A 249 qwm_____ + p_____ AGOldFace-Outline A 249 qwou____ + p_____ AGOldFace-Regular A 249 qwrg____ + p_____ AGOldFace-Shaded A 249 qwsh____ + p_____ GaramondBE-Bold A 250 gwb_____ + p_____ GaramondBE-Condensed A 250 gwc_____ + p_____ GaramondBE-Italic A 250 gwi_____ + p_____ GaramondBE-Medium A 250 gwm_____ + p_____ GaramondBE-MediumCn A 250 gwmc____ + p_____ GaramondBE-MediumItalic A 250 gwmi____ + p_____ GaramondBE-Regular A 250 gwrg____ + pgub8a Guardi-Bold A 251 gub_____ + pgubi8a Guardi-BoldItalic A 251 gubi____ + pguc8a Guardi-Black A 251 gubl____ + pguci8a Guardi-BlackItalic A 251 gubli___ + pguri8a Guardi-Italic A 251 gui_____ + pgur8a Guardi-Roman A 251 gur_____ + pkbc8a Kabel-Black A 252 kabl____ + pkbh8a Kabel-Heavy A 252 kah_____ + pkbl8a Kabel-Light A 252 kal_____ + pkbk8a Kabel-Book A 252 kaw_____ + ppi009 LAstrologyPi-One A 253 astr1___ + ppi010 LAstrologyPi-Two A 253 astr2___ + pprl8a PopplResidenz-Light A 254 pzl_____ + pprr8a PopplResidenz-Regular A 254 pzrg____ + pstr5a StoneSerif-PhoneticAlternate A 255 srpa____ + pstr5i StoneSerif-PhoneticIPA A 255 srpi____ + ps8r5a StoneSans-PhoneticAlternate A 255 sspa____ + ps8r5i StoneSans-PhoneticIPA A 255 sspi____ + prnb8a Rotation-Bold A 256 rnb_____ + prnri8a Rotation-Italic A 256 rni_____ + prnr8a Rotation-Roman A 256 rnr_____ + pasri8a Aldus-Italic A 257 afi_____ + pasrij8a Aldus-ItalicOsF A 257 afiof___ + pasr8a Aldus-Roman A 257 afr_____ + pasrc8a Aldus-RomanSC A 257 afrsc___ + mlir8ac LatinMT-Condensed A 258 lnc_____ + moxr8a OnyxMT A 258 ox______ + mrur8ac RunicMT-Condensed A 258 ric_____ + p_____ Colossalis-Bold A 259 kob_____ + p_____ Colossalis-Black A 259 kobl____ + p_____ Colossalis-Medium A 259 kom_____ + p_____ Colossalis-Regular A 259 korg____ + p_____ BertholdScript-Medium A 260 qrm_____ + p_____ BertholdScript-Regular A 260 qrrg____ + pqsrw8a Bellevue A 260 qsrg____ + pqtrw8a Boulevard A 260 qtrg____ + pfrb8ac Frutiger-BoldCn A 261 ftbc____ + pfrc8ac Frutiger-BlackCn A 261 ftblc___ + pfrr8ac Frutiger-Cn A 261 ftc_____ + pfrx8ac Frutiger-ExtraBlackCn A 261 ftebc___ + pfrl8ac Frutiger-LightCn A 261 ftlc____ + pflb8a Flora-Bold A 262 fab_____ + pflm8a Flora-Medium A 262 fam_____ + metri8a EhrhardtMT-Italic A 263 ehi_____ + metr8a EhrhardtMT-Regular A 263 ehrg____ + mets8a EhrhardtMT-Semibold A 263 ehsb____ + metsi8a EhrhardtMT-SemiboldItalic A 263 ehsbi___ + pppbij8a Perpetua-BoldItalicOsF A 264 ptbio___ + pppbi8x Perpetua-BoldItalicExp A 264 ptbix___ + pppbj8a Perpetua-BoldOsF A 264 ptbos___ + pppb8x Perpetua-BoldExp A 264 ptbxp___ + pppr8x Perpetua-Exp A 264 ptexp___ + ppprij8a Perpetua-ItalicOsF A 264 ptios___ + pppri8x Perpetua-ItalicExp A 264 ptixp___ + ppprc8a Perpetua-SC A 264 ptsc____ + ppxbj8a PopplPontifexBE-BoldOsF A 265 pjbos___ + ppxb8x PopplPontifexBE-BoldExp A 265 pjbxp___ + ppxrij8a PopplPontifexBE-ItalicOsF A 265 pjios___ + ppxri8x PopplPontifexBE-ItalicExp A 265 pjixp___ + ppxmc8ac PopplPontifexBE-MediumCnSC A 265 pjmcs___ + ppxm8xc PopplPontifexBE-MediumCnExp A 265 pjmcx___ + ppxmc8a PopplPontifexBE-MediumSC A 265 pjmsc___ + ppxm8x PopplPontifexBE-MediumExp A 265 pjmxp___ + ppxr8x PopplPontifexBE-RegularExp A 265 pjrgx___ + ppxrc8a PopplPontifexBE-RegularSC A 265 pjrsc___ + p_____ ConcordeNova-Italic A 266 nvi_____ + p_____ ConcordeNova-ItalicOsF A 266 nviof___ + p_____ ConcordeNova-ItalicExp A 266 nvixp___ + p_____ ConcordeNova-Medium A 266 nvm_____ + p_____ ConcordeNova-MediumSC A 266 nvmsc___ + p_____ ConcordeNova-MediumExp A 266 nvmxp___ + p_____ ConcordeNova-Regular A 266 nvrg____ + p_____ ConcordeNova-RegularExp A 266 nvrgx___ + p_____ ConcordeNova-RegularSC A 266 nvsc____ + peib8a Esprit-Bold A 267 esb_____ + peibi8a Esprit-BoldItalic A 267 esbi____ + peici8a Esprit-BlackItalic A 267 esbli___ + peim8a Esprit-Medium A 267 esm_____ + peimi8a Esprit-MediumItalic A 267 esmi____ + peik8a Esprit-Book A 267 esw_____ + peiki8a Esprit-BookItalic A 267 eswi____ + peic8a Esprit-Black A 267 esz_____ + ptbbij8a BodoniBE-BoldItalicOsF A 268 bpbio___ + ptbbi8x BodoniBE-BoldItalicExp A 268 bpbix___ + ptbbj8a BodoniBE-BoldOsF A 268 bpbof___ + ptbb8x BodoniBE-BoldExp A 268 bpbxp___ + ptbrij8a BodoniBE-ItalicOsF A 268 bpiof___ + ptbri8x BodoniBE-ItalicExp A 268 bpixp___ + ptblij8a BodoniBE-LightItalicOsF A 268 bplio___ + ptbli8x BodoniBE-LightItalicExp A 268 bplix___ + ptblc8a BodoniBE-LightSC A 268 bplsc___ + ptbl8x BodoniBE-LightExp A 268 bplxp___ + ptbmij8a BodoniBE-MediumItalicOsF A 268 bpmio___ + ptbmi8x BodoniBE-MediumItalicExp A 268 bpmix___ + ptbmc8a BodoniBE-MediumSC A 268 bpmsc___ + ptbm8x BodoniBE-MediumExp A 268 bpmxp___ + ptbr8x BodoniBE-RegularExp A 268 bprgx___ + ptbrc8a BodoniBE-RegularSC A 268 bpsc____ + melr8a EllingtonMT A 269 ei______ + melb8a EllingtonMT-Bold A 269 eib_____ + melbi8a EllingtonMT-BoldItalic A 269 eibi____ + melx8a EllingtonMT-ExtraBold A 269 eieb____ + melxi8a EllingtonMT-ExtraBoldItalic A 269 eiebi___ + melri8a EllingtonMT-Italic A 269 eii_____ + mell8a EllingtonMT-Light A 269 eil_____ + melli8a EllingtonMT-LightItalic A 269 eili____ + pazb8ac AkzidenzGroteskBE-BoldCn A 270 gfbc____ + pazr8ac AkzidenzGroteskBE-Cn A 270 gfc_____ + pazx8a AkzidenzGroteskBE-XBd A 270 gfeb____ + pazl8ac AkzidenzGroteskBE-LightCn A 270 gflc____ + pazm8ac AkzidenzGroteskBE-MdCn A 270 gfmc____ + pazmi8ac AkzidenzGroteskBE-MdCnIt A 270 gfmci___ + pazx8ac AkzidenzGroteskBE-XBdCn A 270 gfxc____ + pazxi8ac AkzidenzGroteskBE-XBdCnIt A 270 gfxci___ + pptr8a Present A 271 pr______ + pptb8a Present-Bold A 271 prb_____ + pptb8ac Present-BoldCondensed A 271 prbc____ + pptc8a Present-Black A 271 prbl____ + pptc8ac Present-BlackCondensed A 271 prblc___ + pptr8ac Present-Condensed A 271 prc_____ + lvcb8a VectoraLH-Bold A 272 vcb_____ + lvcbi8a VectoraLH-BoldItalic A 272 vcbi____ + lvcc8a VectoraLH-Black A 272 vcbl____ + lvcci8a VectoraLH-BlackItalic A 272 vcbli___ + lvcri8a VectoraLH-Italic A 272 vci_____ + lvcl8a VectoraLH-Light A 272 vcl_____ + lvcli8a VectoraLH-LightItalic A 272 vcli____ + lvcr8a VectoraLH-Roman A 272 vcr_____ + pbab8a Barmeno-Bold A 273 bfb_____ + pbax8a Barmeno-ExtraBold A 273 bfeb____ + pbam8a Barmeno-Medium A 273 bfm_____ + pbar8a Barmeno-Regular A 273 bfrg____ + p_____ Cosmos-ExtraBold A 274 kzeb____ + p_____ Cosmos-Light A 274 kzl_____ + p_____ Cosmos-LightItalic A 274 kzli____ + p_____ Cosmos-Medium A 274 kzm_____ + pmyMMi8a MyriadMM-It A 275 _mi_____ + pmyMM8a MyriadMM A 275 _mrg____ + pmnMMi8a MinionMM-It A 276 zgi_____ + pmnMM8a MinionMM A 276 zgrg____ + pmnMMic8a MinionMM-ItSC A 277 zgisc___ + pmnMMi8x MinionMM-ItEp A 277 zgix____ + pmnMMp MinionMM-Or A 277 zgo_____ + pmnMMc8a MinionMM-SC A 277 zgsc____ + pmnMMiw7a MinionMM-Sw A 277 zgsw____ + pmnMM8x MinionMM-Ep A 277 zgx_____ + ptmr5a Times-PhoneticAlternate A 278 tipa____ + ptmr5i Times-PhoneticIPA A 278 tipi____ + lpi003 AudioLH-Pi A 279 audi1___ + lpi002 WarningLH-Pi A 279 warn1___ + ppmri8a PostMediaeval-Italic A 280 pmi_____ + ppmm8a PostMediaeval-Medium A 280 pmm_____ + ppmr8a PostMediaeval-Regular A 280 pmrg____ + lffb8a FairfieldLH-Bold A 281 fdb_____ + lffbi8a FairfieldLH-BoldItalic A 281 fdbi____ + lffh8a FairfieldLH-Heavy A 281 fdh_____ + lffhi8a FairfieldLH-HeavyItalic A 281 fdhi____ + lffl8a FairfieldLH-Light A 281 fdl_____ + lffli8a FairfieldLH-LightItalic A 281 fdli____ + lffm8a FairfieldLH-Medium A 281 fdm_____ + lffmi8a FairfieldLH-MediumItalic A 281 fdmi____ + lffbd8a FairfieldLH-CaptionBold A 282 fdbcp___ + lffbijw8a FairfieldLH-SwBoldItalicOsF A 282 fdbio___ + lffbc8a FairfieldLH-BoldSC A 282 fdbsc___ + lffhd8a FairfieldLH-CaptionHeavy A 282 fdhcp___ + lffhijw8a FairfieldLH-SwHeavyItalicOsF A 282 fdhio___ + lffhc8a FairfieldLH-HeavySC A 282 fdhsc___ + lffld8a FairfieldLH-CaptionLight A 282 fdlcp___ + lfflijw8a FairfieldLH-SwLightItalicOsF A 282 fdlio___ + lfflc8a FairfieldLH-LightSC A 282 fdlsc___ + lffmd8a FairfieldLH-CaptionMedium A 282 fdmcp___ + lffmijw8a FairfieldLH-SwMediumItalicOsF A 282 fdmio___ + lffmc8a FairfieldLH-MediumSC A 282 fdmsc___ + lgzb8a GazetteLH-Bold A 283 gzb_____ + lgzri8a GazetteLH-Italic A 283 gzi_____ + lgzr8a GazetteLH-Roman A 283 gzr_____ + lcfbs8a ClearfaceGothicLH-Bold A 284 fcb_____ + lcfcs8a ClearfaceGothicLH-Black A 284 fcbl____ + lcfls8a ClearfaceGothicLH-Light A 284 fcl_____ + lcfms8a ClearfaceGothicLH-Medium A 284 fcm_____ + lcfrs8a ClearfaceGothicLH-Roman A 284 fcr_____ + pidb8a Isadora-Bold A 285 irb_____ + pidr8a Isadora-Regular A 285 irrg____ + pbax8a Barmeno-ExtraBold A 286 bfeb____ + pfarl8a Formata-Outline A 286 fmou____ + p_____ Cosmos-ExtraBold A 286 kzeb____ + p_____ AGOldFace-Shaded A 286 qwsh____ + p_____ AGBook-Stencil A 286 tast____ + ltgb8ax TradeGothicLH-BoldExtended A 287 tgbv____ + ltgr8ax TradeGothicLH-Extended A 287 tgv_____ + mphb8a PhotinaMT-Bold A 288 phb_____ + mphbi8a PhotinaMT-BoldItalic A 288 phbi____ + mphri8a PhotinaMT-Italic A 288 phi_____ + mphr8a PhotinaMT A 288 phrg____ + mphs8a PhotinaMT-SemiBold A 288 phsb____ + mphsi8a PhotinaMT-SemiBoldItalic A 288 phsbi___ + mphu8a PhotinaMT-UltraBold A 288 phub____ + mphui8a PhotinaMT-UltraBoldItalic A 288 phubi___ + mdsrw8a DorchesterScriptMT A 289 dsscr___ + mp2rw8a PepitaMT A 289 epscr___ + mbfrw8a BiffoMT A 289 ifscr___ + ms2bw8a ScriptMT-Bold A 289 tbscr___ + lenb8a EngraversLH-BoldFace A 290 ew______ + l_____ SerlioLH A 290 oi______ + pplc8a Palatino-Black A 291 pobl____ + pplci8a Palatino-BlackItalic A 291 pobli___ + ppll8a Palatino-Light A 291 pol_____ + pplli8a Palatino-LightItalic A 291 poli____ + pplm8a Palatino-Medium A 291 pom_____ + pplmi8a Palatino-MediumItalic A 291 pomi____ + pocrij8a ConcordeBE-ItalicOsF A 292 qqiof___ + pocri8x ConcordeBE-ItalicExp A 292 qqixp___ + pocmij8a ConcordeBE-MediumItalicOsF A 292 qqmio___ + pocmi8x ConcordeBE-MediumItalicExp A 292 qqmix___ + pocmc8a ConcordeBE-MediumSC A 292 qqmsc___ + pocm8x ConcordeBE-MediumExp A 292 qqmxp___ + pocrc8x ConcordeBE-RegularExp A 292 qqrgx___ + pocr8a ConcordeBE-RegularSC A 292 qqsc____ + mc8b8a CalvertMT-Bold A 293 vtb_____ + mc8l8a CalvertMT-Light A 293 vtl_____ + mc8r8a CalvertMT A 293 vtrg____ + mgqr8a GrotesqueMT A 294 gq______ + mgqb8a GrotesqueMT-Bold A 294 gqb_____ + mgqc8a GrotesqueMT-Black A 294 gqbl____ + mgqri8a GrotesqueMT-Italic A 294 gqi_____ + mgql8a GrotesqueMT-Light A 294 gql_____ + mgqli8a GrotesqueMT-LightItalic A 294 gqli____ + pckb8a CaslonBookBE-Bold A 295 qxb_____ + pckri8a CaslonBookBE-Italic A 295 qxi_____ + pckm8a CaslonBookBE-Medium A 295 qxm_____ + pckr8a CaslonBookBE-Regular A 295 qxrg____ + pckbj8a CaslonBookBE-BoldOsF A 296 qxbof___ + pckb8x CaslonBookBE-BoldExp A 296 qxbxp___ + pckrij8a CaslonBookBE-ItalicOsF A 296 qxiof___ + pckri8x CaslonBookBE-ItalicExp A 296 qxixp___ + pckmc8a CaslonBookBE-MediumSC A 296 qxmsc___ + pckm8x CaslonBookBE-MediumExp A 296 qxmxp___ + pckr8x CaslonBookBE-RegularExp A 296 qxrgx___ + pckrc8a CaslonBookBE-RegularSC A 296 qxsc____ + mr2b8a CantoriaMT-Bold A 297 eob_____ + mr2bi8a CantoriaMT-BoldItalic A 297 eobi____ + mr2ri8a CantoriaMT-Italic A 297 eoi_____ + mr2r8a CantoriaMT A 297 eorg____ + mr2x8a CantoriaMT-ExtraBold A 298 eoeb____ + mr2xi8a CantoriaMT-ExtraBoldItalic A 298 eoebi___ + mr2l8a CantoriaMT-Light A 298 eol_____ + mr2li8a CantoriaMT-LightItalic A 298 eoli____ + mr2s8a CantoriaMT-SemiBold A 298 eosb____ + mr2si8a CantoriaMT-SemiBoldItalic A 298 eosbi___ + mgqb8ax GrotesqueMT-BoldExtended A 299 gqbv____ + mgqr8ac GrotesqueMT-Condensed A 299 gqc_____ + mgqr8aq GrotesqueMT-ExtraCondensed A 299 gqec____ + mgql8ac GrotesqueMT-LightCondensed A 299 gqlc____ + ppc___ Poetica-ChanceryI A 300 pvch1___ + ppc___ Poetica-ChanceryII A 300 pvch2___ + ppc___ Poetica-ChanceryIII A 300 pvch3___ + ppc___ Poetica-ChanceryIV A 300 pvch4___ + ppc___ Poetica-ChanceryExpert A 300 pvchx___ + ppc___ Poetica-RomanSmallCapsAlt A 300 pvrsa___ + ppc___ Poetica-RomanSmallCaps A 300 pvrsc___ + ppc___ Poetica-SuppAmpersands A 301 pvam____ + ppc___ Poetica-SuppInitialSwashCaps A 301 pvisw___ + ppc___ Poetica-SuppLowercaseAltI A 301 pvla1___ + ppc___ Poetica-SuppLowercaseAltII A 301 pvla2___ + ppc___ Poetica-SuppLowercaseBegI A 301 pvlb1___ + ppc___ Poetica-SuppLowercaseBegII A 301 pvlb2___ + ppc___ Poetica-SuppLowercaseEndI A 301 pvle1___ + ppc___ Poetica-SuppLowercaseEndII A 301 pvle2___ + ppc___ Poetica-SuppLigatures A 301 pvlg____ + ppc___ Poetica-SuppOrnaments A 301 pvor____ + ppc___ Poetica-SuppSwashCapsI A 301 pvsw1___ + ppc___ Poetica-SuppSwashCapsII A 301 pvsw2___ + ppc___ Poetica-SuppSwashCapsIII A 301 pvsw3___ + ppc___ Poetica-SuppSwashCapsIV A 301 pvsw4___ + msmr8x SpectrumMT-Expert A 302 ekexp___ + msmri8a SpectrumMT-Italic A 302 eki_____ + msmrij8a SpectrumMT-ItalicOsF A 302 ekio____ + msmri8x SpectrumMT-ItalicExpert A 302 ekixp___ + msmr8a SpectrumMT A 302 ekrg____ + msms8a SpectrumMT-SemiBold A 302 eksb____ + msmsc8a SpectrumMT-SemiBoldOsF A 302 eksbo___ + msms8x SpectrumMT-SemiBoldExpert A 302 eksbx___ + msmrc8a SpectrumMT-SC A 302 eksc____ + p_____ AGBookRounded-Bold A 303 kdb_____ + p_____ AGBookRounded-BoldCn A 303 kdbc____ + p_____ AGBookRounded-BoldCnOutline A 303 kdbcl___ + p_____ AGBookRounded-BoldOutline A 303 kdbou___ + p_____ AGBookRounded-Medium A 303 kdm_____ + p_____ AGBookRounded-MediumOutline A 303 kdmou___ + p_____ AGBookRounded-Regular A 303 kdrg____ + p_____ BodoniOldFaceBE-Bold A 304 qvb_____ + p_____ BodoniOldFaceBE-BoldItalic A 304 qvbi____ + p_____ BodoniOldFaceBE-Italic A 304 qvi_____ + p_____ BodoniOldFaceBE-Medium A 304 qvm_____ + p_____ BodoniOldFaceBE-MediumItalic A 304 qvmi____ + p_____ BodoniOldFaceBE-Regular A 304 qvrg____ + mg4ri8a GoudyModernMT-Italic A 305 ygi_____ + mg4r8a GoudyModernMT A 305 ygrg____ + ms1ri8a ScotchRomanMT-Italic A 305 ysi_____ + ms1r8a ScotchRomanMT A 305 ysrg____ + p_____ AGSchoolbook-RegularA A 306 okarg___ + p_____ AGSchoolbook-Medium A 306 okm_____ + p_____ AGSchoolbook-MediumA A 306 okma____ + p_____ AGSchoolbook-Regular A 306 okrg____ + pbeb8a BellGothic-Bold A 307 dgb_____ + pbec8a BellGothic-Black A 307 dgbl____ + pbel8a BellGothic-Light A 307 dgl_____ + misb8a ItalianOldStyleMT-Bold A 308 ieb_____ + misbi8a ItalianOldStyleMT-BoldItalic A 308 iebi____ + misri8a ItalianOldStyleMT-Italic A 308 iei_____ + misr8a ItalianOldStyleMT A 308 ierg____ + p_____ BellCentennial-Address A 309 bladd___ + p_____ BellCentennial-BoldListingAlt A 309 blbla___ + p_____ BellCentennial-BoldListing A 309 blbls___ + p_____ BellCentennial-NameAndNumber A 309 blnan___ + p_____ BellCentennial-SubCaption A 309 blscp___ + p_____ BodoniOldFaceBE-BoldItOsF A 310 qvbio___ + p_____ BodoniOldFaceBE-BoldItExp A 310 qvbix___ + p_____ BodoniOldFaceBE-BoldOsF A 310 qvbos___ + p_____ BodoniOldFaceBE-BoldExp A 310 qvbxp___ + p_____ BodoniOldFaceBE-ItalicSC A 310 qvisc___ + p_____ BodoniOldFaceBE-ItalicExp A 310 qvixp___ + p_____ BodoniOldFaceBE-MediumItOsF A 310 qvmio___ + p_____ BodoniOldFaceBE-MediumItExp A 310 qvmix___ + p_____ BodoniOldFaceBE-MediumSC A 310 qvmsc___ + p_____ BodoniOldFaceBE-MediumExp A 310 qvmxp___ + p_____ BodoniOldFaceBE-RegularExp A 310 qvrgx___ + p_____ BodoniOldFaceBE-RegularSC A 310 qvrsc___ + p_____ BerlinerGrotesk-Light A 311 otl_____ + p_____ BerlinerGrotesk-Medium A 311 otm_____ + mntb8ac TimesNewRomanMT-BoldCond A 312 mtbc____ + mntr8ac TimesNewRomanMT-Cond A 312 mtc_____ + mntri8ac TimesNewRomanMT-CondItalic A 312 mtci____ + movr8x OctavianMT-Expert A 313 ocexp___ + movri8a OctavianMT-Italic A 313 oci_____ + movrij8a OctavianMT-ItalicOsF A 313 ocio____ + movri8x OctavianMT-ItalicExpert A 313 ocixp___ + movr8a OctavianMT A 313 ocrg____ + movrc8a OctavianMT-SC A 313 ocsc____ + p_____ Christiana-Bold A 314 hcb_____ + p_____ Christiana-BoldItalic A 314 hcbi____ + p_____ Christiana-Italic A 314 hci_____ + p_____ Christiana-Medium A 314 hcm_____ + p_____ Christiana-MediumItalic A 314 hcmi____ + p_____ Christiana-Regular A 314 hcrg____ + p_____ Christiana-RegularExpert A 314 hcrgx___ + p_____ Christiana-RegularSC A 314 hcsc____ + pmnb6w MinionCyr-Bold A 315 mkb_____ + pmnbi6w MinionCyr-BoldItalic A 315 mkbi____ + pmnri6w MinionCyr-Italic A 315 mki_____ + pmnr6w MinionCyr-Regular A 315 mkrg____ + pmns6w MinionCyr-Semibold A 315 mksb____ + pmnsi6w MinionCyr-SemiboldItalic A 315 mksbi___ + ptbb8ac BodoniBE-BoldCn A 316 bpbc____ + ptbbi8ac BodoniBE-BoldCnItalic A 316 bpbci___ + ptbr8ac BodoniBE-Condensed A 316 bpc_____ + ptbri8ac BodoniBE-CnItalic A 316 bpci____ + ptbm8ac BodoniBE-MediumCn A 316 bpmc____ + ptbmi8ac BodoniBE-MediumCnItalic A 316 bpmci___ + mfsr8a FalstaffMT A 317 fprg____ + mifb8a InflexMT-Bold A 317 iqb_____ + mm8bl8a MonotypeOldStyleMT-BoldOut A 317 mbbou___ + pdjb8a Delta-Bold A 318 djb_____ + pdjbi8a Delta-BoldItalic A 318 djbi____ + pdjl8a Delta-Light A 318 djl_____ + pdjli8a Delta-LightItalic A 318 djli____ + pdjm8a Delta-Medium A 318 djm_____ + pdjmi8a Delta-MediumItalic A 318 djmi____ + pdjrl8a Delta-Outline A 318 djou____ + pdjk8a Delta-Book A 318 djw_____ + pdjki8a Delta-BookItalic A 318 djwi____ + mnrrw8a NewBerolinaMT A 319 _n______ + mp1rw8a PalaceScriptMT A 319 _p______ + mp1sw8a PalaceScriptMT-SemiBold A 319 _psb____ + mahrw8a AshleyScriptMT A 319 le______ + mm1rw8a MonolineScriptMT A 319 on______ + pbtb8a Boton-Bold A 320 tnb_____ + pbtbi8a Boton-BoldItalic A 320 tnbi____ + pbtri8a Boton-Italic A 320 tni_____ + pbtl8a Boton-Light A 320 tnl_____ + pbtli8a Boton-LightItalic A 320 tnli____ + pbtm8a Boton-Medium A 320 tnm_____ + pbtmi8a Boton-MediumItalic A 320 tnmi____ + pbtr8a Boton-Regular A 320 tnr_____ + mfer8a ForteMT A 321 fz______ + mklr8a KlangMT A 321 kn______ + mmebw8a MercuriusMT-BoldScript A 321 uzbs____ + ldob8a DidotLH-Bold A 322 dob_____ + ldobj8a DidotLH-BoldOsF A 322 dobos___ + ldord8a DidotLH-Headline A 322 dohe____ + ldordj8a DidotLH-HeadlineOsF A 322 dohes___ + ldori8a DidotLH-Italic A 322 doi_____ + ldor7a DidotLH-Initials A 322 doini___ + ldorij8a DidotLH-ItalicOsF A 322 doios___ + ldorp1 DidotLH-OrnamentsOne A 322 door1___ + ldorp2 DidotLH-OrnamentsTwo A 322 door2___ + ldor8a DidotLH-Roman A 322 dor_____ + ldorj8a DidotLH-RomanOsF A 322 doros___ + ldorc8a DidotLH-RomanSC A 322 dorsc___ + pfab8ac Formata-BoldCondensed A 323 fmbc____ + pfabi8ac Formata-BoldCondensedItalic A 323 fmbci___ + pfar8ac Formata-Condensed A 323 fmc_____ + pfari8ac Formata-CondensedItalic A 323 fmci____ + pfarl8ac Formata-CondensedOutline A 323 fmcou___ + pfal8ac Formata-LightCondensed A 323 fmlc____ + pfali8ac Formata-LightCondensedItalic A 323 fmlci___ + pfam8ac Formata-MediumCondensed A 323 fmmc____ + pfami8ac Formata-MediumCondensedItalic A 323 fmmci___ + pebb8a BaskervilleBE-Bold A 324 vib_____ + pebri8a BaskervilleBE-Italic A 324 vii_____ + pebm8a BaskervilleBE-Medium A 324 vim_____ + pebmi8a BaskervilleBE-MediumItalic A 324 vimi____ + pebr8a BaskervilleBE-Regular A 324 virg____ + pb6r8ac BlockBE-Condensed A 325 lkc_____ + pb6r8aq BlockBE-ExtraCn A 325 lkec____ + pb6ri8aq BlockBE-ExtraCnIt A 325 lkeci___ + pb6h8a BlockBE-Heavy A 325 lkh_____ + pb6ri8a BlockBE-Italic A 325 lki_____ + pb6r8a BlockBE-Regular A 325 lkrg____ + pllb8a LinoLetter-Bold A 326 llb_____ + pllbi8a LinoLetter-BoldItalic A 326 llbi____ + pllc8a LinoLetter-Black A 326 llbl____ + pllci8a LinoLetter-BlackItalic A 326 llbli___ + pllri8a LinoLetter-Italic A 326 lli_____ + pllm8a LinoLetter-Medium A 326 llm_____ + pllmi8a LinoLetter-MediumItalic A 326 llmi____ + pllr8a LinoLetter-Roman A 326 llr_____ + p_____ ComeniusAntiqua-Bold A 327 hzb_____ + p_____ ComeniusAntiqua-Italic A 327 hzi_____ + p_____ ComeniusAntiqua-Medium A 327 hzm_____ + p_____ ComeniusAntiqua-Regular A 327 hzrg____ + ppub8a PopplLaudatio-Bold A 328 pyb_____ + ppubi8a PopplLaudatio-BoldItalic A 328 pybi____ + ppuri8a PopplLaudatio-Italic A 328 pyi_____ + ppul8a PopplLaudatio-Light A 328 pyl_____ + ppuli8a PopplLaudatio-LightItalic A 328 pyli____ + ppum8a PopplLaudatio-Medium A 328 pym_____ + ppumi8a PopplLaudatio-MediumItalic A 328 pymi____ + ppur8a PopplLaudatio-Regular A 328 pyrg____ + ppub8ac PopplLaudatio-BoldCondensed A 329 pybc____ + ppur8ac PopplLaudatio-Condensed A 329 pyc_____ + ppul8ac PopplLaudatio-LightCondensed A 329 pylc____ + ppum8ac PopplLaudatio-MediumCondensed A 329 pymc____ + pocb8ac ConcordeBE-BoldCn A 330 qqbc____ + pocbl8ac ConcordeBE-BoldCnOutline A 330 qqbcl___ + pocr8ac ConcordeBE-Condensed A 330 qqc_____ + pocm8ac ConcordeBE-MediumCn A 330 qqmc____ + p_____ GaramondBE-BoldOsF A 331 gwbof___ + p_____ GaramondBE-BoldExpert A 331 gwbxp___ + p_____ GaramondBE-CondensedSC A 331 gwcsc___ + p_____ GaramondBE-CnExpert A 331 gwcxp___ + p_____ GaramondBE-ItalicOsF A 331 gwiof___ + p_____ GaramondBE-ItalicExpert A 331 gwixp___ + p_____ GaramondBE-MediumCnOsF A 331 gwmcf___ + p_____ GaramondBE-MediumCnExpert A 331 gwmcx___ + p_____ GaramondBE-MediumItalicOsF A 331 gwmio___ + p_____ GaramondBE-MediumItalicExpert A 331 gwmix___ + p_____ GaramondBE-MediumSC A 331 gwmsc___ + p_____ GaramondBE-MediumExpert A 331 gwmxp___ + p_____ GaramondBE-RegularExpert A 331 gwrgx___ + p_____ GaramondBE-RegularSC A 331 gwsc____ + p_____ GaramondBE-SwashItalic A 331 gwswi___ + pdnb8a DailyNews-Bold A 332 jdb_____ + pdnbi8a DailyNews-BoldItalic A 332 jdbi____ + pdnx8a DailyNews-ExtraBold A 332 jdeb____ + pdnxi8a DailyNews-ExtraBoldItalic A 332 jdebi___ + pdnri8a DailyNews-Italic A 332 jdi_____ + pdnm8a DailyNews-Medium A 332 jdm_____ + pdnmi8a DailyNews-MediumItalic A 332 jdmi____ + pdnr8a DailyNews-Regular A 332 jdrg____ + murbij8a CentaurMT-BoldItalicOsF A 333 nrbio___ + murbi8x CentaurMT-BoldItalicExpert A 333 nrbix___ + murbj8a CentaurMT-BoldOsF A 333 nrbof___ + murb8x CentaurMT-BoldExpert A 333 nrbxp___ + murr8x CentaurMT-Expert A 333 nrexp___ + murri7a CentaurMT-ItalicAlternate A 333 nrial___ + murrij8a CentaurMT-ItalicOsF A 333 nrio____ + murri8x CentaurMT-ItalicExpert A 333 nrixp___ + murrc8a CentaurMT-SC A 333 nrsc____ + murriw8a CentaurMT-SwashCapitals A 333 nrswc___ + mmob8a ModernMT-Bold A 334 nmb_____ + mmobi8a ModernMT-BoldItalic A 334 nmbi____ + mmor8ac ModernMT-Condensed A 334 nmc_____ + mmori8ac ModernMT-CondensedItalic A 334 nmci____ + mmor8ax ModernMT-Extended A 334 nmex____ + mmori8ax ModernMT-ExtendedItalic A 334 nmexi___ + mmor8aw ModernMT-Wide A 334 nmwd____ + mmori8aw ModernMT-WideItalic A 334 nmwdi___ + p_____ ElseNPL-Bold A 335 enb_____ + p_____ ElseNPL-Light A 335 enl_____ + p_____ ElseNPL-Medium A 335 enm_____ + p_____ ElseNPL-SemiBold A 335 ens_____ + p_____ Tiepolo-Bold A 336 tpb_____ + p_____ Tiepolo-BoldItalic A 336 tpbi____ + p_____ Tiepolo-Black A 336 tpbl____ + p_____ Tiepolo-BlackItalic A 336 tpbli___ + p_____ Tiepolo-Book A 336 tpw_____ + p_____ Tiepolo-BookItalic A 336 tpwi____ + pfaric8ac Formata-CnItalicSC A 337 fmcis___ + pfari8xc Formata-CnItalicExpert A 337 fmcix___ + pfarc8ac Formata-CondensedSC A 337 fmcsc___ + pfar8xc Formata-CondensedExpert A 337 fmcxp___ + pfaric8a Formata-ItalicSC A 337 fmisc___ + pfari8x Formata-ItalicExpert A 337 fmixp___ + pfalc8ac Formata-LightCnSC A 337 fmlcs___ + pfalic8ac Formata-LightCnItalicSC A 337 fmlct___ + pfal8xc Formata-LightCnExpert A 337 fmlcx___ + pfali8xc Formata-LightCnItalicExpert A 337 fmlcy___ + pfalic8a Formata-LightItalicSC A 337 fmlis___ + pfali8x Formata-LightItalicExpert A 337 fmlix___ + pfalc8a Formata-LightSC A 337 fmlsc___ + pfal8x Formata-LightExpert A 337 fmlxp___ + pfar8x Formata-RegularExpert A 337 fmrgx___ + pfarc8a Formata-RegularSC A 337 fmsc____ + pnfbij8a Nofret-BoldItalicOsF A 338 nfbio___ + pnfbi8x Nofret-BoldItalicExpert A 338 nfbix___ + pnfbj8a Nofret-BoldOsF A 338 nfbof___ + pnfb8x Nofret-BoldExpert A 338 nfbxp___ + pnfrij8a Nofret-ItalicOsF A 338 nfiof___ + pnfri8x Nofret-ItalicExpert A 338 nfixp___ + pnflij8a Nofret-LightItalicOsF A 338 nflio___ + pnfli8x Nofret-LightItalicExpert A 338 nflix___ + pnflc8a Nofret-LightSC A 338 nflsc___ + pnfl8x Nofret-LightExpert A 338 nflxp___ + pnfmij8a Nofret-MediumItalicOsF A 338 nfmio___ + pnfmi8x Nofret-MediumItalicExpert A 338 nfmix___ + pnfmc8a Nofret-MediumSC A 338 nfmsc___ + pnfm8x Nofret-MediumExpert A 338 nfmxp___ + pnfr8x Nofret-RegularExpert A 338 nfrgx___ + pnfrc8a Nofret-RegularSC A 338 nfsc____ + p_____ Amigo A 339 ig______ + p_____ Pelican A 339 lq______ + pmgr8a Marigold A 339 my______ + pofr8a Oxford A 339 of______ + pvgr8a Visigoth A 339 vg______ + mapr8x ApolloMT-Expert A 340 ezexp___ + mapri8a ApolloMT-Italic A 340 ezi_____ + maprij8a ApolloMT-ItalicOsF A 340 eziof___ + mapri8x ApolloMT-ItalicExpert A 340 ezixp___ + mapr8a ApolloMT A 340 ezr_____ + maprc8a ApolloMT-SC A 340 ezrsc___ + maps8a ApolloMT-SemiBold A 340 ezsb____ + mapsj8a ApolloMT-SemiBoldOsF A 340 ezsbo___ + maps8x ApolloMT-SemiBoldExpert A 340 ezsbx___ + p_____ Catull-Bold A 341 qlb_____ + p_____ Catull-Italic A 341 qli_____ + p_____ Catull-Medium A 341 qlm_____ + p_____ Catull-Regular A 341 qlrg____ + pagMMo8a ITCAvantGardeMM-Oblique A 342 zfi_____ + pagMM8a ITCAvantGardeMM A 342 zfrg____ + mhob8a HorleyOldStyleMT-Bold A 343 hsb_____ + mhobi8a HorleyOldStyleMT-BoldItalic A 343 hsbi____ + mhori8a HorleyOldStyleMT-Italic A 343 hsi_____ + mhol8a HorleyOldStyleMT-Light A 343 hsl_____ + mholi8a HorleyOldStyleMT-LightItalic A 343 hsli____ + mhor8a HorleyOldStyleMT A 343 hsrg____ + mhos8a HorleyOldStyleMT-SemiBold A 343 hssb____ + mhosi8a HorleyOldStyleMT-SbItalic A 343 hssbi___ + p_____ Cremona-Bold A 344 _cb_____ + p_____ Cremona-BoldItalic A 344 _cbi____ + p_____ Cremona-Italic A 344 _ci_____ + p_____ Cremona-Regular A 344 _crg____ + pgsb8aq GillSans-BoldExtraCondensed A 345 gnbxc___ + pgslh8a GillSans-LightShadowed A 345 gnls____ + pgsrh8a GillSans-Shadowed A 345 gns_____ + pgsxd8a GillSans-ExtraBoldDisplay A 345 gnxbd___ + p_____ LoType-Bold A 346 ljb_____ + p_____ LoType-Light A 346 ljl_____ + p_____ LoType-Medium A 346 ljm_____ + p_____ LoType-MediumCondensed A 346 ljmc____ + p_____ LoType-MediumItalic A 346 ljmi____ + p_____ LoType-Regular A 346 ljrg____ + mknr8a KinoMT A 347 qi______ + mwrrf8a WittenbergerFrakturMT A 347 wf______ + mwrbf8a WittenbergerFrakturMT-Bd A 347 wfb_____ + mwdbf7c WittenbergerFrakturMT-BdDfr A 347 wfbdf___ + mwdrf7c WittenbergerFrakturMT-Dfr A 347 wfdfr___ + mm7r8a MaturaMT A 347 zz______ + mm7rw8a MaturaMT-ScriptCapitals A 347 zzscc___ + pllbij8a LinoLetter-BoldItalicOsF A 348 llbio___ + pllbk8a LinoLetter-BoldOsF A 348 llbof___ + pllbc8a LinoLetter-BoldSC A 348 llbsc___ + pllrij8a LinoLetter-ItalicOsF A 348 lliof___ + pllmij8a LinoLetter-MediumItalicOsF A 348 llmio___ + pllmj8a LinoLetter-MediumOsF A 348 llmof___ + pllmc8a LinoLetter-MediumSC A 348 llmsc___ + pllrj8a LinoLetter-RomanOsF A 348 llros___ + pllrc8a LinoLetter-RomanSC A 348 llrsc___ + pllcij8a LinoLetter-BlackItalicOsF A 348 llzio___ + pllcj8a LinoLetter-BlackOsF A 348 llzof___ + pllcc8a LinoLetter-BlackSC A 348 llzsc___ + pbbbij8a Bembo-BoldItalicOsF A 349 bmbio___ + pbbbi8x Bembo-BoldItalicExpert A 349 bmbix___ + pbbbj8a Bembo-BoldOsF A 349 bmbos___ + pbbb8x Bembo-BoldExpert A 349 bmbxp___ + pbbxj8a Bembo-ExtraBoldOsF A 349 bmebs___ + pbbx8x Bembo-ExtraBoldExpert A 349 bmebx___ + pbbxij8a Bembo-ExtraBoldItalicOsF A 349 bmeis___ + pbbxi8x Bembo-ExtraBoldItalicExpert A 349 bmeix___ + pbbr8x Bembo-Expert A 349 bmexp___ + pbbrij8a Bembo-ItalicOsF A 349 bmios___ + pbbri8x Bembo-ItalicExpert A 349 bmixp___ + pbbrc8a Bembo-SC A 349 bmrsc___ + pbbsj8a Bembo-SemiboldOsF A 349 bmsbo___ + pbbs8x Bembo-SemiboldExpert A 349 bmsbx___ + pbbsij8a Bembo-SemiboldItalicOsF A 349 bmsis___ + pbbsi8x Bembo-SemiboldItalicExpert A 349 bmsix___ + ptkMMo8a TektonMM-Oblique A 350 zji_____ + ptkMM8a TektonMM A 350 zjrg____ + pvvMM8a VivaMM A 351 zkrg____ + pb7b8a BernhardModern-Bold A 352 rdb_____ + pb7bi8a BernhardModern-BoldItalic A 352 rdbi____ + pb7ri8a BernhardModern-Italic A 352 rdi_____ + pb7r8a BernhardModern-Roman A 352 rdr_____ + p_____ Ariadne-Roman A 353 aria____ + pdiri8a Diotima-Italic A 353 dti_____ + pdirij8a Diotima-ItalicOsF A 353 dtiof___ + pdir8a Diotima-Roman A 353 dtr_____ + pdirj8a Diotima-RomanOsF A 353 dtros___ + pdirc8a Diotima-RomanSC A 353 dtrsc___ + p_____ Smaragd A 353 smar____ + p_____ Smaragd-Alternate A 353 smara___ + pttb6w TimesTenCyr-Bold A 354 ttyb____ + pttbo6w TimesTenCyr-BoldInclined A 354 ttybi___ + pttro6w TimesTenCyr-Inclined A 354 ttyi____ + pttr6w TimesTenCyr-Upright A 354 ttyu____ + panr8a Anna A 355 iarg____ + p_____ Beesknees A 355 ikh_____ + p_____ MonaLisa-Recut A 355 iyin____ + p_____ MonaLisa-Solid A 355 iysd____ + p_____ Ozwald A 355 ozh_____ + po8b8a OfficinaSerif-Bold A 356 ovb_____ + po8bi8a OfficinaSerif-BoldItalic A 356 ovbi____ + po8k8a OfficinaSerif-Book A 356 ovbk____ + po8ki8a OfficinaSerif-BookItalic A 356 ovwi____ + po9b8a OfficinaSans-Bold A 357 owb_____ + po9bi8a OfficinaSans-BoldItalic A 357 owbi____ + po9k8a OfficinaSans-Book A 357 owbk____ + po9ki8a OfficinaSans-BookItalic A 357 owwi____ + p_____ SanvitoMM A 358 zhrg____ + p_____ CaflischScriptMM-Alt A 359 zea_____ + p_____ CaflischScriptMM A 359 zerg____ + p_____ CaflischScriptMM-Sw A 359 zesw____ + p_____ GraphiteMM A 360 _grg____ + phir6w HelveticaInseratCyr-Upright A 361 hiyu____ + phvb6w HelveticaCyr-Bold A 361 hvyb____ + phvbo6w HelveticaCyr-BoldInclined A 361 hvybi___ + phvro6w HelveticaCyr-Inclined A 361 hvyi____ + phvr6w HelveticaCyr-Upright A 361 hvyu____ + plzb8a LegacySans-Bold A 362 lvb_____ + plzbi8a LegacySans-BoldItalic A 362 lvbi____ + plzm8a LegacySans-Medium A 362 lvm_____ + plzmi8a LegacySans-MediumItalic A 362 lvmi____ + plzu8a LegacySans-Ultra A 362 lvu_____ + plzk8a LegacySans-Book A 362 lvw_____ + plzki8a LegacySans-BookItalic A 362 lvwi____ + pleb8a LegacySerif-Bold A 363 lzb_____ + plebi8a LegacySerif-BoldItalic A 363 lzbi____ + plem8a LegacySerif-Medium A 363 lzm_____ + plemi8a LegacySerif-MediumItalic A 363 lzmi____ + pleu8a LegacySerif-Ultra A 363 lzu_____ + plek8a LegacySerif-Book A 363 lzw_____ + pleki8a LegacySerif-BookItalic A 363 lzwi____ + pexr6w ExcelsiorCyr-Upright A 364 exy_____ + pexb6w ExcelsiorCyr-Bold A 364 exyb____ + pexro6w ExcelsiorCyr-Inclined A 364 exyi____ + pbvr6w BaskervilleCyr-Upright A 365 _by_____ + pbvb6w BaskervilleCyr-Bold A 365 _byb____ + pbvbo6w BaskervilleCyr-Inclined A 365 _byi____ + p_____ Pepperwood-Fill A 366 uwfi____ + p_____ Pepperwood-Outline A 366 uwou____ + p_____ Pepperwood-Regular A 366 uwrg____ + p_____ Rosewood-Fill A 366 uxfi____ + p_____ Rosewood-Regular A 366 uxrg____ + p_____ Zebrawood-Fill A 366 uyfi____ + p_____ Zebrawood-Regular A 366 uyrg____ + p_____ MendozaRoman-Bold A 367 zab_____ + p_____ MendozaRoman-BoldItalic A 367 zabi____ + p_____ MendozaRoman-Medium A 367 zam_____ + p_____ MendozaRoman-MediumItalic A 367 zami____ + p_____ MendozaRoman-Book A 367 zaw_____ + p_____ MendozaRoman-BookItalic A 367 zawi____ + phhb8a Highlander-Bold A 368 hhb_____ + phhbi8a Highlander-BoldItalic A 368 hhbi____ + phhk8a Highlander-Book A 368 hhbk____ + phhm8a Highlander-Medium A 368 hhm_____ + phhmi8a Highlander-MediumItalic A 368 hhmi____ + phhki8a Highlander-BookItalic A 368 hhwi____ + pbgb8a Benguiat-Bold A 369 bgb_____ + pbgbi8a Benguiat-BoldItalic A 369 bgbi____ + pbgm8a Benguiat-Medium A 369 bgm_____ + pbgmi8a Benguiat-MediumItalic A 369 bgmi____ + pbgk8a Benguiat-Book A 369 bgw_____ + pbgki8a Benguiat-BookItalic A 369 bgwi____ + p_____ MezzMM A 370 zmrg____ + lrzb8a RuzickaFreehandLH-Bold A 371 rzb_____ + lrzbc8a RuzickaFreehandLH-BoldSC A 371 rzbsc___ + lrzr8a RuzickaFreehandLH-Roman A 371 rzr_____ + lrzrc8a RuzickaFreehandLH-RomanSC A 371 rzrsc___ + pnorf7c NotreDame-RomanDfr A 372 nhdfr___ + pnorp NotreDame-Ornaments A 372 nhorn___ + pnorf8a NotreDame-Roman A 372 nhr_____ + ppjrp Pompeijana-Borders A 372 qbbor___ + ppjr8a Pompeijana-Roman A 372 qbr_____ + prxrp Rusticana-Borders A 372 rxbor___ + prxr8a Rusticana-Roman A 372 rxr_____ + lpi005 CaravanLH-One A 373 cara1___ + lpi006 CaravanLH-Two A 373 cara2___ + lpi007 CaravanLH-Three A 373 cara3___ + lpi008 CaravanLH-Four A 373 cara4___ + leab8a ElectraLH-Bold A 373 etb_____ + leabi8a ElectraLH-BoldCursive A 373 etbi____ + leari8a ElectraLH-Cursive A 373 eti_____ + lear8a ElectraLH-Regular A 373 etr_____ + leabij8a ElectraLH-BoldCursiveOsF A 374 etbio___ + leabj8a ElectraLH-BoldOsF A 374 etbos___ + leabc8a ElectraLH-BoldSC A 374 etbsc___ + leabd8a ElectraLH-BoldDisplay A 374 etdb____ + leabid8a ElectraLH-BoldCursiveDisplay A 374 etdbi___ + learid8a ElectraLH-CursiveDisplay A 374 etdi____ + leard8a ElectraLH-Display A 374 etdr____ + learij8a ElectraLH-CursiveOsF A 374 etios___ + learj8a ElectraLH-RegularOsF A 374 etros___ + learc8a ElectraLH-RegularSC A 374 etrsc___ + p_____ RulingScript-Two A 375 rul2____ + p_____ Sho-Roman A 375 sho_____ + p_____ WiesbadenSwing-Roman A 375 wn______ + p_____ MotterCorpusMM A 376 kprg____ + p_____ PenumbraMM A 377 zlrg____ + p_____ NuevaMM-It A 378 twi_____ + p_____ NuevaMM A 378 twr_____ + pctbif8a Cheltenham-HandtooledBdIt A 379 chiin___ + pctbf8a Cheltenham-HandtooledBold A 379 chin____ + pgmbif8a Garamond-HandtooledBoldItalic A 379 gaiin___ + pgmbf8a Garamond-HandtooledBold A 379 gain____ + pcnbif8a Century-HandtooledBoldItalic A 379 iciin___ + pcnbf8a Century-HandtooledBold A 379 icin____ + pgmMM8a ITCGaramondMM A 380 gc______ + pgmMMi8a ITCGaramondMM-It A 380 gci_____ + p_____ Cerigo-Bold A 381 qcb_____ + p_____ Cerigo-BoldItalic A 381 qcbi____ + p_____ Cerigo-Medium A 381 qcm_____ + p_____ Cerigo-MediumItalic A 381 qcmi____ + p_____ Cerigo-Book A 381 qcw_____ + p_____ Cerigo-BookItalic A 381 qcwi____ + phab8a Hadriano-Bold A 382 hab_____ + phax8a Hadriano-ExtraBold A 382 haeb____ + phax8ac Hadriano-ExtraBoldCondensed A 382 haebc___ + phal8a Hadriano-Light A 382 hal_____ + prcb8a Romic-Bold A 383 rob_____ + prcx8a Romic-ExtraBold A 383 roeb____ + prcl8a Romic-Light A 383 rol_____ + prcli8a Romic-LightItalic A 383 roli____ + prcm8a Romic-Medium A 383 rom_____ + p_____ Copal-Decorated A 384 _ddc____ + p_____ Copal-Outline A 384 _dou____ + p_____ Copal-Solid A 384 _dsd____ + pxpMM7a ExPontoMM-Alternate A 385 jvalt___ + pxpMM7ab ExPontoMM-Beginning A 385 jvbeg___ + pxpMM7ae ExPontoMM-Ending A 385 jvend___ + pxpMM8a ExPontoMM A 385 jvrg____ + pxpMMj8a ExPontoMM-OsF A 385 jvros___ + pysb8a GoudySans-Bold A 386 hgb_____ + pysbi8a GoudySans-BoldItalic A 386 hgbi____ + pysk8a GoudySans-Book A 386 hgbk____ + pyski8a GoudySans-BookItalic A 386 hgbki___ + pysc8a GoudySans-Black A 386 hgbl____ + pysci8a GoudySans-BlackItalic A 386 hgbli___ + pysm8a GoudySans-Medium A 386 hgm_____ + pysmi8a GoudySans-MediumItalic A 386 hgmi____ + p_____ Delphin-I A 387 df1_____ + p_____ Delphin-IA A 387 df1a____ + p_____ Delphin-II A 387 df2_____ + p_____ Delphin-IIA A 387 df2a____ + pc7b8a Kompakt A 387 kq______ + p_____ KochAntiqua A 387 kv______ + pnlb8a Neuland A 387 nq______ + p_____ Caliban A 388 ni______ + paxrw8a Alexa A 388 xa______ + pbzrw8a Balzano A 388 zn______ + p_____ JimboMM A 389 jprg____ + pb7b8ac Bernhard-BoldCondensed A 390 dhbc____ + pnw1r8a NeueHammerUnziale-One A 390 nw1_____ + pnw1r7a NeueHammerUnziale-OneAlt A 390 nw1al___ + pnw2r8a NeueHammerUnziale-Two A 390 nw2_____ + pnw2r7a NeueHammerUnziale-TwoAlt A 390 nw2al___ + pclrl8a Cloister-OpenFace A 390 oein____ + poir8a Ondine A 390 og______ + pghr7a Galahad-Alternate A 391 g_alt___ + pghr8a Galahad-Regular A 391 g_rg____ + pghrj8a Galahad-OsF A 391 g_ros___ + popc8a Optima-Black A 392 opbl____ + popci8a Optima-BlackItalic A 392 opbli___ + popd8a Optima-DemiBold A 392 opd_____ + popdi8a Optima-DemiBoldItalic A 392 opdi____ + popx8a Optima-ExtraBlack A 392 opf_____ + popm8a Optima-Medium A 392 opm_____ + popmi8a Optima-MediumItalic A 392 opmi____ + popxi8a Optima-ExtraBlackItalic A 392 opxfi___ + p_____ Aja A 393 ja______ + p_____ PopplExquisit-Medium A 393 xqm_____ + p_____ PopplExquisit-Regular A 393 xqrg____ + ppi033 NationalCodes-Africa A 394 ncaf____ + ppi034 NationalCodes-America A 394 ncam____ + ppi035 NationalCodes-AsiaPlus A 394 ncas____ + ppi036 NationalCodes-Europe A 394 nceu____ + ppi037 NationalCodes-Universal A 394 ncun____ + p_____ ElGreco A 395 eq______ + pakm8a Arkona-Medium A 395 xnm_____ + pakr8a Arkona-Regular A 395 xnrg____ + pfgd8ap FranklinGothic-DemiCmpr A 396 frdcp___ + pfgdi8ap FranklinGothic-DemiCmprItal A 396 frdpi___ + pfgd8aq FranklinGothic-DemiXCmpr A 396 frdx____ + pfgk8ap FranklinGothic-BookCmpr A 396 frwcp___ + pfgki8ap FranklinGothic-BookCmprItal A 396 frwpi___ + pfgk8aq FranklinGothic-BookXCmpr A 396 frwx____ + pfgd8ac FranklinGothic-DemiCnd A 397 frdc____ + pfgdi8ac FranklinGothic-DemiCndItal A 397 frdci___ + pfgm8ac FranklinGothic-MedCnd A 397 frmc____ + pfgmi8ac FranklinGothic-MedCndItal A 397 frmci___ + pfgk8ac FranklinGothic-BookCnd A 397 frwc____ + pfgki8ac FranklinGothic-BookCndItal A 397 frwci___ + p_____ Sassafras-Italic A 398 xfi_____ + p_____ Sassafras-LxItalic A 398 xflgi___ + p_____ Sassafras-Lx A 398 xflgr___ + p_____ Sassafras-Roman A 398 xfr_____ + p_____ Sassafras-SxItalic A 398 xfshi___ + p_____ Sassafras-Sx A 398 xfshr___ + pkxrd8a Kigali-Block A 399 kxblk___ + pkxrw8a Kigali-ZigZag A 399 kxdc____ + pkxri8a Kigali-Italic A 399 kxi_____ + pkxli8a Kigali-LxItalic A 399 kxlgi___ + pkxl8a Kigali-Lx A 399 kxlgr___ + pkxr8a Kigali-Roman A 399 kxr_____ + pkxsi8a Kigali-SxItalic A 399 kxshi___ + pkxs8a Kigali-Sx A 399 kxshr___ + pajMMi8a AJensonMM-It A 400 jei_____ + pajMM8a AJensonMM A 400 jer_____ + pajMM7a AJensonMM-Alt A 401 jealt___ + pajMM8x AJensonMM-Ep A 401 jeexp___ + pajMMi7a AJensonMM-ItAlt A 401 jeial___ + pajMMic8a AJensonMM-ItSC A 401 jeisc___ + pajMMi8x AJensonMM-ItEp A 401 jeixp___ + pajMMc8a AJensonMM-SC A 401 jersc___ + pajMMiw8a AJensonMM-Sw A 401 jeswc___ + mbmb8a BulmerMT-Bold A 402 ybb_____ + mbmbi8a BulmerMT-BoldItalic A 402 ybbi____ + mbmbd8a BulmerMT-BoldDisplay A 402 ybdb____ + mbmbid8a BulmerMT-BoldItalicDisplay A 402 ybdbi___ + mbmrd8a BulmerMT-RegularDisplay A 402 ybds____ + mbmrid8a BulmerMT-ItalicDisplay A 402 ybdsi___ + mbmri8a BulmerMT-Italic A 402 ybi_____ + mbmr8a BulmerMT-Regular A 402 ybrg____ + mbms8a BulmerMT-SemiBold A 402 ybsb____ + mbmsi8a BulmerMT-SemiBoldItalic A 402 ybsi____ + mbmb7a BulmerMT-BoldAlt A 403 ybab____ + mbmbi7a BulmerMT-BoldItalicAlt A 403 ybabi___ + mbmr7a BulmerMT-RegularAlt A 403 ybarg___ + mbms7a BulmerMT-SemiBoldAlt A 403 ybasb___ + mbmsi7a BulmerMT-SemiBoldItalicAlt A 403 ybasi___ + mbmbd7a BulmerMT-BoldDisplayAlt A 403 ybbda___ + mbmbid7a BulmerMT-BoldItalDisplayAlt A 403 ybbid___ + mbmbi8x BulmerMT-BoldItalicExpert A 403 ybbix___ + mbmb8x BulmerMT-BoldExpert A 403 ybbxp___ + mbmri7a BulmerMT-ItalicAlt A 403 ybial___ + mbmrid7a BulmerMT-ItalicDisplayAlt A 403 ybida___ + mbmri8x BulmerMT-ItalicExpert A 403 ybixp___ + mbmrd7a BulmerMT-RegularDisplayAlt A 403 ybrda___ + mbmr8x BulmerMT-RegularExpert A 403 ybrgx___ + mbmrc8a BulmerMT-RegularSC A 403 ybrsc___ + mbmsc8a BulmerMT-SemiBoldSC A 403 ybsbs___ + mbms8x BulmerMT-SemiBoldExpert A 403 ybsbx___ + mbmsi8x BulmerMT-SemiBoldItalExpert A 403 ybsix___ + pizr8a Isabella A 404 iz______ + prrr8a Raphael A 404 rr______ + pxcr8a Eccentric A 404 xc______ + p_____ OceanSansMM-It A 405 ohi_____ + p_____ OceanSansMM A 405 ohr_____ + plcrt8a LucidaTypewriter A 406 tl______ + plcbt8a LucidaTypewriter-Bold A 406 tlb_____ + plcbot8a LucidaTypewriter-BoldObl A 406 tlbo____ + plcrot8a LucidaTypewriter-Obl A 406 tlo_____ + plsrt8a LucidaSansTypewriter A 407 ty______ + plsbt8a LucidaSansTypewriter-Bd A 407 tyb_____ + plsbot8a LucidaSansTypewriter-BdObl A 407 tybo____ + plsrot8a LucidaSansTypewriter-Obl A 407 tyo_____ + p_____ BriemScriptMM-Exp A 408 iiexp___ + p_____ BriemScriptMM A 408 iirg____ + p_____ BriemScriptMM-SC A 408 iisc____ + pkpMM8a KeplMM A 409 k_______ + pkpMMi8a KeplMM-It A 409 k_i_____ + pkpMM8x KeplMM-Ep A 410 k_exp___ + pkpMMic8a KeplMM-ItSC A 410 k_isc___ + pkpMMi8x KeplMM-ItEp A 410 k_ixp___ + pkpMMp1 KeplMM-Or1 A 410 k_or1___ + pkpMMp2 KeplMM-Or2 A 410 k_or2___ + pkpMMp3 KeplMM-Or3 A 410 k_or3___ + pkpMMc8a KeplMM-SC A 410 k_rsc___ + pkpMMiw8a KeplMM-Sw A 410 k_sw____ + pmjr8a Mojo A 411 fbrg____ + p_____ Shuriken-Boy A 412 s_boy___ + p_____ Andreas A 413 hy______ + poqr8a Ouch A 414 oq______ + p_____ CongaBravaMM A 415 vbrg____ + p_____ CongaBravaMM-St A 415 vbst____ + p_____ CronosMM A 416 xo______ + p_____ CronosMM-It A 416 xoi_____ + p_____ CronosMM-Ep A 417 xoexp___ + p_____ CronosMM-ItSC A 417 xoisc___ + p_____ CronosMM-ItEp A 417 xoixp___ + p_____ CronosMM-Or A 417 xoor____ + p_____ CronosMM-SC A 417 xorsc___ + p_____ CronosMM-Sw A 417 xosw____ + pdkb8a Diskus-Bold A 418 d_b_____ + pdkr8a Diskus A 418 d_rg____ + potb8a Coronet-Bold A 418 n_b_____ + potr8a Coronet A 418 n_rg____ + p_____ ChaparralMM-It A 419 xti_____ + p_____ ChaparralMM A 419 xtr_____ + p_____ ChaparralMM-Ep A 420 xtexp___ + p_____ ChaparralMM-ItSC A 420 xtisc___ + p_____ ChaparralMM-ItEp A 420 xtixp___ + p_____ ChaparralMM-Or A 420 xtor____ + p_____ ChaparralMM-SC A 420 xtrsc___ + ppi038 WiesbadenSwing-Dingbats A 421 wgdb____ + p_____ BermudaLP-Dots A 422 uddc1___ + p_____ BermudaLP-Squiggle A 422 uddc2___ + p_____ BermudaLP-Open A 422 udou____ + p_____ BermudaLP-Solid A 422 udrg____ + p_____ SpumoniLP A 423 uu______ + pzpr8a ZiptyDo A 424 zp______ + pkwr7a KoloLP-Alternates A 425 kwalt___ + pkwr8an KoloLP-Narrow A 425 kwn_____ + pkwr8a KoloLP-Regular A 425 kwrg____ + pkwr8aw KoloLP-Wide A 425 kwwd____ + pnxr8a Nyx A 426 nxrg____ + p_____ Banshee A 427 zo______ + p_____ KinesisMM A 428 kj______ + p_____ KinesisMM-It A 428 kji_____ + p_____ KinesisMM-Ep A 429 kjexp___ + p_____ KinesisMM-ItSC A 429 kjisc___ + p_____ KinesisMM-ItEp A 429 kjixp___ + p_____ KinesisMM-SC A 429 kjrsc___ + p_____ HardwoodLP A 430 hw______ + p_____ ManitoLP A 431 mw______ + p_____ Coriander A 432 uc______ + p_____ SpringLP A 433 td______ + p_____ SpringLP-Light A 433 tdl_____ + pwhb8a WendyLP-Bold A 434 whb_____ + pwhl8a WendyLP-Light A 434 whl_____ + pwhm8a WendyLP-Medium A 434 whm_____ + p_____ BickhamScriptMM-AltI A 435 b_a1____ + p_____ BickhamScriptMM-AltII A 435 b_a2____ + p_____ BickhamScriptMM-Beg A 435 b_bg____ + p_____ BickhamScriptMM-End A 435 b_en____ + p_____ BickhamScriptMM-Lig A 435 b_lig___ + p_____ BickhamScriptMM-Or A 435 b_or____ + p_____ BickhamScriptMM A 435 b_rg____ + p_____ BickhamScriptMM-SwCaps A 435 b_swc___ + pojr8a OldClaudeLP A 436 oj______ + pojrj8a OldClaudeLP-OsF A 436 ojosf___ + pojrc8a OldClaudeLP-SC A 436 ojsc____ + p_____ FlorensLP A 437 fn______ + p_____ FlorensLP-Alternates A 437 fnalt___ + p_____ BriemAkademiMM A 438 dkrg____ + p_____ Khaki-One A 439 hk1_____ + p_____ Khaki-Two A 439 hk2_____ + p_____ Pompeia-InlineItalic A 440 vpiit___ + p_____ Pompeia-Inline A 440 vpin____ + p_____ Flood A 441 fyrg____ + pwtMM7a WatersTitlingMM-Alt A 442 jwalt___ + pwtMM7al WatersTitlingMM-Lig A 442 jwlig___ + pwtMM8a WatersTitlingMM A 442 jwr_____ + pwtMMd8a WatersTitlingMM-TallCaps A 442 jwtlc___ + p_____ CelestiaAntiqua-Regular A 443 zs______ + p_____ CelestiaAntiqua-Bold A 443 zsb_____ + p_____ CelestiaAntiqua-BoldLig A 443 zsbdl___ + p_____ CelestiaAntiqua-Italic A 443 zsi_____ + p_____ CelestiaAntiqua-ItalicLig A 443 zsitl___ + p_____ CelestiaAntiqua-Ligatures A 443 zslig___ + p_____ CelestiaAntiqua-Ornaments A 443 zsor____ + p_____ CelestiaAntiqua-Semibold A 443 zssb____ + p_____ CelestiaAntiqua-SmBdLig A 443 zssbl___ + p_____ CelestiaAntiqua-SC A 443 zssc____ + pmyr8ac Myriad-Condensed A 444 wmc_____ + pmyb8ac Myriad-CnBold A 444 wmcb____ + pmybi8ac Myriad-CnBoldItalic A 444 wmcbi___ + pmyri8ac Myriad-CnItalic A 444 wmci____ + pmys8ac Myriad-CnSemibold A 444 wms_____ + pmysi8ac Myriad-CnSemiboldItalic A 444 wmsi____ + p_____ Immi505 A 445 firg____ + p_____ MagnoliaMVB A 446 xm______ + p_____ MagnoliaMVB-Ligatures A 446 xmlig___ + p_____ BossaNovaMVB A 447 xb______ + p_____ BossaNovaMVB-Alternates A 447 xbalt___ + p_____ Emmascript A 448 xe______ + p_____ RusselOblique A 449 zr______ + p_____ RusselOblique-InformalAlt A 449 zralt___ + p_____ RusselOblique-Informal A 449 zrinf___ + mdtb8a DanteMT-Bold A 450 dlb_____ + mdtbi8a DanteMT-BoldItalic A 450 dlbi____ + mdtri8a DanteMT-Italic A 450 dli_____ + mdtm8a DanteMT-Medium A 450 dlm_____ + mdtmi8a DanteMT-MediumItalic A 450 dlmi____ + mdtr8a DanteMT-Regular A 450 dlrg____ + mdtb7a DanteMT-BoldAlt A 451 dlab____ + mdtbi7a DanteMT-BoldItalicAlt A 451 dlabi___ + mdtri7a DanteMT-ItalicAlt A 451 dlai____ + mdtr7a DanteMT-RegularAlt A 451 dlarg___ + mdtm7a DanteMT-MediumAlt A 451 dlasb___ + mdtmi7a DanteMT-MediumItalicAlt A 451 dlasi___ + mdtbij8a DanteMT-BoldItalicOsF A 451 dlbio___ + mdtbi8x DanteMT-BoldItalicExpert A 451 dlbix___ + mdtbj8a DanteMT-BoldOsF A 451 dlbos___ + mdtb8x DanteMT-BoldExpert A 451 dlbxp___ + mdtrij8a DanteMT-ItalicOsF A 451 dlios___ + mdtri8x DanteMT-ItalicExpert A 451 dlixp___ + mdtmij8a DanteMT-MediumItalicOsF A 451 dlmio___ + mdtmi8x DanteMT-MediumItalicExpert A 451 dlmix___ + mdtmj8a DanteMT-MediumOsF A 451 dlmof___ + mdtm8x DanteMT-MediumExpert A 451 dlmxp___ + mdtr8x DanteMT-RegularExpert A 451 dlrgx___ + mdtrc8a DanteMT-RegularSC A 451 dlsc____ + mdtrd8a DanteMT-Titling A 451 dlttl___ + myhb8a StrayhornMT-Bold A 452 yhb_____ + myhbi8a StrayhornMT-BoldItalic A 452 yhbi____ + myhx8a StrayhornMT-ExtraBold A 452 yheb____ + myhxi8a StrayhornMT-ExtraBoldItalic A 452 yhebi___ + myhri8a StrayhornMT-Italic A 452 yhi_____ + myhl8a StrayhornMT-Light A 452 yhl_____ + myhli8a StrayhornMT-LightItalic A 452 yhli____ + myhr8a StrayhornMT-Regular A 452 yhrg____ + myhbij8a StrayhornMT-BoldItalicOsF A 453 yhbio___ + myhbj8a StrayhornMT-BoldOsF A 453 yhbos___ + myhxj8a StrayhornMT-ExtraBoldOsF A 453 yhebs___ + myhxij8a StrayhornMT-ExtraBoldItaOsF A 453 yheis___ + myhrij8a StrayhornMT-ItalicOsF A 453 yhios___ + myhlij8a StrayhornMT-LightItalicOsF A 453 yhlio___ + myhlc8a StrayhornMT-LightSC A 453 yhlsc___ + myhrc8a StrayhornMT-RegularSC A 453 yhrsc___ + p_____ Postino-Italic A 454 xzi_____ + p_____ Postino A 454 xzr_____ + p_____ ReliqMM-OsF A 455 qeosf___ + p_____ ReliqMM A 455 qer_____ + p_____ Critter A 456 wc______ + p_____ Cutout A 457 wu______ + p_____ Studz A 458 wp______ + p_____ Rad A 459 wr______ + p_____ Mythos A 460 wy______ + p_____ Toolbox A 461 wt______ + p_____ Quake A 462 wq______ + pg2r8a Giddyup-Regular A 463 wg______ + pg2r Giddyup-Thangs A 463 wgtha___ + pmyrl8a Myriad-Sketch A 464 wmske___ + pmyrn8a Myriad-Tilt A 464 wmtil___ + mbeb8a BellMT-Bold A 465 xlb_____ + mbebi8a BellMT-BoldItalic A 465 xlbi____ + mberi8a BellMT-Italic A 465 xli_____ + mber8a BellMT-Regular A 465 xlrg____ + mbes8a BellMT-SemiBold A 465 xlsb____ + mbesi8a BellMT-SemiBoldItalic A 465 xlsbi___ + mber7a BellMT-RegularAlt A 466 xlarg___ + mbes7a BellMT-SemiBoldAlt A 466 xlasb___ + mbesi7a BellMT-SemiBoldItalicAlt A 466 xlasi___ + mbebi8x BellMT-BoldItalicExpert A 466 xlbix___ + mbeb8x BellMT-BoldExpert A 466 xlbxp___ + mber8x BellMT-RegularExpert A 466 xlexp___ + mberi7a BellMT-ItalicAlt A 466 xlial___ + mberi8x BellMT-ItalicExpert A 466 xlixp___ + mberx7a BellMT-RegularExpertAlt A 466 xlrxa___ + mbesc8a BellMT-SemiBoldSC A 466 xlsbs___ + mbes8x BellMT-SemiBoldExpert A 466 xlsbx___ + mberc8a BellMT-RegularSC A 466 xlsc____ + mbesi8x BellMT-SemiBoldItalicExpert A 466 xlsix___ + mbesx7a BellMT-SemiBoldExpertAlt A 466 xlsxa___ + mf1ri7a FournierMT-ItalicAlt A 467 xyali___ + mf1r7a FournierMT-RegularAlt A 467 xyalt___ + mf1ri8a FournierMT-Italic A 467 xyi_____ + mf1rij8a FournierMT-ItalicOsF A 467 xyios___ + mf1ri8x FournierMT-ItalicExpert A 467 xyixp___ + mf1rp FournierMT-Ornaments A 467 xyorn___ + mf1r8a FournierMT-Regular A 467 xyrg____ + mf1r8x FournierMT-RegularExpert A 467 xyrgx___ + mf1rc8a FournierMT-RegularSC A 467 xysc____ + mf1rid8a FournierMT-ItalicTallCaps A 467 xytti___ + mf1rd8a FournierMT-TallCaps A 467 xyttl___ + p_____ CTMercurius-Black A 468 uibl____ + p_____ CTMercurius-BlackItalic A 468 uibli___ + p_____ CTMercurius-Light A 468 uil_____ + p_____ CTMercurius-LightItalic A 468 uili____ + p_____ CTMercurius-Medium A 468 uim_____ + p_____ CTMercurius-MediumItalic A 468 uimi____ + p_____ Fusaka-Regular A 469 fv______ + p_____ Fusaka-Alternates A 469 fvalt___ + p_____ MagnesiumMVB A 470 uh______ + p_____ MagnesiumMVB-Grime A 470 uhdc1___ + m_____ GillFloriatedCapsMT-Alt A 471 fwalt___ + m_____ GillFloriatedCapsMT A 471 fwcap___ + p_____ Origami-Bold A 472 xrb_____ + p_____ Origami-BoldItalic A 472 xrbi____ + p_____ Origami-Italic A 472 xri_____ + p_____ Origami-Medium A 472 xrm_____ + p_____ Origami-MediumItalic A 472 xrmi____ + p_____ Origami-Regular A 472 xrrg____ + p_____ Origami-Semibold A 472 xrsb____ + p_____ Origami-SemiboldItalic A 472 xrsbi___ + p_____ GreymantleMVB A 473 qg______ + p_____ GreymantleMVB-Alternates A 473 qgalt___ + p_____ GreymantleMVB-Ornaments A 473 qgor____ + p_____ VerveMM-A A 474 vvaaa___ + p_____ VerveMM A 474 vvr_____ + p_____ VolutaScript A 475 vs______ + p_____ VolutaScript-Alternates A 475 vsalt___ + p_____ VolutaScript-Swash A 475 vssw____ + pcwr8a Cottonwood A 476 c_______ + piwr8a Ironwood A 477 i_______ + pjpr8a Juniper A 478 j_______ + pmqr8a Mesquite A 479 m_______ + ppor8a Ponderosa A 480 p_______ + pbir8a Birch A 481 bi______ + pb0r8a Blackoak A 482 bo______ + pmrr8a Madrone A 483 mq______ + pp0r8a Poplar A 484 pp______ + pwwr8a Willow A 485 wi______ + p_____ Pepperwood-Fill A 486 uwfi____ + p_____ Pepperwood-Outline A 486 uwou____ + p_____ Pepperwood-Regular A 486 uwrg____ + p_____ Rosewood-Fill A 487 uxfi____ + p_____ Rosewood-Regular A 487 uxrg____ + p_____ Zebrawood-Fill A 488 uyfi____ + p_____ Zebrawood-Regular A 488 uyrg____ + ppi026 WoodtypeOrnaments-One A 489 woor____ + ppi027 WoodtypeOrnaments-Two A 489 woor2___ + pg1r8a Gothic-Thirteen A 490 gtt_____ + ptph8ac Tempo-HeavyCondensed A 491 tehc____ + ptphi8ac Tempo-HeavyCondensedItalic A 491 tehci___ + ppsr8a Parisian A 492 pn______ + pumr8a Umbra A 493 um______ + mg4ri8a GoudyModernMT-Italic A 494 ygi_____ + mg4r8a GoudyModernMT A 494 ygrg____ + ms1ri8a ScotchRomanMT-Italic A 495 ysi_____ + ms1r8a ScotchRomanMT A 495 ysrg____ + mfsr8a FalstaffMT A 496 fprg____ + mifb8a InflexMT-Bold A 497 iqb_____ + mm8bl8a MonotypeOldStyleMT-BoldOut A 498 mbbou___ + mfer8a ForteMT A 499 fz______ + mklr8a KlangMT A 500 kn______ + mmebw8a MercuriusMT-BoldScript A 501 uzbs____ + p_____ Smaragd A 502 smar____ + p_____ Smaragd-Alternate A 502 smara___ + p_____ Ariadne-Roman A 503 aria____ + pdiri8a Diotima-Italic A 503 dti_____ + pdirij8a Diotima-ItalicOsF A 503 dtiof___ + pdir8a Diotima-Roman A 503 dtr_____ + pdirj8a Diotima-RomanOsF A 503 dtros___ + pdirc8a Diotima-RomanSC A 503 dtrsc___ + p_____ Legault A 504 ul______ + p_____ Legault-Alternates A 504 ula_____ + p_____ Legault-BoldAlternates A 504 ulab____ + p_____ Legault-Bold A 504 ulb_____ + p_____ BlueIsland A 505 ihrg____ + pbdp8ap Bodoni-PosterCompressed A 900 bdpsc___ + pbax8a Barmeno-ExtraBold A 900 bfeb____ + pb0r8a Blackoak A 900 bo______ + zpcp33bc Copperplate-ThirtyThreeBC A 900 cp33c___ + prtr Carta A 900 cr______ + pdcr8a DomCasual A 900 dc______ + mtlr8a CastellarMT A 900 el______ + mp2r8a PepitaMT A 900 epscr___ + pgsr8ac GillSans-Condensed A 900 gnc_____ + pgsu8a GillSans-UltraBold A 900 gnub____ + mgtrd8a GoudyTextMT-LombardicCapitals A 900 gxlom___ + piwr8a Ironwood A 900 i_______ + mbfrw8a BiffoMT A 900 ifscr___ + pimx8a Imago-ExtraBold A 900 ioeb____ + mjori8a JoannaMT-Italic A 900 joi_____ + mjor8a JoannaMT A 900 jor_____ + p_____ Colossalis-Bold A 900 kob_____ + plgr8a LetterGothic A 900 lg______ + plor8a Lithos-Regular A 900 lorg____ + pmqr8a Mesquite A 900 m_______ + pmnrp Minion-Ornaments A 900 moor____ + pnurw8a NuptialScript A 900 nu______ + pper8a PrestigeElite A 900 pe______ + pqsr8a Bellevue A 900 qsrg____ + p_____ AGOldFace-Outline A 900 qwou____ + mrur8ac RunicMT-Condensed A 900 ric_____ + prwx8a Rockwell-ExtraBold A 900 rkeb____ + pslr8a Stencil A 900 st______ + pwwr8a Willow A 900 wi______ + ppi027 WoodtypeOrnaments-Two A 900 woor2___ + pbir8a Birch A 901 bi______ + putrd8a Utopia-Headline A 901 uthd____ + p_____ Critter A 901 wc______ + pg2r8a Giddyup-Regular A 901 wg______ + pg2r Giddyup-Thangs A 901 wgtha___ + pmyrd8a Myriad-Headline A 901 wmhd____ + pmyrl8a Myriad-Sketch A 901 wmske___ + pmyrn8a Myriad-Tilt A 901 wmtil___ + p_____ Studz A 901 wp______ + p_____ Quake A 901 wq______ + p_____ Rad A 901 wr______ + p_____ Toolbox A 901 wt______ + p_____ Cutout A 901 wu______ + p_____ Mythos A 901 wy______ + pagd8a AvantGarde-Demi A 902 agd_____ + pagdo8a AvantGarde-DemiOblique A 902 agdo____ + pagk8a AvantGarde-Book A 902 agw_____ + pagko8a AvantGarde-BookOblique A 902 agwo____ + pamr8a Americana A 902 am______ + pamx8a Americana-ExtraBold A 902 ameb____ + pacri8a ACaslon-Italic A 902 awi_____ + pacr8a ACaslon-Regular A 902 awrg____ + pacs8a ACaslon-Semibold A 902 awsb____ + pacsi8a ACaslon-SemiboldItalic A 902 awsbi___ + pbab8a Barmeno-Bold A 902 bfb_____ + pbax8a Barmeno-ExtraBold A 902 bfeb____ + pbam8a Barmeno-Medium A 902 bfm_____ + pbar8a Barmeno-Regular A 902 bfrg____ + pbkd8a Bookman-Demi A 902 bkd_____ + pbkdi8a Bookman-DemiItalic A 902 bkdi____ + pbkl8a Bookman-Light A 902 bkl_____ + pbkli8a Bookman-LightItalic A 902 bkli____ + pb0r8a Blackoak A 902 bo______ + pcrb8a Courier-Bold A 902 cob_____ + pcrbo8a Courier-BoldOblique A 902 cobo____ + pcrr8a Courier A 902 com_____ + pcrro8a Courier-Oblique A 902 coo_____ + prtr Carta A 902 cr______ + pfari8a Formata-Italic A 902 fmi_____ + pfam8a Formata-Medium A 902 fmm_____ + pfami8a Formata-MediumItalic A 902 fmmi____ + pfar8a Formata-Regular A 902 fmrg____ + padb8a AGaramond-Bold A 902 gdb_____ + padbi8a AGaramond-BoldItalic A 902 gdbi____ + padri8a AGaramond-Italic A 902 gdi_____ + padr8a AGaramond-Regular A 902 gdrg____ + phvr8a Helvetica A 902 hv______ + phvb8a Helvetica-Bold A 902 hvb_____ + phvbo8a Helvetica-BoldOblique A 902 hvbo____ + phvr8an Helvetica-Narrow A 902 hvn_____ + phvb8an Helvetica-Narrow-Bold A 902 hvnb____ + phvbo8an Helvetica-Narrow-BoldOblique A 902 hvnbo___ + phvro8an Helvetica-Narrow-Oblique A 902 hvno____ + phvro8a Helvetica-Oblique A 902 hvo_____ + pkur8a Kaufmann A 902 kf______ + ploc8a Lithos-Black A 902 lobl____ + plor8a Lithos-Regular A 902 lorg____ + pncb8a NewCenturySchlbk-Bold A 902 ncb_____ + pncbi8a NewCenturySchlbk-BoldItalic A 902 ncbi____ + pncri8a NewCenturySchlbk-Italic A 902 nci_____ + pncr8a NewCenturySchlbk-Roman A 902 ncr_____ + ppar8a ParkAvenue A 902 pa______ + ppsr8a Parisian A 902 pn______ + pplb8a Palatino-Bold A 902 pob_____ + pplbi8a Palatino-BoldItalic A 902 pobi____ + pplri8a Palatino-Italic A 902 poi_____ + pplr8a Palatino-Roman A 902 por_____ + p_____ Poetica-SuppOrnaments A 902 pvor____ + psyr Symbol A 902 sy______ + ptmb8a Times-Bold A 902 tib_____ + ptmbi8a Times-BoldItalic A 902 tibi____ + ptmri8a Times-Italic A 902 tii_____ + ptmr8a Times-Roman A 902 tir_____ + ptjb8a Trajan-Bold A 902 tjb_____ + ptkb8a Tekton-Bold A 902 tkb_____ + ptkr8a Tekton A 902 tkrg____ + ppi027 WoodtypeOrnaments-Two A 902 woor2___ + pzcmi8a ZapfChancery-MediumItalic A 902 zcmi____ + pzdr ZapfDingbats A 902 zd______ + mp1rw8a PalaceScriptMT A 903 _p______ + pdjk8a Delta-Book A 903 djw_____ + pdjki8a Delta-BookItalic A 903 djwi____ + lenb8a EngraversLH-BoldFace A 903 ew______ + pfarl8a Formata-Outline A 903 fmou____ + pgsxd8a GillSans-ExtraBoldDisplay A 903 gnxbd___ + mbfrw8a BiffoMT A 903 ifscr___ + p_____ MonaLisa-Solid A 903 iysd____ + pjpr8a Juniper A 903 j_______ + p_____ LoType-Medium A 903 ljm_____ + p_____ LoType-MediumItalic A 903 ljmi____ + p_____ BerlinerGrotesk-Light A 903 otl_____ + prwb8ac Rockwell-BoldCondensed A 903 rkbc____ + prwr8ac Rockwell-Condensed A 903 rkc_____ + p_____ AGBook-Stencil A 903 tast____ + ms2bw8a ScriptMT-Bold A 903 tbscr___ + p_____ Cutout A 903 wu______ + ms1ri8a ScotchRomanMT-Italic A 903 ysi_____ + ms1r8a ScotchRomanMT A 903 ysrg____ + mm7r8a MaturaMT A 903 zz______ + mr2l8a CantoriaMT-Light A 904 eol_____ + p_____ Beesknees A 904 ikh_____ + p_____ LoType-Medium A 904 ljm_____ + pm1rw8a MonolineScriptMT A 904 on______ + p_____ Ozwald A 904 ozh_____ + mknr8a KinoMT A 904 qi______ + pb7r8a BernhardModern-Bold A 904 rdb_____ + puyr8a UniversityRoman A 904 ur______ + pbdp8ap Bodoni-PosterCompressed A 905 bdpsc___ + pctl8ac Cheltenham-LightCond A 905 chlc____ + pazl8ac AkzidenzGroteskBE-LightCn A 905 gflc____ + pgsb8aq GillSans-BoldExtraCondensed A 905 gnbxc___ + p_____ GaramondBE-Condensed A 905 gwc_____ + p_____ LoType-MediumCondensed A 905 ljmc____ + mrur8ac RunicMT-Condensed A 905 ric_____ + prwr8ac Rockwell-Condensed A 905 rkc_____ + p_____ Mezz-Regular A 906 vurg____ + p_____ Mezz-Black A 906 vuz_____ + p_____ CaflischScript-Bold A 906 vwb_____ + p_____ CaflischScript-Regular A 906 vwrg____ + p_____ Nueva-BoldExtendedItalic A 906 vxbei___ + p_____ Nueva-BoldExtended A 906 vxbv____ + p_____ Nueva-Italic A 906 vxi_____ + p_____ Nueva-Roman A 906 vxr_____ + pmyb8a Myriad-Bold A 906 wmb_____ + pmybi8a Myriad-BoldItalic A 906 wmbi____ + pmyri8a Myriad-Italic A 906 wmi_____ + pmyr8a Myriad-Roman A 906 wmr_____ + pmnb8ac Minion-BoldCondensed A 907 mobc____ + pmnbi8ac Minion-BoldCondensedItalic A 907 mobci___ + pmnr8ac Minion-Condensed A 907 moc_____ + pmnri8ac Minion-CondensedItalic A 907 moci____ + pvvx8ax Viva-BoldExtraExtended A 907 vabxe___ + pvvl8ac Viva-LightCondensed A 907 valc____ + pvvr8a Viva-Regular A 907 varg____ + p_____ Sanvito-Light A 907 vyl_____ + p_____ Sanvito-Roman A 907 vyr_____ + p_____ Penumbra-SemiboldFlare A 907 vzsfl___ + p_____ Penumbra-SemiboldSans A 907 vzssa___ + p_____ Penumbra-SemiboldSerif A 907 vzsse___ + ppc___ Poetica-ChanceryI A 908 pvch1___ + ppc___ Poetica-SuppLigatures A 908 pvlg____ + ppc___ Poetica-SuppOrnaments A 908 pvor____ + ppc___ Poetica-SuppSwashCapsI A 908 pvsw1___ + p_____ CaflischScript-Bold A 908 vwb_____ + p_____ CaflischScript-Regular A 908 vwrg____ + p_____ Sanvito-BoldDisplay A 908 vydb____ + p_____ Sanvito-Roman A 908 vyr_____ + p_____ Sanvito-Semibold A 908 vysb____ + pxpr8a ExPonto-Regular A 908 xprg____ + padri8a AGaramond-Italic A 912 gdi_____ + padr8a AGaramond-Regular A 912 gdrg____ + pads8a AGaramond-Semibold A 912 gdsb____ + padrc8a AGaramond-RegularSC A 912 gdsc____ + padrd8a AGaramond-Titling A 912 gdttl___ + pacri8a ACaslon-Italic A 913 awi_____ + pacrp ACaslon-Ornaments A 913 awor____ + pacr8a ACaslon-Regular A 913 awrg____ + pacs8a ACaslon-Semibold A 913 awsb____ + pacrc8a ACaslon-RegularSC A 913 awsc____ + pajrd8a AJenson-RegularDisplay A 914 jsds____ + pajri8a AJenson-Italic A 914 jsi_____ + pajr8a AJenson-Regular A 914 jsrg____ + pajs8a AJenson-Semibold A 914 jssb____ + pajrc8a AJenson-RegularSC A 914 jssc____ + p_____ Jimbo-Bold A 915 jpb_____ + pajsd8a AJenson-SemiboldDisplay A 915 jssp____ + pkpbd8ax Kepler-BoldExtendedDisplay A 915 k_bed___ + pkpsd8ac Kepler-SemiboldCondensedDisplay A 915 k_scd___ + p_____ Mezz-Bold A 915 vub_____ + p_____ Penumbra-BoldSerif A 915 vzbsr___ + p_____ Cronos-Display A 915 xodr____ + pxpr8a ExPonto-Regular A 915 xprg____ + p_____ Chaparral-Display A 915 xtdr____ + zpeurs EuroSans-Regular A 916 _1______ + zpeubs EuroSans-Bold A 916 _1b_____ + zpeubis EuroSans-BoldItalic A 916 _1bi____ + zpeuris EuroSans-Italic A 916 _1i_____ + zpeurt EuroMono-Regular A 916 _2______ + zpeubt EuroMono-Bold A 916 _2b_____ + zpeubit EuroMono-BoldItalic A 916 _2bi____ + zpeurit EuroMono-Italic A 916 _2i_____ + zpeur EuroSerif-Regular A 916 _3______ + zpeub EuroSerif-Bold A 916 _3b_____ + zpeubi EuroSerif-BoldItalic A 916 _3bi____ + zpeuri EuroSerif-Italic A 916 _3i_____ + pmsrw8a Mistral A 917 ms______ + ppc___ Poetica-ChanceryII A 917 pvch2___ + ppc___ Poetica-SuppSwashCapsII A 917 pvsw2___ + pprl8a PopplResidenz-Light A 917 pzl_____ + pprr8a PopplResidenz-Regular A 917 pzrg____ + psrrw8a SnellRoundhand-Script A 917 sn______ + mmebw8a MercuriusMT-BoldScript A 917 uzbs____ + pwhm8a WendyLP-Medium A 917 whm_____ + pbzrw8a Balzano A 917 zn______ + ppi028 ScienceTypeCustomPi-No1T ??? ________ + ppi029 ScienceTypeCustomPi-No2T ??? ________ + ppi030 ScienceTypeCustomPi-No3T ??? ________ + ppi031 ScienceTypeCustomPi-No4T ??? ________ + ppi032 ScienceTypeCustomPi-No5T ??? ________ + + +File: fontname.info, Node: Apple fonts, Next: Bitstream fonts, Prev: Adobe fonts, Up: Font name lists + +A.3 Apple fonts +=============== + +The `apple.map' file has abbreviations for Apple fonts. + + eecr8r AppleChancery + eger8r Geneva + ehtr8r HoeflerText + emcr8r Monaco + epi001 Zeal + eskr8r Skia + + +File: fontname.info, Node: Bitstream fonts, Next: DTC fonts, Prev: Apple fonts, Up: Font name lists + +A.4 Bitstream fonts +=================== + +The `bitstrea.map' file has abbreviations for Bitstream fonts. + + bhvl8a Swiss721BT-Light BT 0001 swz721l + bhvli8a Swiss721BT-LightItalic BT 0002 swz721li + bhvr8a Swiss721BT-Roman BT 0003 swz721n + bhvri8a Swiss721BT-Italic BT 0004 swz721i + bhvb8a Swiss721BT-Bold BT 0005 swz721b + bhvbi8a Swiss721BT-BoldItalic BT 0006 swz721bi + bhvc8a Swiss721BT-Black BT 0007 swz721k + bhvci8a Swiss721BT-BlackItalic BT 0008 swz721ki + bhvr8ac Swiss721BT-RomanCondensed BT 0009 swz721c + bhvb8ac Swiss721BT-BoldCondensed BT 0010 swz721bc + btmr8a Dutch801BT-Roman BT 0011 dut801n + btmri8a Dutch801BT-Italic BT 0012 dut801i + btmb8a Dutch801BT-Bold BT 0013 dut801b + btmbi8a Dutch801BT-BoldItalic BT 0014 dut801bi + bopr8a ZapfHumanist601BT-Roman BT 0015 zhum601n + bopri8a ZapfHumanist601BT-Italic BT 0016 zhum601i + bopb8a ZapfHumanist601BT-Bold BT 0017 zhum601b + bopbi8a ZapfHumanist601BT-BoldItalic BT 0018 zhu601bi + bsvl8a SouvenirITCbyBT-Light BT 0019 souvnrl + bsvli8a SouvenirITCbyBT-LightItalic BT 0020 souvnrli + bsvd8a SouvenirITCbyBT-Demi BT 0021 souvnrd + bsvdi8a SouvenirITCbyBT-DemiItalic BT 0022 souvnrdi + bplr8a ZapfCalligraphic801BT-Roman BT 0023 zcal801n + bplri8a ZapfCalligraphic801BT-Italic BT 0024 zcal801i + bplb8a ZapfCalligraphic801BT-Bold BT 0025 zcal801b + bplbi8a ZapfCalligraphic801BT-BoldItal BT 0026 zca801bi + bexr8a News702BT-Roman BT 0027 news702n + bexri8a News702BT-Italic BT 0028 news702i + bexb8a News702BT-Bold BT 0029 news702b + bexbi8a News702BT-BoldItalic BT 0030 new702bi + bbdk8a BodoniBT-Book BT 0035 bodonin + bbdki8a BodoniBT-BookItalic BT 0036 bodonini + bbdb8a BodoniBT-Bold BT 0037 bodonib + bbdbi8a BodoniBT-BoldItalic BT 0038 bodonibi + bcnr8ax CenturyExpandedBT-Roman BT 0039 centexn + bcnri8ax CenturyExpandedBT-Italic BT 0040 centexi + bcnb8ax CenturyExpandedBT-Bold BT 0041 centexb + bcnbi8ax CenturyExpandedBT-BoldItalic BT 0042 centexbi + bg3r8a AmericanGaramondBT-Roman BT 0043 amrgaran + bg3ri8a AmericanGaramondBT-Italic BT 0044 amrgarai + bg3b8a AmericanGaramondBT-Bold BT 0045 amrgarab + bg3bi8a AmericanGaramondBT-BoldItalic BT 0046 amrgarbi + bngr8a NewsGothicBT-Roman BT 0047 newsgotn + bngri8a NewsGothicBT-Italic BT 0048 newsgot + bngb8a NewsGothicBT-Bold BT 0049 newsgotb + bngbi8a NewsGothicBT-BoldItalic BT 0050 newgotbi + bmlr8a ZapfElliptical711BT-Roman BT 0051 zelp711n + bmlri8a ZapfElliptical711BT-Italic BT 0052 zelp711i + bmlb8a ZapfElliptical711BT-Bold BT 0053 zelp711b + bmlbi8a ZapfElliptical711BT-BoldItalic BT 0054 zel711bi + bbdr8a BodoniBT-Roman BT 0055 bodoni + bbdri8a BodoniBT-Italic BT 0056 bodonii + bhbr8a HoboBT-Regular BT 0057 hobon + bonr8a News705BT-RomanB BT 0058 news705n + bonri8a News705BT-ItalicB BT 0059 news705i + bonb8a News705BT-BoldB BT 0060 news705b + b_____ BusoramaITCbyBT-Medium BT 0062 busoramm + bglr8a GalliardITCbyBT-Roman BT 0067 galirdn + bglri8a GalliardITCbyBT-Italic BT 0068 galirdi + bglb8a GalliardITCbyBT-Bold BT 0069 galirdb + bglbi8a GalliardITCbyBT-BoldItalic BT 0070 galirdbi + bbkl8a BookmanITCbyBT-Light BT 0075 bookmnl + bbkli8a BookmanITCbyBT-LightItalic BT 0076 bookmnli + bbkd8a BookmanITCbyBT-Demi BT 0079 bookmnd + bbkdi8a BookmanITCbyBT-DemiItalic BT 0080 bookmndi + bcsr8a CenturySchoolbookBT-Roman BT 0083 censbkn + bcsri8a CenturySchoolbookBT-Italic BT 0084 censbki + bcsb8a CenturySchoolbookBT-Bold BT 0085 censbkb + bcsbi8a CenturySchoolbookBT-BoldItalic BT 0086 censbkbi + bkrr8a KorinnaITCbyBT-Regular BT 0087 korinan + bkrri8a KorinnaITCbyBT-KursivRegular BT 0088 korinani + bkrb8a KorinnaITCbyBT-Bold BT 0089 korinab + bkrbi8a KorinnaITCbyBT-KursivBold BT 0090 korinabi + bhva8a Swiss721BT-Thin BT 0100 swz721t + bhvai8a Swiss721BT-ThinItalic BT 0101 swz721ti + bhvh8a Swiss721BT-Heavy BT 0102 swz721h + bhvhi8a Swiss721BT-HeavyItalic BT 0103 swz721hi + bhvh8aq Swiss911BT-ExtraCompressed BT 0105 swz911xc + bhvh8au Swiss911BT-UltraCompressed BT 0106 swz911uc + bgor8a GoudyOldStyleBT-Roman BT 0107 goudyosn + bgori8a GoudyOldStyleBT-Italic BT 0108 goudyosi + bgob8a GoudyOldStyleBT-Bold BT 0109 goudyosb + bgobi8a GoudyOldStyleBT-BoldItalic BT 0110 goudosbi + bgox8a GoudyOldStyleBT-ExtraBold BT 0111 goudosxb + bpnr8a Aldine721BT-Roman BT 0112 ald721n + bpnri8a Aldine721BT-Italic BT 0113 ald721i + bpnb8a Aldine721BT-Bold BT 0114 ald721b + bpnbi8a Aldine721BT-BoldItalic BT 0115 ald721bi + bjnr8a KisBT-Roman BT 0116 kisn + bjnri8a KisBT-Italic BT 0117 kisi + bc5r8a Caslon540BT-Roman BT 0118 casl540n + bc5ri8a Caslon540BT-Italic BT 0119 casl540i + bg1r8a GothicNo13BT-Regular BT 0120 gothic13 + bbol8a BalloonBT-Light BT 0121 balloonl + bwnr8a WindsorBT-Roman BT 0122 wndsrn + bbgk8a BenguiatITCbyBT-Book BT 0123 benguian + bbgki8a BenguiatITCbyBT-BookItalic BT 0124 benguini + bbgb8a BenguiatITCbyBT-Bold BT 0127 benguiab + bbgbi8a BenguiatITCbyBT-BoldItalic BT 0128 benguibi + bbdp8a PosterBodoniBT-Roman BT 0129 pstrbodn + bbdpi8a PosterBodoniBT-Italic BT 0130 pstrbodi + bbwr8a BroadwayBT-Regular BT 0131 brdwayn + bngl8a NewsGothicBT-Light BT 0132 newsgotl + bngli8a NewsGothicBT-LightItalic BT 0133 newgotli + bopd8a ZapfHumanist601BT-Demi BT 0134 zhum601d + bopdi8a ZapfHumanist601BT-DemiItalic BT 0135 zhu601di + bopu8a ZapfHumanist601BT-Ultra BT 0136 zhum601u + bopui8a ZapfHumanist601BT-UltraItalic BT 0137 zhu601ui + bful8a FuturaBT-Light BT 0138 futural + bfuli8a FuturaBT-LightItalic BT 0139 futurali + bfuk8a FuturaBT-Book BT 0140 futuran + bfuki8a FuturaBT-BookItalic BT 0141 futurani + bfum8a FuturaBT-Medium BT 0142 futuram + bfumi8a FuturaBT-MediumItalic BT 0143 futurami + bfub8a FuturaBT-Bold BT 0144 futurab + bfubi8a FuturaBT-BoldItalic BT 0145 futurabi + bfuh8a FuturaBT-Heavy BT 0146 futurah + bfuhi8a FuturaBT-HeavyItalic BT 0147 futurahi + bfux8a FuturaBT-ExtraBlack BT 0148 futuraxk + bfuxi8a FuturaBT-ExtraBlackItalic BT 0149 futurxki + bsnk8a Geometric212BT-Book BT 0150 geo212n + bsnh8a Geometric212BT-Heavy BT 0151 geo212h + bagk8a AvantGardeITCbyBT-Book BT 0154 avgardn + bagko8a AvantGardeITCbyBT-BookOblique BT 0155 avgardni + bagm8a AvantGardeITCbyBT-Medium BT 0156 avgardm + bagmo8a AvantGardeITCbyBT-MediumOblique BT 0157 avgardmi + bagd8a AvantGardeITCbyBT-Demi BT 0158 avgardd + bagdo8a AvantGardeITCbyBT-DemiOblique BT 0159 avgarddo + bkbk8a KabelITCbyBT-Book BT 0162 kabeln + bkbm8a KabelITCbyBT-Medium BT 0163 kabelm + bkbd8a KabelITCbyBT-Demi BT 0164 kabeld + bkbb8a KabelITCbyBT-Bold BT 0165 kabelb + bkbu8a KabelITCbyBT-Ultra BT 0166 kabelu + bs4r8a ShotgunBT-Regular BT 0167 shotgunn + bhvl8ac Swiss721BT-LightCondensed BT 0169 swz721lc + bhvli8ac Swiss721BT-LightCondensedItalic BT 0170 sw721lci + bhvri8ac Swiss721BT-ItalicCondensed BT 0171 swz721ci + bhvbi8ac Swiss721BT-BoldCondensedItalic BT 0172 sw721bci + bhvc8ac Swiss721BT-BlackCondensed BT 0173 swz721kc + bhvci8ac Swiss721BT-BlackCondensedItalic BT 0174 sw721kci + bhvbl8a Swiss721BT-BoldOutline BT 0175 swz721bo + bunl8a ZurichBT-Light BT 0176 zurchl + bunli8a ZurichBT-LightItalic BT 0177 zurchli + bunr8a ZurichBT-Roman BT 0178 zurchn + bunri8a ZurichBT-Italic BT 0179 zurchi + bunb8a ZurichBT-Bold BT 0180 zurchb + bunbi8a ZurichBT-BoldItalic BT 0181 zurchbi + bunc8a ZurichBT-Black BT 0182 zurchk + bunci8a ZurichBT-BlackItalic BT 0183 zurchki + b____ BoltBoldITCbyBT-Regular BT 0184 boltb + bslr8a StencilBT-Regular BT 0191 stenciln + batm8a AmerTypewriterITCbyBT-Medium BT 0193 amrtypen + batb8a AmerTypewriterITCbyBT-Bold BT 0194 amrtypeb + bd0b8a DavidaBoldBT-Regular BT 0195 davidab + bs5r8a SnellBT-Regular BT 0196 snelln + bs5b8a SnellBT-Bold BT 0197 snellb + bs5c8a SnellBT-Black BT 0198 snellk + bburw8a BrushScriptBT-Regular BT 0199 brushscn + bful8ac FuturaBT-LightCondensed BT 0200 futuralc + bfum8ac FuturaBT-MediumCondensed BT 0201 futuramc + bfub8ac FuturaBT-BoldCondensed BT 0202 futurabc + bfubi8ac FuturaBT-BoldCondensedItalic BT 0203 futurbci + bfux8ac FuturaBT-ExtraBlackCondensed BT 0204 futurxkc + bfuxi8ac FuturaBT-ExtraBlackCondItalic BT 0205 futuxkci + bfuc8a FuturaBlackBT-Regular BT 0206 futurak + botr8a Ribbon131BT-Regular BT 0207 ribn131n + botb8a Ribbon131BT-Bold BT 0208 ribn131b + bi1r8a ImpressBT-Regular BT 0209 impressn + ba7r8a AmericanTextBT-Regular BT 0211 amrtextn + benrf8a EngraversOldEnglishBT-Regular BT 0212 engrolen + bo2r8a OrbitBbyBT-Regular BT 0213 orbitbn + bp4r8a PioneerITCbyBT-Regular BT 0214 pioneern + bv0r8a VinetaBT-Regular BT 0215 vinetan + byml8a StymieBT-Light BT 0216 stymiel + bymm8a StymieBT-Medium BT 0217 stymiem + bymb8a StymieBT-Bold BT 0218 stymieb + bymx8a StymieBT-ExtraBold BT 0219 stymiexb + btfl8a TiffanyITCbyBT-Light BT 0220 tifanyl + btfli8a TiffanyITCbyBT-LightItalic BT 0221 tifanyli + btfd8a TiffanyITCbyBT-Demi BT 0224 tifanyd + btfdi8a TiffanyITCbyBT-DemiItalic BT 0225 tifanydi + btfh8a TiffanyITCbyBT-Heavy BT 0226 tifanyh + btfhi8a TiffanyITCbyBT-HeavyItalic BT 0227 tifanyhi + bcdb8ac ClarendonBT-BoldCondensed BT 0228 clrndnbc + bcbcd8a CooperBT-BlackHeadline BT 0231 coopbla + bcbcid8a CooperBT-BlackItalicHeadline BT 0232 coopblia + bs4rl8a ShotgunBlanksBT-Regular BT 0234 shotgunk + bnar8a Dutch823BT-RomanB BT 0235 dut823n + bnari8a Dutch823BT-ItalicB BT 0236 dut823i + bnab8a Dutch823BT-BoldB BT 0237 dut823b + berl8a ErasITCbyBT-Light BT 0238 erasl + berk8a ErasITCbyBT-Book BT 0239 erasn + berm8a ErasITCbyBT-Medium BT 0240 erasm + berd8a ErasITCbyBT-Demi BT 0241 erasd + berb8a ErasITCbyBT-Bold BT 0242 erasb + beru8a ErasITCbyBT-Ultra BT 0243 erasu + besr8a Square721BT-Roman BT 0246 sqr721n + besb8a Square721BT-Bold BT 0247 sqr721b + besr8ac Square721BT-RomanCondensed BT 0248 sqr721c + besb8ac Square721BT-BoldCondensed BT 0249 sqr721bc + besr8ax Square721BT-RomanExtended BT 0250 sqr721e + besb8ax Square721BT-BoldExtended BT 0251 sqr721be + bsfa8a SerifaBT-Thin BT 0252 serifat + bsfai8a SerifaBT-ThinItalic BT 0253 serifati + bsfl8a SerifaBT-Light BT 0254 serifal + bsfli8a SerifaBT-LightItalic BT 0255 serifali + bsfr8a SerifaBT-Roman BT 0256 serifan + bsfri8a SerifaBT-Italic BT 0257 serifai + bsfb8a SerifaBT-Bold BT 0258 serifab + bsfc8a SerifaBT-Black BT 0259 serifak + bunr8ax ZurichBT-RomanExtended BT 0260 zurche + bunb8ax ZurichBT-BoldExtended BT 0261 zurchbe + bunc8ax ZurichBT-BlackExtended BT 0262 zurchke + bunu8ax ZurichBT-UltraBlackExtended BT 0263 zurchuke + ba9r8a Humanist970BT-RomanC BT 0264 hum970n + ba9b8a Humanist970BT-BoldC BT 0265 hum970b + bndr8a Transitional511BT-Roman BT 0266 tran511n + bndri8a Transitional511BT-Italic BT 0267 tran511i + bndb8a Transitional511BT-Bold BT 0270 tran511b + bndbi8a Transitional511BT-BoldItalic BT 0271 tra511bi + bsbr8a ClassicalGaramondBT-Roman BT 0277 clsgaran + bsbri8a ClassicalGaramondBT-Italic BT 0278 clsgarai + bsbb8a ClassicalGaramondBT-Bold BT 0279 clsgarab + bcarf8a CaslonOldFaceBT-Roman BT 0280 casolfcn + bcarif8a CaslonOldFaceBT-Italic BT 0281 casolfci + bcdl8a ClarendonBT-Light BT 0282 clrndnl + bcdr8a ClarendonBT-Roman BT 0283 clrndnn + bcdb8a ClarendonBT-Bold BT 0284 clrndnb + bcur8a CenturyOldstyleBT-Roman BT 0285 cenolstn + bcuri8a CenturyOldstyleBT-Italic BT 0286 cenolsti + bcub8a CenturyOldstyleBT-Bold BT 0287 cenolstb + bgsl8a Humanist521BT-Light BT 0288 hum521l + bgsli8a Humanist521BT-LightItalic BT 0289 hum521li + bgsr8a Humanist521BT-Roman BT 0290 hum521n + bgsri8a Humanist521BT-Italic BT 0291 hum521i + bgsb8a Humanist521BT-Bold BT 0292 hum521b + bgsbi8a Humanist521BT-BoldItalic BT 0293 hum521bi + bgsx8a Humanist521BT-ExtraBold BT 0294 hum521xb + bgsu8a Humanist521BT-UltraBold BT 0295 hum521ub + bunl8ac ZurichBT-LightCondensed BT 0296 zurchlc + bunli8ac ZurichBT-LightCondensedItalic BT 0297 zurchlci + bunr8ac ZurichBT-RomanCondensed BT 0298 zurch + bunri8ac ZurichBT-ItalicCondensed BT 0299 zurchci + bunb8ac ZurichBT-BoldCondensed BT 0300 zurchbc + bunbi8ac ZurichBT-BoldCondensedItalic BT 0301 zurchbci + bbbr8a Aldine401BT-RomanA BT 0302 ald401n + bbbri8a Aldine401BT-ItalicA BT 0303 ald401i + bbbb8a Aldine401BT-BoldA BT 0304 ald401b + bbbbi8a Aldine401BT-BoldItalicA BT 0305 ald401bi + bmpl8a GeometricSlab703BT-Light BT 0306 geo703l + bmpli8a GeometricSlab703BT-LightItalic BT 0307 geo703li + bmpm8a GeometricSlab703BT-Medium BT 0308 geo703m + bmpmi8a GeometricSlab703BT-MediumItalic BT 0309 geo703mi + bmpb8a GeometricSlab703BT-Bold BT 0310 geo703b + bmpbi8a GeometricSlab703BT-BoldItalic BT 0311 geo703bi + bmpx8a GeometricSlab703BT-XtraBold BT 0312 geo703xb + bmpxi8a GeometricSlab703BT-XtraBoldItal BT 0313 ge703xbi + buyr8a UniversityRomanBT-Regular BT 0316 univern + buyb8a UniversityRomanBT-Bold BT 0317 univernb + bior8a News701BT-RomanA BT 0318 news701n + biori8a News701BT-ItalicA BT 0319 news701i + biob8a News701BT-BoldA BT 0320 news701b + befr8a HumanistSlabserif712BT-Roman BT 0321 hums712n + befri8a HumanistSlabserif712BT-Italic BT 0322 hums712i + befb8a HumanistSlabserif712BT-Bold BT 0323 hums712b + befc8a HumanistSlabserif712BT-Black BT 0324 hums712k + bwnl8ac WindsorBT-LightCondensed BT 0326 wndsrlc + bwnr8ax WindsorBT-Elongated BT 0327 wndsre + bubr8a BauerBodoniBT-Roman BT 0328 baubodn + bubri8a BauerBodoniBT-Italic BT 0329 baubodi + bubb8a BauerBodoniBT-Bold BT 0330 baubodb + bubbi8a BauerBodoniBT-BoldItalic BT 0331 baubodbi + bubc8a BauerBodoniBT-Black BT 0332 baubodk + bubci8a BauerBodoniBT-BlackItalic BT 0333 baubodki + bubb8ac BauerBodoniBT-BoldCondensed BT 0334 baubodbc + bubc8ac BauerBodoniBT-BlackCondensed BT 0335 baubodkc + biir8a Dutch766BT-RomanA BT 0338 dut766n + biiri8a Dutch766BT-ItalicA BT 0339 dut766i + biib8a Dutch766BT-BoldA BT 0340 dut766b + bcahf8a CaslonOldFaceBT-Heavy BT 0342 casolfch + bgmk8a GaramondITCbyBT-Book BT 0345 garamdn + bgmki8a GaramondITCbyBT-BookItalic BT 0346 garamdni + bgmb8a GaramondITCbyBT-Bold BT 0347 garamdb + bgmbi8a GaramondITCbyBT-BoldItalic BT 0348 garamdbi + bcdc8a ClarendonBT-Black BT 0351 clrndnk + bi3r8a ImperialBT-Roman BT 0352 imperln + bi3ri8a ImperialBT-Italic BT 0353 imperli + bi3b8a ImperialBT-Bold BT 0354 imperlb + b_____ BellCentennialBT-NameAndNumber BT 0355 belcenam + b_____ BellCentennialBT-Address BT 0356 belceadr + b_____ BellCentennialBT-SubCaption BT 0357 belcesub + b_____ BellCentennialBT-BoldListing BT 0358 belcelis + bbers8a BellGothicBT-Roman BT 0359 belgothn + bbebs8a BellGothicBT-Bold BT 0360 belgothb + bbecs8a BellGothicBT-Black BT 0361 belgothk + bpar8a ParkAvenueBT-Regular BT 0362 parkaven + bn7r8a News706BT-RomanC BT 0363 news706n + bn7ri8a News706BT-ItalicC BT 0364 news706i + bn7b8a News706BT-BoldC BT 0365 news706b + blbj8a LubalinGraphITCbyBT-XtraLight BT 0366 lubgrxl + blbk8a LubalinGraphITCbyBT-Book BT 0367 lubgrhn + blbm8a LubalinGraphITCbyBT-Medium BT 0368 lubgrhm + blbd8a LubalinGraphITCbyBT-Demi BT 0369 lubgrhd + blbb8a LubalinGraphITCbyBT-Bold BT 0370 lubgrhb + bhvl8ax Swiss721BT-LightExtended BT 0371 swz721le + bhvr8ax Swiss721BT-RomanExtended BT 0372 swz721e + bhvb8ax Swiss721BT-BoldExtended BT 0373 swz721be + bhvc8ax Swiss721BT-BlackExtended BT 0374 swz721ke + bngr8ac NewsGothicBT-RomanCondensed BT 0375 newsgotc + bngri8ac NewsGothicBT-ItalicCondensed BT 0376 newgotci + bngb8ac NewsGothicBT-BoldCondensed BT 0377 newgotbc + bngbi8ac NewsGothicBT-BoldCondItalic BT 0378 newgtbci + bctk8a CheltenhamITCbyBT-Book BT 0381 ichlthmn + bctki8a CheltenhamITCbyBT-BookItalic BT 0382 ichlthni + bctb8a CheltenhamITCbyBT-Bold BT 0383 ichlthmb + bctbi8a CheltenhamITCbyBT-BoldItalic BT 0384 ichlthbi + baol8a Incised901BT-Light BT 0387 inc901l + baor8a Incised901BT-Roman BT 0388 inc901n + baori8a Incised901BT-Italic BT 0389 inc901i + baob8a Incised901BT-Bold BT 0390 inc901b + baoc8a Incised901BT-Black BT 0391 inc901k + boar OCRAbyBT-Regular BT 0395 ocran + bbhl8a BauhausITCbyBT-Light BT 0405 bauhausl + bbhm8a BauhausITCbyBT-Medium BT 0406 bauhausm + bbhb8a BauhausITCbyBT-Bold BT 0408 bauhausb + bbhh8a BauhausITCbyBT-Heavy BT 0409 bauhaush + bcyl8a SquareSlabserif711BT-Light BT 0410 sqrs711l + bcym8a SquareSlabserif711BT-Medium BT 0411 sqrs711m + bcyb8a SquareSlabserif711BT-Bold BT 0412 sqrs711b + bper8a Prestige12PitchBT-Roman BT 0413 presti12 + blgr8a LetterGothic12PitchBT-Roman BT 0414 letgot12 + bcdh8a ClarendonBT-Heavy BT 0416 clrndnh + bccr8a Freehand471BT-Regular BT 0418 frhnd471 + bcrr8a Courier10PitchBT-Roman BT 0419 cur10ptn + bcprs8a CopperplateGothicBT-Roman BT 0420 copgothn + bcpbs8a CopperplateGothicBT-Bold BT 0421 copgothb + bcphs8a CopperplateGothicBT-Heavy BT 0422 copgothh + bcprs8ac CopperplateGothicBT-RomanCond BT 0423 copgothc + bcpbs8ac CopperplateGothicBT-BoldCond BT 0424 copgotbc + bfqr8a FrizQuadrataITCbyBT-Roman BT 0428 frzquadn + bfqb8a FrizQuadrataITCbyBT-Bold BT 0429 frzquadb + bqrl8a QuorumITCbyBT-Light BT 0438 quoruml + bqrm8a QuorumITCbyBT-Medium BT 0440 quorumm + bqrc8a QuorumITCbyBT-Black BT 0442 quorumk + bcab8a CaslonBT-Bold BT 0443 caslonb + bcabi8a CaslonBT-BoldItalic BT 0444 caslonbi + bzcm8a ZapfChanceryITCbyBT-Medium BT 0447 zafcham + bzcmi8a ZapfChanceryITCbyBT-MediumItal BT 0448 zafchami + bzcd8a ZapfChanceryITCbyBT-Demi BT 0449 zafchad + bzcb8a ZapfChanceryITCbyBT-Bold BT 0450 zafchab + bgmk8ac GaramondITCbyBT-BookCondensed BT 0453 garamdnc + bgmki8ac GaramondITCbyBT-BookCondItalic BT 0454 garamnci + bgmb8ac GaramondITCbyBT-BoldCondensed BT 0455 garamdbc + bgmbi8ac GaramondITCbyBT-BoldCondItalic BT 0456 garambci + bugk8a BenguiatGothicITCbyBT-Book BT 0459 bengothn + bugki8a BenguiatGothicITCbyBT-BookItal BT 0460 bengotni + bugb8a BenguiatGothicITCbyBT-Bold BT 0463 bengothb + bugbi8a BenguiatGothicITCbyBT-BoldItal BT 0464 bengotbi + baob8ac Incised901BT-BoldCondensed BT 0467 inc901bc + baop8a Incised901BT-Compact BT 0468 inc901c + baoh8ax Incised901BT-Nord BT 0469 in901xk + baohi8ax Incised901BT-NordItalic BT 0470 in901xki + brwl8a GeometricSlab712BT-LightA BT 0483 geo712l + brwli8a GeometricSlab712BT-LightItalicA BT 0484 geo712li + brwm8a GeometricSlab712BT-MediumA BT 0485 geo712m + brwmi8a GeometricSlab712BT-MediumItalA BT 0486 geo712mi + brwb8a GeometricSlab712BT-BoldA BT 0487 geo712b + brwx8a GeometricSlab712BT-ExtraBoldA BT 0488 geo712xb + bmdr8a Latin725BT-Roman BT 0489 lat725n + bmdri8a Latin725BT-Italic BT 0490 lat725i + bmdm8a Latin725BT-Medium BT 0491 lat725m + bmdmi8a Latin725BT-MediumItalic BT 0492 lat725mi + bmdb8a Latin725BT-Bold BT 0493 lat725b + bmdbi8a Latin725BT-BoldItalic BT 0494 lat725bi + bgsr8ac Humanist521BT-RomanCondensed BT 0495 hum521c + bgsb8ac Humanist521BT-BoldCondensed BT 0496 hum521bc + bgsx8ac Humanist521BT-XtraBoldCondensed BT 0497 hu521xbc + bamr8a AmericanaBT-Roman BT 0498 amrcanan + bamri8a AmericanaBT-Italic BT 0499 amrcanai + bamb8a AmericanaBT-Bold BT 0500 amrcanab + bamx8a AmericanaBT-ExtraBold BT 0501 amrcanxb + bamx8ac AmericanaBT-ExtraBoldCondensed BT 0502 amrcaxbc + bsnk8ac Geometric212BT-BookCondensed BT 0503 geo212nc + bsnh8ac Geometric212BT-HeavyCondensed BT 0504 geo212hc + blir8ac LatinExtraCondensedBT-Regular BT 0507 latinxc + bctbd8a CheltenhamBT-BoldHeadline BT 0508 chltboa + bctbdi8a CheltenhamBT-BoldItalicHeadline BT 0509 chltboia + ba6r8a AmeliaBT-Regular BT 0510 amelian + bb8c8a BlippoBT-Black BT 0511 blippok + boxr8a OnyxBT-Regular BT 0519 onyxn + bm2l8a Geometric415BT-LiteA BT 0520 geo415l + bm2li8a Geometric415BT-LiteItalicA BT 0521 geo415li + bm2m8a Geometric415BT-MediumA BT 0522 geo415m + bm2mi8a Geometric415BT-MediumItalicA BT 0523 geo415mi + bm2c8a Geometric415BT-BlackA BT 0524 geo415k + bm2ci8a Geometric415BT-BlackItalicA BT 0525 geo415ki + blgri8a LetterGothic12PitchBT-Italic BT 0532 legot12i + blgb8a LetterGothic12PitchBT-Bold BT 0533 legot12b + bmhr8a MachineITCbyBT-Regular BT 0534 machinen + bhvc8a2 Swiss721BT-BlackNo2 BT 0540 swz721k2 + bazb8a Gothic725BT-BoldA BT 0541 goth725b + ba4r8a AlternateGothicNo2BT-Regular BT 0542 altgot2n + blgbi8a LetterGothic12PitchBT-BoldItal BT 0543 lego12bi + blbjo8a LubalinGraphITCbyBT-XtraLightOb BT 0544 lubgrxlo + blbko8a LubalinGraphITCbyBT-BookOblique BT 0545 lubgrhno + blbmo8a LubalinGraphITCbyBT-MediumObl BT 0546 lubgrhmo + blbdo8a LubalinGraphITCbyBT-DemiOblique BT 0547 lubgrhdo + blbbo8a LubalinGraphITCbyBT-BoldOblique BT 0548 lubgrhbo + btmx8a Dutch801BT-ExtraBold BT 0549 dut801xb + b_____ SymbolITCbyBT-Bold BT 0554 symbolb + b_____ SymbolITCbyBT-BoldItalic BT 0555 symbolbi + b_____ Century731BT-RomanA BT 0558 cen731n + b_____ Century731BT-ItalicA BT 0559 cen731i + b_____ Century731BT-BoldA BT 0560 cen731b + b_____ Century731BT-BoldItalicA BT 0561 cen731bi + bhir8a Swiss921BT-RegularA BT 0562 swz921n + bhvcl8a Swiss721BT-BlackOutline BT 0563 swz721ko + bcsb8ac CenturySchoolbookBT-BoldCond BT 0574 censbkbc + bcbl8a CooperBT-Light BT 0575 cooperl + bcbli8a CooperBT-LightItalic BT 0576 cooperli + bcbm8a CooperBT-Medium BT 0577 cooperm + bcbmi8a CooperBT-MediumItalic BT 0578 coopermi + bcbb8a CooperBT-Bold BT 0579 cooperb + bcbbi8a CooperBT-BoldItalic BT 0580 cooperbi + bcarl8a CaslonOpenfaceBT-Regular BT 0581 casopfan + bcrri8a Courier10PitchBT-Italic BT 0582 cur10pti + bcrb8a Courier10PitchBT-Bold BT 0583 cur10ptb + benrs8a EngraversGothicBT-Regular BT 0586 engrgotn + benr8a EngraversRomanBT-Regular BT 0587 engrvrn + be0r8a EmbassyBT-Regular BT 0588 embassyn + bkgl8a BankGothicBT-Light BT 0589 bnkgothl + bkgm8a BankGothicBT-Medium BT 0590 bnkgothm + bf0r8a FlemishScriptBT-Regular BT 0591 flemscrn + bp5r8a PiranesiItalicBT-Regular BT 0592 piranesi + bser8a ShelleyAndanteBT-Regular BT 0593 shlyandn + bserd8a ShelleyAllegroBT-Regular BT 0594 shlyalln + bserw8a ShelleyVolanteBT-Regular BT 0595 shlyvoln + bhvrt8a Monospace821BT-Roman BT 0596 mono821n + bhvrit8a Monospace821BT-Italic BT 0597 mono821i + bhvbt8a Monospace821BT-Bold BT 0598 mono821b + bhvbit8a Monospace821BT-BoldItalic BT 0599 mon821bi + bcsrt8a CenturySchoolbookBT-Monospace BT 0600 censbkmn + bdcr8a DomCasualBT-Regular BT 0604 domcasn + bpfr8a Decorated035BT-Regular BT 0605 deco035n + bt1r8a ThunderbirdBT-Regular BT 0606 thundrbn + bb7r8a BernhardModernBT-Roman BT 0607 bnhrdmon + boir8a FormalScript421BT-Regular BT 0609 frms421n + bmsr8a Staccato222BT-Regular BT 0610 stac222n + bcrbi8a Courier10PitchBT-BoldItalic BT 0611 cur10pbi + bperi8a Prestige12PitchBT-Italic BT 0613 prest12i + bpeb8a Prestige12PitchBT-Bold BT 0614 prest12b + bpebi8a Prestige12PitchBT-BoldItalic BT 0615 pres12bi + bctr8a CheltenhamBT-Roman BT 0620 chlthmn + bctri8a CheltenhamBT-Italic BT 0621 chlthmi + bctb8a CheltenhamBT-Bold BT 0622 chlthmb + bctbi8a CheltenhamBT-BoldItalic BT 0623 chlthmbi + brmli8a CarminaBT-LightItalic BT 0624 carminli + bg0r8a GandoBT-Regular BT 0625 gandon + bpgl8a Exotic350BT-Light BT 0626 exot350l + bpgd8a Exotic350BT-DemiBold BT 0627 exo350db + bpgb8a Exotic350BT-Bold BT 0628 exot350b + bcbc8a CooperBT-Black BT 0630 coopbln + bcbci8a CooperBT-BlackItalic BT 0631 coopbli + bchb8a CharterBT-Bold BT 0632 chartrb + bchbi8a CharterBT-BoldItalic BT 0633 chartrbi + buhh8a CushingITCbyBT-Heavy BT 0641 cushngh + buhhi8a CushingITCbyBT-HeavyItalic BT 0642 cushnghi + beor8a AmerigoBT-RomanA BT 0643 amrigon + beori8a AmerigoBT-ItalicA BT 0644 amrigoi + beob8a AmerigoBT-BoldA BT 0645 amrigob + bobr OCRB10PitchBT-Regular BT 0646 ocrb10n + bchr8a CharterBT-Roman BT 0648 chartrn + bchri8a CharterBT-Italic BT 0649 chartri + bzgm8a Geometric706BT-MediumB BT 0660 geo706m + bzgc8a Geometric706BT-BlackB BT 0661 geo706k + bzgb8ac Geometric706BT-BoldCondensedB BT 0662 geo706bc + bzgc8ac Geometric706BT-BlackCondensedB BT 0663 geo706kc + bg6r8a GorillaITCbyBT-Regular BT 0664 gorillan + brml8a CarminaBT-Light BT 0667 carminal + brmc8a CarminaBT-Black BT 0668 carminak + bfgk8a FranklinGothicITCbyBT-Book BT 0670 frkgotn + bfgki8a FranklinGothicITCbyBT-BookItal BT 0671 frkgotni + bfgd8a FranklinGothicITCbyBT-Demi BT 0674 frkgotd + bfgdi8a FranklinGothicITCbyBT-DemiItal BT 0675 frkgotdi + bfgh8a FranklinGothicITCbyBT-Heavy BT 0676 frkgoth + bfghi8a FranklinGothicITCbyBT-HeavyItal BT 0677 frkgothi + b_____ GrouchITCbyBT-Regular BT 0678 grouchn + bymli8a StymieBT-LightItalic BT 0679 stymieli + bfnr8a FeniceITCbyBT-Regular BT 0682 fenicen + bfnri8a FeniceITCbyBT-RegularItalic BT 0683 feniceni + bfnb8a FeniceITCbyBT-Bold BT 0684 feniceb + bfnbi8a FeniceITCbyBT-BoldItalic BT 0685 fenicebi + b_____ GrizzlyITCbyBT-Regular BT 0688 grizzlyn + bymmi8a StymieBT-MediumItalic BT 0689 stymiemi + bl2r8a LibraBT-Regular BT 0690 libran + b_____ Pica10PitchBT-Roman BT 0691 pica10n + bymbi8a StymieBT-BoldItalic BT 0692 stymiebi + b_____ NewtextITCbyBT-Regular BT 0697 newtxtn + b_____ NewtextITCbyBT-RegularItalic BT 0698 newtxtni + bchc8a CharterBT-Black BT 0709 chartrk + bchci8a CharterBT-BlackItalic BT 0710 chartrki + bgjr8a ElegantGaramondBT-Roman BT 0711 eleggarn + bgjri8a ElegantGaramondBT-Italic BT 0712 eleggari + bgjb8a ElegantGaramondBT-Bold BT 0713 eleggarb + bekr8a Freeform710BT-Regular BT 0714 frfm710n + bppr8a Lapidary333BT-Roman BT 0715 lap333n + bppri8a Lapidary333BT-Italic BT 0716 lap333i + bppb8a Lapidary333BT-Bold BT 0717 lap333b + bppbi8a Lapidary333BT-BoldItalic BT 0718 lap333bi + brmci8a CarminaBT-BlackItalic BT 0719 carminki + bpbr8a PTBarnumBT-Regular BT 0720 ptbarnmn + brmm8a CarminaBT-Medium BT 0721 carminam + brmmi8a CarminaBT-MediumItalic BT 0722 carmini + brmb8a CarminaBT-Bold BT 0723 carminab + brmbi8a CarminaBT-BoldItalic BT 0724 carminbi + bi2r8a ImpulsBT-Regular BT 0725 impulsn + bkur8a KaufmannBT-Regular BT 0726 kaufmann + bkub8a KaufmannBT-Bold BT 0727 kaufmanb + bbob8a BalloonBT-Bold BT 0728 balonb + bbox8a BalloonBT-ExtraBold BT 0729 balonxb + bnvk8a NovareseITCbyBT-Book BT 0730 novaren + bnvki8a NovareseITCbyBT-BookItalic BT 0731 novareni + bnvb8a NovareseITCbyBT-Bold BT 0734 novareb + bnvbi8a NovareseITCbyBT-BoldItalic BT 0735 novarebi + bc2k8a Caslon224ITCbyBT-Book BT 0745 cas224n + bc2ki8a Caslon224ITCbyBT-BookItalic BT 0746 cas224ni + bc2b8a Caslon224ITCbyBT-Bold BT 0749 cas224b + bc2bi8a Caslon224ITCbyBT-BoldItalic BT 0750 cas224bi + bnabi8a Dutch823BT-BoldItalicB BT 0753 dut823bi + borr8a10 OratorBT-TenPitch BT 0755 orator10 + bvrr8a VAGRoundedBT-Regular BT 0756 vagron + bclr8a CloisterBlackBT-Regular BT 0757 cloistrk + borr8a15 OratorBT-FifteenPitch BT 0758 orator15 + bhvm8a Swiss721BT-Medium BT 0759 swz721m + bhvmi8a Swiss721BT-MediumItalic BT 0760 swz721mi + btvr8a Kuenstler480BT-Roman BT 0761 kuen408n + btvri8a Kuenstler480BT-Italic BT 0762 kuen408i + btvb8a Kuenstler480BT-Bold BT 0763 kuen408b + btvbi8a Kuenstler480BT-BoldItalic BT 0764 kue408bi + bhvbl8ac Swiss721BT-BoldCondensedOutline BT 0767 sw721bco + bh0r8a HandelGothicBT-Regular BT 0768 handgotn + bdcb8a DomBoldBT-Regular BT 0769 domb + beom8a AmerigoBT-MediumA BT 0770 amrigom + beomi8a AmerigoBT-MediumItalicA BT 0771 amrigomi + beobi8a AmerigoBT-BoldItalicA BT 0772 amrigobi + bc7l8a CompactaBT-Light BT 0783 compctal + bc7r8a CompactaBT-Roman BT 0784 compctan + bc7ri8a CompactaBT-Italic BT 0785 compctai + bc7b8a CompactaBT-Bold BT 0786 compctab + bc7bi8a CompactaBT-BoldItalic BT 0787 compctbi + bc7c8a CompactaBT-Black BT 0788 compctak + bbpr8a Modern735BT-RomanA BT 0793 mod735n + bbwre8a BroadwayEngravedBT-Regular BT 0802 brdwayg + bonbi8a News705BT-BoldItalicB BT 0803 new705bi + bpnl8a Aldine721BT-Light BT 0804 ald721l + bpnli8a Aldine721BT-LightItalic BT 0805 ald721li + bb4r8a Brush738BT-RegularA BT 0806 brus738n + bb6r8ac Gothic821CondensedBT-Regular BT 0807 goth821c + bcir8a CandidaBT-Roman BT 0808 candidan + bciri8a CandidaBT-Italic BT 0809 candidai + bcib8a CandidaBT-Bold BT 0810 candidab + bdir8a Calligraphic810BT-Roman BT 0811 calg810n + bdiri8a Calligraphic810BT-Italic BT 0812 calg810i + bhrb8a Swiss721BT-BoldRounded BT 0813 swz721br + bhrc8a Swiss721BT-BlackRounded BT 0815 swz721kr + bs3l8a SeagullBT-Light BT 0817 seagulll + bs3m8a SeagullBT-Medium BT 0818 seagullm + bs3b8a SeagullBT-Bold BT 0819 seagullb + bs3h8a SeagullBT-Heavy BT 0820 seagullh + b_____ MixageITCbyBT-Bold BT 0825 mixageb + b_____ MixageITCbyBT-BoldItalic BT 0826 mixagebi + bm3r8a MiraraeBT-Roman BT 0830 miraraen + bm3b8a MiraraeBT-Bold BT 0831 miraraeb + btms8a Dutch801BT-SemiBold BT 0834 dut801db + btmsi8a Dutch801BT-SemiBoldItalic BT 0835 du801dbi + bsfb8ac SerifaBT-BoldCondensed BT 0836 serifabc + bb7ri8a BernhardModernBT-Italic BT 0837 bnhrdmoi + bb7b8a BernhardModernBT-Bold BT 0838 bnhrdmob + bb7bi8a BernhardModernBT-BoldItalic BT 0839 bnhrdmbi + b_____ English157BT-Regular BT 0840 engl157n + blyr8a LydianBT-Roman BT 0841 lydiann + blyri8a LydianBT-Italic BT 0842 lydiani + blyb8a LydianBT-Bold BT 0843 lydianb + blybi8a LydianBT-BoldItalic BT 0844 lydianbi + blyrw8a LydianCursiveBT-Regular BT 0845 lydianv + bcdr8ac ClarendonBT-RomanCondensed BT 0846 clrndnc + bl3r8a LuciaBT-Regular BT 0847 lucian + bfol8a FolioBT-Light BT 0848 foliol + bfoli8a FolioBT-LightItalic BT 0849 folioli + bfok8a FolioBT-Book BT 0850 folion + bfom8a FolioBT-Medium BT 0851 foliom + bfob8a FolioBT-Bold BT 0852 foliob + bfox8a FolioBT-ExtraBold BT 0853 folioxb + bfob8ac FolioBT-BoldCondensed BT 0854 foliobc + bfrl8a Humanist777BT-LightB BT 0855 hum777l + bfrli8a Humanist777BT-LightItalicB BT 0856 hum777li + bfrr8a Humanist777BT-RomanB BT 0857 hum777n + bfrri8a Humanist777BT-ItalicB BT 0858 hum777i + bfrb8a Humanist777BT-BoldB BT 0859 hum777b + bfrbi8a Humanist777BT-BoldItalicB BT 0860 hum777bi + bfrc8a Humanist777BT-BlackB BT 0861 hum777k + bfrci8a Humanist777BT-BlackItalicB BT 0862 hum777ki + begr8a OriginalGaramondBT-Roman BT 0863 orggaran + begri8a OriginalGaramondBT-Italic BT 0864 orggarai + begb8a OriginalGaramondBT-Bold BT 0865 orggarab + begbi8a OriginalGaramondBT-BoldItalic BT 0866 orggarbi + bpyr8a PlaybillBT-Regular BT 0867 playbiln + b_____ Century751BT-RomanB BT 0868 cent751n + b_____ Century751BT-ItalicB BT 0869 cent751i + bngr8aq NewsGothicBT-ExtraCondensed BT 0870 newgotxc + bngb8aq NewsGothicBT-BoldExtraCond BT 0871 newgtbxc + bsxr8a Humanist531BT-RomanA BT 0872 hum531n + bsxb8a Humanist531BT-BoldA BT 0874 hum531b + bsxc8a Humanist531BT-BlackA BT 0875 hum531k + bsxu8a Humanist531BT-UltraBlackA BT 0876 hum531uk + b_____ Egyptian710BT-RegularA BT 0883 egyt710n + bffm8a Transitional551BT-MediumB BT 0884 tran551m + bffmi8a Transitional551BT-MediumItalicB BT 0885 tra551mi + bm5b8a MurrayHillBT-Bold BT 0886 muryhilb + bcxl8a CaxtonBT-Light BT 0887 caxtonl + bcxli8a CaxtonBT-LightItalic BT 0888 caxtonli + bcxk8a CaxtonBT-Book BT 0889 caxtonn + bcxki8a CaxtonBT-BookItalic BT 0890 caxtonni + bcxb8a CaxtonBT-Bold BT 0891 caxtonb + bcxbi8a CaxtonBT-BoldItalic BT 0892 caxtonbi + brvr8a RevueBT-Regular BT 0895 revuen + br0r8a RomanaBT-Roman BT 0896 romanan + br0b8a RomanaBT-Bold BT 0897 romanab + bssl8a SchneidlerBT-Light BT 0899 schndll + bssli8a SchneidlerBT-LightItalic BT 0900 schndlli + bssr8a SchneidlerBT-Roman BT 0901 schndln + bssri8a SchneidlerBT-Italic BT 0902 schndli + bssm8a SchneidlerBT-Medium BT 0903 schndlm + bssmi8a SchneidlerBT-MediumItalic BT 0904 schndlmi + bssb8a SchneidlerBT-Bold BT 0905 schndlb + bssbi8a SchneidlerBT-BoldItalic BT 0906 schndlbi + bssc8a SchneidlerBT-Black BT 0907 schndlk + bssci8a SchneidlerBT-BlackItalic BT 0908 schndlki + bwnl8a WindsorBT-Light BT 0909 wndsrl + bymx8ac StymieBT-ExtraBoldCondensed BT 0910 stymixbc + b_____ DeVinneBT-Roman BT 0911 devinnen + b_____ DeVinneBT-Italic BT 0912 devinnei + bear8a Transitional521BT-RomanA BT 0913 tran521n + bearw8a Transitional521BT-CursiveA BT 0914 tran521i + beab8a Transitional521BT-BoldA BT 0915 tran521b + ball8a Flareserif821BT-Light BT 0916 flar821l + balr8a Flareserif821BT-Roman BT 0917 flar821n + balb8a Flareserif821BT-Bold BT 0918 flar821b + bdcri8a DomDiagonalBT-Regular BT 0920 domdiagn + bdcbi8a DomDiagonalBT-Bold BT 0921 domdiagb + bysl8a GoudySansITCbyBT-Light BT 0922 goudsanl + bysli8a GoudySansITCbyBT-LightItalic BT 0923 goudsali + bysm8a GoudySansITCbyBT-Medium BT 0924 goudsanm + bysmi8a GoudySansITCbyBT-MediumItalic BT 0925 goudsami + bysb8a GoudySansITCbyBT-Bold BT 0926 goudsanb + bysbi8a GoudySansITCbyBT-BoldItalic BT 0927 goudsabi + bysc8a GoudySansITCbyBT-Black BT 0928 goudsank + bysci8a GoudySansITCbyBT-BlackItalic BT 0929 goudsaki + bnbr8a NewBaskervilleITCbyBT-Roman BT 0930 newbaskn + bnbri8a NewBaskervilleITCbyBT-Italic BT 0931 newbaski + bnbb8a NewBaskervilleITCbyBT-Bold BT 0934 newbaskb + bnbbi8a NewBaskervilleITCbyBT-BoldItal BT 0935 newbasbi + bclrl8a CloisterOpenFaceBT-Regular BT 0938 cloisofn + bt2r8a TypoUprightBT-Regular BT 0939 typouprn + bs2r8a Script12PitchBT-Roman BT 0940 scrpt12n + blwk8a LeawoodITCbyBT-Book BT 0941 leawodn + blwki8a LeawoodITCbyBT-BookItalic BT 0942 leawodni + blwb8a LeawoodITCbyBT-Bold BT 0945 leawodb + blwbi8a LeawoodITCbyBT-BoldItalic BT 0946 leawodbi + bngd8a NewsGothicBT-Demi BT 0949 newsgotd + bngdi8a NewsGothicBT-DemiItalic BT 0950 newsgtdi + b_____ CataneoBT-Light BT 0951 catanltn + b_____ CataneoBT-Regular BT 0952 cataneon + b_____ CataneoBT-Bold BT 0953 catanbon + blfr8a LifeBT-Roman BT 0954 lifen + blfri8a LifeBT-Italic BT 0955 lifei + blfb8a LifeBT-Bold BT 0956 lifeb + blfbi8a LifeBT-BoldItalic BT 0957 lifebi + bunl8aq ZurichBT-LightExtraCondensed BT 0958 zurchlxc + bunr8aq ZurichBT-ExtraCondensed BT 0959 zurchxc + bunb8aq ZurichBT-BoldExtraCondensed BT 0960 zurchbxc + beel8a Egyptian505BT-Light BT 0961 egyt505l + beer8a Egyptian505BT-Roman BT 0962 egyt505n + beem8a Egyptian505BT-Medium BT 0963 egyt505m + beeb8a Egyptian505BT-Bold BT 0964 egyt505b + b_____ BruceOldStyleBT-Roman BT 0965 bruolstn + b_____ BruceOldStyleBT-Italic BT 0966 bruolsti + bhsr8a Swiss924BT-RegularB BT 0969 swz924n + bunx8a ZurichBT-ExtraBlack BT 0970 zurchxk + btmxi8a Dutch801BT-ExtraBoldItalic BT 0971 du801xbi + bsbbi8a ClassicalGaramondBT-BoldItalic BT 0972 clsgarbi + bbdb8ac BodoniBT-BoldCondensed BT 0973 bodonibc + benb8a EngraversRomanBT-Bold BT 0974 engrvrb + bi0r8a CommercialScriptBT-Regular BT 0976 comscrtn + bpnb8ac Aldine721BT-BoldCondensed BT 0977 ald721bc + bs6r8a StuyvesantBT-Regular BT 0980 stuyvesn + bnur8a NuptialBT-Regular BT 0981 nuptualn + bftr8a FrakturBT-Regular BT 0983 frakturn + bw0r8a WeddingTextBT-Regular BT 0985 wedtxtn + bb7rw8a BernhardTangoBT-Regular BT 0986 bnhrdtan + bl1r8a LibertyBT-Regular BT 0987 libertyn + bwnrl8a WindsorBT-Outline BT 0988 wndsro + bp3r8a Brush445BT-Regular BT 0990 brus445n + bgql8a Gothic720BT-LightB BT 0991 goth720l + bgqli8a Gothic720BT-LightItalicB BT 0992 got720li + bgqr8a Gothic720BT-RomanB BT 0993 goth720n + bgqri8a Gothic720BT-ItalicB BT 0994 goth720i + bgqb8a Gothic720BT-BoldB BT 0995 goth720b + bgqbi8a Gothic720BT-BoldItalicB BT 0996 got720bi + baur8a Freeform721BT-Roman BT 0997 frfm721n + bauri8a Freeform721BT-Italic BT 0998 frfm721i + baub8a Freeform721BT-Bold BT 0999 frfm721b + baubi8a Freeform721BT-BoldItalic BT 1000 frf721bi + bauc8a Freeform721BT-Black BT 1001 frfm721k + bauci8a Freeform721BT-BlackItalic BT 1002 frf721ki + bb7b8ac BernhardBoldCondensedBT-Regular BT 1003 brhrdbc + bazc8a Gothic725BT-BlackA BT 1007 goth720k + bn0r8a NormandeBT-Roman BT 1011 normandn + bn0ri8a NormandeBT-Italic BT 1012 normandi + b_____ MattAntiqueBT-Roman BT 1014 matantqn + b_____ MattAntiqueBT-Italic BT 1015 matantqi + b_____ MattAntiqueBT-Bold BT 1016 matantqb + bmar8a Freehand521BT-RegularC BT 1018 frhnd521 + bmpm8ac GeometricSlab703BT-MediumCond BT 1019 geo703mc + bmpb8ac GeometricSlab703BT-BoldCond BT 1020 geo703bc + bmpx8ac GeometricSlab703BT-XtraBoldCond BT 1021 ge703xbc + bbll8a BelweBT-Light BT 1022 belwel + bblm8a BelweBT-Medium BT 1023 belwem + bblb8a BelweBT-Bold BT 1024 belweb + bblr8ac BelweBT-RomanCondensed BT 1025 belwec + btvc8a Kuenstler480BT-Black BT 1026 kuen408k + ba8r8ac AuroraBT-RomanCondensed BT 1027 aurorac + ba8b8ac AuroraBT-BoldCondensed BT 1028 aurorabc + b_____ CataneoBT-RegularSwash BT 1030 catanswn + b_____ CataneoBT-BoldSwash BT 1031 catanswb + bcbcl8a CooperBT-BlackOutline BT 1034 coopblo + btmrd8a Dutch801BT-RomanHeadline BT 1035 dut801na + btmrid8a Dutch801BT-ItalicHeadline BT 1036 dut801ia + b_____ Modern880BT-Roman BT 1037 mod880n + b_____ Modern880BT-Italic BT 1038 mod880i + b_____ Modern880BT-Bold BT 1039 mod880b + bmzr8a AmazoneBT-Regular BT 1040 amazonen + b_____ DeVinneBT-Text BT 1041 devinnet + b_____ DeVinneBT-ItalicText BT 1042 devinnit + bb5r8a Freehand591BT-RegularA BT 1043 frhnd591 + b_____ Blackletter686BT-Regular BT 1044 blklt686 + benbf8a EngraversOldEnglishBT-Bold BT 1045 engroleb + bjfr8a Freehand575BT-RegularB BT 1046 frhnd575 + btor8a Industrial736BT-Roman BT 1047 ind736n + btori8a Industrial736BT-Italic BT 1048 ind736i + bgyh8a GoudyHeavyfaceBT-Regular BT 1049 goudhfcn + bgyh8ac GoudyHeavyfaceBT-RegularCond BT 1050 goudhfcc + bb7rn8a BernhardFashionBT-Regular BT 1051 bnhrdfan + bppc8a Lapidary333BT-Black BT 1052 lap333k + bgyrf8a GoudyHandtooledBTsRegular BT 1053 goudhndn + bg5r8a GoudyCatalogueBT-Regular BT 1054 goudcatn + b_____ Century725BT-Roman BT 1055 cen725n + b_____ Century725BT-Bold BT 1056 cen725b + b_____ Century725BT-RomanCondensed BT 1057 cen725c + b_____ Century725BT-BoldCondensed BT 1058 cen725bc + b_____ Century725BT-Italic BT 1059 cen725i + b_____ Century725BT-Black BT 1060 cen725k + bocr8a Dutch809BT-RomanC BT 1061 dut809n + bocri8a Dutch809BT-ItalicC BT 1062 dut809i + bocb8a Dutch809BT-BoldC BT 1063 dut809b + bpsr8a ParisianBT-Regular BT 1064 parisnn + bctb8ac CheltenhamBT-BoldCondensed BT 1065 chltboc + bctbi8ac CheltenhamBT-BoldCondItalic BT 1066 chltboci + bctb8aq CheltenhamBT-BoldExtraCondensed BT 1067 chltboxc + bbrr8a Revival565BT-Roman BT 1068 revi565n + bbrri8a Revival565BT-Italic BT 1069 revi565i + bbrb8a Revival565BT-Bold BT 1070 revi565b + bbrbi8a Revival565BT-BoldItalic BT 1071 rev565bi + bubrd8a BauerBodoniBT-Titling BT 1072 baubodti + bumr8a UmbraBT-Regular BT 1074 umbran + bbmr8a BulmerBT-Roman BT 1075 bulmern + bbmri8a BulmerBT-Italic BT 1076 bulmeri + bral8a RaleighBT-Light BT 1077 raleighl + brar8a RaleighBT-Roman BT 1078 raleighn + bram8a RaleighBT-Medium BT 1079 raleighm + brad8a RaleighBT-DemiBold BT 1080 raleigdb + brab8a RaleighBT-Bold BT 1081 raleighb + brax8a RaleighBT-ExtraBold BT 1082 raleigxb + boyr8a Dutch811BT-RomanD BT 1083 dut811n + boyri8a Dutch811BT-ItalicD BT 1084 dut811i + boyb8a Dutch811BT-BoldD BT 1085 dut811b + boybi8a Dutch811BT-BoldItalicD BT 1086 dut811bi + bwdk8a WeidemannITCbyBT-Book BT 1087 weidmnn + bwdki8a WeidemannITCbyBT-BookItalic BT 1088 weidmnni + bwdb8a WeidemannITCbyBT-Bold BT 1091 weidmnb + bwdbi8a WeidemannITCbyBT-BoldItalic BT 1092 weidmnbi + burr8a Venetian301BT-Roman BT 1095 ven301n + burri8a Venetian301BT-Italic BT 1096 ven301i + burd8a Venetian301BT-Demi BT 1097 ven301d + burdi8a Venetian301BT-DemiItalic BT 1098 ven301di + burb8a Venetian301BT-Bold BT 1099 ven301b + burbi8a Venetian301BT-BoldItalic BT 1100 ven301bi + b_____ FrysBaskervilleBT-Roman BT 1101 frybaskn + baar8a AachenBT-Roman BT 1102 aachenn + baab8a AachenBT-Bold BT 1103 aachenb + bhwl8a SchadowBT-Light BT 1104 schadwl + bhwli8a SchadowBT-LightCursive BT 1105 schadwli + bhwr8a SchadowBT-Roman BT 1106 schadwn + bhwb8a SchadowBT-Bold BT 1107 schadwb + bhwc8a SchadowBT-Black BT 1108 schadwk + bder8a DellaRobbiaBT-Roman BT 1112 delarobn + bdeb8a DellaRobbiaBT-Bold BT 1113 delarobb + bhwc8ac SchadowBT-BlackCondensed BT 1114 schadwkc + bnlr8a Informal011BT-Roman BT 1115 infr011n + bnlc8a Informal011BT-Black BT 1116 infr011k + bkbl8a Geometric231BT-LightC BT 1126 geo231l + bkbr8a Geometric231BT-RomanC BT 1127 geo231n + bkbb8a Geometric231BT-BoldC BT 1128 geo231b + bkbh8a Geometric231BT-HeavyC BT 1129 geo231h + ba5r8a AllegroBT-Regular BT 1138 allegron + bc9r8a Calligraphic421BT-RomanB BT 1139 calg421n + b_____ Geometric885BT-RegularD BT 1140 geo885n + b_____ Formal436BT-Regular BT 1141 frml436n + bl4r8a LucianBT-Roman BT 1142 luciann + bl4b8a LucianBT-Bold BT 1143 lucianb + brsr8a ArrusBT-Roman BT 1145 arrusn + brsri8a ArrusBT-Italic BT 1146 arrusi + brsb8a ArrusBT-Bold BT 1147 arrusb + brsbi8a ArrusBT-BoldItalic BT 1148 arrusbi + brsc8a ArrusBT-Black BT 1149 arrusk + brsci8a ArrusBT-BlackItalic BT 1150 arruski + bt0r8a TangoBT-Regular BT 1151 tangon + bbsr8a BakerSignetBT-Roman BT 1152 bakrsign + bczr8a Staccato555BT-RegularA BT 1153 stac555n + ba3r8a AdLibBT-Regular BT 1154 adlibn + bmor8a Modern20BT-RomanB BT 1168 modrn20n + bmori8a Modern20BT-ItalicB BT 1169 modrn20i + be1r8a EmpireBT-Regular BT 1176 empiren + bhxr8a HuxleyVerticalBT-Regular BT 1177 huxvertn + bozr8a OzHandicraftBT-Roman BT 1178 ozhandin + biyr8a IowanOldStyleBT-Roman BT 1198 iwolstyn + biyri8a IowanOldStyleBT-Italic BT 1199 iwolstyi + biyb8a IowanOldStyleBT-Bold BT 1200 iwolstyb + biybi8a IowanOldStyleBT-BoldItalic BT 1201 iwolstbi + biyc8a IowanOldStyleBT-Black BT 1202 iwolstyk + biyci8a IowanOldStyleBT-BlackItalic BT 1203 iwolstki + bo1r8a OrandaBT-Roman BT 1204 orandan + bo1ri8a OrandaBT-Italic BT 1205 orandai + bo1b8a OrandaBT-Bold BT 1206 orandab + bo1bi8a OrandaBT-BoldItalic BT 1207 orandabi + bo1r8ac OrandaBT-RomanCondensed BT 1208 orandac + bo1b8ac OrandaBT-BoldCondensed BT 1209 orandabc + bm4r8a MisterEarlBT-Regular BT 1221 mrearln + bb9b8a BremenBT-Bold BT 1231 bremenb + bb9c8a BremenBT-Black BT 1232 bremenk + bwcr8a SnowCapBT-Regular BT 1237 ________ + b_____ MilleniumBT-BoldExtended BT 1242 milnumbe + bpi007 SprocketDeluxeBT-Regular BT 1243 ________ + bpi008 SprocketBT-Regular BT 1244 ________ + bpi009 SonicCutThruBT-Heavy BT 1247 ________ + b_____ CharterITCbyBT-Roman BT 1268 ichrtrn + b_____ CharterITCbyBT-Italic BT 1269 ichrtri + b_____ CharterITCbyBT-Bold BT 1270 ichrtrb + b_____ CharterITCbyBT-BoldItalic BT 1271 ichrtrbi + b_____ CharterITCbyBT-Black BT 1272 ichrtrk + b_____ CharterITCbyBT-BlackItalic BT 1273 ichrtrki + bo0r8a OldDreadfulNo7BT-Regular BT 7009 ________ + bzdr ZapfDingbatsITCbyBT-Regular BT 8556 zafdingn + b_____ MICR10byBT-Regular BT 8729 micr010n + b_____ MICR12byBT-Regular BT 8730 micr012n + b_____ MICR13byBT-Regular BT 8731 micr013n + bpi003 UniversalMath1BT-Regular BT 9014 ________ + bpi004 CommercialPiBT-Regular BT 9025 ________ + bsyr SymbolProportionalBT-Regular BT 9830 symbpron + bpi010 HolidayPiBT-Regular BT 9832 ________ + bpi001 NewspaperPiBT-Regular BT 9836 ________ + + +File: fontname.info, Node: DTC fonts, Next: ITC fonts, Prev: Bitstream fonts, Up: Font name lists + +A.5 DTC fonts +============= + +The `dtc.map' file has abbreviations for DTC (Digital Typeface +Corporation) fonts. + + dhvc8rc SansBlackCondensed-DTC + dhvco8rc SansBlackCondensed-Oblique-DTC + dhvm8rx SansExtended-Medium-DTC + dhvr8rx SansExtended-Regular-DTC + dhvro8rc SansExtended-RegularOblique-DTC + dhvx8rc SansExtraBlackCondensed-DTC + dhvl8rx SansLightExtended-DTC + dhvh8rc SansThinCondensed-DTC + dhvho8rc SansThinCondensed-Oblique-DTC + dnbb8r NewBaskerville-Bold-DTC + dnbbi8r NewBaskerville-BoldItalic-DTC + dnbri8r NewBaskerville-RomanItalic-DTC + dnbr8r NewBaskerville-Roman-DTC + dopr8r Optimum-Roman-DTC + dopb8r Optimum-Bold-DTC + dopbo8r Optimum-BoldItalic-DTC + doro8r Optimum-RomanItalic-DTC + dpll8r Palton-Light-DTC + + +File: fontname.info, Node: ITC fonts, Next: Linotype fonts, Prev: DTC fonts, Up: Font name lists + +A.6 ITC fonts +============= + +The `itc.map' file has abbreviations for ITC (International Typeface +Corporation) fonts. + + + zieuk EuroSerifITC-Book + zieuki EuroSerifITC-BookItalic + zieum EuroSerifITC-Medium + zieumi EuroSerifITC-MediumItalic + zieub EuroSerifITC-Bold + zieubi EuroSerifITC-BoldItalic + zieuc EuroSerifITC-Black + zieuci EuroSerifITC-BlackItalic + zieuks EuroSansITC-Book + zieukis EuroSansITC-BookItalic + zieums EuroSansITC-Medium + zieumis EuroSansITC-MediumItalic + zieubs EuroSansITC-Bold + zieubis EuroSansITC-BoldItalic + zieucs EuroSansITC-Black + zieucis EuroSansITC-BlackItalic + + i_____ Aachen-Medium ITC 2000 + i_____ Aachen-Bold ITC 2001 + i_____ Academy-Engraved ITC 2002 + i_____ Aftershock ITC 2003 + i_____ Agincourt ITC 2004 + i_____ Airstream ITC 2005 + i_____ Algerian-Condensed ITC 2006 + i_____ Ambrose ITC 2007 + i_____ Angryhog ITC 2008 + i_____ Anna ITC 2009 + i_____ Aquinas ITC 2010 + i_____ Aquitaine-Initials ITC 2011 + i_____ Aristocrat ITC 2012 + i_____ Arnova ITC 2013 + i_____ Arriba ITC 2014 + i_____ Arriba-Arriba ITC 2015 + i_____ Artiste ITC 2016 + i_____ Atmosphere ITC 2017 + i_____ AugusteaOpen ITC 2018 + i_____ Avenida ITC 2019 + i_____ BaileyQuad-Bold ITC 2020 + i_____ Balmoral ITC 2021 + i_____ Banco-Light ITC 2022 + i_____ Banco ITC 2023 + i_____ Bang ITC 2024 + i_____ Banner ITC 2025 + i_____ BeckaScript ITC 2026 + i_____ Beesknees ITC 2027 + i_____ Belter ITC 2028 + i_____ Belter-MegaOutline ITC 2029 + i_____ Belwe-Mono ITC 2030 + i_____ Belwe-MonoItalic ITC 2031 + i_____ Bendigo ITC 2032 + i_____ Bergell ITC 2033 + i_____ Bertie ITC 2034 + i_____ Bertram ITC 2035 + i_____ BibleScriptFlourishes ITC 2036 + i_____ BickleyScript ITC 2037 + i_____ Binary-Light ITC 2038 + i_____ Binary-Bold ITC 2039 + i_____ Bitmax ITC 2040 + i_____ BlackTulip ITC 2041 + i_____ Blackadder ITC 2042 + i_____ Blackmoor ITC 2043 + i_____ Blaze ITC 2044 + i_____ Bluntz ITC 2045 + i_____ Bodoni-Brush ITC 2046 + i_____ BodoniSeventyTwo-Book ITC 2047 + i_____ BodoniSeventyTwo-BookItalic ITC 2048 + i_____ BodoniSeventyTwo-BookItalicSwash ITC 2049 + i_____ BodoniSeventyTwo-Bold ITC 2050 + i_____ BodoniSeventyTwo-BoldItalic ITC 2051 + i_____ BodoniSeventyTwo-BoldItalicSwash ITC 2052 + i_____ Boink ITC 2053 + i_____ Bordeaux-Roman ITC 2054 + i_____ Bordeaux-Italic ITC 2055 + i_____ Bordeaux-RomanBold ITC 2056 + i_____ Bordeaux-Display ITC 2057 + i_____ Bordeaux-Script ITC 2058 + i_____ BradleyHand-Regular ITC 2059 + i_____ BradleyHand-Bold ITC 2060 + i_____ Braganza-Light ITC 2061 + i_____ Braganza-Regular ITC 2062 + i_____ Brighton-Light ITC 2063 + i_____ Brighton-Medium ITC 2064 + i_____ Brighton-Bold ITC 2065 + i_____ Bronx ITC 2066 + i_____ Buckeroo ITC 2067 + i_____ Burlington ITC 2068 + i_____ BuzzerThree ITC 2069 + i_____ Cabaret ITC 2070 + i_____ CabargaCursiva ITC 2071 + i_____ Campaign ITC 2072 + i_____ CancellarescaScript ITC 2073 + i_____ Cancione ITC 2074 + i_____ Caribbean ITC 2075 + i_____ Carlton ITC 2076 + i_____ Carumba ITC 2077 + i_____ Caslon540-ItalicSwashes ITC 2078 + i_____ CaxtonRoman-Light ITC 2079 + i_____ CaxtonRoman-LightItalic ITC 2080 + i_____ CaxtonRoman-Book ITC 2081 + i_____ CaxtonRoman-Bold ITC 2082 + i_____ CenturyHandtooled-Bold ITC 2083 + i_____ CenturyHandtooled-BoldItalic ITC 2084 + i_____ Challenge-Bold ITC 2085 + i_____ Challenge-ExtraBold ITC 2086 + i_____ Champers ITC 2087 + i_____ CheltenhamHandtooled-Bold ITC 2088 + i_____ CheltenhamHandtooled-BoldItalic ITC 2089 + i_____ Cherie ITC 2090 + i_____ Chiller ITC 2091 + i_____ Chipper ITC 2092 + i_____ ChocLightbyITC ITC 2093 + i_____ Choc ITC 2094 + i_____ ChromiumOne ITC 2095 + i_____ Citation ITC 2096 + i_____ ClaudeSans-Regular ITC 2097 + i_____ ClaudeSans-Italic ITC 2098 + i_____ ClaudeSans-BoldItalic ITC 2099 + i_____ Clover ITC 2100 + i_____ CommericalScript ITC 2101 + i_____ Compacta ITC 2102 + i_____ Compacta-Italic ITC 2103 + i_____ Compacta-Bold ITC 2104 + i_____ Coptek ITC 2105 + i_____ Corinthian-Light ITC 2106 + i_____ Corinthian-Medium ITC 2107 + i_____ Corinthian-Bold ITC 2108 + i_____ Corinthian-BoldCondensed ITC 2109 + i_____ Crillee-Italic ITC 2110 + i_____ Crillee-BoldItalic ITC 2111 + i_____ Crillee-ExtraBoldItalic ITC 2112 + i_____ Crillee-ItalicInlineShadow ITC 2113 + i_____ Cult ITC 2114 + i_____ Cyberkugel ITC 2115 + i_____ Dancin ITC 2116 + i_____ Data70 ITC 2117 + i_____ Demian ITC 2118 + i_____ DemianBold ITC 2119 + i_____ DigitalWoodcuts ITC 2120 + i_____ Digitek ITC 2121 + i_____ Dinitials ITC 2122 + i_____ Dolmen ITC 2123 + i_____ Drycut ITC 2124 + i_____ DynamoShadow ITC 2125 + i_____ Eastwood ITC 2126 + i_____ Edwardian-Medium ITC 2127 + i_____ EdwardianScript-Regular ITC 2128 + i_____ EdwardianScript-Bold ITC 2129 + i_____ Ellipse-Roman ITC 2130 + i_____ Ellipse-Italic ITC 2131 + i_____ Ellipse-Bold ITC 2132 + i_____ Ellipse-BoldItalic ITC 2133 + i_____ Emphasis ITC 2134 + i_____ Enviro ITC 2135 + i_____ Epokha ITC 2136 + i_____ Equinox ITC 2137 + i_____ Etruscan ITC 2138 + i_____ FaithfulFly ITC 2139 + i_____ Farmhaus ITC 2140 + i_____ Fashion-Compressed ITC 2141 + i_____ Fashion-Engraved ITC 2142 + i_____ FineHand ITC 2143 + i_____ Flamenco-Inline ITC 2144 + i_____ Flamme ITC 2145 + i_____ Flatiron ITC 2146 + i_____ Flight ITC 2147 + i_____ Fling ITC 2148 + i_____ Florinda ITC 2149 + i_____ Follies ITC 2150 + i_____ Fontoon ITC 2151 + i_____ ForestShaded ITC 2152 + i_____ FrancesUncial ITC 2153 + i_____ Frankfurter-Medium ITC 2154 + i_____ Frankfurter ITC 2155 + i_____ Frankfurter-Highlight ITC 2156 + i_____ Frankfurter-Inline ITC 2157 + i_____ Freddo ITC 2158 + i_____ FreestyleScript ITC 2159 + i_____ FreestyleScript-Bold ITC 2160 + i_____ GaramondHandtooled ITC 2161 + i_____ GaramondHandtooled-Italic ITC 2162 + i_____ Gigi ITC 2163 + i_____ Gill-DisplayCompressed ITC 2164 + i_____ Gill-KayoCondensed ITC 2165 + i_____ GilliesGothic-ExtraBoldShaded ITC 2166 + i_____ Glastonbury ITC 2167 + i_____ GoldenCockerel-InitialsOrnaments ITC 2168 + i_____ Grapefruit ITC 2169 + i_____ Gravura ITC 2170 + i_____ Green ITC 2171 + i_____ GreytonScript ITC 2172 + i_____ GrimshawHand ITC 2173 + i_____ Hadfield ITC 2174 + i_____ HandDrawn ITC 2175 + i_____ Harlow ITC 2176 + i_____ HarlowSolid ITC 2177 + i_____ Harvey ITC 2178 + i_____ Hazel ITC 2179 + i_____ Heliotype ITC 2180 + i_____ Helvetica-MediumCondensed ITC 2181 + i_____ Helvetica-BoldCondensed ITC 2182 + i_____ Highlight ITC 2183 + i_____ Hollyweird ITC 2184 + i_____ Hornpype ITC 2185 + i_____ Ignatius ITC 2186 + i_____ Impakt ITC 2187 + i_____ IndyItalic ITC 2188 + i_____ Informal-Roman ITC 2189 + i_____ Inscription ITC 2190 + i_____ Iris ITC 2191 + i_____ Ironwork ITC 2192 + i_____ Isis ITC 2193 + i_____ Jaft ITC 2194 + i_____ Jambalaya ITC 2195 + i_____ Jazz ITC 2196 + i_____ Jellybaby ITC 2197 + i_____ JohnHandy ITC 2198 + i_____ Jokerman ITC 2199 + i_____ Juanita ITC 2200 + i_____ Juanita-Condensed ITC 2201 + i_____ Juanita-Deco ITC 2202 + i_____ Juanita-Lino ITC 2203 + i_____ Juanita-Xilo ITC 2204 + i_____ Juanita-XiloCondensed ITC 2205 + i_____ Juice ITC 2206 + i_____ Kanban ITC 2207 + i_____ Katfish ITC 2208 + i_____ Kendo ITC 2209 + i_____ Kick ITC 2210 + i_____ Klee ITC 2211 + i_____ Klepto ITC 2212 + i_____ Kokoa ITC 2213 + i_____ Kristen ITC 2214 + i_____ Kulukundis ITC 2215 + i_____ LaBamba ITC 2216 + i_____ Lambada ITC 2217 + i_____ Laser ITC 2218 + i_____ LaserChrome ITC 2219 + i_____ Latino-Elongated ITC 2220 + i_____ Laura ITC 2221 + i_____ LCD ITC 2222 + i_____ LeGriffe ITC 2223 + i_____ Lennox-Book ITC 2224 + i_____ Lennox-Medium ITC 2225 + i_____ Lennox-Bold ITC 2226 + i_____ Lexikos ITC 2227 + i_____ Lightnin' ITC 2228 + i_____ LimehouseScript ITC 2229 + i_____ LinoCut ITC 2230 + i_____ Locarno-Light ITC 2231 + i_____ Locarno-Italic ITC 2232 + i_____ RennieMackintosh-Light ITC 2233 + i_____ RennieMackintosh-Bold ITC 2234 + i_____ Malibu ITC 2235 + i_____ Malstock ITC 2236 + i_____ Marguerita ITC 2237 + i_____ Mastercard ITC 2238 + i_____ Matisse ITC 2239 + i_____ Mekanik-Regular ITC 2240 + i_____ Mekanik-Italic ITC 2241 + i_____ Milano ITC 2242 + i_____ Minska-Light ITC 2243 + i_____ Minska-Medium ITC 2244 + i_____ Minska-Bold ITC 2245 + i_____ Mistral-Light ITC 2246 + i_____ Mistral ITC 2247 + i_____ Mithras ITC 2248 + i_____ MoFunkyFresh ITC 2249 + i_____ MonaLisa-Recut ITC 2250 + i_____ MonaLisa-Solid ITC 2251 + i_____ Montage ITC 2252 + i_____ MotterCorpus-Bold ITC 2253 + i_____ MotterCorpus-CondensedBold ITC 2254 + i_____ Musclehead ITC 2255 + i_____ Musica ITC 2256 + i_____ NeoNeo ITC 2257 + i_____ NoovoLight ITC 2258 + i_____ NoovoBold ITC 2259 + i_____ Nora ITC 2260 + i_____ Oberon ITC 2261 + i_____ Odessa ITC 2262 + i_____ OldEnglish ITC 2263 + i_____ OneStrokeScript ITC 2264 + i_____ OneStrokeScript-Bold ITC 2265 + i_____ OneStrokeScript-Shaded ITC 2266 + i_____ Orange ITC 2267 + i_____ Orbon-Light ITC 2268 + i_____ Orbon-Regular ITC 2269 + i_____ Orbon-Bold ITC 2270 + i_____ Orbon-Black ITC 2271 + i_____ Orlando ITC 2272 + i_____ Outback ITC 2273 + i_____ OutoftheFridge ITC 2274 + i_____ Ozwald ITC 2275 + i_____ Pablo ITC 2276 + i_____ Papyrus ITC 2277 + i_____ Party ITC 2278 + i_____ PendryScript ITC 2279 + i_____ PetersMiro ITC 2280 + i_____ Pink ITC 2281 + i_____ Plaza ITC 2282 + i_____ PleasureBoldShaded ITC 2283 + i_____ Pneuma ITC 2284 + i_____ Prague ITC 2285 + i_____ Premier-Lightline ITC 2286 + i_____ Premier-Shaded ITC 2287 + i_____ Princetown ITC 2288 + i_____ Pristina ITC 2289 + i_____ Pritchard ITC 2290 + i_____ Pritchard-LineOut ITC 2291 + i_____ Pump-Regular ITC 2292 + i_____ Pump-DemiBold ITC 2293 + i_____ Quadrus ITC 2294 + i_____ Quixley ITC 2295 + i_____ RageItalic ITC 2296 + i_____ Ragtime ITC 2297 + i_____ Rapier ITC 2298 + i_____ Refracta ITC 2299 + i_____ RegattaCondensed ITC 2300 + i_____ RetailScript ITC 2301 + i_____ Retro-Bold ITC 2302 + i_____ Retro-BoldCondensed ITC 2303 + i_____ Riptide ITC 2304 + i_____ Riva ITC 2305 + i_____ Robotik ITC 2306 + i_____ Robotik-Italic ITC 2307 + i_____ Romic-Light ITC 2308 + i_____ Romic-LightItalic ITC 2309 + i_____ Roquette ITC 2310 + i_____ Ru'ach ITC 2311 + i_____ RubberStamp ITC 2312 + i_____ Rundfunk ITC 2313 + i_____ SantaFe ITC 2314 + i_____ Savoye ITC 2315 + i_____ Schizoid ITC 2316 + i_____ Scratch ITC 2317 + i_____ Scriba ITC 2318 + i_____ Scriptease ITC 2319 + i_____ Scriptek ITC 2320 + i_____ Scriptek-Italic ITC 2321 + i_____ Scruff ITC 2322 + i_____ Serengetti ITC 2323 + i_____ Shaman ITC 2324 + i_____ Shatter ITC 2325 + i_____ Sinaloa ITC 2326 + i_____ SkidRow ITC 2327 + i_____ Skylark ITC 2328 + i_____ Slipstream ITC 2329 + i_____ Smack ITC 2330 + i_____ Smudger ITC 2331 + i_____ Snap ITC 2332 + i_____ Spirit ITC 2333 + i_____ Spooky ITC 2334 + i_____ Spotlight ITC 2335 + i_____ Squire ITC 2336 + i_____ Squire-ExtraBold ITC 2337 + i_____ Static ITC 2338 + i_____ Stranger ITC 2339 + i_____ Strobos ITC 2340 + i_____ StudioScript ITC 2341 + i_____ Stylus-Regular ITC 2342 + i_____ Stylus-Bold ITC 2343 + i_____ Superstar ITC 2344 + i_____ Surfboard ITC 2345 + i_____ Synchro ITC 2346 + i_____ Tag ITC 2347 + i_____ Tannhauser ITC 2348 + i_____ Teknik ITC 2349 + i_____ Telegram ITC 2350 + i_____ Temble ITC 2351 + i_____ Tempus-Regular ITC 2352 + i_____ Tempus-Italic ITC 2353 + i_____ TempusSans-Regular ITC 2354 + i_____ TempusSans-Italic ITC 2355 + i_____ TigerRag ITC 2356 + i_____ TirantiSolid ITC 2357 + i_____ Trackpad ITC 2358 + i_____ TropicaScript ITC 2359 + i_____ TrueGrit ITC 2360 + i_____ Twang ITC 2361 + i_____ Typados ITC 2362 + i_____ Ulysses ITC 2363 + i_____ UniversityRoman ITC 2364 + i_____ UniversityRoman-Italic ITC 2365 + i_____ UniversityRoman-Bold ITC 2366 + i_____ VanDijk ITC 2367 + i_____ VanDijkBold ITC 2368 + i_____ Varga ITC 2369 + i_____ Vegas ITC 2370 + i_____ Verkehr ITC 2371 + i_____ Vermont ITC 2372 + i_____ Victorian ITC 2373 + i_____ Victorian-InlineShaded ITC 2374 + i_____ ViennaExtended ITC 2375 + i_____ VinerHand ITC 2376 + i_____ Vintage ITC 2377 + i_____ Vinyl-Black ITC 2378 + i_____ Vinyl-Outline ITC 2379 + i_____ Vinyl-SawtoothBlack ITC 2380 + i_____ Vinyl-SawtoothOutline ITC 2381 + i_____ Vivaldi ITC 2382 + i_____ WadeSans-Light ITC 2383 + i_____ Wanted ITC 2384 + i_____ Waterloo-Bold ITC 2385 + i_____ Westwood ITC 2386 + i_____ WildThing ITC 2387 + i_____ Willow ITC 2388 + i_____ Wisteria ITC 2389 + i_____ Xylo ITC 2390 + i_____ YoungBaroque ITC 2391 + i_____ Zaragoza ITC 2392 + i_____ ZemkeHand ITC 2393 + i_____ Zennor ITC 2394 + i_____ Ziggy ITC 2395 + i_____ Zinjaro ITC 2396 + i_____ MotterSparta ITC 2397 + i_____ Underscript ITC 2398 + i_____ Stenberg ITC 2399 + i_____ Stenberg-Inline ITC 2400 + i_____ Arid ITC 2401 + i_____ Tapioca ITC 2402 + i_____ PiousHenry ITC 2403 + i_____ Korigan-Light ITC 2404 + i_____ Korigan-Bold ITC 2405 + i_____ Abaton ITC 2406 + i_____ Portago ITC 2407 + i_____ Blair-Light ITC 2408 + i_____ Blair-Medium ITC 2409 + i_____ Blair-Bold ITC 2410 + i_____ Scarborough ITC 2411 + i_____ Scarborough-Bold ITC 2412 + i_____ Gema ITC 2413 + i_____ Roswell-Three ITC 2414 + i_____ Roswell-Four ITC 2415 + i_____ Simran ITC 2416 + i_____ Tremor ITC 2417 + i_____ Coconino ITC 2418 + i_____ Stoclet-Light ITC 2419 + i_____ Stoclet-Bold ITC 2420 + i_____ JiggeryPokery ITC 2421 + i_____ Deelirious ITC 2422 + i_____ Flora-Medium ITC 2423 + i_____ Flora-Bold ITC 2424 + i_____ Manhattan ITC 2425 + i_____ Attitudes ITC 4000 + i_____ BackyardBeasties ITC 4001 + i_____ CalligraphicOrnaments ITC 4002 + i_____ Celebrations ITC 4003 + i_____ Commercials ITC 4004 + i_____ Connectivities ITC 4005 + i_____ DavesRaves-One ITC 4006 + i_____ DavesRaves-Two ITC 4007 + i_____ DavesRaves-Three ITC 4008 + i_____ Delectables ITC 4009 + i_____ Diversions ITC 4010 + i_____ Diversities ITC 4011 + i_____ Eclectics ITC 4012 + i_____ Energetics ITC 4013 + i_____ Expressions ITC 4014 + i_____ Fontoonies ITC 4015 + i_____ Gargoonies ITC 4016 + i_____ HomeImprovement ITC 4017 + i_____ Incidentals ITC 4018 + i_____ Industrials ITC 4019 + i_____ Inspirations ITC 4020 + i_____ Journeys ITC 4021 + i_____ MoFunkyFresh-Symbols ITC 4022 + i_____ Moderns ITC 4023 + i_____ Naturals ITC 4024 + i_____ Organics ITC 4025 + i_____ Organics-Two ITC 4026 + i_____ Primitives ITC 4027 + i_____ Radicals ITC 4028 + i_____ Situations ITC 4029 + i_____ StainedGlass ITC 4030 + i_____ TotSpots ITC 4031 + i_____ Urbans ITC 4032 + i_____ WellBeings ITC 4033 + i_____ Wildlife ITC 4034 + i_____ WildWest ITC 4035 + i_____ Ancestor ITC 4036 + i_____ Shadowettes ITC 4037 + i_____ Beorama ITC 4038 + i_____ Holistics ITC 4039 + i_____ ProfessionalConnections ITC 4040 + i_____ Bodoni-Ornaments ITC 5000 + i_____ RennieMackintosh-Ornaments ITC 5002 + i_____ TypeEmbellishments-One ITC 5003 + i_____ TypeEmbellishments-Two ITC 5004 + i_____ TypeEmbellishments-Three ITC 5005 + i_____ JapaneseGarden ITC 5006 + i_____ SevenTreasures ITC 5007 + i_____ BodoniSix-Book ITC 6000 + i_____ BodoniSix-BookItalic ITC 6001 + i_____ BodoniSix-Bold ITC 6002 + i_____ BodoniSix-BoldItalic ITC 6003 + i_____ BodoniTwelve-Book ITC 6004 + i_____ BodoniTwelve-BookItalic ITC 6005 + i_____ BodoniTwelve-Bold ITC 6006 + i_____ BodoniTwelve-BoldItalic ITC 6007 + i_____ Charlotte-Book ITC 6008 + i_____ Charlotte-BookItalic ITC 6009 + i_____ Charlotte-Medium ITC 6010 + i_____ Charlotte-Bold ITC 6011 + i_____ Charter-Regular ITC 6012 + i_____ Charter-RegularItalic ITC 6013 + i_____ Charter-Bold ITC 6014 + i_____ Charter-BoldItalic ITC 6015 + i_____ Charter-Black ITC 6016 + i_____ Charter-BlackItalic ITC 6017 + i_____ Elysium-Book ITC 6018 + i_____ Elysium-BookItalic ITC 6019 + i_____ Elysium-Medium ITC 6020 + i_____ Elysium-Bold ITC 6021 + i_____ Figural-Book ITC 6022 + i_____ Figural-BookItalic ITC 6023 + i_____ Figural-Medium ITC 6024 + i_____ Figural-Bold ITC 6025 + i_____ FrizQuadrata-Regular ITC 6026 + i_____ FrizQuadrata-Italic ITC 6027 + i_____ FrizQuadrata-Bold ITC 6028 + i_____ FrizQuadrata-BoldItalic ITC 6029 + i_____ Gilgamesh-Book ITC 6030 + i_____ Gilgamesh-BookItalic ITC 6031 + i_____ Gilgamesh-Medium ITC 6032 + i_____ Gilgamesh-Bold ITC 6033 + i_____ GoldenCockerel-Roman ITC 6034 + i_____ GoldenCockerel-Italic ITC 6035 + i_____ GoldenCockerel-Titling ITC 6036 + i_____ Humana-Light ITC 6037 + i_____ Humana-LightItalic ITC 6038 + i_____ Humana-Medium ITC 6039 + i_____ Humana-MediumItalic ITC 6040 + i_____ Humana-Bold ITC 6041 + i_____ Humana-BoldItalic ITC 6042 + i_____ HumanaScript-Light ITC 6043 + i_____ HumanaScript-Medium ITC 6044 + i_____ HumanaScript-Bold ITC 6045 + i_____ Kallos-Book ITC 6046 + i_____ Kallos-BookItalic ITC 6047 + i_____ Kallos-Medium ITC 6048 + i_____ Kallos-MediumItalic ITC 6049 + i_____ Kallos-Bold ITC 6050 + i_____ Kallos-BoldItalic ITC 6051 + i_____ LegacySerif-Book ITC 6052 + i_____ LegacySerif-BookItalic ITC 6053 + i_____ LegacySerif-Medium ITC 6054 + i_____ LegacySerif-MediumItalic ITC 6055 + i_____ LegacySerif-Bold ITC 6056 + i_____ LegacySerif-BoldItalic ITC 6057 + i_____ LegacySerif-Ultra ITC 6058 + i_____ MendozaRoman-Book ITC 6059 + i_____ MendozaRoman-BookItalic ITC 6060 + i_____ MendozaRoman-Medium ITC 6061 + i_____ MendozaRoman-MediumItalic ITC 6062 + i_____ MendozaRoman-Bold ITC 6063 + i_____ MendozaRoman-BoldItalic ITC 6064 + i_____ Obelisk-Light ITC 6065 + i_____ Obelisk-LightItalic ITC 6066 + i_____ Obelisk-Medium ITC 6067 + i_____ Obelisk-Bold ITC 6068 + i_____ OfficinaSerif-Book ITC 6069 + i_____ OfficinaSerif-BookItalic ITC 6070 + i_____ OfficinaSerif-Bold ITC 6071 + i_____ OfficinaSerif-BoldItalic ITC 6072 + i_____ StoneInformal-Medium ITC 6073 + i_____ StoneInformal-MediumItalic ITC 6074 + i_____ StoneInformal-SemiBold ITC 6075 + i_____ StoneInformal-SemiBoldItalic ITC 6076 + i_____ StoneInformal-Bold ITC 6077 + i_____ StoneInformal-BoldItalic ITC 6078 + i_____ StoneSerif-Medium ITC 6079 + i_____ StoneSerif-MediumItalic ITC 6080 + i_____ StoneSerif-SemiBold ITC 6081 + i_____ StoneSerif-SemiBoldItalic ITC 6082 + i_____ StoneSerif-Bold ITC 6083 + i_____ StoneSerif-BoldItalic ITC 6084 + i_____ Syndor-Book ITC 6085 + i_____ Syndor-BookItalic ITC 6086 + i_____ Syndor-Medium ITC 6087 + i_____ Syndor-MediumItalic ITC 6088 + i_____ Syndor-Bold ITC 6089 + i_____ Syndor-BoldItalic ITC 6090 + i_____ Tyfa-Book ITC 6091 + i_____ Tyfa-BookItalic ITC 6092 + i_____ Tyfa-Medium ITC 6093 + i_____ Tyfa-MediumItalic ITC 6094 + i_____ Tyfa-Bold ITC 6095 + i_____ Tyfa-BoldItalic ITC 6096 + i_____ OfficinaSerif-Medium ITC 6097 + i_____ OfficinaSerif-MediumItalic ITC 6098 + i_____ OfficinaSerif-ExtraBold ITC 6099 + i_____ OfficinaSerif-ExtraBoldItalic ITC 6100 + i_____ OfficinaSerif-Black ITC 6101 + i_____ OfficinaSerif-BlackItalic ITC 6102 + i_____ SerifGothic-Light ITC 6103 + i_____ SerifGothic-Regular ITC 6104 + i_____ SerifGothic-Bold ITC 6105 + i_____ SerifGothic-ExtraBold ITC 6106 + i_____ SerifGothic-Heavy ITC 6107 + i_____ SerifGothic-Black ITC 6108 + i_____ AmericanTypewriter-Light ITC 6109 + i_____ AmericanTypewriter-LightItalic ITC 6110 + i_____ AmericanTypewriter-Medium ITC 6111 + i_____ AmericanTypewriter-MediumItalic ITC 6112 + i_____ AmericanTypewriter-Bold ITC 6113 + i_____ AmericanTypewriter-BoldItalic ITC 6114 + i_____ AmericanTypewriter-CondLight ITC 6115 + i_____ AmericanTypewriter-CondMedium ITC 6116 + i_____ AmericanTypewriter-CondBold ITC 6117 + i_____ LubalinGraph-ExtraLight ITC 6118 + i_____ LubalinGraph-ExtraLightOblique ITC 6119 + i_____ LubalinGraph-Book ITC 6120 + i_____ LubalinGraph-BookOblique ITC 6121 + i_____ LubalinGraph-Medium ITC 6122 + i_____ LubalinGraph-MediumOblique ITC 6123 + i_____ LubalinGraph-Demi ITC 6124 + i_____ LubalinGraph-DemiOblique ITC 6125 + i_____ LubalinGraph-Bold ITC 6126 + i_____ LubalinGraph-BoldOblique ITC 6127 + i_____ Benguiat-Book ITC 6128 + i_____ Benguiat-BookItalic ITC 6129 + i_____ Benguiat-Medium ITC 6130 + i_____ Benguiat-MediumItalic ITC 6131 + i_____ Benguiat-Bold ITC 6132 + i_____ Benguiat-BoldItalic ITC 6133 + i_____ Benguiat-CondensedBook ITC 6134 + i_____ Benguiat-CondensedBookItalic ITC 6135 + i_____ Benguiat-CondensedMedium ITC 6136 + i_____ Benguiat-CondensedMediumItalic ITC 6137 + i_____ Benguiat-CondensedBold ITC 6138 + i_____ Benguiat-CondensedBoldItalic ITC 6139 + i_____ Korinna-Regular ITC 6140 + i_____ Korinna-KursivRegular ITC 6141 + i_____ Korinna-Bold ITC 6142 + i_____ Korinna-KursivBold ITC 6143 + i_____ Korinna-ExtraBold ITC 6144 + i_____ Korinna-KursivExtraBold ITC 6145 + i_____ Korinna-Heavy ITC 6146 + i_____ Korinna-KursivHeavy ITC 6147 + i_____ Souvenir-Light ITC 6148 + i_____ Souvenir-LightItalic ITC 6149 + i_____ Souvenir-Medium ITC 6150 + i_____ Souvenir-MediumItalic ITC 6151 + i_____ Souvenir-Demi ITC 6152 + i_____ Souvenir-DemiItalic ITC 6153 + i_____ Souvenir-Bold ITC 6154 + i_____ Souvenir-BoldItalic ITC 6155 + i_____ Caslon224-Book ITC 6156 + i_____ Caslon224-BookItalic ITC 6157 + i_____ Caslon224-Medium ITC 6158 + i_____ Caslon224-MediumItalic ITC 6159 + i_____ Caslon224-Bold ITC 6160 + i_____ Caslon224-BoldItalic ITC 6161 + i_____ Caslon224-Black ITC 6162 + i_____ Caslon224-BlackItalic ITC 6163 + i_____ LubalinGraph-CondBook ITC 6164 + i_____ LubalinGraph-CondBookOblique ITC 6165 + i_____ LubalinGraph-CondMedium ITC 6166 + i_____ LubalinGraph-CondMediumOblique ITC 6167 + i_____ LubalinGraph-CondDemi ITC 6168 + i_____ LubalinGraph-CondDemiOblique ITC 6169 + i_____ LubalinGraph-CondBold ITC 6170 + i_____ LubalinGraph-CondBoldOblique ITC 6171 + i_____ Galliard-Regular ITC 6172 + i_____ Galliard-Italic ITC 6173 + i_____ Galliard-Bold ITC 6174 + i_____ Galliard-BoldItalic ITC 6175 + i_____ Galliard-Black ITC 6176 + i_____ Galliard-BlackItalic ITC 6177 + i_____ Galliard-Ultra ITC 6178 + i_____ Galliard-UltraItalic ITC 6179 + i_____ Dyadis-Book ITC 6180 + i_____ Dyadis-BookItalic ITC 6181 + i_____ Dyadis-Medium ITC 6182 + i_____ Dyadis-MediumItalic ITC 6183 + i_____ Dyadis-Bold ITC 6184 + i_____ Dyadis-BoldItalic ITC 6185 + i_____ BaileySans-Book ITC 8000 + i_____ BaileySans-BookItalic ITC 8001 + i_____ BaileySans-Bold ITC 8002 + i_____ BaileySans-BoldItalic ITC 8003 + i_____ Charlotte-SansBook ITC 8004 + i_____ Charlotte-SansBookItalic ITC 8005 + i_____ Charlotte-SansMedium ITC 8006 + i_____ Charlotte-SansBold ITC 8007 + i_____ Conduit-Light ITC 8008 + i_____ Conduit-LightItalic ITC 8009 + i_____ Conduit-Medium ITC 8010 + i_____ Conduit-MediumItalic ITC 8011 + i_____ Conduit-Bold ITC 8012 + i_____ Conduit-BoldItalic ITC 8013 + i_____ Highlander-Book ITC 8014 + i_____ Highlander-BookItalic ITC 8015 + i_____ Highlander-Medium ITC 8016 + i_____ Highlander-MediumItalic ITC 8017 + i_____ Highlander-Bold ITC 8018 + i_____ Highlander-BoldItalic ITC 8019 + i_____ HumanaSans-Light ITC 8020 + i_____ HumanaSans-LightItalic ITC 8021 + i_____ HumanaSans-Medium ITC 8022 + i_____ HumanaSans-MediumItalic ITC 8023 + i_____ HumanaSans-Bold ITC 8024 + i_____ HumanaSans-BoldItalic ITC 8025 + i_____ LegacySans-Book ITC 8026 + i_____ LegacySans-BookItalic ITC 8027 + i_____ LegacySans-Medium ITC 8028 + i_____ LegacySans-MediumItalic ITC 8029 + i_____ LegacySans-Bold ITC 8030 + i_____ LegacySans-BoldItalic ITC 8031 + i_____ LegacySans-Ultra ITC 8032 + i_____ Odyssee-Light ITC 8033 + i_____ Odyssee-LightItalic ITC 8034 + i_____ Odyssee-Medium ITC 8035 + i_____ Odyssee-MediumItalic ITC 8036 + i_____ Odyssee-Bold ITC 8037 + i_____ Odyssee-BoldItalic ITC 8038 + i_____ Odyssee-Ultra ITC 8039 + i_____ OfficinaSans-Book ITC 8040 + i_____ OfficinaSans-BookItalic ITC 8041 + i_____ OfficinaSans-Bold ITC 8042 + i_____ OfficinaSans-BoldItalic ITC 8043 + i_____ StoneSans-Medium ITC 8044 + i_____ StoneSans-MediumItalic ITC 8045 + i_____ StoneSans-SemiBold ITC 8046 + i_____ StoneSans-SemiBoldItalic ITC 8047 + i_____ StoneSans-Bold ITC 8048 + i_____ StoneSans-BoldItalic ITC 8049 + i_____ Woodland-Light ITC 8050 + i_____ Woodland-Medium ITC 8051 + i_____ Woodland-Demi ITC 8052 + i_____ Woodland-Heavy ITC 8053 + i_____ OfficinaSans-Medium ITC 8054 + i_____ OfficinaSans-MediumItalic ITC 8055 + i_____ OfficinaSans-ExtraBold ITC 8056 + i_____ OfficinaSans-ExtraBoldItalic ITC 8057 + i_____ OfficinaSans-Black ITC 8058 + i_____ AvantGardeGothic-ExtraLight ITC 8059 + i_____ AvantGardeGothic-ExtraLightObl ITC 8060 + i_____ AvantGardeGothic-Book ITC 8061 + i_____ AvantGardeGothic-BookOblique ITC 8062 + i_____ AvantGardeGothic-Medium ITC 8063 + i_____ AvantGardeGothic-MediumOblique ITC 8064 + i_____ AvantGardeGothic-Demi ITC 8065 + i_____ AvantGardeGothic-DemiOblique ITC 8066 + i_____ AvantGardeGothic-Bold ITC 8067 + i_____ AvantGardeGothic-BoldOblique ITC 8068 + i_____ FranklinGothic-Book ITC 8069 + i_____ FranklinGothic-BookItalic ITC 8070 + i_____ FranklinGothic-Medium ITC 8071 + i_____ FranklinGothic-MediumItalic ITC 8072 + i_____ FranklinGothic-Demi ITC 8073 + i_____ FranklinGothic-DemiItalic ITC 8074 + i_____ FranklinGothic-Heavy ITC 8075 + i_____ FranklinGothic-HeavyItalic ITC 8076 + i_____ FranklinGothic-CondBook ITC 8077 + i_____ FranklinGothic-CondBookItal ITC 8078 + i_____ FranklinGothic-CondMedium ITC 8079 + i_____ FranklinGothic-CondMediumItal ITC 8080 + i_____ FranklinGothic-CondDemi ITC 8081 + i_____ FranklinGothic-CondDemiItal ITC 8082 + i_____ FranklinGothic-ComprBook ITC 8083 + i_____ FranklinGothic-ComprBookItal ITC 8084 + i_____ FranklinGothic-ComprDemi ITC 8085 + i_____ FranklinGothic-ComprDemiItal ITC 8086 + i_____ FranklinGothic-ExtraComprBook ITC 8087 + i_____ FranklinGothic-ExtraComprDemi ITC 8088 + i_____ OfficinaSans-BlackItalic ITC 8089 + i_____ BenguiatGothic-Book ITC 8090 + i_____ BenguiatGothic-BookItalic ITC 8091 + i_____ BenguiatGothic-Medium ITC 8092 + i_____ BenguiatGothic-MediumItalic ITC 8093 + i_____ BenguiatGothic-Bold ITC 8094 + i_____ BenguiatGothic-BoldItalic ITC 8095 + i_____ BenguiatGothic-Heavy ITC 8096 + i_____ BenguiatGothic-HeavyItalic ITC 8097 + i_____ ItcEras-Light ITC 8098 + i_____ ItcEras-Book ITC 8099 + i_____ ItcEras-Medium ITC 8100 + i_____ ItcEras-Demi ITC 8101 + i_____ ItcEras-Bold ITC 8102 + i_____ ItcEras-Ultra ITC 8103 + i_____ AvantGardeGothic-CondBook ITC 8104 + i_____ AvantGardeGothic-CondMedium ITC 8105 + i_____ AvantGardeGothic-CondDemiBold ITC 8106 + i_____ AvantGardeGothic-CondBold ITC 8107 + i_____ ItcKabel-Book ITC 8108 + i_____ ItcKabel-Medium ITC 8109 + i_____ ItcKabel-Demi ITC 8110 + i_____ ItcKabel-Bold ITC 8111 + i_____ ItcKabel-Ultra ITC 8112 + + +File: fontname.info, Node: Linotype fonts, Next: Monotype fonts, Prev: ITC fonts, Up: Font name lists + +A.7 Linotype fonts +================== + +The `linotype.map' file has abbreviations for Linotype fonts. + + l_____ Aachen-Bold 1.0 + l_____ AachenEF-Medium 1.1 + l_____ AachenEF-Bold 1.2 + l_____ AharoniEF-RegularHd 2.0 + l_____ AharoniEF-MediumHd 2.1 + l_____ AharoniEF-SemiBoldHd 2.2 + l_____ AharoniEF-BoldHd 2.3 + l_____ AharoniEF-ExtraBoldHd 2.4 + l_____ AharoniEF-OutlineHd 2.5 + l_____ AharoniEF-ShadowHD 2.6 + l_____ Aja 3.0 + l_____ AkzidenzGrotesk-Light 4.0 + l_____ AkzidenzGrotesk-Roman 4.1 + l_____ AkzidenzGrotesk-Bold 4.2 + l_____ AkzidenzGrotesk-Black 4.3 + l_____ AkzidenzGroteskBE-Light 4.4 + l_____ AkzidenzGroteskBE-LightOsF 4.5 + l_____ AkzidenzGroteskBE-Regular 4.6 + l_____ AkzidenzGroteskBE-Italic 4.7 + l_____ AkzidenzGroteskBE-Md 4.8 + l_____ AkzidenzGroteskBE-MdIt 4.9 + l_____ AkzidenzGroteskBE-Bold 4.10 + l_____ AkzidenzGroteskBE-BoldIt 4.11 + l_____ AkzidenzGroteskBE-XBd 4.12 + l_____ AkzidenzGroteskBE-Super 4.13 + l_____ AkzidenzGroteskBE-LightCn 4.14 + l_____ AkzidenzGroteskBE-Cn 4.15 + l_____ AkzidenzGroteskBE-MdCn 4.16 + l_____ AkzidenzGroteskBE-MdCnIt 4.17 + l_____ AkzidenzGroteskBE-BoldCn 4.18 + l_____ AkzidenzGroteskBE-XBdCn 4.19 + l_____ AkzidenzGroteskBE-XBdCnIt 4.20 + l_____ AkzidenzGroteskBE-LightEx 4.21 + l_____ AkzidenzGroteskBE-Ex 4.22 + l_____ AkzidenzGroteskBE-MdEx 4.23 + l_____ AkzidenzGroteskBE-BoldEx 4.24 + l_____ AkzidenzGroteskBE-BoldExIt 4.25 + l_____ AGBookRounded-Regular 4.26 + l_____ AGBookRounded-Medium 4.27 + l_____ AGBookRounded-Bold 4.28 + l_____ AGBookRounded-MediumOutline 4.29 + l_____ AGBookRounded-BoldOutline 4.30 + l_____ AGBookRounded-BoldCn 4.31 + l_____ AGBookRounded-BoldCnOutline 4.32 + l_____ AGBook-Stencil 4.33 + l_____ AGOldFace-Regular 4.34 + l_____ AGOldFace-Medium 4.35 + l_____ AGOldFace-Bold 4.36 + l_____ AGOldFace-Outline 4.37 + l_____ AGOldFace-BoldOutline 4.38 + l_____ AGOldFace-Shaded 4.39 + l_____ AGSchoolbook-Regular 4.40 + l_____ AGSchoolbook-RegularA 4.41 + l_____ AGSchoolbook-Medium 4.42 + l_____ AGSchoolbook-MediumA 4.43 + l_____ AlcuinEF-Light 5.0 + l_____ AlcuinEF-Regular 5.1 + l_____ AlcuinEF-Bold 5.2 + l_____ AlcuinEF-ExtraBold 5.3 + l_____ Aldus-Roman 6.0 + l_____ Aldus-RomanSC 6.1 + l_____ Aldus-Italic 6.2 + l_____ Aldus-ItalicOsF 6.3 + l_____ AleOrnamentsRotatoLL 7.0 + l_____ AleOrnamentsSpiratoLL 7.1 + l_____ AlexieLL 8.0 + l_____ AlteSchwabacherEF 9.0 + l_____ AlternateGothicEF-NoOne 10.0 + l_____ AlternateGothicEF-NoTwo 10.1 + l_____ AlternateGothicEF-NoThree 10.2 + l_____ AmericanUncialEF 11.0 + l_____ Americana 12.0 + l_____ Americana-Italic 12.1 + l_____ Americana-Bold 12.2 + l_____ Americana-ExtraBold 12.3 + l_____ AmericanaEF-Regular 12.4 + l_____ AmericanaEF-RegularItalic 12.5 + l_____ AmericanaEF-Bold 12.6 + l_____ AmericanaEF-ExtraBold 12.7 + l_____ AnnlieEF-ExtraBold 14.0 + l_____ AnnlieEF-ExtraBoldItalic 14.1 + l_____ AntiqueOlive-Light 15.0 + l_____ AntiqueOlive-Roman 15.1 + l_____ AntiqueOlive-Italic 15.2 + l_____ AntiqueOlive-Bold 15.3 + l_____ AntiqueOlive-Black 15.4 + l_____ AntiqueOlive-BoldCond 15.5 + l_____ AntiqueOlive-Compact 15.6 + l_____ AntiqueOlive-Nord 15.7 + l_____ AntiqueOlive-NordItalic 15.8 + l_____ AntiqueOliveCE-Light 15.9 + l_____ AntiqueOliveCE-Roman 15.10 + l_____ AntiqueOliveCE-Italic 15.11 + l_____ AntiqueOliveCE-Bold 15.12 + l_____ AntiqueOliveCE-Black 15.13 + l_____ AntiqueOliveEastA-Light 15.14 + l_____ AntiqueOliveEastA-Roman 15.15 + l_____ AntiqueOliveEastA-Italic 15.16 + l_____ AntiqueOliveEastA-Bold 15.17 + l_____ AntiqueOliveEastA-Black 15.18 + l_____ ApolloMT-Roman 16.0 + l_____ ApolloMT-RomanSC 16.1 + l_____ ApolloMT-RomanExpert 16.2 + l_____ ApolloMT-Italic 16.3 + l_____ ApolloMT-ItalicOsF 16.4 + l_____ ApolloMT-ItalicExpert 16.5 + l_____ ApolloMT-SemiBold 16.6 + l_____ ApolloMT-SemiBoldOsF 16.7 + l_____ ApolloMT-SemiBoldExpert 16.8 + l_____ Arcadia 17.0 + l_____ Arcadia-Alternate 17.1 + l_____ Ariadne-Roman 18.0 + l_____ Arioso 19.0 + l_____ Arkona-Regular 20.0 + l_____ Arkona-Medium 20.1 + l_____ ArnoldBoecklin 21.0 + l_____ AshleyScriptMT 22.0 + l_____ NewAster 23.0 + l_____ NewAster-Italic 23.1 + l_____ NewAster-SemiBold 23.2 + l_____ NewAster-SemiBoldItalic 23.3 + l_____ NewAster-Bold 23.4 + l_____ NewAster-BoldItalic 23.5 + l_____ NewAster-Black 23.6 + l_____ NewAster-BlackItalic 23.7 + l_____ AsterEF-Regular 23.8 + l_____ AsterEF-RegularItalic 23.9 + l_____ AsterEF-Medium 23.10 + l_____ AureliaEF-Light 24.0 + l_____ AureliaEF-LightItalic 24.1 + l_____ AureliaEF-Book 24.2 + l_____ AureliaEF-BookItalic 24.3 + l_____ AureliaEF-Bold 24.4 + l_____ Auriol 25.0 + l_____ Auriol-Italic 25.1 + l_____ Auriol-Bold 25.2 + l_____ Auriol-BoldItalic 25.3 + l_____ Auriol-Black 25.4 + l_____ Auriol-BlackItalic 25.5 + l_____ BalderLL 28.0 + l_____ BalloonEF-ExtraBold 29.0 + l_____ BalloonEF-DropShadow 29.1 + l_____ BalmoralEF-Regular 30.0 + l_____ BalmoralEF-Alternative 30.1 + l_____ Banco 31.0 + l_____ BarbedorEF-Regular 32.0 + l_____ BarbedorEF-RegularItalic 32.1 + l_____ BarbedorEF-Medium 32.2 + l_____ BarbedorEF-MediumItalic 32.3 + l_____ BarbedorEF-Bold 32.4 + l_____ BarbedorEF-BoldItalic 32.5 + l_____ BarbedorEF-Black 32.6 + l_____ BarbedorEF-BlackItalic 32.7 + l_____ BaskervilleCyr-Upright 33.0 + l_____ BaskervilleCyr-Inclined 33.1 + l_____ BaskervilleCyr-Bold 33.2 + l_____ BaskervilleGreek-Upright 33.3 + l_____ BaskervilleGreek-Inclined 33.4 + l_____ BaskervilleGreek-Bold 33.5 + l_____ BaskervilleGreekP-Upright 33.6 + l_____ BaskervilleGreekP-Inclined 33.7 + l_____ BaskervilleGreekP-Bold 33.8 + l_____ BaskervilleEF-Regular 33.9 + l_____ BaskervilleEF-RegularItalic 33.10 + l_____ BaskervilleEF-Medium 33.11 + l_____ BaskervilleBE-Regular 33.12 + l_____ BaskervilleBE-Italic 33.13 + l_____ BaskervilleBE-Medium 33.14 + l_____ BaskervilleBE-MediumItalic 33.15 + l_____ BaskervilleBE-Bold 33.16 + l_____ NewBaskerville-Roman 33.17 + l_____ NewBaskerville-SC 33.18 + l_____ NewBaskerville-Italic 33.19 + l_____ NewBaskerville-ItalicOsF 33.20 + l_____ NewBaskerville-Bold 33.21 + l_____ NewBaskerville-BoldSC 33.22 + l_____ NewBaskerville-BoldItalic 33.23 + l_____ NewBaskerville-BoldItalicOsF 33.24 + l_____ NewBaskervilleEF-Roman 33.25 + l_____ NewBaskervilleEF-Italic 33.26 + l_____ NewBaskervilleEF-SemiBold 33.27 + l_____ NewBaskervilleEF-SemiBoldItalic 33.28 + l_____ NewBaskervilleEF-Bold 33.29 + l_____ NewBaskervilleEF-BoldItalic 33.30 + l_____ NewBaskervilleEF-Black 33.31 + l_____ NewBaskervilleEF-BlackItalic 33.32 + l_____ BaskervilleBook-Regular 33.33 + l_____ BaskervilleBook-Italic 33.34 + l_____ BaskervilleBook-Medium 33.35 + l_____ BaskervilleBook-MedItalic 33.36 + l_____ BaskervilleOldFaceEF 33.37 + l_____ AfroditeKATEF-Filly 34.0 + l_____ AfroditeKATEF-Ready 34.1 + l_____ AfroditeKATEF-Funky 34.2 + l_____ BadblocksEF 34.3 + l_____ BeatEF-BackBeat 34.4 + l_____ BeatEF-HardBeat 34.5 + l_____ BloxxEF 34.6 + l_____ BornFreeKATEF-Hungry 34.7 + l_____ BornFreeKATEF-Fed 34.8 + l_____ BrushableEF 34.9 + l_____ CandyEF 34.10 + l_____ ComancheEF 34.11 + l_____ CrazeEF 34.12 + l_____ DoublePacEF-Scrambled 34.13 + l_____ EastsideEF-Regular 34.14 + l_____ EastsideEF-Double 34.15 + l_____ FutureWorldEF 34.16 + l_____ ItKATEF 34.17 + l_____ JameKATEF-Black 34.18 + l_____ JameKATEF-White 34.19 + l_____ KiddingKidEF 34.20 + l_____ KnockoutEF 34.21 + l_____ LittleJoeKATEF-Black 34.22 + l_____ LittleJoeKATEF-White 34.23 + l_____ MaoMaoEF 34.24 + l_____ MaydayEF 34.25 + l_____ MiroEF 34.26 + l_____ MrsBeasleyEF 34.27 + l_____ NiniveEF 34.28 + l_____ RumourEF 34.29 + l_____ SiouxEF 34.30 + l_____ StayawhileEF 34.31 + l_____ SteelPlateEF 34.32 + l_____ TieriliEF 34.33 + l_____ TruckEF 34.34 + l_____ TwinPickEF-Hard 34.35 + l_____ XabbieEF 34.36 + l_____ BellGothic-Light 36.0 + l_____ BellGothic-Bold 36.1 + l_____ BellGothic-Black 36.2 + l_____ BelugaLL 37.0 + l_____ Berling-Roman 38.0 + l_____ Berling-Italic 38.1 + l_____ Berling-Bold 38.2 + l_____ Berling-BoldItalic 38.3 + l_____ BerlingEF-Regular 38.4 + l_____ BerlingEF-RegularItalic 38.5 + l_____ BerlingEF-Bold 38.6 + l_____ BernhardEF-Antique 39.1 + l_____ BernhardEF-Fashion 39.2 + l_____ BernhardModern-Roman 39.3 + l_____ BernhardModern-Italic 39.4 + l_____ BernhardModern-Bold 39.5 + l_____ BernhardModern-BoldItalic 39.6 + l_____ BernhardSchoenschriftEF-Light 39.7 + l_____ BernhardSchoenschriftEF-Regular 39.8 + l_____ BertholdScript-Regular 40.0 + l_____ BertholdScript-Medium 40.1 + l_____ BetonEF-Light 41.0 + l_____ BetonEF-DemiBold 41.1 + l_____ BetonEF-Bold 41.2 + l_____ BetonEF-ExtraBold 41.3 + l_____ BetonEF-BoldCondensed 41.4 + l_____ BibleScriptEF-Regular 42.0 + l_____ BibleScriptEF-Alternates 42.1 + l_____ BibleScriptEF-Flourishes 42.2 + l_____ Blackoak 43.0 + l_____ BlippoBlackEF 44.0 + l_____ BottleneckEF 45.0 + l_____ BramleyEF-Light 46.0 + l_____ BramleyEF-Medium 46.1 + l_____ BramleyEF-Bold 46.2 + l_____ BramleyEF-ExtraBold 46.3 + l_____ BrightonEF-Light 47.0 + l_____ BrightonEF-LightItalic 47.1 + l_____ BrightonEF-Medium 47.2 + l_____ BrightonEF-Bold 47.3 + lpi___ BundesbahnPi-One 48.0 + lpi___ BundesbahnPi-Two 48.1 + lpi___ BundesbahnPi-Three 48.2 + l_____ BusterEF 49.0 + l_____ CandiceEF 50.0 + lpi___ CaravanLH-One 51.0 + lpi___ CaravanLH-Two 51.1 + lpi___ CaravanLH-Three 51.2 + lpi___ CaravanLH-Four 51.3 + l_____ CascadeScript 52.0 + l_____ CashEF-Monospace 53.0 + l_____ CastellarMT 54.0 + l_____ Charlemagne-Regular 55.0 + l_____ Charlemagne-Bold 55.1 + l_____ Christiana-Regular 57.0 + l_____ Christiana-RegularSC 57.1 + l_____ Christiana-RegularExpert 57.2 + l_____ Christiana-Italic 57.3 + l_____ Christiana-Medium 57.4 + l_____ Christiana-MediumItalic 57.5 + l_____ Christiana-Bold 57.6 + l_____ Christiana-BoldItalic 57.7 + l_____ ChwastBuffalo-BlackCond 58.0 + l_____ CirkulusEF 59.0 + l_____ Clairvaux 60.0 + l_____ Clairvaux-Dfr 60.1 + l_____ Clearface-Regular 61.0 + l_____ Clearface-RegularItalic 61.1 + l_____ Clearface-Bold 61.2 + l_____ Clearface-BoldItalic 61.3 + l_____ Clearface-Heavy 61.4 + l_____ Clearface-HeavyItalic 61.5 + l_____ Clearface-Black 61.6 + l_____ Clearface-BlackItalic 61.7 + l_____ ClearfaceEF-Regular 61.8 + l_____ ClearfaceEF-RegularItalic 61.9 + l_____ ClearfaceEF-Bold 61.10 + l_____ ClearfaceEF-BoldItalic 61.11 + l_____ ClearfaceEF-Heavy 61.12 + l_____ ClearfaceEF-HeavyItalic 61.13 + l_____ ClearfaceEF-Black 61.14 + l_____ ClearfaceEF-BlackItalic 61.15 + l_____ ClearfaceGothicLH-Light 61.16 + l_____ ClearfaceGothicLH-Roman 61.17 + l_____ ClearfaceGothicLH-Medium 61.18 + l_____ ClearfaceGothicLH-Bold 61.19 + l_____ ClearfaceGothicLH-Black 61.20 + l_____ ClearfaceGothicEF-Regular 61.21 + l_____ ClearfaceGothicEF-Bold 61.22 + l_____ ClearfaceGothicEF-ExtraBold 61.23 + l_____ CloisterOpenFace 62.0 + l_____ Cochin 63.0 + l_____ Cochin-Italic 63.1 + l_____ Cochin-Bold 63.2 + l_____ Cochin-BoldItalic 63.3 + l_____ Codex 64.0 + l_____ ColumnaEF-Solid 65.0 + l_____ ComeniusAntiqua-Regular 66.0 + l_____ ComeniusAntiqua-Italic 66.1 + l_____ ComeniusAntiqua-Medium 66.2 + l_____ ComeniusAntiqua-Bold 66.3 + l_____ CommercialScriptEF 67.0 + l_____ Concorde-Roman 69.0 + l_____ Concorde-Italic 69.1 + l_____ Concorde-Bold 69.2 + l_____ Concorde-BoldItalic 69.3 + l_____ ConcordeBE-Regular 69.4 + l_____ ConcordeBE-RegularSC 69.5 + l_____ ConcordeBE-RegularExp 69.6 + l_____ ConcordeBE-Italic 69.7 + l_____ ConcordeBE-ItalicOsF 69.8 + l_____ ConcordeBE-ItalicExp 69.9 + l_____ ConcordeBE-Medium 69.10 + l_____ ConcordeBE-MediumSC 69.11 + l_____ ConcordeBE-MediumEx 69.12 + l_____ ConcordeBE-MediumItalic 69.13 + l_____ ConcordeBE-MediumItalicOsF 69.14 + l_____ ConcordeBE-MediumItalicExp 69.15 + l_____ ConcordeBE-Condensed 69.16 + l_____ ConcordeBE-MediumCn 69.17 + l_____ ConcordeBE-BoldCn 69.18 + l_____ ConcordeBE-BoldCnOutline 69.19 + l_____ ConcordeNova-Regular 69.20 + l_____ ConcordeNova-RegularSC 69.21 + l_____ ConcordeNova-RegularExp 69.22 + l_____ ConcordeNova-Italic 69.23 + l_____ ConcordeNova-ItalicOsF 69.24 + l_____ ConcordeNova-ItalicExp 69.25 + l_____ ConcordeNova-Medium 69.26 + l_____ ConcordeNova-MediumSC 69.27 + l_____ ConcordeNova-MediumExp 69.28 + l_____ ContactaLL 70.0 + l_____ CoolWoolLL 71.0 + l_____ CoolWoolCottonClubLL 71.1 + l_____ CoolWoolStoneWashedLL 71.2 + l_____ CooperBlack 72.0 + l_____ CooperBlack-Italic 72.1 + l_____ CooperBlackEF-Bold 72.2 + l_____ CooperBlackEF-BoldOutline 72.3 + l_____ CooperBlackEF-BoldCondensed 72.4 + l_____ CooperBlackEF-BoldCondOutline 72.5 + l_____ Copal-Solid 73.0 + l_____ Copal-Outline 73.1 + l_____ Copal-Decorated 73.2 + l_____ CorinthianEF-Light 74.0 + l_____ CorinthianEF-Medium 74.1 + l_____ CorinthianEF-Bold 74.2 + l_____ CorinthianEF-ExtraBold 74.3 + l_____ Corona-Roman 75.0 + l_____ Corona-Italic 75.1 + l_____ Corona-Bold 75.2 + l_____ CortezEF 76.0 + l_____ Cosmos-Light 77.0 + l_____ Cosmos-LightItalic 77.1 + l_____ Cosmos-Medium 77.2 + l_____ Cosmos-ExtraBold 77.3 + l_____ CountdownEF 78.0 + l_____ CourierCE-Roman 79.0 + l_____ CourierCE-Bold 79.1 + l_____ Cremona-Regular 80.0 + l_____ Cremona-Italic 80.1 + l_____ Cremona-Bold 80.2 + l_____ Cremona-BoldItalic 80.3 + l_____ Critter 81.0 + l_____ CroissantEF 82.0 + l_____ Cutout 83.0 + l_____ DailyNews-Regular 84.0 + l_____ DailyNews-Italic 84.1 + l_____ DailyNews-Medium 84.2 + l_____ DailyNews-MediumItalic 84.3 + l_____ DailyNews-Bold 84.4 + l_____ DailyNews-BoldItalic 84.5 + l_____ DailyNews-ExtraBold 84.6 + l_____ DailyNews-ExtraBoldItalic 84.7 + lpi___ DamnedDingbatsEF-Regular 85.0 + lpi___ DamnedDingbatsEF-Initials 85.1 + l_____ Data70EF 86.0 + l_____ DavidaEF 87.0 + l_____ Delphin-I 88.0 + l_____ Delphin-II 88.1 + l_____ Delphin-IA 88.2 + l_____ Delphin-IIA 88.3 + l_____ Delta-Light 89.0 + l_____ Delta-LightItalic 89.1 + l_____ Delta-Book 89.2 + l_____ Delta-BookItalic 89.3 + l_____ Delta-Medium 89.4 + l_____ Delta-MediumItalic 89.5 + l_____ Delta-Bold 89.6 + l_____ Delta-BoldItalic 89.7 + l_____ Delta-Outline 89.8 + l_____ DemianEF 90.0 + lpi___ DeutscheBahnAG-One 91.0 + lpi___ DeutscheBahnAG-Two 91.1 + lpi___ DeutscheBahnAG-Three 91.2 + lpi___ DeutscheBahnAG-Four 91.3 + lpi___ DeutscheBahnAG-Six 91.4 + lpi___ DeutscheBahnAG-Five 91.5 + l_____ DexGothicEF 92.0 + l_____ DigiAntiquaEF-LightCondensed 93.0 + l_____ Doric-Bold 95.0 + l_____ DrugulinEF-RegularHd 96.0 + l_____ DrugulinEF-MediumHd 96.1 + l_____ DrugulinEF-BoldHd 96.2 + l_____ DrugulinEF-ExtraBoldHd 96.3 + l_____ EckmannEF 97.1 + l_____ EdwardianScriptEF-Regular 98.0 + l_____ EdwardianScriptEF-RegularA 98.1 + l_____ EdwardianScriptEF-Bold 98.2 + l_____ EdwardianScriptEF-BoldA 98.3 + l_____ Egyptian505EF-Light 99.0 + l_____ Egyptian505EF-Regular 99.1 + l_____ Egyptian505EF-Medium 99.2 + l_____ Egyptian505EF-Bold 99.3 + l_____ EgyptienneF-Roman 100.0 + l_____ EgyptienneF-Italic 100.1 + l_____ EgyptienneF-Bold 100.2 + l_____ EgyptienneF-Black 100.3 + l_____ ElectraLH-Roman 101.0 + l_____ ElectraLH-RomanSC 101.1 + l_____ ElectraLH-RomanOsF 101.2 + l_____ ElectraLH-Cursive 101.3 + l_____ ElectraLH-CursiveOsF 101.4 + l_____ ElectraLH-Bold 101.5 + l_____ ElectraLH-BoldSC 101.6 + l_____ ElectraLH-BoldOsF 101.7 + l_____ ElectraLH-BoldCursive 101.8 + l_____ ElectraLH-BoldCursiveOsF 101.9 + l_____ ElectraLH-Display 101.10 + l_____ ElectraLH-CursiveDisplay 101.11 + l_____ ElectraLH-BoldDisplay 101.12 + l_____ ElectraLH-BoldCursiveDisplay 101.13 + l_____ ElseNPL-Light 102.0 + l_____ ElseNPL-Medium 102.1 + l_____ ElseNPL-SemiBold 102.2 + l_____ ElseNPL-Bold 102.3 + l_____ EnviroEF 103.0 + l_____ EscriptLL 104.0 + lpi___ EuropeanPi-One 105.0 + lpi___ EuropeanPi-Two 105.1 + lpi___ EuropeanPi-Three 105.2 + lpi___ EuropeanPi-Four 105.2 + l_____ ExcaliburEF-Regular 106.0 + l_____ ExcaliburEF-Medium 106.1 + l_____ FacsimileLL 107.0 + l_____ FairfieldLH-Light 108.0 + l_____ FairfieldLH-LightSC 108.1 + l_____ FairfieldLH-LightItalic 108.2 + l_____ FairfieldLH-Medium 108.3 + l_____ FairfieldLH-MediumSC 108.4 + l_____ FairfieldLH-MediumItalic 108.5 + l_____ FairfieldLH-Bold 108.6 + l_____ FairfieldLH-BoldSC 108.7 + l_____ FairfieldLH-BoldItalic 108.8 + l_____ FairfieldLH-Heavy 108.9 + l_____ FairfieldLH-HeavySC 108.10 + l_____ FairfieldLH-HeavyItalic 108.11 + l_____ FairfieldLH-CaptionLight 108.12 + l_____ FairfieldLH-CaptionMedium 108.13 + l_____ FairfieldLH-CaptionBold 108.14 + l_____ FairfieldLH-CaptionHeavy 108.15 + l_____ FairfieldLH-SwLightItalicOsF 108.16 + l_____ FairfieldLH-SwMediumItalicOsF 108.17 + l_____ FairfieldLH-SwBoldItalicOsF 108.18 + l_____ FairfieldLH-SwHeavyItalicOsF 108.19 + l_____ FetteGotischEF 109.0 + l_____ FlamencoInlineEF 110.0 + l_____ Forbes-Bold 114.0 + l_____ ForteMT 115.0 + l_____ FranklinGothic-Condensed 116.0 + l_____ FranklinGothic-ExtraCond 116.1 + l_____ FranklinGothicEF-Regular 116.2 + l_____ FranklinGothicEF-RegularCond 116.3 + l_____ FranklinGothicEF-ExtraCond 116.4 + l_____ FranklinGothic-Roman 116.5 + l_____ FranklinGothic-Book 116.6 + l_____ FranklinGothic-BookOblique 116.7 + l_____ FranklinGothic-Demi 116.8 + l_____ FranklinGothic-DemiOblique 116.9 + l_____ FranklinGothic-Heavy 116.10 + l_____ FranklinGothic-HeavyOblique 116.11 + l_____ FranklinGothicEF-Book 116.12 + l_____ FranklinGothicEF-BookItalic 116.13 + l_____ FranklinGothicEF-Medium 116.14 + l_____ FranklinGothicEF-MediumItalic 116.15 + l_____ FranklinGothicEF-Demi 116.16 + l_____ FranklinGothicEF-DemiItalic 116.17 + l_____ FranklinGothicEF-Heavy 116.18 + l_____ FranklinGothicEF-HeavyItalic 116.19 + l_____ FranklinGothicEF-BookCnd 116.20 + l_____ FranklinGothicEF-BookCndSC 116.21 + l_____ FranklinGothicEF-BookCndItal 116.22 + l_____ FranklinGothicEF-MedCnd 116.23 + l_____ FranklinGothicEF-MedCndSC 116.24 + l_____ FranklinGothicEF-MedCndItal 116.25 + l_____ FranklinGothicEF-DemiCnd 116.26 + l_____ FranklinGothicEF-DemiCndItal 116.27 + l_____ FranklinGothicEF-BookCmpr 116.28 + l_____ FranklinGothicEF-BookCmprItal 116.29 + l_____ FranklinGothicEF-DemiCmpr 116.30 + l_____ FranklinGothicEF-DemiCmprItal 116.31 + l_____ FranklinGothicEF-BookXCmpr 116.32 + l_____ FranklinGothicEF-DemiXCmpr 116.33 + l_____ Frutiger-Light 117.0 + l_____ Frutiger-LightItalic 117.1 + l_____ Frutiger-Roman 117.2 + l_____ Frutiger-Italic 117.3 + l_____ Frutiger-Bold 117.4 + l_____ Frutiger-BoldItalic 117.5 + l_____ Frutiger-Black 117.6 + l_____ Frutiger-BlackItalic 117.7 + l_____ Frutiger-UltraBlack 117.8 + l_____ Frutiger-LightCn 117.9 + l_____ Frutiger-Cn 117.10 + l_____ Frutiger-BoldCn 117.11 + l_____ Frutiger-BlackCn 117.12 + l_____ Frutiger ExtraBlackCn 117.13 + l_____ Futura-Light 118.0 + l_____ Futura-LightOblique 118.1 + l_____ Futura-Book 118.2 + l_____ Futura-BookOblique 118.3 + l_____ Futura 118.4 + l_____ Futura-Oblique 118.5 + l_____ Futura-Heavy 118.6 + l_____ Futura-HeavyOblique 118.7 + l_____ Futura-Bold 118.8 + l_____ Futura-BoldOblique 118.9 + l_____ Futura-ExtraBold 118.10 + l_____ Futura-ExtraBoldOblique 118.11 + l_____ Futura-CondensedLight 118.12 + l_____ Futura-CondensedLightOblique 118.13 + l_____ Futura-CondensedMedium 118.14 + l_____ Futura-CondensedMediumOblique 118.15 + l_____ Futura-CondensedBold 118.16 + l_____ Futura-CondensedBoldOblique 118.17 + l_____ Futura-CondensedExtraBlack 118.18 + l_____ Futura-CondExtraBlackOblique 118.19 + l_____ FuturaEF-Light 118.22 + l_____ FuturaEF-LightOblique 118.23 + l_____ FuturaEF-Book 118.24 + l_____ FuturaEF-BookOblique 118.25 + l_____ FuturaEF-Medium 118.26 + l_____ FuturaEF-MediumOblique 118.27 + l_____ FuturaEF-Bold 118.28 + l_____ FuturaEF-DemiBold 118.29 + l_____ FuturaEF-BoldOblique 118.30 + l_____ FuturaEF-DemiBoldOblique 118.31 + l_____ FuturaEF-ExtraBold 118.32 + l_____ FuturaEF-ExtraBoldOblique 118.33 + l_____ FuturaEF-Heavy 118.34 + l_____ FuturaEF-LightCondensed 118.35 + l_____ FuturaEF-LightCondensedOblique 118.36 + l_____ FuturaEF-MediumCondensed 118.37 + l_____ FuturaEF-MediumCondensedOblique 118.38 + l_____ FuturaEF-BoldCondensed 118.39 + l_____ FuturaEF-BoldCondensedOblique 118.40 + l_____ FuturaEF-ExtraBoldCondensed 118.41 + l_____ FuturaEF-ExtraBoldCondOblique 118.42 + l_____ FuturaBlackEF 118.43 + l_____ FuturaDisplayEF 118.44 + l_____ FuturaScriptEF 118.45 + l_____ FuturaEF-ExtraBoldShaded 118.46 + l_____ Galahad-Regular 119.0 + l_____ Galahad-Alternate 119.1 + l_____ Galahad-OsF 119.2 + l_____ GarthGraphic 121.0 + l_____ GarthGraphic-Italic 121.1 + l_____ GarthGraphic-Bold 121.2 + l_____ GarthGraphic-BoldItalic 121.3 + l_____ GarthGraphic-Black 121.4 + l_____ GarthGraphic ExtraBlack 121.5 + l_____ GarthGraphic-Condensed 121.6 + l_____ GarthGraphic-BoldCondensed 121.7 + l_____ GazetteLH-Roman 122.0 + l_____ GazetteLH-Italic 122.1 + l_____ GazetteLH-Bold 122.2 + lpi___ GiacomettiLL 123.0 + l_____ GillSans-Light 124.0 + l_____ GillSans-LightItalic 124.1 + l_____ GillSans 124.2 + l_____ GillSans-Italic 124.3 + l_____ GillSans-Bold 124.4 + l_____ GillSans-BoldItalic 124.5 + l_____ GillSans-ExtraBold 124.6 + l_____ GillSans-UltraBold 124.7 + l_____ GillSans-LightShadowed 124.8 + l_____ GillSans-Shadowed 124.9 + l_____ GillSans-Condensed 124.10 + l_____ GillSans-BoldCondensed 124.11 + l_____ GillSans-BoldExtraCondensed 124.12 + l_____ GillSans-UltraBoldCondensed 124.13 + l_____ GillSans-ExtraBoldDisplay 124.14 + l_____ GilliesGothicEF-Light 125.0 + l_____ GilliesGothicEF-Bold 125.1 + l_____ GilliesGothicEF-ExtraBold 125.2 + l_____ GilliesGothicEF-XBoShaded 125.3 + l_____ GlastonburyEF 126.0 + l_____ Glypha-Thin 127.0 + l_____ Glypha-ThinOblique 127.1 + l_____ Glypha-Light 127.2 + l_____ Glypha-LightOblique 127.3 + l_____ Glypha 127.4 + l_____ Glypha-RomanOblique 127.5 + l_____ Glypha-Bold 127.6 + l_____ Glypha-BoldOblique 127.7 + l_____ Glypha-Black 127.8 + l_____ Glypha-BlackOblique 127.9 + l_____ GoodiesLL 128.0 + l_____ Gothic-Thirteen 129.0 + l_____ Goudy-Bold 130.0 + l_____ Goudy-BoldOsF 130.1 + l_____ Goudy-BoldItalic 130.2 + l_____ Goudy-BoldItalicOsF 130.3 + l_____ Goudy-ExtraBold 130.4 + l_____ Goudy-Heavyface 130.5 + l_____ Goudy-HeavyfaceItalic 130.6 + l_____ GoudyHandtooledEF 130.7 + l_____ GoudyCatalogueEF-Regular 130.8 + l_____ GoudyCatalogueEF-Italic 130.9 + l_____ GoudyModernMT-Roman 130.10 + l_____ GoudyModernMT-Italic 130.11 + l_____ Goudy 130.12 + l_____ Goudy-SC 130.13 + l_____ Goudy-Italic 130.14 + l_____ Goudy-ItalicOsF 130.15 + l_____ GoudySans-Book 130.16 + l_____ GoudySans-BookItalic 130.17 + l_____ GoudySans-Medium 130.18 + l_____ GoudySans-MediumItalic 130.19 + l_____ GoudySans-Bold 130.20 + l_____ GoudySans-BoldItalic 130.21 + l_____ GoudySans-Black 130.22 + l_____ GoudySans-BlackItalic 130.23 + l_____ GoudySansEF-Book 130.24 + l_____ GoudySansEF-BookSC 130.25 + l_____ GoudySansEF-BookItalic 130.26 + l_____ GoudySansEF-Medium 130.27 + l_____ GoudySansEF-MediumSC 130.28 + l_____ GoudySansEF-MediumItalic 130.29 + l_____ GoudySansEF-Bold 130.30 + l_____ GoudySansEF-BoldItalic 130.31 + l_____ GoudySansEF-Black 130.32 + l_____ GoudySansEF-BlackItalic 130.33 + l_____ GoudyTextMT-Regular 130.34 + l_____ GoudyTextMT-Alternate 130.35 + l_____ GoudyTextMT-Dfr 130.36 + l_____ GoudyTextMT-LombardicCapitals 130.37 + l_____ Grafiko 131.0 + l_____ Granjon 132.0 + l_____ Granjon-SC 132.1 + l_____ Granjon-Italic 132.2 + l_____ Granjon-ItalicOsF 132.3 + l_____ Granjon-Bold 132.4 + l_____ Granjon-BoldOsF 132.5 + l_____ GrotesqueMT-Light 133.0 + l_____ GrotesqueMT-LightItalic 133.1 + l_____ GrotesqueMT 133.2 + l_____ GrotesqueMT-Italic 133.3 + l_____ GrotesqueMT-Bold 133.4 + l_____ GrotesqueMT-Black 133.5 + l_____ GrotesqueMT-LightCondensed 133.6 + l_____ GrotesqueMT-Condensed 133.7 + l_____ GrotesqueMT-ExtraCondensed 133.8 + l_____ GrotesqueMT-BoldExtended 133.9 + l_____ Guardi-Roman 134.0 + l_____ Guardi-Italic 134.1 + l_____ Guardi-Bold 134.2 + l_____ Guardi-BoldItalic 134.3 + l_____ Guardi-Black 134.4 + l_____ Guardi-BlackItalic 134.5 + l_____ HadfieldEF 135.0 + l_____ Hadriano-Light 136.0 + l_____ Hadriano-Bold 136.1 + l_____ Hadriano-ExtraBold 136.2 + l_____ Hadriano-ExtraBoldCondensed 136.3 + l_____ HanselEF-Regular 137.0 + l_____ HanselEF-Alternate 137.1 + l_____ HarlowEF-Solid 138.0 + l_____ HarlowEF 138.1 + l_____ HawthornEF 139.0 + l_____ Helvetica-Light 140.0 + l_____ Helvetica-LightOblique 140.1 + l_____ Helvetica 140.2 + l_____ Helvetica-Oblique 140.3 + l_____ Helvetica-Bold 140.4 + l_____ Helvetica-BoldOblique 140.5 + l_____ Helvetica-Black 140.6 + l_____ Helvetica-BlackOblique 140.7 + l_____ Helvetica-Condensed-Light 140.8 + l_____ Helvetica-Condensed-LightObl 140.9 + l_____ Helvetica-Condensed 140.10 + l_____ Helvetica-Condensed-Oblique 140.11 + l_____ Helvetica-Condensed-Bold 140.12 + l_____ Helvetica-Condensed-BoldObl 140.13 + l_____ Helvetica-Condensed-Black 140.14 + l_____ Helvetica-Condensed-BlackObl 140.15 + l_____ Helvetica-Compressed 140.16 + l_____ Helvetica-ExtraCompressed 140.17 + l_____ Helvetica-UltraCompressed 140.18 + l_____ HelveticaInserat-Roman 140.19 + l_____ HelveticaRounded-Bold 140.24 + l_____ HelveticaRounded-BoldObl 140.25 + l_____ HelveticaRounded-Black 140.26 + l_____ HelveticaRounded-BlackObl 140.27 + l_____ HelveticaRounded-BoldCond 140.28 + l_____ HelveticaRounded-BoldCondObl 140.29 + l_____ HelveticaTextbook 140.30 + l_____ HelveticaTextbook-Oblique 140.31 + l_____ HelveticaTextbook-Bold 140.32 + l_____ HelveticaTextbook-BoldObl 140.33 + l_____ HelveticaCE-Roman 140.36 + l_____ HelveticaCE-Bold 140.37 + l_____ HelveticaCE-NarrowRoman 140.38 + l_____ HelveticaCE-NarrowBold 140.39 + l_____ HelveticaCyr-Upright 140.40 + l_____ HelveticaCyr-Inclined 140.41 + l_____ HelveticaCyr-Bold 140.42 + l_____ HelveticaCyr-BoldInclined 140.43 + l_____ HelveticaInseratCyr-Upright 140.44 + l_____ HelveticaGreek-Upright 140.45 + l_____ HelveticaGreek-Inclined 140.46 + l_____ HelveticaGreek-Bold 140.47 + l_____ HelveticaGreek-BoldInclined 140.48 + l_____ HelveticaGreekP-Upright 140.49 + l_____ HelveticaGreekP-Inclined 140.50 + l_____ HelveticaGreekP-Bold 140.51 + l_____ HelveticaGreekP-BoldInclined 140.52 + l_____ HelveticaNeue-UltraLight 140.53 + l_____ HelveticaNeue-UltraLightItalic 140.54 + l_____ HelveticaNeue-Thin 140.55 + l_____ HelveticaNeue-ThinItalic 140.56 + l_____ HelveticaNeue-Light 140.57 + l_____ HelveticaNeue-LightItalic 140.58 + l_____ HelveticaNeue-Roman 140.59 + l_____ HelveticaNeue-Italic 140.60 + l_____ HelveticaNeue-Medium 140.61 + l_____ HelveticaNeue-MediumItalic 140.62 + l_____ HelveticaNeue-Bold 140.63 + l_____ HelveticaNeue-BoldItalic 140.64 + l_____ HelveticaNeue-Heavy 140.65 + l_____ HelveticaNeue-HeavyItalic 140.66 + l_____ HelveticaNeue-Black 140.67 + l_____ HelveticaNeue-BlackItalic 140.68 + l_____ HelveticaNeue-BoldOutline 140.69 + l_____ HelveticaNeue-UltraLigCond 140.70 + l_____ HelveticaNeue-UltraLigCondObl 140.71 + l_____ HelveticaNeue-ThinCond 140.72 + l_____ HelveticaNeue-ThinCondObl 140.73 + l_____ HelveticaNeue-LightCond 140.74 + l_____ HelveticaNeue-LightCondObl 140.75 + l_____ HelveticaNeue-Condensed 140.76 + l_____ HelveticaNeue-CondensedObl 140.77 + l_____ HelveticaNeue-MediumCond 140.78 + l_____ HelveticaNeue-MediumCondObl 140.79 + l_____ HelveticaNeue-BoldCond 140.80 + l_____ HelveticaNeue-BoldCondObl 140.81 + l_____ HelveticaNeue-HeavyCond 140.82 + l_____ HelveticaNeue-HeavyCondObl 140.83 + l_____ HelveticaNeue-BlackCond 140.84 + l_____ HelveticaNeue-BlackCondObl 140.85 + l_____ HelveticaNeue-ExtBlackCond 140.86 + l_____ HelveticaNeue-ExtBlackCondObl 140.87 + l_____ HelveticaNeue-UltraLightExt 140.88 + l_____ HelveticaNeue-UltraLightExtObl 140.89 + l_____ HelveticaNeue-ThinExt 140.90 + l_____ HelveticaNeue-ThinExtObl 140.91 + l_____ HelveticaNeue-LightExt 140.92 + l_____ HelveticaNeue-LightExtObl 140.93 + l_____ HelveticaNeue-Extended 140.94 + l_____ HelveticaNeue-ExtendedObl 140.95 + l_____ HelveticaNeue-MediumExt 140.96 + l_____ HelveticaNeue-MediumExtObl 140.97 + l_____ HelveticaNeue-BoldExt 140.98 + l_____ HelveticaNeue-BoldExtObl 140.99 + l_____ HelveticaNeue-HeavyExt 140.100 + l_____ HelveticaNeue-HeavyExtObl 140.101 + l_____ HelveticaNeue-BlackExt 140.102 + l_____ HelveticaNeue-BlackExtObl 140.103 + l_____ HelveticaNeueCE-Thin 140.104 + l_____ HelveticaNeueCE-ThinItalic 140.105 + l_____ HelveticaNeueCE-Roman 140.106 + l_____ HelveticaNeueCE-Italic 140.107 + l_____ HelveticaNeueCE-Bold 140.108 + l_____ HelveticaNeueCE-BoldItalic 140.109 + l_____ HelveticaNeueEastA-Thin 140.110 + l_____ HelveticaNeueEastA-ThinObl 140.111 + l_____ HelveticaNeueEastA-Roman 140.112 + l_____ HelveticaNeueEastA-RomanObl 140.113 + l_____ HelveticaNeueEastA-Bold 140.114 + l_____ HelveticaNeueEastA-BoldObl 140.115 + l_____ HeraldusEF-ExtraFett 141.0 + l_____ HighlightEF 143.0 + l_____ Hiroshige-Book 144.0 + l_____ Hiroshige-BookItalic 144.1 + l_____ Hiroshige-Medium 144.2 + l_____ Hiroshige-MediumItalic 144.3 + l_____ Hiroshige-Bold 144.4 + l_____ Hiroshige-BoldItalic 144.5 + l_____ Hiroshige-Black 144.6 + l_____ Hiroshige-BlackItalic 144.7 + l_____ Hobo 145.0 + l_____ HoboEF 145.1 + l_____ HogarthScriptEF-Regular 146.0 + l_____ HondaEF 147.0 + l_____ HoratioEF-Light 148.0 + l_____ HoratioEF-Medium 148.1 + l_____ HoratioEF-Bold 148.2 + l_____ HorleyOldStyleMT-Light 149.0 + l_____ HorleyOldStyleMT-LightItalic 149.1 + l_____ HorleyOldStyleMT-Roman 149.2 + l_____ HorleyOldStyleMT-Italic 149.3 + l_____ HorleyOldStyleMT-SemiBold 149.4 + l_____ HorleyOldStyleMT-SbItalic 149.5 + l_____ HorleyOldStyleMT-Bold 149.6 + l_____ HorleyOldStyleMT-BoldItalic 149.7 + lpi___ HotmetalBorders-One 150.0 + lpi___ HotmetalBorders-Two 150.1 + lpi___ HotmetalBorders-Three 150.2 + lpi___ HotmetalBorders-Four 150.3 + l_____ AmericanTypewriter-Light 153.0 + l_____ AmericanTypewriter-LightA 153.1 + l_____ AmericanTypewriter-Medium 153.2 + l_____ AmericanTypewriter-MediumA 153.3 + l_____ AmericanTypewriter-Bold 153.4 + l_____ AmericanTypewriter-BoldA 153.5 + l_____ AmericanTypewriter-LightCond 153.6 + l_____ AmericanTypewriter-LightCondA 153.7 + l_____ AmericanTypewriter-MediumCond 153.8 + l_____ AmericanTypewriter-MediumCondA 153.9 + l_____ AmericanTypewriter-BoldCond 153.10 + l_____ AmericanTypewriter-BoldCondA 153.11 + l_____ AmericanTypewriterEF-Light 153.14 + l_____ AmericanTypewriterEF-LightItalic 153.15 + l_____ AmericanTypewriterEF-Medium 153.16 + l_____ AmericanTypewriterEF-MediumItalic 153.17 + l_____ AmericanTypewriterEF-Bold 153.18 + l_____ AmericanTypewriterEF-BoldItalic 153.19 + l_____ AmericanTypewriterEF-LightCond 153.20 + l_____ AmericanTypewriterEF-MediumCond 153.21 + l_____ AmericanTypewriterEF-BoldCond 153.22 + l_____ Anna 154.0 + l_____ AnnaEF 154.1 + l_____ AnnaEF-SC 154.2 + l_____ AvantGarde-ExtraLight 155.0 + l_____ AvantGarde-ExtraLightObl 155.1 + l_____ AvantGarde-Book 155.2 + l_____ AvantGarde-BookOblique 155.3 + l_____ AvantGarde-Medium 155.4 + l_____ AvantGarde-MediumObl 155.5 + l_____ AvantGarde-Demi 155.6 + l_____ AvantGarde-DemiOblique 155.7 + l_____ AvantGarde-Bold 155.8 + l_____ AvantGarde-BoldObl 155.9 + l_____ AvantGarde-CondBook 155.10 + l_____ AvantGarde-CondMedium 155.11 + l_____ AvantGarde-CondDemi 155.12 + l_____ AvantGarde-CondBold 155.13 + l_____ AvantGardeGothicCE-Book 155.14 + l_____ AvantGardeGothicCE-Demi 155.15 + l_____ AvantGardeGothicEF-ExtraLight 155.16 + l_____ AvantGardeGothicEF-ExtraLightObl 155.17 + l_____ AvantGardeGothicEF-Book 155.18 + l_____ AvantGardeGothicEF-BookOblique 155.19 + l_____ AvantGardeGothicEF-Medium 155.20 + l_____ AvantGardeGothicEF-MediumOblique 155.21 + l_____ AvantGardeGothicEF-Demi 155.22 + l_____ AvantGardeGothicEF-DemiOblique 155.23 + l_____ AvantGardeGothicEF-Bold 155.24 + l_____ AvantGardeGothicEF-BoldOblique 155.25 + l_____ AvantGardeGothicEF-CondBook 155.26 + l_____ AvantGardeGothicEF-CondMedium 155.27 + l_____ AvantGardeGothicEF-CondDemi 155.28 + l_____ AvantGardeGothicEF-CondBold 155.29 + l_____ AvantGardeMonoEF-Light 155.30 + l_____ AvantGardeMonoEF-LightIta 155.31 + l_____ AvantGardeMonoEF-Bold 155.32 + l_____ AvantGardeMonoEF-BoldIta 155.33 + l_____ Beesknees 156.0 + l_____ BeeskneesEF 156.1 + l_____ Benguiat-Book 157.0 + l_____ Benguiat-BookItalic 157.1 + l_____ Benguiat-Medium 157.2 + l_____ Benguiat-MediumItalic 157.3 + l_____ Benguiat-Bold 157.4 + l_____ Benguiat-BoldItalic 157.5 + l_____ BenguiatEF-Book 157.6 + l_____ BenguiatEF-BookItalic 157.7 + l_____ BenguiatEF-Medium 157.8 + l_____ BenguiatEF-MediumItalic 157.9 + l_____ BenguiatEF-Bold 157.10 + l_____ BenguiatEF-BoldItalic 157.11 + l_____ BenguiatEF-BookCondensed 157.12 + l_____ BenguiatEF-BookCondensedIta 157.13 + l_____ BenguiatEF-MediumCondensed 157.14 + l_____ BenguiatEF-MediumCondensedIta 157.15 + l_____ BenguiatEF-BoldCondensed 157.16 + l_____ BenguiatEF-BoldCondensedIta 157.17 + l_____ Berkeley-Book 158.0 + l_____ Berkeley-BookItalic 158.1 + l_____ Berkeley-Medium 158.2 + l_____ Berkeley-Italic 158.3 + l_____ Berkeley-Bold 158.4 + l_____ Berkeley-BoldItalic 158.5 + l_____ Berkeley-Black 158.6 + l_____ Berkeley-BlackItalic 158.7 + l_____ BerkeleyOldstyleEF-Book 158.8 + l_____ BerkeleyOldstyleEF-BookItalic 158.9 + l_____ BerkeleyOldstyleEF-Medium 158.10 + l_____ BerkeleyOldstyleEF-MediumItalic 158.11 + l_____ BerkeleyOldstyleEF-Bold 158.12 + l_____ BerkeleyOldstyleEF-BoldItalic 158.13 + l_____ BerkeleyOldstyleEF-Black 158.14 + l_____ BerkeleyOldstyleEF-BlackItalic 158.15 + l_____ BoltEF 159.0 + l_____ CharterEF-Regular 160.0 + l_____ CharterEF-RegularSC 160.1 + l_____ CharterEF-RegularItalic 160.2 + l_____ CharterEF-RegularItalicOsF 160.3 + l_____ CharterEF-Bold 160.4 + l_____ CharterEF-BoldSC 160.5 + l_____ CharterEF-BoldItalic 160.6 + l_____ CharterEF-BoldItalicOsF 160.7 + l_____ CharterEF-Black 160.8 + l_____ CharterEF-BlackOsF 160.9 + l_____ CharterEF-BlackItalic 160.10 + l_____ CharterEF-BlackItalicOsF 160.11 + l_____ ElanEF-Book 161.0 + l_____ ElanEF-BookSC 161.1 + l_____ ElanEF-BookItalic 161.2 + l_____ ElanEF-Medium 161.3 + l_____ ElanEF-MediumSC 161.4 + l_____ ElanEF-MediumItalic 161.5 + l_____ ElanEF-Bold 161.6 + l_____ ElanEF-BoldItalic 161.7 + l_____ ElanEF-Black 161.8 + l_____ ElanEF-BlackItalic 161.9 + l_____ ItcEras-Light 162.0 + l_____ ItcEras-Book 162.1 + l_____ ItcEras-Medium 162.2 + l_____ ItcEras-Demi 162.3 + l_____ ItcEras-Bold 162.4 + l_____ ItcEras-Ultra 162.5 + l_____ ItcErasEF-Light 162.6 + l_____ ItcErasEF-Book 162.7 + l_____ ItcErasEF-Medium 162.8 + l_____ ItcErasEF-Demi 162.9 + l_____ ItcErasEF-Bold 162.10 + l_____ ItcErasEF-Ultra 162.11 + l_____ Fenice-Light 163.0 + l_____ Fenice-LightOblique 163.1 + l_____ Fenice-Regular 163.2 + l_____ Fenice-RegularOblique 163.3 + l_____ Fenice-Bold 163.4 + l_____ Fenice-BoldOblique 163.5 + l_____ Fenice-Ultra 163.6 + l_____ Fenice-UltraOblique 163.7 + l_____ FeniceEF-Light 163.8 + l_____ FeniceEF-LightItalic 163.9 + l_____ FeniceEF-Regular 163.10 + l_____ FeniceEF-RegularItalic 163.11 + l_____ FeniceEF-Bold 163.12 + l_____ FeniceEF-BoldItalic 163.13 + l_____ FeniceEF-Ultra 163.14 + l_____ FeniceEF-UltraItalic 163.15 + l_____ FrizQuadrata 164.0 + l_____ FrizQuadrata-Bold 164.1 + l_____ FrizQuadrataEF-Regular 164.2 + l_____ FrizQuadrataEF-RegularSC 164.3 + l_____ FrizQuadrataEF-RegularItalic 164.4 + l_____ FrizQuadrataEF-Bold 164.5 + l_____ FrizQuadrataEF-BoldItalic 164.6 + l_____ Giovanni-Book 165.0 + l_____ Giovanni-BookItalic 165.1 + l_____ Giovanni-Bold 165.2 + l_____ Giovanni-BoldItalic 165.3 + l_____ Giovanni-Black 165.4 + l_____ Giovanni-BlackItalic 165.5 + l_____ GiovanniEF-Book 165.6 + l_____ GiovanniEF-BookSC 165.7 + l_____ GiovanniEF-BookItalic 165.8 + l_____ GiovanniEF-Bold 165.9 + l_____ GiovanniEF-BoldSC 165.10 + l_____ GiovanniEF-BoldItalic 165.11 + l_____ GiovanniEF-Black 165.12 + l_____ GiovanniEF-BlackItalic 165.13 + l_____ Highlander-Book 166.0 + l_____ Highlander-BookItalic 166.1 + l_____ Highlander-Medium 166.2 + l_____ Highlander-MediumItalic 166.3 + l_____ Highlander-Bold 166.4 + l_____ Highlander-BoldItalic 166.5 + l_____ HighlanderEF-Book 166.6 + l_____ HighlanderEF-BookSC 166.7 + l_____ HighlanderEF-BookItalic 166.8 + l_____ HighlanderEF-Medium 166.9 + l_____ HighlanderEF-MediumSC 166.10 + l_____ HighlanderEF-MediumItalic 166.11 + l_____ HighlanderEF-Bold 166.12 + l_____ HighlanderEF-BoldItalic 166.13 + l_____ Isadora-Roman 167.0 + l_____ Isadora-Bold 167.1 + l_____ IsadoraEF-Regular 167.2 + l_____ IsadoraEF-Bold 167.3 + l_____ JamilleEF-Book 168.0 + l_____ JamilleSCEF-Book 168.1 + l_____ JamilleEF-BookItalic 168.2 + l_____ JamilleEF-Bold 168.3 + l_____ JamilleSCEF-Bold 168.4 + l_____ JamilleEF-BoldItalic 168.5 + l_____ JamilleEF-Black 168.6 + l_____ JamilleEF-BlackItalic 168.7 + l_____ Leawood-Book 169.0 + l_____ Leawood-BookItalic 169.1 + l_____ Leawood-Medium 169.2 + l_____ Leawood-MediumItalic 169.3 + l_____ Leawood-Bold 169.4 + l_____ Leawood-BoldItalic 169.5 + l_____ Leawood-Black 169.6 + l_____ Leawood-BlackItalic 169.7 + l_____ LeawoodEF-Book 169.8 + l_____ LeawoodEF-BookSC 169.9 + l_____ LeawoodEF-BookItalic 169.10 + l_____ LeawoodEF-Medium 169.11 + l_____ LeawoodEF-MediumSC 169.12 + l_____ LeawoodEF-MediumItalic 169.13 + l_____ LeawoodEF-Bold 169.14 + l_____ LeawoodEF-BoldItalic 169.15 + l_____ LeawoodEF-Black 169.16 + l_____ LeawoodEF-BlackItalic 169.17 + l_____ LubalinGraph-Book 170.0 + l_____ LubalinGraph-BookOblique 170.1 + l_____ LubalinGraph-Demi 170.2 + l_____ LubalinGraph-DemiOblique 170.3 + l_____ LubalinGraphEF-ExtraLight 170.4 + l_____ LubalinGraphEF-ExtraLightObl 170.5 + l_____ LubalinGraphEF-Book 170.6 + l_____ LubalinGraphEF-BookOblique 170.7 + l_____ LubalinGraphEF-Medium 170.8 + l_____ LubalinGraphEF-MediumOblique 170.9 + l_____ LubalinGraphEF-Demi 170.10 + l_____ LubalinGraphEF-DemiOblique 170.11 + l_____ LubalinGraphEF-Bold 170.12 + l_____ LubalinGraphEF-BoldOblique 170.13 + l_____ LubalinGraphEF-BookCond 170.14 + l_____ LubalinGraphEF-BookCondSC 170.15 + l_____ LubalinGraphEF-BookCondObl 170.16 + l_____ LubalinGraphEF-MediumCond 170.17 + l_____ LubalinGraphEF-MediumCondSC 170.18 + l_____ LubalinGraphEF-MediumCondObl 170.19 + l_____ LubalinGraphEF-DemiCond 170.20 + l_____ LubalinGraphEF-DemiCondObl 170.21 + l_____ LubalinGraphEF-BoldCond 170.22 + l_____ LubalinGraphEF-BoldCondObl 170.23 + l_____ MixageEF-Book 171.0 + l_____ MixageSCEF-Book 171.1 + l_____ MixageEF-BookItalic 171.2 + l_____ MixageEF-Medium 171.3 + l_____ MixageSCEF-Medium 171.4 + l_____ MixageEF-MediumItalic 171.5 + l_____ MixageEF-Bold 171.6 + l_____ MixageEF-BoldItalic 171.7 + l_____ MixageEF-Black 171.8 + l_____ MixageEF-BlackItalic 171.9 + l_____ MotterCorpusEF-Regular 172.0 + l_____ MotterCorpusEF-RegularCondensed 172.1 + l_____ NewtextEF-Light 173.0 + l_____ NewtextEF-LightItalic 173.1 + l_____ NewtextEF-Book 173.2 + l_____ NewtextEF-BookItalic 173.3 + l_____ NewtextEF-Regular 173.4 + l_____ NewtextEF-RegularItalic 173.5 + l_____ NewtextEF-Demi 173.6 + l_____ NewtextEF-DemiItalic 173.7 + l_____ Ozwald 174.0 + l_____ OzwaldEF 174.1 + l_____ PanacheEF-Book 175.0 + l_____ PanacheSCEF-Book 175.1 + l_____ PanacheEF-BookItalic 175.2 + l_____ PanacheEF-Bold 175.3 + l_____ PanacheSCEF-Bold 175.4 + l_____ PanacheEF-BoldItalic 175.5 + l_____ PanacheEF-Black 175.6 + l_____ PanacheEF-BlackItalic 175.7 + l_____ Quorum-Light 176.0 + l_____ Quorum-Book 176.1 + l_____ Quorum-Medium 176.2 + l_____ Quorum-Bold 176.3 + l_____ Quorum-Black 176.4 + l_____ QuorumEF-Light 176.5 + l_____ QuorumEF-Book 176.6 + l_____ QuorumEF-Medium 176.7 + l_____ QuorumEF-Bold 176.8 + l_____ QuorumEF-Black 176.9 + l_____ RondaEF 177.0 + l_____ Slimbach-Book 178.0 + l_____ Slimbach-BookItalic 178.1 + l_____ Slimbach-Medium 178.2 + l_____ Slimbach-MediumItalic 178.3 + l_____ Slimbach-Bold 178.4 + l_____ Slimbach-BoldItalic 178.5 + l_____ Slimbach-Black 178.6 + l_____ Slimbach-BlackItalic 178.7 + l_____ SlimbachEF-Book 178.8 + l_____ SlimbachEF-BookSC 178.9 + l_____ SlimbachEF-BookItalic 178.10 + l_____ SlimbachEF-Medium 178.11 + l_____ SlimbachEF-MediumSC 178.12 + l_____ SlimbachEF-MediumItalic 178.13 + l_____ SlimbachEF-Bold 178.14 + l_____ SlimbachEF-BoldItalic 178.15 + l_____ SlimbachEF-Black 178.16 + l_____ SlimbachEF-BlackItalic 178.17 + l_____ StudioScriptEF 179.0 + l_____ StudioScriptEF-Alternative 179.1 + l_____ SyndorEF-Book 180.0 + l_____ SyndorEF-BookSC 180.1 + l_____ SyndorEF-BookItalic 180.2 + l_____ SyndorEF-Medium 180.3 + l_____ SyndorEF-MediumSC 180.4 + l_____ SyndorEF-MediumItalic 180.5 + l_____ SyndorEF-Bold 180.6 + l_____ SyndorEF-BoldItalic 180.7 + l_____ Tiffany 181.0 + l_____ Tiffany-Italic 181.1 + l_____ Tiffany-Demi 181.2 + l_____ Tiffany-DemiItalic 181.3 + l_____ Tiffany-Heavy 181.4 + l_____ Tiffany-HeavyItalic 181.5 + l_____ TiffanyEF-Light 181.6 + l_____ TiffanyEF-LightItalic 181.7 + l_____ TiffanyEF-Medium 181.8 + l_____ TiffanyEF-MediumItalic 181.9 + l_____ TiffanyEF-Demi 181.10 + l_____ TiffanyEF-DemiItalic 181.11 + l_____ TiffanyEF-Heavy 181.12 + l_____ TiffanyEF-HeavyItalic 181.13 + l_____ Weidemann-Book 182.0 + l_____ Weidemann-BookItalic 182.1 + l_____ Weidemann-Medium 182.2 + l_____ Weidemann-MediumItalic 182.3 + l_____ Weidemann-Bold 182.4 + l_____ Weidemann-BoldItalic 182.5 + l_____ Weidemann-Black 182.6 + l_____ Weidemann-BlackItalic 182.7 + l_____ WeidemannEF-Book 182.8 + l_____ WeidemannEF-BookSC 182.9 + l_____ WeidemannEF-BookItalic 182.10 + l_____ WeidemannEF-Medium 182.11 + l_____ WeidemannEF-MediumSC 182.12 + l_____ WeidemannEF-MediumItalic 182.13 + l_____ WeidemannEF-Bold 182.14 + l_____ WeidemannEF-BoldItalic 182.15 + l_____ WeidemannEF-Black 182.16 + l_____ WeidemannEF-BlackItalic 182.17 + l_____ ManhattanEF 183.0 + l_____ Imago-Light 184.0 + l_____ Imago-LightItalic 184.1 + l_____ Imago-Book 184.2 + l_____ Imago-BookItalic 184.3 + l_____ Imago-Medium 184.4 + l_____ Imago-MediumItalic 184.5 + l_____ Imago-ExtraBold 184.6 + l_____ Imago-ExtraBoldItalic 184.7 + l_____ ImpactaLL 185.0 + l_____ Impressum-Roman 186.0 + l_____ Impressum-Italic 186.1 + l_____ Impressum-Bold 186.2 + l_____ ImpressumEF-Light 186.3 + l_____ ImpressumEF-LightItalic 186.4 + l_____ ImpressumEF-Medium 186.5 + l_____ IndusLL-Normal 187.0 + l_____ IndusLL-Bold 187.1 + l_____ Industria-Solid 188.0 + l_____ Industria-SolidA 188.1 + l_____ Industria-Inline 188.2 + l_____ Industria-InlineA 188.3 + l_____ InflexMT-Bold 189.0 + l_____ Ironwood 190.0 + l_____ ItalianOldStyleMT-Regular 191.0 + l_____ ItalianOldStyleMT-Italic 191.1 + l_____ ItalianOldStyleMT-Bold 191.2 + l_____ ItalianOldStyleMT-BoldItalic 191.3 + l_____ JensonOldStyleEF-BoldCond 192.0 + l_____ Jiffy 193.0 + l_____ JoannaMT 194.0 + l_____ JoannaMT-Italic 194.1 + l_____ JoannaMT-SemiBold 194.2 + l_____ JoannaMT-SemiBoldItalic 194.3 + l_____ JoannaMT-Bold 194.4 + l_____ JoannaMT-BoldItalic 194.5 + l_____ JoannaMT-ExtraBold 194.6 + l_____ JuliaScriptEF 195.0 + l_____ Juniper 196.0 + l_____ KaffeesatzEF-Schwarz 197.0 + l_____ KaffeesatzEF-Suess 197.1 + l_____ KaffeesatzEF-Weiss 197.2 + l_____ KalligraphiaEF 198.0 + l_____ Kaufmann 199.0 + l_____ Kaufmann-Bold 199.1 + l_____ KaufmannEF-Bold 199.2 + l_____ Kigali-Roman 200.0 + l_____ Kigali-SxItalic 200.1 + l_____ Kigali-LxRoman 200.2 + l_____ Kigali-LxItalic 200.3 + l_____ Kigali-ZigZag 200.4 + l_____ Kigali-Block 200.5 + l_____ Kigali-SxRoman 200.6 + l_____ Kigali-Italic 200.7 + l_____ KinoMT 201.0 + l_____ Kismet 202.0 + l_____ KnightsbridgeEF 203.0 + l_____ KnightsbridgeEF-Alternate 203.1 + l_____ KochAntiqua 204.0 + l_____ Kompakt 205.0 + l_____ KuenstlerScript-Medium 206.0 + l_____ KuenstlerScript-TwoBold 206.1 + l_____ KuenstlerScript-Black 206.2 + l_____ KursivschriftStehHaar 207.0 + l_____ KursivschriftLiegHaar 207.1 + l_____ KursivschriftStehend 207.2 + l_____ KursivschriftLiegend 207.3 + l_____ KursivschriftRueckLie 207.4 + l_____ LakeInformal 208.0 + l_____ LakeInformalBold 208.1 + l_____ LatienneEF-Roman 209.0 + l_____ LatienneEF-RomanSC 209.1 + l_____ LatienneEF-Italic 209.2 + l_____ LatienneEF-ItalicSC 209.3 + l_____ LatienneEF-Medium 209.4 + l_____ LatienneEF-MediumSC 209.5 + l_____ LatienneEF-MediumItalic 209.6 + l_____ LatienneEF-Bold 209.7 + l_____ LatienneEF-BoldItalic 209.8 + l_____ LatienneEF-ItalicSwC 209.9 + l_____ LatienneEF-MediumItalicSwC 209.10 + l_____ LatienneEF-BoldItalicSwC 209.11 + l_____ LatinMT-Condensed 210.0 + l_____ LazybonesEF 211.0 + l_____ LeGriffeEF 212.0 + l_____ LeGriffeEF-AlternateOne 212.1 + l_____ LeGriffeEF-AlternateTwo 212.2 + l_____ LetterGothic 213.0 + l_____ LetterGothic-Slanted 213.1 + l_____ LetterGothic-Bold 213.2 + l_____ LetterGothic-BoldSlanted 213.3 + l_____ LibertyEF 214.0 + l_____ Life-Roman 215.0 + l_____ Life-Italic 215.1 + l_____ Life-Bold 215.2 + l_____ LifeEF-Regular 215.3 + l_____ LifeEF-RegularItalic 215.4 + l_____ LifeEF-Bold 215.5 + l_____ LightlineGothicEF 216.0 + l_____ LindsayEF 217.0 + l_____ Linoscript 219.0 + l_____ Linotext 220.0 + l_____ Linotext-Dfr 220.1 + lpi___ LAstrologyPi-One 221.0 + lpi___ LAstrologyPi-Two 221.1 + l_____ Centennial-Light 222.0 + l_____ Centennial-LightSC 222.1 + l_____ Centennial-LightItalic 222.2 + l_____ Centennial-LightItalicOsF 222.3 + l_____ Centennial-Roman 222.4 + l_____ Centennial-RomanSC 222.5 + l_____ Centennial-Italic 222.6 + l_____ Centennial-ItalicOsF 222.7 + l_____ Centennial-Bold 222.8 + l_____ Centennial-BoldOsF 222.9 + l_____ Centennial-BoldItalic 222.10 + l_____ Centennial-BoldItalicOsF 222.11 + l_____ Centennial-Black 222.12 + l_____ Centennial-BlackOsF 222.13 + l_____ Centennial-BlackItalic 222.14 + l_____ Centennial-BlackItalicOsF 222.15 + l_____ CentennialCE-Light 222.16 + l_____ CentennialCE-LightItalic 222.17 + l_____ CentennialCE-Roman 222.18 + l_____ CentennialCE-Italic 222.19 + l_____ CentennialCE-Bold 222.20 + l_____ CentennialCE-BoldItalic 222.21 + l_____ CentennialCE-Black 222.22 + l_____ CentennialCE-BlackItalic 222.23 + lpi___ LDecorationPi-One 223.0 + lpi___ LDecorationPi-Two 223.1 + l_____ DidotLH-Roman 224.0 + l_____ DidotLH-RomanSC 224.1 + l_____ DidotLH-RomanOsF 224.2 + l_____ DidotLH-Italic 224.3 + l_____ DidotLH-ItalicOsF 224.4 + l_____ DidotLH-Bold 224.5 + l_____ DidotLH-BoldOsF 224.6 + l_____ DidotLH-MediumInitials 224.7 + l_____ DidotLH-HeadlineRoman 224.8 + l_____ DidotLH-HeadlineRomanOsF 224.9 + l_____ DidotLH-OrnamentsOne 224.10 + l_____ DidotLH-OrnamentsTwo 224.11 + lpi___ LGamePi-ChessDraughts 225.0 + lpi___ LGamePi-DiceDominoes 225.1 + lpi___ LGamePi-EnglishCards 225.2 + lpi___ LGamePi-FrenchCards 225.3 + lpi___ LHolidayPi-One 227.0 + lpi___ LHolidayPi-Two 227.1 + lpi___ LHolidayPi-Three 227.2 + lpi___ TextilLH-PiOne 228.0 + lpi___ TextilLH-PiTwo 228.1 + lpi___ WarningLH-Pi 229.0 + l_____ LiteraEF-Light 230.0 + l_____ LiteraEF-Regular 230.1 + l_____ LiteraEF-Medium 230.2 + l_____ LiteraEF-Heavy 230.3 + l_____ Lithos-ExtraLight 231.0 + l_____ Lithos-Light 231.1 + l_____ Lithos-Regular 231.2 + l_____ Lithos-Bold 231.3 + l_____ Lithos-Black 231.4 + l_____ LuMarcLL-Roman 232.0 + l_____ LuMarcLL-Bold 232.1 + l_____ Macbeth 234.0 + l_____ Madame-Letters 235.0 + l_____ Madame-Accents 235.1 + l_____ Madame-Numericals 235.2 + l_____ MarconiEF-Book 236.0 + l_____ MarconiSCEF-Book 236.1 + l_____ MarconiEF-BookItalic 236.2 + l_____ MarconiEF-SemiBold 236.3 + l_____ MarconiEF-SemiBoldItalic 236.4 + l_____ Maximus 237.0 + l_____ Melior 238.0 + l_____ Melior-Italic 238.1 + l_____ Melior-Bold 238.2 + l_____ Melior-BoldItalic 238.3 + l_____ Meridien-Roman 239.0 + l_____ Meridien-Italic 239.1 + l_____ Meridien-Medium 239.2 + l_____ Meridien-MediumItalic 239.3 + l_____ Meridien-Bold 239.4 + l_____ Meridien-BoldItalic 239.5 + l_____ MerlinLL 240.0 + l_____ MiamiEF 241.0 + l_____ MicrogrammaEF-MediumExtend 242.0 + l_____ MicrogrammaEF-BoldExtend 242.1 + l_____ MonantiEF-Regular 243.0 + l_____ MonantiEF-SemiBold 243.1 + l_____ MonolineScriptMT 244.0 + l_____ MurrayHillEF 246.0 + l_____ Myriad-Sketch 247.0 + l_____ Myriad-Headline 247.1 + l_____ Myriad-Tilt 247.2 + l_____ Mythos 248.0 + lpi___ NationalCodes-Europe 249.0 + lpi___ NationalCodes-Africa 249.1 + lpi___ NationalCodes-America 249.2 + lpi___ NationalCodes-AsiaPlus 249.3 + lpi___ NationalCodes-Universal 249.4 + l_____ NeueHammerUnziale-One 250.0 + l_____ NeueHammerUnziale-OneAlt 250.1 + l_____ NeueHammerUnziale-TwoAlt 250.2 + l_____ NeueHammerUnziale-Two 250.3 + l_____ NeuzeitSBook 251.0 + l_____ NeuzeitSBook-Heavy 251.1 + l_____ NevisionCasualEF 252.0 + l_____ NewBerolinaMT 253.0 + l_____ NewsGothic 254.0 + l_____ NewsGothic-Oblique 254.1 + l_____ NewsGothic-Bold 254.2 + l_____ NewsGothic-BoldOblique 254.3 + l_____ NicolasCochinEF-Regular 255.0 + l_____ NicolasCochinEF-RegularIta 255.1 + l_____ NicolasCochinEF-Black 255.2 + l_____ NikisEF-Light 256.0 + l_____ NikisEF-LightItalic 256.1 + l_____ NikisEF-SemiBold 256.2 + l_____ NikisEF-SemiBoldItalic 256.3 + l_____ Nofret-Light 257.0 + l_____ Nofret-LightSC 257.1 + l_____ Nofret-LightExpert 257.2 + l_____ Nofret-LightItalic 257.3 + l_____ Nofret-LightItalicOsF 257.4 + l_____ Nofret-LightItalicExpert 257.5 + l_____ Nofret-Regular 257.6 + l_____ Nofret-RegularSC 257.7 + l_____ Nofret-RegularExpert 257.8 + l_____ Nofret-Italic 257.9 + l_____ Nofret-ItalicOsF 257.10 + l_____ Nofret-ItalicExpert 257.11 + l_____ Nofret-Medium 257.12 + l_____ Nofret-MediumSC 257.13 + l_____ Nofret-MediumExpert 257.14 + l_____ Nofret-MediumItalic 257.15 + l_____ Nofret-MediumItalicOsF 257.16 + l_____ Nofret-MediumItalicExpert 257.17 + l_____ Nofret-Bold 257.18 + l_____ Nofret-BoldOsF 257.19 + l_____ Nofret-BoldExpert 257.20 + l_____ Nofret-BoldItalic 257.21 + l_____ Nofret-BoldItalicOsF 257.22 + l_____ Nofret-BoldItalicExpert 257.23 + l_____ NotreDame-Roman 258.0 + l_____ NotreDame-RomanDfr 258.1 + l_____ NotreDame-Ornaments 258.2 + l_____ NuptialScript 259.0 + l_____ OCRA 260.0 + l_____ OCRB 260.1 + l_____ OCRA-A 260.2 + l_____ OCRB-A 260.3 + l_____ OCRBEF-Regular 260.4 + l_____ OctavianMT 261.0 + l_____ OctavianMT-SC 261.1 + l_____ OctavianMT-Expert 261.2 + l_____ OctavianMT-Italic 261.3 + l_____ OctavianMT-ItalicOsF 261.4 + l_____ OctavianMT-ItalicExpert 261.5 + l_____ OdinEF 262.0 + l_____ OldEnglishEF 263.0 + l_____ OldStyleSeven 264.0 + l_____ OldStyleSeven-SC 264.1 + l_____ OldStyleSeven-Italic 264.2 + l_____ OldStyleSeven-ItalicOsF 264.3 + l_____ MonotypeOldStyleMT-BoldOut 264.4 + l_____ OldTypewriterEF-ExLight 265.0 + l_____ OldTypewriterEF-ExLightObl 265.1 + l_____ OldTypewriterEF-Light 265.2 + l_____ OldTypewriterEF-LightObl 265.3 + l_____ OldTypewriterEF-Regular 265.4 + l_____ OldTypewriterEF-RegularA 265.5 + l_____ OldTypewriterEF-RegularObl 265.6 + l_____ OldTypewriterEF-Bold 265.7 + l_____ OldTypewriterEF-BoldObl 265.8 + l_____ OldTypewriterEF-ExBold 265.9 + l_____ OldTypewriterEF-ExBoldObl 265.10 + l_____ OlympiaEF-Light 266.1 + l_____ OlympiaEF-LightOblique 266.2 + l_____ OlympiaEF-SemiBold 266.3 + l_____ OlympiaEF-SemiBoldOblique 266.4 + l_____ Olympian 267.0 + l_____ Olympian-Italic 267.1 + l_____ Olympian-Bold 267.2 + l_____ Olympian-BoldItalic 267.3 + l_____ Omnia 268.0 + l_____ OndineEF 269.1 + l_____ OnyxMT 270.0 + l_____ Orator 271.0 + l_____ Orator-Slanted 271.1 + l_____ Oxford 272.0 + l_____ Caecilia-Light 273.0 + l_____ Caecilia-LightSC 273.1 + l_____ Caecilia-LightOsF 273.2 + l_____ Caecilia-LightItalic 273.3 + l_____ Caecilia-LightItalicSC 273.4 + l_____ Caecilia-LightItalicOsF 273.5 + l_____ Caecilia-Roman 273.6 + l_____ Caecilia-RomanSC 273.7 + l_____ Caecilia-RomanOsF 273.8 + l_____ Caecilia-Italic 273.9 + l_____ Caecilia-ItalicSC 273.10 + l_____ Caecilia-ItalicOsF 273.11 + l_____ Caecilia-Bold 273.12 + l_____ Caecilia-BoldSC 273.13 + l_____ Caecilia-BoldOsF 273.14 + l_____ Caecilia-BoldItalic 273.15 + l_____ Caecilia-BoldItalicSC 273.16 + l_____ Caecilia-BoldItalicOsF 273.17 + l_____ Caecilia-Heavy 273.18 + l_____ Caecilia-HeavySC 273.19 + l_____ Caecilia-HeavyOsF 273.20 + l_____ Caecilia-HeavyItalic 273.21 + l_____ Caecilia-HeavyItalicSC 273.22 + l_____ Caecilia-HeavyItalicOsF 273.23 + l_____ CaeciliaCE-Light 273.24 + l_____ CaeciliaCE-LightItalic 273.25 + l_____ CaeciliaCE-Roman 273.26 + l_____ CaeciliaCE-Italic 273.27 + l_____ CaeciliaCE-Bold 273.28 + l_____ CaeciliaCE-BoldItalic 273.29 + l_____ CaeciliaCE-Heavy 273.30 + l_____ CaeciliaCE-HeavyItalic 273.31 + l_____ PalaceScriptMT-Regular 274.0 + l_____ PalaceScriptMT-Bold 274.1 + l_____ Palatino-Light 275.0 + l_____ Palatino-LightItalic 275.1 + l_____ Palatino-Roman 275.2 + l_____ Palatino-SC 275.3 + l_____ Palatino-Italic 275.4 + l_____ Palatino-ItalicOsF 275.5 + l_____ Palatino-Medium 275.6 + l_____ Palatino-MediumItalic 275.7 + l_____ Palatino-Bold 275.8 + l_____ Palatino-BoldOsF 275.9 + l_____ Palatino-BoldItalic 275.10 + l_____ Palatino-BoldItalicOsF 275.11 + l_____ Palatino-Black 275.12 + l_____ Palatino-BlackItalic 275.13 + l_____ PalatinoCE-Roman 275.14 + l_____ PalatinoCE-Italic 275.15 + l_____ PalatinoCE-Bold 275.16 + l_____ PalatinoCE-BoldItalic 275.17 + l_____ PaletteEF 276.0 + l_____ Parisian 277.0 + l_____ ParkAvenue 278.0 + l_____ ParkAvenueEF 278.1 + l_____ Pelican 279.0 + l_____ PepitaMT 281.0 + l_____ Pepperwood-Regular 282.0 + l_____ Pepperwood-Fill 282.1 + l_____ Pepperwood-Outline 282.2 + l_____ Perpetua 283.0 + l_____ Perpetua-SC 283.1 + l_____ Perpetua-Expert 283.2 + l_____ Perpetua-Italic 283.3 + l_____ Perpetua-ItalicOsF 283.4 + l_____ Perpetua-ItalicExp 283.5 + l_____ Perpetua-Bold 283.6 + l_____ Perpetua-BoldOsF 283.7 + l_____ Perpetua-BoldExp 283.8 + l_____ Perpetua-BoldItalic 283.9 + l_____ Perpetua-BoldItalicOsF 283.10 + l_____ Perpetua-BoldItalicExp 283.11 + l_____ PhotinaMT 284.0 + l_____ PhotinaMT-Italic 284.1 + l_____ PhotinaMT-SemiBold 284.2 + l_____ PhotinaMT-SemiBoldItalic 284.3 + l_____ PhotinaMT-Bold 284.4 + l_____ PhotinaMT-BoldItalic 284.5 + l_____ PhotinaMT-UltraBold 284.6 + l_____ PhotinaMT-UltraBoldItalic 284.7 + l_____ PhyllisEF 285.0 + l_____ PhyllisEF-Initials 285.1 + l_____ PioneerEF 287.0 + l_____ PlazaEF-Regular 288.0 + l_____ PlazaEF-Alternate 288.1 + l_____ PlazaEF-Ultra 288.2 + l_____ PlazaEF-Inline 288.3 + l_____ PlazaEF-Decorative 288.4 + l_____ Ponderosa 289.0 + l_____ PrestigeElite 290.0 + l_____ PrestigeElite-Slanted 290.1 + l_____ PrestigeElite-Bold 290.2 + l_____ PrestigeElite-BoldSlanted 290.3 + l_____ PromotorEF-Regular 291.0 + l_____ QuentinEF 292.0 + l_____ Raleigh 293.0 + l_____ Raleigh-Medium 293.1 + l_____ Raleigh-DemiBold 293.2 + l_____ Raleigh-Bold 293.3 + l_____ RenaultEF-Light 294.0 + l_____ RenaultEF-LightItalic 294.1 + l_____ RenaultEF-Bold 294.2 + l_____ RenaultEF-BoldItalic 294.3 + l_____ Revue 295.0 + l_____ RevueEF 295.1 + l_____ RoemischStehendHar 296.0 + l_____ RoemischLiegendHar 296.1 + l_____ RoemischRueckLiegHar 296.2 + l_____ RoemischStehend 296.3 + l_____ RoemischLiegend 296.4 + l_____ RoemischRueckLiegend 296.5 + l_____ RomanaEF-Light 297.0 + l_____ RomanaEF-Book 297.1 + l_____ RomanaEF-Medium 297.2 + l_____ RomanaEF-Demi 297.3 + l_____ RomanaEF-Bold 297.4 + l_____ RomanaEF-Ultra 297.5 + l_____ Romic-Light 298.0 + l_____ Romic-LightItalic 298.1 + l_____ Romic-Medium 298.2 + l_____ Romic-Bold 298.3 + l_____ Romic-ExtraBold 298.4 + l_____ RomicEF-Light 298.5 + l_____ RomicEF-LightItalic 298.6 + l_____ RomicEF-Medium 298.7 + l_____ RomicEF-Bold 298.8 + l_____ RomicEF-ExtraBold 298.9 + l_____ Rundfunk-Antiqua 299.0 + l_____ Rundfunk-Grotesk 299.1 + l_____ Rusticana-Borders 300.1 + l_____ RuzickaFreehandLH-Roman 301.0 + l_____ RuzickaFreehandLH-RomanSC 301.1 + l_____ RuzickaFreehandLH-Bold 301.2 + l_____ RuzickaFreehandLH-BoldSC 301.3 + l_____ Salto 303.0 + l_____ SanMarco 304.0 + l_____ SanMarco-Dfr 304.1 + l_____ SchnitzLL 305.0 + l_____ SchwenneNegroLL 306.0 + l_____ SchwennelLilaLL 306.1 + l_____ Scotch-Roman 307.0 + l_____ Scotch-Italic 307.1 + l_____ ScriptureEF 308.0 + l_____ Serifa-Light 309.0 + l_____ Serifa-LightItalic 309.1 + l_____ Serifa-Roman 309.2 + l_____ Serifa-Italic 309.3 + l_____ Serifa-Bold 309.4 + l_____ Serifa-Black 309.5 + l_____ ShamrockEF 310.0 + l_____ ShamrockEF-AlternateOne 310.1 + l_____ ShamrockEF-AlternateTwo 310.2 + l_____ Shannon-Book 311.0 + l_____ Shannon-Oblique 311.1 + l_____ Shannon-Bold 311.2 + l_____ Shannon-ExtraBold 311.3 + l_____ Shelley-AllegroScript 312.0 + l_____ Shelley-AndanteScript 312.1 + l_____ Shelley-VolanteScript 312.2 + l_____ Sho-Roman 313.0 + l_____ SinahRomanLL 314.0 + l_____ SinahBoldLL 314.1 + l_____ SinahBlackLL 314.2 + l_____ SinaloaEF 315.0 + l_____ SloganEF 316.0 + l_____ Smaragd 317.0 + l_____ Smaragd-Alternate 318.0 + l_____ SnellRoundhand-Script 318.1 + l_____ SnellRoundhand-BoldScript 318.2 + l_____ SnellRoundhand-BlackScript 318.3 + l_____ Sonata 319.0 + l_____ SpartanClassified-Book 320.0 + l_____ SpartanClassified-Heavy 320.1 + l_____ SpectrumMT 321.0 + l_____ SpectrumMT-SC 321.1 + l_____ SpectrumMT-RomanExpert 321.2 + l_____ SpectrumMT-Italic 321.3 + l_____ SpectrumMT-ItalicOsF 321.4 + l_____ SpectrumMT-ItalicExpert 321.5 + l_____ SpectrumMT-SemiBold 321.6 + l_____ SpectrumMT-SemiBoldOsF 321.7 + l_____ SpectrumMT-SemiBoldExpert 321.8 + l_____ SpiritEF-Light 322.0 + l_____ SpiritEF-Regular 322.1 + l_____ SpiritEF-Bold 322.2 + l_____ Sprint 323.0 + l_____ SquireEF-Regular 324.0 + l_____ SquireEF-Bold 324.1 + l_____ Stencil 325.0 + l_____ StencilEF 325.1 + l_____ Stop 326.0 + l_____ StopEF 326.1 + l_____ Studz 327.0 + l_____ SuperstarEF-Shadow 328.0 + l_____ SuperstarEF-Regular 328.1 + l_____ SwiftEF-Light 329.0 + l_____ SwiftEF-LightItalic 329.1 + l_____ SwiftEF-Regular 329.2 + l_____ SwiftSCEF-Regular 329.3 + l_____ SwiftEF-RegularItalic 329.4 + l_____ SwiftEF-Bold 329.5 + l_____ SwiftEF-ExtraBold 329.6 + l_____ SwiftEF-BoldCondensed 329.7 + l_____ Syntax-Roman 331.0 + l_____ Syntax-Italic 331.1 + l_____ Syntax-Bold 331.2 + l_____ Syntax-Black 331.3 + l_____ Syntax-UtraBlack 331.4 + l_____ TangoEF 332.0 + l_____ TarragonEF 333.0 + l_____ Tekton 334.0 + l_____ Tekton-Oblique 334.1 + l_____ Tekton-Bold 334.2 + l_____ Tekton-BoldOblique 334.3 + l_____ Tempo-HeavyCondensed 335.0 + l_____ Tempo-HeavyCondensedItalic 335.1 + l_____ ThorowgoodEF-Regular 336.0 + l_____ ThorowgoodEF-RegularItalic 336.1 + l_____ ThunderbirdEF-ExtraCondensed 337.0 + l_____ ThunderbirdEF-Regular 337.1 + l_____ TiloEF 338.0 + l_____ TimelessEF-Light 339.0 + l_____ TimelessEF-LightItalic 339.1 + l_____ TimelessEF-Bold 339.2 + l_____ TitusEF 340.0 + l_____ Toolbox 341.0 + l_____ TopographischeZahlentafel 342.0 + l_____ Trajan-Regular 343.0 + l_____ Trajan-Bold 343.1 + l_____ TradeGothicLH-BoldExtended 343.2 + l_____ TrumpMediaeval-Roman 346.0 + l_____ TrumpMediaeval-RomanSC 346.1 + l_____ TrumpMediaeval-Italic 346.2 + l_____ TrumpMediaeval-ItalicOsF 346.3 + l_____ TrumpMediaeval-Bold 346.4 + l_____ TrumpMediaeval-BoldOsF 346.5 + l_____ TrumpMediaeval-BoldItalic 346.6 + l_____ TrumpMediaeval-BoldItalicOsF 346.7 + l_____ Umbra 348.0 + l_____ Univers-Light 349.0 + l_____ Univers-LightOblique 349.1 + l_____ Univers 349.2 + l_____ Univers-Oblique 349.3 + l_____ Univers-Bold 349.4 + l_____ Univers-BoldOblique 349.5 + l_____ Univers-Black 349.7 + l_____ Univers-BlackOblique 349.8 + l_____ Univers-ExtraBlack 349.9 + l_____ Univers-ExtraBlackOblique 349.10 + l_____ Univers-CondensedLight 349.11 + l_____ Univers-CondensedLightOblique 349.12 + l_____ Univers-Condensed 349.13 + l_____ Univers-CondensedOblique 349.14 + l_____ Univers-CondensedBold 349.15 + l_____ Univers-CondensedBoldOblique 349.16 + l_____ Univers-ThinUltraCondensed 349.17 + l_____ Univers-LightUltraCondensedTwo 349.18 + l_____ Univers-UltraCondensed 349.19 + l_____ Univers-Extended 349.20 + l_____ Univers-ExtendedObl 349.21 + l_____ Univers-BoldExt 349.22 + l_____ Univers-BoldExtObl 349.23 + l_____ Univers-BlackExt 349.24 + l_____ Univers-BlackExtObl 349.25 + l_____ Univers-ExtraBlackExt 349.26 + l_____ Univers-ExtraBlackExtObl 349.27 + l_____ UniversCE-Light 349.28 + l_____ UniversCE-LightOblique 349.29 + l_____ UniversCE-Medium 349.30 + l_____ UniversCE-Oblique 349.31 + l_____ UniversCE-Bold 349.32 + l_____ UniversCE-BoldOblique 349.33 + l_____ UniversCE-Black 349.34 + l_____ UniversCE-BlackOblique 349.35 + lpi___ MathematicalPi-One 350.0 + lpi___ MathematicalPi-Two 350.1 + lpi___ MathematicalPi-Three 350.2 + lpi___ MathematicalPi-Four 350.3 + lpi___ MathematicalPi-Five 350.4 + lpi___ MathematicalPi-Six 350.5 + lpi___ Unversal-GreekwithMathPi 351.0 + lpi___ MICR 351.1 + lpi___ Unversal-NewswithCommPi 351.2 + l_____ University-Roman 352.0 + l_____ UniversityEF-Roman 352.1 + l_____ UniversityEF-RomanItalic 352.2 + l_____ UniversityEF-Bold 352.3 + l_____ VAGRounded-Thin 353.0 + l_____ VAGRounded-Light 353.1 + l_____ VAGRounded-Bold 353.2 + l_____ VAGRounded-Black 353.3 + l_____ VAGRundschriftEF 353.4 + l_____ VanDijkEF 354.0 + l_____ VictorianEF 355.0 + l_____ VivaldiEF 356.0 + l_____ Walbaum-Roman 357.0 + l_____ Walbaum-RomanSC 357.1 + l_____ Walbaum-RomanOsF 357.2 + l_____ Walbaum-Italic 357.3 + l_____ Walbaum-ItalicOsF 357.4 + l_____ Walbaum-Bold 357.5 + l_____ Walbaum-BoldOsF 357.6 + l_____ Walbaum-BoldItalic 357.7 + l_____ Walbaum-BoldItalicOsF 357.8 + l_____ WalbaumEF-Regular 357.9 + l_____ WalbaumEF-RegularItalic 357.10 + l_____ WalbaumEF-Medium 357.11 + l_____ WalbaumEF-MediumItalic 357.12 + l_____ WalbaumEF-Bold 357.13 + l_____ WalbaumEF-BoldItalic 357.14 + l_____ WalbaumBook-Regular 357.15 + l_____ WalbaumBook-RegularSC 357.16 + l_____ WalbaumBook-RegularExpert 357.17 + l_____ WalbaumBook-Italic 357.18 + l_____ WalbaumBook-ItalicOsF 357.19 + l_____ WalbaumBook-ItalicExpert 357.20 + l_____ WalbaumBook-Medium 357.21 + l_____ WalbaumBook-MediumSC 357.22 + l_____ WalbaumBook-MdExpert 357.23 + l_____ WalbaumBook-MediumItalic 357.24 + l_____ WalbaumBook-MdItalicOsF 357.25 + l_____ WalbaumBook-MdItalicExpert 357.26 + l_____ WalbaumBook-Bold 357.27 + l_____ WalbaumBook-BoldOsF 357.28 + l_____ WalbaumBook-BoldExpert 357.29 + l_____ WalbaumBook-BoldItalic 357.30 + l_____ WalbaumBook-BoldItalicOsF 357.31 + l_____ WalbaumBook-BoldItalicExpert 357.32 + l_____ WalbaumFrakturEF 357.33 + l_____ WhyNotEF 358.0 + l_____ WilhelmKlingsporGotisch 359.0 + l_____ WilhelmKlingsporGotisch-Dfr 359.1 + l_____ WindsorEF-Light 360.0 + l_____ WindsorEF-Bold 360.1 + l_____ WindsorEF-UltraHeavy 360.2 + l_____ WindsorEF-BoldOutline 360.3 + l_____ WindsorEF-LightCondensed 360.4 + l_____ WindsorEF-ExtraBoldCondensed 360.5 + l_____ WindsorEF-Elongated 360.6 + ppi___ WoodtypeOrnaments-One 361.0 + ppi___ WoodtypeOrnaments-Two 361.1 + l_____ ZipperEF 363.0 + l_____ BelshawEF 364.0 + l_____ Belwe-Light 365.0 + l_____ Belwe-Medium 365.1 + l_____ Belwe-Bold 365.2 + l_____ Belwe-Condensed 365.3 + l_____ BelweEF-Light 365.4 + l_____ BelweEF-Italic 365.5 + l_____ BelweEF-Medium 365.6 + l_____ BelweEF-Bold 365.7 + l_____ BelweEF-BoldCondensed 365.8 + l_____ Bembo 366.0 + l_____ Bembo-SC 366.1 + l_____ Bembo-Expert 366.2 + l_____ Bembo-Italic 366.3 + l_____ Bembo-ItalicOsF 366.4 + l_____ Bembo-ItalicExpert 366.5 + l_____ Bembo-Semibold 366.6 + l_____ Bembo-SemiboldOsF 366.7 + l_____ Bembo-SemiboldExpert 366.8 + l_____ Bembo-SemiboldItalic 366.9 + l_____ Bembo-SemiboldItalicOsF 366.10 + l_____ Bembo-SemiboldItalicExpert 366.11 + l_____ Bembo-Bold 366.12 + l_____ Bembo-BoldOsF 366.13 + l_____ Bembo-BoldExpert 366.14 + l_____ Bembo-BoldItalic 366.15 + l_____ Bembo-BoldItalicOsF 366.16 + l_____ Bembo-BoldItalicExpert 366.17 + l_____ Bembo-ExtraBold 366.18 + l_____ Bembo-ExtraBoldOsF 366.19 + l_____ Bembo-ExtraBoldExpert 366.20 + l_____ Bembo-ExtraBoldItalic 366.21 + l_____ Bembo-ExtraBoldItalicOsF 366.22 + l_____ Bembo-ExtraBoldItalicExpert 366.23 + l_____ BerlinerGrotesk-Light 368.0 + l_____ BerlinerGrotesk-Medium 368.1 + l_____ LoType-Light 369.0 + l_____ LoType-Regular 369.1 + l_____ LoType-Medium 369.2 + l_____ LoType-MediumItalic 369.3 + l_____ LoType-Bold 369.4 + l_____ LoType-MediumCondensed 369.5 + l_____ BiffoMT 370.0 + l_____ BigbandTerrazzo 371.1 + l_____ Birch 372.0 + l_____ BirdsEF 373.0 + l_____ BlockBE-Regular 375.0 + l_____ BlockBE-Italic 375.1 + l_____ BlockBE-Heavy 375.2 + l_____ BlockBE-Condensed 375.3 + l_____ BlockBE-ExtraCn 375.4 + l_____ BlockBE-ExtraCnItalic 375.5 + l_____ BoberiaLL-Light 376.0 + l_____ BoberiaLL-LightItalic 376.1 + l_____ BoberiaLL-SemiBold 376.2 + l_____ Bodoni-Book 377.0 + l_____ Bodoni-BookItalic 377.1 + l_____ Bodoni 377.2 + l_____ Bodoni-Italic 377.3 + l_____ Bodoni-Bold 377.4 + l_____ Bodoni-BoldItalic 377.5 + l_____ Bodoni-BoldCondensed 377.6 + l_____ BodoniEF-Light 377.7 + l_____ BodoniEF-LightIta 377.8 + l_____ BodoniEF-Regular 377.9 + l_____ BodoniEF-RegularIta 377.10 + l_____ BodoniEF-DemiBold 377.11 + l_____ BodoniEF-Bold 377.12 + l_____ BodoniEF-DemiBoldIta 377.13 + l_____ BodoniEF-BoldIta 377.14 + l_____ BodoniEF-RegularCn 377.15 + l_____ BodoniEF-RegularCnIta 377.16 + l_____ BodoniEF-BoldCn 377.17 + l_____ BodoniEF-DemiBoldCn 377.18 + l_____ BodoniEF-BoldCnItalic 377.19 + l_____ BodoniEF-DemiBoldCnIta 377.20 + l_____ BodoniEF-Black 377.21 + l_____ BodoniEF-BlackIta 377.22 + l_____ BodoniEF-Ultra 377.23 + l_____ BauerBodoni-Roman 377.24 + l_____ BauerBodoni-RomanSC 377.25 + l_____ BauerBodoni-RomanOsF 377.26 + l_____ BauerBodoni-Italic 377.27 + l_____ BauerBodoni-ItalicOsF 377.28 + l_____ BauerBodoni-Bold 377.29 + l_____ BauerBodoni-BoldOsF 377.30 + l_____ BauerBodoni-BoldItalic 377.31 + l_____ BauerBodoni-BoldItalicOsF 377.32 + l_____ BauerBodoni-Black 377.33 + l_____ BauerBodoni-BlackItalic 377.34 + l_____ BauerBodoni-BoldCond 377.35 + l_____ BauerBodoni-BlackCond 377.36 + l_____ BauerBodoniCE-Roman 377.37 + l_____ BauerBodoniCE-Italic 377.38 + l_____ BauerBodoniCE-Bold 377.39 + l_____ BauerBodoniCE-BoldItalic 377.40 + l_____ BauerBodoniCE-Black 377.41 + l_____ BauerBodoniCE-BlackItalic 377.42 + l_____ BauerBodoniCE-BoldCondensed 377.43 + l_____ BauerBodoniCE-BlackCondensed 377.44 + l_____ BauerBodoniEF-Regular 377.45 + l_____ BauerBodoniEF-RegularItalic 377.46 + l_____ BauerBodoniEF-Medium 377.47 + l_____ BauerBodoniEF-MediumItalic 377.48 + l_____ BauerBodoniEF-Bold 377.49 + l_____ BauerBodoniEF-BoldItalic 377.50 + l_____ BodoniBE-Light 377.51 + l_____ BodoniBE-LightSC 377.52 + l_____ BodoniBE-LightExpert 377.53 + l_____ BodoniBE-LightItalic 377.54 + l_____ BodoniBE-LightItalicOsF 377.55 + l_____ BodoniBE-LightItalicExpert 377.56 + l_____ BodoniBE-Regular 377.57 + l_____ BodoniBE-RegularSC 377.58 + l_____ BodoniBE-RegularExp 377.59 + l_____ BodoniBE-Italic 377.60 + l_____ BodoniBE-ItalicOsF 377.61 + l_____ BodoniBE-ItalicExp 377.62 + l_____ BodoniBE-Medium 377.63 + l_____ BodoniBE-MediumSC 377.64 + l_____ BodoniBE-MediumExp 377.65 + l_____ BodoniBE-MediumItalic 377.66 + l_____ BodoniBE-MediumItalicOsF 377.67 + l_____ BodoniBE-MediumItalicExp 377.68 + l_____ BodoniBE-Bold 377.69 + l_____ BodoniBE-BoldOsF 377.70 + l_____ BodoniBE-BoldExp 377.71 + l_____ BodoniBE-BoldItalic 377.72 + l_____ BodoniBE-BoldItalicOsF 377.73 + l_____ BodoniBE-BoldItalicExp 377.74 + l_____ BodoniBE-Condensed 377.75 + l_____ BodoniBE-CnItalic 377.76 + l_____ BodoniBE-MediumCn 377.77 + l_____ BodoniBE-MediumCnItalic 377.78 + l_____ BodoniBE-BoldCn 377.79 + l_____ BodoniBE-BoldCnItalic 377.80 + l_____ Bodoni-Poster 377.81 + l_____ Bodoni-PosterItalic 377.82 + l_____ Bodoni-PosterCompressed 377.83 + l_____ BodoniSixEF-Book 377.84 + l_____ BodoniSixEF-BookSC 377.85 + l_____ BodoniSixEF-BookItalic 377.86 + l_____ BodoniSixEF-Bold 377.87 + l_____ BodoniSixEF-BoldItalic 377.88 + l_____ BodoniTwelveEF-Book 377.89 + l_____ BodoniTwelveEF-BookSC 377.90 + l_____ BodoniTwelveEF-BookItalic 377.91 + l_____ BodoniTwelveEF-Bold 377.92 + l_____ BodoniTwelveEF-BoldItalic 377.93 + l_____ BodoniSeventytwoEF-Book 377.94 + l_____ BodoniSeventytwoEF-BookSC 377.95 + l_____ BodoniSeventytwoEF-BookIta 377.96 + l_____ BodoniSeventytwoEF-Bold 377.97 + l_____ BodoniSeventytwoEF-BoldIta 377.98 + l_____ BodoniOldFaceBE-Regular 377.99 + l_____ BodoniOldFaceBE-RegularSC 377.100 + l_____ BodoniOldFaceBE-RegularExp 377.101 + l_____ BodoniOldFaceBE-Italic 377.102 + l_____ BodoniOldFaceBE-ItalicSC 377.103 + l_____ BodoniOldFaceBE-ItalicExp 377.104 + l_____ BodoniOldFaceBE-Medium 377.105 + l_____ BodoniOldFaceBE-MediumSC 377.106 + l_____ BodoniOldFaceBE-MediumExp 377.107 + l_____ BodoniOldFaceBE-MediumIt 377.108 + l_____ BodoniOldFaceBE-MediumItOsF 377.109 + l_____ BodoniOldFaceBE-MediumItExp 377.110 + l_____ BodoniOldFaceBE-Bold 377.111 + l_____ BodoniOldFaceBE-BoldOsF 377.112 + l_____ BodoniOldFaceBE-BoldExp 377.113 + l_____ BodoniOldFaceBE-BoldIt 377.114 + l_____ BodoniOldFaceBE-BoldItOsF 377.115 + l_____ BodoniOldFaceBE-BoldItExp 377.116 + l_____ BordeauxEF-Regular 378.0 + l_____ BordeauxEF-RegularItalic 378.1 + l_____ BordeauxScriptEF 378.2 + l_____ Boulevard 380.0 + l_____ BritannicEF-ExtraLight 382.0 + l_____ BritannicEF-Light 382.1 + l_____ BritannicEF-Medium 382.2 + l_____ BritannicEF-Bold 382.3 + l_____ BritannicEF-Ultra 382.4 + l_____ BrodyEF 383.0 + l_____ BronxEF 384.0 + l_____ BrushScript 385.0 + l_____ BrushScriptEF 385.1 + l_____ BuxomEF 386.0 + l_____ CabaretEF 387.0 + l_____ CalvertMT-Light 389.0 + l_____ CalvertMT-Regular 389.1 + l_____ CalvertMT-Bold 389.2 + l_____ CamelliaEF 390.0 + l_____ Candida-Roman 391.0 + l_____ Candida-Italic 391.1 + l_____ Candida-Bold 391.2 + l_____ CandidaEF-Regular 391.3 + l_____ CandidaEF-RegularItalic 391.4 + l_____ CandidaEF-Medium 391.5 + l_____ CandidaEF-RegularCondensed 391.6 + l_____ CandidaEF-MediumCondensed 391.7 + l_____ CantoriaMT-Light 392.0 + l_____ CantoriaMT-LightItalic 392.1 + l_____ CantoriaMT-Roman 392.2 + l_____ CantoriaMT-Italic 392.3 + l_____ CantoriaMT-SemiBold 392.4 + l_____ CantoriaMT-SemiBoldItalic 392.5 + l_____ CantoriaMT-Bold 392.6 + l_____ CantoriaMT-BoldItalic 392.7 + l_____ CantoriaMT-ExtraBold 392.8 + l_____ CantoriaMT-ExtraBoldItalic 392.9 + l_____ Carolina 393.0 + l_____ Carolina-Dfr 393.1 + l_____ Carta 394.0 + l_____ CartoonScript-Roman 395.0 + l_____ ACaslon-Regular 396.0 + l_____ ACaslon-AltRegular 396.1 + l_____ ACaslon-RegularSC 396.2 + l_____ ACaslonExp-Regular 396.3 + l_____ ACaslon-Italic 396.4 + l_____ ACaslon-AltItalic 396.5 + l_____ ACaslon-ItalicOsF 396.6 + l_____ ACaslonExp-Italic 396.7 + l_____ ACaslon-Semibold 396.8 + l_____ ACaslon-AltSemibold 396.9 + l_____ ACaslon-SemiboldSC 396.10 + l_____ ACaslonExp-Semibold 396.11 + l_____ ACaslon-SemiboldItalic 396.12 + l_____ ACaslon-AltSemiboldItalic 396.13 + l_____ ACaslon-SemiboldItalicOsF 396.14 + l_____ ACaslonExp-SemiboldItalic 396.15 + l_____ ACaslon-Bold 396.16 + l_____ ACaslon-AltBold 396.17 + l_____ ACaslon-BoldOsF 396.18 + l_____ ACaslonExp-Bold 396.19 + l_____ ACaslon-BoldItalic 396.20 + l_____ ACaslon-AltBoldItalic 396.21 + l_____ ACaslon-BoldItalicOsF 396.22 + l_____ ACaslonExp-BoldItalic 396.23 + l_____ ACaslon-SwashItalic 396.24 + l_____ ACaslon-SwashSemiboldItalic 396.25 + l_____ ACaslon-SwashBoldItalic 396.26 + l_____ ACaslon-Ornaments 396.27 + l_____ CaslonThree-Roman 396.28 + l_____ CaslonThree-RomanSC 396.29 + l_____ CaslonThree-Italic 396.30 + l_____ CaslonThree-ItalicOsF 396.31 + l_____ CaslonFiveFourty-Roman 396.32 + l_____ CaslonFiveFourty-RomanSC 396.33 + l_____ CaslonFiveFourty-Italic 396.34 + l_____ CaslonFiveFourty-ItalicOsF 396.35 + l_____ CaslonOpenFace 396.36 + l_____ CaslonFiveFourtyEF-Italic 396.37 + l_____ CaslonBlackEF 396.38 + l_____ CaslonAntiqueEF 396.39 + l_____ CaslonGraphiqueEF 396.40 + l_____ CaslonTwoTwentyFour-Book 396.41 + l_____ CaslonTwoTwentyFour-BookIt 396.42 + l_____ CaslonTwoTwentyFour-Medium 396.43 + l_____ CaslonTwoTwentyFour-MediumIt 396.44 + l_____ CaslonTwoTwentyFour-Bold 396.45 + l_____ CaslonTwoTwentyFour-BoldIt 396.46 + l_____ CaslonTwoTwentyFour-Black 396.47 + l_____ CaslonTwoTwentyFour-BlackIt 396.48 + l_____ CaslonTwoTwentyFourEF-Book 396.49 + l_____ CaslonTwoTwentyFourEF-BookIt 396.50 + l_____ CaslonTwoTwentyFourEF-Medium 396.51 + l_____ CaslonTwoTwentyFourEF-MediumIt 396.52 + l_____ CaslonTwoTwentyFourEF-Bold 396.53 + l_____ CaslonTwoTwentyFourEF-BoldI 396.54 + l_____ CaslonTwoTwentyFourEF-Black 396.55 + l_____ CaslonTwoTwentyFourEF-BlackIt 396.56 + l_____ CaslonBookBE-Regular 396.57 + l_____ CaslonBookBE-RegularSC 396.58 + l_____ CaslonBookBE-RegularExp 396.59 + l_____ CaslonBookBE-Italic 396.60 + l_____ CaslonBookBE-ItalicOsF 396.61 + l_____ CaslonBookBE-ItalicExp 396.62 + l_____ CaslonBookBE-Medium 396.63 + l_____ CaslonBookBE-MediumSC 396.64 + l_____ CaslonBookBE-MediumExp 396.65 + l_____ CaslonBookBE-Bold 396.66 + l_____ CaslonBookBE-BoldOsF 396.67 + l_____ CaslonBookBE-BoldExp 396.68 + l_____ CastleEF-Light 397.0 + l_____ CastleEF-Book 397.1 + l_____ CastleEF-Bold 397.2 + l_____ CastleEF-Ultra 397.3 + l_____ Catull-Regular 398.0 + l_____ Catull-Italic 398.1 + l_____ Catull-Medium 398.2 + l_____ Catull-Bold 398.3 + l_____ Caxton-Light 399.0 + l_____ Caxton-LightItalic 399.1 + l_____ Caxton-BookItalic 399.2 + l_____ Caxton-Book 399.3 + l_____ Caxton-Bold 399.4 + l_____ Caxton-BoldItalic 399.5 + l_____ CaxtonEF-Light 399.6 + l_____ CaxtonEF-LightItalic 399.7 + l_____ CaxtonEF-Book 399.8 + l_____ CaxtonEF-BookItalic 399.9 + l_____ CaxtonEF-Bold 399.10 + l_____ CaxtonEF-BoldItalic 399.11 + l_____ CaxtonEF-ExtraBold 399.12 + l_____ CaxtonEF-ExtraBoldItalic 399.13 + l_____ CaxtonEF-BoldCondensed 399.14 + l_____ CaxtonEF-ExtraBoldCondensed 399.15 + l_____ CentaurMT-Regular 400.0 + l_____ CentaurMT-RegularSC 400.1 + l_____ CentaurMT-RegularExpert 400.2 + l_____ CentaurMT-Italic 400.3 + l_____ CentaurMT-ItalicA 400.4 + l_____ CentaurMT-ItalicAlternate 400.5 + l_____ CentaurMT-ItalicOsF 400.6 + l_____ CentaurMT-ItalicExpert 400.7 + l_____ CentaurMT-Bold 400.8 + l_____ CentaurMT-BoldOsF 400.9 + l_____ CentaurMT-BoldExpert 400.10 + l_____ CentaurMT-BoldItalic 400.11 + l_____ CentaurMT-BoldItalicOsF 400.12 + l_____ CentaurMT-BoldItalicExpert 400.13 + l_____ CentaurMT-ItalicSwash 400.14 + l_____ ChallengeEF-Bold 401.0 + l_____ ChallengeEF-ExtraBold 401.1 + l_____ Charme 402.0 + l_____ Cheltenham-Light 403.0 + l_____ Cheltenham-LightItalic 403.1 + l_____ Cheltenham-Book 403.2 + l_____ Cheltenham-BookItalic 403.3 + l_____ Cheltenham-Bold 403.4 + l_____ Cheltenham-BoldItalic 403.5 + l_____ Cheltenham-Ultra 403.6 + l_____ Cheltenham-UltraItalic 403.7 + l_____ Cheltenham-LightCond 403.8 + l_____ Cheltenham-LightCondItalic 403.9 + l_____ Cheltenham-BookCond 403.10 + l_____ Cheltenham-BookCondItalic 403.11 + l_____ Cheltenham-BoldCond 403.12 + l_____ Cheltenham-BoldCondItalic 403.13 + l_____ Cheltenham-UltraCond 403.14 + l_____ Cheltenham-UltraCondItalic 403.15 + l_____ CheltenhamEF-Light 403.16 + l_____ CheltenhamEF-LightItalic 403.17 + l_____ CheltenhamEF-Book 403.18 + l_____ CheltenhamEF-BookItalic 403.19 + l_____ CheltenhamEF-Bold 403.20 + l_____ CheltenhamEF-BoldItalic 403.21 + l_____ CheltenhamEF-Ultra 403.22 + l_____ CheltenhamEF-UltraItalic 403.23 + l_____ CheltenhamHandtEF-Bold 403.24 + l_____ CheltenhamHandtEF-BoldItalic 403.25 + l_____ CheltenhamEF-LightCond 403.26 + l_____ CheltenhamEF-LightCondItalic 403.27 + l_____ CheltenhamEF-BookCond 403.28 + l_____ CheltenhamEF-BookCondItalic 403.29 + l_____ CheltenhamEF-BoldCond 403.30 + l_____ CheltenhamEF-BoldCondItalic 403.31 + l_____ CheltenhamEF-UltraCond 403.32 + l_____ CheltenhamEF-UltraCondItalic 403.33 + l_____ CheltenhamOldStyleEF 403.34 + l_____ Cheq 404.0 + l_____ ChiselEF 405.0 + l_____ DigiGroteskNEF-Light 406.0 + l_____ DigiGroteskNEF-Bold 406.1 + l_____ DigiGroteskNEF-SemiBoldCond 406.2 + l_____ DigiGroteskNEF-BoldCondens 406.3 + l_____ DigiGroteskSEF-Light 406.4 + l_____ DigiGroteskSEF-SemiBold 406.5 + l_____ DomCasual 407.0 + l_____ DomCasual-Bold 407.1 + l_____ DomEF-CasualRegular 407.2 + l_____ DomEF-DiagonalRegular 407.3 + l_____ DomEF-CasualBold 407.4 + l_____ DomEF-DiagonalBold 407.5 + l_____ DorchesterScriptMT 408.0 + l_____ DynamoEF-Medium 409.0 + l_____ DynamoEF-Bold 409.1 + l_____ DynamoEF-BoldShadow 409.2 + l_____ DynamoEF-BoldCondensed 409.3 + l_____ EdisonEF-Book 410.0 + l_____ EdisonEF-BookItalic 410.1 + l_____ EdisonEF-SemiBold 410.2 + l_____ EdisonEF-SemiBoldItalic 410.3 + l_____ EdisonEF-BoldCondensed 410.4 + l_____ EdwardianEF-Light 411.0 + l_____ EdwardianEF-LightIta 411.1 + l_____ EdwardianEF-Medium 411.2 + l_____ EdwardianEF-MediumIta 411.3 + l_____ EdwardianEF-Bold 411.4 + l_____ EdwardianEF-BoldIta 411.5 + l_____ EdwardianEF-ExtraBold 411.6 + l_____ EdwardianEF-ExtraBoldIta 411.7 + l_____ EgizioEF-Condensed 412.0 + l_____ EgyptianEF-BoldCondensed 414.0 + l_____ EgyptianEF-BoldExtended 414.1 + l_____ EgyptienneEF-MediumCond 415.0 + l_____ EhrhardtMT-Roman 416.0 + l_____ EhrhardtMT-Italic 416.1 + l_____ EhrhardtMT-SemiBold 416.2 + l_____ EhrhardtMt-SemiBoldItalic 416.3 + l_____ EirinnAsciiLL 417.0 + l_____ EirinnGaelicLL 417.1 + l_____ ElGreco 418.0 + l_____ ElefontEF 419.0 + l_____ EllingtonMT-Light 420.0 + l_____ EllingtonMT-LightItalic 420.1 + l_____ EllingtonMT-Roman 420.2 + l_____ EllingtonMT-Italic 420.3 + l_____ EllingtonMT-Bold 420.4 + l_____ EllingtonMT-BoldItalic 420.5 + l_____ EllingtonMT-ExtraBold 420.6 + l_____ EllingtonMT-ExtraBoldItalic 420.7 + l_____ EnglishScriptEF-Regular 421.0 + l_____ EnglishScriptEF-Bold 421.1 + l_____ EnglishScriptEF-DemiBold 421.2 + l_____ Erbar-LightCondensed 422.0 + l_____ Erbar-BoldCondensed 422.1 + l_____ EscorialEF-Outline 423.0 + l_____ EscorialEF 423.1 + l_____ EthnoFontEF 424.0 + l_____ Eurostile 425.0 + l_____ Eurostile-Oblique 425.1 + l_____ Eurostile-Demi 425.2 + l_____ Eurostile-DemiOblique 425.3 + l_____ Eurostile-Bold 425.4 + l_____ Eurostile-BoldOblique 425.5 + l_____ Eurostile-Condensed 425.6 + l_____ Eurostile-BoldCondensed 425.7 + l_____ Eurostile-ExtendedTwo 425.8 + l_____ Eurostile-BoldExtendedTwo 425.9 + l_____ EurostileEF-Regular 425.10 + l_____ EurostileEF-Black 425.11 + l_____ Excelsior 426.0 + l_____ Excelsior-Italic 426.1 + l_____ Excelsior-Bold 426.2 + l_____ ExcelsiorCE-Roman 426.3 + l_____ ExcelsiorCE-Italic 426.4 + l_____ ExcelsiorCE-Bold 426.5 + l_____ ExcelsiorCyr-Upright 426.6 + l_____ ExcelsiorCyr-Inclined 426.7 + l_____ ExcelsiorCyr-Bold 426.8 + l_____ ExcelsiorEastA-Roman 426.9 + l_____ ExcelsiorEastA-Italic 426.10 + l_____ ExcelsiorEastA-Bold 426.11 + l_____ F2FAlLineato 427.0 + l_____ F2FCZYKagoTrans 427.1 + l_____ F2FEntebbe 427.2 + l_____ F2FHogRoach 427.3 + l_____ F2FMadZineFear 427.4 + l_____ F2FMadZineWip 427.5 + l_____ F2FMekkasoTomanik 427.6 + l_____ F2FMetamorfosi 427.7 + l_____ F2FOCRAlexcyzk 427.8 + l_____ F2FPixmix 427.9 + l_____ F2FPoisonFlowers 427.10 + l_____ F2FProvinciali 427.11 + l_____ F2FSimbolico 427.12 + l_____ F2FTechLand 427.13 + l_____ F2FWhaleTreeRnd 427.14 + l_____ F2FZakGlobe 427.15 + l_____ Falstaff-Regular 428.0 + l_____ FetteFraktur 429.0 + l_____ FetteFraktur-Dfr 429.1 + l_____ FetteFrakturEF 429.2 + l_____ FlashEF-Light 430.0 + l_____ FlashEF-Bold 430.1 + l_____ Flyer-BlackCondensed 431.0 + l_____ Flyer-BlackExtraCondensed 431.1 + l_____ FlyerEF-Bold 431.2 + l_____ FlyerEF-BoldCondensed 431.3 + l_____ Folio-Light 432.0 + l_____ Folio-Medium 432.1 + l_____ Folio-Bold 432.2 + l_____ Folio-ExtraBold 432.3 + l_____ Folio-BoldCondensed 432.4 + l_____ FolioEF-BoldCondensed 432.5 + l_____ FolioEF-ExtraCondensed 432.6 + l_____ Formata-Light 435.0 + l_____ Formata-LightSC 435.1 + l_____ Formata-LightExpert 435.2 + l_____ Formata-LightItalic 435.3 + l_____ Formata-LightItalicSC 435.4 + l_____ Formata-LightItalicExpert 435.5 + l_____ Formata-Regular 435.6 + l_____ Formata-RegularSC 435.7 + l_____ Formata-RegularExpert 435.8 + l_____ Formata-Italic 435.9 + l_____ Formata-ItalicSC 435.10 + l_____ Formata-ItalicExpert 435.11 + l_____ Formata-Medium 435.12 + l_____ Formata-MediumItalic 435.13 + l_____ Formata-Bold 435.14 + l_____ Formata-BoldItalic 435.15 + l_____ Formata-Outline 435.16 + l_____ Formata-LightCondensed 435.17 + l_____ Formata-LightCnSC 435.18 + l_____ Formata-LightCnExpert 435.19 + l_____ Formata-LightCondensedItalic 435.20 + l_____ Formata-LightCnItalicSC 435.21 + l_____ Formata-LightCnItalicExpert 435.22 + l_____ Formata-Condensed 435.23 + l_____ Formata-CondensedOutline 435.24 + l_____ Formata-CondensedSC 435.25 + l_____ Formata-CondensedExpert 435.26 + l_____ Formata-CondensedItalic 435.27 + l_____ Formata-CnItalicSC 435.28 + l_____ Formata-CnItalicExpert 435.29 + l_____ Formata-MediumCondensed 435.30 + l_____ Formata-MediumCondensedItalic 435.31 + l_____ Formata-BoldCondensed 435.32 + l_____ Formata-BoldCondensedItalic 435.33 + l_____ FrankfurterEF-Medium 436.0 + l_____ FrankfurterEF-Solid 436.1 + l_____ FrankfurterEF-Inline 436.2 + l_____ FrankfurterEF-Highlight 436.3 + l_____ FreestyleScript 437.0 + l_____ FreestyleScriptEF-Reg 437.1 + l_____ FreestyleScriptEF-RegAlt 437.2 + l_____ FreestyleScriptEF-Bol 437.3 + l_____ FreestyleScriptEF-BolAlt 437.4 + l_____ Bauhaus-Light 438.0 + l_____ Bauhaus-Medium 438.1 + l_____ Bauhaus-Demi 438.2 + l_____ Bauhaus-Bold 438.3 + l_____ Bauhaus-Heavy 438.4 + l_____ BauhausEF-Light 438.5 + l_____ BauhausEF-Medium 438.6 + l_____ BauhausEF-DemiBold 438.7 + l_____ BauhausEF-Bold 438.8 + l_____ BauhausEF-Heavy 438.9 + l_____ BenguiatGothic-Book 439.0 + l_____ BenguiatGothic-BookOblique 439.1 + l_____ BenguiatGothic-Medium 439.2 + l_____ BenguiatGothic-MediumOblique 439.3 + l_____ BenguiatGothic-Bold 439.4 + l_____ BenguiatGothic-BoldOblique 439.5 + l_____ BenguiatGothic-Heavy 439.6 + l_____ BenguiatGothic-HeavyOblique 439.7 + l_____ BenguiatGothicEF-Book 439.8 + l_____ BenguiatGothicEF-BookItalic 439.9 + l_____ BenguiatGothicEF-Medium 439.10 + l_____ BenguiatGothicEF-MediumItalic 439.11 + l_____ BenguiatGothicEF-Bold 439.12 + l_____ BenguiatGothicEF-BoldItalic 439.13 + l_____ BenguiatGothicEF-Heavy 439.14 + l_____ BenguiatGothicEF-HeavyItalic 439.15 + l_____ Cerigo-Book 440.0 + l_____ Cerigo-BookItalic 440.1 + l_____ Cerigo-Medium 440.2 + l_____ Cerigo-MediumItalic 440.3 + l_____ Cerigo-Bold 440.4 + l_____ Cerigo-BoldItalic 440.5 + l_____ CerigoEF-Book 440.6 + l_____ CerigoEF-BookSC 440.7 + l_____ CerigoEF-BookItalic 440.8 + l_____ CerigoEF-Medium 440.9 + l_____ CerigoEF-MediumSC 440.10 + l_____ CerigoEF-MediumItalic 440.11 + l_____ CerigoEF-Bold 440.12 + l_____ CerigoEF-BoldItalic 440.13 + l_____ CerigoEF-BookSwashCaps 440.14 + l_____ CerigoEF-BookItalicSwashCaps 440.15 + l_____ Cushing-Book 441.0 + l_____ Cushing-BookItalic 441.1 + l_____ Cushing-Medium 441.2 + l_____ Cushing-MediumItalic 441.3 + l_____ Cushing-Bold 441.4 + l_____ Cushing-BoldItalic 441.5 + l_____ Cushing-Heavy 441.6 + l_____ Cushing-HeavyItalic 441.7 + l_____ CushingEF-Book 441.8 + l_____ CushingEF-BookItalic 441.9 + l_____ CushingEF-Medium 441.10 + l_____ CushingEF-MediumItalic 441.11 + l_____ CushingEF-Bold 441.12 + l_____ CushingEF-BoldItalic 441.13 + l_____ CushingEF-Heavy 441.14 + l_____ CushingEF-HeavyItalic 441.15 + l_____ Esprit-Book 442.0 + l_____ Esprit-BookItalic 442.1 + l_____ Esprit-Medium 442.2 + l_____ Esprit-MediumItalic 442.3 + l_____ Esprit-Bold 442.4 + l_____ Esprit-BoldItalic 442.5 + l_____ Esprit-Black 442.6 + l_____ Esprit-BlackItalic 442.7 + l_____ EspritEF-Book 442.8 + l_____ EspritEF-BookSC 442.9 + l_____ EspritEF-BookItalic 442.10 + l_____ EspritEF-Medium 442.11 + l_____ EspritEF-MediumSC 442.12 + l_____ EspritEF-MediumItalic 442.13 + l_____ EspritEF-Bold 442.14 + l_____ EspritEF-BoldItalic 442.15 + l_____ EspritEF-Black 442.16 + l_____ EspritEF-BlackItalic 442.17 + l_____ Flora-Roman 443.0 + l_____ Flora-Bold 443.1 + l_____ FloraEF-Medium 443.2 + l_____ FloraEF-Bold 443.3 + l_____ Galliard-Roman 444.0 + l_____ Galliard-Italic 444.1 + l_____ Galliard-Bold 444.2 + l_____ Galliard-BoldItalic 444.3 + l_____ Galliard-Black 444.4 + l_____ Galliard-BlackItalic 444.5 + l_____ Galliard-Ultra 444.6 + l_____ Galliard-UltraItalic 444.7 + l_____ GalliardEF-Roman 444.8 + l_____ GalliardEF-Italic 444.9 + l_____ GalliardEF-Bold 444.10 + l_____ GalliardEF-BoldItalic 444.11 + l_____ GalliardEF-Black 444.12 + l_____ GalliardEF-BlackItalic 444.13 + l_____ GalliardEF-Ultra 444.14 + l_____ GalliardEF-UltraItalic 444.15 + l_____ GoldenTypeEF-Original 445.0 + l_____ GoldenTypeSCEF-Original 445.1 + l_____ GoldenTypeEF-Bold 445.2 + l_____ GoldenTypeSCEF-Bold 445.3 + l_____ GoldenTypeEF-Black 445.4 + l_____ IsbellEF-Book 446.0 + l_____ IsbellEF-BookItalic 446.1 + l_____ IsbellEF-Bold 446.2 + l_____ IsbellEF-BoldItalic 446.3 + l_____ Korinna-Regular 447.0 + l_____ Korinna-KursivRegular 447.1 + l_____ Korinna-Bold 447.2 + l_____ Korinna-KursivBold 447.3 + l_____ KorinnaEF-Regular 447.4 + l_____ KorinnaEF-RegularKursiv 447.5 + l_____ KorinnaEF-Bold 447.6 + l_____ KorinnaEF-BoldKursiv 447.7 + l_____ KorinnaEF-ExtraBold 447.8 + l_____ KorinnaEF-ExtraBoldKursiv 447.9 + l_____ KorinnaEF-Heavy 447.10 + l_____ KorinnaEF-HeavyKursiv 447.11 + l_____ LegacySans-Book 448.0 + l_____ LegacySans-BookItalic 448.1 + l_____ LegacySans-Medium 448.2 + l_____ LegacySans-MediumItalic 448.3 + l_____ LegacySans-Bold 448.4 + l_____ LegacySans-BoldItalic 448.5 + l_____ LegacySans-Ultra 448.6 + l_____ LegacySerif-Book 448.7 + l_____ LegacySerif-BookItalic 448.8 + l_____ LegacySerif-Medium 448.9 + l_____ LegacySerif-MediumItalic 448.10 + l_____ LegacySerif-Bold 448.11 + l_____ LegacySerif-BoldItalic 448.12 + l_____ LegacySerif-Ultra 448.13 + l_____ LegacySansEF-Book 448.14 + l_____ LegacySansEF-BookSC 448.15 + l_____ LegacySansEF-BookItalic 448.16 + l_____ LegacySansEF-Medium 448.17 + l_____ LegacySansEF-MediumSC 448.18 + l_____ LegacySansEF-MediumItalic 448.19 + l_____ LegacySansEF-Bold 448.20 + l_____ LegacySansEF-BoldItalic 448.21 + l_____ LegacySansEF-Ultra 448.22 + l_____ LegacySerifEF-Book 448.23 + l_____ LegacySerifEF-BookSC 448.24 + l_____ LegacySerifEF-BookItalic 448.25 + l_____ LegacySerifEF-Medium 448.26 + l_____ LegacySerifEF-MediumSC 448.27 + l_____ LegacySerifEF-MediumItalic 448.28 + l_____ LegacySerifEF-Bold 448.29 + l_____ LegacySerifEF-BoldItalic 448.30 + l_____ LegacySerifEF-Ultra 448.31 + l_____ Machine 449.0 + l_____ Machine-Bold 449.1 + l_____ MachineEF-Regular 449.2 + l_____ MachineEF-Bold 449.3 + l_____ MonaLisa-Solid 450.0 + l_____ MonaLisa-Recut 450.1 + l_____ MonaLisaEF-Solid 450.2 + l_____ MonaLisaEF-Recut 450.3 + l_____ Novarese-Book 451.0 + l_____ Novarese-BookItalic 451.1 + l_____ Novarese-Medium 451.2 + l_____ Novarese-MediumItalic 451.3 + l_____ Novarese-Bold 451.4 + l_____ Novarese-BoldItalic 451.5 + l_____ Novarese-Ultra 451.6 + l_____ NovareseEF-Book 451.7 + l_____ NovareseEF-BookItalic 451.8 + l_____ NovareseEF-Medium 451.9 + l_____ NovareseEF-MediumItalic 451.10 + l_____ NovareseEF-Bold 451.11 + l_____ NovareseEF-BoldItalic 451.12 + l_____ NovareseEF-Ultra 451.13 + l_____ PacellaEF-Book 452.0 + l_____ PacellaSCEF-Book 452.1 + l_____ PacellaEF-BookItalic 452.2 + l_____ PacellaEF-Medium 452.3 + l_____ PacellaSCEF-Medium 452.4 + l_____ PacellaEF-MediumItalic 452.5 + l_____ PacellaEF-Bold 452.6 + l_____ PacellaEF-BoldItalic 452.7 + l_____ PacellaEF-Black 452.8 + l_____ PacellaEF-BlackItalic 452.9 + l_____ QuaySansEF-Book 453.0 + l_____ QuaySansEF-BookSC 453.1 + l_____ QuaySansEF-BookItalic 453.2 + l_____ QuaySansEF-Medium 453.3 + l_____ QuaySansEF-MediumSC 453.4 + l_____ QuaySansEF-MediumItalic 453.5 + l_____ QuaySansEF-Black 453.6 + l_____ QuaySansEF-BlackItalic 453.7 + l_____ SerifGothic-Light 454.0 + l_____ SerifGothic 454.1 + l_____ SerifGothic-Bold 454.2 + l_____ SerifGothic-ExtraBold 454.3 + l_____ SerifGothic-Heavy 454.4 + l_____ SerifGothic-Black 454.5 + l_____ SerifGothicEF-Light 454.6 + l_____ SerifGothicEF-Regular 454.7 + l_____ SerifGothicEF-Bold 454.8 + l_____ SerifGothicEF-ExtraBold 454.9 + l_____ SerifGothicEF-Heavy 454.10 + l_____ SerifGothicEF-Black 454.11 + l_____ Symbol-Book 455.0 + l_____ Symbol-BookItalic 455.1 + l_____ Symbol-Medium 455.2 + l_____ Symbol-MediumItalic 455.3 + l_____ Symbol-Bold 455.4 + l_____ Symbol-BoldItalic 455.5 + l_____ Symbol-Black 455.6 + l_____ Symbol-BlackItalic 455.7 + l_____ SymbolEF-Book 455.8 + l_____ SymbolEF-BookSC 455.9 + l_____ SymbolEF-BookItalic 455.10 + l_____ SymbolEF-Medium 455.11 + l_____ SymbolEF-MediumSC 455.12 + l_____ SymbolEF-MediumItalic 455.13 + l_____ SymbolEF-Bold 455.14 + l_____ SymbolEF-BoldItalic 455.15 + l_____ SymbolEF-Black 455.16 + l_____ SymbolEF-BlackItalic 455.17 + l_____ Tiepolo-Book 456.0 + l_____ Tiepolo-BookItalic 456.1 + l_____ Tiepolo-Bold 456.2 + l_____ Tiepolo-BoldItalic 456.3 + l_____ Tiepolo-Black 456.4 + l_____ Tiepolo-BlackItalic 456.5 + l_____ TiepoloEF-Book 456.6 + l_____ TiepoloEF-BookSC 456.7 + l_____ TiepoloEF-BookItalic 456.8 + l_____ TiepoloEF-Bold 456.9 + l_____ TiepoloEF-BoldSC 456.10 + l_____ TiepoloEF-BoldItalic 456.11 + l_____ TiepoloEF-Black 456.12 + l_____ TiepoloEF-BlackItalic 456.13 + l_____ Veljovic-Book 457.0 + l_____ Veljovic-BookItalic 457.1 + l_____ Veljovic-Medium 457.2 + l_____ Veljovic-MediumItalic 457.3 + l_____ Veljovic-Bold 457.4 + l_____ Veljovic-BoldItalic 457.5 + l_____ Veljovic-Black 457.6 + l_____ Veljovic-BlackItalic 457.7 + l_____ VeljovicEF-Book 457.8 + l_____ VeljovicEF-BookOsF 457.9 + l_____ VeljovicEF-BookItalic 457.10 + l_____ VeljovicEF-BookItalicOsF 457.11 + l_____ VeljovicEF-Medium 457.12 + l_____ VeljovicEF-MediumOsF 457.13 + l_____ VeljovicEF-MediumItalic 457.14 + l_____ VeljovicEF-MediumItalicOsF 457.15 + l_____ VeljovicEF-Bold 457.16 + l_____ VeljovicEF-BoldOsF 457.17 + l_____ VeljovicEF-BoldItalic 457.18 + l_____ VeljovicEF-BoldItalicOsF 457.19 + l_____ VeljovicEF-Black 457.20 + l_____ VeljovicEF-BlackOsF 457.21 + l_____ VeljovicEF-BlackItalic 457.22 + l_____ VeljovicEF-BlackItalicOsF 457.23 + l_____ ZapfBookEF-Light 458.0 + l_____ ZapfBookEF-LightItalic 458.1 + l_____ ZapfBookEF-Medium 458.2 + l_____ ZapfBookEF-MediumItalic 458.3 + l_____ ZapfBookEF-Demi 458.4 + l_____ ZapfBookEF-DemiItalic 458.5 + l_____ ZapfBookEF-Heavy 458.6 + l_____ ZapfBookEF-HeavyItalic 458.7 + l_____ ZapfChancery-Light 458.8 + l_____ ZapfChancery-LightItalic 458.9 + l_____ ZapfChancery-Roman 458.10 + l_____ ZapfChancery-Italic 458.11 + l_____ ZapfChancery-MediumItalic 458.12 + l_____ ZapfChancery-Demi 458.13 + l_____ ZapfChancery-Bold 458.14 + l_____ ZapfChanceryCE-MediumItalic 458.15 + l_____ ZapfChanceryEF-Light 458.16 + l_____ ZapfChanceryEF-LightItalic 458.17 + l_____ ZapfChanceryEF-Medium 458.18 + l_____ ZapfChanceryEF-MediumItalic 458.19 + l_____ ZapfChanceryEF-Demi 458.20 + l_____ ZapfChanceryEF-Bold 458.21 + l_____ ZapfInternationalEF-Light 458.23 + l_____ ZapfInternationalEF-LightIta 458.24 + l_____ ZapfInternationalEF-Medium 458.25 + l_____ ZapfInternationalEF-MediumIta 458.26 + l_____ ZapfInternationalEF-Demi 458.27 + l_____ ZapfInternationalEF-DemiIta 458.28 + l_____ ZapfInternationalEF-Heavy 458.29 + l_____ ZapfInternationalEF-HeavyIta 458.30 + l_____ AudioLH-Pi 459.0 + l_____ EECLH-Pi 460.0 + l_____ XmasLH-PiOne 462.0 + l_____ XmasLH-PiTwo 462.1 + l_____ Lucida 463.0 + l_____ Lucida-Italic 463.1 + l_____ Lucida-Bold 463.2 + l_____ Lucida-BoldItalic 463.3 + l_____ LucidaSans 463.4 + l_____ LucidaSans-Italic 463.5 + l_____ LucidaSans-Bold 463.6 + l_____ LucidaSans-BoldItalic 463.7 + l_____ LucidaMath-Symbol 463.8 + l_____ LucidaMath-Extension 463.9 + l_____ LucidaMath-Italic 463.10 + l_____ LucidaEF 463.11 + l_____ LucidaEF-Italic 463.12 + l_____ LucidaEF-Bold 463.13 + l_____ LucidaEF-BoldItalic 463.14 + l_____ LucidaBlackletterEF 463.15 + l_____ LucidaBrightEF-Roman 463.16 + l_____ LucidaBrightEF-RomanIta 463.17 + l_____ LucidaBrightEF-DemiBold 463.18 + l_____ LucidaBrightEF-DemiBoldIta 463.19 + l_____ LucidaBrightNarEF-Roman 463.20 + l_____ LucidaBrightNarEF-Ita 463.21 + l_____ LucidaBrightNarEF-DeBol 463.22 + l_____ LucidaBrightNarEF-DeBolIta 463.23 + l_____ LucidaCalligraphyEF 463.24 + l_____ LucidaCasualEF-Roman 463.25 + l_____ LucidaCasualEF-Italic 463.26 + l_____ LucidaFaxEF-Roman 463.27 + l_____ LucidaFaxEF-RomanItalic 463.28 + l_____ LucidaFaxEF-DemiBold 463.29 + l_____ LucidaFaxEF-DemiBoldItalic 463.30 + l_____ LucidaHandwritingEF 463.31 + l_____ LucidaTypewriterEF-Regular 463.32 + l_____ LucidaTypewriterEF-Bold 463.33 + l_____ LucidaSansEF-Roman 463.34 + l_____ LucidaSansEF-RomanIta 463.35 + l_____ LucidaSansEF-Bold 463.36 + l_____ LucidaSansEF-DemiBold 463.37 + l_____ LucidaSansEF-BoldItalic 463.38 + l_____ LucidaSansEF-DemiBoldIta 463.39 + l_____ LucidaSansNarEF-Roman 463.40 + l_____ LucidaSansNarEF-Ita 463.41 + l_____ LucidaSansNarEF-DemBol 463.42 + l_____ LucidaSansNarEF-DemBolIta 463.43 + l_____ Madrone 465.0 + l_____ MagnusEF 466.0 + l_____ MandarinEF 467.0 + l_____ Marigold 468.0 + l_____ MatthiaLL-Regular 469.0 + l_____ MaturaMT 470.0 + l_____ MaturaMT-ScriptCapitals 470.1 + l_____ MaximaEF-Light 471.0 + l_____ MaximaEF-LightOblique 471.1 + l_____ MaximaEF-Medium 471.2 + l_____ MaximaEF-MediumOblique 471.3 + l_____ MaximaEF-Bold 471.4 + l_____ MaximaEF-BoldOblique 471.5 + l_____ MaximaEF-BoldCondensed 471.6 + l_____ MediciScript 472.0 + l_____ MercuriusMT-BoldScript 473.0 + l_____ Mesquite 474.0 + l_____ MetropolitainEF 475.0 + l_____ Minion-Regular 476.0 + l_____ Minion-RegularSC 476.1 + l_____ MinionExp-Regular 476.2 + l_____ Minion-Italic 476.3 + l_____ Minion-ItalicSC 476.4 + l_____ MinionExp-Italic 476.5 + l_____ Minion-Semibold 476.6 + l_____ Minion-SemiboldSC 476.7 + l_____ MinionExp-Semibold 476.8 + l_____ Minion-SemiboldItalic 476.9 + l_____ Minion-SemiboldItalicSC 476.10 + l_____ MinionExp-SemiboldItalic 476.11 + l_____ Minion-Bold 476.12 + l_____ Minion-BoldOsF 476.13 + l_____ MinionExp-Bold 476.14 + l_____ Minion-BoldItalic 476.15 + l_____ Minion-BoldItalicOsF 476.16 + l_____ MinionExp-BoldItalic 476.17 + l_____ Minion-Black 476.18 + l_____ Minion-BlackOsF 476.19 + l_____ Minion-BlackExpert 476.20 + l_____ Minion-Display 476.21 + l_____ Minion-DisplaySC 476.22 + l_____ MinionExp-Display 476.23 + l_____ Minion-DisplayItalic 476.24 + l_____ Minion-DisplayItalicSC 476.25 + l_____ MinionExp-DisplayItalic 476.26 + l_____ Minion-SwashItalic 476.27 + l_____ Minion-SwashDisplayItalic 476.28 + l_____ Minion-SwashSemiboldItalic 476.29 + l_____ Minion-Ornaments 476.30 + l_____ MinionCyr-Regular 476.31 + l_____ MinionCyr-Italic 476.32 + l_____ MinionCyr-Semibold 476.33 + l_____ MinionCyr-SemiboldItalic 476.34 + l_____ MinionCyr-Bold 476.35 + l_____ MinionCyr-BoldItalic 476.36 + l_____ Minister-Light 477.0 + l_____ Minister-LightItalic 477.1 + l_____ Minister-Book 477.2 + l_____ Minister-BookItalic 477.3 + l_____ Minister-Bold 477.4 + l_____ Minister-BoldItalic 477.5 + l_____ Minister-Black 477.6 + l_____ Minister-BlackItalic 477.7 + l_____ MinisterEF-Light 477.8 + l_____ MinisterEF-LightItalic 477.9 + l_____ MinisterEF-Book 477.10 + l_____ MinisterEF-BookItalic 477.11 + l_____ MinisterEF-Bold 477.12 + l_____ ModernNo216EF-Light 478.0 + l_____ ModernNo216EF-LightItalic 478.1 + l_____ ModernNo216EF-Medium 478.2 + l_____ ModernNo216EF-MediumItalic 478.3 + l_____ ModernNo216EF-Bold 478.4 + l_____ ModernNo216EF-BoldItalic 478.5 + l_____ ModernNo216EF-Heavy 478.6 + l_____ ModernNo216EF-HeavyItalic 478.7 + l_____ ModernMT-Bold 478.8 + l_____ ModernMT-BoldItalic 478.9 + l_____ ModernMT-Condensed 478.10 + l_____ ModernMT-CondensedItalic 478.11 + l_____ ModernMT-Extended 478.12 + l_____ ModernMT-ExtendedItalic 478.13 + l_____ ModernMT-Wide 478.14 + l_____ ModernMT-WideItalic 478.15 + l_____ ModernExtendedEF-Book 478.16 + l_____ ModernExtendedEF-BookIta 478.17 + l_____ ModernExtendedEF-Bold 478.18 + l_____ ModifiedGothic 479.0 + l_____ MonterreyEF 480.0 + l_____ MotterFeminaEF 481.0 + l_____ MysteryEF-White 482.0 + l_____ MysteryEF-Black 482.1 + l_____ MysteryEF-Mixed 482.2 + l_____ PinxitAstroLL 485.0 + l_____ PinxitOfficeLL 485.1 + l_____ PinxitPrivateLL 485.2 + l_____ Plak-Black 486.0 + l_____ Plak-BlackCondensed 486.1 + l_____ Plak-BlackExtraCondensed 486.2 + l_____ Plantin-Light 487.0 + l_____ Plantin-LightItalic 487.1 + l_____ Plantin 487.2 + l_____ Plantin-Italic 487.3 + l_____ Plantin-Semibold 487.4 + l_____ Plantin-SemiboldItalic 487.5 + l_____ Plantin-Bold 487.6 + l_____ Plantin-BoldItalic 487.7 + l_____ Plantin-BoldCondensed 487.8 + l_____ PlaybillEF 488.0 + l_____ Poetica-SuppLowercaseAltI 489.0 + l_____ Poetica-SuppLowercaseAltII 489.1 + l_____ Poetica-RomanSmallCaps 489.2 + l_____ Poetica-RomanSmallCapsAlt 489.3 + l_____ Poetica-SuppLigatures 489.4 + l_____ Poetica-SuppLowercaseBegI 489.5 + l_____ Poetica-SuppLowercaseBegII 489.6 + l_____ Poetica-SuppLowercaseEndI 489.7 + l_____ Poetica-SuppLowercaseEndII 489.8 + l_____ Poetica-SuppAmpersands 489.9 + l_____ Poetica-ChanceryExpert 489.10 + l_____ Poetica-ChanceryI 489.11 + l_____ Poetica-ChanceryII 489.12 + l_____ Poetica-ChanceryIII 489.13 + l_____ Poetica-ChanceryIV 489.14 + l_____ Poetica-SuppInitialsSwashCaps 489.15 + l_____ Poetica-SwashCapsI 489.16 + l_____ Poetica-SwashCapsII 489.17 + l_____ Poetica-SwashCapsIII 489.18 + l_____ Poetica-SwashCapsIV 489.19 + l_____ Poetica-SuppOrnaments 489.20 + l_____ Pompeijana-Roman 490.0 + l_____ Pompeijana-Borders 490.1 + l_____ PopplExquisit-Regular 491.0 + l_____ PopplExquisit-Medium 491.1 + l_____ PopplLaudatio-Light 491.2 + l_____ PopplLaudatio-LightItalic 491.3 + l_____ PopplLaudatio-Regular 491.4 + l_____ PopplLaudatio-Italic 491.5 + l_____ PopplLaudatio-Medium 491.6 + l_____ PopplLaudatio-MediumItalic 491.7 + l_____ PopplLaudatio-Bold 491.8 + l_____ PopplLaudatio-BoldItalic 491.9 + l_____ PopplLaudatio-LightCondensed 491.10 + l_____ PopplLaudatio-Condensed 491.11 + l_____ PopplLaudatio-MediumCondensed 491.12 + l_____ PopplLaudatio-BoldCondensed 491.13 + l_____ PopplPontifex-Roman 491.14 + l_____ PopplPontifex-RomanSC 491.15 + l_____ PopplPontifex-Italic 491.16 + l_____ PopplPontifex-Bold 491.17 + l_____ PopplPontifex-Black 491.18 + l_____ PopplPontifex-BoldCondensed 491.19 + l_____ PopplPontifexBE-Regular 491.20 + l_____ PopplPontifexBE-RegularSC 491.21 + l_____ PopplPontifexBE-RegularExp 491.22 + l_____ PopplPontifexBE-Italic 491.23 + l_____ PopplPontifexBE-ItalicOsF 491.24 + l_____ PopplPontifexBE-ItalicExp 491.25 + l_____ PopplPontifexBE-Medium 491.26 + l_____ PopplPontifexBE-MediumSC 491.27 + l_____ PopplPontifexBE-MediumExp 491.28 + l_____ PopplPontifexBE-Bold 491.29 + l_____ PopplPontifexBE-BoldOsF 491.30 + l_____ PopplPontifexBE-BoldExp 491.31 + l_____ PopplPontifexBE-MediumCn 491.32 + l_____ PopplPontifexBE-MediumCnSC 491.33 + l_____ PopplPontifexBE-MediumCnExp 491.34 + l_____ PopplResidenz-Light 491.35 + l_____ PopplResidenz-Regular 491.36 + l_____ PostAntiqua-Roman 492.0 + l_____ PostAntiqua-Bold 492.1 + l_____ PostAntiquaBE-Regular 492.2 + l_____ PostAntiquaBE-Medium 492.3 + l_____ PostMediaeval-Regular 492.4 + l_____ PostMediaeval-Italic 492.5 + l_____ PostMediaeval-Medium 492.6 + l_____ PraxisEF-Light 493.0 + l_____ PraxisEF-LightSC 493.1 + l_____ PraxisEF-Regular 493.2 + l_____ PraxisEF-RegularSC 493.3 + l_____ PraxisEF-SemiBold 493.4 + l_____ PraxisEF-Bold 493.5 + l_____ PraxisEF-Heavy 493.6 + l_____ PremierEF 494.0 + l_____ PremierEF-Alternate 494.1 + l_____ PremierEF-Shaded 494.2 + l_____ Present 495.0 + l_____ Present-Bold 495.1 + l_____ Present-Black 495.2 + l_____ Present-Condensed 495.3 + l_____ Present-BoldCondensed 495.4 + l_____ Present-BlackCondensed 495.5 + l_____ PrincetownEF 496.0 + l_____ ProteusEF-Light 497.0 + l_____ ProteusEF-Book 497.1 + l_____ ProteusEF-Medium 497.2 + l_____ ProteusEF-Bold 497.3 + l_____ Quake 498.0 + l_____ QuartzEF 499.0 + l_____ QuasariaLL-Regular 500.0 + l_____ QuasariaLL-Oblique 500.1 + l_____ QuasariaLL-Bold 500.2 + l_____ QuasariaLL-BoldOblique 500.3 + l_____ Rad 501.0 + l_____ RadiantEFText-Light 502.0 + l_____ RadiantEFText-Book 502.1 + l_____ RadiantEFText-Medium 502.2 + l_____ RadiantEFText-DemiBold 502.3 + l_____ RadiantEFText-Bold 502.4 + l_____ RadiantEFText-Black 502.5 + l_____ RadiantEFDisplay-CondNo2 502.6 + l_____ RadiantEFDisplay-CondNo1 502.7 + l_____ RadiantEFDisplay-CondNo4 502.8 + l_____ RadiantEFDisplay-CondNo3 502.9 + l_____ RadiantEFDisplay-CondNo6 502.10 + l_____ RadiantEFDisplay-CondNo5 502.11 + l_____ RageItalicEF 503.0 + l_____ ReadMyHandLL 504.0 + l_____ ReadMyHandLL-Bold 504.1 + l_____ Reporter-Two 505.0 + l_____ RialtoEF 506.0 + l_____ Rockwell-Light 507.0 + l_____ Rockwell-LightItalic 507.1 + l_____ Rockwell 507.2 + l_____ Rockwell-Italic 507.3 + l_____ Rockwell-Bold 507.4 + l_____ Rockwell-BoldItalic 507.5 + l_____ Rockwell-ExtraBold 507.6 + l_____ Rockwell-Condensed 507.7 + l_____ Rockwell-BoldCondensed 507.8 + l_____ RomanScriptEF 508.0 + l_____ RomanScriptEF-Alternate 508.1 + l_____ Rosewood-Fill 509.0 + l_____ Rosewood-Regular 509.1 + l_____ Rotation-Roman 510.0 + l_____ Rotation-Italic 510.1 + l_____ Rotation-Bold 510.2 + l_____ Roundy-Roman 511.0 + l_____ Roundy-Swash 511.1 + l_____ RulingScript 512.0 + l_____ RulingScript-Addition 512.1 + l_____ RussellSquare 513.0 + l_____ RussellSquare-Oblique 513.1 + l_____ Sabon-Roman 514.0 + l_____ Sabon-RomanSC 514.1 + l_____ Sabon-RomanOsF 514.2 + l_____ Sabon-Italic 514.3 + l_____ Sabon-ItalicOsF 514.4 + l_____ Sabon-Bold 514.5 + l_____ Sabon-BoldOsF 514.6 + l_____ Sabon-BoldItalic 514.7 + l_____ Sabon-BoldItalicOsF 514.8 + l_____ Sassafras-Roman 517.0 + l_____ Sassafras-SxRoman 517.1 + l_____ Sassafras-LxRoman 517.2 + l_____ Sassafras-LxItalic 517.3 + l_____ Sassafras-SxItalic 517.4 + l_____ Sassafras-Italic 517.5 + l_____ StempelSchneidler-Light 518.0 + l_____ StempelSchneidler-LightItalic 518.1 + l_____ StempelSchneidler-Roman 518.2 + l_____ StempelSchneidler-Italic 518.3 + l_____ StempelSchneidler-Medium 518.4 + l_____ StempelSchneidler-MedItalic 518.5 + l_____ StempelSchneidler-Bold 518.6 + l_____ StempelSchneidler-BoldItalic 518.7 + l_____ StempelSchneidler-Black 518.8 + l_____ StempelSchneidler-BlackItalic 518.9 + l_____ SchneidlerEF-Light 518.10 + l_____ SchneidlerEF-AmaltheaLight 518.11 + l_____ SchneidlerEF-Roman 518.12 + l_____ SchneidlerEF-AmaltheaRoman 518.13 + l_____ SchneidlerEF-Medium 518.14 + l_____ SchneidlerEF-AmaltheaMedium 518.15 + l_____ SchneidlerEF-Bold 518.16 + l_____ SchneidlerEF-AmaltheaBold 518.17 + l_____ SchneidlerEF-Black 518.18 + l_____ SchneidlerEF-AmaltheaBlack 518.19 + l_____ SchreibmaschineEF-Regular 519.0 + l_____ Serpentine-Light 520.0 + l_____ Serpentine-LightOblique 520.1 + l_____ Serpentine-Medium 520.2 + l_____ Serpentine-MediumOblique 520.3 + l_____ Serpentine-Bold 520.4 + l_____ Serpentine-BoldOblique 520.5 + l_____ SerpentineEF-Bold 520.6 + l_____ SerpentineEF-BoldItalic 520.7 + l_____ VarioEF-Regular 522.0 + l_____ VarioEF-RegularItalic 522.1 + l_____ VectoraLH-Light 523.0 + l_____ VectoraLH-LightItalic 523.1 + l_____ VectoraLH-Roman 523.2 + l_____ VectoraLH-Italic 523.3 + l_____ VectoraLH-Bold 523.4 + l_____ VectoraLH-BoldItalic 523.5 + l_____ VectoraLH-Black 523.6 + l_____ VectoraLH-BlackItalic 523.7 + l_____ VegasEF 524.0 + l_____ Versailles-Light 526.0 + l_____ Versailles-LightItalic 526.1 + l_____ Versailles-Roman 526.2 + l_____ Versailles-Italic 526.3 + l_____ Versailles-Bold 526.4 + l_____ Versailles-BoldItalic 526.5 + l_____ Versailles-Black 526.6 + l_____ Versailles-BlackItalic 526.7 + l_____ Visigoth 527.0 + l_____ VladimirScriptEF 528.0 + l_____ Westside 530.0 + l_____ WiesbadenSwing-Roman 531.0 + l_____ Willow 532.0 + l_____ WittenbergerFrakturMT 533.0 + l_____ WittenbergerFrakturMT-Dfr 533.1 + l_____ WittenbergerFrakturMT-Bd 533.2 + l_____ WittenbergerFrakturMT-BdDfr 533.3 + l_____ Zebrawood-Fill 534.0 + l_____ Zebrawood-Regular 534.1 + l_____ AgrafieLL 535.0 + l_____ AlbertusMT-Light 536.0 + l_____ AlbertusMT-Roman 536.1 + l_____ AlbertusMT-Italic 536.2 + l_____ Alexa 537.0 + l_____ AlgerianEF 538.0 + l_____ Amigo 540.0 + l_____ AngroEF-Light 541.0 + l_____ AngroEF-Bold 541.1 + l_____ AnzeigenGroteskEF 542.0 + l_____ ArsisEF-Regular 543.0 + l_____ ArsisEF-RegularItalic 543.1 + l_____ AugusteaOpenEF 544.0 + l_____ Avenir-Light 545.0 + l_____ Avenir-LightOblique 545.1 + l_____ Avenir-Book 545.2 + l_____ Avenir-BookOblique 545.3 + l_____ Avenir-Roman 545.4 + l_____ Avenir-Oblique 545.5 + l_____ Avenir-Medium 545.6 + l_____ Avenir-MediumOblique 545.7 + l_____ Avenir-Heavy 545.8 + l_____ Avenir-HeavyOblique 545.9 + l_____ Avenir-Black 545.10 + l_____ Avenir-BlackOblique 545.11 + l_____ BakerSignet 546.0 + l_____ Balzano 547.0 + l_____ Barmeno-Regular 548.0 + l_____ Barmeno-Medium 548.1 + l_____ Barmeno-Bold 548.2 + l_____ Barmeno-ExtraBold 548.3 + l_____ BellCentennial-Address 549.0 + l_____ BellCentennial-SubCaption 549.1 + l_____ BellCentennial-NameAndNumber 549.2 + l_____ BellCentennial-BoldListing 549.3 + l_____ BellCentennial-BoldListingAlt 549.4 + l_____ City-Light 550.0 + l_____ City-LightItalic 550.1 + l_____ City-Medium 550.2 + l_____ City-MediumItalic 550.3 + l_____ City-Bold 550.4 + l_____ City-BoldItalic 550.5 + lpi___ BorderPi-OneFiveOneFiveNine 551.0 + l_____ BroadwayEF 552.2 + l_____ BroadwayEF-Engraved 552.3 + l_____ Caliban 553.0 + l_____ CarouselEF 554.0 + l_____ Century-Light 555.0 + l_____ Century-LightItalic 555.1 + l_____ Century-Book 555.2 + l_____ Century-BookItalic 555.3 + l_____ Century-Bold 555.4 + l_____ Century-BoldItalic 555.5 + l_____ Century-Ultra 555.6 + l_____ Century-UltraItalic 555.7 + l_____ Century-LightCondensed 555.8 + l_____ Century-LightCondensedItalic 555.9 + l_____ Century-BookCondensed 555.10 + l_____ Century-BookCondensedItalic 555.11 + l_____ Century-BoldCondensed 555.12 + l_____ Century-BoldCondensedItalic 555.13 + l_____ Century-UltraCondensed 555.14 + l_____ Century-UltraCondensedItalic 555.15 + l_____ CenturyEF-Light 555.16 + l_____ CenturyEF-LightItalic 555.17 + l_____ CenturyEF-Book 555.18 + l_____ CenturyEF-BookItalic 555.19 + l_____ CenturyEF-Bold 555.20 + l_____ CenturyEF-BoldItalic 555.21 + l_____ CenturyEF-Ultra 555.22 + l_____ CenturyEF-UltraItalic 555.23 + l_____ CenturyHandtEF-Bold 555.24 + l_____ CenturyHandtEF-BoldItalic 555.25 + l_____ CenturyEF-LightCondensed 555.26 + l_____ CenturyEF-LightCondensedItalic 555.27 + l_____ CenturyEF-BookCondensed 555.28 + l_____ CenturyEF-BookCondensedItalic 555.29 + l_____ CenturyEF-BoldCondensed 555.30 + l_____ CenturyEF-BoldCondensedItalic 555.31 + l_____ CenturyEF-UltraCondensed 555.32 + l_____ CenturyEF-UltraCondensedItalic 555.33 + l_____ CenturyExpanded 555.34 + l_____ CenturyExpanded-Italic 555.35 + l_____ CenturyExpandedEF-Regular 555.36 + l_____ CenturyExpandedEF-RegularItalic 555.37 + l_____ CenturyOldStyle-Regular 555.38 + l_____ CenturyOldStyle-Italic 555.39 + l_____ CenturyOldStyle-Bold 555.40 + l_____ CenturyOldStyleEF-Regular 555.41 + l_____ CenturyOldStyleEF-RegularItalic 555.42 + l_____ CenturyOldStyleEF-Bold 555.43 + l_____ NewCenturySchlbk-Roman 555.44 + l_____ NewCenturySchlbk-Italic 555.45 + l_____ NewCenturySchlbk-Bold 555.46 + l_____ NewCenturySchlbk-BoldItalic 555.47 + l_____ NewCenturySchlbkCE-Roman 555.50 + l_____ NewCenturySchlbkCE-Italic 555.51 + l_____ NewCenturySchlbkCE-Bold 555.52 + l_____ NewCenturySchlbkCE-BoldItalic 555.53 + l_____ NewCenturySchlbkGreek-Upright 555.54 + l_____ NewCenturySchlbkGreek-Inclined 555.55 + l_____ NewCenturySchlbkGreek-Bold 555.56 + l_____ NewCenturySchlbkGreekP-Upright 555.57 + l_____ NewCenturySchlbkGreekP-Inclined 555.58 + l_____ NewCenturySchlbkGreekP-Bold 555.59 + l_____ CenturySchoolbookEF-Reg 555.60 + l_____ CenturySchoolbookEF-RegIta 555.61 + l_____ CenturySchoolbookEF-Bol 555.62 + l_____ CenturySchoolbookEF-BolIta 555.63 + l_____ ChesterfieldEF 556.0 + l_____ Choc-Roman 557.0 + l_____ ChromiumOneEF 558.0 + l_____ Clarendon-Light 559.0 + l_____ Clarendon 559.1 + l_____ Clarendon-Bold 559.2 + l_____ ClarendonEF-Light 559.3 + l_____ ClarendonEF-Medium 559.4 + l_____ ClarendonEF-Bold 559.5 + l_____ ClarendonEF-ExtraBold 559.6 + l_____ ClarendonEF-BoldExpanded 559.7 + l_____ Colossalis-Regular 560.0 + l_____ Colossalis-Medium 560.1 + l_____ Colossalis-Bold 560.2 + l_____ Colossalis-Black 560.3 + l_____ CompactaEF-Light 561.0 + l_____ CompactaEF-Regular 561.1 + l_____ CompactaEF-RegularItalic 561.2 + l_____ CompactaEF-Bold 561.3 + l_____ CompactaEF-BoldItalic 561.4 + l_____ CompactaEF-Black 561.5 + l_____ CompactaEF-RegularOutline 561.6 + l_____ CompactaEF-BoldOutline 561.7 + l_____ ConferenceEF 562.0 + l_____ Copperplate-TwentyNineBC 563.0 + l_____ Copperplate-ThirtyBC 563.1 + l_____ Copperplate-ThirtyTwoBC 563.2 + l_____ Copperplate-ThirtyOneBC 563.3 + l_____ Copperplate-ThrityThreeBC 563.4 + l_____ Copperplate-TwentyNineAB 563.5 + l_____ Copperplate-ThirtyAB 563.6 + l_____ Copperplate-ThirtyTwoAB 563.7 + l_____ Copperplate-ThirtyOneAB 563.8 + l_____ CopperplateEF-Medium 563.10 + l_____ CopperplateEF-Bold 563.11 + l_____ CopperplateEF-LightCondensed 563.12 + l_____ CopperplateEF-MediumCondensed 563.13 + l_____ CopperplateEF-BoldCondensed 563.14 + l_____ CopperplateEF-Light 563.9 + l_____ Cottonwood 564.0 + l_____ CrilleeEF-LightItalic 565.0 + l_____ CrilleeEF-Italic 565.1 + l_____ CrilleeEF-BoldItalic 565.2 + l_____ CrilleeEF-ExtraBoldItalic 565.3 + l_____ DINMittelschrift 566.0 + l_____ DINMittelschrift-Alternate 566.1 + l_____ DINEngschrift 566.2 + l_____ DINEngschrift-Alternate 566.3 + l_____ DIN1451EF-MittelNeu 566.4 + l_____ DIN1451EF-MittelAlt 566.5 + l_____ DIN1451EF-EngNeu 566.6 + l_____ DIN1451EF-EngAlt 566.7 + l_____ DINNeuzeitGrotesk-Light 566.8 + l_____ DINNeuzeitGrotesk-BoldCond 566.9 + l_____ DalcoraHE 567.0 + lpi___ DecoNumbersLH-Circle 568.0 + lpi___ DecoNumbersLH-OCRA 568.1 + lpi___ DecoNumbersLH-Serlio 568.2 + lpi___ DecoNumbersLH-Square 568.3 + lpi___ DecoNumbersLH-Triangle 568.4 + l_____ DemosEF-Medium 569.0 + l_____ DemosEF-MediumSC 569.1 + l_____ DemosEF-MediumItalic 569.2 + l_____ DemosEF-SemiBold 569.3 + l_____ DextorEF 570.0 + l_____ Diotima-Roman 571.0 + l_____ Diotima-RomanSC 571.1 + l_____ Diotima-RomanOsF 571.2 + l_____ Diotima-Italic 571.3 + l_____ Diotima-ItalicOsF 571.4 + l_____ DucDeBerry 572.0 + l_____ DucDeBerry-Dfr 572.1 + l_____ EinhornEF 573.0 + l_____ EngraversLH-BoldFace 574.0 + l_____ EngraversEF-Roman 574.1 + l_____ EngraversEF-Bold 574.2 + l_____ GaladrielEF 578.0 + l_____ StempelGaramond-Roman 579.0 + l_____ StempelGaramond-RomanSC 579.1 + l_____ StempelGaramond-RomanOsF 579.2 + l_____ StempelGaramond-Italic 579.3 + l_____ StempelGaramond-ItalicOsF 579.4 + l_____ StempelGaramond-Bold 579.5 + l_____ StempelGaramond-BoldOsF 579.6 + l_____ StempelGaramond-BoldItalic 579.7 + l_____ StempelGaramond-BoldItalicOsF 579.8 + l_____ StempelGaramondCE-Roman 579.9 + l_____ StempelGaramondCE-Italic 579.10 + l_____ StempelGaramondCE-Bold 579.11 + l_____ StempelGaramondCE-BoldItalic 579.12 + l_____ StempelGaramondEastA-Roman 579.13 + l_____ StempelGaramondEastA-Italic 579.14 + l_____ StempelGaramondEastA-Bold 579.15 + l_____ StempelGaramondEastA-BoldItalic 579.16 + l_____ AGaramond-Regular 579.17 + l_____ AGaramondAlt-Regular 579.18 + l_____ AGaramond-RegularSC 579.19 + l_____ AGaramondExp-Regular 579.20 + l_____ AGaramond-Italic 579.21 + l_____ AGaramondAlt-Italic 579.22 + l_____ AGaramond-ItalicOsF 579.23 + l_____ AGaramondExp-Italic 579.24 + l_____ AGaramond-Semibold 579.25 + l_____ AGaramond-SemiboldSC 579.26 + l_____ AGaramondExp-Semibold 579.27 + l_____ AGaramond-SemiboldItalic 579.28 + l_____ AGaramond-SemiboldItalicOsF 579.29 + l_____ AGaramondExp-SemiboldItalic 579.30 + l_____ AGaramond-Bold 579.31 + l_____ AGaramond-BoldOsF 579.32 + l_____ AGaramondExp-Bold 579.33 + l_____ AGaramond-BoldItalic 579.34 + l_____ AGaramond-BoldItalicOsF 579.35 + l_____ AGaramondExp-BoldItalic 579.36 + l_____ AGaramond-Titling 579.37 + l_____ GaramondBE-Regular 579.38 + l_____ GaramondBE-RegularSC 579.39 + l_____ GaramondBE-RegularExpert 579.40 + l_____ GaramondBE-Italic 579.41 + l_____ GaramondBE-ItalicOsF 579.42 + l_____ GaramondBE-ItalicExpert 579.43 + l_____ GaramondBE-Medium 579.44 + l_____ GaramondBE-MediumSC 579.45 + l_____ GaramondBE-MediumExpert 579.46 + l_____ GaramondBE-MediumItalic 579.47 + l_____ GaramondBE-MediumItalicOsF 579.48 + l_____ GaramondBE-MediumItalicExpert 579.49 + l_____ GaramondBE-Bold 579.50 + l_____ GaramondBE-BoldOsF 579.51 + l_____ GaramondBE-BoldExpert 579.52 + l_____ GaramondBE-Condensed 579.53 + l_____ GaramondBE-CondensedSC 579.54 + l_____ GaramondBE-CnExpert 579.55 + l_____ GaramondBE-MediumCn 579.56 + l_____ GaramondBE-MediumCnOsF 579.57 + l_____ GaramondBE-MediumCnExpert 579.58 + l_____ GaramondBE-SwashItalic 579.59 + l_____ Garamond-Light 579.60 + l_____ Garamond-LightItalic 579.61 + l_____ Garamond-Book 579.62 + l_____ Garamond-BookItalic 579.63 + l_____ Garamond-Bold 579.64 + l_____ Garamond-BoldItalic 579.65 + l_____ Garamond-Ultra 579.66 + l_____ Garamond-UltraItalic 579.67 + l_____ Garamond-LightCondensed 579.68 + l_____ Garamond-LightCondensedItalic 579.69 + l_____ Garamond-BookCondensed 579.70 + l_____ Garamond-BookCondensedItalic 579.71 + l_____ Garamond-BoldCondensed 579.72 + l_____ Garamond-BoldCondensedItalic 579.73 + l_____ Garamond-UltraCondensed 579.74 + l_____ Garamond-UltraCondensedItalic 579.75 + l_____ GaramondEF-Light 579.76 + l_____ GaramondEF-LightItalic 579.77 + l_____ GaramondEF-Book 579.78 + l_____ GaramondEF-BookItalic 579.79 + l_____ GaramondEF-Bold 579.80 + l_____ GaramondEF-BoldItalic 579.81 + l_____ GaramondEF-Ultra 579.82 + l_____ GaramondEF-UltraItalic 579.83 + l_____ GaramondHandtEF-Bold 579.84 + l_____ GaramondHandtEF-BoldItalic 579.85 + l_____ GaramondEF-LightCondensed 579.86 + l_____ GaramondEF-LightCondensedItalic 579.87 + l_____ GaramondEF-BookCondensed 579.88 + l_____ GaramondEF-BookCondensedItalic 579.89 + l_____ GaramondEF-BoldCondensed 579.90 + l_____ GaramondEF-BoldCondensedItalic 579.91 + l_____ GaramondEF-UltraCondensed 579.92 + l_____ GaramondEF-UltraCondensedItalic 579.93 + l_____ SimonciniGaramond 579.94 + l_____ SimonciniGaramond-Italic 579.95 + l_____ SimonciniGaramond-Bold 579.96 + l_____ GaramondThree 579.97 + l_____ GaramondThree-SC 579.98 + l_____ GaramondThree-Italic 579.99 + l_____ GaramondThree-ItalicOsF 579.100 + l_____ GaramondThree-Bold 579.101 + l_____ GaramondThree-BoldSC 579.102 + l_____ GaramondThree-BoldItalic 579.103 + l_____ GaramondThree-BoldItalicOsF 579.104 + l_____ GaramondNo5EF-Light 579.105 + l_____ GaramondNo5EF-LightItalic 579.106 + l_____ GaramondNo5EF-Bold 579.107 + l_____ Giddyup 580.0 + l_____ GlaserStencilEF 581.0 + l_____ Grace 582.0 + l_____ GrafiloneLL-Light 583.0 + l_____ GrafiloneLL-SemiBold 583.1 + l_____ GrafiloneLL-Bold 583.2 + l_____ HaMangaIrregularLL-Regular 584.0 + l_____ HaMangaIrregularLL-Italic 584.1 + l_____ HaMangaIrregularPicturesLL 584.2 + l_____ HandelGothicEF-Light 585.0 + l_____ HandelGothicEF-Medium 585.1 + l_____ HandelGothicEF-Bold 585.2 + l_____ Herculanum 586.0 + l_____ HoTomLL-Regular 587.0 + l_____ HollanderEF-Regular 588.0 + l_____ HollanderSCEF-Regular 588.1 + l_____ HollanderEF-RegularItalic 588.2 + l_____ HollanderEF-Bold 588.3 + l_____ HorndonEF 589.0 + l_____ BarcelonaEF-Book 591.0 + l_____ BarcelonaEF-BookItalic 591.1 + l_____ BarcelonaEF-Medium 591.2 + l_____ BarcelonaEF-MediumItalic 591.3 + l_____ BarcelonaEF-Bold 591.4 + l_____ BarcelonaEF-BoldItalic 591.5 + l_____ BarcelonaEF-Heavy 591.6 + l_____ BarcelonaEF-HeavyItalic 591.7 + l_____ Bookman-Light 592.0 + l_____ Bookman-LightItalic 592.1 + l_____ Bookman-Medium 592.2 + l_____ Bookman-MediumItalic 592.3 + l_____ Bookman-Demi 592.4 + l_____ Bookman-DemiItalic 592.5 + l_____ Bookman-Bold 592.6 + l_____ Bookman-BoldItalic 592.7 + l_____ BookmanCE-Light 592.8 + l_____ BookmanCE-LightItalic 592.9 + l_____ BookmanCE-Demi 592.10 + l_____ BookmanCE-DemiItalic 592.11 + l_____ BookmanEF-Light 592.12 + l_____ BookmanEF-LightItalic 592.13 + l_____ BookmanEF-Medium 592.14 + l_____ BookmanEF-MediumItalic 592.15 + l_____ BookmanEF-Demi 592.16 + l_____ BookmanEF-DemiItalic 592.17 + l_____ BookmanEF-Bold 592.18 + l_____ BookmanEF-BoldItalic 592.19 + l_____ GammaEF-Book 593.0 + l_____ GammaSCEF-Book 593.1 + l_____ GammaEF-BookItalic 593.2 + l_____ GammaEF-Medium 593.3 + l_____ GammaSCEF-Medium 593.4 + l_____ GammaEF-MediumItalic 593.5 + l_____ GammaEF-Bold 593.6 + l_____ GammaEF-BoldItalic 593.7 + l_____ GammaEF-Black 593.8 + l_____ GammaEF-BlackItalic 593.9 + l_____ Italia-Book 594.0 + l_____ Italia-Medium 594.1 + l_____ Italia-Bold 594.2 + l_____ ItaliaEF-Book 594.3 + l_____ ItaliaEF-Medium 594.4 + l_____ ItaliaEF-Bold 594.5 + l_____ ItaliaEF-Condense 594.6 + l_____ MendozaRoman-Book 595.0 + l_____ MendozaRoman-BookItalic 595.1 + l_____ MendozaRoman-Medium 595.2 + l_____ MendozaRoman-MediumItalic 595.3 + l_____ MendozaRoman-Bold 595.4 + l_____ MendozaRoman-BoldItalic 595.5 + l_____ MendozaRomanEF-Book 595.6 + l_____ MendozaRomanEF-BookSC 595.7 + l_____ MendozaRomanEF-BookItalic 595.8 + l_____ MendozaRomanEF-Medium 595.9 + l_____ MendozaRomanEF-MediumSC 595.10 + l_____ MendozaRomanEF-MediumItalic 595.11 + l_____ MendozaRomanEF-Bold 595.12 + l_____ MendozaRomanEF-BoldItalic 595.13 + l_____ OfficinaSans-Book 596.0 + l_____ OfficinaSans-BookItalic 596.1 + l_____ OfficinaSans-Bold 596.2 + l_____ OfficinaSans-BoldItalic 596.3 + l_____ OfficinaSerif-Book 596.4 + l_____ OfficinaSerif-BookItalic 596.5 + l_____ OfficinaSerif-Bold 596.6 + l_____ OfficinaSerif-BoldItalic 596.7 + l_____ OfficinaSansEF-Book 596.8 + l_____ OfficinaSansEF-BookItalic 596.9 + l_____ OfficinaSansEF-Bold 596.10 + l_____ OfficinaSansEF-BoldItalic 596.11 + l_____ OfficinaSerifEF-Book 596.12 + l_____ OfficinaSerifEF-BookItalic 596.13 + l_____ OfficinaSerifEF-Bold 596.14 + l_____ OfficinaSerifEF-BoldItalic 596.15 + l_____ StoneInformal 597.0 + l_____ StoneInformal-Italic 597.1 + l_____ StoneInformal-SemiBold 597.2 + l_____ StoneInformal-SemiBoldItalic 597.3 + l_____ StoneInformal-Bold 597.4 + l_____ StoneInformal-BoldItalic 597.5 + l_____ StoneSans 597.6 + l_____ StoneSans-Italic 597.7 + l_____ StoneSans-SemiBold 597.8 + l_____ StoneSans-SemiBoldItalic 597.9 + l_____ StoneSans-Bold 597.10 + l_____ StoneSans-BoldItalic 597.11 + l_____ StoneSerif 597.12 + l_____ StoneSerif-Italic 597.13 + l_____ StoneSerif-SemiBold 597.14 + l_____ StoneSerif-SemiBoldItalic 597.15 + l_____ StoneSerif-Bold 597.16 + l_____ StoneSerif-BoldItalic 597.17 + l_____ StoneSans-PhoneticIPA 597.18 + l_____ StoneSans-PhoneticAlternate 597.19 + l_____ StoneSerif-PhoneticIPA 597.20 + l_____ StoneSerif-PhoneticAlternate 597.21 + l_____ StoneInformalEF-Medium 597.22 + l_____ StoneInformalEF-MediumSC 597.23 + l_____ StoneInformalEF-MediumItalic 597.24 + l_____ StoneInformalEF-SemiBold 597.25 + l_____ StoneInformalEF-SemiBoldSC 597.26 + l_____ StoneInformalEF-SemiBoldItalic 597.27 + l_____ StoneInformalEF-Bold 597.28 + l_____ StoneInformalEF-BoldItalic 597.29 + l_____ StoneSansEF-Medium 597.30 + l_____ StoneSansEF-MediumSC 597.31 + l_____ StoneSansEF-MediumItalic 597.32 + l_____ StoneSansEF-SemiBold 597.33 + l_____ StoneSansEF-SemiBoldSC 597.34 + l_____ StoneSansEF-SemiBoldItalic 597.35 + l_____ StoneSansEF-Bold 597.36 + l_____ StoneSansEF-BoldItalic 597.37 + l_____ StoneSerifEF-Medium 597.38 + l_____ StoneSerifEF-MediumSC 597.39 + l_____ StoneSerifEF-MediumItalic 597.40 + l_____ StoneSerifEF-SemiBold 597.41 + l_____ StoneSerifEF-SemiBoldSC 597.42 + l_____ StoneSerifEF-SemiBoldItalic 597.43 + l_____ StoneSerifEF-Bold 597.44 + l_____ StoneSerifEF-BoldItalic 597.45 + l_____ StoneSansEF-MediumPhonetic 597.46 + l_____ StoneSansEF-MediumPhoneticPlus 597.47 + l_____ StoneSerifEF-MediumPhonetic 597.48 + l_____ StoneSerifEF-MediumPhoneticPlus 597.49 + l_____ Usherwood-Book 598.0 + l_____ Usherwood-BookItalic 598.1 + l_____ Usherwood-Medium 598.2 + l_____ Usherwood-MediumItalic 598.3 + l_____ Usherwood-Bold 598.4 + l_____ Usherwood-BoldItalic 598.5 + l_____ Usherwood-Black 598.6 + l_____ Usherwood-BlackItalic 598.7 + l_____ UsherwoodEF-Book 598.8 + l_____ UsherwoodEF-BookItalic 598.9 + l_____ UsherwoodEF-Medium 598.10 + l_____ UsherwoodEF-MediumItalic 598.11 + l_____ UsherwoodEF-Bold 598.12 + l_____ UsherwoodEF-BoldItalic 598.13 + l_____ UsherwoodEF-Black 598.14 + l_____ UsherwoodEF-BlackItalic 598.15 + l_____ Impact 600.0 + l_____ ImprimeurClassiqueEF-Reg 601.0 + l_____ ImprimeurClassiqueEF-Obl 601.1 + l_____ ImprimeurNouveauEF-Reg 601.2 + l_____ ImprimeurNouveauEF-Obl 601.3 + l_____ Insignia 602.0 + l_____ Insignia-A 602.1 + l_____ JansonText-Roman 603.0 + l_____ JansonText-RomanSC 603.1 + l_____ JansonText-Italic 603.2 + l_____ JansonText-ItalicOsF 603.3 + l_____ JansonText-Bold 603.4 + l_____ JansonText-BoldOsF 603.5 + l_____ JansonText-BoldItalic 603.6 + l_____ JansonText-BoldItalicOsF 603.7 + l_____ Kabel-Light 604.0 + l_____ Kabel-Book 604.1 + l_____ Kabel-Heavy 604.2 + l_____ Kabel-Black 604.3 + l_____ ItcKabel-Book 604.4 + l_____ ItcKabel-Medium 604.5 + l_____ ItcKabel-Demi 604.6 + l_____ ItcKabel-Bold 604.7 + l_____ ItcKabel-Ultra 604.8 + l_____ ItcKabelEF-Book 604.9 + l_____ ItcKabelEF-Medium 604.10 + l_____ ItcKabelEF-Demi 604.11 + l_____ ItcKabelEF-Bold 604.12 + l_____ ItcKabelEF-Ultra 604.13 + l_____ KapitelliaEF-Bold 605.0 + l_____ KlangMT 606.0 + l_____ KolossEF 607.0 + l_____ LCDEF 608.0 + l_____ LinoLetter-Roman 610.0 + l_____ LinoLetter-RomanSC 610.1 + l_____ LinoLetter-RomanOsF 610.2 + l_____ LinoLetter-Italic 610.3 + l_____ LinoLetter-ItalicOsF 610.4 + l_____ LinoLetter-Medium 610.5 + l_____ LinoLetter-MediumSC 610.6 + l_____ LinoLetter-MediumOsF 610.7 + l_____ LinoLetter-MediumItalic 610.8 + l_____ LinoLetter-MediumItalicOsF 610.9 + l_____ LinoLetter-Bold 610.10 + l_____ LinoLetter-BoldSC 610.11 + l_____ LinoLetter-BoldOsF 610.12 + l_____ LinoLetter-BoldItalic 610.13 + l_____ LinoLetter-BoldItalicOsF 610.14 + l_____ LinoLetter-Black 610.15 + l_____ LinoLetter-BlackSC 610.16 + l_____ LinoLetter-BlackOsF 610.17 + l_____ LinoLetter-BlackItalic 610.18 + l_____ LinoLetter-BlackItalicOsF 610.19 + l_____ TechnicalLH-PiOne 612.0 + l_____ TechnicalLH-PiTwo 612.1 + l_____ MagnaEF-Light 613.0 + l_____ MagnaEF-Italic 613.1 + l_____ MagnaEF-Bold 613.2 + l_____ MateoRomanLL 614.0 + l_____ MateoBoldLL 614.1 + l_____ MateoBoldOutlineLL 614.2 + l_____ Memphis-Light 615.0 + l_____ Memphis-LightItalic 615.1 + l_____ Memphis-Medium 615.2 + l_____ Memphis-MediumItalic 615.3 + l_____ Memphis-Bold 615.4 + l_____ Memphis-BoldItalic 615.5 + l_____ Memphis-ExtraBold 615.6 + l_____ MetroLite-Two 616.0 + l_____ MetroMedium-Two 616.1 + l_____ MetroBlack-Two 616.2 + l_____ Mistral 617.0 + l_____ Monotype Script-Bold 618.0 + l_____ Napoleon-BoldCondensed 619.0 + l_____ NeulandStar 620.1 + l_____ NewCaledonia 621.0 + l_____ NewCaledonia-RomanSC 621.1 + l_____ NewCaledonia-Italic 621.2 + l_____ NewCaledonia-ItalicOsF 621.3 + l_____ NewCaledonia-SemiBold 621.4 + l_____ NewCaledonia-SemiBoldItalic 621.5 + l_____ NewCaledonia-Bold 621.6 + l_____ NewCaledonia-BoldSC 621.7 + l_____ NewCaledonia-BoldItalic 621.8 + l_____ NewCaledonia-BoldItalicOsF 621.9 + l_____ NewCaledonia-Black 621.10 + l_____ NewCaledonia-BlackItalic 621.11 + l_____ NoweAtenyLL-Two 622.0 + l_____ OctopussEF 623.0 + l_____ OctopussEF-Shaded 623.1 + l_____ OldTown536EF 624.0 + l_____ Optima 625.0 + l_____ Optima-Oblique 625.1 + l_____ Optima-Medium 625.2 + l_____ Optima-MediumOblique 625.3 + l_____ Optima-Demi 625.4 + l_____ Optima-DemiOblique 625.5 + l_____ Optima-Bold 625.6 + l_____ Optima-BoldOblique 625.7 + l_____ Optima-Black 625.8 + l_____ Optima-BlackOblique 625.9 + l_____ Optima-ExtraBlack 625.10 + l_____ Optima-ExtraBlackOblique 625.11 + l_____ OptimaCE-Roman 625.12 + l_____ OptimaCE-Oblique 625.13 + l_____ OptimaCE-Bold 625.14 + l_____ OptimaCE-BoldOblique 625.15 + l_____ OptimaEastA-Roman 625.16 + l_____ OptimaEastA-RomanOblique 625.17 + l_____ OptimaEastA-Bold 625.18 + l_____ OptimaEastA-BoldOblique 625.19 + l_____ PaddingtonEF 626.0 + l_____ PaddingtonEF-Alternate 626.1 + l_____ PapyrusEF-Regular 627.0 + l_____ PapyrusEF-Alternates 627.1 + l_____ Peignot-Light 628.0 + l_____ Peignot-Demi 628.1 + l_____ Peignot-Bold 628.2 + l_____ PendryScriptEF-Regular 629.0 + l_____ PendryScriptEF-Alternates 629.1 + l_____ PiccadillyEF 630.0 + l_____ Poplar 631.0 + l_____ PumpEF-Light 632.0 + l_____ PumpEF-Medium 632.1 + l_____ PumpEF-Demi 632.2 + l_____ PumpEF-Bold 632.3 + l_____ PumpEF-Triline 632.4 + l_____ RailroadGothic 633.0 + l_____ RotisSansSerif-Light 634.0 + l_____ RotisSansSerif-LightItalic 634.1 + l_____ RotisSansSerif 634.2 + l_____ RotisSansSerif-Italic 634.3 + l_____ RotisSansSerif-Bold 634.4 + l_____ RotisSansSerif-ExtraBold 634.5 + l_____ RotisSerif 634.6 + l_____ RotisSerif-Italic 634.7 + l_____ RotisSerif-Bold 634.8 + l_____ RotisSemiSans-Light 634.9 + l_____ RotisSemiSans-LightItalic 634.10 + l_____ RotisSemiSans 634.11 + l_____ RotisSemiSans-Italic 634.12 + l_____ RotisSemiSans-Bold 634.13 + l_____ RotisSemiSans-ExtraBold 634.14 + l_____ RotisSemiSerif 634.15 + l_____ RotisSemiSerif-Bold 634.16 + l_____ RunicMT-Condensed 635.0 + l_____ SassoonPrimary 636.0 + l_____ SerlioLH 637.0 + l_____ ShelleyEF 638.0 + l_____ SierraEF-Regular 639.0 + l_____ SierraEF-RegularItalic 639.1 + l_____ SierraEF-Bold 639.2 + l_____ SierraEF-BoldItalic 639.3 + l_____ SlipstreamEF 640.0 + l_____ Souvenir-Light 641.0 + l_____ Souvenir-LightItalic 641.1 + l_____ Souvenir-Medium 641.2 + l_____ Souvenir-MediumItalic 641.3 + l_____ Souvenir-Demi 641.4 + l_____ Souvenir-DemiItalic 641.5 + l_____ Souvenir-Bold 641.6 + l_____ Souvenir-BoldItalic 641.7 + l_____ SouvenirGreek-Light 641.8 + l_____ SouvenirGreek-Demi 641.9 + l_____ SouvenirGreekP-Light 641.10 + l_____ SouvenirGreekP-Demi 641.11 + l_____ SouvenirEF-Light 641.12 + l_____ SouvenirEF-LightItalic 641.13 + l_____ SouvenirEF-Medium 641.14 + l_____ SouvenirEF-MediumItalic 641.15 + l_____ SouvenirEF-Demi 641.16 + l_____ SouvenirEF-DemiItalic 641.17 + l_____ SouvenirEF-Bold 641.18 + l_____ SouvenirEF-BoldItalic 641.19 + l_____ SouvenirMonoEF-Light 641.20 + l_____ SouvenirMonoEF-LightItalic 641.21 + l_____ SouvenirMonoEF-Bold 641.22 + l_____ SpringfieldEF 642.0 + l_____ StentorEF 643.0 + l_____ StymieEF-Light 644.0 + l_____ StymieEF-Medium 644.1 + l_____ StymieEF-Bold 644.2 + l_____ StymieEF-Black 644.3 + l_____ StymieEF-MediumCondensed 644.4 + l_____ StymieEF-BoldCondensed 644.5 + l_____ SynchroEF 645.0 + l_____ SynchroEF-Alternate 645.1 + l_____ TeaChest 646.0 + l_____ Times-Roman 648.0 + l_____ Times-RomanSC 648.1 + l_____ Times-Italic 648.2 + l_____ Times-ItalicOsF 648.3 + l_____ Times-SemiBold 648.4 + l_____ Times-SemiBoldItalic 648.5 + l_____ Times-Bold 648.6 + l_____ Times-BoldSC 648.7 + l_____ Times-BoldItalic 648.8 + l_____ Times-BoldItalicOsF 648.9 + l_____ TimesTen-Roman 648.10 + l_____ TimesTen-RomanSC 648.11 + l_____ TimesTen-RomanOsF 648.12 + l_____ TimesTen-Italic 648.13 + l_____ TimesTen-ItalicOsF 648.14 + l_____ TimesTen-Bold 648.15 + l_____ TimesTen-BoldOsF 648.16 + l_____ TimesTen-BoldItalic 648.17 + l_____ TimesTen-BoldItalicOsF 648.18 + l_____ TimesEighteen-Roman 648.19 + l_____ TimesEighteen-Bold 648.20 + l_____ Times-ExtraBold 648.21 + l_____ TimesEuropa-Roman 648.22 + l_____ TimesEuropa-Italic 648.23 + l_____ TimesEuropa-Bold 648.24 + l_____ TimesEuropa-BoldItalic 648.25 + l_____ Times-PhoneticIPA 648.26 + l_____ Times-PhoneticAlternate 648.27 + l_____ TimesCE-Roman 648.28 + l_____ TimesCE-Italic 648.29 + l_____ TimesCE-Bold 648.30 + l_____ TimesCE-BoldItalic 648.31 + l_____ TimesTenCE-Roman 648.32 + l_____ TimesTenCE-Italic 648.33 + l_____ TimesTenCE-Bold 648.34 + l_____ TimesTenCE-BoldItalic 648.35 + l_____ TimesTenCyr-Upright 648.36 + l_____ TimesTenCyr-Inclined 648.37 + l_____ TimesTenCyr-Bold 648.38 + l_____ TimesTenCyr-BoldInclined 648.39 + l_____ TimesTenEastA-Roman 648.40 + l_____ TimesTenEastA-Italic 648.41 + l_____ TimesTenEastA-Bold 648.42 + l_____ TimesTenEastA-BoldItalic 648.43 + l_____ TimesTenGreek-Upright 648.44 + l_____ TimesTenGreek-Inclined 648.45 + l_____ TimesTenGreek-Bold 648.46 + l_____ TimesTenGreek-BdInclined 648.47 + l_____ TimesTenGreekP-Upright 648.48 + l_____ TimesTenGreekP-Inclined 648.49 + l_____ TimesTenGreekP-Bold 648.50 + l_____ TimesTenGreekP-BoldInclined 648.51 + l_____ TimesModernEF 648.52 + l_____ TimesNewRomanPS-Roman 648.53 + l_____ TimesNewRomanPS-Italic 648.54 + l_____ TimesNewRomanPS-Bold 648.55 + l_____ TimesNewRomanPS-BoldItalic 648.56 + l_____ TimesNewRomanMT-Cond 648.57 + l_____ TimesNewRomanMT-CondItalic 648.58 + l_____ TimesNewRomanMT-BoldCond 648.59 + l_____ TradeGothic-Light 649.0 + l_____ TradeGothic-LightOblique 649.1 + l_____ TradeGothic 649.2 + l_____ TradeGothic-Oblique 649.3 + l_____ TradeGothic-Bold 649.4 + l_____ TradeGothic-BoldTwo 649.5 + l_____ TradeGothic-BoldOblique 649.6 + l_____ TradeGothic-BoldTwoOblique 649.7 + l_____ TradeGothic-CondEighteen 649.8 + l_____ TradeGothic-CondEighteenObl 649.9 + l_____ TradeGothic-BoldCondTwenty 649.10 + l_____ TradeGothic-BoldCondTwentyObl 649.11 + l_____ TradeGothicLH-Extended 649.12 + l_____ Utopia-Regular 651.0 + l_____ Utopia-RegularSC 651.1 + l_____ UtopiaExp-Regular 651.2 + l_____ Utopia-Italic 651.3 + l_____ Utopia-ItalicOsF 651.4 + l_____ UtopiaExp-Italic 651.5 + l_____ Utopia-Semibold 651.6 + l_____ Utopia-SemiboldSC 651.7 + l_____ UtopiaExp-Semibold 651.8 + l_____ Utopia-SemiboldItalic 651.9 + l_____ Utopia-SemiboldItalicOsF 651.10 + l_____ UtopiaExp-SemiboldItalic 651.11 + l_____ Utopia-Bold 651.12 + l_____ Utopia-BoldOsF 651.13 + l_____ UtopiaExp-Bold 651.14 + l_____ Utopia-BoldItalic 651.15 + l_____ Utopia-BoldItalicOsF 651.16 + l_____ UtopiaExp-BoldItalic 651.17 + l_____ Utopia-Black 651.18 + l_____ Utopia-BlackOsF 651.19 + l_____ Utopia-BlackExpert 651.20 + l_____ Utopia-Headline 651.21 + l_____ Utopia-TitlingCapitals 651.22 + l_____ Utopia-Ornaments 651.23 + l_____ VenusMager 652.0 + l_____ VenusKursivMager 652.1 + l_____ VenusLinkskursiv 652.2 + l_____ VenusHalbfett 652.3 + l_____ VenusKursivHalbfett 652.4 + l_____ VenusEgypHalbfett 652.5 + l_____ VenusEgypHalbfettKurs 652.6 + l_____ VoltaEF-Regular 653.0 + l_____ VoltaEF-Medium 653.1 + l_____ VoltaEF-MediumItalic 653.2 + l_____ VoltaEF-Bold 653.3 + l_____ Weiss 654.0 + l_____ Weiss-Italic 654.1 + l_____ Weiss-Bold 654.2 + l_____ Weiss-ExtraBold 654.3 + l_____ WeissAntiquaEF-Regular 654.4 + l_____ WeissAntiquaEF-RegularItalic 654.5 + l_____ WeissAntiquaEF-Medium 654.6 + l_____ WeissAntiquaEF-Bold 654.7 + l_____ WeissAntiquaEF-ExtraBold 654.8 + l_____ WeissAntiquaEF-UltraBold 654.9 + l_____ WeissAntiquaEF-BoldCondensed 654.10 + l_____ WeissAntiquaEF-ExtraBoldCondensed 654.11 + l_____ Wilke-Roman 655.0 + l_____ Wilke-Italic 655.1 + l_____ Wilke-Bold 655.2 + l_____ Wilke-BoldItalic 655.3 + l_____ Wilke-Black 655.4 + l_____ Wilke-BlackItalic 655.5 + l_____ Woodstock 656.0 + l_____ Bellevue 657.0 + l_____ BinnerEF 658.0 + l_____ Boton-Light 659.0 + l_____ Boton-LightItalic 659.1 + l_____ Boton-Regular 659.2 + l_____ Boton-Italic 659.3 + l_____ Boton-Medium 659.4 + l_____ Boton-MediumItalic 659.5 + l_____ Boton-Bold 659.6 + l_____ Boton-BoldItalic 659.7 + l_____ AachenCE-Bold 9501.0 + l_____ AdHoc 9501.1 + l_____ AdHoc-Bis 9501.2 + l_____ AdHoc-SC 9501.3 + l_____ AdHoc-BisItalic 9501.4 + l_____ AdHoc-Italic 9501.5 + l_____ LinotypeAmelia 9501.8 + l_____ Andreas 9501.9 + l_____ BaskervilleClassico 9501.13 + l_____ BaskervilleClassico-Italic 9501.14 + l_____ BaskervilleClassico-BoldItalic 9501.15 + l_____ BaskervilleClassico-SC 9501.16 + l_____ BaskervilleClassico-Bold 9501.17 + l_____ LinotypeBecket 9501.18 + l_____ Bernhard-BoldCondensed 9501.19 + l_____ Birka 9501.20 + l_____ Birka-SC 9501.21 + l_____ Birka-SemiBoldItalic 9501.22 + l_____ Birka-SemiBold 9501.23 + l_____ Birka-BoldItalic 9501.24 + l_____ Birka-Italic 9501.25 + l_____ Birka-Bold 9501.26 + l_____ LinotypeBlackWhiteHeadline 9501.27 + l_____ LinotypeBlackWhiteOutline 9501.28 + l_____ LinotypeBlackWhiteLaserOutline 9501.29 + l_____ LinotypeBlackWhite 9501.30 + l_____ LinotypeBlackWhiteLaser 9501.31 + l_____ BodoniHE-Light 9501.32 + l_____ BodoniHE-LightItalic 9501.33 + l_____ BodoniHE-SemiBold 9501.34 + l_____ BodoniHE-SemiBoldItalic 9501.35 + l_____ BodoniHE-BookItalic 9501.36 + l_____ BodoniHE-Book 9501.37 + l_____ BodoniHE-Bold 9501.38 + l_____ BodoniHE-ExtraBold 9501.39 + l_____ BodoniHE-BoldItalic 9501.40 + l_____ BodoniHE-SemiBoldCondensedItalic 9501.41 + l_____ BodoniHE-SemiBoldCondensed 9501.42 + l_____ BodoniHE-BoldCondensedItalic 9501.43 + l_____ BodoniHE-BoldCondensed 9501.44 + l_____ BodoniHE-ExtraBoldItalic 9501.45 + l_____ BodoniClassico 9501.46 + l_____ BodoniClassico-BoldItalic 9501.47 + l_____ BodoniClassico-SC 9501.48 + l_____ BodoniClassico-Bold 9501.49 + l_____ BodoniClassico-Italic 9501.50 + l_____ Carniola 9501.52 + l_____ Carniola-Bold 9501.53 + l_____ Carniola-SemiBold 9501.54 + l_____ Carniola-SC 9501.55 + l_____ Carniola-SemiBoldItalic 9501.56 + l_____ Carniola-BoldItalic 9501.57 + l_____ Carniola-Italic 9501.58 + l_____ CaslonHE-Light 9501.59 + l_____ CaslonHE-LightItalic 9501.60 + l_____ CaslonHE-Italic 9501.61 + l_____ CaslonHE-Roman 9501.62 + l_____ CaslonClassico 9501.63 + l_____ CaslonClassico-Bold 9501.64 + l_____ CaslonClassico-SC 9501.65 + l_____ CaslonClassico-BoldItalic 9501.66 + l_____ CaslonClassico-Italic 9501.67 + l_____ Century-HandtooledBold 9501.68 + l_____ Century-HandtooledBoldItalic 9501.69 + l_____ NewCenturySchlbkCyr-Roman 9501.70 + l_____ NewCenturySchlbkCyr-Bold 9501.71 + l_____ NewCenturySchlbkCyr-Italic 9501.72 + l_____ NewCenturySchlbkCyr-BoldItalic 9501.73 + l_____ Cheltenham-HandtooledBd 9501.74 + l_____ Cheltenham-HandtooledBdIt 9501.75 + l_____ CloisterOpenFace 9501.76 + l_____ Linotype CMC-Seven 9501.77 + l_____ CooperBlackCE-Regualr 9501.78 + l_____ CooperBlackCE-Italic 9501.79 + l_____ CourierCyr 9501.80 + l_____ CourierCyr-Oblique 9501.81 + l_____ CourierCyr-BoldOblique 9501.82 + l_____ CourierCyr-Bold 9501.83 + l_____ LinotypeDavida 9501.84 + l_____ Devin 9501.95 + l_____ Devin-Bold 9501.96 + l_____ Devin-Italic 9501.97 + l_____ Devin-SemiBold 9501.98 + l_____ Devin-SC 9501.99 + l_____ Devin-SemiBoldItalic 9501.100 + l_____ Devin-BoldItalic 9501.101 + l_____ Dialog-Condensed 9501.102 + l_____ Dialog-SemiBoldSC 9501.103 + l_____ Dialog-LightSC 9501.104 + l_____ Dialog-ExtraBoldItalic 9501.105 + l_____ Dialog-ExtraBold 9501.106 + l_____ Dialog-SemiBoldItalic 9501.107 + l_____ Dialog-SemiBold 9501.108 + l_____ Dialog-LightItalic 9501.109 + l_____ Dialog-Light 9501.110 + l_____ Dialog-SC 9501.111 + l_____ Dialog-BoldItalic 9501.112 + l_____ Dialog-Bold 9501.113 + l_____ Dialog-Italic 9501.114 + l_____ Dialog 9501.115 + l_____ DialogCond-Bold 9501.116 + l_____ DialogCond-Italic 9501.117 + l_____ DialogCond-BoldItalic 9501.118 + l_____ DialogCond-SemiBoldItalic 9501.119 + l_____ DialogCond-SemiBold 9501.120 + l_____ DigiAntiqua-LightCondensed 9501.121 + l_____ DigiGrotesk-BoldCondensed 9501.122 + l_____ EmonaCond 9501.124 + l_____ EmonaCond-Bold 9501.125 + l_____ EmonaCond-BoldItalic 9501.126 + l_____ Emona-Bold 9501.127 + l_____ Emona-SemiBold 9501.128 + l_____ Emona-SC 9501.129 + l_____ Emona-SemiBoldItalic 9501.130 + l_____ Emona-Italic 9501.131 + l_____ Emona 9501.132 + l_____ EmonaCond-Italic 9501.133 + l_____ Emona-BoldItalic 9501.134 + l_____ EsperantoCond 9501.135 + l_____ Esperanto 9501.136 + l_____ Esperanto-Bold 9501.137 + l_____ Esperanto-SemiBold 9501.138 + l_____ Esperanto-SC 9501.139 + l_____ Esperanto-SemiBoldItalic 9501.140 + l_____ Esperanto-BoldItalic 9501.141 + l_____ Esperanto-Italic 9501.142 + l_____ EsperantoCond-SC 9501.143 + l_____ EsperantoCond-Bold 9501.144 + l_____ EsperantoCond-Italic 9501.145 + l_____ EsperantoCond-BoldItalic 9501.146 + l_____ ExcelsiorInsertio 9501.147 + l_____ F2FAlRetto 9501.148 + l_____ F2FBoneR-Book 9501.149 + l_____ F2FCzykagoSemiSerif 9501.150 + l_____ F2FLego-Stoned 9501.151 + l_____ F2FLovegrid 9501.152 + l_____ F2FMadame-Butterfly 9501.153 + l_____ F2FMadZine-Dirt 9501.154 + l_____ F2FMadZine-Script 9501.155 + l_____ F2FOCR-AlexczykShake 9501.156 + l_____ OCR-BczykNorm 9501.157 + l_____ OCR-BczykBold 9501.158 + l_____ F2FPrototipa-Multipla 9501.159 + l_____ F2FScreen-Scream 9501.160 + l_____ F2FShakkarakk 9501.161 + l_____ F2FShpeetz 9501.162 + l_____ F2FTagliatelle-Sugo 9501.163 + l_____ F2FTwins 9501.164 + l_____ F2FTyrell-Corp 9501.165 + l_____ Linotype FehrleDisplay 9501.166 + l_____ Fortuna 9501.167 + l_____ Fortuna-Bold 9501.168 + l_____ FranklinGothic-BookCmpr 9501.169 + l_____ FranklinGothic-DemiCmprItal 9501.170 + l_____ FranklinGothic-DemiXCmpr 9501.171 + l_____ FranklinGothic-BookXCmpr 9501.172 + l_____ FranklinGothic-DemiCndItal 9501.173 + l_____ FranklinGothic-DemiCnd 9501.174 + l_____ FranklinGothic-MediumCndItal 9501.175 + l_____ FranklinGothic-MediumCnd 9501.176 + l_____ FranklinGothic-BookCndItal 9501.177 + l_____ FranklinGothic-BookCnd 9501.178 + l_____ FranklinGothic-DemiCmpr 9501.179 + l_____ FranklinGothic-BookCmprItal 9501.180 + l_____ FreestyleScriptCE 9501.181 + l_____ FrutigerCE-LightItalic 9501.182 + l_____ FrutigerCE-Roman 9501.183 + l_____ FrutigerCE-Black 9501.184 + l_____ FrutigerCE-Italic 9501.185 + l_____ FrutigerCE-Light 9501.186 + l_____ FrutigerCE-UltraBlack 9501.187 + l_____ FrutigerCE-BlackItalic 9501.188 + l_____ FrutigerCE-BoldItalic 9501.189 + l_____ FrutigerCE-Bold 9501.190 + l_____ FuturaCE-Light 9501.191 + l_____ FuturaCE-Bold 9501.192 + l_____ FuturaCE-Medium 9501.193 + l_____ FuturaCE-BoldOblique 9501.194 + l_____ FuturaCE-LightOblique 9501.195 + l_____ FuturaCE-ExtraBoldOblique 9501.196 + l_____ FuturaCE-ExtraBold 9501.197 + l_____ FuturaCE-HeavyOblique 9501.198 + l_____ FuturaCE-Heavy 9501.199 + l_____ FuturaCE-MediumOblique 9501.200 + l_____ FuturaCE-BookOblique 9501.201 + l_____ FuturaCE-Book 9501.202 + l_____ Garamond-HandtooledBold 9501.206 + l_____ Garamond-HandtooledBoldItalic 9501.207 + l_____ GaramondClassico 9501.208 + l_____ GaramondClassico-BoldItalic 9501.209 + l_____ GaramondClassico-SC 9501.210 + l_____ GaramondClassico-Italic 9501.211 + l_____ GaramondClassico-Bold 9501.212 + l_____ GillSansCE-Light 9501.213 + l_____ GillSansCE-Roman 9501.214 + l_____ GillSansCE-Bold 9501.215 + l_____ GillSansCE-BoldItalic 9501.216 + l_____ GillSansCE-Italic 9501.217 + l_____ GillSansCE-LightItalic 9501.218 + l_____ GoudyModern94 9501.219 + l_____ GoudyModern94-Italic 9501.220 + l_____ GoudyModern94-Bold 9501.221 + l_____ GoudyModern94-BoldItalic 9501.222 + l_____ GoudyModern94-SC 9501.223 + l_____ GoudyVillage 9501.224 + l_____ GoudyVillage-SC 9501.225 + l_____ GoudyVillage-BoldItalic 9501.226 + l_____ GoudyVillage-Italic 9501.227 + l_____ GoudyVillage-Bold 9501.228 + l_____ GriffoClassico 9501.229 + l_____ GriffoClassico-Bold 9501.230 + l_____ GriffoClassico-BoldItalic 9501.231 + l_____ GriffoClassico-SC 9501.232 + l_____ GriffoClassico-Italic 9501.233 + l_____ HelveticaNeueCE-Light 9501.238 + l_____ HelveticaNeueCE-Black 9501.239 + l_____ HelveticaNeueCE-UltraLightIt 9501.240 + l_____ HelveticaNeueCE-BlackItalic 9501.241 + l_____ HelveticaNeueCE-Medium 9501.242 + l_____ HelveticaNeueCE-Heavy 9501.243 + l_____ HelveticaNeueCE-HeavyItalic 9501.244 + l_____ HelveticaNeueCE-UltraLight 9501.245 + l_____ HelveticaNeueCE-MediumItalic 9501.246 + l_____ HelveticaNeueCE-LightItalic 9501.247 + lpi___ Linotype HieroglyphsPi-One 9501.248 + lpi___ Linotype HieroglyphsPi-Two 9501.249 + l_____ Humana 9501.250 + l_____ Humana-SC 9501.251 + l_____ Isolde 9501.252 + l_____ Isolde-Italic 9501.253 + l_____ Isolde-BoldItalic 9501.254 + l_____ Isolde-SC 9501.255 + l_____ Isolde-Bold 9501.256 + l_____ JensonClassico 9501.257 + l_____ JensonClassico-Italic 9501.258 + l_____ JensonClassico-BoldItalic 9501.259 + l_____ JensonClassico-Bold 9501.260 + l_____ JensonClassico-SC 9501.261 + l_____ Jesper 9501.262 + l_____ Jonatan 9501.263 + l_____ Kalix 9501.264 + l_____ Kalix-SC 9501.265 + l_____ Kalix-Italic 9501.266 + l_____ Kalix-Bold 9501.267 + l_____ Kalix-BoldItalic 9501.268 + l_____ Kalix-SemiBoldItalic 9501.269 + l_____ Kalix-SemiBold 9501.270 + l_____ Kasper 9501.271 + lpi___ MacKeyCaps 9501.272 + l_____ KisClassico 9501.281 + l_____ KisClassico-BoldItalic 9501.282 + l_____ KisClassico-SC 9501.283 + l_____ KisClassico-Italic 9501.284 + l_____ KisClassico-Bold 9501.285 + lpi___ Linobats 9501.288 + l_____ LucidaTypewriter 9501.289 + l_____ LucidaSansTypewriter 9501.290 + l_____ LucidaSansTypewriter-Bd 9501.291 + l_____ LucidaSansTypewriter-BdObl 9501.292 + l_____ LucidaTypewriter-BoldObl 9501.293 + l_____ LucidaTypewriter-Bold 9501.294 + l_____ LucidaTypewriter-Obl 9501.295 + l_____ LucidaSansTypewriter-Obl 9501.296 + l_____ LinotypeLutherscheFraktur 9501.297 + l_____ LinotypeLutherscheFraktur-Dfr 9501.298 + l_____ Manuskript 9501.299 + l_____ Manuskript-BoldItalic 9501.300 + l_____ Manuskript-SC 9501.301 + l_____ Manuskript-Bold 9501.302 + l_____ Manuskript-Italic 9501.303 + l_____ MarcoPolo 9501.304 + l_____ MarcoPolo-SC 9501.305 + l_____ MarcoPolo-Italic 9501.306 + l_____ Memento 9501.307 + l_____ Memento-Italic 9501.308 + l_____ Memento-SemiBold 9501.309 + l_____ Memento-SemiBoldItalic 9501.310 + l_____ Memento-BoldItalic 9501.311 + l_____ Memento-Bold 9501.312 + l_____ Memento-SC 9501.313 + l_____ Miramar 9501.314 + l_____ Miramar-SC 9501.315 + l_____ Miramar-BoldItalic 9501.316 + l_____ Miramar-Bold 9501.317 + l_____ Miramar-Italic 9501.318 + l_____ Mojo 9501.319 + l_____ Monti-Roman 9501.320 + l_____ Monti-SemiBold 9501.321 + l_____ Napoleon-Light 9501.322 + l_____ Napoleon-Roman 9501.323 + l_____ Napoleon-Italic 9501.324 + l_____ Napoleon-Bold 9501.325 + l_____ Napoleon-BoldCondensed 9501.326 + l_____ Napoleon-SemiBold 9501.327 + l_____ Neuland 9501.328 + l_____ NormaCompr 9501.329 + l_____ NormaCompr-Bold 9501.330 + l_____ NormaCompr-Italic 9501.331 + l_____ NormaCompr-SC 9501.332 + l_____ NormaCond-Bold 9501.333 + l_____ NormaCond 9501.334 + l_____ Norma-SemiBoldItalic 9501.335 + l_____ Norma-SemiBold 9501.336 + l_____ Norma-BoldItalic 9501.337 + l_____ Norma-Bold 9501.338 + l_____ Norma-Italic 9501.339 + l_____ Norma 9501.340 + l_____ NormaCond-SC 9501.341 + l_____ NormaCond-Italic 9501.342 + l_____ Norma-SC 9501.343 + l_____ NormaCond-BoldItalic 9501.344 + l_____ NormaCompr-BoldItalic 9501.345 + l_____ Nyfors 9501.346 + l_____ OdenseCompr 9501.347 + l_____ OdenseCompr-Italic 9501.348 + l_____ OdenseCond-Bold 9501.349 + l_____ OdenseCond-Italic 9501.350 + l_____ OdenseCond-BoldItalic 9501.351 + l_____ Odense-Bold 9501.352 + l_____ Odense-Italic 9501.353 + l_____ Odense 9501.354 + l_____ Odense-SemiBoldSC 9501.355 + l_____ Odense-ExtraBoldItalic 9501.356 + l_____ Odense-ExtraBold 9501.357 + l_____ Odense-SemiBoldItalic 9501.358 + l_____ Odense-SemiBold 9501.359 + l_____ Odense-SC 9501.360 + l_____ Odense-BoldItalic 9501.361 + l_____ Odense-Neon 9501.362 + l_____ OdenseCond 9501.363 + l_____ Omnibus 9501.364 + l_____ Omnibus-Italic 9501.365 + l_____ Omnibus-BoldItali 9501.366 + l_____ Omnibus-SemiBoldItalic 9501.367 + l_____ Omnibus-SemiBold 9501.368 + l_____ Omnibus-SC 9501.369 + l_____ Omnibus-Bold 9501.370 + l_____ Ondine 9501.371 + l_____ Optima-Medium 9501.372 + l_____ Optima-DemiBoldItalic 9501.373 + l_____ Optima-BlackItalic 9501.374 + l_____ Optima-ExtraBlackItalic 9501.375 + l_____ Optima-ExtraBlack 9501.376 + l_____ Optima-Black 9501.377 + l_____ Optima-DemiBold 9501.378 + l_____ Optima-MediumItalic 9501.379 + l_____ Ouch 9501.380 + l_____ LinotypePaintIt 9501.381 + l_____ LinotypePaintIt-Black 9501.382 + l_____ Pax 9501.383 + l_____ Pax-SemiBoldItalic 9501.384 + l_____ Pax-SemiBold 9501.385 + l_____ PaxCond-SC 9501.386 + l_____ PaxCond-BoldItalic 9501.387 + l_____ PaxCond-Bold 9501.388 + l_____ PaxCond-Italic 9501.389 + l_____ PaxCond 9501.390 + l_____ Pax-SC 9501.391 + l_____ Pax-Italic 9501.392 + l_____ Pax-BoldItalic 9501.393 + l_____ Pax-Bold 9501.394 + l_____ PaxTwo 9501.395 + l_____ PaxTwo-Italic 9501.396 + l_____ PaxTwo-Bold 9501.397 + l_____ PaxTwo-SemiBold 9501.398 + l_____ PaxTwo-SC 9501.399 + l_____ PaxTwo-SemiBoldItalic 9501.400 + l_____ PaxTwo-BoldItalic 9501.401 + l_____ Persona 9501.402 + l_____ Pierrot 9501.403 + l_____ Ragnar 9501.406 + l_____ Ragnar-SC 9501.407 + l_____ Ragnar-SemiBoldItalic 9501.408 + l_____ Ragnar-Bold 9501.409 + l_____ Ragnar-BoldItalic 9501.410 + l_____ Ragnar-SemiBold 9501.411 + l_____ Ragnar-Italic 9501.412 + l_____ ResPublicaCond 9501.413 + l_____ ResPublica-Italic 9501.414 + l_____ ResPublica-BoldItalic 9501.415 + l_____ ResPublica-SC 9501.416 + l_____ ResPublica-Bold 9501.417 + l_____ ResPublica 9501.418 + l_____ ResPublicaCond-Italic 9501.419 + l_____ ResPublica-SemiBoldItalic 9501.420 + l_____ ResPublica-SemiBold 9501.421 + l_____ RevueCE 9501.422 + l_____ Rustika 9501.423 + l_____ Rustika-Bold 9501.424 + l_____ Rustika-BoldItalic 9501.425 + l_____ Rustika-Italic 9501.426 + l_____ Rustika-SC 9501.427 + l_____ SabonCE-Roman 9501.428 + l_____ SabonCE-Italic 9501.429 + l_____ SabonCE-BoldItalic 9501.430 + l_____ SabonCyr-Bold 9501.431 + l_____ SabonGreek-Roman 9501.432 + l_____ SabonGreek-Bold 9501.433 + l_____ SabonGreek-BoldItalic 9501.434 + l_____ SabonGreek-Italic 9501.435 + l_____ SabonCyr-Italic 9501.436 + l_____ SabonCyr-Roman 9501.437 + l_____ SabonCE-Bold 9501.438 + l_____ SabonCyr-BoldItalic 9501.439 + l_____ Saga 9501.440 + l_____ Saga-BoldItalic 9501.441 + l_____ Saga-SemiBold 9501.442 + l_____ Saga-SemiBoldItalic 9501.443 + l_____ Saga-SC 9501.444 + l_____ Saga-Bold 9501.445 + l_____ Saga-Italic 9501.446 + l_____ Linotype SallweyScript 9501.447 + l_____ SanMarcoCyr 9501.448 + l_____ Saphir 9501.449 + l_____ Semper 9501.456 + l_____ Semper-Italic 9501.457 + l_____ Semper-BoldItalic 9501.458 + l_____ Semper-SC 9501.459 + l_____ Semper-Bold 9501.460 + l_____ Shuriken-Boy 9501.461 + l_____ LinotypeSpitz-Light 9501.462 + l_____ LinotypeSpitz-Book 9501.463 + l_____ LinotypeSpitz-Black 9501.464 + l_____ LinotypeSpitz-Bold 9501.465 + l_____ LinotypeSpitz-Medium 9501.466 + l_____ StencilCyr 9501.467 + l_____ Tiemann-Light 9501.468 + l_____ Tiemann-Roman 9501.469 + l_____ Trajanus-Roman 9501.470 + l_____ Trajanus-Black 9501.471 + l_____ Trajanus-BlackItalic 9501.472 + l_____ Trajanus-BoldItalic 9501.473 + l_____ Trajanus-Italic 9501.474 + l_____ Trajanus-Bold 9501.475 + l_____ Transport 9501.476 + l_____ Transport-BoldItalic 9501.477 + l_____ Transport-Light 9501.478 + l_____ Transport-LightItalic 9501.479 + l_____ Transport-SC 9501.480 + l_____ Transport-LightSC 9501.481 + l_____ Transport-Bold 9501.482 + l_____ Transport-Italic 9501.483 + l_____ UniversCyr-Light 9501.484 + l_____ UniversCyr-LightOblique 9501.485 + l_____ UniversCyr 9501.486 + l_____ UniversCyr-Oblique 9501.487 + l_____ UniversCyr-Bold 9501.488 + l_____ UniversCyr-BoldOblique 9501.489 + l_____ UniversCyr-Black 9501.490 + l_____ UniversCyr-BlackOblique 9501.491 + l_____ UniversityRomanCE 9501.492 + l_____ UniversityCyr-Roman 9501.493 + l_____ Vega 9501.494 + l_____ Vega-Bold 9501.495 + l_____ Vega-SemiBold 9501.496 + l_____ Vega-SC 9501.497 + l_____ Vega-SemiBoldItalic 9501.498 + l_____ Vega-BoldItalic 9501.499 + l_____ Vega-Italic 9501.500 + l_____ WiesbadenSwingCyr-Roman 9501.501 + + +File: fontname.info, Node: Monotype fonts, Next: URW fonts, Prev: Linotype fonts, Up: Font name lists + +A.8 Monotype fonts +================== + +The `monotype.map' file has abbreviations for Monotype fonts. + + mapr8x ApolloMT-Expert MT 1001 ezexp___ + maprc8a ApolloMT-SC MT 1001 ezi_____ + mapri8x ApolloMT-ItalicExpert MT 1001 eziof___ + mapri8a ApolloMT-Italic MT 1001 ezixp___ + mapr8a ApolloMT MT 1001 ezr_____ + maprij8a ApolloMT-ItalicOsF MT 1001 ezrsc___ + maps8a ApolloMT-SemiBold MT 1001 ezsb____ + mapsj8a ApolloMT-SemiBoldOsF MT 1001 ezsbo___ + maps8x ApolloMT-SemiBoldExpert MT 1001 ezsbx___ + mnrrw8a NewBerolinaMT MT 1002 _n______ + mp1rw8a PalaceScriptMT MT 1002 _p______ + mp1sw8a PalaceScriptMT-SemiBold MT 1002 _psb____ + mahrw8a AshleyScriptMT MT 1002 le______ + mm1rw8a MonolineScriptMT MT 1002 on______ + mbvr8a BaskervilleMT MT 1003 bas_____ + mbvb8a BaskervilleMT-Bold MT 1003 basb____ + mbvbi8a BaskervilleMT-BoldItalic MT 1003 basbi___ + mbvri8a BaskervilleMT-Italic MT 1003 basi____ + mbvs8a BaskervilleMT-SemiBold MT 1003 bass____ + mbvsi8a BaskervilleMT-SemiBoldItalic MT 1003 bassi___ + mbbr8a Bembo MT 1004 bm______ + mbbb8a Bembo-Bold MT 1004 bmb_____ + mbbbi8a Bembo-BoldItalic MT 1004 bmbi____ + mbbri8a Bembo-Italic MT 1004 bmi_____ + mbbx8a Bembo-ExtraBold MT 1005 bmeb____ + mbbxi8a Bembo-ExtraBoldItalic MT 1005 bmebi___ + mbbs8a Bembo-SemiBold MT 1005 bmsb____ + mbbsi8a Bembo-SemiBoldItalic MT 1005 bmsbi___ + mdsrw8a DorchesterScriptMT MT 1006 dsscr___ + mp2rw8a PepitaMT MT 1006 epscr___ + mbfrw8a BiffoMT MT 1006 ifscr___ + mswbw8a SwingMT-Bold MT 1006 swib____ + ms2bw8a ScriptMT-Bold MT 1006 tbscr___ + mb1ri8a BladoMT-Italic MT 1007 blai____ + mpzr8a PoliphilusMT MT 1007 pol_____ + mvdr8a VanDijckMT MT 1007 van_____ + mvdri8a VanDijckMT-Italic MT 1007 vani____ + mbdr8a BodoniMT MT 1008 bod_____ + mbdb8a BodoniMT-Bold MT 1008 bodb____ + mbdbi8a BodoniMT-BoldItalic MT 1008 bodbi___ + mbdri8a BodoniMT-Italic MT 1008 bodi____ + mbdu8a BodoniMT-UltraBold MT 1009 bodu____ + mbdui8a BodoniMT-UltraBoldItalic MT 1009 bodui___ + mbdk8a BodoniMT-Book MT 1009 bodw____ + mbdki8a BodoniMT-BookItalic MT 1009 bodwi___ + moxr8a OnyxMT MT 1009 ox______ + mbdb8ac BodoniMT-CondensedBold MT 1010 bodc____ + mbdbi8ac BodoniMT-CondensedBoldItalic MT 1010 bodci___ + mbdc8a BodoniMT-Black MT 1010 bodk____ + mbdci8a BodoniMT-BlackItalic MT 1010 bodki___ + mb3r8a BraggadocioMT MT 1011 bra_____ + mfir8a FigaroMT MT 1011 fig_____ + mfer8a ForteMT MT 1011 for_____ + mklr8a KlangMT MT 1011 kla_____ + mc8b8a CalvertMT-Bold MT 1012 vtb_____ + mc8l8a CalvertMT-Light MT 1012 vtl_____ + mc8r8a CalvertMT MT 1012 vtrg____ + mcnb8a CenturyMT-Bold MT 1013 cenb____ + mcnbi8a CenturyMT-BoldItalic MT 1013 cenbi___ + mcnb8ax CenturyMT-Expanded MT 1013 cenx____ + mcnbi8ax CenturyMT-ExpandedItalic MT 1013 cenxi___ + mcubi8a CenturyOSMT-BoldItalic MT 1015 cobi____ + mcur8a CenturyOSMT MT 1015 cos_____ + mcub8a CenturyOSMT-Bold MT 1015 cosb____ + mcuri8a CenturyOSMT-Italic MT 1015 cosi____ + mcdr8a ClarendonMT MT 1016 cld_____ + meer8a EgyptianMT-Extended MT 1016 egyex___ + mnnr8a NewClarendonMT MT 1016 ncl_____ + mnnb8a NewClarendonMT-Bold MT 1016 nclb____ + mc6r8a ClarionMT MT 1017 cla_____ + mc6b8a ClarionMT-Bold MT 1017 clab____ + mc6ri8a ClarionMT-Italic MT 1017 clai____ + mcfb8a ClearfaceMT-Bold MT 1018 cleb____ + mcfbs8a ClearfaceGothicMT-Bold MT 1018 clgb____ + mcfds8a ClearfaceGothicMT-DemiBold MT 1018 clgdb___ + mcrr8a12 CourierTwelveMT MT 1019 cot_____ + mtyre8a TypewriterEliteMT MT 1019 tye_____ + mtyrg8a TypewriterGothicMT MT 1019 tyg_____ + mtyr8a TypewriterMT MT 1019 typ_____ + metr8a EhrhardtMT MT 1020 ehr_____ + metri8a EhrhardtMT-Italic MT 1020 ehri____ + mets8a EhrhardtMT-SemiBold MT 1020 ehrs____ + metsi8a EhrhardtMT-SemiBoldItalic MT 1020 ehrsi___ + menr8a EngraversMT MT 1021 eng_____ + menb8a EngraversMT-Bold MT 1021 engb____ + menrf8a EngraversOldEnglishMT MT 1021 engoe___ + mfsra8a FalstaffMT MT 1022 fprg____ + mhdr8a HeadlineMT-Bold MT 1022 head____ + mpdr8ac PlacardMT-Condensed MT 1022 plcc____ + mpdb8ac PlacardMT-CondensedBold MT 1022 plccb___ + mgmr8a GaramondMT MT 1023 gar_____ + mgmb8a GaramondMT-Bold MT 1023 garb____ + mgmbi8a GaramondMT-BoldItalic MT 1023 garbi___ + mgmri8a GaramondMT-Italic MT 1023 gari____ + mgmria8a GaramondMT-AlternativeItalic MT 1023 garit___ + mgsr8a GillSans MT 1024 gn______ + mgsb8a GillSans-Bold MT 1024 gnb_____ + mgsbi8a GillSans-BoldItalic MT 1024 gnbi____ + mgsri8a GillSans-Italic MT 1024 gni_____ + mgsl8a GillSans-Light MT 1024 gnl_____ + mgsli8a GillSans-LightItalic MT 1024 gnli____ + mgsb8ac GillSans-BoldCondensed MT 1025 gnbc____ + mgsr8ac GillSans-Condensed MT 1025 gnc_____ + mgsx8a GillSans-ExtraBold MT 1025 gneb____ + mgsu8a GillSans-UltraBold MT 1025 gnub____ + mgsu8ac GillSans-UltraBoldCondensed MT 1025 gnubc___ + mgrb8a GloucesMT-Bold MT 1026 glb_____ + mgrb8ac GloucesMT-CondBold MT 1026 glcb____ + mgrb8ax GloucesMT-ExtendedBold MT 1026 gleb____ + mgrb8aq GloucesMT-ExtraCondensedBold MT 1026 glecb___ + mgrr8a GloucesOldStyleMT MT 1026 glos____ + mg5r8a GoudyCatalogueMT MT 1027 goc_____ + mg5ri8a GoudyCatalogueMT-Italic MT 1027 goci____ + mgor8a GoudyOldStyleMT MT 1027 gos_____ + mgori8a GoudyOldStyleMT-Italic MT 1027 gosi____ + mgyb8a GoudyMT-Bold MT 1027 goub____ + mgybi8a GoudyMT-BoldItalic MT 1027 goubi___ + mg4r8a GoudyModernMT MT 1028 gom_____ + mg4ri8a GoudyModernMT-Italic MT 1028 gomi____ + mgyx8a GoudyMT-ExtraBold MT 1028 goueb___ + mgtr8a GoudyTextMT MT 1028 goutx___ + mgqr8a GrotesqueMT MT 1029 gq______ + mgqc8a GrotesqueMT-Black MT 1029 gqb_____ + mgqb8a GrotesqueMT-Bold MT 1029 gqbl____ + mgqri8a GrotesqueMT-Italic MT 1029 gqi_____ + mgql8a GrotesqueMT-Light MT 1029 gql_____ + mgqli8a GrotesqueMT-LightItalic MT 1029 gqli____ + mgqc8a GrotesqueMT-Black MT 1030 gqbl____ + mgqb8ax GrotesqueMT-BoldExtended MT 1030 gqbv____ + mgqr8ac GrotesqueMT-Condensed MT 1030 gqc_____ + mgqr8aq GrotesqueMT-ExtraCondensed MT 1030 gqec____ + mgql8ac GrotesqueMT-LightCondensed MT 1030 gqlc____ + miir8a ImprintMT MT 1032 im______ + miib8a ImprintMT-Bold MT 1032 imb_____ + miibi8a ImprintMT-BoldItalic MT 1032 imbi____ + miiri8a ImprintMT-Italic MT 1032 imi_____ + mifr8a InflexMT MT 1033 iqb_____ + moer8a OldEnglishTextMT MT 1033 mbbou___ + mosbl8a MonotOldStyleMT-BoldOutline MT 1033 old_____ + mior8a IonicMT MT 1034 ion_____ + miob8a IonicMT-Bold MT 1034 ionb____ + miori8a IonicMT-Italic MT 1034 ioni____ + misb8a ItalianOldStyleMT-Bold MT 1035 ieb_____ + misbi8a ItalianOldStyleMT-BoldItalic MT 1035 iebi____ + misri8a ItalianOldStyleMT-Italic MT 1035 iei_____ + misr8a ItalianOldStyleMT MT 1035 ierg____ + mmob8a ModernMT-Bold MT 1036 nmb_____ + mmobi8a ModernMT-BoldItalic MT 1036 nmbi____ + mmor8ax ModernMT-Extended MT 1036 nmex____ + mmori8ax ModernMT-ExtendedItalic MT 1036 nmexi___ + mnpr8a NewsPlantinMT MT 1038 npl_____ + mnpb8a NewsPlantinMT-Bold MT 1038 nplb____ + mnpbi8a NewsPlantinMT-BoldItalic MT 1038 nplbi___ + mnpri8a NewsPlantinMT-Italic MT 1038 npli____ + mosr8a OldStyleMT MT 1039 ost_____ + mosb8a OldStyleMT-Bold MT 1039 ostb____ + mosbi8a OldStyleMT-BoldItalic MT 1039 ostbi___ + mosri8a OldStyleMT-Italic MT 1039 osti____ + mpnr8a Plantin MT 1040 pl______ + mpnb8a Plantin-Bold MT 1040 plb_____ + mpnbi8a Plantin-BoldItalic MT 1040 plbi____ + mpnri8a Plantin-Italic MT 1040 pli_____ + mpnb8ac Plantin-BoldCondensed MT 1041 plbc____ + mpnl8a Plantin-Light MT 1041 pll_____ + mpnli8a Plantin-LightItalic MT 1041 plli____ + mpns8a Plantin-SemiBold MT 1041 plsb____ + mpnsi8a Plantin-SemiBoldItalic MT 1041 plsbi___ + mrwr8a Rockwell MT 1042 rk______ + mrwb8a Rockwell-Bold MT 1042 rkb_____ + mrwbi8a Rockwell-BoldItalic MT 1042 rkbi____ + mrwri8a Rockwell-Italic MT 1042 rki_____ + mrwl8a Rockwell-Light MT 1042 rkl_____ + mrwli8a Rockwell-LightItalic MT 1042 rkli____ + mrwb8ac Rockwell-BoldCondensed MT 1043 rkbc____ + mrwr8ac Rockwell-Condensed MT 1043 rkc_____ + mrwx8a Rockwell-ExtraBold MT 1043 rkeb____ + msbr8a SabonMT MT 1044 sab_____ + msbri8a SabonMT-Italic MT 1044 sabi____ + msbs8a SabonMT-SemiBold MT 1044 sabs____ + msbsi8a SabonMT-SemiBoldItalic MT 1044 sabsi___ + mntr8a TimesNRMT MT 1046 tim_____ + mntb8a TimesNRMT-Bold MT 1046 timb____ + mntbi8a TimesNRMT-BoldItalic MT 1046 timbi___ + mntri8a TimesNRMT-Italic MT 1046 timi____ + mntx8a TimesNRMT-ExtraBold MT 1047 timeb___ + mnts8a TimesNRMT-SemiBold MT 1047 tims____ + mntsi8a TimesNRMT-SemiBoldItalic MT 1047 timsi___ + mntb8ac TimesNewRomanMT-BoldCond MT 1048 mtbc____ + mntr8ac TimesNewRomanMT-Cond MT 1048 mtc_____ + mntri8ac TimesNewRomanMT-CondItalic MT 1048 mtci____ + mtwb8a TwCenMT-Bold MT 1049 tcb_____ + mtwbi8a TwCenMT-BoldItalic MT 1049 tcbi____ + mtwl8a TwCenMT-Light MT 1049 tcl_____ + mtwli8a TwCenMT-LightItalic MT 1049 tcli____ + mtwm8a TwCenMT-Medium MT 1049 tcm_____ + mtwmi8a TwCenMT-MediumItalic MT 1049 tcmi____ + mtwb8ac TwCenMT-CondensedBold MT 1050 tccb____ + mtwm8ac TwCenMT-CondensedMedium MT 1050 tccm____ + mtws8a TwCenMT-SemiBold MT 1050 tcsb____ + mtwsm8a TwCenMT-SemiMedium MT 1050 tcsm____ + mtwx8ac TwCenMT-CondensedExtraBold MT 1051 tcceb___ + mtwu8ac TwCenMT-CondensedUltraBold MT 1051 tccub___ + mtwxi8a TwCenMT-ExtraBoldItalic MT 1051 tcebi___ + mtwu8a TwCenMT-UltraBold MT 1051 tcub____ + mtwui8a TwCenMT-UltraBoldItalic MT 1051 tcubi___ + mtwx8a TwCenMT-ExtraBold MT 1051 tweb____ + mwbr8a WalbaumMT MT 1052 wl______ + mwbri8a WalbaumMT-Italic MT 1052 wli_____ + mwbm8a WalbaumMT-Medium MT 1052 wlm_____ + mwbmi8a WalbaumMT-MediumItalic MT 1052 wlmi____ + mnsb8a TimesNewRomanPS-Bold MT 1053 mtb_____ + mnsbi8a TimesNewRomanPS-BoldItalic MT 1053 mtbi____ + mnsri8a TimesNewRomanPS-Italic MT 1053 mti_____ + mnsr8a TimesNewRomanPS MT 1053 mtr_____ + ma1r8a ArialMT MT 1054 ari_____ + ma1b8a ArialMT-Bold MT 1054 ariab___ + ma1bi8a ArialMT-BoldItalic MT 1054 aribi___ + ma1ri8a ArialMT-Italic MT 1054 arii____ + ma1r8an ArialNarrowMT MT 1055 an______ + ma1b8an ArialNarrowMT-Bold MT 1055 anb_____ + ma1ri8an ArialNarrowMT-BoldItalic MT 1055 anbi____ + ma1bi8an ArialNarrowMT-Italic MT 1055 ani_____ + mcrr8a CourierPS MT 1058 cr______ + mcrb8a CourierPS-Bold MT 1058 crb_____ + mcrbi8a CourierPS-BoldItalic MT 1058 crbi____ + mcrri8a CourierPS-Italic MT 1058 cri_____ + msyr SymbolPS MT 1058 syps____ + mnir8a NimrodMT MT 1061 nim_____ + mnib8a NimrodMT-Bold MT 1061 nimb____ + mnibi8a NimrodMT-BoldItalic MT 1061 nimbi___ + mniri8a NimrodMT-Italic MT 1061 nimi____ + ma1ci8a ArialMT-BlackItalic MT 1064 arbli___ + ma1c8a ArialMT-Black MT 1064 aribl___ + ma1l8a ArialMT-Light MT 1064 aril____ + ma1li8a ArialMT-LightItalic MT 1064 arili___ + mburw8a BrushScriptMT MT 1071 ________ + mi0rw8a CommercialScriptMT MT 1071 ________ + mr5rw8a FrenchScriptMT MT 1071 ________ + motb8a CoronetMT-Bold MT 1071 corb____ + mmebw8a MercuriusMT-BoldScript MT 1071 uzbs____ + mppb8a Perpetua-Bold MT 1072 ptb_____ + mppbi8a Perpetua-BoldItalic MT 1072 ptbi____ + mppri8a Perpetua-Italic MT 1072 pti_____ + mppr8a Perpetua MT 1072 ptrg____ + mair8ac AbadiMT-Condensed MT 1074 abac____ + maib8ac AbadiMT-CondensedBold MT 1074 abacb___ + maix8ac AbadiMT-CondensedExtraBold MT 1074 abace___ + mail8ac AbadiMT-CondensedLight MT 1074 abacl___ + mtlr8a CastellerMT MT 1075 el______ + malr8a AlbertusMT MT 1075 lr______ + malri8a AlbertusMT-Italic MT 1075 lri_____ + mall8a AlbertusMT-Light MT 1075 lrl_____ + ma1x8a ArialMT-ExtraBold MT 1076 arie____ + ma1xi8a ArialMT-ExtraBoldItalic MT 1076 ariei___ + ma1m8a ArialMT-Medium MT 1076 arim____ + ma1mi8a ArialMT-MediumItalic MT 1076 arimi___ + ma1r8ac ArialMT-Condensed MT 1077 aric____ + ma1b8ac ArialMT-CondensedBold MT 1077 aricb___ + ma1x8ac ArialMT-CondensedExtraBold MT 1077 arice___ + ma1l8ac ArialMT-CondensedLight MT 1077 aricl___ + mbvr8x BskvillExpMT MT 1078 bay_____ + mbvb8x BskvillExpMT-Bold MT 1078 bayb____ + mbvbi8x BskvillExpMT-BoldItalic MT 1078 baybi___ + mbvri8x BskvillExpMT-Italic MT 1078 bayi____ + mbvs8x BskvillExpMT-SemiBold MT 1078 bays____ + mbvsi8x BskvillExpMT-SemiBoldItal MT 1078 baysi___ + mber8a BellMT MT 1079 bl______ + mbeb8a BellMT-Bold MT 1079 blb_____ + mbebi8a BellMT-BoldItalic MT 1079 blbi____ + mberi8a BellMT-Italic MT 1079 bli_____ + mbes8a BellMT-SemiBold MT 1079 bls_____ + mbesi8a BellMT-SemiBoldItalic MT 1079 blsi____ + mbbr7a Bembo-Alt MT 1080 bea_____ + mbbb7a Bembo-AltBold MT 1080 beab____ + mbbbi7a Bembo-AltBoldItalic MT 1080 beabi___ + mbbri7a Bembo-AltItalic MT 1080 beai____ + mbbb8x BemboExpert-Bold MT 1080 bey_____ + mbbbi8x BemboExpert-BoldItalic MT 1080 beyb____ + mbbri8x BemboExpert-Italic MT 1080 beybi___ + mbbr8x BemboExpert-Roman MT 1080 beyi____ + mbbx7a Bembo-AltExtraBold MT 1081 beae____ + mbbs7a Bembo-AltSemiBold MT 1081 beas____ + mbbsi7a Bembo-AltSemiBoldItalic MT 1081 beasi___ + mbbx8x BemboExpert-ExtraBold MT 1081 beye____ + mbbxi8x BemboExpert-ExtraBoldItalic MT 1081 beyei___ + mbbs8x BemboExpert-SemiBold MT 1081 beys____ + mbbsi8x BemboExpert-SemiBoldItalic MT 1081 beysi___ + mbnr8ac BernardMT-Condensed MT 1082 berc____ + mc7b8a CompactaMT-Bold MT 1082 comb____ + mnkr8a NeographikMT MT 1082 neo_____ + mrur8ac RunicMT-Condensed MT 1082 runc____ + metr8x EhrhardtExptMT MT 1083 ehy_____ + metri8x EhrhardtExptMT-Italic MT 1083 ehyi____ + mets8x EhrhardtExptMT-SemiBold MT 1083 ehys____ + metsi8x EhrhardtExptMT-SemiBoldItal MT 1083 ehysi___ + mjnr8a JansonMT MT 1085 jan_____ + mjnb8a JansonMT-Bold MT 1085 janb____ + mjnbi8a JansonMT-BoldItalic MT 1085 janbi___ + mjnri8a JansonMT-Italic MT 1085 jani____ + mppr8x Perpetua-Expert MT 1087 pey_____ + mpprc8a Perpetua-SC MT 1087 ptsc____ + mpnbi8x PlantinExp-BoldItalic MT 1088 plbiy___ + mpnb8x PlantinExp-Bold MT 1088 plby____ + mpnri8x PlantinExp-Italic MT 1088 pliy____ + mpnr8x PlantinExp MT 1088 ply_____ + mpnra8x PlantinExp-AltFigures MT 1089 plya____ + mpnl8x PlantinExp-Light MT 1089 plyl____ + mpnli8x PlantinExp-LightItalic MT 1089 plyli___ + mpns8x PlantinExp-SemiBold MT 1089 plys____ + mpnsi8x PlantinExp-SemiBoldItalic MT 1089 plysi___ + zmsnr34 Spartan-ThreeFourMT MT 1091 spf_____ + zmsnr12 Spartan-OneTwoMT MT 1091 spo_____ + zmsnr4 Spartan-FourMT MT 1091 spr_____ + zmsnr13 Spartan-OneThreeMT MT 1091 spt_____ + zmsnr24 Spartan-TwoFourMT MT 1091 spw_____ + zmsnb34 Spartan-ThreeFourMT-Bold MT 1092 spfb____ + zmsnb12 Spartan-OneTwoMT-Bold MT 1092 spob____ + zmsnb4 Spartan-FourMT-Bold MT 1092 sprb____ + zmsnb13 Spartan-OneThreeMT-Bold MT 1092 sptb____ + zmsnb24 Spartan-TwoFourMT-Bold MT 1092 spwb____ + zmsnri34 Spartan-ThreeFourMT-Italic MT 1093 spfi____ + zmsnri12 Spartan-OneTwoMT-Italic MT 1093 spoi____ + zmsnri4 Spartan-FourMT-Italic MT 1093 spri____ + zmsnri13 Spartan-OneThreeMT-Italic MT 1093 spti____ + zmsnri24 Spartan-TwoFourMT-Italic MT 1093 spwi____ + mntm8a TimesNRMT-Medium MT 1094 timm____ + mntmi8a TimesNRMT-MediumItalic MT 1094 timmi___ + mtmrg8a TimesSmallTextMT MT 1094 tst_____ + mtmbg8a TimesSmallTextMT-Bold MT 1094 tstb____ + mtmrig8a TimesSmallTextMT-Italic MT 1094 tsti____ + melr8a EllingtonMT MT 1095 ei______ + melb8a EllingtonMT-Bold MT 1095 eib_____ + melbi8a EllingtonMT-BoldItalic MT 1095 eibi____ + melx8a EllingtonMT-ExtraBold MT 1095 eieb____ + melxi8a EllingtonMT-ExtraBoldItalic MT 1095 eiebi___ + melri8a EllingtonMT-Italic MT 1095 eii_____ + mell8a EllingtonMT-Light MT 1095 eil_____ + melli8a EllingtonMT-LightItalic MT 1095 eili____ + mntr8x TimesNRExpertMT MT 1096 tiy_____ + mntb8x TimesNRExpertMT-Bold MT 1096 tiyb____ + mntbi8x TimesNRExpertMT-BoldItalic MT 1096 tiybi___ + mntri8x TimesNRExpertMT-Italic MT 1096 tiyi____ + mair8a AbadiMT MT 1098 aba_____ + maib8a AbadiMT-Bold MT 1098 abab____ + maibi8a AbadiMT-BoldItalic MT 1098 ababi___ + mairi8a AbadiMT-Italic MT 1098 abai____ + maij8a AbadiMT-ExtraLight MT 1098 abel____ + maiji8a AbadiMT-ExtraLightItalic MT 1098 abeli___ + mail8a AbadiMT-Light MT 1099 abal____ + maili8a AbadiMT-LightItalic MT 1099 abali___ + maix8a AbadiMT-ExtraBold MT 1099 abeb____ + maixi8a AbadiMT-ExtraBoldItalic MT 1099 abebi___ + mntrk TimesNRDualGreekMT MT 1100 td______ + mntbk TimesNRDualGreekMT-Bold MT 1100 tdb_____ + mntbik TimesNRDualGreekMT-BoldIncl MT 1100 tdbi____ + mntrik TimesNRDualGreekMT-Inclined MT 1100 tdi_____ + mgmrwd8a GaramondMT-SwashCaps MT 1101 garsc___ + mgmrw8a GaramondMT-Swash MT 1101 gasw____ + mgmr8x GaramondExpertMT MT 1101 gay_____ + mgmb8x GaramondExpertMT-Bold MT 1101 gayb____ + mgmbi8x GaramondExpertMT-BoldItalic MT 1101 gaybi___ + mgmri8x GaramondExpertMT-Italic MT 1101 gayi____ + mb2r8a BinnyOldStyleMT MT 1102 bin_____ + mb2ri8a BinnyOldStyleMT-Italic MT 1102 bini____ + murb8a CentaurMT-Bold MT 1103 nrb_____ + murbi8a CentaurMT-BoldItalic MT 1103 nrbi____ + murri8a CentaurMT-Italic MT 1103 nri_____ + murr8a CentaurMT MT 1103 nrr_____ + murd8a CentaurFestiveMT-Italic + mc1r8a CalistoMT MT 1104 cto_____ + mc1b8a CalistoMT-Bold MT 1104 ctob____ + mc1bi8a CalistoMT-BoldItalic MT 1104 ctobi___ + mc1ri8a CalistoMT-Italic MT 1104 ctoi____ + mr2b8a CantoriaMT-Bold MT 1105 eob_____ + mr2bi8a CantoriaMT-BoldItalic MT 1105 eobi____ + mr2ri8a CantoriaMT-Italic MT 1105 eoi_____ + mr2r8a CantoriaMT MT 1105 eorg____ + mr2x8a CantoriaMT-ExtraBold MT 1106 eoeb____ + mr2xi8a CantoriaMT-ExtraBoldItalic MT 1106 eoebi___ + mr2l8a CantoriaMT-Light MT 1106 eol_____ + mr2li8a CantoriaMT-LightItalic MT 1106 eoli____ + mr2s8a CantoriaMT-SemiBold MT 1106 eosb____ + mr2si8a CantoriaMT-SemiBoldItalic MT 1106 eosbi___ + mfxr8a FelixTitlingMT MT 1107 felt____ + mpprd8a PerpetuaTitlingMT MT 1107 pert____ + mppbd8a PerpetuaTitlingMT-Bold MT 1107 pertb___ + mppld8a PerpetuaTitlingMT-Light MT 1107 pertl___ + mf4r8a FootlightMT MT 1108 ft______ + mf4b8a FootlightMT-Bold MT 1108 ftb_____ + mf4bi8a FootlightMT-BoldItalic MT 1108 ftbi____ + mf4ri8a FootlightMT-Italic MT 1108 fti_____ + mf4x8a FootlightMT-ExtraBold MT 1109 fteb____ + mf4xi8a FootlightMT-ExtraBoldItalic MT 1109 ftebi___ + mf4l8a FootlightMT-Light MT 1109 ftl_____ + mf4li8a FootlightMT-LightItalic MT 1109 ftli____ + mjnr8x JansonExpertMT MT 1111 jny_____ + mjnb8x JansonExpertMT-Bold MT 1111 jnyb____ + mjnbi8x JansonExpertMT-BoldItalic MT 1111 jnybi___ + mjnri8x JansonExpertMT-Italic MT 1111 jnyi____ + mf3rd8a FestivalTitlingMT MT 1112 fst_____ + mknr8a KinoMT MT 1112 kin_____ + mm7r8a MaturaMT MT 1112 mat_____ + mm7rw7a MaturaMT-ScriptCapitals MT 1112 matsc___ + mvird8ac VictoriaTitlingMT-Condensed MT 1112 vict____ + mztr8a ZeitgeistMT MT 1115 zei_____ + mztr7a ZeitgeistMT-Alternative MT 1115 zeial___ + zmztcm8x ZeitgeistExpertMT-Cameo MT 1115 zeiay___ + mztb8a ZeitgeistMT-Bold MT 1115 zeib____ + mztb8x ZeitgeistExpertMT-Bold MT 1115 zeiby___ + mztr8ac ZeitgeistMT-Condensed MT 1115 zeic____ + zmztcm8a ZeitgeistMT-Cameo MT 1115 zeica___ + zmztcz8a ZeitgeistMT-CrazyPaving MT 1115 zeicp___ + mztr8xc ZeitgeistExpertMT-Condensed MT 1115 zeicy___ + mztri8a ZeitgeistMT-Italic MT 1115 zeii____ + mztri8x ZeitgeistExpertMT-Italic MT 1115 zeiiy___ + mztr8x ZeitgeistExpertMT MT 1115 zeiy____ + murriw7a CentaurSwashMT MT 1116 censw___ + murr7a CentaurMT-Alt MT 1116 cta_____ + murb7a CentaurMT-AltBold MT 1116 ctab____ + murbi7a CentaurMT-AltBoldItalic MT 1116 ctabi___ + murri7a CentaurMT-AltItalic MT 1116 ctai____ + murb8x CentaurExpertMT-Bold MT 1116 ctbiy___ + murbi8x CentaurExpertMT-BoldItalic MT 1116 ctrby___ + murri8x CentaurExpertMT-Italic MT 1116 ctriy___ + murr8x CentaurExpertMT MT 1116 ctry____ + molr8a ColmcilleMT MT 1117 cm______ + molr7a ColmcilleAltMT MT 1117 cma_____ + molb7a ColmcilleAltMT-Bold MT 1117 cmab____ + molbi7a ColmcilleAltMT-BoldItalic MT 1117 cmabi___ + molri7a ColmcilleAltMT-Italic MT 1117 cmai____ + molb8a ColmcilleMT-Bold MT 1117 cmb_____ + molbi8a ColmcilleMT-BoldItalic MT 1117 cmbi____ + molri8a ColmcilleMT-Italic MT 1117 cmi_____ + molrp ColmcilleOrnamentsMT MT 1117 cmo_____ + mntr8a7 TimesNRSevenMT MT 1118 sv______ + mntb8a7 TimesNRSevenMT-Bold MT 1118 svb_____ + mntbi8a7 TimesNRSevenMT-BoldItalic MT 1118 svbi____ + mntri8a7 TimesNRSevenMT-Italic MT 1118 svi_____ + mo3r8a ColonnaMT MT 1119 colo____ + miirh8a ImprintMT-Shadow MT 1119 is______ + miirih8a ImprintMT-ShadowItalic MT 1119 isi_____ + ma2r8a AmasisMT MT 1120 ama_____ + ma2b8a AmasisMT-Bold MT 1120 amab____ + ma2bi8a AmasisMT-BoldItalic MT 1120 amabi___ + ma2ri8a AmasisMT-Italic MT 1120 amai____ + ma2c8a AmasisMT-Black MT 1121 amabl___ + ma2l8a AmasisMT-Light MT 1121 amal____ + ma2li8a AmasisMT-LightItalic MT 1121 amali___ + ma2m8a AmasisMT-Medium MT 1121 amam____ + ma2mi8a AmasisMT-MediumItalic MT 1121 amami___ + ma2ci8a AmasisMT-BlackItalic MT 1121 ambli___ + msbrij8a SabonMT-ItalicOSF MT 1124 saboi___ + msbsj8a SabonMT-SemiBoldOSF MT 1124 sabos___ + msbrc8a SabonMT-SCOSF MT 1124 sabsc___ + msbsij8a SabonMT-SemiBoldItalicOSF MT 1124 sasio___ + mb1ri8x BladoExpertMT-Italic MT 1125 blaiy___ + mpzr8x PoliphilusExpertMT MT 1125 poly____ + mvdra8x VanDijckExpertMT-AltFigs MT 1125 vana____ + mvdria8x VanDijckExpertMT-AltFigsIta MT 1125 vanai___ + mvdr8x VanDijckExpertMT MT 1125 vany____ + mvdri8x VanDijckExpertMT-Italic MT 1125 vanyi___ + mber7a BellMT-Alt MT 1126 blt_____ + mberi7a BellMT-AltItalic MT 1126 blti____ + mbes7a BellMT-AltSemiBold MT 1126 blts____ + mbesi7a BellMT-AltSemiBoldItalic MT 1126 bltsi___ + mber8x BellExpertMT MT 1126 bly_____ + mbera8x BellExpertMT-Alt MT 1126 blya____ + mbesa8x BellExpertMT-AltSemiBold MT 1126 blyas___ + mbeb8x BellExpertMT-Bold MT 1126 blyb____ + mbebi8x BellExpertMT-BoldItalic MT 1126 blybi___ + mberi8x BellExpertMT-Italic MT 1126 blyi____ + mbes8x BellExpertMT-SemiBold MT 1126 blys____ + mbesi8x BellExpertMT-SemiBoldItalic MT 1126 blysi___ + mgsx8ac GillSansMT-ExCondensedBold MT 1133 gsecb___ + mgslh8a GillSansShadowedMT-Light MT 1133 gsls____ + mgsrh8a GillSansMT-Shadow MT 1133 gss_____ + mgsra8a GillAltOneMT MT 1134 gla_____ + mgsba8a GillAltOneMT-Bold MT 1134 glab____ + mgsbia8a GillAltOneMT-BoldItalic MT 1134 glabi___ + mgsria8a GillAltOneMT-Italic MT 1134 glai____ + mgsla8a GillAltOneMT-Light MT 1134 glal____ + mgslia8a GillAltOneMT-LightItalic MT 1134 glali___ + mdtr8a DanteMT MT 1149 dn______ + mdtb8a DanteMT-Bold MT 1149 dnb_____ + mdtbi8a DanteMT-BoldItalic MT 1149 dnbi____ + mdtri8a DanteMT-Italic MT 1149 dni_____ + mdtm8a DanteMT-Medium MT 1149 dnm_____ + mdtmi8a DanteMT-MediumItalic MT 1149 dnmi____ + mdtr7a DanteMT-Alt MT 1150 dna_____ + mdtb7a DanteMT-AltBold MT 1150 dnab____ + mdtbi7a DanteMT-AltBoldItalic MT 1150 dnabi___ + mdtri7a DanteMT-AltItalic MT 1150 dnai____ + mdtm7a DanteMT-AltMedium MT 1150 dnam____ + mdtmi7a DanteMT-AltMediumItalic MT 1150 dnami___ + mdtr8x DanteExpertMT MT 1150 dne_____ + mdtb8x DanteExpertMT-Bold MT 1150 dneb____ + mdtbi8x DanteExpertMT-BoldItalic MT 1150 dnebi___ + mdtri8x DanteExpertMT-Italic MT 1150 dnei____ + mdtm8x DanteExpertMT-Medium MT 1150 dnem____ + mdtmi8x DanteExpertMT-MediumItalic MT 1150 dnemi___ + mdtrd8a DanteTitlingMT MT 1150 dnt_____ + maqr8a BookAntiqua MT 1152 bk______ + maqb8a BookAntiqua-Bold MT 1152 bkb_____ + maqbi8a BookAntiqua-BoldItalic MT 1152 bkbi____ + maqri8a BookAntiqua-Italic MT 1152 bki_____ + mkor8a BookmanOldStyle MT 1153 bd______ + mkob8a BookmanOldStyle-Bold MT 1153 bdb_____ + mkobi8a BookmanOldStyle-BoldItalic MT 1153 bdbi____ + mkori8a BookmanOldStyle-Italic MT 1153 bdi_____ + mygr8a CenturyGothic MT 1154 cg______ + mygb8a CenturyGothic-Bold MT 1154 cgb_____ + mygbi8a CenturyGothic-BoldItalic MT 1154 cgbi____ + mygri8a CenturyGothic-Italic MT 1154 cgi_____ + mcsr8a CenturySchoolbook MT 1155 cb______ + mcsb8a CenturySchoolbook-Bold MT 1155 cbb_____ + mcsbi8a CenturySchoolbook-BoldItalic MT 1155 cbbi____ + mcsri8a CenturySchoolbook-Italic MT 1155 cbi_____ + mzcmi8a MonotypeCorsiva MT 1156 mci_____ + mzdr MonotypeSorts MT 1156 ms______ + mpi001 ArabesqueOrnamentsOneMT MT 1157 araba___ + mpi002 ArabesqueOrnamentsTwoMT MT 1157 arabb___ + mpi003 ArabesqueOrnamentsThreeMT MT 1157 arabc___ + mpi004 RococoOrnamentsOneMT MT 1157 rcoa____ + mpi005 RococoOrnamentsTwoMT MT 1157 rcob____ + mpi006 RococoOrnamentsThreeMT MT 1157 rcoc____ + mgtr7a GoudyTextMT-Alternative MT 1181 gouta___ + mgtr7c GoudyTextMT-Dfr MT 1181 goutd___ + mgtrd8a GoudyTextMT-LombardicCapitals MT 1181 goutl___ + mgtr8a GoudyTextMT MT 1181 goutx___ + mlir8ac LatinCondensedMT MT 1182 lnc_____ + moxr8a OnyxMT MT 1182 ox______ + mrur8ac RunicMT-Condensed MT 1182 ric_____ + mpi007 ChristmasOrnamentsMT-One MT 1183 chra____ + mpi008 ChristmasOrnamentsMT-Two MT 1183 chrb____ + mpi009 ChristmasOrnamentsMT-Three MT 1183 chrc____ + mpi010 ChristmasOrnamentsMT-Four MT 1183 chrd____ + mpi011 ChristmasOrnamentsMT-Five MT 1183 chre____ + mpi012 ChristmasOrnamentsMT-Six MT 1183 chrf____ + mpi013 ContemporaryOrnMT-One MT 1183 cora____ + mpi014 ContemporaryOrnMT-Two MT 1183 corb____ + mpi015 ContemporaryOrnMT-Three MT 1183 corc____ + mpi016 ContemporaryOrnMT-Four MT 1183 cord____ + mpi017 ContemporaryOrnMT-Five MT 1183 core____ + mntr9s TimesNewRomanSF MT 1194 tsf_____ + mntb9s TimesNewRomanSF-Bold MT 1194 tsfb____ + mntbi9s TimesNewRomanSF-BoldItalic MT 1194 tsfbi___ + mntri9s TimesNewRomanSF-Italic MT 1194 tsfi____ + mu0rp1 ColumbusOrnamentsOneMT MT 1196 cuora___ + mu0rp2 ColumbusOrnamentsTwoMT MT 1196 cuorb___ + mu0r8x ColumbusExpMT MT 1196 cuy_____ + mu0b8x ColumbusExpMT-Bold MT 1196 cuyb____ + mu0bi8x ColumbusExpMT-BoldItalic MT 1196 cuybi___ + mu0ri8x ColumbusExpMT-Italic MT 1196 cuyi____ + mu0s8x ColumbusExpMT-SemiBold MT 1196 cuys____ + mu0si8x ColumbusExpMT-SemiBoldItal MT 1196 cuysi___ + ma1rz ArialCyrMT MT 1205 ac______ + ma1bz ArialCyrMT-Bold MT 1205 acb_____ + ma1biz ArialCyrMT-BoldInclined MT 1205 acbi____ + ma1riz ArialCyrMT-Inclined MT 1205 aci_____ + mcrrz CourierCyr MT 1206 cc______ + mcrbz CourierCyr-Bold MT 1206 ccb_____ + mcrbiz CourierCyr-BoldInclined MT 1206 ccbi____ + mcrriz CourierCyr-Inclined MT 1206 cci_____ + mntrz TimesNRomCyrMT MT 1207 trc_____ + mntbz TimesNRomCyrMT-Bold MT 1207 trcb____ + mntbiz TimesNRomCyrMT-BoldInclined MT 1207 trcbi___ + mntriz TimesNRomCyrMT-Inclined MT 1207 trci____ + mgsbd8a GillSansDisplayMT-Bold MT 1209 gdb_____ + mgsbd8ac GillSansDisplayMT-CondBold MT 1209 gdcb____ + mgsbd8ax GillSansDisplayMT-ExtraBold MT 1209 gdeb____ + mg4ri8a GoudyModernMT-Italic MT 1210 ygi_____ + mg4r8a GoudyModernMT MT 1210 ygrg____ + ms1ri8a ScotchRomanMT-Italic MT 1210 ysi_____ + ms1r8a ScotchRomanMT MT 1210 ysrg____ + mfsr8a FalstaffMT MT 1211 fprg____ + mifb8a InflexMT-Bold MT 1211 iqb_____ + mm8bl8a MonotypeOldStyleMT-BoldOut MT 1211 mbbou___ + mfer8a ForteMT MT 1212 fz______ + mklr8a KlangMT MT 1212 kn______ + mmebw8a MercuriusMT-BoldScript MT 1212 uzbs____ + mjox8a JoannaMT-ExtraBold MT 1213 joae____ + mjob8a JoannaMT-Bold MT 1213 job_____ + mjobi8a JoannaMT-BoldItalic MT 1213 jobi____ + mjori8a JoannaMT-Italic MT 1213 joi_____ + mjor8a JoannaMT MT 1213 jor_____ + mjos8a JoannaMT-SemiBold MT 1213 josb____ + mjosi8a JoannaMT-SemiBoldItalic MT 1213 josbi___ + mphb8a PhotinaMT-Bold MT 1214 phb_____ + mphbi8a PhotinaMT-BoldItalic MT 1214 phbi____ + mphri8a PhotinaMT-Italic MT 1214 phi_____ + mphr8a PhotinaMT MT 1214 phrg____ + mphs8a PhotinaMT-SemiBold MT 1214 phsb____ + mphsi8a PhotinaMT-SemiBoldItalic MT 1214 phsbi___ + mphu8a PhotinaMT-UltraBold MT 1214 phub____ + mphui8a PhotinaMT-UltraBoldItalic MT 1214 phubi___ + msmr8x SpectrumMT-Expert MT 1215 ekexp___ + msmri8a SpectrumMT-Italic MT 1215 eki_____ + msmrij8a SpectrumMT-ItalicOsF MT 1215 ekio____ + msmri8x SpectrumMT-ItalicExpert MT 1215 ekixp___ + msmr8a SpectrumMT MT 1215 ekrg____ + msms8a SpectrumMT-SemiBold MT 1215 eksb____ + msmsj8a SpectrumMT-SemiBoldOsF MT 1215 eksbo___ + msms8x SpectrumMT-SemiBoldExpert MT 1215 eksbx___ + msmrc8a SpectrumMT-SC MT 1215 eksc____ + mhrr8a ArialRoundedMT MT 1216 arr_____ + mhrb8a ArialRoundedMT-Bold MT 1216 arrb____ + mhrx8a ArialRoundedMT-ExtraBold MT 1216 arreb___ + mhrl8a ArialRoundedMT-Light MT 1216 arrl____ + mpi101 AlmanacMT MT 1222 pia_____ + mpi102 BotanicalMT MT 1222 pib_____ + mpi103 DirectionsMT MT 1222 pie_____ + mpi104 SportsOneMT MT 1222 pif_____ + mpi105 SportsTwoMT MT 1222 pig_____ + mpi106 TransportMT MT 1222 pij_____ + mpi107 VacationMT MT 1222 pik_____ + mpi201 CircleFrameMT MT 1222 pic_____ + mpi202 CircleFrameNegMT MT 1222 pid_____ + mpi203 SquareFrameMT MT 1222 pih_____ + mpi204 SquareFrameNegMT MT 1222 pii_____ + m_____ PastonchiMT-RegularAlt MT 1223 pna_____ + m_____ PastonchiMT-Italic MT 1223 pni_____ + m_____ PastonchiMT-ItalicOsF MT 1223 pnosi___ + m_____ PastonchiMT-Regular MT 1223 pnr_____ + m_____ PastonchiMT-RegularSC MT 1223 pnsc____ + m_____ PastonchiMT-Swash MT 1223 pnsw____ + m_____ PastonchiMT-SwashCaps MT 1223 pnswc___ + m_____ PastonchiMT-Titling MT 1223 pnt_____ + m_____ PastonchiMT-TitlingAlt MT 1223 pnta____ + m_____ PastonchiMT-RegularExpert MT 1223 pny_____ + m_____ PastonchiMT-ItalicExpert MT 1223 pnyi____ + movr8x OctavianMT-Expert MT 1224 ocexp___ + movri8a OctavianMT-Italic MT 1224 oci_____ + movrij8a OctavianMT-ItalicOsF MT 1224 ocio____ + movri8x OctavianMT-ItalicExpert MT 1224 ocixp___ + movr8a OctavianMT MT 1224 ocrg____ + movrc8a OctavianMT-SC MT 1224 ocsc____ + mnsr8x TimesNRPSExpert MT 1225 tpy_____ + mnsb8x TimesNRPSExpert-Bold MT 1225 tpyb____ + mnsbi8x TimesNRPSExpert-BoldItalic MT 1225 tpybi___ + mnsri8x TimesNRPSExpert-Italic MT 1225 tpyi____ + ma1r9s ArialSFMT MT 1226 asf_____ + ma1b9s ArialSFMT-Bold MT 1226 asfb____ + ma1bi9s ArialSFMT-BoldItalic MT 1226 asfbi___ + ma1ri9s ArialSFMT-Italic MT 1226 asfi____ + mdmb8a DelimaMT-Bold MT 1234 dlb_____ + mdmbi8a DelimaMT-BoldItalic MT 1234 dlbi____ + mdmri8a DelimaMT-Italic MT 1234 dli_____ + mdml8a DelimaMT-Light MT 1234 dll_____ + mdmli8a DelimaMT-LightItalic MT 1234 dlli____ + mdmr8a DelimaMT MT 1234 dlr_____ + mdmx8a DelimaMT-ExtraBold MT 1235 dleb____ + mdmxi_ DelimaMT-ExtraBoldItalic MT 1235 dlebi___ + mdms8a DelimaMT-SemiBold MT 1235 dlsb____ + mdmsi8a DelimaMT-SemiBoldItalic MT 1235 dlsbi___ + mo4rMM8a OceanSansMM MT 1236 ________ + mo4riMM8a OceanSansMM-It MT 1236 ________ + mlyr8a LydianMT MT 1238 ly______ + mlyrw8a LydianCursiveMT MT 1238 lyc_____ + mwrrf8a WittenbergerFraktMT MT 1239 wf______ + mwrbf8a WittenbergerFraktMT-Bd MT 1239 wfb_____ + mwrrf7c WittenbergerFraktMT-BdDfr MT 1239 wfbdf___ + mwrbf7c WittenbergerFraktMT-Dfr MT 1239 wfdfr___ + mgsh8a GillSans-Heavy MT 1240 gilh____ + mgshi8a GillSans-HeavyItalic MT 1240 gilhi___ + mgsk8a GillSans-Book MT 1240 gilk____ + mgski8a GillSans-BookItalic MT 1240 gilki___ + mgsha8a GillAltOneMT-Heavy MT 1241 glah____ + mgshia8a GillAltOneMT-HeavyItalic MT 1241 glahi___ + mgska8a GillAltOneMT-Book MT 1241 glak____ + mgskia8a GillAltOneMT-BookItalic MT 1241 glaki___ + mf1r8a FournierMT MT 1242 fn______ + mf1r7a FournierMT-Alt MT 1242 fna_____ + mf1ri7a FournierMT-AltItalic MT 1242 fnai____ + mf1ri8a FournierMT-Italic MT 1242 fni_____ + mf1rp FournierOrnamentsMT MT 1242 fno_____ + mf1rd8a FournierMT-TallCaps MT 1242 fnt_____ + mf1rid8a FournierMT-TallCapsItalic MT 1242 fnti____ + mf1r8x FournierExpertMT MT 1242 fny_____ + mf1ri8x FournierExpertMT-Italic MT 1242 fnyi____ + miir8a ImprintExpertMT MT 1243 imy_____ + miib8a ImprintExpertMT-Bold MT 1243 imyb____ + miibi8a ImprintExpertMT-BoldItalic MT 1243 imybi___ + miiri8a ImprintExpertMT-Italic MT 1243 imyi____ + mpwr8a PerrywoodMT MT 1244 py______ + mpwb8a PerrywoodMT-Bold MT 1244 pyb_____ + mpwbi8a PerrywoodMT-BoldItalic MT 1244 pybi____ + mpwri8a PerrywoodMT-Italic MT 1244 pyi_____ + mpwx8a PerrywoodMT-ExtraBold MT 1245 pye_____ + mpwxi8a PerrywoodMT-ExtraBoldItalc MT 1245 pyei____ + mpwl8a PerrywoodMT-Light MT 1245 pyl_____ + mpwli8a PerrywoodMT-LightItalic MT 1245 pyli____ + mpws8a PerrywoodMT-SemiBold MT 1245 pys_____ + mpwsi8a PerrywoodMT-SemiBoldItalic MT 1245 pysi____ + mphbij8a PhotinaMT-BoldItalicOsF MT 1246 phbio___ + mphbj8a PhotinaMT-BoldOsF MT 1246 phbo____ + mphrij8a PhotinaMT-ItalicOsF MT 1246 phio____ + mphrc8a PhotinaMT-RegularSC MT 1246 phsc____ + mphsij8a PhotinaMT-SemiBoldItalicOsF MT 1246 phsio___ + mphsj8a PhotinaMT-SemiBoldOsF MT 1246 phso____ + mphuij8a PhotinaMT-UltraBoldItOsF MT 1246 phuio___ + mphuj8a PhotinaMT-UltraBoldOsF MT 1246 phuo____ + mphr8x PhotinaMT-RegularExpert MT 1246 phy_____ + mphb8x PhotinaMT-BoldExpert MT 1246 phyb____ + mphbi8x PhotinaMT-BoldItalicExpert MT 1246 phybi___ + mphri8x PhotinaMT-ItalicExpert MT 1246 phyi____ + mphs8x PhotinaMT-SemiBoldExpert MT 1246 phys____ + mphsi8x PhotinaMT-SemiBoldItExpert MT 1246 physi___ + mphu8x PhotinaMT-UltraBoldExpert MT 1246 phyu____ + mphui8x PhotinaMT-UltraBoldItExpert MT 1246 phyui___ + mbmb8a BulmerMT-Bold MT 1247 ybb_____ + mbmbi8a BulmerMT-BoldItalic MT 1247 ybbi____ + mbmbd8a BulmerMT-BoldDisplay MT 1247 ybdb____ + mbmbid8a BulmerMT-BoldItalicDisplay MT 1247 ybdbi___ + mbmrd8a BulmerMT-RegularDisplay MT 1247 ybds____ + mbmrid8a BulmerMT-ItalicDisplay MT 1247 ybdsi___ + mbmri8a BulmerMT-Italic MT 1247 ybi_____ + mbmr8a BulmerMT-Regular MT 1247 ybrg____ + mbms8a BulmerMT-SemiBold MT 1247 ybsb____ + mbmsi8a BulmerMT-SemiBoldItalic MT 1247 ybsi____ + mbmb7a BulmerMT-BoldAlt MT 1248 ybab____ + mbmbi7a BulmerMT-BoldItalicAlt MT 1248 ybabi___ + mbmr7a BulmerMT-RegularAlt MT 1248 ybarg___ + mbms7a BulmerMT-SemiBoldAlt MT 1248 ybasb___ + mbmsi7a BulmerMT-SemiBoldItalicAlt MT 1248 ybasi___ + mbmbd7a BulmerMT-BoldDisplayAlt MT 1248 ybbda___ + mbmbid7a BulmerMT-BoldItalDisplayAlt MT 1248 ybbid___ + mbmbi8x BulmerMT-BoldItalicExpert MT 1248 ybbix___ + mbmb8x BulmerMT-BoldExpert MT 1248 ybbxp___ + mbmri7a BulmerMT-ItalicAlt MT 1248 ybial___ + mbmrid7a BulmerMT-ItalicDisplayAlt MT 1248 ybida___ + mbmri8x BulmerMT-ItalicExpert MT 1248 ybixp___ + mbmrd7a BulmerMT-RegularDisplayAlt MT 1248 ybrda___ + mbmr8x BulmerMT-RegularExpert MT 1248 ybrgx___ + mbmrc8a BulmerMT-RegularSC MT 1248 ybrsc___ + mbmsc8a BulmerMT-SemiBoldSC MT 1248 ybsbs___ + mbms8x BulmerMT-SemiBoldExpert MT 1248 ybsbx___ + mbmsi8x BulmerMT-SemiBoldItalExpert MT 1248 ybsix___ + mo4b8a OceanSansMT-Bold MT 1249 oeb_____ + mo4bi8a OceanSansMT-BoldItalic MT 1249 oebi____ + mo4k8a OceanSansMT-Book MT 1249 oek_____ + mo4ki8a OceanSansMT-BookItalic MT 1249 oeki____ + mo4x8a OceanSansMT-ExtraBold MT 1250 oeeb____ + mo4xi8a OceanSansMT-ExtraBoldItalic MT 1250 oeebi___ + mo4l8a OceanSansMT-Light MT 1250 oel_____ + mo4li8a OceanSansMT-LightItalic MT 1250 oeli____ + mo4s8a OceanSansMT-SemiBold MT 1250 oesb____ + mo4si8a OceanSansMT-SemiBoldItalic MT 1250 oesbi___ + mmob8a ModernMT-Bold MT 1259 nmb_____ + mmobi8a ModernMT-BoldItalic MT 1259 nmbi____ + mmor8ac ModernMT-Condensed MT 1259 nmc_____ + mmori8ac ModernMT-CondensedItalic MT 1259 nmci____ + mmor8ax ModernMT-Extended MT 1259 nmex____ + mmori8ax ModernMT-ExtendedItalic MT 1259 nmexi___ + mmor8aw ModernMT-Wide MT 1259 nmwd____ + mmori8aw ModernMT-WideItalic MT 1259 nmwdi___ + mwbr8x WalbaumExpMT MT 1268 wly_____ + mwbri8x WalbaumExpMT-Italic MT 1268 wlyi____ + mwbm8x WalbaumExpMT-Medium MT 1268 wlym____ + mwbmi8x WalbaumExpMT-MediumItalic MT 1268 wlymi___ + mlgr8a LetterGothicMT MT 1269 lc______ + mlgb8a LetterGothicMT-Bold MT 1269 lcb_____ + mlgbo8a LetterGothicMT-BoldOblique MT 1269 lcbi____ + mlgro8a LetterGothicMT-Oblique MT 1269 lci_____ + ma1rzn ArialNarrowCyrMT MT 1270 anc_____ + ma1bzn ArialNarrowCyrMT-Bold MT 1270 ancb____ + ma1bizn ArialNarrowCyrMT-BoldInc MT 1270 ancbi___ + ma1rizn ArialNarrowCyrMT-Inclined MT 1270 anci____ + mygrz CenturyGothicCyr MT 1271 cgc_____ + mygbz CenturyGothicCyr-Bold MT 1271 cgcb____ + mygbiz CenturyGothicCyr-BoldInc MT 1271 cgcbi___ + mygriz CenturyGothicCyr-Inclined MT 1271 cgci____ + mkorz BookmanOldStyleCyr MT 1272 bdc_____ + mkobz BookmanOldStyleCyr-Bold MT 1272 bdcb____ + mkobiz BookmanOldStyleCyr-BoldInc MT 1272 bdcbi___ + mkoriz BookmanOldStyleCyr-Inc MT 1272 bdci____ + mnirz NimrodCyrMT MT 1273 nic_____ + mnibz NimrodCyrMT-Bold MT 1273 nicb____ + mnibiz NimrodCyrMT-BoldInclined MT 1273 nicbi___ + mniriz NimrodCyrMT-Inclined MT 1273 nici____ + mptrz PlantinCyrMT MT 1274 plc_____ + mptbz PlantinCyrMT-Bold MT 1274 plcb____ + mptbiz PlantinCyrMT-BoldInclined MT 1274 plcbi___ + mptriz PlantinCyrMT-Inclined MT 1274 plci____ + maqrz BookAntiquaCyr MT 1275 bkc_____ + maqbz BookAntiquaCyr-Bold MT 1275 bkcb____ + maqbiz BookAntiquaCyr-BoldInclined MT 1275 bkcbi___ + maqriz BookAntiquaCyr-Inclined MT 1275 bkci____ + mzcmiz MonotypeCorsivaCyr MT 1276 mcc_____ + mzcmizaa MonotypeCorsivaCyr-AltOne MT 1276 mccaa___ + mzcmizab MonotypeCorsivaCyr-AltTwo MT 1276 mccab___ + mzcmizac MonotypeCorsivaCyr-AltThree MT 1276 mccac___ + mcsrz CenturySchoolbookCyr MT 1277 cbc_____ + mcsbz CenturySchoolbookCyr-Bold MT 1277 cbcb____ + mcsbiz CenturySchoolbookCyr-BolInc MT 1277 cbcbi___ + mcsriz CenturySchoolbookCyr-Inc MT 1277 cbci____ + mp6r8a BlueprintMT MT 1283 bp______ + mp6b8a BlueprintMT-Bold MT 1283 bpb_____ + mp6bi8a BlueprintMT-BoldItalic MT 1283 bpbi____ + mp6ri8a BlueprintMT-Italic MT 1283 bpi_____ + mn1r8a BinnerGothicMT MT 1289 bg______ + mfgr8aq FrankGothMT-ExtraCondensed MT 1289 fgec____ + m_____ LightlineGothicMT MT 1289 lg______ + mwnr8a WindsorMT MT 1289 wds_____ + mygr__ CenturyGothicTur MT 1293 cgt_____ + mygb__ CenturyGothicTur-Bold MT 1293 cgtb____ + mygbi__ CenturyGothicTur-BoldItalic MT 1293 cgtbi___ + mygri__ CenturyGothicTur-Italic MT 1293 cgti____ + mygr__ CenturyGothicCE MT 1293 cgu_____ + mygb__ CenturyGothicCE-Bold MT 1293 cgub____ + mygbi__ CenturyGothicCE-BoldItalic MT 1293 cgubi___ + mygri__ CenturyGothicCE-Italic MT 1293 cgui____ + ma1r__n ArialNarrowTur MT 1294 ant_____ + ma1b__n ArialNarrowTur-Bold MT 1294 antb____ + ma1bi__n ArialNarrowTur-BoldItalic MT 1294 antbi___ + ma1ri__n ArialNarrowTur-Italic MT 1294 anti____ + ma1r__n ArialNarrowCE MT 1294 anu_____ + ma1b__n ArialNarrowCE-Bold MT 1294 anub____ + ma1bi__n ArialNarrowCE-BoldItalic MT 1294 anubi___ + ma1ri__n ArialNarrowCE-Italic MT 1294 anui____ + maqr__ BookAntiquaTur MT 1295 bkt_____ + maqb__ BookAntiquaTur-Bold MT 1295 bktb____ + maqbi__ BookAntiquaTur-BoldItalic MT 1295 bktbi___ + maqri__ BookAntiquaTur-Italic MT 1295 bkti____ + maqr__ BookAntiquaCE MT 1295 bku_____ + maqb__ BookAntiquaCE-Bold MT 1295 bkub____ + maqbi__ BookAntiquaCE-BoldItalic MT 1295 bkubi___ + maqri__ BookAntiquaCE-Italic MT 1295 bkui____ + mkor__ BookmanOldStyleTur MT 1296 bdt_____ + mkob__ BookmanOldStyleTur-Bold MT 1296 bdtb____ + mkobi__ BookmanOldStyleTur-BoldIta MT 1296 bdtbi___ + mkori__ BookmanOldStyleTur-Italic MT 1296 bdti____ + mkor__ BookmanOldStylCE MT 1296 bdu_____ + mkob__ BookmanOldStylCE-Bold MT 1296 bdub____ + mkobi__ BookmanOldStylCE-BoldItalic MT 1296 bdubi___ + mkori__ BookmanOldStylCE-Italic MT 1296 bdui____ + mcsr__ CenturySchoolbookTur MT 1297 cst_____ + mcsb__ CenturySchoolbookTur-Bold MT 1297 cstb____ + mcsbi__ CenturySchoolbookTur-BolIta MT 1297 cstbi___ + mcsri__ CenturySchoolbookTur-Italic MT 1297 csti____ + mcsr__ CenturySchoolbookCE MT 1297 csu_____ + mcsb__ CenturySchoolbookCE-Bold MT 1297 csub____ + mcsbi__ CenturySchoolbookCE-BoldIta MT 1297 csubi___ + mcsri__ CenturySchoolbookCE-Italic MT 1297 csui____ + mzcmi__ MonotypeCorsivaTur MT 1298 mcit____ + mzcmi__ MonotypeCorsivaCE MT 1298 mciu____ + ma1rk ArialDualGreekMT MT 1299 ard_____ + ma1bk ArialDualGreekMT-Bold MT 1299 ardb____ + ma1bik ArialDualGreekMT-BoldIncl MT 1299 ardbi___ + ma1rik ArialDualGreekMT-Inclined MT 1299 ardi____ + ma1r__ ArialTur MT 1306 art_____ + ma1b__ ArialTur-Bold MT 1306 artb____ + ma1bi__ ArialTur-BoldItalic MT 1306 artbi___ + ma1ri__ ArialTur-Italic MT 1306 arti____ + ma1r__ ArialCE MT 1306 aru_____ + ma1b__ ArialCE-Bold MT 1306 arub____ + ma1bi__ ArialCE-BoldItalic MT 1306 arubi___ + ma1ri__ ArialCE-Italic MT 1306 arui____ + mntr__ TimesNewRomanTur MT 1307 tit_____ + mntb__ TimesNewRomanTur-Bold MT 1307 titb____ + mntbi__ TimesNewRomanTur-BoldItalic MT 1307 titbi___ + mntri__ TimesNewRomanTur-Italic MT 1307 titi____ + mntr__ TimesNewRomanCE MT 1307 tiu_____ + mntb__ TimesNewRomanCE-Bold MT 1307 tiub____ + mntbi__ TimesNewRomanCE-BoldItalic MT 1307 tiubi___ + mntri__ TimesNewRomanCE-Italic MT 1307 tiui____ + mcrr__ CourierTur MT 1308 crt_____ + mcrb__ CourierTur-Bold MT 1308 crtb____ + mcrbi__ CourierTur-BoldItalic MT 1308 crtbi___ + mcrri__ CourierTur-Italic MT 1308 crti____ + mcrr__ CourierCE MT 1308 cru_____ + mcrb__ CourierCE-Bold MT 1308 crub____ + mcrbi__ CourierCE-BoldItalic MT 1308 crubi___ + mcrri__ CourierCE-Italic MT 1308 crui____ + mpnrn8a PlantinMT-Schlbk MT 1309 psb_____ + mpnbn8a PlantinMT-SchlbkBold MT 1309 psbb____ + mpnbin8a PlantinMT-SchlbkBoldItalic MT 1309 psbbi___ + mpnrin8a PlantinMT-SchlbkItalic MT 1309 psbi____ + mn1p8a BinnerPosterMT MT 1310 binp____ + mgqbd8ac GrotesqueDisplayMT-BoldCond MT 1310 gdbc____ + mgqbd8ax GrotesqueDisplayMT-BoldExt MT 1310 gdbe____ + micr8a ImpactMT MT 1310 imp_____ + mjobj8a JoannaMT-BoldOSF MT 1315 joob____ + mjobij8a JoannaMT-BoldItalicOSF MT 1315 joobi___ + mjoxj8a JoannaMT-ExtraBoldOSF MT 1315 jooeb___ + mjorij8a JoannaMT-ItalicOSF MT 1315 jooi____ + mjosc8a JoannaMT-SemiBoldSCOSF MT 1315 joos____ + mjosij8a JoannaMT-SemiBoldItalicOSF MT 1315 joosi___ + mjorc8a JoannaMT-SCOSF MT 1315 josc____ + mjor8x JoannaMT-Expert MT 1315 joy_____ + mjob8x JoannaMT-BoldExpert MT 1315 joyb____ + mjobi8x JoannaMT-BoldItalicExpert MT 1315 joybi___ + mjox8x JoannaMT-ExtraBoldExpert MT 1315 joyeb___ + mjori8x JoannaMT-ItalicExpert MT 1315 joyi____ + mjos8x JoannaMT-SemiBoldExpert MT 1315 joys____ + mjosi8a JoannaMT-SemiBoldItaExpert MT 1315 joysi___ + mgsrk GillSansDualGreekMT MT 1329 gsd_____ + mgsbk GillSansDualGreekMT-Bold MT 1329 gsdb____ + mgsbik GillSansDualGreekMT-BoldInc MT 1329 gsdbi___ + mgsrik GillSansDualGreekMT-Incl MT 1329 gsdi____ + mnir__ NimrodTur MT 1330 nit_____ + mnib__ NimrodTur-Bold MT 1330 nitb____ + mnibi__ NimrodTur-BoldItalic MT 1330 nitbi___ + mniri__ NimrodTur-Italic MT 1330 niti____ + mnir__ NimrodCE MT 1330 niu_____ + mnib__ NimrodCE-Bold MT 1330 niub____ + mnibi__ NimrodCE-BoldItalic MT 1330 niubi___ + mniri__ NimrodCE-Italic MT 1330 niui____ + mbbrn8a BemboMT-Schlbk MT 1331 bsc_____ + mbbbn8a BemboMT-SchlbkBold MT 1331 bscb____ + mbbbin8a BemboMT-SchlbkBoldItalic MT 1331 bscbi___ + mbbrin8a BemboMT-SchlbkItalic MT 1331 bsci____ + mntrz TimesNewRomanCyr MT 1332 tpc_____ + mntbz TimesNewRomanCyr-Bold MT 1332 tpcb____ + mntbiz TimesNewRomanCyr-BoldIncl MT 1332 tpcbi___ + mntriz TimesNewRomanCyr-Inclined MT 1332 tpci____ + mbbrd8a BemboTitlingMT MT 1333 bet_____ + mbbrid8a BemboTitlingMT-Italic MT 1333 beti____ + mcard8a CaslonTitlingMT MT 1333 cat_____ + mpnrd8a PlantinTitlingMT MT 1333 plt_____ + mpnbd8ac PlantinHeadlineMT-BoldCond MT 1334 plhbc___ + mpnld8ac PlantinHeadlineMT-LightCond MT 1334 plhlc___ + mpnmd8ac PlantinHeadlineMT-MedCond MT 1334 plhmc___ + zms7rn SassoonInfant MT 1335 szi_____ + zms7rna SassoonInfant-Alt MT 1335 szia____ + zms7bn SassoonInfant-Bold MT 1335 szib____ + zms7bna SassoonInfant-BoldAlt MT 1335 sziba___ + zms7rp SassoonPrimary MT 1336 szp_____ + zms7rpa SassoonPrimary-Alt MT 1336 szpa____ + zms7bp SassoonPrimary-Bold MT 1336 szpb____ + zms7bpa SassoonPrimary-BoldAlt MT 1336 szpba___ + zms7rs SassoonSans MT 1337 szs_____ + zms7rsa SassoonSans-Alt MT 1337 szsa____ + zms7bs SassoonSans-Bold MT 1337 szsb____ + zms7bsa SassoonSans-BoldAlt MT 1337 szsba___ + zms7ms SassoonSans-Medium MT 1337 szsm____ + zms7msa SassoonSans-MediumAlt MT 1337 szsma___ + zms7rsi SassoonSanSlope MT 1338 szz_____ + zms7rsia SassoonSanSlope-Alt MT 1338 szza____ + zms7bsi SassoonSanSlope-Bold MT 1338 szzb____ + zms7bsia SassoonSanSlope-BoldAlt MT 1338 szzba___ + zms7msi SassoonSanSlope-Medium MT 1338 szzm____ + zms7msia SassoonSanSlope-MediumAlt MT 1338 szzma___ + mgsr__ GillSansCE MT 1339 gsc_____ + mgsb__ GillSansCE-Bold MT 1339 gscb____ + mgsbi__ GillSansCE-BoldItalic MT 1339 gscbi___ + mgsri__ GillSansCE-Italic MT 1339 gsci____ + mgsl__ GillSansCE-Light MT 1339 gscl____ + mgsli__ GillSansCE-LightItalic MT 1339 gscli___ + mgsr__ GillSansTur MT 1339 gst_____ + mgsb__ GillSansTur-Bold MT 1339 gstb____ + mgsbi__ GillSansTur-BoldItalic MT 1339 gstbi___ + mgsri__ GillSansTur-Italic MT 1339 gsti____ + mgsl__ GillSansTur-Light MT 1339 gstl____ + mgsli__ GillSansTur-LightItalic MT 1339 gstli___ + myhr8a StrayhornMT-Regular MT 1340 str_____ + myhb8a StrayhornMT-Bold MT 1340 strb____ + myhbi8a StrayhornMT-BoldItalic MT 1340 strbi___ + myhri8a StrayhornMT-Italic MT 1340 stri____ + myhl8a StrayhornMT-Light MT 1340 strl____ + myhli8a StrayhornMT-LightItalic MT 1340 strli___ + myhx8a StrayhornMT-ExtraBold MT 1340 strx____ + myhxi8a StrayhornMT-ExtraBoldItalic MT 1340 strxi___ + mgsrn8a GillSansMT-Schlbk MT 1341 gsk_____ + mgsbn8a GillSansMT-SchlbkBold MT 1341 gskb____ + mgsbin8a GillSansMT-SchlbkBoldItalic MT 1341 gskbi___ + mgsrin8a GillSansMT-SchlbkItalic MT 1341 gski____ + myhbij8a StrayhornMT-BoldItalicOsF MT 1342 stbis___ + myhbj8a StrayhornMT-BoldOsF MT 1342 stbs____ + myhrij8a StrayhornMT-ItalicOsF MT 1342 stis____ + myhlij8a StrayhornMT-LightItalicOsF MT 1342 stlis___ + myhlc8a StrayhornMT-LightSC MT 1342 stls____ + myhrc8a StrayhornMT-RegularSC MT 1342 sts_____ + myhxij8a StrayhornMT-ExtraBoldItaOsF MT 1342 stxis___ + myhxj8a StrayhornMT-ExtraBoldOsF MT 1342 stxs____ + mpi205 DiamondBodoni MT 1343 dibod___ + mpi206 DiamondPositive MT 1343 dipos___ + mpi207 DiamondNegative MT 1343 dineg___ + mf2r8ac FacadeMT-Condensed MT 1343 fac_____ + mfsra8a FalstaffFestivalMT MT 1343 falfe___ + mg4r8a GoudyModernMT-Bold MT 1344 gomb____ + mg4ri8a GoudyModernMT-BoldItalic MT 1344 gombi___ + mgyrp GoudySortsMT MT 1344 gous____ + mpi303 BonApetit MT 1345 bonap___ + mpi306 Holidays MT 1345 holid___ + mpi308 KeystrokesMT MT 1345 keya____ + mpi307 KeystrokesExtrasMT MT 1345 keyb____ + mpi323 KeystrokesShadowMT MT 1345 keyc____ + mpi322 KeystrokesShadowExtrasMT MT 1345 keyd____ + mpi309 Melodies MT 1345 melod___ + mpi312 MonkeyBusiness MT 1345 monke___ + mpi315 Parties MT 1345 parti___ + mpi320 SignsMT MT 1345 sig_____ + mpi108 SportsThreeMT MT 1345 sport___ + mpi302 AquaLifeMT MT 1346 aqua____ + mpi304 DinosaursMT MT 1346 dino____ + mpi305 FrontierMT MT 1346 frnt____ + mpi310 MilestonesOneMT MT 1346 milea___ + mpi311 MilestonesTwoMT MT 1346 mileb___ + mpi314 NatureMT MT 1346 nat_____ + mpi208 OvalFrameMT MT 1346 ovaa____ + mpi209 OvalFrameNegativeMT MT 1346 ovab____ + mpi319 PlaytimeMT MT 1346 play____ + mpi109 SportsFourMT MT 1346 sporfm__ + mpi321 SouthwestOrnamentsMT MT 1346 sworna__ + ma1rt8a ArialMonospacedMT MT 1347 arm_____ + ma1bt8a ArialMonospacedMT-Bold MT 1347 armb____ + ma1bot8a ArialMonospacedMT-BoldObliq MT 1347 armbo___ + ma1rot8a ArialMonospacedMT-Oblique MT 1347 armo____ + mpwr8ac PerrywoodMT-Condensed MT 1348 pwc_____ + mpwb8ac PerrywoodMT-BoldCondensed MT 1348 pwcb____ + mpwbi8ac PerrywoodMT-BoldItalicCon MT 1348 pwcbi___ + mpwri8ac PerrywoodMT-ItalicCondensed MT 1348 pwci____ + mpwx8ac PerrywoodMT-ExtraBoldCon MT 1349 pwce____ + mpwxi8ac PerrywoodMT-ExtraBoldItaCon MT 1349 pwcei___ + mpwl8ac PerrywoodMT-LightCondensed MT 1349 pwcl____ + mpwli8ac PerrywoodMT-LightItalicCon MT 1349 pwcli___ + mpws8ac PerrywoodMT-SemiBoldCon MT 1349 pwcs____ + mpwsi8ac PerrywoodMT-SemiBoldItaCon MT 1349 pwcsi___ + mpwr8ax PerrywoodMT-Expanded MT 1350 pwe_____ + mpwb8ax PerrywoodMT-BoldExpanded MT 1350 pweb____ + mpwbi8ax PerrywoodMT-BoldItalicExp MT 1350 pwebi___ + mpwri8ax PerrywoodMT-ItalicExpanded MT 1350 pwei____ + mpwx8ax PerrywoodMT-ExtraBoldExp MT 1351 pwee____ + mpwxi8ax PerrywoodMT-ExtraBoldItaExp MT 1351 pweei___ + mpwl8ax PerrywoodMT-LightExpanded MT 1351 pwel____ + mpwli8ax PerrywoodMT-LightItalicExp MT 1351 pweli___ + mpws8ax PerrywoodMT-SemiBoldExp MT 1351 pwes____ + mpwsi8ax PerrywoodMT-SemiBoldItaExp MT 1351 pwesi___ + mgsr8a GillSansCyrMT MT 1356 gcy_____ + mgsb8a GillSansCyrMT-Bold MT 1356 gcyb____ + mgsbi8a GillSansCyrMT-BoldInclined MT 1356 gcybi___ + mgsri8a GillSansCyrMT-Inclined MT 1356 gcyi____ + mgsl8a GillSansCyrMT-Light MT 1356 gcyl____ + mgsli8a GillSansCyrMT-LightIncl MT 1356 gcyli___ + mhob8a HorleyOldStyleMT-Bold MT 1357 hsb_____ + mhobi8a HorleyOldStyleMT-BoldItalic MT 1357 hsbi____ + mhori8a HorleyOldStyleMT-Italic MT 1357 hsi_____ + mhol8a HorleyOldStyleMT-Light MT 1357 hsl_____ + mholi8a HorleyOldStyleMT-LightItalic MT 1357 hsli____ + mhor8a HorleyOldStyleMT MT 1357 hsrg____ + mhosi8a HorleyOldStyleMT-SbItalic MT 1357 hssb____ + mhos8a HorleyOldStyleMT-SemiBold MT 1357 hssbi___ + m_____ GillFloriatedCapsMT MT 1363 gilf____ + m_____ GillFloriatedCapsMT-Alt MT 1363 gilfa___ + m_____ MonotypeGallia MT 1364 gall____ + mbwr8a MonotypeBroadway MT 1365 broa____ + mbwre8a MonotypeBroadway-Engraved MT 1365 broae___ + m_____ CurlzMT-Regular MT 1367 crl_____ + m_____ KidprintMT-Regular MT 1368 kidp____ + m_____ KidprintMT-Bold MT 1368 kidpb___ + mgsbij8a GillSans-BoldItalicOsF MT 1369 gnbio___ + mgsbc8a GillSans-BoldSC MT 1369 gnbsc___ + mgsrij8a GillSans-ItalicOsF MT 1369 gnio____ + mgslij8a GillSans-LightItalicOsF MT 1369 gnlio___ + mgslc8a GillSans-LightSC MT 1369 gnlsc___ + mgsrc8a GillSans-SC MT 1369 gnsc____ + mcrb8a CourierLD-Bold MT 1371 cldb____ + mcrbi8a CourierLD-BoldItalic MT 1371 cldbi___ + mcrri8a CourierLD-Italic MT 1371 cldi____ + mcrr8a CourierLD-Regular MT 1371 cldr____ + mgshij8a GillSans-HeavyItalicOsF MT 1372 gnhio___ + mgshc8a GillSans-HeavySC MT 1372 gnhsc___ + mgskij8a GillSans-BookItalicOsF MT 1372 gnwio___ + mgskc8a GillSans-BookSC MT 1372 gnwsc___ + m_____ GillFaciaMT-Italic MT 1373 gfai____ + m_____ GillFaciaMT-ItalicAlt MT 1373 gfaia___ + m_____ GillFaciaMT-ItalicDisplay MT 1373 gfaid___ + m_____ GillFaciaMT-Regular MT 1373 gfar____ + m_____ GillFaciaMT-RegularAlt MT 1373 gfara___ + m_____ GillFaciaMT-RegularDisplay MT 1373 gfard___ + m_____ GillFaciaMT-ItDisplayAlt MT 1373 gfida___ + m_____ GillFaciaMT-RegDisplayAlt MT 1373 gfrda___ + mngr8a NewsGothicMT MT 1374 nwg_____ + mngb8a NewsGothicMT-Bold MT 1374 nwgb____ + mngb8a NewsGothicMT-BoldItalic MT 1374 nwgbi___ + mngri8a NewsGothicMT-Italic MT 1374 nwgi____ + m_____ AlbertinaMT-Bold MT 1378 abb_____ + m_____ AlbertinaMT-BoldItalic MT 1378 abbi____ + m_____ AlbertinaMT-BoldItalicOsF MT 1378 abbio___ + m_____ AlbertinaMT-BoldItalicSC MT 1378 abbis___ + m_____ AlbertinaMT-BoldOsF MT 1378 abbos___ + m_____ AlbertinaMT-BoldSC MT 1378 abbsc___ + m_____ AlbertinaMT-Italic MT 1378 abi_____ + m_____ AlbertinaMT-ItalicOsF MT 1378 abios___ + m_____ AlbertinaMT-ItalicSC MT 1378 abisc___ + m_____ AlbertinaMT-Medium MT 1378 abm_____ + m_____ AlbertinaMT-MediumItalic MT 1378 abmi____ + m_____ AlbertinaMT-MediumItalicOsF MT 1378 abmio___ + m_____ AlbertinaMT-MediumItalicSC MT 1378 abmis___ + m_____ AlbertinaMT-MediumOsF MT 1378 abmos___ + m_____ AlbertinaMT-MediumSC MT 1378 abmsc___ + m_____ AlbertinaMT-Regular MT 1378 abr_____ + m_____ AlbertinaMT-RegularOsF MT 1378 abros___ + m_____ AlbertinaMT-RegularSC MT 1378 abrsc___ + mngr__ NewsGothicCE MT 1379 ngu_____ + mngb__ NewsGothicCE-Bold MT 1379 ngub____ + mngbi__ NewsGothicCE-BoldItalic MT 1379 ngubi___ + mngri__ NewsGothicCE-Italic MT 1379 ngui____ + mngrk NewsGothicGre MT 1380 ngg_____ + mngbk NewsGothicGre-Bold MT 1380 nggb____ + mngbik NewsGothicGre-BoldInclined MT 1380 nggbi___ + mngrik NewsGothicGre-Inclined MT 1380 nggi____ + mngrz NewsGothicCyr MT 1381 ngc_____ + mngbz NewsGothicCyr-Bold MT 1381 ngcb____ + mngbiz NewsGothicCyr-BoldInclined MT 1381 ngcbi___ + mngriz NewsGothicCyr-Inclined MT 1381 ngci____ + m_____ BuffaloGalMT MT 1382 bufg____ + mrwr__ RockwellTur MT 1383 rkt_____ + mrwb__ RockwellTur-Bold MT 1383 rktb____ + mrwbi__ RockwellTur-BoldItalic MT 1383 rktbi___ + mrwri__ RockwellTur-Italic MT 1383 rkti____ + mrwl__ RockwellTur-Light MT 1383 rktl____ + mrwli__ RockwellTur-LightItalic MT 1383 rktli___ + mrwr__ RockwellCE MT 1383 rku_____ + mrwb__ RockwellCE-Bold MT 1383 rkub____ + mrwbi__ RockwellCE-BoldItalic MT 1383 rkubi___ + mrwri__ RockwellCE-Italic MT 1383 rkui____ + mrwl__ RockwellCE-Light MT 1383 rkul____ + mrwli__ RockwellCE-LightItalic MT 1383 rkuli___ + mo4bij8a OceanSansMT-BoldItalicOsF MT 1397 oebio___ + mo4bic8a OceanSansMT-BoldItalicSC MT 1397 oebis___ + mo4bj8a OceanSansMT-BoldOsF MT 1397 oebo____ + mo4bc8a OceanSansMT-BoldSC MT 1397 oebs____ + mo4kij8a OceanSansMT-BookItalicOsF MT 1397 oekio___ + mo4kic8a OceanSansMT-BookItalicSC MT 1397 oekis___ + mo4kj8a OceanSansMT-BookOsF MT 1397 oeko____ + mo4kc8a OceanSansMT-BookSC MT 1397 oeks____ + mo4lij8a OceanSansMT-LightItalicOsF MT 1398 oelio___ + mo4lic8a OceanSansMT-LightItalicSC MT 1398 oelis___ + mo4lj8a OceanSansMT-LightOsF MT 1398 oelo____ + mo4lc8a OceanSansMT-LightSC MT 1398 oels____ + mo4sij8a OceanSansMT-SemiBoldItaOsF MT 1398 oesio___ + mo4sic8a OceanSansMT-SemiBoldItaSC MT 1398 oesis___ + mo4sj8a OceanSansMT-SemiBoldOsF MT 1398 oeso____ + mo4sc8a OceanSansMT-SemiBoldSC MT 1398 oess____ + mo4xij8a OceanSansMT-ExtraBoldItaOsF MT 1398 oexio___ + mo4xic8a OceanSansMT-ExtraBoldItaSC MT 1398 oexis___ + mo4xj8a OceanSansMT-ExtraBoldOsF MT 1398 oexo____ + mo4xc8a OceanSansMT-ExtraBoldSC MT 1398 oexs____ + mgmrz GaramondCyrMT-Regular MT 1401 gac_____ + mgmbz GaramondCyrMT-Bold MT 1401 gacb____ + mgmriz GaramondCyrMT-Inclined MT 1401 gaci____ + mgmrk GaramondDualGreekMT-Regular MT 1402 gad_____ + mgmbk GaramondDualGreekMT-Bold MT 1402 gadb____ + mgmrik GaramondDualGreekMT-Incl MT 1402 gadi____ + mgmr__ GaramondCEMT-Regular MT 1403 gae_____ + mgmb__ GaramondCEMT-Bold MT 1403 gaeb____ + mgmri__ GaramondCEMT-Italic MT 1403 gaei____ + mgmr__ GaramondTurMT-Regular MT 1403 gat_____ + mgmb__ GaramondTurMT-Bold MT 1403 gatb____ + mgmri__ GaramondTurMT-Italic MT 1403 gati____ + mngr8ac NewsGothicMT-Condensed MT 1451 ngoc____ + mngb8ac NewsGothicMT-CondensedBold MT 1451 ngocb___ + m_____ MahsuriSansMT-Bold MT 1454 msb_____ + m_____ MahsuriSansMT-BoldItalic MT 1454 msbi____ + m_____ MahsuriSansMT-BoldItalicOsF MT 1454 msbio___ + m_____ MahsuriSansMT-BoldOsF MT 1454 msbo____ + m_____ MahsuriSansMT-Italic MT 1454 msi_____ + m_____ MahsuriSansMT-ItalicOsF MT 1454 msio____ + m_____ MahsuriSansMT-Light MT 1454 msl_____ + m_____ MahsuriSansMT-LightItalic MT 1454 msli____ + m_____ MahsuriSansMT-LightItalicOsF MT 1454 mslio___ + m_____ MahsuriSansMT-LightOsF MT 1454 mslo____ + m_____ MahsuriSansMT-Regular MT 1454 msr_____ + m_____ MahsuriSansMT-RegularOsF MT 1454 msro____ + m_____ MahsuriSansMT-ExtraBold MT 1454 msx_____ + m_____ MahsuriSansMT-ExtraBoldItalic MT 1454 msxi____ + m_____ MahsuriSansMT-ExtBoldItaOsF MT 1454 msxio___ + m_____ MahsuriSansMT-ExtraBoldOsF MT 1454 msxo____ + mu0r8a ColumbusMT MT 1492 cu______ + mu0b8a ColumbusMTBold MT 1492 cub_____ + mu0bi8a ColumbusMTBoldItalic MT 1492 cubi____ + mu0ri8a ColumbusMTItalic MT 1492 cui_____ + mu0s8a ColumbusMTSemiBold MT 1492 cus_____ + mu0si8a ColumbusMTSemiBoldItalic MT 1492 cusi____ + mpi001 ArabesqueOrnamentsOneMT ornaments + mpi002 ArabesqueOrnamentsTwoMT ditto + mpi003 ArabesqueOrnamentsThreeMT ditto + mpi004 RococoOrnamentsOneMT ornaments + mpi005 RococoOrnamentsTwoMT ditto + mpi006 RococoOrnamentsThreeMT ditto + mpi007 ChristmasOrnamentsMT-One ornaments + mpi008 ChristmasOrnamentsMT-Two ditto + mpi009 ChristmasOrnamentsMT-Three ditto + mpi010 ChristmasOrnamentsMT-Four ditto + mpi011 ChristmasOrnamentsMT-Five ditto + mpi012 ChristmasOrnamentsMT-Six ditto + mpi013 ContemporaryOrnMT-One ornaments + mpi014 ContemporaryOrnMT-Two ditto + mpi015 ContemporaryOrnMT-Three ditto + mpi016 ContemporaryOrnMT-Four ditto + mpi017 ContemporaryOrnMT-Five ditto + mpi101 AlmanacMT zodiac + mpi102 BotanicalMT flowers + mpi103 DirectionsMT arrows & pointers + mpi104 SportsOneMT sports + mpi105 SportsTwoMT ditto + mpi106 TransportMT signs + mpi107 VacationMT signs + mpi108 SportsThreeMT sports + mpi109 SportsFourMT ditto + mpi201 CircleFrameMT circled numerals + mpi202 CircleFrameNegMT ditto + mpi203 SquareFrameMT squared numerals + mpi204 SquareFrameNegMT ditto + mpi205 DiamondBodoni bullets & markers + mpi206 DiamondPositive ditto + mpi207 DiamondNegative ditto + mpi208 OvalFrameMT circled numerals + mpi209 OvalFrameNegativeMT ditto + mpi300 Giddyup-ThangsMT cowboys & indians + mpi301 PetrucchioMT ??? + mpi302 AquaLifeMT fish + mpi303 BonApetit food + mpi304 DinosaursMT dinosaurs + mpi305 FrontierMT cowboys & indians + mpi306 Holidays greeting cards + mpi307 KeystrokesExtrasMT keyboards + mpi308 KeystrokesMT ditto + mpi309 Melodies musical instruments + mpi310 MilestonesOneMT clip art + mpi311 MilestonesTwoMT ditto + mpi312 MonkeyBusiness animals + mpi313 MonotypeSorts dingbats + mpi314 NatureMT animals + mpi315 Parties clip art + mpi316 BingoMT clip art + mpi317 BongoMT clip art + mpi318 PieMT food & drinks + mpi319 PlaytimeMT toys + mpi320 SignsMT signs + mpi321 SouthwestOrnamentsMT geometric ornaments + mpi322 KeystrokesShadowExtrasMT keyboards + mpi323 KeystrokesShadowMT ditto + + +File: fontname.info, Node: URW fonts, Prev: Monotype fonts, Up: Font name lists + +A.9 URW fonts +============= + +Information graciously supplied through URW, via Vincent Ertner: Each +URW font has an assigned font number. The last character describes the +size or purpose of the font, as the design of the font is optimized +accordingly: + +`X000000E' + Extreme: 8pt and smaller + +`X000000T' + Text: between 8 and 18pt + +`X000000D' + Display: 18pt and larger + +`X000000P' + Poster: 48pt and larger + +`X000000M' + Monospaced / Typewriter + +`X000000L' + LaserWriter / PostScript / Adobe compatible + +`X000000I' + Intellifont PCL (5) compatible + + An `F' identifier is not known. + + The `urw.map' file has abbreviations for URW fonts. + + uagd8a URWGothicL-Demi a010015l + uagdo8a URWGothicL-DemiObli a010035l + uagk8a URWGothicL-Book a010013l + uagko8a URWGothicL-BookObli a010033l + ubkd8a URWBookmanL-DemiBold b018015l + ubkdi8a URWBookmanL-DemiBoldItal b018035l + ubkl8a URWBookmanL-Ligh b018012l + ubkli8a URWBookmanL-LighItal b018032l + ucrb8a NimbusMonL-Bold n022004l + ucrbo8a NimbusMonL-BoldObli n022024l + ucrr8a NimbusMonL-Regu n022003l + ucrro8a NimbusMonL-ReguObli n022023l + uhvb8a NimbusSanL-Bold n019004l + uhvb8ac NimbusSanL-BoldCond n019044l + uhvbo8a NimbusSanL-BoldItal n019024l + uhvbo8ac NimbusSanL-BoldCondItal n019064l + uhvr8a NimbusSanL-Regu n019003l + uhvr8ac NimbusSanL-ReguCond n019043l + uhvro8a NimbusSanL-ReguItal n019023l + uhvro8ac NimbusSanL-ReguCondItal n019063l + uncb8a CenturySchL-Bold c059016l + uncbi8a CenturySchL-BoldItal c059036l + uncr8a CenturySchL-Roma c059013l + uncri8a CenturySchL-Ital c059033l + uplb8a URWPalladioL-Bold p052004l + uplbi8a URWPalladioL-BoldItal p052024l + uplr8a URWPalladioL-Roma p052003l + uplri8a URWPalladioL-Ital p052023l + usyr StandardSymL s050000l + utmb8a NimbusRomNo9L-Medi n021004l + utmbi8a NimbusRomNo9L-MediItal n021024l + utmr8a NimbusRomNo9L-Regu n021003l + utmri8a NimbusRomNo9L-ReguItal n021023l + uzcmi8a URWChanceryL-MediItal z003034l + uzdr Dingbats d050000l + + +File: fontname.info, Node: Encodings, Next: Font legalities, Prev: Font name lists, Up: Top + +Appendix B Encodings +******************** + +The following sections define various encodings as PostScript encoding +vectors. These files can be installed in the Dvips header directory and +then used in `psfonts.map' to change font encodings of downloadable or +builtin fonts (*note psfonts.map: (dvips)psfonts.map.). + + You can also specify these `.enc' files to Afm2tfm when building a +font (*note Changing font encodings: (dvips)Changing font encodings.). + + For a discussion of TeX font encodings in general, and defining new +ones for use with `fontinst' in particular, see +`http://www.ctan.org/tex-archive/fonts/utilities/fontinst/doc/encspecs'. + + Naming specific characters is a tangled and difficult area. Here are +some links to character tables for Unicode, Adobe, and WGL4, for your +researching pleasure (thanks to Boguslaw Jackowski for the list): + + * `http://www.unicode.org/Public/UNIDATA/UnicodeData.txt' + + * `http://www.unicode.org/Public/UNIDATA/NamesList.txt' + + * `http://partners.adobe.com/asn/tech/type/corporateuse-old.txt' + + * `http://partners.adobe.com/asn/tech/type/aglfn13.txt' + + * `http://partners.adobe.com/asn/tech/type/unicodegn.jsp' + + * `http://www.microsoft.com/OpenType/otspec/WGL4.htm' + +* Menu: + +* 8a:: Adobe standard. +* 8r:: TeX base. +* cork:: Cork (aka EC, TeX Latin 1, tex256). +* dvips:: Dvips. +* t5:: Vietnamese, from vntex. +* qx:: QX, from GUST. +* texmext:: TeX math extension. +* texmsym:: TeX math symbol. +* texmital:: TeX math italic. +* texnansi:: From Y&Y. +* texnansx:: From Y&Y. +* xl2:: OT1 + ISO Latin 2 (extended). +* xt2:: Typewriter version of xl2. + + +File: fontname.info, Node: 8a, Next: 8r, Up: Encodings + +B.1 `8a.enc': Adobe standard encoding +===================================== + +% @psencodingfile{ +% author = "Adobe", +% version = "1.1", +% date = "12jun05", +% filename = "8a.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "Adobe StandardEncoding as an afm2tfm/dvips .enc file." +% } +% 12jun05 - comment changes only. +/StandardEncoding [ +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/space +/exclam +/quotedbl +/numbersign +/dollar +/percent +/ampersand +/quoteright +/parenleft +/parenright +/asterisk +/plus +/comma +/hyphen +/period +/slash +/zero +/one +/two +/three +/four +/five +/six +/seven +/eight +/nine +/colon +/semicolon +/less +/equal +/greater +/question +/at +/A +/B +/C +/D +/E +/F +/G +/H +/I +/J +/K +/L +/M +/N +/O +/P +/Q +/R +/S +/T +/U +/V +/W +/X +/Y +/Z +/bracketleft +/backslash +/bracketright +/asciicircum +/underscore +/quoteleft +/a +/b +/c +/d +/e +/f +/g +/h +/i +/j +/k +/l +/m +/n +/o +/p +/q +/r +/s +/t +/u +/v +/w +/x +/y +/z +/braceleft +/bar +/braceright +/asciitilde +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/exclamdown +/cent +/sterling +/fraction +/yen +/florin +/section +/currency +/quotesingle +/quotedblleft +/guillemotleft +/guilsinglleft +/guilsinglright +/fi +/fl +/.notdef +/endash +/dagger +/daggerdbl +/periodcentered +/.notdef +/paragraph +/bullet +/quotesinglbase +/quotedblbase +/quotedblright +/guillemotright +/ellipsis +/perthousand +/.notdef +/questiondown +/.notdef +/grave +/acute +/circumflex +/tilde +/macron +/breve +/dotaccent +/dieresis +/.notdef +/ring +/cedilla +/.notdef +/hungarumlaut +/ogonek +/caron +/emdash +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/AE +/.notdef +/ordfeminine +/.notdef +/.notdef +/.notdef +/.notdef +/Lslash +/Oslash +/OE +/ordmasculine +/.notdef +/.notdef +/.notdef +/.notdef +/.notdef +/ae +/.notdef +/.notdef +/.notdef +/dotlessi +/.notdef +/.notdef +/lslash +/oslash +/oe +/germandbls +/.notdef +/.notdef +/.notdef +/.notdef +] def + + +File: fontname.info, Node: 8r, Next: cork, Prev: 8a, Up: Encodings + +B.2 `8r.enc': TeX base encoding +=============================== + +% File 8r.enc TeX Base 1 Encoding Revision 2.0 2002-10-30 +% +% @@psencodingfile@{ +% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, +% W. Schmidt, P. Lehman", +% version = "2.0", +% date = "30 October 2002", +% filename = "8r.enc", +% email = "tex-fonts@@tug.org", +% docstring = "This is the encoding vector for Type1 and TrueType +% fonts to be used with TeX. This file is part of the +% PSNFSS bundle, version 9" +% @} +% +% The idea is to have all the characters normally included in Type 1 fonts +% available for typesetting. This is effectively the characters in Adobe +% Standard encoding, ISO Latin 1, Windows ANSI including the euro symbol, +% MacRoman, and some extra characters from Lucida. +% +% Character code assignments were made as follows: +% +% (1) the Windows ANSI characters are almost all in their Windows ANSI +% positions, because some Windows users cannot easily reencode the +% fonts, and it makes no difference on other systems. The only Windows +% ANSI characters not available are those that make no sense for +% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen +% (173). quotesingle and grave are moved just because it's such an +% irritation not having them in TeX positions. +% +% (2) Remaining characters are assigned arbitrarily to the lower part +% of the range, avoiding 0, 10 and 13 in case we meet dumb software. +% +% (3) Y&Y Lucida Bright includes some extra text characters; in the +% hopes that other PostScript fonts, perhaps created for public +% consumption, will include them, they are included starting at 0x12. +% These are /dotlessj /ff /ffi /ffl. +% +% (4) hyphen appears twice for compatibility with both ASCII and Windows. +% +% (5) /Euro was assigned to 128, as in Windows ANSI +% +% (6) Missing characters from MacRoman encoding incorporated as follows: +% +% PostScript MacRoman TeXBase1 +% -------------- -------------- -------------- +% /notequal 173 0x16 +% /infinity 176 0x17 +% /lessequal 178 0x18 +% /greaterequal 179 0x19 +% /partialdiff 182 0x1A +% /summation 183 0x1B +% /product 184 0x1C +% /pi 185 0x1D +% /integral 186 0x81 +% /Omega 189 0x8D +% /radical 195 0x8E +% /approxequal 197 0x8F +% /Delta 198 0x9D +% /lozenge 215 0x9E +% +/TeXBase1Encoding [ +% 0x00 + /.notdef /dotaccent /fi /fl + /fraction /hungarumlaut /Lslash /lslash + /ogonek /ring /.notdef /breve + /minus /.notdef /Zcaron /zcaron +% 0x10 + /caron /dotlessi /dotlessj /ff + /ffi /ffl /notequal /infinity + /lessequal /greaterequal /partialdiff /summation + /product /pi /grave /quotesingle +% 0x20 + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three + /four /five /six /seven + /eight /nine /colon /semicolon + /less /equal /greater /question +% 0x40 + /at /A /B /C + /D /E /F /G + /H /I /J /K + /L /M /N /O +% 0x50 + /P /Q /R /S + /T /U /V /W + /X /Y /Z /bracketleft + /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c + /d /e /f /g + /h /i /j /k + /l /m /n /o +% 0x70 + /p /q /r /s + /t /u /v /w + /x /y /z /braceleft + /bar /braceright /asciitilde /.notdef +% 0x80 + /Euro /integral /quotesinglbase /florin + /quotedblbase /ellipsis /dagger /daggerdbl + /circumflex /perthousand /Scaron /guilsinglleft + /OE /Omega /radical /approxequal +% 0x90 + /.notdef /.notdef /.notdef /quotedblleft + /quotedblright /bullet /endash /emdash + /tilde /trademark /scaron /guilsinglright + /oe /Delta /lozenge /Ydieresis +% 0xA0 + /.notdef /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guillemotleft + /logicalnot /hyphen /registered /macron +% 0xD0 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guillemotright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde + /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def + + +File: fontname.info, Node: cork, Next: dvips, Prev: 8r, Up: Encodings + +B.3 `cork.enc': Cork encoding +============================= + +% @psencodingfile{ +% version = "1.0", +% date = "12jun05", +% filename = "cork.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "This is the Cork encoding, aka TeX Latin 1, aka tex256, as +% described in TTN 1(4), December 1992, and TUGboat 11(4), November +% 1990, page 514. EC is the name of the Computer Modern-based fonts in +% this encoding. NFSS and Fontinst know it as `T1'." +% } +% 12jun05 - Don't use Texinfo @'s in LIGKERN's. +% +% These are the ligs and kerns in addition to those found in the +% AFM file. (The only ligs in the Times-Roman.afm file are the +% fi and fl ligatures.) +% +% LIGKERN space l =: lslash ; space L =: Lslash ; +% LIGKERN question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ; +% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% +% We remove kerns to and from spaces (TeX doesn't have a +% space) and also remove any kerns from the numbers (although +% the only kern pair that mentions a number in Times-Roman.afm +% is one one.) +% +% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; +% LIGKERN comma comma =: quotedblbase ; less less =: guillemotleft ; +% LIGKERN greater greater =: guillemotright ; +% +/CorkEncoding [ % now 256 chars follow +% 0x00 + /grave /acute /circumflex /tilde /dieresis /hungarumlaut /ring /caron + /breve /macron /dotaccent /cedilla + /ogonek /quotesinglbase /guilsinglleft /guilsinglright +% 0x10 + /quotedblleft /quotedblright /quotedblbase /guillemotleft + /guillemotright /endash /emdash /compwordmark + /perthousandzero /dotlessi /dotlessj /ff /fi /fl /ffi /ffl +% 0x20 + /visualspace /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question +% 0x40 + /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O +% 0x50 + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o +% 0x70 + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /asciitilde /hyphen +% 0x80 + /Abreve /Aogonek /Cacute /Ccaron /Dcaron /Ecaron /Eogonek /Gbreve + /Lacute /Lcaron /Lslash /Nacute /Ncaron /Ng /Ohungarumlaut /Racute +% 0x90 + /Rcaron /Sacute /Scaron /Scedilla + /Tcaron /Tcedilla /Uhungarumlaut /Uring + /Ydieresis /Zacute /Zcaron /Zdotaccent /IJ /Idotaccent /dbar /section +% 0xA0 + /abreve /aogonek /cacute /ccaron /dcaron /ecaron /eogonek /gbreve + /lacute /lcaron /lslash /nacute /ncaron /ng /ohungarumlaut /racute +% 0xB0 + /rcaron /sacute /scaron /scedilla + /tquoteright /tcedilla /uhungarumlaut /uring + /ydieresis /zacute /zcaron /zdotaccent + /ij /exclamdown /questiondown /sterling +% 0xC0 + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 + /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /OE + /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /Germandbls +% 0xE0 + /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 + /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /oe + /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /germandbls +] def + + +File: fontname.info, Node: dvips, Next: t5, Prev: cork, Up: Encodings + +B.4 `dvips.enc': Dvips encoding +=============================== + +% @psencodingfile{ +% author = "T. Rokicki, K. Berry", +% version = "2.1", +% date = "12jun05", +% filename = "dvips.enc", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "An encoding for PostScript fonts to be used with TeX. +% +% This is almost the default encoding produced by the afm2tfm program +% that comes with the dvips distribution, when it is applied to a +% StandardEncoding PostScript font. The positions of the accented +% characters (which afm2tfm assigned more or less randomly in the +% previous set of fonts) have been held fixed. +% +% It is almost upward-compatible with TeX text. (The primary exceptions +% are dotaccent and hungarumlaut.) Some of the ligatures are also in +% different positions, but this is not important, since ligature +% positions are defined in the TFM file, not by macros. +% +% The character positions were assigned in this order: +% 1) non-composite characters in the afm2tfm encoding (except dotlessj +% was included in its plain TeX position); +% 2) available characters in the Cork (EC) encoding; +% 3) remaining composite characters in the base encoding (starting at +% position 130 decimal). We don't include all the other base +% characters because that changes the height/depth/width tables in +% the TFM files (because more characters mean more distinct values). +% +% We leave the initial positions open for the Greek letters in Times-Roman. +% " +% } +% 12jun05 - don't use extra @'s for Texinfo any more. +% +/DvipsEncoding [ + /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /quotesingle /exclamdown /questiondown + /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring + /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash + /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash + /zero /one /two /three /four /five /six /seven + /eight /nine /colon /semicolon /less /equal /greater /question + /at /A /B /C /D /E /F /G + /H /I /J /K /L /M /N /O + /P /Q /R /S /T /U /V /W + /X /Y /Z /bracketleft /backslash /bracketright /circumflex /underscore + /quoteleft /a /b /c /d /e /f /g + /h /i /j /k /l /m /n /o + /p /q /r /s /t /u /v /w + /x /y /z /braceleft /bar /braceright /tilde /dieresis + /asciicircum /asciitilde /Ccedilla /Iacute + /Icircumflex /atilde /edieresis /egrave + /scaron /zcaron /Eth /ff /ffi /ffl /.notdef /.notdef + /.notdef /.notdef /Scaron /.notdef /.notdef /.notdef /.notdef /.notdef + /Ydieresis /.notdef /Zcaron /.notdef /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /cent /sterling /fraction /yen /florin /section + /currency /copyright /quotedblleft /guillemotleft + /guilsinglleft /guilsinglright /fi /fl + /degree /endash /dagger /daggerdbl /periodcentered /.notdef /paragraph /bullet + /quotesinglbase /quotedblbase /quotedblright /guillemotright + /ellipsis /perthousand /.notdef /.notdef + /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /.notdef /dotaccent + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /hungarumlaut /ogonek /Idieresis + /emdash /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /.notdef + /.notdef /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /.notdef + /agrave /aacute /acircumflex /ordfeminine + /adieresis /aring /.notdef /ccedilla + /Lslash /eacute /ecircumflex /ordmasculine + /igrave /iacute /icircumflex /idieresis + /.notdef /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /.notdef + /lslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis +] def + + +File: fontname.info, Node: t5, Next: qx, Prev: dvips, Up: Encodings + +B.5 `t5.enc': T5 encoding +========================= + +% Copyright 2000-2005 Werner Lemberg <wl@gnu.org>. +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt +% +% +% t5.enc +% +% +% This is LaTeX T5 encoding for Vietnamese +% +% history: +% version 1.0 (28-Jan-2000): +% First version. +% +% version 1.1 (29-Apr-2002): +% Rewritten to make it AGL compliant. +% +% version 1.2 (01-May-2002): +% Use uni2423 instead uni2420. +% +% version 1.3 (27-Sep-2002): +% . Changed the following glyph names to Unicode entities: +% 0xB3 uni1EBD etilde +% 0x93 uni1EBC Etilde +% . Ytilde (uni1EF8) was used in slot for ytilde (uni1EF9). +% . Using .notdef in slot for compound word mark (on position 0x17) +% caused some problems so it was changed to cwm (for compatibilty +% with ec.enc). +% . Use sfthyphen in slot 127 instead of hyphen. +% +% version 1.4 (20-Apr-2005): +% Add copyright. +% Minor documentation updates. +% +% LIGKERN hyphen hyphen =: endash ; +% LIGKERN endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN comma comma =: quotedblbase ; +% +% We blow away kerns to and from spaces (TeX doesn't have a +% space) and also remove any kerns from the numbers. +% +% LIGKERN space {} * ; * {} space ; +% LIGKERN zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; +% LIGKERN two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; +% LIGKERN four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; +% LIGKERN six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; +% LIGKERN eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; +% +% +% Some notes on the glyph names: +% +% . We follow the Adobe Glyph List (AGL), also using its associated +% algorithm. +% +% . The glyphs `spacing dot below' (on position 0x05), `spacing hook above' +% (on position 0x0C), and `compound word mark' (on position 0x17) are not +% in Unicode. We call them `dotbelow', `hookabove', and `cwm', +% respectively. +% +% . The following glyphs have no special name in the AGL (or names which +% should not be used in general) and are thus represented as a Unicode +% entity: +% +% 0x1A uni1EF6 Y hook above +% 0x1B uni1EF7 y hook above +% 0x1C uni1EF4 Y dot below +% 0x1D uni1EF5 y dot below +% +% 0x20 uni2423 graphic symbol for space +% +% 0x83 uni1EA2 A hook above +% 0x84 uni1EA0 A dot below +% 0x86 uni1EA6 A circumflex grave +% 0x87 uni1EA4 A circumflex acute +% 0x88 uni1EAA A circumflex tilde +% 0x89 uni1EA8 A circumflex hook above +% 0x8A uni1EAC A circumflex dot below +% 0x8C uni1EB0 A breve grave +% 0x8D uni1EAE A breve acute +% 0x8E uni1EB4 A breve tilde +% 0x8F uni1EB2 A breve hook above +% 0x90 uni1EB6 A breve dot below +% +% 0x93 uni1EBC E tilde +% 0x94 uni1EBA E hook above +% 0x95 uni1EB8 E dot below +% 0x97 uni1EC0 E circumflex grave +% 0x98 uni1EBE E circumflex acute +% 0x99 uni1EC4 E circumflex tilde +% 0x9A uni1EC2 E circumflex hook above +% 0x9B uni1EC6 E circumflex dot below +% +% 0x9F uni1EC8 I hook above +% +% 0xA3 uni1EA3 a hook above +% 0xA4 uni1EA1 a dot below +% 0xA6 uni1EA7 a circumflex grave +% 0xA7 uni1EA5 a circumflex acute +% 0xA8 uni1EAB a circumflex tilde +% 0xA9 uni1EA9 a circumflex hook above +% 0xAA uni1EAD a circumflex dot below +% 0xAC uni1EB1 a breve grave +% 0xAD uni1EAF a breve acute +% 0xAE uni1EB5 a breve tilde +% 0xAF uni1EB3 a breve hook above +% 0xB0 uni1EB7 a breve dot below +% +% 0xB3 uni1EBD e tilde +% 0xB4 uni1EBB e hook above +% 0xB5 uni1EB9 e dot below +% 0xB7 uni1EC1 e circumflex grave +% 0xB8 uni1EBF e circumflex acute +% 0xB9 uni1EC5 e circumflex tilde +% 0xBA uni1EC3 e circumflex hook above +% 0xBB uni1EC7 e circumflex dot below +% +% 0xBF uni1EC9 i hook above +% +% 0xC0 uni1ECA I dot below +% +% 0xC4 uni1ECE O hook above +% 0xC5 uni1ECC O dot below +% 0xC7 uni1ED2 O circumflex grave +% 0xC8 uni1ED0 O circumflex acute +% 0xC9 uni1ED6 O circumflex tilde +% 0xCA uni1ED4 O circumflex hook above +% 0xCB uni1ED8 O circumflex dot below +% 0xCD uni1EDC O horn grave +% 0xCE uni1EDA O horn acute +% 0xCF uni1EE0 O horn tilde +% 0xD0 uni1EDE O horn hook above +% 0xD1 uni1EE2 O horn dot below +% +% 0xD5 uni1EE6 U hook above +% 0xD6 uni1EE4 U dot below +% 0xD8 uni1EEA U horn grave +% 0xD9 uni1EE8 U horn acute +% 0xDA uni1EEE U horn tilde +% 0xDB uni1EEC U horn hook above +% 0xDC uni1EF0 U horn dot below +% +% 0xDF uni1EF8 Y tilde +% +% 0xE0 uni1ECB i dot below +% +% 0xE4 uni1ECF o hook above +% 0xE5 uni1ECD o dot below +% 0xE7 uni1ED3 o circumflex grave +% 0xE8 uni1ED1 o circumflex acute +% 0xE9 uni1ED7 o circumflex tilde +% 0xEA uni1ED5 o circumflex hook above +% 0xEB uni1ED9 o circumflex dot below +% 0xED uni1EDD o horn grave +% 0xEE uni1EDB o horn acute +% 0xEF uni1EE1 o horn tilde +% 0xF0 uni1EDF o horn hook above +% 0xF1 uni1EE3 o horn dot below +% +% 0xF5 uni1EE7 u hook above +% 0xF6 uni1EE5 u dot below +% 0xF8 uni1EEB u horn grave +% 0xF9 uni1EE9 u horn acute +% 0xFA uni1EEF u horn tilde +% 0xFB uni1EED u horn hook above +% 0xFC uni1EF1 u horn dot below +% +% 0xFF uni1EF9 y tilde +/T5Encoding [ +% 0x00 + /grave /acute /circumflex /tilde + /dieresis /dotbelow /ring /caron + /breve /macron /dotaccent /cedilla + /hookabove /quotesinglbase /guilsinglleft /guilsinglright +% 0x10 + /quotedblleft /quotedblright /quotedblbase /guillemotleft + /guillemotright /endash /emdash /cwm + /zeroinferior /dotlessi /uni1EF6 /uni1EF7 + /uni1EF4 /uni1EF5 /Dcroat /dcroat +% 0x20 + /uni2423 /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash +% 0x30 + /zero /one /two /three + /four /five /six /seven + /eight /nine /colon /semicolon + /less /equal /greater /question +% 0x40 + /at /A /B /C + /D /E /F /G + /H /I /J /K + /L /M /N /O +% 0x50 + /P /Q /R /S + /T /U /V /W + /X /Y /Z /bracketleft + /backslash /bracketright /asciicircum /underscore +% 0x60 + /quoteleft /a /b /c + /d /e /f /g + /h /i /j /k + /l /m /n /o +% 0x70 + /p /q /r /s + /t /u /v /w + /x /y /z /braceleft + /bar /braceright /asciitilde /sfthyphen +% 0x80 + /Agrave /Aacute /Atilde /uni1EA2 + /uni1EA0 /Acircumflex /uni1EA6 /uni1EA4 + /uni1EAA /uni1EA8 /uni1EAC /Abreve + /uni1EB0 /uni1EAE /uni1EB4 /uni1EB2 +% 0x90 + /uni1EB6 /Egrave /Eacute /uni1EBC + /uni1EBA /uni1EB8 /Ecircumflex /uni1EC0 + /uni1EBE /uni1EC4 /uni1EC2 /uni1EC6 + /Igrave /Iacute /Itilde /uni1EC8 +% 0xA0 + /agrave /aacute /atilde /uni1EA3 + /uni1EA1 /acircumflex /uni1EA7 /uni1EA5 + /uni1EAB /uni1EA9 /uni1EAD /abreve + /uni1EB1 /uni1EAF /uni1EB5 /uni1EB3 +% 0xB0 + /uni1EB7 /egrave /eacute /uni1EBD + /uni1EBB /uni1EB9 /ecircumflex /uni1EC1 + /uni1EBF /uni1EC5 /uni1EC3 /uni1EC7 + /igrave /iacute /itilde /uni1EC9 +% 0xC0 + /uni1ECA /Ograve /Oacute /Otilde + /uni1ECE /uni1ECC /Ocircumflex /uni1ED2 + /uni1ED0 /uni1ED6 /uni1ED4 /uni1ED8 + /Ohorn /uni1EDC /uni1EDA /uni1EE0 +% 0xD0 + /uni1EDE /uni1EE2 /Ugrave /Uacute + /Utilde /uni1EE6 /uni1EE4 /Uhorn + /uni1EEA /uni1EE8 /uni1EEE /uni1EEC + /uni1EF0 /Ygrave /Yacute /uni1EF8 +% 0xE0 + /uni1ECB /ograve /oacute /otilde + /uni1ECF /uni1ECD /ocircumflex /uni1ED3 + /uni1ED1 /uni1ED7 /uni1ED5 /uni1ED9 + /ohorn /uni1EDD /uni1EDB /uni1EE1 +% 0xF0 + /uni1EDF /uni1EE3 /ugrave /uacute + /utilde /uni1EE7 /uni1EE5 /uhorn + /uni1EEB /uni1EE9 /uni1EEF /uni1EED + /uni1EF1 /ygrave /yacute /uni1EF9 +] def + +% end of t5.enc + + +File: fontname.info, Node: qx, Next: texmext, Prev: t5, Up: Encodings + +B.6 `qx.enc' +============ + +From GUST. + +% ========================================================================= + QX LAYOUT ver. 0.06 +% ========================================================================= +Release date: 24 August 2003 +Original URL: ftp://bop.eps.gda.pl/pub/qx/ +E-mail: JNSteam at gust.org.pl + +QX Layout is, actually, a pair of encodings: one for TeX and one for GUI +systems. QX layout has been worked out by the Polish TeX Users Group GUST as +a difficult compromise between needs and abilities. The character set of the +QX layout is expected to suffice for the typesetting of texts (using TeX) in +most of European languages. + +QX Encoding for TeX is based on EC (Cork Encoding) with a few characters +exchanged. E.g., gbreve, Gbreve, uring, and Uring, which can be obtained by +superimposing of an accent, are replaced by Lithuanian iogonek, Iogonek, +uogonek, and Uogonek, respectively, which should not be assembled form +separate elements; QX Encoding for GUI systems is a variant of the Code Page +1250 (and also includes Lithuanian characters with ogonek). + +After a long debate, we decided (in ver. 0.04 of the QX layout) to replace +omnipresent but actually nonexistent [tT]cedilla by Romanian [tT]commaaccent; +censequently, Turkish [sS]cedilla was replaced by [sS]commaaccent (still we +would recommend to keep the glyph of a [sS]cedilla character in a font). + +Under the pressure from euro currency funs, we included moreover an +Euro symbol (in ver. 0.05 of the QX layout). We assigned the slot +128 for it complying with Microsoft proposal for non-cyrillic fonts +(http://www.microsoft.com/typography/faq/faq12.htm): + + The symbol has been added to the following codepages at position + '0x80'; 1250 Eastern European, 1252 Western, 1253 Greek, 1254 Turkish, + 1257 Baltic, 1255 Hebrew, 1256 Arabic, 1258 Vietnamese, 874 Thai. + In 1251 Cyrillic the symbol will be added at position '0x88'. + +Therefore, we had to do something with a Lithuanian Iogonek character that +previously had occupied this slot. We decided to remove Thorn (222, Tcedilla +in CP 1250) and thorn (254, tcedilla in CP 1250) characters from the Windows +QX layout (we recommend, as with [sS]cedilla characters, to keep the glyphs +in a font) and use the freed slots for Iogonek (previously 128) and iogonek +(previously 144, now free), respectively. The TeX QX layout, fortunately, had +had the slot 128 already free, hence there was no need for rearrangement. + +Finally, we decided to change the name of a (non-standard) ligature +fk to f_k, complying with Adobe recommendations contained in: +http://partners.adobe.com/asn/developer/typeforum/unicodegn.html + +Most recent change (24.08.2003, ver. 0.06) was the extension of +the character set by ligatures ij, IJ (available only in the TeX +encoding) and a punctuation mark threequartersemdash. + +Below you'll find the comparison of basic layouts for TeX and GUI systems +with QX ver. 0.06. + +% =========================================================================== +% COMPARISON OF TeX LAYOUTS +% =========================================================================== +% CODE CM EC PL QX ver. 0.06 +% =========================================================================== + 0 00 Gamma grave Gamma alpha + 1 01 Delta acute Delta Delta + 2 02 Theta circumflex Theta beta + 3 03 Lambda tilde Lambda delta + 4 04 Xi dieresis Xi pi + 5 05 Pi hungarumlaut Pi Pi + 6 06 Sigma ring Sigma Sigma + 7 07 Upsilon caron Upsilon mu + 8 08 Phi breve Phi ellipsis + 9 09 Psi macron Psi f_k + 10 0A Omega dotaccent Omega Omega + 11 0B ff cedilla ff ff + 12 0C fi ogonek fi fi + 13 0D fl quotesinglbase fl fl + 14 0E ffi guilsinglleft ffi ffi + 15 0F ffl guilsinglright ffl ffl + 16 10 dotlessi quotedblleft dotlessi dotlessi + 17 11 dotlessj quotedblright dotlessj dotlessj + 18 12 grave quotedblbase grave grave + 19 13 acute guillemotleft acute acute + 20 14 caron guillemotright caron caron + 21 15 breve endash breve breve + 22 16 macron emdash macron macron + 23 17 ring compoundwordmark ring ring + 24 18 cedilla perthousand cedilla cedilla + 25 19 germandbls dotlessi germandbls germandbls + 26 1A ae dotlessj ae ae + 27 1B oe ff oe oe + 28 1C oslash fi oslash oslash + 29 1D AE fl AE AE + 30 1E OE ffi OE OE + 31 1F Oslash ffl Oslash Oslash + 32 20 suppress visualspace ogonek space + 33 21 exclam exclam exclam exclam + 34 22 quotedblright quotedbl quotedblright quotedblright + 35 23 numbersign numbersign numbersign numbersign + 36 24 dollar dollar dollar dollar + 37 25 percent percent percent percent + 38 26 ampersand ampersand ampersand ampersand + 39 27 quoteright quoteright quoteright quoteright + 40 28 parenleft parenleft parenleft parenleft + 41 29 parenright parenright parenright parenright + 42 2A asterisk asterisk asterisk asterisk + 43 2B plus plus plus plus + 44 2C comma comma comma comma + 45 2D hyphen hyphen hyphen hyphen + 46 2E period period period period + 47 2F slash slash slash slash + 48 30 zero zero zero zero + 49 31 one one one one + 50 32 two two two two + 51 33 three three three three + 52 34 four four four four + 53 35 five five five five + 54 36 six six six six + 55 37 seven seven seven seven + 56 38 eight eight eight eight + 57 39 nine nine nine nine + 58 3A colon colon colon colon + 59 3B semicolon semicolon semicolon semicolon + 60 3C exclamdown less exclamdown exclamdown + 61 3D equal equal equal equal + 62 3E questiondown greater questiondown questiondown + 63 3F question question question question + 64 40 at at at at + 65 41 A A A A + 66 42 B B B B + 67 43 C C C C + 68 44 D D D D + 69 45 E E E E + 70 46 F F F F + 71 47 G G G G + 72 48 H H H H + 73 49 I I I I + 74 4A J J J J + 75 4B K K K K + 76 4C L L L L + 77 4D M M M M + 78 4E N N N N + 79 4F O O O O + 80 50 P P P P + 81 51 Q Q Q Q + 82 52 R R R R + 83 53 S S S S + 84 54 T T T T + 85 55 U U U U + 86 56 V V V V + 87 57 W W W W + 88 58 X X X X + 89 59 Y Y Y Y + 90 5A Z Z Z Z + 91 5B bracketleft bracketleft bracketleft bracketleft + 92 5C quotedblleft backslash quotedblleft quotedblleft + 93 5D bracketright bracketright bracketright bracketright + 94 5E circumflex asciicircum circumflex circumflex + 95 5F dotaccent underscore dotaccent dotaccent + 96 60 quoteleft quoteleft quoteleft quoteleft + 97 61 a a a a + 98 62 b b b b + 99 63 c c c c +100 64 d d d d +101 65 e e e e +102 66 f f f f +103 67 g g g g +104 68 h h h h +105 69 i i i i +106 6A j j j j +107 6B k k k k +108 6C l l l l +109 6D m m m m +110 6E n n n n +111 6F o o o o +112 70 p p p p +113 71 q q q q +114 72 r r r r +115 73 s s s s +116 74 t t t t +117 75 u u u u +118 76 v v v v +119 77 w w w w +120 78 x x x x +121 79 y y y y +122 7A z z z z +123 7B endash braceleft endash endash +124 7C emdash bar emdash emdash +125 7D hungarumlaut braceright hungarumlaut hungarumlaut +126 7E tilde asciitilde tilde tilde +127 7F dieresis hyphen dieresis dieresis +128 80 @ Abreve @ Euro +129 81 @ Aogonek Aogonek Aogonek +130 82 @ Cacute Cacute Cacute +131 83 @ Ccaron @ greater +132 84 @ Dcaron @ greaterequal +133 85 @ Ecaron @ approxequal +134 86 @ Eogonek Eogonek Eogonek +135 87 @ Gbreve @ Iogonek +136 88 @ Lacute @ less +137 89 @ Lquoteright @ lessequal +138 8A @ Lslash Lslash Lslash +139 8B @ Nacute Nacute Nacute +140 8C @ Ncaron @ asciitilde +141 8D @ Eng @ asciicircum +142 8E @ Ohungarumlaut @ ell +143 8F @ Racute @ dagger +144 90 @ Rcaron @ daggerdbl +145 91 @ Sacute Sacute Sacute +146 92 @ Scaron @ Scaron +147 93 @ Scedilla @ Scommaaccent +148 94 @ Tcaron @ degree +149 95 @ Tcedilla @ Tcommaaccent +150 96 @ Uhungarumlaut @ ogonek +151 97 @ Uring @ Uogonek +152 98 @ Ydieresis @ Ydieresis +153 99 @ Zacute Zacute Zacute +154 9A @ Zcaron @ Zcaron +155 9B @ Zdotaccent Zdotaccent Zdotaccent +156 9C @ IJ @ IJ +157 9D @ Idotaccent @ braceleft +158 9E @ dbar @ braceright +159 9F @ section @ section +160 A0 @ abreve @ @ +161 A1 @ aogonek aogonek aogonek +162 A2 @ cacute cacute cacute +163 A3 @ ccaron @ registered +164 A4 @ dquoteright @ copyright +165 A5 @ ecaron @ divide +166 A6 @ eogonek eogonek eogonek +167 A7 @ gbreve @ iogonek +168 A8 @ lacute @ minus +169 A9 @ lquoteright @ multiply +170 AA @ lslash lslash lslash +171 AB @ nacute nacute nacute +172 AC @ ncaron @ plusminus +173 AD @ eng @ infinity +174 AE @ ohungarumlaut guillemotleft guillemotleft +175 AF @ racute guillemotright guillemotright +176 B0 @ rcaron @ paragraph +177 B1 @ sacute sacute sacute +178 B2 @ scaron @ scaron +179 B3 @ scedilla @ scommaaccent +180 B4 @ tquoteright @ bullet +181 B5 @ tcedilla @ tcommaaccent +182 B6 @ uhungarumlaut @ threequartersemdash +183 B7 @ uring @ uogonek +184 B8 @ ydieresis @ ydieresis +185 B9 @ zacute zacute zacute +186 BA @ zcaron @ zcaron +187 BB @ zdotaccent zdotaccent zdotaccent +188 BC @ ij @ ij +189 BD @ exclamdown @ periodcentered +190 BE @ questiondown @ quotedbl +191 BF @ sterling @ quotesingle +192 C0 @ Agrave @ Agrave +193 C1 @ Aacute @ Aacute +194 C2 @ Acircumflex @ Acircumflex +195 C3 @ Atilde @ Atilde +196 C4 @ Adieresis @ Adieresis +197 C5 @ Aring @ Aring +198 C6 @ AE @ backslash +199 C7 @ Ccedilla @ Ccedilla +200 C8 @ Egrave @ Egrave +201 C9 @ Eacute @ Eacute +202 CA @ Ecircumflex @ Ecircumflex +203 CB @ Edieresis @ Edieresis +204 CC @ Igrave @ Igrave +205 CD @ Iacute @ Iacute +206 CE @ Icircumflex @ Icircumflex +207 CF @ Idieresis @ Idieresis +208 D0 @ Eth @ Eth +209 D1 @ Ntilde @ Ntilde +210 D2 @ Ograve @ Ograve +211 D3 @ Oacute Oacute Oacute +212 D4 @ Ocircumflex @ Ocircumflex +213 D5 @ Otilde @ Otilde +214 D6 @ Odieresis @ Odieresis +215 D7 @ OE @ currency +216 D8 @ Oslash @ perthousand +217 D9 @ Ugrave @ Ugrave +218 DA @ Uacute @ Uacute +219 DB @ Ucircumflex @ Ucircumflex +220 DC @ Udieresis @ Udieresis +221 DD @ Yacute @ Yacute +222 DE @ Thorn @ Thorn +223 DF @ Germandbls @ bar +224 E0 @ agrave @ agrave +225 E1 @ aacute @ aacute +226 E2 @ acircumflex @ acircumflex +227 E3 @ atilde @ atilde +228 E4 @ adieresis @ adieresis +229 E5 @ aring @ aring +230 E6 @ ae @ underscore +231 E7 @ ccedilla @ ccedilla +232 E8 @ egrave @ egrave +233 E9 @ eacute @ eacute +234 EA @ ecircumflex @ ecircumflex +235 EB @ edieresis @ edieresis +236 EC @ igrave @ igrave +237 ED @ iacute @ iacute +238 EE @ icircumflex @ icircumflex +239 EF @ idieresis @ idieresis +240 F0 @ eth @ eth +241 F1 @ ntilde @ ntilde +242 F2 @ ograve @ ograve +243 F3 @ oacute oacute oacute +244 F4 @ ocircumflex @ ocircumflex +245 F5 @ otilde @ otilde +246 F6 @ odieresis @ odieresis +247 F7 @ oe @ anglearc +248 F8 @ oslash @ diameter +249 F9 @ ugrave @ ugrave +250 FA @ uacute @ uacute +251 FB @ ucircumflex @ ucircumflex +252 FC @ udieresis @ udieresis +253 FD @ yacute @ yacute +254 FE @ thorn @ thorn +255 FF @ germandbls quotedblbase quotedblbase +% =========================================================================== + + +% ========================================================== +% COMPARISON OF LAYOUTS FOR GUI SYSTEMS +% ========================================================== +% CODE NEW ANSI (0--127) Macintosh QX ver. 0.06 +% + CODE PAGE 1250 PLEURO +% ========================================================== + 0 00 @ @ @ + 1 01 @ @ acute + 2 02 @ @ circumflex + 3 03 @ @ cedilla + 4 04 @ @ dieresis + 5 05 @ @ breve + 6 06 @ @ dotaccent + 7 07 @ @ macron + 8 08 @ @ ring + 9 09 @ @ @ + 10 0A @ @ hungarumlaut + 11 0B @ @ ogonek + 12 0C @ @ caron + 13 0D @ @ @ + 14 0E @ @ dotlessi + 15 0F @ @ dotlessj + 16 10 @ @ tilde + 17 11 @ @ ff + 18 12 @ @ ffi + 19 13 @ @ ffl + 20 14 @ @ f_k + 21 15 @ @ approxequal + 22 16 @ @ ell + 23 17 @ @ infinity + 24 18 @ @ alpha + 25 19 @ @ beta + 26 1A @ @ delta + 27 1B @ @ pi + 28 1C @ @ Delta + 29 1D @ @ Pi + 30 1E @ @ Sigma + 31 1F @ @ Omega + 32 20 space space space + 33 21 exclam exclam exclam + 34 22 quotedbl quotedbl quotedbl + 35 23 numbersign numbersign numbersign + 36 24 dollar dollar dollar + 37 25 percent percent percent + 38 26 ampersand ampersand ampersand + 39 27 quotesingle quotesingle quotesingle + 40 28 parenleft parenleft parenleft + 41 29 parenright parenright parenright + 42 2A asterisk asterisk asterisk + 43 2B plus plus plus + 44 2C comma comma comma + 45 2D hyphen hyphen hyphen + 46 2E period period period + 47 2F slash slash slash + 48 30 zero zero zero + 49 31 one one one + 50 32 two two two + 51 33 three three three + 52 34 four four four + 53 35 five five five + 54 36 six six six + 55 37 seven seven seven + 56 38 eight eight eight + 57 39 nine nine nine + 58 3A colon colon colon + 59 3B semicolon semicolon semicolon + 60 3C less less less + 61 3D equal equal equal + 62 3E greater greater greater + 63 3F question question question + 64 40 at at at + 65 41 A A A + 66 42 B B B + 67 43 C C C + 68 44 D D D + 69 45 E E E + 70 46 F F F + 71 47 G G G + 72 48 H H H + 73 49 I I I + 74 4A J J J + 75 4B K K K + 76 4C L L L + 77 4D M M M + 78 4E N N N + 79 4F O O O + 80 50 P P P + 81 51 Q Q Q + 82 52 R R R + 83 53 S S S + 84 54 T T T + 85 55 U U U + 86 56 V V V + 87 57 W W W + 88 58 X X X + 89 59 Y Y Y + 90 5A Z Z Z + 91 5B bracketleft bracketleft bracketleft + 92 5C backslash backslash backslash + 93 5D bracketright bracketright bracketright + 94 5E asciicircum asciicircum asciicircum + 95 5F underscore underscore underscore + 96 60 grave grave grave + 97 61 a a a + 98 62 b b b + 99 63 c c c +100 64 d d d +101 65 e e e +102 66 f f f +103 67 g g g +104 68 h h h +105 69 i i i +106 6A j j j +107 6B k k k +108 6C l l l +109 6D m m m +110 6E n n n +111 6F o o o +112 70 p p p +113 71 q q q +114 72 r r r +115 73 s s s +116 74 t t t +117 75 u u u +118 76 v v v +119 77 w w w +120 78 x x x +121 79 y y y +122 7A z z z +123 7B braceleft braceleft braceleft +124 7C bar bar bar +125 7D braceright braceright braceright +126 7E asciitilde asciitilde asciitilde +127 7F @ @ @ +128 80 Euro @ Euro +129 81 @ @ fi +130 82 quotesinglbase quotesinglbase fl +131 83 @ Ydieresis Ydieresis +132 84 quotedblbase quotedblbase quotedblbase +133 85 ellipsis ellipsis ellipsis +134 86 dagger dagger dagger +135 87 daggerdbl daggerdbl daggerdbl +136 88 @ Ecircumflex Ecircumflex +137 89 perthousand perthousand perthousand +138 8A Scaron Scaron Scaron +139 8B guilsinglleft guilsinglleft Scommaaccent +140 8C Sacute Sacute Sacute +141 8D Tcaron OE OE +142 8E Zcaron Zcaron Zcaron +143 8F Zacute Zacute Zacute +144 90 @ @ threequartersemdash +145 91 quoteleft quoteleft quoteleft +146 92 quoteright quoteright quoteright +147 93 quotedblleft quotedblleft quotedblleft +148 94 quotedblright quotedblright quotedblright +149 95 bullet bullet bullet +150 96 endash endash endash +151 97 emdash emdash emdash +152 98 @ ecircumflex ecircumflex +153 99 trademark trademark anglearc +154 9A scaron scaron scaron +155 9B guilsinglright guilsinglright scommaaccent +156 9C sacute sacute sacute +157 9D tquoteright oe oe +158 9E zcaron zcaron zcaron +159 9F zacute zacute zacute +160 A0 @ nbspace nbspace +161 A1 caron exclamdown exclamdown +162 A2 breve questiondown questiondown +163 A3 Lslash Lslash Lslash +164 A4 currency currency currency +165 A5 Aogonek Aogonek Aogonek +166 A6 brokenbar brokenbar diameter +167 A7 section section section +168 A8 dieresis dieresis Uogonek +169 A9 copyright copyright copyright +170 AA Scedilla AE AE +171 AB guillemotleft guillemotleft guillemotleft +172 AC logicalnot Ntilde Ntilde +173 AD hyphen minus minus +174 AE registered registered registered +175 AF Zdotaccent Zdotaccent Zdotaccent +176 B0 degree degree degree +177 B1 plusminus plusminus plusminus +178 B2 ogonek twosuperior lessequal +179 B3 lslash lslash lslash +180 B4 acute acute greaterequal +181 B5 mu mu mu +182 B6 paragraph paragraph paragraph +183 B7 periodcentered periodcentered periodcentered +184 B8 cedilla @ uogonek +185 B9 aogonek aogonek aogonek +186 BA scedilla ae ae +187 BB guillemotright guillemotright guillemotright +188 BC Lquoteright ntilde ntilde +189 BD hungarumlaut onehalf Tcommaaccent +190 BE lquoteright threequarters tcommaaccent +191 BF zdotaccent zdotaccent zdotaccent +192 C0 Racute Agrave Agrave +193 C1 Aacute Aacute Aacute +194 C2 Acircumflex Acircumflex Acircumflex +195 C3 Abreve Atilde Atilde +196 C4 Adieresis Adieresis Adieresis +197 C5 Lacute Aring Aring +198 C6 Cacute Cacute Cacute +199 C7 Ccedilla Ccedilla Ccedilla +200 C8 Ccaron Egrave Egrave +201 C9 Eacute Eacute Eacute +202 CA Eogonek Eogonek Eogonek +203 CB Edieresis Edieresis Edieresis +204 CC Ecaron Igrave Igrave +205 CD Iacute Iacute Iacute +206 CE Icircumflex Icircumflex Icircumflex +207 CF Dcaron Idieresis Idieresis +208 D0 Eth Eth Eth +209 D1 Nacute Nacute Nacute +210 D2 Ncaron Ograve Ograve +211 D3 Oacute Oacute Oacute +212 D4 Ocircumflex Ocircumflex Ocircumflex +213 D5 Ohungarumlaut Otilde Otilde +214 D6 Odieresis Odieresis Odieresis +215 D7 multiply multiply multiply +216 D8 Rcaron Oslash Oslash +217 D9 Uring Ugrave Ugrave +218 DA Uacute Uacute Uacute +219 DB Uhungarumlaut Ucircumflex Ucircumflex +220 DC Udieresis Udieresis Udieresis +221 DD Yacute Yacute Yacute +222 DE Tcedilla Thorn Iogonek +223 DF germandbls germandbls germandbls +224 E0 racute agrave agrave +225 E1 aacute aacute aacute +226 E2 acircumflex acircumflex acircumflex +227 E3 abreve atilde atilde +228 E4 adieresis adieresis adieresis +229 E5 lacute aring aring +230 E6 cacute cacute cacute +231 E7 ccedilla ccedilla ccedilla +232 E8 ccaron egrave egrave +233 E9 eacute eacute eacute +234 EA eogonek eogonek eogonek +235 EB edieresis edieresis edieresis +236 EC ecaron igrave igrave +237 ED iacute iacute iacute +238 EE icircumflex icircumflex icircumflex +239 EF dquoteright idieresis idieresis +240 F0 dbar eth eth +241 F1 nacute nacute nacute +242 F2 ncaron ograve ograve +243 F3 oacute oacute oacute +244 F4 ocircumflex ocircumflex ocircumflex +245 F5 ohungarumlaut otilde otilde +246 F6 odieresis odieresis odieresis +247 F7 divide divide divide +248 F8 rcaron oslash oslash +249 F9 uring ugrave ugrave +250 FA uacute uacute uacute +251 FB uhungarumlaut ucircumflex ucircumflex +252 FC udieresis udieresis udieresis +253 FD yacute yacute yacute +254 FE tcedilla thorn iogonek +255 FF dotaccent ydieresis ydieresis +% ========================================================== + +/encqxoosix[ +/alpha +/Delta +/beta +/delta +/pi +/Pi +/Sigma +/mu +/ellipsis +/f_k +/Omega +/ff +/fi +/fl +/ffi +/ffl +/dotlessi +/dotlessj +/grave +/acute +/caron +/breve +/macron +/ring +/cedilla +/germandbls +/ae +/oe +/oslash +/AE +/OE +/Oslash +/space +/exclam +/quotedblright +/numbersign +/dollar +/percent +/ampersand +/quoteright +/parenleft +/parenright +/asterisk +/plus +/comma +/hyphen +/period +/slash +/zero +/one +/two +/three +/four +/five +/six +/seven +/eight +/nine +/colon +/semicolon +/exclamdown +/equal +/questiondown +/question +/at +/A +/B +/C +/D +/E +/F +/G +/H +/I +/J +/K +/L +/M +/N +/O +/P +/Q +/R +/S +/T +/U +/V +/W +/X +/Y +/Z +/bracketleft +/quotedblleft +/bracketright +/circumflex +/dotaccent +/quoteleft +/a +/b +/c +/d +/e +/f +/g +/h +/i +/j +/k +/l +/m +/n +/o +/p +/q +/r +/s +/t +/u +/v +/w +/x +/y +/z +/endash +/emdash +/hungarumlaut +/tilde +/dieresis +/Euro +/Aogonek +/Cacute +/greater +/greaterequal +/approxequal +/Eogonek +/Iogonek +/less +/lessequal +/Lslash +/Nacute +/asciitilde +/asciicircum +/ell +/dagger +/daggerdbl +/Sacute +/Scaron +/Scommaaccent +/degree +/Tcommaaccent +/ogonek +/Uogonek +/Ydieresis +/Zacute +/Zcaron +/Zdotaccent +/IJ +/braceleft +/braceright +/section +/.notdef +/aogonek +/cacute +/registered +/copyright +/divide +/eogonek +/iogonek +/minus +/multiply +/lslash +/nacute +/plusminus +/infinity +/guillemotleft +/guillemotright +/paragraph +/sacute +/scaron +/scommaaccent +/bullet +/tcommaaccent +/threequartersemdash +/uogonek +/ydieresis +/zacute +/zcaron +/zdotaccent +/ij +/periodcentered +/quotedbl +/quotesingle +/Agrave +/Aacute +/Acircumflex +/Atilde +/Adieresis +/Aring +/backslash +/Ccedilla +/Egrave +/Eacute +/Ecircumflex +/Edieresis +/Igrave +/Iacute +/Icircumflex +/Idieresis +/Eth +/Ntilde +/Ograve +/Oacute +/Ocircumflex +/Otilde +/Odieresis +/currency +/perthousand +/Ugrave +/Uacute +/Ucircumflex +/Udieresis +/Yacute +/Thorn +/bar +/agrave +/aacute +/acircumflex +/atilde +/adieresis +/aring +/underscore +/ccedilla +/egrave +/eacute +/ecircumflex +/edieresis +/igrave +/iacute +/icircumflex +/idieresis +/eth +/ntilde +/ograve +/oacute +/ocircumflex +/otilde +/odieresis +/anglearc +/diameter +/ugrave +/uacute +/ucircumflex +/udieresis +/yacute +/thorn +/quotedblbase +] def + + +File: fontname.info, Node: texmext, Next: texmsym, Prev: qx, Up: Encodings + +B.7 `texmext.enc': TeX math extension encoding +============================================== + +% @psencodingfile{ +% author = "Donald Knuth", +% version = "1.0", +% date = "12jun05", +% filename = "texmext.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "TeX math extension encoding." +% } +% +% 12jun05 - add header. +% +% No ligatures or kerns. +% +/TeXMathExtensionEncoding [ % now 256 chars follow + +% 0x0 +/parenleftbig +/parenrightbig +/bracketleftbig +/bracketrightbig +/floorleftbig +/floorrightbig +/ceilingleftbig +/ceilingrightbig + +% 0x8 +/braceleftbig +/bracerightbig +/angbracketleftbig +/angbracketrightbig +/vextendsingle +/vextenddouble +/slashbig +/backslashbig + +% 0x10 +/parenleftBig +/parenrightBig +/parenleftbigg +/parenrightbigg +/bracketleftbigg +/bracketrightbigg +/floorleftbigg +/floorrightbigg + +% 0x18 +/ceilingleftbigg +/ceilingrightbigg +/braceleftbigg +/bracerightbigg +/angbracketleftbigg +/angbracketrightbigg +/slashbigg +/backslashbigg + +% 0x20 +/parenleftBigg +/parenrightBigg +/bracketleftBigg +/bracketrightBigg +/floorleftBigg +/floorrightBigg +/ceilingleftBigg +/ceilingrightBigg + +% 0x28 +/braceleftBigg +/bracerightBigg +/angbracketleftBigg +/angbracketrightBigg +/slashBigg +/backslashBigg +/slashBig +/backslashBig + +% 0x30 +/parenlefttp +/parenrighttp +/bracketlefttp +/bracketrighttp +/bracketleftbt +/bracketrightbt +/bracketleftex +/bracketrightex + +% 0x38 +/bracelefttp +/bracerighttp +/braceleftbt +/bracerightbt +/braceleftmid +/bracerightmid +/braceex +/arrowvertex + +% 0x40 +/parenleftbt +/parenrightbt +/parenleftex +/parenrightex +/angbracketleftBig +/angbracketrightBig +/unionsqtext +/unionsqdisplay + +% 0x48 +/contintegraltext +/contintegraldisplay +/circledottext +/circledotdisplay +/circleplustext +/circleplusdisplay +/circlemultiplytext +/circlemultiplydisplay + +% 0x50 +/summationtext +/producttext +/integraltext +/uniontext +/intersectiontext +/unionmultitext +/logicalandtext +/logicalortext + +% 0x58 +/summationdisplay +/productdisplay +/integraldisplay +/uniondisplay +/intersectiondisplay +/unionmultidisplay +/logicalanddisplay +/logicalordisplay + +% 0x60 +/coproducttext +/coproductdisplay +/hatwide +/hatwider +/hatwidest +/tildewide +/tildewider +/tildewidest + +% 0x68 +/bracketleftBig +/bracketrightBig +/floorleftBig +/floorrightBig +/ceilingleftBig +/ceilingrightBig +/braceleftBig +/bracerightBig + +% 0x70 +/radicalbig +/radicalBig +/radicalbigg +/radicalBigg +/radicalbt +/radicalvertex +/radicaltp +/arrowvertexdbl + +% 0x78 +/arrowtp +/arrowbt +/bracehtipdownleft +/bracehtipdownright +/bracehtipupleft +/bracehtipupright +/arrowdbltp +/arrowdblbt + +% Have to have 128 .notdef's now to fill things out. +% +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + + +File: fontname.info, Node: texmsym, Next: texmital, Prev: texmext, Up: Encodings + +B.8 `texmsym.enc': TeX math symbol encoding +=========================================== + +% @psencodingfile{ +% author = "Donald Knuth", +% version = "1.0", +% date = "12jun05", +% filename = "texmsym.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "TeX math symbols encoding." +% } +% 12jun05 - add header. +% +% No ligatures or kerns. +% +/TeXMathSymbolEncoding [ % now 256 chars follow +% 0x0 +/minus +/periodcentered +/multiply +/asteriskmath +/divide +/diamondmath +/plusminus +/minusplus + +% 0x8 +/circleplus +/circleminus +/circlemultiply +/circledivide +/circledot +/circlecopyrt +/openbullet +/bullet + +% 0x10 +/equivasymptotic +/equivalence +/reflexsubset +/reflexsuperset +/lessequal +/greaterequal +/precedesequal +/followsequal + +% 0x18 +/similar +/approxequal +/propersubset +/propersuperset +/lessmuch +/greatermuch +/precedes +/follows + +% 0x20 +/arrowleft +/arrowright +/arrowup +/arrowdown +/arrowboth +/arrownortheast +/arrowsoutheast +/similarequal + +% 0x28 +/arrowdblleft +/arrowdblright +/arrowdblup +/arrowdbldown +/arrowdblboth +/arrownorthwest +/arrowsouthwest +/proportional + +% 0x30 +/prime +/infinity +/element +/owner +/triangle +/triangleinv +/negationslash +/mapsto + +% 0x38 +/universal +/existential +/logicalnot +/emptyset +/Rfractur +/Ifractur +/latticetop +/perpendicular + +% 0x40 +/aleph +/A +/B +/C +/D +/E +/F +/G + +% 0x48 +/H +/I +/J +/K +/L +/M +/N +/O + +% 0x50 +/P +/Q +/R +/S +/T +/U +/V +/W + +% 0x58 +/X +/Y +/Z +/union +/intersection +/unionmulti +/logicaland +/logicalor + +% 0x60 +/turnstileleft +/turnstileright +/floorleft +/floorright +/ceilingleft +/ceilingright +/braceleft +/braceright + +% 0x68 +/angbracketleft +/angbracketright +/bar +/bardbl +/arrowbothv +/arrowdblbothv +/backslash +/wreathproduct + +% 0x70 +/radical +/coproduct +/nabla +/integral +/unionsq +/intersectionsq +/subsetsqequal +/supersetsqequal + +% 0x78 +/section +/dagger +/daggerdbl +/paragraph +/club +/diamond +/heart +/spade + +% Have to have 128 .notdef's now to fill things out. +% +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + + +File: fontname.info, Node: texmital, Next: texnansi, Prev: texmsym, Up: Encodings + +B.9 `texmital.enc': TeX math italic encoding +============================================ + +% @psencodingfile{ +% author = "Donald Knuth", +% version = "1.0", +% date = "12jun05", +% filename = "texmital.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "TeX math italic encoding." +% } +% +% 12jun05 - add header. +% +% No ligatures or kerns. +% +/TeXMathItalicEncoding [ % now 256 chars follow +% 0x0 +/Gamma +/Delta +/Theta +/Lambda +/Xi +/Pi +/Sigma +/Upsilon + +% 0x8 +/Phi +/Psi +/Omega +/alpha +/beta +/gamma +/delta +/epsilon1 + +% 0x10 +/zeta +/eta +/theta +/iota +/kappa +/lambda +/mu +/nu + +% 0x18 +/xi +/pi +/rho +/sigma +/tau +/upsilon +/phi +/chi + +% 0x20 +/psi +/omega +/epsilon +/theta1 +/pi1 +/rho1 +/sigma1 +/phi1 + +% 0x28 +/arrowlefttophalf +/arrowleftbothalf +/arrowrighttophalf +/arrowrightbothalf +/arrowhookleft +/arrowhookright +/triangleright +/triangleleft + +% 0x30 +/zerooldstyle +/oneoldstyle +/twooldstyle +/threeoldstyle +/fouroldstyle +/fiveoldstyle +/sixoldstyle +/sevenoldstyle + +% 0x38 +/eightoldstyle +/nineoldstyle +/period +/comma +/less +/slash +/greater +/star + +% 0x40 +/partialdiff +/A +/B +/C +/D +/E +/F +/G + +% 0x48 +/H +/I +/J +/K +/L +/M +/N +/O + +% 0x50 +/P +/Q +/R +/S +/T +/U +/V +/W + +% 0x58 +/X +/Y +/Z +/flat +/natural +/sharp +/slurbelow +/slurabove + +% 0x60 +/lscript +/a +/b +/c +/d +/e +/f +/g + +% 0x68 +/h +/i +/j +/k +/l +/m +/n +/o + +% 0x70 +/p +/q +/r +/s +/t +/u +/v +/w + +% 0x78 +/x +/y +/z +/dotlessi +/dotlessj +/weierstrass +/vector +/tie + +% Have to have 128 .notdef's now to fill things out. +% +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +] def + + +File: fontname.info, Node: texnansi, Next: texnansx, Prev: texmital, Up: Encodings + +B.10 `texnansi.enc' +=================== + +From Y&Y. + +% @psencodingfile{ +% author = "Y&Y, Inc.", +% version = "1.1", +% date = "1 December 1996", +% filename = "texnansi.enc", +% email = "help@YandY.com", +% address = "45 Walden Street // Concord, MA 01742, USA", +% codetable = "ISO/ASCII", +% checksum = "xx", +% docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX." +% } +% +% The idea is to have all 228 characters normally included in Type 1 text +% fonts (plus a few more) available for typesetting. This is effectively +% the character set in Adobe Standard Encoding, ISO Latin 1, plus a few more. +% +% Character code assignments were made as follows: +% +% (1) The character layout largely matches `ASCII' in the 32 -- 126 range, +% except for `circumflex' in 94 and `tilde' in 126, to match `TeX text' +% (`asciicircumflex' and `asciitilde' appear in 158 and 142 instead). +% +% (2) The character layout matches `Windows ANSI' in almost all places, +% except for `quoteright' in 39 and `quoteleft' in 96 to match ASCII +% (`quotesingle' and `grave' appear in 129 and 18 instead). +% +% (3) The character layout matches `TeX typewriter' used by CM text fonts +% in most places (except for discordant positions such as hungarumlaut +% (instead of braceright), dotaccent (instead of underscore) etc. +% +% (4) Remaining characters are assigned arbitrarily to the `control character' +% range (0 -- 31), avoiding 0, 9, 10 and 13 in case we meet dumb software +% - similarly one should really avoid 127 and 128 if possible. +% In addition, the 8 open slots in Windows ANSI between 128 and 159 are used. +% +% (5) Y&Y Lucida Bright includes some extra ligatures and such; ff, ffi, ffl, +% and `dotlessj,' these are included 11 -- 15, and 17. +% +% (6) Hyphen appears both at 45 and 173 for compatibility with both ASCII +% and Windows ANSI. +% +% (7) It doesn't really matter where ligatures appear (both real, such as ffi, +% and pseudo such as ---) since these should not be accessed directly, only +% via ligature information in the TFM file. +% +% SAMPLE USAGE (in `psfonts.map' file for DVIPS): +% +% lbr LucidaBright "TeXnANSIEncoding ReEncodeFont" <texnansi.enc <lbr.pfb +% +% This tells DVIPS that the font called `lbr' in TeX has PostScript +% FontName `LucidaBright.' It also asks DVIPS to expand the file `lbr.pfb' +% into PFA form, to include the attached `texnansi.enc' encoding vector, +% and to then actually reencode the font based on that encoding vector. +% +% Revised 1996 June 1 by adding second position for `fl' to avoid Acrobat bug. +% Revised 1996 June 1 by adding second position for `fraction' for same reason. +% Revised 1997 Oct 1 by adding cwm (used in boundary char TFM code) +% Revised 1998 Mar 1 by adding Unicode for Euro character +% +/TeXnANSIEncoding [ +/.notdef % 0 +/Euro % /Uni20AC 1 +/.notdef % 2 +/.notdef % 3 +/fraction % 4 +/dotaccent % 5 +/hungarumlaut % 6 +/ogonek % 7 +/fl % 8 +/.notdef % /fraction % 9 not used (see 4), backward compatability only +/cwm % 10 not used, except boundary char internally maybe +/ff % 11 +/fi % 12 +/.notdef % /fl % 13 not used (see 8), backward compatability only +/ffi % 14 +/ffl % 15 +/dotlessi % 16 +/dotlessj % 17 +/grave % 18 +/acute % 19 +/caron % 20 +/breve % 21 +/macron % 22 +/ring % 23 +/cedilla % 24 +/germandbls % 25 +/ae % 26 +/oe % 27 +/oslash % 28 +/AE % 29 +/OE % 30 +/Oslash % 31 +/space % 32 % /suppress in TeX text +/exclam % 33 +/quotedbl % 34 % /quotedblright in TeX text +/numbersign % 35 +/dollar % 36 +/percent % 37 +/ampersand % 38 +/quoteright % 39 % /quotesingle in ANSI +/parenleft % 40 +/parenright % 41 +/asterisk % 42 +/plus % 43 +/comma % 44 +/hyphen % 45 +/period % 46 +/slash % 47 +/zero % 48 +/one % 49 +/two % 50 +/three % 51 +/four % 52 +/five % 53 +/six % 54 +/seven % 55 +/eight % 56 +/nine % 57 +/colon % 58 +/semicolon % 59 +/less % 60 % /exclamdown in Tex text +/equal % 61 +/greater % 62 % /questiondown in TeX text +/question % 63 +/at % 64 +/A % 65 +/B % 66 +/C % 67 +/D % 68 +/E % 69 +/F % 70 +/G % 71 +/H % 72 +/I % 73 +/J % 74 +/K % 75 +/L % 76 +/M % 77 +/N % 78 +/O % 79 +/P % 80 +/Q % 81 +/R % 82 +/S % 83 +/T % 84 +/U % 85 +/V % 86 +/W % 87 +/X % 88 +/Y % 89 +/Z % 90 +/bracketleft % 91 +/backslash % 92 % /quotedblleft in TeX text +/bracketright % 93 +/circumflex % 94 % /asciicircum in ASCII +/underscore % 95 % /dotaccent in TeX text +/quoteleft % 96 % /grave accent in ANSI +/a % 97 +/b % 98 +/c % 99 +/d % 100 +/e % 101 +/f % 102 +/g % 103 +/h % 104 +/i % 105 +/j % 106 +/k % 107 +/l % 108 +/m % 109 +/n % 110 +/o % 111 +/p % 112 +/q % 113 +/r % 114 +/s % 115 +/t % 116 +/u % 117 +/v % 118 +/w % 119 +/x % 120 +/y % 121 +/z % 122 +/braceleft % 123 % /endash in TeX text +/bar % 124 % /emdash in TeX test +/braceright % 125 % /hungarumlaut in TeX text +/tilde % 126 % /asciitilde in ASCII +/dieresis % 127 not used (see 168), use higher up instead +/Lslash % 128 this position is unfortunate, but now too late to fix +/quotesingle % 129 +/quotesinglbase % 130 +/florin % 131 +/quotedblbase % 132 +/ellipsis % 133 +/dagger % 134 +/daggerdbl % 135 +/circumflex % 136 +/perthousand % 137 +/Scaron % 138 +/guilsinglleft % 139 +/OE % 140 +/Zcaron % 141 +/asciicircum % 142 +/minus % 143 +/lslash % 144 +/quoteleft % 145 +/quoteright % 146 +/quotedblleft % 147 +/quotedblright % 148 +/bullet % 149 +/endash % 150 +/emdash % 151 +/tilde % 152 +/trademark % 153 +/scaron % 154 +/guilsinglright % 155 +/oe % 156 +/zcaron % 157 +/asciitilde % 158 +/Ydieresis % 159 +/nbspace % 160 % /space (no break space) +/exclamdown % 161 +/cent % 162 +/sterling % 163 +/currency % 164 +/yen % 165 +/brokenbar % 166 +/section % 167 +/dieresis % 168 +/copyright % 169 +/ordfeminine % 170 +/guillemotleft % 171 +/logicalnot % 172 +/sfthyphen % 173 % /hyphen (hanging hyphen) +/registered % 174 +/macron % 175 +/degree % 176 +/plusminus % 177 +/twosuperior % 178 +/threesuperior % 179 +/acute % 180 +/mu % 181 +/paragraph % 182 +/periodcentered % 183 +/cedilla % 184 +/onesuperior % 185 +/ordmasculine % 186 +/guillemotright % 187 +/onequarter % 188 +/onehalf % 189 +/threequarters % 190 +/questiondown % 191 +/Agrave % 192 +/Aacute % 193 +/Acircumflex % 194 +/Atilde % 195 +/Adieresis % 196 +/Aring % 197 +/AE % 198 +/Ccedilla % 199 +/Egrave % 200 +/Eacute % 201 +/Ecircumflex % 202 +/Edieresis % 203 +/Igrave % 204 +/Iacute % 205 +/Icircumflex % 206 +/Idieresis % 207 +/Eth % 208 +/Ntilde % 209 +/Ograve % 210 +/Oacute % 211 +/Ocircumflex % 212 +/Otilde % 213 +/Odieresis % 214 +/multiply % 215 % OE in T1 +/Oslash % 216 +/Ugrave % 217 +/Uacute % 218 +/Ucircumflex % 219 +/Udieresis % 220 +/Yacute % 221 +/Thorn % 222 +/germandbls % 223 +/agrave % 224 +/aacute % 225 +/acircumflex % 226 +/atilde % 227 +/adieresis % 228 +/aring % 229 +/ae % 230 +/ccedilla % 231 +/egrave % 232 +/eacute % 233 +/ecircumflex % 234 +/edieresis % 235 +/igrave % 236 +/iacute % 237 +/icircumflex % 238 +/idieresis % 239 +/eth % 240 +/ntilde % 241 +/ograve % 242 +/oacute % 243 +/ocircumflex % 244 +/otilde % 245 +/odieresis % 246 +/divide % 247 % oe in T1 +/oslash % 248 +/ugrave % 249 +/uacute % 250 +/ucircumflex % 251 +/udieresis % 252 +/yacute % 253 +/thorn % 254 +/ydieresis % 255 % germandbls in T1 +] def + + +File: fontname.info, Node: texnansx, Next: xl2, Prev: texnansi, Up: Encodings + +B.11 `texnansx.enc' +=================== + +From Y&Y. `texnansi' without repeats. + +% @psencodingfile{ +% author = "Y&Y, Inc.", +% version = "1.2", +% date = "1 December 1998", +% filename = "texnansix.enc", +% email = "support@YandY.com", +% address = "45 Walden Street // Concord, MA 01742, USA", +% codetable = "ISO/ASCII", +% checksum = "xx", +% docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX." +% } +% +% MODIFIED FOR AFM2TFM to avoid repeated encodings... +% +% +/TeXnANSIEncoding [ +/.notdef % 0 +/Uni20AC % /Euro 1 +/.notdef % 2 +/.notdef % 3 +/fraction % 4 +/dotaccent % 5 +/hungarumlaut % 6 +/ogonek % 7 +/fl % 8 +/.notdef % /fraction % 9 not used (see 4), backward compatability only +/cwm % 10 not used, except boundary char internally maybe +/ff % 11 +/fi % 12 +/.notdef % /fl % 13 not used (see 8), backward compatability only +/ffi % 14 +/ffl % 15 +/dotlessi % 16 +/dotlessj % 17 +/grave % 18 +/acute % 19 +/caron % 20 +/breve % 21 +/macron % 22 +/ring % 23 +/cedilla % 24 +/germandbls % 25 +/ae % 26 +/oe % 27 +/oslash % 28 +/AE % 29 +/OE % 30 +/Oslash % 31 +/space % 32 % /suppress in TeX text +/exclam % 33 +/quotedbl % 34 % /quotedblright in TeX text +/numbersign % 35 +/dollar % 36 +/percent % 37 +/ampersand % 38 +/quoteright % 39 % /quotesingle in ANSI +/parenleft % 40 +/parenright % 41 +/asterisk % 42 +/plus % 43 +/comma % 44 +/hyphen % 45 +/period % 46 +/slash % 47 +/zero % 48 +/one % 49 +/two % 50 +/three % 51 +/four % 52 +/five % 53 +/six % 54 +/seven % 55 +/eight % 56 +/nine % 57 +/colon % 58 +/semicolon % 59 +/less % 60 % /exclamdown in Tex text +/equal % 61 +/greater % 62 % /questiondown in TeX text +/question % 63 +/at % 64 +/A % 65 +/B % 66 +/C % 67 +/D % 68 +/E % 69 +/F % 70 +/G % 71 +/H % 72 +/I % 73 +/J % 74 +/K % 75 +/L % 76 +/M % 77 +/N % 78 +/O % 79 +/P % 80 +/Q % 81 +/R % 82 +/S % 83 +/T % 84 +/U % 85 +/V % 86 +/W % 87 +/X % 88 +/Y % 89 +/Z % 90 +/bracketleft % 91 +/backslash % 92 % /quotedblleft in TeX text +/bracketright % 93 +/circumflex % 94 % /asciicircum in ASCII +/underscore % 95 % /dotaccent in TeX text +/quoteleft % 96 % /grave accent in ANSI +/a % 97 +/b % 98 +/c % 99 +/d % 100 +/e % 101 +/f % 102 +/g % 103 +/h % 104 +/i % 105 +/j % 106 +/k % 107 +/l % 108 +/m % 109 +/n % 110 +/o % 111 +/p % 112 +/q % 113 +/r % 114 +/s % 115 +/t % 116 +/u % 117 +/v % 118 +/w % 119 +/x % 120 +/y % 121 +/z % 122 +/braceleft % 123 % /endash in TeX text +/bar % 124 % /emdash in TeX test +/braceright % 125 % /hungarumlaut in TeX text +/tilde % 126 % /asciitilde in ASCII +/dieresis % 127 not used (see 168), use higher up instead +/Lslash % 128 this position is unfortunate, but now too late to fix +/quotesingle % 129 +/quotesinglbase % 130 +/florin % 131 +/quotedblbase % 132 +/ellipsis % 133 +/dagger % 134 +/daggerdbl % 135 +/.notdef % /circumflex % 136 +/perthousand % 137 +/Scaron % 138 +/guilsinglleft % 139 +/.notdef % /OE % 140 +/Zcaron % 141 +/asciicircum % 142 +/minus % 143 +/lslash % 144 +/.notdef % /quoteleft % 145 +/.notdef % /quoteright % 146 +/quotedblleft % 147 +/quotedblright % 148 +/bullet % 149 +/endash % 150 +/emdash % 151 +/.notdef % /tilde % 152 +/trademark % 153 +/scaron % 154 +/guilsinglright % 155 +/.notdef % /oe % 156 +/zcaron % 157 +/asciitilde % 158 +/Ydieresis % 159 +/nbspace % 160 % /space (no break space) +/exclamdown % 161 +/cent % 162 +/sterling % 163 +/currency % 164 +/yen % 165 +/brokenbar % 166 +/section % 167 +/.notdef % /dieresis % 168 +/copyright % 169 +/ordfeminine % 170 +/guillemotleft % 171 +/logicalnot % 172 +/sfthyphen % 173 % /hyphen (hanging hyphen) +/registered % 174 +/.notdef % /macron % 175 +/degree % 176 +/plusminus % 177 +/twosuperior % 178 +/threesuperior % 179 +/.notdef % /acute % 180 +/mu % 181 +/paragraph % 182 +/periodcentered % 183 +/.notdef % /cedilla % 184 +/onesuperior % 185 +/ordmasculine % 186 +/guillemotright % 187 +/onequarter % 188 +/onehalf % 189 +/threequarters % 190 +/questiondown % 191 +/Agrave % 192 +/Aacute % 193 +/Acircumflex % 194 +/Atilde % 195 +/Adieresis % 196 +/Aring % 197 +/.notdef % /AE % 198 +/Ccedilla % 199 +/Egrave % 200 +/Eacute % 201 +/Ecircumflex % 202 +/Edieresis % 203 +/Igrave % 204 +/Iacute % 205 +/Icircumflex % 206 +/Idieresis % 207 +/Eth % 208 +/Ntilde % 209 +/Ograve % 210 +/Oacute % 211 +/Ocircumflex % 212 +/Otilde % 213 +/Odieresis % 214 +/multiply % 215 % OE in T1 +/.notdef % /Oslash % 216 +/Ugrave % 217 +/Uacute % 218 +/Ucircumflex % 219 +/Udieresis % 220 +/Yacute % 221 +/Thorn % 222 +/.notdef % /germandbls % 223 +/agrave % 224 +/aacute % 225 +/acircumflex % 226 +/atilde % 227 +/adieresis % 228 +/aring % 229 +/.notdef % /ae % 230 +/ccedilla % 231 +/egrave % 232 +/eacute % 233 +/ecircumflex % 234 +/edieresis % 235 +/igrave % 236 +/iacute % 237 +/icircumflex % 238 +/idieresis % 239 +/eth % 240 +/ntilde % 241 +/ograve % 242 +/oacute % 243 +/ocircumflex % 244 +/otilde % 245 +/odieresis % 246 +/divide % 247 % oe in T1 +/.notdef % /oslash % 248 +/ugrave % 249 +/uacute % 250 +/ucircumflex % 251 +/udieresis % 252 +/yacute % 253 +/thorn % 254 +/ydieresis % 255 % germandbls in T1 +] def + + +File: fontname.info, Node: xl2, Next: xt2, Prev: texnansx, Up: Encodings + +B.12 `xl2.enc': OT1 + ISO Latin 2 extended +========================================== + +% @psencodingfile{ +% author = "Petr Olsak, Zdenek Wagner", +% date = "27aug05", +% filename = "xl2.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = " +% some of our (CSTUG- czech TeX Users Group) users want to support +% 8bit font coding such that: +% -- lower 7bit is exactly OT1 (but with differences imposed +% by DEK -- e.g. layout of cmr is different from cmtt) +% -- upper part is taken from ISO-Latin 2 (iso 8859-2), +% but some of empty positions are filled with useful characters +% usually available in type-1 font (permill sign etc.) +% " +% } +% +% 27aug05 - record Petr Olsak and Zdenek Wagner as the authors. +% 12jun05 - remove Texinfo @'s from LIGKERN's. +% +/XL2encoding [ +%%%%% '000 = "00 + /Gamma + /Delta + /Theta + /Lambda + /Xi + /Pi + /Sigma + /Upsilon +%%%%% '010 = "08 + /Phi + /Psi + /Omega + /ff + /fi + /fl + /ffi + /ffl +%%%%% '020 = "10 + /dotlessi + /dotlessj + /grave + /acute + /caron + /breve + /macron + /ring +%%%%% '030 = "18 + /cedilla + /germandbls + /ae + /oe + /oslash + /AE + /OE + /Oslash +%%%%% '040 = "20 + /.notdef + /exclam + /quotedblright + /numbersign + /dollar + /percent + /ampersand + /quoteright +%%%%% '050 = "28 + /parenleft + /parenright + /asterisk + /plus + /comma + /hyphen + /period + /slash +%%%%% '060 = "30 + /zero + /one + /two + /three + /four + /five + /six + /seven +%%%%% '070 = "38 + /eight + /nine + /colon + /semicolon + /exclamdown + /equal + /questiondown + /question +%%%%% '100 = "40 + /at + /A + /B + /C + /D + /E + /F + /G +%%%%% '110 = "48 + /H + /I + /J + /K + /L + /M + /N + /O +%%%%% '120 = "50 + /P + /Q + /R + /S + /T + /U + /V + /W +%%%%% '130 = "58 + /X + /Y + /Z + /bracketleft + /quotedblleft + /bracketright + /circumflex + /dotaccent +%%%%% '140 = "60 + /quoteleft + /a + /b + /c + /d + /e + /f + /g +%%%%% '150 = "68 + /h + /i + /j + /k + /l + /m + /n + /o +%%%%% '160 = "70 + /p + /q + /r + /s + /t + /u + /v + /w +%%%%% '170 = "78 + /x + /y + /z + /endash + /emdash + /hungarumlaut + /tilde + /dieresis +%%%%% '200 = "80 + /ellipsis + /dagger + /daggerdbl + /bullet + /sterling + /paragraph + /.notdef + /.notdef +%%%%% '210 = "88 + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /perthousand + /.notdef + /.notdef +%%%%% '220 = "90 + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef +%%%%% '230 = "98 + /Agrave + /.notdef + /.notdef + /.notdef + /hyphen + /ogonek + /guillemotleft + /guillemotright +%%%%% '240 = "A0 + /.notdef + /Aogonek + /breve + /Lslash + /currency + /Lcaron + /Sacute + /section +%%%%% '250 = "A8 + /dieresis + /Scaron + /Scedilla + /Tcaron + /Zacute + /.notdef + /Zcaron + /Zdotaccent +%%%%% '260 = "B0 + /ring + /aogonek + /cedilla + /lslash + /acute + /lcaron + /sacute + /caron +%%%%% '270 = "B8 + /agrave + /scaron + /scedilla + /tcaron + /zacute + /hungarumlaut + /zcaron + /zdotaccent +%%%%% '300 = "C0 + /Racute + /Aacute + /Acircumflex + /Abreve + /Adieresis + /Lacute + /Cacute + /Ccedilla +%%%%% '310 = "C8 + /Ccaron + /Eacute + /Eogonek + /Edieresis + /Ecaron + /Iacute + /Icircumflex + /Dcaron +%%%%% '320 = "D0 + /Eth + /Nacute + /Ncaron + /Oacute + /Ocircumflex + /Ohungarumlaut + /Odieresis + /multiply +%%%%% '330 = "D8 + /Rcaron + /Uring + /Uacute + /Uhungarumlaut + /Udieresis + /Yacute + /Togonek + /germandbls +%%%%% '340 = "E0 + /racute + /aacute + /acircumflex + /abreve + /adieresis + /lacute + /cacute + /ccedilla +%%%%% '350 = "E8 + /ccaron + /eacute + /eogonek + /edieresis + /ecaron + /iacute + /icircumflex + /dcaron +%%%%% '360 = "F0 + /eth + /nacute + /ncaron + /oacute + /ocircumflex + /ohungarumlaut + /odieresis + /divide +%%%%% '370 = "F8 + /rcaron + /uring + /uacute + /uhungarumlaut + /udieresis + /yacute + /quotedblbase + /quotedblleft +] def + +% LIGKERN hyphen hyphen =: endash ; endash hyphen =: emdash ; +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN exclamdown exclamdown =: guillemotleft ; +% frenchdblquotes +% LIGKERN questiondown questiondown =: guillemotright ; +% csquoteleft +% LIGKERN comma comma =: quotedblbase ; +% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; +% LIGKERN question {} quoteleft ; exclam {} quoteleft ; + + +File: fontname.info, Node: xt2, Prev: xl2, Up: Encodings + +B.13 `xt2.enc': typewriter OT1 + ISO Latin 2 extended +===================================================== + +% @psencodingfile{ +% author = "Petr Olsak, Zdenek Wagner", +% date = "27aug05", +% filename = "xt2.enc", +% license = "public domain", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "This is the typewriter version of xl2." +% } +% +% 27aug05 - record Petr Olsak and Zdenek Wagner as the authors. +% 12jun05 - remove Texinfo @'s from LIGKERN's. +% +/XT2encoding [ +%%%%% '000 = "00 + /Gamma + /Delta + /Theta + /Lambda + /Xi + /Pi + /Sigma + /Upsilon +%%%%% '010 = "08 + /Phi + /Psi + /Omega + /arrowup + /arrowdown + /quotesingle + /exclamdown + /questiondown +%%%%% '020 = "10 + /dotlessi + /dotlessj + /grave + /acute + /caron + /breve + /macron + /ring +%%%%% '030 = "18 + /cedilla + /germandbls + /ae + /oe + /oslash + /AE + /OE + /Oslash +%%%%% '040 = "20 + /.notdef + /exclam + /quotedblright + /numbersign + /dollar + /percent + /ampersand + /quoteright +%%%%% '050 = "28 + /parenleft + /parenright + /asterisk + /plus + /comma + /hyphen + /period + /slash +%%%%% '060 = "30 + /zero + /one + /two + /three + /four + /five + /six + /seven +%%%%% '070 = "38 + /eight + /nine + /colon + /semicolon + /less + /equal + /greater + /question +%%%%% '100 = "40 + /at + /A + /B + /C + /D + /E + /F + /G +%%%%% '110 = "48 + /H + /I + /J + /K + /L + /M + /N + /O +%%%%% '120 = "50 + /P + /Q + /R + /S + /T + /U + /V + /W +%%%%% '130 = "58 + /X + /Y + /Z + /bracketleft + /backslash + /bracketright + /circumflex + /underscore +%%%%% '140 = "60 + /quoteleft + /a + /b + /c + /d + /e + /f + /g +%%%%% '150 = "68 + /h + /i + /j + /k + /l + /m + /n + /o +%%%%% '160 = "70 + /p + /q + /r + /s + /t + /u + /v + /w +%%%%% '170 = "78 + /x + /y + /z + /braceleft + /bar + /braceright + /tilde + /dieresis +%%%%% '200 = "80 + /ellipsis + /dagger + /daggerdbl + /bullet + /sterling + /paragraph + /.notdef + /.notdef +%%%%% '210 = "88 + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /perthousand + /.notdef + /.notdef +%%%%% '220 = "90 + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef + /.notdef +%%%%% '230 = "98 + /Agrave + /.notdef + /.notdef + /.notdef + /hyphen + /ogonek + /guillemotleft + /guillemotright +%%%%% '240 = "A0 + /.notdef + /Aogonek + /breve + /Lslash + /currency + /Lcaron + /Sacute + /section +%%%%% '250 = "A8 + /dieresis + /Scaron + /Scedilla + /Tcaron + /Zacute + /.notdef + /Zcaron + /Zdotaccent +%%%%% '260 = "B0 + /ring + /aogonek + /cedilla + /lslash + /acute + /lcaron + /sacute + /caron +%%%%% '270 = "B8 + /agrave + /scaron + /scedilla + /tcaron + /zacute + /hungarumlaut + /zcaron + /zdotaccent +%%%%% '300 = "C0 + /Racute + /Aacute + /Acircumflex + /Abreve + /Adieresis + /Lacute + /Cacute + /Ccedilla +%%%%% '310 = "C8 + /Ccaron + /Eacute + /Eogonek + /Edieresis + /Ecaron + /Iacute + /Icircumflex + /Dcaron +%%%%% '320 = "D0 + /Eth + /Nacute + /Ncaron + /Oacute + /Ocircumflex + /Ohungarumlaut + /Odieresis + /multiply +%%%%% '330 = "D8 + /Rcaron + /Uring + /Uacute + /Uhungarumlaut + /Udieresis + /Yacute + /Togonek + /germandbls +%%%%% '340 = "E0 + /racute + /aacute + /acircumflex + /abreve + /adieresis + /lacute + /cacute + /ccedilla +%%%%% '350 = "E8 + /ccaron + /eacute + /eogonek + /edieresis + /ecaron + /iacute + /icircumflex + /dcaron +%%%%% '360 = "F0 + /eth + /nacute + /ncaron + /oacute + /ocircumflex + /ohungarumlaut + /odieresis + /divide +%%%%% '370 = "F8 + /rcaron + /uring + /uacute + /uhungarumlaut + /udieresis + /yacute + /quotedblbase + /quotedblleft +] def + +% LIGKERN quoteleft quoteleft =: quotedblleft ; +% LIGKERN quoteright quoteright =: quotedblright ; +% LIGKERN exclamdown exclamdown =: guillemotleft ; +% frenchdblquotes +% LIGKERN questiondown questiondown =: guillemotright ; +% csquoteleft +% LIGKERN comma comma =: quotedblbase ; +% LIGKERN space {} * ; * {} space ; zero {} * ; * {} zero ; +% LIGKERN one {} * ; * {} one ; two {} * ; * {} two ; +% LIGKERN three {} * ; * {} three ; four {} * ; * {} four ; +% LIGKERN five {} * ; * {} five ; six {} * ; * {} six ; +% LIGKERN seven {} * ; * {} seven ; eight {} * ; * {} eight ; +% LIGKERN nine {} * ; * {} nine ; +% LIGKERN question {} quoteleft ; exclam {} quoteleft ; +% LIGKERN f {} f ; f {} i ; f {} l ; + + +File: fontname.info, Node: Font legalities, Next: General index, Prev: Encodings, Up: Top + +Appendix C Font legalities +************************** + +This section owes a great deal to Charles Bigelow (co-designer with Kris +Holmes of the Lucida typeface family, among others), who has generously +answered our many queries about fonts and the law around the world with +remarkable patience and understanding. (But he is naturally not +responsible for any errors here, much less our opinions.) + + Fonts have always been treated rather strangely under the law, as +befits their rather strange nature: letterforms are indivisibly both +_useful_ and _artistic_. In most countries--in all countries until +recently--utility has taken precedence; i.e., it has been legal to copy +fonts without permission or fee. + + In any case, to the best of my knowledge, the situation in those +countries which have adopted any sort of typeface protection is as +follows. This was originally written in the early 1990's; these days, +the situation is probably different, due to widespread adoption of +software patents, among other things, but I lack specific information +to include. + +United States + Typeface designs can be patented, but not copyrighted. Only a few + designs have been patented. (Lucida and Stone are the only ones I + know of. I don't know what the grounds were for patenting Stone, + but Lucida had some novel features in its design which make it + reasonable to patent, given the acceptance of the patent system in + the first place.) + + Particular programs which instantiate a font can be copyrighted + just as any other computer program can. This is arguably wrong, + since font programs are nothing but a description of the shapes, + possibly with some simple hints, and there's only one basic way to + describe the shapes in any given language. Thus, the creativity + lies in making the shape right, not in making the computer program + right, so it would seem that to be consistent, the copyright laws + should protect the design, not the program--the opposite of the + current situation. + +Germany + Typeface designs have been copyrightable as original works of art + since 1981. As a result, many (perhaps most) designs have been + copyrighted there. The law is not retroactive, but German courts + have upheld the intellectual property rights of designers of + earlier fonts as well: In one case the heirs of Paul Renner + (designer of Futura) won a suit against the Bauer foundry for + arbitrarily discontinuing a portion of their royalties. + +England + A copyright law passed in 1989 covers typeface designs first + published in England (or published in Britain within 30 days of + its publication elsewhere), and it _is_ retroactive. It's unclear + how far back the law extends, but Times Roman, designed in the + late 1920's and 1930's by Stanley Morison is probably covered. + This does not mean GNU (for example) cannot have a Times Roman; it + just means we cannot start with an English version, as the law + does not forbid importing foreign versions of English typefaces. + +France + The Romain du Roi typeface designed by Philippe Grandjean in 1702 + for the French royal family is protected, and perhaps other such + "royal" designs. There is no protection for designs in general. + + + In 1973 the international Vienna treaty on typeface design protection +was proposed. France ratified it in 1974 or 1975, and Germany in 1981. +The English law might constitute ratification, but this has not been +settled. In any case, since at least four countries have to ratify it +before it takes effect (and even then it takes effect only in those +countries which ratify it), it is still of no consequence for now. + + +File: fontname.info, Node: General index, Prev: Font legalities, Up: Top + +General index +************* + + +* Menu: + +* 35 standard PostScript fonts: Standard PostScript fonts. + (line 6) +* 7-bit encodings: Variants. (line 44) +* 8-bit encodings: Variants. (line 44) +* 8a.enc: 8a. (line 6) +* 8r.enc: 8r. (line 6) +* 9s variant: Variants. (line 44) +* Adobe standard encoding: 8a. (line 6) +* adobe.map: Adobe fonts. (line 6) +* Afm2tfm encoding: Variants. (line 67) +* apple.map: Apple fonts. (line 6) +* attribution of fonts, missing: Suppliers. (line 19) +* automatic expansion: Widths. (line 13) +* Avant Garde: Suppliers. (line 9) +* base encoding, for TeX: 8r. (line 6) +* Beebe, Nelson: History. (line 30) +* Beeton, Barbara: History. (line 30) +* Bernstein, Rocky: History. (line 30) +* Bigelow, Charles: Font legalities. (line 6) +* bitstrea.map: Bitstream fonts. (line 6) +* bizarre font names: Suppliers. (line 31) +* Bouche, Thierry: History. (line 30) +* bright variant: Variants. (line 28) +* bugs, reporting: Introduction. (line 12) +* category codes: Long naming scheme. (line 34) +* CD-ROM distribution: Filenames for fonts. (line 6) +* character scaling, automatic: Widths. (line 13) +* compression: Widths. (line 6) +* contributors: History. (line 30) +* copyright on fonts: Font legalities. (line 6) +* Cork encoding: cork. (line 6) +* cork.enc: cork. (line 6) +* Cugley, Damian: History. (line 30) +* Cyrillic encodings: Variants. (line 44) +* Cyrillic fonts: Variants. (line 86) +* design size specification: Filenames for fonts. (line 40) +* distribution: Introduction. (line 16) +* DOS filesystems: Filenames for fonts. (line 6) +* dtc.map: DTC fonts. (line 6) +* Dviljk translator: References. (line 31) +* Dvips encoding: dvips. (line 6) +* Dvips translator: References. (line 24) +* dvips.enc: dvips. (line 6) +* EC encoding: cork. (line 6) +* eight-character limitation: Filenames for fonts. (line 6) +* encoding files: Introduction. (line 16) +* encoding vectors: Encodings. (line 6) +* encoding, Dvips: dvips. (line 6) +* encoding, T5: t5. (line 6) +* encodings, Adobe standard: 8a. (line 6) +* encodings, Cork: cork. (line 6) +* encodings, EC: cork. (line 6) +* encodings, qx: qx. (line 6) +* encodings, TeX base: 8r. (line 6) +* encodings, TeX Latin 1: cork. (line 6) +* encodings, TeX math italic: texmital. (line 6) +* encodings, TeX math symbol <1>: texmsym. (line 6) +* encodings, TeX math symbol: texmext. (line 6) +* encodings, texnansi: texnansi. (line 6) +* encodings, texnansx: texnansx. (line 6) +* encodings, unspecified: Variants. (line 67) +* England, font design protection law: Font legalities. (line 52) +* Ertner, Vincent: URW fonts. (line 6) +* escape for nonstandard names: Suppliers. (line 31) +* expansion: Widths. (line 6) +* expert encoding: Variants. (line 127) +* expertised encodings: Variants. (line 44) +* expertised font: Variants. (line 127) +* extension, TeX math encoding: texmext. (line 6) +* fax variant: Variants. (line 28) +* filenames, basics: Filenames for fonts. (line 11) +* font copyrighting: Font legalities. (line 6) +* font scaling: Filenames for fonts. (line 40) +* font_coding_scheme: Long naming scheme. (line 30) +* Fontinst distribution: References. (line 20) +* FontName: Typefaces. (line 49) +* fontname mapping file: Name mapping file. (line 6) +* Fontname version 2: History. (line 14) +* foundries: Suppliers. (line 6) +* France, font design protection law: Font legalities. (line 62) +* Futura: Font legalities. (line 43) +* Garamond, versions of: Typefaces. (line 16) +* Germany, font design protection law: Font legalities. (line 43) +* Grandjean, Philippe: Font legalities. (line 62) +* Greek fonts: Variants. (line 86) +* hexadecimal design size: Filenames for fonts. (line 40) +* history: History. (line 6) +* Holmes, Kris: Font legalities. (line 6) +* Horn, Berthol: History. (line 30) +* individual font designers: Suppliers. (line 19) +* informal variant: Variants. (line 102) +* introduction: Introduction. (line 6) +* ISO 9660: Filenames for fonts. (line 6) +* ISO Latin 2 extended and typewriter, TeX encoding: xt2. (line 6) +* ISO Latin 2 extended, TeX encoding: xl2. (line 6) +* italic, TeX math encoding: texmital. (line 6) +* itc.map: ITC fonts. (line 6) +* Jeffrey, Alan: History. (line 30) +* Knuth, Donald E.: Name mapping file. (line 28) +* Lang, Russell: History. (line 30) +* LaserJet 4 fonts: Variants. (line 67) +* legalisms: Font legalities. (line 6) +* letterspacing: Variants. (line 17) +* ligatures and encodings: Variants. (line 53) +* limitations: Filenames for fonts. (line 6) +* linotype.map: Linotype fonts. (line 6) +* long names: Long names. (line 6) +* long naming scheme: Long naming scheme. (line 6) +* lslash: Variants. (line 53) +* Lslash: Variants. (line 53) +* Lubalin, Herb: Suppliers. (line 9) +* Lucida Bright: 8r. (line 6) +* Lucida, protection of: Font legalities. (line 25) +* MacKay, Pierre: History. (line 30) +* mapping file: Name mapping file. (line 6) +* mapping files: Introduction. (line 16) +* math extension, TeX encoding: texmext. (line 6) +* math italic, TeX encoding: texmital. (line 6) +* math symbol, TeX encoding: texmsym. (line 6) +* math variants: Variants. (line 96) +* Mittelbach, Frank <1>: Variants. (line 117) +* Mittelbach, Frank <2>: Filenames for fonts. (line 40) +* Mittelbach, Frank: History. (line 6) +* modes.mf: References. (line 14) +* monotype.map: Monotype fonts. (line 6) +* Morison, Stanley: Font legalities. (line 52) +* multiple variants: Variants. (line 9) +* nonstandard names, escape for: Suppliers. (line 31) +* patenting of fonts: Font legalities. (line 6) +* phonetic encodings: Variants. (line 44) +* pi fonts: Typefaces. (line 42) +* PostScript encoding vectors: Encodings. (line 6) +* PostScript fonts, standard: Standard PostScript fonts. + (line 6) +* PSfonts distribution: References. (line 17) +* qx encoding: qx. (line 6) +* qx.enc: qx. (line 6) +* Rahtz, Sebastian: History. (line 30) +* raw fonts: Suppliers. (line 25) +* references: References. (line 6) +* related files: References. (line 6) +* Renner, Paul: Font legalities. (line 43) +* reporting bugs: Introduction. (line 12) +* Rivlin, Jean: History. (line 30) +* Rokicki, Tom: History. (line 30) +* romain du roi: Font legalities. (line 62) +* sans variant: Variants. (line 117) +* Schoepf, Rainer: History. (line 6) +* schoolbook variant: Variants. (line 102) +* scripts: Variants. (line 86) +* semisans variant: Variants. (line 28) +* semiserif variant: Variants. (line 28) +* small caps fonts: Variants. (line 17) +* small foundries: Suppliers. (line 19) +* Southall, Richard: References. (line 34) +* standard PostScript fonts: Standard PostScript fonts. + (line 6) +* Stone Informal: Variants. (line 102) +* Stone, protection of: Font legalities. (line 25) +* SuperFont: Variants. (line 44) +* supplier.map: Suppliers. (line 34) +* suppliers: Suppliers. (line 6) +* symbol, TeX math encoding: texmsym. (line 6) +* T1.etx: Variants. (line 53) +* T5 encoding: t5. (line 6) +* t5.enc: t5. (line 6) +* TDS standard: References. (line 8) +* terminology: References. (line 34) +* TeX base encoding: 8r. (line 6) +* TeX Directory Structure standard: References. (line 8) +* TeX Latin 1 encoding: cork. (line 6) +* TeX math extension encoding: texmext. (line 6) +* TeX math italic encoding: texmital. (line 6) +* TeX math symbol encoding: texmsym. (line 6) +* tex-fonts@tug.org: Introduction. (line 12) +* texfonts.map: Name mapping file. (line 13) +* texmext.enc: texmext. (line 6) +* texmital.enc: texmital. (line 6) +* texmsym.enc: texmsym. (line 6) +* texnansi encoding: texnansi. (line 6) +* texnansi.enc: texnansi. (line 6) +* texnansx encoding: texnansx. (line 6) +* texnansx.enc: texnansx. (line 6) +* Times Roman, protection of: Font legalities. (line 52) +* type foundries: Suppliers. (line 6) +* typeface design protection: Font legalities. (line 6) +* typeface.map: Typefaces. (line 49) +* typefaces: Typefaces. (line 6) +* typewriter variant: Variants. (line 117) +* unattributed fonts: Suppliers. (line 19) +* United States, font design protection law: Font legalities. (line 25) +* URW fonts: URW fonts. (line 6) +* urw.map: URW fonts. (line 34) +* utilities: Introduction. (line 16) +* variant.map: Variants. (line 132) +* variants: Variants. (line 6) +* Vienna treaty: Font legalities. (line 68) +* Vietnamese encoding: t5. (line 6) +* weight: Weights. (line 6) +* weight.map: Weights. (line 14) +* width.map: Widths. (line 22) +* widths: Widths. (line 6) +* Windows ANSI: 8r. (line 6) +* X Window System font names: Long naming scheme. (line 6) +* xl2.enc: xl2. (line 6) +* xt2.enc: xt2. (line 6) + + + +Tag Table: +Node: Top262 +Node: Introduction2039 +Node: History3106 +Node: References4921 +Node: Filenames for fonts6472 +Node: Suppliers8075 +Node: Typefaces10527 +Node: Weights33366 +Node: Variants34179 +Node: Widths44318 +Node: Long names45678 +Node: Name mapping file46237 +Node: Long naming scheme47815 +Node: Font name lists49571 +Node: Standard PostScript fonts50030 +Node: Adobe fonts51492 +Node: Apple fonts241472 +Node: Bitstream fonts241806 +Node: DTC fonts302570 +Node: ITC fonts303487 +Node: Linotype fonts349127 +Node: Monotype fonts605153 +Node: URW fonts691710 +Node: Encodings694909 +Node: 8a696787 +Node: 8r699286 +Node: cork704277 +Node: dvips708285 +Node: t5712093 +Node: qx720044 +Node: texmext761516 +Node: texmsym765372 +Node: texmital768553 +Node: texnansi771285 +Node: texnansx778364 +Node: xl2783343 +Node: xt2788330 +Node: Font legalities792957 +Node: General index796780 + +End Tag Table diff --git a/Master/texmf/doc/info/info-stnd.info b/Master/texmf/doc/info/info-stnd.info new file mode 100644 index 00000000000..f238b24f13a --- /dev/null +++ b/Master/texmf/doc/info/info-stnd.info @@ -0,0 +1,2620 @@ +This is info-stnd.info, produced by makeinfo version 4.7 from +info-stnd.texi. + + This manual is for GNU Info (version 4.7, 23 March 2004), a program +for viewing documents in Info format (usually created from Texinfo +source files). + + Copyright (C) 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003, +2004 Free Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.1 or any later version published by the Free Software + Foundation; with no Invariant Sections, with the Front-Cover texts + being "A GNU Manual," and with the Back-Cover Texts as in (a) + below. A copy of the license is included in the section entitled + "GNU Free Documentation License." + + (a) The FSF's Back-Cover Text is: "You have freedom to copy and + modify this GNU Manual, like GNU software. Copies published by + the Free Software Foundation raise funds for GNU development." + +INFO-DIR-SECTION Texinfo documentation system +START-INFO-DIR-ENTRY +* info standalone: (info-stnd). Read Info documents without Emacs. +* infokey: (info-stnd)Invoking infokey. Compile Info customizations. +END-INFO-DIR-ENTRY + + +File: info-stnd.info, Node: Top, Next: What is Info, Up: (dir) + +GNU Info +******** + +This manual is for GNU Info (version 4.7, 23 March 2004), a program for +viewing documents in Info format (usually created from Texinfo source +files). + + Copyright (C) 1992, 1993, 1996, 1997, 1998, 1999, 2001, 2002, 2003, +2004 Free Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.1 or any later version published by the Free Software + Foundation; with no Invariant Sections, with the Front-Cover texts + being "A GNU Manual," and with the Back-Cover Texts as in (a) + below. A copy of the license is included in the section entitled + "GNU Free Documentation License." + + (a) The FSF's Back-Cover Text is: "You have freedom to copy and + modify this GNU Manual, like GNU software. Copies published by + the Free Software Foundation raise funds for GNU development." + + This documentation is different from the documentation for the Info +reader that is part of GNU Emacs. If you do not know how to use Info, +but have a working Info reader, you should read the Emacs documentation +first, as it includes more background information and a thorough +tutorial. + +* Menu: + +* What is Info:: What is Info? +* Invoking Info:: Options you can pass on the command line. +* Cursor Commands:: Commands which move the cursor within a node. +* Scrolling Commands:: Commands for reading the text within a node. +* Node Commands:: Commands for selecting a new node. +* Searching Commands:: Commands for searching an Info file. +* Xref Commands:: Commands for selecting cross references. +* Window Commands:: Commands which manipulate multiple windows. +* Printing Nodes:: How to print out the contents of a node. +* Miscellaneous Commands:: A few commands that defy categories. +* Variables:: How to change the default behavior of Info. +* Custom Key Bindings:: How to define your own key-to-command bindings. +* Copying This Manual:: The GNU Free Documentation License. +* Index:: Global index containing keystrokes, + command names, variable names, + and general concepts. + + +File: info-stnd.info, Node: What is Info, Next: Invoking Info, Prev: Top, Up: Top + +1 What is Info? +*************** + +"Info" is a program which is used to view Info files on an ASCII +terminal. "Info files" are the result of processing Texinfo files with +the program `makeinfo' or with one of the Emacs commands, such as `M-x +texinfo-format-buffer'. Texinfo itself is a documentation system that +uses a single source file to produce both on-line information and +printed output. You can typeset and print the files that you read in +Info. + + +File: info-stnd.info, Node: Invoking Info, Next: Cursor Commands, Prev: What is Info, Up: Top + +2 Invoking Info +*************** + +GNU Info accepts several options to control the initial node being +viewed, and to specify which directories to search for Info files. Here +is a template showing an invocation of GNU Info from the shell: + + info [OPTION]... [MENU-ITEM...] + + The program accepts the following options: + +`--apropos=STRING' + Specify a string to search in every index of every Info file + installed on your system. Info looks up the named STRING in all + the indices it can find, prints the results to standard output, + and then exits. If you are not sure which Info file explains + certain issues, this option is your friend. Note that if your + system has a lot of Info files installed, searching all of them + might take some time. + + You can invoke the apropos command from inside Info; see *Note + Searching Commands::. + +`--directory DIRECTORY-PATH' +`-d DIRECTORY-PATH' + Prepend DIRECTORY-PATH to the list of directory paths searched + when Info needs to find a file. You may issue `--directory' + multiple times; once for each directory which contains Info files. + The list of directories searched by Info is constructed from the + value of the environment variable `INFOPATH'; `--directory' causes + the named DIRECTORY-PATH to be prepended to that list. The value + of `INFOPATH' is a list of directories usually separated by a + colon; on MS-DOS/MS-Windows systems, the semicolon is used. If + you do not define `INFOPATH', Info uses a default path defined + when Info was built as the initial list of directories. If the + value of `INFOPATH' ends with a colon (or semicolon on + MS-DOS/MS-Windows), the initial list of directories is constructed + by appending the build-time default to the value of `INFOPATH'. + +`--dribble=DRIBBLE-FILE' + Specify a file where all user keystrokes will be recorded. This + file can be used later to replay the same sequence of commands, + see the `--restore' option below. + +`--file FILENAME' +`-f FILENAME' + Specify a particular Info file to visit. By default, Info visits + the file `dir'; if you use this option, Info will start with + `(FILENAME)Top' as the first file and node. + + If FILENAME is an absolute file name, or begins with `./' or + `../', Info looks for FILENAME only in the directory of the + specified FILENAME, and adds the directory of FILENAME to the + value of `INFOPATH'. In contrast, if FILENAME is in the form of a + relative file name, but without the `./' or `../' prefix, Info + will only look for it in the directories specified in `INFOPATH'. + In other words, Info does _not_ treat file names which lack `./' + and `../' prefix as relative to the current directory. + + In every directory Info tries, if FILENAME is not found, Info + looks for it with a number of known extensions of Info files(1). + For every known extension, Info looks for a compressed file, if a + regular file isn't found. Info supports files compressed with + `gzip', `bzip2', `compress' and `yabba' programs; it calls + `gunzip', `bunzip2', `uncompress' and `unyabba', accordingly, to + decompress such files. Compressed Info files are assumed to have + `.z', `.gz', `.bz2', `.Z', or `.Y' extensions, possibly in + addition to one of the known Info files extensions(2). + +`--help' +`-h' + Produces a relatively brief description of the available Info + options. + +`--index-search STRING' + After processing all command-line arguments, go to the index in + the Info file and search for index entries which match STRING. If + such an entry is found, the Info session begins with displaying + the node pointed to by the first matching index entry; press `,' + to step through the rest of the matching entries. If no such + entry exists, print `no entries found' and exit with nonzero + status. This can be used from another program as a way to provide + online help, or as a quick way of starting to read an Info file at + a certain node when you don't know the exact name of that node. + + This command can also be invoked from inside Info; see *Note + Searching Commands::. + +`--node NODENAME' +`-n NODENAME' + Specify a particular node to visit in the initial file that Info + loads. This is especially useful in conjunction with `--file'(3). + You may specify `--node' multiple times; for an interactive Info, + each NODENAME is visited in its own window, for a non-interactive + Info (such as when `--output' is given) each NODENAME is processed + sequentially. + +`--output FILENAME' +`-o FILENAME' + Specify FILENAME as the name of a file to which to direct output. + Each node that Info visits will be output to FILENAME instead of + interactively viewed. A value of `-' for FILENAME specifies the + standard output. + +`--raw-escapes' +`--no-raw-escapes' +`-R' + Do not remove ANSI escape sequences from documents. Some versions + of Groff, the GNU document formatter, produce man pages with ANSI + escape sequences for bold, italics, and underlined characters, and + for colorized text. By default, Info lets those escape sequences + pass through directly to the terminal. If your terminal does not + support these escapes, use `--no-raw-escapes' to make Info remove + them. + +`--restore=DRIBBLE-FILE' + Read keystrokes from DRIBBLE-FILE, presumably recorded during + previous Info session (see the description of the `--dribble' + option above). When the keystrokes in the files are all read, Info + reverts its input to the usual interactive operation. + +`--show-options' +`--usage' +`-O' + This option causes Info to look for the node that describes how to + invoke the program and its command-line options, and begin the + session by displaying that node. It is provided to make it easier + to find the most important usage information in a manual without + the need to wade through complex menu hierarchies. The effect is + similar to the `M-x goto-invocation' command (*note + goto-invocation::) from inside Info. + +`--speech-friendly' +`-b' + On MS-DOS/MS-Windows only, this option causes Info to use standard + file I/O functions for screen writes. (By default, Info uses + direct writes to the video memory on these systems, for faster + operation and colored display support.) This allows the speech + synthesizers used by blind persons to catch the output and convert + it to audible speech. + +`--subnodes' + This option only has meaning when given in conjunction with + `--output'. It means to recursively output the nodes appearing in + the menus of each node being output. Menu items which resolve to + external Info files are not output, and neither are menu items + which are members of an index. Each node is only output once. + +`--version' + Prints the version information of Info and exits. + +`--vi-keys' + This option binds functions to keys differently, to emulate the key + bindings of `vi' and Less. The default key bindings are generally + modeled after Emacs. (*Note Custom Key Bindings::, for a more + general way of altering GNU Info's key bindings.) + +`--where' +`--location' +`-w' + Show the filename that would be read and exit, instead of actually + reading it and starting Info. + +`MENU-ITEM' + Info treats its remaining arguments as the names of menu items. + The first argument is a menu item in the initial node visited + (generally `dir'), the second argument is a menu item in the first + argument's node, etc. You can easily move to the node of your + choice by specifying the menu names which describe the path to + that node. For example, + + info emacs buffers + + first selects the menu item `Emacs' in the node `(dir)Top', and + then selects the menu item `Buffers' in the node `(emacs)Top'. + + To avoid searching the `dir' files and just show some arbitrary file, +use `-f' and the filename, as in `info -f ./foo.info'. + + The index search and the search for the node which describes program +invocation and command-line options begins _after_ processing all the +command-line menu items. Therefore, the Info file searched for the +index or the invocation node is the file where Info finds itself after +following all the menu items given on the command line. This is so +`info emacs --show-options' does what you'd expect. + + ---------- Footnotes ---------- + + (1) `.info', `-info', `/index', and `.inf'. + + (2) The MS-DOS version allows for the Info extension, such as `.inf', +and the short compressed file extensions, such as `.z' and `.gz', to be +merged into a single extension, since DOS doesn't allow more than a +single dot in the basename of a file. Thus, on MS-DOS, if Info looks +for `bison', file names like `bison.igz' and `bison.inz' will be found +and decompressed by `gunzip'. + + (3) Of course, you can specify both the file and node in a `--node' +command; but don't forget to escape the open and close parentheses and +whitespace from the shell as in: `info --node "(emacs)Buffers"'. + + +File: info-stnd.info, Node: Cursor Commands, Next: Scrolling Commands, Prev: Invoking Info, Up: Top + +3 Moving the Cursor +******************* + +Many people find that reading screens of text page by page is made +easier when one is able to indicate particular pieces of text with some +kind of pointing device. Since this is the case, GNU Info (both the +Emacs and standalone versions) have several commands which allow you to +move the cursor about the screen. The notation used in this manual to +describe keystrokes is identical to the notation used within the Emacs +manual, and the GNU Readline manual. *Note User Input: (emacs)User +Input, if you are unfamiliar with the notation.(1) + + The following table lists the basic cursor movement commands in Info. +Each entry consists of the key sequence you should type to execute the +cursor movement, the `M-x'(2) command name (displayed in parentheses), +and a short description of what the command does. All of the cursor +motion commands can take a "numeric" argument (see *Note +`universal-argument': Miscellaneous Commands. With a numeric argument, +the motion commands are simply executed that many times; for example, a +numeric argument of 4 given to `next-line' causes the cursor to move +down 4 lines. With a negative numeric argument, the motion is +reversed; an argument of -4 given to the `next-line' command would +cause the cursor to move _up_ 4 lines. + +<C-n> (`next-line') +<DOWN> (an arrow key) + Move the cursor down to the next line. + +<C-p> (`prev-line') +<UP> (an arrow key) + Move the cursor up to the previous line. + +<C-a> (`beginning-of-line') +<Home> (on DOS/Windows only) + Move the cursor to the start of the current line. + +<C-e> (`end-of-line') +<End> (on DOS/Windows only) + Move the cursor to the end of the current line. + +<C-f> (`forward-char') +<RIGHT> (an arrow key) + Move the cursor forward a character. + +<C-b> (`backward-char') +<LEFT> (an arrow key) + Move the cursor backward a character. + +<M-f> (`forward-word') +`C-<RIGHT>' (on DOS/Windows only) + Move the cursor forward a word. + +<M-b> (`backward-word') +`C-<LEFT>' (on DOS/Windows only) + Move the cursor backward a word. + +<M-<> (`beginning-of-node') +<C-<Home>> (on DOS/Windows only) +<b> +<M-b>, vi-like operation + Move the cursor to the start of the current node. + +<M->> (`end-of-node') +<C-<End>> (on DOS/Windows only) +<e> + Move the cursor to the end of the current node. + +<M-r> (`move-to-window-line') + Move the cursor to a specific line of the window. Without a + numeric argument, `M-r' moves the cursor to the start of the line + in the center of the window. With a numeric argument of N, `M-r' + moves the cursor to the start of the Nth line in the window. + + ---------- Footnotes ---------- + + (1) Here's a short summary. `C-X' means press the `CTRL' key and the +key X. `M-X' means press the `META' key and the key X. On many +terminals th `META' key is known as the `ALT' key. `SPC' is the space +bar. The other keys are usually called by the names imprinted on them. + + (2) `M-x' is also a command; it invokes `execute-extended-command'. +*Note Executing an extended command: (emacs)M-x, for more detailed +information. + + +File: info-stnd.info, Node: Scrolling Commands, Next: Node Commands, Prev: Cursor Commands, Up: Top + +4 Moving Text Within a Window +***************************** + +Sometimes you are looking at a screenful of text, and only part of the +current paragraph you are reading is visible on the screen. The +commands detailed in this section are used to shift which part of the +current node is visible on the screen. + + Scrolling commands are bound differently when `--vi-keys' operation +is in effect (*note --vi-keys::). These key bindings are designated +with "vi-like operation". + +<SPC> (`scroll-forward') + Shift the text in this window up. That is, show more of the node + which is currently below the bottom of the window. With a numeric + argument, show that many more lines at the bottom of the window; a + numeric argument of 4 would shift all of the text in the window up + 4 lines (discarding the top 4 lines), and show you four new lines + at the bottom of the window. Without a numeric argument, <SPC> + takes the bottom two lines of the window and places them at the + top of the window, redisplaying almost a completely new screenful + of lines. If you are at the end of a node, <SPC> takes you to the + "next" node, so that you can read an entire manual from start to + finish by repeating <SPC>. + + The default scroll size is one screen-full, but it can be changed + by invoking the (`scroll-forward-page-only-set-window') command, + `z' under `--vi-keys', with a numeric argument. + +<NEXT> (an arrow key) (`scroll-forward-page-only') +<C-v> +<C-f>, vi-like operation +<f>, vi-like operation +<M-SPC>, vi-like operation + Shift the text in this window up. This is identical to the <SPC> + operation above, except that it never scrolls beyond the end of the + current node. + + The <NEXT> key is known as the <PageDown> key on some keyboards. + +<z> (`scroll-forward-page-only-set-window', vi-like operation) + Scroll forward, like with <NEXT>, but if a numeric argument is + specified, it becomes the default scroll size for subsequent + `scroll-forward' and `scroll-backward' commands and their ilk. + +<DEL> (`scroll-backward') + Shift the text in this window down. The inverse of + `scroll-forward'. If you are at the start of a node, <DEL> takes + you to the "previous" node, so that you can read an entire manual + from finish to start by repeating <DEL>. The default scroll size + can be changed by invoking the + (`scroll-backward-page-only-set-window') command, `w' under + `--vi-keys', with a numeric argument. + +<PREVIOUS> (arrow key) (`scroll-backward-page-only') +<PRIOR> (arrow key) +<M-v> +<b>, vi-like operation +<C-b>, vi-like operation + Shift the text in this window down. The inverse of + `scroll-forward-page-only'. Does not scroll beyond the start of + the current node. The default scroll size can be changed by + invoking the(`scroll-backward-page-only-set-window') command, `w' + under `--vi-keys', with a numeric argument. + +<w> (`scroll-backward-page-only-set-window', vi-like operation) + Scroll backward, like with <PREVIOUS>, but if a numeric argument is + specified, it becomes the default scroll size for subsequent + `scroll-forward' and `scroll-backward' commands. + +<C-n> (`down-line', vi-like operation) +<C-e>, vi-like operation +<RET>, vi-like operation +<LFD>, vi-like operation +<DOWN>, vi-like operation + Scroll forward by one line. With a numeric argument, scroll + forward that many lines. + +<C-p> (`up-line', vi-like operation) +<UP>, vi-like operation +<y>, vi-like operation +<k>, vi-like operation +<C-k>, vi-like operation +<C-y>, vi-like operation + Scroll backward one line. With a numeric argument, scroll + backward that many lines. + +<d> (`scroll-half-screen-down', vi-like operation) +<C-d>, vi-like operation + Scroll forward by half of the screen size. With a numeric + argument, scroll that many lines. If an argument is specified, it + becomes the new default number of lines to scroll for subsequent + `d' and `u' commands. + +<u> (`scroll-half-screen-up', vi-like operation) +<C-u>, vi-like operation + Scroll back by half of the screen size. With a numeric argument, + scroll that many lines. If an argument is specified, it becomes + the new default number of lines to scroll for subsequent `u' and + `d' commands. + + The `scroll-forward' and `scroll-backward' commands can also move +forward and backward through the node structure of the file. If you +press <SPC> while viewing the end of a node, or <DEL> while viewing the +beginning of a node, what happens is controlled by the variable +`scroll-behavior'. *Note `scroll-behavior': Variables, for more +information. + + The `scroll-forward-page-only' and `scroll-backward-page-only' +commands never scroll beyond the current node. + + The <PREVIOUS> key is the <PageUp> key on many keyboards. Emacs +refers to it by the name <PRIOR>. When you use <PRIOR> or <PageUp> to +scroll, Info never scrolls beyond the beginning of the current node. + + If your keyboard lacks the <DEL> key, look for a key called <BS>, or +`BackSpace', sometimes designated with an arrow which points to the +left, which should perform the same function. + +<C-l> (`redraw-display') + Redraw the display from scratch, or shift the line containing the + cursor to a specified location. With no numeric argument, `C-l' + clears the screen, and then redraws its entire contents. Given a + numeric argument of N, the line containing the cursor is shifted + so that it is on the Nth line of the window. + +`C-x <w>' (`toggle-wrap') + Toggles the state of line wrapping in the current window. + Normally, lines which are longer than the screen width "wrap", + i.e., they are continued on the next line. Lines which wrap have + a `\' appearing in the rightmost column of the screen. You can + cause such lines to be terminated at the rightmost column by + changing the state of line wrapping in the window with `C-x w'. + When a line which needs more space than one screen width to + display is displayed, a `$' appears in the rightmost column of the + screen, and the remainder of the line is invisible. When long + lines are truncated, the modeline displays the `$' character near + its left edge. + + +File: info-stnd.info, Node: Node Commands, Next: Searching Commands, Prev: Scrolling Commands, Up: Top + +5 Selecting a Node +****************** + +This section details the numerous Info commands which select a new node +to view in the current window. + + The most basic node commands are `n', `p', `u', and `l'. Note that +the commands to select nodes are mapped differently when `--vi-keys' is +in effect; these keybindings are designated below as "vi-like +operation". + + When you are viewing a node, the top line of the node contains some +Info "pointers" which describe where the next, previous, and up nodes +are. Info uses this line to move about the node structure of the file +when you use the following commands: + +<n> (`next-node') +`C-<NEXT>' (on DOS/Windows only) +`C-x <n>', vi-like operation + Select the `Next' node. + + The <NEXT> key is known as the <PgDn> key on some keyboards. + +<p> (`prev-node') +`C-<PREVIOUS>' (on DOS/Windows only) + Select the `Prev' node. + + The <PREVIOUS> key is known as the <PgUp> key on some keyboards. + +<u> (`up-node') +`C-<UP>' (an arrow key on DOS/Windows only) +`C-x <u>', vi-like operation + Select the `Up' node. + + You can easily select a node that you have already viewed in this +window by using the `l' command - this name stands for "last", and +actually moves backwards through the history of visited nodes for this +window. This is handy when you followed a reference to another node, +possibly to read about a related issue, and would like then to resume +reading at the same place where you started the excursion. + + Each node where you press `l' is discarded from the history. Thus, +by the time you get to the first node you visited in a window, the +entire history of that window is discarded. + +<l> (`history-node') +<C-<CENTER>> (on DOS/Windows only) +<'>, vi-like operation + Pop the most recently selected node in this window from the node + history. + + Two additional commands make it easy to select the most commonly +selected nodes; they are `t' and `d'. + +<t> (`top-node') +<M-t>, vi-like operation + Select the node `Top' in the current Info file. + +<d> (`dir-node') +<M-d>, vi-like operation + Select the directory node (i.e., the node `(dir)'). + + Here are some other commands which immediately result in the selection +of a different node in the current window: + +<<> (`first-node') +<g>, vi-like operation + Selects the first node which appears in this file. This node is + most often `Top', but it does not have to be. With a numeric + argument N, select the Nth node (the first node is node 1). An + argument of zero is the same as the argument of 1. + +<>> (`last-node') +<G>, vi-like operation + Select the last node which appears in this file. With a numeric + argument N, select the Nth node (the first node is node 1). An + argument of zero is the same as no argument, i.e., it selects the + last node. + +<]> (`global-next-node') + Move forward or down through node structure. If the node that you + are currently viewing has a `Next' pointer, that node is selected. + Otherwise, if this node has a menu, the first menu item is + selected. If there is no `Next' and no menu, the same process is + tried with the `Up' node of this node. + +<[> (`global-prev-node') + Move backward or up through node structure. If the node that you + are currently viewing has a `Prev' pointer, that node is selected. + Otherwise, if the node has an `Up' pointer, that node is selected, + and if it has a menu, the last item in the menu is selected. + + You can get the same behavior as `global-next-node' and +`global-prev-node' while simply scrolling through the file with <SPC> +and <DEL>; *Note `scroll-behavior': Variables, for more information. + +<g> (`goto-node') +`C-x <g>', vi-like operation + Read the name of a node and select it. While reading the node + name, completion (*note completion: The Echo Area.) is only done + for the nodes which reside in one of the Info files that were + loaded in the current Info session; if the desired node resides in + some other file, you must type the node exactly as it appears in + that Info file, and you must include the Info file of the other + file. For example, + + `g(emacs)Buffers' + + finds the node `Buffers' in the Info file `emacs'. + +<O> (`goto-invocation' +<I> + Read the name of a program and look for a node in the current Info + file which describes the invocation and the command-line options + for that program. The default program name is derived from the + name of the current Info file. This command does the same as the + `--show-options' command-line option (*note --show-options::), but + it also allows to specify the program name; this is important for + those manuals which describe several programs. + + If you need to find the Invocation node of a program that is + documented in another Info file, you need to visit that file + before invoking `I'. For example, if you are reading the Emacs + manual and want to see the command-line options of the `makeinfo' + program, type `g (texinfo) <RET>' and then `I makeinfo <RET>'. If + you don't know what Info file documents the command, or if + invoking `I' doesn't display the right node, go to the `(dir)' + node (using the `d' command) and invoke `I' from there. + +<G> (`menu-sequence') + Read a sequence of menu entries and follow it. Info prompts for a + sequence of menu items separated by commas. (Since commas are not + allowed in a node name, they are a natural choice for a delimiter + in a list of menu items.) Info then looks up the first item in + the menu of the node `(dir)' (if the `(dir)' node cannot be found, + Info uses `Top'). If such an entry is found, Info goes to the + node it points to and looks up the second item in the menu of that + node, etc. In other words, you can specify a complete path which + descends through the menu hierarchy of a particular Info file + starting at the `(dir)' node. This has the same effect as if you + typed the menu item sequence on Info's command line, see *Note + Info command-line arguments processing: command-line menu items. + For example, + + G Texinfo,Overview,Reporting Bugs <RET> + + displays the node `Reporting Bugs' in the Texinfo manual. (You + don't actually need to type the menu items in their full length, + or in their exact letter-case. However, if you do type the menu + items exactly, Info will find it faster.) + + If any of the menu items you type are not found, Info stops at the + last entry it did find and reports an error. + +`C-x <k>' (`kill-node') + Kill a node. The node name is prompted for in the echo area, with + a default of the current node. "Killing" a node means that Info + tries hard to forget about it, removing it from the list of + history nodes kept for the window where that node is found. + Another node is selected in the window which contained the killed + node. + +`C-x C-f' (`view-file') + Read the name of a file and selects the entire file. The command + `C-x C-f FILENAME' + is equivalent to typing + `g(FILENAME)*' + +`C-x C-b' (`list-visited-nodes') + Make a window containing a menu of all of the currently visited + nodes. This window becomes the selected window, and you may use + the standard Info commands within it. + +`C-x <b>' (`select-visited-node') + Select a node which has been previously visited in a visible + window. This is similar to `C-x C-b' followed by `m', but no + window is created. + + +File: info-stnd.info, Node: Searching Commands, Next: Xref Commands, Prev: Node Commands, Up: Top + +6 Searching an Info File +************************ + +GNU Info allows you to search for a sequence of characters throughout an +entire Info file, search through the indices of an Info file, or find +areas within an Info file which discuss a particular topic. + +<s> (`search') +</> + Read a string in the echo area and search for it. If the string + includes upper-case characters, the Info file is searched + case-sensitively; otherwise Info ignores the letter case. With a + numeric argument of N, search for Nth occurrence of the string. + Negative arguments search backwards. + +<?> (`search-backward', vi-like operation) + Read a string in the echo area and search backward through the + Info file for that string. If the string includes upper-case + characters, the Info file is searched case-sensitively; otherwise + Info ignores the letter case. With a numeric argument of N, + search for Nth occurrence of the string. Negative arguments + search forward. + +<S> (`search-case-sensitively' + Read a string in the echo area and search for it case-sensitively, + even if the string includes only lower-case letters. With a + numeric argument of N, search for Nth occurrence of the string. + Negative arguments search backwards. + +`C-x <n>' (`search-next') +<n>, vi-like operation + Search for the same string used in the last search command, in the + same direction, and with the same case-sensitivity option. With a + numeric argument of N, search for Nth next occurrence. + +`C-x <N>' (`search-previous') +<N>, vi-like operation + Search for the same string used in the last search command, and + with the same case-sensitivity option, but in the reverse + direction. With a numeric argument of N, search for Nth previous + occurrence. + +<C-s> (`isearch-forward') + Interactively search forward through the Info file for a string as + you type it. If the string includes upper-case characters, the + search is case-sensitive; otherwise Info ignores the letter case. + +<C-r> (`isearch-backward') + Interactively search backward through the Info file for a string as + you type it. If the string includes upper-case characters, the + search is case-sensitive; otherwise Info ignores the letter case. + +<i> (`index-search') + Look up a string in the indices for this Info file, and select a + node to which the found index entry points. + +<,> (`next-index-match') + Move to the node containing the next matching index item from the + last `i' command. + +`M-x index-apropos' + Grovel the indices of all the known Info files on your system for a + string, and build a menu of the possible matches. + + The most basic searching command is `s' or `/' (`search'). The `s' +command prompts you for a string in the echo area, and then searches +the remainder of the Info file for an occurrence of that string. If +the string is found, the node containing it is selected, and the cursor +is left positioned at the start of the found string. Subsequent `s' +commands show you the default search string within `[' and `]'; +pressing <RET> instead of typing a new string will use the default +search string. Under `--vi-keys' (*note --vi-keys::), using the `n' or +`N' commands is a faster way of searching for the same string. + + "Incremental searching" is similar to basic searching, but the string +is looked up while you are typing it, instead of waiting until the +entire search string has been specified. + + Both incremental and non-incremental search by default ignore the case +of letters when comparing the Info file text with the search string. +However, an uppercase letter in the search string makes the search +case-sensitive. You can force a case-sensitive non-incremental search, +even for a string that includes only lower-case letters, by using the +`S' command (`search-case-sensitively'). The `n' and `N' commands +operate case-sensitively if the last search command was `S'. + + The most efficient means of finding something quickly in a manual is +the `i' command (`index-search'). This command prompts for a string, +and then looks for that string in all the indices of the current Info +manual. If it finds a matching index entry, it displays the node to +which that entry refers and prints the full text of the entry in the +echo area. You can press `,' (`next-index-match') to find more +matches. A good Info manual has all of its important concepts indexed, +so the `i' command lets you use a manual as a reference. + + If you don't know what manual documents something, try the `M-x +index-apropos' command. It prompts for a string and then looks up that +string in all the indices of all the Info documents installed on your +system. It can also be invoked from the command line; see *Note +--apropos::. + + +File: info-stnd.info, Node: Xref Commands, Next: Window Commands, Prev: Searching Commands, Up: Top + +7 Selecting Cross References +**************************** + +We have already discussed the `Next', `Prev', and `Up' pointers which +appear at the top of a node. In addition to these pointers, a node may +contain other pointers which refer you to a different node, perhaps in +another Info file. Such pointers are called "cross references", or +"xrefs" for short. + +* Menu: + +* Parts of an Xref:: What a cross reference is made of. +* Selecting Xrefs:: Commands for selecting menu or note items. + + +File: info-stnd.info, Node: Parts of an Xref, Next: Selecting Xrefs, Up: Xref Commands + +7.1 Parts of an Xref +==================== + +Cross references have two major parts: the first part is called the +"label"; it is the name that you can use to refer to the cross +reference, and the second is the "target"; it is the full name of the +node that the cross reference points to. + + The target is separated from the label by a colon `:'; first the +label appears, and then the target. For example, in the sample menu +cross reference below, the single colon separates the label from the +target. + + * Foo Label: Foo Target. More information about Foo. + + Note the `.' which ends the name of the target. The `.' is not part +of the target; it serves only to let Info know where the target name +ends. + + A shorthand way of specifying references allows two adjacent colons to +stand for a target name which is the same as the label name: + + * Foo Commands:: Commands pertaining to Foo. + + In the above example, the name of the target is the same as the name +of the label, in this case `Foo Commands'. + + You will normally see two types of cross reference while viewing +nodes: "menu" references, and "note" references. Menu references +appear within a node's menu; they begin with a `*' at the beginning of +a line, and continue with a label, a target, and a comment which +describes what the contents of the node pointed to contains. + + Note references appear within the body of the node text; they begin +with `*Note', and continue with a label and a target. + + Like `Next', `Prev', and `Up' pointers, cross references can point to +any valid node. They are used to refer you to a place where more +detailed information can be found on a particular subject. Here is a +cross reference which points to a node within the Texinfo +documentation: *Note Writing an Xref: (texinfo)xref, for more +information on creating your own texinfo cross references. + + +File: info-stnd.info, Node: Selecting Xrefs, Prev: Parts of an Xref, Up: Xref Commands + +7.2 Selecting Xrefs +=================== + +The following table lists the Info commands which operate on menu items. + +<1> (`menu-digit') +<2> ... <9> +<M-1>, vi-like operation +<M-2> ... <M-9>, vi-like operation + Within an Info window, pressing a single digit, (such as `1'), + selects that menu item, and places its node in the current window. + For convenience, there is one exception; pressing `0' selects the + _last_ item in the node's menu. When `--vi-keys' is in effect, + digits set the numeric argument, so these commands are remapped to + their `M-' varieties. For example, to select the last menu item, + press <M-0>. + +<0> (`last-menu-item') +<M-0>, vi-like operation + Select the last item in the current node's menu. + +<m> (`menu-item') + Reads the name of a menu item in the echo area and selects its + node. Completion is available while reading the menu label. + *Note completion: The Echo Area. + +`M-x find-menu' + Move the cursor to the start of this node's menu. + + This table lists the Info commands which operate on cross references. + +<f> (`xref-item') +<r> + +<M-f>, vi-like operation +`C-x <r>', vi-like operation + Reads the name of a note cross reference in the echo area and + selects its node. Completion is available while reading the cross + reference label. *Note completion: The Echo Area. + + Finally, the next few commands operate on menu or note references +alike: + +<TAB> (`move-to-next-xref') + Move the cursor to the start of the next nearest menu item or note + reference in this node. You can then use <RET> + (`select-reference-this-line') to select the menu or note + reference. + +<M-TAB> (`move-to-prev-xref') +<Shift-<TAB>> (on DOS/Windows only) + Move the cursor the start of the nearest previous menu item or note + reference in this node. + + On DOS/Windows only, the `Shift-<TAB>' key is an alias for + `M-<TAB>'. This key is sometimes called `BackTab'. + +<RET> (`select-reference-this-line') +<M-g>, vi-like operation + Select the menu item or note reference appearing on this line. + + +File: info-stnd.info, Node: Window Commands, Next: Printing Nodes, Prev: Xref Commands, Up: Top + +8 Manipulating Multiple Windows +******************************* + +A "window" is a place to show the text of a node. Windows have a view +area where the text of the node is displayed, and an associated "mode +line", which briefly describes the node being viewed. + + GNU Info supports multiple windows appearing in a single screen; each +window is separated from the next by its modeline. At any time, there +is only one "active" window, that is, the window in which the cursor +appears. There are commands available for creating windows, changing +the size of windows, selecting which window is active, and for deleting +windows. + +* Menu: + +* The Mode Line:: What appears in the mode line? +* Basic Windows:: Manipulating windows in Info. +* The Echo Area:: Used for displaying errors and reading input. + + +File: info-stnd.info, Node: The Mode Line, Next: Basic Windows, Up: Window Commands + +8.1 The Mode Line +================= + +A "mode line" is a line of inverse video which appears at the bottom of +an Info window. It describes the contents of the window just above it; +this information includes the name of the file and node appearing in +that window, the number of screen lines it takes to display the node, +and the percentage of text that is above the top of the window. It can +also tell you if the indirect tags table for this Info file needs to be +updated, and whether or not the Info file was compressed when stored on +disk. + + Here is a sample mode line for a window containing an uncompressed +file named `dir', showing the node `Top'. + + -----Info: (dir)Top, 40 lines --Top------------------------------------- + ^^ ^ ^^^ ^^ + (file)Node #lines where + + When a node comes from a file which is compressed on disk, this is +indicated in the mode line with two small `z''s. In addition, if the +Info file containing the node has been split into subfiles, the name of +the subfile containing the node appears in the modeline as well: + + --zz-Info: (emacs)Top, 291 lines --Top-- Subfile: emacs-1.Z------------- + + Truncation of long lines (as opposed to wrapping them to the next +display line, *note toggle-wrap: Scrolling Commands.) is indicated by a +`$' at the left edge of the mode line: + + --$--Info: (texinfo)Top, 480 lines --Top-- Subfile: texinfo-1----------- + + When Info makes a node internally, such that there is no corresponding +info file on disk, the name of the node is surrounded by asterisks +(`*'). The name itself tells you what the contents of the window are; +the sample mode line below shows an internally constructed node showing +possible completions: + + -----Info: *Completions*, 7 lines --All--------------------------------- + + +File: info-stnd.info, Node: Basic Windows, Next: The Echo Area, Prev: The Mode Line, Up: Window Commands + +8.2 Window Commands +=================== + +It can be convenient to view more than one node at a time. To allow +this, Info can display more than one "window". Each window has its own +mode line (*note The Mode Line::) and history of nodes viewed in that +window (*note `history-node': Node Commands.). + +`C-x <o>' (`next-window') + Select the next window on the screen. Note that the echo area can + only be selected if it is already in use, and you have left it + temporarily. Normally, `C-x o' simply moves the cursor into the + next window on the screen, or if you are already within the last + window, into the first window on the screen. Given a numeric + argument, `C-x o' moves over that many windows. A negative + argument causes `C-x o' to select the previous window on the + screen. + +`M-x prev-window' + Select the previous window on the screen. This is identical to + `C-x o' with a negative argument. + +`C-x <2>' (`split-window') + Split the current window into two windows, both showing the same + node. Each window is one half the size of the original window, + and the cursor remains in the original window. The variable + `automatic-tiling' can cause all of the windows on the screen to + be resized for you automatically, please *note automatic-tiling: + Variables. for more information. + +`C-x <0>' (`delete-window') + Delete the current window from the screen. If you have made too + many windows and your screen appears cluttered, this is the way to + get rid of some of them. + +`C-x <1>' (`keep-one-window') + Delete all of the windows excepting the current one. + +`ESC <C-v>' (`scroll-other-window') + Scroll the other window, in the same fashion that `C-v' might + scroll the current window. Given a negative argument, scroll the + "other" window backward. + +`C-x <^>' (`grow-window') + Grow (or shrink) the current window. Given a numeric argument, + grow the current window that many lines; with a negative numeric + argument, shrink the window instead. + +`C-x <t>' (`tile-windows') + Divide the available screen space among all of the visible windows. + Each window is given an equal portion of the screen in which to + display its contents. The variable `automatic-tiling' can cause + `tile-windows' to be called when a window is created or deleted. + *Note `automatic-tiling': Variables. + + +File: info-stnd.info, Node: The Echo Area, Prev: Basic Windows, Up: Window Commands + +8.3 The Echo Area +================= + +The "echo area" is a one line window which appears at the bottom of the +screen. It is used to display informative or error messages, and to +read lines of input from you when that is necessary. Almost all of the +commands available in the echo area are identical to their Emacs +counterparts, so please refer to that documentation for greater depth of +discussion on the concepts of editing a line of text. The following +table briefly lists the commands that are available while input is being +read in the echo area: + +<C-f> (`echo-area-forward') +<RIGHT> (an arrow key) +<M-h>, vi-like operation + Move forward a character. + +<C-b> (`echo-area-backward') +<LEFT> (an arrow key) +<M-l>, vi-like operation + Move backward a character. + +<C-a> (`echo-area-beg-of-line') +<M-0>, vi-like operation + Move to the start of the input line. + +<C-e> (`echo-area-end-of-line') +<M-$>, vi-like operation + Move to the end of the input line. + +<M-f> (`echo-area-forward-word') +<C-<RIGHT>> (DOS/Windows only) +<M-w>, vi-like operation + Move forward a word. + + On DOS/Windows, `C-<RIGHT>' moves forward by words. + +<M-b> (`echo-area-backward-word') +<C-<LEFT>> (DOS/Windows only) + Move backward a word. + + On DOS/Windows, `C-<LEFT>' moves backward by words. + +<C-d> (`echo-area-delete') +<M-x>, vi-like operation + Delete the character under the cursor. + +<DEL> (`echo-area-rubout') + Delete the character behind the cursor. + + On some keyboards, this key is designated <BS>, for `BackSpace'. + Those keyboards will usually bind <DEL> in the echo area to + `echo-area-delete'. + +<C-g> (`echo-area-abort') +<C-u>, vi-like operation + Cancel or quit the current operation. If completion is being + read, this command discards the text of the input line which does + not match any completion. If the input line is empty, it aborts + the calling function. + +<RET> (`echo-area-newline') + Accept (or forces completion of) the current input line. + +<C-q> (`echo-area-quoted-insert') +<C-v>, vi-like operation + Insert the next character verbatim. This is how you can insert + control characters into a search string, for example, or the `?' + character when Info prompts with completion. + +PRINTING CHARACTER (`echo-area-insert') + Insert the character. Characters that have their 8th bit set, and + not bound to `M-' commands, are also inserted verbatim; this is + useful for terminals which support Latin scripts. + +<M-TAB> (`echo-area-tab-insert') +<Shift-<TAB>> (on DOS/Windows only) + Insert a TAB character. + + On DOS/Windows only, the `Shift-<TAB>' key is an alias for + `M-<TAB>'. This key is sometimes called `BackTab'. + +<C-t> (`echo-area-transpose-chars') + Transpose the characters at the cursor. + + The next group of commands deal with "killing", and "yanking" +text(1). For an in-depth discussion of killing and yanking, see *Note +Killing and Deleting: (emacs)Killing. + +<M-d> (`echo-area-kill-word') +<M-X>, vi-like operation + Kill the word following the cursor. + +<M-DEL> (`echo-area-backward-kill-word') +<M-<BS>> + Kill the word preceding the cursor. + + On some keyboards, the `Backspace' key is used instead of `DEL', + so `M-<Backspace>' has the same effect as `M-<DEL>'. + +<C-k> (`echo-area-kill-line') + Kill the text from the cursor to the end of the line. + +`C-x <DEL>' (`echo-area-backward-kill-line') + Kill the text from the cursor to the beginning of the line. + +<C-y> (`echo-area-yank') + Yank back the contents of the last kill. + +<M-y> (`echo-area-yank-pop') + Yank back a previous kill, removing the last yanked text first. + + Sometimes when reading input in the echo area, the command that needed +input will only accept one of a list of several choices. The choices +represent the "possible completions", and you must respond with one of +them. Since there are a limited number of responses you can make, Info +allows you to abbreviate what you type, only typing as much of the +response as is necessary to uniquely identify it. In addition, you can +request Info to fill in as much of the response as is possible; this is +called "completion". + + The following commands are available when completing in the echo area: + +<TAB> (`echo-area-complete') +<SPC> + Insert as much of a completion as is possible. + +<?> (`echo-area-possible-completions') + Display a window containing a list of the possible completions of + what you have typed so far. For example, if the available choices + are: + + bar + foliate + food + forget + + and you have typed an `f', followed by `?', Info will pop up a + window showing a node called `*Completions*' which lists the + possible completions like this: + + 3 completions: + foliate food + forget + + i.e., all of the choices which begin with `f'. Pressing <SPC> or + <TAB> would result in `fo' appearing in the echo area, since all + of the choices which begin with `f' continue with `o'. Now, + typing `l' followed by `TAB' results in `foliate' appearing in the + echo area, since that is the only choice which begins with `fol'. + +<ESC C-v> (`echo-area-scroll-completions-window') + Scroll the completions window, if that is visible, or the "other" + window if not. + + ---------- Footnotes ---------- + + (1) Some people are used to calling these operations "cut" and +"paste", respectively. + + +File: info-stnd.info, Node: Printing Nodes, Next: Miscellaneous Commands, Prev: Window Commands, Up: Top + +9 Printing Nodes +**************** + +In general, we recommend that you use TeX to format the document and +print sections of it, by running `tex' on the Texinfo source file. +However, you may wish to print out the contents of a node as a quick +reference document for later use, or if you don't have TeX installed. +Info provides you with a command for doing this. + +`M-x print-node' + Pipe the contents of the current node through the command in the + environment variable `INFO_PRINT_COMMAND'. If the variable does + not exist, the node is simply piped to `lpr' (on DOS/Windows, the + default is to print the node to the local printer device, `PRN'). + + The value of `INFO_PRINT_COMMAND' may begin with the `>' + character, as in `>/dev/printer', in which case Info treats the + rest as the name of a file or a device. Instead of piping to a + command, Info opens the file, writes the node contents, and closes + the file, under the assumption that text written to that file will + be printed by the underlying OS. + + +File: info-stnd.info, Node: Miscellaneous Commands, Next: Variables, Prev: Printing Nodes, Up: Top + +10 Miscellaneous Commands +************************* + +GNU Info contains several commands which self-document GNU Info: + +`M-x describe-command' + Read the name of an Info command in the echo area and then display + a brief description of what that command does. + +`M-x describe-key' + Read a key sequence in the echo area, and then display the name and + documentation of the Info command that the key sequence invokes. + +`M-x describe-variable' + Read the name of a variable in the echo area and then display a + brief description of what the variable affects. + +`M-x where-is' + Read the name of an Info command in the echo area, and then display + a key sequence which can be typed in order to invoke that command. + +<C-h> (`get-help-window') +<?> +<F1> (on DOS/Windows only) +h, vi-like operation + Create (or Move into) the window displaying `*Help*', and place a + node containing a quick reference card into it. This window + displays the most concise information about GNU Info available. + +<h> (`get-info-help-node') +<M-h>, vi-like operation + Try hard to visit the node `(info)Help'. The Info file + `info.texi' distributed with GNU Info contains this node. Of + course, the file must first be processed with `makeinfo', and then + placed into the location of your Info directory. + + Here are the commands for creating a numeric argument: + +<C-u> (`universal-argument') + Start (or multiply by 4) the current numeric argument. `C-u' is a + good way to give a small numeric argument to cursor movement or + scrolling commands; `C-u C-v' scrolls the screen 4 lines, while + `C-u C-u C-n' moves the cursor down 16 lines. `C-u' followed by + digit keys sets the numeric argument to the number thus typed: + `C-u 1 2 0' sets the argument to 120. + +<M-1> (`add-digit-to-numeric-arg') +<1>, vi-like operation +<M-2> ... <M-9> +<2> ... <9>, vi-like operation +<M-0> +<0>, vi-like operation + Add the digit value of the invoking key to the current numeric + argument. Once Info is reading a numeric argument, you may just + type the digits of the argument, without the Meta prefix. For + example, you might give `C-l' a numeric argument of 32 by typing: + + C-u 3 2 C-l + + or + + M-3 2 C-l + +<M-> (`add-digit-to-numeric-arg' +<-> + To make a negative argument, type `-'. Typing `-' alone makes a + negative argument with a value of -1. If you continue to type + digit or Meta-digit keys after `-', the result is a negative + number produced by those digits. + + `-' doesn't work when you type in the echo area, because you need + to be able to insert the `-' character itself; use `M--' instead, + if you need to specify negative arguments in the echo area. + + `C-g' is used to abort the reading of a multi-character key sequence, +to cancel lengthy operations (such as multi-file searches) and to +cancel reading input in the echo area. + +<C-g> (`abort-key') +<C-u>, vi-like operation + Cancel current operation. + + The `q' command of Info simply quits running Info. Under `--vi-keys' +(*note --vi-keys::), you can also exit with `:q' or `ZZ'. + +<q> (`quit') +`C-x C-c' +`:q', vi-like operation +`ZZ', vi-like operation + Exit GNU Info. + + If the operating system tells GNU Info that the screen is 60 lines +tall, and it is actually only 40 lines tall, here is a way to tell Info +that the operating system is correct. + +`M-x set-screen-height' + Read a height value in the echo area and set the height of the + displayed screen to that value. + + On MS-DOS/MS-Windows, this command actually tries to change the +dimensions of the visible screen to the value you type in the echo area. + + Finally, Info provides a convenient way to display footnotes which +might be associated with the current node that you are viewing: + +<ESC C-f> (`show-footnotes') + Show the footnotes (if any) associated with the current node in + another window. You can have Info automatically display the + footnotes associated with a node when the node is selected by + setting the variable `automatic-footnotes'. *Note + `automatic-footnotes': Variables. + + +File: info-stnd.info, Node: Variables, Next: Custom Key Bindings, Prev: Miscellaneous Commands, Up: Top + +11 Manipulating Variables +************************* + +GNU Info contains several "variables" whose values are looked at by +various Info commands. You can change the values of these variables, +and thus change the behavior of Info to more closely match your +environment and Info file reading manner. + + There are two ways to set the value of a variable: interactively, +using the `set-variable' command described below, or in the `#var' +section of the `.infokey' file. *Note Custom Key Bindings::. + +`M-x set-variable' + Read the name of a variable, and the value for it, in the echo + area and then set the variable to that value. Completion is + available when reading the variable name (*note completion: The + Echo Area.); often, completion is available when reading the value + to give to the variable, but that depends on the variable itself. + If a variable does _not_ supply multiple choices to complete over, + it expects a numeric value. + +`M-x describe-variable' + Read the name of a variable in the echo area and then display a + brief description of what the variable affects. + + Here is a list of the variables that you can set in Info. + +`automatic-footnotes' + When set to `On', footnotes appear and disappear automatically; + else, they appear at the bottom of the node text. This variable is + `Off' by default. When a node is selected, a window containing + the footnotes which appear in that node is created, and the + footnotes are displayed within the new window. The window that + Info creates to contain the footnotes is called `*Footnotes*'. If + a node is selected which contains no footnotes, and a + `*Footnotes*' window is on the screen, the `*Footnotes*' window is + deleted. Footnote windows created in this fashion are not + automatically tiled so that they can use as little of the display + as is possible. + +`automatic-tiling' + When set to `On', creating or deleting a window resizes other + windows. This variable is `Off' by default. Normally, typing + `C-x 2' divides the current window into two equal parts. When + `automatic-tiling' is set to `On', all of the windows are resized + automatically, keeping an equal number of lines visible in each + window. There are exceptions to the automatic tiling; + specifically, the windows `*Completions*' and `*Footnotes*' are + _not_ resized through automatic tiling; they remain their original + size. + +`errors-ring-bell' + When set to `On', errors cause the bell to ring. The default + setting of this variable is `On'. + +`gc-compressed-files' + When set to `On', Info garbage collects files which had to be + uncompressed. The default value of this variable is `Off'. + Whenever a node is visited in Info, the Info file containing that + node is read into core, and Info reads information about the tags + and nodes contained in that file. Once the tags information is + read by Info, it is never forgotten. However, the actual text of + the nodes does not need to remain in core unless a particular Info + window needs it. For non-compressed files, the text of the nodes + does not remain in core when it is no longer in use. But + de-compressing a file can be a time consuming operation, and so + Info tries hard not to do it twice. `gc-compressed-files' tells + Info it is okay to garbage collect the text of the nodes of a file + which was compressed on disk. + +`ISO-Latin' + When set to `On', Info accepts and displays ISO Latin characters. + By default, Info assumes an ASCII character set. `ISO-Latin' tells + Info that it is running in an environment where the European + standard character set is in use, and allows you to input such + characters to Info, as well as display them. + +`scroll-behavior' + Control what happens when forward scrolling is requested at the + end of a node, or when backward scrolling is requested at the + beginning of a node. The default value for this variable is + `Continuous'. There are three possible values for this variable: + + `Continuous' + Try to get the first item in this node's menu, or failing + that, the `Next' node, or failing that, the `Next' of the + `Up'. This behavior is identical to using the `]' + (`global-next-node') and `[' (`global-prev-node') commands. + + `Next Only' + Only try to get the `Next' node. + + `Page Only' + Simply give up, changing nothing. If `scroll-behavior' is + `Page Only', no scrolling command can change the node that is + being viewed. + +`scroll-step' + The number of lines to scroll when the cursor moves out of the + window. Scrolling happens automatically if the cursor has moved + out of the visible portion of the node text when it is time to + display. Usually the scrolling is done so as to put the cursor on + the center line of the current window. However, if the variable + `scroll-step' has a nonzero value, Info attempts to scroll the + node text by that many lines; if that is enough to bring the + cursor back into the window, that is what is done. The default + value of this variable is 0, thus placing the cursor (and the text + it is attached to) in the center of the window. Setting this + variable to 1 causes a kind of "smooth scrolling" which some + people prefer. + +`show-index-match' + When set to `On', the portion of the matched search string is + highlighted in the message which explains where the matched search + string was found. The default value of this variable is `On'. + When Info displays the location where an index match was found, + (*note `next-index-match': Searching Commands.), the portion of the + string that you had typed is highlighted by displaying it in the + inverse case from its surrounding characters. + +`visible-bell' + When set to `On', GNU Info attempts to flash the screen instead of + ringing the bell. This variable is `Off' by default. Of course, + Info can only flash the screen if the terminal allows it; in the + case that the terminal does not allow it, the setting of this + variable has no effect. However, you can make Info perform + quietly by setting the `errors-ring-bell' variable to `Off'. + + + +File: info-stnd.info, Node: Custom Key Bindings, Next: Copying This Manual, Prev: Variables, Up: Top + +12 Customizing Key Bindings and Variables +***************************************** + +For those whose editor/pager of choice is not Emacs and who are not +entirely satisfied with the -vi-keys option (*note --vi-keys::), GNU +Info provides a way to define different key-to-command bindings and +variable settings from the defaults described in this document. + + On startup, GNU Info looks for a configuration file in the invoker's +HOME directory called `.info'(1). If it is present, and appears to +contain Info configuration data, and was created with the current +version of the `infokey' command, then Info adopts the key bindings and +variable settings contained therein. + + The `.info' file contains compact, non-textual data for reasons of +efficiency and because its design was lifted wholesale from the GNU Less +program, which also does it that way. It must be created by compiling a +textual source file using the `infokey' command. + +* Menu: + +* Invoking infokey:: +* infokey source format:: + + ---------- Footnotes ---------- + + (1) Due to the limitations of DOS filesystems, the MS-DOS version of +Info looks for a file `_info' instead. If the `HOME' variable is not +defined, Info additionally looks in the current directory. + + +File: info-stnd.info, Node: Invoking infokey, Next: infokey source format, Up: Custom Key Bindings + +12.1 Invoking `infokey' +======================= + +`infokey' compiles a source file (`$HOME/.infokey'(1) by default) +containing Info customizations into a binary format (`$HOME/.info' by +default). GNU Info reads the binary file at startup to override the +default key bindings and variable definitions. Synopsis: + + infokey [OPTION...] [INPUT-FILE] + + Besides the standard `--help' and `--version', the only option is +`--output FILE'. This tells `infokey' to write the binary data to FILE +instead of `$HOME/.info'. + + ---------- Footnotes ---------- + + (1) This file is named `_infokey' in the MS-DOS version, and is +looked for in the current directory if `HOME' is undefined. + + +File: info-stnd.info, Node: infokey source format, Prev: Invoking infokey, Up: Custom Key Bindings + +12.2 `infokey' source format +============================ + +The format of the source file read by `infokey' is most easily +illustrated by example. For instance, here is a sample `.infokey' +source file suitable for aficionados of `vi' or `less': + + #info + j next-line + k prev-line + l forward-char + h backward-char + \kd next-line + \ku prev-line + \kr forward-char + \kl backward-char + \ scroll-forward + \kD scroll-forward-page-only + b scroll-backward + \kU scroll-backward-page-only + g beginning-of-node + \kh beginning-of-node + G end-of-node + \ke end-of-node + \t select-reference-this-line + - history-node + n next-node + p prev-node + u up-node + t top-node + d dir-node + #var + scroll-step=1 + + The source file consists of one or more "sections". Each section +starts with a line that identifies the type of section. Possible +sections are: + +`#info' + Key bindings for Info windows. The start of this section is + indicated by a line containing just `#info' by itself. If this is + the first section in the source file, the `#info' line can be + omitted. The rest of this section consists of lines of the form: + + STRING whitespace ACTION [ whitespace [ # comment ] ] newline + + Whitespace is any sequence of one or more spaces and/or tabs. + Comment is any sequence of any characters, excluding newline. + STRING is the key sequence which invokes the action. ACTION is + the name of an Info command. The characters in STRING are + interpreted literally or prefixed by a caret (`^') to indicate a + control character. A backslash followed by certain characters + specifies input keystrokes as follows: + + `\b' + Backspace + + `\e' + Escape (ESC) + + `\n' + Newline + + `\r' + Return + + `\t' + Tab + + `\ku' + Up arrow + + `\kd' + Down arrow + + `\kl' + Left arrow + + `\kr' + Right arrow + + `\kU' + Page Up + + `\kD' + Page Down + + `\kh' + HOME + + `\ke' + END + + `\kx' + Delete (DEL) + + `\mX' + Meta-X where X is any character as described above. + + Backslash followed by any other character indicates that character + is to be taken literally. Characters which must be preceded by a + backslash include caret, space, tab, and backslash itself. + +`#echo-area' + Key bindings for the echo area. The start of this section is + indicated by a line containing just `#echo-area' by itself. The + rest of this section has a syntax identical to that for the key + definitions for the Info area, described above. + +`#var' + Variable initializations. The start of this section is indicated + by a line containing just `#var' by itself. Following this line + is a list of variable assignments, one per line. Each line + consists of a variable name (*Note Variables::,) followed by `=' + followed by a value. There may be no white space between the + variable name and the `=', and all characters following the `=', + including white space, are included in the value. + + Blank lines and lines starting with `#' are ignored, except for the +special section header lines. + + Key bindings defined in the `.info' file take precedence over GNU +Info's default key bindings, whether or not `--vi-keys' is used. A +default key binding may be disabled by overriding it in the `.info' +file with the action `invalid'. In addition, _all_ default key +bindings can be disabled by adding this line _anywhere_ in the relevant +section: + + #stop + + This will cause GNU Info to ignore all the default key commands for +that section. + + Beware: `#stop' can be dangerous. Since it disables all default key +bindings, you must supply enough new key bindings to enable all +necessary actions. Failure to bind any key to the `quit' command, for +example, can lead to frustration. + + The order in which key bindings are defined in the `.info' file is +not important, except that the command summary produced by the +`get-help-window' command only displays the _first_ key that is bound +to each command. + + +File: info-stnd.info, Node: Copying This Manual, Next: Index, Prev: Custom Key Bindings, Up: Top + +Appendix A Copying This Manual +****************************** + +* Menu: + +* GNU Free Documentation License:: License for copying this manual. + + +File: info-stnd.info, Node: GNU Free Documentation License, Up: Copying This Manual + +A.1 GNU Free Documentation License +================================== + + Version 1.2, November 2002 + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included in an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + +A.1.1 ADDENDUM: How to use this License for your documents +---------------------------------------------------------- + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and license +notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + + If you have Invariant Sections, Front-Cover Texts and Back-Cover +Texts, replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with + the Front-Cover Texts being LIST, and with the Back-Cover Texts + being LIST. + + If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + + If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, to +permit their use in free software. + + +File: info-stnd.info, Node: Index, Prev: Copying This Manual, Up: Top + +Appendix B Index +**************** + + +* Menu: + +* ', vi-like operation: Node Commands. (line 51) +* ,: Searching Commands. (line 60) +* -: Miscellaneous Commands. + (line 68) +* --subnodes, command line option: Invoking Info. (line 145) +* .info: Custom Key Bindings. (line 6) +* .infokey: Custom Key Bindings. (line 6) +* .infokey source format: infokey source format. + (line 6) +* /: Searching Commands. (line 12) +* 0 ... 9, vi-like operation: Miscellaneous Commands. + (line 55) +* 0, in Info windows: Selecting Xrefs. (line 22) +* 1 ... 9, in Info windows: Selecting Xrefs. (line 12) +* <: Node Commands. (line 70) +* >: Node Commands. (line 77) +* ?, in Info windows: Miscellaneous Commands. + (line 28) +* ?, in the echo area: The Echo Area. (line 131) +* ?, vi-like operation: Searching Commands. (line 19) +* [: Node Commands. (line 90) +* ]: Node Commands. (line 83) +* _info file (MS-DOS): Custom Key Bindings. (line 6) +* _infokey file (MS-DOS): Invoking infokey. (line 6) +* abort-key: Miscellaneous Commands. + (line 83) +* add-digit-to-numeric-arg: Miscellaneous Commands. + (line 55) +* ANSI escape sequences in documents: Invoking Info. (line 107) +* Apropos, in Info files: Invoking Info. (line 15) +* arguments, command line: Invoking Info. (line 6) +* arguments, negative: Miscellaneous Commands. + (line 68) +* automatic-footnotes: Variables. (line 31) +* automatic-tiling: Variables. (line 44) +* b, in Info windows: Cursor Commands. (line 63) +* b, vi-like operation: Scrolling Commands. (line 62) +* BackTab, in Info windows: Selecting Xrefs. (line 57) +* BackTab, in the echo area: The Echo Area. (line 82) +* backward-char: Cursor Commands. (line 49) +* backward-word: Cursor Commands. (line 57) +* beginning-of-line: Cursor Commands. (line 37) +* beginning-of-node: Cursor Commands. (line 63) +* BS (backspace): Scrolling Commands. (line 118) +* C-a, in Info windows: Cursor Commands. (line 37) +* C-a, in the echo area: The Echo Area. (line 27) +* C-b, in Info windows: Cursor Commands. (line 49) +* C-b, in the echo area: The Echo Area. (line 23) +* C-b, vi-like operation: Scrolling Commands. (line 62) +* C-CENTER: Node Commands. (line 51) +* C-d, in the echo area: The Echo Area. (line 48) +* C-d, vi-like operation: Scrolling Commands. (line 92) +* C-e, in Info windows: Cursor Commands. (line 41) +* C-e, in the echo area: The Echo Area. (line 31) +* C-e, vi-like operation: Scrolling Commands. (line 78) +* C-End: Cursor Commands. (line 68) +* C-f, in Info windows: Cursor Commands. (line 45) +* C-f, in the echo area: The Echo Area. (line 18) +* C-f, vi-like operation: Scrolling Commands. (line 37) +* C-g, in Info windows: Miscellaneous Commands. + (line 83) +* C-g, in the echo area: The Echo Area. (line 59) +* C-h: Miscellaneous Commands. + (line 28) +* C-Home: Cursor Commands. (line 63) +* C-k, in the echo area: The Echo Area. (line 104) +* C-k, vi-like operation: Scrolling Commands. (line 87) +* C-l: Scrolling Commands. (line 123) +* C-LEFT: Cursor Commands. (line 57) +* C-LEFT, in the echo area: The Echo Area. (line 44) +* C-n: Cursor Commands. (line 29) +* C-n, vi-like operation: Scrolling Commands. (line 78) +* C-NEXT: Node Commands. (line 22) +* C-p: Cursor Commands. (line 33) +* C-p, vi-like operation: Scrolling Commands. (line 87) +* C-PgDn: Node Commands. (line 24) +* C-PgUp: Node Commands. (line 30) +* C-PREVIOUS: Node Commands. (line 28) +* C-q, in the echo area: The Echo Area. (line 69) +* C-r: Searching Commands. (line 51) +* C-RIGHT: Cursor Commands. (line 53) +* C-RIGHT, in the echo area: The Echo Area. (line 38) +* C-s: Searching Commands. (line 46) +* C-t, in the echo area: The Echo Area. (line 86) +* C-u: Miscellaneous Commands. + (line 42) +* C-u cancels typeahead, vi-like operation: Miscellaneous Commands. + (line 83) +* C-u, in the echo area, vi-like operation: The Echo Area. (line 59) +* C-u, vi-like operation: Scrolling Commands. (line 99) +* C-UP: Node Commands. (line 35) +* C-v: Scrolling Commands. (line 37) +* C-v, in the echo area, vi-like operation: The Echo Area. (line 69) +* C-w: Scrolling Commands. (line 130) +* C-x 0: Basic Windows. (line 34) +* C-x 1: Basic Windows. (line 39) +* C-x 2: Basic Windows. (line 26) +* C-x ^: Basic Windows. (line 47) +* C-x b: Node Commands. (line 177) +* C-x C-b: Node Commands. (line 172) +* C-x C-c: Miscellaneous Commands. + (line 92) +* C-x C-f: Node Commands. (line 166) +* C-x DEL, in the echo area: The Echo Area. (line 107) +* C-x g, vi-like operation: Node Commands. (line 101) +* C-x k: Node Commands. (line 158) +* C-x N: Searching Commands. (line 40) +* C-x n: Searching Commands. (line 34) +* C-x n, vi-like operation: Node Commands. (line 22) +* C-x o: Basic Windows. (line 12) +* C-x r, vi-like operation: Selecting Xrefs. (line 39) +* C-x t: Basic Windows. (line 52) +* C-x u, vi-like operation: Node Commands. (line 35) +* C-y, in the echo area: The Echo Area. (line 110) +* C-y, vi-like operation: Scrolling Commands. (line 87) +* cancelling the current operation: Miscellaneous Commands. + (line 83) +* cancelling typeahead: Miscellaneous Commands. + (line 83) +* case-sensitive search: Searching Commands. (line 27) +* case-sensitivity, and search: Searching Commands. (line 81) +* colors in documents: Invoking Info. (line 107) +* command line options: Invoking Info. (line 6) +* command-line options, how to find: Invoking Info. (line 124) +* commands, describing: Miscellaneous Commands. + (line 9) +* completion: The Echo Area. (line 115) +* compressed Info files: Invoking Info. (line 62) +* cursor, moving: Cursor Commands. (line 6) +* customizing key bindings: Custom Key Bindings. (line 6) +* d: Node Commands. (line 63) +* d, vi-like operation: Scrolling Commands. (line 92) +* default key bindings, overriding: Custom Key Bindings. (line 6) +* DEL, in Info windows: Scrolling Commands. (line 49) +* DEL, in the echo area: The Echo Area. (line 51) +* delete-window: Basic Windows. (line 34) +* describe-command: Miscellaneous Commands. + (line 9) +* describe-key: Miscellaneous Commands. + (line 13) +* describe-variable: Variables. (line 25) +* dir-node: Node Commands. (line 63) +* directory path: Invoking Info. (line 26) +* DOWN (an arrow key): Cursor Commands. (line 29) +* DOWN, vi-like operation: Scrolling Commands. (line 78) +* down-line: Scrolling Commands. (line 78) +* e, in Info windows: Cursor Commands. (line 68) +* echo area: The Echo Area. (line 6) +* echo-area-abort: The Echo Area. (line 59) +* echo-area-backward: The Echo Area. (line 23) +* echo-area-backward-kill-line: The Echo Area. (line 107) +* echo-area-backward-kill-word: The Echo Area. (line 98) +* echo-area-backward-word: The Echo Area. (line 42) +* echo-area-beg-of-line: The Echo Area. (line 27) +* echo-area-complete: The Echo Area. (line 128) +* echo-area-delete: The Echo Area. (line 48) +* echo-area-end-of-line: The Echo Area. (line 31) +* echo-area-forward: The Echo Area. (line 18) +* echo-area-forward-word: The Echo Area. (line 36) +* echo-area-insert: The Echo Area. (line 74) +* echo-area-kill-line: The Echo Area. (line 104) +* echo-area-kill-word: The Echo Area. (line 94) +* echo-area-newline: The Echo Area. (line 65) +* echo-area-possible-completions: The Echo Area. (line 131) +* echo-area-quoted-insert: The Echo Area. (line 69) +* echo-area-rubout: The Echo Area. (line 51) +* echo-area-scroll-completions-window: The Echo Area. (line 155) +* echo-area-tab-insert: The Echo Area. (line 80) +* echo-area-transpose-chars: The Echo Area. (line 86) +* echo-area-yank: The Echo Area. (line 110) +* echo-area-yank-pop: The Echo Area. (line 113) +* End: Cursor Commands. (line 41) +* end-of-line: Cursor Commands. (line 41) +* end-of-node: Cursor Commands. (line 68) +* errors-ring-bell: Variables. (line 55) +* ESC C-f: Miscellaneous Commands. + (line 109) +* ESC C-v, in Info windows: Basic Windows. (line 42) +* ESC C-v, in the echo area: The Echo Area. (line 155) +* f: Selecting Xrefs. (line 39) +* f, vi-like operation: Scrolling Commands. (line 37) +* F1: Miscellaneous Commands. + (line 28) +* FDL, GNU Free Documentation License: GNU Free Documentation License. + (line 6) +* file names, relative: Invoking Info. (line 53) +* file, outputting to: Invoking Info. (line 102) +* files, compressed: Invoking Info. (line 62) +* find-menu: Selecting Xrefs. (line 30) +* finding the Invocation node: Node Commands. (line 115) +* first-node: Node Commands. (line 70) +* footnotes, displaying: Miscellaneous Commands. + (line 109) +* format of .infokey source: infokey source format. + (line 6) +* forward-char: Cursor Commands. (line 45) +* forward-word: Cursor Commands. (line 53) +* functions, describing: Miscellaneous Commands. + (line 9) +* g: Node Commands. (line 101) +* G: Node Commands. (line 133) +* G, vi-like operation: Node Commands. (line 77) +* g, vi-like operation: Node Commands. (line 70) +* gc-compressed-files: Variables. (line 59) +* get-help-window: Miscellaneous Commands. + (line 28) +* get-info-help-node: Miscellaneous Commands. + (line 34) +* global-next-node: Node Commands. (line 83) +* global-prev-node: Node Commands. (line 90) +* goto-invocation: Node Commands. (line 115) +* goto-node: Node Commands. (line 101) +* grow-window: Basic Windows. (line 47) +* h: Miscellaneous Commands. + (line 34) +* h, vi-like operation: Miscellaneous Commands. + (line 28) +* history-node: Node Commands. (line 51) +* Home: Cursor Commands. (line 37) +* i: Searching Commands. (line 56) +* I: Node Commands. (line 115) +* incremental search: Searching Commands. (line 46) +* index search, selecting from the command line: Invoking Info. + (line 78) +* index, searching: Searching Commands. (line 56) +* index-apropos: Searching Commands. (line 64) +* index-search: Searching Commands. (line 56) +* Info file, selecting: Invoking Info. (line 49) +* Info files, compressed: Invoking Info. (line 62) +* Info files, relative: Invoking Info. (line 53) +* Info files, searching all indices: Invoking Info. (line 15) +* Info manual location: Invoking Info. (line 160) +* Info, invoking: Invoking Info. (line 6) +* INFO_PRINT_COMMAND, environment variable: Printing Nodes. (line 13) +* infokey: Custom Key Bindings. (line 6) +* infokey source format: infokey source format. + (line 6) +* infokey, invoking: Invoking infokey. (line 6) +* invocation description, how to find: Invoking Info. (line 124) +* invoking Info: Invoking Info. (line 6) +* invoking infokey: Invoking infokey. (line 6) +* isearch-backward: Searching Commands. (line 51) +* isearch-forward: Searching Commands. (line 46) +* ISO Latin characters: Variables. (line 74) +* ISO-Latin: Variables. (line 74) +* k, vi-like operation: Scrolling Commands. (line 87) +* keep-one-window: Basic Windows. (line 39) +* key bindings, customizing: Custom Key Bindings. (line 6) +* keys, describing: Miscellaneous Commands. + (line 13) +* keystrokes, recording: Invoking Info. (line 42) +* kill-node: Node Commands. (line 158) +* l: Node Commands. (line 51) +* last-menu-item: Selecting Xrefs. (line 22) +* last-node: Node Commands. (line 77) +* LEFT (an arrow key): Cursor Commands. (line 49) +* LEFT, in the echo area: The Echo Area. (line 23) +* Less-like key bindings: Invoking Info. (line 154) +* LFD, vi-like operation: Scrolling Commands. (line 78) +* list-visited-nodes: Node Commands. (line 172) +* local printer device: Printing Nodes. (line 18) +* m: Selecting Xrefs. (line 25) +* M-$, vi-like operation: The Echo Area. (line 31) +* M--: Miscellaneous Commands. + (line 68) +* M-0 ... M-9: Miscellaneous Commands. + (line 55) +* M-0, in the echo area, vi-like operation: The Echo Area. (line 27) +* M-0, vi-like operation: Selecting Xrefs. (line 22) +* M-1 ... M-9, vi-like operation: Selecting Xrefs. (line 12) +* M-<: Cursor Commands. (line 63) +* M->: Cursor Commands. (line 68) +* M-b, in Info windows: Cursor Commands. (line 57) +* M-b, in the echo area: The Echo Area. (line 42) +* M-b, vi-like operation: Cursor Commands. (line 63) +* M-BS, in the echo area: The Echo Area. (line 100) +* M-d, in the echo area: The Echo Area. (line 94) +* M-d, vi-like operation: Node Commands. (line 63) +* M-DEL, in the echo area: The Echo Area. (line 98) +* M-f, in Info windows: Cursor Commands. (line 53) +* M-f, in the echo area: The Echo Area. (line 36) +* M-f, vi-like operation: Selecting Xrefs. (line 39) +* M-g, vi-like operation: Selecting Xrefs. (line 62) +* M-h, in the echo area, vi-like operation: The Echo Area. (line 18) +* M-h, vi-like operation: Miscellaneous Commands. + (line 34) +* M-l, in the echo area, vi-like operation: The Echo Area. (line 23) +* M-r: Cursor Commands. (line 71) +* M-SPC, vi-like operation: Scrolling Commands. (line 37) +* M-t, vi-like operation: Node Commands. (line 59) +* M-TAB, in Info windows: Selecting Xrefs. (line 54) +* M-TAB, in the echo area: The Echo Area. (line 80) +* M-v: Scrolling Commands. (line 62) +* M-w, in the echo area, vi-like operation: The Echo Area. (line 36) +* M-x, in the echo area, vi-like operation: The Echo Area. (line 48) +* M-X, in the echo area, vi-like operation: The Echo Area. (line 94) +* M-y, in the echo area: The Echo Area. (line 113) +* menu, following: Invoking Info. (line 167) +* menu, following, from inside Info: Node Commands. (line 133) +* menu-digit: Selecting Xrefs. (line 12) +* menu-item: Selecting Xrefs. (line 25) +* menu-sequence: Node Commands. (line 133) +* move-to-next-xref: Selecting Xrefs. (line 47) +* move-to-prev-xref: Selecting Xrefs. (line 54) +* move-to-window-line: Cursor Commands. (line 71) +* moving the cursor: Cursor Commands. (line 6) +* n: Node Commands. (line 22) +* n, vi-like operation: Searching Commands. (line 34) +* negative arguments: Miscellaneous Commands. + (line 68) +* NEXT: Scrolling Commands. (line 37) +* next-index-match: Searching Commands. (line 60) +* next-line: Cursor Commands. (line 29) +* next-node: Node Commands. (line 22) +* next-window: Basic Windows. (line 12) +* node, selecting from the command line: Invoking Info. (line 93) +* nodes, selection of: Node Commands. (line 6) +* numeric arguments: Miscellaneous Commands. + (line 42) +* numeric arguments, negative: Miscellaneous Commands. + (line 68) +* O: Node Commands. (line 115) +* online help, using Info as: Invoking Info. (line 78) +* options, command line: Invoking Info. (line 6) +* outputting to a file: Invoking Info. (line 102) +* overriding default key bindings: Custom Key Bindings. (line 6) +* p: Node Commands. (line 28) +* PageDown: Scrolling Commands. (line 41) +* PageUp: Scrolling Commands. (line 114) +* prev-line: Cursor Commands. (line 33) +* prev-node: Node Commands. (line 28) +* prev-window: Basic Windows. (line 22) +* PREVIOUS: Scrolling Commands. (line 62) +* print-node: Printing Nodes. (line 13) +* printing: Printing Nodes. (line 6) +* printing characters, in the echo area: The Echo Area. (line 74) +* printing nodes to the local printer: Printing Nodes. (line 18) +* q: Miscellaneous Commands. + (line 92) +* quit: Miscellaneous Commands. + (line 92) +* quitting: Miscellaneous Commands. + (line 92) +* r: Selecting Xrefs. (line 39) +* redraw-display: Scrolling Commands. (line 123) +* relative Info file names: Invoking Info. (line 53) +* remembering user keystrokes: Invoking Info. (line 42) +* repeated search: Searching Commands. (line 34) +* replaying recorded keystrokes: Invoking Info. (line 118) +* RET, in Info windows: Selecting Xrefs. (line 62) +* RET, in the echo area: The Echo Area. (line 65) +* RET, vi-like operation: Scrolling Commands. (line 78) +* RIGHT (an arrow key): Cursor Commands. (line 45) +* RIGHT, in the echo area: The Echo Area. (line 18) +* S: Searching Commands. (line 27) +* s: Searching Commands. (line 12) +* screen, changing the height of: Miscellaneous Commands. + (line 99) +* scroll-backward: Scrolling Commands. (line 49) +* scroll-backward-page-only: Scrolling Commands. (line 62) +* scroll-backward-page-only-set-window: Scrolling Commands. (line 69) +* scroll-behavior: Variables. (line 81) +* scroll-forward: Scrolling Commands. (line 16) +* scroll-forward-page-only: Scrolling Commands. (line 37) +* scroll-forward-page-only-set-window: Scrolling Commands. (line 44) +* scroll-half-screen-down: Scrolling Commands. (line 92) +* scroll-half-screen-up: Scrolling Commands. (line 99) +* scroll-other-window: Basic Windows. (line 42) +* scroll-step: Variables. (line 101) +* scrolling: Scrolling Commands. (line 6) +* scrolling through node structure: Scrolling Commands. (line 104) +* search: Searching Commands. (line 12) +* search, and case-sensitivity: Searching Commands. (line 81) +* search, case-sensitive: Searching Commands. (line 27) +* search-backward: Searching Commands. (line 19) +* search-case-sensitively: Searching Commands. (line 27) +* search-next: Searching Commands. (line 34) +* search-previous: Searching Commands. (line 40) +* searching: Searching Commands. (line 6) +* Searching all indices: Invoking Info. (line 15) +* searching, in the indices: Searching Commands. (line 56) +* select-reference-this-line: Selecting Xrefs. (line 62) +* select-visited-node: Node Commands. (line 177) +* set-screen-height: Miscellaneous Commands. + (line 99) +* set-variable: Variables. (line 16) +* Shift-TAB, in Info windows: Selecting Xrefs. (line 57) +* Shift-TAB, in the echo area: The Echo Area. (line 80) +* show-footnotes: Miscellaneous Commands. + (line 109) +* show-index-match: Variables. (line 115) +* SPC, in Info windows: Scrolling Commands. (line 16) +* SPC, in the echo area: The Echo Area. (line 128) +* speech synthesizers: Invoking Info. (line 135) +* split-window: Basic Windows. (line 26) +* t: Node Commands. (line 59) +* TAB, in Info windows: Selecting Xrefs. (line 47) +* TAB, in the echo area: The Echo Area. (line 128) +* tile-windows: Basic Windows. (line 52) +* tiling: Basic Windows. (line 52) +* toggle-wrap: Scrolling Commands. (line 130) +* top-node: Node Commands. (line 59) +* u: Node Commands. (line 35) +* u, vi-like operation: Scrolling Commands. (line 99) +* universal-argument: Miscellaneous Commands. + (line 42) +* UP (an arrow key): Cursor Commands. (line 33) +* UP, vi-like operation: Scrolling Commands. (line 87) +* up-line: Scrolling Commands. (line 87) +* up-node: Node Commands. (line 35) +* variables, describing: Variables. (line 25) +* variables, setting: Variables. (line 16) +* version information: Invoking Info. (line 152) +* vi-like key bindings: Invoking Info. (line 154) +* view-file: Node Commands. (line 166) +* visible-bell: Variables. (line 124) +* w, vi-like operation: Scrolling Commands. (line 69) +* Where is an Info manual?: Invoking Info. (line 160) +* where-is: Miscellaneous Commands. + (line 21) +* windows, creating: Basic Windows. (line 26) +* windows, deleting: Basic Windows. (line 34) +* windows, manipulating: Window Commands. (line 6) +* windows, selecting: Basic Windows. (line 12) +* xref-item: Selecting Xrefs. (line 39) +* y, vi-like operation: Scrolling Commands. (line 87) +* z, vi-like operation: Scrolling Commands. (line 44) +* ZZ, vi-like operation: Miscellaneous Commands. + (line 92) + + + +Tag Table: +Node: Top1237 +Node: What is Info3658 +Node: Invoking Info4202 +Ref: --apropos4625 +Ref: --show-options9978 +Ref: --vi-keys11290 +Ref: command-line menu items11719 +Ref: Invoking Info-Footnote-112826 +Ref: Invoking Info-Footnote-212873 +Ref: Invoking Info-Footnote-313257 +Node: Cursor Commands13464 +Ref: Cursor Commands-Footnote-116236 +Ref: Cursor Commands-Footnote-216517 +Node: Scrolling Commands16668 +Node: Node Commands23034 +Ref: goto-node26801 +Ref: goto-invocation27376 +Node: Searching Commands30701 +Node: Xref Commands35605 +Node: Parts of an Xref36224 +Node: Selecting Xrefs38191 +Node: Window Commands40375 +Node: The Mode Line41316 +Node: Basic Windows43222 +Node: The Echo Area45745 +Ref: The Echo Area-Footnote-151204 +Node: Printing Nodes51293 +Node: Miscellaneous Commands52448 +Node: Variables56705 +Node: Custom Key Bindings63177 +Ref: Custom Key Bindings-Footnote-164312 +Node: Invoking infokey64513 +Ref: Invoking infokey-Footnote-165172 +Node: infokey source format65299 +Node: Copying This Manual69722 +Node: GNU Free Documentation License69968 +Node: Index92377 + +End Tag Table diff --git a/Master/texmf/doc/info/info.info b/Master/texmf/doc/info/info.info new file mode 100644 index 00000000000..2c483e6e47c --- /dev/null +++ b/Master/texmf/doc/info/info.info @@ -0,0 +1,1410 @@ +This is info.info, produced by makeinfo version 4.7 from info.texi. + + This file describes how to use Info, the on-line, menu-driven GNU +documentation system. + + Copyright (C) 1989, 1992, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +2003, 2004 Free Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.1 or any later version published by the Free Software + Foundation; with no Invariant Sections, with the Front-Cover texts + being "A GNU Manual", and with the Back-Cover Texts as in (a) + below. A copy of the license is included in the section entitled + "GNU Free Documentation License" in the Emacs manual. + + (a) The FSF's Back-Cover Text is: "You have freedom to copy and + modify this GNU Manual, like GNU software. Copies published by + the Free Software Foundation raise funds for GNU development." + + This document is part of a collection distributed under the GNU + Free Documentation License. If you want to distribute this + document separately from the collection, you can do so by adding a + copy of the license to the document, as described in section 6 of + the license. + +INFO-DIR-SECTION Texinfo documentation system +START-INFO-DIR-ENTRY +* Info: (info). How to use the documentation browsing system. +END-INFO-DIR-ENTRY + + +File: info.info, Node: Top, Next: Getting Started, Up: (dir) + +Info: An Introduction +********************* + +The GNU Project distributes most of its on-line manuals in the "Info +format", which you read using an "Info reader". You are probably using +an Info reader to read this now. + + If you are new to the Info reader and want to learn how to use it, +type the command `h' now. It brings you to a programmed instruction +sequence. + + To read about expert-level Info commands, type `n' twice. This +brings you to `Info for Experts', skipping over the `Getting Started' +chapter. + +* Menu: + +* Getting Started:: Getting started using an Info reader. +* Expert Info:: Info commands for experts. +* Creating an Info File:: How to make your own Info file. +* Index:: An index of topics, commands, and variables. + + +File: info.info, Node: Getting Started, Next: Expert Info, Prev: Top, Up: Top + +1 Getting Started +***************** + +This first part of the Info manual describes how to get around inside +of Info. The second part of the manual describes various advanced Info +commands, and how to write an Info as distinct from a Texinfo file. +The third part briefly explains how to generate Info files from Texinfo +files. + +* Menu: + +* Help-Small-Screen:: Starting Info on a Small Screen +* Help:: How to use Info +* Help-P:: Returning to the Previous node +* Help-^L:: The Space, DEL, B and ^L commands. +* Help-Inv:: Invisible text in Emacs Info. +* Help-M:: Menus +* Help-Xref:: Following cross-references +* Help-Int:: Some intermediate Info commands +* Help-Q:: Quitting Info + + +File: info.info, Node: Help-Small-Screen, Next: Help, Up: Getting Started + +1.1 Starting Info on a Small Screen +=================================== + +Since your terminal has a relatively small number of lines on its +screen, it is necessary to give you special advice at the beginning. + + If you see the text `--All----' near the bottom right corner of the +screen, it means the entire text you are looking at fits on the screen. +If you see `--Top----' instead, it means that there is more text below +that does not fit. To move forward through the text and see another +screen full, press <SPC>, the Space bar. To move back up, press the +key labeled `Backspace' or `DEL' (on some keyboards, this key might be +labeled `Delete'). + + Here are 40 lines of junk, so you can try <SPC> and <DEL> and see +what they do. At the end are instructions of what you should do next. + +This is line 20 +This is line 21 +This is line 22 +This is line 23 +This is line 24 +This is line 25 +This is line 26 +This is line 27 +This is line 28 +This is line 29 +This is line 30 +This is line 31 +This is line 32 +This is line 33 +This is line 34 +This is line 35 +This is line 36 +This is line 37 +This is line 38 +This is line 39 +This is line 40 +This is line 41 +This is line 42 +This is line 43 +This is line 44 +This is line 45 +This is line 46 +This is line 47 +This is line 48 +This is line 49 +This is line 50 +This is line 51 +This is line 52 +This is line 53 +This is line 54 +This is line 55 +This is line 56 +This is line 57 +This is line 58 +This is line 59 + + If you have managed to get here, go back to the beginning with `DEL' +(or <BACKSPACE>), and come back here again, then you understand the +about the `Space' and `Backspace' keys. So now type an `n' --just one +character; don't type the quotes and don't type the Return key +afterward-- to get to the normal start of the course. + + +File: info.info, Node: Help, Next: Help-P, Prev: Help-Small-Screen, Up: Getting Started + +1.2 How to use Info +=================== + +You are talking to the program Info, for reading documentation. + + There are two ways to use Info: from within Emacs or as a stand-alone +reader that you can invoke from a shell using the command `info'. + + Right now you are looking at one "Node" of Information. A node +contains text describing a specific topic at a specific level of +detail. This node's topic is "how to use Info". The mode line says +that this is node `Help' in the file `info'. + + The top line of a node is its "header". This node's header (look at +it now) says that the `Next' node after this one is the node called +`Help-P'. An advanced Info command lets you go to any node whose name +you know. In the stand-alone Info reader program, the header line +shows the names of this node and the info file as well. In Emacs, the +header line is duplicated in a special typeface, and the duplicate +remains at the top of the window all the time even if you scroll +through the node. + + Besides a `Next', a node can have a `Previous' or an `Up' links, or +both. As you can see, this node has all of these links. + + Now it is time to move on to the `Next' node, named `Help-P'. + +>> Type `n' to move there. Type just one character; + do not type the quotes and do not type a <RET> afterward. + +`>>' in the margin means it is really time to try a command. + +>> If you are in Emacs and have a mouse, and if you already practiced + typing `n' to get to the next node, click now with the middle + mouse button on the `Next' link to do the same "the mouse way". + + +File: info.info, Node: Help-P, Next: Help-^L, Prev: Help, Up: Getting Started + +1.3 Returning to the Previous node +================================== + +This node is called `Help-P'. The `Previous' node, as you see, is +`Help', which is the one you just came from using the `n' command. +Another `n' command now would take you to the next node, `Help-^L'. + +>> But do not type `n' yet. First, try the `p' command, + or click the middle mouse button on the `Prev' link. That + takes you to the `Previous' node. Then use `n' to return here. + + If you read this in Emacs, you will see an `Info' item in the menu +bar, close to its right edge. Clicking the mouse on the `Info' +menu-bar item opens a menu of commands which include `Next' and `Prev' +(and also some others which you didn't yet learn about). + + This all probably seems insultingly simple so far, but _please don't_ +start skimming. Things will get complicated soon enough! Also, please +do not try a new command until you are told it is time to. You could +make Info skip past an important warning that was coming up. + +>> Now do an `n', or click the middle mouse button on the `Next' + link, to get to the node `Help-^L' and learn more. + + +File: info.info, Node: Help-^L, Next: Help-Inv, Prev: Help-P, Up: Getting Started + +1.4 The Space, DEL, B and ^L commands +===================================== + +This node's mode line tells you that you are now at node `Help-^L', and +the header line tells you that `p' would get you back to `Help-P'. The +node's title is highlighted and may be underlined as well; it says what +the node is about. + + This is a big node and it does not all fit on your display screen. +You can tell that there is more that is not visible because you can see +the string `--Top-----' rather than `--All----' near the bottom right +corner of the screen. + + The <SPC>, <BACKSPACE> (or <DEL>)(1) and `b' commands exist to allow +you to "move around" in a node that does not all fit on the screen at +once. <SPC> moves forward, to show what was below the bottom of the +screen. <DEL> or <BACKSPACE> moves backward, to show what was above +the top of the screen (there is not anything above the top until you +have typed some spaces). + +>> Now try typing a <SPC> (afterward, type a <BACKSPACE> to + return here). + + When you type the <SPC>, the two lines that were at the bottom of the +screen appear at the top, followed by more lines. <DEL> or <BACKSPACE> +takes the two lines from the top and moves them to the bottom, +_usually_, but if there are not a full screen's worth of lines above +them they may not make it all the way to the bottom. + + If you are reading this in Emacs, note that the header line is always +visible, never scrolling off the display. That way, you can always see +the `Next', `Prev', and `Up' links, and you can conveniently go to one +of these links at any time by clicking the middle mouse button on the +link. + + <SPC> and <DEL> not only move forward and backward through the +current node. They also move between nodes. <SPC> at the end of a +node moves to the next node; <DEL> (or <BACKSPACE>) at the beginning of +a node moves to the previous node. In effect, these commands scroll +through all the nodes in an Info file as a single logical sequence. +You can read an entire manual top to bottom by just typing <SPC>, and +move backward through the entire manual from bottom to top by typing +<DEL> (or <BACKSPACE>). + + In this sequence, a node's subnodes appear following their parent. +If a node has a menu, <SPC> takes you into the subnodes listed in the +menu, one by one. Once you reach the end of a node, and have seen all +of its subnodes, <SPC> takes you to the next node or to the parent's +next node. + + Many keyboards nowadays have two scroll keys labeled `PageUp' and +`PageDown' (or maybe `Prior' and `Next'). If your keyboard has these +keys, you can use them to move forward and backward through the text of +one node, like <SPC> and <BACKSPACE> (or <DEL>). However, <PAGEUP> and +<PAGEDOWN> keys never scroll beyond the beginning or the end of the +current node. + + If your screen is ever garbaged, you can tell Info to display it +again by typing `C-l' (`Control-L', that is--hold down <CTRL> and type +`L' or `l'). + +>> Type `C-l' now. + + To move back to the beginning of the node you are on, you can type +the <BACKSPACE> key (or <DEL>) many times. You can also type `b' just +once. `b' stands for "beginning." + +>> Try that now. (We have put in enough verbiage to push this past + the first screenful, but screens are so big nowadays that perhaps it + isn't enough. You may need to shrink your Emacs or Info window.) + Then come back, by typing <SPC> one or more times. + + If your screen is very tall, all of this node might fit at once. In +that case, `b' won't do anything. But you could observe the effect of +the `b' key if you use a smaller window. + + You have just learned a considerable number of commands. If you want +to use one but have trouble remembering which, you should type a `?' +(in Emacs it runs the `Info-summary' command) which displays a brief +list of commands. When you are finished looking at the list, make it +go away by typing a <SPC> repeatedly. + +>> Type a <?> now. Press <SPC> to see consecutive screenfuls of + the list until finished. Then type <SPC> several times. If + you are using Emacs, the help will then go away automatically. + + (If you are using the stand-alone Info reader, type `C-x 0' to return +here, that is--press and hold <CTRL>, type an `x', then release <CTRL> +and `x', and press `0'--a zero, not the letter "o".) + + From now on, you will encounter large nodes without warning, and will +be expected to know how to use <SPC> and <BACKSPACE> to move around in +them without being told. Since not all terminals have the same size +screen, it would be impossible to warn you anyway. + +>> Now type `n', or click the middle mouse button on the `Next' link, + to visit the next node. + + ---------- Footnotes ---------- + + (1) The key which we call "Backspace or DEL" in this manual is +labeled differently on different keyboards. Look for a key which is a +little ways above the <ENTER> or <RET> key and which you normally use +outside Emacs to erase the character before the cursor, i.e. the +character you typed last. It might be labeled `Backspace' or `<-' or +`DEL', or sometimes `Delete'. + + +File: info.info, Node: Help-Inv, Next: Help-M, Prev: Help-^L, Up: Getting Started + +1.5 Invisible text in Emacs Info +================================ + +Before discussing menus, we need to make some remarks that are only +relevant to users reading Info using Emacs. Users of the stand-alone +version can skip this node by typing `]' now. + + In Emacs, certain text that appears in the stand-alone version is +normally hidden, technically because it has the `invisibility' +property. Invisible text is really a part of the text. It becomes +visible (by default) after killing and yanking, it appears in printed +output, it gets saved to file just like any other text, and so on. +Thus it is useful to know it is there. + + You can make invisible text visible by using the command `M-x +visible-mode'. Visible mode is a minor mode, so using the command a +second time will make the text invisible again. Watch the effects of +the command on the "menu" below and the top line of this node. + + If you prefer to _always_ see the invisible text, you can set +`Info-hide-note-references' to `nil'. Enabling Visible mode +permanently is not a real alternative, because Emacs Info also uses +(although less extensively) another text property that can change the +text being displayed, the `display' property. Only the invisibility +property is affected by Visible mode. When, in this tutorial, we refer +to the `Emacs' behavior, we mean the _default_ Emacs behavior. + + Now type `]', to learn about the `]' and `[' commands. + +* Menu: + +* ]: Help-]. Node telling about ]. +* stuff: Help-]. Same node. +* Help-]:: Yet again, same node. + + +File: info.info, Node: Help-], Up: Help-Inv + +1.5.1 The `]' and `[' commands +------------------------------ + +If you type `n' now, you get an error message saying that this node has +no next node. Similarly, if you type `p', the error message tells you +that there is no previous node. (The exact message depends on the Info +reader you use.) This is because `n' and `p' carry you to the next and +previous node _at the same level_. The present node is contained in a +menu (see next) of the node you came from, and hence is considered to +be at a lower level. It is the only node in the previous node's menu +(even though it was listed three times). Hence it has no next or +previous node that `n' or `p' could move to. + + If you systematically move through a manual by typing `n', you run +the risk of skipping many nodes. You do not run this risk if you +systematically use `<SPC>', because, when you scroll to the bottom of a +node and type another `<SPC>', then this carries you to the following +node in the manual _regardless of level_. If you immediately want to +go to that node, without having to scroll to the bottom of the screen +first, you can type `]'. + + Similarly, `<BACKSPACE>' carries you to the preceding node regardless +of level, after you scrolled to the beginning of the present node. If +you want to go to the preceding node immediately, you can type `['. + + For instance, typing this sequence will come back here in three steps: +`[ n ['. To do the same backward, type `] p ]'. + + Now type `]' to go to the next node and learn about menus. + + +File: info.info, Node: Help-M, Next: Help-Xref, Prev: Help-Inv, Up: Getting Started + +1.6 Menus and the `m' command +============================= + +With only the `n' (next), `p' (previous), `<SPC>', `<BACKSPACE>', `]' +and `[' commands for moving between nodes, nodes are restricted to a +linear sequence. Menus allow a branching structure. A menu is a list +of other nodes you can move to. It is actually just part of the text +of the node formatted specially so that Info can interpret it. The +beginning of a menu is always identified by a line which starts with +`* Menu:'. A node contains a menu if and only if it has a line in it +which starts that way. The only menu you can use at any moment is the +one in the node you are in. To use a menu in any other node, you must +move to that node first. + + After the start of the menu, each line that starts with a `*' +identifies one subtopic. The line usually contains a brief name for +the subtopic (followed by a `:', normally hidden in Emacs), the name of +the node that talks about that subtopic (again, normally hidden in +Emacs), and optionally some further description of the subtopic. Lines +in the menu that do not start with a `*' have no special meaning--they +are only for the human reader's benefit and do not define additional +subtopics. Here is an example: + + * Foo: Node about FOO. This tells about FOO. + + The subtopic name is Foo, and the node describing it is `Node about +FOO'. The rest of the line is just for the reader's Information. [[ +But this line is not a real menu item, simply because there is no line +above it which starts with `* Menu:'. Also, in a real menu item, the +`*' would appear at the very start of the line. This is why the +"normally hidden" text in Emacs, namely `: Node about FOO.', is +actually visible in this example, even when Visible mode is off.]] + + When you use a menu to go to another node (in a way that will be +described soon), what you specify is the subtopic name, the first thing +in the menu line. Info uses it to find the menu line, extracts the +node name from it, and goes to that node. The reason that there is +both a subtopic name and a node name is that the node name must be +meaningful to the computer and may therefore have to be ugly looking. +The subtopic name can be chosen just to be convenient for the user to +specify. Often the node name is convenient for the user to specify and +so both it and the subtopic name are the same. There is an +abbreviation for this: + + * Foo:: This tells about FOO. + +This means that the subtopic name and node name are the same; they are +both `Foo'. (The `::' is normally hidden in Emacs.) + +>> Now use <SPC> to find the menu in this node, then come back to + the front with a `b' and some <SPC>s. As you see, a menu is + actually visible in its node. If you cannot find a menu in a node + by looking at it, then the node does not have a menu and the + `m' command is not available. + + If you keep typing <SPC> once the menu appears on the screen, it will +move to another node (the first one in the menu). If that happens, +type <BACKSPACE> to come back. + + The command to go to one of the subnodes is `m'. This is very +different from the commands you have used: it is a command that prompts +you for more input. + + The Info commands you know do not need additional input; when you +type one of them, Info processes it instantly and then is ready for +another command. The `m' command is different: it needs to know the +"name of the subtopic". Once you have typed `m', Info tries to read +the subtopic name. + + Now, in the stand-alone Info, look for the line containing many +dashes near the bottom of the screen. (This is the stand-alone +equivalent for the mode line in Emacs.) There is one more line beneath +that one, but usually it is blank. (In Emacs, this is the echo area.) +When it is blank, Info is ready for a command, such as `n' or `b' or +<SPC> or `m'. If that line contains text ending in a colon, it means +Info is reading more input for the last command. You can't type an +Info command then, because Info is trying to read input, not commands. +You must either give the input and finish the command you started, or +type `Control-g' to cancel the command. When you have done one of +those things, the input entry line becomes blank again. Then you can +type Info commands again. + + The command to go to a subnode via a menu is `m'. After you type the +`m', the line at the bottom of the screen says `Menu item: '. You must +then type the name of the subtopic you want, and end it with a <RET>. +In Emacs, `m' runs the command `Info-menu'. + + You can abbreviate the subtopic name. If the abbreviation is not +unique, the first matching subtopic is chosen. Some menus put the +shortest possible abbreviation for each subtopic name in capital +letters, so you can see how much you need to type. It does not matter +whether you use upper case or lower case when you type the subtopic. +You should not put any spaces at the end, or inside of the item name, +except for one space where a space appears in the item in the menu. + + You can also use the "completion" feature to help enter the subtopic +name. If you type the <TAB> key after entering part of a name, it will +fill in more of the name--as much as Info can deduce from the part you +have entered. + + If you move the cursor to one of the menu subtopic lines, then you do +not need to type the argument: you just type a <RET>, and it stands for +the subtopic of the line you are on. You can also click the middle +mouse button directly on the subtopic line to go there. + + Here is a menu to give you a chance to practice. This menu gives you +three ways of going to one place, Help-FOO: + +* Menu: + +* Foo: Help-FOO. A node you can visit for fun. +* Bar: Help-FOO. We have made two ways to get to the same place. +* Help-FOO:: And yet another! + + (Turn Visible mode on if you are using Emacs.) + +>> Now type just an `m' and see what happens: + + Now you are "inside" an `m' command. Commands cannot be used now; +the next thing you will type must be the name of a subtopic. + + You can change your mind about doing the `m' by typing `Control-g'. + +>> Try that now; notice the bottom line clear. + +>> Then type another `m'. + +>> Now type `BAR', the item name. Do not type <RET> yet. + + While you are typing the item name, you can use the <DEL> (or +<BACKSPACE>) key to cancel one character at a time if you make a +mistake. + +>> Press <DEL> to cancel the `R'. You could type another `R' + to replace it. But you do not have to, since `BA' is a valid + abbreviation. + +>> Now you are ready to go. Type a <RET>. + + After visiting `Help-FOO', you should return here. + + Another way to move to the menu subtopic lines and between them is to +type <TAB>. Each time you type a <TAB>, you move to the next subtopic +line. To move to a previous subtopic line, type `M-<TAB>'--that is, +press and hold the <META> key and then press <TAB>. (On some +keyboards, the <META> key might be labeled `Alt'.) + + Once you move cursor to a subtopic line, press <RET> to go to that +subtopic's node. + + If your terminal supports a mouse, you have yet another way of going +to a subtopic. Move your mouse pointer to the subtopic line, somewhere +between the beginning `*' and the colon `:' which ends the subtopic's +brief name. You will see the subtopic's name change its appearance +(usually, its background color will change), and the shape of the mouse +pointer will change if your platform supports that. After a while, if +you leave the mouse on that spot, a small window will pop up, saying +"Mouse-2: go to that node", or the same message may appear at the +bottom of the screen. + + `Mouse-2' is the second button of your mouse counting from the +left--the middle button on a 3-button mouse. (On a 2-button mouse, you +may have to press both buttons together to "press the middle button".) +The message tells you pressing `Mouse-2' with the current position of +the mouse pointer (on subtopic in the menu) will go to that subtopic. + + More generally, `Mouse-2' in an Info buffer finds the nearest link to +another node and goes there. For example, near a cross reference it +acts like `f', in a menu it acts like `m', on the node's header line it +acts like `n', `p', or `u', etc. At end of the node's text `Mouse-2' +moves to the next node, or up if there's no next node. + +>> Type `n' to see more commands. + + +File: info.info, Node: Help-FOO, Up: Help-M + +1.6.1 The `u' command +--------------------- + +Congratulations! This is the node `Help-FOO'. It has an `Up' pointer +`Help-M', the node you just came from via the `m' command. This is the +usual convention--the nodes you reach from a menu have `Up' nodes that +lead back to the menu. Menus move Down in the tree, and `Up' moves Up. +`Previous', on the other hand, is usually used to "stay on the same +level but go backwards". + + You can go back to the node `Help-M' by typing the command `u' for +"Up" (the Emacs command run by `u' is `Info-up'). That puts you at the +_front_ of the node--to get back to where you were reading you have to +type some <SPC>s. (Some Info readers, such as the one built into +Emacs, put you at the same place where you were reading in `Help-M'.) + + Another way to go Up is to click `Mouse-2' on the `Up' pointer shown +in the header line (provided that you have a mouse). + +>> Now type `u' to move back up to `Help-M'. + + +File: info.info, Node: Help-Xref, Next: Help-Int, Prev: Help-M, Up: Getting Started + +1.7 Following Cross-References +============================== + +In Info documentation, you will see many "cross references". Cross +references look like this: *Note Cross: Help-Cross. That text is a +real, live cross reference, whose name is `Cross' and which points to +the node named `Help-Cross'. (The node name is hidden in Emacs. Do +`M-x visible-mode' to show or hide it.) + + There are two ways to follow a cross reference. You can move the +cursor to it and press <RET>, just as in a menu. <RET> follows the +cross reference that the cursor is on. Or you can type `f' and then +specify the name of the cross reference (in this case, `Cross') as an +argument. In Emacs Info, `f' runs `Info-follow-reference', + + In the `f' command, you select the cross reference with its name, so +it does not matter where the cursor was. If the cursor is on or near a +cross reference, `f' suggests that reference name in parentheses as the +default; typing <RET> will follow that reference. However, if you type +a different reference name, `f' will follow the other reference which +has that name. + +>> Type `f', followed by `Cross', and then <RET>. + + As you enter the reference name, you can use the <DEL> (or +<BACKSPACE>) key to edit your input. If you change your mind about +following any reference, you can use `Control-g' to cancel the command. +Completion is available in the `f' command; you can complete among all +the cross reference names in the current node by typing a <TAB>. + + To get a list of all the cross references in the current node, you +can type `?' after an `f'. The `f' continues to await a cross +reference name even after displaying the list, so if you don't actually +want to follow a reference, you should type a `Control-g' to cancel the +`f'. + +>> Type `f?' to get a list of the cross references in this node. Then + type a `Control-g' and see how the `f' gives up. + + The <TAB> and `M-<TAB>' key, which move between menu items in a menu, +also move between cross references outside of menus. + + Sometimes a cross reference (or a node) can lead to another file (in +other words another "manual"), or, on occasion, even a file on a remote +machine (although Info files distributed with Emacs or the stand-alone +Info avoid using remote links). Such a cross reference looks like +this: *Note Overview of Texinfo: (texinfo)Top. (After following this +link, type `l' to get back to this node.) Here the name `texinfo' +between parentheses (shown in the stand-alone version) refers to the +file name. This file name appears in cross references and node names +if it differs from the current file. In Emacs, the file name is hidden +(along with other text). (Use `M-x visible-mode' to show or hide it.) + + The remainder of this node applies only to the Emacs version. If you +use the stand-alone version, you can type `n' immediately. + + To some users, switching manuals is a much bigger switch than +switching sections. These users like to know that they are going to be +switching to another manual (and which one) before actually doing so, +especially given that, if one does not notice, Info commands like `t' +(see the next node) can have confusing results. + + If you put your mouse over the cross reference and if the cross +reference leads to a different manual, then the information appearing +in a separate box (tool tip) or in the echo area, will mention the file +the cross reference will carry you to (between parentheses). This is +also true for menu subtopic names. If you have a mouse, just leave it +over the `Overview' cross reference above and watch what happens. + + If you always like to have that information available without having +to move your mouse over the cross reference, set +`Info-hide-note-references' to a value other than t (*note Emacs Info +Variables::). You might also want to do that if you have a lot of +cross references to files on remote machines and have non-permanent or +slow access, since otherwise you might not be able to distinguish +between local and remote links. + +>> Now type `n' to learn more commands. + + +File: info.info, Node: Help-Int, Next: Help-Q, Prev: Help-Xref, Up: Getting Started + +1.8 Some intermediate Info commands +=================================== + +The introductory course is almost over; please continue a little longer +to learn some intermediate-level commands. + + Most Info files have an index, which is actually a large node +containing little but a menu. The menu has one menu item for each +topic listed in the index. (As a special feature, menus for indices +may also include the line number within the node of the index entry. +This allows Info readers to go to the exact line of an entry, not just +the start of the containing node.) + + You can get to the index from the main menu of the file with the `m' +command; then you can use the `m' command again in the index node to go +to the node that describes the topic you want. + + There is also a short-cut Info command, `i', which does all of that +for you. It searches the index for a given topic (a string) and goes +to the node which is listed in the index for that topic. *Note Info +Search::, for a full explanation. + + If you have been moving around to different nodes and wish to retrace +your steps, the `l' command (`l' for "last") will do that, one +node-step at a time. As you move from node to node, Info records the +nodes where you have been in a special history list. The `l' command +revisits nodes in the history list; each successive `l' command moves +one step back through the history. + + In Emacs, `l' runs the command `Info-last'. + +>> Try typing `p p n' and then three `l''s, pausing in between +to see what each `l' does. You should wind up right back here. + + Note the difference between `l' and `p': `l' moves to where _you_ +last were, whereas `p' always moves to the node which the header says +is the `Previous' node (from this node, the `Prev' link leads to +`Help-Xref'). + + The `d' command (`Info-directory' in Emacs) gets you instantly to the +Directory node. This node, which is the first one you saw when you +entered Info, has a menu which leads (directly or indirectly, through +other menus), to all the nodes that exist. The Directory node lists +all the manuals and other Info documents that are, or could be, +installed on your system. + +>> Try doing a `d', then do an `l' to return here (yes, + _do_ return). + + The `t' command moves to the `Top' node of the manual. This is +useful if you want to browse the manual's main menu, or select some +specific top-level menu item. The Emacs command run by `t' is +`Info-top-node'. + + Clicking `Mouse-2' on or near a cross reference also follows the +reference. You can see that the cross reference is mouse-sensitive by +moving the mouse pointer to the reference and watching how the +underlying text and the mouse pointer change in response. + +>> Now type `n' to see the last node of the course. + + *Note Expert Info::, for more advanced Info features. + + +File: info.info, Node: Expert Info, Next: Creating an Info File, Prev: Getting Started, Up: Top + +2 Info for Experts +****************** + +This chapter describes various Info commands for experts. (If you are +using a stand-alone Info reader, there are additional commands specific +to it, which are documented in several chapters of *Note GNU Info: +(info-stnd)Top.) + + This chapter also explains how to write an Info as distinct from a +Texinfo file. (However, in most cases, writing a Texinfo file is +better, since you can use it to make a printed manual or produce other +formats, such as HTML and DocBook, as well as for generating Info +files.) *Note Overview of Texinfo: (texinfo)Top. + +* Menu: + +* Advanced:: Advanced Info commands: g, e, and 1 - 9. +* Info Search:: How to search Info documents for specific subjects. +* Add:: Describes how to add new nodes to the hierarchy. + Also tells what nodes look like. +* Menus:: How to add to or create menus in Info nodes. +* Cross-refs:: How to add cross-references to Info nodes. +* Tags:: How to make tags tables for Info files. +* Checking:: Checking an Info File +* Emacs Info Variables:: Variables modifying the behavior of Emacs Info. + + +File: info.info, Node: Advanced, Next: Info Search, Up: Expert Info + +2.1 Advanced Info Commands +========================== + +Here are some more Info commands that make it easier to move around. + +`g' goes to a node by name +-------------------------- + +If you know a node's name, you can go there by typing `g', the name, +and <RET>. Thus, `gTop<RET>' would go to the node called `Top' in this +file. (This is equivalent to `t', see *Note Help-Int::.) +`gAdvanced<RET>' would come back here. `g' in Emacs runs the command +`Info-goto-node'. + + Unlike `m', `g' does not allow the use of abbreviations. But it does +allow completion, so you can type <TAB> to complete a partial node name. + + To go to a node in another file, you can include the file name in the +node name by putting it at the front, in parentheses. Thus, +`g(dir)Top<RET>' would go to the Info Directory node, which is the node +`Top' in the Info file `dir'. Likewise, `g(emacs)Top<RET>' goes to the +top node of the Emacs manual. + + The node name `*' specifies the whole file. So you can look at all +of the current file by typing `g*<RET>' or all of any other file with +`g(FILENAME)<RET>'. + +`1' - `9' choose a menu subtopic by its number +---------------------------------------------- + +If you begrudge each character of type-in which your system requires, +you might like to use the commands `1', `2', `3', `4', ..., `9'. They +are short for the `m' command together with a name of a menu subtopic. +`1' goes through the first item in the current node's menu; `2' goes +through the second item, etc. In the stand-alone reader, `0' goes +through the last menu item; this is so you need not count how many +entries are there. In Emacs, the digit keys run the command +`Info-nth-menu-item'. + + If your display supports multiple fonts, colors or underlining, and +you are using Emacs' Info mode to read Info files, the third, sixth and +ninth menu items have a `*' that stands out, either in color or in some +other attribute, such as underline; this makes it easy to see at a +glance which number to use for an item. + + Some terminals don't support either multiple fonts, colors or +underlining. If you need to actually count items, it is better to use +`m' instead, and specify the name, or use <TAB> to quickly move between +menu items. + +`e' makes Info document editable +-------------------------------- + +The Info command `e' changes from Info mode to an ordinary Emacs +editing mode, so that you can edit the text of the current node. Type +`C-c C-c' to switch back to Info. The `e' command is allowed only if +the variable `Info-enable-edit' is non-`nil'. + + The `e' command only works in Emacs, where it runs the command +`Info-edit'. The stand-alone Info reader doesn't allow you to edit the +Info file, so typing `e' there goes to the end of the current node. + +`M-n' creates a new independent Info buffer in Emacs +---------------------------------------------------- + +If you are reading Info in Emacs, you can select a new independent Info +buffer in another window by typing `M-n'. The new buffer starts out as +an exact copy of the old one, but you will be able to move +independently between nodes in the two buffers. (In Info mode, `M-n' +runs the Emacs command `clone-buffer'.) + + In Emacs Info, you can also produce new Info buffers by giving a +numeric prefix argument to the `m' and `g' commands. `C-u m' and `C-u +g' go to a new node in exactly the same way that `m' and `g' do, but +they do so in a new Info buffer which they select in another window. + + +File: info.info, Node: Info Search, Next: Add, Prev: Advanced, Up: Expert Info + +2.2 How to search Info documents for specific subjects +====================================================== + +The commands which move between and inside nodes allow you to read the +entire manual or its large portions. But what if you need to find some +information in the manual as fast as you can, and you don't know or +don't remember in what node to look for it? This need arises when you +use a manual as a "reference", or when it is impractical to read the +entire manual before you start using the programs it describes. + + Info has powerful searching facilities that let you find things +quickly. You can search either the manual indices or its text. + + Since most subjects related to what the manual describes should be +indexed, you should try the index search first. The `i' command +prompts you for a subject and then looks up that subject in the +indices. If it finds an index entry with the subject you typed, it +goes to the node to which that index entry points. You should browse +through that node to see whether the issue you are looking for is +described there. If it isn't, type `,' one or more times to go through +additional index entries which match your subject. + + The `i' command finds all index entries which include the string you +typed _as a substring_. For each match, Info shows in the echo area +the full index entry it found. Often, the text of the full index entry +already gives you enough information to decide whether it is relevant +to what you are looking for, so we recommend that you read what Emacs +shows in the echo area before looking at the node it displays. + + Since `i' looks for a substring, you can search for subjects even if +you are not sure how they are spelled in the index. For example, +suppose you want to find something that is pertinent to commands which +complete partial input (e.g., when you type <TAB>). If you want to +catch index entries that refer to "complete", "completion", and +"completing", you could type `icomplet<RET>'. + + Info documents which describe programs should index the commands, +options, and key sequences that the program provides. If you are +looking for a description of a command, an option, or a key, just type +their names when `i' prompts you for a topic. For example, if you want +to read the description of what the `C-f' key does, type `i C - f +<RET>'. Here `C-f' are 3 literal characters `C', `-', and `f', not the +"Control-f" command key you type inside Emacs to run the command bound +to `C-f'. + + In Emacs, `i' runs the command `Info-index'. + + If you don't know what manual documents something, try the `M-x +info-apropos' command. It prompts for a string and then looks up that +string in all the indices of all the Info documents installed on your +system. + + The `s' command allows you to search a whole file for a string. It +switches to the next node if and when that is necessary. You type `s' +followed by the string to search for, terminated by <RET>. To search +for the same string again, just `s' followed by <RET> will do. The +file's nodes are scanned in the order they are in in the file, which +has no necessary relationship to the order that they may be in the tree +structure of menus and `next' pointers. But normally the two orders +are not very different. In any case, you can always do a `b' to find +out what node you have reached, if the header is not visible (this can +happen, because `s' puts your cursor at the occurrence of the string, +not at the beginning of the node). + + In Emacs, `Meta-s' is equivalent to `s'. That is for compatibility +with other GNU packages that use `M-s' for a similar kind of search +command. Both `s' and `M-s' run in Emacs the command `Info-search'. + + +File: info.info, Node: Add, Next: Menus, Prev: Info Search, Up: Expert Info + +2.3 Adding a new node to Info +============================= + +To add a new topic to the list in the Info directory, you must: + + 1. Create some nodes, in some file, to document that topic. + + 2. Put that topic in the menu in the directory. *Note Menu: Menus. + + Usually, the way to create the nodes is with Texinfo (*note Overview +of Texinfo: (texinfo)Top.); this has the advantage that you can also +make a printed manual or HTML from them. You would use the +`@dircategory' and `@direntry' commands to put the manual into the Info +directory. However, if you want to edit an Info file manually and +install it manually, here is how. + + The new node can live in an existing documentation file, or in a new +one. It must have a `^_' character before it (invisible to the user; +this node has one but you cannot see it), and it ends with either a +`^_', a `^L' ("formfeed"), or the end of file.(1) + + The `^_' starting a node must be followed by a newline or a `^L' +newline, after which comes the node's header line. The header line +must give the node's name (by which Info finds it), and state the names +of the `Next', `Previous', and `Up' nodes (if there are any). As you +can see, this node's `Up' node is the node `Expert Info'. The `Next' +node is `Menus'. + + The keywords "Node", "Next", "Previous", and "Up" may appear in any +order, anywhere in the header line, but the recommended order is the +one in this sentence. Each keyword must be followed by a colon, spaces +and tabs, and then the appropriate name. The name may be terminated +with a tab, a comma, or a newline. A space does not end it; node names +may contain spaces. The case of letters in the names is insignificant. + + A node name has two forms. A node in the current file is named by +what appears after the `Node: ' in that node's first line. For +example, this node's name is `Add'. A node in another file is named by +`(FILENAME)NODE-WITHIN-FILE', as in `(info)Add' for this node. If the +file name starts with "./", then it is relative to the current +directory; otherwise, it is relative starting from the standard +directory for Info files of your site. The name `(FILENAME)Top' can be +abbreviated to just `(FILENAME)'. By convention, the name `Top' is used +for the "highest" node in any single file--the node whose `Up' points +out of the file. The `Directory' node is `(dir)', it points to a file +`dir' which holds a large menu listing all the Info documents installed +on your site. The `Top' node of a document file listed in the +`Directory' should have an `Up: (dir)' in it. + + The node name `*' is special: it refers to the entire file. Thus, +`g*' shows you the whole current file. The use of the node `*' is to +make it possible to make old-fashioned, unstructured files into nodes +of the tree. + + The `Node:' name, in which a node states its own name, must not +contain a file name, since when Info searches for a node, it does not +expect a file name to be there. The `Next', `Previous' and `Up' names +may contain them. In this node, since the `Up' node is in the same +file, it was not necessary to use one. + + Note that the nodes in this file have a file name in the header line. +The file names are ignored by Info, but they serve as comments to help +identify the node for the user. + + ---------- Footnotes ---------- + + (1) If you put in a `^L' to end a new node, be sure that there is a +`^_' after it to start the next one, since `^L' cannot _start_ a node. +Also, a nicer way to make a node boundary be a page boundary as well is +to put a `^L' _right after_ the `^_'. + + +File: info.info, Node: Menus, Next: Cross-refs, Prev: Add, Up: Expert Info + +2.4 How to Create Menus +======================= + +Any node in the Info hierarchy may have a "menu"--a list of subnodes. +The `m' command searches the current node's menu for the topic which it +reads from the terminal. + + A menu begins with a line starting with `* Menu:'. The rest of the +line is a comment. After the starting line, every line that begins +with a `* ' lists a single topic. The name of the topic-what the user +must type at the `m''s command prompt to select this topic--comes right +after the star and space, and is followed by a colon, spaces and tabs, +and the name of the node which discusses that topic. The node name, +like node names following `Next', `Previous' and `Up', may be +terminated with a tab, comma, or newline; it may also be terminated +with a period. + + If the node name and topic name are the same, then rather than giving +the name twice, the abbreviation `* NAME::' may be used (and should be +used, whenever possible, as it reduces the visual clutter in the menu). + + It is considerate to choose the topic names so that they differ from +each other very near the beginning--this allows the user to type short +abbreviations. In a long menu, it is a good idea to capitalize the +beginning of each item name which is the minimum acceptable +abbreviation for it (a long menu is more than 5 or so entries). + + The nodes listed in a node's menu are called its "subnodes", and it +is their "superior". They should each have an `Up:' pointing at the +superior. It is often useful to arrange all or most of the subnodes in +a sequence of `Next' and `Previous' pointers so that someone who wants +to see them all need not keep revisiting the Menu. + + The Info Directory is simply the menu of the node `(dir)Top'--that +is, node `Top' in file `.../info/dir'. You can put new entries in that +menu just like any other menu. The Info Directory is _not_ the same as +the file directory called `info'. It happens that many of Info's files +live in that file directory, but they do not have to; and files in that +directory are not automatically listed in the Info Directory node. + + Also, although the Info node graph is claimed to be a "hierarchy", in +fact it can be _any_ directed graph. Shared structures and pointer +cycles are perfectly possible, and can be used if they are appropriate +to the meaning to be expressed. There is no need for all the nodes in +a file to form a connected structure. In fact, this file has two +connected components. You are in one of them, which is under the node +`Top'; the other contains the node `Help' which the `h' command goes +to. In fact, since there is no garbage collector, nothing terrible +happens if a substructure is not pointed to, but such a substructure is +rather useless since nobody can ever find out that it exists. + + +File: info.info, Node: Cross-refs, Next: Tags, Prev: Menus, Up: Expert Info + +2.5 Creating Cross References +============================= + +A cross reference can be placed anywhere in the text, unlike a menu +item which must go at the front of a line. A cross reference looks +like a menu item except that it has `*note' instead of `*'. It +_cannot_ be terminated by a `)', because `)''s are so often part of +node names. If you wish to enclose a cross reference in parentheses, +terminate it with a period first. Here are two examples of cross +references pointers: + + *Note details: commands. (See *note 3: Full Proof.) + +_These are just examples._ The places they "lead to" do not really +exist! + +* Menu: + +* Help-Cross:: Target of a cross-reference. + + +File: info.info, Node: Help-Cross, Up: Cross-refs + +2.5.1 The node reached by the cross reference in Info +----------------------------------------------------- + +This is the node reached by the cross reference named `Cross'. + + While this node is specifically intended to be reached by a cross +reference, most cross references lead to nodes that "belong" someplace +else far away in the structure of an Info document. So you cannot +expect this node to have a `Next', `Previous' or `Up' links pointing +back to where you came from. In general, the `l' (el) command is the +only way to get back there. + +>> Type `l' to return to the node where the cross reference was. + + +File: info.info, Node: Help-Q, Prev: Help-Int, Up: Getting Started + +2.6 Quitting Info +================= + +To get out of Info, back to what you were doing before, type `q' for +"Quit". This runs `Info-exit' in Emacs. + + This is the end of the basic course on using Info. You have learned +how to move in an Info document, and how to follow menus and cross +references. This makes you ready for reading manuals top to bottom, as +new users should do when they learn a new package. + + Another set of Info commands is useful when you need to find +something quickly in a manual--that is, when you need to use a manual +as a reference rather than as a tutorial. We urge you to learn these +search commands as well. If you want to do that now, follow this cross +reference to *Note Info Search::. + + Yet another set of commands are meant for experienced users; you can +find them by looking in the Directory node for documentation on Info. +Finding them will be a good exercise in using Info in the usual manner. + +>> Type `d' to go to the Info directory node; then type + `mInfo' and Return, to get to the node about Info and + see what other help is available. + + +File: info.info, Node: Tags, Next: Checking, Prev: Cross-refs, Up: Expert Info + +2.7 Tags Tables for Info Files +============================== + +You can speed up the access to nodes of a large Info file by giving it +a tags table. Unlike the tags table for a program, the tags table for +an Info file lives inside the file itself and is used automatically +whenever Info reads in the file. + + To make a tags table, go to a node in the file using Emacs Info mode +and type `M-x Info-tagify'. Then you must use `C-x C-s' to save the +file. Info files produced by the `makeinfo' command that is part of +the Texinfo package always have tags tables to begin with. + + Once the Info file has a tags table, you must make certain it is up +to date. If you edit an Info file directly (as opposed to editing its +Texinfo source), and, as a result of deletion of text, any node moves +back more than a thousand characters in the file from the position +recorded in the tags table, Info will no longer be able to find that +node. To update the tags table, use the `Info-tagify' command again. + + An Info file tags table appears at the end of the file and looks like +this: + + ^_^L + Tag Table: + File: info, Node: Cross-refs^?21419 + File: info, Node: Tags^?22145 + ^_ + End Tag Table + +Note that it contains one line per node, and this line contains the +beginning of the node's header (ending just after the node name), a +`DEL' character, and the character position in the file of the +beginning of the node. + + +File: info.info, Node: Checking, Next: Emacs Info Variables, Prev: Tags, Up: Expert Info + +2.8 Checking an Info File +========================= + +When creating an Info file, it is easy to forget the name of a node when +you are making a pointer to it from another node. If you put in the +wrong name for a node, this is not detected until someone tries to go +through the pointer using Info. Verification of the Info file is an +automatic process which checks all pointers to nodes and reports any +pointers which are invalid. Every `Next', `Previous', and `Up' is +checked, as is every menu item and every cross reference. In addition, +any `Next' which does not have a `Previous' pointing back is reported. +Only pointers within the file are checked, because checking pointers to +other files would be terribly slow. But those are usually few. + + To check an Info file, do `M-x Info-validate' while looking at any +node of the file with Emacs Info mode. + + +File: info.info, Node: Emacs Info Variables, Prev: Checking, Up: Expert Info + +2.9 Emacs Info-mode Variables +============================= + +The following variables may modify the behavior of Info-mode in Emacs; +you may wish to set one or several of these variables interactively, or +in your `~/.emacs' init file. *Note Examining and Setting Variables: +(emacs)Examining. The stand-alone Info reader program has its own set +of variables, described in *Note Manipulating Variables: +(info-stnd)Variables. + +`Info-directory-list' + The list of directories to search for Info files. Each element is + a string (directory name) or `nil' (try default directory). If not + initialized Info uses the environment variable `INFOPATH' to + initialize it, or `Info-default-directory-list' if there is no + `INFOPATH' variable in the environment. + + If you wish to customize the Info directory search list for both + Emacs info and stand-alone Info, it is best to set the `INFOPATH' + environment variable, since that applies to both programs. + +`Info-additional-directory-list' + A list of additional directories to search for Info documentation + files. These directories are not searched for merging the `dir' + file. + +`Info-fontify' + When set to a non-`nil' value, enables highlighting of Info files. + The default is `t'. You can change how the highlighting looks by + customizing the faces `info-node', `info-xref', + `info-header-xref', `info-header-node', `info-menu-5', + `info-menu-header', and `info-title-N-face' (where N is the level + of the section, a number between 1 and 4). To customize a face, + type `M-x customize-face <RET> FACE <RET>', where FACE is one of + the face names listed here. + +`Info-use-header-line' + If non-`nil', Emacs puts in the Info buffer a header line showing + the `Next', `Prev', and `Up' links. A header line does not scroll + with the rest of the buffer, making these links always visible. + +`Info-hide-note-references' + As explained in earlier nodes, the Emacs version of Info normally + hides some text in menus and cross-references. You can completely + disable this feature, by setting this option to `nil'. Setting it + to a value that is neither `nil' nor `t' produces an intermediate + behavior, hiding a limited amount of text, but showing all text + that could potentially be useful. + +`Info-scroll-prefer-subnodes' + If set to a non-`nil' value, <SPC> and <BACKSPACE> (or <DEL>) keys + in a menu visit subnodes of the current node before scrolling to + its end or beginning, respectively. For example, if the node's + menu appears on the screen, the next <SPC> moves to a subnode + indicated by the following menu item. Setting this option to + `nil' results in behavior similar to the stand-alone Info reader + program, which visits the first subnode from the menu only when you + hit the end of the current node. The default is `nil'. + +`Info-enable-active-nodes' + When set to a non-`nil' value, allows Info to execute Lisp code + associated with nodes. The Lisp code is executed when the node is + selected. The Lisp code to be executed should follow the node + delimiter (the `DEL' character) and an `execute: ' tag, like this: + + ^_execute: (message "This is an active node!") + +`Info-enable-edit' + Set to `nil', disables the `e' (`Info-edit') command. A non-`nil' + value enables it. *Note Edit: Add. + + +File: info.info, Node: Creating an Info File, Next: Index, Prev: Expert Info, Up: Top + +3 Creating an Info File from a Texinfo File +******************************************* + +`makeinfo' is a utility that converts a Texinfo file into an Info file; +`texinfo-format-region' and `texinfo-format-buffer' are GNU Emacs +functions that do the same. + + *Note Overview of Texinfo: (texinfo)Top, to learn how to write a +Texinfo file. + + *Note Creating an Info File: (texinfo)Creating an Info File, to learn +how to create an Info file from a Texinfo file. + + *Note Installing an Info File: (texinfo)Installing an Info File, to +learn how to install an Info file after you have created one. + + +File: info.info, Node: Index, Prev: Creating an Info File, Up: Top + +Index +***** + +This is an alphabetical listing of all the commands, variables, and +topics discussed in this document. + + +* Menu: + +* 1 through 9 (Info mode): Advanced. (line 33) +* ? (Info mode): Help-^L. (line 79) +* abbreviating Info subnodes: Help-M. (line 90) +* b (Info mode): Help-^L. (line 66) +* BACKSPACE (Info mode): Help-^L. (line 16) +* C-l (Info mode): Help-^L. (line 60) +* clone-buffer: Advanced. (line 68) +* completion of Info node names: Help-M. (line 98) +* cross reference format: Cross-refs. (line 6) +* cross references in Info documents: Help-Xref. (line 6) +* d (Info mode): Help-Int. (line 42) +* DEL (Info mode): Help-^L. (line 16) +* Directory node: Add. (line 38) +* e (Info mode): Advanced. (line 56) +* edit Info document: Advanced. (line 56) +* f (Info mode): Help-Xref. (line 12) +* format of node headers: Add. (line 31) +* g (Info mode): Advanced. (line 11) +* go to a node by name: Advanced. (line 11) +* go to another Info file: Advanced. (line 20) +* go to Directory node: Help-Int. (line 42) +* go to Top node: Help-Int. (line 52) +* going back in Info mode: Help-Int. (line 25) +* header of Info node: Help. (line 16) +* i (Info mode): Info Search. (line 16) +* Info document as a reference: Info Search. (line 6) +* Info documents as tutorials: Help-^L. (line 38) +* Info menus: Help-M. (line 6) +* Info-additional-directory-list: Emacs Info Variables. + (line 24) +* info-apropos: Info Search. (line 50) +* Info-directory: Help-Int. (line 42) +* Info-directory-list: Emacs Info Variables. + (line 13) +* Info-edit: Advanced. (line 56) +* Info-enable-active-nodes: Emacs Info Variables. + (line 62) +* Info-enable-edit: Emacs Info Variables. + (line 70) +* Info-exit: Help-Q. (line 6) +* Info-follow-reference: Help-Xref. (line 12) +* Info-fontify: Emacs Info Variables. + (line 29) +* Info-goto-node: Advanced. (line 11) +* Info-hide-note-references: Emacs Info Variables. + (line 44) +* Info-index: Info Search. (line 16) +* Info-last: Help-Int. (line 25) +* Info-menu: Help-M. (line 85) +* Info-mouse-follow-nearest-node: Help-M. (line 169) +* Info-nth-menu-item: Advanced. (line 33) +* Info-scroll-down: Help-^L. (line 16) +* Info-scroll-prefer-subnodes: Emacs Info Variables. + (line 52) +* Info-scroll-up: Help-^L. (line 16) +* Info-search: Info Search. (line 55) +* Info-summary: Help-^L. (line 79) +* Info-tagify: Tags. (line 11) +* Info-top-node: Help-Int. (line 52) +* Info-up: Help-FOO. (line 13) +* Info-use-header-line: Emacs Info Variables. + (line 39) +* Info-validate: Checking. (line 17) +* invisible text in Emacs: Help-Inv. (line 10) +* l (Info mode): Help-Int. (line 25) +* m (Info mode): Help-M. (line 62) +* M-n (Info mode): Advanced. (line 68) +* M-s (Info mode): Info Search. (line 67) +* menu and menu entry format: Menus. (line 10) +* menus in an Info document: Help-M. (line 6) +* mouse support in Info mode: Help-M. (line 153) +* Mouse-2 (Info mode): Help-M. (line 153) +* multiple Info buffers: Advanced. (line 68) +* n (Info mode): Help. (line 28) +* node delimiters: Add. (line 19) +* node header line format: Add. (line 31) +* node name format: Add. (line 38) +* node, in Info documents: Help. (line 11) +* p (Info mode): Help-P. (line 6) +* PAGEDOWN (Info mode): Help-^L. (line 53) +* PAGEUP (Info mode): Help-^L. (line 53) +* q (Info mode): Help-Q. (line 6) +* quitting Info mode: Help-Q. (line 6) +* reading Info documents top to bottom: Help-^L. (line 38) +* s (Info mode): Info Search. (line 55) +* searching Info documents: Info Search. (line 6) +* select N'th menu item: Advanced. (line 33) +* small screen, moving around: Help-Small-Screen. (line 6) +* SPC (Info mode): Help-^L. (line 16) +* stale tags tables: Tags. (line 16) +* t (Info mode): Help-Int. (line 52) +* tags tables in info files: Tags. (line 6) +* u (Info mode): Help-FOO. (line 13) +* unstructured documents: Add. (line 52) +* update Info tags table: Tags. (line 16) +* visible-mode: Help-Inv. (line 17) + + + +Tag Table: +Node: Top1407 +Node: Getting Started2269 +Node: Help-Small-Screen3130 +Node: Help4970 +Node: Help-P6628 +Node: Help-^L7832 +Ref: Help-^L-Footnote-112609 +Node: Help-Inv12981 +Node: Help-]14661 +Node: Help-M16222 +Node: Help-FOO24654 +Node: Help-Xref25648 +Node: Help-Int29790 +Node: Expert Info32684 +Node: Advanced33987 +Node: Info Search37504 +Node: Add41282 +Ref: Add-Footnote-144669 +Node: Menus44921 +Node: Cross-refs47788 +Node: Help-Cross48564 +Node: Help-Q49232 +Node: Tags50390 +Node: Checking51903 +Node: Emacs Info Variables52858 +Node: Creating an Info File56360 +Node: Index57045 + +End Tag Table diff --git a/Master/texmf/doc/info/kpathsea.info b/Master/texmf/doc/info/kpathsea.info new file mode 100644 index 00000000000..3719f12a44f --- /dev/null +++ b/Master/texmf/doc/info/kpathsea.info @@ -0,0 +1,4647 @@ +This is kpathsea.info, produced by makeinfo version 4.8 from +kpathsea.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* Kpathsea: (kpathsea). File lookup along search paths. +* kpsewhich: (kpathsea)Invoking kpsewhich. TeX file searching. +* mktexmf: (kpathsea)mktex scripts. MF source generation. +* mktexpk: (kpathsea)mktex scripts. PK bitmap generation. +* mktextex: (kpathsea)mktex scripts. TeX source generation. +* mktextfm: (kpathsea)mktex scripts. TeX font metric generation. +* mktexlsr: (kpathsea)Filename database. Update ls-R. +END-INFO-DIR-ENTRY + + This file documents the Kpathsea library for path searching. + + Copyright (C) 1993-2005 Karl Berry & Olaf Weber. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +File: kpathsea.info, Node: Top, Next: Introduction, Up: (dir) + +Kpathsea library +**************** + +This manual documents how to install and use the Kpathsea library for +filename lookup. It corresponds to version 3.5.5, released in +June 2005. + +* Menu: + +* Introduction:: Overview. +* Installation:: Compilation, installation, and bug reporting. + +* Path searching:: How filename lookups work. +* TeX support:: Special support for TeX-related file lookups. + +* Programming:: How to use Kpathsea features in your program. + +* Index:: General index. + + +File: kpathsea.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top + +1 Introduction +************** + +This manual corresponds to version 3.5.5 of the Kpathsea library, +released in June 2005. + + The library's fundamental purpose is to return a filename from a +list of directories specified by the user, similar to what shells do +when looking up program names to execute. + + The following software, all of which we maintain, uses this library: + + * Dviljk (see the `dvilj' man page) + + * Dvipsk (*note Introduction: (dvips)Top.) + + * GNU font utilities (*note Introduction: (fontu)Top.) + + * Web2c (*note Introduction: (web2c)Top.) + + * Xdvik (see the `xdvi' man page) + +Other software that we do not maintain also uses it. + + We are still actively maintaining the library (and probably always +will be, despite our hopes). If you have comments or suggestions, +please send them to us (*note Reporting bugs::). + + We distribute the library under the GNU Library General Public +License (LGPL). In short, this means if you write a program using the +library, you must (offer to) distribute the source to the library, +along with any changes you have made, and allow anyone to modify the +library source and distribute their modifications. It does not mean +you have to distribute the source to your program, although we hope you +will. See the files `GPL' and `LGPL' for the text of the GNU licenses. + + If you know enough about TeX to be reading this manual, then you (or +your institution) should consider joining the TeX Users Group (if +you're already a member, great!). TUG produces the periodical +`TUGboat', sponsors an annual meeting and publishes the proceedings, +and arranges courses on TeX for all levels of users throughout the +world. Anyway, here is the address: + + TeX Users Group + P.O. Box 2311 + Portland OR 97208-2311 + USA + phone: +1 503 223-9994 + fax: +1 503 223-3960 + email: <tug@tug.org> + +* Menu: + +* History:: + + +File: kpathsea.info, Node: History, Up: Introduction + +1.1 History +=========== + +(This section is for those people who are curious about how the library +came about.) (If you like to read historical accounts of software, we +urge you to seek out the GNU Autoconf manual and the "Errors of TeX" +paper by Don Knuth, published in `Software--Practice and Experience' +19(7), July 1989.) + + [Karl writes.] My first ChangeLog entry for Web2c seems to be +February 1990, but I may have done some work before then. In any case, +Tim Morgan and I were jointly maintaining it for a time. (I should +mention here that Tim had made Web2c into a real distribution long +before I had ever used it or even heard of it, and Tom Rokicki did the +original implementation. I was using `pxp' and `pc' on VAX 11/750's +and the hot new Sun 2 machines.) + + It must have been later in 1990 and 1991 that I started working on +`TeX for the Impatient'. Dvips, Xdvi, Web2c, and the GNU fontutils +(which I was also writing at the time) all used different environment +variables, and, more importantly, had different bugs in their path +searching. This became extremely painful, as I was stressing everything +to the limit working on the book. I also desperately wanted to +implement subdirectory searching, since I couldn't stand putting +everything in one big directory, and also couldn't stand having to +explicitly specify `cm', `pandora', ... in a path. + + In the first incarnation, I just hacked separately on each +program--that was the original subdirectory searching code in both Xdvi +and Dvips, though I think Paul Vojta has completely rewritten Xdvi's +support by now. That is, I tried to go with the flow in each program, +rather than changing the program's calling sequences to conform to +common routines. + + Then, as bugs inevitably appeared, I found I was fixing the same +thing three times (Web2c and fontutils were always sharing code, since I +maintained those--there was no Dvipsk or Xdvik or Dviljk at this +point). After a while, I finally started sharing source files. They +weren't yet a library, though. I just kept things up to date with shell +scripts. (I was developing on a 386 running ISC 2.2 at the time, and so +didn't have symbolic links. An awful experience.) + + The ChangeLogs for Xdvik and Dvipsk record initial releases of those +distributions in May and June 1992. I think it was because I was tired +of the different configuration strategies of each program, not so much +because of the path searching. (Autoconf was being developed by David +MacKenzie and others, and I was adapting it to TeX and friends.) + + I started to make a separate library that other programs could link +with on my birthday in April 1993, according to the ChangeLog. I don't +remember exactly why I finally took the time to make it a separate +library; a conversation with david zuhn that initiated it. Just seemed +like it was time. + + Dviljk got started in March 1994 after I bought a Laserjet 4. +(Kpathsea work got suspended while Norm Walsh and I, with Gustaf +Neumann's help, implemented a way for TeX to get at all those neat +builtin LJ4 fonts ... such a treat to have something to typeset in +besides Palatino!) + + By spring of 1995, I had implemented just about all the +path-searching features in Kpathsea that I plan to, driven beyond my +initial goals by Thomas Esser and others. I then started to integrate +Web2c with Kpathsea. After the release of a stable Web2c, I hope to be +able to stop development, and turn most of my attention back to making +fonts for GNU. (Always assuming Micros**t hasn't completely +obliterated Unix by then, or that software patents haven't stopped +software development by anybody smaller than a company with a +million-dollar-a-year legal budget. Which is actually what I think is +likely to happen, but that's another story...) + + [Olaf writes.] At the end of 1997, UNIX is still alive and kicking, +individuals still develop software, and Web2c development still +continues. Karl had been looking for some time for someone to take up +part of the burden, and I volunteered. + + +File: kpathsea.info, Node: Installation, Next: Path searching, Prev: Introduction, Up: Top + +2 Installation +************** + +(A copy of this chapter is in the distribution file `kpathsea/INSTALL'.) + +The procedure for Kpathsea (and Web2c, etc.) configuration and +installation follows. If you encounter trouble, see *Note Common +problems::, a copy of which is in the file `kpathsea/BUGS'. + +* Menu: + +* Simple installation:: If you just want to do it. +* Custom installation:: If you want to change things around. +* Security:: Who can write what files, etc. +* TeX directory structure:: Managing the horde of TeX input files. +* unixtex.ftp:: Getting software via FTP, on CD-ROM, or on tape. +* Reporting bugs:: Where and how to report bugs. + + +File: kpathsea.info, Node: Simple installation, Next: Custom installation, Up: Installation + +2.1 Simple installation +======================= + +Installing TeX and friends for the first time can be a daunting +experience. Thus, you may prefer to skip this whole thing and just get +precompiled executables: see *Note unixtex.ftp::. + + This section explains what to do if you wish to take the defaults for +everything, and generally to install in the simplest possible way. Most +steps here refer to corresponding subsection in the next section which +explains how to override defaults and generally gives more details. + + By default everything will be installed under `/usr/local' and the +following discussion assumes this. However, if you already have TeX +installed, its location is used to derive the directory under which +everything is to be installed. + + 1. Be sure you have enough disk space: approximately 8 megabytes for + the compressed archives, 15MB for sources, 50MB for compilation, + 40MB for the (initial) installed system (including library files). + *Note Disk space::. + + 2. Retrieve these distribution archives: + `ftp://ftp.tug.org/tex/texk.tar.gz' + These are the sources, which you will be compiling. + + `ftp://ftp.tug.org/tex/texklib.tar.gz' + This is a basic set of input files. You should unpack it in + the directory `/usr/local/share'; doing so will create a + `texmf' subdirectory there. + + These archives are mirrored on the CTAN hosts, in the + `systems/web2c' directory. + + *Note Kpathsea application distributions::. + + 3. When using the default search paths, there is no need to edit any + distribution files. *Note Changing search paths::. + + 4. At the top level of the distribution, run `sh configure'. (If you + have the GNU Bash shell installed, run `bash configure'.) *Note + Running configure::. + + 5. `make'. *Note Running make::. If you are using a BSD 4.4 system + such as FreeBSD or NetBSD, you may have to use GNU make (often + installed in `/usr/local/bin'), not the BSD make. + + 6. `make install'. *Note Installing files::. + + 7. `make distclean'. *Note Cleaning up::. + + 8. Set up a cron job to rebuild the filename database that makes + searching faster. This line will rebuild it every midnight: + 0 0 * * * cd /usr/local/share/texmf && /BINDIR/mktexlsr + *Note Filename database generation::, and *Note Filename + database::. + + 9. If you're installing Dvips, you also need to set up configuration + files for your printers and make any additional PostScript fonts + available. *Note Installation: (dvips)Installation. If you have + any color printers, see *Note Color device configuration: + (dvips)Color device configuration. + + 10. The first time you run a DVI driver, a bunch of PK fonts will be + built by Metafont via `mktexpk' (and added to the filename + database). This will take some time. Don't be alarmed; they will + created only this first time (unless something is wrong with your + path definitions). + + By default, `mktexpk' will create these fonts in a hierarchy under + `/var/tmp/texfonts'; it simply assumes that `/var/tmp' exists and + is globally writable. If you need a different arrangement, see + *Note mktex configuration::. + + *Note mktex scripts::. + + 11. For some simple tests, try `tex story \\bye' and `latex sample2e'. + Then run `xdvi story' or `dvips sample2e' on the resulting DVI + files to preview/print the documents. *Note Installation + testing::. + + +File: kpathsea.info, Node: Custom installation, Next: Security, Prev: Simple installation, Up: Installation + +2.2 Custom installation +======================= + +Most sites need to modify the default installation procedure in some +way, perhaps merely changing the prefix from `/usr/local', perhaps +adding extra compiler or loader options to work around `configure' +bugs. This section explains how to override default choices. For +additional distribution-specific information: + * `dviljk/INSTALL'. + + * *Note Installation: (dvips)Installation. + + * *Note Installation: (web2c)Installation. + + * `xdvik/INSTALL'. + + These instructions are for Unix systems. Other operating-system +specific distributions have their own instructions. The code base +itself supports Amiga, DOS, OS/2, and VMS. + + Following are the same steps as in the previous section (which +describes the simplest installation), but with much more detail. + +* Menu: + +* Disk space:: +* Kpathsea application distributions:: +* Changing search paths:: +* Running configure:: +* Running make:: +* Installing files:: +* Cleaning up:: +* Filename database generation:: +* mktex scripts:: +* Installation testing:: + + +File: kpathsea.info, Node: Disk space, Next: Kpathsea application distributions, Up: Custom installation + +2.2.1 Disk space +---------------- + +Here is a table showing the disk space needed for each distribution +(described in the next section). The `(totals)' line reflects the +`texk' source distribution and `texklib'; the individual distributions +don't enter into it. Sizes are in megabytes. All numbers are +approximate. + +Distribution .tar.gz Unpacked Compiled Installed +dviljk .9 3.8 +dvipsk .9 3.2 +xdvik .7 2.5 +web2c 1.3 5.0 +web 1.9 6.5 - - +texk 7.5 32.1 95.3 33.5 +texklib 6.3 15.0 - 15.0 +(totals) 14.6 47.1 95.3 48.5 + + +File: kpathsea.info, Node: Kpathsea application distributions, Next: Changing search paths, Prev: Disk space, Up: Custom installation + +2.2.2 Kpathsea application distributions +---------------------------------------- + +The archive `ftp://ftp.tug.org/tex/texk.tar.gz' contains all of the +Kpathsea applications I maintain, and the library itself. For example, +since NeXT does not generally support X11, you'd probably want to skip +`xdvik' (or simply remove it after unpacking `texk.tar.gz'. If you are +not interested in all of them, you can also retrieve them separately: + +`dviljk.tar.gz' + DVI to PCL, for LaserJet printers. + +`dvipsk.tar.gz' + DVI to PostScript, for previewers, printers, or PDF generation. + +`web2c.tar.gz' + The software needed to compile TeX and friends. + +`web.tar.gz' + The original WEB source files, also used in compilation. + +`xdvik.tar.gz' + DVI previewing under the X window system. + + + If you want to use the Babel LaTeX package for support of non-English +typesetting, you may need to retrieve additional files. See the file +`install.txt' in the Babel distribution. + + +File: kpathsea.info, Node: Changing search paths, Next: Running configure, Prev: Kpathsea application distributions, Up: Custom installation + +2.2.3 Changing search paths +--------------------------- + +If the search paths for your installation differ from the standard TeX +directory structure (*note Introduction: (tds)Top.), edit the file +`kpathsea/texmf.in' as desired, before running `configure'. For +example, if you have all your fonts or macros in one big directory. + + You may also wish to edit the file `mktex.cnf', either before or +after installation, to control various aspects of `mktexpk' and +friends. *Note mktex configuration::. + + You do not need to edit `texmf.in' to change the default top-level +or other installation _directories_ (only the paths). You can and +should do that when you run `configure' (next step). + + You also do not need to edit `texmf.in' if you are willing to rely +on `texmf.cnf' at runtime to define the paths, and let the compile-time +default paths be incorrect. Usually there is no harm in doing this. + + The section below explains default generation in more detail. + +* Menu: + +* Default path features:: +* Default path generation:: + + +File: kpathsea.info, Node: Default path features, Next: Default path generation, Up: Changing search paths + +2.2.3.1 Default path features +............................. + +The purpose of having all the different files described in the section +above is to avoid having the same information in more than one place. If +you change the installation directories or top-level prefix at +`configure'-time, those changes will propagate through the whole +sequence. And if you change the default paths in `texmf.in', those +changes are propagated to the compile-time defaults. + + The Make definitions are all repeated in several Makefile's; but +changing the top-level `Makefile' should suffice, as it passes down all +the variable definitions, thus overriding the submakes. (The +definitions are repeated so you can run Make in the subdirectories, if +you should have occasion to.) + + By default, the bitmap font paths end with `/$MAKETEX_MODE', thus +including the device name (usually a Metafont mode name such as +`ljfour'). This distinguishes two different devices with the same +resolution--a write/white from a write/black 300dpi printer, for +example. + + However, since most sites don't have this complication, Kpathsea +(specifically, the `kpse_init_prog' function in `kpathsea/proginit.c') +has a special case: if the mode has not been explicitly set by the user +(or in a configuration file), it sets `MAKETEX_MODE' to `/'. This +makes the default PK path, for example, expand into `.../pk//', so +fonts will be found even if there is no subdirectory for the mode (if +you arranged things that way because your site has only one printer, +for example) or if the program is mode-independent (e.g., `pktype'). + + To make the paths independent of the mode, simply edit `texmf.in' +before installation, or the installed `texmf.cnf', and remove the +`$MAKETEX_MODE'. + + *Note mktex script arguments::, for how this interacts with +`mktexpk'. + + *Note TeX directory structure: TeX directory structure, for a +description of the default arrangement of the input files that comprise +the TeX system. The file `kpathsea/HIER' is a copy of that section. + + +File: kpathsea.info, Node: Default path generation, Prev: Default path features, Up: Changing search paths + +2.2.3.2 Default path generation +............................... + +This section describes how the default paths are constructed. + + You may wish to ignore the whole mess and simply edit `texmf.cnf' +after it is installed, perhaps even copying it into place beforehand so +you can complete the installation, if it seems necessary. + + To summarize the chain of events that go into defining the default +paths: + + 1. `configure' creates a `Makefile' from each `Makefile.in'. + + 2. When Make runs in the `kpathsea' directory, it creates a file + `texmf.sed' that substitutes the Make value of `$(var)' for a + string `@var@'. The variables in question are the one that define + the installation directories. + + 3. `texmf.sed' (together with a little extra magic--see + `kpathsea/Makefile') is applied to `texmf.in' to generate + `texmf.cnf'. This is the file that will eventually be installed + and used. + + 4. The definitions in `texmf.cnf' are recast as C `#define''s in + `paths.h'. These values will be the compile-time defaults; they + are not used at runtime unless no `texmf.cnf' file can be found. + + (That's a lie: the compile-time defaults are what any extra :'s in + `texmf.cnf' expand into; but the paths as distributed have no extra + :'s, and there's no particular reason for them to.) + + +File: kpathsea.info, Node: Running configure, Next: Running make, Prev: Changing search paths, Up: Custom installation + +2.2.4 Running `configure' +------------------------- + +Run `sh configure OPTIONS' (in the top-level directory, the one +containing `kpathsea/'), possibly using a shell other than `sh' (*note +configure shells::). + + `configure' adapts the source distribution to the present system via +`#define''s in `*/c-auto.h', which are created from the corresponding +`c-auto.in'. It also creates a `Makefile' from the corresponding +`Makefile.in', doing `@VAR@' and `ac_include' substitutions). + + `configure' is the best place to control the configuration, +compilation, and installed location of the software, either via +command-line options, or by setting environment variables before +invoking it. For example, you can disable `mktexpk' by default with +the option `--disable-mktexpk'. *Note configure options::. + +* Menu: + +* configure shells:: +* configure options:: +* configure environment:: +* configure scenarios:: +* Shared library:: + + +File: kpathsea.info, Node: configure shells, Next: configure options, Up: Running configure + +2.2.4.1 `configure' shells +.......................... + +Considerable effort has gone into trying to ensure that the `configure' +scripts can be run by most Bourne shell variants. If `sh' runs into +trouble, your best bet is to use Bash, the GNU Bourne-again shell +(*note Top: (bash)Top.). + + Bourne shell variants for which problems have been reported in the +past are: +`ksh' + Old versions of the Korn shell may fail to handle the scripts. + The Korn shell may be installed as `/bin/sh' on AIX, in which case + `/bin/bsh' may serve instead. + +`ash' + Old versions of ash are unable to handle the scripts. Ash is + sometimes installed as `/bin/sh' on NetBSD, FreeBSD, and Linux + systems. `/bin/bash' should be available for those systems, but + might not be part of a default installation. + +`Ultrix /bin/sh' + `/bin/sh' under Ultrix is a DEC-grown shell that is notably + deficient in many ways. `/bin/sh5' may be necessary. + + +File: kpathsea.info, Node: configure options, Next: configure environment, Prev: configure shells, Up: Running configure + +2.2.4.2 `configure' options +........................... + +For a complete list of all `configure' options, run `configure --help' +or see *Note Running `configure' scripts: (autoconf)Invoking configure, +(a copy is in the file `kpathsea/README.CONFIGURE'). The generic +options are listed first in the `--help' output, and the +package-specific options come last. The environment variables +`configure' pays attention to are listed below. + + Options particularly likely to be useful are `--prefix', +`--datadir', and the like; see *Note configure scenarios::. + + This section gives pointers to descriptions of the `--with' and +`--enable' options to `configure' that Kpathsea-using programs accept. + +`--without-mktexmf-default' +`--without-mktexpk-default' +`--without-mktextfm-default' +`--with-mktextex-default' + Enable or disable the dynamic generation programs. *Note mktex + configuration::. + +`--enable-shared' + Build Kpathsea as a shared library, and link against it. Also + build the usual static library. *Note Shared library::. + +`--disable-static' + Build only the shared library. Implies `--enable-shared'. + +`--enable-maintainer-mode' + Enables make targets that are useful for the maintainer and likely + to be a pain for anyone else; the makefiles created when this + option is enabled may not work at all for you. You have been + warned. + + +File: kpathsea.info, Node: configure environment, Next: configure scenarios, Prev: configure options, Up: Running configure + +2.2.4.3 `configure' environment +............................... + +`configure' uses the value of the following environment variables in +determining your system's characteristics, and substitutes for them in +Makefile's: + +`CC' + The compiler to use: default is `gcc' if it's installed, otherwise + `cc'. + +`CFLAGS' + Options to give the compiler: default is `-g -O2' for `gcc', `-g' + otherwise. `CFLAGS' comes after any other options. You may need + to include `-w' here if your compilations commonly have useless + warnings (e.g., `NULL redefined'), or `configure' may fail to + detect the presence of header files (it takes the messages on + standard error to mean the header file doesn't exist). + +`CPPFLAGS' + Options to pass to the compiler preprocessor; this matters most for + configuration, not the actual source compilation. The `configure' + script often does only preprocessing (e.g., to check for the + existence of #include files), and `CFLAGS' is not used for this. + You may need to set this to something like + `-I/usr/local/include/wwwhatever' if you have the libwww library + installed for hyper-xdvik (see `xdvik/INSTALL'). + +`DEFS' + Additional preprocessor options, but not used by `configure'. + Provided for enabling or disabling program features, as documented + in the various program-specific installation instructions. `DEFS' + comes before any compiler options included by the distribution + `Makefile's or by `configure'. + +`LDFLAGS' + Additional options to give to the loader. `LDFLAGS' comes before + any other linker options. + +`LIBS' + Additional libraries to link with. + + +File: kpathsea.info, Node: configure scenarios, Next: Shared library, Prev: configure environment, Up: Running configure + +2.2.4.4 `configure' scenarios +............................. + +Here are some common installation scenarios: + + * Including X support in Metafont. This is disabled by default, + since many sites have no use for it, and it's a leading cause of + configuration problems. + configure --with-x + + * Putting the binaries, TeX files, GNU info files, etc. into a single + TeX hierarchy, say `/here/texmf', requires overriding defaults in + `configure': + configure --prefix=/here/texmf --datadir=/here + + * You can compile on multiple architectures simultaneously either by + building symbolic link trees with the `lndir' script from the X11 + distribution, or with the `--srcdir' option: + configure --srcdir=SRCDIR + + * If you are installing binaries for multiple architectures into a + single hierarchy, you will probably want to override the default + `bin' and `lib' directories, something like this: + configure --prefix=TEXMF --datadir=TEXMF \ + --bindir=TEXMF/ARCH/bin --libdir=TEXMF/ARCH/lib + make texmf=TEXMF + (Unless you make provisions for architecture-specific files in + other ways, e.g., with Depot or an automounter.) + + * To compile with optimization (to compile without debugging, remove + the `-g'): + env CFLAGS="-g -O" sh configure ... + For a potential problem if you optimize, see *Note TeX or Metafont + failing: TeX or Metafont failing. + + +File: kpathsea.info, Node: Shared library, Prev: configure scenarios, Up: Running configure + +2.2.4.5 Shared library +...................... + +You can compile Kpathsea as a shared library on a few systems, by +specifying the option `--enable-shared' when you run `configure'. + + The main advantage in doing this is that the executables can then +share the code, thus decreasing memory and disk space requirements. + + On some systems, you can record the location of shared libraries in a +binary, usually by giving certain options to the linker. Then +individual users do not need to set their system's environment variable +(e.g., `LD_LIBRARY_PATH') to find shared libraries. If you want to do +this, you will need to add the necessary options to `LDFLAGS' yourself; +for example, on Solaris, include something like `-R${prefix}/lib', on +IRIX or Linux, use `-rpath${prefix}/lib'. (Unfortunately, making this +happen by default is very difficult, because of interactions with an +existing installed shared library.) + + Currently, shared library support is implemented only on Linux, +SunOS 4 (Solaris 1), SunOS 5 (Solaris 2), IRIX 5, and IRIX 6. If you're +interested and willing in adding support for other systems, please see +the `configure' mode in the `klibtool' script, especially the +host-specific case statement around line 250. + + +File: kpathsea.info, Node: Running make, Next: Installing files, Prev: Running configure, Up: Custom installation + +2.2.5 Running `make' +-------------------- + +`make' (still in the top-level directory). This also creates the +`texmf.cnf' and `paths.h' files that define the default search paths, +and (by default) the `plain' and `latex' TeX formats. + + You can override directory names and other values at `make'-time. +`make/paths.make' lists the variables most commonly reset. For +example, `make default_texsizes=600' changes the list of fallback +resolutions. + + You can also override each of `configure''s environment variables +(*note configure environment::). The Make variables have the same +names. + + Finally, you can supply additional options via the following +variables. (`configure' does not use these.) + +`XCPPFLAGS' +`XDEFS' + Preprocessor options. + +`XCFLAGS' + Compiler options. + +`XLDFLAGS' + Loader options (included at beginning of link commands). + +`XLOADLIBES' + More loader options (included at end of link commands). + +`XMAKEARGS' + Additional Make arguments passed to all sub-`make''s. You may need + to include assignments to the other variables here via `XMAKEARGS'; + for example: `make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'. + + It's generally a bad idea to use a different compiler (`CC') or +libraries (`LIBS') for compilation than you did for configuration, +since the values `configure' determined may then be incorrect. + + Adding compiler options to change the "universe" you are using +(typically BSD vs. system V) is generally a cause of trouble. It's +best to use the native environment, whatever that is; `configure' and +the software usually adapt best to that. In particular, under Solaris +2.x, you should not use the BSD-compatibility library (`libucb') or +include files (`ucbinclude'). + + If you want to use the Babel LaTeX package for support of non-English +typesetting, you need to modify some files before making the LaTeX +format. See the file `install.txt' in the Babel distribution. + + +File: kpathsea.info, Node: Installing files, Next: Cleaning up, Prev: Running make, Up: Custom installation + +2.2.6 Installing files +---------------------- + +The basic command is the usual `make install'. For security issues, +*note Security::. + + The first time you install any manual in the GNU Info system, you +should add a line (you choose where) to the file `dir' in your +`$(infodir)' directory. Sample text for this is given near the top of +the Texinfo source files (`kpathsea/kpathsea.texi', +`dvipsk/dvips.texi', and `web2c/doc/web2c.texi'). If you have a recent +version of the GNU Texinfo distribution installed +(`ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz' or later), this +should happen automatically. + + On the offchance that this is your first Info installation, the +`dir' file I use is included in the distribution as `etc/dir-example'. + + You may wish to use one of the following targets, especially if you +are installing on multiple architectures: + * `make install-exec' to install in architecture-dependent + directories, i.e., ones that depend on the `$(exec_prefix)' Make + variable. This includes links to binaries, libraries, etc., not + just "executables". + + * `make install-data' to install in architecture-independent + directories, such as documentation, configuration files, pool + files, etc. + + If you use the Andrew File System, the normal path (e.g., +PREFIX/bin) only gets you to a read-only copy of the files, and you +must specify a different path for installation. The best way to do this +is by setting the `prefix' variable on the `make' command line. The +sequence becomes something like this: + configure --prefix=/whatever + make + make install prefix=/afs/.SYSTEM.NAME/system/1.3/@sys/whatever + With AFS, you will definitely want to use relative filenames in +`ls-R' (*note Filename database::), not absolute filenames. This is +done by default, but check anyway. + + +File: kpathsea.info, Node: Cleaning up, Next: Filename database generation, Prev: Installing files, Up: Custom installation + +2.2.7 Cleaning up +----------------- + +The basic command is `make distclean'. This removes all files created +by the build. + + Alternatively, + * `make mostlyclean' if you intend to compile on another + architecture. For Web2C, since the generated C files are portable, + they are not removed. If the `lex' vs. `flex' situation is going + to be different on the next machine, `rm web2c/lex.yy.c'. + + * `make clean' to remove files created by compiling, but leave + configuration files and Makefiles. + + * `make maintainer-clean' to remove everything that the Makefiles can + rebuild. This is more than `distclean' removes, and you should + only use it if you are thoroughly conversant with (and have the + necessary versions of) Autoconf. + + * `make extraclean' to remove other junk, e.g., core files, log + files, patch rejects. This is independent of the other `clean' + targets. + + +File: kpathsea.info, Node: Filename database generation, Next: mktex scripts, Prev: Cleaning up, Up: Custom installation + +2.2.8 Filename database generation +---------------------------------- + +You will probably want to set up a `cron' entry on the appropriate +machine(s) to rebuild the filename database nightly or so, as in: + 0 0 * * * cd TEXMF && /BINDIR/mktexlsr + *Note Filename database::. + + Although the `mktex...' scripts make every effort to add +newly-created files on the fly, it can't hurt to make sure you get a +fresh version every so often. + + +File: kpathsea.info, Node: mktex scripts, Next: Installation testing, Prev: Filename database generation, Up: Custom installation + +2.2.9 `mktex' scripts +--------------------- + +If Kpathsea cannot otherwise find a file, for some file types it is +configured by default to invoke an external program to create it +dynamically (*note mktex configuration::). This is most useful for +fonts (bitmaps, TFM's, and arbitrarily-sizable Metafont sources such as +the Sauter and EC fonts), since any given document can use fonts never +before referenced. Trying to build all fonts in advance is therefore +impractical, if not impossible. + + The script is passed the name of the file to create and possibly +other arguments, as explained below. It must echo the full pathname of +the file it created (and nothing else) to standard output; it can write +diagnostics to standard error. + +* Menu: + +* mktex configuration:: +* mktex script names:: +* mktex script arguments:: + + +File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts + +2.2.9.1 `mktex' configuration +............................. + +The following file types can run an external program to create missing +files: `pk', `tfm', `mf', `tex'; the scripts are named `mktexpk', +`mktextfm', `mktexmf', and `mktextex'. + + In the absence of `configure' options specifying otherwise, +everything but `mktextex' will be enabled by default. The `configure' +options to change the defaults are: + + --without-mktexmf-default + --without-mktexpk-default + --without-mktextfm-default + --with-mktextex-default + + The `configure' setting is overridden if the environment variable or +configuration file value named for the script is set; e.g., `MKTEXPK' +(*note mktex script arguments::). + + As distributed, all the scripts source a file +`texmf/web2c/mktex.cnf' if it exists, so you can override various +defaults. See `mktex.opt', for instance, which defines the default +mode, resolution, some special directory names, etc. If you prefer not +to change the distributed scripts, you can simply create `mktex.cnf' +with the appropriate definitions (you do not need to create it if you +have nothing to put in it). `mktex.cnf' has no special syntax; it's an +arbitrary Bourne shell script. The distribution contains a sample +`mktex.cnf' for you to copy and modify as you please (it is not +installed anywhere). + + In addition, you can configure a number of features with the +`MT_FEATURES' variable, which you can define: + * in `mktex.opt', as just mentioned; + + * by editing the file `mktex.opt', either before `make install' (in + the source hierarchy) or after (in the installed hierarchy); + + * or in the environment. + + If none of the options below are enabled, `mktexpk', `mktextfm', and +`mktexmf' follow the following procedure to decide where fonts should +be installed. Find the tree where the font's sources are, and test the +permissions of the `fonts' directory of that tree to determine whether +it is writable. If it is, put the files in the tree in appropriate +locations. If it isn't writable, see whether the tree is a system tree +(named in `SYSTEXMF'). If so, the `VARTEXFONTS' tree is used. In all +other cases the working directory is used. + + The `appendonlydir' option is enabled by default. + +`appendonlydir' + Tell `mktexdir' to create directories append-only, i.e., set their + sticky bit (*note Mode Structure: (coreutils)Mode Structure.). + This feature is silently ignored on non-Unix platforms (e.g. + Windows/NT and MS-DOS) which don't support similar functionality. + This feature is enabled by default. + +`dosnames' + Use 8.3 names; e.g., `dpi600/cmr10.pk' instead of `cmr10.600pk'. + Note that this feature only affects filenames that would otherwise + clash with other TeX-related filenames; `mktex' scripts do nothing + about filenames which exceed the 8+3 MS-DOS limits but remain + unique when truncated (by the OS) to these limits, and nether do + the scripts care about possible clashes with files which aren't + related with TeX. For example, `cmr10.600pk' would clash with + `cmr10.600gf' and is therefore changed when `dosnames' is in + effect, but `mf.pool' and `mp.base' don't clash with any + TeX-related files and are therefore unchanged. + + This feature is turned on by default on MS-DOS. If you do not wish + `dosnames' to be set on an MS-DOS platform, you need to set the + `MT_FEATURES' environment variable to a value that doesn't include + `dosnames'. You can also change the default setting by editing + `mktex.opt', but only if you use the `mktex' shell scripts; the + emulation programs don't consult `mktex.opt'. + +`fontmaps' + Instead of deriving the location of a font in the destination tree + from the location of the sources, the aliases and directory names + from the Fontname distribution are used. (*note Introduction: + (fontname)Top.). + +`nomfdrivers' + Let mktexpk and mktextfm create metafont driver files in a + temporary directory. These will be used for just one metafont run + and not installed permanently. + +`nomode' + Omit the directory level for the mode name; this is fine as long as + you generate fonts for only one mode. + +`stripsupplier' + Omit the font supplier name directory level. + +`striptypeface' + Omit the font typeface name directory level. + +`strip' + Omit the font supplier and typeface name directory levels. This + feature is deprecated in favour of `stripsupplier' and + `striptypeface'. + +`varfonts' + When this option is enabled, fonts that would otherwise be written + in system texmf tree go to the `VARTEXFONTS' tree instead. The + default value in `kpathsea/Makefile.in' is `/var/tmp/texfonts'. + The `Linux File System Standard' recommends `/var/tex/fonts'. + + The `varfonts' setting in `MT_FEATURES' is overridden by the + `USE_VARTEXFONTS' environment variable: if set to `1', the feature + is enabled, and if set to `0', the feature is disabled. + +`texmfvar' + Force generated files that would go into a system tree (as defined + by `SYSTEXMF') into `TEXMFVAR'. Starting with teTeX-3.0, the + variable `TEXMFVAR' is always set. The `varfonts' feature takes + precedence if also set. + + The `texmfvar' setting in `MT_FEATURES' is overridden by the + `USE_TEXMFVAR' environment variable: if set to `1', the feature is + enabled, and if set to `0', the feature is disabled. + + +File: kpathsea.info, Node: mktex script names, Next: mktex script arguments, Prev: mktex configuration, Up: mktex scripts + +2.2.9.2 `mktex' script names +............................ + +The following table shows the default name of the script for each +possible file types. (The source is the variable `kpse_make_specs' in +`kpathsea/tex-make.c'.) + +`mktexpk' + Glyph fonts. + +`mktextex' + TeX input files. + +`mktexmf' + Metafont input files. + +`mktextfm' + TFM files. + +These names are overridden by an environment variable specific to the +program--for example, `DVIPSMAKEPK' for Dvipsk. + + If a `mktex...' script fails, the invocation is appended to a file +`missfont.log' (by default) in the current directory. You can then +execute the log file to create the missing files after fixing the +problem. + + If the current directory is not writable and the environment +variable or configuration file value `TEXMFOUTPUT' is set, its value is +used. Otherwise, nothing is written. The name `missfont.log' is +overridden by the `MISSFONT_LOG' environment variable or configuration +file value. + + +File: kpathsea.info, Node: mktex script arguments, Prev: mktex script names, Up: mktex scripts + +2.2.9.3 `mktex' script arguments +................................ + +The first argument to a `mktex' script is always the name of the file +to be created. + + In the default `mktexpk' implementation, additional arguments may +also be passed: + +`--dpi NUM' + Sets the resolution of the generated font to NUM. + +`--mfmode NAME' + Sets the Metafont mode to NAME. + +`--bdpi NUM' + Sets the the "base dpi" for the font. This must match the mode + being used. + +`--mag STRING' + A "magstep" string suitable for the Metafont `mag' variable. This + must match the combination of BDPI and DPI being used. + +`--destdir STRING' + A directory name. If the directory is absolute, it is used as-is. + Otherwise, it is appended to the root destination directory set in + the script. + + +File: kpathsea.info, Node: Installation testing, Prev: mktex scripts, Up: Custom installation + +2.2.10 Installation testing +--------------------------- + +Besides the tests listed in *Note Simple installation::, you can try +running `make check'. This includes the torture tests (trip, trap, and +mptrap) that come with Web2c (*note Triptrap: (web2c)Triptrap.). + + +File: kpathsea.info, Node: Security, Next: TeX directory structure, Prev: Custom installation, Up: Installation + +2.3 Security +============ + +None of the programs in the TeX system require any special system +privileges, so there's no first-level security concern of people gaining +illegitimate root access. + + A TeX document, however, can write to arbitrary files, e.g., +`~/.rhosts', and thus an unwitting user who runs TeX on a random +document is vulnerable to a trojan horse attack. This loophole is +closed by default, but you can be permissive if you so desire in +`texmf.cnf'. *Note tex invocation: (web2c)tex invocation. MetaPost has +the same issue. + + Dvips, Xdvi, and TeX can also execute shell commands under some +circumstances. To disable this, see the `-R' option in *Note Option +details: (dvips)Option details, the xdvi man page, and *Note tex +invocation: (web2c)tex invocation, respectively. + + Another security issue arises because it's very useful--almost +necessary--to make arbitrary fonts on user demand with `mktexpk' and +friends. Where do these files get installed? By default, the +`mktexpk' distributed with Kpathsea assumes a world-writable `/var/tmp' +directory; this is a simple and convenient approach, but it may not +suit your situation because it means that a local cache of fonts is +created on every machine. + + To avoid this duplication, many people consider a shared, globally +writable font tree desirable, in spite of the potential security +problems. To do this you should change the value of `VARTEXFONTS' in +`texmf.cnf' to refer to some globally known directory. *Note mktex +configuration::. + + The first restriction you can apply is to make newly-created +directories under `texmf' be append-only with an option in `mktex.cnf'. +*Note mktex configuration::. + + Another approach is to establish a group (or user) for TeX files, +make the `texmf' tree writable only to that group (or user), and make +`mktexpk' et al. setgid to that group (or setuid to that user). Then +users must invoke the scripts to install things. (If you're worried +about the inevitable security holes in scripts, then you could write a +C wrapper to exec the script.) + + The `mktex...' scripts install files with the same read and write +permissions as the directory they are installed in. The executable, +sgid, suid, and sticky bits are always cleared. + + Any directories created by the `mktex...' scripts have the same +permissions as their parent directory, unless the `appendonlydir' +feature is used, in which case the sticky bit is always set. + + +File: kpathsea.info, Node: TeX directory structure, Next: unixtex.ftp, Prev: Security, Up: Installation + +2.4 TeX directory structure +=========================== + +This section describes the default installation hierarchy of the +distribution. It conforms to both the GNU coding standards and the TeX +directory structure (TDS) standard. For rationale and further +explanation, please see those documents. The GNU standard is available +as `ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi' and +mirrors. The TDS document is available from `CTAN:/tex-archive/tds' +(*note unixtex.ftp::). + + You can change the default paths in many ways (*note Changing search +paths::). One common desire is to put everything (binaries and all) +under a single top-level directory such as `/usr/local/texmf' or +`/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same. +For specific instructions on doing that, see *Note configure +scenarios::. + + Here is a skeleton of the default directory structure, extracted from +the TDS document: + + PREFIX/ installation root (`/usr/local' by default) + bin/ executables + man/ man pages + include/ C header files + info/ GNU info files + lib/ libraries (`libkpathsea.*') + share/ architecture-independent files + texmf/ TDS root + bibtex/ BibTeX input files + bib/ BibTeX databases + base/ base distribution (e.g., `xampl.bib') + misc/ single-file databases + PKG/ name of a package + bst/ BibTeX style files + base/ base distribution (e.g., `plain.bst', `acm.bst') + misc/ single-file styles + PKG/ name of a package + doc/ additional documentation + dvips/ `.pro', `.ps', `psfonts.map' + fonts/ font-related files + TYPE/ file type (e.g., `tfm', `pk') + MODE/ type of output device (types `pk' and `gf' only) + SUPPLIER/ name of a font supplier (e.g., `public') + TYPEFACE/ name of a typeface (e.g., `cm') + dpiNNN/ font resolution (types `pk' and `gf' only) + metafont/ Metafont (non-font) input files + base/ base distribution (e.g., `plain.mf') + misc/ single-file packages (e.g., `modes.mf') + PKG/ name of a package (e.g., `mfpic') + metapost/ MetaPost input files + base/ base distribution (e.g., `plain.mp') + misc/ single-file packages + PKG/ name of a package + support/ support files for MetaPost-related utilities (e.g., `trfonts.map') + mft/ `MFT' inputs (e.g., `plain.mft') + tex/ TeX input files + FORMAT/ name of a format (e.g., `plain') + base/ base distribution for FORMAT (e.g., `plain.tex') + misc/ single-file packages (e.g., `webmac.tex') + local/ local additions to or local configuration files for FORMAT + PKG/ name of a package (e.g., `graphics', `mfnfss') + generic/ format-independent packages + hyphen/ hyphenation patterns (e.g., `hyphen.tex') + images/ image input files (e.g., Encapsulated PostScript) + misc/ single-file format-independent packages (e.g., `null.tex'). + PKG/ name of a package (e.g., `babel') + web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) + + Some concrete examples for most file types: + + /usr/local/bin/tex + /usr/local/man/man1/xdvi.1 + /usr/local/info/kpathsea.info + /usr/local/lib/libkpathsea.a + /usr/local/share/texmf/bibtex/bst/base/plain.bst + /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk + /usr/local/share/texmf/fonts/source/public/pandora/pnr10.mf + /usr/local/share/texmf/fonts/tfm/public/cm/cmr10.tfm + /usr/local/share/texmf/fonts/type1/adobe/utopia/putr.pfa + /usr/local/share/texmf/metafont/base/plain.mf + /usr/local/share/texmf/metapost/base/plain.mp + /usr/local/share/texmf/tex/plain/base/plain.tex + /usr/local/share/texmf/tex/generic/hyphen/hyphen.tex + /usr/local/share/texmf/web2c/tex.pool + /usr/local/share/texmf/web2c/tex.fmt + /usr/local/share/texmf/web2c/texmf.cnf + + +File: kpathsea.info, Node: unixtex.ftp, Next: Reporting bugs, Prev: TeX directory structure, Up: Installation + +2.5 `unixtex.ftp': Obtaining TeX +================================ + +This is `ftp://ftp.tug.org/tex/unixtex.ftp', last updated 26 December +2003. Also available as `http://www.tug.org/unixtex.ftp'. The IP +address is currently `[130.225.2.178]'. It is also in Kpathsea source +distributions as `etc/unixtex.ftp' (although the network version is +usually newer). Mail <tex-k@mail.tug.org> with comments or questions. + + Following are general instructions for Unix or other sites who wish +to acquire the Web2c distribution, (plain) TeX, LaTeX (2e), BibTeX, +Metafont, MetaPost, DVI processors for the X window system, PostScript, +the PCL language in the HP LaserJet, and related programs. They are +oriented towards building from the original sources, though some +information on alternative packages is included in the last section. +See also `http://www.tug.org/web2c/', the Web2c and Kpathsea home page. + + Please note that the Web2c distribution is a bare-bones distribution +in source form, and building a complete installation from it is a +non-trivial matter. For most uses, it is a better idea to install a +distribution with pre-packaged binaries for your platform. The +principal example of such a distribution is TeX Live +(`http://www.tug.org/texlive/'), which is based on the Web2c sources. + + Please consider joining the TeX Users Group (TUG) or another user +group of your choice to help support the maintenance and development of +the programs you retrieve. See `http://www.tug.org/join.html' for +information and the membership registration form, and +`http://www.tug.org/usergroups.html' for a listing of all user groups. + + For actual installation instructions after obtaining the necessary +sources, see *Note Installation::. A copy is in the distribution file +`kpathsea/INSTALL'. + +* Menu: + +* Electronic distribution:: CTAN and so forth. +* CD-ROM distribution:: +* Other TeX packages:: + + +File: kpathsea.info, Node: Electronic distribution, Next: CD-ROM distribution, Up: unixtex.ftp + +2.5.1 Electronic distribution +----------------------------- + +In many places we refer to CTAN:. This is _both_ a host name and a +directory name. Here are the primary locations: + + `ftp://ctan.tug.org/tex-archive/' (Vermont, USA) + `ftp://ftp.dante.de/tex-archive/' (Germany) + `ftp://ftp.tex.ac.uk/tex-archive/' (England) + +CTAN has many mirrors worldwide; see the top-level file +`README.mirrors' from one of the sites above or see +`http://www.tug.org/CTAN.sites'. + + You can also access CTAN via the World Wide Web, electronic mail, or +NFS. The same `README.mirrors' file explains how. + + You will need to retrieve some or all of the following archives, +depending on your needs (don't forget to set binary mode for file +transfers): + +`CTAN:/systems/web2c/web.tar.gz' + The original WEB source files, written primarily by Don Knuth. + Required unless you already have this `web' version. (The WEB + sources change irregularly with respect to Web2c itself.) Unpacks + into `web2c-VERSION'. + +`CTAN:/systems/web2c/web2c.tar.gz' + The Web2c system. Required. Also unpacks into `web2c-VERSION'. + +`CTAN:/systems/web2c/web2c-etex.tar.gz' + Additions to the Web2c system for building e-TeX. Optional. + Unpacks into `web2c-VERSION'. + +`CTAN:/systems/web2c/etexlib.tar.gz' + Additions to the texmf tree needed to build e-TeX. Optional. + Unpacks into `texmf/'. + +`CTAN:/systems/web2c/etexdoc.tar.gz' + Documentation for e-TeX as an addition to the texmf tree. + Optional. Unpacks into `texmf/'. + +`CTAN:/systems/web2c/web2c-omega.tar.gz' + Additions to the Web2c system for building Omega. Optional. + Unpacks into `web2c-VERSION'. + +`CTAN:/systems/web2c/omegalib.tar.gz' + Additions to the texmf tree needed to build Omega. Optional. + Unpacks into `texmf/'. + +`CTAN:/systems/web2c/omegadoc.tar.gz' + Documentation for Omega as an addition to the texmf tree. + Optional. Unpacks into `texmf/'. + +`CTAN:/systems/web2c/web2c-pdftex.tar.gz' + Additions to the Web2c system for building pdfTeX. Optional. + Unpacks into `web2c-VERSION'. + +`CTAN:/systems/web2c/pdftexlib.tar.gz' + Additions to the texmf tree needed to build pdfTeX. Optional. + Unpacks into `texmf/'. + +`CTAN:/dviware/xdvik/xdvik.tar.gz' + X window system DVI previewer. Unpacks into `xdvik-VERSION'. + Optional. + + Additional drivers, macro files, and other support are needed to +build a working system. These are available in teTeX. + + All that said, the originating host for the software above is +`ftp.tug.org'. You can retrieve these distributions (but not much +else) from the `tex/' directory on that host. + + +File: kpathsea.info, Node: CD-ROM distribution, Next: Other TeX packages, Prev: Electronic distribution, Up: unixtex.ftp + +2.5.2 CD-ROM distribution +------------------------- + +Numerous organizations distribute various TeX CD-ROM's (and DVD's): + + * Virtually all the TeX user groups collaborate to produce the `TeX + Live' distribution once a year; see `http://www.tug.org/texlive/' + for more information. + + * The Free Software Foundation's `Source Code CD-ROM' contains the + minimal TeX source distribution described in the previous section + (i.e., enough to print GNU documentation); email <gnu@gnu.org>. + + * Most Linux distributions include some TeX package based on Web2c; + see the Linux documentation file `Distribution-HOWTO' for a + comparison of Linux distributions, available (for example) via + `http://www.linux.org'. + + If you know of additional TeX distributions to add to this list, +please inform <tex-k@mail.tug.org>. + + +File: kpathsea.info, Node: Other TeX packages, Prev: CD-ROM distribution, Up: unixtex.ftp + +2.5.3 Other TeX packages +------------------------ + +Many other TeX implementations are available in `CTAN:/systems', +including ready-to-run distributions for Unix, Amiga, Acorn, VMS, +Macintosh, DOS, and Windows (in various forms). Although Web2c has +support in the source code for many operating systems, and in fact some +of the other distributions are based on it, it's unlikely to work as +distributed on anything but Unix. (Please contribute improvements!) + + The principal user-oriented Unix distribution based on Web2c is the +teTeX distribution. It includes complete sources, and runs on all +modern Unix variants, including Linux. It contains many TeX-related +programs besides those in the core Web2c. + + The host labrea.stanford.edu is the original source for the files +for which Donald Knuth is directly responsible: `tex.web', `plain.tex', +etc. However, unless you want to build your TeX library tree ab initio, +it is more reliable and less work to retrieve these files as part of +the above packages. In any case, labrea is not the canonical source for +anything except what was created by Stanford TeX project, so do not +rely on all the files available at that ftp site being up-to-date. + + +File: kpathsea.info, Node: Reporting bugs, Prev: unixtex.ftp, Up: Installation + +2.6 Reporting bugs +================== + +(A copy of this chapter is in the file `kpathsea/BUGS'.) + +If you have problems or suggestions, please report them to +<tex-k@mail.tug.org> using the bug checklist below. + + Please report bugs in the documentation; not only factual errors or +inconsistent behavior, but unclear or incomplete explanations, typos, +wrong fonts, ... + +* Menu: + +* Bug checklist:: What to include in a good bug report. +* Mailing lists:: Joining the bugs or announcements mailing lists. +* Debugging:: Analyzing runtime problems. +* Logging:: Recording searches. +* Common problems:: When things go wrong. + + +File: kpathsea.info, Node: Bug checklist, Next: Mailing lists, Up: Reporting bugs + +2.6.1 Bug checklist +------------------- + +Before reporting a bug, please check below to be sure it isn't already +known (*note Common problems::). + + Bug reports should be sent via electronic mail to +<tex-k@mail.tug.org>, or by postal mail to 135 Center Hill Road / +Plymouth, MA 02360 / USA. + + The general principle is that a good bug report includes all the +information necessary for reproduction. Therefore, to enable +investigation, your report should include the following: + + * The version number(s) of the program(s) involved, and of Kpathsea + itself. You can get the former by giving a sole option `--version' + to the program, and the latter by running `kpsewhich --version'. + The `NEWS' and `ChangeLog' files also contain the version number. + + * The hardware, operating system (including version number), + compiler, and `make' program you are using (the output of `uname + -a' is a start on the first two, though often incomplete). If the + bug involves the X window system, include X version and supplier + information as well (examples: X11R6 from MIT; X11R4 from HP; + OpenWindows 3.3 bundled with SunOS 4.1.4). + + * Any options you gave to `configure'. This is recorded in the + `config.status' files. + + If you are reporting a bug in `configure' itself, it's probably + system-dependent, and it will be unlikely the maintainers can do + anything useful if you merely report that thus-and-such is broken. + Therefore, you need to do some additional work: for some bugs, you + can look in the file `config.log' where the test that failed should + appear, along with the compiler invocation and source program in + question. You can then compile it yourself by hand, and discover + why the test failed. Other `configure' bugs do not involve the + compiler; in that case, the only recourse is to inspect the + `configure' shell script itself, or the Autoconf macros that + generated `configure'. + + * The log of all debugging output, if the bug is in path searching. + You can get this by setting the environment variable + `KPATHSEA_DEBUG' to `-1' before running the program. Please look + at the log yourself to make sure the behavior is really a bug + before reporting it; perhaps "old" environment variable settings + are causing files not to be found, for example. + + * The contents of any input files necessary to reproduce the bug. + For bugs in DVI-reading programs, for example, this generally + means a DVI file (and any EPS or other files it uses)--TeX source + files are helpful, but the DVI file is necessary, because that's + the actual program input. + + GNU `shar', available from `ftp://prep.ai.mit.edu/pub/gnu' is a + convenient way of packaging multiple (possibly binary) files for + electronic mail. If you feel your input files are too big to send + by email, you can ftp them to `ftp://ftp.tug.org/incoming' (that + directory is writable, but not readable). + + * If you are sending a patch (do so if you can!), please do so in + the form of a context diff (`diff -c') against the original + distribution source. Any other form of diff is either not as + complete or harder for me to understand. Please also include a + `ChangeLog' entry. + + * If the bug involved is an actual crash (i.e., core dump), it is + easy and useful to include a stack trace from a debugger (I + recommend the GNU debugger GDB, available from + `ftp://prep.ai.mit.edu/pub/gnu'). If the cause is apparent (a + `NULL' value being dereferenced, for example), please send the + details along. If the program involved is TeX or Metafont, and + the crash is happening at apparently-sound code, however, the bug + may well be in the compiler, rather than in the program or the + library (*note TeX or Metafont failing: TeX or Metafont failing.). + + * Any additional information that will be helpful in reproducing, + diagnosing, or fixing the bug. + + +File: kpathsea.info, Node: Mailing lists, Next: Debugging, Prev: Bug checklist, Up: Reporting bugs + +2.6.2 Mailing lists +------------------- + +Web2c and Kpathsea in general are discussed on the mailing list +<tex-k@mail.tug.org>. To join, email <tex-k-request@mail.tug.org> with +a line consisting of + + subscribe YOU@YOUR.PREFERRED.EMAIL.ADDRESS + +in the body of the message. + + You do not need to join to submit a report, nor will it affect +whether you get a response. There is no Usenet newsgroup equivalent +(if you can be the one to set this up, email `tex-k-request'). Traffic +on the list is fairly light, and is mainly bug reports and enhancement +requests to the software. The best way to decide if you want to join +or not is read some of the archives from +`ftp://ftp.tug.org/mail/archives/tex-k/'. + + Be aware that large data files are sometimes included in bug reports. +If this is a problem for you, do not join the list. + + If you only want announcements of new releases, not bug reports and +discussion, join <tex-archive@math.utah.edu> (via mail to +<tex-archive-request@math.utah.edu>). + + If you are looking for general TeX help, such as how to use LaTeX, +please use the mailing list <info-tex@shsu.edu> mailing list, which is +gatewayed to the `comp.text.tex' Usenet newsgroup (or post to the +newsgroup; the gateway is bidirectional). + + +File: kpathsea.info, Node: Debugging, Next: Logging, Prev: Mailing lists, Up: Reporting bugs + +2.6.3 Debugging +--------------- + +Kpathsea provides a number of runtime debugging options, detailed below +by their names and corresponding numeric values. When the files you +expect aren't being found, the thing to do is enable these options and +examine the output. + + You can set these with some runtime argument (e.g., `-d') to the +program; in that case, you should use the numeric values described in +the program's documentation (which, for Dvipsk and Xdvik, are different +than those below). It's best to give the `-d' (or whatever) option +first, for maximal output. Dvipsk and Xdvik have additional +program-specific debugging options as well. + + You can also set the environment variable `KPATHSEA_DEBUG'; in this +case, you should use the numbers below. If you run the program under a +debugger and set the variable `kpathsea_debug', also use the numbers +below. + + In any case, by far the simplest value to use is `-1', which will +turn on all debugging output. This is usually better than guessing +which particular values will yield the output you need. + + Debugging output always goes to standard error, so you can redirect +it easily. For example, in Bourne-compatible shells: + dvips -d -1 ... 2>/tmp/debug + + It is sometimes helpful to run the standalone Kpsewhich utility +(*note Invoking kpsewhich::), instead of the original program. + + In any case, you can _not_ use the _names_ below; you must always +use somebody's numbers. (Sorry.) To set more than one option, just +sum the corresponding numbers. + +`KPSE_DEBUG_STAT (1)' + Report `stat'(2) calls. This is useful for verifying that your + directory structure is not forcing Kpathsea to do many additional + file tests (*note Slow path searching::, and *note Subdirectory + expansion::). If you are using an up-to-date `ls-R' database + (*note Filename database::), this should produce no output unless a + nonexistent file that must exist is searched for. + +`KPSE_DEBUG_HASH (2)' + Report lookups in all hash tables: `ls-R' and `aliases' (*note + Filename database::); font aliases (*note Fontmap::); and config + file values (*note Config files::). Useful when expected values + are not being found, e.g.., file searches are looking at the disk + instead of using `ls-R'. + +`KPSE_DEBUG_FOPEN (4)' + Report file openings and closings. Especially useful when your + system's file table is full, for seeing which files have been + opened but never closed. In case you want to set breakpoints in a + debugger: this works by redefining `fopen' (`fclose') to be + `kpse_fopen_trace' (`kpse_fclose_trace'). + +`KPSE_DEBUG_PATHS (8)' + Report general path information for each file type Kpathsea is + asked to search. This is useful when you are trying to track down + how a particular path got defined--from `texmf.cnf', `config.ps', + an environment variable, the compile-time default, etc. This is + the contents of the `kpse_format_info_type' structure defined in + `tex-file.h'. + +`KPSE_DEBUG_EXPAND (16)' + Report the directory list corresponding to each path element + Kpathsea searches. This is only relevant when Kpathsea searches + the disk, since `ls-R' searches don't look through directory lists + in this way. + +`KPSE_DEBUG_SEARCH (32)' + Report on each file search: the name of the file searched for, the + path searched in, whether or not the file must exist (when drivers + search for `cmr10.vf', it need not exist), and whether or not we + are collecting all occurrences of the file in the path (as with, + e.g., `texmf.cnf' and `texfonts.map'), or just the first (as with + most lookups). This can help you correlate what Kpathsea is doing + with what is in your input file. + +`KPSE_DEBUG_VARS (64)' + Report the value of each variable Kpathsea looks up. This is + useful for verifying that variables do indeed obtain their correct + values. + +`GSFTOPK_DEBUG (128)' + Activates debugging printout specific to `gsftopk' program. + +`MAKETEX_DEBUG (512)' + If you use the optional `mktex' programs instead of the + traditional shell scripts, this will report the name of the site + file (`mktex.cnf' by default) which is read, directories created by + `mktexdir', the full path of the `ls-R' database built by + `mktexlsr', font map searches, `MT_FEATURES' in effect, parameters + from `mktexnam', filenames added by `mktexupd', and some + subsidiary commands run by the programs. + +`MAKETEX_FINE_DEBUG (1024)' + When the optional `mktex' programs are used, this will print + additional debugging info from functions internal to these + programs. + + Debugging output from Kpathsea is always written to standard error, +and begins with the string `kdebug:'. (Except for hash table buckets, +which just start with the number, but you can only get that output +running under a debugger. See comments at the `hash_summary_only' +variable in `kpathsea/db.c'.) + + +File: kpathsea.info, Node: Logging, Next: Common problems, Prev: Debugging, Up: Reporting bugs + +2.6.4 Logging +------------- + +Kpathsea can record the time and filename found for each successful +search. This may be useful in finding good candidates for deletion when +your filesystem is full, or in discovering usage patterns at your site. + + To do this, define the environment or config file variable +`TEXMFLOG'. The value is the name of the file to append the +information to. The file is created if it doesn't exist, and appended +to if it does. + + Each successful search turns into one line in the log file: two words +separated by a space. The first word is the time of the search, as the +integer number of seconds since "the epoch", i.e., UTC midnight 1 +January 1970 (more precisely, the result of the `time' system call). +The second word is the filename. + + For example, after `setenv TEXMFLOG /tmp/log', running Dvips on +`story.dvi' appends the following lines: + + 774455887 /usr/local/share/texmf/dvips/config.ps + 774455887 /usr/local/share/texmf/dvips/psfonts.map + 774455888 /usr/local/share/texmf/dvips/texc.pro + 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk + 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk + 774455889 /usr/local/share/texmf/dvips/texc.pro + +Only filenames that are absolute are recorded, to preserve some +semblance of privacy. + + +File: kpathsea.info, Node: Common problems, Prev: Logging, Up: Reporting bugs + +2.6.5 Common problems +--------------------- + +Here are some common problems with configuration, compilation, linking, +execution, ... + +* Menu: + +* Unable to find files:: If your program can't find fonts (or whatever). +* Slow path searching:: If it takes forever to find anything. +* Unable to generate fonts:: If mktexpk fails. +* TeX or Metafont failing:: Likely compiler bugs. + +* Empty Makefiles:: When configure produces empty makefiles. +* XtStrings:: When _XtStrings is undefined. +* dlopen:: When dlopen is undefined. +* ShellWidgetClass:: For dynamic linking troubles under OpenWindows. +* Pointer combination warnings:: For old compilers that don't grok char *. + + +File: kpathsea.info, Node: Unable to find files, Next: Slow path searching, Up: Common problems + +2.6.5.1 Unable to find files +............................ + +If a program complains it cannot find fonts (or other input files), any +of several things might be wrong. In any case, you may find the +debugging options helpful. *Note Debugging::. + + * Perhaps you simply haven't installed all the necessary files; the + basic fonts and input files are distributed separately from the + programs. *Note unixtex.ftp::. + + * You have (perhaps unknowingly) told Kpathsea to use search paths + that don't reflect where the files actually are. One common cause + is having environment variables set from a previous installation, + thus overriding what you carefully set in `texmf.cnf' (*note + Supported file formats::). System `/etc/profile' or other files + such may be the culprit. + + * Your files reside in a directory that is only pointed to via a + symbolic link, in a leaf directory and is not listed in `ls-R'. + + Unfortunately, Kpathsea's subdirectory searching has an + irremediable deficiency: If a directory D being searched for + subdirectories contains plain files and symbolic links to other + directories, but no true subdirectories, D will be considered a + leaf directory, i.e., the symbolic links will not be followed. + *Note Subdirectory expansion::. + + You can work around this problem by creating an empty dummy + subdirectory in D. Then D will no longer be a leaf, and the + symlinks will be followed. + + The directory immediately followed by the `//' in the path + specification, however, is always searched for subdirectories, + even if it is a leaf. Presumably you would not have asked for the + directory to be searched for subdirectories if you didn't want it + to be. + + * If the fonts (or whatever) don't already exist, `mktexpk' (or + `mktexmf' or `mktextfm') will try to create them. If these rather + complicated shell scripts fail, you'll eventually get an error + message saying something like `Can't find font FONTNAME'. The best + solution is to fix (or at least report) the bug in `mktexpk'; the + workaround is to generate the necessary fonts by hand with + Metafont, or to grab them from a CTAN site (*note unixtex.ftp::). + + * There is a bug in the library. *Note Reporting bugs::. + + +File: kpathsea.info, Node: Slow path searching, Next: Unable to generate fonts, Prev: Unable to find files, Up: Common problems + +2.6.5.2 Slow path searching +........................... + +If your program takes an excessively long time to find fonts or other +input files, but does eventually succeed, here are some possible +culprits: + + * Most likely, you just have a lot of directories to search, and that + takes a noticeable time. The solution is to create and maintain a + separate `ls-R' file that lists all the files in your main TeX + hierarchy. *Note Filename database::. Kpathsea always uses `ls-R' + if it's present; there's no need to recompile or reconfigure any + of the programs. + + * Your recursively-searched directories (e.g., + `/usr/local/share/texmf/fonts//'), contain a mixture of files and + directories. This prevents Kpathsea from using a useful + optimization (*note Subdirectory expansion::). + + It is best to have only directories (and perhaps a `README') in the + upper levels of the directory structure, and it's very important + to have _only_ files, and no subdirectories, in the leaf + directories where the dozens of TFM, PK, or whatever files reside. + + In any case, you may find the debugging options helpful in +determining precisely when the disk or network is being pounded. *Note +Debugging::. + + +File: kpathsea.info, Node: Unable to generate fonts, Next: TeX or Metafont failing, Prev: Slow path searching, Up: Common problems + +2.6.5.3 Unable to generate fonts +................................ + +Metafont outputs fonts in bitmap format, tuned for a particular device +at a particular resolution, in order to allow for the highest-possible +quality of output. Some DVI-to-whatever programs, such as Dvips, try +to generate these on the fly when they are needed, but this generation +may fail in several cases. + + If `mktexpk' runs, but fails with this error: + mktexpk: Can't guess mode for NNN dpi devices. + mktexpk: Use a config file to specify the mode, or update me. + you need to ensure the resolution and mode match; just specifying +the resolution, as in `-D 360', is not enough. + + You can specify the mode name with the `-mode' option on the Dvips +command line, or in a Dvips configuration file (*note Config files: +(dvips)Config files.), such as `config.ps' in your document directory, +`~/.dvipsrc' in your home directory, or in a system directory (again +named `config.ps'). (Other drivers use other files, naturally.) + + For example, if you need 360dpi fonts, you could include this in a +configuration file: + D 360 + M lqmed + + If Metafont runs, but generates fonts at the wrong resolution or for +the wrong device, most likely `mktexpk''s built-in guess for the mode +is wrong, and you should override it as above. + + See `ftp://ftp.tug.org/tex/modes.mf' for a list of resolutions and +mode names for most devices (additional submissions are welcome). + + If Metafont runs but generates fonts at a resolution of 2602dpi (and +prints out the name of each character as well as just a character +number, and maybe tries to display the characters), then your Metafont +base file probably hasn't been made properly. (It's using the default +`proof' mode, instead of an actual device mode.) To make a proper +`plain.base', assuming the local mode definitions are contained in a +file `modes.mf', run the following command (assuming Unix): + + inimf "plain; input modes; dump" + +Then copy the `plain.base' file from the current directory to where the +base files are stored on your system (`/usr/local/share/texmf/web2c' by +default), and make a link (either hard or soft) from `plain.base' to +`mf.base' in that directory. *Note inimf invocation: (web2c)inimf +invocation. + + If `mf' is a command not found at all by `mktexpk', then you need to +install Metafont (*note unixtex.ftp::). + + +File: kpathsea.info, Node: TeX or Metafont failing, Next: Empty Makefiles, Prev: Unable to generate fonts, Up: Common problems + +2.6.5.4 TeX or Metafont failing +............................... + +If TeX or Metafont get a segmentation fault or otherwise fail while +running a normal input file, the problem is usually a compiler bug +(unlikely as that may sound). Even if the trip and trap tests are +passed, problems may lurk. Optimization occasionally causes trouble in +programs other than TeX and Metafont themselves, too. + + Insufficient swap space may also cause core dumps or other erratic +behavior. + + For a workaround, if you enabled any optimization flags, it's best to +omit optimization entirely. In any case, the way to find the facts is +to run the program under the debugger and see where it's failing. + + Also, if you have trouble with a system C compiler, I advise trying +the GNU C compiler. And vice versa, unfortunately; but in that case I +also recommend reporting a bug to the GCC mailing list; see *Note Bugs: +(gcc)Bugs. + + To report compiler bugs effectively requires perseverance and +perspicacity: you must find the miscompiled line, and that usually +involves delving backwards in time from the point of error, checking +through TeX's (or whatever program's) data structures. Things are not +helped by all-too-common bugs in the debugger itself. Good luck. + + One known cause of trouble is the way arrays are handled. Some of +the Pascal arrays have a lower index other than 0, and the C code will +take the pointer to the allocated memory, subtract the lower index, and +use the resulting pointer for the array. While this trick often works, +ANSI C doesn't guarantee that it will. It it known to fail on HP-UX 10 +mchines when the native compiler is used, unless the `+u' compiler +switch was specified. Using GCC will work on this platform as well. + + +File: kpathsea.info, Node: Empty Makefiles, Next: XtStrings, Prev: TeX or Metafont failing, Up: Common problems + +2.6.5.5 Empty Makefiles +....................... + +On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), `configure' may +fail to properly create the Makefiles. Instead, you get an error which +looks something like this: + + prompt$ ./configure + ... + creating Makefile + sed: 1: "\\@^ac_include make/pat ...": \ can not be used as a string delimiter + + So far as I know, the bug here is in `/bin/sh' on these systems. I +don't have access to a machine running any of them, so if someone can +find a workaround that avoids the quoting bug, I'd be most grateful. +(Search for `ac_include' in the `configure' script to get to the +problematic code.) + + It should work to run `bash configure', instead of using `/bin/sh'. +You can get Bash from `ftp://prep.ai.mit.edu/pub/gnu' and mirrors. + + Another possible cause (reported for NeXT) is a bug in the `sed' +command. In that case the error may look like this: + + Unrecognized command: \@^ac_include make/paths.make@r make/paths.make + + In this case, installing GNU `sed' should solve the problem. You +can get GNU `sed' from the same places as Bash. + + +File: kpathsea.info, Node: XtStrings, Next: dlopen, Prev: Empty Makefiles, Up: Common problems + +2.6.5.6 `XtStrings' +................... + +You may find that linking X programs results in an error from the linker +that `XtStrings' is undefined, something like this: + + gcc -o virmf ... + .../x11.c:130: undefined reference to `XtStrings' + + This generally happens because of a mismatch between the X include +files with which you compiled and the X libraries with which you linked; +often, the include files are from MIT and the libraries from Sun. + + The solution is to use the same X distribution for compilation and +linking. Probably `configure' was unable to guess the proper +directories from your installation. You can use the `configure' +options `--x-includes=PATH' and `--x-libraries=PATH' to explicitly +specify them. + + +File: kpathsea.info, Node: dlopen, Next: ShellWidgetClass, Prev: XtStrings, Up: Common problems + +2.6.5.7 `dlopen' +................ + +(This section adapted from the file `dlsym.c' in the X distribution.) + + The `Xlib' library uses the standard C function `wcstombs'. Under +SunOS 4.1, `wcstombs' uses the `dlsym' interface defined in `libdl.so'. +Unfortunately, the SunOS 4.1 distribution does not include a static +`libdl.a' library. + + As a result, if you try to link an X program statically under SunOS, +you may get undefined references to `dlopen', `dlsym', and `dlclose'. +One workaround is to include these definitions when you link: + + void *dlopen() { return 0; } + void *dlsym() { return 0; } + int dlclose() { return -1; } + +These are contained in the `dlsym.c' file in the MIT X distribution. + + +File: kpathsea.info, Node: ShellWidgetClass, Next: Pointer combination warnings, Prev: dlopen, Up: Common problems + +2.6.5.8 `ShellWidgetClass' +.......................... + +(This section adapted from the comp.sys.sun.admin FAQ.) + + If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x, +you may get undefined symbols `_get_wmShellWidgetClass' and +`_get_applicationShellWidgetClass' when linking. This problem does not +arise using the standard MIT X libraries under SunOS. + + The cause is bugs in the `Xmu' shared library as shipped from Sun. +There are several fixes: + + * Install the free MIT distribution from `ftp.x.org' and mirrors. + + * Get the OpenWindows patches listed below. + + * Statically link the `Xmu' library into the executable. + + * Avoid using `Xmu' at all. If you are compiling Metafont, see *Note + Online Metafont graphics: (web2c)Online Metafont graphics. If you + are compiling Xdvi, see the `-DNOTOOL' option in `xdvik/INSTALL'. + + * Ignore the errors. The binary runs fine regardless. + + + Here is the information for getting the two patches: + + Patch ID: 100512-02 + Bug ID's: 1086793, 1086912, 1074766 + Description: 4.1.x OpenWindows 3.0 `libXt' jumbo patch + + Patch ID: 100573-03 + Bug ID: 1087332 + Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared `libXmu'. + + The way to statically link with `libXmu' depends on whether you are +using a Sun compiler (e.g., `cc') or `gcc'. If the latter, alter the +`x_libs' Make variable to include + + -static -lXmu -dynamic + + If you are using the Sun compiler, use `-Bstatic' and `-Bdynamic'. + + +File: kpathsea.info, Node: Pointer combination warnings, Prev: ShellWidgetClass, Up: Common problems + +2.6.5.9 Pointer combination warnings +.................................... + +When compiling with old C compilers, you may get some warnings about +"illegal pointer combinations". These are spurious; just ignore them. +I decline to clutter up the source with casts to get rid of them. + + +File: kpathsea.info, Node: Path searching, Next: TeX support, Prev: Installation, Up: Top + +3 Path searching +**************** + +This chapter describes the generic path searching mechanism Kpathsea +provides. For information about searching for particular file types +(e.g., TeX fonts), see the next chapter. + +* Menu: + +* Searching overview:: Basic scheme for searching. +* Path sources:: Where search paths can be defined. +* Path expansion:: Special constructs in search paths. +* Filename database:: Using an externally-built list to search. +* Invoking kpsewhich:: Standalone path lookup. + + +File: kpathsea.info, Node: Searching overview, Next: Path sources, Up: Path searching + +3.1 Searching overview +====================== + +A "search path" is a colon-separated list of "path elements", which are +directory names with a few extra frills. A search path can come from +(a combination of) many sources; see below. To look up a file `foo' +along a path `.:/dir', Kpathsea checks each element of the path in +turn: first `./foo', then `/dir/foo', returning the first match (or +possibly all matches). + + The "colon" and "slash" mentioned here aren't necessarily `:' and +`/' on non-Unix systems. Kpathsea tries to adapt to other operating +systems' conventions. + + To check a particular path element E, Kpathsea first sees if a +prebuilt database (*note Filename database::) applies to E, i.e., if +the database is in a directory that is a prefix of E. If so, the path +specification is matched against the contents of the database. + + If the database does not exist, or does not apply to this path +element, or contains no matches, the filesystem is searched (if this +was not forbidden by the specification with `!!' and if the file being +searched for must exist). Kpathsea constructs the list of directories +that correspond to this path element, and then checks in each for the +file being searched for. (To help speed future lookups of files in the +same directory, the directory in which a file is found is floated to the +top of the directory list.) + + The "file must exist" condition comes into play with VF files and +input files read by the TeX `\openin' command. These files may not +exist (consider `cmr10.vf'), and so it would be wrong to search the +disk for them. Therefore, if you fail to update `ls-R' when you +install a new VF file, it will never be found. + + Each path element is checked in turn: first the database, then the +disk. If a match is found, the search stops and the result is +returned. This avoids possibly-expensive processing of path +specifications that are never needed on a particular run. (Unless the +search explicitly requested all matches.) + + Although the simplest and most common path element is a directory +name, Kpathsea supports additional features in search paths: layered +default values, environment variable names, config file values, users' +home directories, and recursive subdirectory searching. Thus, we say +that Kpathsea "expands" a path element, meaning transforming all the +magic specifications into the basic directory name or names. This +process is described in the sections below. It happens in the same +order as the sections. + + Exception to all of the above: If the filename being searched for is +absolute or explicitly relative, i.e., starts with `/' or `./' or +`../', Kpathsea simply checks if that file exists. + + Ordinarily, if Kpathsea tries to access a file or directory that +cannot be read, it gives a warning. This is so you will be alerted to +directories or files that accidentally lack read permission (for +example, a `lost+found'). If you prefer not to see these warnings, +include the value `readable' in the `TEX_HUSH' environment variable or +config file value. + + This generic path searching algorithm is implemented in +`kpathsea/pathsearch.c'. It is employed by a higher-level algorithm +when searching for a file of a particular type (*note File lookup::, +and *Note Glyph lookup::). + + +File: kpathsea.info, Node: Path sources, Next: Path expansion, Prev: Searching overview, Up: Path searching + +3.2 Path sources +================ + +A search path can come from many sources. In the order in which +Kpathsea uses them: + + 1. A user-set environment variable, e.g., `TEXINPUTS'. Environment + variables with an underscore and the program name appended + override; for example, `TEXINPUTS_latex' overrides `TEXINPUTS' if + the program being run is named `latex'. + + 2. A program-specific configuration file, e.g., an `S /a:/b' line in + Dvips' `config.ps' (*note Config files: (dvips)Config files.). + + 3. A line in a Kpathsea configuration file `texmf.cnf', e.g., + `TEXINPUTS=/c:/d' (see below). + + 4. The compile-time default (specified in `kpathsea/paths.h'). + + You can see each of these values for a given search path by using the +debugging options (*note Debugging::). + + These sources may be combined via default expansion (*note Default +expansion::). + +* Menu: + +* Config files:: Kpathsea's runtime config files (texmf.cnf). + + +File: kpathsea.info, Node: Config files, Up: Path sources + +3.2.1 Config files +------------------ + +As mentioned above, Kpathsea reads "runtime configuration files" named +`texmf.cnf' for search path and other definitions. The search path +used to look for these configuration files is named `TEXMFCNF', and is +constructed in the usual way, as described above, except that +configuration files cannot be used to define the path, naturally; also, +an `ls-R' database is not used to search for them. + + Kpathsea reads _all_ `texmf.cnf' files in the search path, not just +the first one found; definitions in earlier files override those in +later files. Thus, if the search path is `.:$TEXMF', values from +`./texmf.cnf' override those from `$TEXMF/texmf.cnf'. + + While (or instead of) reading this description, you may find it +helpful to look at the distributed `texmf.cnf', which uses or at least +mentions most features. The format of `texmf.cnf' files follows: + + * Comments start with `%' and continue to the end of the line. + + * Blank lines are ignored. + + * A `\' at the end of a line acts as a continuation character, i.e., + the next line is appended. Whitespace at the beginning of + continuation lines is not ignored. + + * Each remaining line must look like + + VARIABLE [. PROGNAME] [=] VALUE + + where the `=' and surrounding whitespace is optional. + + * The VARIABLE name may contain any character other than whitespace, + `=', or `.', but sticking to `A-Za-z_' is safest. + + * If `.PROGNAME' is present, the definition only applies if the + program that is running is named (i.e., the last component of + `argv[0]' is) PROGNAME or `PROGNAME.exe'. This allows different + flavors of TeX to have different search paths, for example. + + * VALUE may contain any characters except `%' and `@'. (These + restrictions are only necessary because of the processing done on + `texmf.cnf' at build time, so you can stick those characters in + after installation if you have to.) The `$VAR.PROG' feature is + not available on the right-hand side; instead, you must use an + additional variable (see below for example). A `;' in VALUE is + translated to `:' if running under Unix; this is useful to write a + single `texmf.cnf' which can be used under both Unix and NT. + + * All definitions are read before anything is expanded, so you can + use variables before they are defined (like Make, unlike most other + programs). + +Here is a configuration file fragment illustrating most of these points: + + % TeX input files -- i.e., anything to be found by \input or \openin ... + latex209_inputs = .:$TEXMF/tex/latex209//:$TEXMF/tex// + latex2e_inputs = .:$TEXMF/tex/latex//:$TEXMF/tex// + TEXINPUTS = .:$TEXMF/tex// + TEXINPUTS.latex209 = $latex209_inputs + TEXINPUTS.latex2e = $latex2e_inputs + TEXINPUTS.latex = $latex2e_inputs + + Although this format has obvious similarities to Bourne shell +scripts--change the comment character to `#', disallow spaces around +the `=', and get rid of the `.NAME' convention, and it could be run +through the shell. But there seemed little advantage to doing this, +since all the information would have to passed back to Kpathsea and +parsed there anyway, since the `sh' process couldn't affect its +parent's environment. + + The implementation of all this is in `kpathsea/cnf.c'. + + +File: kpathsea.info, Node: Path expansion, Next: Filename database, Prev: Path sources, Up: Path searching + +3.3 Path expansion +================== + +Kpathsea recognizes certain special characters and constructions in +search paths, similar to that in shells. As a general example: +`~$USER/{foo,bar}//baz' expands to all subdirectories under directories +`foo' and `bar' in $USER's home directory that contain a directory or +file `baz'. These expansions are explained in the sections below. + +* Menu: + +* Default expansion:: a: or :a or a::b expands to a default. +* Variable expansion:: $foo and ${foo} expand to environment values. +* Tilde expansion:: ~ and ~user expand to home directories. +* Brace expansion:: a{foo,bar}b expands to afoob abarb. +* KPSE_DOT expansion:: . is replaced with $KPSE_DOT if it is defined. +* Subdirectory expansion:: a// and a//b recursively expand to subdirs. + + +File: kpathsea.info, Node: Default expansion, Next: Variable expansion, Up: Path expansion + +3.3.1 Default expansion +----------------------- + +If the highest-priority search path (*note Path sources::) contains an +"extra colon" (i.e., leading, trailing, or doubled), Kpathsea inserts +at that point the next-highest-priority search path that is defined. +If that inserted path has an extra colon, the same happens with the +next-highest. (An extra colon in the compile-time default value has +unpredictable results, so installers beware.) + + For example, given an environment variable setting + + setenv TEXINPUTS /home/karl: + +and a `TEXINPUTS' value from `texmf.cnf' of + + .:$TEXMF//tex + +then the final value used for searching will be: + + /home/karl:.:$TEXMF//tex + + Put another way, default expansion works on "formats" (search +paths), and not directly on environment variables. Example, showing +the trailing `:' ignored in the first case and expanded in the second: + + $ env TTFONTS=/tmp: kpsewhich --expand-path '$TTFONTS' + /tmp + $ env TTFONTS=/tmp: kpsewhich --show-path=.ttf + /tmp:.:/home/olaf/texmf/fonts/truetype//:... + + Since Kpathsea looks for multiple configuration files, it would be +natural to expect that (for example) an extra colon in `./texmf.cnf' +would expand to the path in `$TEXMF/texmf.cnf'. Or, with Dvips' +configuration files, that an extra colon in `config.$PRINTER' would +expand to the path in `config.ps'. This doesn't happen. It's not +clear this would be desirable in all cases, and trying to devise a way +to specify the path to which the extra colon should expand seemed truly +baroque. + + Technicality: Since it would be useless to insert the default value +in more than one place, Kpathsea changes only one extra `:' and leaves +any others in place (they will eventually be ignored). Kpathsea checks +first for a leading `:', then a trailing `:', then a doubled `:'. + + You can trace this by debugging "paths" (*note Debugging::). +Default expansion is implemented in the source file +`kpathsea/kdefault.c'. + + +File: kpathsea.info, Node: Variable expansion, Next: Tilde expansion, Prev: Default expansion, Up: Path expansion + +3.3.2 Variable expansion +------------------------ + +`$foo' or `${foo}' in a path element is replaced by (1) the value of an +environment variable `foo' (if defined); (2) the value of `foo' from +`texmf.cnf' (if defined); (3) the empty string. + + If the character after the `$' is alphanumeric or `_', the variable +name consists of all consecutive such characters. If the character +after the `$' is a `{', the variable name consists of everything up to +the next `}' (braces may not be nested around variable names). +Otherwise, Kpathsea gives a warning and ignores the `$' and its +following character. + + You must quote the $'s and braces as necessary for your shell. +_Shell_ variable values cannot be seen by Kpathsea, i.e., ones defined +by `set' in C shells and without `export' in Bourne shells. + + For example, given + setenv tex /home/texmf + setenv TEXINPUTS .:$tex:${tex}prev + the final `TEXINPUTS' path is the three directories: + .:/home/texmf:/home/texmfprev + + The `.PROGNAME' suffix on variables and `_PROGNAME' on environment +variable names are not implemented for general variable expansions. +These are only recognized when search paths are initialized (*note Path +sources::). + + Variable expansion is implemented in the source file +`kpathsea/variable.c'. + + +File: kpathsea.info, Node: Tilde expansion, Next: Brace expansion, Prev: Variable expansion, Up: Path expansion + +3.3.3 Tilde expansion +--------------------- + +A leading `~' in a path element is replaced by the value of the +environment variable `HOME', or `.' if `HOME' is not set. + + A leading `~USER' in a path element is replaced by USER's home +directory from the system `passwd' database. + + For example, + setenv TEXINPUTS ~/mymacros: + +will prepend a directory `mymacros' in your home directory to the +default path. + + As a special case, if a home directory ends in `/', the trailing +slash is dropped, to avoid inadvertently creating a `//' construct in +the path. For example, if the home directory of the user `root' is +`/', the path element `~root/mymacros' expands to just `/mymacros', not +`//mymacros'. + + Tilde expansion is implemented in the source file `kpathsea/tilde.c'. + + +File: kpathsea.info, Node: Brace expansion, Next: KPSE_DOT expansion, Prev: Tilde expansion, Up: Path expansion + +3.3.4 Brace expansion +--------------------- + +`x{A,B}y' expands to `xAy:xBy'. For example: + + foo/{1,2}/baz + +expands to `foo/1/baz:foo/2/baz'. `:' is the path separator on the +current system; e.g., on a DOS system, it's `;'. + + Braces can be nested; for example, `x{A,B{1,2}}y' expands to +`xAy:xB1y:xB2y'. + + Multiple non-nested braces are expanded from right to left; for +example, `x{A,B}{1,2}y' expands to `x{A,B}1y:x{A,B}2y', which expands +to `xA1y:xB1y:xA2y:xB2y'. + + This feature can be used to implement multiple TeX hierarchies, by +assigning a brace list to `$TEXMF', as mentioned in `texmf.in'. + + You can also use the path separator in stead of the comma. The last +example could have been written `x{A:B}{1:2}y'. + + Brace expansion is implemented in the source file +`kpathsea/expand.c'. It is a modification of the Bash sources, and is +thus covered by the GNU General Public License, rather than the Library +General Public License that covers the rest of Kpathsea. + + +File: kpathsea.info, Node: KPSE_DOT expansion, Next: Subdirectory expansion, Prev: Brace expansion, Up: Path expansion + +3.3.5 `KPSE_DOT' expansion +-------------------------- + +When `KPSE_DOT' is defined in the environment, it names a directory +that should be considered the current directory for the purpose of +looking up files in the search paths. This feature is needed by the +`mktex...' scripts *Note mktex scripts::, because these change the +working directory. You should not ever define it yourself. + + +File: kpathsea.info, Node: Subdirectory expansion, Prev: KPSE_DOT expansion, Up: Path expansion + +3.3.6 Subdirectory expansion +---------------------------- + +Two or more consecutive slashes in a path element following a directory +D is replaced by all subdirectories of D: first those subdirectories +directly under D, then the subsubdirectories under those, and so on. +At each level, the order in which the directories are searched is +unspecified. (It's "directory order", and definitely not alphabetical.) + + If you specify any filename components after the `//', only +subdirectories which match those components are included. For example, +`/a//b' would expand into directories `/a/1/b', `/a/2/b', `/a/1/1/b', +and so on, but not `/a/b/c' or `/a/1'. + + You can include multiple `//' constructs in the path. + + `//' at the beginning of a path is ignored; you didn't really want +to search every directory on the system, did you? + + I should mention one related implementation trick, which I took from +GNU find. Matthew Farwell suggested it, and David MacKenzie +implemented it. + + The trick is that in every real Unix implementation (as opposed to +the POSIX specification), a directory which contains no subdirectories +will have exactly two links (namely, one for `.' and one for `..'). +That is to say, the `st_nlink' field in the `stat' structure will be +two. Thus, we don't have to stat everything in the bottom-level (leaf) +directories--we can just check `st_nlink', notice it's two, and do no +more work. + + But if you have a directory that contains a single subdirectory and +500 regular files, `st_nlink' will be 3, and Kpathsea has to stat every +one of those 501 entries. Therein lies slowness. + + You can disable the trick by undefining `UNIX_ST_LINK' in +`kpathsea/config.h'. (It is undefined by default except under Unix.) + + Unfortunately, in some cases files in leaf directories are `stat''d: +if the path specification is, say, `$TEXMF/fonts//pk//', then files in +a subdirectory `.../pk', even if it is a leaf, are checked. The reason +cannot be explained without reference to the implementation, so read +`kpathsea/elt-dirs.c' (search for `may descend') if you are curious. +And if you can find a way to _solve_ the problem, please let me know. + + Subdirectory expansion is implemented in the source file +`kpathsea/elt-dirs.c'. + + +File: kpathsea.info, Node: Filename database, Next: Invoking kpsewhich, Prev: Path expansion, Up: Path searching + +3.4 Filename database (`ls-R') +============================== + +Kpathsea goes to some lengths to minimize disk accesses for searches +(*note Subdirectory expansion::). Nevertheless, at installations with +enough directories, searching each possible directory for a given file +can take an excessively long time (depending on the speed of the disk, +whether it's NFS-mounted, how patient you are, etc.). + + In practice, a font tree containing the standard PostScript and PCL +fonts is large enough for searching to be noticeably slow on typical +systems these days. Therefore, Kpathsea can use an externally-built +"database" file named `ls-R' that maps files to directories, thus +avoiding the need to exhaustively search the disk. + + A second database file `aliases' allows you to give additional names +to the files listed in `ls-R'. This can be helpful to adapt to "8.3" +filename conventions in source files. + + The `ls-R' and `aliases' features are implemented in the source file +`kpathsea/db.c'. + +* Menu: + +* ls-R:: The main filename database. +* Filename aliases:: Aliases for those names. +* Database format:: Syntax details of the database file. + + +File: kpathsea.info, Node: ls-R, Next: Filename aliases, Up: Filename database + +3.4.1 `ls-R' +------------ + +As mentioned above, you must name the main filename database `ls-R'. +You can put one at the root of each TeX installation hierarchy you wish +to search (`$TEXMF' by default); most sites have only one hierarchy. +Kpathsea looks for `ls-R' files along the `TEXMFDBS' path, so that +should presumably match the list of hierarchies. + + The recommended way to create and maintain `ls-R' is to run the +`mktexlsr' script, which is installed in `$(bindir)' (`/usr/local/bin' +by default). That script goes to some trouble to follow symbolic links +as necessary, etc. It's also invoked by the distributed `mktex...' +scripts. + + At its simplest, though, you can build `ls-R' with the command + cd /YOUR/TEXMF/ROOT && ls -LAR ./ >ls-R + +presuming your `ls' produces the right output format (see the section +below). GNU `ls', for example, outputs in this format. Also presuming +your `ls' hasn't been aliased in a system file (e.g., `/etc/profile') +to something problematic, e.g., `ls --color=tty'. In that case, you +will have to disable the alias before generating `ls-R'. For the +precise definition of the file format, see *Note Database format::. + + Regardless of whether you use the supplied script or your own, you +will almost certainly want to invoke it via `cron', so when you make +changes in the installed files (say if you install a new LaTeX +package), `ls-R' will be automatically updated. + + The `-A' option to `ls' includes files beginning with `.' (except +for `.' and `..'), such as the file `.tex' included with the LaTeX +tools package. (On the other hand, _directories_ whose names begin +with `.' are always ignored.) + + If your system does not support symbolic links, omit the `-L'. + + `ls -LAR /YOUR/TEXMF/ROOT' will also work. But using `./' avoids +embedding absolute pathnames, so the hierarchy can be easily +transported. It also avoids possible trouble with automounters or +other network filesystem conventions. + + Kpathsea warns you if it finds an `ls-R' file, but the file does not +contain any usable entries. The usual culprit is running plain `ls -R' +instead of `ls -LR ./' or `ls -R /YOUR/TEXMF/ROOT'. Another +possibility is some system directory name starting with a `.' (perhaps +if you are using AFS); Kpathsea ignores everything under such +directories. + + Because the database may be out-of-date for a particular run, if a +file is not found in the database, by default Kpathsea goes ahead and +searches the disk. If a particular path element begins with `!!', +however, _only_ the database will be searched for that element, never +the disk. If the database does not exist, nothing will be searched. +Because this can surprise users ("I see the font `foo.tfm' when I do an +`ls'; why can't Dvips find it?"), it is not in any of the default +search paths. + + +File: kpathsea.info, Node: Filename aliases, Next: Database format, Prev: ls-R, Up: Filename database + +3.4.2 Filename aliases +---------------------- + +In some circumstances, you may wish to find a file under several names. +For example, suppose a TeX document was created using a DOS system and +tries to read `longtabl.sty'. But now it's being run on a Unix system, +and the file has its original name, `longtable.sty'. The file won't be +found. You need to give the actual file `longtable.sty' an alias +`longtabl.sty'. + + You can handle this by creating a file `aliases' as a companion to +the `ls-R' for the hierarchy containing the file in question. (You +must have an `ls-R' for the alias feature to work.) + + The format of `aliases' is simple: two whitespace-separated words +per line; the first is the real name `longtable.sty', and second is the +alias (`longtabl.sty'). These must be base filenames, with no +directory components. `longtable.sty' must be in the sibling `ls-R'. + + Also, blank lines and lines starting with `%' or `#' are ignored in +`aliases', to allow for comments. + + If a real file `longtabl.sty' exists, it is used regardless of any +aliases. + + +File: kpathsea.info, Node: Database format, Prev: Filename aliases, Up: Filename database + +3.4.3 Database format +--------------------- + +The "database" read by Kpathsea is a line-oriented file of plain text. +The format is that generated by GNU (and most other) `ls' programs +given the `-R' option, as follows. + + * Blank lines are ignored. + + * If a line begins with `/' or `./' or `../' and ends with a colon, + it's the name of a directory. (`../' lines aren't useful, + however, and should not be generated.) + + * All other lines define entries in the most recently seen directory. + /'s in such lines will produce possibly-strange results. + + * Files with no preceding directory line are ignored. + + For example, here's the first few lines of `ls-R' (which totals +about 30K bytes) on my system: + + bibtex + dvips + fonts + ls-R + metafont + metapost + tex + web2c + + ./bibtex: + bib + bst + doc + + ./bibtex/bib: + asi.bib + btxdoc.bib + ... + + +File: kpathsea.info, Node: Invoking kpsewhich, Prev: Filename database, Up: Path searching + +3.5 `kpsewhich': Standalone path searching +========================================== + +The Kpsewhich program exercises the path searching functionality +independent of any particular application. This can also be useful as a +sort of `find' program to locate files in your TeX hierarchies, perhaps +in administrative scripts. It is used heavily in the distributed +`mktex...' scripts. + + Synopsis: + kpsewhich OPTION... FILENAME... + + The options and filename(s) to look up can be intermixed. Options +can start with either `-' or `--', and any unambiguous abbreviation is +accepted. + +* Menu: + +* Path searching options:: Changing the mode, resolution, etc. +* Auxiliary tasks:: Path and variable expansion. +* Standard options:: --help and --version. + + +File: kpathsea.info, Node: Path searching options, Next: Auxiliary tasks, Up: Invoking kpsewhich + +3.5.1 Path searching options +---------------------------- + +Kpsewhich looks up each non-option argument on the command line as a +filename, and returns the first file found. There is no option to +return all the files with a particular name (you can run the Unix +`find' utility for that, *note Invoking find: (findutils)Invoking +find.). + + Various options alter the path searching behavior: + +`--dpi=NUM' + Set the resolution to NUM; this only affects `gf' and `pk' + lookups. `-D' is a synonym, for compatibility with Dvips. + Default is 600. + +`--engine=NAME' + Set the engine name to NAME. By default it is not set. The + engine name is used in some search paths to allow files with the + same name but used by different engines to coexist. + +`--format=NAME' + Set the format for lookup to NAME. By default, the format is + guessed from the filename, with `tex' being used if nothing else + fits. The recognized filename extensions (including any leading + `.') are also allowable NAMEs. + + All formats also have a name, which is the only way to specify + formats with no associated suffix. For example, for Dvips + configuration files you can use `--format="dvips config"'. (The + quotes are for the sake of the shell.) + + Here's the current list of recognized names and the associated + suffixes. *Note Supported file formats::, for more information on + each of these. + gf: gf + pk: pk + bitmap font + afm: .afm + base: .base + bib: .bib + bst: .bst + cnf: .cnf + ls-R: ls-R + fmt: .fmt + map: .map + mem: .mem + mf: .mf + mfpool: .pool + mft: .mft + mp: .mp + mppool: .pool + MetaPost support + ocp: .ocp + ofm: .ofm .tfm + opl: .opl + otp: .otp + ovf: .ovf + ovp: .ovp + graphic/figure: .eps .epsi + tex: .tex + TeX system documentation + texpool: .pool + TeX system sources + PostScript header/font: .pro + Troff fonts + tfm: .tfm + type1 fonts: .pfa .pfb + vf: .vf + dvips config + ist: .ist + truetype fonts: .ttf .ttc + type42 fonts + web2c files + other text files + other binary files + misc fonts + web: .web + cweb: .w .web + enc: .enc + cmap: .cmap + sfd: .sfd + opentype fonts + pdftex config + lig files: .lig + texmfscripts + + This option and `--path' are mutually exclusive. + +`--interactive' + After processing the command line, read additional filenames to + look up from standard input. + +`-mktex=FILETYPE' +`-no-mktex=FILETYPE' + Turn on or off the `mktex' script associated with FILETYPE. The + only values that make sense for FILETYPE are `pk', `mf', `tex', + and `tfm'. By default, all are off in Kpsewhich. *Note mktex + scripts::. + +`--mode=STRING' + Set the mode name to STRING; this also only affects `gf' and `pk' + lookups. No default: any mode will be found. *Note mktex script + arguments::. + +`--must-exist' + Do everything possible to find the files, notably including + searching the disk. By default, only the `ls-R' database is + checked, in the interest of efficiency. + +`--path=STRING' + Search along the path STRING (colon-separated as usual), instead + of guessing the search path from the filename. `//' and all the + usual expansions are supported (*note Path expansion::). This + option and `--format' are mutually exclusive. To output the + complete directory expansion of a path, instead of doing a + one-shot lookup, see `--expand-path' in the following section. + +`--progname=NAME' + Set the program name to NAME; default is `kpsewhich'. This can + affect the search paths via the `.PROGNAM' feature in + configuration files (*note Config files::). + + +File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Path searching options, Up: Invoking kpsewhich + +3.5.2 Auxiliary tasks +--------------------- + +Kpsewhich provides some additional features not strictly related to path +lookup: + + * `--debug=NUM' sets the debugging options to NUM. *Note + Debugging::. + + * `--var-value=VARIABLE' output the value of VARIABLE. + + * `--expand-braces=STRING' outputs the variable and brace expansion + of STRING. *Note Path expansion::. + + * `--expand-var=STRING' outputs the variable expansion of STRING. + For example, the `mktex...' scripts run `kpsewhich + --expand-var='$TEXMF'' to find the root of the TeX system + hierarchy. *Note Path expansion::. + + * `--expand-path=STRING' outputs the complete expansion of STRING as + a colon-separated path. This is useful to construct a search path + for a program that doesn't accept recursive subdirectory + specifications. Nonexistent directories are culled from the + output: + + $ kpsewhich --expand-path '/tmp' + => /tmp + $ kpsewhich --expand-path '/nonesuch' + => + + For one-shot uses of an arbitrary (not built in to Kpathsea) path, + see `--path' in the previous section. + + * `--show-path=NAME' shows the path that would be used for file + lookups of file type NAME. Either a filename extension (`pk', + `.vf', etc.) or an integer can be used, just as with `--format', + described in the previous section. + + +File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invoking kpsewhich + +3.5.3 Standard options +---------------------- + +Kpsewhich accepts the standard GNU options: + + * `--help' prints a help message on standard output and exits. + + * `--version' prints the Kpathsea version number and exits. + + +File: kpathsea.info, Node: TeX support, Next: Programming, Prev: Path searching, Up: Top + +4 TeX support +************* + +Although the basic features in Kpathsea can be used for any type of path +searching, it came about (like all libraries) with a specific +application in mind: I wrote Kpathsea specifically for TeX system +programs. I had been struggling with the programs I was using (Dvips, +Xdvi, and TeX itself) having slightly different notions of how to +specify paths; and debugging was painful, since no code was shared. + + Therefore, Kpathsea provides some TeX-specific formats and features. +Indeed, many of the supposedly generic path searching features were +provided because they seemed useful in that conTeXt (font lookup, +particularly). + + Kpathsea provides a standard way to search for files of any of the +supported file types; glyph fonts are a bit different than all the rest. +Searches are based solely on filenames, not file contents--if a GF file +is named `cmr10.600pk', it will be found as a PK file. + +* Menu: + +* Supported file formats:: File types Kpathsea knows about. +* File lookup:: Searching for most kinds of files. +* Glyph lookup:: Searching for bitmap fonts. +* Suppressing warnings:: Avoiding warnings via TEX_HUSH. + + +File: kpathsea.info, Node: Supported file formats, Next: File lookup, Up: TeX support + +4.1 Supported file formats +========================== + +Kpathsea has support for a number of file types. Each file type has a +list of environment and config file variables that are checked to define +the search path, and most have a default suffix that plays a role in +finding files (see the next section). Some also define additional +suffixes, and/or a program to be run to create missing files on the fly. + + Since environment variables containing periods, such as +`TEXINPUTS.latex', are not allowed on some systems, Kpathsea looks for +environment variables with an underscore, e.g., `TEXINPUTS_latex' +(*note Config files::). + + The following table lists the above information. + +`afm' + (Adobe font metrics, *note Metric files: (dvips)Metric files.) + `AFMFONTS'; suffix `.afm'. + +`base' + (Metafont memory dump, *note Memory dumps: (web2c)Memory dumps.) + `MFBASES', `TEXMFINI'; suffix `.base'. + +`bib' + (BibTeX bibliography source, *note bibtex invocation: + (web2c)bibtex invocation.) `BIBINPUTS', `TEXBIB'; suffix `.bib'. + +`bst' + (BibTeX style file, *note Basic BibTeX style files: (web2c)Basic + BibTeX style files.) `BSTINPUTS'; suffix `.bst'. + +`cmap' + (character map files) `CMAPFONTS'; suffix `.cmap'. + +`cnf' + (Runtime configuration files, *note Config files::) `TEXMFCNF'; + suffix `.cnf'. + +`cweb' + (CWEB input files) `CWEBINPUTS'; suffixes `.w', `.web'; additional + suffix `.ch'. + +`dvips config' + (Dvips `config.*' files, such as `config.ps', *note Config files: + (dvips)Config files.) `TEXCONFIG'. + +`enc files' + (encoding vectors) `ENCFONTS'; suffix `.enc'. + +`fmt' + (TeX memory dump, *note Memory dumps: (web2c)Memory dumps.) + `TEXFORMATS', `TEXMFINI'; suffix `.fmt'. + +`gf' + (generic font bitmap, *note Glyph files: (dvips)Glyph files.) + `PROGRAMFONTS', `GFFONTS', `GLYPHFONTS', `TEXFONTS'; suffix `gf'. + +`graphic/figure' + (Encapsulated PostScript figures, *note PostScript figures: + (dvips)PostScript figures.) `TEXPICTS', `TEXINPUTS'; additional + suffixes: `.eps', `.epsi'. + +`ist' + (makeindex style files) `TEXINDEXSTYLE', `INDEXSTYLE'; suffix + `.ist'. + +`lig files' + (ligature definition files) `LIGFONTS'; suffix `.lig'. + +`ls-R' + (Filename databases, *note Filename database::) `TEXMFDBS'. + +`map' + (Fontmaps, *note Fontmap::) `TEXFONTMAPS'; suffix `.map'. + +`mem' + (MetaPost memory dump, *note Memory dumps: (web2c)Memory dumps.) + `MPMEMS', `TEXMFINI'; suffix `.mem'. + +`MetaPost support' + (MetaPost support files, used by DMP; *note dmp invocation: + (web2c)dmp invocation.) `MPSUPPORT'. + +`mf' + (Metafont source, *note mf invocation: (web2c)mf invocation.) + `MFINPUTS'; suffix `.mf'; dynamic creation program: `mktexmf'. + +`mfpool' + (Metafont program strings, *note pooltype invocation: + (web2c)pooltype invocation.) `MFPOOL', `TEXMFINI'; suffix `.pool'. + +`mft' + (`MFT' style file, *note mft invocation: (web2c)mft invocation.) + `MFTINPUTS'; suffix `.mft'. + +`misc fonts' + (font-related files that don't fit the other categories) + `MISCFONTS' + +`mp' + (MetaPost source, *note mpost invocation: (web2c)mpost invocation.) + `MPINPUTS'; suffix `.mp'. + +`mppool' + (MetaPost program strings, *note pooltype invocation: + (web2c)pooltype invocation.) `MPPOOL', `TEXMFINI'; suffix `.pool'. + +`ocp' + (Omega compiled process files) `OCPINPUTS'; + suffix `.ocp'; dynamic creation program: `MakeOmegaOCP'. + +`ofm' + (Omega font metrics) `OFMFONTS', `TEXFONTS'; + suffixes `.ofm', `.tfm'; dynamic creation program: `MakeOmegaOFM'. + +`opentype fonts' + (OpenType fonts) `OPENTYPEFONTS'. + +`opl' + (Omega property lists) `OPLFONTS', `TEXFONTS'; suffix `.opl'. + +`otp' + (Omega translation process files) `OTPINPUTS'; suffix `.otp'. + +`ovf' + (Omega virtual fonts) `OVFFONTS', `TEXFONTS'; suffix `.ovf'. + +`ovp' + (Omega virtual property lists) `OVPFONTS', `TEXFONTS'; suffix + `.ovp'. + +`pdftex config' + (PDFTeX-specific configuration files) `PDFTEXCONFIG'. + +`pk' + (packed bitmap fonts, *note Glyph files: (dvips)Glyph files.) + `PROGRAMFONTS' (PROGRAM being `XDVI', etc.), `PKFONTS', `TEXPKS', + `GLYPHFONTS', `TEXFONTS'; suffix `pk'; dynamic creation program: + `mktexpk'. + +`PostScript header' + (downloadable PostScript, *note Header files: (dvips)Header files.) + `TEXPSHEADERS', `PSHEADERS'; additional suffix `.pro'. + +`subfont definition files' + (subfont definition files) `SFDFONTS' suffix `.sfd'. + +`tex' + (TeX source, *note tex invocation: (web2c)tex invocation.) + `TEXINPUTS'; suffix `.tex'; additional suffixes: none, because + such a list cannot be complete; dynamic creation program: + `mktextex'. + +`TeX system documentation' + (Documentation files for the TeX system) `TEXDOCS'. + +`TeX system sources' + (Source files for the TeX system) `TEXSOURCES'. + +`texmfscripts' + (Architecture-independent executables distributed in the texmf + tree) `TEXMFSCRIPTS'. + +`texpool' + (TeX program strings, *note pooltype invocation: (web2c)pooltype + invocation.) `TEXPOOL', `TEXMFINI'; suffix `.pool'. + +`tfm' + (TeX font metrics, *note Metric files: (dvips)Metric files.) + `TFMFONTS', `TEXFONTS'; suffix `.tfm'; dynamic creation program: + `mktextfm'. + +`Troff fonts' + (Troff fonts, used by DMP; *note DMP invocation: (web2c)DMP + invocation.) `TRFONTS'. + +`truetype fonts' + (TrueType outline fonts) `TTFONTS'; suffixes `.ttf', `.ttc'. + +`type1 fonts' + (Type 1 PostScript outline fonts, *note Glyph files: (dvips)Glyph + files.) `T1FONTS', `T1INPUTS', `TEXPSHEADERS', `DVIPSHEADERS'; + suffixes `.pfa', `.pfb'. + +`type42 fonts' + (Type 42 PostScript outline fonts) `T42FONTS'. + +`vf' + (virtual fonts, *note Virtual fonts: (dvips)Virtual fonts.) + `VFFONTS', `TEXFONTS'; suffix `.vf'. + +`web' + (WEB input files) `WEBINPUTS'; suffix `.web'; additional suffix + `.ch'. + +`web2c files' + (files specific to the web2c implementation) `WEB2C'. + + There are two special cases, because the paths and environment +variables always depend on the name of the program: the variable name is +constructed by converting the program name to upper case, and then +appending `INPUTS'. Assuming the program is called `foo', this gives +us the following table. + +`other text files' + (text files used by `foo') `FOOINPUTS'. + +`other binary files' + (binary files used by `foo') `FOOINPUTS'. + + If an environment variable by these names are set, the corresponding +`texmf.cnf' definition won't be looked at (unless, as usual, the +environment variable value has an extra `:'). *Note Default +expansion::. + + For the font variables, the intent is that: + * `TEXFONTS' is the default for everything. + + * `GLYPHFONTS' is the default for bitmap (or, more precisely, + non-metric) files. + + * Each font format has a variable of its own. + + * Each program has its own font override path as well; e.g., + `DVIPSFONTS' for Dvipsk. Again, this is for bitmaps, not metrics. + + + +File: kpathsea.info, Node: File lookup, Next: Glyph lookup, Prev: Supported file formats, Up: TeX support + +4.2 File lookup +=============== + +This section describes how Kpathsea searches for most files (bitmap font +searches are the exception, as described in the next section). + + Here is the search strategy for a file NAME: + 1. If the file format defines default suffixes, and the suffix of + NAME name is not already a known suffix for that format, try the + name with each default appended, and use alternative names found + in the fontmaps if necessary. We postpone searching the disk as + long as possible. Example: given `foo.sty', look for `foo.sty.tex' + before `foo.sty'. This is unfortunate, but allows us to find + `foo.bar.tex' before `foo.bar' if both exist and we were given + `foo.bar'. + + 2. Search for NAME, and if necessary for alternative names found in + the fontmaps. Again we avoid searching the disk if possible. + Example: given `foo', we look for `foo'. + + 3. If the file format defines a program to invoke to create missing + files, run it (*note mktex scripts::). + + This is implemented in the routine `kpse_find_file' in +`kpathsea/tex-file.c'. You can watch it in action with the debugging +options (*note Debugging::). + + +File: kpathsea.info, Node: Glyph lookup, Next: Suppressing warnings, Prev: File lookup, Up: TeX support + +4.3 Glyph lookup +================ + +This section describes how Kpathsea searches for a bitmap font in GF or +PK format (or either) given a font name (e.g., `cmr10') and a +resolution (e.g., 600). + + Here is an outline of the search strategy (details in the sections +below) for a file NAME at resolution DPI. The search stops at the +first successful lookup. + + 1. Look for an existing file NAME.DPIFORMAT in the specified + format(s). + + 2. If NAME is an alias for a file F in the fontmap file + `texfonts.map', look for F.DPI. + + 3. Run an external program (typically named `mktexpk') to generate + the font (*note mktex scripts::) + + 4. Look for FALLBACK.DPI, where FALLBACK is some last-resort font + (typically `cmr10'). + + This is implemented in `kpse_find_glyph_format' in +`kpathsea/tex-glyph.c'. + +* Menu: + +* Basic glyph lookup:: Features common to all glyph lookups. +* Fontmap:: Aliases for fonts. +* Fallback font:: Resolutions and fonts of last resort. + + +File: kpathsea.info, Node: Basic glyph lookup, Next: Fontmap, Up: Glyph lookup + +4.3.1 Basic glyph lookup +------------------------ + +When Kpathsea looks for a bitmap font NAME at resolution DPI in a +format FORMAT, it first checks each directory in the search path for a +file `NAME.DPIFORMAT'; for example, `cmr10.600pk'. Kpathsea looks for +a PK file first, then a GF file. + + If that fails, Kpathsea looks for `dpiDPI/NAME.FORMAT'; for example, +`dpi600/cmr10.pk'. This is how fonts are typically stored on +filesystems (such as DOS) that permit only three-character extensions. + + If that fails, Kpathsea looks for a font with a close-enough DPI. +"Close enough" is defined by the macro `KPSE_BITMAP_TOLERANCE' in +`kpathsea/tex-glyph.h' to be `DPI / 500 + 1'. This is slightly more +than the 0.2% minimum allowed by the DVI standard +(`CTAN:/dviware/driv-standard/level-0'). + + +File: kpathsea.info, Node: Fontmap, Next: Fallback font, Prev: Basic glyph lookup, Up: Glyph lookup + +4.3.2 Fontmap +------------- + +If a bitmap font or metric file is not found with the original name (see +the previous section), Kpathsea looks through any "fontmap" files for +an "alias" for the original font name. These files are named +`texfonts.map' and searched for along the `TEXFONTMAPS' +environment/config file variable. All `texfonts.map' files that are +found are read; earlier definitions override later ones. + + This feature is intended to help in two respects: + + 1. An alias name is limited in length only by available memory, not + by your filesystem. Therefore, if you want to ask for + `Times-Roman' instead of `ptmr', you can (you get `ptmr8r'). + + 2. A few fonts have historically had multiple names: specifically, + LaTeX's "circle font" has variously been known as `circle10', + `lcircle10', and `lcirc10'. Aliases can make all the names + equivalent, so that it no longer matters what the name of the + installed file is; TeX documents will find their favorite name. + + + The format of fontmap files is straightforward: + + * Comments start with `%' and continue to the end of the line. + + * Blank lines are ignored. + + * Each nonblank line is broken up into a series of "words": a + sequence of non-whitespace characters. + + * If the first word is `include', the second word is used as a + filename, and it is searched for and read. + + * Otherwise, the first word on each line is the true filename; + + * the second word is the alias; + + * subsequent words are ignored. + + If an alias has an extension, it matches only those files with that +extension; otherwise, it matches anything with the same root, regardless +of extension. For example, an alias `foo.tfm' matches only when +`foo.tfm' is being searched for; but an alias `foo' matches `foo.vf', +`foo.600pk', etc. + + As an example, here is an excerpt from the `texfonts.map' in the +Web2c distribution. It makes the circle fonts equivalent and includes +automatically generated maps for most PostScript fonts available from +various font suppliers. + + circle10 lcircle10 + circle10 lcirc10 + lcircle10 circle10 + lcircle10 lcirc10 + lcirc10 circle10 + lcirc10 lcircle10 + ... + include adobe.map + include apple.map + include bitstrea.map + ... + + Fontmaps are implemented in the file `kpathsea/fontmap.c'. The +Fontname distribution has much more information on font naming (*note +Introduction: (fontname)Introduction.). + + +File: kpathsea.info, Node: Fallback font, Prev: Fontmap, Up: Glyph lookup + +4.3.3 Fallback font +------------------- + +If a bitmap font cannot be found or created at the requested size, +Kpathsea looks for the font at a set of "fallback resolutions". You +specify these resolutions as a colon-separated list (like search paths). +Kpathsea looks first for a program-specific environment variable (e.g., +`DVIPSSIZES' for Dvipsk), then the environment variable `TEXSIZES', +then a default specified at compilation time (the Make variable +`default_texsizes'). You can set this list to be empty if you prefer +to find fonts at their stated size or not at all. + + Finally, if the font cannot be found even at the fallback +resolutions, Kpathsea looks for a fallback font, typically `cmr10'. +Programs must enable this feature by assigning to the global variable +`kpse_fallback_font' or calling `kpse_init_prog' (*note Calling +sequence::); the default is no fallback font. + + +File: kpathsea.info, Node: Suppressing warnings, Prev: Glyph lookup, Up: TeX support + +4.4 Suppressing warnings +======================== + +Kpathsea provides a way to suppress selected usually-harmless warnings; +this is useful at large sites where most users are not administrators, +and thus the warnings are merely a source of confusion, not a help. To +do this, you set the environment variable or configuration file value +`TEX_HUSH' to a colon-separated list of values. Here are the +possibilities: + +`all' + Suppress everything possible. + +`checksum' + Suppress mismatched font checksum warnings. + +`lostchar' + Suppress warnings when a character is missing from a font that a + DVI or VF file tries to typeset. + +`none' + Don't suppress any warnings. + +`readable' + Suppress warnings about attempts to access a file whose permissions + render it unreadable. + +`special' + Suppresses warnings about an unimplemented or unparsable + `\special' command. + +`tex-hush.c' defines the function that checks the variable value. Each +driver implements its own checks where appropriate. + + +File: kpathsea.info, Node: Programming, Next: Index, Prev: TeX support, Up: Top + +5 Programming +************* + +This chapter is for programmers who wish to use Kpathsea. *Note +Introduction::, for the conditions under which you may do so. + +* Menu: + +* Overview: Programming overview. Introduction. +* Calling sequence:: Specifics of what to call. +* Program-specific files:: How to handle these. +* Config: Programming with config files. Getting info from texmf.cnf. + + +File: kpathsea.info, Node: Programming overview, Next: Calling sequence, Up: Programming + +5.1 Programming overview +======================== + +Aside from this manual, your best source of information is the source to +the programs I've modified to use Kpathsea (*note Introduction::). Of +those, Dviljk is probably the simplest, and hence a good place to start. +Xdvik adds VF support and the complication of X resources. Dvipsk adds +the complication of its own config files. Web2c is source code I also +maintain, so it uses Kpathsea rather straightforwardly, but is of course +complicated by the Web to C translation. Finally, Kpsewhich is a small +utility program whose sole purpose is to exercise the main +path-searching functionality. + + Beyond these examples, the `.h' files in the Kpathsea source +describe the interfaces and functionality (and of course the `.c' files +define the actual routines, which are the ultimate documentation). +`pathsearch.h' declares the basic searching routine. `tex-file.h' and +`tex-glyph.h' define the interfaces for looking up particular kinds of +files. In view of the way the headers depend on each other, it is +recommended to use `#include <kpathsea/kpathsea.h>', which includes +every Kpathsea header. + + If you want to include only specific headers, you should still +consider including `kpathsea/config.h' before including any other +Kpathsea header, as it provides symbols used in the other headers. +Note that `kpathsea/config.h' includes `kpathsea/c-auto.h', which is +generated by Autoconf. + + The library provides no way for an external program to register new +file types: `tex-file.[ch]' must be modified to do this. For example, +Kpathsea has support for looking up Dvips config files, even though no +program other than Dvips will likely ever want to do so. I felt this +was acceptable, since along with new file types should also come new +defaults in `texmf.cnf' (and its descendant `paths.h'), since it's +simplest for users if they can modify one configuration file for all +kinds of paths. + + Kpathsea does not parse any formats itself; it barely opens any +files. Its primary purpose is to return filenames. The GNU font +utilities does contain libraries to read TFM, GF, and PK files, as do +the programs above, of course. + + +File: kpathsea.info, Node: Calling sequence, Next: Program-specific files, Prev: Programming overview, Up: Programming + +5.2 Calling sequence +==================== + +The typical way to use Kpathsea in your program goes something like +this: + + 1. Call `kpse_set_program_name' with `argv[0]' as the first argument; + the second argument is a string or `NULL'. The second argument is + used by Kpathsea as the program name for the `.PROGRAM' feature of + config files (*note Config files::). If the second argument is + `NULL', the value of the first argument is used. This function + must be called before any other use of the Kpathsea library. + + If necessary, `kpse_set_program_name' sets the global variables + `program_invocation_name' and `program_invocation_short_name'. + These variables are used in the error message macros defined in + `kpathsea/lib.h'. It sets the global variable `kpse_program_name' + to the program name it uses. It also initializes debugging + options based on the environment variable `KPATHSEA_DEBUG' (if + that is set). Finally, it sets the variables `SELFAUTOLOC', + `SELFAUTODIR' and `SELFAUTOPARENT' to the location, parent and + grandparent directory of the executable, removing `.' and `..' + path elements and resolving symbolic links. These are used in the + default configuration file to allow people to invoke TeX from + anywhere, specifically from a mounted CD-ROM. (You can use + `--expand-var=\$SELFAUTOLOC', etc., to see the values finds.) + + 2. The `kpse_set_progname' is deprecated. A call to + `kpse_set_progname' with `argv[0]' is equivalent to a call of + `kpse_set_program_name' with first argument `argv[0]' and second + argument `NULL'. The function is deprecated because it cannot + ensure that the `.PROGRAM' feature of config files will always + work (*note Config files::). + + 3. Set debugging options. *Note Debugging::. If your program doesn't + have a debugging option already, you can define one and set + `kpathsea_debug' to the number that the user supplies (as in Dviljk + and Web2c), or you can just omit this altogether (people can + always set `KPATHSEA_DEBUG'). If you do have runtime debugging + already, you need to merge Kpathsea's options with yours (as in + Dvipsk and Xdvik). + + 4. If your program has its own configuration files that can define + search paths, you should assign those paths to the `client_path' + member in the appropriate element of the `kpse_format_info' array. + (This array is indexed by file type; see `tex-file.h'.) See + `resident.c' in Dvipsk for an example. + + 5. Call `kpse_init_prog' (see `proginit.c'). It's useful for the DVI + drivers, at least, but for other programs it may be simpler to + extract the parts of it that actually apply. This does not + initialize any paths, it just looks for (and sets) certain + environment variables and other random information. (A search + path is always initialized at the first call to find a file of + that type; this eliminates much useless work, e.g., initializing + the BibTeX search paths in a DVI driver.) + + 6. The routine to actually find a file of type FORMAT is + `kpse_find_FORMAT', defined in `tex-file.h'. These are macros that + expand to a call to `kpse_find_file'. You can call, say, + `kpse_find_tfm' after doing only the first of the initialization + steps above--Kpathsea automatically reads the `texmf.cnf' generic + config files, looks for environment variables, and does expansions + at the first lookup. + + 7. To find PK and/or GF bitmap fonts, the routines are `kpse_find_pk', + `kpse_find_gf' and `kpse_find_glyph', defined in `tex-glyph.h'. + These return a structure in addition to the resultant filename, + because fonts can be found in so many ways. See the documentation + in the source. + + 8. To actually open a file, not just return a filename, call + `kpse_open_file'. This function takes the name to look up and a + Kpathsea file format as arguments, and returns the usual `FILE *'. + It always assumes the file must exist, and thus will search the + disk if necessary (unless the search path specified `!!', etc.). + In other words, if you are looking up a VF or some other file that + need not exist, don't use this. + + + Kpathsea also provides many utility routines. Some are generic: hash +tables, memory allocation, string concatenation and copying, string +lists, reading input lines of arbitrary length, etc. Others are +filename-related: default path, tilde, and variable expansion, `stat' +calls, etc. (Perhaps someday I'll move the former to a separate +library.) + + The `c-*.h' header files can also help your program adapt to many +different systems. You will almost certainly want to use Autoconf for +configuring your software if you use Kpathsea; I strongly recommend +using Autoconf regardless. It is available from +`ftp://prep.ai.mit.edu/pub/gnu/'. + + +File: kpathsea.info, Node: Program-specific files, Next: Programming with config files, Prev: Calling sequence, Up: Programming + +5.3 Program-specific files +========================== + +Many programs will need to find some configuration files. Kpathsea +contains some support to make it easy to place them in their own +directories. The Standard TeX directory structure (*note Introduction: +(tds)Top.), specifies that such files should go into a subdirectory +named after the program, like `texmf/ttf2pk'. + + Two special formats, `kpse_program_text_format' and +`kpse_program_binary_format' exist, which use `.:$TEXMF/PROGRAM//' as +their compiled-in search path. To override this default, you can use +the variable `PROGRAMINPUTS' in the environment and/or `texmf.cnf'. +That is to say, the name of the variable is constructed by converting +the name of the program to upper case, and appending `INPUTS'. + + The only difference between these two formats is whether +`kpse_open_file' will open the files it finds in text or binary mode. + + +File: kpathsea.info, Node: Programming with config files, Prev: Program-specific files, Up: Programming + +5.4 Programming with config files +================================= + +You can (and probably should) use the same `texmf.cnf' configuration +file that Kpathsea uses for your program. This helps installers by +keeping all configuration in one place. + + To retrieve a value VAR from config files, the best way is to call +`kpse_var_value' on the string `VAR'. This will look first for an +environment variable VAR, then a config file value. The result will be +the value found or `NULL'. This function is declared in +`kpathsea/variable.h'. For an example, see the `shell_escape' code in +`web2c/lib/texmfmp.c'. + + The routine to do variable expansion in the context of a search path +(as opposed to simply retrieving a value) is `kpse_var_expand', also +declared in `kpathsea/variable.h'. It's generally only necessary to +set the search path structure components as explained in the previous +section, rather than using this yourself. + + If for some reason you want to retrieve a value _only_ from a config +file, not automatically looking for a corresponding environment +variable, call `kpse_cnf_get' (declared in `kpathsea/cnf.h') with the +string VAR. + + No initialization calls are needed. + + +File: kpathsea.info, Node: Index, Prev: Programming, Up: Top + +Index +***** + + +* Menu: + +* !! in path specifications: ls-R. (line 52) +* $ expansion: Variable expansion. (line 6) +* --color=tty: ls-R. (line 21) +* --debug=NUM: Auxiliary tasks. (line 9) +* --disable-static: configure options. (line 31) +* --dpi=NUM: Path searching options. + (line 15) +* --enable options: configure options. (line 16) +* --enable-maintainer-mode: configure options. (line 34) +* --enable-shared <1>: Shared library. (line 6) +* --enable-shared: configure options. (line 27) +* --engine=NAME: Path searching options. + (line 20) +* --expand-braces=STRING: Auxiliary tasks. (line 14) +* --expand-path=STRING: Auxiliary tasks. (line 22) +* --expand-var=STRING: Auxiliary tasks. (line 17) +* --format=NAME: Path searching options. + (line 25) +* --help: Standard options. (line 8) +* --interactive: Path searching options. + (line 93) +* --mode=STRING: Path searching options. + (line 104) +* --must-exist: Path searching options. + (line 109) +* --path=STRING: Path searching options. + (line 114) +* --progname=NAME: Path searching options. + (line 122) +* --show-path=NAME: Auxiliary tasks. (line 36) +* --srcdir, for building multiple architectures: configure scenarios. + (line 18) +* --var-value=VARIABLE: Auxiliary tasks. (line 12) +* --version: Standard options. (line 10) +* --with options: configure options. (line 16) +* --with-mktextex-default: mktex configuration. (line 14) +* --without-mktexmf-default: mktex configuration. (line 14) +* --without-mktexpk-default: mktex configuration. (line 14) +* --without-mktextfm-default: mktex configuration. (line 14) +* -1 debugging value: Debugging. (line 23) +* -A option to ls: ls-R. (line 33) +* -Bdynamic: ShellWidgetClass. (line 45) +* -Bstatic: ShellWidgetClass. (line 45) +* -D NUM: Path searching options. + (line 15) +* -dynamic: ShellWidgetClass. (line 43) +* -g, compiling without: configure scenarios. (line 32) +* -L option to ls: ls-R. (line 38) +* -mktex=FILETYPE: Path searching options. + (line 98) +* -no-mktex=FILETYPE: Path searching options. + (line 98) +* -O, compiling with: configure scenarios. (line 32) +* -static: ShellWidgetClass. (line 43) +* . directories, ignored: ls-R. (line 33) +* . files: ls-R. (line 33) +* .2602gf: Unable to generate fonts. + (line 36) +* .afm: Supported file formats. + (line 20) +* .base: Supported file formats. + (line 24) +* .bib: Supported file formats. + (line 28) +* .bst: Supported file formats. + (line 32) +* .cmap: Supported file formats. + (line 36) +* .cnf: Supported file formats. + (line 39) +* .enc: Supported file formats. + (line 51) +* .eps: Supported file formats. + (line 62) +* .epsi: Supported file formats. + (line 62) +* .fmt: Supported file formats. + (line 54) +* .ist: Supported file formats. + (line 67) +* .lig: Supported file formats. + (line 71) +* .map: Supported file formats. + (line 77) +* .mem: Supported file formats. + (line 80) +* .mf: Supported file formats. + (line 88) +* .mft: Supported file formats. + (line 96) +* .mp: Supported file formats. + (line 104) +* .ocp: Supported file formats. + (line 112) +* .ofm: Supported file formats. + (line 116) +* .opl: Supported file formats. + (line 123) +* .otp: Supported file formats. + (line 126) +* .ovf: Supported file formats. + (line 129) +* .ovp: Supported file formats. + (line 132) +* .pfa: Supported file formats. + (line 184) +* .pfb: Supported file formats. + (line 184) +* .pk: Supported file formats. + (line 139) +* .pool: Supported file formats. + (line 92) +* .pro: Supported file formats. + (line 145) +* .rhosts, writable by TeX: Security. (line 10) +* .sfd: Supported file formats. + (line 149) +* .tex: Supported file formats. + (line 152) +* .tex file, included in ls-R: ls-R. (line 33) +* .tfm: Supported file formats. + (line 172) +* .ttc: Supported file formats. + (line 181) +* .ttf: Supported file formats. + (line 181) +* .vf: Supported file formats. + (line 192) +* .w: Supported file formats. + (line 43) +* .web: Supported file formats. + (line 43) +* / may not be /: Searching overview. (line 13) +* /, trailing in home directory: Tilde expansion. (line 18) +* //: Subdirectory expansion. + (line 6) +* /afs/... , installing into: Installing files. (line 32) +* /etc/profile: Unable to find files. + (line 14) +* /etc/profile and aliases: ls-R. (line 21) +* /var/tmp/texfonts: mktex configuration. (line 107) +* 2602gf: Unable to generate fonts. + (line 36) +* 8.3 filenames, using: mktex configuration. (line 62) +* : may not be :: Searching overview. (line 13) +* :: expansion: Default expansion. (line 6) +* @VAR@ substitutions: Running configure. (line 6) +* \, line continuation in texmf.cnf: Config files. (line 26) +* \openin: Searching overview. (line 31) +* \special, suppressing warnings about: Suppressing warnings. + (line 31) +* absolute filenames: Searching overview. (line 52) +* ac_include, Autoconf extension: Running configure. (line 6) +* access warnings: Searching overview. (line 56) +* Acorn TeX implementations: Other TeX packages. (line 6) +* AFMFONTS: Supported file formats. + (line 20) +* AFS: Installing files. (line 32) +* AIX 4.1 configure error: Empty Makefiles. (line 6) +* AIX shells and configure: configure shells. (line 14) +* aliases for fonts: Fontmap. (line 6) +* aliases, for filenames: Filename aliases. (line 6) +* all: Suppressing warnings. + (line 13) +* alphabetical order, not: Subdirectory expansion. + (line 6) +* Amiga support: Custom installation. (line 19) +* Amiga TeX implementations: Other TeX packages. (line 6) +* Andrew File System, installing with: Installing files. (line 32) +* announcement mailing list: Mailing lists. (line 6) +* ANSI C: TeX or Metafont failing. + (line 30) +* append-only directories and mktexpk: Security. (line 36) +* appendonlydir: mktex configuration. (line 54) +* architecture-(in)dependent files, installing only: Installing files. + (line 21) +* architectures, compiling multiple: configure scenarios. (line 18) +* arguments to mktex: mktex script arguments. + (line 6) +* argv[0]: Calling sequence. (line 9) +* ash, losing with configure: configure shells. (line 19) +* autoconf, recommended: Calling sequence. (line 90) +* automounter, and configuration: configure scenarios. (line 29) +* automounter, and ls-R: ls-R. (line 40) +* auxiliary tasks: Auxiliary tasks. (line 6) +* Babel <1>: Running make. (line 51) +* Babel: Kpathsea application distributions. + (line 28) +* Bach, Johann Sebastian: Default expansion. (line 41) +* backbone of CTAN: Electronic distribution. + (line 6) +* backslash-newline: Config files. (line 26) +* bash, recommended for running configure: configure shells. (line 6) +* basic glyph lookup: Basic glyph lookup. (line 6) +* Berry, Karl: History. (line 12) +* BIBINPUTS: Supported file formats. + (line 28) +* binary mode, for file transfers: Electronic distribution. + (line 20) +* blank lines, in texmf.cnf: Config files. (line 24) +* brace expansion: Brace expansion. (line 6) +* BSD universe: Running make. (line 44) +* bsh, ok with configure: configure shells. (line 14) +* BSTINPUTS: Supported file formats. + (line 32) +* bug address: Reporting bugs. (line 8) +* bug checklist: Bug checklist. (line 6) +* bug mailing list: Mailing lists. (line 6) +* bugs, reporting: Reporting bugs. (line 6) +* c-*.h: Calling sequence. (line 90) +* c-auto.h: Programming overview. + (line 25) +* c-auto.in: Running configure. (line 6) +* cache of fonts, local: Security. (line 22) +* calling sequence: Calling sequence. (line 6) +* CC: configure environment. + (line 10) +* cc warnings: Pointer combination warnings. + (line 6) +* cc, compiling with: configure environment. + (line 11) +* CD-ROM distributions: CD-ROM distribution. (line 6) +* CFLAGS: configure environment. + (line 14) +* ChangeLog entry: Bug checklist. (line 63) +* checklist for bug reports: Bug checklist. (line 6) +* checksum: Suppressing warnings. + (line 16) +* circle fonts: Fontmap. (line 19) +* clean Make target: Cleaning up. (line 15) +* client_path in kpse_format_info: Calling sequence. (line 45) +* CMAPFONTS: Supported file formats. + (line 36) +* cmr10, as fallback font: Fallback font. (line 15) +* cmr10.vf: Searching overview. (line 31) +* cnf.c: Config files. (line 75) +* cnf.h: Programming with config files. + (line 23) +* code sharing: Shared library. (line 9) +* color printers, configuring: Simple installation. (line 60) +* comments, in fontmap files: Fontmap. (line 28) +* comments, in texmf.cnf: Config files. (line 22) +* comments, making: Introduction. (line 27) +* common features in glyph lookup: Basic glyph lookup. (line 6) +* common problems: Common problems. (line 6) +* comp.sys.sun.admin FAQ: ShellWidgetClass. (line 6) +* comp.text.tex: Mailing lists. (line 29) +* compilation: Installation. (line 6) +* compilation value, source for path: Path sources. (line 20) +* compiler bugs: TeX or Metafont failing. + (line 6) +* compiler bugs, finding: TeX or Metafont failing. + (line 24) +* compiler options, additional: Running make. (line 27) +* compiler options, specifying: configure environment. + (line 15) +* compiler, changing: Running make. (line 40) +* compiling on HP-UX: TeX or Metafont failing. + (line 30) +* conditions for use: Introduction. (line 31) +* config files: Config files. (line 6) +* config files, for Kpathsea-using programs: Calling sequence. + (line 45) +* config files, programming with: Programming with config files. + (line 6) +* config.h: Programming overview. + (line 25) +* config.log: Bug checklist. (line 29) +* config.ps, search path for: Supported file formats. + (line 47) +* config.status: Bug checklist. (line 32) +* configuration: Installation. (line 6) +* configuration bugs: Bug checklist. (line 32) +* configuration compiler options: configure environment. + (line 23) +* configuration file, source for path: Path sources. (line 17) +* configuration files as shell scripts.: Config files. (line 67) +* configuration of mktex scripts: mktex configuration. (line 6) +* configuration of optional features: configure options. (line 16) +* configure error from sed: Empty Makefiles. (line 6) +* configure options: configure options. (line 6) +* configure options for mktex scripts: mktex configuration. (line 14) +* configure, running: Running configure. (line 6) +* context diff: Bug checklist. (line 63) +* continuation character: Config files. (line 26) +* core dumps, reporting: Bug checklist. (line 69) +* CPPFLAGS: configure environment. + (line 22) +* crashes, reporting: Bug checklist. (line 69) +* CTAN, defined: Electronic distribution. + (line 6) +* CTAN.sites: Electronic distribution. + (line 13) +* custom installation: Custom installation. (line 6) +* CWEBINPUTS: Supported file formats. + (line 43) +* database search: Searching overview. (line 17) +* database, for filenames: Filename database. (line 6) +* database, format of: Database format. (line 6) +* debug.h: Debugging. (line 6) +* debugger: Bug checklist. (line 69) +* debugging: Debugging. (line 6) +* debugging options, in Kpathsea-using program: Calling sequence. + (line 37) +* debugging output: Debugging. (line 27) +* debugging with -g, disabling: configure scenarios. (line 32) +* DEC shells and configure: configure shells. (line 25) +* default expansion: Default expansion. (line 6) +* default path features: Default path features. + (line 6) +* default paths, changing: Default path generation. + (line 6) +* default paths, how they're made: Default path generation. + (line 12) +* default_texsizes: Fallback font. (line 6) +* DEFS: configure environment. + (line 31) +* depot: configure scenarios. (line 29) +* device, wrong: Unable to generate fonts. + (line 29) +* directories, changing default installation: Default path generation. + (line 6) +* directories, making append-only: mktex configuration. (line 55) +* directory permissions: Security. (line 51) +* directory structure, for TeX files: TeX directory structure. + (line 6) +* disabling mktex scripts: mktex configuration. (line 6) +* disk search: Searching overview. (line 22) +* disk searching, avoiding: ls-R. (line 52) +* disk space, needed: Disk space. (line 6) +* disk usage, reducing: Logging. (line 6) +* distclean Make target: Cleaning up. (line 6) +* distributions, compiling simultaneously: Kpathsea application distributions. + (line 6) +* distributions, not compiling: Kpathsea application distributions. + (line 6) +* distributions, on CD-ROM: CD-ROM distribution. (line 6) +* distributions, via ftp: Electronic distribution. + (line 6) +* dlclose: dlopen. (line 6) +* dlopen: dlopen. (line 6) +* dlsym: dlopen. (line 6) +* dlsym.c: dlopen. (line 21) +* doc files: Supported file formats. + (line 158) +* DOS compatible names: mktex configuration. (line 62) +* DOS support: Custom installation. (line 19) +* DOS TeX implementations: Other TeX packages. (line 6) +* dosnames: mktex configuration. (line 61) +* dot files: ls-R. (line 33) +* doubled colons: Default expansion. (line 6) +* dpiNNN directories: mktex configuration. (line 62) +* DVI drivers: Kpathsea application distributions. + (line 12) +* DVILJMAKEPK: mktex script names. (line 22) +* DVILJSIZES: Fallback font. (line 6) +* DVIPSFONTS: Supported file formats. + (line 227) +* DVIPSHEADERS: Supported file formats. + (line 184) +* DVIPSMAKEPK: mktex script names. (line 22) +* DVIPSSIZES: Fallback font. (line 6) +* dynamic creation of files: mktex scripts. (line 6) +* dynamic linking problems with OpenWin libraries: ShellWidgetClass. + (line 6) +* EC fonts, and dynamic source creation: mktex scripts. (line 6) +* elt-dirs.c: Subdirectory expansion. + (line 41) +* email CTAN access: Electronic distribution. + (line 17) +* enabling mktex scripts: mktex configuration. (line 6) +* ENCFONTS: Supported file formats. + (line 51) +* engine name: Path searching options. + (line 20) +* environment variable, source for path: Path sources. (line 9) +* environment variables for TeX: Supported file formats. + (line 6) +* environment variables in paths: Variable expansion. (line 6) +* environment variables, old: Unable to find files. + (line 14) +* epoch, seconds since: Logging. (line 15) +* error message macros: Calling sequence. (line 16) +* excessive startup time: Slow path searching. (line 6) +* expand.c: Brace expansion. (line 26) +* expanding symlinks: Calling sequence. (line 16) +* expansion, default: Default expansion. (line 6) +* expansion, path element: Searching overview. (line 43) +* expansion, search path: Path expansion. (line 6) +* expansion, subdirectory: Subdirectory expansion. + (line 6) +* expansion, tilde: Tilde expansion. (line 6) +* expansion, variable: Variable expansion. (line 6) +* explicitly relative filenames: Searching overview. (line 52) +* externally-built filename database: Filename database. (line 6) +* extra colons: Default expansion. (line 6) +* extraclean Make target: Cleaning up. (line 23) +* failed mktex... script invocation: mktex script names. (line 25) +* fallback font: Fallback font. (line 6) +* fallback resolutions: Fallback font. (line 6) +* fallback resolutions, overriding: Running make. (line 10) +* FAQ, comp.sys.sun.admin: ShellWidgetClass. (line 6) +* FAQ, Kpathsea: Common problems. (line 6) +* Farwell, Matthew: Subdirectory expansion. + (line 22) +* features, of default paths: Default path features. + (line 6) +* file formats, supported: Supported file formats. + (line 6) +* file lookup: File lookup. (line 6) +* file permissions: Security. (line 47) +* file types, registering new: Programming overview. + (line 31) +* filename aliases: Filename aliases. (line 6) +* filename database: Filename database. (line 6) +* filename database generation: Filename database generation. + (line 6) +* filenames, absolute or explicitly relative: Searching overview. + (line 52) +* files, unable to find: Unable to find files. + (line 6) +* filesystem search: Searching overview. (line 22) +* floating directories: Searching overview. (line 22) +* font alias files: Fontmap. (line 6) +* font generation failures: Unable to generate fonts. + (line 6) +* font of last resort: Fallback font. (line 6) +* font set, infinite: mktex scripts. (line 6) +* fontmap files: Fontmap. (line 6) +* fontmaps: mktex configuration. (line 80) +* fontname: mktex configuration. (line 81) +* fontnames, arbitrary length: Fontmap. (line 15) +* fonts, being created: Simple installation. (line 79) +* FOOINPUTS: Supported file formats. + (line 209) +* fopen, redefined: Debugging. (line 54) +* format of external database: Database format. (line 6) +* Free Software Foundation: CD-ROM distribution. (line 12) +* FreeBSD configure error: Empty Makefiles. (line 6) +* FreeBSD shells and configure: configure shells. (line 19) +* FSF Source Code CD-ROM: CD-ROM distribution. (line 12) +* ftp retrieval: Electronic distribution. + (line 6) +* ftp.tug.org: unixtex.ftp. (line 6) +* fundamental purpose of Kpathsea: Introduction. (line 6) +* gcc, compiling with: configure environment. + (line 11) +* gdb, recommended: Bug checklist. (line 69) +* generation of filename database: Filename database generation. + (line 6) +* get_applicationShellWidgetClass: ShellWidgetClass. (line 6) +* get_wmShellWidgetClass: ShellWidgetClass. (line 6) +* gf: Supported file formats. + (line 58) +* GFFONTS: Supported file formats. + (line 58) +* globally writable directories: Security. (line 30) +* glyph lookup: Glyph lookup. (line 6) +* glyph lookup bitmap tolerance: Basic glyph lookup. (line 15) +* GLYPHFONTS: Supported file formats. + (line 58) +* GNU C compiler bugs: TeX or Metafont failing. + (line 19) +* GNU General Public License: Introduction. (line 31) +* group-writable directories: Security. (line 40) +* GSFTOPK_DEBUG (128): Debugging. (line 88) +* hash table buckets, printing: Debugging. (line 105) +* hash table routines: Calling sequence. (line 83) +* hash_summary_only variable for debugging: Debugging. (line 105) +* help, mailing list for general TeX: Mailing lists. (line 29) +* HIER: Default path features. + (line 41) +* history of Kpathsea: History. (line 6) +* home directories in paths: Tilde expansion. (line 6) +* HOME, as ~ expansion: Tilde expansion. (line 6) +* HP-UX, compiling on: TeX or Metafont failing. + (line 30) +* identifiers, characters valid in: Config files. (line 36) +* illegal pointer combination warnings: Pointer combination warnings. + (line 6) +* include fontmap directive: Fontmap. (line 33) +* INDEXSTYLE: Supported file formats. + (line 67) +* info-tex@shsu.edu: Mailing lists. (line 29) +* input lines, reading: Calling sequence. (line 83) +* install-data Make target: Installing files. (line 28) +* install-exec Make target: Installing files. (line 23) +* installation: Installation. (line 6) +* installation testing: Installation testing. + (line 6) +* installation, architecture-(in)dependent files only: Installing files. + (line 21) +* installation, changing default directories: Default path generation. + (line 6) +* installation, customized: Custom installation. (line 6) +* installation, getting executables instead of: Simple installation. + (line 6) +* installation, simple: Simple installation. (line 6) +* installing files: Installing files. (line 6) +* interactive query: Path searching options. + (line 93) +* interface, not frozen: Introduction. (line 27) +* introduction: Introduction. (line 6) +* kdebug:: Debugging. (line 105) +* kdefault.c: Default expansion. (line 48) +* Knuth, Donald E.: History. (line 6) +* Knuth, Donald E., archive of programs by: Other TeX packages. + (line 18) +* Knuth, Donald E., original author: Electronic distribution. + (line 25) +* Korn shell, losing with configure: configure shells. (line 14) +* Kpathsea config file, source for path: Path sources. (line 17) +* Kpathsea version number: Kpathsea application distributions. + (line 6) +* kpathsea.h: Programming overview. + (line 16) +* kpathsea/HIER: Default path features. + (line 41) +* kpathsea/README.CONFIGURE: Running configure. (line 15) +* KPATHSEA_DEBUG: Calling sequence. (line 16) +* kpathsea_debug: Debugging. (line 18) +* KPATHSEA_DEBUG: Debugging. (line 18) +* kpathsea_debug: Debugging. (line 6) +* kpathsea_debug variable: Calling sequence. (line 37) +* KPSE_BITMAP_TOLERANCE: Basic glyph lookup. (line 15) +* kpse_cnf_get: Programming with config files. + (line 23) +* KPSE_DEBUG_EXPAND (16): Debugging. (line 68) +* KPSE_DEBUG_FOPEN (4): Debugging. (line 53) +* KPSE_DEBUG_HASH (2): Debugging. (line 46) +* KPSE_DEBUG_PATHS (8): Debugging. (line 60) +* KPSE_DEBUG_SEARCH (32): Debugging. (line 74) +* KPSE_DEBUG_STAT (1): Debugging. (line 38) +* KPSE_DEBUG_VARS (64): Debugging. (line 83) +* KPSE_DOT expansion: KPSE_DOT expansion. (line 6) +* kpse_fallback_font: Fallback font. (line 15) +* kpse_find_*: Calling sequence. (line 60) +* kpse_find_file <1>: Calling sequence. (line 60) +* kpse_find_file: File lookup. (line 26) +* kpse_find_glyph_format: Glyph lookup. (line 26) +* kpse_format_info: Calling sequence. (line 45) +* kpse_format_info_type: Debugging. (line 61) +* kpse_init_prog: Calling sequence. (line 51) +* kpse_init_prog, and MAKETEX_MODE: Default path features. + (line 25) +* kpse_make_specs: mktex script names. (line 6) +* kpse_open_file: Calling sequence. (line 74) +* kpse_program_name: Calling sequence. (line 16) +* kpse_set_progname: Calling sequence. (line 30) +* kpse_set_program_name: Calling sequence. (line 9) +* kpse_var_value: Programming with config files. + (line 10) +* kpsewhich: Invoking kpsewhich. (line 6) +* Kpsewhich, and debugging: Debugging. (line 31) +* ksh, losing with configure: configure shells. (line 14) +* labrea.stanford.edu: Other TeX packages. (line 18) +* LaserJet drive: Kpathsea application distributions. + (line 13) +* last-resort font: Fallback font. (line 6) +* LaTeX help mailing list: Mailing lists. (line 29) +* lcircle10: Fontmap. (line 19) +* LDFLAGS: configure environment. + (line 38) +* leading colons: Default expansion. (line 6) +* leaf directories wrongly guessed: Unable to find files. + (line 21) +* leaf directory trick: Subdirectory expansion. + (line 22) +* libdl.a: dlopen. (line 6) +* libraries, changing: Running make. (line 40) +* libraries, specifying additional: configure environment. + (line 43) +* LIBS: configure environment. + (line 42) +* libucb, avoiding: Running make. (line 44) +* license for using the library: Introduction. (line 31) +* LIGFONTS: Supported file formats. + (line 71) +* lines, reading arbitrary-length: Calling sequence. (line 83) +* Linux File System Standard: mktex configuration. (line 107) +* Linux shells and configure: configure shells. (line 19) +* Linux, using Web2c: CD-ROM distribution. (line 16) +* lndir for building symlink trees: configure scenarios. (line 18) +* loader options: configure environment. + (line 39) +* loader options, final: Running make. (line 33) +* loader options, initial: Running make. (line 30) +* local cache of fonts: Security. (line 22) +* log file: Logging. (line 6) +* logging successful searches: Logging. (line 6) +* lost+found directory: Searching overview. (line 56) +* lostchar: Suppressing warnings. + (line 19) +* ls-R: Supported file formats. + (line 74) +* ls-R and AFS: Installing files. (line 40) +* ls-R database file: ls-R. (line 6) +* ls-R, simplest build: ls-R. (line 18) +* Mach10 configure error: Empty Makefiles. (line 6) +* Macintosh TeX implementations: Other TeX packages. (line 6) +* MacKenzie, David <1>: Subdirectory expansion. + (line 22) +* MacKenzie, David: History. (line 45) +* magic characters: Searching overview. (line 13) +* mailing lists: Mailing lists. (line 6) +* maintainer-clean Make target: Cleaning up. (line 18) +* Make arguments, additional: Running make. (line 36) +* make, running: Running make. (line 6) +* Makefile.in: Running configure. (line 6) +* Makefiles, empty: Empty Makefiles. (line 6) +* MAKETEX_DEBUG (512): Debugging. (line 91) +* MAKETEX_FINE_DEBUG (1024): Debugging. (line 100) +* MAKETEX_MODE: Default path features. + (line 19) +* memory allocation routines: Calling sequence. (line 83) +* metafont driver files: mktex configuration. (line 87) +* Metafont failures: TeX or Metafont failing. + (line 6) +* Metafont installation: Unable to generate fonts. + (line 52) +* Metafont making too-large fonts: Unable to generate fonts. + (line 36) +* Metafont using the wrong device: Unable to generate fonts. + (line 29) +* MFBASES: Supported file formats. + (line 24) +* MFINPUTS: Supported file formats. + (line 88) +* MFPOOL: Supported file formats. + (line 92) +* MFTINPUTS: Supported file formats. + (line 96) +* mirrors, FTP: Electronic distribution. + (line 13) +* MISCFONTS: Supported file formats. + (line 100) +* mismatched checksum warnings: Suppressing warnings. + (line 17) +* missfont.log: mktex script names. (line 25) +* MISSFONT_LOG: mktex script names. (line 30) +* missing character warnings: Suppressing warnings. + (line 20) +* mktex script configuration: mktex configuration. (line 6) +* mktex script names: mktex script names. (line 6) +* mktex scripts: mktex scripts. (line 6) +* mktex.cnf: mktex configuration. (line 23) +* mktex.opt: mktex configuration. (line 34) +* mktexdir: mktex configuration. (line 55) +* mktexmf: mktex script names. (line 17) +* mktexpk: mktex script names. (line 11) +* mktexpk , initial runs: Simple installation. (line 79) +* mktexpk can't guess mode: Unable to generate fonts. + (line 12) +* mktextex: mktex script names. (line 14) +* mktextfm: mktex script names. (line 20) +* mode directory, omitting: mktex configuration. (line 92) +* Morgan, Tim: History. (line 12) +* mostlyclean Make target: Cleaning up. (line 10) +* MPINPUTS: Supported file formats. + (line 104) +* MPMEMS: Supported file formats. + (line 80) +* MPPOOL: Supported file formats. + (line 108) +* MPSUPPORT: Supported file formats. + (line 84) +* MT_FEATURES: mktex configuration. (line 34) +* multiple architectures, compiling on: configure scenarios. (line 18) +* multiple architectures, directories for: configure scenarios. + (line 23) +* multiple architectures, installing on: Installing files. (line 21) +* multiple TeX hierarchies: Brace expansion. (line 20) +* must exist: Searching overview. (line 31) +* names for mktex scripts: mktex script names. (line 6) +* NetBSD configure error: Empty Makefiles. (line 6) +* NetBSD shells and configure: configure shells. (line 19) +* Neumann, Gustaf: History. (line 57) +* newsgroup for TeX: Mailing lists. (line 29) +* NeXT sed error: Empty Makefiles. (line 6) +* NeXT, lacking X11: Kpathsea application distributions. + (line 6) +* NFS and ls-R: ls-R. (line 40) +* NFS CTAN access: Electronic distribution. + (line 17) +* nomfdrivers: mktex configuration. (line 86) +* nomode: mktex configuration. (line 91) +* non-English typesetting: Kpathsea application distributions. + (line 28) +* non-Unix operating systems: Custom installation. (line 19) +* none: Suppressing warnings. + (line 23) +* null pointers, dereferencing: Bug checklist. (line 69) +* numeric debugging values: Debugging. (line 34) +* obtaining TeX: unixtex.ftp. (line 6) +* obtaining Web2c by ftp: Electronic distribution. + (line 6) +* obtaining Web2c on CD-ROM: CD-ROM distribution. (line 6) +* OCPINPUTS: Supported file formats. + (line 112) +* OFMFONTS: Supported file formats. + (line 116) +* online Metafont display, spurious: Unable to generate fonts. + (line 36) +* OPENTYPEFONTS: Supported file formats. + (line 120) +* OpenWin libraries, dynamic linking problems: ShellWidgetClass. + (line 6) +* optimization caveat: TeX or Metafont failing. + (line 15) +* optimization, enabling: configure scenarios. (line 32) +* options for debugging: Debugging. (line 6) +* options to configure: configure options. (line 16) +* OS/2 support: Custom installation. (line 19) +* other TeX distributions: Other TeX packages. (line 6) +* OTPINPUTS: Supported file formats. + (line 126) +* overview of path searching: Searching overview. (line 6) +* overview of programming with Kpathsea: Programming overview. + (line 6) +* OVFFONTS: Supported file formats. + (line 129) +* OVPFONTS: Supported file formats. + (line 132) +* patches, Sun OpenWin: ShellWidgetClass. (line 29) +* path expansion: Path expansion. (line 6) +* path searching: Path searching. (line 6) +* path searching options: Path searching options. + (line 6) +* path searching, overview: Searching overview. (line 6) +* path searching, standalone: Invoking kpsewhich. (line 6) +* path sources: Path sources. (line 6) +* paths, changing default <1>: Default path generation. + (line 6) +* paths, changing default: Changing search paths. + (line 6) +* paths, device name included in: Default path features. + (line 19) +* paths.h: Default path generation. + (line 27) +* paths.h, creating: Running make. (line 6) +* pathsearch.h: Programming overview. + (line 16) +* pc Pascal compiler: History. (line 12) +* PCL driver: Kpathsea application distributions. + (line 13) +* PDF generation: Kpathsea application distributions. + (line 16) +* PDFTEXCONFIG: Supported file formats. + (line 136) +* permission denied: Searching overview. (line 56) +* permissions, directory: Security. (line 51) +* permissions, file: Security. (line 47) +* PKFONTS: Supported file formats. + (line 139) +* plain.base: Unable to generate fonts. + (line 46) +* pointer combination warnings: Pointer combination warnings. + (line 6) +* PostScript driver: Kpathsea application distributions. + (line 16) +* PostScript fonts, additional: Simple installation. (line 60) +* precompiled executables, instead of installation: Simple installation. + (line 6) +* precompiled Unix binaries: Other TeX packages. (line 13) +* preprocessor options: configure environment. + (line 32) +* preprocessor options, additional: Running make. (line 24) +* printer configuration files: Simple installation. (line 60) +* privacy, semblance of: Logging. (line 32) +* problems, common: Common problems. (line 6) +* proginit.c: Default path features. + (line 25) +* proginit.h: Calling sequence. (line 51) +* program-varying paths: Supported file formats. + (line 12) +* program_invocation_name: Calling sequence. (line 16) +* program_invocation_short_name: Calling sequence. (line 16) +* programming overview: Programming overview. + (line 6) +* programming with config files: Programming with config files. + (line 6) +* programming with Kpathsea: Calling sequence. (line 6) +* programs using the library: Introduction. (line 13) +* proof mode: Unable to generate fonts. + (line 36) +* PSHEADERS: Supported file formats. + (line 145) +* pxp Pascal preprocessor: History. (line 12) +* quoting variable values: Variable expansion. (line 17) +* readable: Suppressing warnings. + (line 26) +* reading arbitrary-length lines: Calling sequence. (line 83) +* README.CONFIGURE: Running configure. (line 15) +* README.mirrors: Electronic distribution. + (line 13) +* recording successful searches: Logging. (line 6) +* relative filenames: Searching overview. (line 52) +* relative filenames in ls-R: Installing files. (line 40) +* reporting bugs: Reporting bugs. (line 6) +* resident.c: Calling sequence. (line 45) +* resolution, setting: Path searching options. + (line 15) +* resolutions, last-resort: Fallback font. (line 6) +* retrieving TeX: unixtex.ftp. (line 6) +* right-hand side of variable assignments: Config files. (line 44) +* Rokicki, Tom: History. (line 12) +* root user: Tilde expansion. (line 18) +* runtime configuration files: Config files. (line 6) +* runtime debugging: Debugging. (line 6) +* Sauter fonts, and dynamic source creation: mktex scripts. (line 6) +* scripts for file creation: mktex scripts. (line 6) +* search path, defined: Searching overview. (line 6) +* search paths, changing default: Changing search paths. + (line 6) +* searching for files: File lookup. (line 6) +* searching for glyphs: Glyph lookup. (line 6) +* searching overview: Searching overview. (line 6) +* searching the database: Searching overview. (line 17) +* searching the disk: Searching overview. (line 22) +* security considerations: Security. (line 6) +* sed error from configure: Empty Makefiles. (line 6) +* SELFAUTODIR: Calling sequence. (line 16) +* SELFAUTOLOC: Calling sequence. (line 16) +* SELFAUTOPARENT: Calling sequence. (line 16) +* sending patches: Bug checklist. (line 63) +* setgid scripts: Security. (line 40) +* SFDFONTS: Supported file formats. + (line 149) +* sh5, ok with configure: configure shells. (line 25) +* shar, recommended: Bug checklist. (line 57) +* shared library, making: Shared library. (line 6) +* shell scripts as configuration files: Config files. (line 67) +* shell variables: Variable expansion. (line 17) +* shell_escape, example for code: Programming with config files. + (line 10) +* shells and configure: configure shells. (line 6) +* simple installation: Simple installation. (line 6) +* site overrides for mktex...: mktex configuration. (line 23) +* size of distribution archives: Disk space. (line 6) +* skeleton TeX directory: TeX directory structure. + (line 6) +* slow startup time: Slow path searching. (line 6) +* Solaris BSD compatibility, not: Running make. (line 44) +* source files: Supported file formats. + (line 161) +* sources for search paths: Path sources. (line 6) +* special: Suppressing warnings. + (line 30) +* st_nlink: Subdirectory expansion. + (line 26) +* stack trace: Bug checklist. (line 69) +* standalone path searching: Invoking kpsewhich. (line 6) +* standard error and debugging output: Debugging. (line 27) +* standard options: Standard options. (line 6) +* startup time, excessive: Slow path searching. (line 6) +* static linking: ShellWidgetClass. (line 39) +* static linking and dlsym: dlopen. (line 6) +* string routines: Calling sequence. (line 83) +* strip: mktex configuration. (line 101) +* stripsupplier: mktex configuration. (line 95) +* striptypeface: mktex configuration. (line 98) +* subdirectory searching: Subdirectory expansion. + (line 6) +* suggestions, making: Introduction. (line 27) +* Sun 2: History. (line 12) +* Sun OpenWin patches: ShellWidgetClass. (line 29) +* supplier directory, omitting: mktex configuration. (line 96) +* supported file formats: Supported file formats. + (line 6) +* suppressing warnings: Suppressing warnings. + (line 6) +* symbolic link trees, for multiple architectures: configure scenarios. + (line 18) +* symbolic links not found: Unable to find files. + (line 21) +* symbolic links, and ls-R: ls-R. (line 38) +* symlinks, resolving: Calling sequence. (line 16) +* system C compiler bugs: TeX or Metafont failing. + (line 19) +* system dependencies: Running configure. (line 6) +* system V universe: Running make. (line 44) +* T1FONTS: Supported file formats. + (line 184) +* T1INPUTS: Supported file formats. + (line 184) +* T42FONTS: Supported file formats. + (line 189) +* TDS: TeX directory structure. + (line 6) +* testing, post-installation: Installation testing. + (line 6) +* tests, simple: Simple installation. (line 79) +* teTeX: Other TeX packages. (line 13) +* TeX directory structure: TeX directory structure. + (line 6) +* TeX distributions besides Web2c: Other TeX packages. (line 6) +* TeX environment variables: Supported file formats. + (line 6) +* TeX failures: TeX or Metafont failing. + (line 6) +* TeX file lookup: File lookup. (line 6) +* TeX glyph lookup: Glyph lookup. (line 6) +* TeX help mailing list: Mailing lists. (line 29) +* TeX hierarchy, one: configure scenarios. (line 13) +* TeX Live CD-ROM: CD-ROM distribution. (line 8) +* TeX support: TeX support. (line 6) +* TeX Users Group: Introduction. (line 39) +* tex-archive@math.utah.edu: Mailing lists. (line 25) +* tex-file.c: File lookup. (line 26) +* tex-file.h: Programming overview. + (line 16) +* tex-glyph.c: Glyph lookup. (line 26) +* tex-glyph.h: Programming overview. + (line 16) +* tex-k-request@mail.tug.org: Mailing lists. (line 7) +* tex-k@mail.tug.org (bug address): Reporting bugs. (line 8) +* tex-make.c: mktex script names. (line 6) +* TEX_HUSH <1>: Suppressing warnings. + (line 6) +* TEX_HUSH: Searching overview. (line 56) +* TEXBIB: Supported file formats. + (line 28) +* TEXCONFIG: Supported file formats. + (line 47) +* TEXDOCS: Supported file formats. + (line 158) +* TEXFONTMAPS: Supported file formats. + (line 77) +* TEXFONTS: Supported file formats. + (line 58) +* texfonts.map: Fontmap. (line 6) +* TEXFORMATS: Supported file formats. + (line 54) +* TEXINDEXSTYLE: Supported file formats. + (line 67) +* TEXINPUTS: Supported file formats. + (line 62) +* TEXMF: TeX directory structure. + (line 6) +* texmf.cnf, and variable expansion: Variable expansion. (line 6) +* texmf.cnf, creating: Running make. (line 6) +* texmf.cnf, definition for: Config files. (line 6) +* texmf.cnf, generated: Default path generation. + (line 22) +* texmf.cnf, source for path: Path sources. (line 17) +* texmf.in: Default path generation. + (line 22) +* texmf.in, editing: Changing search paths. + (line 6) +* texmf.sed: Default path generation. + (line 17) +* TEXMFCNF <1>: Supported file formats. + (line 39) +* TEXMFCNF: Config files. (line 6) +* TEXMFDBS <1>: Supported file formats. + (line 74) +* TEXMFDBS: ls-R. (line 6) +* TEXMFINI: Supported file formats. + (line 24) +* TEXMFLOG: Logging. (line 10) +* TEXMFOUTPUT: mktex script names. (line 30) +* TEXMFSCRIPTS: Supported file formats. + (line 164) +* TEXMFVAR: mktex configuration. (line 117) +* texmfvar: mktex configuration. (line 116) +* TEXPICTS: Supported file formats. + (line 62) +* TEXPKS: Supported file formats. + (line 139) +* TEXPOOL: Supported file formats. + (line 168) +* TEXPSHEADERS: Supported file formats. + (line 145) +* TEXSIZES: Fallback font. (line 6) +* TEXSOURCES: Supported file formats. + (line 161) +* TFMFONTS: Supported file formats. + (line 172) +* tilde expansion: Tilde expansion. (line 6) +* tilde.c: Tilde expansion. (line 24) +* time system call: Logging. (line 15) +* tolerance for glyph lookup: Basic glyph lookup. (line 15) +* total disk space: Disk space. (line 6) +* trailing / in home directory: Tilde expansion. (line 18) +* trailing colons: Default expansion. (line 6) +* TRFONTS: Supported file formats. + (line 177) +* trick for detecting leaf directories: Subdirectory expansion. + (line 22) +* trojan horse attack: Security. (line 10) +* TTFONTS: Supported file formats. + (line 181) +* tug.org: unixtex.ftp. (line 6) +* tug@tug.org: Introduction. (line 46) +* typeface directory, omitting: mktex configuration. (line 99) +* ucbinclude, avoiding: Running make. (line 44) +* Ultrix shells and configure: configure shells. (line 25) +* unable to find files: Unable to find files. + (line 6) +* unable to generate fonts: Unable to generate fonts. + (line 6) +* uname: Bug checklist. (line 22) +* universe, BSD vs. system V: Running make. (line 44) +* UNIX_ST_LINK: Subdirectory expansion. + (line 38) +* unixtex.ftp: unixtex.ftp. (line 6) +* unknown special warnings: Suppressing warnings. + (line 31) +* unreadable file warnings: Suppressing warnings. + (line 27) +* unreadable files: Searching overview. (line 56) +* unusable ls-R warning: ls-R. (line 45) +* usage patterns, finding: Logging. (line 6) +* USE_TEXMFVAR: mktex configuration. (line 122) +* USE_VARTEXFONTS: mktex configuration. (line 112) +* Usenet TeX newsgroup: Mailing lists. (line 29) +* varfonts: mktex configuration. (line 106) +* variable expansion: Variable expansion. (line 6) +* variable.c: Variable expansion. (line 32) +* variable.h: Programming with config files. + (line 10) +* VARTEXFONTS: mktex configuration. (line 107) +* VAX 11/750: History. (line 12) +* version number, of Kpathsea: Kpathsea application distributions. + (line 6) +* version numbers, determining: Bug checklist. (line 17) +* VF files, not found: Searching overview. (line 31) +* VFFONTS: Supported file formats. + (line 192) +* VMS support: Custom installation. (line 19) +* VMS TeX implementations: Other TeX packages. (line 6) +* Vojta, Paul: History. (line 30) +* Walsh, Norman: History. (line 57) +* warning about unusable ls-R: ls-R. (line 45) +* warnings, file access: Searching overview. (line 56) +* warnings, pointer combinations: Pointer combination warnings. + (line 6) +* warnings, suppressing: Suppressing warnings. + (line 6) +* wcstombs: dlopen. (line 6) +* WEB2C: Supported file formats. + (line 200) +* Weber, Olaf: History. (line 74) +* WEBINPUTS: Supported file formats. + (line 196) +* whitespace, in fontmap files: Fontmap. (line 28) +* whitespace, not ignored on continuation lines: Config files. + (line 26) +* Windows TeX implementations: Other TeX packages. (line 6) +* World Wide Web CTAN access: Electronic distribution. + (line 17) +* www.tug.org: unixtex.ftp. (line 6) +* X11 previewer: Kpathsea application distributions. + (line 25) +* X11, lacking on NeXT: Kpathsea application distributions. + (line 6) +* XCFLAGS: Running make. (line 26) +* XCPPFLAGS: Running make. (line 22) +* XDEFS: Running make. (line 23) +* XDVIFONTS: Supported file formats. + (line 227) +* XDVIMAKEPK: mktex script names. (line 22) +* XDVISIZES: Fallback font. (line 6) +* XLDFLAGS: Running make. (line 29) +* XLOADLIBES: Running make. (line 32) +* XMAKEARGS: Running make. (line 35) +* Xmu library problems: ShellWidgetClass. (line 13) +* XtStrings: XtStrings. (line 6) +* zuhn, david: History. (line 51) +* { expansion: Brace expansion. (line 6) +* ~ expansion: Tilde expansion. (line 6) + + + +Tag Table: +Node: Top1413 +Node: Introduction2056 +Node: History4032 +Node: Installation8124 +Node: Simple installation8914 +Node: Custom installation12497 +Node: Disk space13671 +Node: Kpathsea application distributions14555 +Node: Changing search paths15670 +Node: Default path features16852 +Node: Default path generation18988 +Node: Running configure20431 +Node: configure shells21482 +Node: configure options22534 +Node: configure environment24041 +Node: configure scenarios25843 +Node: Shared library27429 +Node: Running make28763 +Node: Installing files30810 +Node: Cleaning up32757 +Node: Filename database generation33805 +Node: mktex scripts34372 +Node: mktex configuration35329 +Node: mktex script names40873 +Node: mktex script arguments41971 +Node: Installation testing42861 +Node: Security43225 +Node: TeX directory structure45792 +Node: unixtex.ftp50214 +Node: Electronic distribution52229 +Node: CD-ROM distribution54994 +Node: Other TeX packages55964 +Node: Reporting bugs57260 +Node: Bug checklist58000 +Node: Mailing lists62101 +Node: Debugging63460 +Node: Logging68532 +Node: Common problems70043 +Node: Unable to find files70874 +Node: Slow path searching73285 +Node: Unable to generate fonts74662 +Node: TeX or Metafont failing77171 +Node: Empty Makefiles79049 +Node: XtStrings80279 +Node: dlopen81115 +Node: ShellWidgetClass81933 +Node: Pointer combination warnings83565 +Node: Path searching83954 +Node: Searching overview84601 +Node: Path sources87973 +Node: Config files89044 +Node: Path expansion92444 +Node: Default expansion93393 +Node: Variable expansion95463 +Node: Tilde expansion96866 +Node: Brace expansion97764 +Node: KPSE_DOT expansion98869 +Node: Subdirectory expansion99382 +Node: Filename database101731 +Node: ls-R103045 +Node: Filename aliases105939 +Node: Database format107117 +Node: Invoking kpsewhich108130 +Node: Path searching options109007 +Node: Auxiliary tasks113144 +Node: Standard options114652 +Node: TeX support114972 +Node: Supported file formats116263 +Node: File lookup123411 +Node: Glyph lookup124702 +Node: Basic glyph lookup125829 +Node: Fontmap126708 +Node: Fallback font129325 +Node: Suppressing warnings130290 +Node: Programming131395 +Node: Programming overview131908 +Node: Calling sequence134184 +Node: Program-specific files139213 +Node: Programming with config files140251 +Node: Index141551 + +End Tag Table diff --git a/Master/texmf/doc/info/latex.info b/Master/texmf/doc/info/latex.info new file mode 100644 index 00000000000..05e8a79a75c --- /dev/null +++ b/Master/texmf/doc/info/latex.info @@ -0,0 +1,4309 @@ +This is latex.info, produced by makeinfo version 4.7 from latex2e.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* LaTeX2e: (latex). LaTeXe help 1.6. +END-INFO-DIR-ENTRY + + This file documents LaTeX2e, a document preparation system. LaTeX2e +is a macro package for TeX. + + This is edition 1.6 of the LaTeX2e documentation, and is for the +Texinfo that is distributed as part of Version 19 of GNU Emacs. It uses +version 2.134 or later of the texinfo.tex input file. + + This is translated from LATEX.HLP v1.0a in the VMS Help Library. The +pre-translation version was written by George D. Greenwade of Sam +Houston State University. + + The LaTeX 2.09 version was written by Stephen Gilmore +<stg@dcs.ed.ac.uk>. + + The LaTeX2e version was adapted from this by Torsten Martinsen +<bullestock@dk-online.dk>. + + Copyright 1988,1994 Free Software Foundation, Inc. Copyright +1994-1996 Torsten Martinsen. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that the sections entitled "Distribution" and "General +Public License" may be included in a translation approved by the author +instead of in the original English. + + +File: latex.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) + + LaTeX2e is a document preparation system implemented as a macro +package for Donald E. Knuth's TeX typesetting program. + + LaTeX was originally conceived by Leslie Lamport. + + This is edition 1.6 of the LaTeX2e documentation. + +* Menu: + + +* Overview:: What is LaTeX? +* Commands:: Commands within a LaTeX document. +* Parameters:: The command line. +* Command Index:: An alphabetical list of LaTeX commands. +* Concept Index:: An alphabetical list of concepts. + + +File: latex.info, Node: Overview, Next: Commands, Prev: Top, Up: Top + +1 Overview of LaTeX and Local Guide +*********************************** + +The LaTeX command typesets a file of text using the TeX program and the +LaTeX Macro package for TeX. To be more specific, it processes an input +file containing the text of a document with interspersed commands that +describe how the text should be formatted. It produces at least three +files as output: + + 1. A "Device Independent", or `.dvi' file. This contains commands that + can be translated into commands for a variety of output devices. + You can view the output of LaTeX by using a program such as `xdvi', + which actually uses the `.dvi' file. + + 2. A "transcript" or `.log' file that contains summary information and + diagnostic messages for any errors discovered in the input file. + + 3. An "auxiliary" or `.aux' file. This is used by LaTeX itself, for + things such as sectioning. + + For a description of what goes on inside TeX, you should consult +`The TeXbook' by Donald E. Knuth, ISBN 0-201-13448-9, published jointly +by the American Mathematical Society and Addison-Wesley Publishing +Company. + + For a description of LaTeX, you should consult: + + `LaTeX: A Document Preparation System', by Leslie Lamport, +Addison-Wesley Publishing Company, 2nd edition, 1994. + + `The LaTeX Companion', by Michel Goossens, Frank Mittelbach, and +Alexander Samarin, Addison-Wesley, 1994. + + +File: latex.info, Node: Commands, Next: Parameters, Prev: Overview, Up: Top + +2 Commands +********** + +A LaTeX command begins with the command name, which consists of a `\' +followed by either (a) a string of letters or (b) a single non-letter. +Arguments contained in square brackets, `[]', are optional while +arguments contained in braces, `{}', are required. + + NOTE: LaTeX is case sensitive. Enter all commands in lower +case unless explicitly directed to do otherwise. + +* Menu: + +* Counters:: Internal counters used by LaTeX. +* Cross References:: Automatic referencing. +* Definitions:: Define your own commands etc. +* Document Classes:: Some of the various classes available. +* Environments:: Such as enumerate & itemize. +* Footnotes:: How to produce footnotes. +* Layout:: Controlling the page layout. +* Lengths:: The length commands. +* Letters:: The letter class. +* Line & Page Breaking:: How to insert pagebreaks etc. +* Making Paragraphs:: Paragraph commands. +* Margin Notes:: Putting remarks in the margin. +* Math Formulae:: How to create mathematical formulae. +* Modes:: Paragraph, Math or LR modes. +* Page Styles:: Various styles of page layout. +* Sectioning:: How to section properly. +* Spaces & Boxes:: All the associated commands. +* Special Characters:: Special reserved characters. +* Splitting the Input:: Dealing with big files by splitting. +* Starting & Ending:: The formal start & end layouts. +* Table of Contents:: How to create a table of contents. +* Terminal Input/Output:: User interaction. +* Typefaces:: Such as bold, italics etc. + + +File: latex.info, Node: Counters, Next: Cross References, Prev: Commands, Up: Commands + +2.1 Counters +============ + +Everything LaTeX numbers for you has a counter associated with it. The +name of the counter is the same as the name of the environment or +command that produces the number, except with no `\'. (enumi - enumiv +are used for the nested enumerate environment.) Below is a list of the +counters used in LaTeX's standard document classes to control numbering. + + part paragraph figure enumi + chapter subparagraph table enumii + section page footnote enumiii + subsection equation mpfootnote enumiv + subsubsection + +* Menu: + +* \addtocounter:: Add a quantity to a counter. +* \alph:: Print value of a counter using letters. +* \arabic:: Print value of a counter using numerals. +* \fnsymbol:: Print value of a counter using symbols. +* \newcounter:: Define a new counter. +* \refstepcounter:: Add to counter, resetting subsidiary counters. +* \roman:: Print value of a counter using roman numerals. +* \setcounter:: Set the value of a counter. +* \stepcounter:: Add to counter, resetting subsidiary counters. +* \usecounter:: Use a specified counter in a list environment. +* \value:: Use the value of a counter in an expression. + + +File: latex.info, Node: \addtocounter, Next: \alph, Prev: Counters, Up: Counters + +2.1.1 \addtocounter +------------------- + +`\addtocounter{counter}{value}' + + The `\addtocounter' command increments the `counter' by the amount +specified by the `value' argument. The `value' argument can be +negative. + + +File: latex.info, Node: \alph, Next: \arabic, Prev: \addtocounter, Up: Counters + +2.1.2 \alph +----------- + +`\alph{counter}' + + This command causes the value of the `counter' to be printed in +alphabetic characters. The `\alph' command uses lower case alphabetic +alphabetic characters, i.e., `a, b, c...' while the `\Alph' command +uses upper case alphabetic characters, i.e., `A, B, C...'. + + +File: latex.info, Node: \arabic, Next: \fnsymbol, Prev: \alph, Up: Counters + +2.1.3 \arabic +------------- + +`\arabic{counter}' + + The `\arabic' command causes the value of the `counter' to be +printed in Arabic numbers, i.e., `3'. + + +File: latex.info, Node: \fnsymbol, Next: \newcounter, Prev: \arabic, Up: Counters + +2.1.4 \fnsymbol +--------------- + +`\fnsymbol{counter}' + + The `\fnsymbol' command causes the value of the `counter' to be +printed in a specific sequence of nine symbols that can be used for +numbering footnotes. + + NB. `counter' must have a value between 1 and 9 inclusive. + + +File: latex.info, Node: \newcounter, Next: \refstepcounter, Prev: \fnsymbol, Up: Counters + +2.1.5 \newcounter +----------------- + +`\newcounter{foo}[counter]' + + The `\newcounter' command defines a new counter named `foo'. The +counter is initialized to zero. + + The optional argument `[counter]' causes the counter `foo' to be +reset whenever the counter named in the optional argument is +incremented. + + +File: latex.info, Node: \refstepcounter, Next: \roman, Prev: \newcounter, Up: Counters + +2.1.6 \refstepcounter +--------------------- + +`\refstepcounter{counter}' + + The `\refstepcounter' command works like `\stepcounter' *Note +\stepcounter::, except it also defines the current `\ref' value to be +the result of `\thecounter'. + + +File: latex.info, Node: \roman, Next: \stepcounter, Prev: \refstepcounter, Up: Counters + +2.1.7 \roman +------------ + +`\roman{counter}' + + This command causes the value of the `counter' to be printed in +Roman numerals. The `\roman' command uses lower case Roman numerals, +i.e., `i, ii, iii...', while the `\Roman' command uses upper case Roman +numerals, i.e., `I, II, III...'. + + +File: latex.info, Node: \stepcounter, Next: \setcounter, Prev: \roman, Up: Counters + +2.1.8 \stepcounter +------------------ + +`\stepcounter{counter}' + + The `\stepcounter' command adds one to the `counter' and resets all +subsidiary counters. + + +File: latex.info, Node: \setcounter, Next: \usecounter, Prev: \stepcounter, Up: Counters + +2.1.9 \setcounter +----------------- + +`\setcounter{counter}{value}' + + The `\setcounter' command sets the value of the `counter' to that +specified by the `value' argument. + + +File: latex.info, Node: \usecounter, Next: \value, Prev: \setcounter, Up: Counters + +2.1.10 \usecounter +------------------ + +`\usecounter{counter}' + + The `\usecounter' command is used in the second argument of the +`list' environment to allow the counter specified to be used to number +the list items. + + +File: latex.info, Node: \value, Prev: \usecounter, Up: Counters + +2.1.11 \value +------------- + +`\value{counter}' + + The `\value' command produces the value of the `counter' named in +the mandatory argument. It can be used where LaTeX expects an integer +or number, such as the second argument of a `\setcounter' or +`\addtocounter' command, or in: + + \hspace{\value{foo}\parindent} + + It is useful for doing arithmetic with counters. + + +File: latex.info, Node: Cross References, Next: Definitions, Prev: Counters, Up: Commands + +2.2 Cross References +==================== + +One reason for numbering things like figures and equations is to refer +the reader to them, as in "See Figure 3 for more details." + +* Menu: + +* \label:: Assign a symbolic name to a piece of text. +* \pageref:: Refer to a page number. +* \ref:: Refer to a section, figure or similar. + + +File: latex.info, Node: \label, Next: \pageref, Prev: Cross References, Up: Cross References + +2.2.1 \label +------------ + +`\label{key}' + + A `\label' command appearing in ordinary text assigns to the `key' +the number of the current sectional unit; one appearing inside a +numbered environment assigns that number to the `key'. + + A `key' can consist of any sequence of letters, digits, or +punctuation characters. Upper and lowercase letters are different. + + To avoid accidentally creating two labels with the same name, it is +common to use labels consisting of a prefix and a suffix separated by a +colon. The prefixes conventionally used are + + * `cha' for chapters + + * `sec' for lower-level sectioning commands + + * `fig' for figures + + * `tab' for tables + + * `eq' for equations + + Thus, a label for a figure would look like `fig:bandersnatch'. + + +File: latex.info, Node: \pageref, Next: \ref, Prev: \label, Up: Cross References + +2.2.2 \pageref +-------------- + +`\pageref{key}' + + The `\pageref' command produces the page number of the place in the +text where the corresponding `\label' command appears. ie. where +`\label{key}' appears. + + +File: latex.info, Node: \ref, Prev: \pageref, Up: Cross References + +2.2.3 \ref +---------- + +`\ref{key}' + + The `\ref' command produces the number of the sectional unit, +equation number, ... of the corresponding `\label' command. + + +File: latex.info, Node: Definitions, Next: Document Classes, Prev: Cross References, Up: Commands + +2.3 Definitions +=============== + +* Menu: + +* \newcommand:: Define a new command. +* \newenvironment:: Define a new environment. +* \newtheorem:: Define a new theorem-like environment. +* \newfont:: Define a new font name. + + +File: latex.info, Node: \newcommand, Next: \newenvironment, Prev: Definitions, Up: Definitions + +2.3.1 \newcommand +----------------- + + \newcommand{cmd}[args]{definition} + \newcommand{cmd}[args][default]{definition} + \renewcommand{cmd}[args]{definition} + \renewcommand{cmd}[args][default]{definition} + + These commands define (or redefine) a command. + +`cmd' + A command name beginning with a `\'. For `\newcommand' it must + not be already defined and must not begin with `\end'; for + `\renewcommand' it must already be defined. + +`args' + An integer from 1 to 9 denoting the number of arguments of the + command being defined. The default is for the command to have no + arguments. + +`def' + If this optional parameter is present, it means that the command's + first argument is optional. The default value of the optional + argument is `def'. + +`definition' + The text to be substituted for every occurrence of `cmd'; a + parameter of the form `#n' in `cmd' is replaced by the text of the + nth argument when this substitution takes place. + + + +File: latex.info, Node: \newenvironment, Next: \newtheorem, Prev: \newcommand, Up: Definitions + +2.3.2 \newenvironment +--------------------- + + \newenvironment{nam}[args]{begdef}{enddef} + \newenvironment{nam}[args][default]{begdef}{enddef} + \renewenvironment{nam}[args]{begdef}{enddef} + + These commands define or redefine an environment. + +`nam' + The name of the environment. For `\newenvironment' there must be + no currently defined environment by that name, and the command + `\nam' must be undefined. For `\renewenvironment' the environment + must already be defined. + +`args' + An integer from 1 to 9 denoting the number of arguments of the + newly-defined environment. The default is no arguments. + +`default' + If this is specified, the first argument is optional, and `default' + gives the default value for that argument. + +`begdef' + The text substituted for every occurrence of `\begin{nam}'; a + parameter of the form `#n' in `cmd' is replaced by the text of the + nth argument when this substitution takes place. + +`enddef' + The text substituted for every occurrence of `\end{nam}'. It may + not contain any argument parameters. + + + +File: latex.info, Node: \newtheorem, Next: \newfont, Prev: \newenvironment, Up: Definitions + +2.3.3 \newtheorem +----------------- + + \newtheorem{env_name}{caption}[within] + \newtheorem{env_name}[numbered_like]{caption} + + This command defines a theorem-like environment. + +`env_name' + The name of the environment to be defined. A string of letters. + It must not be the name of an existing environment or counter. + +`caption' + The text printed at the beginning of the environment, right before + the number. This may simply say "Theorem", for example. + +`within' + The name of an already defined counter, usually of a sectional + unit. Provides a means of resetting the new theorem counter + *within* the sectional unit. + +`numbered_like' + The name of an already defined theorem-like environment. + + + The `\newtheorem' command may have at most one optional argument. + + +File: latex.info, Node: \newfont, Prev: \newtheorem, Up: Definitions + +2.3.4 \newfont +-------------- + +`\newfont{cmd}{font_name}' + + Defines the command name `cmd', which must not be currently defined, +to be a declaration that selects the font named `font_name' to be the +current font. + + +File: latex.info, Node: Document Classes, Next: Environments, Prev: Definitions, Up: Commands + +2.4 Document Classes +==================== + +Valid LaTeX document classes include: + + * article + + * report + + * letter + + * book + + * slides + + Other document classes are often available. *Note Overview::, for +details. They are selected with the following command: + + `\documentclass [options] {class}' + + All the standard classes (except slides) accept the following options +for selecting the typeface size (10 pt is default): + + 10pt, 11pt, 12pt + + All classes accept these options for selecting the paper size +(default is letter): + + a4paper, a5paper, b5paper, letterpaper, legalpaper, executivepaper + + Miscellaneous options: + + * landscape -- selects landscape format. Default is portrait. + + * titlepage, notitlepage -- selects if there should be a separate + title page. + + * leqno -- equation number on left side of equations. Default is + right side. + + * fleqn -- displayed formulas flush left. Default is centred. + + * openbib -- use "open" bibliography format. + + * draft, final -- mark/do not mark overfull boxes with a rule. + Default is final. + + These options are not available with the slides class: + + * oneside, twoside -- selects one- or twosided layout. Default is + oneside, except for the book class. + + * openright, openany -- determines if a chapter should start on a + right-hand page. Default is openright for book. + + * onecolumn, twocolumn -- one or two columns. Defaults to one column. + + The slides class offers the option `clock' for printing the time at +the bottom of each note. + + If you specify more than one option, they must be separated by a +comma. + + Additional packages are loaded by a + + `\usepackage[options]{pkg}' + + command. If you specify more than one package, they must be +separated by a comma. + + Any options given in the `\documentclass' command that are unknown +by the selected document class are passed on to the packages loaded with +`\usepackage'. + + +File: latex.info, Node: Layout, Next: Lengths, Prev: Footnotes, Up: Commands + +2.5 Layout +========== + +Miscellaneous commands for controlling the general layout of the page. + +* Menu: + +* \flushbottom:: Make all text pages the same height. +* \onecolumn:: Use one-column layout. +* \raggedbottom:: Allow text pages of differing height. +* \twocolumn:: Use two-column layout. + + +File: latex.info, Node: \flushbottom, Next: \onecolumn, Up: Layout + +2.5.1 \flushbottom +------------------ + +The `\flushbottom' declaration makes all text pages the same height, +adding extra vertical space when necessary to fill out the page. + + This is the standard if twocolumn mode is selected. + + +File: latex.info, Node: \onecolumn, Next: \raggedbottom, Prev: \flushbottom, Up: Layout + +2.5.2 \onecolumn +---------------- + +The `\onecolumn' declaration starts a new page and produces +single-column output. + + +File: latex.info, Node: \raggedbottom, Next: \twocolumn, Prev: \onecolumn, Up: Layout + +2.5.3 \raggedbottom +------------------- + +The `\raggedbottom' declaration makes all pages the height of the text +on that page. No extra vertical space is added. + + +File: latex.info, Node: \twocolumn, Prev: \raggedbottom, Up: Layout + +2.5.4 \twocolumn +---------------- + +`\twocolumn[text]' + + The `\twocolumn' declaration starts a new page and produces +two-column output. If the optional `text' argument is present, it is +typeset in one-column mode. + + +File: latex.info, Node: Environments, Next: Footnotes, Prev: Document Classes, Up: Commands + +2.6 Environments +================ + +LaTeX provides a number of different paragraph-making environments. +Each environment begins and ends in the same manner. + + \begin{environment-name} + . + . + . + \end{environment-name} + +* Menu: + +* array:: Math arrays. +* center:: Centred lines. +* description:: Labelled lists. +* enumerate:: Numbered lists. +* eqnarray:: Sequences of aligned equations. +* equation:: Displayed equation. +* figure:: Floating figures. +* flushleft:: Flushed left lines. +* flushright:: Flushed right lines. +* itemize:: Bulleted lists. +* letter:: Letters. +* list:: Generic list environment. +* minipage:: Miniature page. +* picture:: Picture with text, arrows, lines and circles. +* quotation:: Indented environment with paragraph indentation. +* quote:: Indented environment with no paragraph indentation. +* tabbing:: Align text arbitrarily. +* table:: Floating tables. +* tabular:: Align text in columns. +* thebibliography:: Bibliography or reference list. +* theorem:: Theorems, lemmas, etc. +* titlepage:: For hand crafted title pages. +* verbatim:: Simulating typed input. +* verse:: For poetry and other things. + + +File: latex.info, Node: array, Next: center, Prev: Environments, Up: Environments + +2.6.1 array +----------- + + \begin{array}{col1col2...coln} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end{array} + + Math arrays are produced with the array environment. It has a single +mandatory argument describing the number of columns and the alignment +within them. Each column, `coln', is specified by a single letter that +tells how items in that row should be formatted. + + * `c' -- for centred + + * `l' -- for flush left + + * `r' -- for flush right + + Column entries must be separated by an `&'. Column entries may +include other LaTeX commands. Each row of the array must be terminated +with the string `\\'. + + Note that the `array' environment can only be used in math mode, so +normally it is used inside an `equation' environment. + + +File: latex.info, Node: center, Next: description, Prev: array, Up: Environments + +2.6.2 center +------------ + + \begin{center} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end{center} + + The `center' environment allows you to create a paragraph consisting +of lines that are centred within the left and right margins on the +current page. Each line must be terminated with the string `\\'. + +* Menu: + +* \centering:: The declaration form of the `center' environment. + + +File: latex.info, Node: \centering, Up: center + +2.6.2.1 \centering +.................. + +This declaration corresponds to the `center' environment. This +declaration can be used inside an environment such as `quote' or in a +`parbox'. The text of a figure or table can be centred on the page by +putting a `\centering' command at the beginning of the figure or table +environment. + + Unlike the `center' environment, the `\centering' command does not +start a new paragraph; it simply changes how LaTeX formats paragraph +units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or `\end' command (of an +environment like quote) that ends the paragraph unit. + + +File: latex.info, Node: description, Next: enumerate, Prev: center, Up: Environments + +2.6.3 description +----------------- + + \begin{description} + \item [label] First item + \item [label] Second item + . + . + . + \end{description} + + The `description' environment is used to make labelled lists. The +`label' is bold face and flushed right. + + +File: latex.info, Node: enumerate, Next: eqnarray, Prev: description, Up: Environments + +2.6.4 enumerate +--------------- + + \begin{enumerate} + \item First item + \item Second item + . + . + . + \end{enumerate} + + The `enumerate' environment produces a numbered list. Enumerations +can be nested within one another, up to four levels deep. They can also +be nested within other paragraph-making environments. + + Each item of an enumerated list begins with an `\item' command. +There must be at least one `\item' command within the environment. + + The `enumerate' environment uses the `enumi' through `enumiv' +counters (*note Counters::). The type of numbering can be changed by +redefining `\theenumi' etc. + + +File: latex.info, Node: eqnarray, Next: equation, Prev: enumerate, Up: Environments + +2.6.5 eqnarray +-------------- + + \begin{eqnarray} + math formula 1 \\ + math formula 2 \\ + . + . + . + \end{eqnarray} + + The `eqnarray' environment is used to display a sequence of +equations or inequalities. It is very much like a three-column `array' +environment, with consecutive rows separated by `\\' and consecutive +items within a row separated by an `&'. + + An equation number is placed on every line unless that line has a +`\nonumber' command. + + The command `\lefteqn' is used for splitting long formulas across +lines. It typesets its argument in display style flush left in a box of +zero width. + + +File: latex.info, Node: equation, Next: figure, Prev: eqnarray, Up: Environments + +2.6.6 equation +-------------- + + \begin{equation} + math formula + \end{equation} + + The `equation' environment centres your equation on the page and +places the equation number in the right margin. + + +File: latex.info, Node: figure, Next: flushleft, Prev: equation, Up: Environments + +2.6.7 figure +------------ + + \begin{figure}[placement] + + body of the figure + + \caption{figure title} + \end{figure} + + Figures are objects that are not part of the normal text, and are +usually "floated" to a convenient place, like the top of a page. +Figures will not be split between two pages. + + The optional argument `[placement]' determines where LaTeX will try +to place your figure. There are four places where LaTeX can possibly +put a float: + + 1. `h' (Here) - at the position in the text where the figure + environment appears. + + 2. `t' (Top) - at the top of a text page. + + 3. `b' (Bottom) - at the bottom of a text page. + + 4. `p' (Page of floats) - on a separate float page, which is a page + containing no text, only floats. + + The standard report and article classes use the default placement +`tbp'. + + The body of the figure is made up of whatever text, LaTeX commands, +etc. you wish. The `\caption' command allows you to title your figure. + + +File: latex.info, Node: flushleft, Next: flushright, Prev: figure, Up: Environments + +2.6.8 flushleft +--------------- + + \begin{flushleft} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end{flushleft} + + The `flushleft' environment allows you to create a paragraph +consisting of lines that are flushed left, to the left-hand margin. +Each line must be terminated with the string `\\'. + +* Menu: + +* \raggedright:: The declaration form of the `flushleft' environment. + + +File: latex.info, Node: \raggedright, Up: flushleft + +2.6.8.1 \raggedright +.................... + +This declaration corresponds to the `flushleft' environment. This +declaration can be used inside an environment such as `quote' or in a +`parbox'. + + Unlike the `flushleft' environment, the `\raggedright' command does +not start a new paragraph; it simply changes how LaTeX formats +paragraph units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or `\end' command (of an +environment like quote) that ends the paragraph unit. + + +File: latex.info, Node: flushright, Next: itemize, Prev: flushleft, Up: Environments + +2.6.9 flushright +---------------- + + \begin{flushright} + Text on line 1 \\ + Text on line 2 \\ + . + . + . + \end{flushright} + + The `flushright' environment allows you to create a paragraph +consisting of lines that are flushed right, to the right-hand margin. +Each line must be terminated with the string `\\'. + +* Menu: + +* \raggedleft:: The declaration form of the `flushright' environment. + + +File: latex.info, Node: \raggedleft, Up: flushright + +2.6.9.1 \raggedleft +................... + +This declaration corresponds to the `flushright' environment. This +declaration can be used inside an environment such as `quote' or in a +`parbox'. + + Unlike the `flushright' environment, the `\raggedleft' command does +not start a new paragraph; it simply changes how LaTeX formats +paragraph units. To affect a paragraph unit's format, the scope of the +declaration must contain the blank line or `\end' command (of an +environment like quote) that ends the paragraph unit. + + +File: latex.info, Node: itemize, Next: letter, Prev: flushright, Up: Environments + +2.6.10 itemize +-------------- + + \begin{itemize} + \item First item + \item Second item + . + . + . + \end{itemize} + + The `itemize' environment produces a "bulleted" list. Itemizations +can be nested within one another, up to four levels deep. They can also +be nested within other paragraph-making environments. + + Each item of an `itemized' list begins with an `\item' command. +There must be at least one `\item' command within the environment. + + The `itemize' environment uses the `itemi' through `itemiv' counters +(*note Counters::). The type of numbering can be changed by redefining +`\theitemi' etc. + + +File: latex.info, Node: letter, Next: list, Prev: itemize, Up: Environments + +2.6.11 letter +------------- + +This environment is used for creating letters. *Note Letters::. + + +File: latex.info, Node: list, Next: minipage, Prev: letter, Up: Environments + +2.6.12 list +----------- + +The `list' environment is a generic environment which is used for +defining many of the more specific environments. It is seldom used in +documents, but often in macros. + + \begin{list}{label}{spacing} + \item First item + \item Second item + . + . + . + \end{list} + + The `{label}' argument specifies how items should be labelled. This +argument is a piece of text that is inserted in a box to form the +label. This argument can and usually does contain other LaTeX commands. + + The `{spacing}' argument contains commands to change the spacing +parameters for the list. This argument will most often be null, i.e., +`{}'. This will select all default spacing which should suffice for +most cases. + + +File: latex.info, Node: minipage, Next: picture, Prev: list, Up: Environments + +2.6.13 minipage +--------------- + + \begin{minipage}[position]{width} + text + \end{minipage} + + The `minipage' environment is similar to a `\parbox' command. It +takes the same optional `position' argument and mandatory `width' +argument. You may use other paragraph-making environments inside a +minipage. + + Footnotes in a `minipage' environment are handled in a way that is +particularly useful for putting footnotes in figures or tables. A +`\footnote' or `\footnotetext' command puts the footnote at the bottom +of the minipage instead of at the bottom of the page, and it uses the +`mpfootnote' counter instead of the ordinary `footnote' counter *Note +Counters::. + + NOTE: Don't put one minipage inside another if you are using +footnotes; they may wind up at the bottom of the wrong minipage. + + +File: latex.info, Node: picture, Next: quotation, Prev: minipage, Up: Environments + +2.6.14 picture +-------------- + + \begin{picture}(width,height)(x offset,y offset) + . + . + picture commands + . + . + \end{picture} + + The `picture' environment allows you to create just about any kind +of picture you want containing text, lines, arrows and circles. You +tell LaTeX where to put things in the picture by specifying their +coordinates. A coordinate is a number that may have a decimal point and +a minus sign -- a number like `5', `2.3' or `-3.1416'. A coordinate +specifies a length in multiples of the unit length `\unitlength', so if +`\unitlength' has been set to `1cm', then the coordinate 2.54 specifies +a length of 2.54 centimetres. You can change the value of +`\unitlength' anywhere you want, using the `\setlength' command, but +strange things will happen if you try changing it inside the picture +environment. + + A position is a pair of coordinates, such as `(2.4,-5)', specifying +the point with x-coordinate `2.4' and y-coordinate `-5'. Coordinates +are specified in the usual way with respect to an origin, which is +normally at the lower-left corner of the picture. Note that when a +position appears as an argument, it is not enclosed in braces; the +parentheses serve to delimit the argument. + + The `picture' environment has one mandatory argument, which is a +`position'. It specifies the size of the picture. The environment +produces a rectangular box with width and height determined by this +argument's x- and y-coordinates. + + The `picture' environment also has an optional `position' argument, +following the `size' argument, that can change the origin. (Unlike +ordinary optional arguments, this argument is not contained in square +brackets.) The optional argument gives the coordinates of the point at +the lower-left corner of the picture (thereby determining the origin). +For example, if `\unitlength' has been set to `1mm', the command + \begin{picture}(100,200)(10,20) + produces a picture of width 100 millimetres and height 200 +millimetres, whose lower-left corner is the point (10,20) and whose +upper-right corner is therefore the point (110,220). When you first +draw a picture, you will omit the optional argument, leaving the origin +at the lower-left corner. If you then want to modify your picture by +shifting everything, you just add the appropriate optional argument. + + The environment's mandatory argument determines the nominal size of +the picture. This need bear no relation to how large the picture +really is; LaTeX will happily allow you to put things outside the +picture, or even off the page. The picture's nominal size is used by +LaTeX in determining how much room to leave for it. + + Everything that appears in a picture is drawn by the `\put' command. +The command + \put (11.3,-.3){...} + puts the object specified by `...' in the picture, with its +reference point at coordinates (11.3,-.3). The reference points for +various objects will be described below. + + The `\put' command creates an "LR box". You can put anything in the +text argument of the `\put' command that you'd put into the argument of +an `\mbox' and related commands. When you do this, the reference point +will be the lower left corner of the box. + + Picture commands: + +* Menu: + +* \circle:: Draw a circle. +* \dashbox:: Draw a dashed box. +* \frame:: Draw a frame around an object. +* \framebox (picture):: Draw a box with a frame around it. +* \line:: Draw a straight line. +* \linethickness:: Set the line thickness. +* \makebox (picture):: Draw a box of the specified size. +* \multiput:: Draw multiple instances of an object. +* \oval:: Draw an ellipse. +* \put:: Place an object at a specified place. +* \shortstack:: Make a pile of objects. +* \vector:: Draw a line with an arrow. + + +File: latex.info, Node: \circle, Next: \dashbox, Up: picture + +2.6.14.1 \circle +................ + +`\circle[*]{diameter}' + + The `\circle' command produces a circle with a diameter as close to +the specified one as possible. If the `*'-form of the command is used, +LaTeX draws a solid circle. + + Note that only circles up to 40 pt can be drawn. + + +File: latex.info, Node: \dashbox, Next: \frame, Prev: \circle, Up: picture + +2.6.14.2 \dashbox +................. + +Draws a box with a dashed line. + + `\dashbox{dash_length}(width,height){...}' + + The `\dashbox' has an extra argument which specifies the width of +each dash. A dashed box looks best when the `width' and `height' are +multiples of the `dash_length'. + + +File: latex.info, Node: \frame, Next: \framebox (picture), Prev: \dashbox, Up: picture + +2.6.14.3 \frame +............... + +`\frame{...}' + + The `\frame' command puts a rectangular frame around the object +specified in the argument. The reference point is the bottom left +corner of the frame. No extra space is put between the frame and the +object. + + +File: latex.info, Node: \framebox (picture), Next: \line, Prev: \frame, Up: picture + +2.6.14.4 \framebox +.................. + +`\framebox(width,height)[position]{...}' + + The `\framebox' command is exactly the same as the `\makebox' +command, except that it puts a frame around the outside of the box that +it creates. + + The `framebox' command produces a rule of thickness `\fboxrule', and +leaves a space `\fboxsep' between the rule and the contents of the box. + + +File: latex.info, Node: \line, Next: \linethickness, Prev: \framebox (picture), Up: picture + +2.6.14.5 \line +.............. + +`\line(x slope,y slope){length}' + + The `\line' command draws a line of the specified `length' and +`slope'. + + Note that LaTeX can only draw lines with slope = x/y, where x and y +have integer values from -6 through 6. + + +File: latex.info, Node: \linethickness, Next: \makebox (picture), Prev: \line, Up: picture + +2.6.14.6 \linethickness +....................... + +`\linethickness{dimension}' + + Declares the thickness of horizontal and vertical lines in a picture +environment to be `dimension', which must be a positive length. It does +not affect the thickness of slanted lines and circles, or the quarter +circles drawn by `\oval' to form the corners of an oval. + + +File: latex.info, Node: \makebox (picture), Next: \multiput, Prev: \linethickness, Up: picture + +2.6.14.7 \makebox +................. + +`\makebox(width,height)[position]{...}' + + The `\makebox' command for the picture environment is similar to the +normal `\makebox' command except that you must specify a `width' and +`height' in multiples of `\unitlength'. + + The optional argument, `[position]', specifies the quadrant that +your text appears in. You may select up to two of the following: + + * `t' - Moves the item to the top of the rectangle + + * `b' - Moves the item to the bottom + + * `l' - Moves the item to the left + + * `r' - Moves the item to the right + + *Note \makebox::. + + +File: latex.info, Node: \multiput, Next: \oval, Prev: \makebox (picture), Up: picture + +2.6.14.8 \multiput +.................. + +`\multiput(x coord,y coord)(delta x,delta y){number of copies}{object}' + + The `\multiput' command can be used when you are putting the same +object in a regular pattern across a picture. + + +File: latex.info, Node: \oval, Next: \put, Prev: \multiput, Up: picture + +2.6.14.9 \oval +.............. + +`\oval(width,height)[portion]' + + The `\oval' command produces a rectangle with rounded corners. The +optional argument, `[portion]', allows you to select part of the oval. + + * `t' - Selects the top portion + + * `b' - Selects the bottom portion + + * `r' - Selects the right portion + + * `l' - Selects the left portion + + Note that the "corners" of the oval are made with quarter circles +with a maximum radius of 20 pt, so large "ovals" will look more like +boxes with rounded corners. + + +File: latex.info, Node: \put, Next: \shortstack, Prev: \oval, Up: picture + +2.6.14.10 \put +.............. + +`\put(x coord,y coord){ ... }' + + The `\put' command places the item specified by the mandatory +argument at the given coordinates. + + +File: latex.info, Node: \shortstack, Next: \vector, Prev: \put, Up: picture + +2.6.14.11 \shortstack +..................... + +`\shortstack[position]{... \\ ... \\ ...}' + + The `\shortstack' command produces a stack of objects. The valid +positions are: + + * `r' - Moves the objects to the right of the stack + + * `l' - Moves the objects to the left of the stack + + * `c' - Moves the objects to the centre of the stack (default) + + +File: latex.info, Node: \vector, Prev: \shortstack, Up: picture + +2.6.14.12 \vector +................. + +`\vector(x slope,y slope){length}' + + The `\vector' command draws a line with an arrow of the specified +length and slope. The `x' and `y' values must lie between -4 and +4, +inclusive. + + +File: latex.info, Node: quotation, Next: quote, Prev: picture, Up: Environments + +2.6.15 quotation +---------------- + + \begin{quotation} + text + \end{quotation} + + The margins of the `quotation' environment are indented on the left +and the right. The text is justified at both margins and there is +paragraph indentation. Leaving a blank line between text produces a new +paragraph. + + +File: latex.info, Node: quote, Next: tabbing, Prev: quotation, Up: Environments + +2.6.16 quote +------------ + + \begin{quote} + text + \end{quote} + + The margins of the `quote' environment are indented on the left and +the right. The text is justified at both margins. Leaving a blank line +between text produces a new paragraph. + + +File: latex.info, Node: tabbing, Next: table, Prev: quote, Up: Environments + +2.6.17 tabbing +-------------- + + \begin{tabbing} + text \= more text \= still more text \= last text \\ + second row \> \> more \\ + . + . + . + \end{tabbing} + + The `tabbing' environment provides a way to align text in columns. +It works by setting tab stops and tabbing to them much the way you do +with an ordinary typewriter. + + It is best suited for cases where the width of each column is +constant and known in advance. + + This environment can be broken across pages, unlike the `tabular' +environment. + + The following commands can be used inside a `tabbing' enviroment: + +`\=' + Sets a tab stop at the current position. + +`\>' + Advances to the next tab stop. + +`\<' + This command allows you to put something to the left of the local + margin without changing the margin. Can only be used at the start + of the line. + +`\+' + Moves the left margin of the next and all the following commands + one tab stop to the right. + +`\-' + Moves the left margin of the next and all the following commands + one tab stop to the left. + +`\'' + Moves everything that you have typed so far in the current column, + i.e. everything from the most recent `\>', `\<', `\'', `\\', or + `\kill' command, to the right of the previous column, flush + against the current column's tab stop. + +`\`' + Allows you to put text flush right against any tab stop, including + tab stop 0. However, it can't move text to the right of the last + column because there's no tab stop there. The `\`' command moves + all the text that follows it, up to the `\\' or `\end{tabbing}' + command that ends the line, to the right margin of the tabbing + environment. There must be no `\>' or `\'' command between the + `\`' and the command that ends the line. + +`\kill' + Sets tab stops without producing text. Works just like `\\' + except that it throws away the current line instead of producing + output for it. The effect of any `\=', `\+' or `\-' commands in + that line remain in effect. + +`\pushtabs' + Saves all current tab stop positions. Useful for temporarily + changing tab stop positions in the middle of a `tabbing' + environment. + +`\poptabs' + Restores the tab stop positions saved by the last `\pushtabs'. + +`\a' + In a `tabbing' environment, the commands `\=', `\'' and `\`' do + not produce accents as normal. Instead, the commands `\a=', `\a'' + and `\a`' are used. + + This example typesets a Pascal function in a traditional format: + + \begin{tabbing} + function \= fact(n : integer) : integer;\\ + \> begin \= \+ \\ + \> if \= n $>$ 1 then \+ \\ + fact := n * fact(n-1) \- \\ + else \+ \\ + fact := 1; \-\- \\ + end;\\ + \end{tabbing} + + +File: latex.info, Node: table, Next: tabular, Prev: tabbing, Up: Environments + +2.6.18 table +------------ + + \begin{table}[placement] + + body of the table + + \caption{table title} + \end{table} + + Tables are objects that are not part of the normal text, and +are usually "floated" to a convenient place, like the top of a +page. Tables will not be split between two pages. + + The optional argument `[placement]' determines where LaTeX will try +to place your table. There are four places where LaTeX can possibly put +a float: + + * `h' : Here - at the position in the text where the table + environment appears. + + * `t' : Top - at the top of a text page. + + * `b' : Bottom - at the bottom of a text page. + + * `p' : Page of floats - on a separate float page, which is a page + containing no text, only floats. + + The standard `report' and `article' classes use the default +placement `[tbp]'. + + The body of the table is made up of whatever text, LaTeX commands, +etc., you wish. The `\caption' command allows you to title your table. + + +File: latex.info, Node: tabular, Next: thebibliography, Prev: table, Up: Environments + +2.6.19 tabular +-------------- + + \begin{tabular}[pos]{cols} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end{tabular} + + or + + \begin{tabular*}{width}[pos]{cols} + column 1 entry & column 2 entry ... & column n entry \\ + . + . + . + \end{tabular*} + + These environments produce a box consisting of a sequence of rows of +items, aligned vertically in columns. The mandatory and optional +arguments consist of: + +`width' + Specifies the width of the `tabular*' environment. There must be + rubber space between columns that can stretch to fill out the + specified width. + +`pos' + Specifies the vertical position; default is alignment on the + centre of the environment. + + * `t' - align on top row + + * `b' - align on bottom row + +`cols' + Specifies the column formatting. It consists of a sequence of the + following specifiers, corresponding to the sequence of columns and + intercolumn material. + + * `l' - A column of left-aligned items. + + * `r' - A column of right-aligned items. + + * `c' - A column of centred items. + + * `|' - A vertical line the full height and depth of the + environment. + + * `@{text}' - This inserts `text' in every row. An @-expression + suppresses the intercolumn space normally inserted between + columns; any desired space between the inserted text and the + adjacent items must be included in text. An + `\extracolsep{wd}' command in an @-expression causes an extra + space of width `wd' to appear to the left of all subsequent + columns, until countermanded by another `\extracolsep' + command. Unlike ordinary intercolumn space, this extra space + is not suppressed by an @-expression. An `\extracolsep' + command can be used only in an @-expression in the `cols' + argument. + + * `p{wd}' - Produces a column with each item typeset in a + parbox of width `wd', as if it were the argument of a + `\parbox[t]{wd}' command. However, a `\\' may not appear in + the item, except in the following situations: + 1. inside an environment like `minipage', `array', or + `tabular'. + + 2. inside an explicit `\parbox'. + + 3. in the scope of a `\centering', `\raggedright', or + `\raggedleft' declaration. The latter declarations must + appear inside braces or an environment when used in a + `p'-column element. + + * `*{num}{cols}' - Equivalent to `num' copies of `cols', where + `num' is any positive integer and `cols' is any list of + column-specifiers, which may contain another `*-expression'. + + + + These commands can be used inside a `tabular' environment: + +* Menu: + +* \cline:: Draw a horizontal line spanning some columns. +* \hline:: Draw a horizontal line spanning all columns. +* \multicolumn:: Make an item spanning several columns. +* \vline:: Draw a vertical line. + + +File: latex.info, Node: \cline, Next: \hline, Up: tabular + +2.6.19.1 \cline +............... + +`\cline{i-j}' + + The `\cline' command draws horizontal lines across the columns +specified, beginning in column `i' and ending in column `j', which are +identified in the mandatory argument. + + +File: latex.info, Node: \hline, Next: \multicolumn, Prev: \cline, Up: tabular + +2.6.19.2 \hline +............... + +The `\hline' command will draw a horizontal line the width of the +table. It's most commonly used to draw a line at the top, bottom, and +between the rows of the table. + + +File: latex.info, Node: \multicolumn, Next: \vline, Prev: \hline, Up: tabular + +2.6.19.3 \multicolumn +..................... + +`\multicolumn{cols}{pos}{text}' + + The `\multicolumn' is used to make an entry that spans several +columns. The first mandatory argument, `cols', specifies the number of +columns to span. The second mandatory argument, `pos', specifies the +formatting of the entry; `c' for centred, `l' for flushleft, `r' for +flushright. The third mandatory argument, `text', specifies what text +is to make up the entry. + + +File: latex.info, Node: \vline, Prev: \multicolumn, Up: tabular + +2.6.19.4 \vline +............... + +The `\vline' command will draw a vertical line extending the full +height and depth of its row. An `\hfill' command can be used to move +the line to the edge of the column. It can also be used in an +@-expression. + + +File: latex.info, Node: thebibliography, Next: theorem, Prev: tabular, Up: Environments + +2.6.20 thebibliography +---------------------- + + \begin{thebibliography}{widest-label} + \bibitem[label]{cite_key} + . + . + . + \end{thebibliography} + + The `thebibliography' environment produces a bibliography or +reference list. In the `article' class, this reference list is +labelled "References"; in the `report' class, it is labelled +"Bibliography". + + * `widest-label': Text that, when printed, is approximately as wide + as the widest item label produces by the `\bibitem' commands. + +* Menu: + +* \bibitem:: Specify a bibliography item. +* \cite:: Refer to a bibliography item. +* \nocite:: Include an item in the bibliography. +* Using BibTeX:: Automatic generation of bibliographies. + + +File: latex.info, Node: \bibitem, Next: \cite, Up: thebibliography + +2.6.20.1 \bibitem +................. + +`\bibitem[label]{cite_key}' + + The `\bibitem' command generates an entry labelled by `label'. If +the `label' argument is missing, a number is generated as the `label', +using the `enumi' counter. The `cite_key' is any sequence of letters, +numbers, and punctuation symbols not containing a comma. This command +writes an entry on the `.aux' file containing `cite_key' and the item's +`label'. When this `.aux' file is read by the `\begin{document}' +command, the item's `label' is associated with `cite_key', causing the +reference to `cite_key' by a `\cite' command to produce the associated +`label'. + + +File: latex.info, Node: \cite, Next: \nocite, Prev: \bibitem, Up: thebibliography + +2.6.20.2 \cite +.............. + +`\cite[text]{key_list}' + + The `key_list' argument is a list of citation keys. This command +generates an in-text citation to the references associated with the keys +in `key_list' by entries on the `.aux' file read by the +`\begin{document}' command. + + The optional `text' argument will appear after the citation, i.e. +`\cite[p. 2]{knuth}' might produce `[Knuth, p. 2]'. + + +File: latex.info, Node: \nocite, Next: Using BibTeX, Prev: \cite, Up: thebibliography + +2.6.20.3 \nocite +................ + +`\nocite{key_list}' + + The `\nocite' command produces no text, but writes `key_list', which +is a list of one or more citation keys, on the `.aux' file. + + +File: latex.info, Node: Using BibTeX, Prev: \nocite, Up: thebibliography + +2.6.20.4 Using BibTeX +..................... + +If you use the BibTeX program by Oren Patashnik (highly recommended if +you need a bibliography of more than a couple of titles) to maintain +your bibliography, you don't use the `thebibliography' environment. +Instead, you include the lines + + \bibliographystyle{style} + \bibliography{bibfile} + + where `style' refers to a file `style.bst', which defines how your +citations will look. The standard styles distributed with BibTeX are: + +`alpha' + Sorted alphabetically. Labels are formed from name of author and + year of publication. + +`plain' + Sorted alphabetically. Labels are numeric. + +`unsrt' + Like `plain', but entries are in order of citation. + +`abbrv' + Like `plain', but more compact labels. + + In addition, numerous other BibTeX style files exist tailored to the +demands of various publications. + + The argument to `\bibliography' refers to the file `bibfile.bib', +which should contain your database in BibTeX format. Only the entries +referred to via `\cite' and `\nocite' will be listed in the +bibliography. + + +File: latex.info, Node: theorem, Next: titlepage, Prev: thebibliography, Up: Environments + +2.6.21 theorem +-------------- + + \begin{theorem} + theorem text + \end{theorem} + + The `theorem' environment produces "Theorem x" in boldface followed +by your theorem text. + + +File: latex.info, Node: titlepage, Next: verbatim, Prev: theorem, Up: Environments + +2.6.22 titlepage +---------------- + + \begin{titlepage} + text + \end{titlepage} + + The `titlepage' environment creates a title page, i.e. a page with +no printed page number or heading. It also causes the following page +to be numbered page one. Formatting the title page is left to you. The +`\today' command comes in handy for title pages. + + Note that you can use the `\maketitle' (*note \maketitle::) command +to produce a standard title page. + + +File: latex.info, Node: verbatim, Next: verse, Prev: titlepage, Up: Environments + +2.6.23 verbatim +--------------- + + \begin{verbatim} + text + \end{verbatim} + + The `verbatim' environment is a paragraph-making environment that +gets LaTeX to print exactly what you type in. It turns LaTeX into a +typewriter with carriage returns and blanks having the same effect that +they would on a typewriter. + +* Menu: + +* \verb:: The macro form of the `verbatim' environment. + + +File: latex.info, Node: \verb, Up: verbatim + +2.6.23.1 \verb +.............. + +`\verb char literal_text char' + + `\verb*char literal_text char' + + Typesets `literal_text' exactly as typed, including special +characters and spaces, using a typewriter (`\tt') type style. There +may be no space between `\verb' or `\verb*' and `char' (space is shown +here only for clarity). The `*-form' differs only in that spaces are +printed as a special character. + + +File: latex.info, Node: verse, Prev: verbatim, Up: Environments + +2.6.24 verse +------------ + + \begin{verse} + text + \end{verse} + + The `verse' environment is designed for poetry, though you may find +other uses for it. + + The margins are indented on the left and the right. Separate the +lines of each stanza with `\\', and use one or more blank lines to +separate the stanzas. + + +File: latex.info, Node: Footnotes, Next: Layout, Prev: Environments, Up: Commands + +2.7 Footnotes +============= + +Footnotes can be produced in one of two ways. They can be produced +with one command, the `\footnote' command. They can also be produced +with two commands, the `\footnotemark' and the `\footnotetext' +commands. See the specific command for information on why you would +use one over the other. + +* Menu: + +* \footnote:: Insert a footnote. +* \footnotemark:: Insert footnote mark only. +* \footnotetext:: Insert footnote text only. + + +File: latex.info, Node: \footnote, Next: \footnotemark, Prev: Footnotes, Up: Footnotes + +2.7.1 \footnote +--------------- + +`\footnote[number]{text}' + + The `\footnote' command places the numbered footnote `text' at the +bottom of the current page. The optional argument, `number', is used +to change the default footnote number. This command can only be used +in outer paragraph mode; i.e., you cannot use it in sectioning commands +like `\chapter', in figures, tables or in a `tabular' environment. + + +File: latex.info, Node: \footnotemark, Next: \footnotetext, Prev: \footnote, Up: Footnotes + +2.7.2 \footnotemark +------------------- + +The `\footnotemark' command puts the footnote `number' in the text. +This command can be used in inner paragraph mode. The text of the +footnote is supplied by the `\footnotetext' command. + + This command can be used to produce several consecutive footnote +markers referring to the same footnote by using + + `\footnotemark[\value{footnote}]' + + after the first `\footnote' command. + + +File: latex.info, Node: \footnotetext, Prev: \footnotemark, Up: Footnotes + +2.7.3 \footnotetext +------------------- + +`\footnotetext[number]{text}' + + The `\footnotetext' command produces the `text' to be placed at the +bottom of the page. This command can come anywhere after the +`\footnotemark' command. The `\footnotetext' command must appear in +outer paragraph mode. + + The optional argument, `number', is used to change the default +footnote number. + + +File: latex.info, Node: Lengths, Next: Letters, Prev: Layout, Up: Commands + +2.8 Lengths +=========== + +A `length' is a measure of distance. Many LaTeX commands take a length +as an argument. + +* Menu: + +* \newlength:: Define a new length. +* \setlength:: Set the value of a length. +* \addtolength:: Add a quantity to a length. +* \settodepth:: Set a length to the depth of something. +* \settoheight:: Set a length to the height of something. +* \settowidth:: Set a length to the width of something. +* Predefined lengths:: Lengths that are, like, predefined. + + +File: latex.info, Node: \newlength, Next: \setlength, Prev: Lengths, Up: Lengths + +2.8.1 \newlength +---------------- + +`\newlength{\gnat}' + + The `\newlength' command defines the mandatory argument, `\gnat', as +a `length' command with a value of `0in'. An error occurs if a `\gnat' +command already exists. + + +File: latex.info, Node: \setlength, Next: \addtolength, Prev: \newlength, Up: Lengths + +2.8.2 \setlength +---------------- + +`\setlength{\gnat}{length}' + + The `\setlength' command is used to set the value of a `length' +command. The `length' argument can be expressed in any terms of length +LaTeX understands, i.e., inches (`in'), millimetres (`mm'), points +(`pt'), etc. + + +File: latex.info, Node: \addtolength, Next: \settodepth, Prev: \setlength, Up: Lengths + +2.8.3 \addtolength +------------------ + +`\addtolength{\gnat}{length}' + + The `\addtolength' command increments a "length command" by the +amount specified in the `length' argument. It can be a negative amount. + + +File: latex.info, Node: \settodepth, Next: \settoheight, Prev: \addtolength, Up: Lengths + +2.8.4 \settodepth +----------------- + +`\settodepth{\gnat}{text}' + + The `\settodepth' command sets the value of a `length' command equal +to the depth of the `text' argument. + + +File: latex.info, Node: \settoheight, Next: \settowidth, Prev: \settodepth, Up: Lengths + +2.8.5 \settoheight +------------------ + +`\settoheight{\gnat}{text}' + + The `\settoheight' command sets the value of a `length' command +equal to the height of the `text' argument. + + +File: latex.info, Node: \settowidth, Next: Predefined lengths, Prev: \settoheight, Up: Lengths + +2.8.6 \settowidth +----------------- + +`\settowidth{\gnat}{text}' + + The `\settowidth' command sets the value of a `length' command equal +to the width of the `text' argument. + + +File: latex.info, Node: Predefined lengths, Prev: \settowidth, Up: Lengths + +2.8.7 Predefined lengths +------------------------ + +`\width' + + `\height' + + `\depth' + + `\totalheight' + + These length parameters can be used in the arguments of the +box-making commands *Note Spaces & Boxes::. They specify the natural +width etc. of the text in the box. `\totalheight' equals `\height' + +`\depth'. To make a box with the text stretched to double the natural +size, e.g., say + + `\makebox[2\width]{Get a stretcher}' + + +File: latex.info, Node: Letters, Next: Line & Page Breaking, Prev: Lengths, Up: Commands + +2.9 Letters +=========== + +You can use LaTeX to typeset letters, both personal and business. The +`letter' document class is designed to make a number of letters at +once, although you can make just one if you so desire. + + Your `.tex' source file has the same minimum commands as the other +document classes, i.e., you must have the following commands as a +minimum: + + \documentclass{letter} + \begin{document} + ... letters ... + \end{document} + + Each letter is a `letter' environment, whose argument is the name +and address of the recipient. For example, you might have: + + \begin{letter}{Mr. Joe Smith\\ 2345 Princess St. + \\ Edinburgh, EH1 1AA} + ... + \end{letter} + + The letter itself begins with the `\opening' command. The text of +the letter follows. It is typed as ordinary LaTeX input. Commands that +make no sense in a letter, like `\chapter', do not work. The letter +closes with a `\closing' command. + + After the `closing', you can have additional material. The `\cc' +command produces the usual "cc: ...". There's also a similar `\encl' +command for a list of enclosures. With both these commands, use `\\' to +separate the items. + + These commands are used with the `letter' class: + +* Menu: + +* \address:: Your return address. +* \cc:: Cc list. +* \closing:: Saying goodbye. +* \encl:: List of enclosed material. +* \location:: Your organisation's address. +* \makelabels:: Making address labels. +* \name:: Your name, for the return address. +* \opening:: Saying hello. +* \ps:: Adding a postscript. +* \signature:: Your signature. +* \startbreaks:: Allow page breaks. +* \stopbreaks:: Disallow page breaks. +* \telephone:: Your phone number. + + +File: latex.info, Node: \address, Next: \cc, Prev: Letters, Up: Letters + +2.9.1 \address +-------------- + +`\address{Return address}' + + The return address, as it should appear on the letter and the +envelope. Separate lines of the address should be separated by `\\' +commands. If you do not make an `\address' declaration, then the +letter will be formatted for copying onto your organisation's standard +letterhead. (*Note Overview::, for details on your local +implementation). If you give an `\address' declaration, then the +letter will be formatted as a personal letter. + + +File: latex.info, Node: \cc, Next: \closing, Prev: \address, Up: Letters + +2.9.2 \cc +--------- + +`\cc{Kate Schechter\\Rob McKenna}' + + Generate a list of other persons the letter was sent to. Each name is +printed on a separate line. + + +File: latex.info, Node: \closing, Next: \encl, Prev: \cc, Up: Letters + +2.9.3 \closing +-------------- + +`\closing{text}' + + The letter closes with a `\closing' command, i.e., + \closing{Best Regards,} + + +File: latex.info, Node: \encl, Next: \location, Prev: \closing, Up: Letters + +2.9.4 \encl +----------- + +`\encl{CV\\Certificates}' + + Generate a list of enclosed material. + + +File: latex.info, Node: \location, Next: \makelabels, Prev: \encl, Up: Letters + +2.9.5 \location +--------------- + +`\location{address}' + + This modifies your organisation's standard address. This only +appears if the `firstpage' pagestyle is selected. + + +File: latex.info, Node: \makelabels, Next: \name, Prev: \location, Up: Letters + +2.9.6 \makelabels +----------------- + +`\makelabels{number}' + + If you issue this command in the preamble, LaTeX will create a sheet +of address labels. This sheet will be output before the letters. + + +File: latex.info, Node: \name, Next: \opening, Prev: \makelabels, Up: Letters + +2.9.7 \name +----------- + +`\name{June Davenport}' + + Your name, used for printing on the envelope together with the return +address. + + +File: latex.info, Node: \opening, Next: \ps, Prev: \name, Up: Letters + +2.9.8 \opening +-------------- + +`\opening{text}' + + The letter begins with the `\opening' command. The mandatory +argument, `text', is whatever text you wish to start your letter, i.e., + \opening{Dear Joe,} + + +File: latex.info, Node: \ps, Next: \signature, Prev: \opening, Up: Letters + +2.9.9 \ps +--------- + +`\ps' + + Use this command before a postscript. + + +File: latex.info, Node: \signature, Next: \startbreaks, Prev: \ps, Up: Letters + +2.9.10 \signature +----------------- + +`\signature{Harvey Swick}' + + Your name, as it should appear at the end of the letter underneath +the space for your signature. Items that should go on separate lines +should be separated by `\\' commands. + + +File: latex.info, Node: \startbreaks, Next: \stopbreaks, Prev: \signature, Up: Letters + +2.9.11 \startbreaks +------------------- + +`\startbreaks' + + Used after a `\stopbreaks' command to allow page breaks again. + + +File: latex.info, Node: \stopbreaks, Next: \telephone, Prev: \startbreaks, Up: Letters + +2.9.12 \stopbreaks +------------------ + +`\stopbreaks' + + Inhibit page breaks until a `\startbreaks' command occurs. + + +File: latex.info, Node: \telephone, Prev: \stopbreaks, Up: Letters + +2.9.13 \telephone +----------------- + +`\telephone{number}' + + This is your telephone number. This only appears if the `firstpage' +pagestyle is selected. + + +File: latex.info, Node: Line & Page Breaking, Next: Making Paragraphs, Prev: Letters, Up: Commands + +2.10 Line & Page Breaking +========================= + +The first thing LaTeX does when processing ordinary text is to +translate your input file into a string of glyphs and spaces. To +produce a printed document, this string must be broken into lines, and +these lines must be broken into pages. In some environments, you do the +line breaking yourself with the `\\' command, but LaTeX usually does it +for you. + +* Menu: + +* \\:: Start a new line. +* \- (hyphenation):: Insert explicit hyphenation. +* \cleardoublepage:: Start a new right-hand page. +* \clearpage:: Start a new page. +* \enlargethispage:: Enlarge the current page a bit. +* \fussy:: Be fussy about line breaking. +* \hyphenation:: Tell LaTeX how to hyphenate a word. +* \linebreak:: Break the line. +* \newline:: Break the line prematurely. +* \newpage:: Start a new page. +* \nolinebreak:: Don't break the current line. +* \nopagebreak:: Don't make a page break here. +* \pagebreak:: Please make a page break here. +* \sloppy:: Be sloppy about line breaking. + + +File: latex.info, Node: \\, Next: \- (hyphenation), Prev: Line & Page Breaking, Up: Line & Page Breaking + +2.10.1 \\ +--------- + +`\\[*][extra-space]' + + The `\\' command tells LaTeX to start a new line. It has an +optional argument, `extra-space', that specifies how much extra +vertical space is to be inserted before the next line. This can be a +negative amount. + + The `\\*' command is the same as the ordinary `\\' command except +that it tells LaTeX not to start a new page after the line. + + +File: latex.info, Node: \- (hyphenation), Next: \cleardoublepage, Prev: \\, Up: Line & Page Breaking + +2.10.2 \- +--------- + +The `\-' command tells LaTeX that it may hyphenate the word at that +point. LaTeX is very good at hyphenating, and it will usually find all +correct hyphenation points. The `\-' command is used for the +exceptional cases. + + Note that when you insert `\-' commands in a word, the word will +only be hyphenated at those points and not at any of the hyphenation +points that LaTeX might otherwise have chosen. + + +File: latex.info, Node: \cleardoublepage, Next: \clearpage, Prev: \- (hyphenation), Up: Line & Page Breaking + +2.10.3 \cleardoublepage +----------------------- + +The `\cleardoublepage' command ends the current page and causes all +figures and tables that have so far appeared in the input to be printed. +In a two-sided printing style, it also makes the next page a right-hand +(odd-numbered) page, producing a blank page if necessary. + + +File: latex.info, Node: \clearpage, Next: \enlargethispage, Prev: \cleardoublepage, Up: Line & Page Breaking + +2.10.4 \clearpage +----------------- + +The `\clearpage' command ends the current page and causes all figures +and tables that have so far appeared in the input to be printed. + + +File: latex.info, Node: \enlargethispage, Next: \fussy, Prev: \clearpage, Up: Line & Page Breaking + +2.10.5 \enlargethispage +----------------------- + +`\enlargethispage{size}' + + `\enlargethispage*{size}' + + Enlarge the `\textheight' for the current page by the specified +amount; e.g. `\enlargethispage{\baselineskip}' will allow one +additional line. + + The starred form tries to squeeze the material together on the page +as much as possible. This is normally used together with an explicit +`\pagebreak'. + + +File: latex.info, Node: \fussy, Next: \hyphenation, Prev: \enlargethispage, Up: Line & Page Breaking + +2.10.6 \fussy +------------- + +`\fussy' + + This declaration (which is the default) makes TeX more fussy about +line breaking. This can avoids too much space between words, but may +produce overfull boxes. + + This command cancels the effect of a previous `\sloppy' command. +*Note \sloppy:: + + +File: latex.info, Node: \hyphenation, Next: \linebreak, Prev: \fussy, Up: Line & Page Breaking + +2.10.7 \hyphenation +------------------- + +`\hyphenation{words}' + + The `\hyphenation' command declares allowed hyphenation points, +where `words' is a list of words, separated by spaces, in which each +hyphenation point is indicated by a `-' character. + + +File: latex.info, Node: \linebreak, Next: \newline, Prev: \hyphenation, Up: Line & Page Breaking + +2.10.8 \linebreak +----------------- + +`\linebreak[number]' + + The `\linebreak' command tells LaTeX to break the current line at +the point of the command. With the optional argument, `number', you +can convert the `\linebreak' command from a demand to a request. The +number must be a number from 0 to 4. The higher the number, the more +insistent the request is. + + The `\linebreak' command causes LaTeX to stretch the line so it +extends to the right margin. + + +File: latex.info, Node: \newline, Next: \newpage, Prev: \linebreak, Up: Line & Page Breaking + +2.10.9 \newline +--------------- + +The `\newline' command breaks the line right where it is. It can only +be used in paragraph mode. + + +File: latex.info, Node: \newpage, Next: \nolinebreak, Prev: \newline, Up: Line & Page Breaking + +2.10.10 \newpage +---------------- + +The `\newpage' command ends the current page. + + +File: latex.info, Node: \nolinebreak, Next: \nopagebreak, Prev: \newpage, Up: Line & Page Breaking + +2.10.11 \nolinebreak +-------------------- + +`\nolinebreak[number]' + + The `\nolinebreak' command prevents LaTeX from breaking the current +line at the point of the command. With the optional argument, +`number', you can convert the `\nolinebreak' command from a demand to a +request. The number must be a number from 0 to 4. The higher the +number, the more insistent the request is. + + +File: latex.info, Node: \nopagebreak, Next: \pagebreak, Prev: \nolinebreak, Up: Line & Page Breaking + +2.10.12 \nopagebreak +-------------------- + +`\nopagebreak[number]' + + The `\nopagebreak' command prevents LaTeX from breaking the current +page at the point of the command. With the optional argument, +`number', you can convert the `\nopagebreak' command from a demand to a +request. The number must be a number from 0 to 4. The higher the +number, the more insistent the request is. + + +File: latex.info, Node: \pagebreak, Next: \sloppy, Prev: \nopagebreak, Up: Line & Page Breaking + +2.10.13 \pagebreak +------------------ + +`\pagebreak[number]' + + The `\pagebreak' command tells LaTeX to break the current page at +the point of the command. With the optional argument, `number', you +can convert the `\pagebreak' command from a demand to a request. The +number must be a number from 0 to 4. The higher the number, the more +insistent the request is. + + +File: latex.info, Node: \sloppy, Prev: \pagebreak, Up: Line & Page Breaking + +2.10.14 \sloppy +--------------- + +`\sloppy' + + This declaration makes TeX less fussy about line breaking. This can +prevent overfull boxes, but may leave too much space between words. + + Lasts until a `\fussy' command is issued. *Note \fussy::. + + +File: latex.info, Node: Making Paragraphs, Next: Margin Notes, Prev: Line & Page Breaking, Up: Commands + +2.11 Making Paragraphs +====================== + +A paragraph is ended by one or more completely blank lines -- lines not +containing even a `%'. A blank line should not appear where a new +paragraph cannot be started, such as in math mode or in the argument of +a sectioning command. + +* Menu: + +* \indent:: Indent this paragraph. +* \noindent:: Do not indent this paragraph. +* \par:: Another way of writing a blank line. + + +File: latex.info, Node: \indent, Next: \noindent, Prev: Making Paragraphs, Up: Making Paragraphs + +2.11.1 \indent +-------------- + +`\indent' + + This produces a horizontal space whose width equals the width of the +paragraph indentation. It is used to add paragraph indentation where it +would otherwise be suppressed. + + +File: latex.info, Node: \noindent, Next: \par, Prev: \indent, Up: Making Paragraphs + +2.11.2 \noindent +---------------- + +`\noindent' + + When used at the beginning of the paragraph, it suppresses the +paragraph indentation. It has no effect when used in the middle of a +paragraph. + + +File: latex.info, Node: \par, Prev: \noindent, Up: Making Paragraphs + +2.11.3 \par +----------- + +Equivalent to a blank line; often used to make command or environment +definitions easier to read. + + +File: latex.info, Node: Margin Notes, Next: Math Formulae, Prev: Making Paragraphs, Up: Commands + +2.12 Margin Notes +================= + +The command `\marginpar[left]{right}' creates a note in the margin. +The first line will be at the same height as the line in the text where +the `\marginpar' occurs. + + When you only specify the mandatory argument `right', the text will +be placed + + * in the right margin for one-sided layout + + * in the outside margin for two-sided layout + + * in the nearest margin for two-column layout. + + By issuing the command `\reversemarginpar', you can force the +marginal notes to go into the opposite (inside) margin. + + When you specify both arguments, `left' is used for the left margin, +and `right' is used for the right margin. + + The first word will normally not be hyphenated; you can enable +hyphenation by prefixing the first word with a `\hspace{0pt}' command. + + +File: latex.info, Node: Math Formulae, Next: Modes, Prev: Margin Notes, Up: Commands + +2.13 Math Formulae +================== + +There are three environments that put LaTeX in math mode: + +`math' + For Formulae that appear right in the text. + +`displaymath' + For Formulae that appear on their own line. + +`equation' + The same as the displaymath environment except that it adds an + equation number in the right margin. + + The `math' environment can be used in both paragraph and LR mode, +but the `displaymath' and `equation' environments can be used only in +paragraph mode. The `math' and `displaymath' environments are used so +often that they have the following short forms: + + \(...\) instead of \begin{math}...\end{math} + + \[...\] instead of \begin{displaymath}...\end{displaymath} + + In fact, the `math' environment is so common that it has an even +shorter form: + + $ ... $ instead of \(...\) + +* Menu: + +* Subscripts & Superscripts:: Also known as exponent or index. +* Math Symbols:: Various mathematical squiggles. +* Spacing in Math Mode:: Thick, medium, thin and negative spaces. +* Math Miscellany:: Stuff that doesn't fit anywhere else. + + +File: latex.info, Node: Subscripts & Superscripts, Next: Math Symbols, Prev: Math Formulae, Up: Math Formulae + +2.13.1 Subscripts & Superscripts +-------------------------------- + +To get an expression exp to appear as a subscript, you just type +`_{'exp`}'. To get exp to appear as a superscript, you type +`^{'exp`}'. LaTeX handles superscripted superscripts and all of that +stuff in the natural way. It even does the right thing when something +has both a subscript and a superscript. + + +File: latex.info, Node: Math Symbols, Next: Spacing in Math Mode, Prev: Subscripts & Superscripts, Up: Math Formulae + +2.13.2 Math Symbols +------------------- + +LaTeX provides almost any mathematical symbol you're likely to need. The +commands for generating them can be used only in math mode. For +example, if you include `$\pi$' in your source, you will get the symbol +"pi" in your output. + + +File: latex.info, Node: Spacing in Math Mode, Next: Math Miscellany, Prev: Math Symbols, Up: Math Formulae + +2.13.3 Spacing in Math Mode +--------------------------- + +In a `math' environment, LaTeX ignores the spaces you type and puts in +the spacing that it thinks is best. LaTeX formats mathematics the way +it's done in mathematics texts. If you want different spacing, LaTeX +provides the following four commands for use in math mode: + + 1. `\;' - a thick space + + 2. `\:' - a medium space + + 3. `\,' - a thin space + + 4. `\!' - a negative thin space + + +File: latex.info, Node: Math Miscellany, Prev: Spacing in Math Mode, Up: Math Formulae + +2.13.4 Math Miscellany +---------------------- + +`\cdots' + Produces a horizontal ellipsis where the dots are raised to the + centre of the line. + +`\ddots' + Produces a diagonal ellipsis. + +`\frac{num}{den}' + Produces the fraction `num' divided by `den'. + +`\ldots' + Produces an ellipsis. This command works in any mode, not just + math mode. + +`\overbrace{text}' + Generates a brace over text. + +`\overline{text}' + Causes the argument text to be overlined. + +`\sqrt[root]{arg}' + Produces the square root of its argument. The optional argument, + `root', determines what root to produce, i.e., the cube root of + `x+y' would be typed as `$\sqrt[3]{x+y}$'. + +`\underbrace{text}' + Generates text with a brace underneath. + +`\underline{text}' + Causes the argument text to be underlined. This command can also + be used in paragraph and LR modes. + +`\vdots' + Produces a vertical ellipsis. + + + +File: latex.info, Node: Modes, Next: Page Styles, Prev: Math Formulae, Up: Commands + +2.14 Modes +========== + +When LaTeX is processing your input text, it is always in one of three +modes: + + * Paragraph mode + + * Math mode + + * Left-to-right mode, called LR mode for short + + LaTeX changes mode only when it goes up or down a staircase to a +different level, though not all level changes produce mode changes. +Mode changes occur only when entering or leaving an environment, or when +LaTeX is processing the argument of certain text-producing commands. + + "Paragraph mode" is the most common; it's the one LaTeX is in when +processing ordinary text. In that mode, LaTeX breaks your text into +lines and breaks the lines into pages. LaTeX is in "math mode" when +it's generating a mathematical formula. In "LR mode", as in paragraph +mode, LaTeX considers the output that it produces to be a string of +words with spaces between them. However, unlike paragraph mode, LaTeX +keeps going from left to right; it never starts a new line in LR mode. +Even if you put a hundred words into an `\mbox', LaTeX would keep +typesetting them from left to right inside a single box, and then +complain because the resulting box was too wide to fit on the line. + + LaTeX is in LR mode when it starts making a box with an `\mbox' +command. You can get it to enter a different mode inside the box - for +example, you can make it enter math mode to put a formula in the box. +There are also several text-producing commands and environments for +making a box that put LaTeX in paragraph mode. The box make by one of +these commands or environments will be called a `parbox'. When LaTeX +is in paragraph mode while making a box, it is said to be in "inner +paragraph mode". Its normal paragraph mode, which it starts out in, is +called "outer paragraph mode". + + +File: latex.info, Node: Page Styles, Next: Sectioning, Prev: Modes, Up: Commands + +2.15 Page Styles +================ + +The `\documentclass' command determines the size and position of the +page's head and foot. The page style determines what goes in them. + +* Menu: + +* \maketitle:: Generate a title page. +* \pagenumbering:: Set the style used for page numbers. +* \pagestyle:: Change the headings/footings style. +* \thispagestyle:: Change the headings/footings style for this page. + + +File: latex.info, Node: \maketitle, Next: \pagenumbering, Prev: Page Styles, Up: Page Styles + +2.15.1 \maketitle +----------------- + +`\maketitle' + + The `\maketitle' command generates a title on a separate title page +- except in the `article' class, where the title normally goes at the +top of the first page. Information used to produce the title is +obtained from the following declarations: + + *Note Page Styles::, for the commands to give the information. + +* Menu: + +* \author:: Who wrote this stuff? +* \date:: The date the document was created. +* \thanks:: A special form of footnote. +* \title:: How to set the document title. + + +File: latex.info, Node: \author, Next: \date, Prev: \maketitle, Up: \maketitle + +2.15.2 \author +-------------- + +`\author{names}' + + The `\author' command declares the author(s), where `names' is a +list of authors separated by `\and' commands. Use `\\' to separate +lines within a single author's entry - for example, to give the +author's institution or address. + + +File: latex.info, Node: \date, Next: \thanks, Prev: \author, Up: \maketitle + +2.15.3 \date +------------ + +`\date{text}' + + The `\date' command declares text to be the document's date. With +no `\date' command, the current date is used. + + +File: latex.info, Node: \thanks, Next: \title, Prev: \date, Up: \maketitle + +2.15.4 \thanks +-------------- + +`\thanks{text}' + + The `\thanks' command produces a `\footnote' to the title. + + +File: latex.info, Node: \title, Prev: \thanks, Up: \maketitle + +2.15.5 \title +------------- + +`\title{text}' + + The `\title' command declares `text' to be the title. Use `\\' to +tell LaTeX where to start a new line in a long title. + + +File: latex.info, Node: \pagenumbering, Next: \pagestyle, Prev: \maketitle, Up: Page Styles + +2.15.6 \pagenumbering +--------------------- + +`\pagenumbering{num_style}' + + Specifies the style of page numbers. Possible values of `num_style' +are: + + * `arabic' - Arabic numerals + + * `roman' - Lowercase Roman numerals + + * `Roman' - Uppercase Roman numerals + + * `alph' - Lowercase letters + + * `Alph' - Uppercase letters + + +File: latex.info, Node: \pagestyle, Next: \thispagestyle, Prev: \pagenumbering, Up: Page Styles + +2.15.7 \pagestyle +----------------- + +`\pagestyle{option}' + + The `\pagestyle' command changes the style from the current page on +throughout the remainder of your document. + + The valid options are: + + * `plain' - Just a plain page number. + + * `empty' - Produces empty heads and feet - no page numbers. + + * `headings' - Puts running headings on each page. The document + style specifies what goes in the headings. + + * `myheadings' - You specify what is to go in the heading with the + `\markboth' or the `\markright' commands. + +* Menu: + +* \markboth:: Set left and right headings. +* \markright:: Set right heading only. + + +File: latex.info, Node: \markboth, Next: \markright, Prev: \pagestyle, Up: \pagestyle + +2.15.8 \markboth +---------------- + + \markboth{left head}{right head} + + The `\markboth' command is used in conjunction with the page style +`myheadings' for setting both the left and the right heading. You +should note that a "left-hand heading" is generated by the last +`\markboth' command before the end of the page, while a "right-hand +heading" is generated by the first `\markboth' or `\markright' that +comes on the page if there is one, otherwise by the last one before the +page. + + +File: latex.info, Node: \markright, Prev: \markboth, Up: \pagestyle + +2.15.9 \markright +----------------- + + \markright{right head} + + The `\markright' command is used in conjunction with the page style +`myheadings' for setting the right heading, leaving the left heading +unchanged. You should note that a "left-hand heading" is generated by +the last `\markboth' command before the end of the page, while a +"right-hand heading" is generated by the first `\markboth' or +`\markright' that comes on the page if there is one, otherwise by the +last one before the page. + + +File: latex.info, Node: \thispagestyle, Prev: \pagestyle, Up: Page Styles + +2.15.10 \thispagestyle +---------------------- + +`\thispagestyle{option}' + + The `\thispagestyle' command works in the same manner as the +`\pagestyle' command except that it changes the style for the current +page only. + + +File: latex.info, Node: Sectioning, Next: Spaces & Boxes, Prev: Page Styles, Up: Commands + +2.16 Sectioning +=============== + +Sectioning commands provide the means to structure your text into units. + + * `\part' + + * `\chapter' (report and book class only) + + * `\section' + + * `\subsection' + + * `\subsubsection' + + * `\paragraph' + + * `\subparagraph' + + All sectioning commands take the same general form, i.e., + + `\chapter[optional]{title}' + + In addition to providing the heading in the text, the mandatory +argument of the sectioning command can appear in two other places: + + 1. The table of contents + + 2. The running head at the top of the page + + You may not want the same thing to appear in these other two places +as appears in the text heading. To handle this situation, the +sectioning commands have an `optional' argument that provides the text +for these other two purposes. + + All sectioning commands have `*'-forms that print a title, but do +not include a number and do not make an entry in the table of contents. + + `\appendix' + + The `\appendix' command changes the way sectional units are +numbered. The `\appendix' command generates no text and does not +affect the numbering of parts. The normal use of this command is +something like + + \chapter{The First Chapter} + ... + \appendix + \chapter{The First Appendix} + + +File: latex.info, Node: Spaces & Boxes, Next: Special Characters, Prev: Sectioning, Up: Commands + +2.17 Spaces & Boxes +=================== + +All the predefined length parameters (*note Predefined lengths::) can be +used in the arguments of the box-making commands. + +* Menu: + +Horizontal space +* \dotfill:: Stretchable horizontal dots. +* \hfill:: Stretchable horizontal space. +* \hrulefill:: Stretchable horizontal rule. +* \hspace:: Fixed horizontal space. +Vertical space +* \addvspace:: Fixed vertical space. +* \bigskip:: Fixed vertical space. +* \medskip:: Fixed vertical space. +* \smallskip:: Fixed vertical space. +* \vfill:: Stretchable vertical space. +* \vspace:: Fixed vertical space. +Boxes +* \fbox:: Framebox. +* \framebox:: Framebox, adjustable position. +* lrbox:: An environment like \sbox. +* \makebox:: Box, adjustable position. +* \mbox:: Box. +* \newsavebox:: Declare a name for saving a box. +* \parbox:: Box with text in paragraph mode. +* \raisebox:: Raise or lower text. +* \rule:: Lines and squares. +* \savebox:: Like \makebox, but save the text for later use. +* \sbox:: Like \mbox, but save the text for later use. +* \usebox:: Print saved text. + + +File: latex.info, Node: \dotfill, Next: \hfill, Up: Spaces & Boxes + +2.17.1 \dotfill +--------------- + +The `\dotfill' command produces a "rubber length" that produces dots +instead of just spaces. + + +File: latex.info, Node: \hfill, Next: \hrulefill, Prev: \dotfill, Up: Spaces & Boxes + +2.17.2 \hfill +------------- + +The `\hfill' fill command produces a "rubber length" which can stretch +or shrink horizontally. It will be filled with spaces. + + +File: latex.info, Node: \hrulefill, Next: \hspace, Prev: \hfill, Up: Spaces & Boxes + +2.17.3 \hrulefill +----------------- + +The `\hrulefill' fill command produces a "rubber length" which can +stretch or shrink horizontally. It will be filled with a horizontal +rule. + + +File: latex.info, Node: \hspace, Next: \addvspace, Prev: \hrulefill, Up: Spaces & Boxes + +2.17.4 \hspace +-------------- + +`\hspace[*]{length}' + + The `\hspace' command adds horizontal space. The length of the +space can be expressed in any terms that LaTeX understands, i.e., +points, inches, etc. You can add negative as well as positive space +with an `\hspace' command. Adding negative space is like backspacing. + + LaTeX removes horizontal space that comes at the end of a line. If +you don't want LaTeX to remove this space, include the optional `*' +argument. Then the space is never removed. + + +File: latex.info, Node: \addvspace, Next: \bigskip, Prev: \hspace, Up: Spaces & Boxes + +2.17.5 \addvspace +----------------- + +`\addvspace{length}' + + The `\addvspace' command normally adds a vertical space of height +length. However, if vertical space has already been added to the same +point in the output by a previous `\addvspace' command, then this +command will not add more space than needed to make the natural length +of the total vertical space equal to `length'. + + +File: latex.info, Node: \bigskip, Next: \medskip, Prev: \addvspace, Up: Spaces & Boxes + +2.17.6 \bigskip +--------------- + +The `\bigskip' command is equivalent to `\vspace{bigskipamount}' where +`bigskipamount' is determined by the document class. + + +File: latex.info, Node: \medskip, Next: \smallskip, Prev: \bigskip, Up: Spaces & Boxes + +2.17.7 \medskip +--------------- + +The `\medskip' command is equivalent to `\vspace{medskipamount}' where +`medskipamount' is determined by the document class. + + +File: latex.info, Node: \smallskip, Next: \vfill, Prev: \medskip, Up: Spaces & Boxes + +2.17.8 \smallskip +----------------- + +`\smallskip' + + The `\smallskip' command is equivalent to `\vspace{smallskipamount}' +where `smallskipamount' is determined by the document class. + + +File: latex.info, Node: \vfill, Next: \vspace, Prev: \smallskip, Up: Spaces & Boxes + +2.17.9 \vfill +------------- + +The `\vfill' fill command produces a rubber length which can stretch or +shrink vertically. + + +File: latex.info, Node: \vspace, Next: \fbox, Prev: \vfill, Up: Spaces & Boxes + +2.17.10 \vspace +--------------- + +`\vspace[*]{length}' + + The `\vspace' command adds vertical space. The length of the space +can be expressed in any terms that LaTeX understands, i.e., points, +inches, etc. You can add negative as well as positive space with an +`\vspace' command. + + LaTeX removes vertical space that comes at the end of a page. If you +don't want LaTeX to remove this space, include the optional `*' +argument. Then the space is never removed. + + +File: latex.info, Node: \fbox, Next: \framebox, Prev: \vspace, Up: Spaces & Boxes + +2.17.11 \fbox +------------- + +`\fbox{text}' + + The `\fbox' command is exactly the same as the `\mbox' command, +except that it puts a frame around the outside of the box that it +creates. + + +File: latex.info, Node: \framebox, Next: lrbox, Prev: \fbox, Up: Spaces & Boxes + +2.17.12 \framebox +----------------- + +`\framebox[width][position]{text}' + + The `\framebox' command is exactly the same as the `\makebox' +command, except that it puts a frame around the outside of the box that +it creates. + + The framebox command produces a rule of thickness `\fboxrule', and +leaves a space `\fboxsep' between the rule and the contents of the box. + + +File: latex.info, Node: lrbox, Next: \makebox, Prev: \framebox, Up: Spaces & Boxes + +2.17.13 lrbox +------------- + +`\begin{lrbox}{cmd} text \end{lrbox}' + + This is the environment form of `\sbox'. + + The text inside the environment is saved in the box `cmd', which +must have been declared with `\newsavebox'. + + +File: latex.info, Node: \makebox, Next: \mbox, Prev: lrbox, Up: Spaces & Boxes + +2.17.14 \makebox +---------------- + +`\makebox[width][position]{text}' + + The `\makebox' command creates a box just wide enough to contain the +`text' specified. The width of the box is specified by the optional +`width' argument. The position of the text within the box is +determined by the optional `position' argument. + + * `c' -- centred (default) + + * `l' -- flushleft + + * `r' -- flushright + + * `s' -- stretch from left to right margin. The text must contain + stretchable space for this to work. + + *Note \makebox (picture)::. + + +File: latex.info, Node: \mbox, Next: \newsavebox, Prev: \makebox, Up: Spaces & Boxes + +2.17.15 \mbox +------------- + +`\mbox{text}' + + The `\mbox' command creates a box just wide enough to hold the text +created by its argument. + + Use this command to prevent text from being split across lines. + + +File: latex.info, Node: \newsavebox, Next: \parbox, Prev: \mbox, Up: Spaces & Boxes + +2.17.16 \newsavebox +------------------- + +`\newsavebox{cmd}' + + Declares `cmd', which must be a command name that is not already +defined, to be a bin for saving boxes. + + +File: latex.info, Node: \parbox, Next: \raisebox, Prev: \newsavebox, Up: Spaces & Boxes + +2.17.17 \parbox +--------------- + +`\parbox[position][height][inner-pos]{width}{text}' + + A `parbox' is a box whose contents are created in `paragraph' mode. +The `\parbox' has two mandatory arguments: + + * `width' - specifies the width of the parbox, and + + * `text' - the text that goes inside the parbox. + + LaTeX will position a `parbox' so its centre lines up with the +centre of the text line. The optional position argument allows you to +line up either the top or bottom line in the parbox (default is top). + + If the height argument is not given, the box will have the natural +height of the text. + + The inner-pos argument controls the placement of the text inside the +box. If it is not specified, position is used. + + * `t' -- text is placed at the top of the box. + + * `c' -- text is centred in the box. + + * `b' -- text is placed at the bottom of the box. + + * `s' -- stretch vertically. The text must contain vertically + stretchable space for this to work. + + A `\parbox' command is used for a parbox containing a small piece of +text, with nothing fancy inside. In particular, you shouldn't use any +of the paragraph-making environments inside a `\parbox' argument. For +larger pieces of text, including ones containing a paragraph-making +environment, you should use a `minipage' environment *Note minipage::. + + +File: latex.info, Node: \raisebox, Next: \rule, Prev: \parbox, Up: Spaces & Boxes + +2.17.18 \raisebox +----------------- + +`\raisebox{distance}[extend-above][extend-below]{text}' + + The `\raisebox' command is used to raise or lower text. The first +mandatory argument specifies how high the text is to be raised (or +lowered if it is a negative amount). The text itself is processed in +`LR mode'. + + Sometimes it's useful to make LaTeX think something has a different +size than it really does - or a different size than LaTeX would +normally think it has. The `\raisebox' command lets you tell LaTeX how +tall it is. + + The first optional argument, `extend-above', makes LaTeX think that +the text extends above the line by the amount specified. The second +optional argument, `extend-below', makes LaTeX think that the text +extends below the line by the amount specified. + + +File: latex.info, Node: \rule, Next: \savebox, Prev: \raisebox, Up: Spaces & Boxes + +2.17.19 \rule +------------- + +`\rule[raise-height]{width}{thickness}' + + The `\rule' command is used to produce horizontal lines. The +arguments are defined as follows: + + * `raise-height' - specifies how high to raise the rule (optional) + + * `width' - specifies the length of the rule (mandatory) + + * `thickness' - specifies the thickness of the rule (mandatory) + + +File: latex.info, Node: \savebox, Next: \sbox, Prev: \rule, Up: Spaces & Boxes + +2.17.20 \savebox +---------------- + + \savebox{cmd}[width][pos]{text} + + This command typeset `text' in a box just as for `\makebox'. +However, instead of printing the resulting box, it saves it in bin +`cmd', which must have been declared with `\newsavebox'. + + +File: latex.info, Node: \sbox, Next: \usebox, Prev: \savebox, Up: Spaces & Boxes + +2.17.21 \sbox +------------- + +`\sbox{text}' + + This commands typeset `text' in a box just as for `\mbox'. However, +instead of printing the resulting box, it saves it in bin `cmd', which +must have been declared with `\newsavebox'. + + +File: latex.info, Node: \usebox, Prev: \sbox, Up: Spaces & Boxes + +2.17.22 \usebox +--------------- + +`\usebox{cmd}' + + Prints the box most recently saved in bin `cmd' by a `\savebox' +command. + + +File: latex.info, Node: Special Characters, Next: Splitting the Input, Prev: Spaces & Boxes, Up: Commands + +2.18 Special Characters +======================= + +The following characters play a special role in LaTeX and are called +"special printing characters", or simply "special characters". + + # $ % & ~ _ ^ \ { } + + Whenever you put one of these special characters into your file, you +are doing something special. If you simply want the character to be +printed just as any other letter, include a `\' in front of the +character. For example, `\$' will produce `$' in your output. + + One exception to this rule is the `\' itself because `\\' has its +own special meaning. A `\' is produced by typing `$\backslash$' in +your file. + + Also, `\~' means `place a tilde accent over the following letter', +so you will probably want to use `\verb' instead. + + In addition, you can access any character of a font once you know its +number by using the `\symbol' command. For example, the character used +for displaying spaces in the `\verb*' command has the code decimal 32, +so it can be typed as `\symbol{32}'. + + You can also specify octal numbers with `'' or hexadecimal numbers +with `"', so the previous example could also be written as +`\symbol{'40}' or `\symbol{"20}'. + + +File: latex.info, Node: Splitting the Input, Next: Starting & Ending, Prev: Special Characters, Up: Commands + +2.19 Splitting the Input +======================== + +A large document requires a lot of input. Rather than putting the whole +input in a single large file, it's more efficient to split it into +several smaller ones. Regardless of how many separate files you use, +there is one that is the root file; it is the one whose name you type +when you run LaTeX. + +* Menu: + +* \include:: Conditionally include a file. +* \includeonly:: Determine which files are included. +* \input:: Unconditionally include a file. + + +File: latex.info, Node: \include, Next: \includeonly, Prev: Splitting the Input, Up: Splitting the Input + +2.19.1 \include +--------------- + +`\include{file}' + + The `\include' command is used in conjunction with the +`\includeonly' command for selective inclusion of files. The `file' +argument is the first name of a file, denoting `file.tex'. If `file' +is one the file names in the file list of the `\includeonly' command or +if there is no `\includeonly' command, the `\include' command is +equivalent to + + \clearpage \input{file} \clearpage + + except that if the file `file.tex' does not exist, then a warning +message rather than an error is produced. If the file is not in the +file list, the `\include' command is equivalent to `\clearpage'. + + The `\include' command may not appear in the preamble or in a file +read by another `\include' command. + + +File: latex.info, Node: \includeonly, Next: \input, Prev: \include, Up: Splitting the Input + +2.19.2 \includeonly +------------------- + +`\includeonly{'file_list`}' + + The `\includeonly' command controls which files will be read in by +an `\include' command. file_list should be a comma-separated list of +filenames. Each filename must match exactly a filename specified in a +`\include' command. This command can only appear in the preamble. + + +File: latex.info, Node: \input, Prev: \includeonly, Up: Splitting the Input + +2.19.3 \input +------------- + +`\input{file}' + + The `\input' command causes the indicated `file' to be read and +processed, exactly as if its contents had been inserted in the current +file at that point. The file name may be a complete file name with +extension or just a first name, in which case the file `file.tex' is +used. + + +File: latex.info, Node: Starting & Ending, Next: Table of Contents, Prev: Splitting the Input, Up: Commands + +2.20 Starting & Ending +====================== + +Your input file must contain the following commands as a minimum: + + \documentclass{class} + \begin{document} + ... your text goes here ... + \end{document} + + where the `class' selected is one of the valid classes for LaTeX. +*Note Document Classes::, (and *note Overview::), for details of the +various document classes available locally. + + You may include other LaTeX commands between the `\documentclass' +and the `\begin{document}' commands (i.e., in the `preamble'). + + +File: latex.info, Node: Table of Contents, Next: Terminal Input/Output, Prev: Starting & Ending, Up: Commands + +2.21 Table of Contents +====================== + +A table of contents is produced with the `\tableofcontents' command. +You put the command right where you want the table of contents to go; +LaTeX does the rest for you. It produces a heading, but it does not +automatically start a new page. If you want a new page after the table +of contents, include a `\newpage' command after the `\tableofcontents' +command. + + There are similar commands `\listoffigures' and `\listoftables' for +producing a list of figures and a list of tables, respectively. +Everything works exactly the same as for the table of contents. + + NOTE: If you want any of these items to be generated, you cannot have +the `\nofiles' command in your document. + +* Menu: + +* \addcontentsline:: Add an entry to table of contents etc. +* \addtocontents:: Add text directly to table of contents file etc. + + +File: latex.info, Node: \addcontentsline, Next: \addtocontents, Prev: Table of Contents, Up: Table of Contents + +2.21.1 \addcontentsline +----------------------- + +`\addcontentsline{file}{sec_unit}{entry}' + + The `\addcontentsline' command adds an entry to the specified list +or table where: + + * `file' is the extension of the file on which information is to be + written: `toc' (table of contents), `lof' (list of figures), or + `lot' (list of tables). + + * `sec_unit' controls the formatting of the entry. It should be one + of the following, depending upon the value of the file argument: + 1. `toc' -- the name of the sectional unit, such as part or + subsection. + + 2. `lof' -- figure + + 3. `lot' -- table + + * `entry' is the text of the entry. + + +File: latex.info, Node: \addtocontents, Prev: \addcontentsline, Up: Table of Contents + +2.21.2 \addtocontents +--------------------- + +`\addtocontents{file}{text}' + + The `\addtocontents' command adds text (or formatting commands) +directly to the file that generates the table of contents or list of +figures or tables. + + * `file' is the extension of the file on which information is to be + written: `toc' (table of contents), `lof' (list of figures), or + `lot' (list of tables). + + * `text' is the information to be written. + + +File: latex.info, Node: Terminal Input/Output, Next: Typefaces, Prev: Table of Contents, Up: Commands + +2.22 Terminal Input/Output +========================== + +* Menu: + +* \typein:: Read text from the terminal. +* \typeout:: Write text to the terminal. + + +File: latex.info, Node: \typein, Next: \typeout, Up: Terminal Input/Output + +2.22.1 \typein +-------------- + +`\typein[cmd]{msg}' + + Prints `msg' on the terminal and causes LaTeX to stop and wait for +you to type a line of input, ending with return. If the `cmd' argument +is missing, the typed input is processed as if it had been included in +the input file in place of the `\typein' command. If the `cmd' +argument is present, it must be a command name. This command name is +then defined or redefined to be the typed input. + + +File: latex.info, Node: \typeout, Prev: \typein, Up: Terminal Input/Output + +2.22.2 \typeout +--------------- + +`\typeout{msg}' + + Prints `msg' on the terminal and in the `log' file. Commands in +`msg' that are defined with `\newcommand' or `\renewcommand' are +replaced by their definitions before being printed. + + LaTeX's usual rules for treating multiple spaces as a single space +and ignoring spaces after a command name apply to `msg'. A `\space' +command in `msg' causes a single space to be printed. A `^^J' in `msg' +prints a newline. + + +File: latex.info, Node: Typefaces, Prev: Terminal Input/Output, Up: Commands + +2.23 Typefaces +============== + +The `typeface' is specified by giving the "size" and "style". A +typeface is also called a "font". + +* Menu: + +* Styles:: Select roman, italics etc. +* Sizes:: Select point size. +* Low-level font commands:: Commands for wizards. + + +File: latex.info, Node: Styles, Next: Sizes, Prev: Typefaces, Up: Typefaces + +2.23.1 \Styles +-------------- + +The following type style commands are supported by LaTeX. + + These commands are used like `\textit{italics text}'. The +corresponding command in parenthesis is the "declaration form", which +takes no arguments. The scope of the declaration form lasts until the +next type style command or the end of the current group. + + The declaration forms are cumulative; i.e., you can say +`\sffamily\bfseries' to get sans serif boldface. + + You can also use the environment form of the declaration forms; e.g. +`\begin{ttfamily}...\end{ttfamily}'. + +`\textrm (\rmfamily)' + Roman. + +`\textit (\itshape)' + +`\emph' + Emphasis (toggles between \textit and \textrm). + +`\textmd (\mdseries)' + Medium weight (default). The opposite of boldface. + +`\textbf (\bfseries)' + Boldface. + +`\textup (\upshape)' + Upright (default). The opposite of slanted. + +`\textsl (\slshape)' + Slanted. + +`\textsf (\sffamily)' + Sans serif. + +`\textsc (\scshape)' + Small caps. + +`\texttt (\ttfamily)' + Typewriter. + +`\textnormal (\normalfont)' + Main document font. + +`\mathrm' + Roman, for use in math mode. + +`\mathbf' + Boldface, for use in math mode. + +`\mathsf' + Sans serif, for use in math mode. + +`\mathtt' + Typewriter, for use in math mode. + +`\mathit' + Italics, for use in math mode, e.g. variable names with several + letters. + +`\mathnormal' + For use in math mode, e.g. inside another type style declaration. + +`\mathcal' + `Calligraphic' letters, for use in math mode. + + In addition, the command `\mathversion{bold}' can be used for +switching to bold letters and symbols in formulas. +`\mathversion{normal}' restores the default. + + +File: latex.info, Node: Sizes, Next: Low-level font commands, Prev: Styles, Up: Typefaces + +2.23.2 Sizes +------------ + +The following standard type size commands are supported by LaTeX. + + The commands as listed here are "declaration forms". The scope of the +declaration form lasts until the next type style command or the end of +the current group. + + You can also use the environment form of these commands; e.g. +`\begin{tiny}...\end{tiny}'. + +`\tiny' + +`\scriptsize' + +`\footnotesize' + +`\small' + +`\normalsize' + (default) + +`\large' + +`\Large' + +`\LARGE' + +`\huge' + +`\Huge' + + +File: latex.info, Node: Low-level font commands, Prev: Sizes, Up: Typefaces + +2.23.3 Low-level font commands +------------------------------ + +These commands are primarily intended for writers of macros and +packages. The commands listed here are only a subset of the available +ones. For full details, you should consult Chapter 7 of `The LaTeX +Companion'. + +`\fontencoding{enc}' + Select font encoding. Valid encodings include `OT1' and `T1'. + +`\fontfamily{family}' + Select font family. Valid families include: + + * `cmr' for Computer Modern Roman + + * `cmss' for Computer Modern Sans Serif + + * `cmtt' for Computer Modern Typewriter + + and numerous others. + +`\fontseries{series}' + Select font series. Valid series include: + + * `m' Medium (normal) + + * `b' Bold + + * `c' Condensed + + * `bc' Bold condensed + + * `bx' Bold extended + + and various other combinations. + +`\fontshape{shape}' + Select font shape. Valid shapes are: + + * `n' Upright (normal) + + * `it' Italic + + * `sl' Slanted (oblique) + + * `sc' Small caps + + * `ui' Upright italics + + * `ol' Outline + + The two last shapes are not available for most font families. + +`\fontsize{size}{skip}' + Set font size. The first parameter is the font size to switch to; + the second is the `\baselineskip' to use. The unit of both + parameters defaults to pt. A rule of thumb is that the + baselineskip should be 1.2 times the font size. + +`\selectfont' + The changes made by calling the four font commands described above + do not come into effect until `\selectfont' is called. + +`\usefont{enc}{family}{series}{shape}' + Equivalent to calling `\fontencoding', `\fontfamily', + `\fontseries' and `\fontshape' with the given parameters, followed + by `\selectfont'. + + +File: latex.info, Node: Parameters, Next: Concept Index, Prev: Commands, Up: Top + +3 Parameters +************ + +The input file specification indicates the file to be formatted; TeX +uses `.tex' as a default file extension. If you omit the input file +entirely, TeX accepts input from the terminal. You specify command +options by supplying a string as a parameter to the command; e.g. + + `latex ``\scrollmode\input foo.tex''' + + will process `foo.tex' without pausing after every error. + + Output files are always created in the current directory. When you +fail to specify an input file name, TeX bases the output names on the +file specification associated with the logical name TEX_OUTPUT, +typically `texput.log'. + + +File: latex.info, Node: Concept Index, Next: Command Index, Prev: Parameters, Up: Top + +Concept Index +************* + + +* Menu: + +* Accessing any character of a font: Special Characters. (line 23) +* Aligning Equations: eqnarray. (line 6) +* Appendix, creating: Sectioning. (line 41) +* Arrays, math: array. (line 6) +* article class: Document Classes. (line 6) +* Author, for titlepage: \author. (line 6) +* Bibliography, creating (automatically): Using BibTeX. (line 6) +* Bibliography, creating (manually): thebibliography. (line 6) +* BibTeX, using: Using BibTeX. (line 6) +* book class: Document Classes. (line 6) +* Boxes: Spaces & Boxes. (line 6) +* Cc list: \cc. (line 6) +* Centering text: \centering. (line 6) +* Centering text, environment for: center. (line 6) +* Characters, reserved: Special Characters. (line 6) +* Characters, special: Special Characters. (line 6) +* Classes of document: Document Classes. (line 6) +* Commands, defining new ones: \newcommand. (line 6) +* Computer programs, typesetting: verbatim. (line 6) +* Counters, a list of: Counters. (line 6) +* Counters, creating: \newcounter. (line 6) +* Counters, getting the value of: \value. (line 6) +* Counters, setting: \setcounter. (line 6) +* Creating letters: Letters. (line 6) +* Creating pictures: picture. (line 6) +* Creating tables: table. (line 6) +* Cross referencing: Cross References. (line 6) +* Cross referencing using page number: \pageref. (line 6) +* Cross referencing using section number: \ref. (line 6) +* Date, for titlepage: \date. (line 6) +* Defining a new command: \newcommand. (line 6) +* Defining new environments: \newenvironment. (line 6) +* Defining new fonts: \newfont. (line 6) +* Defining new theorems: \newtheorem. (line 6) +* Displaying quoted text: quote. (line 6) +* Displaying quoted text with paragraph indentation: quotation. + (line 6) +* Document Classes: Document Classes. (line 6) +* Enclosed material: \encl. (line 6) +* Ending & Starting: Starting & Ending. (line 6) +* Enlarge current page: \enlargethispage. (line 6) +* Environments: Environments. (line 6) +* Environments, defining: \newenvironment. (line 6) +* Equations, aligning: eqnarray. (line 6) +* Equations, environment for: equation. (line 6) +* exponent: Math Formulae. (line 32) +* Figures, footnotes in: minipage. (line 6) +* Flushing a page: \clearpage. (line 6) +* Font commands, low-level: Low-level font commands. + (line 6) +* Font Sizes: Sizes. (line 6) +* Font Styles: Styles. (line 6) +* Fonts: Typefaces. (line 6) +* Fonts, new commands for: \newfont. (line 6) +* Footnotes in figures: minipage. (line 6) +* Footnotes, creating: Footnotes. (line 6) +* Formatting Text: \centering. (line 6) +* Formulae, environment for: equation. (line 6) +* Formulae, maths: Math Formulae. (line 6) +* Global options: Document Classes. (line 75) +* Greek letters: Math Symbols. (line 6) +* Hyphenation, defining: \hyphenation. (line 6) +* Hyphenation, forcing: \- (hyphenation). (line 6) +* Indent, forcing: \indent. (line 6) +* Indent, suppressing: \noindent. (line 6) +* Input file, splitting: Splitting the Input. (line 6) +* Input/Output: Terminal Input/Output. + (line 6) +* Inserting figures: figure. (line 6) +* Justification, ragged left: \raggedleft. (line 6) +* Justification, ragged right: \raggedright. (line 6) +* Labelled lists, creating: description. (line 6) +* LaTeX overview: Overview. (line 6) +* Layout commands: Layout. (line 3) +* Left-justifying text: \raggedright. (line 6) +* Left-justifying text, environment for: flushleft. (line 6) +* Left-to-right mode: Modes. (line 6) +* Lengths, adding to: \addtolength. (line 6) +* Lengths, defining a new: \newlength. (line 6) +* Lengths, defining and using: Lengths. (line 6) +* Lengths, predefined: Predefined lengths. (line 6) +* Lengths, setting value of: \setlength. (line 6) +* letter class: Document Classes. (line 6) +* Letters: Letters. (line 6) +* Letters, ending: \closing. (line 6) +* Letters, starting: \opening. (line 6) +* Line Breaking: Line & Page Breaking. (line 6) +* Line breaks: \linebreak. (line 6) +* Lines in tables: tabular. (line 6) +* Lining text up in columns using tab stops: tabbing. (line 6) +* Lining text up in tables: tabular. (line 6) +* Lists of items: itemize. (line 6) +* Lists of items, generic: list. (line 6) +* Lists of items, numbered: enumerate. (line 6) +* Loading additional packages: Document Classes. (line 71) +* Low-level font commands: Low-level font commands. + (line 6) +* LR mode: Modes. (line 6) +* Making a title page: titlepage. (line 6) +* Making paragraphs: Making Paragraphs. (line 6) +* Margin Notes: Margin Notes. (line 6) +* Math Formulae: Math Formulae. (line 6) +* Math mode: Modes. (line 6) +* Math mode, entering: Math Formulae. (line 6) +* Math mode, spacing: Spacing in Math Mode. (line 6) +* Maths Miscellany: Math Miscellany. (line 6) +* Maths symbols: Math Symbols. (line 6) +* Minipage, creating a: minipage. (line 6) +* Modes: Modes. (line 6) +* Multicolumn text: \twocolumn. (line 6) +* New line, starting: \\. (line 6) +* New line, starting (paragraph mode): \newline. (line 6) +* New Page: \newpage. (line 6) +* Notes in the margin: Margin Notes. (line 6) +* Options, global: Document Classes. (line 75) +* Overview of LaTeX: Overview. (line 6) +* Packages, loading: Document Classes. (line 71) +* Page break, forcing: \pagebreak. (line 6) +* Page Breaking: Line & Page Breaking. (line 6) +* Page Formatting: Line & Page Breaking. (line 6) +* Page numbering: \pagenumbering. (line 6) +* Page styles: Page Styles. (line 6) +* Paragraph mode: Modes. (line 6) +* Paragraph, starting a new: \par. (line 6) +* Paragraphs: Making Paragraphs. (line 6) +* Pictures, creating: picture. (line 6) +* Poetry, an environment for: verse. (line 6) +* Predefined lengths: Predefined lengths. (line 6) +* Programs, typesetting: verbatim. (line 6) +* Quoted text with paragraph indentation, displaying: quotation. + (line 6) +* Quoted text, displaying: quote. (line 6) +* Ragged left text: \raggedleft. (line 6) +* Ragged left text, environment for: flushright. (line 6) +* Ragged right text: \raggedright. (line 6) +* Ragged right text, environment for: flushleft. (line 6) +* Remarks in the margin: Margin Notes. (line 6) +* report class: Document Classes. (line 6) +* Reserved Characters: Special Characters. (line 6) +* Right-justifying text: \raggedleft. (line 6) +* Right-justifying text, environment for: flushright. (line 6) +* Sectioning: Sectioning. (line 6) +* Simulating typed text: verbatim. (line 6) +* Sizes of text: Sizes. (line 6) +* Space, inserting vertical: \addvspace. (line 6) +* Spaces: Spaces & Boxes. (line 6) +* Spacing, within Math mode: Spacing in Math Mode. (line 6) +* Special Characters: Special Characters. (line 6) +* Splitting the input file: Splitting the Input. (line 6) +* Starting & Ending: Starting & Ending. (line 6) +* Starting on a right-hand page: \cleardoublepage. (line 6) +* Styles of text: Styles. (line 6) +* Styles, page: Page Styles. (line 6) +* Subscript: Subscripts & Superscripts. + (line 6) +* Superscript: Subscripts & Superscripts. + (line 6) +* Symbols: Math Symbols. (line 6) +* Tab stops, using: tabbing. (line 6) +* Table of Contents, creating: Table of Contents. (line 6) +* Tables, creating: table. (line 6) +* Terminal Input/Output: Terminal Input/Output. + (line 6) +* Thanks, for titlepage: \thanks. (line 6) +* Theorems, defining: \newtheorem. (line 6) +* Theorems, typesetting: theorem. (line 6) +* Title making: \maketitle. (line 6) +* Title pages, creating: titlepage. (line 6) +* Title, for titlepage: \title. (line 6) +* Typed text, simulating: verbatim. (line 6) +* Typeface Sizes: Sizes. (line 6) +* Typeface Styles: Styles. (line 6) +* Typefaces: Typefaces. (line 6) +* Using BibTeX: Using BibTeX. (line 6) +* Variables, a list of: Counters. (line 6) +* Verbatim text: \verb. (line 6) +* Vertical space, inserting: \addvspace. (line 6) + + +File: latex.info, Node: Command Index, Prev: Concept Index, Up: Top + +Command Index +************* + + +* Menu: + +* $: Math Formulae. (line 6) +* \!: Spacing in Math Mode. (line 11) +* \' (tabbing): tabbing. (line 46) +* \(: Math Formulae. (line 6) +* \): Math Formulae. (line 6) +* \+: tabbing. (line 38) +* \,: Spacing in Math Mode. (line 11) +* \- (hyphenation): \- (hyphenation). (line 6) +* \- (tabbing): tabbing. (line 42) +* \;: Spacing in Math Mode. (line 11) +* \<: tabbing. (line 33) +* \=: tabbing. (line 27) +* \>: tabbing. (line 30) +* \[: Math Formulae. (line 6) +* \\: \\. (line 6) +* \]: Math Formulae. (line 6) +* \` (tabbing): tabbing. (line 52) +* \a: tabbing. (line 75) +* \addcontentsline: \addcontentsline. (line 6) +* \address: \address. (line 6) +* \addtocontents: \addtocontents. (line 6) +* \addtocounter: \addtocounter. (line 6) +* \addtolength: \addtolength. (line 6) +* \addvspace: \addvspace. (line 6) +* \Alph: \alph. (line 6) +* \alph: \alph. (line 6) +* \appendix: Sectioning. (line 41) +* \arabic: \arabic. (line 6) +* \author: \author. (line 6) +* \backslash: Special Characters. (line 23) +* \begin: Environments. (line 6) +* \bfseries: Styles. (line 31) +* \bibitem: \bibitem. (line 6) +* \bibliography: Using BibTeX. (line 6) +* \bibliographystyle: Using BibTeX. (line 6) +* \bigskip: \bigskip. (line 6) +* \caption: figure. (line 13) +* \cc: \cc. (line 6) +* \cdots: Math Miscellany. (line 7) +* \centering: \centering. (line 6) +* \chapter: Sectioning. (line 6) +* \circle: \circle. (line 6) +* \cite: \cite. (line 6) +* \cleardoublepage: \cleardoublepage. (line 6) +* \clearpage: \clearpage. (line 6) +* \cline: \cline. (line 6) +* \closing: \closing. (line 6) +* \COLON: Spacing in Math Mode. (line 11) +* \dashbox: \dashbox. (line 6) +* \date: \date. (line 6) +* \ddots: Math Miscellany. (line 11) +* \depth: Predefined lengths. (line 10) +* \documentclass: Document Classes. (line 6) +* \dotfill: \dotfill. (line 6) +* \emph: Styles. (line 25) +* \encl: \encl. (line 6) +* \end: Environments. (line 6) +* \enlargethispage: \enlargethispage. (line 6) +* \fbox: \fbox. (line 6) +* \flushbottom: \flushbottom. (line 6) +* \fnsymbol: \fnsymbol. (line 6) +* \fontencoding: Low-level font commands. + (line 12) +* \fontfamily: Low-level font commands. + (line 15) +* \fontseries: Low-level font commands. + (line 26) +* \fontshape: Low-level font commands. + (line 41) +* \fontsize: Low-level font commands. + (line 58) +* \footnote: \footnote. (line 6) +* \footnotemark: \footnotemark. (line 6) +* \footnotesize: Sizes. (line 20) +* \footnotetext: \footnotetext. (line 6) +* \frac: Math Miscellany. (line 14) +* \frame: \frame. (line 6) +* \framebox <1>: \framebox. (line 6) +* \framebox: \framebox (picture). (line 6) +* \fussy: \fussy. (line 6) +* \height: Predefined lengths. (line 8) +* \hfill: \hfill. (line 6) +* \hline: \hline. (line 6) +* \hrulefill: \hrulefill. (line 6) +* \hspace: \hspace. (line 6) +* \Huge: Sizes. (line 35) +* \huge: Sizes. (line 33) +* \hyphenation: \hyphenation. (line 6) +* \include: \include. (line 6) +* \includeonly: \includeonly. (line 6) +* \indent: \indent. (line 6) +* \input: \input. (line 6) +* \item: itemize. (line 6) +* \itshape: Styles. (line 23) +* \kill: tabbing. (line 61) +* \label: \label. (line 6) +* \LARGE: Sizes. (line 31) +* \Large: Sizes. (line 29) +* \large: Sizes. (line 27) +* \ldots: Math Miscellany. (line 17) +* \lefteqn: eqnarray. (line 22) +* \line: \line. (line 6) +* \linebreak: \linebreak. (line 6) +* \linethickness: \linethickness. (line 6) +* \listoffigures: Table of Contents. (line 13) +* \listoftables: Table of Contents. (line 13) +* \location: \location. (line 6) +* \makebox: \makebox. (line 6) +* \makebox (picture): \makebox (picture). (line 6) +* \makelabels: \makelabels. (line 6) +* \maketitle: \maketitle. (line 6) +* \markboth: \markboth. (line 6) +* \markright: \markright. (line 6) +* \mathbf: Styles. (line 55) +* \mathcal: Styles. (line 71) +* \mathit: Styles. (line 64) +* \mathnormal: Styles. (line 68) +* \mathrm: Styles. (line 52) +* \mathsf: Styles. (line 58) +* \mathtt: Styles. (line 61) +* \mathversion: Styles. (line 73) +* \mbox: \mbox. (line 6) +* \mdseries: Styles. (line 28) +* \medskip: \medskip. (line 6) +* \multicolumn: \multicolumn. (line 6) +* \multiput: \multiput. (line 6) +* \name: \name. (line 6) +* \newcommand: \newcommand. (line 6) +* \newcounter: \newcounter. (line 6) +* \newenvironment: \newenvironment. (line 6) +* \newfont: \newfont. (line 6) +* \newlength: \newlength. (line 6) +* \newline: \newline. (line 6) +* \newpage: \newpage. (line 6) +* \newsavebox: \newsavebox. (line 6) +* \newtheorem: \newtheorem. (line 6) +* \nocite: \nocite. (line 6) +* \nofiles: Table of Contents. (line 18) +* \noindent: \noindent. (line 6) +* \nolinebreak: \nolinebreak. (line 6) +* \nopagebreak: \nopagebreak. (line 6) +* \normalfont: Styles. (line 49) +* \normalsize: Sizes. (line 24) +* \onecolumn: \onecolumn. (line 6) +* \opening: \opening. (line 6) +* \oval: \oval. (line 6) +* \overbrace: Math Miscellany. (line 21) +* \overline: Math Miscellany. (line 24) +* \pagebreak: \pagebreak. (line 6) +* \pagenumbering: \pagenumbering. (line 6) +* \pageref: \pageref. (line 6) +* \pagestyle: \pagestyle. (line 6) +* \par: \par. (line 6) +* \paragraph: Sectioning. (line 6) +* \parbox: \parbox. (line 6) +* \poptabs: tabbing. (line 72) +* \ps: \ps. (line 6) +* \pushtabs: tabbing. (line 67) +* \put: \put. (line 6) +* \raggedbottom: \raggedbottom. (line 6) +* \raggedleft: \raggedleft. (line 6) +* \raggedright: \raggedright. (line 6) +* \raisebox: \raisebox. (line 6) +* \ref: \ref. (line 6) +* \refstepcounter: \refstepcounter. (line 6) +* \rmfamily: Styles. (line 20) +* \Roman: \roman. (line 6) +* \roman: \roman. (line 6) +* \rule: \rule. (line 6) +* \savebox: \savebox. (line 6) +* \sbox: \sbox. (line 6) +* \scriptsize: Sizes. (line 18) +* \scshape: Styles. (line 43) +* \selectfont: Low-level font commands. + (line 64) +* \setcounter: \setcounter. (line 6) +* \setlength: \setlength. (line 6) +* \settodepth: \settodepth. (line 6) +* \settoheight: \settoheight. (line 6) +* \settowidth: \settowidth. (line 6) +* \sffamily: Styles. (line 40) +* \shortstack: \shortstack. (line 6) +* \signature: \signature. (line 6) +* \sloppy: \sloppy. (line 6) +* \slshape: Styles. (line 37) +* \small: Sizes. (line 22) +* \smallskip: \smallskip. (line 6) +* \sqrt: Math Miscellany. (line 27) +* \startbreaks: \startbreaks. (line 6) +* \stepcounter: \stepcounter. (line 6) +* \stopbreaks: \stopbreaks. (line 6) +* \subparagraph: Sectioning. (line 6) +* \subsection: Sectioning. (line 6) +* \subsubsection: Sectioning. (line 6) +* \symbol: Special Characters. (line 23) +* \tableofcontents: Table of Contents. (line 6) +* \telephone: \telephone. (line 6) +* \textbf: Styles. (line 31) +* \textit: Styles. (line 23) +* \textmd: Styles. (line 28) +* \textnormal: Styles. (line 49) +* \textrm: Styles. (line 20) +* \textsc: Styles. (line 43) +* \textsf: Styles. (line 40) +* \textsl: Styles. (line 37) +* \texttt: Styles. (line 46) +* \textup: Styles. (line 34) +* \thanks: \thanks. (line 6) +* \thispagestyle: \thispagestyle. (line 6) +* \tiny: Sizes. (line 16) +* \title: \title. (line 6) +* \today: titlepage. (line 13) +* \totalheight: Predefined lengths. (line 12) +* \ttfamily: Styles. (line 46) +* \twocolumn: \twocolumn. (line 6) +* \typein: \typein. (line 6) +* \typeout: \typeout. (line 6) +* \underbrace: Math Miscellany. (line 32) +* \underline: Math Miscellany. (line 35) +* \upshape: Styles. (line 34) +* \usebox: \usebox. (line 6) +* \usecounter: \usecounter. (line 6) +* \usefont: Low-level font commands. + (line 68) +* \usepackage: Document Classes. (line 68) +* \value: \value. (line 6) +* \vdots: Math Miscellany. (line 39) +* \vector: \vector. (line 6) +* \verb: \verb. (line 6) +* \vfill: \vfill. (line 6) +* \vline: \vline. (line 6) +* \vspace: \vspace. (line 6) +* \width: Predefined lengths. (line 6) +* ^: Subscripts & Superscripts. + (line 6) +* _: Subscripts & Superscripts. + (line 6) +* array: array. (line 6) +* center: center. (line 6) +* description: description. (line 6) +* enumerate: enumerate. (line 6) +* eqnarray: eqnarray. (line 6) +* equation: equation. (line 6) +* figure: figure. (line 6) +* flushleft: flushleft. (line 6) +* flushright: flushright. (line 6) +* itemize: itemize. (line 6) +* letter: letter. (line 6) +* list: list. (line 6) +* lrbox: lrbox. (line 6) +* minipage: minipage. (line 6) +* picture: picture. (line 6) +* quotation: quotation. (line 6) +* quote: quote. (line 6) +* tabbing: tabbing. (line 6) +* table: table. (line 6) +* tabular: tabular. (line 6) +* thebibliography: thebibliography. (line 6) +* theorem: theorem. (line 6) +* titlepage: titlepage. (line 6) +* verbatim: verbatim. (line 6) +* verse: verse. (line 6) + + + +Tag Table: +Node: Top1653 +Node: Overview2255 +Node: Commands3711 +Node: Counters5316 +Node: \addtocounter6763 +Node: \alph7070 +Node: \arabic7466 +Node: \fnsymbol7702 +Node: \newcounter8066 +Node: \refstepcounter8474 +Node: \roman8807 +Node: \stepcounter9191 +Node: \setcounter9439 +Node: \usecounter9708 +Node: \value10016 +Node: Cross References10466 +Node: \label10901 +Node: \pageref11765 +Node: \ref12061 +Node: Definitions12296 +Node: \newcommand12651 +Node: \newenvironment13756 +Node: \newtheorem14961 +Node: \newfont15869 +Node: Document Classes16160 +Node: Layout18210 +Node: \flushbottom18616 +Node: \onecolumn18919 +Node: \raggedbottom19132 +Node: \twocolumn19387 +Node: Environments19677 +Node: array21042 +Node: center21930 +Node: \centering22448 +Node: description23150 +Node: enumerate23528 +Node: eqnarray24270 +Node: equation24999 +Node: figure25300 +Node: flushleft26377 +Node: \raggedright26891 +Node: flushright27465 +Node: \raggedleft27980 +Node: itemize28553 +Node: letter29282 +Node: list29459 +Node: minipage30294 +Node: picture31191 +Node: \circle35158 +Node: \dashbox35509 +Node: \frame35880 +Node: \framebox (picture)36235 +Node: \line36702 +Node: \linethickness37053 +Node: \makebox (picture)37501 +Node: \multiput38195 +Node: \oval38516 +Node: \put39118 +Node: \shortstack39364 +Node: \vector39801 +Node: quotation40095 +Node: quote40499 +Node: tabbing40848 +Node: table43876 +Node: tabular44958 +Node: \cline48169 +Node: \hline48457 +Node: \multicolumn48744 +Node: \vline49281 +Node: thebibliography49598 +Node: \bibitem50456 +Node: \cite51168 +Node: \nocite51662 +Node: Using BibTeX51944 +Node: theorem53126 +Node: titlepage53411 +Node: verbatim53967 +Node: \verb54456 +Node: verse54909 +Node: Footnotes55306 +Node: \footnote55874 +Node: \footnotemark56378 +Node: \footnotetext56902 +Node: Lengths57363 +Node: \newlength57970 +Node: \setlength58283 +Node: \addtolength58660 +Node: \settodepth58965 +Node: \settoheight59236 +Node: \settowidth59511 +Node: Predefined lengths59788 +Node: Letters60309 +Node: \address62243 +Node: \cc62824 +Node: \closing63063 +Node: \encl63274 +Node: \location63451 +Node: \makelabels63709 +Node: \name63993 +Node: \opening64211 +Node: \ps64501 +Node: \signature64653 +Node: \startbreaks64983 +Node: \stopbreaks65201 +Node: \telephone65412 +Node: Line & Page Breaking65640 +Node: \\66876 +Node: \- (hyphenation)67377 +Node: \cleardoublepage67913 +Node: \clearpage68350 +Node: \enlargethispage68639 +Node: \fussy69152 +Node: \hyphenation69549 +Node: \linebreak69903 +Node: \newline70468 +Node: \newpage70699 +Node: \nolinebreak70883 +Node: \nopagebreak71373 +Node: \pagebreak71865 +Node: \sloppy72334 +Node: Making Paragraphs72662 +Node: \indent73202 +Node: \noindent73525 +Node: \par73812 +Node: Margin Notes74011 +Node: Math Formulae74922 +Node: Subscripts & Superscripts76164 +Node: Math Symbols76655 +Node: Spacing in Math Mode77052 +Node: Math Miscellany77611 +Node: Modes78636 +Node: Page Styles80476 +Node: \maketitle80981 +Node: \author81638 +Node: \date82007 +Node: \thanks82249 +Node: \title82442 +Node: \pagenumbering82680 +Node: \pagestyle83112 +Node: \markboth83869 +Node: \markright84452 +Node: \thispagestyle85027 +Node: Sectioning85326 +Node: Spaces & Boxes86691 +Node: \dotfill88102 +Node: \hfill88302 +Node: \hrulefill88551 +Node: \hspace88822 +Node: \addvspace89428 +Node: \bigskip89905 +Node: \medskip90157 +Node: \smallskip90409 +Node: \vfill90686 +Node: \vspace90898 +Node: \fbox91449 +Node: \framebox91725 +Node: lrbox92178 +Node: \makebox92494 +Node: \mbox93123 +Node: \newsavebox93424 +Node: \parbox93684 +Node: \raisebox95114 +Node: \rule95992 +Node: \savebox96452 +Node: \sbox96801 +Node: \usebox97121 +Node: Special Characters97318 +Node: Splitting the Input98618 +Node: \include99266 +Node: \includeonly100130 +Node: \input100576 +Node: Starting & Ending100985 +Node: Table of Contents101639 +Node: \addcontentsline102626 +Node: \addtocontents103418 +Node: Terminal Input/Output103958 +Node: \typein104237 +Node: \typeout104767 +Node: Typefaces105313 +Node: Styles105701 +Node: Sizes107466 +Node: Low-level font commands108045 +Node: Parameters109901 +Node: Concept Index110622 +Node: Command Index123628 + +End Tag Table diff --git a/Master/texmf/doc/info/tds.info b/Master/texmf/doc/info/tds.info new file mode 100644 index 00000000000..8b2418cd0a2 --- /dev/null +++ b/Master/texmf/doc/info/tds.info @@ -0,0 +1,1714 @@ +This is tds.info, produced by makeinfo version 4.7 from tds.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* TeX Directories: (tds). A directory structure for TeX files. +END-INFO-DIR-ENTRY + + +File: tds.info, Node: Top, Next: Introduction, Up: (dir) + +A Directory Structure for TeX Files +*********************************** + +Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2003, 2004 TeX Users +Group. + + Permission to use, copy, and distribute this document _without +modification_ for any purpose and without fee is hereby granted, +provided that this notice appears in all copies. It is provided "as +is" without expressed or implied warranty. + + Permission is granted to copy and distribute modified versions of +this document under the conditions for verbatim copying, provided that +the modifications are clearly marked and the document is not +represented as the official one. + + This document is available on any CTAN host (see Appendix *Note +Related references::). Please send questions or suggestions by email to +<tds@tug.org>. We welcome all comments. This is version 1.1. + +* Menu: + +* Introduction:: +* General:: +* Top-level directories:: +* Summary:: +* Unspecified pieces:: +* Implementation issues:: +* Is there a better way?:: +* Related references:: +* Contributors:: + + --- The Detailed Node Listing --- + +Introduction + +* History:: +* The role of the TDS:: +* Conventions:: + +General + +* Subdirectory searching:: +* Rooting the tree:: +* Local additions:: +* Duplicate filenames:: + +Top-level directories + +* Macros:: +* Fonts:: +* Non-font Metafont files:: +* MetaPost:: +* BibTeX:: +* Scripts:: +* Documentation:: + +Macros + +* Extensions:: + +Fonts + +* Font bitmaps:: +* Valid font bitmaps:: + +Summary + +* Documentation tree summary:: + +Unspecified pieces + +* Portable filenames:: + +Implementation issues + +* Adoption of the TDS:: +* More on subdirectory searching:: +* Example implementation-specific trees:: + +Example implementation-specific trees + +* AmiWeb2c 2.0:: +* Public DECUS TeX:: +* Web2c 7:: + +Is there a better way? + +* Macro structure:: +* Font structure:: +* Documentation structure:: + +Font structure + +* Font file type location:: +* Mode and resolution location:: +* Modeless bitmaps:: + + +File: tds.info, Node: Introduction, Next: General, Prev: Top, Up: Top + +1 Introduction +************** + +TeX is a powerful, flexible typesetting system used by many people +around the world. It is extremely portable and runs on virtually all +operating systems. One unfortunate side effect of TeX's flexibility, +however, is that there has been no single "right" way to install it. +This has resulted in many sites having different installed arrangements. + + The primary purpose of this document is to describe a standard TeX +Directory Structure (TDS): a directory hierarchy for macros, fonts, and +the other implementation-independent TeX system files. As a matter of +practicality, this document also suggests ways to incorporate the rest +of the TeX files into a single structure. The TDS has been designed to +work on all modern systems. In particular, the Technical Working Group +(TWG) believes it is usable under MacOS, MS-DOS, OS/2, Unix, VMS, and +Windows NT. We hope that administrators and developers of both free +and commercial TeX implementations will adopt this standard. + + This document is intended both for the TeX system administrator at a +site and for people preparing TeX distributions--everything from a +complete runnable system to a single macro or style file. It may also +help TeX users find their way around systems organized this way. It is +not a tutorial: we necessarily assume knowledge of the many parts of a +working TeX system. If you are unfamiliar with any of the programs or +file formats we refer to, consult the references in Appendix *Note +Related references::. + +* Menu: + +* History:: +* The role of the TDS:: +* Conventions:: + + +File: tds.info, Node: History, Next: The role of the TDS, Up: Introduction + +1.1 History +=========== + +Version 1.0 of the TDS was released in February 2003. + + Version 1.1 was released in June 2004, with the following +non-editorial changes: + + * Inputs for TeX extensions included under `tex', instead of + in their own top-level directories (Section *Note Extensions::) + + * New top-level directory `scripts' (Section *Note Scripts::). + + * New subdirectories `lig', `opentype', `truetype', and + `type3' under `fonts' (Section *Note Fonts::). + + * `enc', `lig', and `map' all use `SYNTAX/PACKAGE' + subdirectories (Section *Note Fonts::). + + * `pfm' files specified to go under `type1', and `inf' files + under `afm' (Section *Note Fonts::). + + +File: tds.info, Node: The role of the TDS, Next: Conventions, Prev: History, Up: Introduction + +1.2 The role of the TDS +======================= + +The role of the TDS is to stabilize the organization of TeX-related +software packages that are installed and in use, possibly on multiple +platforms simultaneously. + + At first glance, it may seem that the Comprehensive TeX Archive +Network (CTAN) fulfills at least part of this role, but this is not the +case. The role of CTAN is to simplify archiving and distribution, not +installation and use. + + In fact, the roles of the TDS and CTAN are frequently in conflict, +as we will see. For distribution, many different types of files must +be combined into a single unit; for use, it is traditional to segregate +files (even similar files) from a single package into separate, +occasionally distant, directories. + + +File: tds.info, Node: Conventions, Prev: The role of the TDS, Up: Introduction + +1.3 Conventions +=============== + +In this document, `/' is used to separate filename components; for +example, `texmf/fonts'. This is the Unix convention but the ideas are +in no way Unix-specific. + + In this document, "TeX" generally means the TeX system, including +Metafont, DVI drivers, utilities, etc., not just the TeX program itself. + + The word "package" in this document has its usual meaning: a set of +related files distributed, installed, and maintained as a unit. This is +_not_ a LaTeX2e package, which is a style file supplementing a document +class. + + We use the following typographic conventions: + + * `literal' Literal text such as `filename' is typeset in typewriter + type. + + * `REPLACEABLE' Replaceable text such as `PACKAGE', identifying a + class of things, is typeset in italics inside angle brackets. + + + +File: tds.info, Node: General, Next: Top-level directories, Prev: Introduction, Up: Top + +2 General +********* + +This section describes common properties throughout the TDS tree. + +* Menu: + +* Subdirectory searching:: +* Rooting the tree:: +* Local additions:: +* Duplicate filenames:: + + +File: tds.info, Node: Subdirectory searching, Next: Rooting the tree, Up: General + +2.1 Subdirectory searching +========================== + +Older TeX installations store large numbers of related files in single +directories, for example, all `TFM' files and/or all TeX input files. + + This monolithic arrangement hinders maintenance of a TeX system: it +is difficult to determine what files are used by what packages, what +files need to be updated when a new version is installed, or what files +should be deleted if a package is removed. It is also a source of error +if two or more packages happen to have input files with the same name. + + Therefore, the TWG felt each package should be in a separate +directory. But we recognized that explicitly listing all directories to +be searched would be unbearable. A site may wish to install dozens of +packages. Aside from anything else, listing that many directories would +produce search paths many thousands of characters long, overflowing the +available space on some systems. + + Also, if all directories are explicitly listed, installing or +removing a new package would mean changing a path as well as installing +or removing the actual files. This would be a time-consuming and +error-prone operation, even with implementations that provide some way +to specify the directories to search at runtime. On systems without +runtime configuration, it would require recompiling software, an +intolerable burden. + + As a result, the TWG concluded that a comprehensive TDS requires +implementations to support some form of implicit subdirectory +searching. More precisely, implementations must make it possible to +specify that TeX, Metafont, and their companion utilities search in both +a specified directory and recursively through all subdirectories of that +directory when looking for an input file. Other forms of subdirectory +searching, for example recursive-to-one-level searches, may also be +provided. We encourage implementors to provide subdirectory searching +at the option of the installer and user for all paths. + + The TDS does not specify a syntax for specifying recursive +searching, but we encourage implementors to provide interoperability +(see Section *Note More on subdirectory searching::). + + +File: tds.info, Node: Rooting the tree, Next: Local additions, Prev: Subdirectory searching, Up: General + +2.2 Rooting the tree +==================== + +In this document, we shall designate the root TDS directory by `texmf' +(for "TeX and Metafont"). We recommend using that name where possible, +but the actual name of the directory is up to the installer. On PC +networks, for example, this could map to a logical drive specification +such as `T:'. + + Similarly, the location of this directory on the system is +site-dependent. It may be at the root of the file system; on Unix +systems, `/usr/local/share', `/usr/local', `/usr/local/lib', and `/opt' +are common choices. + + The name `texmf' was chosen for several reasons: it reflects the fact +that the directory contains files pertaining to an entire TeX system +(including Metafont, MetaPost, BibTeX, etc.), not just TeX itself; and +it is descriptive of a generic installation rather than a particular +implementation. + + A site may choose to have more than one TDS hierarchy installed (for +example, when installing an upgrade). This is perfectly legitimate. + + +File: tds.info, Node: Local additions, Next: Duplicate filenames, Prev: Rooting the tree, Up: General + +2.3 Local additions +=================== + +The TDS cannot specify precisely when a package is or is not a "local +addition". Each site must determine this according to its own +conventions. At the two extremes, one site might wish to consider +"nonlocal" all files not acquired as part of the installed TeX +distribution; another site might consider "local" only those files that +were actually developed at the local site and not distributed elsewhere. + + We recognize two common methods for local additions to a distributed +`texmf' tree. Both have their place; in fact, some sites employ both +simultaneously: + + 1. A completely separate tree which is a TDS structure itself; for + example, `/usr/local/umbtex' at the University of Massachusetts at + Boston. This is another example of the multiple `texmf' + hierarchies mentioned in the previous section. + + 2. A directory named `local' at any appropriate level, for example, + in the `FORMAT', `PACKAGE', and `SUPPLIER' directories discussed + in the following sections. The TDS reserves the directory name + `local' for this purpose. + + We recommend using `local' for site-adapted configuration files, + such as `language.dat' for the Babel package or `graphics.cfg' for + the graphics package. Unmodified configuration files from a + package should remain in the package directory. The intent is to + separate locally modified or created files from distribution + files, to ease installing new releases. + + + One common case of local additions is dynamically generated files, +e.g., PK fonts by the `mktexpk' script (which originated in Dvips as +`MakeTeXPK'). A site may store the generated files directly in any of: + * their standard location in the main TDS tree (if it can be made + globally writable); + + * an alternative location in the main TDS tree (for example, under + `texmf/fonts/tmp'); + + * a second complete TDS tree (as outlined above); + + * any other convenient directory (perhaps under `/var', for example + `/var/spool/fonts'). + + + No one solution will be appropriate for all sites. + + +File: tds.info, Node: Duplicate filenames, Prev: Local additions, Up: General + +2.4 Duplicate filenames +======================= + +Different files by the same name may exist in a TDS tree. The TDS +generally leaves unspecified which of two files by the same name in a +search path will be found, so generally the only way to reliably find a +given file is for it to have a unique name. However, the TDS requires +implementations to support the following exceptions: + + * Names of TeX input files must be unique within each first-level + subdirectory of `texmf/tex' and `texmf/tex/generic', but not + within all of `texmf/tex'; i.e., different TeX formats may have + files by the same name. (Section *Note Macros:: discusses this + further.) Thus, no single format-independent path specification, + such as a recursive search beginning at `texmf/tex' specifying no + other directories, suffices. So implementations must provide + format-dependent path specifications, for example via wrapper + scripts or configuration files. + + * Many font files will have the same name (e.g., `cmr10.pk'), as + discussed in Section *Note Valid font bitmaps::. Implementations + must distinguish these files by mode and resolution. + + + All implementations we know of already have these capabilities. + + One place where duplicate names are likely to occur is not an +exception: + + * Names of Metafont input files (as opposed to bitmaps) must be + unique within all of `texmf/fonts'. In practice, this is a problem + with some variants of Computer Modern which contain slightly + modified files named `punct.mf', `romanl.mf', and so on. We + believe the only feasible solution is to rename the derivative + files to be unique. + + + +File: tds.info, Node: Top-level directories, Next: Summary, Prev: General, Up: Top + +3 Top-level directories +*********************** + +The directories under the `texmf' root identify the major components of +a TeX system (see Section *Note Summary:: for a summary). A site may +omit any unneeded directories. + + Although the TDS by its nature can specify precise locations only +for implementation-independent files, we recognize that installers may +well wish to place other files under `texmf' to simplify administration +of the TeX tree, especially if it is maintained by someone other than +the system administrator. Therefore, additional top-level directories +may be present. + + The top-level directories specified by the TDS are: + + * `tex' for TeX files (Section *Note Macros::). + + * `fonts' for font-related files (Section *Note Fonts::). + + * `metafont' for Metafont files which are not fonts (Section *Note + Non-font Metafont files::). + + * `metapost' for MetaPost files (Section *Note MetaPost::). + + * `bibtex' for BibTeX files (Section *Note BibTeX::). + + * `scripts' for platform-independent executables (Section *Note + Scripts::). + + * `doc' for user documentation (Section *Note Documentation::). + + * `source' for sources. This includes both traditional program + sources (for example, Web2C sources go in `texmf/source/web2c') + and, e.g., LaTeX `dtx' sources (which go in `texmf/source/latex'). + The TDS leaves unspecified any structure under `source'. + + `source' is intended for files which are not needed at runtime by + any TeX program; it should not be included in any search path. For + example, `plain.tex' does not belong under `texmf/source', even + though it is a "source file" in the sense of not being derived + from another file. (It goes in `texmf/tex/plain/base', as explained + in Section *Note Macros::). + + * `IMPLEMENTATION' for implementations (examples: `emtex', `vtex', + `web2c'), to be used for whatever purpose deemed suitable by the + implementor or TeX administrator. That is, files that cannot be + shared between implementations, such as pool files (`tex.pool') + and memory dump files (`plain.fmt') go here, in addition to + implementation-wide configuration files. See Section *Note + Example implementation-specific trees:: for examples of real + `IMPLEMENTATION' trees. + + Such implementation-specific configuration files should _not_ be + located using the main TeX input search path (e.g., `TEXINPUTS'). + This must be reserved for files actually read by a TeX engine. + See Section *Note Extensions::. + + * `PROGRAM' for program-specific input and configuration files for + any TeX-related programs (examples: `mft', `dvips'). In fact, the + `tex', `metafont', `metapost', and `bibtex' items above may all be + seen as instances of this case. + + +* Menu: + +* Macros:: +* Fonts:: +* Non-font Metafont files:: +* MetaPost:: +* BibTeX:: +* Scripts:: +* Documentation:: + + +File: tds.info, Node: Macros, Next: Fonts, Up: Top-level directories + +3.1 Macros +========== + +TeX macro files shall be stored in separate directories, segregated by +TeX format and package name (we use `format' in its traditional TeX +sense to mean a usefully `\dump'-able package): + texmf/tex/FORMAT/PACKAGE/ + + * `FORMAT' is a format name (examples: `amstex', `latex', `plain', + `texinfo'). + + The TDS allows distributions that can be used as either formats or + packages (e.g., Texinfo, Eplain) to be stored at either level, at + the option of the format author or TeX administrator. We recommend + that packages used as formats at a particular site be stored at the + `FORMAT' level: by adjusting the TeX inputs search path, it will + be straightforward to use them as macro packages under another + format, whereas placing them in another tree completely obscures + their use as a format. + + The TDS reserves the following `FORMAT' names: + + * `generic', for input files that are useful across a wide + range of formats (examples: `null.tex', `path.sty'). + Generally, this means any format that uses the category codes + of Plain TeX and does not rely on any particular format. + This is in contrast to those files which are useful only with + Plain TeX (which go under `texmf/tex/plain'), e.g., + `testfont.tex' and `plain.tex' itself. + + * `local', for local additions. See Section *Note Local + additions::. + + + Thus, for almost every format, it is necessary to search at least + the `FORMAT' directory and then the `generic' directory (in that + order). Other directories may need to be searched as well, + depending on the format. When using AMS-TeX, for example, the + `amstex', `plain', and `generic' directories should be searched, + because AMS-TeX is compatible with Plain. + + * `PACKAGE' is a TeX package name (examples: `babel', `texdraw'). + + In the case where a format consists of only a single file and has + no auxiliary packages, that file can simply be placed in the + `FORMAT' directory, instead of `FORMAT/base'. For example, + Texinfo may go in `texmf/tex/texinfo/texinfo.tex', not + `texmf/tex/texinfo/base/texinfo.tex'. + + The TDS reserves the following `PACKAGE' names: + + * `base', for the base distribution of each format, including + files used by INITEX when dumping format files. For example, + in the standard LaTeX distribution, the `ltx' files created + during the build process. Another example: the `.ini' driver + files for formats used by TeX Live and other distributions. + + * `hyphen', for hyphenation patterns, including the original + American English `hyphen.tex'. These are typically used only + by INITEX. In most situations, this directory need exist + only under the `generic' format. + + * `images', for image input files, such as Encapsulated + PostScript figures. Although it is somewhat non-intuitive for + these to be under a directory named `tex', TeX needs to read + these files to glean bounding box or other information. A + mechanism for sharing image inputs between TeX and other + typesetting programs (e.g., Interleaf, FrameMaker) is beyond + the scope of the TDS. In most situations, this directory need + exist only under the `generic' format. + + * `local', for local additions and configuration files. See + Section *Note Local additions::. + + * `misc', for packages that consist of a single file. An + administrator or package maintainer may create directories for + single-file packages at their discretion, instead of using + `misc'. + + + +* Menu: + +* Extensions:: + + +File: tds.info, Node: Extensions, Up: Macros + +3.1.1 Extensions +---------------- + +TeX has spawned many companion and successor programs ("engines"), such +as PDFTeX, Omega, and others. The TDS specifies that the input files +for such programs (using a TeX-like syntax) be placed within the +top-level `tex' directory, either at the top level or within a format +subdirectory, even though the original TeX program may not be able to +read them. For example: + + texmf/tex/aleph + texmf/tex/enctex + + This is a change from TDS 1.0, which specified top-level `EXTENSION' +directories for each such program. We felt the new approach is +preferable, because: + + * Authors of relevant packages typically make their code detect the + engine being used, and issue error messages or adapt to + circumstances appropriately. Furthermore, as a package matures, + it may support multiple engines. Thus, a package could + conceivably be placed in any of several top-level directories, at + different times. Putting all packages under the top-level `tex' + directory provides a stable location over time. + + * Users need to be able to switch between engines, and configuring + different search paths for each engine is difficult and + error-prone. + + + Thus, in practice, having different top-level directories caused +difficulties for everyone involved--users, package authors, site +administrators, and system distributors. + + Please contrast this approach with the `IMPLEMENTATION' top-level +subdirectory (Section *Note Top-level directories::), which is to be +used for configuration files that (presumably) do not use TeX syntax +and in any case should not be found along the main TeX input search +path. + + +File: tds.info, Node: Fonts, Next: Non-font Metafont files, Prev: Macros, Up: Top-level directories + +3.2 Fonts +========= + +Font files are stored in separate directories, segregated by file type, +and then (in most cases) font supplier and typeface. PK and GF files +need additional structure, as detailed in the next section. + + texmf/fonts/TYPE/SUPPLIER/TYPEFACE/ + texmf/fonts/enc,lig,map/SUBPATH/ + + * `TYPE' is the type of font file. The TDS reserves the following + `TYPE' names for common TeX file types: + + * `afm', for Adobe font metrics, and `inf' files. + + * `gf', for generic font bitmap files. + + * `opentype', for OpenType fonts. + + * `pk', for packed bitmap files. + + * `source', for font sources (Metafont files, property lists, + etc.). + + * `tfm', for TeX font metric files. + + * `truetype', for TrueType fonts. + + * `type1', for PostScript Type 1 fonts (in `pfa', `pfb', + or any other format), and `pfm' files. + + * `type3', for PostScript Type 3 fonts. + + * `vf', for virtual fonts. + + The TDS also reserves the names `enc', `lig', and `map' for font + encoding, ligature, and mapping files, respectively. All of these + directories are structured the same way, with `SYNTAX' + subdirectories, and then `PACKAGE' subsubdirectories. Each of + these file types is intended to be searched along its own + recursively-searched path. The names of the actual files must be + unique within their subtree, as usual. Examples: + fonts/map/dvipdfm/updmap/dvipdfm.map + fonts/map/dvips/lm/lm.map + fonts/enc/dvips/base/8r.enc + + The Fontname and Dvips packages have more examples of the `enc' and + `map' types. The `afm2pl' program uses `lig' files. + + `pfm' files are included in the `type1' directory, instead of + being given their own directory, for two reasons: 1) a `.pfm' file + is always an adjunct to a given `.pfb' file; 2) they must be + installed from the same directory for Windows programs other than + TeX to use them. + + `inf' files are included in the `afm' directory, since an `inf' + and `afm' file can be used to generate a `pfm'. (Unfortunately, + Adobe Type Manager and perhaps other software requires that the + `pfb' be in the same directory as `afm' and `inf' for + installation.) + + As usual, a site may omit any of these directories that are + unnecessary. `gf' is a particularly likely candidate for omission. + + * `SUPPLIER' is a name identifying font source (examples: `adobe', + `ams', `public'). The TDS reserves the following `SUPPLIER' names: + + * `ams', for the American Mathematical Society's AMS-fonts + collection. + + * `local', for local additions. See Section *Note Local + additions::. + + * `public', for freely redistributable fonts where the supplier + neither (1) requested their own directory (e.g., `ams'), nor + (2) also made proprietary fonts (e.g., `adobe'). It does not + contain all extant freely distributable fonts, nor are all + files therein necessarily strictly public domain. + + * `tmp', for dynamically-generated fonts, as is traditional on + some systems. It may be omitted if unnecessary, as usual. + + + * `TYPEFACE' is the name of a typeface family (examples: `cm', + `euler', `times'). The TDS reserves the following `TYPEFACE' names: + + * `cm' (within `public'), for the 75 fonts defined in + `Computers and Typesetting, Volume E'. + + * `latex' (within `public'), for those fonts distributed with + LaTeX in the base distribution. + + * `local', for local additions. See Section *Note Local + additions::. + + + + Some concrete examples: + texmf/fonts/source/public/pandora/pnr10.mf + texmf/fonts/tfm/public/cm/cmr10.tfm + texmf/fonts/type1/adobe/utopia/putr.pfa + + For complete supplier and typeface name lists, consult `Filenames +for TeX fonts' (see Appendix *Note Related references::). + +* Menu: + +* Font bitmaps:: +* Valid font bitmaps:: + + +File: tds.info, Node: Font bitmaps, Next: Valid font bitmaps, Up: Fonts + +3.2.1 Font bitmaps +------------------ + +Font bitmap files require two characteristics in addition to the above +to be uniquely identifiable: (1) the type of device (i.e., mode) for +which the font was created; (2) the resolution of the bitmap. + + Following common practice, the TDS segregates fonts with different +device types into separate directories. See `modes.mf' in +Appendix *Note Related references:: for recommended mode names. + + Some printers operate at more than one resolution (e.g., at 300dpi +and 600dpi), but each such resolution will necessarily have a different +mode name. Nothing further is needed, since implicit in the TeX system +is the assumption of a single target resolution. + + Two naming strategies are commonly used to identify the resolution of +bitmap font files. On systems that allow long filenames (and in the +original Metafont program itself), the resolution is included in the +filename (e.g., `cmr10.300pk'). On systems which do not support long +filenames, fonts are generally segregated into directories by +resolution (e.g., `dpi300/cmr10.pk'). + + Because the TDS cannot require long filenames, we must use the +latter scheme for naming fonts. So we have two more subdirectory levels +under `pk' and `gf': + + texmf/fonts/pk/MODE/SUPPLIER/TYPEFACE/dpiNNN/ + texmf/fonts/gf/MODE/SUPPLIER/TYPEFACE/dpiNNN/ + + * `MODE' is a name which identifies the device type (examples: `cx', + `ljfour', `modeless'). Usually, this is the name of the Metafont + mode used to build the PK file. For fonts rendered as bitmaps by + a program that does not distinguish between different output + devices, the `MODE' name shall be simply `modeless'. The `MODE' + level shall not be omitted, even if only a single mode happens to + be in use. + + * `dpiNNN' specifies the resolution of the font (examples: `dpi300', + `dpi329'). `dpi' stands for dots per inch, i.e., pixels per inch. + We recognize that pixels per millimeter is used in many parts of + the world, but dpi is too traditional in the TeX world to consider + changing now. + + The integer `NNN' is to be calculated as if using Metafont + arithmetic and then rounded; i.e., it is the integer Metafont uses + in its output `gf' filename. We recognize small differences in the + resolution are a common cause of frustration among users, however, + and recommend implementors follow the level 0 DVI driver standard + (see Appendix *Note Related references::) in bitmap font searches + by allowing a fuzz of +-0.2% (with a minimum of 1) in the `DPI'. + + + Implementations may provide extensions to the basic naming scheme, +such as long filenames (as in the original Metafont) and font library +files (as in emTeX's `.fli' files), provided that the basic scheme is +also supported. + + +File: tds.info, Node: Valid font bitmaps, Prev: Font bitmaps, Up: Fonts + +3.2.2 Valid font bitmaps +------------------------ + +The TWG recognizes that the use of short filenames has many +disadvantages. The most vexing is that it results in the creation of +dozens of different files with the same name. At a typical site, +`cmr10.pk' will be the filename for Computer Modern Roman 10pt at 5-10 +magnifications for 2-3 modes. (Section *Note Duplicate filenames:: +discusses duplicate filenames in general.) + + To minimize this problem, we strongly recommend that PK files +contain enough information to identify precisely how they were created: +at least the mode, base resolution, and magnification used to create the +font. + + This information is easy to supply: a simple addition to the local +modes used for building the fonts with Metafont will automatically +provide the required information. If you have been using a local modes +file derived from (or that is simply) `modes.mf' (see Appendix *Note +Related references::), the required information is already in your PK +files. If not, a simple addition based on the code found in `modes.mf' +can be made to your local modes file and the PK files rebuilt. + + +File: tds.info, Node: Non-font Metafont files, Next: MetaPost, Prev: Fonts, Up: Top-level directories + +3.3 Non-font Metafont files +=========================== + +Most Metafont input files are font programs or parts of font programs +and are thus covered by the previous section. However, a few non-font +input files do exist. Such files shall be stored in: + + texmf/metafont/PACKAGE/ + + `PACKAGE' is the name of a Metafont package (for example, `mfpic'). + + The TDS reserves the following `PACKAGE' names: + + * `base', for the standard Metafont macro files as described in `The + Metafontbook', such as `plain.mf' and `expr.mf'. + + * `local', for local additions. See Section *Note Local additions::. + + * `misc', for Metafont packages consisting of only a single file + (for example, `modes.mf'). An administrator or package maintainer + may create directories for single-file packages at their + discretion, instead of using `misc'. + + + +File: tds.info, Node: MetaPost, Next: BibTeX, Prev: Non-font Metafont files, Up: Top-level directories + +3.4 MetaPost +============ + +MetaPost is a picture-drawing language developed by John Hobby, derived +from Knuth's Metafont. Its primary purpose is to output Encapsulated +PostScript instead of bitmaps. + + MetaPost input files and the support files for MetaPost-related +utilities shall be stored in: + + texmf/metapost/PACKAGE/ + + `PACKAGE' is the name of a MetaPost package. At the present writing +none exist, but the TWG thought it prudent to leave room for +contributed packages that might be written in the future. + + The TDS reserves the following `PACKAGE' names: + + * `base', for the standard MetaPost macro files, such as `plain.mp', + `mfplain.mp', `boxes.mp', and `graph.mp'. This includes files + used by INIMP when dumping mem files containing preloaded macro + definitions. + + * `local', for local additions. See Section *Note Local additions::. + + * `misc', for MetaPost packages consisting of only a single file. + An administrator or package maintainer may create directories for + single-file packages at their discretion, instead of using `misc'. + + * `support', for additional input files required by MetaPost utility + programs, including a font map, a character adjustment table, and + a subdirectory containing low-level MetaPost programs for rendering + some special characters. + + + +File: tds.info, Node: BibTeX, Next: Scripts, Prev: MetaPost, Up: Top-level directories + +3.5 BibTeX +========== + +BibTeX-related files shall be stored in: + + texmf/bibtex/bib/PACKAGE/ + texmf/bibtex/bst/PACKAGE/ + + The `bib' directory is for BibTeX database (`.bib') files, the `bst' +directory for style (`.bst') files. + + `PACKAGE' is the name of a BibTeX package. The TDS reserves the +following `PACKAGE' names (the same names are reserved under both `bib' +and `bst'): + + * `base', for the standard BibTeX databases and styles, such as + `xampl.bib', `plain.bst'. + + * `local', for local additions. See Section *Note Local additions::. + + * `misc', for BibTeX packages consisting of only a single file. An + administrator or package maintainer may create directories for + single-file packages at their discretion, instead of using `misc'. + + + +File: tds.info, Node: Scripts, Next: Documentation, Prev: BibTeX, Up: Top-level directories + +3.6 Scripts +=========== + +The top-level `scripts' directory is for platform-independent +executables, such as Perl, Python, and shell scripts, and Java class +files. Subdirectories under `scripts' are package names. This eases +creating distributions, by providing a common place for such +platform-independent programs. + + The intent is not for all such directories to be added to a user's +command search path, which would be quite impractical. Rather, these +executables are primarily for the benefit of wrapper scripts in whatever +executable directory a distribution may provide (which is not specified +by the TDS). + + Truly auxiliary scripts which are invoked directly by other programs, +rather than wrapper scripts, may also be placed here. That is, +`scripts' also serves as a platform-independent analog of the standard +Unix `libexec' directory. + + We recommend using extensions specifying the language (such as +`.pl', `.py', `.sh') on these files, to help uniquely identify the +name. Since the intent of the TDS is for programs in `scripts' not to +be invoked directly by users, this poses no inconvenience. + + For example, in the TeX Live distribution, the ConTeXt user-level +program `texexec' can exist as a small wrapper script in each +`bin/PLATFORM/texexec' (which is outside the `texmf' tree), which +merely finds and calls `texmf/scripts/context/perl/texexec.pl'. + + Examples: + scripts/context/perl/texexec.pl + scripts/context/ruby/examplex.rb + scripts/thumbpdf/thumbpdf.pl + + The TDS does not specify a location for platform-dependent binary +executables, whether auxiliary or user-level. + + +File: tds.info, Node: Documentation, Prev: Scripts, Up: Top-level directories + +3.7 Documentation +================= + +Most packages come with some form of documentation: user manuals, +example files, programming guides, etc. In addition, many independent +files not part of any macro or other package have been created to +describe various aspects of the TeX system. + + The TDS specifies that these additional documentation files shall be +stored in a structure that parallels to some extent the `fonts' and +`tex' directories, as follows: + + texmf/doc/CATEGORY/... + + `CATEGORY' identifies the general topic of documentation that +resides below it; for example, a TeX format name (`latex'), program +name (`bibtex', `tex'), language (`french', `german'), a file format +(`info', `man'), or other system components (`web', `fonts'). + + One possible arrangement is to organize `doc' by language, with all +the other category types below that. This helps users find +documentation in the language(s) in which they are fluent. Neither this +nor any other particular arrangement is required, however. + + Within each `CATEGORY' tree for a TeX format, the directory `base' +is reserved for base documentation distributed by the format's +maintainers. + + The TDS reserves the following category names: + + * `general', for standalone documents not specific to any particular + program (for example, Joachim Schrod's `Components of TeX'). + + * `help', for meta-information, such as FAQ's, the TeX Catalogue, + etc. + + * `info', for processed Texinfo documents. (Info files, like + anything else, may also be stored outside the TDS, at the + installer's option.) + + * `local', for local additions. See Section *Note Local additions::. + + + The `doc' directory is intended for implementation-independent and +operating system-independent documentation files. +Implementation-dependent files are best stored elsewhere, as provided +for by the implementation and/or TeX administrator (for example, VMS +help files under `texmf/vms/help'). + + The documentation directories may contain TeX sources, DVI files, +PostScript files, text files, example input files, or any other useful +documentation format(s). + + See Section *Note Documentation tree summary:: for a summary. + + +File: tds.info, Node: Summary, Next: Unspecified pieces, Prev: Top-level directories, Up: Top + +4 Summary +********* + +A skeleton of a TDS `texmf' directory tree. This is not to imply these +are the only entries allowed. For example, `local' may occur at any +level. + + bibtex/ BibTeX input files + bib/ BibTeX databases + base/ base distribution (e.g., `xampl.bib') + misc/ single-file databases + <package>/ name of a package + bst/ BibTeX style files + base/ base distribution (e.g., `plain.bst', `acm.bst') + misc/ single-file styles + <package>/ name of a package + doc/ see Section *Note Documentation:: and the summary below + fonts/ font-related files + <type>/ file type (e.g., `pk') + <mode>/ type of output device (for `pk' and `gf' only) + <supplier>/ name of a font supplier (e.g., `public') + <typeface>/ name of a typeface (e.g., `cm') + dpi<nnn>/ font resolution (for `pk' and `gf' only) + <implementation>/ TeX implementations, by name (e.g., `emtex') + local/ files created or modified at the local site + metafont/ Metafont (non-font) input files + base/ base distribution (e.g., `plain.mf') + misc/ single-file packages (e.g., `modes.mf') + <package>/ name of a package (e.g., `mfpic') + metapost/ MetaPost input and support files + base/ base distribution (e.g., `plain.mp') + misc/ single-file packages + <package>/ name of a package + support/ support files for MetaPost-related utilities + mft/ `MFT' inputs (e.g., `plain.mft') + <program>/ TeX-related programs, by name (e.g., `dvips') + source/ program source code by name (e.g., `latex', `web2c') + tex/ TeX input files + <engine>/ name of an engine (e.g., `aleph'); can also be lower + <format>/ name of a format (e.g., `plain') + base/ base distribution for format (e.g., `plain.tex') + misc/ single-file packages (e.g., `webmac.tex') + local/ local additions to or local configuration files for `FORMAT' + <package>/ name of a package (e.g., `graphics', `mfnfss') + generic/ format-independent packages + hyphen/ hyphenation patterns (e.g., `hyphen.tex') + images/ image input files (e.g., Encapsulated PostScript) + misc/ single-file format-independent packages (e.g., `null.tex'). + <package>/ name of a package (e.g., `babel') + +* Menu: + +* Documentation tree summary:: + + +File: tds.info, Node: Documentation tree summary, Up: Summary + +4.1 Documentation tree summary +============================== + +An example skeleton of a TDS directory tree under `texmf/doc'. This is +not to imply these are the only entries allowed, or that this structure +must be followed precisely for the entries listed. + + As mentioned, the `texmf/doc' tree may be organized by language, so +that all documentation in French, say, is in a `french' subdirectory. +In that case, the example structure here would be in a given language +directory. + + ams/ + amsfonts/ `amsfonts.faq', `amfndoc' + amslatex/ `amslatex.faq', `amsldoc' + amstex/ `amsguide', `joyerr' + bibtex/ BibTeX + base/ `btxdoc.tex' + fonts/ + fontname/ `Filenames for TeX fonts' + oldgerm/ `corkpapr' + <format>/ name of a TeX format (e.g., `generic', `latex') + base/ for the base distribution + misc/ for contributed single-file package documentation + <package>/ for _package_ + general/ across programs, generalities + errata/ `errata', `errata[1-8]' + texcomp/ `Components of TeX' + help/ meta-information + ctan/ info about CTAN mirror sites + faq/ FAQs of `comp.text.tex', etc. + info/ GNU Info files, made from Texinfo sources + latex/ example of `FORMAT' + base/ `ltnews*', `*guide', etc. + graphics/ `grfguide' + local/ site-specific documentation + man/ Unix man pages + <program>/ TeX-related programs, by name (examples follow) + metafont/ `mfbook.tex', `metafont-for-beginners', etc. + metapost/ `mpman', `manfig', etc. + tex/ `texbook.tex', `A Gentle Introduction to TeX', etc. + web/ `webman', `cwebman' + + +File: tds.info, Node: Unspecified pieces, Next: Implementation issues, Prev: Summary, Up: Top + +Appendix A Unspecified pieces +***************************** + +The TDS cannot address the following aspects of a functioning TeX +system: + + 1. The location of executable programs: this is too site-dependent + even to recommend a location, let alone require one. A site may + place executables outside the `texmf' tree altogether (e.g., + `/usr/local/bin'), in a platform-dependent directory within + `texmf', or elsewhere. + + 2. Upgrading packages when new releases are made: we could find no + way of introducing version specifiers into `texmf' that would do + more good than harm, or that would be practical for even a + plurality of installations. + + 3. The location of implementation-specific files (e.g., TeX `.fmt' + files): by their nature, these must be left to the implementor or + TeX maintainer. See Section *Note Example implementation-specific + trees::. + + 4. Precisely when a package or file should be considered "local", and + where such local files are installed. See Section *Note Local + additions:: for more discussion. + + +* Menu: + +* Portable filenames:: + + +File: tds.info, Node: Portable filenames, Up: Unspecified pieces + +A.1 Portable filenames +====================== + +The TDS cannot require any particular restriction on filenames in the +tree, since the names of many existing TeX files conform to no standard +scheme. For the benefit of people who wish to make a portable TeX +distribution or installation, however, we outline here the necessary +restrictions. The TDS specifications themselves are compatible with +these. + + ISO-9660 is the only universally acceptable file system format for +CD-ROMs. A subset thereof meets the stringent limitations of all +operating systems in use today. It specifies the following: + + * File and directory names, not including any directory path or + extension part, may not exceed eight characters. + + * Filenames may have a single extension. Extensions may not exceed + three characters. Directory names may not have an extension. + + * Names and extensions may consist of _only_ the characters `A'-`Z', + `0'-`9', and underscore. Lowercase letters are excluded. + + * A period separates the filename from the extension and is always + present, even if the name or extension is missing (e.g., + `FILENAME.' or `.EXT'). + + * A version number, ranging from 1-32767, is appended to the file + extension, separated by a semicolon (e.g., `FILENAME.EXT;1'). + + * Only eight directory levels are allowed, including the top-level + (mounted) directory (see Section *Note Rooting the tree::). Thus, + the deepest valid ISO-9660 path is: + texmf/L2/L3/L4/L5/L6/L7/L8/FOO.BAR;1 + 1 2 3 4 5 6 7 8 + The deepest TDS path needs only seven levels: + texmf/fonts/pk/cx/public/cm/dpi300/cmr10.pk + 1 2 3 4 5 6 7 + + + Some systems display a modified format of ISO-9660 names, mapping +alphabetic characters to lowercase, removing version numbers and +trailing periods, etc. + + Before the December 1996 release, LaTeX used mixed-case names for +font descriptor files. Fortunately, it never relied on case alone to +distinguish among the files. Nowadays, it uses only monocase names. + + +File: tds.info, Node: Implementation issues, Next: Is there a better way?, Prev: Unspecified pieces, Up: Top + +Appendix B Implementation issues +******************************** + +We believe that the TDS can bring a great deal of order to the current +anarchic state of many TeX installations. In addition, by providing a +common frame of reference, it will ease the burden of documenting +administrative tasks. Finally, it is a necessary part of any +reasonable system of true "drop-in" distribution packages for TeX. + +* Menu: + +* Adoption of the TDS:: +* More on subdirectory searching:: +* Example implementation-specific trees:: + + +File: tds.info, Node: Adoption of the TDS, Next: More on subdirectory searching, Up: Implementation issues + +B.1 Adoption of the TDS +======================= + +[This section is retained for historical purposes; the TDS is now quite +firmly entrenched in most TeX distributions.] + + We recognize that adoption of the TDS will not be immediate or +universal. Most TeX administrators will not be inclined to make the +final switch until: + + * Clear and demonstrable benefits can be shown for the TDS. + + * TDS-compliant versions of all key programs are available in + ported, well-tested forms. + + * A "settling" period has taken place, to flush out problems. The + public release of the first draft of this document was the first + step in this process. + + Consequently, most of the first trials of the TDS will be made by +members of the TDS committee and/or developers of TeX-related software. +This has already taken place during the course of our deliberations +(see Appendix *Note Related references:: for a sample tree available +electronically). They will certainly result in the production of a +substantial number of TDS-compliant packages. Indeed, the teTeX and +TeX Live distributions are TDS-compliant and in use now at many sites. + + Once installable forms of key TDS-compliant packages are more +widespread, some TeX administrators will set up TDS-compliant trees, +possibly in parallel to existing production directories. This testing +will likely flush out problems that were not obvious in the confined +settings of the developers' sites; for example, it should help to +resolve system and package dependencies, package interdependencies, and +other details not addressed by this TDS version. + + After most of the dust has settled, hopefully even conservative TeX +administrators will begin to adopt the TDS. Eventually, most TeX sites +will have adopted the common structure, and most packages will be +readily available in TDS-compliant form. + + We believe that this process will occur relatively quickly. The TDS +committee spans a wide range of interests in the TeX community. +Consequently, we believe that most of the key issues involved in +defining a workable TDS definition have been covered, often in detail. +TeX developers have been consulted about implementation issues, and +have been trying out the TDS arrangement. Thus, we hope for few +surprises as implementations mature. + + Finally, there are several (current or prospective) publishers of TeX +CD-ROMs. These publishers are highly motivated to work out details of +TDS implementation, and their products will provide inexpensive and +convenient ways for experimentally-minded TeX administrators to +experiment with the TDS. + + +File: tds.info, Node: More on subdirectory searching, Next: Example implementation-specific trees, Prev: Adoption of the TDS, Up: Implementation issues + +B.2 More on subdirectory searching +================================== + +Recursive subdirectory searching is the ability to specify a search not +only of a specified directory `D', but recursively of all directories +below `D'. + + Since the TDS specifies precise locations for most files, with no +extra levels of subdirectories allowed, true recursive searching is not +actually required for a TDS-compliant implementation. We do, however, +strongly recommend recursive searching as the most user-friendly and +natural approach to the problem, rather than convoluted methods to +specify paths without recursion. + + This feature is already supported by many implementations of TeX and +companion utilities, for example DECUS TeX for VMS, Dvips(k), emTeX +(and its drivers), PubliC TeX, Web2C, Xdvi(k), and Y&YTeX. The +Kpathsea library is a reusable implementation of subdirectory searching +for TeX, used in a number of the above programs. + + Even if your TeX implementation does not directly support +subdirectory searching, you may find it useful to adopt the structure if +you do not use many fonts or packages. For instance, if you only use +Computer Modern and AMS fonts, it would be feasible to store them in +the TDS layout and list the directories individually in configuration +files or environment variables. + + The TWG recognizes that subdirectory searching places an extra +burden on the system and may be the source of performance bottlenecks, +particularly on slower machines. Nevertheless, we feel that +subdirectory searching is imperative for a well-organized TDS, for the +reasons stated in Section *Note Subdirectory searching::. Implementors +are encouraged to provide enhancements to the basic principle of +subdirectory searching to avoid performance problems, e.g., the use of +a filename cache (this can be as simple as a recursive directory +listing) that is consulted before disk searching begins. If a match is +found in the database, subdirectory searching is not required, and +performance is thus independent of the number of subdirectories present +on the system. + + Different implementations specify subdirectory searching differently. +In the interest of typographic clarity, the examples here do not use the +`REPLACEABLE' font. + + * Dvips: via a separate `TEXFONTS_SUBDIR' environment variable. + + * emTeX: `t:\subdir!!'; `t:\subdir!' for a single level of searching. + + * Kpathsea: `texmf/subdir//' + + * VMS: `texmf:[subdir...]' + + * Xdvi (patchlevel 20): `texmf/subdir/**'; `texmf/subdir/*' for a + single level of searching. Version 20.50 and above support the + `//' notation. + + * Y&Y TeX: `t:/subdir//' or `t:\subdir\\'. + + + +File: tds.info, Node: Example implementation-specific trees, Prev: More on subdirectory searching, Up: Implementation issues + +B.3 Example implementation-specific trees +========================================= + +The TDS cannot specify a precise location for implementation-specific +files, such as `texmf/ini', because a site may have multiple TeX +implementations. + + Nevertheless, for informative purposes, we provide here the default +locations for some implementations. Please contact us with additions or +corrections. These paths are not definitive, may not match anything at +your site, and may change without warning. + + We recommend all implementations have default search paths that start +with the current directory (e.g., `.'). Allowing users to include the +parent directory (e.g., `..') is also helpful. + +* Menu: + +* AmiWeb2c 2.0:: +* Public DECUS TeX:: +* Web2c 7:: + + +File: tds.info, Node: AmiWeb2c 2.0, Next: Public DECUS TeX, Up: Example implementation-specific trees + +B.3.1 AmiWeb2c 2.0 +------------------ + +(Email <scherer@physik.rwth-aachen.de> to contact the maintainer of +this implementation.) + + AmiWeb2c 2 is compatible with Web2c 7 to the greatest possible +extent, so only the very few differences are described in this section. +Detailed information about the basic concepts is given in the section +for Web2c 7 below. + + Thanks to the `SELFAUTO' mechanism of Kpathsea 3.0 no specific +location for the installation of AmiWeb2c is required as long as the +general structure of the distribution is preserved. + + In addition to Kpathsea's `//' notation recursive path search may +also be started by `DEVICE:/', e.g., `TeXMF:/' will scan this specific +device completely. + + Binaries coming with the AmiWeb2c distribution are installed in the +directory `bin/amiweb2c/' outside the common TDS tree `share/texmf/'. +In addition to the set of AmiWeb2c binaries you will find two +subdirectories `local/' and `pastex/' with auxiliary programs. + + A stripped version of the PasTeX system (used by kind permission of +Georg Hessmann) is coming with AmiWeb2c, pre-installed in its own +`share/texmf/amiweb2c/pastex/' directory. If you want to use PasTeX +you have to `assign' the name `TeX:' to this place. + + Documentation files in AmigaGuide format should be stored at +`doc/guide/' similar to `doc/info/'. + + +File: tds.info, Node: Public DECUS TeX, Next: Web2c 7, Prev: AmiWeb2c 2.0, Up: Example implementation-specific trees + +B.3.2 Public DECUS TeX +---------------------- + +If another VMS implementation besides Public DECUS TeX appears, the top +level implementation directory name will be modified to something more +specific (e.g., `vms_decus'). + + texmf/ + vms/ VMS implementation specific files + exe/ end-user commands + common/ command procedures, command definition files, etc. + axp/ binary executables for Alpha AXP + vax/ binary executables for VAX + formats/ pool files, formats, bases + help/ VMS help library, and miscellaneous help sources + mgr/ command procedures, programs, docs, etc., for system management + + +File: tds.info, Node: Web2c 7, Prev: Public DECUS TeX, Up: Example implementation-specific trees + +B.3.3 Web2c 7 +------------- + +All implementation-dependent TeX system files (`.pool', `.fmt', +`.base', `.mem') are stored by default directly in `texmf/web2c'. The +configuration file `texmf.cnf' and various subsidiary `MakeTeX...' +scripts used as subroutines are also stored there. + + Non-TeX specific files are stored following the GNU coding +standards. Given a root directory `PREFIX' (`/usr/local' by default), +we have default locations as follows: + + <prefix>/ installation root (`/usr/local' by default) + bin/ executables + man/ man pages + info/ info files + lib/ libraries (`libkpathsea.*') + share/ architecture-independent files + texmf/ TDS root + web2c/ implementation-dependent files (`.pool', `.fmt', `texmf.cnf', etc.) + + See `http://www.gnu.org/prep/standards_toc.html' for the rationale +behind and descriptions of this arrangement. A site may of course +override these defaults; for example, it may put everything under a +single directory such as `/usr/local/texmf'. + + +File: tds.info, Node: Is there a better way?, Next: Related references, Prev: Implementation issues, Up: Top + +Appendix C Is there a better way? +********************************* + +Defining the TDS required many compromises. Both the overall structure +and the details of the individual directories were arrived at by +finding common ground among many opinions. The driving forces were +feasibility (in terms of what could technically be done and what could +reasonably be expected from developers) and regularity (files grouped +together in an arrangement that "made sense"). + + Some interesting ideas could not be applied due to implementations +lacking the necessary support: + + * Path searching control at the TeX level. If documents could + restrict subdirectory searching to a subdirectory via some portable + syntax in file names, restrictions on uniqueness of filenames + could be relaxed considerably (with the cooperation of the + formats), and the TeX search path would not need to depend on the + format. + + * Multiple logical `texmf' trees. For example, a site might have one + (read-only) location for stable files, and a different (writable) + location for dynamically-created fonts or other files. It would be + reasonable for two such trees to be logically merged when + searching. See Michael Downes' article in the references for how + this can work in practice with Web2C. + + +* Menu: + +* Macro structure:: +* Font structure:: +* Documentation structure:: + + +File: tds.info, Node: Macro structure, Next: Font structure, Up: Is there a better way? + +C.1 Macro structure +=================== + +The TWG settled on the `FORMAT/PACKAGE' arrangement after long +discussion about how best to arrange the files. + + The primary alternative to this arrangement was a scheme which +reversed the order of these directories: `PACKAGE/FORMAT'. This +reversed arrangement has a strong appeal: it keeps all of the files +related to a particular package in a single place. The arrangement +actually adopted tends to spread files out into two or three places +(macros, documentation, and fonts, for example, are spread into +different sections of the tree right at the top level). + + Nevertheless, the `FORMAT/PACKAGE' structure won for a couple of +reasons: + + * It is closer to current practice; in fact, several members of the + TWG have already implemented the TDS hierarchy. The alternative + is not in use at any known site, and the TWG felt it wrong to + mandate something with which there is no practical experience. + + * The alternative arrangement increases the number of top-level + directories, so the files that must be found using subdirectory + searching are spread out in a wide, shallow tree. This could have + a profound impact on the efficiency of subdirectory searching. + + + +File: tds.info, Node: Font structure, Next: Documentation structure, Prev: Macro structure, Up: Is there a better way? + +C.2 Font structure +================== + +The TWG struggled more with the font directory structure than anything +else. This is not surprising; the need to use the proliferation of +PostScript fonts with TeX is what made the previous arrangement with +all files in a single directory untenable, and therefore what initiated +the TDS effort. + +* Menu: + +* Font file type location:: +* Mode and resolution location:: +* Modeless bitmaps:: + + +File: tds.info, Node: Font file type location, Next: Mode and resolution location, Up: Font structure + +C.2.1 Font file type location +----------------------------- + +We considered the supplier-first arrangement in use at many sites: + + texmf/fonts/SUPPLIER/TYPEFACE/TYPE/ + + This improves the maintainability of the font tree, since all files +comprising a given typeface are in one place, but unless all the +programs that search this tree employ some form of caching, there are +serious performance concerns. For example, in order to find a `TFM' +file, the simplest implementation would require TeX to search through +all the directories that contain PK files in all modes and at all +resolutions. + + In the end, a poll of developers revealed considerable resistance to +implementing sufficient caching mechanisms, so this arrangement was +abandoned. The TDS arrangement allows the search tree to be restricted +to the correct type of file, at least. Concerns about efficiency +remain, but there seems to be no more we can do without abandoning +subdirectory searching entirely. + + We also considered segregating all font-related files strictly by +file type, so that Metafont sources would be in a directory +`texmf/fonts/mf', property list files in `texmf/fonts/pl', the various +forms of Type 1 fonts separated, and so on. Although more blindly +consistent, we felt that the drawback of more complicated path +constructions outweighed this. The TDS merges file types (`mf' and `pl' +under `source', `pfa' and `pfb' and `gsf' under `type1') where we felt +this was beneficial. + + +File: tds.info, Node: Mode and resolution location, Next: Modeless bitmaps, Prev: Font file type location, Up: Font structure + +C.2.2 Mode and resolution location +---------------------------------- + +We considered having the `mode' at the bottom of the font tree: + texmf/fonts/pk/SUPPLIER/TYPEFACE/MODE/DPI/ + + In this case, however, it is difficult to limit subdirectory +searching to the mode required for a particular device. + + We then considered moving the `dpiNNN' up to below the mode: + texmf/fonts/pk/MODE/DPI/SUPPLIER/TYPEFACE/ + + But then it is not feasible to omit the `dpiNNN' level altogether on +systems which can and do choose to use long filenames. + + +File: tds.info, Node: Modeless bitmaps, Prev: Mode and resolution location, Up: Font structure + +C.2.3 Modeless bitmaps +---------------------- + +The TDS specifies using a single directory `modeless/' as the mode name +for those utilities which generate bitmaps, e.g., +`texmf/fonts/modeless/times/'. This has the considerable advantage of +not requiring each such directory name to be listed in a search path. + + An alternative was to use the utility name below which all such +directories could be gathered. That has the advantage of separating, +say, `gsftopk'-generated bitmaps from `ps2pk'-generated ones. However, +we decided this was not necessary; most sites will use only one program +for the purpose. Also, PK and GF fonts generally identify their +creator in the font comment following the `PK_ID' byte. + + We are making an implicit assumption that Metafont is the only +program producing mode-dependent bitmaps. If this becomes false we +could add an abbreviation for the program to mode names, as in `mfcx' +vs. `xyzcx' for a hypothetical program Xyz, or we could at that time +add an additional program name level uniformly to the tree. It seemed +more important to concisely represent the current situation than to +worry about hypothetical possibilities that may never happen. + + +File: tds.info, Node: Documentation structure, Prev: Font structure, Up: Is there a better way? + +C.3 Documentation structure +=========================== + +We considered placing additional documentation files in the same +directory as the source files for the packages, but we felt that users +should be able to find documentation separately from sources, since most +users have no interest in sources. + + We hope that a separate, but parallel, structure for documentation +would (1) keep the documentation together and (2) make it as +straightforward as possible for users to find the particular +documentation they were after. + + +File: tds.info, Node: Related references, Next: Contributors, Prev: Is there a better way?, Up: Top + +Appendix D Related references +***************************** + +This appendix gives pointers to related files and other documents. For +CTAN references, we use `http://www.ctan.org' as the top-level domain +only to make the links be live in this document. See +`http://www.ctan.org/tex-archive/CTAN.sites' for a complete list of +CTAN sites; there are mirrors worldwide. + + * This document, in many formats (tex, dvi, info, pdf): + `http://tug.org/tds/' + + * The TDS mailing list archives: + `http://tug.org/mail-archives/twg-tds/' + + * The level 0 DVI driver standard: + `http://www.ctan.org/tex-archive/dviware/driv-standard/level-0/' + + * `Filenames for TeX fonts', with lists of recommended supplier and + typeface names: + `http://tug.org/fontname/' + + * ISO-9660 CD-ROM file system standard: + `http://www.iso.ch/cate/cat.html' + + * `Components of TeX', a paper by Joachim Schrod: + `http://www.ctan.org/tex-archive/documentation/components-of-TeX/' + + * `Managing Multiple TDS trees', an article by Michael Downes: + `http://tug.org/TUGboat/Articles/tb22-3/tb72downes.pdf' + + * A complete set of Metafont modes: + `http://www.ctan.org/tex-archive/fonts/modes/modes.mf' + + * A large collection of BibTeX databases and styles: + `ftp://ftp.math.utah.edu/pub/tex/bib/' + + + +File: tds.info, Node: Contributors, Prev: Related references, Up: Top + +Appendix E Contributors +*********************** + +The TWG has had no physical meetings; electronic mail was the +communication medium. + + Sebastian Rahtz is the TeX Users Group Technical Council liaison. +Norman Walsh was the original committee chair. Karl Berry is the +current editor. + + The list of contributors has grown too large to fairly include, as +some would surely be inadvertently omitted. Please consider the +archives of the <tds@tug.org> and <tex-live@tug.org> mailing lists as +the record of contributions. + + + +Tag Table: +Node: Top198 +Node: Introduction2185 +Node: History3846 +Node: The role of the TDS4648 +Node: Conventions5508 +Node: General6429 +Node: Subdirectory searching6714 +Node: Rooting the tree8968 +Node: Local additions10080 +Node: Duplicate filenames12293 +Node: Top-level directories14054 +Node: Macros17062 +Node: Extensions20919 +Node: Fonts22645 +Node: Font bitmaps26786 +Node: Valid font bitmaps29674 +Node: Non-font Metafont files30882 +Node: MetaPost31842 +Node: BibTeX33286 +Node: Scripts34155 +Node: Documentation35872 +Node: Summary38145 +Node: Documentation tree summary41031 +Node: Unspecified pieces43056 +Node: Portable filenames44267 +Node: Implementation issues46409 +Node: Adoption of the TDS47041 +Node: More on subdirectory searching49753 +Node: Example implementation-specific trees52568 +Node: AmiWeb2c 2.053447 +Node: Public DECUS TeX54889 +Node: Web2c 755752 +Node: Is there a better way?56974 +Node: Macro structure58480 +Node: Font structure59816 +Node: Font file type location60369 +Node: Mode and resolution location61946 +Node: Modeless bitmaps62625 +Node: Documentation structure63915 +Node: Related references64543 +Node: Contributors65959 + +End Tag Table diff --git a/Master/texmf/doc/info/texdraw.info b/Master/texmf/doc/info/texdraw.info new file mode 100644 index 00000000000..2458b4f3b33 --- /dev/null +++ b/Master/texmf/doc/info/texdraw.info @@ -0,0 +1,2429 @@ +This is texdraw, produced by makeinfo version 4.5 from texdraw.texi. + + This file documents TeXdraw, a system for producing PostScript +drawings from TeX. + + Copyright (C) 1993-95 Peter Kabal + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + +File: texdraw, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) + +TeXdraw +******* + + TeXdraw is a collection of macros that allow drawings to be created +from _within_ TeX. + + This is edition 2.0 of the TeXdraw documentation. + +* Menu: + +* Introduction:: +* TeXdraw Commands:: +* Drawing Segments and Scaling:: +* Using TeXdraw with LaTeX:: +* More Details:: +* PostScript Commands:: +* TeXdraw Toolbox:: +* Examples:: +* Command Listing:: + +Indices +* Concept Index:: +* Command Index:: + + --- The Detailed Node Listing --- + +Introduction + +* Distribution:: + +TeXdraw Commands + +* Accessing TeXdraw:: +* Command syntax:: +* TeXdraw coordinates:: +* Coordinate specification:: +* Line vectors:: +* TeX text:: +* Circles and arcs:: +* Bezier curves:: +* Fill commands:: + +Drawing Segments and Scaling + +* Drawing segments:: +* Drawing paths:: +* Saving positions:: +* Scaling coordinates:: +* Drawing size:: +* Initial current position:: + +Using TeXdraw with LaTeX + +* PostScript printer drivers:: + +More Details + +* Errors while using TeXdraw:: +* Extending TeXdraw:: +* How TeXdraw merges graphics and text:: + +Extending TeXdraw + +* Scaling:: +* Resolution:: +* Text placement:: +* Intermediate PostScript file:: + +PostScript Commands + +TeXdraw Toolbox + +* Coordinate parsing:: +* Real arithmetic:: +* Arrow curve:: + +Examples + +* Block diagram:: +* Filter response graph:: +* Geometric construction:: + +Command Listing + +Command Index + +Concept Index + + +File: texdraw, Node: Introduction, Next: TeXdraw Commands, Prev: Top, Up: Top + +Introduction +************ + + TeX is a powerful typesetting program which allows for complex text +layouts but by itself lacks a general graphics capability. However, +when coupled with an appropriate printer driver program, external +graphics files can be inserted into the printed document. In this mode, +TeX is instructed to leave space for a drawing. The drawing is +inserted by the printer driver program. The TeXdraw macros described +here generate the external graphics file from within TeX and generate +the instructions to the the print driver program to position the +graphics at the appropriate position on the page. + + TeXdraw consists of a set of TeX macros that create line drawings and +other figures. The drawing primitives include solid lines, patterned +lines, Bezier curves, circles and arrows. Other commands allow for the +filling of a region with a gray level. The drawing commands generate +PostScript code. This limits TeXdraw to systems which use PostScript +printers. TeXdraw also provides commands to position TeX text, +including mathematics, on the drawing. The final drawing, with text +and graphics, can be positioned on the page like any other TeX box. + + The basic TeXdraw macros for TeX use the `\special' syntax recognized +by the printer driver program `dvips'. However, when invoked as a +LaTeX2e package, the TeXdraw macros can be used with any of the +PostScript printer driver programs supported by the standard `graphics' +package for LaTeX2e. + + The basic TeXdraw macros provide only simple drawing commands. +However, TeXdraw provides a drawing segment environment which allows +parameter changes and coordinate scaling changes to be kept local to the +drawing segment. This facility, together with TeX's macro capabilities +allows one to modularize drawing units and extend TeXdraw by building +more complex graphics entities from simpler elements. + +* Menu: + +* Distribution:: + + +File: texdraw, Node: Distribution, Up: Introduction + +Distribution information +======================== + + The TeXdraw routines are provided free of charge without warranty of +any kind. Note that the TeXdraw routines are copyrighted. They may be +distributed freely provided that the recipients also acquire the right +to distribute them freely. The notices to this effect must be +preserved when the source files are distributed. + + +File: texdraw, Node: TeXdraw Commands, Next: Drawing Segments and Scaling, Prev: Introduction, Up: Top + +Using the TeXdraw Commands +************************** + + The main TeXdraw macros (commands) are defined in the file +`texdraw.tex'. These macros may be used directly in TeX. The file +`texdraw.sty' provides an interface for use with LaTeX2e. The +following sections describe the basic commands for TeXdraw. + +* Menu: + +* Accessing TeXdraw:: +* Command syntax:: +* TeXdraw coordinates:: +* Coordinate specification:: +* Line vectors:: +* TeX text:: +* Circles and arcs:: +* Bezier curves:: +* Fill commands:: + + +File: texdraw, Node: Accessing TeXdraw, Next: Command syntax, Up: TeXdraw Commands + +Accessing TeXdraw +================= + + The form of the user command to run the TeX program depends on which +version of TeX is being used, and which other macro packages are +preloaded as format files. Typically, installations have at least two +versions of TeX -- plain TeX which includes basic typesetting macros +(usually invoked as `tex') and LaTeX2e which includes the LaTeX2e +typesetting macros (usually invoked as `latex'). An older version of +LaTeX, version 2.09, may also be available. The TeXdraw macros can be +used with plain TeX and with either version of LaTeX. + + For use with plain TeX, the user must read in the TeXdraw macros from +the file `texdraw.tex'. + \input texdraw % Read in the TeXdraw macros + ... + \btexdraw + ... % TeXdraw commands to generate a drawing + \etexdraw + + For use with LaTeX version 2.09, the user reads in the TeXdraw macros +from the file `texdraw.tex' and optionally defines the +`\begin{texdraw}' / `\end{texdraw}' environment. + \documentstyle[11pt]{article} % Article style with the 11pt size options + ... + \input texdraw % Read in the TeXdraw macros + \newenvironment{texdraw}{\leavevmode\btexdraw}{\etexdraw} + ... + \begin{texdraw} + ... % TeXdraw commands to generate a drawing + \end{texdraw} + ... + \end{document} + + For use with LaTeX2e, the user must load the `texdraw' package (file +`texdraw.sty'). This package file defines the `\begin{texdraw}' / +`\end{texdraw}' environment, brings in the standard `graphics' package +and reads in the file `texdraw.tex' containing the definitions of the +TeXdraw macros. + \documentclass[11pt]{article} % Article class with the 11pt size option + \usepackage{texdraw} % TeXdraw commands + + \begin{document} + ... + \begin{texdraw} + ... % TeXdraw commands to generate a drawing + \end{texdraw} + ... + \end{document} + + As the TeXdraw commands are processed by TeX, an intermediate +PostScript file is generated. The intermediate PostScript has a name of +the form `NAME.ps1'. The name part is derived from the name of the +main TeX file being processed. If more than one drawing is produced, +the digit in the file name extension is incremented.(1) + + The TeXdraw commands to produce a drawing are inserted between +`\btexdraw' and `\etexdraw' commands, or for LaTeX, between +`\begin{texdraw}' and `\end{texdraw}' commands. This results in a TeX +box of appropriate size containing the drawing generated by the TeXdraw +commands. The TeXdraw box can be positioned in a document like any +other TeX box. + + The `\centertexdraw{...}' macro centers the box generated by TeXdraw. +The vertical space taken up is equal to the vertical size of the +drawing. The `\centertexdraw' macro is normally used in vertical mode +(between paragraphs). A `\par' command (a blank line will do also) +before a `\centertexdraw' command will terminate horizontal mode and +return to vertical mode. For LaTeX, a structured equivalent to the +`\centertexdraw{...}' command is shown below. + \begin{center} + \begin{texdraw} + ... + \end{texdraw} + \end{center} + + The `\everytexdraw' command can be used to define a set of TeXdraw +commands that will be executed at the beginning of every TeXdraw +drawing. It is invoked as `\everytexdraw{ ...}', with the desired +TeXdraw commands as arguments. + +`\btexdraw' + Start a TeXdraw drawing. The drawing is terminated with an + `\etexdraw' command. + +`\etexdraw' + End a TeXdraw drawing started with a `\btexdraw' command. The + resulting TeXdraw drawing is placed in a box with height equal to + the height of the drawing and width equal to the width of the + drawing. The depth of the box is zero. + +`\begin{texdraw}' + Start a TeXdraw drawing. The drawing is terminated with an + `\end{texdraw}' command. This command is for use with LaTeX. + +`\end{texdraw}' + End a TeXdraw drawing started with a `\begin{texdraw}' command. + The resulting TeXdraw drawing is placed in a box with height equal + to the height of the drawing and width equal to the width of the + drawing. The depth of the box is zero. This command is for use + with LaTeX. + +`\centertexdraw{ ... }' + Center a TeXdraw box horizontally. The argument contains TeXdraw + commands. The resulting box has the horizontal size `\hsize' and + height equal to the height of the drawing. + +`\everytexdraw{ ... }' + Specify TeXdraw commands to be executed at the beginning of every + TeXdraw drawing. + + ---------- Footnotes ---------- + + (1) After the ninth PostScript file, the name of the intermediate +PostScript file takes the form `NAME.p10', with the number increasing +from 10 with each file. + + +File: texdraw, Node: Command syntax, Next: TeXdraw coordinates, Prev: Accessing TeXdraw, Up: TeXdraw Commands + +Command syntax +============== + + Generally TeXdraw commands that take a single argument need a +terminating blank or newline after the argument. Arguments that are +self-delimiting, such as coordinates within parentheses and text within +braces, do not need the terminating blank. However, even when not +needed by the defining syntax of the command, blanks following command +arguments are allowed and ignored within the TeXdraw environment. + + On entering the TeXdraw environment, TeX is in internal vertical mode +(vertical mode inside a `\vbox'). In this mode, spaces can be placed +freely between commands. However, any other extraneous input that +generates output that is not part of the TeXdraw environment is +disallowed. + + Blank lines are interpreted as paragraph breaks, equivalent to a +`\par' command. The TeXdraw macro `\centertexdraw' is defined with the +`\long' attribute to allow `\par' commands and blank lines to be +interspersed between TeXdraw commands. The `\btexdraw' and `\etexdraw' +commands also allow `\par' command and blank lines to be included. + + +File: texdraw, Node: TeXdraw coordinates, Next: Coordinate specification, Prev: Command syntax, Up: TeXdraw Commands + +TeXdraw coordinates +=================== + + The TeXdraw coordinate system has increasing X to the right and +increasing Y upward. The coordinates (without the unit) are floating +point numbers. Integer values can be written without a decimal point. +The size of the drawing is determined by the maximum excursions of the +coordinates specified in TeXdraw commands. + + Consider the following example of TeXdraw commands to draw a simple +figure. + \centertexdraw{ + \drawdim cm \linewd 0.02 + \move(2 2) \lvec(3 3) \lvec(2 4) \lvec(1 3) \lvec(2 2) + \textref h:C v:C \htext(2 3){$\sum \rho_n$} + } +This drawing uses units of centimetres, with a line width of 0.02 +cm. The X coordinate ranges between 1 and 3 while the Y coordinate +ranges between 2 and 4. When included into a document, the size of the +drawing is 2 cm by 2 cm. The drawing is placed in a TeX box, with the +lower lefthand corner of the box corresponding to TeXdraw coordinate +`(1 2)' and the upper righthand corner at `(3 4)'. The +`\centertexdraw' command centers the drawing horizontally. The +`\textref' command controls the centering of the text. The text in +this drawing is centered (both horizontally and vertically) at the +coordinate `(2 3)'. + + +File: texdraw, Node: Coordinate specification, Next: Line vectors, Prev: TeXdraw coordinates, Up: TeXdraw Commands + +Coordinate specification +======================== + + Coordinates are specified within parentheses, with blanks (but no +comma) between the values. Leading blanks and trailing blanks are +permitted within the parentheses. The coordinates refer to units, +which are specified by the `\drawdim' command. The default is inches, +but any valid TeX dimension unit can be specified. Symbolic +specification of saved coordinate values will be discused later (*note +Saving positions::). + +`\drawdim DIM' + Set the units to DIM. The argument DIM can be any valid TeX + dimension unit. The units are used to interpret coordinate + values. Examples of valid units: `cm', `mm', `in', `pt', and `bp'. + + Examples of coordinate and scaling specifications: +`\drawdim {cm} \move(2 2)' + Set the units to centimetres, move to a position 2 cm to the right + and 2 cm up from the origin of the drawing coordinate system. + +`\drawdim bp' + Set the units to big points. + +`\lvec ( 2.2 +5.5) \lvec(2.3 -2) \lvec(2.2 5.4 )' + Examples of acceptable coordinate specifications. + + +File: texdraw, Node: Line vectors, Next: TeX text, Prev: Coordinate specification, Up: TeXdraw Commands + +Line vectors +============ + + TeXdraw implements moves, line vectors and arrow vectors. There are +both absolute and relative motion versions of these vector commands. +TeXdraw maintains a current position. Lines are drawn from the current +position to a new coordinate, with the new coordinate becoming the new +current position. An explicit move can be used to establish a new +current position. The position `(0 0)' is used if there is no move to +an initial current position. + + The `\move' and `\rmove' commands establish a new current position +without drawing a line. The `\lvec' and `\rlvec' commands draw a line +from the current position to a new position, which then becomes the new +current position. The `\avec' and `\ravec' commands draw a line with +an arrowhead from the current position to a new coordinate, which then +becomes the new current position. The tip of the arrow is at the new +current position. The direction of the arrow follows the direction of +the line. Since this direction is undefined for zero length vectors, +these are not allowed for `\avec' or `\ravec'. Zero length arrow +vectors will generate a PostScript print error: `undefinedresult'. For +any non-zero length vector, the full size arrowhead is drawn, even if +that arrowhead is longer than the line length. + + The absolute motion versions of these commands specify the coordinate +of the final position. + +`\move (X Y)' + Move to coordinate `(X Y)'. The new current position is `(X Y)'. + +`\lvec (X Y)' + Draw a line from the current position to coordinate `(X Y)'. The + new current position is `(X Y)'. + +`\avec (X Y)' + Draw a line with an arrowhead from the current position to `(X + Y)'. The new current position is `(X Y)'. The arrowhead is + aligned with the line, with the tip at `(X Y)'. + + The relative motion versions of these commands interpret the +coordinates as displacements relative to the current position. Given +the displacements `(DX DY)' as a parameter, each of the relative motion +commands moves DX units in the X direction and DY units in the Y +direction. + +`\rmove (DX DY)' + Move from the current position, DX units in the X direction and DY + units in the Y direction. The final position becomes the new + current position. + +`\rlvec (DX DY)' + Draw a line from the current position, DX units in the X direction + and DY units in the Y direction. The final position becomes the + new current position. + +`\ravec (DX DY)' + Draw a line with an arrowhead from the current position, DX units + in the X direction and Y units in the Y direction. The final + position becomes the new current position. The arrowhead is + aligned with the line, with the tip at the new current position. + + Lines can be customized with commands to change the line width, line +pattern and line gray level rendition. In addition, commands for +changing the type and size of the arrowhead are available. + +`\linewd WIDTH' + Set the line width to WIDTH units. Initially WIDTH is 0.01 inches + (corresponding to 3 pixels at 300 pixels to the inch). + +`\lpatt (PATTERN)' + Set lines to have the pattern `(PATTERN)'. A pattern is a + sequence of on/off lengths separated by blanks and enclosed in + parentheses. The lengths alternately specify the length of a dash + and the length of a gap between dashes. Each length is + interpreted using the current scaling and drawing units. The + pattern is used cyclically. The empty pattern signifies a solid + line. The initial line pattern is a solid line, corresponding to + the empty pattern `\lpatt ()'. + +`\setgray LEVEL' + Set the gray level of lines. Gray levels are real values from 0 + (black) through intermediate values (gray) to 1 (white). The + initial gray level is 0 corresponding to black. + +`\arrowheadtype t:TYPE' + Set the arrowhead type to TYPE, where TYPE is one of `F', `T', + `W', `V', or `H'. There are two kinds of arrowheads. The first + kind is a triangle. There are 3 variants: type `T' is an empty + triangle, type `F' is a filled triangle (using the current gray + level for lines), type `W' is a triangle filled with white. The + second kind of arrowhead is an open ended Vee. There are 2 + variants: type `V' has the stem continue to the tip, type `H' has + the stem stop at the base of the arrowhead. The initial arrowhead + type is `T'. + +`\arrowheadsize l:LENGTH w:WIDTH' + Set the arrowhead size to be LENGTH units long and WIDTH units + wide. The width is measured across the "base" of the arrowhead. + The initial arrowhead size has a LENGTH of 0.16 inches and a WIDTH + of 0.08 inches. + + Note that the lines which outline the arrowhead will be drawn with the +same line pattern used for the stem. Normally, arrow vectors are drawn +with the line pattern set for a solid line. Note that the fill level +used for the `F' variant of the arrowhead uses the same gray level as +used for lines. The difference between the `T' variant and the `W' +variant only shows up if the arrowhead is placed over non-white areas +of the drawing. The `W' variant obliterates the area under the +arrowhead. + + Examples of line parameter and arrowhead settings are shown in the +following code. + \centertexdraw{ + \drawdim in + \linewd 0.03 \setgray 0.6 \arrowheadtype t:F \avec(0 0.5) + \linewd 0.01 \setgray 0 \arrowheadtype t:V \avec(0.5 0.5) + \linewd 0.015 \lpatt(0.067 0.1) \lvec (1 0) + \linewd 0.02 \lpatt() \arrowheadtype t:T \avec(1.5 0.5) + \arrowheadtype t:H \avec(2.0 0.5) + \setgray 0.4 \arrowheadtype t:W \avec(3.0 0) + } + + +File: texdraw, Node: TeX text, Next: Circles and arcs, Prev: Line vectors, Up: TeXdraw Commands + +TeX text +======== + + Text may be superimposed on the drawing. The text argument of the +`\htext' command is in horizontal mode. This text can be ordinary +text, math mode expressions, or even more complicated boxes consisting +of tables and the like. The resulting TeX text is placed in a box. +The reference point of the box can be chosen to be one of nine +locations: horizontally left, center or right; vertically top, center or +bottom. The `\htext' command takes one of two forms. + +`\htext (X Y){TEXT}' +`\htext {TEXT}' + The first form of this command places the TeX text TEXT + horizontally with the text reference point at the coordinate `(X + Y)'. The new current position is `(X Y)'. The second form of + this command places the TeX text TEXT horizontally with the text + reference point at the current position. The text reference point + is set with the `\textref' command. + + Text can be placed vertically using the `\vtext' command. The text +argument is in horizontal mode. The TeX text is placed in a box and +then rotated counterclockwise. The reference point is the point in the +box, _before_ rotation of the text. Not all PostScript printer drivers +support vertical text. + +`\vtext (x y){TEXT}' +`\vtext {TEXT}' + The first form of this command places the TeX text TEXT vertically + with the text reference point at the coordinate `(X Y)'. The new + current position is `(X Y)'. The second form of this command + places the TeX text TEXT vertically with the text reference point + at the current position. In both cases, the TeX text is placed in + a box and the box is rotated counterclockwise by 90 degrees about + the text reference point. The text reference point is set with + the `\textref' command. + + Text can be placed at an arbitrary angle using the `\rtext' command. +The text argument is in horizontal mode. The TeX text is placed in a +box and then rotated counterclockwise. The reference point is the +point in the box, _before_ rotation of the text. Not all PostScript +printer drivers support rotated text. + +`\rtext td:ANGLE (x y){TEXT}' +`\rtext td:ANGLE {TEXT}' + The first form of this command places the TeX text TEXT at an + angle with the text reference point at the coordinate `(X Y)'. + The new current position is `(X Y)'. The second form of this + command places the TeX text TEXT at an angle with the text + reference point at the current position. In both cases, the TeX + text is placed in a box and the box is rotated counterclockwise by + ANGLE degrees about the text reference point. The text reference + point is set with the `\textref' command. + + The reference point for subsequent TeX text in a `\htext', `\vtext' +or `\rtext' command is set with the `\textref' command. + +`\textref h:H-REF v:V-REF' + Set the text reference point for subsequent text commands. The + horizontal reference point H-REF is one of `L', `C' or `R' (left, + center or right). The vertical reference point V-REF is one of + `T', `C' or `B' (top, center or bottom). For rotated text, the + reference point is determined before rotation. The initial text + reference point corresponds to `\textref h:L v:B'. + +The font used to render the text is determined as for any other TeX +text. Normally the font used outside of TeXdraw is in effect. If +desired, other fonts can be specified as part of the text. Any font +changes within a TeXdraw text command remain local to that command. + + Only the coordinate of the text reference point in a `\htext', +`\vtext' or `\rtext' command is used in calculating the size of the +drawing. This means that text itself can spill outside of the drawing +area determined by TeXdraw. The area of the drawing can be increased +to include the text by issuing additional `\move' commands. + + \centertexdraw{ + \avec(-0.75 -0.25) \textref h:R v:C \htext{H-text} + \move(0 0) \avec(-0.75 +0.25) \textref h:R v:B \htext{H-text} + \move(0 0) \avec(0 +0.5) \textref h:L v:T \vtext{V-text} + \move(0 0) \avec(+0.75 +0.25) \textref h:L v:B \htext{H-text} + \move(0 0) \avec(+0.75 -0.25) \textref h:L v:C \htext{H-text} + } + + +File: texdraw, Node: Circles and arcs, Next: Bezier curves, Prev: TeX text, Up: TeXdraw Commands + +Circles, ellipses and arcs +========================== + + TeXdraw supplies commands to generate circles, ellipses and arcs. +There are two forms of the circle command. The `\lcir' command draws a +circle of given radius. The `\fcir' command draws a filled circle. In +the latter case, the circle is filled by a specified gray level. For +the filled circle, the line defining the circumference of the circle is +not drawn. Note that the gray level area filled in by the `\fcir' +command is opaque, even if the fill is chosen to be white. For either +form of the circle command, the drawing size is increased if necessary +to contain the circle. + + The `\lellip' command generates an ellipse specified by the radius of +the ellipse in the X direction and the radius of the ellipse in the Y +direction. The ellipse is symmetrical about horizontal and vertical +lines drawn through the current point. The `\fellip' command draws a +filled ellipse. In the latter case, the ellipse is filled by a +specified gray level. For the filled ellipse, the line defining the +boundary of the ellipse is not drawn. For either form of the ellipse +command, the drawing size is increased if necessary to contain the +ellipse. + + The `\larc' command generates a counterclockwise arc specified by a +start angle in degrees and an end angle in degrees. The center of the +arc is the current position. Only the arc is drawn, not the line +joining the center to the beginning of the arc. Note that the `\larc' +command does not affect the size of the drawing. + +`\lcir r:RADIUS' + Draw a circle with center at the current position. The radius is + specified by RADIUS. This command draws a line along the + circumference of the circle. The drawing size is increased if + necessary to contain the circle. + +`\fcir f:LEVEL r:RADIUS' + Draw a filled circle with center at the current position. The + radius is specified by RADIUS. The circle is painted with the + gray level specified by LEVEL. A gray level of 1 corresponds to + white, with decreasing values getting darker. The level 0 is full + black. This command does not draw a line along the circumference. + The drawing size is increased if necessary to contain the circle. + +`\lellip rx:X-RADIUS ry:Y-RADIUS' + Draw an ellipse with center at the current position. The radius + in the X direction is specified by X-RADIUS. The radius in the Y + direction is specified by Y-RADIUS. The drawing size is increased + if necessary to contain the ellipse. + +`\fellip f:LEVEL rx:X-RADIUS ry:Y-RADIUS' + Draw a filled ellipse with center at the current position. The + radius in the X direction is specified by X-RADIUS. The radius in + the Y direction is specified by Y-RADIUS. The ellipse is painted + with the gray level specified by LEVEL. A gray level of 1 + corresponds to white, with decreasing values getting darker. The + level 0 is full black. This command does not draw a line along + the boundary of the ellipse. The drawing size is increased if + necessary to contain the ellipse. + +`\larc r:RADIUS sd:START-ANGLE ed:END-ANGLE' + Draw a counterclockwise arc. The center of the arc is at the + current position. The radius is specified by RADIUS. The start + and end angles (in degrees) are specified by START-ANGLE and + END-ANGLE. This command does not affect the limits (size) of the + drawing. + + As an example, the following commands draw a filled circle, and +superimpose an arc. + \centertexdraw{ + \linewd 0.02 + \fcir f:0.7 r:1 + \larc r:1 sd:45 ed:135 + \lvec (+0.707 +0.707) \move (0 0) \lvec (-0.707 +0.707) + } + + Note that for the arc command, the resulting figure can spill outside +of the TeXdraw box as determined by the maximum excursions of the +coordinates. Extra moves can be used to compensate for the size of the +arc. + + +File: texdraw, Node: Bezier curves, Next: Fill commands, Prev: Circles and arcs, Up: TeXdraw Commands + +Bezier curves +============= + + Bezier curves in TeXdraw use 4 reference coordinates, two as the end +points and two others to control the shape of the curve. Let the 4 +points be `(X0 Y0)', `(X1 Y1)', `(X2 Y2)' and `(X3 Y3)'. The curve +starts out tangent to the line joining the first two points and ends up +tangent to the line joining the second two points. The control points +"pull" at the curve to control the curvature. The amount of pull +increases with the distance of the control point from the endpoint. + + As the parameter u varies from 0 to 1, the coordinates of the Bezier +curve are given by a pair of parametric cubic equations, + +x(u) = (1-u)^3 x0 + 3u (1-u)^2 x1 + 3u^2 (1-u) x2 + u^3 x3 + +y(u) = (1-u)^3 y0 + 3u (1-u)^2 y1 + 3u^2 (1-u) y2 + u^3 y3 . + +`\clvec (X1 Y1)(X2 Y2)(X3 Y3)' + Draw a Bezier curve from the current position to the coordinate + `(X3 Y3)' which becomes the new current position. The coordinates + `(X1 Y1)' and `(X2 Y2)' serve as control points for the curve. + Only the last coordinate given is used to update the size of the + drawing. + +Note that only 3 coordinate pairs are specified. The other point is the +current position before the `\clvec' command is executed. Only the +last coordinate specified in the `\clvec' command is used to determine +the extent of the drawing. While the Bezier curve passes through the +old current position and the new current position, in general the curve +will not reach the intermediate control points. The curve is always +entirely enclosed by the convex quadrilateral defined by the two end +points and the two control points. Note that the curve may pass +outside the limits of the drawing as determined by the end point of the +curve. + + A simple Bezier curve is produced by the following example. + \btexdraw + \move (0 0) + \clvec (0 1)(1 0)(1 1) + \etexdraw + + +File: texdraw, Node: Fill commands, Prev: Bezier curves, Up: TeXdraw Commands + +Fill commands +============= + + PostScript deals with paths consisting of line segments. The paths +can be closed and the interior of the closed region filled. From +TeXdraw, paths start with a `\move' or `\rmove' command and continue +with `\lvec', `\rlvec' or `\clvec' commands. The TeXdraw fill commands +close the path and fill the interior of the closed region. Closing the +path means that effectively another `\lvec' line is drawn from the last +point specified to the initial point. TeXdraw provides two forms of +the fill command. The `\ifill' fills the interior of the region with +the given gray level. The lines defining the path are not drawn. The +`\lfill' command fills the region defined by the closed path and draws +a line along the enclosing path. Note for both forms of the fill +command, the gray level used for filling is opaque, even if the gray +level is chosen to be white. + +`\lfill f:LEVEL' + Close the current path, draw the line around the path using the + current grey level for lines and paint the interior of the region + with specified gray level LEVEL. Gray levels are real values from + 0 (black) through intermediate values (grays) to 1 (white). + +`\ifill f:LEVEL' + Close the current path and paint the interior of the region with + gray level LEVEL. The line around the path is not drawn. Gray + levels are real values from 0 (black) through intermediate values + (grays) to 1 (white). + + The following example draws a "flag" with the interior filled in. The +path around the boundary is given in a clockwise order to define a +closed path. We could take advantage of the fact that the fill command +will close an open path to eliminate one of the `\lvec' commands. + \centertexdraw{ + \move (0.5 0) + \lvec (0 0.5) \clvec (0.5 0.85)(1 0.65)(1.5 1) + \lvec (2 0.5) \clvec (1.5 0.15)(1 0.35)(0.5 0) + \lfill f:0.8 + } + + In TeXdraw, the `\move' command always terminates any previous paths +and starts a new path. Commands that change line parameters (e.g. +`\setgray' or `\lpatt') also terminate paths and start new paths. The +circle, ellipse and arc commands do not affect the definition of the +current path. The `\avec' command is not appropriate for defining a +path to be filled. It ends a subpath at its tail and begins a new +subpath at its tip. Filling a region defined by a path with subpaths +is more complicated in that each subpath is closed before filling. + + +File: texdraw, Node: Drawing Segments and Scaling, Next: Using TeXdraw with LaTeX, Prev: TeXdraw Commands, Up: Top + +Drawing Segments and Scaling +**************************** + + TeXdraw provides individually scaled segments which can be used to +create relocatable drawing modules. + +* Menu: + +* Drawing segments:: +* Drawing paths:: +* Saving positions:: +* Scaling coordinates:: +* Drawing size:: +* Initial current position:: + + +File: texdraw, Node: Drawing segments, Next: Drawing paths, Up: Drawing Segments and Scaling + +Drawing segments +================ + + A TeXdraw drawing segment allows for local modifications of +parameters and relative positioning. A TeXdraw segment is delimited by +a `\bsegment' command and an `\esegment' command. Inside the segment, +the initial current position is `(0 0)'. Any changes to parameters +such as the gray level and the line width, remain local to the segment. +Segments are implemented in TeX using a `\begingroup' and `\endgroup'. +Segments can be nested. + +`\bsegment' + Start a drawing segment. The coordinate system is shifted such + that the current position corresponds to the coordinate `(0 0)'. + Changes to scaling, position and line parameters stay local to the + drawing segment. + +`\esegment' + End a drawing segment. The current position in effect before the + corresponding `\bsegment' command is restored. The scaling and + line parameter values revert to those in effect before the + corresponding `\bsegment' command was invoked. + + +File: texdraw, Node: Drawing paths, Next: Saving positions, Prev: Drawing segments, Up: Drawing Segments and Scaling + +Drawing paths +============= + + Certain subtle interactions occur between drawing segments and fill +operations. In PostScript, lines are drawn by first defining a path, +then later stroking the path to draw the line. In TeXdraw, this +stroking occurs when the line is terminated, say by a `\move' command. +PostScript paths are interrupted by, but continue after a drawing +segment. This means that a path started before a segment may not be +stroked (drawn) until after the segment ends. Consider the following +example. + \move (0 0) + \lvec (1 1) + \bsegment + \move (-0.25 -0.25) + \fcir f:0.8 r:0.5 + \esegment + \move (0 0) +A PostScript path is started at `(0 0)' and continues with a line +to `(1 1)'. This path is interrupted by the segment. The filled +circle is drawn next. After the segment, the path continues and is not +stroked until the `\move (0 0)' command after the end of the segment. +This means that the line appears on top of the filled region. + + If the fill operation is to cover the line, the path must be stroked +before the fill operation. From TeXdraw, the move commands `\move' and +`\rmove', and the end TeXdraw command `\etexdraw' terminate a path and +cause it to be stroked. Within a segment, the end segment command +`\esegment' also terminates and strokes a path. In the example above, +the line can be stroked by inserting a move command (such as a `\rmove +(0 0)' which does not affect the position), before the start of the +segment. + + +File: texdraw, Node: Saving positions, Next: Scaling coordinates, Prev: Drawing paths, Up: Drawing Segments and Scaling + +Saving positions +================ + + The `\savecurrpos' command saves the current position. The saved +position is an absolute position, not one relative to a segment. The +position saving mechanism is global; the position can be saved within a +nested segment and then used outside of the segment. The X and Y +coordinates of the position are saved separately as named coordinates. +The names are of the form `*NAME', with the leading `*' being +obligatory. A companion command, `\savepos', saves a given coordinate +(relative to the current segment) as an absolute symbolic position. + +`\savecurrpos (*PX *PY)' + Save the current position as the absolute position referenced by + `(*PX *PY)'. + +`\savepos (X Y)(*PX *PY)' + Save the coordinate position `(X Y)' as the absolute position + referenced by `(*PX *PY)'. The coordinate `(X Y)' is interpreted + in the normal fashion as a coordinate relative to the current + segment, using the current scaling factors and drawing unit. + + The symbolic names used to specify a saved position can consist of any +characters that are not special to TeX, but must start with a `*' +character. The symbolic names can be used as the X and/or Y coordinate +in any command that needs a coordinate. Symbolic coordinates are not +normally used with relative motion commands such as `\rlvec' or +`\rmove'. If used with relative motion, the corresponding displacement +is equal to the symbolic coordinate value. + + On exit from a segment, the position and graphics state on entry is +restored. Any changes to line types, scaling and position are +discarded. However, it is sometimes useful alter the position on exit +from a segment. The `\savepos' command allows for the saving of a +position within the segment. This position can be restored after the +`\esegment' with a `\move' command using the saved symbolic position. +This approach can be used to build modules which operate in a manner +analogous to the basic relative motion line vector commands. + + The following example defines a macro which draws a box 0.75 inches +wide by 0.5 inches high containing centered text. On leaving the macro +the position will be set at a point on the righthand side of the box. + \def\tbox #1{\bsegment + \lvec (0 +0.25) \lvec (0.75 +0.25) + \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0) + \textref h:C v:C \htext (0.375 0){#1} + \savepos (0.75 0)(*ex *ey) + \esegment + \move (*ex *ey)} +With this definition, we can treat `\tbox' in the same way as the +basic vector commands, stringing them together to form a block diagram +as in this example. + \centertexdraw{ + \ravec (1 0) \tbox{$H(z)$} \ravec (1 0) + } + + +File: texdraw, Node: Scaling coordinates, Next: Drawing size, Prev: Saving positions, Up: Drawing Segments and Scaling + +Scaling coordinates +=================== + + There are two scale factors available, the unit scale factor and the +segment scale factor. The overall scale factor is the product of these +two. There are absolute and relative versions of commands to change +these scale factors. + + The unit scale factor is normally used to affect global scale changes. +Changes to the unit scale factor remains local to a segment, but +propagate to inferior segments. The default value is unity. + + The segment scale factor is used for local scale changes. It remains +local to a segment. The segment scale factor is reset to unity on entry +into each segment. This means that changes to the segment scale factor +do not propagate to inferior segments. + +`\setunitscale SCALE' + Set the unit scaling to SCALE. The argument SCALE is a real + number which is used to scale coordinate values. The overall + scaling factor is the product of the unit scale factor and the + segment scale factor. + +`\relunitscale VALUE' + Adjust the unit scale factor by multiplying by VALUE. This has + the effect of multiplying the overall scale factor by the same + factor. The overall scaling factor is the product of the unit + scale factor and the segment scale factor. + +`\setsegscale SCALE' + Set the segment scale factor. The argument SCALE is a real number + which is used to scale coordinate values. The overall scale + factor is the product of the unit scale factor and the segment + scale factor. + +`\relsegscale VALUE' + Adjust the segment scale factor by multiplying by VALUE. This has + the effect of multiplying the current overall scale factor by the + same factor. The overall scaling factor is the product of the + unit scale factor and the segment scale factor. + + In addition to the unit scale factor and the segment scale factor, the +scaling can be controlled by the choice of drawing units with the +command `\drawdim' (*note Coordinate specification::). + +`\drawdim cm \setunitscale 2.54' + Set the units to centimetres scaled by 2.54. Together these + commands are effectively the same as `\drawdim in'. + + The segment scale can be used to allow scale changes in segments so +that values are in more convenient units. For example suppose +dimensions in a segment are multiples of one third of an inch. The +segment scale can be set once to make 1 drawing unit equal 0.3333 +inches. From that point on, coordinates can be specified with integer +values. + + The following example defines a macro to draw a rectangular box which +is twice as wide as it is high. The width is specified as an argument. + \def\mybox #1{\bsegment + \setsegscale #1 + \lvec (0 +0.25) \lvec (1 +0.25) \lvec (1 -0.25) + \lvec (0 -0.25) \lvec (0 0) + \esegment} + + +File: texdraw, Node: Drawing size, Next: Initial current position, Prev: Scaling coordinates, Up: Drawing Segments and Scaling + +Drawing size +============ + + The effective size of the drawing is determined by the maximum +excursions of the coordinates supplied to TeXdraw commands. The +minimum and maximum scaled X and Y coordinates are tallied. Note that +`\move' commands contribute to the determination of the calculated size +of the drawing, even though they do not generate visible lines. The +circle and ellipse commands add a compensation for the radii of circles +and ellipses. The final TeXdraw drawing is placed in a TeX box with +lower lefthand corner corresponding to `('X-min Y-min`)' and upper +righthand corner at `('X-max Y-max`)'. + + Text generated by `\htext', `\vtext' or `\rtext' can spill outside +the box as determined above. Only the text reference point is +guaranteed to be in the drawing box. Arcs can also spill outside the +drawing box. Note also that the widths of lines, and the sizes of +arrowheads do not affect the size of the drawing. The calculated size +of the drawing will never be larger than the actual size of the +drawing. In extreme cases in which text or lines extend far outside +the drawing, extra `\move' commands should be used to establish the +size of the drawing so that the TeXdraw box includes all of the drawing. + + TeXdraw provides the `\drawbb' command to draw a box which indicates +the effective size of the drawing. Whenever `\drawbb' is invoked, a +ruled box is drawn around the drawing as it has been sized up to that +point. Normally `\drawbb' is invoked just before the end of a drawing +to indicate the effective size of the final drawing. + +`\drawbb' + Draw a ruled box around the effective size of a drawing produced by + TeXdraw commands. + + +File: texdraw, Node: Initial current position, Prev: Drawing size, Up: Drawing Segments and Scaling + +Initial current position +======================== + + The first operation in a drawing should be a move to establish the +current position. The current position can be established explicitly +through a `\move' command or a text positioning command such as +`\htext' with a coordinate. However, if an attempt is made to use a +drawing command which needs a current position and none has been +established, TeXdraw implicitly sets the initial current position to +`(0 0)'. The size of the TeXdraw figure is normally determined from +the sequence of coordinates specified, but will include the implicit +initial position in case another initial position has not been +explicitly specified. + + +File: texdraw, Node: Using TeXdraw with LaTeX, Next: More Details, Prev: Drawing Segments and Scaling, Up: Top + +Using TeXdraw with LaTeX +************************ + + The LaTeX typesetting system uses a structured approach to declaring +typesetting environments. For LaTeX2e, the `texdraw' package defines +the `texdraw' environment. The TeXdraw environment is started with a +`\begin{texdraw}' command and terminated with an `\end{texdraw}' +command. All of the basic TeXdraw commands can be used within the +`texdraw' environment. + + As an example, a LaTeX2e variant of an earlier example can be +constructed as follows. + \documentclass{article} + \usepackage{texdraw} + ... + \begin{document} + ... + \newcommand{\tbox}[1]{% + \bsegment + \lvec (0 +0.25) \lvec (0.75 +0.25) + \lvec (0.75 -0.25) \lvec (0 -0.25) \lvec (0 0) + \textref h:C v:C \htext (0.375 0){#1} + \savepos (0.75 0)(*ex *ey) + \esegment + \move (*ex *ey)} + \begin{center} + \begin{texdraw} + \ravec (1 0) \tbox{$H(z)$} \ravec (1 0) + \end{texdraw} + \end{center} + ... + \end{document} + + This example illustrates the use of the LaTeX command `\newcommand' +as an alternative to the plain TeX command `\def'. Instead of the +basic TeXdraw command `\centertexdraw', a nested combination of the +LaTeX centering environment and the TeXdraw environment is used. + +* Menu: + +* PostScript printer drivers:: + + +File: texdraw, Node: PostScript printer drivers, Up: Using TeXdraw with LaTeX + +PostScript printer drivers +========================== + + The `texdraw' package uses the printer driver interface provided by +the standard LaTeX2e `graphics' package. Any options to the `texdraw' +package are passed to the `graphics' package. Specifically, the name +of the PostScript driver to be used can be specified as an option to +the `texdraw' package. With no explicit printer driver option, the +default printer driver associated with the `graphics' package is used. + + The `texdraw' package can be used with any of the printer drivers +supported by the `graphics' package that allow for the importation of +PostScript graphics files, viz., `dvips', `xdvi', `dvi2ps', `dvialw', +`dvilaser', `dvipsone', `dviwindo', `dvitops', `oztex', `psprint', +`textures', `pctexps', and `pctexwin'. Not all of these drivers +support the text rotation needed for the TeXdraw commands `\vtext' and +`\rtext'. Of the drivers listed above, only the following support +support text rotation: `dvips', `xdvi', `dvi2ps', `dvitops', +`textures', and `pctexps'. + + +File: texdraw, Node: More Details, Next: PostScript Commands, Prev: Using TeXdraw with LaTeX, Up: Top + +More Details +************ + + The first part of this chapter offers some suggestions for strategies +to isolate errors in TeX and TeXdraw input. The second part of this +chapter discusses implementational issues. An awareness of these issues +is useful if TeXdraw is to be extended. + +* Menu: + +* Errors while using TeXdraw:: +* Extending TeXdraw:: +* How TeXdraw merges graphics and text:: + + +File: texdraw, Node: Errors while using TeXdraw, Next: Extending TeXdraw, Up: More Details + +Errors while using TeXdraw +========================== + + TeX input is notoriously difficult to debug. If TeX reports errors, +so much the better. If the cause is not immediately obvious, consider +using a binary search strategy, removing sections of code with the +premature insertion of the `\bye' (or `\end{document}' for LaTeX) +command (with the appropriate closing of any open groups and the like). +Other strategies include the insertion of `\message{I am here}' at +appropriate places. Try using `\tracingmacros=1'. Many problems turn +out to be due to an incorrect number of macro arguments or incorrectly +delimited macro arguments. The `\tracingmacros=1' option writes the +macro arguments and macro expansions to the TeX log file. + + Certain errors may not manifest themselves until well after the +offending command. For instance, if a closing parenthesis is missing +from a TeXdraw coordinate, TeX continues searching for the parenthesis. +If one is found, perhaps many lines later, the TeXdraw error message +`invalid coordinate' will be printed at this later point. + + All input in the TeXdraw environment should be intended for +interpretation by TeXdraw commands. TeXdraw places text inside a zero +size box (the text itself extends outside the box). Extraneous input +manifests itself as a non-zero size TeXdraw text box. This causes the +TeXdraw text and the PostScript graphics to be displaced from one +another. An error message is issued if a non-zero width TeXdraw text +box is detected. If this error message appears, look for unintended +character sequences amongst the commands to TeXdraw. + + Several TeXdraw commands pass their arguments "raw" to the PostScript +file. That means that invalid arguments can generate PostScript errors +when the document is printed. For instance the argument of the +`\setgray' command is passed straight through to the PostScript file. +If this argument is non-numeric, a PostScript error results. Not all +PostScript printers report errors back to the user. The print may just +stop prematurely. One approach to debugging is to use a PostScript +previewer on a workstation. That way, one can determine at which point +in the drawing the PostScript error occurs. + + +File: texdraw, Node: Extending TeXdraw, Next: How TeXdraw merges graphics and text, Prev: Errors while using TeXdraw, Up: More Details + +Extending TeXdraw +================= + + TeXdraw is implemented using a combination of TeX commands and +PostScript code. This section discusses some of the implementational +issues as they relate to extending TeXdraw. + + TeXdraw as implemented, offers a basic set of drawing features. +These are adequate for certain tasks such as producing block diagrams. +There are different approaches to extending TeXdraw to include other +functions. In some cases, the desired functionality can be achieved by +writing a TeX macro which builds on top of the existing TeXdraw +commands. As these extensions become more complex, the limitations of +TeX for computations become increasingly evident. In other cases, +access to different features of PostScript is desired. The appropriate +approach would be to write new PostScript procedures which can be +accessed by TeX macros. + + Included with TeXdraw is a set of macros for directly accessing +PostScript functions. These are described in an appendix (*note +PostScript Commands::). + + TeXdraw also comes with a toolbox of routines for handling much of +the user interface, converting between different coordinate +representations and the like. The macros for coordinate decoding and +for computations involving coordinates are described in an appendix +(*note TeXdraw Toolbox: TeXdraw Toolbox.). + +* Menu: + +* Scaling:: +* Resolution:: +* Text placement:: +* Intermediate PostScript file:: + + +File: texdraw, Node: Scaling, Next: Resolution, Up: Extending TeXdraw + +Scaling +------- + + The scaling commands provided in TeXdraw are designed to affect only +the coordinate values specified in commands. For instance, changing the +`\setunitscale' value changes the interpretation of the coordinate in +an `\avec (X Y)' command, but does not change the line width or +arrowhead sizes in effect. None of the TeXdraw scaling commands affect +the size of TeX text produced by, for instance, the `\htext' command. +Scale changes will however affect the positioning of text for +subsequent commands. + + The line parameters are changed only if the corresponding commands to +change them are issued. If the `\linewd' command is given, the current +coordinate scaling is used to determine the line width. To achieve a +behaviour more like a global scaling, whenever the scale factor is +changed, the line parameters should be set again. + + +File: texdraw, Node: Resolution, Next: Text placement, Prev: Scaling, Up: Extending TeXdraw + +Resolution +---------- + + TeXdraw scales coordinates before passing them to PostScript. +Keeping track of the coordinate scaling is necessary, in any event, to +allow TeXdraw to compute the maximum excursions of the coordinates. +TeXdraw uses pixel units in its PostScript code. One pixel unit is +equal to 1/300 of an inch. TeXdraw issues PostScript commands with +integer valued pixel coordinates. This sets the positioning resolution +for TeXdraw. The passing of integer valued coordinates which +correspond to the device resolution keeps lines aligned with the device +grid; parallel lines of the same width will be rendered with the same +width. + + The position saving mechanism in TeXdraw (*note Saving positions::) +associates the pixel coordinates of a position with the specified name. + + TeXdraw uses the limited real number representation provided by TeX. +These operations are based on the representation of dimensions as +real-valued numbers of points. Internally in TeX, dimensions are +stored 32-bit values, normalized so that 1 pt corresponds to the scaled +point (sp) value of 65536. Dimensions with magnitudes between 0.000015 +pt and 32767 pt can be represented. This is also the dynamic range of +the TeXdraw pixel coordinates passed to PostScript. TeXdraw must +convert from user supplied coordinates using the scaling factor (which +itself consists of two components, the unit scale and the segment scale) +and a pixel conversion factor. The use of limited precision real +numbers in these computations can cause accumulation of error when +relative scaling is used repeatedly. + + +File: texdraw, Node: Text placement, Next: Intermediate PostScript file, Prev: Resolution, Up: Extending TeXdraw + +Text placement +-------------- + + While in the TeXdraw environment, TeX text is placed in a TeX box +while PostScript code is written to the intermediate file. At the end +of the TeXdraw environment, the size of the drawing is determined. A +TeX box of this size is created. The TeX `\special' mechanism is used +to instruct the PostScript driver program to position the PostScript +drawing from the intermediate file in this area. Next, the text +generated by TeXdraw is positioned and placed in the box. Note that +when the document is printed, the PostScript drawing is placed on the +page before the TeX text; TeX text will appear on top of graphics. + + The rotation of text is carried out with in-line PostScript code which +does not appear in the intermediate PostScript file. This code is sent +to the PostScript driver with a `\special' command. This PostScript +code is embedded in the dvi (device independent) file that TeX produces. + + +File: texdraw, Node: Intermediate PostScript file, Prev: Text placement, Up: Extending TeXdraw + +The intermediate PostScript file +-------------------------------- + + The intermediate PostScript file consists of a header, a body and a +trailer following Encapsulated PostScript File (EPSF) standards. The +header sets up PostScript definitions and default parameter values. The +trailer includes the `BoundingBox' information which gives the +coordinates in default PostScript units (72 per inch) for the lower +lefthand corner and the upper righthand corner of the drawing. The body +of the intermediate PostScript file contains the PostScript commands +generated by TeXdraw. + + Many moves in TeXdraw serve only to position text or to reset saved +positions. TeXdraw buffers move commands in order to be able to +collapse runs of moves. Only the last move of a run of moves is +actually written to the PostScript file. However the intermediate moves +still affect the size of the drawing. The expunging of moves means that +the PostScript file `BoundingBox' information may indicate a drawing +size larger than the PostScript commands themselves would warrant. + + Drawing segments in TeXdraw show up in the PostScript file as saves +and restores of the PostScript graphics state. Segment starts are +buffered and only written out if necessary. This way "empty" segments +do not generate output to the PostScript file. These empty segments +arise if a segment contains only moves and text commands. The moves +inside the segment are not needed since they are local to the segment, +and the text commands do not generate output to the PostScript file. + + If TeXdraw is used only for moves and text, no intermediate +PostScript file will be created. + + +File: texdraw, Node: How TeXdraw merges graphics and text, Prev: Extending TeXdraw, Up: More Details + +How TeXdraw merges graphics and text +==================================== + + TeXdraw creates a box which is the same size as the graphic. The +printer driver will place the PostScript graphic into this space. Any +TeX text generated by the TeXdraw commands will be superimposed on this +graphic. + + The LaTeX2e front-end for TeXdraw is enabled by including the +`texdraw' package. The `texdraw' package automatically invokes the +standard `graphics' package distributed with LaTeX2e. The `graphics' +package has support for a number of different printer drivers, +including a number for PostScript printers. Any options to the +`texdraw' package are passed on to the `graphics' package. Such an +option can be used to select a driver other than the default one. + + Within the `graphics' package, the driver option is used to select +definitions for the low-level macros which generate the `\special' +commands needed to request insertion of a graphics file and to rotate +text.(1) TeXdraw uses the user-level macros defined by the `graphics' +package (*note PostScript printer drivers::). When not used with the +LaTeX2e front-end, TeXdraw defines versions of these macros that are +suitable for use with the `dvips' printer driver. + + ---------- Footnotes ---------- + + (1) Not all PostScript drivers support text rotation. + + +File: texdraw, Node: PostScript Commands, Next: TeXdraw Toolbox, Prev: More Details, Up: Top + +PostScript Commands +******************* + + This appendix describes a set of macros for accessing some of the +PostScript builtin functions. Each of these macros issues a single +PostScript command. The extra services provided by TeXdraw are the +interpretation of coordinates in user units relative to the current +drawing segment and the writing of a pending TeXdraw move to the +PostScript file. This last operation establishes the current point in +PostScript. The user of these commands should be familiar with the +concepts of path construction and filling in PostScript. Further +details on the PostScript functions used can found in the `PostScript +Language Reference Manual, Second Edition', Adobe Systems, +Addison-Wesley, 1990. + + These macros are distributed in file `txdps.tex'. + + The `\PSsetlinecap' and `\PSsetlinejoin' commands control the way +line ends and line joins are rendered. The default values set by +TeXdraw (round caps and round join) are appropriate for most drawings. +Changes to these parameters apply to the current and subsequent paths. + +`\PSsetlinecap TYPE' + Set the line cap parameter. The value `0' gives a butt cap; `1' + gives a round cap; and `2' gives a projecting square cap. The + initial value is corresponds to a round cap. + +`\PSsetlinejoin TYPE' + Set the line join parameter. The value `0' gives a miter join; + `1' gives a round join; and `2' gives a bevel join. The initial + value corresponds to a round join. + + PostScript paths and fill operations can be controlled by a number of +functions. By design, TeXdraw always maintains a defined PostScript +current point. Some of the following macros cause the PostScript +current point to become undefined. The PostScript current point must be +set again (say with a `\PSmoveto' command) before invoking basic +TeXdraw commands. +`\PSstroke' + Stroke a PostScript path. The current path is stroked with the + current gray level (set with `\setgray') and the current line + pattern (set with `\lpatt'). The PostScript current point becomes + undefined. + +`\PSnewpath' + Establish a new path. The PostScript current point becomes + undefined. + +`\PSclosepath' + Close a subpath. A new subpath is started. + +`\PSfill' + Fill a region defined by a path. Each subpath is closed and the + enclosed regions painted with the current gray level. The + PostScript current point becomes undefined. The gray level can be + set with the TeXdraw command `\setgray'. + + The following line commands interpret coordinates relative to the +current TeXdraw scaling and drawing segment. The specified coordinate +affects the drawing size as determined by TeXdraw. +`\PSlineto (X Y)' + Add a line segment to the current path. This command is identical + to the TeXdraw command `\lvec'. The PostScript current point must + be defined before this command is issued. + +`\PSmoveto (X Y)' + Move to the coordinate specified by `(X Y)'. The PostScript + current point becomes defined. + + The following macros provide access to the general arc commands in +PostScript. The coordinates are interpreted relative to the current +TeXdraw scaling and drawing segment. The specified coordinate affects +the drawing size as determined by TeXdraw. +`\PSarc r:RADIUS sd:START-ANGLE ed:END-ANGLE (X Y)' + Draw a counterclockwise arc. The center of the arc is at the given + position. The radius is specified by RADIUS. The start and end + angles (in degrees) are specified by START-ANGLE and END-ANGLE. + If the PostScript current point is defined, this command also + draws the line from the current point to the beginning of the arc. + The line and arc become part of the current path. The current + point becomes defined. + +`\PSarcn r:RADIUS sd:START-ANGLE ed:END-ANGLE (X Y)' + Draw a clockwise arc. The center of the arc is at the given + position. The radius is specified by RADIUS. The start and end + angles (in degrees) are specified by START-ANGLE and END-ANGLE. + If the PostScript current point is defined, this command also + draws the line from the current point to the beginning of the arc. + The line and arc become part of the current path. The current + point becomes defined. + + The macro `\writeps' provides the general facility to write arbitrary +PostScript commands to the PostScript file. This macro is used by the +preceding commands and by the TeXdraw commands themselves. This +facility has to be used with care since changes in position or scaling +resulting from the PostScript commands are not known to TeXdraw. +`\writeps {<PS-COMMANDS>}' + Write PostScript commands to the intermediate PostScript file. + Before the commands are inserted, any pending TeXdraw move is + written to the PostScript file. The PostScript scaling gives 300 + units/inch. + + +File: texdraw, Node: TeXdraw Toolbox, Next: Examples, Prev: PostScript Commands, Up: Top + +TeXdraw Toolbox +*************** + + This appendix describes some of the macros supplied with TeXdraw +which can be used to define additional commands for creating drawings. +The macros described here work in the user specified coordinate system. +Some of these toolbox macros are used by the TeXdraw commands +themselves, others are supplied in an auxiliary file `txdtools.tex'. + +* Menu: + +* Coordinate parsing:: +* Real arithmetic:: +* Arrow curve:: + + +File: texdraw, Node: Coordinate parsing, Next: Real arithmetic, Up: TeXdraw Toolbox + +Coordinate parsing +================== + + The coordinate parsing macro `\getpos' is useful for creating new +commands. This macro takes care of stripping leading and trailing +blanks from coordinates specified between parentheses. In addition, +symbolic coordinates are translated to the corresponding relative +coordinate using the segment offset and scaling in effect. + + The macro `\currentpos' returns the relative coordinates of the +current position. The returned values are relative to the current +segment and the current scaling. The macro `\cossin' returns the +real-valued cosine and sine of the direction of the line joining two +points. The macro `\vectlen' returns the length of a vector. The +results appear as the value of user supplied macro names. + +`\getpos (X Y)\MX\MY' + Decode coordinate values. The coordinates specified by `(X Y)' are + decoded. Symbolic coordinates are translated to the corresponding + relative coordinate using the current segment offset and scaling. + The resulting character strings representing the real-valued + coordinates are assigned to the macros specified by `\MX' and + `\MY'. + +`\currentpos \MX\MY' + Return the coordinates of the current position. The coordinates + are relative to the current segment offset and scaling. The + resulting character strings representing the real-valued + coordinates are assigned to the macros specified by `\MX' and + `\MY'. + +`\cossin (X1 Y1)(X2 Y2)\COSA\SINA' + Return the cosine and sine of the direction of a vector joining two + points. The cosine and sine of the angle of the vector which goes + from `(X1 Y1)' to `(X2 Y2)'. The character strings representing + these real-valued quantities are assigned to the macros specified + by `\COSA' and `\SINA'. + +`\vectlen (X1 Y1)(X2 Y2)\LEN' + Return the length of a vector joining two points. The length of + the vector is relative to the current scaling. The character + string representing the real-valued length is assigned to the + macro specified by `\LEN'. + + +File: texdraw, Node: Real arithmetic, Next: Arrow curve, Prev: Coordinate parsing, Up: TeXdraw Toolbox + +Real arithmetic +=============== + + The TeXdraw toolbox supplies macros to perform real arithmetic on +coordinate values. The result appears as the value of a user supplied +macro name. +`\realadd {VALUE1} {VALUE2} \SUM' + Add two real quantities, assigning the resultant character string + representing the sum to the macro `\SUM'. + +`\realmult {VALUE1} {VALUE2} \PROD' + Multiply two real quantities, assigning the resultant character + string representing the product to the macro `\PROD'. + +`\realdiv {VALUE1} {VALUE2} \RESULT' + Divide two real quantities, assigning the resultant character + string representing the result of VALUE1/VALUE2 to the macro + `\RESULT'. + + +File: texdraw, Node: Arrow curve, Prev: Real arithmetic, Up: TeXdraw Toolbox + +Arrow curve +=========== + + This example illustrates the use of the TeXdraw toolbox routines to +do computations with the coordinates. The problem will be tackled in +two parts. First, we will produce a macro to place an arrowhead on a +Bezier curve. Then given this macro, we will produce a macro which can +draw a "wiggly" line from the current position to a given coordinate. + + The first macro, `\cavec', uses the `\cossin' command to determine +the the cosine and sine of the angle of the line joining the second +control point to the end point of the Bezier curve. Recall that the +Bezier curve is tangent to this line at the end point. After drawing +the Bezier curve, the scaling is set locally to absolute units of 0.05 +inches. We go back down the line from the end point by 0.05 inches and +draw an arrow vector to the end point from there. This arrow vector is +mostly arrowhead, with little or no tail. + + \def\cavec (#1 #2)(#3 #4)(#5 #6){ + \clvec (#1 #2)(#3 #4)(#5 #6) + \cossin (#3 #4)(#5 #6)\cosa\sina + \rmove (0 0) + \bsegment + \drawdim in \setsegscale 0.05 + \move ({-\cosa} -\sina) \avec (0 0) + \esegment} + + Note the use of macros as arguments to a `\move' command. Minus +signs are put in front of the macros. However, the value of the macro +`\cosa' or `\sina' could be negative. Fortunately, TeX accepts two +minus signs in a row and interprets the result as positive. Note that +the `\rmove (0 0)' command before the beginning of the segment ensures +that the Bezier curve is stroked before the arrowhead is drawn. + + The second macro `\caw' builds on `\cavec'. The goal is to produce a +wiggly vector that can be used as a pointer in a drawing. Consider the +following symmetrical normalized Bezier curve. + \centertexdraw{ \move (0 0) \cavec (1.4 0.1)(-0.4 -0.1)(1 0) } + + This curve has the appropriate wiggle. Now we want to be able to draw +this curve, appropriately scaled and rotated. The macro `\caw' needs +to do computations on the coordinates. First, `\caw' uses the macros +`\getpos' and `\currentpos' to get the positions of the end and start +of the curve. Next, the length of the vector is calculated using the +macro `\vectlen'. A local macro `\rotatecoord' is used to rotate a +coordinate pair about the origin, using the cosine and sine of the +rotation angle. The vector length is used to scale the normalized +curve. The remaining code draws the rotated, normalized curve. + + \def\caw (#1 #2){ + \currentpos \xa\ya + \cossin ({\xa} \ya)(#1 #2)\cosa\sina + + % The nominal wiggly curve is (0 0) (1+dx dy) (-dx -dy) (1 0) + % Find the rotated offset (dx dy) -> (du dv) + \rotatecoord (0.4 0.1)\cosa\sina \du\dv + + % calculate the length of the vector + \vectlen ({\xa} \ya)(#1 #2)\len + + % draw the curve in normalized units + \bsegment + \setsegscale {\len} + \realadd \cosa \du \tmpa \realadd \sina \dv \tmpb + \cavec ({\tmpa} \tmpb)({-\du} -\dv)({\cosa} \sina) + \esegment + \move (#1 #2)} + + % rotate a coordinate (x y) + % arguments: (x y) cosa sina x' y' + % x' = cosa * x - sina * y; y' = sina * x + cosa * y + \def\rotatecoord (#1 #2)#3#4#5#6{ + \getpos (#1 #2)\xarg\yarg + \realmult \xarg {#3} \tmpa \realmult \yarg {#4} \tmpb + \realadd \tmpa {-\tmpb} #5 + \realmult \xarg {#4} \tmpa \realmult \yarg {#3} \tmpb + \realadd \tmpa \tmpb #6} + + Finally, the new macro can be used as follows. + \centertexdraw{ + \arrowheadtype t:W + \move (0 0) + \cavec (1.4 0.1)(-0.4 -0.1)(1 0) + \move (1 0) \caw (1 1) \htext{tip at \tt (1 1)} + \move (1 0) \caw (2 1) \htext{tip at \tt (2 1)} + \move (1 0) \caw (2 0) \htext{tip at \tt (2 0)} + + } + + Note that the Bezier curve in the macro `\cavec' lies below the +arrowhead. The example then draws an arrowhead of type `W' to erase +the part of the line below the arrowhead. + + +File: texdraw, Node: Examples, Next: Command Listing, Prev: TeXdraw Toolbox, Up: Top + +Examples +******** + + This appendix shows examples of the use of TeXdraw. + +* Menu: + +* Block diagram:: +* Filter response graph:: +* Geometric construction:: + + +File: texdraw, Node: Block diagram, Next: Filter response graph, Up: Examples + +Block diagram of a lattice filter +================================= + + The block diagram of a lattice filter uses a library of extended +commands built from the basic TeXdraw commands. + + The block diagram uses a "delay" block. This is defined as a segment +which leaves the current position at the end of this block. A second +macro, `\bdot', draws a "big" dot which is used to mark junctions of +lines. The `\Ttext' command centers text above a given point. The +offset to position the text is local to a segment, resulting in no +change to the current point. Similar macros to position text below a +point (`\Btext'), to the left of a point (`\Ltext') and to the right of +a point (`\Rtext') are used in the final drawing. + \def\delay {\bsegment + \setsegscale 0.3 + \lvec (0 +0.5) \lvec (1 +0.5) \lvec (1 -0.5) + \lvec (0 -0.5) \lvec (0 0) + \textref h:C v:C \htext (0.5 0){$z^{-1}$} + \savepos (1 0)(*ex *ey) + \esegment + \move (*ex *ey)} + \def\bdot {\fcir f:0 r:0.02 } + \def\Ttext #1{\bsegment + \textref h:C v:B \htext (0 +0.06){#1} + \esegment} + + Several of the block diagram elements scale with the size of the +summing nodes. The radius of the circles for the summing nodes is +defined as the macro `\cradius'. The summing nodes will have enclosed +plus signs, appropriately scaled. The plus sign is drawn by the macro +`\pluss'. The macro `\pcir' draws both the circle and the plus sign. +The incoming lines to a summing node will be labelled with plus or +minus signs (characters this time), placed at the appropriate position +with respect to the center of the summing node. These positions are +given in terms of compass directions. The macro `\putwnw' places text +west by north-west relative to the center of the summing node. + \def\cradius {0.08} + \def\pluss {\bsegment + \setsegscale {\cradius} + \move (-0.5 0) \lvec (+0.5 0) + \move (0 -0.5) \lvec (0 +0.5) + \esegment} + \def\pcir {\lcir r:{\cradius} \pluss} + \def\puttext (#1 #2)#3{\bsegment + \setsegscale {\cradius} + \textref h:C v:C \htext (#1 #2){#3} + \esegment} + \def\putwnw #1{\puttext (-1.7 +1.2){#1}} + + The block diagram has vectors arriving and departing from the summing +nodes (circles). One could calculate the points of intersection of the +lines with the circles, and then enter the values into the TeXdraw +code. However, in this example, we implement an automated procedure. +Two macros are needed, an arrow vector to a circle (`\avectoc') and an +arrow vector leaving from a circle (`\avecfrc'). The macros will +calculate the point of intersection with the circle and start or end +the vector at the intersection point. + + The arrow macros use scaling and relative positioning inside of a +drawing segment. In the case of the macro `\avectoc', a move is made +to the final point (center of the circle), then within a drawing +segment, a scaled move is made back towards the initial point to +determine the intersection point with the circle. + + \def\avectoc (#1 #2){\currentpos \xa\ya + \cossin ({\xa} \ya)(#1 #2)\cosa\sina + \savepos (#1 #2)(*tx *ty) + \bsegment + \move (*tx *ty) + \setsegscale {\cradius} + \rmove ({-\cosa} -\sina) + \savecurrpos (*ex *ey) + \esegment + \avec (*ex *ey) + \move (#1 #2)} + \def\avecfrc (#1 #2){\currentpos \xa\ya + \cossin ({\xa} \ya)(#1 #2)\cosa\sina + \bsegment + \setsegscale {\cradius} + \move ({\cosa} \sina) + \savecurrpos (*ex *ey) + \esegment + \move (*ex *ey) + \avec (#1 #2)} + + Having defined these macros, we are ready to draw the block diagram. +The first and last sections of the lattice filter are very similar, +differing mainly in the text labels. With more effort, code could be +shared between the commands used to draw these blocks. + \centertexdraw{ + \drawdim in + \arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 + \def\pl {$\scriptscriptstyle +$} \def\mn {$\scriptscriptstyle -$} + + \move (0 +0.63) \move (0 -0.60) \move (0 0) % compensate for the text size + + % Input to the first stage + \bsegment + \Ltext{$x(n)$} + \lvec (0.3 0) \bdot \lvec (0.3 +0.4) \move (0.3 0) \lvec (0.3 -0.4) + \savepos (0.3 0)(*ex *ey) + \esegment + \move (*ex *ey) + + % first lattice stage + \bsegment + \move (0 +0.4) \avectoc (1.7 +0.4) + \pcir \putwnw{\pl} \puts{\mn} + \avecfrc (2.1 +0.4) + \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) + \pcir \putwsw{\pl} \putn{\mn} + \avecfrc (2.1 -0.4) + \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) + \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) + \move (0.1 +0.42) \Ttext {$f_0(n)$} + \move (2.0 +0.42) \Ttext {$f_1(n)$} + \move (0.1 -0.4) \Btext {$b_0(n)$} + \move (2.0 -0.4) \Btext {$b_1(n)$} + \textref h:L v:B \htext (1.15 +0.2){$K_1$} + \textref h:L v:T \htext (1.15 -0.2){$K_1$} + \savepos (2.1 0)(*ex *ey) + \esegment + \move (*ex *ey) + + % center section + \bsegment + \textref h:C v:C \htext (0.3 +0.4){$\cdots$} + \htext (0.3 -0.4){$\cdots$} + \savepos (0.6 0)(*ex *ey) + \esegment + \move (*ex *ey) + + % last lattice stage + \bsegment + \move (0 +0.4) \avectoc (1.7 +0.4) + \pcir \putwnw{\pl} \puts{\mn} + \avecfrc (2.3 +0.4) \Rtext{$e(n)$} + \move (0 -0.4) \avec (0.4 -0.4) \delay \avectoc (1.7 -0.4) + \pcir \putwsw{\pl} \putn{\mn} + \avecfrc (2.1 -0.4) + \move (0.9 +0.4) \bdot \avectoc (1.7 -0.4) + \move (0.9 -0.4) \bdot \avectoc (1.7 +0.4) + \move (0.1 +0.42) \Ttext {$f_{P-1}(n)$} + \move (2.0 +0.42) \Ttext {$f_P(n)$} + \move (0.1 -0.4) \Btext {$b_{P-1}(n)$} + \move (2.0 -0.4) \Btext {$b_P(n)$} + \textref h:L v:B \htext (1.15 +0.2){$K_P$} + \textref h:L v:T \htext (1.15 -0.2){$K_P$} + \esegment + } + + The macros used in this example are similar to the block diagram +macros defined in the file `blockdiagram.tex'. + + +File: texdraw, Node: Filter response graph, Next: Geometric construction, Prev: Block diagram, Up: Examples + +Filter response graph +===================== + + This example shows the response of a canonical filter. TeXdraw is +not well suited for general purpose graphing -- it has no coordinate +translation facility nor does it have separate X and Y scaling. +Nonetheless, for certain simple graphs, TeXdraw is adequate. + + In this example, macro `\ticklab' places a labelled axis tick at a +given position. The data is specified in a straightforward manner, +having been scaled beforehand to give the desired aspect ratio for the +graph. + + \centertexdraw{ + \arrowheadtype t:F \arrowheadsize l:0.08 w:0.04 + \def\ds {\displaystyle} + \def\ticklab (#1 #2)#3{\move(#1 #2) + \bsegment + \lvec (0 0.05) + \textref h:C v:T \htext (0 -0.05){#3} + \esegment} + \def\Rtext #1{\bsegment + \textref h:L v:C \htext (+0.08 0){#1} + \esegment} + + \move (2.4 -0.3) % move to set the size + + \move (0 0) + % Axes + \avec (0 +1.4) + \move (0 0) \avec (2.2 0) \Rtext{$\omega$} + \ticklab (0 0) {0} + \ticklab (0.8 0) {$\ds {\pi \over 2N} $} + \ticklab (1.2 0) {$\omega_s$} + \ticklab (1.6 0) {$\ds {\pi \over N} $} + + \linewd 0.025 + \move (0 1) + \lvec (0.4 1) + \lvec (0.44 0.998) + \lvec (0.48 0.988) + \lvec (0.52 0.973) + \lvec (0.56 0.951) + ... + \lvec (1.08 0.233) + \lvec (1.12 0.156) + \lvec (1.16 0.078) + \lvec (1.20 0) + \lvec (1.9 0) + } + + +File: texdraw, Node: Geometric construction, Prev: Filter response graph, Up: Examples + +Geometric construction +====================== + + This example shows a geometric construction which places an ellipse +tangent to an enclosing circle. The size of the ellipse is determined +from geometric considerations. Macros are used to modularize the code. +The example alters the unit scale factor. This allows the drawing to be +carried out in units normalized to the radius of the circle. + + \centertexdraw{ + \arrowheadtype t:V \arrowheadsize l:0.08 w:0.04 + \linewd 0.01 + \setunitscale 1.5 % circle will have radius 1.5 inches + + \def\Btext #1{\bsegment + \textref h:C v:T \htext (0 -0.04){#1} + \esegment} + \def\Ttext #1{\bsegment + \textref h:C v:B \htext (0 +0.04){#1} + \esegment} + \def\Ltext #1{\bsegment + \textref h:R v:C \htext (-0.04 0){#1} + \esegment} + \def\bdot {\fcir f:0 r:0.0133 } + \def\vtick {\bsegment + \move (0 -0.05) \lvec (0 +0.05) + \esegment} + \def\htick {\bsegment + \move (-0.05 0) \lvec (+0.05 0) + \esegment} + \def\Hlen #1#2{\bsegment + \vtick \avec ({#1} 0) \vtick \avec (0 0) + \relsegscale 0.5 + \move ({#1} 0) \Ttext {#2} + \esegment} + \def\Vlen #1#2{\bsegment + \htick \avec (0 {#1}) \htick \avec (0 0) + \relsegscale 0.5 + \move (0 {#1}) \Ltext {#2} + \esegment} + + \lcir r:1 % circle + \move (-1.05 0) \lvec ( 1.05 0) % axes + \move (0 -1.05) \lvec (0 1.05) + + \move (0 0) \lvec (0.707 0.707) \bdot + \rmove (0.02 0.02) \textref h:L v:B \htext {X} + \move (0.707 -0.707) \bdot + \textref h:R v:T \htext(-0.02 -0.02){O} + + \move (0.5 0) % center of ellipse + \bsegment + \lellip rx:0.435 ry:0.804 + \bdot \Btext {$\beta_2$} + \move (0 0.15) \Hlen {0.435}{$|\beta_1{+}\beta_3|$} + \move (-0.7 0) \Vlen {0.804}{$|\beta_1{-}\beta_3|$} + \esegment + } + + +File: texdraw, Node: Command Listing, Next: Command Index, Prev: Examples, Up: Top + +Alphabetic listing of commands +****************************** + +`\arrowheadsize l:LENGTH w:WIDTH' + Set the arrowhead size to be LENGTH units long and WIDTH units + wide. The width is measured across the "base" of the arrowhead. + The initial arrowhead size has a LENGTH of 0.16 inches and a WIDTH + of 0.08 inches. + +`\arrowheadtype t:TYPE' + Set the arrowhead type to TYPE, where TYPE is one of `F', `T', + `W', `V', or `H'. There are two kinds of arrowheads. The first + kind is a triangle. There are 3 variants: type `T' is an empty + triangle, type `F' is a filled triangle (using the current gray + level for lines), type `W' is a triangle filled with white. The + second kind of arrowhead is an open ended Vee. There are 2 + variants: type `V' has the stem continue to the tip, type `H' has + the stem stop at the base of the arrowhead. The initial arrowhead + type is `T'. + +`\avec (X Y)' + Draw a line with an arrowhead from the current position to `(X + Y)'. The new current position is `(X Y)'. The arrowhead is + aligned with the line, with the tip at `(X Y)'. + +`\begin{texdraw}' + Start a TeXdraw drawing. The drawing is terminated with an + `\end{texdraw}' command. This command is for use with LaTeX. + +`\bsegment' + Start a drawing segment. The coordinate system is shifted such + that the current position corresponds to the coordinate `(0 0)'. + Changes to scaling, position and line parameters stay local to the + drawing segment. + +`\btexdraw' + Start a TeXdraw drawing. The drawing is terminated with an + `\etexdraw' command. + +`\centertexdraw { ... }' + Center a TeXdraw box. The argument contains TeXdraw commands. + The resulting box has the horizontal size `\hsize' and height equal + to the height of the drawing. + +`\clvec (X1 Y1)(X2 Y2)(X3 Y3)' + Draw a Bezier curve from the current position to the coordinate + `(X3 Y3)' which becomes the new current position. The coordinates + `(X1 Y1)' and `(X2 Y2)' serve as control points for the curve. + Only the last coordinate given is used to update the size of the + drawing. + +`\drawbb' + Draw a ruled box around the effective size of a drawing produced by + TeXdraw commands. + +`\drawdim DIM' + Set the units to DIM. The argument DIM can be any valid TeX + dimension unit. The units are used to interpret coordinate + values. Examples of valid units: `cm', `mm', `in', `pt', and `bp'. + +`\end{texdraw}' + End a TeXdraw drawing started with a `\begin{texdraw}' command. + The resulting TeXdraw drawing is placed in a box with height equal + to the height of the drawing and width equal to the width of the + drawing. The depth of the box is zero. This command is for use + with LaTeX. + +`\esegment' + End a drawing segment. The current position in effect before the + corresponding `\bsegment' command is restored. The scaling and + line parameter values revert to those in effect before the + corresponding `\bsegment' was invoked. + +`\etexdraw' + End a TeXdraw drawing started with a `\btexdraw' command. The + resulting TeXdraw drawing is placed in a box with height equal to + the height of the drawing and width equal to the width of the + drawing. The depth of the box is zero. + +`\everytexdraw { ... }' + Specify TeXdraw commands to be executed at the beginning of every + TeXdraw drawing. + +`\fcir f:LEVEL r:RADIUS' + Draw a filled circle with center at the current position. The + radius is specified by RADIUS. The circle is painted with the + gray level specified by LEVEL. A gray level of 1 corresponds to + white, with decreasing values getting darker. The level 0 is full + black. This command does not draw a line along the circumference. + The drawing size is increased if necessary to contain the circle. + +`\fellip f:LEVEL rx:X-RADIUS ry:Y-RADIUS' + Draw a filled ellipse with center at the current position. The + radius in the X direction is specified by X-RADIUS. The radius in + the Y direction is specified by Y-RADIUS. The ellipse is painted + with the gray level specified by LEVEL. A gray level of 1 + corresponds to white, with decreasing values getting darker. The + level 0 is full black. This command does not draw a line along + the boundary of the ellipse. The drawing size is increased if + necessary to contain the ellipse. + +`\htext (X Y){TEXT}' +`\htext {TEXT}' + The first form of this command places the TeX text TEXT + horizontally with the text reference point at the coordinate `(X + Y)'. The new current position is `(X Y)'. The second form of + this command places the TeX text TEXT horizontally with the text + reference point at the current position. The text reference point + is set with the `\textref' command. + +`\ifill f:LEVEL' + Close the current path and paint the interior of the region with + gray level LEVEL. The line around the path is not drawn. Gray + levels are real values from 0 (black) through intermediate values + (grays) to 1 (white). + +`\larc r:RADIUS sd:START-ANGLE ed:END-ANGLE' + Draw a counterclockwise arc. The center of the arc is at the + current position. The radius is specified by RADIUS. The start + and end angles (in degrees) are specified by START-ANGLE and + END-ANGLE. This command does not affect the limits (size) of the + drawing. + +`\lcir r:RADIUS' + Draw a circle with center at the current position. The radius is + specified by RADIUS. This command draws a line along the + circumference of the circle. The drawing size is increased if + necessary to contain the circle. + +`\lellip rx:X-RADIUS ry:Y-RADIUS' + Draw an ellipse with center at the current position. The radius + in the X direction is specified by X-RADIUS. The radius in the Y + direction is specified by Y-RADIUS. The drawing size is increased + if necessary to contain the ellipse. + +`\lfill f:LEVEL' + Close the current path, draw the line around the path using the + current grey level for lines and paint the interior of the region + with specified gray level LEVEL. Gray levels are real values from + 0 (black) through intermediate values (grays) to 1 (white). + +`\linewd WIDTH' + Set the line width to WIDTH units. Initially WIDTH is 0.01 inches + (corresponding to 3 pixels at 300 pixels to the inch). + +`\lpatt (PATTERN)' + Set lines to have the pattern `(PATTERN)'. A pattern is a + sequence of on/off lengths separated by blanks and enclosed in + parentheses. The lengths alternately specify the length of a dash + and the length of a gap between dashes. Each length is + interpreted using the current scaling and drawing units. The + pattern is used cyclically. The empty pattern signifies a solid + line. The initial line pattern is a solid line, corresponding to + the empty pattern `\lpatt ()'. + +`\lvec (X Y)' + Draw a line from the current position to coordinate `(X Y)'. The + new current position is `(X Y)'. + +`\move (X Y)' + Move to coordinate `(X Y)'. The new current position is `(X Y)'. + +`\ravec (DX DY)' + Draw a line with an arrowhead from the current position, DX units + in the X direction and Y units in the Y direction. The final + position becomes the new current position. The arrowhead is + aligned with the line, with the tip at the new current position. + +`\relsegscale VALUE' + Adjust the segment scale factor by multiplying by VALUE. This has + the effect of multiplying the current overall scale factor by the + same factor. The overall scaling factor is the product of the + unit scale factor and the segment scale factor. + +`\relunitscale VALUE' + Adjust the unit scale factor by multiplying by VALUE. This has + the effect of multiplying the overall scale factor by the same + factor. The overall scaling factor is the product of the unit + scale factor and the segment scale factor. + +`\rlvec (DX DY)' + Draw a line from the current position, DX units in the X direction + and DY units in the Y direction. The final position becomes the + new current position. + +`\rmove (DX DY)' + Move from the current position, DX units in the X direction and DY + units in the Y direction. The final position becomes the new + current position. + +`\rtext td:ANGLE (x y){TEXT}' +`\rtext td:ANGLE {TEXT}' + The first form of this command places the TeX text TEXT at an + angle with the text reference point at the coordinate `(X Y)'. + The new current position is `(X Y)'. The second form of this + command places the TeX text TEXT at an angle with the text + reference point at the current position. In both cases, the TeX + text is placed in a box and the box is rotated counterclockwise by + ANGLE degrees about the text reference point. The text reference + point is set with the `\textref' command. + +`\savecurrpos (*PX *PY)' + Save the current position as the absolute position referenced by + `(*PX *PY)'. + +`\savepos (X Y)(*PX *PY)' + Save the coordinate position `(X Y)' as the absolute position + referenced by `(*PX *PY)'. The coordinate `(X Y)' is interpreted + in the normal fashion as a coordinate relative to the current + segment, using the current scaling factors and drawing unit. + +`\setgray LEVEL' + Set the gray level of lines. Gray levels are real values from 0 + (black) through intermediate values (gray) to 1 (white). The + initial gray level is 0 corresponding to black. + +`\setsegscale SCALE' + Set the segment scale factor. The argument SCALE is a real number + which is used to scale coordinate values. The overall scale + factor is the product of the unit scale factor and the segment + scale factor. + +`\setunitscale SCALE' + Set the unit scaling to SCALE. The argument SCALE is a real + number which is used to scale coordinate values. The overall + scaling factor is the product of the unit scale factor and the + segment scale factor. + +`\texdrawbox { ... }' + Create a TeXdraw box. The argument contains TeXdraw commands. + This macro returns a TeX box with height equal to the height of the + drawing and width equal to the width of the drawing. The depth of + the box is zero. + +`\textref h:H-REF v:V-REF' + Set the text reference point for subsequent text commands. The + horizontal reference point H-REF is one of `L', `C' or `R' (left, + center or right). The vertical reference point V-REF is one of + `T', `C' or `B' (top, center or bottom). For rotated text, the + reference point is determined before rotation. The initial text + reference point corresponds to `\textref h:L v:B'. + +`\vtext (x y){TEXT}' +`\vtext {TEXT}' + The first form of this command places the TeX text TEXT vertically + with the text reference point at the coordinate `(X Y)'. The new + current position is `(X Y)'. The second form of this command + places the TeX text TEXT vertically with the text reference point + at the current position. In both cases, the TeX text is placed in + a box and the box is rotated counterclockwise by 90 degrees about + the text reference point. The text reference point is set with + the `\textref' command. + + + +File: texdraw, Node: Command Index, Next: Concept Index, Prev: Command Listing, Up: Top + +Command Index +************* + +* Menu: + +* \arc: Circles and arcs. +* \arrowheadsize: Line vectors. +* \arrowheadtype: Line vectors. +* \avec: Line vectors. +* \begin{texdraw}: Accessing TeXdraw. +* \bsegment: Drawing segments. +* \btexdraw: Accessing TeXdraw. +* \centertexdraw: Accessing TeXdraw. +* \clvec: Bezier curves. +* \cossin: Coordinate parsing. +* \currentpos: Coordinate parsing. +* \drawbb: Drawing size. +* \drawdim: Coordinate specification. +* \end{texdraw}: Accessing TeXdraw. +* \esegment: Drawing segments. +* \etexdraw: Accessing TeXdraw. +* \everytexdraw: Accessing TeXdraw. +* \fcir: Circles and arcs. +* \fellip: Circles and arcs. +* \getpos: Coordinate parsing. +* \htext: TeX text. +* \ifill: Fill commands. +* \lcir: Circles and arcs. +* \lellip: Circles and arcs. +* \lfill: Fill commands. +* \linewd: Line vectors. +* \lvec: Line vectors. +* \move: Line vectors. +* \PSarc: PostScript Commands. +* \PSarcn: PostScript Commands. +* \PSclosepath: PostScript Commands. +* \PSfill: PostScript Commands. +* \PSlineto: PostScript Commands. +* \PSmoveto: PostScript Commands. +* \PSnewpath: PostScript Commands. +* \PSsetlinecap: PostScript Commands. +* \PSsetlinejoin: PostScript Commands. +* \PSstroke: PostScript Commands. +* \ravec: Line vectors. +* \realadd: Real arithmetic. +* \realdiv: Real arithmetic. +* \realmult: Real arithmetic. +* \relsegscale: Scaling coordinates. +* \relunitscale: Scaling coordinates. +* \rlvec: Line vectors. +* \rmove: Line vectors. +* \rtext: TeX text. +* \savecurrpos: Saving positions. +* \savepos: Saving positions. +* \setgray: Line vectors. +* \setsegscale: Scaling coordinates. +* \setunitscale: Scaling coordinates. +* \textref: TeX text. +* \vectlen: Coordinate parsing. +* \vtext: TeX text. +* \writeps: PostScript Commands. +* arc: PostScript Commands. +* arcn: PostScript Commands. +* closepath: PostScript Commands. +* fill: PostScript Commands. +* lineto: PostScript Commands. +* moveto: PostScript Commands. +* newpath: PostScript Commands. +* setlinecap: PostScript Commands. +* setlinejoin: PostScript Commands. +* stroke: PostScript Commands. + + +File: texdraw, Node: Concept Index, Prev: Command Index, Up: Top + +Concept Index +************* + +* Menu: + +* accessing TeXdraw <1>: Accessing TeXdraw. +* accessing TeXdraw: Using TeXdraw with LaTeX. +* angle of a vector: Coordinate parsing. +* arcs <1>: Circles and arcs. +* arcs: PostScript Commands. +* arrowhead parameters: Line vectors. +* arrows: Line vectors. +* Bezier curves: Bezier curves. +* circles: Circles and arcs. +* command syntax: Command syntax. +* coordinate parsing: Coordinate parsing. +* coordinate specification: Coordinate specification. +* coordinate, symbolic: Saving positions. +* coordinates: TeXdraw coordinates. +* cosine of a vector direction: Coordinate parsing. +* current position <1>: Coordinate parsing. +* current position <2>: Line vectors. +* current position: Initial current position. +* current position in PostScript: PostScript Commands. +* curves: Bezier curves. +* dashed lines: Line vectors. +* direction of a line: Coordinate parsing. +* distribution: Distribution. +* dotted lines: Line vectors. +* drawing segments: Drawing segments. +* dvi2ps printer driver: PostScript printer drivers. +* dvialw printer driver: PostScript printer drivers. +* dvilaser printer driver: PostScript printer drivers. +* dvips printer driver <1>: PostScript printer drivers. +* dvips printer driver <2>: Introduction. +* dvips printer driver: How TeXdraw merges graphics and text. +* dvipsone printer driver: PostScript printer drivers. +* dvitops printer driver: PostScript printer drivers. +* dviwindo printer driver: PostScript printer drivers. +* ellipses: Circles and arcs. +* Encapsulated PostScript File: Intermediate PostScript file. +* errors while using TeXdraw: Errors while using TeXdraw. +* example, arrow curve: Arrow curve. +* example, block diagram: Examples. +* example, circle and ellipse: Geometric construction. +* example, graph: Filter response graph. +* fill operations, interaction with drawing segments: Drawing paths. +* filled circles: Circles and arcs. +* filling regions <1>: PostScript Commands. +* filling regions: Fill commands. +* graphics package <1>: PostScript printer drivers. +* graphics package <2>: Accessing TeXdraw. +* graphics package <3>: How TeXdraw merges graphics and text. +* graphics package: Introduction. +* graphics placement: How TeXdraw merges graphics and text. +* gray levels for lines: Line vectors. +* implementation: Extending TeXdraw. +* initial current position: Initial current position. +* invoking TeXdraw <1>: Accessing TeXdraw. +* invoking TeXdraw: Using TeXdraw with LaTeX. +* LaTeX <1>: Accessing TeXdraw. +* LaTeX <2>: Using TeXdraw with LaTeX. +* LaTeX: Introduction. +* length of a vector: Coordinate parsing. +* line cap: PostScript Commands. +* line join: PostScript Commands. +* line width: Line vectors. +* lines <1>: PostScript Commands. +* lines: Line vectors. +* listing of commands: Command Listing. +* moves <1>: Line vectors. +* moves: PostScript Commands. +* oztex printer driver: PostScript printer drivers. +* painting regions: Fill commands. +* paths <1>: PostScript Commands. +* paths <2>: Drawing paths. +* paths: Fill commands. +* pctexps printer driver: PostScript printer drivers. +* pctexwin printer driver: PostScript printer drivers. +* placement of graphics and text: How TeXdraw merges graphics and text. +* plain TeX: Accessing TeXdraw. +* position specification: Coordinate specification. +* positions, saving: Saving positions. +* PostScript commands: PostScript Commands. +* PostScript printer drivers <1>: PostScript printer drivers. +* PostScript printer drivers: How TeXdraw merges graphics and text. +* printer drivers <1>: PostScript printer drivers. +* printer drivers: How TeXdraw merges graphics and text. +* problems while using TeXdraw: Errors while using TeXdraw. +* psprint driver: PostScript printer drivers. +* relative positioning: Line vectors. +* relative scaling: Scaling coordinates. +* resolution: Resolution. +* rotated text <1>: PostScript printer drivers. +* rotated text <2>: TeX text. +* rotated text <3>: Text placement. +* rotated text: How TeXdraw merges graphics and text. +* saving positions: Saving positions. +* scaling: Scaling. +* scaling coordinates: Scaling coordinates. +* segment scale: Scaling coordinates. +* segments: Drawing segments. +* sine of a vector direction: Coordinate parsing. +* size of the drawing: Drawing size. +* stroking lines <1>: PostScript Commands. +* stroking lines: Drawing paths. +* symbolic coordinate: Saving positions. +* syntax of commands: Command syntax. +* texdraw package <1>: How TeXdraw merges graphics and text. +* texdraw package <2>: Using TeXdraw with LaTeX. +* texdraw package: Accessing TeXdraw. +* text commands: TeX text. +* text placement: How TeXdraw merges graphics and text. +* text rotation <1>: How TeXdraw merges graphics and text. +* text rotation <2>: TeX text. +* text rotation <3>: PostScript printer drivers. +* text rotation: Text placement. +* textures printer driver: PostScript printer drivers. +* unit scale: Scaling coordinates. +* vectors: Line vectors. +* vertical text: TeX text. +* width of lines: Line vectors. +* xdvi driver: PostScript printer drivers. + + + +Tag Table: +Node: Top606 +Node: Introduction2013 +Node: Distribution4007 +Node: TeXdraw Commands4442 +Node: Accessing TeXdraw5051 +Ref: Accessing TeXdraw-Footnote-19799 +Node: Command syntax9962 +Node: TeXdraw coordinates11150 +Node: Coordinate specification12511 +Node: Line vectors13706 +Node: TeX text19481 +Node: Circles and arcs23795 +Node: Bezier curves27792 +Node: Fill commands29776 +Node: Drawing Segments and Scaling32306 +Node: Drawing segments32733 +Node: Drawing paths33823 +Node: Saving positions35437 +Node: Scaling coordinates38329 +Node: Drawing size41305 +Node: Initial current position43113 +Node: Using TeXdraw with LaTeX43900 +Node: PostScript printer drivers45369 +Node: More Details46494 +Node: Errors while using TeXdraw46989 +Node: Extending TeXdraw49297 +Node: Scaling50855 +Node: Resolution51784 +Node: Text placement53471 +Node: Intermediate PostScript file54531 +Node: How TeXdraw merges graphics and text56274 +Ref: How TeXdraw merges graphics and text-Footnote-157642 +Node: PostScript Commands57699 +Node: TeXdraw Toolbox62660 +Node: Coordinate parsing63200 +Node: Real arithmetic65352 +Node: Arrow curve66151 +Node: Examples70212 +Node: Block diagram70459 +Node: Filter response graph77224 +Node: Geometric construction78912 +Node: Command Listing81197 +Node: Command Index92653 +Node: Concept Index96690 + +End Tag Table diff --git a/Master/texmf/doc/info/texi2html.info b/Master/texmf/doc/info/texi2html.info new file mode 100644 index 00000000000..4e32884ec48 --- /dev/null +++ b/Master/texmf/doc/info/texi2html.info @@ -0,0 +1,3637 @@ +This is texi2html.info, produced by makeinfo version 4.8 from +texi2html.texi. + + Copyright (C) 1999, 2000, 2001, 2002, 2003 +Free Software Foundation, Inc. + +Portions +of +`texi2html' + Copyright (C) 1999, 2000 Lionel Cons + Copyright (C) 1999, 2000 Karl Berry + Copyright (C) 1999, 2000 Olaf Bachmann + Copyright (C) 2002, 2003 Patrice Dumas + Copyright (C) 2001, 2002, 2003 Derek Price + Copyright (C) many others. + + +Portions +of this +manual + Copyright (C) 1999, 2000 Karl Heinz Marbaise (manual) + Copyright (C) 2003 Patrice Dumas (manual) + Copyright (C) 2003 Derek Price (manual) + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + +INFO-DIR-SECTION Texinfo documentation system +START-INFO-DIR-ENTRY +* Texi2HTML: (texi2html). Texinfo to HTML Converter. +END-INFO-DIR-ENTRY + + This file, last updated 1 February 2005, documents the `texi2html' +script which converts Texinfo (http://www.texinfo.org) into HTML +(http://w3c.org). This edition is for `texi2html' version 1.76. + + Copyright (C) 1999, 2000, 2001, 2002, 2003 +Free Software Foundation, Inc. + +Portions +of +`texi2html' + Copyright (C) 1999, 2000 Lionel Cons + Copyright (C) 1999, 2000 Karl Berry + Copyright (C) 1999, 2000 Olaf Bachmann + Copyright (C) 2002, 2003 Patrice Dumas + Copyright (C) 2001, 2002, 2003 Derek Price + Copyright (C) many others. + + +Portions +of this +manual + Copyright (C) 1999, 2000 Karl Heinz Marbaise (manual) + Copyright (C) 2003 Patrice Dumas (manual) + Copyright (C) 2003 Derek Price (manual) + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + +File: texi2html.info, Node: Top, Next: Overview, Up: (dir) + +Texi2HTML +********* + +This manual, last updated 1 February 2005, describes version 1.76 of +the `texi2html' Perl script which converts Texinfo (*note Texinfo: +(Texinfo)Top.) into HTML. + + Please send bug reports concerning this manual to the Texi2HTML user +discussion list <user@texi2html.cvshome.org>. Please state the exact +version of the manual which contains the bug, as given above. + + Copyright (C) 1999, 2000, 2001, 2002, 2003 +Free Software Foundation, Inc. + +Portions +of +`texi2html' + Copyright (C) 1999, 2000 Lionel Cons + Copyright (C) 1999, 2000 Karl Berry + Copyright (C) 1999, 2000 Olaf Bachmann + Copyright (C) 2002, 2003 Patrice Dumas + Copyright (C) 2001, 2002, 2003 Derek Price + Copyright (C) many others. + + +Portions +of this +manual + Copyright (C) 1999, 2000 Karl Heinz Marbaise (manual) + Copyright (C) 2003 Patrice Dumas (manual) + Copyright (C) 2003 Derek Price (manual) + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that +the entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation approved by the Free Software Foundation. + + *This manual is currently under construction and of course incomplete. ;-)* + +* Menu: + +* Overview:: +* Obtaining texi2html:: + Obtaining a copy of the `texi2html' + source code distribution +* Installation:: Installing `texi2html' +* Invoking texi2html:: Description of the command line options +* Initialization files:: What kind of variables and subroutines appear + in init files and how they are called +* Changing the page layout:: Fine tuning of the page layout +* Customizing HTML:: Fine tuning of the HTML elements + associated with the texinfo constructs +* Internationalization:: Help translating ! +* Indexop:: Command Line Option Index +* Indexvr:: Variable Index +* Indexcp:: Concept Index + + +File: texi2html.info, Node: Overview, Next: Obtaining texi2html, Prev: Top, Up: Top + +1 Overview +********** + +Texinfo (http://www.texinfo.org) is the official documentation format +of the GNU (http://www.gnu.org) project. It uses a single source file +to produce both online information and printed output. + + It is often desirable to have a way to produce HTML from Texinfo +sources, as GNU-Info files are produced. It is much simpler to run a +converter than it is to rewrite all the documentation in HTML, +especially considering that there is so much Texinfo documentation in +the world. + + Some time ago `makeinfo' wasn't able to produce HTML output format, +but people still wanted documentation in HTML. This was the birthing +hour for `texi2html'. The basic purpose of `texi2html' is to convert +Texinfo documents into HTML. + + Since then, HTML support in `makeinfo' has improved, but `texi2html' +is still stronger in many areas, including the degree to which it +allows customization. With `texi2html', some important aspects of the +resulting HTML files may be specified via command line options, and +configuration files provide an even finer degree of control over the +final output, allowing most every aspect of the final output not +specified in the Texinfo input file to be specified. Configuration +files are written in `perl', like the main program, and anything which +may be specified on the command line may also be specified within a +configuration file. + + For an example of the kind of pages `texi2html' is capable of +producing, have a look at the following sites: the Singular Manual +(http://www.singular.uni-kl.de/Manual/html/), the Cederqvist (CVS +Manual) (http://ccvs.cvshome.org/docs/manual). + +* Menu: + +* whytexi2html:: Why `texi2html' and not `makeinfo'?. + + +File: texi2html.info, Node: whytexi2html, Up: Overview + +1.1 Why `texi2html' and not `makeinfo'? +======================================= + +You would like to produce HTML files from your existing Texinfo files? +There are two programs you can use to do this. The first is `makeinfo' +(*note Generating HTML: (texinfo)Generating HTML.). The second is +`texi2html'. + + The design goal of `makeinfo''s HTML output was to produce readable +HTML output. It is now possible to use CSS for HTML customization. +Another possibility is to use intermediate formats, like docbook or +`mekeinfo' XML and XSL stylesheets to customize the resulting document. +Still the output produced by `makeinfo' isn't customizable. + + The current development of `texi2html' tries to provide for +producing the more interesting and sophisticated HTML pages that +today's Internet users have come to expect. The goal behind +`texi2html' is to generate attractive HTML by default but also to allow +users considerable freedom to affect the final style and design of the +output HTML pages. This is achieved via command line options and +flexible configuration files. + + In contrast to the HTML produced by `makeinfo --html' (the +`makeinfo' program is part of the Texinfo distribution), the +`texi2html' program, among other differences, allows for the +customization of the entire page layout, including headers, footers, +style sheets, etc., allows for customization of the low level HTML +formatting, provides for splitting documents at various levels, and +provides for using the `latex2html' program to convert `@tex' sections +of the Texinfo source. + + The focus on HTML is still present but with the help of the +customization files it is now possible to use `texi2html' to produce +other formats as well. `texi2html' may for example be turned into a +texinfo to roff translator with the help of a customization file +provided with the distribution. + + `texi2html' should reasonably convert all Texinfo 4.8 constructs. +If you find it does not, please send a bug report to the +<users@texi2html.cvshome.org> email list. + + +File: texi2html.info, Node: Obtaining texi2html, Next: Installation, Prev: Overview, Up: Top + +2 Obtaining `texi2html' +*********************** + +The latest version of the source code for `texi2html' should be +available from texi2html.cvshome.org (http://texi2html.cvshome.org). + + +File: texi2html.info, Node: Installation, Next: Invoking texi2html, Prev: Obtaining texi2html, Up: Top + +3 Installation of `texi2html' +***************************** + +To install `texi2html', you must first obtain a copy of the source +distribution. *Note Obtaining texi2html::. + + `texi2html' also requires `perl' version 5.004 or above. The +current version has not been tested extensively on versions of `perl' +below 5.6, however. + + `texi2html' is a standard Automake-based distribution. If you have +a source version, you should run `./configure' to regenerate the +executable `texi2html' file. `./configure' accepts options to select +the installation directory for the `texi2html' file, the default +directories `texi2html' will use to look for configuration files, and +other details. Run `./configure --help' for more information. + + Running `./configure' combines four files into the final `texi2html' +program file: + * `texi2html.pl' contains the base program, + + * `MySimple.pm' handles the command line options, + + * `texi2html.init' is the default configuration file, and + + * `T2h_i18n.pm' is used for internationalization. + + * `translations.pl' contains the translations of the strings used in + documents. + + Running `./configure' also builds the `make' configuration files +(`Makefile's). To make the documentation run `make'. + + `make install' performs the installation to the locations specified +to the `./configure' script. This usually involves placing the actual +`texi2html' file someplace in your path, such as `/usr/local/bin' or +`/usr/bin'. + + Installing `texi2html' in your path should be sufficient to run it. +To use default initialization files, or a configuration file for +LaTeX2HTML when using `latex2html' to convert `@tex' sections (*note +Expanding TeX regions::), install them in the package data directory +specified to configure. This is `/usr/local/share/texi2html/' by +default, but depends on the value of the `--pkgdatadir=DIR' option +passed to the `./configure' script. Files used for strings +customization and internationalization are also searched for in the +`i18n' directory of this directory. *Note Using init files:: for more. + + +File: texi2html.info, Node: Invoking texi2html, Next: Initialization files, Prev: Installation, Up: Top + +4 Invoking `texi2html' +********************** + +To produce an HTML manual, run `texi2html' with a Texinfo file as an +argument. For example, this manual is created with: + + $ texi2html texi2html.texi + + The behaviour of `texi2html' may be changed with command line +options. These command line options are always associated with +corresponding `perl' variables which may appear in init files, and these +variables are presented in this chapter each time a switch is described. + + Boolean command line switches always have a corresponding negated +switch, obtained by prepending `no' or `no-' to the switch name. For +example `--nomenu' does the reverse of `--menu'. + +* Menu: + +* Splitting output:: The HTML output may be split at + different levels +* Output files:: +* Expansion:: +* Texinfo related options:: +* Page layout options:: Customizing page layout +* Style options:: Customizing the HTML and text style +* Expanding TeX regions:: +* Using init files:: Specifying initialization files for fine tuning + + +File: texi2html.info, Node: Splitting output, Next: Output files, Up: Invoking texi2html + +4.1 Specifying where to split the generated document +==================================================== + +The HTML manual resulting from the processing of the Texinfo source may +be split into files at different levels. This is specified with the +option `--split' which takes an argument, namely the level of splitting +(variable: `$SPLIT'). This level may be: + +`chapter' + The document is split at `@chapter', `@appendix', or `@unnumbered'. + +`section' + The document is split at the same places as it is using the + `chapter' argument, and also at `@section', `@appendixsec' or + `@unnumberedsec'. + +`node' + The document is split at every sectioning command. It is not + necessarily split at each node, if the `@node' structure doesn't + correspond with the sectioning command structure (see below). + +`none' + The document isn't split. This is the default. + + There are two kinds of commands which may be used to define +sectioning elements in Texinfo: `@node' and the structuring commands +(`@top', `@section', `@appendixsubsec', and so on). A node just +preceding a structuring command is considered to be part of the same +sectioning element as that command. If the `@node Top' isn't +associated with a structuring command it also defines a sectioning +element. + + By default, nodes which aren't associated with a structuring command +are not considered to be sectioning commands. They are always +considered to be part of a sectioning element defined by a structuring +command. It is possible to change this behaviour via the `--use-nodes' +option (variable `$USE_NODES'). In this case, nodes not associated +with structuring commands are also considered to be sectioning commands +defining a sectioning element. + + This default behaviour mimics `texi2dvi' behaviour, which ignores +`@node' commands for the purprose of sectioning, while the second looks +like `makeinfo' behaviour (*note Two Paths: (texinfo)Two Paths.). + + As an illustration, the following table shows how a sample Texinfo +document is divided into sectioning elements when `--use-nodes' is used +and not: + +Texinfo code default case with + `--use-nodes' + @node node1 first element: first element: + @chapter node 1 + node1 text @node node1 @node node1 + @chapter node 1 @chapter node 1 + @node node2 node1 text node1 text + node2 text second + @node node2 element: + @node node3 node2 text + node3 text second @node node2 + @chapter node 3 element: node2 text + chapter text third + @node node3 element: + node3 text + @chapter node 3 @node node3 + chapter text node3 text + @chapter node 3 + chapter text + + +File: texi2html.info, Node: Output files, Next: Expansion, Prev: Splitting output, Up: Invoking texi2html + +4.2 Setting output file and directory names +=========================================== + +The manual name is constructed by stripping the `.texi', `.txi', +`.texinfo', or `.txinfo' extension from the Texinfo file name. + + By default, `texi2html' generates the manual file in the current +directory if the manual isn't split. A `.html' file extension is +appended to the manual name. + + If the manual is split the files are put in a directory named after +the manual name. The file name is constructed using the manual name as +basename. An underscore followed by a number is appended to the +basename for each files corresponding with sectioning elements, with the +exception of the top element. For the top element there nothing +appended. The files containing special elements pages have an +underscore and a 3 letter code corresponding to their content (`toc' +for table of contents, `abt' for about, `ovr' for overview) appended. +Lastly, an `.html' file extension is appended. + + Thus, if the texinfo file `afile.texi' is processed and split at +chapters into 3 files, the generated files (in directory `afile') will +be: + + afile.html --> `@node Top' or `@top' section + afile_1.html --> Chapter 1 + afile_2.html --> Chapter 2 + afile_toc.html --> Table of Contents + afile_abt.html --> About Page + + This default behavior may be modified by several command line +options. If the output isn't split, the prefix file name may be +overrided by the `--output' command line option (variable `$OUT'). If +the output is split, and `--output' is set, the files are placed in the +directory specified by the argument to the option. + + The basename may be overridden with `--prefix' (variable `$PREFIX'). +If `--short-ext' is given, `.htm' is appended instead of `.html' in +the final step (variable `$SHORTEXTN'). The `--top-file' option +overrides the top element file name (variable `$TOP_FILE'). This can +be used to name the top element file `index.html'. Similarly, `--toc-file' +changes the name of the table of contents file (variable `$TOC_FILE'). + + Reusing the example above, but this time calling `texi2html' like so: + + $ texi2html -split chapter -prefix manual -short-ext -top-file index.htm -toc-file contents.htm afile.texi + + we get, in `manual': + + index.htm --> `@node Top' or `@top' section + manual_1.htm --> Chapter 1 + manual_2.htm --> Chapter 2 + contents.htm --> Table of Contents + manual_abt.htm --> About Page + + The file names generated by `texi2html' differ from those generated +by `makeinfo'. `makeinfo' uses the node name to construct the file +names while splitting at nodes. It is possible to get the same +behaviour out of `texi2html' by specifying the `--node-files' option +(variable `$NODE_FILES'). If the output isn't split at nodes, +`texi2html' will still output files named after the nodes, without real +content but redirecting to the right file. The default is false for +this option. This trick enables the generated HTML manual to be a +target for the cross-references of other manuals generated by +`makeinfo' or `texi2html'. + + +File: texi2html.info, Node: Expansion, Next: Texinfo related options, Prev: Output files, Up: Invoking texi2html + +4.3 Specifying which regions get expanded +========================================= + +The default for `texi2html' is to expand the `@ifhtml', `@html', and +`@menu' regions, all the `@ifnot' regions except `@ifnothtml', and no +other `@if' regions. + + It is possible to expand other regions by setting `--if<region>', +where `<region>' is replaced by the literal name of the region (for +example, `--iftex'). Symetrically, if `--no-if<region>' is specified, +the `<region>' region is ignored. The configuration file array, `@EXPAND', +holds the names of regions which should be expanded. The only region +name present in `@EXPAND' in the default case is `html'. + + If `--nomenu' is set, the `@menu' sections are not expanded +(variable `$SHOW_MENU'). The default is to expand `@menu' sections. + + +File: texi2html.info, Node: Texinfo related options, Next: Page layout options, Prev: Expansion, Up: Invoking texi2html + +4.4 Command line options related to Texinfo language features +============================================================= + +Miscalleneous Texinfo related things may be specified via command line +options. + +`--lang=LANG' + Sets the document language similar to the Texinfo directive, + `@documentlanguage LANG' (variable `$LANG'). The default is `en', + that is, use the english language strings. + +`-DVAR' + Sets VAR. Equivalent to, `@set VAR 1', in Texinfo. + +`-UVAR' + Clears VAR. Equivalent to, `@clear VAR', in Texinfo. + +`-PDIR' + Prepend DIR to the list of directories to search for `@include' + files (the associated array is `@PREPEND_DIRS', empty in the + default case). + +`-IDIR' + Append DIR to the list of directories to search for `@include' + files (the associated array is `@INCLUDE_DIRS', empty in the + default case). + + The include files are always searched for in the current directory. + + +File: texi2html.info, Node: Page layout options, Next: Style options, Prev: Texinfo related options, Up: Invoking texi2html + +4.5 Page layout related command line options +============================================ + +If the `--frames' option is specified, HTML frames are used. A file +describing the frame layout is generated, and the document page is +associated with a frame where the short table of content appears +(variable `$FRAMES'). The default is not to use frames. + + It is also possible to suppress the section navigation panel with `--nosec-nav' +(variable `$SECTION_NAVIGATION', the default is to output all the +navigation panels), and to specify whether footnotes should appear at +the foot of the same page which contains the reference to the note or +on a separate page with `--separated-footnotes' (variable `$SEPARATED_FOOTNOTES'). +The default is to have separated footnotes. + + +File: texi2html.info, Node: Style options, Next: Expanding TeX regions, Prev: Page layout options, Up: Invoking texi2html + +4.6 Customizing the HTML and text style +======================================= + +Miscalleneous style changes may be achieved with command line options. + +`--doctype=DTD' +`--frameset-doctype=DTD' + You can specify the document DTD by setting these options. `--frameset-doctype' + applies to the file describing the frames when frames are used + (corresponding variables are `$DOCTYPE' and `$FRAMESET_DOCTYPE'). + + The default for the document doctype is: + <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd"> + And for the frameset doctype: + <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html401/frameset.dtd"> + +`--iso' + If this option is set, ISO8859 entities are used for some special + symbols, like Copyright (C) (variable `$USE_ISO'). It is the + default. + +`--css-include=FILE' + This command line switch provides for the inclusion of an external + Cascading Style Sheet (CSS) file. More than one file may be + specified, and `-' stands for the standard input (array `@CSS_FILES'). + + The option use is the same than for `makeinfo' and is described + extensively in *Note HTML CSS: (texinfo)HTML CSS. Briefly, the + CSS `@import' lines from the external file CSS file are pasted + before the `texi2html' CSS rules, and the external file CSS rules + are pasted after the `texi2html' CSS rules. + +`--html-xref-prefix=PATH' + This option sets the base directory for external HTML texinfo + manuals (variable `$EXTERNAL_DIR'). Defaults to `../'. + +`--def-table' + If this option is set, HTML tables are used to format definition + commands, rather than HTML definition tables (variable `$DEF_TABLE'). + Default is false. + +`--short-ref' + If this option is set, cross-references are given without section + numbers (variable `$SHORT_REF'). Default is false. + +`--number' + If this option is set, sections are numbered (variable `$NUMBER_SECTIONS'). + This is the default. + +`--toc-links' + If this option is set, links from headings to TOC entries are + created (variable `$TOC_LINKS'). Default is false. + + +File: texi2html.info, Node: Expanding TeX regions, Next: Using init files, Prev: Style options, Up: Invoking texi2html + +4.7 Expanding `@tex' and `@math' regions using LaTeX2HTML +========================================================= + +It is possible to use LaTeX2HTML (http://www.latex2html.org/) to +process `@tex' regions and `@math{}' commands. This is an attractive +way to display mathematical constructs in the HTML manual. The `--l2h' +option activates this feature (variable $L2H). It is usually desirable +to expand `@tex' sections when this option is specified (*note +Expansion::). The default is not to use this feature. + + The `--l2h-l2h=PROGRAM' option enables changing the name/location of +the LaTeX2HTML program processing TeX regions (variable `$L2H_L2H'). +The default is `latex2html'. + + `--l2h-tmp' sets the directory used for temporary files, this name +shouldn't contain a dot `.' (variable is `$L2H_TMP'). Defaults to the +current dir. + + The file specified by `--l2h-file' is used as LaTeX2HTML init file. +It is searched at the same places than init files (*note Using init +files::), and the default is `l2h.init'. + + +File: texi2html.info, Node: Using init files, Prev: Expanding TeX regions, Up: Invoking texi2html + +4.8 Use initialization files for fine tuning +============================================ + +Initialization variables are read first from +`/usr/local/share/texi2html/Config' (the exact location being +changeable with the `--pkgdatadir=dir' option of the `configure' +script, see *Note Installation::), `/usr/local/etc/texi2html/Config' +(the exact location being changeable with the `--sysconfdir=dir' option +of the `configure' script, see *Note Installation::), from `./Config' +then from `$HOME/.texi2html/Config'. Any command-line option can +override the corresponding option set in init file, and the option `--init-file' +specifies an init file to be loaded, with later settings overriding +earlier ones. + + The init files specified with `--init-file' are searched first in +the current directory, then in the `$HOME/.texi2html/' directory, in +the `/usr/local/etc/texi2html/' directory and lastly in the +`/usr/local/share/texi2html/' directory. + + A file is also included based on the language selected, by `$LANG', `--lang' +or `@documentlanguage'. If no language was selected `en' is considered +to be the language. All the files with name the language name in +`/usr/local/share/texi2html/i18n/', `/usr/local/etc/texi2html/i18n/', +`$HOME/.texi2html/i18n/' and then `./i18n/' are included. + + The default initialization options are defined in the +`texi2html.init' file contained in the `texi2html' distribution (which +gets included near the beginning of the `texi2html' script that gets +installed). + + To customize `texi2html' it is best if you copy the appropriate +sections from the `texi2html.init' contents into an appropriate local +initialization file, make the necessary changes there, and then have +`texi2html' read this initialization file by one of the means described +above. + + +File: texi2html.info, Node: Initialization files, Next: Changing the page layout, Prev: Invoking texi2html, Up: Top + +5 Overview of initialization files content and loading +****************************************************** + +The initialization files are `perl' files, read as explained in *Note +Using init files::. You don't need to know much of `perl' to do some +simple changes in variable values, however, to be able to really take +advantage of all the features of the initialization file, a good +knowledge of `perl' is required. + + In initialization file two kind of variables appear. These are normal +variables (including arrays and hashes) and references on functions. +The later permits the dynamic redefinition of functions used to produce +the HTML manual. You should be able to change the value of some normal +variables without a deep knowledge of `perl', by looking at the +existing examples. The possible mistakes in that case could be omitted +`;', and bad quoting. + + Initialization file are loaded from the main program by the mean of +a `require', while in the `Texi2HTML::Config' namespace. This means +that the namespace of the main program and the namespace of +inititalization files are distinct, which ensures that no name clash +should happen. The variables are declared with the `our' specifier, +such that it should be possible to use the `use strict' pragma in the +initialization file code. + + To avoid messing with the variables in the `main' namespace all the +global variables which could be of use in the init files are in the +`Texi2HTML' namespace. Notice that the functions of the main program +are still in the `main' namespace. + +* Menu: + +* Redefining functions:: Function redefinition is achieved with + redefinition of references on functions. +* Function prototypes:: Conventions used in that manual for function + reference prototypes display. + + +File: texi2html.info, Node: Redefining functions, Next: Function prototypes, Up: Initialization files + +5.1 Redefining functions in initialization files +================================================ + +To redefine a function you must replace the corresponding funtion +reference with a reference on your function. Thus you should write +your function, give it a name you are certain it is unique in the +`Texi2HTML::Config' namespace, and override the value of the function +reference with your own function reference. When another function from +the main program (or from another functions of an initialization file) +calls the reference, your function will be used. + + For example the function reference corresponding with the function +called when doing an anchor is called `$anchor'. Thus if you want to +override the corresponding function you could write: + + # override the function reference + $anchor = \&my_own_function; + + # the function reference now refers to + sub my_own_function { + # process arguments and return an html anchor + } + + +File: texi2html.info, Node: Function prototypes, Prev: Redefining functions, Up: Initialization files + +5.2 Conventions used for function prototypes +============================================ + +As the functions are defined by a reference name, we will always use +the reference name in function prototypes. For the function arguments +we will use `\@array' for a reference on an array and similarly +`\%hash' for a reference on a hash. + + Thus, the prototype for the function associated with the function +reference `$formatting_function' will be: + + -- Function Reference: $text formatting_function $arg1 \@arg2 + `formatting_function' takes as first argument $ARG2, as second + argument a reference on an array \@ARG2 and returns the formatted + text $TEXT. + + To redefined the corresponding function, you should write: + + $formatting_function = \&my_formatting_function + + sub my_formatting_function($ $) + { + my $arg1 = shift; + my $arg2 = shift; + # prepare $formatted_text + ..... + return $formatted_text + } + + +File: texi2html.info, Node: Changing the page layout, Next: Customizing HTML, Prev: Initialization files, Up: Top + +6 Fine tuning of the page layout +******************************** + +Some features of the page layout might be specified with command line +options, the corresponding variables are described in *Note Page layout +options::. Fine tuning of the page layout may be achieved with +redefinition of other variables and function references in the +initialization files. + +* Menu: + +* The different pages:: The different categories of pages. +* The page layout:: The elements of a page. +* Navigation panel:: How to change the navigation panel. +* Program variables:: The available main program variables and some + usefull functions from the main program. +* Output initialization:: Setting variables before the document + production but after the texinfo parsing. +* Output finalization:: Cleaning after document generation. +* css:: Customizing css lines. +* Customizing header:: +* Customizing section:: +* Customizing footer:: +* Special pages:: Customizing table of contents, top, about page. +* File names:: Customizing the file names. +* External index files:: Putting index entries in external files. + + +File: texi2html.info, Node: The different pages, Next: The page layout, Up: Changing the page layout + +6.1 The different categories of pages and sectioning elements +============================================================= + +The following sectioning elements can be associated with pages: + +_Normal elements_ + These are normal sections or nodes. Their association with pages is + determined by the splitting of the document. *Note Splitting + output::. + +_Top element_ + The top element is the higher element in the document structure. + If there is a `@top' section it is the element associated with + that section. Otherwise it is the element associated with the + `@node Top'. If there is no `@node Top' the first element is the + top element. + + The top element is formatted differently than a normal element if + there is a `@top' section or the `@node Top' isn't associated with + a sectioning command. + +_Misc elements_ + These elements are associated with pages if the document is split. + There are four misc elements: + 1. Table of contents + + 2. Short table of contents, also called Overview + + 3. Footnotes page + + 4. About page + + The _About page_ shouldn't be present for documents consisting in + only one sectioning element. The _Footnote page_ should only be + present if the footnotes appear on a separated page (*note Page + layout options::), however a footnote element is present if the + document isn't split. The _Table of contents_ should only be + formatted if `@contents' is present in the document. Similarly + the _Overview_ should only appear if `@shortcontents' or + `@summarycontents' is present. + + +File: texi2html.info, Node: The page layout, Next: Navigation panel, Prev: The different pages, Up: Changing the page layout + +6.2 Page layout and navigation panel overview +============================================= + +A page is broken up in three parts. A page header, the sections and a +page footer. A common element in the page layout is a navigation panel +with icons or text linking to other sections or pages. Another common +element is a rule, separating sections or footer. The navigation panel +and the rules may be part of the sections or part of headers or +footers. You may use the variables `$SMALL_RULE', `$DEFAULT_RULE', `$MIDDLE_RULE' +and `$BIG_RULE' for rules of different sizes. The defaults are + $SMALL_RULE = '<hr size="1">'; + $DEFAULT_RULE = '<hr>'; + $MIDDLE_RULE = '<hr size="2">'; + $BIG_RULE = '<hr size="6">'; + + In the header some important meta data may be defined, like the +title or style information, and textual informations may be present in +comments. All this doesn't appear directly in the displayed HTML, +though. + + The page layout is mainly controlled by functions, the precise +functions called depending on the document splitting. The navigation +panel, however, can be customized with variables. + +Element labels +-------------- + +There are 19 items associated with elements. Each of these is +associated with a name and a reference to the element they represent, +when such an element exists. The element is either a global element or +an element relative to the current element. The relative elements are +found with respect with the document structure defined by the section +structuring commands (`@chapter', `@unnumbered'...) or by the nodes (in +that case the node directions are specified on node line or in menu +organization). These items are called "element labels". They may be +associated with a button (*note Button specifications::), and used in +the formatting functions (*note Program variables::). + + Here is the list: + +_` '_ + An empty button + +_Top_ + Top element. The associated name is `$TOP_HEADING' if that + variable is defined. This variable is not set by default. + +_Contents_ + Table of contents + +_About_ + About (help) page + +_Overview_ + Overview, short table of contents + +_First_ + First element in reading order + +_Last_ + Last element in reading order + +_Index_ + The first chapter with `@printindex'. The associated name is `$INDEX_CHAPTER', + if the variable is set. This variable is not set by default. + +_This_ + The current element + +_Back_ + Preceding element in reading order + +_FastBack_ + Beginning of this chapter or previous chapter if the element is a + chapter + +_Prev_ + Previous section on the same level + +_NodePrev_ + Previous node + +_Forward_ + Next element in reading order + +_FastForward_ + Next chapter + +_Next_ + Next section on the same level + +_NodeNext_ + Next node + +_Following_ + Next node in node reading order + +_Up_ + Up section + +_NodeUp_ + Up node + + +File: texi2html.info, Node: Navigation panel, Next: Program variables, Prev: The page layout, Up: Changing the page layout + +6.3 Customization of the navigation panels buttons +================================================== + +A lot of customization of the navigation panel may be achieved without +redefining functions, with variables redefinition. In case it isn't +enough, it is also possible to redefine the function doing the +navigation panel formatting. + +* Menu: + +* General purpose variables:: Variables controlling the navigation panel + at a global level +* Button specifications:: +* Panel formatting function:: + + +File: texi2html.info, Node: General purpose variables, Next: Button specifications, Up: Navigation panel + +6.3.1 Controlling the navigation panel panel at a high level +------------------------------------------------------------ + +The global formatting of the navigation panels may be changed with the +following variables: + +`$VERTICAL_HEAD_NAVIGATION' + A vertical navigation panel will be used for the header navigation + panel if this variable is true. + +`$ICONS' + Icons are used instead of textual buttons if this variable is true. + +`$SECTION_NAVIGATION' + If this variable is false there is no section navigation, no + navigation panels for the elements within the pages, only at the + beginning and the end of the page (*note Page layout options::). + + +File: texi2html.info, Node: Button specifications, Next: Panel formatting function, Prev: General purpose variables, Up: Navigation panel + +6.3.2 Specifying the buttons formatting +--------------------------------------- + +Several arrays and hashes enable a precise control on the buttons and +their display. The following arrays determine the buttons present in +navigation panels: + +`@SECTION_BUTTONS' + This array is used for the navigation panel buttons present at the + begining of sectioning elements. If split at node or section they + are also used at the page footer, and in the case of section + navigation at the page header. + +`@SECTION_FOOTER_BUTTONS' +`@NODE_FOOTER_BUTTONS' + This array is used for the navigation panel buttons present at the + footer of pages when split at node or at section. + + If `$WORDS_IN_PAGE' is set and the output is split at nodes, these + buttons are only present if there are more than `$WORDS_IN_PAGE' + words in the sectioning element text. This counting is very rough + and include punctuation marks, html elements, numbers. The + default is to include the buttons after 300 words. + +`@CHAPTER_BUTTONS' + This array is used for the buttons appearing at the page footer if + split at chapter, and at the page header if split at chapter and + there is no section navigation. + +`@MISC_BUTTONS' + These buttons appear at the beginning of special and sections and + at the end of these section pages if the output is split. + + The array specify the buttons displayed in navigation panels, and +how the button is displayed. Each element is associated with a button +of the navigation panel from left to right. The signification of the +array element value is the following: + +_reference on a function_ + The function is called with first argument a filehandle reference + on the current file and second argument a boolean true if the + navigation panel should be vertical. + +_reference on a scalar_ + The scalar value is printed. For some possibly usefull scalars, + *Note Elements hashes::. + +_reference on an array_ + In this case the first array element should be a reference on text + and the second element an element label. In that case a link to the + element associated with the element label with the scalar value + text is generated. + + For example if the buttons array element is + [ 'Next', \$Texi2HTML::NODE{Next} ] + + The button will be a link to the next section with text `$Texi2HTML::NODE{Next}'. + +_element label_ + If icons are not used, the button is a link to the corresponding + element which text is defined by the value associated with the + element label in the `%NAVIGATION_TEXT' hash, surrounded by `[' + and `]'. If the element label is ` ', there is no `[' and `]'. + The element of the `%NAVIGATION_TEXT' hash are defined + dynamically, in the `init_out' function reference (*note Output + initialization::). + + If icons are used, the button is an image with file determined by + the value associated with the element label in the `%ACTIVE_ICONS' + hash if the the link really leads to an element, or in the `%PASSIVE_ICONS' + hash if there is no element to link to. Of course if there is a + link to the element the icon links to that element. + + +File: texi2html.info, Node: Panel formatting function, Prev: Button specifications, Up: Navigation panel + +6.3.3 Changing the navigation panel formatting +---------------------------------------------- + +If you are not satisfied with this scheme, it is possible to control +exactly the formatting of navigation panels by redefining a function +reference. The function controlling the display of navigation panel is +associated with the following function reference: + + -- Function Reference: print_navigation $filehandle \@buttons $vertical + $FILEHANDLE is the opened filehandle the function should write to. + \@BUTTONS is an array reference which should hold the + specification of the buttons for that navigation panel. $VERTICAL + is true if the navigation panel should be vertical. + + +File: texi2html.info, Node: Program variables, Next: Output initialization, Prev: Navigation panel, Up: Changing the page layout + +6.4 Main program variables and usefull functions +================================================ + +In the functions controlling the page layout some global variables set +by the main program are available, with value corresponding with the +current layout element. + +* Menu: + +* Elements hashes:: Accessing information related with the + different elements +* Global informations:: Accessing global informations, like date, + title... +* Global functions:: main program usefull functions + + +File: texi2html.info, Node: Elements hashes, Next: Global informations, Up: Program variables + +6.4.1 Accessing elements informations +------------------------------------- + +Four hashes are available, with key the elements labels (as described +in *Note Element labels::) and values: + +`%Texi2HTML::NAME' + The formatted element name + +`%Texi2HTML::HREF' + The element hypertext reference + +`%Texi2HTML::NODE' + The element node name + +`%Texi2HTML::NO_TEXI' + The element name after removal of texi commands + + +File: texi2html.info, Node: Global informations, Next: Global functions, Prev: Elements hashes, Up: Program variables + +6.4.2 Accessing global informations +----------------------------------- + +Three kinds of global informations are available, miscalleneous global +strings, flags set by `@set' and special flags and section lines. + +Global strings +.............. + +The `%Texi2HTML::THISDOC' hash holds some global informations: + +`fulltitle' + title set by `@title'. If there is no `@title' other possibilities + are tried (`@settitle', `@shorttitlepage'...). + +`title' + title set by `@settitle', or `fulltitle'. + +`title_no_texi' + title without texi formatting + +`title_texi' + title with texi commands + +`author' + Authors list set by `@author'. + +`authors' + A reference on an array containing each author set by `@author'. + +`copying' + Text appearing in `@copying' with all the texinfo commands removed, + put in comments. + +`program' + The name and version of `texi2html'. + +`program_homepage' + Homepage for `texi2html'. + +`program_authors' + Authors of `texi2html'. + +`file_base_name' + base name of the texinfo manual file. + +`destination_directory' + Destination directory for the resulting files. + +`toc_file' + The file name of the table of contents. + +`today' + The date. + + It also holds the arg of the following commands, associated with the +command name: kbdinputstyle, paragraphindent, setchapternewpage, +headings, footnotestyle, exampleindent, firstparagraphindent, +everyheading, everyfooting, evenheading, evenfooting, oddheading, +oddfooting. + +Flags +..... + +Flags defined by `@set' may be accessed through the `%main::value' +hash. The key is the flag name, the value is the flag value at the end +of the document. + + Special flags are set by the main program. They correspond with a +texinfo command, like `@setfilename', or `@settitle', `@author'... The +corresponding flag is the command name with `_' appended, for example, +`_titlefont' corresponds with `@titlefont'. Like other flags they are +available in `%main::value'. + +Section lines +............. + +The following array references or arrays holds formatted lines: + +`$Texi2HTML::THIS_SECTION' + Lines of the current element. + +`$Texi2HTML::THIS_HEADER' + Lines of the current element appearing before the element label + (anchors). + +`$Texi2HTML::OVERVIEW' + Lines of short table of contents. *Note Special pages::. + +`$Texi2HTML::TOC_LINES' + Lines of table of contents. *Note Special pages::. + + +File: texi2html.info, Node: Global functions, Prev: Global informations, Up: Program variables + +6.4.3 Function usefull in page formatting +----------------------------------------- + +The usefull function is a function used to print an array of lines, +which also counts the number of words in the array, if needed. + + -- Function: $words_number main::print_lines $filehandle \@lines_array + $FILEHANDLE is the opened filehandle the function should write to. + \@LINES_ARRAY is the array line the function should write to the + file. If this argument is omitted, the function uses `$Texi2HTML::THIS_SECTION'. + $WORDS_NUMBER is the number of words in the array, only defined if + split at nodes and `$WORDS_IN_PAGE' is defined. + + +File: texi2html.info, Node: Output initialization, Next: Output finalization, Prev: Program variables, Up: Changing the page layout + +6.5 Preparing the output +======================== + +After the texinfo file has been parsed, some information is available +which can be used to modify some variables and prepare the outputting. +For example the document language, the document encoding, values set +with `@set' or `@setfilename' and other similar @-commands are not +known before the texinfo parsing. + + The following function reference may be redefined to be called after +texinfo processing and before document generation: + + -- Function Reference: $encoding init_out + This function perform the initialization of variables and any other + task before document outputting. It returns the encoding used for + the output files. + + In the default case the `$BODYTEXT' (*note Customizing header::) and +the hashes `%NAVIGATION_TEXT' (*note Button specifications::) and `%BUTTONS_GOTO' +(*note About text::) are initialized. + + To perform the default initializations and also add more code, you +could do as in the following example (save the default function +reference and call it in your own function) : + + my $default_init_out = $init_out; + $init_out = \&makeinfo_like_init_out; + sub makeinfo_like_init_out() + { + my $encoding = &$default_init_out(); + $NAVIGATION_TEXT{'Following'} = ' > '; + return $encoding; + } + + +File: texi2html.info, Node: Output finalization, Next: css, Prev: Output initialization, Up: Changing the page layout + +6.6 Finalizing the output +========================= + +If you want to do some cleaning after the document was generated (close +files, write at the end of files and so on), the following function +reference may be redefined: + + -- Function Reference: finish_out + This function is called after the document generation. + + The default is to do nothing. + + +File: texi2html.info, Node: css, Next: Customizing header, Prev: Output finalization, Up: Changing the page layout + +6.7 Customizing the `texi2html' css lines +========================================= + +It is possible to modify the `texi2html' css lines by modifying the +entries or adding to the `%css_map' hash. Each key is a css selector, +the corresponding value is a style string. + + The whole css text is in the variable `$CSS_LINES'. If this variable +is defined the variable value is used instead of being constructed +using the `%css_map' entries. For example if you don't want any css +entries, set + + $CSS_LINES = ''; + + It is also possible to change completely the way `$CSS_LINES' are +generated by redefining the following function reference: + + -- Function Reference: css_lines \@import_lines \@rule_lines + This function should be used to construct the `$CSS_LINES'. + \@IMPORT_LINES are the `@import' lines of the files specified with `--include-css', + and \@RULE_LINES are the css commands lines of these files. *Note + Style options::. + + +File: texi2html.info, Node: Customizing header, Next: Customizing section, Prev: css, Up: Changing the page layout + +6.8 Customizing the page header +=============================== + +It is possible to add lines to the text within the `<head>' HTML +elements, by defining the variable `$EXTRA_HEAD'. Similarly it is +possible to add text just after the `<body>' element with the variable `$AFTER_BODY_OPEN'. +These variables are empty by default. + + The encoding of the texinfo file is defined by `$DOCUMENT_ENCODING' +if no `@documentencoding' appears in the document. The default is a +`en-ascii' encoding. The encoding of the resulting document is defined +by `$ENCODING'. The default is the `$DOCUMENT_ENCODING'. + + The description of the document may be specified in `$DOCUMENT_DESCRIPTION'. +If this variable is undef, the text associated with +`@documentdescription' is used, and if there isn't such test a default +description is constructed using the document title and the name of the +first section of the file. + + The `<body>' element attributes may be set by defining the variable `$BODYTEXT'. +If you want to define that variable dynamically, you should use the +`init_out' function reference (*note Output initialization::). + + The default functions call the function associated with `$print_head_navigation' +to format the navigation panel for the page header. Thus you can +control parts of the formatting by redefining the function reference. + + -- Function Reference: print_head_navigation $filehandle \@buttons + $FILEHANDLE is the opened filehandle the function should write to. + \@BUTTONS is an array reference which should hold the + specification of the buttons for the navigation panel. + + If you want even more control, you can have full control over the +page header formatting by redefining three function references. The +function associated with `$print_page_head' is called for all the +pages, and after that, the function associated with `$print_chapter_header' +is called if the document is split at chapters, or the function +associated with `$print_section_header' is called if the document is +split at sections. + + -- Function Reference: print_page_head $filehandle + $FILEHANDLE is the opened filehandle the function should write to. + This function should print the page head, including the `<body>' + element. + + -- Function Reference: print_chapter_header $filehandle + $FILEHANDLE is the opened filehandle the function should write to. + This function is called if the document is split at chapters, after + `print_page_head'. + + -- Function Reference: print_section_header $filehandle + $FILEHANDLE is the opened filehandle the function should write to. + This function is called if the document is split at sections, after + `print_page_head'. + + +File: texi2html.info, Node: Customizing section, Next: Customizing footer, Prev: Customizing header, Up: Changing the page layout + +6.9 Customizing the sections +============================ + +The functions associated with the following function references are +used for the formatting of sections: + + -- Function Reference: print_section $filehandle $first_in_page + $previous_is_top + $FILEHANDLE is the opened filehandle the function should write to. + $FIRST_IN_PAGE is true if this section is the first section in the + page. $PREVIOUS_IS_TOP is true if this section is the section + following the Top section. This function should print the current + section. + + -- Function Reference: end_section $filehandle + $last_element_or_before_top + $FILEHANDLE is the opened filehandle the function should write to. + $LAST_ELEMENT_OR_BEFORE_TOP is true if this section precedes the + top element or is the last one in page, or before the special + elements. + + +File: texi2html.info, Node: Customizing footer, Next: Special pages, Prev: Customizing section, Up: Changing the page layout + +6.10 Customizing the page footer +================================ + +It is possible to add text just before the `</body>' element with the +variable `$PRE_BODY_CLOSE'. Nothing is added by default. + + The default functions call the function associated with `$print_foot_navigation' +to format the navigation panel for the page footer. Thus you can +control parts of the formatting by redefining the function reference. + + -- Function Reference: print_foot_navigation $filehandle \@buttons + $FILEHANDLE is the opened filehandle the function should write to. + \@BUTTONS is an array reference which should hold the + specification of the buttons for the navigation panel. + + If you want even more control, you can have full control the page +footer formatting by redefining three function references. The +function associated with `$print_chapter_footer' is called if the +document is split at chapters, or the function associated with `$print_section_footer' +is called if the document is split at sections. After that the +function associated with `$print_page_foot' is called. + + -- Function Reference: print_page_foot $filehandle + $FILEHANDLE is the opened filehandle the function should write to. + This function should print the page foot, including the `</body>' + element. + + -- Function Reference: print_chapter_footer $filehandle + $FILEHANDLE is the opened filehandle the function should write to. + This function is called if the document is split at chapters, + before `print_page_foot'. + + -- Function Reference: print_section_footer $filehandle + $FILEHANDLE is the opened filehandle the function should write to. + This function is called if the document is split at sections, + before `print_page_foot'. + + +File: texi2html.info, Node: Special pages, Next: File names, Prev: Customizing footer, Up: Changing the page layout + +6.11 Special pages formatting +============================= + +For the special elements, two things must be formatted: the content and +the page layout + +* Menu: + +* Special pages content:: +* Special pages layout:: + + +File: texi2html.info, Node: Special pages content, Next: Special pages layout, Up: Special pages + +6.11.1 Customizing the content of the special pages +--------------------------------------------------- + +* Menu: + +* Top element text:: +* Contents and Overview text:: +* Footnotes text:: +* About text:: + + +File: texi2html.info, Node: Top element text, Next: Contents and Overview text, Up: Special pages content + +6.11.1.1 Top element text formatting +.................................... + +The top element formatting is controlled by three function which also +controls the layout of the top element page or section. The associated +function references are: + + -- Function Reference: print_Top_header $filehandle $begin_page + $FILEHANDLE is the opened filehandle the function should write to. + $BEGIN_PAGE is true if the element is the first in a page. This + function should begin the Top element. At the time this function + is called the top element text hasn't been parsed. + + -- Function Reference: print_Top $filehandle $has_top_heading + $FILEHANDLE is the opened filehandle the function should write to. + $HAS_TOP_HEADING is true if there is a `@heading' command or + `@titlefont' command appearing in the Top element text. This + function should be used to format the Top element text and + navigation panel. + + -- Function Reference: print_Top_footer $filehandle $end_page + $FILEHANDLE is the opened filehandle the function should write to. + $END_PAGE is true if the element is the last in a page. This + function should end the Top element. + + +File: texi2html.info, Node: Contents and Overview text, Next: Footnotes text, Prev: Top element text, Up: Special pages content + +6.11.1.2 Table of contents and Short table of contents +...................................................... + +Several variables may be used to control the formatting of table of +contents and short table of contents: + +`$DO_CONTENTS' + If the variable is true a table of contents is done even if there + is no `@contents' command. + +`$DO_SCONTENTS' + If the variable is true a short table of contents is done even if + there is no `@summarycontents' command. + +`$BEFORE_OVERVIEW' + The variable value is inserted before the short table of contents + text. + +`$AFTER_OVERVIEW' + The variable value is inserted after the short table of contents + text. + +`$BEFORE_TOC_LINES' + The variable value is inserted before the table of contents text. + +`$AFTER_TOC_LINES' + The variable value is inserted after the table of contents text. + +`$TOC_LIST_STYLE' + This should contain a css style used for the list style if the + tables of content are formatted with a list. + +`$TOC_LIST_ATTRIBUTE' + This should contain an attribute text used for the list element if + the tables of content are formatted with a list. + + More control on the table of contents and short table of contents +formatting may be achieved by redefining a function with the following +associated function reference: + + -- Function Reference: toc_body \@elements + \@ELEMENTS is an array reference contining informations about all + the elements of the document. Each of the entry of this array is + an hash reference which entries correspond with different + informations about the element. Interesting keys have the + following meaning: + + `top' + true if the element is the top element, + + `index_page' + true if the element is an index page added because of index + splitting, + + `toc_level' + level of the element in the table of content. Highest level + is 1 for the top element and for chapters, appendix and so on, + 2 for section, unnumberedsec and so on... + + `tocid' + label used for reference linking to the element in table of + contents, + + `file' + the file containing the element, usefull to do href to that + file in case the document is split, + + `text' + text of the element, with section number, + + `name' + text of the element, without section number. + + This function doesn't return anything but should fill the array + corresponding with the `$Texi2HTML::TOC_LINES' and `$Texi2HTML::OVERVIEW' + references with the table of contents and short table of contents. + + + +File: texi2html.info, Node: Footnotes text, Next: About text, Prev: Contents and Overview text, Up: Special pages content + +6.11.1.3 Formatting of footnotes text +..................................... + +The footnotes text is allready formatting when `@footnote' commands are +expanded. *Note Footnotes::. + + +File: texi2html.info, Node: About text, Prev: Footnotes text, Up: Special pages content + +6.11.1.4 Formatting of about text +................................. + +The default about element contains an explaination of the buttons used +in the document (`@SECTION_BUTTONS', *Note Button specifications::) and +an example locating the buttons targets in an example. The formatting +of this text may be influenced by the following hashes and variables: + +`$PRE_ABOUT' +`$AFTER_ABOUT' + This variable may be a scalar or a function reference. If it is a + scalar, the value is used. If this is a function reference it is + expanded and the returned text is used. The text is added before + or after the main about text. + +`%BUTTONS_GOTO' + The keys of this hash are element labels (*note Element labels::). + The value is the text associated with the element label in the + about text. The element of the hash are defined dynamically, you + should in the `init_out' function reference (*note Output + initialization::). + +`%BUTTONS_EXAMPLE' + The keys of this hash are element labels (*note Element + labels::). The value is the text associated with the element label + in the about example, typically a section number. + + + If this is not enough and you want to control exactly the formatting +of the about text, you can redefine the function associated with the +following function reference: + + -- Function Reference: $about_text print_about + This function should return the about text. + + +File: texi2html.info, Node: Special pages layout, Prev: Special pages content, Up: Special pages + +6.11.2 Customizing the layout of the special pages +-------------------------------------------------- + +The formatting of each of the special pages, or section in case the +document is not split, is controlled by a function. The associated +function reference is called accordingly: + +`print_Top' + +`print_Top_header' + +`print_Top_footer' + Formatting of top element page or section. It is also used for the + formatting of the top element text (*note Top element text::). + +`print_Toc' + Formatting of table of contents page or section + +`print_Overview' + Formatting of short table of contents page or section + +`print_About' + Formatting of about (help) page or section + +`print_Footnotes' + Formatting of footnotes section or page in case footnotes are on a + separated page or the document isn't split. + + In the default case, `$print_Top' calls `$print_Top_header' for the +header and `$print_Top_footer' for the footer of top element. All the +other function call `$print_misc' which in turn calls `$print_misc_header' +for the headers and `$print_misc_footer' for the footers. + + +File: texi2html.info, Node: File names, Next: External index files, Prev: Special pages, Up: Changing the page layout + +6.12 Customizing the file names +=============================== + +It is possible to specify the file names with more control than with the +command line options (*note Output files::). First the extension may +be overrided by the variable `$EXTENSION' value. Two function +references enable further customization. One is usefull in case `$NODE_FILES' +is true and it is used to customize the node file name itself and is +also used to produce a file name with a redirection leading to the node +file. + + -- Function Reference: ($node_file $redirection_node_file) +node_file_name $node + $NODE is a hash reference with the following interesting keys + (there are much more keys): + `texi' + The texinfo node name. + + `with_section' + True if associated with a section. + The result is the node file name $NODE_FILE, and the file + containing a redirection to the node $REDIRECTION_NODE_FILE. + + The other is usefull if `$NODE_FILES' isn't true. It is used to +customize the file associated with each element. + + -- Function Reference: $file element_file_name $element $is_top + $docu_name + $ELEMENT is a hash reference with the following interesting keys + (there are much more keys): + `texi' + The texinfo element name. + + `number' + The number associated with a section. + + `doc_nr' + A number incremented whenever a new file should begin, based + on how the document is split (*note Splitting output::). + + `text' + The element text. + + `name' + The element text without section number. + $IS_TOP is true if the element is considered as the top element. + $DOCU_NAME is the basename of the texinfo manual. The result is + the element file name. + + +File: texi2html.info, Node: External index files, Prev: File names, Up: Changing the page layout + +6.13 Generation of external files for index entries +=================================================== + +Within the document, `@printindex' commands are expanded as explained +in *Note Index list::. In case you want to do something special with +index entries, outside of the document, you should first set the +variable `$IDX_SUMMARY' true. After that some function reference will +be called for each non empty index. For each index there are 3 function +references, one called for initialization, one called for each index +entry and the last one called for finalazation. + + -- Function Reference: index_summary_file_begin $index_name $is_printed + $INDEX_NAME is the two letters name for the index. This function + is called for each index appearing in the document, before + `index_summary_file_entry'. $IS_PRINTED is true if there is a + `@printindex' for that index. + + -- Function Reference: index_summary_file_entry $index_name + $entry_text $entry_reference $formatted_entry $texi_entry + $entry_element_reference $entry_element_header $is_printed + This function is called for each entry of an index. INDEX_NAME is + the name of the index. $ENTRY_TEXT is the entry in plain text, + $FORMATTED_ENTRY is the index entry formatted, $TEXI_ENTRY is the + entry with texinfo commands. $ENTRY_REFERENCE is the reference + placed at the index entry place, in the form `file#id'. + $ENTRY_ELEMENT_HEADER is the formatted header of the element + containing the index entry. ENTRY_ELEMENT_HEADER is the reference + to the beginning of the element containing the index entry, in the + form `file#id'. $IS_PRINTED is true if there is a `@printindex' + for that index. + + -- Function Reference: index_summary_file_end $index_name $is_printed + $INDEX_NAME is the two letters name for the index. This function + is called for each index appearing in the document, after + `index_summary_file_entry'. $IS_PRINTED is true if there is a + `@printindex' for that index. + + +File: texi2html.info, Node: Customizing HTML, Next: Internationalization, Prev: Changing the page layout, Up: Top + +7 Customizing HTML and text style in init files +*********************************************** + +Some simple customization may be achieved with the redefinition of the +variables associated with the command line options. For the description +and an explanation of the meaning of these variables, *Note Style +options::. + + Other variables and hash entries can be modified in initialization +file to achieve more customization. Lastly, functions references +corresponding with functions called from the main program and +initialization files may be redefined. + +* Menu: + +* Three contexts:: there are three different contexts for command + expansion: normal text, preformatted text and + strings. +* Commands without argument:: +* Style and accent commands:: +* Anchors images and spaces:: Formatting of `@anchor', `@image', `@sp', `@acronym', `@abbr' +* Text:: Some characters are processed specially +* Strings:: `texi2html' write some strings in the output + different for each languages +* References:: +* Alignement commands:: `@center', `@flushleft'... +* Paragraph and preformatted region:: +* Complex formats:: `@example', `@display'... +* Lists tables:: +* Definitions:: +* Headings:: +* Special regions:: `@verbatim', `@cartouche', `@quotation' +* Menus:: +* Indices:: +* Floats and lists of floats:: `@float' and `@listoffloats' +* Footnotes:: +* Other and unknown commands:: You can handle specifically other commands + + +File: texi2html.info, Node: Three contexts, Next: Commands without argument, Up: Customizing HTML + +7.1 Three contexts for expansions: preformatted, normal and string +================================================================== + +There are three contexts of interest, one is the normal context, the +other is a special context, called the "preformatted" context and the +last is the string context. The preformatted context occurs when the +spacing between words is kept. This is the case, for example, in +`@display' or `@example' regions, and in menu comments (*note Menus::). +The preformatted regions are usually rendered in `<pre>' elements in +HTML. The string context occurs when rendering strings without +formatting elements, in comments or titles for example. + + +File: texi2html.info, Node: Commands without argument, Next: Style and accent commands, Prev: Three contexts, Up: Customizing HTML + +7.2 Customizing the formatting of commands without argument +=========================================================== + +This includes the commands whose name is a nonletter character like +`@@', the commands with lettered characters and braces but whose braces +should be empty, like `@TeX{}', or some commands associated with +accentted letters like `@AA{}'. If there happens to be something within +the braces, it is put after the command, thus + @TeX{something} + leads to the same than + @TeX{} something + + Each of these categories of commands have three associated hashes, +one for normal context, the other for preformatted context and the last +in strings. The keys of the hashes are the command names, the +associated value is the text replacing the command. + + The hashes are: +command type normal text preformatted text string +one nonlettered character `%simple_map' `%simple_map_pre' `%simple_map_texi' +nothing in braces `%things_map' `%pre_map' `%texi_map' + + To change the HTML resulting from these constructs, just change the +value. For example, if you want `­' to be outputted for `@-' in +normal and preformatted context, write in your init file: + + $simple_map{'-'} = '­'; + $simple_map_pre{'-'} = '­'; + + +File: texi2html.info, Node: Style and accent commands, Next: Anchors images and spaces, Prev: Commands without argument, Up: Customizing HTML + +7.3 Customizing accent, style and other simple commands +======================================================= + +The formatting of the HTML produced by style and indicatric commands +(`@tt', `@code', `@email', `@titlefont'), the accentuation related +commands taking argument (`@'', `@udotaccent', `@dotless') and +miscalleneous commands (`@email', `@verb', `@w', `@uref', `@math', +`@asis') is controlled by two hash in the default case, `%style_map' +for normal context, `%style_map_pre' for preformatted context and `%style_map_texi' +in string context. + + The key of the hashes are the command names. There are two +possibilities for the values corresponding with two interfaces. The +values may be strings or hash references, and you can chose the +interface depending on the one you prefer. The interface with hash +reference is a bit more flexible but might also be regarded as more +complex. If you don't like either of these interfaces you can define +your own. + + Some remarks are in order: + + * The nonlettered accent commands which following character is + considered to be the argument (like in `@`a') should be keys of the + hash `%accent_map' hash, even if no value is associated. + + * `@math' is handled differently if LaTeX2HTML is used. + +* Menu: + +* Hash reference interface:: +* String interface:: +* Define your own interface:: + + +File: texi2html.info, Node: Hash reference interface, Next: String interface, Up: Style and accent commands + +7.3.1 An interface for commands formatting with a hash reference +---------------------------------------------------------------- + +The key of the hashes are the command names. The value determine how +the command argument is formatted. This value is a reference on a hash. +In this hash each key corresponds with a type of information for the +formatting, and the value is the corresponding information. For +example, in + + $style_map{'command'} = { 'args' => ['code'], 'attribute' => 'code'}; + + the arguments for `@command' are interpreted as specified by the +values associated with the `args' key while the attribute associated +with that command is `code'. + + The following keys in the hashes associated with each command have +the following meaning: + +`args' + The value associated is a reference on an array. Each element of + the array defines how the arguments (separated by `,' in the + texinfo code) for the @-command should be formatted. The + possibilities are + `normal' + for normal text, + + `code' + for text with `---', `--', `''' and ```' kept as is, + + `keep' + if the texinfo should be kept as is, without interpretation + of the @-commands. + + For example, we have + $style_map{'email'}->{'args'} = ['code', 'normal']; + + because `---', `--', `''' and ```' should be kept as is in the + first argument of `@email'. + + The default is `['normal']'. + +`attribute' + If the associated value is a word, it is considered to be an HTML + element name, and the argument is enclosed between the element + opening and the element closing. For example, if the value is + `elem', the resulting HTML is `<elem>ARG</elem>'. + + If the text is a word followed by some text, the word and is + interpreted as above, and the text is considered to be the + attributes text of the element. Thus `elem class="elem"' leads to + `<elem class="elem">ARG</elem>'. + + This works only if there is only one argument. + +`begin' + The associated value is added in front of the text. + +`begin' + The associated value is added after the text. + +`quotes' + If the corresponding value is true, the result is enclosed in + quotes `$OPEN_QUOTE_SYMBOL' and `$CLOSE_QUOTE_SYMBOL', with + defaults ``' and `''. + +`function' + The corresponding value should be a function reference. The + corresponding function is called with the following arguments: + + `$command' + The @-command name + + `$args' + A reference on an array containing the arguments of the + @-command. + + `$style_stack' + A reference on an array containing the name of the @-commands + containing the @-command being formatted. + + `$state' + A reference on a hash containing a lot of informations about + the context of the @-command. + + `$line_nr' + An opaque structure containing the information about the line + number of the @-command. It can be used to call + `main::echo_error' or `main::echo_warning' with first + argument a message, and second argument `$line_nr'. + + +File: texi2html.info, Node: String interface, Next: Define your own interface, Prev: Hash reference interface, Up: Style and accent commands + +7.3.2 An interface for commands formatting with a string +-------------------------------------------------------- + +The keys of the hashes are the command names. The value determine how +the command argument is formatted. If the value begins with `"', the +result is enclosed in quotes `$OPEN_QUOTE_SYMBOL' and `$CLOSE_QUOTE_SYMBOL', +with defaults ``' and `''. + + The command argument is allready formatted as HTML. The remaining +of the value text (or the value text if there were no `"') is +interpreted as follow: + + * If the text is empty the argument of the command is left as is. + + * If the text is a `&' followed by a name, like `&function', the + name is considered to be a function name, and this function is + called to format the argument of the command. The first argument + of the function is the command name, the second is the command + argument. For example, if the value associated with the + (fictituous) command `@foo' is `&my_func' and we have: + + sub my_func + { + my @args = split /,\s*/ $_[1]; + return "$_[0]: $args[0]" if ($args[1] = 1); + return "$args[0]"; + } + + The result of + @foo{truc, 1} + @foo{truc, bidule} + will be + foo: truc + truc + + * If the text is a word, it is considered to be an HTML element + name, and the argument is enclosed between the element opening and + the element closing. For example, if the value is `elem', the + resulting HTML is `<elem>ARG</elem>'. Similarly `"quoted' leads to + ``<quoted>ARG</quoted>''. + + * If the text is a word followed by some text, the word and is + interpreted as above, and the text is considered to be the + attributes text of the element. Thus `elem class="elem"' leads to + `<elem class="elem">ARG</elem>'. + + +File: texi2html.info, Node: Define your own interface, Prev: String interface, Up: Style and accent commands + +7.3.3 Defining the style and indicatric commands interface +---------------------------------------------------------- + +If you don't like this scheme, it is possible to change how those +commands are processed by redefining the following function reference: + + -- Function Reference: $resulting_text style $style $command $text + $args $no_close $no_open $line_nr $state $style_stack + $COMMAND is the @-command, $STYLE is the value associated with the + $COMMAND in the `%style_map', `%style_map_pre' or + `%style_map_texi' hashes. The $TEXT is the text appearing within + the @-command braces. ARGS is a reference on an array contening + the command arguments formatted according to the same conventions + than with the reference hash style (provided the value associated + with the @-command is a hash reference with a $ARG key as + described in *Note Reference hash args::). If $TEXT is split in + paragraphs each paragraph is passed through the function, and + $NO_CLOSE is true if it is not the last paragraph, while $NO_OPEN + is true if it is not the first paragraph. $LINE_NR is an opaque + structure containing the information about the line number of the + @-command. It can be used to call `main::echo_error' or + `main::echo_warning' with first argument a message, and second + argument `$line_nr'. $STATE is a reference on a hash containing a + lot of informations about the context of the @-command. + $STYLE_STACK is a reference on an array containing the name of the + @-commands containing the @-command being formatted. + + + +File: texi2html.info, Node: Anchors images and spaces, Next: Text, Prev: Style and accent commands, Up: Customizing HTML + +7.4 Formatting of special simple commands +========================================= + +The formatting of special simple commands is controlled by functions. To +customize the output, the corresponding function references should be +redefined. All these functions return a formatted text. + + The formatting of anchors is controlled by `$anchor', but the +function associated with the function reference does more, it is usefull +to produce a reference target or link. + + -- Function Reference: $anchor anchor $identifier $href $text + $attributes + If $IDENTIFIER is not empty, this value should be used to create a + target for links (typically associated with a name or id attribute + in HTML). The $HREF argument specifies a hpertextual reference + which should be used to link to a target. In case both + $IDENTIFIER and $HREF are given the text produced should be both + a target for $IDENTIFIER and a link to $HREF. $TEXT is the text + to be displayed. $ATTRIBUTES are additional attributes. It + should be reasonable to assume that the attributes are for a `<a>' + HTML element. + + The formatting of `@image' is controlled by: + + -- Function Reference: $image image $file_path $basename $preformatted + $file_name + $FILE_PATH is the image file name with the path, $BASENAME is the + alternate text or the file name without extension if no alternate + text is given. $PREFORMATTED is true if the image appears in + preformatted text. $FILE_NAME is the file name without path but + with extension. + + The formatting of `@sp' is controlled by: + + -- Function Reference: $sp sp $number $preformatted + $NUMBER is the numeric argument of `@sp'. $PREFORMATTED is true + if the `@sp' appears in preformatted text. + + The formatting of `@acronym' and `@abbr' is controlled by: + + -- Function Reference: $acronym acronym_like $acronym_texi + $acronym_text $with_explanation \@explanation_lines + $explanation_text $explanation_simply_formatted + $ACRONYM_TEXI is the acronym argument with texinfo @-commands, + $ACRONYM_TEXT is formatted. + + The other arguments are related with the explanation, the second + arg of the acronym. $WITH_EXPLANATION is true if the second + argument of the acronym command is present. If an explanation + exists, coming from previous `@acronym' or as an arg of this + command, the other args are defined: \@EXPLANATION_LINES is a + reference on an array containing the unformatted explanation lines, + $EXPLANATION_TEXT is the explanation text formatted, + $EXPLANATION_SIMPLY_FORMATTED is the explanation with a light + formatting, unabling in HTML (or XML) the explanation to be in an + attribute. + + +File: texi2html.info, Node: Text, Next: Strings, Prev: Anchors images and spaces, Up: Customizing HTML + +7.5 Processing special characters in text +========================================= + +Some characters are processed especially in text: `---', `--', ```' and +`'''. This is done only if in normal text and not in some commands +(`@code', `@env'...). A function reference is called to process those +characters in text + + -- Function Reference: $processed_text normal_text $text + The function processes `---', `--', ```' and `''' in $TEXT and + returns $PROCESSED_TEXT. The default is to change `---' to `--', + `--' to `-', and ```' and `''' to `"'. + + Some characters are special in HTML (`&', `"', `<' and `>') and +should be protected. This is done by the function associated with the +function reference + + -- Function Reference: $protected_text protect_text $text + The function processes the unprotected text $TEXT and returns the + resulting protected text $PROTECTED_TEXT. + + Empty lines are processed by the following function reference, which +could be usefull if empty lines are to be removed for example + + -- Function Reference: $resulting_text empty_line $empty_line + This function processes an $EMPTY_LINE and returns the resulting + text $RESULTING_TEXT. Empty lines are left as is by default. + + +File: texi2html.info, Node: Strings, Next: References, Prev: Text, Up: Customizing HTML + +7.6 Customizing strings written by `texi2html' +============================================== + +`texi2html' writes some strings in the generated document at various +places, at the page footers, on the help page, for special section +headings, buttons alt text and so on. These strings are customizable. +The string chosen depends on the language of the document (set by `--lang', `$LANG' +or `@documentlanguage'). This is the basis for internationalization as +it allows for strings translations. + + The strings are found in a hash reference, `$LANGUAGES'. Each key +is a language code. The associated value is also a hash reference. The +key is an english string and the associated value is the string +replacing the english string, if present. For example, we have + + $LANGUAGES->{'fr'} = { + ' Up ' => 'Plus haut', + }; + + It means that whenever the string ` Up ' is to be written and the +language is `fr', `Plus haut' is written. It is possible to customize +the english strings by redefining the `en' language hash. + + When a string contains a `%' followed by `{' NAME `}' it means that +the string will be expanded by `texi2html'. For example, if we have + + $LANGUAGES->{'fr'} = { + 'See %{node_file_href}' => 'Voir %{node_file_href}', + }; + + `%{node_file_href}' will be expanded to an href for a node in a file +by `texi2html' in the string. A `%%' will be expanded as `%'. + + For more on internationalization, see *Note Internationalization::. + + +File: texi2html.info, Node: References, Next: Alignement commands, Prev: Strings, Up: Customizing HTML + +7.7 References +============== + +* Menu: + +* Reference to external manual:: +* Internal reference:: + + +File: texi2html.info, Node: Reference to external manual, Next: Internal reference, Up: References + +7.7.1 Reference to external manual +---------------------------------- + +The references are produced with two function references, one for the +hypertextual reference construction, the other for the full reference to +external manual. + + -- Function Reference: $href external_href $node $node_identifier + $xml_node_identifier $manual_file_name + $NODE is the node name, with @-commands. $NODE_IDENTIFER is the + node name mapped to an identifier acceptable as a file name. + $XML_NODE_IDENTIFIER is the node name mapped to an identifier + acceptable as an XML identifier. Those identifiers are built as + explained in *Note HTML Xref: (texinfo)HTML Xref, thus allowing + for cross references to external manuals. $FILE is the manual or + file name of the external reference. This function should return an + href leading to the external manual. + + The default for this function is to make a reference compatible + with `makeinfo' (*note HTML Xref: (texinfo)HTML Xref.). + + -- Function Reference: $text external_ref $command $section $book + $node_and_file $href $cross_ref_name + This function formats a reference to an external texinfo manual. + The $COMMAND is the ref command (`ref', `xref' or `pxref', in + text, at sentence beginning or in parenthesis). The optionnal + $SECTION argument is the section in the book and BOOK is the book + title. $NODE_AND_FILE is the node and file name formatted + according to the convention used in info: `(file)node'. $HREF it + an hypertextual reference to the distant manual constructed using + the above function. $CROSS_REF_NAME is an optionnal cross + reference name appearing in the reference command. This function + returns the text corresponding with the external html manual + reference. This function returns the full formatted text of the + external reference. + + +File: texi2html.info, Node: Internal reference, Prev: Reference to external manual, Up: References + +7.7.2 Reference to an internal node +----------------------------------- + +A function reference is available for internal references. + + -- Function Reference: $text internal_ref $command $href $short_name + $name $is_section + This function formats a reference to a node in the current manual. + The $COMMAND is the ref command (`ref', `xref' or `pxref', in + text, at sentence beginning or in parenthesis). $HREF it an + hypertextual reference linking to the corresponding node or + section. $SHORT_NAME and $NAME hold the text for the reference but + $SHORT_NAME can be the node name which is assumed to be shorter + than the section name. $IS_SECTION is a boolean true if the + reference is a reference to a section. This function returns the + full formatted text of the internal reference. + + +File: texi2html.info, Node: Alignement commands, Next: Paragraph and preformatted region, Prev: References, Up: Customizing HTML + +7.8 Commands used for centering and flushing of text +==================================================== + +When a command controlling the alignement of text is used (`@center', +`@flushleft' and `@flushright'), the main program takes care of opening +and closing paragraphs. The alignement commands are the key of the `%paragraph_style' +hash. The value is used in the function doing the formatting of the +paragraphs. *Note Paragraph and preformatted region::. + + A function references allows for a customization of the formatting +of the text appearing in the command block. + + -- Function Reference: $result paragraph_style_command $command $text + $COMMAND is the command name, $TEXT is the text appearing within + the command. This function returns a formatted text. The default + is to return the text unmodified. + + +File: texi2html.info, Node: Paragraph and preformatted region, Next: Complex formats, Prev: Alignement commands, Up: Customizing HTML + +7.9 Formatting or not a paragraph or a preformatted region +========================================================== + +* Menu: + +* Paragraph and preformatted formatting:: +* Avoiding paragraphs:: + + +File: texi2html.info, Node: Paragraph and preformatted formatting, Next: Avoiding paragraphs, Up: Paragraph and preformatted region + +7.9.1 Paragraph and preformatted region formatting +-------------------------------------------------- + +The formatting of a paragraph region or a preformatted region, is +controlled by function references: + + -- Function Reference: $paragraph_text paragraph $text $alignement + $formatting_command $formatting_command_formatted + \$paragraph_number $format $item_number $enumerate_style + $number + This function formats a paragraph. $TEXT is the text of the + paragraph, $ALIGNEMENT is the empty string when no alignement + command has been seen, otherwise it is the current alignement + command name. *Note Alignement commands::. + + The remaining arguments are usefull when the paragraph appears + within a list or table. It is usefull whenever the paragraph has + to be formatted differently when appearing in such environments. + Moreover in that case the format command (`@itemize'...) may have + an associated formatting command. $FORMATTING_COMMAND is this + formatting command (like `@minus'). $FORMATTING_COMMAND_FORMATTED + is the command formatted in html in case the formatting command is + a leading command (like `@minus') which should be leading the + first paragraph. \$PARAGRAPH_NUMBER is a reference on the number + of paragraphs in that format command. The corresponding variable + should be increased when a paragraph is added. $FORMAT is the + format command. *Note Table and list items::. + + If the $FORMAT is an enumerate, $ITEM_NUMBER is the number of the + item in the list, $ENUMERATE_STYLE is the argument of the + enumerate, $NUMBER is the number or letter corresponding with this + item. + + -- Function Reference: $preformatted_text preformatted $text $style + $region_name $formatting_command + $formatting_command_formatted \$preformatted_number $format + $item_number $enumerate_style $number + This function formats a preformatted region. $TEXT is the text of + the preformatted region, $STYLE is the css style associated with + that preformatted region (*Note css::). $REGION_NAME is the name + of the command opening the preformatted region (`example'..., see + *Note Complex formats::) or a identifier for the preformatted + context (for example `menu-comment', see *Note Menus::). The + alignment commands are not taken into account, as the spaces are + preserved in preformatted regions, you should flush and center by + hand. + + The remaining arguments are usefull when the preformatted region + appears within a list or table. It is usefull whenever the + preformatted region has to be formatted differently when appearing + in such environments. Moreover in that case the format command + (`@itemize'...) may have an associated formatting command. + $FORMATTING_COMMAND is this formatting command (like `@minus'). + $FORMATTING_COMMAND_FORMATTED is the command formatted in html in + case the formatting command is a leading command (like `@minus') + which should be leading the first preformatted region. + \$PREFORMATTED_NUMBER is a reference on the number of preformatted + regions in that format command. The corresponding variable should + be increased when a preformatted region is added. $FORMAT is the + format command. *Note Table and list items::. + + If the $FORMAT is an enumerate, $ITEM_NUMBER is the number of the + item in the list, $ENUMERATE_STYLE is the argument of the + enumerate, $NUMBER is the number or letter corresponding with this + item. + + +File: texi2html.info, Node: Avoiding paragraphs, Prev: Paragraph and preformatted formatting, Up: Paragraph and preformatted region + +7.9.2 Avoiding paragraphs in formats +------------------------------------ + +It is possible to avoid that a format closes the previous paragraph or +preformatted region and reopens one, by putting the format command in a +hash, `%format_in_paragraph' with a true value. + + +File: texi2html.info, Node: Complex formats, Next: Lists tables, Prev: Paragraph and preformatted region, Up: Customizing HTML + +7.10 Formatting of complex formats (`@example', `@display'...) +============================================================== + +Here we see how a whole complex format is formatted. For the formatting +of the text, see *Note Paragraph and preformatted region::. + + The formatting of the complex formats is ultimately controlled by a +function, however the default for this function uses a hash reference +and changing the hash reference values should be enough in most cases. +This hash reference is called `$complex_format_map'. It has a key for +each of the complex format commands (`example', `smallexample', `lisp', +`smalllisp', `display', `smalldisplay', `format', `smallformat'). + + The associated value is also a reference on a hash. The keys are +`begin' and `end'. An eval of `begin' should lead to the beginning of +the formatted HTML, an eval of `end' should lead to the end of the +formatted HTML. The enclosed text will be formatted as described in +*Note Paragraph and preformatted region::, and the name of the complex +format will be available to the function formatting the text. + + If you aren't satisfied with this scheme, you can redefine the +following function reference for a better control over the complex +format formatting: + + -- Function Reference: $complex_format_text complex_format + $format_name $preformatted_text + $FORMAT_NAME is the complex format name, $PREFORMATTED_TEXT is the + text allready formatted as described in *Note Paragraph and + preformatted region::. This function returns the whole complex + format. + + +File: texi2html.info, Node: Lists tables, Next: Definitions, Prev: Complex formats, Up: Customizing HTML + +7.11 Customizing the formatting of lists and tables +=================================================== + +The formatting of lists and tables is done at two levels: + * At the level of the whole region (table or list), + + * At the level of the individual items, rows or cells of the list or + table. + +* Menu: + +* Table and list items:: +* Whole table list:: + + +File: texi2html.info, Node: Table and list items, Next: Whole table list, Up: Lists tables + +7.11.1 Formatting individual table and list items +------------------------------------------------- + +In texinfo it is possible to give `@itemize' or table command (hereafter +called a "format command") a "formatting command". For example +`@minus' is the formatting command here: + @table @minus + + The default is to apply the command to the text item, however it is +possible to avoid it. The hash `%special_list_commands' has an entry +for each of the format command. Each of these entries is a hash +reference. If a formatting command is a key of the hash reference, then +the formatting command is not applied to the text item for that format +command. For example, if we have: + + $special_list_commands{'itemize'} = { 'bullet' => '' }; + + and we have the following `@itemize': + @itemize @bullet + @item an item + @end itemize + + then `@bullet' will not be applied to `an item'. + +_lists_ + The items of lists are formatted using the following function + reference: + + -- Function Reference: $list_item list_item $text $format + $command $formatted_command $item_number + $enumerate_style $number + This function formats the text between `@item' commands. $TEXT + is the text corresponding with the item. $FORMAT is the type + of format, `itemize' or `enumerate'. $COMMAND is the + formatting command given in argument to `@itemize', + $FORMATTED_COMMAND is this command formatted if it is a + leading command, like `@minus'. + + If the $FORMAT is an enumerate, $ITEM_NUMBER is the number of + the item in the list, $ENUMERATE_STYLE is the argument of the + enumerate, $NUMBER is the number or letter corresponding with + this item. + +_two column tables_ + The two columns tables (`@table', `@ftable' and `@vtable'), items + are formatted using two function references, one for the first + line located on the `@item' line corresponding with the first + column, the other for the text appearing on the following lines, + corresponding with the second column text. + + -- Function Reference: $table_item table_item $item_text + $index_label_text $format $command $formatted_command + This function is used to format the text on the `@item' line. + $TEXT_ITEM is the text line. In case there is an index entry + associated with the `@item' (as with `@ftable' and + `@vtable'), $INDEX_LABEL_TEXT is the text inserted at the + place where an index entry appears. *Note Index entry place::. + $FORMAT is the type of format, `table', `ftable' or `vtable'. + $COMMAND is the formatting command given in argument to the + table format command, $FORMATTED_COMMAND is this command + formatted if it is a leading command, like `@minus'. + + -- Function Reference: $table_line table_line $text + This function is used to format the text on the lines + following the `@item' line. $TEXT is the corresponding text. + +_multitable_ + The multitable elements formatting is controlled by the functions + associated with two function references. One for a cell, and the + other for a row. + + -- Function Reference: $multitable_cell cell $text + This function is used to format the text of a multitable + cell, the text following a `@item' or a `@tab'. $TEXT is the + corresponding text. + + -- Function Reference: $multitable_row row $text $item_command + This function is used to format a multitable row. $TEXT is + the row text, with cells allready formatted with the `$cell' + function reference. $ITEM_COMMAND is the command used to + introduce the row, such that it is possible to distinguish + between `@item' and `@headitem'. + + +File: texi2html.info, Node: Whole table list, Prev: Table and list items, Up: Lists tables + +7.11.2 Formatting of a whole table or list +------------------------------------------ + +If the Texinfo command is a key of the `%format_map', the associated +value is used to specify the formatting of the construct, otherwise a +function is called. The value in `%format_map' associated with a +command is interpreted similarly with values associated with more +simpler commands: + + * If the text is a word, it is considered to be an HTML element + name, and the whole table or list is enclosed between the element + opening and the element closing. + + * If the text is a word followed by some text, the word and is + interpreted as above, and the text is considered to be the + attributes text of the element. + + * If the text is empty nothing is added to the text. + + In case the `%format_map' isn't used, a function reference called +`$table_list' should be redefined, the associated function will be +called each time a command isn't found in `%format_map'. + + -- Function Reference: $whole_table_list table_list $command $text + $COMMAND is the Texinfo command name, $TEXT is the formatted items. + + If you still want to use `%format_map' but differently from the +default, it is possible to redefine the following function reference: + + -- Function Reference: $whole_table_list format $command $format $text + $COMMAND is the @-command, $FORMAT is the entry associated with + $COMMAND in `%format_map'. $TEXT is the formatted items. + + +File: texi2html.info, Node: Definitions, Next: Headings, Prev: Lists tables, Up: Customizing HTML + +7.12 Definition commands formatting +=================================== + +The formatting of definition commands is controlled by a hash and four +functions. The hash describes how the text on the definition line is +interpreted, the functions control the formatting of the definition line +and the definition function text. + +* Menu: + +* Definition line:: +* Definition formatting:: + + +File: texi2html.info, Node: Definition line, Next: Definition formatting, Up: Definitions + +7.12.1 Customizing the interpretation of a definition line +---------------------------------------------------------- + +The keys of the hash `%def_map' are definition command names. There +are two types of entries: + + * If the command is a shortcut for another definition command the + value is a text and the definition command is replaced by the text. + + For example if we have: + $def_map{'deftruc'} = '@defvr {A truc}'; + + and a line like + @deftruc var + + the line will be transformed in + @defvr {A truc} var + + * If the command isn't a shortcut, it is associated with an array + reference. The first element is `f', `v' or `t' corresponding with + the index type (`f' for function, `v' for variable, `t' for type). + + The remaining of the array describes how to interpret the text + following the definition command on the definition command line. + The entry item specify what corresponds with the next bracketed + item or word. Currently the possibilities are `category', `name', + `type', `class' and `arg'. + + For example if we have + def_map{'defvr'} = [ 'v', 'category', 'name' ]; + + The first bracketed item following `@defvr' is considered to be + the category and the next one is the name. The index associated + with the definition line is the variables index. + + +File: texi2html.info, Node: Definition formatting, Prev: Definition line, Up: Definitions + +7.12.2 Customization of the definition formatting +------------------------------------------------- + +Four functions are used when formatting a definition command: + +category name + -- Function Reference: $category definition_category + $category_or_name $class $style + This function precise a category or an index entry name + associating a class $CLASS (if given) with $CATEGORY_OR_NAME. + The $STYLE of the definition may be `f', for function, `v', + for variable or `t', for type. + +formatting of the definition line + -- Function Reference: $line def_line $category $name $type + $arguments $index_label + This function formats the definition line. $CATEGORY is the + category formatted with `$definition_category', $NAME, $TYPE + and ARGUMENTS are the element of the definition line. + $INDEX_LABEL is the text inserted at the place where an index + entry appears. *Note Index entry place::. + +definition text + -- Function Reference: $definition_text def_item $text + This function formats the definition text, $TEXT. + +the whole definition + -- Function Reference: $definition def $text + This function formats the whole definition. The definition + line and text formatted by the above functions are in $TEXT. + + + +File: texi2html.info, Node: Headings, Next: Special regions, Prev: Definitions, Up: Customizing HTML + +7.13 Customizing headings formatting +==================================== + +A function controls the formatting of sectioning element headings, with +the corresponding function reference: + + -- Function Reference: $heading_text heading \%element_reference + The \%ELEMENT_REFERENCE is a reference on a hash corresponding + with the sectioning element. The following keys are of interest: + `text' + The heading text + + `name' + The heading text without section number + + `node' + true if the sectioning element is a node without associated + structuring command + + `level' + The level of the element in the document tree. `0' is for + `@top', `1' for `@chapter' and so on + + `tag_level' + the sectioning element name, with `@raisesections' and + `@lowersections' taken into account + + +File: texi2html.info, Node: Special regions, Next: Menus, Prev: Headings, Up: Customizing HTML + +7.14 Formatting of special regions (`@verbatim', `@cartouche', `@quotation') +============================================================================ + +Regions corresponding with raw text, like `@verbatim', `@html' or +`@tex' are formatted according to the following function reference: + + -- Function Reference: $raw_region raw $command $text + $COMMAND is the command name, $TEXT is the raw text. + + If LaTeX2HTML is used, `@tex' regions are handled differently, from +within the main program. + + The `@cartouche' command formatting is controlled by the function +reference: + + -- Function Reference: $cartouche cartouche $text + $TEXT is the text appearing within the cartouche. + + The formatting of `@quotation' is controlled by two function +references. The first one is usefull in case the `@quotation' has an +argument, as it allows to prepend a string to the quotation text: + + -- Function Reference: $prepended_string quotation_prepend_text $style + $text + $STYLE is the first argument of the `@quotation' if there are two + arguments. $TEXT is the second argument or the first if there is + one argument. There are still @-commands in these strings. This + function can return a string which will be prepended to the + quotation text. + + The whole quotation is formatted by: + + -- Function Reference: $quotation quotation $quotation_text + $argument_text $argument_style_texi $argument_style_id + $QUOTATION_TEXT is the quotation text, formatted, with the text + prepended by the function above. $ARGUMENT_TEXT is the second + argument of the `@quotation' or the first if there is one + argument, formatted. The other arguments are defiend if there are + two arguments for the `@quotation', $ARGUMENT_STYLE_TEXI is this + argument, with @-commands, and $ARGUMENT_STYLE_ID is this + argument transformed in an identifier which can be used as an XML + identifier. + + +File: texi2html.info, Node: Menus, Next: Indices, Prev: Special regions, Up: Customizing HTML + +7.15 Menu formatting +==================== + +To understand how the formatting of menus is controlled, the different +parts of a menu are first described, then how to control the formatting +of each of these parts. + +* Menu: + +* Menu parts:: A menu consists in menu entry and menu + comments +* Menu formatting:: + + +File: texi2html.info, Node: Menu parts, Next: Menu formatting, Up: Menus + +7.15.1 The structure of a menu +------------------------------ + +In `texi2html', a menu is considered to be composed of 2 parts, the +"menu entries" and the "menu comments". Menu entries are further +divided in an "entry link" and optionnaly an "entry description". The +entry link consists in a node name and an optionnal menu entry name. + + A menu entry begins with `*' at the beginning of the line. It begins +with the entry link, followed by the description. The description spans +until the next menu entry, or some text begining at the first character +of a line or an empty line, not contained within a command block which +begun in the description. An empty line or a line with text at the +first character starts a menu comment, which spans until the next menu +entry. + + Here is an illustration of these rules: + + @menu + * node name: entry name. description begins + description continues + * another menu entry:: + description begins + description continues + + A menu comment, after an empty line + + * node:: description begins + A menu comment. The line starts at the first character + + * last entry:: description begins _text + of the description, even if the line begins at the first character, + because we are in @emph_. + @end menu + + +File: texi2html.info, Node: Menu formatting, Prev: Menu parts, Up: Menus + +7.15.2 The formatting of the different menu components +------------------------------------------------------ + +In the default case, the name of the section corresponding with the +node is used instead of the node name. If `$NODE_NAME_IN_MENU' is true, +however, node names are used. If `$AVOID_MENU_REDUNDANCY' is true and +menu entry equal menu description the description isn't printed. This +is the default. Likewise, if node or section name equal entry name, do +not print entry name. + + A symbol, `$MENU_SYMBOL' is put at the beginning of menu entries +when the node name is used. The default is `•'. If `$UNNUMBERED_SYMBOL_IN_MENU' +is true it is also put at the beginning of unnumbered section names. +This is not done by default. + + The menu comments are considered to be preformatted text. The style +associated with this preformatted text is determined by `$MENU_PRE_STYLE'. +Default is `font-family: serif'. The css class associated with menu +comments is `menu-comments'. + + Three function references are associated with the formatting of the +different parts of a menu: + + -- Function Reference: $link menu_link $section \%state $href $node + $name $ending + $SECTION is the section name corresponding with the link, $HREF is + the link hypertextual reference. $HREF may be absent. \%STATE + holds informations about the current context. The only key which + could be of interest is `preformatted', true if the context is a + preformatted context. *Note Three contexts::. $NODE is the node + name, $NAME is the name of the node, and $ENDING is the text + ending the link entry. + + -- Function Reference: $description menu_description $description_text + \%state + $DESCRIPTION_TEXT is the text of the menu description. \%STATE + should be used similarly than for the menu link. + + -- Function Reference: $menu_comment menu_comment $text + $TEXT is the text of the menu comment. It is in a preformatted + environment. + + The following function reference controls the formatting of a wole +menu: + + -- Function Reference: $menu menu $menu_components_text + $MENU_COMPONENTS_TEXT is the formatted menu components text, + obtained as explained above. + + The last function reference corresponds with a special case. It is +used when a menu entry appears within another block command, to avoid +the possibilities of invalid HTML production. In that case the menu +description and menu comments are not formatted specially, but treated +like normal text. + + -- Function Reference: $link simple_menu_link $link_text $href $node + $name $ending + $LINK_TEXT is the text corresponding with the link name, $HREF is + the link hypertextual reference. $NODE is the node name, $NAME is + the name of the node, and $ENDING is the text ending the link + entry. + + +File: texi2html.info, Node: Indices, Next: Floats and lists of floats, Prev: Menus, Up: Customizing HTML + +7.16 Indices formatting +======================= + +Two different things needs to be handled for indices formatting, the +place where the index term appears, the index entry, and the index list +itself. The indexing commands like `@cindex' determines where index +entries appear, and the index list is printed with a `@printindex' +command. + +* Menu: + +* Index entry place:: Index entries in the main document are + targets for hypertext references +* Index list:: Customizing the formatting of the index list + + +File: texi2html.info, Node: Index entry place, Next: Index list, Up: Indices + +7.16.1 Formatting of index entries +---------------------------------- + +Index entry places in the main text may be the target for hypertext +references. Their formatting is controlled by the function associated +with the following function reference: + + -- Function Reference: $target index_entry_label $identifier + $preformatted + $IDENTIFIER should be used to create a target for links (typically + associated with a name or id attribute in HTML). $PREFORMATTED is + true if the index entry appeared in preformatted text. + + +File: texi2html.info, Node: Index list, Prev: Index entry place, Up: Indices + +7.16.2 Customizing the formatting of index lists +------------------------------------------------ + +The index entries are sorted alphabetically. A whole index list is +considered to be composed of letter entries. A letter entry is composed +by all the index entries beginning with that letter. A letter may be a +non alphabetical character, but we call it letter here. + + An index summary appears at the beginning and at the end of an index +list, and should be used to jump directly to a letter entry. Indices +lists may be split across pages, thus the different letters may appear +on different files. The number of index entries appearing on each page +is determined by a variable `$SPLIT_INDEX' if set. The default is to +split indices after 100 entries. + + The formatting of all these elements is controlled by the following +function references: + +_formatting of a letter in a summary_ + -- Function Reference: $letter summary_letter $letter $file + $identifier + This function is used to format a letter appearing in a + summary, refering to a letter entry in the index list. + $LETTER is the letter. $FILE is the file name where the letter + entry appears. More precisely, it is empty when the letter + entry is on the same page than the summary, it contains the + file name when the index page is split accross page. + $IDENTIFIER is an identifier for the target letter entry. + +_formatting of a summary_ + -- Function Reference: $summary index_summary + \@alphabetical_letters \@nonalphabetical_letters + \@ALPHABETICAL_LETTERS and \@NONALPHABETICAL_LETTERS contain + the formatted summary letters, formatted with the above + function. + +_formatting of an index entry_ + -- Function Reference: $entry index_entry $entry_href $entry_text + $section_href $section_heading + $ENTRY_HREF is a reference to the place where the index entry + appeared, $ENTRY_TEXT is the corresponding text. $SECTION_HREF + is a reference to the beginning of the sectioning element + containing the index entry, $SECTION_HEADING is the heading + of the element. + +_formatting of letter entry_ + -- Function Reference: $letter_entry index_letter $letter + $identifier $index_entries_text + This function formats a letter entry, consisting in all the + index entries beginning with this letter. $LETTER is the + letter, $IDENTIFIER should be used to create a target for + links (typically links from summaries), and + $INDEX_ENTRIES_TEXT is the text of the index entries + formatted as described above. + +_formatting of whole index_ + -- Function Reference: $index print_index $index_text $index_name + $INDEX_TEXT is the text of all the index entries grouped by + letter appearing in that page formatted as above. INDEX_NAME + is the name of the index, the argument of `@printindex'. + + +File: texi2html.info, Node: Floats and lists of floats, Next: Footnotes, Prev: Indices, Up: Customizing HTML + +7.17 Floats and lists of floats +=============================== + +Floats appear in the `@float' environment, optionaly with a style and a +label, and with optionnal `@caption' and `@shortcaption'. Their list +appear after a `@listoffloats'. + + A hash reference is associated with each float, it is available in +some formatting functions. The keys are: +`caption_texi' +`shortcaption_texi' + A reference on an array containing the caption or shortcaption + lines, unformatted. + +`style_texi' + The style with texi @-commands. + +`style_id' + The unique identifier associated with the style. + +`nr' + The number with the same conventions than makeinfo (use the + chapter number a dot and then the number of the float of that + style in the chapter, or an absolute number if in unnumbered). + +`chapter_nr' + The number of the chapter containing the float. + +`nr_in_chapter' + The number of the float in the chapter. + +`absolut_nr' + The number of the float in the document. + +`texi' + The label with @-commands. + +`id' + The unique identifier associated with the label. Usefull to make + an anchor or a reference. + +`element' + A reference on a structure representing the element the float + appear in. + +* Menu: + +* Floats:: Formatting of floats +* Lists of floats:: Formatting the lists of floats + + +File: texi2html.info, Node: Floats, Next: Lists of floats, Up: Floats and lists of floats + +7.17.1 Formatting a float +------------------------- + +First there is an occasion to construct a texinfo text for the caption, +using the caption texinfo lines and the informations in the float +structure. The returned lines will be formatted in the main program. A +function reference is used here: + + -- Function Reference: (\@caption_lines_returned, +\@shortcaption_lines_returned) caption_shortcaption \%float + \@caption_lines \@shortcaption_lines + \%FLOAT is the structure defined above. \@CAPTION_LINES and + \@SHORTCAPTION_LINES are references on arrays containing the + texinfo lines for caption and short caption. + \@CAPTION_LINES_RETURNED and \@SHORTCAPTION_LINES_RETURNED are + references on an array containing the texinfo lines for the + caption and shortcaption. + + Then the float is formatted with the following function reference: + + -- Function Reference: $text float $float_text \%float $caption_text + $shortcaption_text + $FLOAT_TEXT is the text appearing within the `@float', formatted. + \%FLOAT is still the structure defined above. $CAPTION_TEXT and + $SHORTCAPTION_TEXT are the caption and short caption build with the + above function and formatted. + + +File: texi2html.info, Node: Lists of floats, Prev: Floats, Up: Floats and lists of floats + +7.17.2 Formatting lists of floats +--------------------------------- + +A list of floats is introduced by `@listoffloats'. The argument of +`@listoffloats' is the "style". First the style texinfo can be modified +with the following function reference: + + -- Function Reference: $style_texi_returned listoffloats_style + $style_texi + $STYLE_TEXI is the `@listoffloats' argument with texinfo + @-commands kept. It is possible to make changes to the $STYLE_TEXI + and return a modified string, still with @-commands. The modified + string is formatted in the main program. + + After that, for each of the floats with that style, first there is a +possibility to modify the float style and the float caption before they +are formatted in the main program, with the following function +references: + + -- Function Reference: $float_style_texi_returned +listoffloats_float_style $style_texi \%float + $STYLE_TEXI is the style, and \%FLOAT is the structure described + above. This function reference returns a style to be formatted in + the main program. + + -- Function Reference: $caption_texi_returned listoffloats_caption + \%float + \%FLOAT is the structure described above. This function reference + returns a caption to be formatted in the main program. + + Each entry is formatted by: + + -- Function Reference: $listoffloats_entry listoffloats_entry + $style_texi \%float $float_style $caption $href + $STYLE_TEXI is the style with @-commands, $FLOAT_STYLE is the + style returned by the above function and formatted. $CAPTION is the + caption returned by the above function formatted. \%FLOAT is the + structure corresponding with the float, and $HREF is an href + pointing to the float location. + + Lastly, the whole `@listoffloats' is formatted by: + + -- Function Reference: $listoffloats listoffloats $style_texi $style + \@listoffloats_entries + $STYLE_TEXI is the style with @-commands, $STYLE is the style + returned by the above function and formatted. The array reference + \@LISTOFFLOATS_ENTRIES holds the entries formatted by the above + function. + + +File: texi2html.info, Node: Footnotes, Next: Other and unknown commands, Prev: Floats and lists of floats, Up: Customizing HTML + +7.18 Customizing the footnotes formatting +========================================= + +Each footnote is associated with a footnote entry. Several footnote +entries are grouped in a footnote section. When a footnote appears, two +things must be formatted: in the main text the place where the footnote +appear and the footnote text. + + Two functions, with corresponding function references control the +formatting of the footnotes: + + -- Function Reference: (\@lines $text_for_document) foot_line_and_ref + $number_in_doc $number_in_page $footnote_id $place_id + $document_file $footnote_file \@lines \%state + $NUMBER_IN_DOC is the footnote number in the whole document, + $NUMBER_IN_PAGE is the footnote number in the current page. + $FOOTNOTE_ID is an identifier for the footnote in the footnote text + which should be used to make target for references to that + footnote, while $PLACE_ID is an identifier for the location of the + footnote in the main document. Similarly, $DOCUMENT_FILE is the + file name of the file containing the text where the footnote + appears in the main document, while $FOOTNOTE_FILE is the file + name of the file where the footnote text appears. + + \@LINES is a reference on an array containing the footnote text + lines, allready formatted. And \%STATE holds informations about + the context at the footnote place in the main document. As usual + the most usefull entry is `preformatted' which is true if the + footnote appears in a preformatted context. + + This function returns a reference on an array, \@LINES containing + the updated footnote text for the footnote entry, and + $TEXT_FOR_DOCUMENT, the text appearing at the footnote place in + the main document, linking to the footnote entry. + + The following function is only used when footnotes are at the bottom +of a page and the document is split. For customization of the +footnotes page in case they are on a separated page or section, *Note +Special pages layout::. For the determination of the footnote +locations, *Note Page layout options::. + + -- Function Reference: foot_section \@footnotes_lines + This function formats a group of footnotes. \@FOOTNOTES_LINES is a + reference on an array holding the lines of all the footnote entries + formatted as explained above. This function modifies the reference. + + +File: texi2html.info, Node: Other and unknown commands, Prev: Footnotes, Up: Customizing HTML + +7.19 Customizing other commands, and unknown commands +===================================================== + +Many commands without braces are available in texinfo, sometimes with a +specific syntax. For example we have `@sp', `@noindent', +`@documentlanguage', `@oddheading', `@headings', `@shortcontents', +`@shorttitlepage' or `@comment'. `texi2html' interprets some of these +commands and some functions or variables are used for their formatting +or to access their information. In the default case, however, most of +these constructs are ignored. + + It is possible to change how the things following these commands on +the line are handled, what is considered to be an arg for those +commands and it is also possible to keep them instead of discarding +them such that it is possible to handle them specially, with the same +function than the one used for unknown commands. + + Those special commands without braces are the key of a hash: `%misc_command'. +The associated value is a reference on a hash enabling to set the +properties of these commands. The keys of this hash reference is the +name of a property, the value is the value of the property. For example +here we have `line' for the `arg' property for the `command' @-command. + + $misc_command{'command'} = {'arg' => 'line', 'skip' => 'space'}; + + The properties and possible values are: + +`skip' + This property enables to set what is skipped after the command + arguments. Here are the possible values: + `line' + The remaining of the line is skipped. + + `space' + Spaces are skipped but not newline. + + `whitespace' + Spaces are skipped + + `linewhitespace' + Spaces are skipped if there are only spaces remaining on the + line. + + `linespace' + Spaces are skipped, but not newline if there are only spaces + remaining on the line + +`arg' + If the associated value is `line' the line is considered to be the + argument. If it is a number it is the number of args (separated by + spaces). + +`texi' + If true the arguments are considered to real texinfo, therefore + `@value' and `@macro' are expanded. + +`keep' + If true the args and the macro are kept, otherwise they are + discarded. The defaut is to have `keep' undef for all the + commands. If `keep' is true for `@verbatiminclude' the default + action for this macro isn't done. + + Commands which don't appear in the hashes `%simple_map', `%simple_map_pre', `%simple_map_texi' +and `%misc_command', or that appear in `%misc_command' but with `keep' +true are processed by the following function reference: + + -- Function Reference: ($result_line, $result, $result_text, $message) +unknown $command $line + $COMMAND is the @-command, $LINE is the line following the + $COMMAND. $RESULT is a boolean. If it is true then the other return + values are taken into account otherwise the default actions are + used. In case $RESULT is true, $RESULT_LINE is the new line to be + processed further, $RESULT_TEXT is the resulting formatted text + and $MESSAGE, if defined is a message outputted to the output with + line number added by `texi2html'. + + Commands with braces not specified above nor in `%style_map', `%style_map_pre' +and `%style_map_texi' are processed by the following function reference + + -- Function Reference: ($result, $result_text, $message) unknown_style + $command $text + $COMMAND is the @-command, $TEXT is the text appearing within the + braces (allready formatted). $RESULT is a boolean. If it is true + then the other return values are taken into account otherwise the + default actions are used. In case $RESULT is true, $RESULT_TEXT is + the resulting formatted text and $MESSAGE, if defined is a message + outputted to the output with line number added by `texi2html'. + + +File: texi2html.info, Node: Internationalization, Next: Indexop, Prev: Customizing HTML, Up: Top + +Appendix A Internationalization +******************************* + +The strings written in the document are selected based on the document +language. This can be used to customize the strings, as described in +*Note Strings::. This also enables translation of the strings. + +* Menu: + +* Translating strings:: +* Adding new strings:: + + +File: texi2html.info, Node: Translating strings, Next: Adding new strings, Up: Internationalization + +A.1 Translating strings +======================= + +If the language is allready supported, then there will be a file in the +`i18n' directory with name the two-letter ISO-639 language code. In +that case you can enhance the translations by editing this file. There +is a `$LANGUAGES->{'LANGUAGE'}' hash in that file. The keys are the +english strings, in `''', the values (in `''' after `=>') are the +translations. When a string contains a `%' followed by `{' NAME `}' it +means that the string will be expanded by `texi2html'. For an example, +see *Note Strings::. + + After that you should run the command `./manage_i18n.pl all' in the +top directory, it should merge your file with the existing files in +`translations.pl', which is incorporated to the `texi2html' script by +`./configure'. + + If the language isn't currently supported, copy the `en' file in +`i18n' to a file with name the two-letter ISO-639 language code of your +language and then add your translations to the strings. You could also +add your two-letter language code in the `manage_i18n.pl' file in the +`@known_languages' array. + + After that you should similarly run the command `./manage_i18n.pl +all' in the top directory. + + Obsoleted strings are not removed from the files, they are still +present in the `$T2H_OBSOLETE_STRINGS->{'LANGUAGE'}' hash in case the +string is reused later. + + If you made change to strings specified in installed files (*note +Installation::) you will have to reinstall them otherwise the +installated files will take precedence (*note Using init files::). + + +File: texi2html.info, Node: Adding new strings, Prev: Translating strings, Up: Internationalization + +A.2 Adding new strings written to document +========================================== + +If you need to write strings, for example the new string A STRING to +the resulting document, call `&$I('a string')'. Use simple quotes. If +you want to substitute a value in the string put `%{STRING_VALUE}', in +the string, and give a second argument to `&$I', a hash reference with +key STRING_VALUE and value the what you want to substitute. Here is an +example: + + return &$I('%{name} of %{class}', { 'name' => $name, 'class' => $class }); + + In that case `%{name}' is substituted by `$name' in the translated +string. + + After that you should run the command `./manage_i18n.pl all' in the +top directory, it should add your new strings to all the files in the +`i18n' directory. + + +File: texi2html.info, Node: Indexop, Next: Indexvr, Prev: Internationalization, Up: Top + +Appendix B Command Line Option Index +************************************ + + +* Menu: + +* css-include=FILE: Style options. (line 24) +* def-table: Style options. (line 39) +* doctype=DTD: Style options. (line 8) +* DVAR: Texinfo related options. + (line 14) +* frames: Page layout options. (line 6) +* frameset-doctype: Style options. (line 10) +* frameset-doctype=DTD: Style options. (line 9) +* html-xref-prefix=PATH: Style options. (line 35) +* IDIR: Texinfo related options. + (line 25) +* if<region>: Expansion. (line 10) +* include-css: css. (line 22) +* init-file: Using init files. (line 13) +* iso: Style options. (line 19) +* l2h: Expanding TeX regions. + (line 8) +* l2h-file: Expanding TeX regions. + (line 21) +* l2h-l2h=PROGRAM: Expanding TeX regions. + (line 13) +* l2h-tmp: Expanding TeX regions. + (line 17) +* lang <1>: Strings. (line 9) +* lang: Using init files. (line 22) +* lang=LANG: Texinfo related options. + (line 9) +* menu: Invoking texi2html. (line 18) +* no-if<region>: Expansion. (line 12) +* node-files: Output files. (line 61) +* nomenu <1>: Expansion. (line 17) +* nomenu: Invoking texi2html. (line 18) +* nosec-nav: Page layout options. (line 11) +* number: Style options. (line 48) +* output: Output files. (line 35) +* PDIR: Texinfo related options. + (line 20) +* pkgdatadir=dir: Using init files. (line 8) +* pkgdatadir=DIR: Installation. (line 46) +* prefix: Output files. (line 39) +* separated-footnotes: Page layout options. (line 15) +* short-ext: Output files. (line 40) +* short-ref: Style options. (line 44) +* split: Splitting output. (line 8) +* sysconfdir=dir: Using init files. (line 10) +* toc-file: Output files. (line 43) +* toc-links: Style options. (line 52) +* top-file: Output files. (line 41) +* use-nodes: Splitting output. (line 38) +* UVAR: Texinfo related options. + (line 17) + + +File: texi2html.info, Node: Indexvr, Next: Indexcp, Prev: Indexop, Up: Top + +Appendix C Variable Index +************************* + + +* Menu: + +* $AFTER_BODY_OPEN: Customizing header. (line 8) +* $AFTER_OVERVIEW: Contents and Overview text. + (line 21) +* $AFTER_TOC_LINES: Contents and Overview text. + (line 28) +* $anchor <1>: Anchors images and spaces. + (line 10) +* $anchor: Redefining functions. (line 15) +* $AVOID_MENU_REDUNDANCY: Menu formatting. (line 8) +* $BEFORE_OVERVIEW: Contents and Overview text. + (line 17) +* $BEFORE_TOC_LINES: Contents and Overview text. + (line 25) +* $BIG_RULE: The page layout. (line 12) +* $BODYTEXT <1>: Customizing header. (line 22) +* $BODYTEXT: Output initialization. + (line 20) +* $cell: Table and list items. (line 81) +* $CLOSE_QUOTE_SYMBOL <1>: String interface. (line 8) +* $CLOSE_QUOTE_SYMBOL: Hash reference interface. + (line 65) +* $complex_format_map: Complex formats. (line 12) +* $CSS_LINES: css. (line 10) +* $DEF_TABLE: Style options. (line 41) +* $DEFAULT_RULE: The page layout. (line 11) +* $definition_category: Definition formatting. + (line 20) +* $DO_CONTENTS: Contents and Overview text. + (line 9) +* $DO_SCONTENTS: Contents and Overview text. + (line 13) +* $DOCTYPE: Style options. (line 12) +* $DOCUMENT_DESCRIPTION: Customizing header. (line 16) +* $DOCUMENT_ENCODING: Customizing header. (line 11) +* $ENCODING: Customizing header. (line 14) +* $EXTENSION: File names. (line 8) +* $EXTERNAL_DIR: Style options. (line 37) +* $EXTRA_HEAD: Customizing header. (line 7) +* $FRAMES: Page layout options. (line 9) +* $FRAMESET_DOCTYPE: Style options. (line 12) +* $ICONS: General purpose variables. + (line 13) +* $IDX_SUMMARY: External index files. (line 9) +* $INDEX_CHAPTER: The page layout. (line 66) +* $L2H_L2H: Expanding TeX regions. + (line 14) +* $L2H_TMP: Expanding TeX regions. + (line 18) +* $LANG <1>: Strings. (line 9) +* $LANG <2>: Using init files. (line 22) +* $LANG: Texinfo related options. + (line 11) +* $LANGUAGES <1>: Translating strings. (line 6) +* $LANGUAGES: Strings. (line 13) +* $MENU_PRE_STYLE: Menu formatting. (line 19) +* $MENU_SYMBOL: Menu formatting. (line 13) +* $MIDDLE_RULE: The page layout. (line 11) +* $NODE_FILES <1>: File names. (line 9) +* $NODE_FILES: Output files. (line 62) +* $NODE_NAME_IN_MENU: Menu formatting. (line 7) +* $NUMBER_SECTIONS: Style options. (line 49) +* $OPEN_QUOTE_SYMBOL <1>: String interface. (line 8) +* $OPEN_QUOTE_SYMBOL: Hash reference interface. + (line 65) +* $OUT: Output files. (line 35) +* $PRE_BODY_CLOSE: Customizing footer. (line 7) +* $PREFIX: Output files. (line 39) +* $print_chapter_footer: Customizing footer. (line 20) +* $print_chapter_header: Customizing header. (line 38) +* $print_foot_navigation: Customizing footer. (line 9) +* $print_head_navigation: Customizing header. (line 26) +* $print_misc: Special pages layout. (line 33) +* $print_misc_footer: Special pages layout. (line 34) +* $print_misc_header: Special pages layout. (line 33) +* $print_page_foot: Customizing footer. (line 23) +* $print_page_head: Customizing header. (line 37) +* $print_section_footer: Customizing footer. (line 21) +* $print_section_header: Customizing header. (line 40) +* $print_Top: Special pages layout. (line 31) +* $print_Top_footer: Special pages layout. (line 32) +* $print_Top_header: Special pages layout. (line 31) +* $SECTION_NAVIGATION <1>: General purpose variables. + (line 16) +* $SECTION_NAVIGATION: Page layout options. (line 12) +* $SEPARATED_FOOTNOTES: Page layout options. (line 15) +* $SHORT_REF: Style options. (line 46) +* $SHORTEXTN: Output files. (line 41) +* $SHOW_MENU: Expansion. (line 18) +* $SMALL_RULE: The page layout. (line 11) +* $SPLIT: Splitting output. (line 9) +* $SPLIT_INDEX: Index list. (line 15) +* $T2H_OBSOLETE_STRINGS: Translating strings. (line 6) +* $Texi2HTML::NODE{Next}: Button specifications. + (line 59) +* $Texi2HTML::OVERVIEW <1>: Contents and Overview text. + (line 77) +* $Texi2HTML::OVERVIEW: Global informations. (line 89) +* $Texi2HTML::THIS_HEADER: Global informations. (line 85) +* $Texi2HTML::THIS_SECTION <1>: Global functions. (line 12) +* $Texi2HTML::THIS_SECTION: Global informations. (line 82) +* $Texi2HTML::TOC_LINES <1>: Contents and Overview text. + (line 77) +* $Texi2HTML::TOC_LINES: Global informations. (line 92) +* $TOC_FILE: Output files. (line 44) +* $TOC_LINKS: Style options. (line 54) +* $TOC_LIST_ATTRIBUTE: Contents and Overview text. + (line 35) +* $TOC_LIST_STYLE: Contents and Overview text. + (line 31) +* $TOP_FILE: Output files. (line 42) +* $TOP_HEADING: The page layout. (line 47) +* $UNNUMBERED_SYMBOL_IN_MENU: Menu formatting. (line 14) +* $USE_ISO: Style options. (line 21) +* $USE_NODES: Splitting output. (line 39) +* $VERTICAL_HEAD_NAVIGATION: General purpose variables. + (line 9) +* $WORDS_IN_PAGE <1>: Global functions. (line 14) +* $WORDS_IN_PAGE: Button specifications. + (line 21) +* %accent_map: Style and accent commands. + (line 26) +* %ACTIVE_ICONS: Button specifications. + (line 71) +* %BUTTONS_GOTO: Output initialization. + (line 21) +* %css_map: css. (line 7) +* %def_map: Definition line. (line 6) +* %format_in_paragraph: Avoiding paragraphs. (line 8) +* %format_map: Whole table list. (line 6) +* %main::value: Global informations. (line 67) +* %misc_command: Other and unknown commands. + (line 20) +* %NAVIGATION_TEXT <1>: Output initialization. + (line 21) +* %NAVIGATION_TEXT: Button specifications. + (line 64) +* %paragraph_style: Alignement commands. (line 8) +* %PASSIVE_ICONS: Button specifications. + (line 72) +* %pre_map: Commands without argument. + (line 23) +* %simple_map <1>: Other and unknown commands. + (line 65) +* %simple_map: Commands without argument. + (line 22) +* %simple_map_pre <1>: Other and unknown commands. + (line 65) +* %simple_map_pre: Commands without argument. + (line 22) +* %simple_map_texi <1>: Other and unknown commands. + (line 65) +* %simple_map_texi: Commands without argument. + (line 22) +* %special_list_commands: Table and list items. (line 12) +* %style_map <1>: Other and unknown commands. + (line 79) +* %style_map: Style and accent commands. + (line 10) +* %style_map_pre <1>: Other and unknown commands. + (line 79) +* %style_map_pre: Style and accent commands. + (line 11) +* %style_map_texi <1>: Other and unknown commands. + (line 80) +* %style_map_texi: Style and accent commands. + (line 11) +* %Texi2HTML::HREF: Elements hashes. (line 12) +* %Texi2HTML::NAME: Elements hashes. (line 9) +* %Texi2HTML::NO_TEXI: Elements hashes. (line 18) +* %Texi2HTML::NODE: Elements hashes. (line 15) +* %Texi2HTML::THISDOC: Global informations. (line 12) +* %texi_map: Commands without argument. + (line 23) +* %things_map: Commands without argument. + (line 23) +* @CHAPTER_BUTTONS: Button specifications. + (line 27) +* @CSS_FILES: Style options. (line 27) +* @EXPAND: Expansion. (line 13) +* @INCLUDE_DIRS: Texinfo related options. + (line 27) +* @MISC_BUTTONS: Button specifications. + (line 32) +* @NODE_FOOTER_BUTTONS: Button specifications. + (line 17) +* @PREPEND_DIRS: Texinfo related options. + (line 22) +* @SECTION_BUTTONS: Button specifications. + (line 10) +* @SECTION_FOOTER_BUTTONS: Button specifications. + (line 16) + + +File: texi2html.info, Node: Indexcp, Prev: Indexvr, Up: Top + +Appendix D Concept Index +************************ + + +* Menu: + +* Avoid paragraph opening: Avoiding paragraphs. (line 6) +* bug report: Top. (line 6) +* centering: Alignement commands. (line 6) +* complex format: Complex formats. (line 6) +* Config: Using init files. (line 6) +* configure: Installation. (line 6) +* downloading texi2html source: Obtaining texi2html. (line 6) +* examples of manuals: Overview. (line 6) +* external manual: Reference to external manual. + (line 6) +* flushing text: Alignement commands. (line 6) +* i18n <1>: Translating strings. (line 6) +* i18n: Strings. (line 6) +* Installation: Installation. (line 6) +* internationalization: Using init files. (line 6) +* internationalized strings: Adding new strings. (line 6) +* makeinfo: whytexi2html. (line 6) +* manage_i18n.pl: Adding new strings. (line 6) +* paragraph: Paragraph and preformatted formatting. + (line 6) +* preformatted region: Paragraph and preformatted formatting. + (line 6) +* reference: References. (line 6) +* skipped command: Other and unknown commands. + (line 6) +* source code for texi2html, downloading: Obtaining texi2html. (line 6) +* texi2html source, downloading: Obtaining texi2html. (line 6) +* Texinfo: Overview. (line 6) +* text alignement: Alignement commands. (line 6) +* Translation: Translating strings. (line 6) +* unknown command: Other and unknown commands. + (line 6) + + + +Tag Table: +Node: Top2959 +Node: Overview5587 +Node: whytexi2html7377 +Node: Obtaining texi2html9460 +Node: Installation9743 +Node: Invoking texi2html11933 +Node: Splitting output13113 +Node: Output files16447 +Node: Expansion19709 +Node: Texinfo related options20618 +Node: Page layout options21685 +Node: Style options22582 +Node: Expanding TeX regions24902 +Node: Using init files26048 +Node: Initialization files27937 +Node: Redefining functions29884 +Node: Function prototypes30950 +Node: Changing the page layout32026 +Node: The different pages33384 +Node: The page layout35102 +Ref: Element labels36386 +Node: Navigation panel38115 +Node: General purpose variables38778 +Node: Button specifications39555 +Node: Panel formatting function42891 +Node: Program variables43690 +Node: Elements hashes44400 +Node: Global informations44919 +Node: Global functions47439 +Node: Output initialization48184 +Node: Output finalization49647 +Node: css50124 +Node: Customizing header51196 +Node: Customizing section54009 +Node: Customizing footer55013 +Node: Special pages56893 +Node: Special pages content57227 +Node: Top element text57531 +Node: Contents and Overview text58820 +Node: Footnotes text61569 +Node: About text61877 +Node: Special pages layout63397 +Node: File names64598 +Node: External index files66479 +Node: Customizing HTML68609 +Node: Three contexts70331 +Node: Commands without argument71105 +Node: Style and accent commands72527 +Node: Hash reference interface74020 +Ref: Reference hash args74896 +Node: String interface77266 +Node: Define your own interface79251 +Node: Anchors images and spaces80971 +Node: Text83845 +Node: Strings85181 +Node: References86771 +Node: Reference to external manual86978 +Node: Internal reference88982 +Node: Alignement commands89918 +Node: Paragraph and preformatted region90882 +Node: Paragraph and preformatted formatting91218 +Node: Avoiding paragraphs94955 +Node: Complex formats95360 +Node: Lists tables97057 +Node: Table and list items97529 +Node: Whole table list101474 +Node: Definitions103028 +Node: Definition line103510 +Node: Definition formatting104963 +Node: Headings106415 +Node: Special regions107382 +Node: Menus109420 +Node: Menu parts109872 +Node: Menu formatting111301 +Node: Indices114208 +Node: Index entry place114885 +Node: Index list115508 +Node: Floats and lists of floats118613 +Node: Floats120098 +Node: Lists of floats121414 +Node: Footnotes123643 +Node: Other and unknown commands126158 +Node: Internationalization130107 +Node: Translating strings130537 +Node: Adding new strings132195 +Node: Indexop133072 +Node: Indexvr136916 +Node: Indexcp150701 + +End Tag Table diff --git a/Master/texmf/doc/info/texinfo.info b/Master/texmf/doc/info/texinfo.info new file mode 100644 index 00000000000..babfcb3c651 --- /dev/null +++ b/Master/texmf/doc/info/texinfo.info @@ -0,0 +1,18328 @@ +This is texinfo.info, produced by makeinfo version 4.7 from texinfo.txi. + + This manual is for GNU Texinfo (version 4.7, 9 April 2004), a +documentation system that can produce both online information and a +printed manual from a single source. + + Copyright (C) 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1998, +1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.1 or any later version published by the Free Software + Foundation; with no Invariant Sections, with the Front-Cover texts + being "A GNU Manual," and with the Back-Cover Texts as in (a) + below. A copy of the license is included in the section entitled + "GNU Free Documentation License." + + (a) The FSF's Back-Cover Text is: "You have freedom to copy and + modify this GNU Manual, like GNU software. Copies published by + the Free Software Foundation raise funds for GNU development." + +INFO-DIR-SECTION Texinfo documentation system +START-INFO-DIR-ENTRY +* Texinfo: (texinfo). The GNU documentation format. +* install-info: (texinfo)Invoking install-info. Update info/dir entries. +* texi2dvi: (texinfo)Format with texi2dvi. Print Texinfo documents. +* texindex: (texinfo)Format with tex/texindex. Sort Texinfo index files. +* makeinfo: (texinfo)Invoking makeinfo. Translate Texinfo source. +END-INFO-DIR-ENTRY + + +File: texinfo.info, Node: Top, Next: Copying Conditions, Up: (dir) + +Texinfo +******* + +This manual is for GNU Texinfo (version 4.7, 9 April 2004), a +documentation system that can produce both online information and a +printed manual from a single source. + + Copyright (C) 1988, 1990, 1991, 1992, 1993, 1995, 1996, 1997, 1998, +1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.1 or any later version published by the Free Software + Foundation; with no Invariant Sections, with the Front-Cover texts + being "A GNU Manual," and with the Back-Cover Texts as in (a) + below. A copy of the license is included in the section entitled + "GNU Free Documentation License." + + (a) The FSF's Back-Cover Text is: "You have freedom to copy and + modify this GNU Manual, like GNU software. Copies published by + the Free Software Foundation raise funds for GNU development." + + The first part of this master menu lists the major nodes in this Info +document, including the @-command and concept indices. The rest of the +menu lists all the lower level nodes in the document. + +* Menu: + +* Copying Conditions:: Your rights. +* Overview:: Texinfo in brief. +* Texinfo Mode:: Using the GNU Emacs Texinfo mode. +* Beginning a File:: What is at the beginning of a Texinfo file? +* Ending a File:: What is at the end of a Texinfo file? +* Structuring:: Creating chapters, sections, appendices, etc. +* Nodes:: Writing nodes, the basic unit of Texinfo. +* Menus:: Writing menus. +* Cross References:: Writing cross references. +* Marking Text:: Marking words and phrases as code, + keyboard input, meta-syntactic + variables, and the like. +* Quotations and Examples:: Block quotations, examples, etc. +* Lists and Tables:: Itemized or numbered lists, and tables. +* Special Displays:: Floating figures and footnotes. +* Indices:: Creating indices. +* Insertions:: Inserting @-signs, braces, etc. +* Breaks:: Forcing or preventing line and page breaks. +* Definition Commands:: Describing functions and the like uniformly. +* Conditionals:: Specifying text for only some output cases. +* Internationalization:: Supporting languages other than English. +* Defining New Texinfo Commands:: User-defined macros and aliases. +* Hardcopy:: Output for paper, with TeX. +* Creating and Installing Info Files:: Details on Info output. +* Generating HTML:: Details on HTML output. + +* Command List:: All the Texinfo @-commands. +* Tips:: Hints on how to write a Texinfo document. +* Sample Texinfo Files:: Complete examples, including full texts. +* Include Files:: How to incorporate other Texinfo files. +* Headings:: How to write page headings and footings. +* Catching Mistakes:: How to find formatting mistakes. +* Copying This Manual:: The GNU Free Documentation License. +* Command and Variable Index:: A menu containing commands and variables. +* Concept Index:: A menu covering many topics. + + --- The Detailed Node Listing --- + +Overview of Texinfo + +* Reporting Bugs:: Submitting effective bug reports. +* Using Texinfo:: Create printed or online output. +* Output Formats:: Overview of the supported output formats. +* Info Files:: What is an Info file? +* Printed Books:: Characteristics of a printed book or manual. +* Formatting Commands:: @-commands are used for formatting. +* Conventions:: General rules for writing a Texinfo file. +* Comments:: Writing comments and ignored text in general. +* Minimum:: What a Texinfo file must have. +* Six Parts:: Usually, a Texinfo file has six parts. +* Short Sample:: A short sample Texinfo file. +* History:: Acknowledgements, contributors and genesis. + +Using Texinfo Mode + +* Texinfo Mode Overview:: How Texinfo mode can help you. +* Emacs Editing:: Texinfo mode adds to GNU Emacs' general + purpose editing features. +* Inserting:: How to insert frequently used @-commands. +* Showing the Structure:: How to show the structure of a file. +* Updating Nodes and Menus:: How to update or create new nodes and menus. +* Info Formatting:: How to format for Info. +* Printing:: How to format and print part or all of a file. +* Texinfo Mode Summary:: Summary of all the Texinfo mode commands. + +Updating Nodes and Menus + +* Updating Commands:: Five major updating commands. +* Updating Requirements:: How to structure a Texinfo file for + using the updating command. +* Other Updating Commands:: How to indent descriptions, insert + missing nodes lines, and update + nodes in sequence. + +Beginning a Texinfo File + +* Sample Beginning:: A sample beginning for a Texinfo file. +* Texinfo File Header:: The first lines. +* Document Permissions:: Ensuring your manual is free. +* Titlepage & Copyright Page:: Creating the title and copyright pages. +* Contents:: How to create a table of contents. +* The Top Node:: Creating the `Top' node and master menu. +* Global Document Commands:: Affecting formatting throughout. +* Software Copying Permissions:: Ensure that you and others continue to + have the right to use and share software. + +Texinfo File Header + +* First Line:: The first line of a Texinfo file. +* Start of Header:: Formatting a region requires this. +* setfilename:: Tell Info the name of the Info file. +* settitle:: Create a title for the printed work. +* End of Header:: Formatting a region requires this. + +Document Permissions + +* copying:: Declare the document's copying permissions. +* insertcopying:: Where to insert the permissions. + +Title and Copyright Pages + +* titlepage:: Create a title for the printed document. +* titlefont center sp:: The `@titlefont', `@center', + and `@sp' commands. +* title subtitle author:: The `@title', `@subtitle', + and `@author' commands. +* Copyright:: How to write the copyright notice and + include copying permissions. +* end titlepage:: Turn on page headings after the title and + copyright pages. +* headings on off:: An option for turning headings on and off + and double or single sided printing. + +The `Top' Node and Master Menu + +* Top Node Example:: +* Master Menu Parts:: + +Global Document Commands + +* documentdescription:: Document summary for the HTML output. +* setchapternewpage:: Start chapters on right-hand pages. +* paragraphindent:: Specify paragraph indentation. +* firstparagraphindent:: Suppress indentation of the first paragraph. +* exampleindent:: Specify environment indentation. + +Ending a Texinfo File + +* Printing Indices & Menus:: How to print an index in hardcopy and + generate index menus in Info. +* File End:: How to mark the end of a file. + +Chapter Structuring + +* Tree Structuring:: A manual is like an upside down tree ... +* Structuring Command Types:: How to divide a manual into parts. +* makeinfo top:: The `@top' command, part of the `Top' node. +* chapter:: +* unnumbered & appendix:: +* majorheading & chapheading:: +* section:: +* unnumberedsec appendixsec heading:: +* subsection:: +* unnumberedsubsec appendixsubsec subheading:: +* subsubsection:: Commands for the lowest level sections. +* Raise/lower sections:: How to change commands' hierarchical level. + +Nodes + +* Two Paths:: Different commands to structure + Info output and printed output. +* Node Menu Illustration:: A diagram, and sample nodes and menus. +* node:: Creating nodes, in detail. +* makeinfo Pointer Creation:: Letting makeinfo determine node pointers. +* anchor:: Defining arbitrary cross-reference targets. + +The `@node' Command + +* Node Names:: How to choose node and pointer names. +* Writing a Node:: How to write an `@node' line. +* Node Line Tips:: Keep names short. +* Node Line Requirements:: Keep names unique, without @-commands. +* First Node:: How to write a `Top' node. +* makeinfo top command:: How to use the `@top' command. + +Menus + +* Menu Location:: Menus go at the ends of short nodes. +* Writing a Menu:: What is a menu? +* Menu Parts:: A menu entry has three parts. +* Less Cluttered Menu Entry:: Two part menu entry. +* Menu Example:: Two and three part menu entries. +* Other Info Files:: How to refer to a different Info file. + +Cross References + +* References:: What cross references are for. +* Cross Reference Commands:: A summary of the different commands. +* Cross Reference Parts:: A cross reference has several parts. +* xref:: Begin a reference with `See' ... +* Top Node Naming:: How to refer to the beginning of another file. +* ref:: A reference for the last part of a sentence. +* pxref:: How to write a parenthetical cross reference. +* inforef:: How to refer to an Info-only file. +* uref:: How to refer to a uniform resource locator. + +`@xref' + +* Reference Syntax:: What a reference looks like and requires. +* One Argument:: `@xref' with one argument. +* Two Arguments:: `@xref' with two arguments. +* Three Arguments:: `@xref' with three arguments. +* Four and Five Arguments:: `@xref' with four and five arguments. + +Marking Words and Phrases + +* Indicating:: How to indicate definitions, files, etc. +* Emphasis:: How to emphasize text. + +Indicating Definitions, Commands, etc. + +* Useful Highlighting:: Highlighting provides useful information. +* code:: Indicating program code. +* kbd:: Showing keyboard input. +* key:: Specifying keys. +* samp:: A literal sequence of characters. +* verb:: A verbatim sequence of characters. +* var:: Indicating metasyntactic variables. +* env:: Indicating environment variables. +* file:: Indicating file names. +* command:: Indicating command names. +* option:: Indicating option names. +* dfn:: Specifying definitions. +* cite:: Referring to books not in the Info system. +* acronym:: Indicating acronyms. +* indicateurl:: Indicating a World Wide Web reference. +* email:: Indicating an electronic mail address. + +Emphasizing Text + +* emph & strong:: How to emphasize text in Texinfo. +* Smallcaps:: How to use the small caps font. +* Fonts:: Various font commands for printed output. + +Quotations and Examples + +* Block Enclosing Commands:: Different constructs for different purposes. +* quotation:: Writing a quotation. +* example:: Writing an example in a fixed-width font. +* verbatim:: Writing a verbatim example. +* verbatiminclude:: Including a file verbatim. +* lisp:: Illustrating Lisp code. +* small:: Examples in a smaller font. +* display:: Writing an example in the current font. +* format:: Writing an example without narrowed margins. +* exdent:: Undo indentation on a line. +* flushleft & flushright:: Pushing text flush left or flush right. +* noindent:: Preventing paragraph indentation. +* indent:: Forcing paragraph indentation. +* cartouche:: Drawing rounded rectangles around examples. + +Lists and Tables + +* Introducing Lists:: Texinfo formats lists for you. +* itemize:: How to construct a simple list. +* enumerate:: How to construct a numbered list. +* Two-column Tables:: How to construct a two-column table. +* Multi-column Tables:: How to construct generalized tables. + +Making a Two-column Table + +* table:: How to construct a two-column table. +* ftable vtable:: Automatic indexing for two-column tables. +* itemx:: How to put more entries in the first column. + +`@multitable': Multi-column Tables + +* Multitable Column Widths:: Defining multitable column widths. +* Multitable Rows:: Defining multitable rows, with examples. + +Special Displays + +* Floats:: Figures, tables, and the like. +* Images:: Including graphics and images. +* Footnotes:: Writing footnotes. + +Floats + +* float:: Producing floating material. +* caption shortcaption:: Specifying descriptions for floats. +* listoffloats:: A table of contents for floats. + +Inserting Images + +* Image Syntax:: +* Image Scaling:: + +Footnotes + +* Footnote Commands:: How to write a footnote in Texinfo. +* Footnote Styles:: Controlling how footnotes appear in Info. + +Indices + +* Index Entries:: Choose different words for index entries. +* Predefined Indices:: Use different indices for different kinds + of entries. +* Indexing Commands:: How to make an index entry. +* Combining Indices:: How to combine indices. +* New Indices:: How to define your own indices. + +Combining Indices + +* syncodeindex:: How to merge two indices, using `@code' + font for the merged-from index. +* synindex:: How to merge two indices, using the + default font of the merged-to index. + +Special Insertions + +* Atsign Braces Comma:: Inserting @ and {} and ,. +* Inserting Space:: How to insert the right amount of space + within a sentence. +* Inserting Accents:: How to insert accents and special characters. +* Dots Bullets:: How to insert dots and bullets. +* TeX and copyright:: How to insert the TeX logo + and the copyright symbol. +* pounds:: How to insert the pounds currency symbol. +* minus:: How to insert a minus sign. +* math:: How to format a mathematical expression. +* Glyphs:: How to indicate results of evaluation, + expansion of macros, errors, etc. + +Inserting @ and {} and , + +* Inserting an Atsign:: +* Inserting Braces:: +* Inserting a Comma:: + +Inserting Space + +* Not Ending a Sentence:: Sometimes a . doesn't end a sentence. +* Ending a Sentence:: Sometimes it does. +* Multiple Spaces:: Inserting multiple spaces. +* dmn:: How to format a dimension. + +Inserting Ellipsis and Bullets + +* dots:: How to insert dots ... +* bullet:: How to insert a bullet. + +Inserting TeX and Legal Symbols: (C), (R) + +* tex:: The TeX logos. +* copyright symbol:: The copyright symbol (c in a circle). +* registered symbol:: The registered symbol (R in a circle). + +Glyphs for Examples + +* Glyphs Summary:: +* result:: How to show the result of expression. +* expansion:: How to indicate an expansion. +* Print Glyph:: How to indicate printed output. +* Error Glyph:: How to indicate an error message. +* Equivalence:: How to indicate equivalence. +* Point Glyph:: How to indicate the location of point. + +Glyphs Summary + +* result:: +* expansion:: +* Print Glyph:: +* Error Glyph:: +* Equivalence:: +* Point Glyph:: + +Forcing and Preventing Breaks + +* Break Commands:: Summary of break-related commands. +* Line Breaks:: Forcing line breaks. +* - and hyphenation:: Helping TeX with hyphenation points. +* w:: Preventing unwanted line breaks in text. +* tie:: Inserting an unbreakable but varying space. +* sp:: Inserting blank lines. +* page:: Forcing the start of a new page. +* group:: Preventing unwanted page breaks. +* need:: Another way to prevent unwanted page breaks. + +Definition Commands + +* Def Cmd Template:: Writing descriptions using definition commands. +* Def Cmd Continuation Lines:: Continuing the heading over source lines. +* Optional Arguments:: Handling optional and repeated arguments. +* deffnx:: Group two or more `first' lines. +* Def Cmds in Detail:: Reference for all the definition commands. +* Def Cmd Conventions:: Conventions for writing definitions. +* Sample Function Definition:: An example. + +The Definition Commands + +* Functions Commands:: Commands for functions and similar entities. +* Variables Commands:: Commands for variables and similar entities. +* Typed Functions:: Commands for functions in typed languages. +* Typed Variables:: Commands for variables in typed languages. +* Data Types:: The definition command for data types. +* Abstract Objects:: Commands for object-oriented programming. + +Object-Oriented Programming + +* Variables: Object-Oriented Variables. +* Methods: Object-Oriented Methods. + +Conditionally Visible Text + +* Conditional Commands:: Text for a given format. +* Conditional Not Commands:: Text for any format other than a given one. +* Raw Formatter Commands:: Using raw formatter commands. +* set clear value:: Variable tests and substitutions. +* Conditional Nesting:: Using conditionals inside conditionals. + +`@set', `@clear', and `@value' + +* set value:: Expand a flag variable to a string. +* ifset ifclear:: Format a region if a flag is set. +* value Example:: An easy way to update edition information. + +Internationalization + +* documentlanguage:: Declaring the current language. +* documentencoding:: Declaring the input encoding. + +Defining New Texinfo Commands + +* Defining Macros:: Defining and undefining new commands. +* Invoking Macros:: Using a macro, once you've defined it. +* Macro Details:: Limitations of Texinfo macros. +* alias:: Command aliases. +* definfoenclose:: Customized highlighting. + +Formatting and Printing Hardcopy + +* Use TeX:: Use TeX to format for hardcopy. +* Format with tex/texindex:: How to format with explicit shell commands. +* Format with texi2dvi:: A simpler way to format. +* Print with lpr:: How to print. +* Within Emacs:: How to format and print from an Emacs shell. +* Texinfo Mode Printing:: How to format and print in Texinfo mode. +* Compile-Command:: How to print using Emacs's compile command. +* Requirements Summary:: TeX formatting requirements summary. +* Preparing for TeX:: What to do before you use TeX. +* Overfull hboxes:: What are and what to do with overfull hboxes. +* smallbook:: How to print small format books and manuals. +* A4 Paper:: How to print on A4 or A5 paper. +* pagesizes:: How to print with customized page sizes. +* Cropmarks and Magnification:: How to print marks to indicate the size + of pages and how to print scaled up output. +* PDF Output:: Portable Document Format output. +* Obtaining TeX:: How to Obtain TeX. + +Creating and Installing Info Files + +* Creating an Info File:: +* Installing an Info File:: + +Creating an Info File + +* makeinfo advantages:: `makeinfo' provides better error checking. +* Invoking makeinfo:: How to run `makeinfo' from a shell. +* makeinfo options:: Specify fill-column and other options. +* Pointer Validation:: How to check that pointers point somewhere. +* makeinfo in Emacs:: How to run `makeinfo' from Emacs. +* texinfo-format commands:: Two Info formatting commands written + in Emacs Lisp are an alternative + to `makeinfo'. +* Batch Formatting:: How to format for Info in Emacs Batch mode. +* Tag and Split Files:: How tagged and split files help Info + to run better. + +Installing an Info File + +* Directory File:: The top level menu for all Info files. +* New Info File:: Listing a new Info file. +* Other Info Directories:: How to specify Info files that are + located in other directories. +* Installing Dir Entries:: How to specify what menu entry to add + to the Info directory. +* Invoking install-info:: `install-info' options. + +Generating HTML + +* HTML Translation:: Details of the HTML output. +* HTML Splitting:: How HTML output is split. +* HTML CSS:: Influencing HTML output with Cascading Style Sheets. +* HTML Xref:: Cross-references in HTML output. + +HTML Cross-references + +* Link Basics: HTML Xref Link Basics. +* Node Expansion: HTML Xref Node Name Expansion. +* Command Expansion: HTML Xref Command Expansion. +* 8-bit Expansion: HTML Xref 8-bit Character Expansion. +* Mismatch: HTML Xref Mismatch. + +@-Command List + +* Command Syntax:: General syntax for varieties of @-commands. + +Sample Texinfo Files + +* Short Sample Texinfo File:: +* GNU Sample Texts:: +* Verbatim Copying License:: +* All-permissive Copying License:: + +Copying This Manual + +* GNU Free Documentation License:: License for copying this manual. + +Include Files + +* Using Include Files:: How to use the `@include' command. +* texinfo-multiple-files-update:: How to create and update nodes and + menus when using included files. +* Include Files Requirements:: `texinfo-multiple-files-update' needs. +* Sample Include File:: A sample outer file with included files + within it; and a sample included file. +* Include Files Evolution:: How use of the `@include' command + has changed over time. + +Page Headings + +* Headings Introduced:: Conventions for using page headings. +* Heading Format:: Standard page heading formats. +* Heading Choice:: How to specify the type of page heading. +* Custom Headings:: How to create your own headings and footings. + +Formatting Mistakes + +* makeinfo Preferred:: `makeinfo' finds errors. +* Debugging with Info:: How to catch errors with Info formatting. +* Debugging with TeX:: How to catch errors with TeX formatting. +* Using texinfo-show-structure:: How to use `texinfo-show-structure'. +* Using occur:: How to list all lines containing a pattern. +* Running Info-Validate:: How to find badly referenced nodes. + +Finding Badly Referenced Nodes + +* Using Info-validate:: How to run `Info-validate'. +* Unsplit:: How to create an unsplit file. +* Tagifying:: How to tagify a file. +* Splitting:: How to split a file manually. + +Copying This Manual + +* GNU Free Documentation License:: License for copying this manual. + + Documentation is like sex: when it is good, it is very, very good; + and when it is bad, it is better than nothing. --Dick Brandon + + +File: texinfo.info, Node: Copying Conditions, Next: Overview, Prev: Top, Up: Top + +Texinfo Copying Conditions +************************** + +The programs currently being distributed that relate to Texinfo include +`makeinfo', `info', `texindex', and `texinfo.tex'. These programs are +"free"; this means that everyone is free to use them and free to +redistribute them on a free basis. The Texinfo-related programs are +not in the public domain; they are copyrighted and there are +restrictions on their distribution, but these restrictions are designed +to permit everything that a good cooperating citizen would want to do. +What is not allowed is to try to prevent others from further sharing +any version of these programs that they might get from you. + + Specifically, we want to make sure that you have the right to give +away copies of the programs that relate to Texinfo, that you receive +source code or else can get it if you want it, that you can change these +programs or use pieces of them in new free programs, and that you know +you can do these things. + + To make sure that everyone has such rights, we have to forbid you to +deprive anyone else of these rights. For example, if you distribute +copies of the Texinfo related programs, you must give the recipients all +the rights that you have. You must make sure that they, too, receive or +can get the source code. And you must tell them their rights. + + Also, for our own protection, we must make certain that everyone finds +out that there is no warranty for the programs that relate to Texinfo. +If these programs are modified by someone else and passed on, we want +their recipients to know that what they have is not what we distributed, +so that any problems introduced by others will not reflect on our +reputation. + + The precise conditions of the licenses for the programs currently +being distributed that relate to Texinfo are found in the General Public +Licenses that accompany them. This manual specifically is covered by +the GNU Free Documentation License (*note GNU Free Documentation +License::). + + +File: texinfo.info, Node: Overview, Next: Texinfo Mode, Prev: Copying Conditions, Up: Top + +1 Overview of Texinfo +********************* + +"Texinfo"(1) is a documentation system that uses a single source file +to produce both online information and printed output. This means that +instead of writing two different documents, one for the online +information and the other for a printed work, you need write only one +document. Therefore, when the work is revised, you need revise only +that one document. + +* Menu: + +* Reporting Bugs:: Submitting effective bug reports. +* Using Texinfo:: Create printed or online output. +* Output Formats:: Overview of the supported output formats. +* Info Files:: What is an Info file? +* Printed Books:: Characteristics of a printed book or manual. +* Formatting Commands:: @-commands are used for formatting. +* Conventions:: General rules for writing a Texinfo file. +* Comments:: Writing comments and ignored text in general. +* Minimum:: What a Texinfo file must have. +* Six Parts:: Usually, a Texinfo file has six parts. +* Short Sample:: A short sample Texinfo file. +* History:: Acknowledgements, contributors and genesis. + + ---------- Footnotes ---------- + + (1) The first syllable of "Texinfo" is pronounced like "speck", not +"hex". This odd pronunciation is derived from, but is not the same as, +the pronunciation of TeX. In the word TeX, the `X' is actually the +Greek letter "chi" rather than the English letter "ex". Pronounce TeX +as if the `X' were the last sound in the name `Bach'; but pronounce +Texinfo as if the `x' were a `k'. Spell "Texinfo" with a capital "T" +and the other letters in lower case. + + +File: texinfo.info, Node: Reporting Bugs, Next: Using Texinfo, Up: Overview + +1.1 Reporting Bugs +================== + +We welcome bug reports and suggestions for any aspect of the Texinfo +system, programs, documentation, installation, anything. Please email +them to <bug-texinfo@gnu.org>. You can get the latest version of +Texinfo from `ftp://ftp.gnu.org/gnu/texinfo/' and its mirrors worldwide. + + For bug reports, please include enough information for the maintainers +to reproduce the problem. Generally speaking, that means: + + * the version number of Texinfo and the program(s) or manual(s) + involved. + + * hardware and operating system names and versions. + + * the contents of any input files necessary to reproduce the bug. + + * a description of the problem and samples of any erroneous output. + + * any unusual options you gave to `configure'. + + * anything else that you think would be helpful. + + When in doubt whether something is needed or not, include it. It's +better to include too much than to leave out something important. + + Patches are most welcome; if possible, please make them with +`diff -c' (*note Overview: (diff)Top.) and include `ChangeLog' entries +(*note Change Log: (emacs)Change Log.). + + When sending patches, if possible please do not encode or split them +in any way; it's much easier to deal with one plain text message, +however large, than many small ones. GNU shar +(ftp://ftp.gnu.org/gnu/sharutils/) is a convenient way of packaging +multiple and/or binary files for email. + + +File: texinfo.info, Node: Using Texinfo, Next: Output Formats, Prev: Reporting Bugs, Up: Overview + +1.2 Using Texinfo +================= + +Using Texinfo, you can create a printed document (via the TeX +typesetting system) the normal features of a book, including chapters, +sections, cross references, and indices. From the same Texinfo source +file, you can create an Info file with special features to make +documentation browsing easy. You can also create from that same source +file an HTML output file suitable for use with a web browser, or an XML +file. See the next section (*note Output Formats::) for details and +the exact commands to generate output from the source. + + TeX works with virtually all printers; Info works with virtually all +computer terminals; the HTML output works with virtually all web +browsers. Thus Texinfo can be used by almost any computer user. + + A Texinfo source file is a plain ASCII file containing text +interspersed with "@-commands" (words preceded by an `@') that tell the +typesetting and formatting programs what to do. You can edit a Texinfo +file with any text editor, but it is especially convenient to use GNU +Emacs since that editor has a special mode, called Texinfo mode, that +provides various Texinfo-related features. (*Note Texinfo Mode::.) + + You can use Texinfo to create both online help and printed manuals; +moreover, Texinfo is freely redistributable. For these reasons, Texinfo +is the official documentation format of the GNU project. More +information is available at the GNU documentation web page +(http://www.gnu.org/doc/). + + +File: texinfo.info, Node: Output Formats, Next: Info Files, Prev: Using Texinfo, Up: Overview + +1.3 Output Formats +================== + +Here is a brief overview of the output formats currently supported by +Texinfo. + +Info + (Generated via `makeinfo'.) This format is essentially a plain + text transliteration of the Texinfo source. It adds a few control + characters to separate nodes and provide navigational information + for menus, cross-references, indices, and so on. See the next + section (*note Info Files::) for more details on this format. The + Emacs Info subsystem (*note Getting Started: (info)Top.), and the + standalone `info' program (*note Info Standalone: + (info-stnd)Top.), among others, can read these files. *Note + Creating and Installing Info Files::. + +Plain text + (Generated via `makeinfo --no-headers'.) This is almost the same + as Info output, except the navigational control characters are + omitted. + +HTML + (Generated via `makeinfo --html'.) This is the Hyper Text Markup + Language that has become the most commonly used language for + writing documents on the World Wide Web. Web browsers, such as + Mozilla, Lynx, and Emacs-W3, can render this language online. + There are many versions of HTML; `makeinfo' tries to use a subset + of the language that can be interpreted by any common browser. For + details of the HTML language and much related information, see + `http://www.w3.org/MarkUp/'. *Note Generating HTML::. + +DVI + (Generated via `texi2dvi'.) This DeVice Independent binary format + is output by the TeX typesetting program (`http://tug.org'). This + is then read by a DVI `driver', which writes the actual + device-specific commands that can be viewed or printed, notably + Dvips for translation to PostScript (*note Invoking Dvips: + (dvips)Invoking Dvips.) and Xdvi for viewing on an X display + (`http://sourceforge.net/projects/xdvi/'). *Note Hardcopy::. + + Be aware that the Texinfo language is very different from and much + stricter than TeX's usual languages, plain TeX and LaTeX. For + more information on TeX in general, please see the book `TeX for + the Impatient', available from + `http://savannah.gnu.org/projects/teximpatient'. + +PDF + (Generated via `texi2dvi --pdf'.) This format, based on + PostScript, was developed by Adobe Systems for document + interchange. It is intended to be platform-independent and easily + viewable, among other design goals; for a discussion, see + `http://tug.org/tugboat/Articles/tb22-3/tb72beebeI.pdf'. Texinfo + uses the `pdftex' program, a variant of TeX, to output pdf; see + `http://tug.org/applications/pdftex'. *Note PDF Output::. + +XML + (Generated via `makeinfo --xml'.) XML is a generic syntax + specification usable for any sort of content (see, for example, + `http://www.w3.org/XML/'). The `makeinfo' xml output, unlike all + the formats above, interprets very little of the Texinfo source. + Rather, it merely translates the Texinfo markup commands into XML + syntax, for processing by further XML tools. The particular + syntax output is defined in the file `texinfo.dtd' included in the + Texinfo source distribution. + +Docbook + (Generated via `makeinfo --docbook'.) This is an XML-based format + developed some years ago, primarily for technical documentation. + It therefore bears some resemblance, in broad outlines, to + Texinfo. See `http://www.docbook.org'. If you want to convert + from Docbook _to_ Texinfo, please see + `http://docbook2X.sourceforge.net'. + + + From time to time, proposals are made to generate traditional Unix man +pages from Texinfo source. However, because man pages have a very +strict conventional format, generating a good man page requires a +completely different source than the typical Texinfo applications of +writing a good user tutorial and/or a good reference manual. This +makes generating man pages incompatible with the Texinfo design goal of +not having to document the same information in different ways for +different output formats. You might as well just write the man page +directly. + + Man pages still have their place, and if you wish to support them, you +may find the program `help2man' to be useful; it generates a +traditional man page from the `--help' output of a program. In fact, +this is currently used to generate man pages for the programs in the +Texinfo distribution. It is GNU software written by Brendan O'Dea, +available from `ftp://ftp.gnu.org/gnu/help2man/'. + + If you are a programmer and would like to contribute to the GNU +project by implementing additional output formats for Texinfo, that +would be excellent. But please do not write a separate translator +texi2foo for your favorite format foo! That is the hard way to do the +job, and makes extra work in subsequent maintenance, since the Texinfo +language is continually being enhanced and updated. Instead, the best +approach is modify `makeinfo' to generate the new format. + + +File: texinfo.info, Node: Info Files, Next: Printed Books, Prev: Output Formats, Up: Overview + +1.4 Info Files +============== + +An Info file is a Texinfo file formatted so that the Info documentation +reading program can operate on it. (`makeinfo' and +`texinfo-format-buffer' are two commands that convert a Texinfo file +into an Info file.) + + Info files are divided into pieces called "nodes", each of which +contains the discussion of one topic. Each node has a name, and +contains both text for the user to read and pointers to other nodes, +which are identified by their names. The Info program displays one node +at a time, and provides commands with which the user can move to other +related nodes. + + *Note Top: (info)Top, for more information about using Info. + + Each node of an Info file may have any number of child nodes that +describe subtopics of the node's topic. The names of child nodes are +listed in a "menu" within the parent node; this allows you to use +certain Info commands to move to one of the child nodes. Generally, an +Info file is organized like a book. If a node is at the logical level +of a chapter, its child nodes are at the level of sections; likewise, +the child nodes of sections are at the level of subsections. + + All the children of any one parent are linked together in a +bidirectional chain of `Next' and `Previous' pointers. The `Next' +pointer provides a link to the next section, and the `Previous' pointer +provides a link to the previous section. This means that all the nodes +that are at the level of sections within a chapter are linked together. +Normally the order in this chain is the same as the order of the +children in the parent's menu. Each child node records the parent node +name as its `Up' pointer. The last child has no `Next' pointer, and the +first child has the parent both as its `Previous' and as its `Up' +pointer.(1) + + The book-like structuring of an Info file into nodes that correspond +to chapters, sections, and the like is a matter of convention, not a +requirement. The `Up', `Previous', and `Next' pointers of a node can +point to any other nodes, and a menu can contain any other nodes. +Thus, the node structure can be any directed graph. But it is usually +more comprehensible to follow a structure that corresponds to the +structure of chapters and sections in a printed book or report. + + In addition to menus and to `Next', `Previous', and `Up' pointers, +Info provides pointers of another kind, called references, that can be +sprinkled throughout the text. This is usually the best way to +represent links that do not fit a hierarchical structure. + + Usually, you will design a document so that its nodes match the +structure of chapters and sections in the printed output. But +occasionally there are times when this is not right for the material +being discussed. Therefore, Texinfo uses separate commands to specify +the node structure for the Info file and the section structure for the +printed output. + + Generally, you enter an Info file through a node that by convention is +named `Top'. This node normally contains just a brief summary of the +file's purpose, and a large menu through which the rest of the file is +reached. From this node, you can either traverse the file +systematically by going from node to node, or you can go to a specific +node listed in the main menu, or you can search the index menus and then +go directly to the node that has the information you want. +Alternatively, with the standalone Info program, you can specify +specific menu items on the command line (*note Top: (info)Top.). + + If you want to read through an Info file in sequence, as if it were a +printed manual, you can hit <SPC> repeatedly, or you get the whole file +with the advanced Info command `g *'. (*note Advanced Info commands: +(info)Advanced.) + + The `dir' file in the `info' directory serves as the departure point +for the whole Info system. From it, you can reach the `Top' nodes of +each of the documents in a complete Info system. + + If you wish to refer to an Info file in a URI, you can use the +(unofficial) syntax exemplified in the following. This works with +Emacs/W3, for example: + info:///usr/info/emacs#Dissociated%20Press + info:emacs#Dissociated%20Press + info://localhost/usr/info/emacs#Dissociated%20Press + + The `info' program itself does not follow URI's of any kind. + + ---------- Footnotes ---------- + + (1) In some documents, the first child has no `Previous' pointer. +Occasionally, the last child has the node name of the next following +higher level node as its `Next' pointer. + + +File: texinfo.info, Node: Printed Books, Next: Formatting Commands, Prev: Info Files, Up: Overview + +1.5 Printed Books +================= + +A Texinfo file can be formatted and typeset as a printed book or manual. +To do this, you need TeX, a powerful, sophisticated typesetting program +written by Donald Knuth.(1) + + A Texinfo-based book is similar to any other typeset, printed work: it +can have a title page, copyright page, table of contents, and preface, +as well as chapters, numbered or unnumbered sections and subsections, +page headers, cross references, footnotes, and indices. + + You can use Texinfo to write a book without ever having the intention +of converting it into online information. You can use Texinfo for +writing a printed novel, and even to write a printed memo, although +this latter application is not recommended since electronic mail is so +much easier. + + TeX is a general purpose typesetting program. Texinfo provides a +file `texinfo.tex' that contains information (definitions or "macros") +that TeX uses when it typesets a Texinfo file. (`texinfo.tex' tells +TeX how to convert the Texinfo @-commands to TeX commands, which TeX +can then process to create the typeset document.) `texinfo.tex' +contains the specifications for printing a document. You can get the +latest version of `texinfo.tex' from +`ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex'. + + In the United States, documents are most often printed on 8.5 inch by +11 inch pages (216mm by 280mm); this is the default size. But you can +also print for 7 inch by 9.25 inch pages (178mm by 235mm, the +`@smallbook' size; or on A4 or A5 size paper (`@afourpaper', +`@afivepaper'). (*Note Printing "Small" Books: smallbook. Also, see +*Note Printing on A4 Paper: A4 Paper.) + + By changing the parameters in `texinfo.tex', you can change the size +of the printed document. In addition, you can change the style in +which the printed document is formatted; for example, you can change the +sizes and fonts used, the amount of indentation for each paragraph, the +degree to which words are hyphenated, and the like. By changing the +specifications, you can make a book look dignified, old and serious, or +light-hearted, young and cheery. + + TeX is freely distributable. It is written in a superset of Pascal +called WEB and can be compiled either in Pascal or (by using a +conversion program that comes with the TeX distribution) in C. (*Note +TeX Mode: (emacs)TeX Mode, for information about TeX.) + + TeX is very powerful and has a great many features. Because a +Texinfo file must be able to present information both on a +character-only terminal in Info form and in a typeset book, the +formatting commands that Texinfo supports are necessarily limited. + + To get a copy of TeX, see *Note How to Obtain TeX: Obtaining TeX. + + ---------- Footnotes ---------- + + (1) You can also use the `texi2roff' (ftp://tug.org/texi2roff.tar.gz) +program if you do not have TeX; since Texinfo is designed for use with +TeX, `texi2roff' is not described here. `texi2roff' is not part of the +standard GNU distribution and is not maintained or up-to-date with all +the Texinfo features described in this manual. + + +File: texinfo.info, Node: Formatting Commands, Next: Conventions, Prev: Printed Books, Up: Overview + +1.6 @-commands +============== + +In a Texinfo file, the commands that tell TeX how to typeset the +printed manual and tell `makeinfo' and `texinfo-format-buffer' how to +create an Info file are preceded by `@'; they are called "@-commands". +For example, `@node' is the command to indicate a node and `@chapter' +is the command to indicate the start of a chapter. + + Note: Almost all @ command names are entirely lower case. + + The Texinfo @-commands are a strictly limited set of constructs. The +strict limits make it possible for Texinfo files to be understood both +by TeX and by the code that converts them into Info files. You can +display Info files on any terminal that displays alphabetic and numeric +characters. Similarly, you can print the output generated by TeX on a +wide variety of printers. + + Depending on what they do or what arguments(1) they take, you need to +write @-commands on lines of their own or as part of sentences: + + * Write a command such as `@quotation' at the beginning of a line as + the only text on the line. (`@quotation' begins an indented + environment.) + + * Write a command such as `@chapter' at the beginning of a line + followed by the command's arguments, in this case the chapter + title, on the rest of the line. (`@chapter' creates chapter + titles.) + + * Write a command such as `@dots{}' wherever you wish but usually + within a sentence. (`@dots{}' creates dots ...) + + * Write a command such as `@code{SAMPLE-CODE}' wherever you wish + (but usually within a sentence) with its argument, SAMPLE-CODE in + this example, between the braces. (`@code' marks text as being + code.) + + * Write a command such as `@example' on a line of its own; write the + body-text on following lines; and write the matching `@end' + command, `@end example' in this case, on a line of its own after + the body-text. (`@example' ... `@end example' indents and typesets + body-text as an example.) It's usually ok to indent environment + commands like this, but in complicated and hard-to-define + circumstances the extra spaces cause extra space to appear in the + output, so beware. + +As a general rule, a command requires braces if it mingles among other +text; but it does not need braces if it starts a line of its own. The +non-alphabetic commands, such as `@:', are exceptions to the rule; they +do not need braces. + + As you gain experience with Texinfo, you will rapidly learn how to +write the different commands: the different ways to write commands +actually make it easier to write and read Texinfo files than if all +commands followed exactly the same syntax. *Note @-Command Syntax: +Command Syntax, for all the details. + + ---------- Footnotes ---------- + + (1) The word "argument" comes from the way it is used in mathematics +and does not refer to a dispute between two people; it refers to the +information presented to the command. According to the `Oxford English +Dictionary', the word derives from the Latin for "to make clear, +prove"; thus it came to mean `the evidence offered as proof', which is +to say, `the information offered', which led to its mathematical +meaning. In its other thread of derivation, the word came to mean `to +assert in a manner against which others may make counter assertions', +which led to the meaning of `argument' as a dispute. + + +File: texinfo.info, Node: Conventions, Next: Comments, Prev: Formatting Commands, Up: Overview + +1.7 General Syntactic Conventions +================================= + +This section describes the general conventions used in all Texinfo +documents. + + * All printable ASCII characters except `@', `{' and `}' can appear + in a Texinfo file and stand for themselves. `@' is the escape + character which introduces commands, while `{' and `}' are used to + surround arguments to certain commands. To put one of these + special characters into the document, put an `@' character in + front of it, like this: `@@', `@{', and `@}'. + + * Separate paragraphs with one or more blank lines. Currently + Texinfo only recognizes newline characters as end of line, not the + CRLF sequence used on some systems; so a "blank line" means + exactly two consecutive newlines. Sometimes blank lines are + useful or convenient in other cases as well; you can use the + `@noindent' to inhibit paragraph indentation if required (*note + `@noindent': noindent.). + + * Use doubled single-quote characters to begin and end quotations: + ``...''. TeX converts two single quotes to left- and right-hand + doubled quotation marks, and Info converts doubled single-quote + characters to ASCII double-quotes: ``...'' becomes "...". + + You may occasionally need to produce two consecutive single quotes; + for example, in documenting a computer language such as Maxima + where '' is a valid command. You can do this with the input + '@w{}'; the empty `@w' command stops the combination into the + double-quote characters. + + The left quote character (`, ASCII code 96) used in Texinfo is a + grave accent in ANSI and ISO character set standards. We use it + as a quote character because that is how TeX is set up, by + default. We hope to eventually support the various quotation + characters in Unicode. + + * Use three hyphens in a row, `---', to produce a long dash--like + this (called an "em dash"), used for punctuation in sentences. + Use two hyphens, `--', to produce a medium dash-like this (called + an "en dash"), used to separate numeric ranges. Use a single + hyphen, `-', to produce a standard hyphen used in compound words. + For display on the screen, Info reduces three hyphens to two and + two hyphens to one (not transitively!). Of course, any number of + hyphens in the source remain as they are in literal contexts, such + as `@code' and `@example'. + + * *Caution:* Last and most important, do not use tab characters in a + Texinfo file (except in verbatim modes)! TeX uses variable-width + fonts, which means that it is impractical at best to define a tab + to work in all circumstances. Consequently, TeX treats tabs like + single spaces, and that is not what they look like in the source. + Furthermore, `makeinfo' does nothing special with tabs, and thus a + tab character in your input file will usually appear differently + in the output. + + To avoid this problem, Texinfo mode causes GNU Emacs to insert + multiple spaces when you press the <TAB> key. + + Also, you can run `untabify' in Emacs to convert tabs in a region + to multiple spaces, or use the `unexpand' command from the shell. + + + +File: texinfo.info, Node: Comments, Next: Minimum, Prev: Conventions, Up: Overview + +1.8 Comments +============ + +You can write comments in a Texinfo file that will not appear in either +the Info file or the printed manual by using the `@comment' command +(which may be abbreviated to `@c'). Such comments are for the person +who revises the Texinfo file. All the text on a line that follows +either `@comment' or `@c' is a comment; the rest of the line does not +appear in either the Info file or the printed manual. + + Often, you can write the `@comment' or `@c' in the middle of a line, +and only the text that follows after the `@comment' or `@c' command +does not appear; but some commands, such as `@settitle' and +`@setfilename', work on a whole line. You cannot use `@comment' or +`@c' in a line beginning with such a command. + + You can write long stretches of text that will not appear in either +the Info file or the printed manual by using the `@ignore' and `@end +ignore' commands. Write each of these commands on a line of its own, +starting each command at the beginning of the line. Text between these +two commands does not appear in the processed output. You can use +`@ignore' and `@end ignore' for writing comments. + + Text enclosed by `@ignore' or by failing `@ifset' or `@ifclear' +conditions is ignored in the sense that it will not contribute to the +formatted output. However, TeX and makeinfo must still parse the +ignored text, in order to understand when to _stop_ ignoring text from +the source file; that means that you may still get error messages if +you have invalid Texinfo commands within ignored text. + + +File: texinfo.info, Node: Minimum, Next: Six Parts, Prev: Comments, Up: Overview + +1.9 What a Texinfo File Must Have +================================= + +By convention, the namea of a Texinfo file ends with (in order of +preference) one of the extensions `.texinfo', `.texi', `.txi', or +`.tex'. The longer extensions are preferred since they describe more +clearly to a human reader the nature of the file. The shorter +extensions are for operating systems that cannot handle long file names. + + In order to be made into a printed manual and an Info file, a Texinfo +file *must* begin with lines like this: + + \input texinfo + @setfilename INFO-FILE-NAME + @settitle NAME-OF-MANUAL + +The contents of the file follow this beginning, and then you *must* end +a Texinfo file with a line like this: + + @bye + +Here's an explanation: + + * The `\input texinfo' line tells TeX to use the `texinfo.tex' file, + which tells TeX how to translate the Texinfo @-commands into TeX + typesetting commands. (Note the use of the backslash, `\'; this + is correct for TeX.) + + * The `@setfilename' line provides a name for the Info file and + tells TeX to open auxiliary files. *All text before + `@setfilename' is ignored!* + + * The `@settitle' line specifies a title for the page headers (or + footers) of the printed manual, and the default document + description for the `<head>' in HTML format. Strictly speaking, + `@settitle' is optional--if you don't mind your document being + titled `Untitled'. + + * The `@bye' line at the end of the file on a line of its own tells + the formatters that the file is ended and to stop formatting. + + + Typically, you will not use quite such a spare format, but will +include mode setting and start-of-header and end-of-header lines at the +beginning of a Texinfo file, like this: + + \input texinfo @c -*-texinfo-*- + @c %**start of header + @setfilename INFO-FILE-NAME + @settitle NAME-OF-MANUAL + @c %**end of header + +In the first line, `-*-texinfo-*-' causes Emacs to switch into Texinfo +mode when you edit the file. + + The `@c' lines which surround the `@setfilename' and `@settitle' +lines are optional, but you need them in order to run TeX or Info on +just part of the file. (*Note Start of Header::.) + + Furthermore, you will usually provide a Texinfo file with a title +page, indices, and the like, all of which are explained in this manual. +But the minimum, which can be useful for short documents, is just the +three lines at the beginning and the one line at the end. + + +File: texinfo.info, Node: Six Parts, Next: Short Sample, Prev: Minimum, Up: Overview + +1.10 Six Parts of a Texinfo File +================================ + +Generally, a Texinfo file contains more than the minimal beginning and +end described in the previous section--it usually contains the six +parts listed below. These are described fully in the following +sections. + +1. Header + The "Header" names the file, tells TeX which definitions file to + use, and other such housekeeping tasks. + +2. Summary and Copyright + The "Summary and Copyright" segment describes the document and + contains the copyright notice and copying permissions. This is + done with the `@copying' command. + +3. Title and Copyright + The "Title and Copyright" segment contains the title and copyright + pages for the printed manual. The segment must be enclosed between + `@titlepage' and `@end titlepage' commands. The title and + copyright page appear only in the printed manual. + +4. `Top' Node and Master Menu + The `Top' node starts off the online output; it does not appear in + the printed manual. We recommend including the copying + permissions here as well as the segments above. And it contains + at least a top-level menu listing the chapters, and possibly a + "Master Menu" listing all the nodes in the entire document. + +5. Body + The "Body" of the document is typically structured like a + traditional book or encyclopedia, but it may be free form. + +6. End + The "End" segment contains commands for printing indices and + generating the table of contents, and the `@bye' command on a line + of its own. + + +File: texinfo.info, Node: Short Sample, Next: History, Prev: Six Parts, Up: Overview + +1.11 A Short Sample Texinfo File +================================ + +Here is a very short but complete Texinfo file, in the six conventional +parts enumerated in the previous section, so you can see how Texinfo +source appears in practice. The first three parts of the file, from +`\input texinfo' through to `@end titlepage', look more intimidating +than they are: most of the material is standard boilerplate; when +writing a manual, you simply change the names as appropriate. + + *Note Beginning a File::, for full documentation on the commands +listed here. *Note GNU Sample Texts::, for the full texts to be used +in GNU manuals. + + In the following, the sample text is _indented_; comments on it are +not. The complete file, without interspersed comments, is shown in +*Note Short Sample Texinfo File::. + +Part 1: Header +-------------- + +The header does not appear in either the Info file or the printed +output. It sets various parameters, including the name of the Info +file and the title used in the header. + + \input texinfo @c -*-texinfo-*- + @c %**start of header + @setfilename sample.info + @settitle Sample Manual 1.0 + @c %**end of header + +Part 2: Summary Description and Copyright +----------------------------------------- + +A real manual includes more text here, according to the license under +which it is distributed. *Note GNU Sample Texts::. + + @copying + This is a short example of a complete Texinfo file, version 1.0. + + Copyright @copyright{} 2004 Free Software Foundation, Inc. + @end copying + +Part 3: Titlepage, Contents, Copyright +-------------------------------------- + +The titlepage segment does not appear in the online output, only in the +printed manual. We use the `@insertcopying' command to include the +permission text from the previous section, instead of writing it out +again; it is output on the back of the title page. The `@contents' +command generates a table of contents. + + @titlepage + @title Sample Title + + @c The following two commands start the copyright page. + @page + @vskip 0pt plus 1filll + @insertcopying + @end titlepage + + @c Output the table of contents at the beginning. + @contents + +Part 4: `Top' Node and Master Menu +---------------------------------- + +The `Top' node contains the master menu for the Info file. Since the +printed manual uses a table of contents rather than a menu, it excludes +the `Top' node. We also include the copying text again for the benefit +of online readers. Since the copying text begins with a brief +description of the manual, no other text is needed in this case. The +`@top' command itself helps `makeinfo' determine the relationships +between nodes. + + @ifnottex + @node Top + @top Short Sample + + @insertcopying + @end ifnottex + + @menu + * First Chapter:: The first chapter is the + only chapter in this sample. + * Index:: Complete index. + @end menu + +Part 5: The Body of the Document +-------------------------------- + +The body segment contains all the text of the document, but not the +indices or table of contents. This example illustrates a node and a +chapter containing an enumerated list. + + @node First Chapter + @chapter First Chapter + + @cindex chapter, first + + This is the first chapter. + @cindex index entry, another + + Here is a numbered list. + + @enumerate + @item + This is the first item. + + @item + This is the second item. + @end enumerate + +Part 6: The End of the Document +------------------------------- + +The end segment contains commands for generating an index in a node and +unnumbered chapter of its own, and the `@bye' command that marks the +end of the document. + + @node Index + @unnumbered Index + + @printindex cp + + @bye + +Some Results +------------ + +Here is what the contents of the first chapter of the sample look like: + + + This is the first chapter. + + Here is a numbered list. + + 1. This is the first item. + + 2. This is the second item. + + +File: texinfo.info, Node: History, Prev: Short Sample, Up: Overview + +1.12 History +============ + +Richard M. Stallman invented the Texinfo format, wrote the initial +processors, and created Edition 1.0 of this manual. Robert J. +Chassell greatly revised and extended the manual, starting with Edition +1.1. Brian Fox was responsible for the standalone Texinfo distribution +until version 3.8, and wrote the standalone `makeinfo' and `info' +programs. Karl Berry has continued maintenance since Texinfo 3.8 +(manual edition 2.22). + + Our thanks go out to all who helped improve this work, particularly +the indefatigable Eli Zaretskii and Andreas Schwab, who have provided +patches beyond counting. Franc,ois Pinard and David D. Zuhn, +tirelessly recorded and reported mistakes and obscurities. Zack +Weinberg did the impossible by implementing the macro syntax in +`texinfo.tex'. Special thanks go to Melissa Weisshaus for her frequent +reviews of nearly similar editions. Dozens of others have contributed +patches and suggestions, they are gratefully acknowledged in the +`ChangeLog' file. Our mistakes are our own. + + A bit of history: in the 1970's at CMU, Brian Reid developed a program +and format named Scribe to mark up documents for printing. It used the +`@' character to introduce commands, as Texinfo does. Much more +consequentially, it strived to describe document contents rather than +formatting, an idea wholeheartedly adopted by Texinfo. + + Meanwhile, people at MIT developed another, not too dissimilar format +called Bolio. This then was converted to using TeX as its typesetting +language: BoTeX. The earliest BoTeX version seems to have been 0.02 on +October 31, 1984. + + BoTeX could only be used as a markup language for documents to be +printed, not for online documents. Richard Stallman (RMS) worked on +both Bolio and BoTeX. He also developed a nifty on-line help format +called Info, and then combined BoTeX and Info to create Texinfo, a mark +up language for text that is intended to be read both online and as +printed hard copy. + + +File: texinfo.info, Node: Texinfo Mode, Next: Beginning a File, Prev: Overview, Up: Top + +2 Using Texinfo Mode +******************** + +You may edit a Texinfo file with any text editor you choose. A Texinfo +file is no different from any other ASCII file. However, GNU Emacs +comes with a special mode, called Texinfo mode, that provides Emacs +commands and tools to help ease your work. + + This chapter describes features of GNU Emacs' Texinfo mode but not any +features of the Texinfo formatting language. So if you are reading this +manual straight through from the beginning, you may want to skim through +this chapter briefly and come back to it after reading succeeding +chapters which describe the Texinfo formatting language in detail. + +* Menu: + +* Texinfo Mode Overview:: How Texinfo mode can help you. +* Emacs Editing:: Texinfo mode adds to GNU Emacs' general + purpose editing features. +* Inserting:: How to insert frequently used @-commands. +* Showing the Structure:: How to show the structure of a file. +* Updating Nodes and Menus:: How to update or create new nodes and menus. +* Info Formatting:: How to format for Info. +* Printing:: How to format and print part or all of a file. +* Texinfo Mode Summary:: Summary of all the Texinfo mode commands. + + +File: texinfo.info, Node: Texinfo Mode Overview, Next: Emacs Editing, Up: Texinfo Mode + +2.1 Texinfo Mode Overview +========================= + +Texinfo mode provides special features for working with Texinfo files. +You can: + + * Insert frequently used @-commands. + + * Automatically create `@node' lines. + + * Show the structure of a Texinfo source file. + + * Automatically create or update the `Next', `Previous', and `Up' + pointers of a node. + + * Automatically create or update menus. + + * Automatically create a master menu. + + * Format a part or all of a file for Info. + + * Typeset and print part or all of a file. + + Perhaps the two most helpful features are those for inserting +frequently used @-commands and for creating node pointers and menus. + + +File: texinfo.info, Node: Emacs Editing, Next: Inserting, Prev: Texinfo Mode Overview, Up: Texinfo Mode + +2.2 The Usual GNU Emacs Editing Commands +======================================== + +In most cases, the usual Text mode commands work the same in Texinfo +mode as they do in Text mode. Texinfo mode adds new editing commands +and tools to GNU Emacs' general purpose editing features. The major +difference concerns filling. In Texinfo mode, the paragraph separation +variable and syntax table are redefined so that Texinfo commands that +should be on lines of their own are not inadvertently included in +paragraphs. Thus, the `M-q' (`fill-paragraph') command will refill a +paragraph but not mix an indexing command on a line adjacent to it into +the paragraph. + + In addition, Texinfo mode sets the `page-delimiter' variable to the +value of `texinfo-chapter-level-regexp'; by default, this is a regular +expression matching the commands for chapters and their equivalents, +such as appendices. With this value for the page delimiter, you can +jump from chapter title to chapter title with the `C-x ]' +(`forward-page') and `C-x [' (`backward-page') commands and narrow to a +chapter with the `C-x p' (`narrow-to-page') command. (*Note Pages: +(emacs)Pages, for details about the page commands.) + + You may name a Texinfo file however you wish, but the convention is to +end a Texinfo file name with one of the extensions `.texinfo', `.texi', +`.txi', or `.tex'. A longer extension is preferred, since it is +explicit, but a shorter extension may be necessary for operating +systems that limit the length of file names. GNU Emacs automatically +enters Texinfo mode when you visit a file with a `.texinfo', `.texi' or +`.txi' extension. Also, Emacs switches to Texinfo mode when you visit a +file that has `-*-texinfo-*-' in its first line. If ever you are in +another mode and wish to switch to Texinfo mode, type `M-x +texinfo-mode'. + + Like all other Emacs features, you can customize or enhance Texinfo +mode as you wish. In particular, the keybindings are very easy to +change. The keybindings described here are the default or standard +ones. + + +File: texinfo.info, Node: Inserting, Next: Showing the Structure, Prev: Emacs Editing, Up: Texinfo Mode + +2.3 Inserting Frequently Used Commands +====================================== + +Texinfo mode provides commands to insert various frequently used +@-commands into the buffer. You can use these commands to save +keystrokes. + + The insert commands are invoked by typing `C-c' twice and then the +first letter of the @-command: + +`C-c C-c c' +`M-x texinfo-insert-@code' + Insert `@code{}' and put the cursor between the braces. + +`C-c C-c d' +`M-x texinfo-insert-@dfn' + Insert `@dfn{}' and put the cursor between the braces. + +`C-c C-c e' +`M-x texinfo-insert-@end' + Insert `@end' and attempt to insert the correct following word, + such as `example' or `table'. (This command does not handle + nested lists correctly, but inserts the word appropriate to the + immediately preceding list.) + +`C-c C-c i' +`M-x texinfo-insert-@item' + Insert `@item' and put the cursor at the beginning of the next + line. + +`C-c C-c k' +`M-x texinfo-insert-@kbd' + Insert `@kbd{}' and put the cursor between the braces. + +`C-c C-c n' +`M-x texinfo-insert-@node' + Insert `@node' and a comment line listing the sequence for the + `Next', `Previous', and `Up' nodes. Leave point after the `@node'. + +`C-c C-c o' +`M-x texinfo-insert-@noindent' + Insert `@noindent' and put the cursor at the beginning of the next + line. + +`C-c C-c s' +`M-x texinfo-insert-@samp' + Insert `@samp{}' and put the cursor between the braces. + +`C-c C-c t' +`M-x texinfo-insert-@table' + Insert `@table' followed by a <SPC> and leave the cursor after the + <SPC>. + +`C-c C-c v' +`M-x texinfo-insert-@var' + Insert `@var{}' and put the cursor between the braces. + +`C-c C-c x' +`M-x texinfo-insert-@example' + Insert `@example' and put the cursor at the beginning of the next + line. + +`C-c C-c {' +`M-x texinfo-insert-braces' + Insert `{}' and put the cursor between the braces. + +`C-c C-c }' +`C-c C-c ]' +`M-x up-list' + Move from between a pair of braces forward past the closing brace. + Typing `C-c C-c ]' is easier than typing `C-c C-c }', which is, + however, more mnemonic; hence the two keybindings. (Also, you can + move out from between braces by typing `C-f'.) + + To put a command such as `@code{...}' around an _existing_ word, +position the cursor in front of the word and type `C-u 1 C-c C-c c'. +This makes it easy to edit existing plain text. The value of the +prefix argument tells Emacs how many words following point to include +between braces--`1' for one word, `2' for two words, and so on. Use a +negative argument to enclose the previous word or words. If you do not +specify a prefix argument, Emacs inserts the @-command string and +positions the cursor between the braces. This feature works only for +those @-commands that operate on a word or words within one line, such +as `@kbd' and `@var'. + + This set of insert commands was created after analyzing the frequency +with which different @-commands are used in the `GNU Emacs Manual' and +the `GDB Manual'. If you wish to add your own insert commands, you can +bind a keyboard macro to a key, use abbreviations, or extend the code +in `texinfo.el'. + + `C-c C-c C-d' (`texinfo-start-menu-description') is an insert command +that works differently from the other insert commands. It inserts a +node's section or chapter title in the space for the description in a +menu entry line. (A menu entry has three parts, the entry name, the +node name, and the description. Only the node name is required, but a +description helps explain what the node is about. *Note The Parts of a +Menu: Menu Parts.) + + To use `texinfo-start-menu-description', position point in a menu +entry line and type `C-c C-c C-d'. The command looks for and copies +the title that goes with the node name, and inserts the title as a +description; it positions point at beginning of the inserted text so you +can edit it. The function does not insert the title if the menu entry +line already contains a description. + + This command is only an aid to writing descriptions; it does not do +the whole job. You must edit the inserted text since a title tends to +use the same words as a node name but a useful description uses +different words. + + +File: texinfo.info, Node: Showing the Structure, Next: Updating Nodes and Menus, Prev: Inserting, Up: Texinfo Mode + +2.4 Showing the Section Structure of a File +=========================================== + +You can show the section structure of a Texinfo file by using the `C-c +C-s' command (`texinfo-show-structure'). This command shows the +section structure of a Texinfo file by listing the lines that begin +with the @-commands for `@chapter', `@section', and the like. It +constructs what amounts to a table of contents. These lines are +displayed in another buffer called the `*Occur*' buffer. In that +buffer, you can position the cursor over one of the lines and use the +`C-c C-c' command (`occur-mode-goto-occurrence'), to jump to the +corresponding spot in the Texinfo file. + +`C-c C-s' +`M-x texinfo-show-structure' + Show the `@chapter', `@section', and such lines of a Texinfo file. + +`C-c C-c' +`M-x occur-mode-goto-occurrence' + Go to the line in the Texinfo file corresponding to the line under + the cursor in the `*Occur*' buffer. + + If you call `texinfo-show-structure' with a prefix argument by typing +`C-u C-c C-s', it will list not only those lines with the @-commands +for `@chapter', `@section', and the like, but also the `@node' lines. +You can use `texinfo-show-structure' with a prefix argument to check +whether the `Next', `Previous', and `Up' pointers of an `@node' line +are correct. + + Often, when you are working on a manual, you will be interested only +in the structure of the current chapter. In this case, you can mark +off the region of the buffer that you are interested in by using the +`C-x n n' (`narrow-to-region') command and `texinfo-show-structure' +will work on only that region. To see the whole buffer again, use +`C-x n w' (`widen'). (*Note Narrowing: (emacs)Narrowing, for more +information about the narrowing commands.) + + In addition to providing the `texinfo-show-structure' command, +Texinfo mode sets the value of the page delimiter variable to match the +chapter-level @-commands. This enables you to use the `C-x ]' +(`forward-page') and `C-x [' (`backward-page') commands to move forward +and backward by chapter, and to use the `C-x p' (`narrow-to-page') +command to narrow to a chapter. *Note Pages: (emacs)Pages, for more +information about the page commands. + + +File: texinfo.info, Node: Updating Nodes and Menus, Next: Info Formatting, Prev: Showing the Structure, Up: Texinfo Mode + +2.5 Updating Nodes and Menus +============================ + +Texinfo mode provides commands for automatically creating or updating +menus and node pointers. The commands are called "update" commands +because their most frequent use is for updating a Texinfo file after you +have worked on it; but you can use them to insert the `Next', +`Previous', and `Up' pointers into an `@node' line that has none and to +create menus in a file that has none. + + If you do not use the updating commands, you need to write menus and +node pointers by hand, which is a tedious task. + +* Menu: + +* Updating Commands:: Five major updating commands. +* Updating Requirements:: How to structure a Texinfo file for + using the updating command. +* Other Updating Commands:: How to indent descriptions, insert + missing nodes lines, and update + nodes in sequence. + + +File: texinfo.info, Node: Updating Commands, Next: Updating Requirements, Up: Updating Nodes and Menus + +2.5.1 The Updating Commands +--------------------------- + +You can use the updating commands to: + + * insert or update the `Next', `Previous', and `Up' pointers of a + node, + + * insert or update the menu for a section, and + + * create a master menu for a Texinfo source file. + + You can also use the commands to update all the nodes and menus in a +region or in a whole Texinfo file. + + The updating commands work only with conventional Texinfo files, which +are structured hierarchically like books. In such files, a structuring +command line must follow closely after each `@node' line, except for +the `Top' `@node' line. (A "structuring command line" is a line +beginning with `@chapter', `@section', or other similar command.) + + You can write the structuring command line on the line that follows +immediately after an `@node' line or else on the line that follows +after a single `@comment' line or a single `@ifinfo' line. You cannot +interpose more than one line between the `@node' line and the +structuring command line; and you may interpose only an `@comment' line +or an `@ifinfo' line. + + Commands which work on a whole buffer require that the `Top' node be +followed by a node with an `@chapter' or equivalent-level command. The +menu updating commands will not create a main or master menu for a +Texinfo file that has only `@chapter'-level nodes! The menu updating +commands only create menus _within_ nodes for lower level nodes. To +create a menu of chapters, you must provide a `Top' node. + + The menu updating commands remove menu entries that refer to other +Info files since they do not refer to nodes within the current buffer. +This is a deficiency. Rather than use menu entries, you can use cross +references to refer to other Info files. None of the updating commands +affect cross references. + + Texinfo mode has five updating commands that are used most often: two +are for updating the node pointers or menu of a single node (or a +region); two are for updating every node pointer and menu in a file; +and one, the `texinfo-master-menu' command, is for creating a master +menu for a complete file, and optionally, for updating every node and +menu in the whole Texinfo file. + + The `texinfo-master-menu' command is the primary command: + +`C-c C-u m' +`M-x texinfo-master-menu' + Create or update a master menu that includes all the other menus + (incorporating the descriptions from pre-existing menus, if any). + + With an argument (prefix argument, `C-u,' if interactive), first + create or update all the nodes and all the regular menus in the + buffer before constructing the master menu. (*Note The Top Node + and Master Menu: The Top Node, for more about a master menu.) + + For `texinfo-master-menu' to work, the Texinfo file must have a + `Top' node and at least one subsequent node. + + After extensively editing a Texinfo file, you can type the + following: + + C-u M-x texinfo-master-menu + or + C-u C-c C-u m + + This updates all the nodes and menus completely and all at once. + + The other major updating commands do smaller jobs and are designed for +the person who updates nodes and menus as he or she writes a Texinfo +file. + + The commands are: + +`C-c C-u C-n' +`M-x texinfo-update-node' + Insert the `Next', `Previous', and `Up' pointers for the node that + point is within (i.e., for the `@node' line preceding point). If + the `@node' line has pre-existing `Next', `Previous', or `Up' + pointers in it, the old pointers are removed and new ones inserted. + With an argument (prefix argument, `C-u', if interactive), this + command updates all `@node' lines in the region (which is the text + between point and mark). + +`C-c C-u C-m' +`M-x texinfo-make-menu' + Create or update the menu in the node that point is within. With + an argument (`C-u' as prefix argument, if interactive), the + command makes or updates menus for the nodes which are either + within or a part of the region. + + Whenever `texinfo-make-menu' updates an existing menu, the + descriptions from that menu are incorporated into the new menu. + This is done by copying descriptions from the existing menu to the + entries in the new menu that have the same node names. If the + node names are different, the descriptions are not copied to the + new menu. + +`C-c C-u C-e' +`M-x texinfo-every-node-update' + Insert or update the `Next', `Previous', and `Up' pointers for + every node in the buffer. + +`C-c C-u C-a' +`M-x texinfo-all-menus-update' + Create or update all the menus in the buffer. With an argument + (`C-u' as prefix argument, if interactive), first insert or update + all the node pointers before working on the menus. + + If a master menu exists, the `texinfo-all-menus-update' command + updates it; but the command does not create a new master menu if + none already exists. (Use the `texinfo-master-menu' command for + that.) + + When working on a document that does not merit a master menu, you + can type the following: + + C-u C-c C-u C-a + or + C-u M-x texinfo-all-menus-update + + This updates all the nodes and menus. + + The `texinfo-column-for-description' variable specifies the column to +which menu descriptions are indented. By default, the value is 32 +although it is often useful to reduce it to as low as 24. You can set +the variable via customization (*note Changing an Option: +(emacs)Changing an Option.) or with the `M-x set-variable' command +(*note Examining and Setting Variables: (emacs)Examining.). + + Also, the `texinfo-indent-menu-description' command may be used to +indent existing menu descriptions to a specified column. Finally, if +you wish, you can use the `texinfo-insert-node-lines' command to insert +missing `@node' lines into a file. (*Note Other Updating Commands::, +for more information.) + + +File: texinfo.info, Node: Updating Requirements, Next: Other Updating Commands, Prev: Updating Commands, Up: Updating Nodes and Menus + +2.5.2 Updating Requirements +--------------------------- + +To use the updating commands, you must organize the Texinfo file +hierarchically with chapters, sections, subsections, and the like. +When you construct the hierarchy of the manual, do not `jump down' more +than one level at a time: you can follow the `Top' node with a chapter, +but not with a section; you can follow a chapter with a section, but +not with a subsection. However, you may `jump up' any number of levels +at one time--for example, from a subsection to a chapter. + + Each `@node' line, with the exception of the line for the `Top' node, +must be followed by a line with a structuring command such as +`@chapter', `@section', or `@unnumberedsubsec'. + + Each `@node' line/structuring-command line combination must look +either like this: + + @node Comments, Minimum, Conventions, Overview + @comment node-name, next, previous, up + @section Comments + + or like this (without the `@comment' line): + + @node Comments, Minimum, Conventions, Overview + @section Comments + + or like this (without the explicit node pointers): + + @node Comments + @section Comments + +In this example, `Comments' is the name of both the node and the +section. The next node is called `Minimum' and the previous node is +called `Conventions'. The `Comments' section is within the `Overview' +node, which is specified by the `Up' pointer. (Instead of an +`@comment' line, you may also write an `@ifinfo' line.) + + If a file has a `Top' node, it must be called `top' or `Top' and be +the first node in the file. + + The menu updating commands create a menu of sections within a chapter, +a menu of subsections within a section, and so on. This means that you +must have a `Top' node if you want a menu of chapters. + + Incidentally, the `makeinfo' command will create an Info file for a +hierarchically organized Texinfo file that lacks `Next', `Previous' and +`Up' pointers. Thus, if you can be sure that your Texinfo file will be +formatted with `makeinfo', you have no need for the update node +commands. (*Note Creating an Info File::, for more information about +`makeinfo'.) However, both `makeinfo' and the `texinfo-format-...' +commands require that you insert menus in the file. + + +File: texinfo.info, Node: Other Updating Commands, Prev: Updating Requirements, Up: Updating Nodes and Menus + +2.5.3 Other Updating Commands +----------------------------- + +In addition to the five major updating commands, Texinfo mode possesses +several less frequently used updating commands: + +`M-x texinfo-insert-node-lines' + Insert `@node' lines before the `@chapter', `@section', and other + sectioning commands wherever they are missing throughout a region + in a Texinfo file. + + With an argument (`C-u' as prefix argument, if interactive), the + `texinfo-insert-node-lines' command not only inserts `@node' lines + but also inserts the chapter or section titles as the names of the + corresponding nodes. In addition, it inserts the titles as node + names in pre-existing `@node' lines that lack names. Since node + names should be more concise than section or chapter titles, you + must manually edit node names so inserted. + + For example, the following marks a whole buffer as a region and + inserts `@node' lines and titles throughout: + + C-x h C-u M-x texinfo-insert-node-lines + + This command inserts titles as node names in `@node' lines; the + `texinfo-start-menu-description' command (*note Inserting + Frequently Used Commands: Inserting.) inserts titles as + descriptions in menu entries, a different action. However, in + both cases, you need to edit the inserted text. + +`M-x texinfo-multiple-files-update' + Update nodes and menus in a document built from several separate + files. With `C-u' as a prefix argument, create and insert a + master menu in the outer file. With a numeric prefix argument, + such as `C-u 2', first update all the menus and all the `Next', + `Previous', and `Up' pointers of all the included files before + creating and inserting a master menu in the outer file. The + `texinfo-multiple-files-update' command is described in the + appendix on `@include' files. *Note + texinfo-multiple-files-update::. + +`M-x texinfo-indent-menu-description' + Indent every description in the menu following point to the + specified column. You can use this command to give yourself more + space for descriptions. With an argument (`C-u' as prefix + argument, if interactive), the `texinfo-indent-menu-description' + command indents every description in every menu in the region. + However, this command does not indent the second and subsequent + lines of a multi-line description. + +`M-x texinfo-sequential-node-update' + Insert the names of the nodes immediately following and preceding + the current node as the `Next' or `Previous' pointers regardless + of those nodes' hierarchical level. This means that the `Next' + node of a subsection may well be the next chapter. Sequentially + ordered nodes are useful for novels and other documents that you + read through sequentially. (However, in Info, the `g *' command + lets you look through the file sequentially, so sequentially + ordered nodes are not strictly necessary.) With an argument + (prefix argument, if interactive), the + `texinfo-sequential-node-update' command sequentially updates all + the nodes in the region. + + +File: texinfo.info, Node: Info Formatting, Next: Printing, Prev: Updating Nodes and Menus, Up: Texinfo Mode + +2.6 Formatting for Info +======================= + +Texinfo mode provides several commands for formatting part or all of a +Texinfo file for Info. Often, when you are writing a document, you +want to format only part of a file--that is, a region. + + You can use either the `texinfo-format-region' or the +`makeinfo-region' command to format a region: + +`C-c C-e C-r' +`M-x texinfo-format-region' +`C-c C-m C-r' +`M-x makeinfo-region' + Format the current region for Info. + + You can use either the `texinfo-format-buffer' or the +`makeinfo-buffer' command to format a whole buffer: + +`C-c C-e C-b' +`M-x texinfo-format-buffer' +`C-c C-m C-b' +`M-x makeinfo-buffer' + Format the current buffer for Info. + + For example, after writing a Texinfo file, you can type the following: + + C-u C-c C-u m +or + C-u M-x texinfo-master-menu + +This updates all the nodes and menus. Then type the following to create +an Info file: + + C-c C-m C-b +or + M-x makeinfo-buffer + + For TeX or the Info formatting commands to work, the file _must_ +include a line that has `@setfilename' in its header. + + *Note Creating an Info File::, for details about Info formatting. + + +File: texinfo.info, Node: Printing, Next: Texinfo Mode Summary, Prev: Info Formatting, Up: Texinfo Mode + +2.7 Printing +============ + +Typesetting and printing a Texinfo file is a multi-step process in which +you first create a file for printing (called a DVI file), and then +print the file. Optionally, you may also create indices. To do this, +you must run the `texindex' command after first running the `tex' +typesetting command; and then you must run the `tex' command again. Or +else run the `texi2dvi' command which automatically creates indices as +needed (*note Format with texi2dvi::). + + Often, when you are writing a document, you want to typeset and print +only part of a file to see what it will look like. You can use the +`texinfo-tex-region' and related commands for this purpose. Use the +`texinfo-tex-buffer' command to format all of a buffer. + +`C-c C-t C-b' +`M-x texinfo-tex-buffer' + Run `texi2dvi' on the buffer. In addition to running TeX on the + buffer, this command automatically creates or updates indices as + needed. + +`C-c C-t C-r' +`M-x texinfo-tex-region' + Run TeX on the region. + +`C-c C-t C-i' +`M-x texinfo-texindex' + Run `texindex' to sort the indices of a Texinfo file formatted with + `texinfo-tex-region'. The `texinfo-tex-region' command does not + run `texindex' automatically; it only runs the `tex' typesetting + command. You must run the `texinfo-tex-region' command a second + time after sorting the raw index files with the `texindex' + command. (Usually, you do not format an index when you format a + region, only when you format a buffer. Now that the `texi2dvi' + command exists, there is little or no need for this command.) + +`C-c C-t C-p' +`M-x texinfo-tex-print' + Print the file (or the part of the file) previously formatted with + `texinfo-tex-buffer' or `texinfo-tex-region'. + + For `texinfo-tex-region' or `texinfo-tex-buffer' to work, the file +_must_ start with a `\input texinfo' line and must include an +`@settitle' line. The file must end with `@bye' on a line by itself. +(When you use `texinfo-tex-region', you must surround the `@settitle' +line with start-of-header and end-of-header lines.) + + *Note Hardcopy::, for a description of the other TeX related +commands, such as `tex-show-print-queue'. + + +File: texinfo.info, Node: Texinfo Mode Summary, Prev: Printing, Up: Texinfo Mode + +2.8 Texinfo Mode Summary +======================== + +In Texinfo mode, each set of commands has default keybindings that +begin with the same keys. All the commands that are custom-created for +Texinfo mode begin with `C-c'. The keys are somewhat mnemonic. + +Insert Commands +--------------- + +The insert commands are invoked by typing `C-c' twice and then the +first letter of the @-command to be inserted. (It might make more +sense mnemonically to use `C-c C-i', for `custom insert', but `C-c C-c' +is quick to type.) + + C-c C-c c Insert `@code'. + C-c C-c d Insert `@dfn'. + C-c C-c e Insert `@end'. + C-c C-c i Insert `@item'. + C-c C-c n Insert `@node'. + C-c C-c s Insert `@samp'. + C-c C-c v Insert `@var'. + C-c C-c { Insert braces. + C-c C-c ] + C-c C-c } Move out of enclosing braces. + + C-c C-c C-d Insert a node's section title + in the space for the description + in a menu entry line. + +Show Structure +-------------- + +The `texinfo-show-structure' command is often used within a narrowed +region. + + C-c C-s List all the headings. + +The Master Update Command +------------------------- + +The `texinfo-master-menu' command creates a master menu; and can be +used to update every node and menu in a file as well. + + C-c C-u m + M-x texinfo-master-menu + Create or update a master menu. + + C-u C-c C-u m With `C-u' as a prefix argument, first + create or update all nodes and regular + menus, and then create a master menu. + +Update Pointers +--------------- + +The update pointer commands are invoked by typing `C-c C-u' and then +either `C-n' for `texinfo-update-node' or `C-e' for +`texinfo-every-node-update'. + + C-c C-u C-n Update a node. + C-c C-u C-e Update every node in the buffer. + +Update Menus +------------ + +Invoke the update menu commands by typing `C-c C-u' and then either +`C-m' for `texinfo-make-menu' or `C-a' for `texinfo-all-menus-update'. +To update both nodes and menus at the same time, precede `C-c C-u C-a' +with `C-u'. + + C-c C-u C-m Make or update a menu. + + C-c C-u C-a Make or update all + menus in a buffer. + + C-u C-c C-u C-a With `C-u' as a prefix argument, + first create or update all nodes and + then create or update all menus. + +Format for Info +--------------- + +The Info formatting commands that are written in Emacs Lisp are invoked +by typing `C-c C-e' and then either `C-r' for a region or `C-b' for the +whole buffer. + + The Info formatting commands that are written in C and based on the +`makeinfo' program are invoked by typing `C-c C-m' and then either +`C-r' for a region or `C-b' for the whole buffer. + +Use the `texinfo-format...' commands: + + C-c C-e C-r Format the region. + C-c C-e C-b Format the buffer. + +Use `makeinfo': + + C-c C-m C-r Format the region. + C-c C-m C-b Format the buffer. + C-c C-m C-l Recenter the `makeinfo' output buffer. + C-c C-m C-k Kill the `makeinfo' formatting job. + +Typeset and Print +----------------- + +The TeX typesetting and printing commands are invoked by typing `C-c +C-t' and then another control command: `C-r' for `texinfo-tex-region', +`C-b' for `texinfo-tex-buffer', and so on. + + C-c C-t C-r Run TeX on the region. + C-c C-t C-b Run `texi2dvi' on the buffer. + C-c C-t C-i Run `texindex'. + C-c C-t C-p Print the DVI file. + C-c C-t C-q Show the print queue. + C-c C-t C-d Delete a job from the print queue. + C-c C-t C-k Kill the current TeX formatting job. + C-c C-t C-x Quit a currently stopped TeX formatting job. + C-c C-t C-l Recenter the output buffer. + +Other Updating Commands +----------------------- + +The remaining updating commands do not have standard keybindings because +they are rarely used. + + M-x texinfo-insert-node-lines + Insert missing `@node' lines in region. + With `C-u' as a prefix argument, + use section titles as node names. + + M-x texinfo-multiple-files-update + Update a multi-file document. + With `C-u 2' as a prefix argument, + create or update all nodes and menus + in all included files first. + + M-x texinfo-indent-menu-description + Indent descriptions. + + M-x texinfo-sequential-node-update + Insert node pointers in strict sequence. + + +File: texinfo.info, Node: Beginning a File, Next: Ending a File, Prev: Texinfo Mode, Up: Top + +3 Beginning a Texinfo File +************************** + +Certain pieces of information must be provided at the beginning of a +Texinfo file, such as the name for the output file(s), the title of the +document, and the Top node. A table of contents is also generally +produced here. + + This chapter expands on the minimal complete Texinfo source file +previously given (*note Six Parts::). It describes the numerous +commands for handling the traditional frontmatter items in Texinfo. + + Straight text outside of any command before the Top node should be +avoided. Such text is treated differently in the different output +formats: visible in TeX and HTML, by default not shown in Info readers, +and so on. + +* Menu: + +* Sample Beginning:: A sample beginning for a Texinfo file. +* Texinfo File Header:: The first lines. +* Document Permissions:: Ensuring your manual is free. +* Titlepage & Copyright Page:: Creating the title and copyright pages. +* Contents:: How to create a table of contents. +* The Top Node:: Creating the `Top' node and master menu. +* Global Document Commands:: Affecting formatting throughout. +* Software Copying Permissions:: Ensure that you and others continue to + have the right to use and share software. + + +File: texinfo.info, Node: Sample Beginning, Next: Texinfo File Header, Up: Beginning a File + +3.1 Sample Texinfo File Beginning +================================= + +The following sample shows what is needed. The elements given here are +explained in more detail in the following sections. Other commands are +often included at the beginning of Texinfo files, but the ones here are +the most critical. + + *Note GNU Sample Texts::, for the full texts to be used in GNU +manuals. + + \input texinfo @c -*-texinfo-*- + @c %**start of header + @setfilename INFONAME.info + @settitle NAME-OF-MANUAL VERSION + @c %**end of header + + @copying + This manual is for PROGRAM, version VERSION. + + Copyright @copyright{} YEARS COPYRIGHT-OWNER. + + @quotation + Permission is granted to ... + @end quotation + @end copying + + @titlepage + @title NAME-OF-MANUAL-WHEN-PRINTED + @subtitle SUBTITLE-IF-ANY + @subtitle SECOND-SUBTITLE + @author AUTHOR + + @c The following two commands + @c start the copyright page. + @page + @vskip 0pt plus 1filll + @insertcopying + + Published by ... + @end titlepage + + @c So the toc is printed at the start. + @contents + + @ifnottex + @node Top + @top TITLE + + @insertcopying + @end ifnottex + + @menu + * First Chapter:: Getting started ... + * Second Chapter:: ... + ... + * Copying:: Your rights and freedoms. + @end menu + + @node First Chapter + @chapter First Chapter + + @cindex first chapter + @cindex chapter, first + ... + + +File: texinfo.info, Node: Texinfo File Header, Next: Document Permissions, Prev: Sample Beginning, Up: Beginning a File + +3.2 Texinfo File Header +======================= + +Texinfo files start with at least three lines that provide Info and TeX +with necessary information. These are the `\input texinfo' line, the +`@settitle' line, and the `@setfilename' line. + + Also, if you want to format just part of the Texinfo file, you must +write the `@settitle' and `@setfilename' lines between start-of-header +and end-of-header lines. The start- and end-of-header lines are +optional, but they do no harm, so you might as well always include them. + + Any command that affects document formatting as a whole makes sense to +include in the header. `@synindex' (*note synindex::), for instance, +is another command often included in the header. *Note GNU Sample +Texts::, for complete sample texts. + + Thus, the beginning of a Texinfo file generally looks like this: + + \input texinfo @c -*-texinfo-*- + @c %**start of header + @setfilename sample.info + @settitle Sample Manual 1.0 + @c %**end of header + +* Menu: + +* First Line:: The first line of a Texinfo file. +* Start of Header:: Formatting a region requires this. +* setfilename:: Tell Info the name of the Info file. +* settitle:: Create a title for the printed work. +* End of Header:: Formatting a region requires this. + + +File: texinfo.info, Node: First Line, Next: Start of Header, Up: Texinfo File Header + +3.2.1 The First Line of a Texinfo File +-------------------------------------- + +Every Texinfo file that is to be the top-level input to TeX must begin +with a line that looks like this: + + \input texinfo @c -*-texinfo-*- + +This line serves two functions: + + 1. When the file is processed by TeX, the `\input texinfo' command + tells TeX to load the macros needed for processing a Texinfo file. + These are in a file called `texinfo.tex', which should have been + installed on your system along with either the TeX or Texinfo + software. TeX uses the backslash, `\', to mark the beginning of a + command, exactly as Texinfo uses `@'. The `texinfo.tex' file + causes the switch from `\' to `@'; before the switch occurs, TeX + requires `\', which is why it appears at the beginning of the file. + + 2. When the file is edited in GNU Emacs, the `-*-texinfo-*-' mode + specification tells Emacs to use Texinfo mode. + + +File: texinfo.info, Node: Start of Header, Next: setfilename, Prev: First Line, Up: Texinfo File Header + +3.2.2 Start of Header +--------------------- + +A start-of-header line is a Texinfo comment that looks like this: + + @c %**start of header + + Write the start-of-header line on the second line of a Texinfo file. +Follow the start-of-header line with `@setfilename' and `@settitle' +lines and, optionally, with other commands that globally affect the +document formatting, such as `@synindex' or `@footnotestyle'; and then +by an end-of-header line (*note End of Header::). + + The start- and end-of-header lines allow you to format only part of a +Texinfo file for Info or printing. *Note texinfo-format commands::. + + The odd string of characters, `%**', is to ensure that no other +comment is accidentally taken for a start-of-header line. You can +change it if you wish by setting the `tex-start-of-header' and/or +`tex-end-of-header' Emacs variables. *Note Texinfo Mode Printing::. + + +File: texinfo.info, Node: setfilename, Next: settitle, Prev: Start of Header, Up: Texinfo File Header + +3.2.3 `@setfilename': Set the output file name +---------------------------------------------- + +In order to serve as the primary input file for either `makeinfo' or +TeX, a Texinfo file must contain a line that looks like this: + + @setfilename INFO-FILE-NAME + + Write the `@setfilename' command at the beginning of a line and +follow it on the same line by the Info file name. Do not write anything +else on the line; anything on the line after the command is considered +part of the file name, including what would otherwise be a comment. + + The Info formatting commands ignore everything written before the +`@setfilename' line, which is why the very first line of the file (the +`\input' line) does not show up in the output. + + The `@setfilename' line specifies the name of the output file to be +generated. This name must be different from the name of the Texinfo +file. There are two conventions for choosing the name: you can either +remove the extension (such as `.texi') entirely from the input file +name, or, preferably, replace it with the `.info' extension. + + Although an explicit `.info' extension is preferable, some operating +systems cannot handle long file names. You can run into a problem even +when the file name you specify is itself short enough. This occurs +because the Info formatters split a long Info file into short indirect +subfiles, and name them by appending `-1', `-2', ..., `-10', `-11', and +so on, to the original file name. (*Note Tag and Split Files::.) The +subfile name `texinfo.info-10', for example, is too long for old +systems with a 14-character limit on filenames; so the Info file name +for this document is `texinfo' rather than `texinfo.info'. When +`makeinfo' is running on operating systems such as MS-DOS which impose +severe limits on file names, it may remove some characters from the +original file name to leave enough space for the subfile suffix, thus +producing files named `texin-10', `gcc.i12', etc. + + When producing HTML output, `makeinfo' will replace any extension +with `html', or add `.html' if the given name has no extension. + + The `@setfilename' line produces no output when you typeset a manual +with TeX, but it is nevertheless essential: it opens the index, +cross-reference, and other auxiliary files used by Texinfo, and also +reads `texinfo.cnf' if that file is present on your system (*note +Preparing for TeX: Preparing for TeX.). + + +File: texinfo.info, Node: settitle, Next: End of Header, Prev: setfilename, Up: Texinfo File Header + +3.2.4 `@settitle': Set the document title +----------------------------------------- + +In order to be made into a printed manual, a Texinfo file must contain +a line that looks like this: + + @settitle TITLE + + Write the `@settitle' command at the beginning of a line and follow +it on the same line by the title. This tells TeX the title to use in a +header or footer. Do not write anything else on the line; anything on +the line after the command is considered part of the title, including +what would otherwise be a comment. + + The `@settitle' command should precede everything that generates +actual output. The best place for it is right after the `@setfilename' +command (see the previous section). + + In the HTML file produced by `makeinfo', TITLE serves as the document +`<title>'. It also becomes the default document description in the +`<head>' part (*note documentdescription::). + + The title in the `@settitle' command does not affect the title as it +appears on the title page. Thus, the two do not need not match +exactly. A practice we recommend is to include the version or edition +number of the manual in the `@settitle' title; on the title page, the +version number generally appears as a `@subtitle' so it would be +omitted from the `@title'. *Note titlepage::. + + Conventionally, when TeX formats a Texinfo file for double-sided +output, the title is printed in the left-hand (even-numbered) page +headings and the current chapter title is printed in the right-hand +(odd-numbered) page headings. (TeX learns the title of each chapter +from each `@chapter' command.) By default, no page footer is printed. + + Even if you are printing in a single-sided style, TeX looks for an +`@settitle' command line, in case you include the manual title in the +heading. + + TeX prints page headings only for that text that comes after the +`@end titlepage' command in the Texinfo file, or that comes after an +`@headings' command that turns on headings. (*Note The `@headings' +Command: headings on off, for more information.) + + You may, if you wish, create your own, customized headings and +footings. *Note Headings::, for a detailed discussion of this. + + +File: texinfo.info, Node: End of Header, Prev: settitle, Up: Texinfo File Header + +3.2.5 End of Header +------------------- + +Follow the header lines with an end-of-header line, which is a Texinfo +comment that looks like this: + + @c %**end of header + + *Note Start of Header::. + + +File: texinfo.info, Node: Document Permissions, Next: Titlepage & Copyright Page, Prev: Texinfo File Header, Up: Beginning a File + +3.3 Document Permissions +======================== + +The copyright notice and copying permissions for a document need to +appear in several places in the various Texinfo output formats. +Therefore, Texinfo provides a command (`@copying') to declare this text +once, and another command (`@insertcopying') to insert the text at +appropriate points. + +* Menu: + +* copying:: Declare the document's copying permissions. +* insertcopying:: Where to insert the permissions. + + +File: texinfo.info, Node: copying, Next: insertcopying, Up: Document Permissions + +3.3.1 `@copying': Declare Copying Permissions +--------------------------------------------- + +The `@copying' command should be given very early in the document; the +recommended location is right after the header material (*note Texinfo +File Header::). It conventionally consists of a sentence or two about +what the program is, identification of the documentation itself, the +legal copyright line, and the copying permissions. Here is a skeletal +example: + + @copying + This manual is for PROGRAM (version VERSION, updated + DATE), which ... + + Copyright @copyright{} YEARS COPYRIGHT-OWNER. + + @quotation + Permission is granted to ... + @end quotation + @end copying + + The `@quotation' has no legal significance; it's there to improve +readability in some contexts. + + *Note GNU Sample Texts::, for the full text to be used in GNU manuals. +*Note GNU Free Documentation License::, for the license itself under +which GNU and other free manuals are distributed. You need to include +the license as an appendix to your document. + + The text of `@copying' is output as a comment at the beginning of +Info, HTML, and XML output files. It is _not_ output implicitly in +plain text or TeX; it's up to you to use `@insertcopying' to emit the +copying information. See the next section for details. + + The `@copyright{}' command generates a `c' inside a circle in output +formats that support this (print and HTML). In the other formats (Info +and plain text), it generates `(C)'. The copyright notice itself has +the following legally defined sequence: + + Copyright (C) YEARS COPYRIGHT-OWNER. + + The word `Copyright' must always be written in English, even if the +document is otherwise written in another language. This is due to +international law. + + The list of years should include all years in which a version was +completed (even if it was released in a subsequent year). Ranges are +not allowed; each year must be written out individually and in full, +separated by commas. + + The copyright owner (or owners) is whoever holds legal copyright on +the work. In the case of works assigned to the FSF, the owner is `Free +Software Foundation, Inc.'. + + The copyright `line' may actually be split across multiple lines, +both in the source document and in the output. This often happens for +documents with a long history, having many different years of +publication. + + *Note Copyright Notices: (maintain)Copyright Notices, for additional +information. + + +File: texinfo.info, Node: insertcopying, Prev: copying, Up: Document Permissions + +3.3.2 `@insertcopying': Include Permissions Text +------------------------------------------------ + +The `@insertcopying' command is simply written on a line by itself, +like this: + + @insertcopying + + This inserts the text previously defined by `@copying'. To meet +legal requirements, it must be used on the copyright page in the printed +manual (*note Copyright::). + + We also strongly recommend using `@insertcopying' in the Top node of +your manual (*note The Top Node::), although it is not required +legally. Here's why: + + The `@copying' command itself causes the permissions text to appear +in an Info file _before_ the first node. The text is also copied into +the beginning of each split Info output file, as is legally necessary. +This location implies a human reading the manual using Info does _not_ +see this text (except when using the advanced Info command `g *'). +Therefore, an explicit `@insertcopying' in the Top node makes it +apparent to readers that the manual is free. + + Similarly, the `@copying' text is automatically included at the +beginning of each HTML output file, as an HTML comment. Again, this +text is not visible (unless the reader views the HTML source). And +therefore again, the `@insertcopying' in the Top node is valuable +because it makes the copying permissions visible and thus promotes +freedom. + + The permissions text defined by `@copying' also appears automatically +at the beginning of the XML output file. + + +File: texinfo.info, Node: Titlepage & Copyright Page, Next: Contents, Prev: Document Permissions, Up: Beginning a File + +3.4 Title and Copyright Pages +============================= + +In hard copy output, the manual's name and author are usually printed on +a title page. Copyright information is usually printed on the back of +the title page. + + The title and copyright pages appear in the printed manual, but not in +the Info file. Because of this, it is possible to use several slightly +obscure TeX typesetting commands that cannot be used in an Info file. +In addition, this part of the beginning of a Texinfo file contains the +text of the copying permissions that appears in the printed manual. + + You may wish to include titlepage-like information for plain text +output. Simply place any such leading material between `@ifplaintext' +and `@end ifplaintext'; `makeinfo' includes this when writing plain +text (`--no-headers'), along with an `@insertcopying'. + +* Menu: + +* titlepage:: Create a title for the printed document. +* titlefont center sp:: The `@titlefont', `@center', + and `@sp' commands. +* title subtitle author:: The `@title', `@subtitle', + and `@author' commands. +* Copyright:: How to write the copyright notice and + include copying permissions. +* end titlepage:: Turn on page headings after the title and + copyright pages. +* headings on off:: An option for turning headings on and off + and double or single sided printing. + + +File: texinfo.info, Node: titlepage, Next: titlefont center sp, Up: Titlepage & Copyright Page + +3.4.1 `@titlepage' +------------------ + +Start the material for the title page and following copyright page with +`@titlepage' on a line by itself and end it with `@end titlepage' on a +line by itself. + + The `@end titlepage' command starts a new page and turns on page +numbering. (*Note Page Headings: Headings, for details about how to +generate page headings.) All the material that you want to appear on +unnumbered pages should be put between the `@titlepage' and `@end +titlepage' commands. You can force the table of contents to appear +there with the `@setcontentsaftertitlepage' command (*note Contents::). + + By using the `@page' command you can force a page break within the +region delineated by the `@titlepage' and `@end titlepage' commands and +thereby create more than one unnumbered page. This is how the +copyright page is produced. (The `@titlepage' command might perhaps +have been better named the `@titleandadditionalpages' command, but that +would have been rather long!) + + When you write a manual about a computer program, you should write the +version of the program to which the manual applies on the title page. +If the manual changes more frequently than the program or is independent +of it, you should also include an edition number(1) for the manual. +This helps readers keep track of which manual is for which version of +the program. (The `Top' node should also contain this information; see +*Note The Top Node::.) + + Texinfo provides two main methods for creating a title page. One +method uses the `@titlefont', `@sp', and `@center' commands to generate +a title page in which the words on the page are centered. + + The second method uses the `@title', `@subtitle', and `@author' +commands to create a title page with black rules under the title and +author lines and the subtitle text set flush to the right hand side of +the page. With this method, you do not specify any of the actual +formatting of the title page. You specify the text you want, and +Texinfo does the formatting. + + You may use either method, or you may combine them; see the examples +in the sections below. + + For extremely simple documents, and for the bastard title page in +traditional book frontmatter, Texinfo also provides a command +`@shorttitlepage' which takes the rest of the line as the title. The +argument is typeset on a page by itself and followed by a blank page. + + ---------- Footnotes ---------- + + (1) We have found that it is helpful to refer to versions of +independent manuals as `editions' and versions of programs as +`versions'; otherwise, we find we are liable to confuse each other in +conversation by referring to both the documentation and the software +with the same words. + + +File: texinfo.info, Node: titlefont center sp, Next: title subtitle author, Prev: titlepage, Up: Titlepage & Copyright Page + +3.4.2 `@titlefont', `@center', and `@sp' +---------------------------------------- + +You can use the `@titlefont', `@sp', and `@center' commands to create a +title page for a printed document. (This is the first of the two +methods for creating a title page in Texinfo.) + + Use the `@titlefont' command to select a large font suitable for the +title itself. You can use `@titlefont' more than once if you have an +especially long title. + + For HTML output, each `@titlefont' command produces an `<h1>' +heading, but the HTML document `<title>' is not affected. For that, +you must put an `@settitle' command before the `@titlefont' command +(*note settitle::). + + For example: + + @titlefont{Texinfo} + + Use the `@center' command at the beginning of a line to center the +remaining text on that line. Thus, + + @center @titlefont{Texinfo} + +centers the title, which in this example is "Texinfo" printed in the +title font. + + Use the `@sp' command to insert vertical space. For example: + + @sp 2 + +This inserts two blank lines on the printed page. (*Note `@sp': sp, +for more information about the `@sp' command.) + + A template for this method looks like this: + + @titlepage + @sp 10 + @center @titlefont{NAME-OF-MANUAL-WHEN-PRINTED} + @sp 2 + @center SUBTITLE-IF-ANY + @sp 2 + @center AUTHOR + ... + @end titlepage + + The spacing of the example fits an 8.5 by 11 inch manual. + + You can in fact use these commands anywhere, not just on a title page, +but since they are not logical markup commands, we don't recommend them. + + +File: texinfo.info, Node: title subtitle author, Next: Copyright, Prev: titlefont center sp, Up: Titlepage & Copyright Page + +3.4.3 `@title', `@subtitle', and `@author' +------------------------------------------ + +You can use the `@title', `@subtitle', and `@author' commands to create +a title page in which the vertical and horizontal spacing is done for +you automatically. This contrasts with the method described in the +previous section, in which the `@sp' command is needed to adjust +vertical spacing. + + Write the `@title', `@subtitle', or `@author' commands at the +beginning of a line followed by the title, subtitle, or author. These +commands are only effective in TeX output; it's an error to use them +anywhere except within `@titlepage'. + + The `@title' command produces a line in which the title is set flush +to the left-hand side of the page in a larger than normal font. The +title is underlined with a black rule. Only a single line is allowed; +the `@*' command may not be used to break the title into two lines. To +handle very long titles, you may find it profitable to use both +`@title' and `@titlefont'; see the final example in this section. + + The `@subtitle' command sets subtitles in a normal-sized font flush +to the right-hand side of the page. + + The `@author' command sets the names of the author or authors in a +middle-sized font flush to the left-hand side of the page on a line +near the bottom of the title page. The names are underlined with a +black rule that is thinner than the rule that underlines the title. +(The black rule only occurs if the `@author' command line is followed +by an `@page' command line.) + + There are two ways to use the `@author' command: you can write the +name or names on the remaining part of the line that starts with an +`@author' command: + + @author by Jane Smith and John Doe + +or you can write the names one above each other by using two (or more) +`@author' commands: + + @author Jane Smith + @author John Doe + +(Only the bottom name is underlined with a black rule.) + + A template for this method looks like this: + + @titlepage + @title NAME-OF-MANUAL-WHEN-PRINTED + @subtitle SUBTITLE-IF-ANY + @subtitle SECOND-SUBTITLE + @author AUTHOR + @page + ... + @end titlepage + + You may also combine the `@titlefont' method described in the +previous section and `@title' method described in this one. This may +be useful if you have a very long title. Here is a real-life example: + + @titlepage + @titlefont{GNU Software} + @sp 1 + @title for MS-Windows and MS-DOS + @subtitle Edition @value{e} for Release @value{cde} + @author by Daniel Hagerty, Melissa Weisshaus + @author and Eli Zaretskii + +(The use of `@value' here is explained in *Note value Example::. + + +File: texinfo.info, Node: Copyright, Next: end titlepage, Prev: title subtitle author, Up: Titlepage & Copyright Page + +3.4.4 Copyright Page +-------------------- + +By international treaty, the copyright notice for a book must be either +on the title page or on the back of the title page. When the copyright +notice is on the back of the title page, that page is customarily not +numbered. Therefore, in Texinfo, the information on the copyright page +should be within `@titlepage' and `@end titlepage' commands. + + Use the `@page' command to cause a page break. To push the copyright +notice and the other text on the copyright page towards the bottom of +the page, use the following incantantion after `@page': + + @vskip 0pt plus 1filll + +This is a TeX command that is not supported by the Info formatting +commands. The `@vskip' command inserts whitespace. The `0pt plus +1filll' means to put in zero points of mandatory whitespace, and as +much optional whitespace as needed to push the following text to the +bottom of the page. Note the use of three `l's in the word `filll'; +this is correct. + + To insert the copyright text itself, write `@insertcopying' next +(*note Document Permissions::): + + @insertcopying + + Follow the copying text by the publisher, ISBN numbers, cover art +credits, and other such information. + + Here is an example putting all this together: + + @titlepage + ... + @page + @vskip 0pt plus 1filll + @insertcopying + + Published by ... + + Cover art by ... + @end titlepage + + +File: texinfo.info, Node: end titlepage, Next: headings on off, Prev: Copyright, Up: Titlepage & Copyright Page + +3.4.5 Heading Generation +------------------------ + +The `@end titlepage' command must be written on a line by itself. It +not only marks the end of the title and copyright pages, but also +causes TeX to start generating page headings and page numbers. + + To repeat what is said elsewhere, Texinfo has two standard page +heading formats, one for documents which are printed on one side of +each sheet of paper (single-sided printing), and the other for +documents which are printed on both sides of each sheet (double-sided +printing). You can specify these formats in different ways: + + * The conventional way is to write an `@setchapternewpage' command + before the title page commands, and then have the `@end titlepage' + command start generating page headings in the manner desired. + (*Note setchapternewpage::.) + + * Alternatively, you can use the `@headings' command to prevent page + headings from being generated or to start them for either single or + double-sided printing. (Write an `@headings' command immediately + after the `@end titlepage' command. *Note The `@headings' + Command: headings on off, for more information.) + + * Or, you may specify your own page heading and footing format. + *Note Page Headings: Headings, for detailed information about page + headings and footings. + + Most documents are formatted with the standard single-sided or +double-sided format, using `@setchapternewpage odd' for double-sided +printing and no `@setchapternewpage' command for single-sided printing. + + +File: texinfo.info, Node: headings on off, Prev: end titlepage, Up: Titlepage & Copyright Page + +3.4.6 The `@headings' Command +----------------------------- + +The `@headings' command is rarely used. It specifies what kind of page +headings and footings to print on each page. Usually, this is +controlled by the `@setchapternewpage' command. You need the +`@headings' command only if the `@setchapternewpage' command does not +do what you want, or if you want to turn off pre-defined page headings +prior to defining your own. Write an `@headings' command immediately +after the `@end titlepage' command. + + You can use `@headings' as follows: + +`@headings off' + Turn off printing of page headings. + +`@headings single' + Turn on page headings appropriate for single-sided printing. + +`@headings double' +`@headings on' + Turn on page headings appropriate for double-sided printing. The + two commands, `@headings on' and `@headings double', are + synonymous. + +`@headings singleafter' +`@headings doubleafter' + Turn on `single' or `double' headings, respectively, after the + current page is output. + +`@headings on' + Turn on page headings: `single' if `@setchapternewpage on', + `double' otherwise. + + For example, suppose you write `@setchapternewpage off' before the +`@titlepage' command to tell TeX to start a new chapter on the same +page as the end of the last chapter. This command also causes TeX to +typeset page headers for single-sided printing. To cause TeX to +typeset for double sided printing, write `@headings double' after the +`@end titlepage' command. + + You can stop TeX from generating any page headings at all by writing +`@headings off' on a line of its own immediately after the line +containing the `@end titlepage' command, like this: + + @end titlepage + @headings off + +The `@headings off' command overrides the `@end titlepage' command, +which would otherwise cause TeX to print page headings. + + You can also specify your own style of page heading and footing. +*Note Page Headings: Headings, for more information. + + +File: texinfo.info, Node: Contents, Next: The Top Node, Prev: Titlepage & Copyright Page, Up: Beginning a File + +3.5 Generating a Table of Contents +================================== + +The `@chapter', `@section', and other structuring commands (*note +Structuring::) supply the information to make up a table of contents, +but they do not cause an actual table to appear in the manual. To do +this, you must use the `@contents' and/or `@summarycontents' command(s). + +`@contents' + Generates a table of contents in a printed manual, including all + chapters, sections, subsections, etc., as well as appendices and + unnumbered chapters. Headings generated by `@majorheading', + `@chapheading', and the other `@...heading' commands do not appear + in the table of contents (*note Structuring Command Types::). + +`@shortcontents' +`@summarycontents' + (`@summarycontents' is a synonym for `@shortcontents'.) + + Generates a short or summary table of contents that lists only the + chapters, appendices, and unnumbered chapters. Sections, + subsections and subsubsections are omitted. Only a long manual + needs a short table of contents in addition to the full table of + contents. + + + Both contents commands should be written on a line by themselves, and +are best placed near the beginning of the file, after the `@end +titlepage' (*note titlepage::). The contents commands automatically +generate a chapter-like heading at the top of the first table of +contents page, so don't include any sectioning command such as +`@unnumbered' before them. + + Since an Info file uses menus instead of tables of contents, the Info +formatting commands ignore the contents commands. But the contents are +included in plain text output (generated by `makeinfo --no-headers'), +unless `makeinfo' is writing its output to standard output. + + When `makeinfo' writes a short table of contents while producing html +output, the links in the short table of contents point to corresponding +entries in the full table of contents rather than the text of the +document. The links in the full table of contents point to the main +text of the document. + + In the past, the contents commands were sometimes placed at the end of +the file, after any indices and just before the `@bye', but we no +longer recommend this. + + However, since many existing Texinfo documents still do have the +`@contents' at the end of the manual, if you are a user printing a +manual, you may wish to force the contents to be printed after the +title page. You can do this by specifying `@setcontentsaftertitlepage' +and/or `@setshortcontentsaftertitlepage'. The first prints only the +main contents after the `@end titlepage'; the second prints both the +short contents and the main contents. In either case, any subsequent +`@contents' or `@shortcontents' is ignored (unless, erroneously, no +`@end titlepage' is ever encountered). + + You need to include the `@set...contentsaftertitlepage' commands +early in the document (just after `@setfilename', for example). We +recommend using `texi2dvi' (*note Format with texi2dvi::) to specify +this without altering the source file at all. For example: + texi2dvi --texinfo=@setcontentsaftertitlepage foo.texi + + +File: texinfo.info, Node: The Top Node, Next: Global Document Commands, Prev: Contents, Up: Beginning a File + +3.6 The `Top' Node and Master Menu +================================== + +The `Top' node is the node in which a reader enters an Info manual. As +such, it should begin with the `@insertcopying' command (*note Document +Permissions::) to provide a brief description of the manual (including +the version number) and copying permissions, and end with a master menu +for the whole manual. Of course you should include any other general +information you feel a reader would find helpful. + + It is also conventional to write an `@top' sectioning command line +containing the title of the document immediately after the `@node Top' +line (*note The `@top' Sectioning Command: makeinfo top command.). + + The contents of the `Top' node should appear only in the online +output; none of it should appear in printed output, so enclose it +between `@ifnottex' and `@end ifnottex' commands. (TeX does not print +either an `@node' line or a menu; they appear only in Info; strictly +speaking, you are not required to enclose these parts between +`@ifnottex' and `@end ifnottext', but it is simplest to do so. *Note +Conditionally Visible Text: Conditionals.) + +* Menu: + +* Top Node Example:: +* Master Menu Parts:: + + +File: texinfo.info, Node: Top Node Example, Next: Master Menu Parts, Up: The Top Node + +3.6.1 Top Node Example +---------------------- + +Here is an example of a Top node. + + @ifnottex + @node Top + @top Sample Title + + @insertcopying + + Additional general information. + + @menu + * First Chapter:: + * Second Chapter:: + ... + * Index:: + @end menu + + +File: texinfo.info, Node: Master Menu Parts, Prev: Top Node Example, Up: The Top Node + +3.6.2 Parts of a Master Menu +---------------------------- + +A "master menu" is a detailed main menu listing all the nodes in a file. + + A master menu is enclosed in `@menu' and `@end menu' commands and +does not appear in the printed document. + + Generally, a master menu is divided into parts. + + * The first part contains the major nodes in the Texinfo file: the + nodes for the chapters, chapter-like sections, and the appendices. + + * The second part contains nodes for the indices. + + * The third and subsequent parts contain a listing of the other, + lower level nodes, often ordered by chapter. This way, rather + than go through an intermediary menu, an inquirer can go directly + to a particular node when searching for specific information. + These menu items are not required; add them if you think they are a + convenience. If you do use them, put `@detailmenu' before the + first one, and `@end detailmenu' after the last; otherwise, + `makeinfo' will get confused. + + Each section in the menu can be introduced by a descriptive line. So +long as the line does not begin with an asterisk, it will not be +treated as a menu entry. (*Note Writing a Menu::, for more +information.) + + For example, the master menu for this manual looks like the following +(but has many more entries): + + @menu + * Copying Conditions:: Your rights. + * Overview:: Texinfo in brief. + ... + * Command and Variable Index:: + * Concept Index:: + + @detailmenu + --- The Detailed Node Listing --- + + Overview of Texinfo + + * Reporting Bugs:: ... + ... + + Beginning a Texinfo File + + * Sample Beginning:: ... + ... + @end detailmenu + @end menu + + +File: texinfo.info, Node: Global Document Commands, Next: Software Copying Permissions, Prev: The Top Node, Up: Beginning a File + +3.7 Global Document Commands +============================ + +Besides the basic commands mentioned in the previous sections, here are +additional commands which affect the document as a whole. They are +generally all given before the Top node, if they are given at all. + +* Menu: + +* documentdescription:: Document summary for the HTML output. +* setchapternewpage:: Start chapters on right-hand pages. +* paragraphindent:: Specify paragraph indentation. +* firstparagraphindent:: Suppress indentation of the first paragraph. +* exampleindent:: Specify environment indentation. + + +File: texinfo.info, Node: documentdescription, Next: setchapternewpage, Up: Global Document Commands + +3.7.1 `@documentdescription': Summary Text +------------------------------------------ + +When producing HTML output for a document, `makeinfo' writes a `<meta>' +element in the `<head>' to give some idea of the content of the +document. By default, this "description" is the title of the document, +taken from the `@settitle' command (*note settitle::). To change this, +use the `@documentdescription' environment, as in: + + @documentdescription + descriptive text. + @end documentdescription + +This will produce the following output in the `<head>' of the HTML: + + <meta name=description content="descriptive text."> + + `@documentdescription' must be specified before the first node of the +document. + + +File: texinfo.info, Node: setchapternewpage, Next: paragraphindent, Prev: documentdescription, Up: Global Document Commands + +3.7.2 `@setchapternewpage': +--------------------------- + +In an officially bound book, text is usually printed on both sides of +the paper, chapters start on right-hand pages, and right-hand pages have +odd numbers. But in short reports, text often is printed only on one +side of the paper. Also in short reports, chapters sometimes do not +start on new pages, but are printed on the same page as the end of the +preceding chapter, after a small amount of vertical whitespace. + + You can use the `@setchapternewpage' command with various arguments +to specify how TeX should start chapters and whether it should format +headers for printing on one or both sides of the paper (single-sided or +double-sided printing). + + Write the `@setchapternewpage' command at the beginning of a line +followed by its argument. + + For example, you would write the following to cause each chapter to +start on a fresh odd-numbered page: + + @setchapternewpage odd + + You can specify one of three alternatives with the +`@setchapternewpage' command: + +`@setchapternewpage off' + Cause TeX to typeset a new chapter on the same page as the last + chapter, after skipping some vertical whitespace. Also, cause TeX + to format page headers for single-sided printing. + +`@setchapternewpage on' + Cause TeX to start new chapters on new pages and to format page + headers for single-sided printing. This is the form most often + used for short reports or personal printing. This is the default. + +`@setchapternewpage odd' + Cause TeX to start new chapters on new, odd-numbered pages + (right-handed pages) and to typeset for double-sided printing. + This is the form most often used for books and manuals. + + Texinfo does not have an `@setchapternewpage even' command, because +there is no printing tradition of starting chapters or books on an +even-numbered page. + + If you don't like the default headers that `@setchapternewpage' sets, +you can explicit control them with the `@headings' command. *Note The +`@headings' Command: headings on off. + + At the beginning of a manual or book, pages are not numbered--for +example, the title and copyright pages of a book are not numbered. By +convention, table of contents and frontmatter pages are numbered with +roman numerals and not in sequence with the rest of the document. + + Since an Info file does not have pages, the `@setchapternewpage' +command has no effect on it. + + We recommend not including any `@setchapternewpage' command in your +manual sources at all, since the desired output is not intrinsic to the +document. For a particular hard copy run, if you don't want the +default option (no blank pages, same headers on all pages) use the +`--texinfo' option to `texi2dvi' to specify the output you want. + + +File: texinfo.info, Node: paragraphindent, Next: firstparagraphindent, Prev: setchapternewpage, Up: Global Document Commands + +3.7.3 `@paragraphindent': Paragraph Indenting +--------------------------------------------- + +The Texinfo processors may insert whitespace at the beginning of the +first line of each paragraph, thereby indenting that paragraph. You can +use the `@paragraphindent' command to specify this indentation. Write +an `@paragraphindent' command at the beginning of a line followed by +either `asis' or a number: + + @paragraphindent INDENT + + The indentation is according to the value of INDENT: + +`asis' + Do not change the existing indentation (not implemented in TeX). + +`none' +0 + Omit all indentation. + +N + Indent by N space characters in Info output, by N ems in TeX. + + + The default value of INDENT is 3. `@paragraphindent' is ignored for +HTML output. + + It is best to write the `@paragraphindent' command before the +end-of-header line at the beginning of a Texinfo file, so the region +formatting commands indent paragraphs as specified. *Note Start of +Header::. + + A peculiarity of the `texinfo-format-buffer' and +`texinfo-format-region' commands is that they do not indent (nor fill) +paragraphs that contain `@w' or `@*' commands. + + +File: texinfo.info, Node: firstparagraphindent, Next: exampleindent, Prev: paragraphindent, Up: Global Document Commands + +3.7.4 `@firstparagraphindent': Indenting After Headings +------------------------------------------------------- + +As you can see in the present manual, the first paragraph in any +section is not indented by default. Typographically, indentation is a +paragraph separator, which means that it is unnecessary when a new +section begins. This indentation is controlled with the +`@firstparagraphindent' command: + + @firstparagraphindent WORD + + The first paragraph after a heading is indented according to the value +of WORD: + +`none' + Prevents the first paragraph from being indented (default). This + option is ignored by `makeinfo' if `@paragraphindent asis' is in + effect. + +`insert' + Include normal paragraph indentation. This respects the paragraph + indentation set by a `@paragraphindent' command (*note + paragraphindent::). + + For HTML and XML output, the `@firstparagraphindent' setting is +ignored. + + It is best to write the `@paragraphindent' command before the +end-of-header line at the beginning of a Texinfo file, so the region +formatting commands indent paragraphs as specified. *Note Start of +Header::. + + +File: texinfo.info, Node: exampleindent, Prev: firstparagraphindent, Up: Global Document Commands + +3.7.5 `@exampleindent': Environment Indenting +--------------------------------------------- + +The Texinfo processors indent each line of `@example' and similar +environments. You can use the `@exampleindent' command to specify this +indentation. Write an `@exampleindent' command at the beginning of a +line followed by either `asis' or a number: + + @exampleindent INDENT + + The indentation is according to the value of INDENT: + +`asis' + Do not change the existing indentation (not implemented in TeX). + +0 + Omit all indentation. + +N + Indent environments by N space characters in Info output, by N ems + in TeX. + + + The default value of INDENT is 5. `@exampleindent' is ignored for +HTML output. + + It is best to write the `@exampleindent' command before the +end-of-header line at the beginning of a Texinfo file, so the region +formatting commands indent paragraphs as specified. *Note Start of +Header::. + + +File: texinfo.info, Node: Software Copying Permissions, Prev: Global Document Commands, Up: Beginning a File + +3.8 Software Copying Permissions +================================ + +If the Texinfo file has a section containing the "General Public +License" and the distribution information and a warranty disclaimer for +the software that is documented, we recommend placing this right after +the `Top' node. The General Public License is very important to Project +GNU software. It ensures that you and others will continue to have a +right to use and share the software. + + The copying and distribution information and the disclaimer are +followed by an introduction or else by the first chapter of the manual. + + Although an introduction is not a required part of a Texinfo file, it +is very helpful. Ideally, it should state clearly and concisely what +the file is about and who would be interested in reading it. In +general, an introduction would follow the licensing and distribution +information, although sometimes people put it earlier in the document. + + +File: texinfo.info, Node: Ending a File, Next: Structuring, Prev: Beginning a File, Up: Top + +4 Ending a Texinfo File +*********************** + +The end of a Texinfo file should include commands to create indices, +and the `@bye' command to mark the last line to be processed. + + For example: + + @node Index + @unnumbered Index + + @printindex cp + + @bye + +* Menu: + +* Printing Indices & Menus:: How to print an index in hardcopy and + generate index menus in Info. +* File End:: How to mark the end of a file. + + +File: texinfo.info, Node: Printing Indices & Menus, Next: File End, Up: Ending a File + +4.1 Printing Indices and Menus +============================== + +To print an index means to include it as part of a manual or Info file. +This does not happen automatically just because you use `@cindex' or +other index-entry generating commands in the Texinfo file; those just +cause the raw data for the index to be accumulated. To generate an +index, you must include the `@printindex' command at the place in the +document where you want the index to appear. Also, as part of the +process of creating a printed manual, you must run a program called +`texindex' (*note Hardcopy::) to sort the raw data to produce a sorted +index file. The sorted index file is what is actually used to print +the index. + + Texinfo offers six separate types of predefined index, which suffice +in most cases. *Note Indices::, for information on this, as well +defining your own new indices, combining indices, and, most importantly +advice on writing the actual index entries. This section focuses on +printing indices, which is done with the `@printindex' command. + + `@printindex' takes one argument, a two-letter index abbreviation. +It reads the corresponding sorted index file (for printed output), and +formats it appropriately into an index. + + The `@printindex' command does not generate a chapter heading for the +index, since different manuals have different needs. Consequently, you +should precede the `@printindex' command with a suitable section or +chapter command (usually `@appendix' or `@unnumbered') to supply the +chapter heading and put the index into the table of contents. Precede +the chapter heading with an `@node' line as usual. + + For example: + + @node Variable Index + @unnumbered Variable Index + + @printindex vr + + @node Concept Index + @unnumbered Concept Index + + @printindex cp + + If you have more than one index, we recommend placing the concept +index last. + + * In printed output, `@printindex' produces a traditional two-column + index, with dot leaders between the index terms and page numbers. + + * In Info output, `@printindex' produces a special menu containing + the line number of the entry, relative to the start of the node. + Info readers can use this to go to the exact line of an entry, not + just the containing node. (Older Info readers will just go to the + node.) Here's an example: + + * First index entry: Top. (line 7) + + The actual number of spaces is variable, to right-justify the line + number; it's been reduced here to make the line fit in the printed + manual. + + * In plain text output, `@printindex' produces the same menu, but + the line numbers are relative to the start of the file, since + that's more convenient for that format. + + * In HTML and Docbook output, `@printindex' produces links to the + index entries. + + * In XML output, it simply records the index to be printed. + + It's not possible to generate an index when writing to standard +output; `makeinfo' generates a warning in this case. + + +File: texinfo.info, Node: File End, Prev: Printing Indices & Menus, Up: Ending a File + +4.2 `@bye' File Ending +====================== + +An `@bye' command terminates Texinfo processing. None of the +formatters read anything following `@bye'. The `@bye' command should +be on a line by itself. + + If you wish, you may follow the `@bye' line with notes. These notes +will not be formatted and will not appear in either Info or a printed +manual; it is as if text after `@bye' were within `@ignore' ... `@end +ignore'. Also, you may follow the `@bye' line with a local variables +list for Emacs. *Note Using Local Variables and the Compile Command: +Compile-Command, for more information. + + +File: texinfo.info, Node: Structuring, Next: Nodes, Prev: Ending a File, Up: Top + +5 Chapter Structuring +********************* + +The "chapter structuring" commands divide a document into a hierarchy of +chapters, sections, subsections, and subsubsections. These commands +generate large headings; they also provide information for the table of +contents of a printed manual (*note Generating a Table of Contents: +Contents.). + + The chapter structuring commands do not create an Info node structure, +so normally you should put an `@node' command immediately before each +chapter structuring command (*note Nodes::). The only time you are +likely to use the chapter structuring commands without using the node +structuring commands is if you are writing a document that contains no +cross references and will never be transformed into Info format. + + It is unlikely that you will ever write a Texinfo file that is +intended only as an Info file and not as a printable document. If you +do, you might still use chapter structuring commands to create a +heading at the top of each node--but you don't need to. + +* Menu: + +* Tree Structuring:: A manual is like an upside down tree ... +* Structuring Command Types:: How to divide a manual into parts. +* makeinfo top:: The `@top' command, part of the `Top' node. +* chapter:: +* unnumbered & appendix:: +* majorheading & chapheading:: +* section:: +* unnumberedsec appendixsec heading:: +* subsection:: +* unnumberedsubsec appendixsubsec subheading:: +* subsubsection:: Commands for the lowest level sections. +* Raise/lower sections:: How to change commands' hierarchical level. + + +File: texinfo.info, Node: Tree Structuring, Next: Structuring Command Types, Up: Structuring + +5.1 Tree Structure of Sections +============================== + +A Texinfo file is usually structured like a book with chapters, +sections, subsections, and the like. This structure can be visualized +as a tree (or rather as an upside-down tree) with the root at the top +and the levels corresponding to chapters, sections, subsection, and +subsubsections. + + Here is a diagram that shows a Texinfo file with three chapters, each +of which has two sections. + + Top + | + ------------------------------------- + | | | + Chapter 1 Chapter 2 Chapter 3 + | | | + -------- -------- -------- + | | | | | | + Section Section Section Section Section Section + 1.1 1.2 2.1 2.2 3.1 3.2 + + In a Texinfo file that has this structure, the beginning of Chapter 2 +looks like this: + + @node Chapter 2, Chapter 3, Chapter 1, top + @chapter Chapter 2 + + The chapter structuring commands are described in the sections that +follow; the `@node' and `@menu' commands are described in following +chapters. (*Note Nodes::, and see *Note Menus::.) + + +File: texinfo.info, Node: Structuring Command Types, Next: makeinfo top, Prev: Tree Structuring, Up: Structuring + +5.2 Structuring Command Types +============================= + +The chapter structuring commands fall into four groups or series, each +of which contains structuring commands corresponding to the +hierarchical levels of chapters, sections, subsections, and +subsubsections. + + The four groups are the `@chapter' series, the `@unnumbered' series, +the `@appendix' series, and the `@heading' series. + + Each command produces titles that have a different appearance on the +printed page or Info file; only some of the commands produce titles +that are listed in the table of contents of a printed book or manual. + + * The `@chapter' and `@appendix' series of commands produce numbered + or lettered entries both in the body of a printed work and in its + table of contents. + + * The `@unnumbered' series of commands produce unnumbered entries + both in the body of a printed work and in its table of contents. + The `@top' command, which has a special use, is a member of this + series (*note `@top': makeinfo top.). An `@unnumbered' section + should be associated with a node and be a normal part of the + document structure. + + * The `@heading' series of commands produce simple unnumbered + headings that do not appear in a table of contents, are not + associated with nodes, and cannot be cross-referenced. The + heading commands never start a new page. + + * The `@majorheading' command is similar to `@chapheading', except + that it generates a larger vertical whitespace before the heading. + + * When an `@setchapternewpage' command says to do so, the + `@chapter', `@unnumbered', and `@appendix' commands start new + pages in the printed manual; the `@heading' commands do not. + + Here are the four groups of chapter structuring commands: + + No new page +Numbered Unnumbered Lettered/numbered Unnumbered +In contents In contents In contents Not in contents + `@top' `@majorheading' +`@chapter' `@unnumbered' `@appendix' `@chapheading' +`@section' `@unnumberedsec' `@appendixsec' `@heading' +`@subsection' `@unnumberedsubsec' `@appendixsubsec' `@subheading' +`@subsubsection'`@unnumberedsubsubsec' `@appendixsubsubsec' `@subsubheading' + + +File: texinfo.info, Node: makeinfo top, Next: chapter, Prev: Structuring Command Types, Up: Structuring + +5.3 `@top' +========== + +The `@top' command is a special sectioning command that you use only +after an `@node Top' line at the beginning of a Texinfo file. The +`@top' command tells the `makeinfo' formatter which node is the `Top' +node, so it can use it as the root of the node tree if your manual uses +implicit node pointers. It has the same typesetting effect as +`@unnumbered' (*note `@unnumbered' and `@appendix': unnumbered & +appendix.). For detailed information, see *Note The `@top' Command: +makeinfo top command. + + The `@top' node and its menu (if any) is conventionally wrapped in an +`@ifnottex' conditional so that it will appear only in Info and HTML +output, not TeX. + + +File: texinfo.info, Node: chapter, Next: unnumbered & appendix, Prev: makeinfo top, Up: Structuring + +5.4 `@chapter' +============== + +`@chapter' identifies a chapter in the document. Write the command at +the beginning of a line and follow it on the same line by the title of +the chapter. + + For example, this chapter in this manual is entitled "Chapter +Structuring"; the `@chapter' line looks like this: + + @chapter Chapter Structuring + + In TeX, the `@chapter' command creates a chapter in the document, +specifying the chapter title. The chapter is numbered automatically. + + In Info, the `@chapter' command causes the title to appear on a line +by itself, with a line of asterisks inserted underneath. Thus, in +Info, the above example produces the following output: + + Chapter Structuring + ******************* + + Texinfo also provides a command `@centerchap', which is analogous to +`@unnumbered', but centers its argument in the printed output. This +kind of stylistic choice is not usually offered by Texinfo. + + +File: texinfo.info, Node: unnumbered & appendix, Next: majorheading & chapheading, Prev: chapter, Up: Structuring + +5.5 `@unnumbered' and `@appendix' +================================= + +Use the `@unnumbered' command to create a chapter that appears in a +printed manual without chapter numbers of any kind. Use the +`@appendix' command to create an appendix in a printed manual that is +labelled by letter instead of by number. + + For Info file output, the `@unnumbered' and `@appendix' commands are +equivalent to `@chapter': the title is printed on a line by itself with +a line of asterisks underneath. (*Note `@chapter': chapter.) + + To create an appendix or an unnumbered chapter, write an `@appendix' +or `@unnumbered' command at the beginning of a line and follow it on +the same line by the title, as you would if you were creating a chapter. + + +File: texinfo.info, Node: majorheading & chapheading, Next: section, Prev: unnumbered & appendix, Up: Structuring + +5.6 `@majorheading', `@chapheading' +=================================== + +The `@majorheading' and `@chapheading' commands put chapter-like +headings in the body of a document. + + However, neither command causes TeX to produce a numbered heading or +an entry in the table of contents; and neither command causes TeX to +start a new page in a printed manual. + + In TeX, an `@majorheading' command generates a larger vertical +whitespace before the heading than an `@chapheading' command but is +otherwise the same. + + In Info, the `@majorheading' and `@chapheading' commands are +equivalent to `@chapter': the title is printed on a line by itself with +a line of asterisks underneath. (*Note `@chapter': chapter.) + + +File: texinfo.info, Node: section, Next: unnumberedsec appendixsec heading, Prev: majorheading & chapheading, Up: Structuring + +5.7 `@section' +============== + +In a printed manual, an `@section' command identifies a numbered +section within a chapter. The section title appears in the table of +contents. In Info, an `@section' command provides a title for a +segment of text, underlined with `='. + + This section is headed with an `@section' command and looks like this +in the Texinfo file: + + @section @code{@@section} + + To create a section, write the `@section' command at the beginning of +a line and follow it on the same line by the section title. + + Thus, + + @section This is a section + +produces + + This is a section + ================= + +in Info. + + +File: texinfo.info, Node: unnumberedsec appendixsec heading, Next: subsection, Prev: section, Up: Structuring + +5.8 `@unnumberedsec', `@appendixsec', `@heading' +================================================ + +The `@unnumberedsec', `@appendixsec', and `@heading' commands are, +respectively, the unnumbered, appendix-like, and heading-like +equivalents of the `@section' command. (*Note `@section': section.) + +`@unnumberedsec' + The `@unnumberedsec' command may be used within an unnumbered + chapter or within a regular chapter or appendix to provide an + unnumbered section. + +`@appendixsec' +`@appendixsection' + `@appendixsection' is a longer spelling of the `@appendixsec' + command; the two are synonymous. + + Conventionally, the `@appendixsec' or `@appendixsection' command + is used only within appendices. + +`@heading' + You may use the `@heading' command anywhere you wish for a + section-style heading that will not appear in the table of + contents. + + +File: texinfo.info, Node: subsection, Next: unnumberedsubsec appendixsubsec subheading, Prev: unnumberedsec appendixsec heading, Up: Structuring + +5.9 The `@subsection' Command +============================= + +Subsections are to sections as sections are to chapters. (*Note +`@section': section.) In Info, subsection titles are underlined with +`-'. For example, + + @subsection This is a subsection + +produces + + This is a subsection + -------------------- + + In a printed manual, subsections are listed in the table of contents +and are numbered three levels deep. + + +File: texinfo.info, Node: unnumberedsubsec appendixsubsec subheading, Next: subsubsection, Prev: subsection, Up: Structuring + +5.10 The `@subsection'-like Commands +==================================== + +The `@unnumberedsubsec', `@appendixsubsec', and `@subheading' commands +are, respectively, the unnumbered, appendix-like, and heading-like +equivalents of the `@subsection' command. (*Note `@subsection': +subsection.) + + In Info, the `@subsection'-like commands generate a title underlined +with hyphens. In a printed manual, an `@subheading' command produces a +heading like that of a subsection except that it is not numbered and +does not appear in the table of contents. Similarly, an +`@unnumberedsubsec' command produces an unnumbered heading like that of +a subsection and an `@appendixsubsec' command produces a +subsection-like heading labelled with a letter and numbers; both of +these commands produce headings that appear in the table of contents. + + +File: texinfo.info, Node: subsubsection, Next: Raise/lower sections, Prev: unnumberedsubsec appendixsubsec subheading, Up: Structuring + +5.11 The `subsub' Commands +========================== + +The fourth and lowest level sectioning commands in Texinfo are the +`subsub' commands. They are: + +`@subsubsection' + Subsubsections are to subsections as subsections are to sections. + (*Note `@subsection': subsection.) In a printed manual, + subsubsection titles appear in the table of contents and are + numbered four levels deep. + +`@unnumberedsubsubsec' + Unnumbered subsubsection titles appear in the table of contents of + a printed manual, but lack numbers. Otherwise, unnumbered + subsubsections are the same as subsubsections. In Info, unnumbered + subsubsections look exactly like ordinary subsubsections. + +`@appendixsubsubsec' + Conventionally, appendix commands are used only for appendices and + are lettered and numbered appropriately in a printed manual. They + also appear in the table of contents. In Info, appendix + subsubsections look exactly like ordinary subsubsections. + +`@subsubheading' + The `@subsubheading' command may be used anywhere that you need a + small heading that will not appear in the table of contents. In + Info, subsubheadings look exactly like ordinary subsubsection + headings. + + In Info, `subsub' titles are underlined with periods. For example, + + @subsubsection This is a subsubsection + +produces + + This is a subsubsection + ....................... + + +File: texinfo.info, Node: Raise/lower sections, Prev: subsubsection, Up: Structuring + +5.12 `@raisesections' and `@lowersections' +========================================== + +The `@raisesections' and `@lowersections' commands implicitly raise and +lower the hierarchical level of following chapters, sections and the +other sectioning commands. + + That is, the `@raisesections' command changes sections to chapters, +subsections to sections, and so on. Conversely, the `@lowersections' +command changes chapters to sections, sections to subsections, and so +on. Thus, an `@lowersections' command cancels an `@raisesections' +command, and vice versa. + + You can use `@lowersections' to include text written as an outer or +standalone Texinfo file in another Texinfo file as an inner, included +file. Typical usage looks like this: + + @lowersections + @include somefile.texi + @raisesections + +(Without the `@raisesections', all the subsequent sections in the +document would be lowered.) + + If the included file being lowered has a `@top' node, you'll need to +conditionalize its inclusion with a flag (*note set value::). + + Another difficulty can arise with documents that use the (recommended) +feature of `makeinfo' for implicitly determining node pointers. Since +`makeinfo' must assume a hierarchically organized document to determine +the pointers, you cannot just arbitrarily sprinkle `@raisesections' and +`@lowersections' commands in the document. The final result has to +have menus that take the raising and lowering into account. Therefore, +as a practical matter, you generally only want to raise or lower large +chunks, usually in external files as shown above. + + Repeated use of the commands continue to raise or lower the +hierarchical level a step at a time. An attempt to raise above +`chapter' reproduces chapter commands; an attempt to lower below +`subsubsection' reproduces subsubsection commands. Also, lowered +subsubsections and raised chapters will not work with `makeinfo''s +feature of implicitly determining node pointers, since the menu +structure won't be correct. + + Write each `@raisesections' and `@lowersections' command on a line of +its own. + + +File: texinfo.info, Node: Nodes, Next: Menus, Prev: Structuring, Up: Top + +6 Nodes +******* + +"Nodes" are the primary segments of a Texinfo file. They do not in and +of themselves impose a hierarchical or any other kind of structure on a +file. Nodes contain "node pointers" that name other nodes, and can +contain "menus" which are lists of nodes. In Info, the movement +commands can carry you to a pointed-to node or to a node listed in a +menu. + + Node pointers and menus provide structure for Info files just as +chapters, sections, subsections, and the like, provide structure for +printed books. + + Because node names are used in cross-references, it is not desirable +to casually change them. Such name changes invalidate references from +other manuals, from mail archives, and so on. + +* Menu: + +* Two Paths:: Different commands to structure + Info output and printed output. +* Node Menu Illustration:: A diagram, and sample nodes and menus. +* node:: Creating nodes, in detail. +* makeinfo Pointer Creation:: Letting makeinfo determine node pointers. +* anchor:: Defining arbitrary cross-reference targets. + + +File: texinfo.info, Node: Two Paths, Next: Node Menu Illustration, Up: Nodes + +6.1 Two Paths +============= + +The node and menu commands and the chapter structuring commands are +technically independent of each other: + + * In Info, node and menu commands provide structure. The chapter + structuring commands generate headings with different kinds of + underlining--asterisks for chapters, hyphens for sections, and so + on; they do nothing else. + + * In TeX, the chapter structuring commands generate chapter and + section numbers and tables of contents. The node and menu + commands provide information for cross references; they do nothing + else. + + You can use node pointers and menus to structure an Info file any way +you want; and you can write a Texinfo file so that its Info output has a +different structure than its printed output. However, virtually all +Texinfo files are written such that the structure for the Info output +corresponds to the structure for the printed output. It is neither +convenient nor understandable to the reader to do otherwise. + + Generally, printed output is structured in a tree-like hierarchy in +which the chapters are the major limbs from which the sections branch +out. Similarly, node pointers and menus are organized to create a +matching structure in the Info output. + + +File: texinfo.info, Node: Node Menu Illustration, Next: node, Prev: Two Paths, Up: Nodes + +6.2 Node and Menu Illustration +============================== + +Here is a copy of the diagram shown earlier that illustrates a Texinfo +file with three chapters, each of which contains two sections. + + The "root" is at the top of the diagram and the "leaves" are at the +bottom. This is how such a diagram is drawn conventionally; it +illustrates an upside-down tree. For this reason, the root node is +called the `Top' node, and `Up' node pointers carry you closer to the +root. + + Top + | + ------------------------------------- + | | | + Chapter 1 Chapter 2 Chapter 3 + | | | + -------- -------- -------- + | | | | | | + Section Section Section Section Section Section + 1.1 1.2 2.1 2.2 3.1 3.2 + + The fully-written command to start Chapter 2 would be this: + + @node Chapter 2, Chapter 3, Chapter 1, Top + @comment node-name, next, previous, up + +This `@node' line says that the name of this node is "Chapter 2", the +name of the `Next' node is "Chapter 3", the name of the `Previous' node +is "Chapter 1", and the name of the `Up' node is "Top". You can omit +writing out these node names if your document is hierarchically +organized (*note makeinfo Pointer Creation::), but the pointer +relationships still obtain. + + Note: *Please Note:* `Next' refers to the next node at the same + hierarchical level in the manual, not necessarily to the next node + within the Texinfo file. In the Texinfo file, the subsequent node + may be at a lower level--a section-level node most often follows a + chapter-level node, for example. `Next' and `Previous' refer to + nodes at the _same_ hierarchical level. (The `Top' node contains + the exception to this rule. Since the `Top' node is the only node + at that level, `Next' refers to the first following node, which is + almost always a chapter or chapter-level node.) + + To go to Sections 2.1 and 2.2 using Info, you need a menu inside +Chapter 2. (*Note Menus::.) You would write the menu just before the +beginning of Section 2.1, like this: + + @menu + * Sect. 2.1:: Description of this section. + * Sect. 2.2:: + @end menu + + Write the node for Sect. 2.1 like this: + + @node Sect. 2.1, Sect. 2.2, Chapter 2, Chapter 2 + @comment node-name, next, previous, up + + In Info format, the `Next' and `Previous' pointers of a node usually +lead to other nodes at the same level--from chapter to chapter or from +section to section (sometimes, as shown, the `Previous' pointer points +up); an `Up' pointer usually leads to a node at the level above (closer +to the `Top' node); and a `Menu' leads to nodes at a level below (closer +to `leaves'). (A cross reference can point to a node at any level; see +*Note Cross References::.) + + Usually, an `@node' command and a chapter structuring command are +used in sequence, along with indexing commands. (You may follow the +`@node' line with a comment line that reminds you which pointer is +which.) + + Here is the beginning of the chapter in this manual called "Ending a +Texinfo File". This shows an `@node' line followed by a comment line, +an `@chapter' line, and then by indexing lines. + + @node Ending a File, Structuring, Beginning a File, Top + @comment node-name, next, previous, up + @chapter Ending a Texinfo File + @cindex Ending a Texinfo file + @cindex Texinfo file ending + @cindex File ending + + +File: texinfo.info, Node: node, Next: makeinfo Pointer Creation, Prev: Node Menu Illustration, Up: Nodes + +6.3 The `@node' Command +======================= + +A "node" is a segment of text that begins at an `@node' command and +continues until the next `@node' command. The definition of node is +different from that for chapter or section. A chapter may contain +sections and a section may contain subsections; but a node cannot +contain subnodes; the text of a node continues only until the next +`@node' command in the file. A node usually contains only one chapter +structuring command, the one that follows the `@node' line. On the +other hand, in printed output nodes are used only for cross references, +so a chapter or section may contain any number of nodes. Indeed, a +chapter usually contains several nodes, one for each section, +subsection, and subsubsection. + + To create a node, write an `@node' command at the beginning of a +line, and follow it with up to four arguments, separated by commas, on +the rest of the same line. The first argument is required; it is the +name of this node. The subsequent arguments are the names of the +`Next', `Previous', and `Up' pointers, in that order, and may be omitted +if your Texinfo document is hierarchically organized (*note makeinfo +Pointer Creation::). + + You may insert spaces before each name if you wish; the spaces are +ignored. You must write the name of the node and (if present) the names +of the `Next', `Previous', and `Up' pointers all on the same line. +Otherwise, the formatters fail. (*note info: (info)Top, for more +information about nodes in Info.) + + Usually, you write one of the chapter-structuring command lines +immediately after an `@node' line--for example, an `@section' or +`@subsection' line. (*Note Structuring Command Types::.) + + Note: The GNU Emacs Texinfo mode updating commands work only with + Texinfo files in which `@node' lines are followed by chapter + structuring lines. *Note Updating Requirements::. + + TeX uses `@node' lines to identify the names to use for cross +references. For this reason, you must write `@node' lines in a Texinfo +file that you intend to format for printing, even if you do not intend +to format it for Info. (Cross references, such as the one at the end +of this sentence, are made with `@xref' and related commands; see *Note +Cross References::.) + +* Menu: + +* Node Names:: How to choose node and pointer names. +* Writing a Node:: How to write an `@node' line. +* Node Line Tips:: Keep names short. +* Node Line Requirements:: Keep names unique, without @-commands. +* First Node:: How to write a `Top' node. +* makeinfo top command:: How to use the `@top' command. + + +File: texinfo.info, Node: Node Names, Next: Writing a Node, Up: node + +6.3.1 Choosing Node and Pointer Names +------------------------------------- + +The name of a node identifies the node. The pointers enable you to +reach other nodes and consist simply of the names of those nodes. + + Normally, a node's `Up' pointer contains the name of the node whose +menu mentions that node. The node's `Next' pointer contains the name +of the node that follows that node in that menu and its `Previous' +pointer contains the name of the node that precedes it in that menu. +When a node's `Previous' node is the same as its `Up' node, both node +pointers name the same node. + + Usually, the first node of a Texinfo file is the `Top' node, and its +`Up' and `Previous' pointers point to the `dir' file, which contains +the main menu for all of Info. + + The `Top' node itself contains the main or master menu for the manual. +Also, it is helpful to include a brief description of the manual in the +`Top' node. *Note First Node::, for information on how to write the +first node of a Texinfo file. + + Even when you explicitly specify all pointers, that does not mean you +can write the nodes in the Texinfo source file in an arbitrary order! +Because TeX processes the file sequentially, irrespective of node +pointers, you must write the nodes in the order you wish them to appear +in the printed output. + + +File: texinfo.info, Node: Writing a Node, Next: Node Line Tips, Prev: Node Names, Up: node + +6.3.2 How to Write an `@node' Line +---------------------------------- + +The easiest way to write an `@node' line is to write `@node' at the +beginning of a line and then the name of the node, like this: + + @node NODE-NAME + + If you are using GNU Emacs, you can use the update node commands +provided by Texinfo mode to insert the names of the pointers; or you +can leave the pointers out of the Texinfo file and let `makeinfo' +insert node pointers into the Info file it creates. (*Note Texinfo +Mode::, and *Note makeinfo Pointer Creation::.) + + Alternatively, you can insert the `Next', `Previous', and `Up' +pointers yourself. If you do this, you may find it helpful to use the +Texinfo mode keyboard command `C-c C-c n'. This command inserts +`@node' and a comment line listing the names of the pointers in their +proper order. The comment line helps you keep track of which arguments +are for which pointers. This comment line is especially useful if you +are not familiar with Texinfo. + + The template for a fully-written-out node line with `Next', +`Previous', and `Up' pointers looks like this: + + @node NODE-NAME, NEXT, PREVIOUS, UP + + If you wish, you can ignore `@node' lines altogether in your first +draft and then use the `texinfo-insert-node-lines' command to create +`@node' lines for you. However, we do not recommend this practice. It +is better to name the node itself at the same time that you write a +segment so you can easily make cross references. A large number of +cross references are an especially important feature of a good Info +file. + + After you have inserted an `@node' line, you should immediately write +an @-command for the chapter or section and insert its name. Next (and +this is important!), put in several index entries. Usually, you will +find at least two and often as many as four or five ways of referring +to the node in the index. Use them all. This will make it much easier +for people to find the node. + + +File: texinfo.info, Node: Node Line Tips, Next: Node Line Requirements, Prev: Writing a Node, Up: node + +6.3.3 `@node' Line Tips +----------------------- + +Here are three suggestions: + + * Try to pick node names that are informative but short. + + In the Info file, the file name, node name, and pointer names are + all inserted on one line, which may run into the right edge of the + window. (This does not cause a problem with Info, but is ugly.) + + * Try to pick node names that differ from each other near the + beginnings of their names. This way, it is easy to use automatic + name completion in Info. + + * By convention, node names are capitalized just as they would be for + section or chapter titles--initial and significant words are + capitalized; others are not. + + +File: texinfo.info, Node: Node Line Requirements, Next: First Node, Prev: Node Line Tips, Up: node + +6.3.4 `@node' Line Requirements +------------------------------- + +Here are several requirements for `@node' lines: + + * All the node names for a single Info file must be unique. + + Duplicates confuse the Info movement commands. This means, for + example, that if you end every chapter with a summary, you must + name each summary node differently. You cannot just call each one + "Summary". You may, however, duplicate the titles of chapters, + sections, and the like. Thus you can end each chapter in a book + with a section called "Summary", so long as the node names for + those sections are all different. + + * A pointer name must be the name of a node. + + The node to which a pointer points may come before or after the + node containing the pointer. + + * @-commands in node names are not allowed. This includes + punctuation characters that are escaped with a `@', such as `@' and + `{', and accent commands such as `@''. (For a few cases when this + is useful, Texinfo has limited support for using @-commands in + node names; see *Note Pointer Validation::.) Perhaps this + limitation will be removed some day. + + * Unfortunately, you cannot use periods, commas, colons or + parentheses within a node name; these confuse the Texinfo + processors. Perhaps this limitation will be removed some day, too. + + For example, the following is a section title in this manual: + + @code{@@unnumberedsec}, @code{@@appendixsec}, @code{@@heading} + + But the corresponding node name lacks the commas and the @'s: + + unnumberedsec appendixsec heading + + * Case is significant in node names. + + Spaces before and after names on the `@node' line are ignored, but + spaces "inside" a name are significant. For example: + + @node foo bar, + @node foo bar , + @node foo bar , + + all define the same node, `foo bar'. References to the node + should all use that name, without the leading or trailing spaces, + but with the internal spaces. + + +File: texinfo.info, Node: First Node, Next: makeinfo top command, Prev: Node Line Requirements, Up: node + +6.3.5 The First Node +-------------------- + +The first node of a Texinfo file is the "Top" node, except in an +included file (*note Include Files::). The Top node should contain a +short summary, copying permissions, and a master menu. *Note The Top +Node::, for more information on the Top node contents and examples. + + Here is a description of the node pointers to be used in the Top node: + + * The Top node (which must be named `top' or `Top') should have as + its `Up' node the name of a node in another file, where there is a + menu that leads to this file. Specify the file name in + parentheses. + + Usually, all Info files are installed in the same Info directory + tree; in this case, use `(dir)' as the parent of the Top node; + this is short for `(dir)top', and specifies the Top node in the + `dir' file, which contains the main menu for the Info system as a + whole. + + * On the other hand, do not define the `Previous' node of the Top + node to be `(dir)', as it causes confusing behavior for users: if + you are in the Top node and hits <DEL> to go backwards, you wind + up in the middle of the some other entry in the `dir' file, which + has nothing to do with what you were reading. + + * The `Next' node of the Top node should be the first chapter in your + document. + + + *Note Installing an Info File::, for more information about installing +an Info file in the `info' directory. + + For concreteness, here is an example with explicit pointers (which you +can maintain automatically with the texinfo mode commands): + + Or you can leave the pointers off entirely and let the tools +implicitly define them. This is recommended. Thus: + + @node Top + + +File: texinfo.info, Node: makeinfo top command, Prev: First Node, Up: node + +6.3.6 The `@top' Sectioning Command +----------------------------------- + +A special sectioning command, `@top' should be used with the `@node +Top' line. The `@top' sectioning command tells `makeinfo' that it +marks the `Top' node in the file. It provides the information that +`makeinfo' needs to insert node pointers automatically. Write the +`@top' command at the beginning of the line immediately following the +`@node Top' line. Write the title on the remaining part of the same +line as the `@top' command. + + In Info, the `@top' sectioning command causes the title to appear on +a line by itself, with a line of asterisks inserted underneath, as +other sectioning commands do. + + In TeX and `texinfo-format-buffer', the `@top' sectioning command is +merely a synonym for `@unnumbered'. Neither of these formatters +require an `@top' command, and do nothing special with it. You can use +`@chapter' or `@unnumbered' after the `@node Top' line when you use +these formatters. Also, you can use `@chapter' or `@unnumbered' when +you use the Texinfo updating commands to create or update pointers and +menus. + + Thus, in practice, a Top node starts like this: + + @node Top + @top Your Manual Title + + +File: texinfo.info, Node: makeinfo Pointer Creation, Next: anchor, Prev: node, Up: Nodes + +6.4 Creating Pointers with `makeinfo' +===================================== + +The `makeinfo' program has a feature for automatically determining node +pointers for a hierarchically organized document. + + When you take advantage of this feature, you do not need to write the +`Next', `Previous', and `Up' pointers after the name of a node. +However, you must write a sectioning command, such as `@chapter' or +`@section', on the line immediately following each truncated `@node' +line (except that comment lines may intervene). + + In addition, you must follow the `Top' `@node' line with a line +beginning with `@top' to mark the `Top' node in the file. *Note +`@top': makeinfo top. + + Finally, you must write the name of each node (except for the `Top' +node) in a menu that is one or more hierarchical levels above the +node's hierarchical level. + + This implicit node pointer insertion feature in `makeinfo' relieves +you from the need to update menus and pointers manually or with Texinfo +mode commands. (*Note Updating Nodes and Menus::.) + + In most cases, you will want to take advantage of this feature and not +redundantly specify node pointers. However, Texinfo documents are not +required to be organized hierarchically or in fact to contain +sectioning commands at all (for example, if you never intend the +document to be printed). The special procedure for handling the short +text before a menu (*note Menus::) also disables this feature, for that +group of nodes. In those cases, you will need to explicitly specify +the pointers. + + +File: texinfo.info, Node: anchor, Prev: makeinfo Pointer Creation, Up: Nodes + +6.5 `@anchor': Defining Arbitrary Cross-reference Targets +========================================================= + +An "anchor" is a position in your document, labeled so that +cross-references can refer to it, just as they can to nodes. You create +an anchor with the `@anchor' command, and give the label as a normal +brace-delimited argument. For example: + + This marks the @anchor{x-spot}spot. + ... + @xref{x-spot,,the spot}. + +produces: + + This marks the spot. + ... + See [the spot], page 1. + + As you can see, the `@anchor' command itself produces no output. +This example defines an anchor `x-spot' just before the word `spot'. +You can refer to it later with an `@xref' or other cross-reference +command, as shown. *Note Cross References::, for details on the +cross-reference commands. + + It is best to put `@anchor' commands just before the position you +wish to refer to; that way, the reader's eye is led on to the correct +text when they jump to the anchor. You can put the `@anchor' command +on a line by itself if that helps readability of the source. Spaces +are always ignored after `@anchor'. + + Anchor names and node names may not conflict. Anchors and nodes are +given similar treatment in some ways; for example, the `goto-node' +command in standalone Info takes either an anchor name or a node name as +an argument. (*Note goto-node: (info-stnd)goto-node.) + + +File: texinfo.info, Node: Menus, Next: Cross References, Prev: Nodes, Up: Top + +7 Menus +******* + +"Menus" contain pointers to subordinate nodes. In online output, you +use menus to go to such nodes. Menus have no effect in printed manuals +and do not appear in them. + + A node with a menu should not contain much text. If you find yourself +writing a lot of before a menu, we generally recommend moving most of +the text into a new subnode--all but a paragraph or two. Otherwise, a +reader with a terminal that displays only a few lines may miss the menu +and its associated text. As a practical matter, it is best to locate a +menu within 20 or so lines of the beginning of the node. + +* Menu: + +* Menu Location:: Menus go at the ends of short nodes. +* Writing a Menu:: What is a menu? +* Menu Parts:: A menu entry has three parts. +* Less Cluttered Menu Entry:: Two part menu entry. +* Menu Example:: Two and three part menu entries. +* Other Info Files:: How to refer to a different Info file. + + +File: texinfo.info, Node: Menu Location, Next: Writing a Menu, Up: Menus + +7.1 Menu Location +================= + +A menu must be located at the end of a node, without any regular text +or additional commands between the `@end menu' and the beginning of the +next node. (As a consequence, there may be at most one menu in a node.) + + This is actually a useful restriction, since a reader who uses the +menu could easily miss any such text. Technically, it is necessary +because in Info format, there is no marker for the end of a menu, so +Info-reading programs would have no way to know when the menu ends and +normal text resumes. + + Technically, menus can carry you to any node, regardless of the +structure of the document; even to nodes in a different Info file. +However, we do not recommend ever making use of this, because the +`makeinfo' implicit pointer creation feature (*note makeinfo Pointer +Creation::) and GNU Emacs Texinfo mode updating commands work only to +create menus of subordinate nodes in a hierarchically structured +document. Instead, use cross references to refer to arbitrary nodes. + + In the past, we recommended using a `@heading' command within an +`@ifinfo' conditional instead of the normal sectioning commands after a +very short node with a menu. This had the advantage of making the +printed output look better, because there was no very short text +between two headings on the page. But aside from not working with +`makeinfo''s implicit pointer creation, it also makes the XML output +incorrect, since it does not reflect the true document structure. So, +unfortunately we can no longer recommend this. + + +File: texinfo.info, Node: Writing a Menu, Next: Menu Parts, Prev: Menu Location, Up: Menus + +7.2 Writing a Menu +================== + +A menu consists of an `@menu' command on a line by itself followed by +menu entry lines or menu comment lines and then by an `@end menu' +command on a line by itself. + + A menu looks like this: + + @menu + Larger Units of Text + + * Files:: All about handling files. + * Multiples: Buffers. Multiple buffers; editing + several files at once. + @end menu + + In a menu, every line that begins with an `* ' is a "menu entry". +(Note the space after the asterisk.) A line that does not start with +an `* ' may also appear in a menu. Such a line is not a menu entry but +is a menu comment line that appears in the Info file. In the example +above, the line `Larger Units of Text' is a menu comment line; the two +lines starting with `* ' are menu entries. Space characters in a menu +are preserved as-is; this allows you to format the menu as you wish. + + +File: texinfo.info, Node: Menu Parts, Next: Less Cluttered Menu Entry, Prev: Writing a Menu, Up: Menus + +7.3 The Parts of a Menu +======================= + +A menu entry has three parts, only the second of which is required: + + 1. The menu entry name (optional). + + 2. The name of the node (required). + + 3. A description of the item (optional). + + The template for a menu entry looks like this: + + * MENU-ENTRY-NAME: NODE-NAME. DESCRIPTION + + Follow the menu entry name with a single colon and follow the node +name with tab, comma, period, or newline. + + In Info, a user selects a node with the `m' (`Info-menu') command. +The menu entry name is what the user types after the `m' command. + + The third part of a menu entry is a descriptive phrase or sentence. +Menu entry names and node names are often short; the description +explains to the reader what the node is about. A useful description +complements the node name rather than repeats it. The description, +which is optional, can spread over two or more lines; if it does, some +authors prefer to indent the second line while others prefer to align it +with the first (and all others). It's up to you. + + +File: texinfo.info, Node: Less Cluttered Menu Entry, Next: Menu Example, Prev: Menu Parts, Up: Menus + +7.4 Less Cluttered Menu Entry +============================= + +When the menu entry name and node name are the same, you can write the +name immediately after the asterisk and space at the beginning of the +line and follow the name with two colons. + + For example, write + + * Name:: DESCRIPTION + +instead of + + * Name: Name. DESCRIPTION + + You should use the node name for the menu entry name whenever +possible, since it reduces visual clutter in the menu. + + +File: texinfo.info, Node: Menu Example, Next: Other Info Files, Prev: Less Cluttered Menu Entry, Up: Menus + +7.5 A Menu Example +================== + +A menu looks like this in Texinfo: + + @menu + * menu entry name: Node name. A short description. + * Node name:: This form is preferred. + @end menu + +This produces: + + * menu: + + * menu entry name: Node name. A short description. + * Node name:: This form is preferred. + + Here is an example as you might see it in a Texinfo file: + + @menu + Larger Units of Text + + * Files:: All about handling files. + * Multiples: Buffers. Multiple buffers; editing + several files at once. + @end menu + +This produces: + + * menu: + Larger Units of Text + + * Files:: All about handling files. + * Multiples: Buffers. Multiple buffers; editing + several files at once. + + In this example, the menu has two entries. `Files' is both a menu +entry name and the name of the node referred to by that name. +`Multiples' is the menu entry name; it refers to the node named +`Buffers'. The line `Larger Units of Text' is a comment; it appears in +the menu, but is not an entry. + + Since no file name is specified with either `Files' or `Buffers', +they must be the names of nodes in the same Info file (*note Referring +to Other Info Files: Other Info Files.). + + +File: texinfo.info, Node: Other Info Files, Prev: Menu Example, Up: Menus + +7.6 Referring to Other Info Files +================================= + +You can create a menu entry that enables a reader in Info to go to a +node in another Info file by writing the file name in parentheses just +before the node name. In this case, you should use the three-part menu +entry format, which saves the reader from having to type the file name. + + The format looks like this: + + @menu + * FIRST-ENTRY-NAME:(FILENAME)NODENAME. DESCRIPTION + * SECOND-ENTRY-NAME:(FILENAME)SECOND-NODE. DESCRIPTION + @end menu + + For example, to refer directly to the `Outlining' and `Rebinding' +nodes in the `Emacs Manual', you would write a menu like this: + + @menu + * Outlining: (emacs)Outline Mode. The major mode for + editing outlines. + * Rebinding: (emacs)Rebinding. How to redefine the + meaning of a key. + @end menu + + If you do not list the node name, but only name the file, then Info +presumes that you are referring to the `Top' node. + + The `dir' file that contains the main menu for Info has menu entries +that list only file names. These take you directly to the `Top' nodes +of each Info document. (*Note Installing an Info File::.) + + For example: + + * Info: (info). Documentation browsing system. + * Emacs: (emacs). The extensible, self-documenting + text editor. + +(The `dir' top level directory for the Info system is an Info file, not +a Texinfo file, but a menu entry looks the same in both types of file.) + + The GNU Emacs Texinfo mode menu updating commands only work with nodes +within the current buffer, so you cannot use them to create menus that +refer to other files. You must write such menus by hand. + + +File: texinfo.info, Node: Cross References, Next: Marking Text, Prev: Menus, Up: Top + +8 Cross References +****************** + +"Cross references" are used to refer the reader to other parts of the +same or different Texinfo files. In Texinfo, nodes and anchors are the +places to which cross references can refer. + +* Menu: + +* References:: What cross references are for. +* Cross Reference Commands:: A summary of the different commands. +* Cross Reference Parts:: A cross reference has several parts. +* xref:: Begin a reference with `See' ... +* Top Node Naming:: How to refer to the beginning of another file. +* ref:: A reference for the last part of a sentence. +* pxref:: How to write a parenthetical cross reference. +* inforef:: How to refer to an Info-only file. +* uref:: How to refer to a uniform resource locator. + + +File: texinfo.info, Node: References, Next: Cross Reference Commands, Up: Cross References + +8.1 What References Are For +=========================== + +Often, but not always, a printed document should be designed so that it +can be read sequentially. People tire of flipping back and forth to +find information that should be presented to them as they need it. + + However, in any document, some information will be too detailed for +the current context, or incidental to it; use cross references to +provide access to such information. Also, an online help system or a +reference manual is not like a novel; few read such documents in +sequence from beginning to end. Instead, people look up what they +need. For this reason, such creations should contain many cross +references to help readers find other information that they may not +have read. + + In a printed manual, a cross reference results in a page reference, +unless it is to another manual altogether, in which case the cross +reference names that manual. + + In Info, a cross reference results in an entry that you can follow +using the Info `f' command. (*note Following cross-references: +(info)Help-Xref.) + + The various cross reference commands use nodes (or anchors, *note +`@anchor': anchor.) to define cross reference locations. This is +evident in Info, in which a cross reference takes you to the specified +location. TeX also uses nodes to define cross reference locations, but +the action is less obvious. When TeX generates a DVI file, it records +each node's page number and uses the page numbers in making references. +Thus, if you are writing a manual that will only be printed, and will +not be used online, you must nonetheless write `@node' lines to name +the places to which you make cross references. + + +File: texinfo.info, Node: Cross Reference Commands, Next: Cross Reference Parts, Prev: References, Up: Cross References + +8.2 Different Cross Reference Commands +====================================== + +There are four different cross reference commands: + +`@xref' + Used to start a sentence in the printed manual saying `See ...' + or an Info cross-reference saying `*Note NAME: NODE.'. + +`@ref' + Used within or, more often, at the end of a sentence; same as + `@xref' for Info; produces just the reference in the printed + manual without a preceding `See'. + +`@pxref' + Used within parentheses to make a reference that suits both an Info + file and a printed book. Starts with a lower case `see' within the + printed manual. (`p' is for `parenthesis'.) + +`@inforef' + Used to make a reference to an Info file for which there is no + printed manual. + +(The `@cite' command is used to make references to books and manuals +for which there is no corresponding Info file and, therefore, no node +to which to point. *Note `@cite': cite.) + + +File: texinfo.info, Node: Cross Reference Parts, Next: xref, Prev: Cross Reference Commands, Up: Cross References + +8.3 Parts of a Cross Reference +============================== + +A cross reference command requires only one argument, which is the name +of the node to which it refers. But a cross reference command may +contain up to four additional arguments. By using these arguments, you +can provide a cross reference name for Info, a topic description or +section title for the printed output, the name of a different Info +file, and the name of a different printed manual. + + Here is a simple cross reference example: + + @xref{Node name}. + +which produces + + *Note Node name::. + +and + + See Section NNN [Node name], page PPP. + + Here is an example of a full five-part cross reference: + + @xref{Node name, Cross Reference Name, Particular Topic, + info-file-name, A Printed Manual}, for details. + +which produces + + *Note Cross Reference Name: (info-file-name)Node name, + for details. + +in Info and + + See section "Particular Topic" in A Printed Manual, for details. + +in a printed book. + + The five possible arguments for a cross reference are: + + 1. The node or anchor name (required). This is the location to which + the cross reference takes you. In a printed document, the + location of the node provides the page reference only for + references within the same document. + + 2. The cross reference name for the Info reference, if it is to be + different from the node name. If you include this argument, it + becomes the first part of the cross reference. It is usually + omitted. + + 3. A topic description or section name. Often, this is the title of + the section. This is used as the name of the reference in the + printed manual. If omitted, the node name is used. + + 4. The name of the Info file in which the reference is located, if it + is different from the current file. You need not include any + `.info' suffix on the file name, since Info readers try appending + it automatically. + + 5. The name of a printed manual from a different Texinfo file. + + The template for a full five argument cross reference looks like this: + + @xref{NODE-NAME, CROSS-REFERENCE-NAME, TITLE-OR-TOPIC, + INFO-FILE-NAME, PRINTED-MANUAL-TITLE}. + + Cross references with one, two, three, four, and five arguments are +described separately following the description of `@xref'. + + Write a node name in a cross reference in exactly the same way as in +the `@node' line, including the same capitalization; otherwise, the +formatters may not find the reference. + + You can write cross reference commands within a paragraph, but note +how Info and TeX format the output of each of the various commands: +write `@xref' at the beginning of a sentence; write `@pxref' only +within parentheses, and so on. + + +File: texinfo.info, Node: xref, Next: Top Node Naming, Prev: Cross Reference Parts, Up: Cross References + +8.4 `@xref' +=========== + +The `@xref' command generates a cross reference for the beginning of a +sentence. The Info formatting commands convert it into an Info cross +reference, which the Info `f' command can use to bring you directly to +another node. The TeX typesetting commands convert it into a page +reference, or a reference to another book or manual. + +* Menu: + +* Reference Syntax:: What a reference looks like and requires. +* One Argument:: `@xref' with one argument. +* Two Arguments:: `@xref' with two arguments. +* Three Arguments:: `@xref' with three arguments. +* Four and Five Arguments:: `@xref' with four and five arguments. + + +File: texinfo.info, Node: Reference Syntax, Next: One Argument, Up: xref + +8.4.1 What a Reference Looks Like and Requires +---------------------------------------------- + +Most often, an Info cross reference looks like this: + + *Note NODE-NAME::. + +or like this + + *Note CROSS-REFERENCE-NAME: NODE-NAME. + +In TeX, a cross reference looks like this: + + See Section SECTION-NUMBER [NODE-NAME], page PAGE. + +or like this + + See Section SECTION-NUMBER [TITLE-OR-TOPIC], page PAGE. + + The `@xref' command does not generate a period or comma to end the +cross reference in either the Info file or the printed output. You +must write that period or comma yourself; otherwise, Info will not +recognize the end of the reference. (The `@pxref' command works +differently. *Note `@pxref': pxref.) + + Caution: A period or comma *must* follow the closing brace of an + `@xref'. It is required to terminate the cross reference. This + period or comma will appear in the output, both in the Info file + and in the printed manual. + + `@xref' must refer to an Info node by name. Use `@node' to define +the node (*note Writing a Node::). + + `@xref' is followed by several arguments inside braces, separated by +commas. Whitespace before and after these commas is ignored. + + A cross reference requires only the name of a node; but it may contain +up to four additional arguments. Each of these variations produces a +cross reference that looks somewhat different. + + Note: Commas separate arguments in a cross reference; avoid + including them in the title or other part lest the formatters + mistake them for separators. + + +File: texinfo.info, Node: One Argument, Next: Two Arguments, Prev: Reference Syntax, Up: xref + +8.4.2 `@xref' with One Argument +------------------------------- + +The simplest form of `@xref' takes one argument, the name of another +node in the same Info file. The Info formatters produce output that +the Info readers can use to jump to the reference; TeX produces output +that specifies the page and section number for you. + +For example, + + @xref{Tropical Storms}. + +produces + + *Note Tropical Storms::. + +and + + See Section 3.1 [Tropical Storms], page 24. + +(Note that in the preceding example the closing brace is followed by a +period.) + + You can write a clause after the cross reference, like this: + + @xref{Tropical Storms}, for more info. + +which produces + + *Note Tropical Storms::, for more info. + +and + + See Section 3.1 [Tropical Storms], page 24, for more info. + +(Note that in the preceding example the closing brace is followed by a +comma, and then by the clause, which is followed by a period.) + + +File: texinfo.info, Node: Two Arguments, Next: Three Arguments, Prev: One Argument, Up: xref + +8.4.3 `@xref' with Two Arguments +-------------------------------- + +With two arguments, the second is used as the name of the Info cross +reference, while the first is still the name of the node to which the +cross reference points. + +The template is like this: + + @xref{NODE-NAME, CROSS-REFERENCE-NAME}. + +For example, + + @xref{Electrical Effects, Lightning}. + +produces: + + *Note Lightning: Electrical Effects. + +and + + See Section 5.2 [Electrical Effects], page 57. + +(Note that in the preceding example the closing brace is followed by a +period; and that the node name is printed, not the cross reference +name.) + + You can write a clause after the cross reference, like this: + + @xref{Electrical Effects, Lightning}, for more info. + +which produces + *Note Lightning: Electrical Effects, for more info. + +and + + See Section 5.2 [Electrical Effects], page 57, for more info. + +(Note that in the preceding example the closing brace is followed by a +comma, and then by the clause, which is followed by a period.) + + +File: texinfo.info, Node: Three Arguments, Next: Four and Five Arguments, Prev: Two Arguments, Up: xref + +8.4.4 `@xref' with Three Arguments +---------------------------------- + +A third argument replaces the node name in the TeX output. The third +argument should be the name of the section in the printed output, or +else state the topic discussed by that section. Often, you will want to +use initial upper case letters so it will be easier to read when the +reference is printed. Use a third argument when the node name is +unsuitable because of syntax or meaning. + + Remember to avoid placing a comma within the title or topic section of +a cross reference, or within any other section. The formatters divide +cross references into arguments according to the commas; a comma within +a title or other section will divide it into two arguments. In a +reference, you need to write a title such as "Clouds, Mist, and Fog" +without the commas. + + Also, remember to write a comma or period after the closing brace of +an `@xref' to terminate the cross reference. In the following +examples, a clause follows a terminating comma. + +The template is like this: + + @xref{NODE-NAME, CROSS-REFERENCE-NAME, TITLE-OR-TOPIC}. + +For example, + + @xref{Electrical Effects, Lightning, Thunder and Lightning}, + for details. + +produces + + *Note Lightning: Electrical Effects, for details. + +and + + See Section 5.2 [Thunder and Lightning], page 57, for details. + + If a third argument is given and the second one is empty, then the +third argument serves both. (Note how two commas, side by side, mark +the empty second argument.) + + @xref{Electrical Effects, , Thunder and Lightning}, + for details. + +produces + + *Note Thunder and Lightning: Electrical Effects, for details. + +and + + See Section 5.2 [Thunder and Lightning], page 57, for details. + + As a practical matter, it is often best to write cross references with +just the first argument if the node name and the section title are the +same, and with the first and third arguments if the node name and title +are different. + + Here are several examples from `The GNU Awk User's Guide': + + @xref{Sample Program}. + @xref{Glossary}. + @xref{Case-sensitivity, ,Case-sensitivity in Matching}. + @xref{Close Output, , Closing Output Files and Pipes}, + for more information. + @xref{Regexp, , Regular Expressions as Patterns}. + + +File: texinfo.info, Node: Four and Five Arguments, Prev: Three Arguments, Up: xref + +8.4.5 `@xref' with Four and Five Arguments +------------------------------------------ + +In a cross reference, a fourth argument specifies the name of another +Info file, different from the file in which the reference appears, and +a fifth argument specifies its title as a printed manual. + + Remember that a comma or period must follow the closing brace of an +`@xref' command to terminate the cross reference. In the following +examples, a clause follows a terminating comma. + +The template is: + + @xref{NODE-NAME, CROSS-REFERENCE-NAME, TITLE-OR-TOPIC, + INFO-FILE-NAME, PRINTED-MANUAL-TITLE}. + +For example, + + @xref{Electrical Effects, Lightning, Thunder and Lightning, + weather, An Introduction to Meteorology}, for details. + +produces + + *Note Lightning: (weather)Electrical Effects, for details. + +The name of the Info file is enclosed in parentheses and precedes the +name of the node. + +In a printed manual, the reference looks like this: + + See section "Thunder and Lightning" in An Introduction to + Meteorology, for details. + +The title of the printed manual is typeset in italics; and the +reference lacks a page number since TeX cannot know to which page a +reference refers when that reference is to another manual. + + Often, you will leave out the second argument when you use the long +version of `@xref'. In this case, the third argument, the topic +description, will be used as the cross reference name in Info. + +The template looks like this: + + @xref{NODE-NAME, , TITLE-OR-TOPIC, INFO-FILE-NAME, + PRINTED-MANUAL-TITLE}, for details. + +which produces + + *Note TITLE-OR-TOPIC: (INFO-FILE-NAME)NODE-NAME, for details. + +and + + See section TITLE-OR-TOPIC in PRINTED-MANUAL-TITLE, for details. + +For example, + + @xref{Electrical Effects, , Thunder and Lightning, + weather, An Introduction to Meteorology}, for details. + +produces + + *Note Thunder and Lightning: (weather)Electrical Effects, + for details. + +and + + See section "Thunder and Lightning" in An Introduction to + Meteorology, for details. + + On rare occasions, you may want to refer to another Info file that is +within a single printed manual--when multiple Texinfo files are +incorporated into the same TeX run but make separate Info files. In +this case, you need to specify only the fourth argument, and not the +fifth. + + +File: texinfo.info, Node: Top Node Naming, Next: ref, Prev: xref, Up: Cross References + +8.5 Naming a `Top' Node +======================= + +In a cross reference, you must always name a node. This means that in +order to refer to a whole manual, you must identify the `Top' node by +writing it as the first argument to the `@xref' command. (This is +different from the way you write a menu entry; see *Note Referring to +Other Info Files: Other Info Files.) At the same time, to provide a +meaningful section topic or title in the printed cross reference +(instead of the word `Top'), you must write an appropriate entry for +the third argument to the `@xref' command. + +Thus, to make a cross reference to `The GNU Make Manual', write: + + @xref{Top, , Overview, make, The GNU Make Manual}. + +which produces + + *Note Overview: (make)Top. + +and + + See section "Overview" in The GNU Make Manual. + +In this example, `Top' is the name of the first node, and `Overview' is +the name of the first section of the manual. + + +File: texinfo.info, Node: ref, Next: pxref, Prev: Top Node Naming, Up: Cross References + +8.6 `@ref' +========== + +`@ref' is nearly the same as `@xref' except that it does not generate a +`See' in the printed output, just the reference itself. This makes it +useful as the last part of a sentence. + +For example, + + For more information, see @ref{Hurricanes}. + +produces (in Info): + + For more information, see *Note Hurricanes::. + +and (in printed output): + + For more information, see Section 8.2 [Hurricanes], page 123. + + The `@ref' command sometimes tempts writers to express themselves in +a manner that is suitable for a printed manual but looks awkward in the +Info format. Bear in mind that your audience will be using both the +printed and the Info format. For example: + + Sea surges are described in @ref{Hurricanes}. + +looks ok in the printed output: + + Sea surges are described in Section 6.7 [Hurricanes], page 72. + +but is awkward to read in Info: + + Sea surges are described in *Note Hurricanes::. + + Caution: You should write a period or comma immediately after an + `@ref' command with two or more arguments. Otherwise, Info will + generate a (grammatically incorrect) period, just so the + cross-reference doesn't fail completely. + + As a general rule, you should write a period or comma after every +`@ref' command. This works best in both the printed and the Info +output. + + +File: texinfo.info, Node: pxref, Next: inforef, Prev: ref, Up: Cross References + +8.7 `@pxref' +============ + +The parenthetical reference command, `@pxref', is nearly the same as +`@xref', but you use it _only_ inside parentheses and you do _not_ type +a comma or period after the command's closing brace. The command +differs from `@xref' in two ways: + + 1. TeX typesets the reference for the printed manual with a lower case + `see' rather than an upper case `See'. + + 2. The Info formatting commands automatically end the reference with a + closing colon or period. + + Because one type of formatting automatically inserts closing +punctuation and the other does not, you should use `@pxref' _only_ +inside parentheses as part of another sentence. Also, you yourself +should not insert punctuation after the reference, as you do with +`@xref'. + + `@pxref' is designed so that the output looks right and works right +between parentheses both in printed output and in an Info file. In a +printed manual, a closing comma or period should not follow a cross +reference within parentheses; such punctuation is wrong. But in an +Info file, suitable closing punctuation must follow the cross reference +so Info can recognize its end. `@pxref' spares you the need to use +complicated methods to put a terminator into one form of the output and +not the other. + +With one argument, a parenthetical cross reference looks like this: + + ... storms cause flooding (@pxref{Hurricanes}) ... + +which produces + + ... storms cause flooding (*Note Hurricanes::) ... + +and + + ... storms cause flooding (see Section 6.7 [Hurricanes], page 72) + ... + + With two arguments, a parenthetical cross reference has this template: + + ... (@pxref{NODE-NAME, CROSS-REFERENCE-NAME}) ... + +which produces + + ... (*Note CROSS-REFERENCE-NAME: NODE-NAME.) ... + +and + + ... (see Section NNN [NODE-NAME], page PPP) ... + + `@pxref' can be used with up to five arguments just like `@xref' +(*note `@xref': xref.). + + Caution: Use `@pxref' only as a parenthetical reference. Do not + try to use `@pxref' as a clause in a sentence. It will look bad + in either the Info file, the printed output, or both. + + Parenthetical cross references look best at the ends of sentences. +Although they technically work in the middle of a sentence, that +location breaks up the flow of reading. + + +File: texinfo.info, Node: inforef, Next: uref, Prev: pxref, Up: Cross References + +8.8 `@inforef' +============== + +`@inforef' is used for cross references to Info files for which there +are no printed manuals. Even in a printed manual, `@inforef' generates +a reference directing the user to look in an Info file. + + The command takes either two or three arguments, in the following +order: + + 1. The node name. + + 2. The cross reference name (optional). + + 3. The Info file name. + +Separate the arguments with commas, as with `@xref'. Also, you must +terminate the reference with a comma or period after the `}', as you do +with `@xref'. + +The template is: + + @inforef{NODE-NAME, CROSS-REFERENCE-NAME, INFO-FILE-NAME}, + +Thus, + + @inforef{Advanced, Advanced Info commands, info}, + for more information. + +produces + + *Note Advanced Info commands: (info)Advanced, + for more information. + +and + + See Info file `info', node `Advanced', for more information. + +Similarly, + + @inforef{Advanced, , info}, for more information. + +produces + + *Note (info)Advanced::, for more information. + +and + + See Info file `info', node `Advanced', for more information. + + The converse of `@inforef' is `@cite', which is used to refer to +printed works for which no Info form exists. *Note `@cite': cite. + + +File: texinfo.info, Node: uref, Prev: inforef, Up: Cross References + +8.9 `@url', `@uref{URL[, TEXT][, REPLACEMENT]}' +=============================================== + +`@uref' produces a reference to a uniform resource locator (url). It +takes one mandatory argument, the url, and two optional arguments which +control the text that is displayed. In HTML output, `@uref' produces a +link you can follow. + + `@url' is a synonym for `@uref'. Originally, `@url' had the meaning +of `@indicateurl' (*note `@indicateurl': indicateurl.), but in actual +practice it was misused the vast majority of the time. So we've +changed the definitions. + + The second argument, if specified, is the text to display (the default +is the url itself); in Info and DVI output, but not in HTML output, the +url is also output. + + The third argument, if specified, is the text to display, but in this +case the url is _not_ output in any format. This is useful when the +text is already sufficiently referential, as in a man page. If the +third argument is given, the second argument is ignored. + + If the url is long enough to cause problems with line breaking, you +may find it useful to insert `@/' at places where a line break would be +acceptable (after `/' characters, for instance). This tells TeX to +allow (but not force) a line break at those places. *Note Line +Breaks::. + + Here is an example of the simple one argument form, where the url is +both the target and the text of the link: + + The official GNU ftp site is @uref{ftp://ftp.gnu.org/gnu}. + +produces: + The official GNU ftp site is `ftp://ftp.gnu.org/gnu'. + + An example of the two-argument form: + The official @uref{ftp://ftp.gnu.org/gnu, GNU ftp site} + holds programs and texts. + +produces: + The official GNU ftp site (ftp://ftp.gnu.org/gnu) + holds programs and texts. + +that is, the Info output is this: + The official GNU ftp site (ftp://ftp.gnu.org/gnu) + holds programs and texts. + +and the HTML output is this: + The official <a href="ftp://ftp.gnu.org/gnu">GNU ftp site</a> + holds programs and texts. + + An example of the three-argument form: + The @uref{/man.cgi/1/ls,,ls(1)} program ... + +produces: + The ls(1) program ... + +but with HTML: + The <a href="/man.cgi/1/ls">ls(1)</a> program ... + + To merely indicate a url without creating a link people can follow, +use `@indicateurl' (*note `@indicateurl': indicateurl.). + + Some people prefer to display url's in the unambiguous format: + + <URL:http://HOST/PATH> + +You can use this form in the input file if you wish. We feel it's not +necessary to include the `<URL:' and `>' in the output, since any +software that tries to detect url's in text already has to detect them +without the `<URL:' to be useful. + + +File: texinfo.info, Node: Marking Text, Next: Quotations and Examples, Prev: Cross References, Up: Top + +9 Marking Words and Phrases +*************************** + +In Texinfo, you can mark words and phrases in a variety of ways. The +Texinfo formatters use this information to determine how to highlight +the text. You can specify, for example, whether a word or phrase is a +defining occurrence, a metasyntactic variable, or a symbol used in a +program. Also, you can emphasize text, in several different ways. + +* Menu: + +* Indicating:: How to indicate definitions, files, etc. +* Emphasis:: How to emphasize text. + + +File: texinfo.info, Node: Indicating, Next: Emphasis, Up: Marking Text + +9.1 Indicating Definitions, Commands, etc. +========================================== + +Texinfo has commands for indicating just what kind of object a piece of +text refers to. For example, metasyntactic variables are marked by +`@var', and code by `@code'. Since the pieces of text are labelled by +commands that tell what kind of object they are, it is easy to change +the way the Texinfo formatters prepare such text. (Texinfo is an +_intentional_ formatting language rather than a _typesetting_ +formatting language.) + + For example, in a printed manual, code is usually illustrated in a +typewriter font; `@code' tells TeX to typeset this text in this font. +But it would be easy to change the way TeX highlights code to use +another font, and this change would not affect how keystroke examples +are highlighted. If straight typesetting commands were used in the body +of the file and you wanted to make a change, you would need to check +every single occurrence to make sure that you were changing code and +not something else that should not be changed. + +* Menu: + +* Useful Highlighting:: Highlighting provides useful information. +* code:: Indicating program code. +* kbd:: Showing keyboard input. +* key:: Specifying keys. +* samp:: A literal sequence of characters. +* verb:: A verbatim sequence of characters. +* var:: Indicating metasyntactic variables. +* env:: Indicating environment variables. +* file:: Indicating file names. +* command:: Indicating command names. +* option:: Indicating option names. +* dfn:: Specifying definitions. +* cite:: Referring to books not in the Info system. +* acronym:: Indicating acronyms. +* indicateurl:: Indicating a World Wide Web reference. +* email:: Indicating an electronic mail address. + + +File: texinfo.info, Node: Useful Highlighting, Next: code, Up: Indicating + +9.1.1 Highlighting Commands are Useful +-------------------------------------- + +The highlighting commands can be used to extract useful information +from the file, such as lists of functions or file names. It is +possible, for example, to write a program in Emacs Lisp (or a keyboard +macro) to insert an index entry after every paragraph that contains +words or phrases marked by a specified command. You could do this to +construct an index of functions if you had not already made the entries. + + The commands serve a variety of purposes: + +`@code{SAMPLE-CODE}' + Indicate text that is a literal example of a piece of a program. + +`@kbd{KEYBOARD-CHARACTERS}' + Indicate keyboard input. + +`@key{KEY-NAME}' + Indicate the conventional name for a key on a keyboard. + +`@samp{TEXT}' + Indicate text that is a literal example of a sequence of + characters. + +`@var{METASYNTACTIC-VARIABLE}' + Indicate a metasyntactic variable. + +`@env{ENVIRONMENT-VARIABLE}' + Indicate an environment variable. + +`@file{FILE-NAME}' + Indicate the name of a file. + +`@command{COMMAND-NAME}' + Indicate the name of a command. + +`@option{OPTION}' + Indicate a command-line option. + +`@dfn{TERM}' + Indicate the introductory or defining use of a term. + +`@cite{REFERENCE}' + Indicate the name of a book. + +`@acronym{ACRONYM}' + Indicate an acronym. + +`@indicateurl{UNIFORM-RESOURCE-LOCATOR}' + Indicate a uniform resource locator for the World Wide Web. + +`@email{EMAIL-ADDRESS[, DISPLAYED-TEXT]}' + Indicate an electronic mail address. + + + +File: texinfo.info, Node: code, Next: kbd, Prev: Useful Highlighting, Up: Indicating + +9.1.2 `@code'{SAMPLE-CODE} +-------------------------- + +Use the `@code' command to indicate text that is a piece of a program +and which consists of entire syntactic tokens. Enclose the text in +braces. + + Thus, you should use `@code' for an expression in a program, for the +name of a variable or function used in a program, or for a keyword in a +programming language. + + Use `@code' for command names in languages that resemble programming +languages, such as Texinfo. For example, `@code' and `@samp' are +produced by writing `@code{@@code}' and `@code{@@samp}' in the Texinfo +source, respectively. + + It is incorrect to alter the case of a word inside an `@code' command +when it appears at the beginning of a sentence. Most computer +languages are case sensitive. In C, for example, `Printf' is different +from the identifier `printf', and most likely is a misspelling of it. +Even in languages which are not case sensitive, it is confusing to a +human reader to see identifiers spelled in different ways. Pick one +spelling and always use that. If you do not want to start a sentence +with a command name written all in lower case, you should rearrange the +sentence. + + In the printed manual, `@code' causes TeX to typeset the argument in +a typewriter face. In the Info file, it causes the Info formatting +commands to use single quotation marks around the text. + + For example, + + The function returns @code{nil}. + +produces this in the printed manual: + + The function returns `nil'. + + Here are some cases for which it is preferable not to use `@code': + + * For shell command names such as `ls' (use `@command'). + + * For shell options such as `-c' when such options stand alone (use + `@option'). + + * Also, an entire shell command often looks better if written using + `@samp' rather than `@code'. In this case, the rule is to choose + the more pleasing format. + + * For environment variable such as `TEXINPUTS' (use `@env'). + + * For a string of characters shorter than a syntactic token. For + example, if you are writing about `goto-ch', which is just a part + of the name for the `goto-char' Emacs Lisp function, you should use + `@samp'. + + * In general, when writing about the characters used in a token; for + example, do not use `@code' when you are explaining what letters + or printable symbols can be used in the names of functions. (Use + `@samp'.) Also, you should not use `@code' to mark text that is + considered input to programs unless the input is written in a + language that is like a programming language. For example, you + should not use `@code' for the keystroke commands of GNU Emacs (use + `@kbd' instead) although you may use `@code' for the names of the + Emacs Lisp functions that the keystroke commands invoke. + + + Since `@command', `@option', and `@env' were introduced relatively +recently, it is acceptable to use `@code' or `@samp' for command names, +options, and environment variables. The new commands allow you to +express the markup more precisely, but there is no real harm in using +the older commands, and of course the long-standing manuals do so. + + +File: texinfo.info, Node: kbd, Next: key, Prev: code, Up: Indicating + +9.1.3 `@kbd'{KEYBOARD-CHARACTERS} +--------------------------------- + +Use the `@kbd' command for characters of input to be typed by users. +For example, to refer to the characters `M-a', write: + + @kbd{M-a} + +and to refer to the characters `M-x shell', write: + + @kbd{M-x shell} + + By default, the `@kbd' command produces a different font (slanted +typewriter instead of normal typewriter) in the printed manual, so +users can distinguish the characters that they are supposed to type +from those that the computer outputs. + + In Info output, `@kbd' is usually the same as `@code', producing +`quotes' around its argument. However, in typewriter-like contexts +such as the `@example' environment (*note example::) and `@code' +command itself, the quotes are omitted, since Info format cannot use +distinguishing fonts. + + Since the usage of `@kbd' varies from manual to manual, you can +control the font switching with the `@kbdinputstyle' command. This +command has no effect on Info output. Write this command at the +beginning of a line with a single word as an argument, one of the +following: + +`code' + Always use the same font for `@kbd' as `@code'. + +`example' + Use the distinguishing font for `@kbd' only in `@example' and + similar environments. + +`distinct' + (the default) Always use the distinguishing font for `@kbd'. + + You can embed another @-command inside the braces of an `@kbd' +command. Here, for example, is the way to describe a command that +would be described more verbosely as "press the `r' key and then press +the <RETURN> key": + + @kbd{r @key{RET}} + +This produces: `r <RET>'. (The present manual accepts the default for +`@kbdinputstyle'.) + + You also use the `@kbd' command if you are spelling out the letters +you type; for example: + + To give the @code{logout} command, + type the characters @kbd{l o g o u t @key{RET}}. + +This produces: + + To give the `logout' command, type the characters `l o g o u t + <RET>'. + + (Also, this example shows that you can add spaces for clarity. If you +explicitly want to mention a space character as one of the characters of +input, write `@key{SPC}' for it.) + + +File: texinfo.info, Node: key, Next: samp, Prev: kbd, Up: Indicating + +9.1.4 `@key'{KEY-NAME} +---------------------- + +Use the `@key' command for the conventional name for a key on a +keyboard, as in: + + @key{RET} + + You can use the `@key' command within the argument of an `@kbd' +command when the sequence of characters to be typed includes one or +more keys that are described by name. + + For example, to produce `C-x <ESC>' you would type: + + @kbd{C-x @key{ESC}} + + Here is a list of the recommended names for keys: + + SPC + Space + + RET + Return + + LFD + Linefeed (however, since most keyboards nowadays do not have + a Linefeed key, it might be better to call this character + `C-j'. + + TAB + Tab + + BS + Backspace + + ESC + Escape + + DEL + Delete + + SHIFT + Shift + + CTRL + Control + + META + Meta + + There are subtleties to handling words like `meta' or `ctrl' that are +names of modifier keys. When mentioning a character in which the +modifier key is used, such as `Meta-a', use the `@kbd' command alone; +do not use the `@key' command; but when you are referring to the +modifier key in isolation, use the `@key' command. For example, write +`@kbd{Meta-a}' to produce `Meta-a' and `@key{META}' to produce <META>. + + +File: texinfo.info, Node: samp, Next: verb, Prev: key, Up: Indicating + +9.1.5 `@samp'{TEXT} +------------------- + +Use the `@samp' command to indicate text that is a literal example or +`sample' of a sequence of characters in a file, string, pattern, etc. +Enclose the text in braces. The argument appears within single +quotation marks in both the Info file and the printed manual; in +addition, it is printed in a fixed-width font. + + To match @samp{foo} at the end of the line, + use the regexp @samp{foo$}. + +produces + + To match `foo' at the end of the line, use the regexp `foo$'. + + Any time you are referring to single characters, you should use +`@samp' unless `@kbd' or `@key' is more appropriate. Also, you may use +`@samp' for entire statements in C and for entire shell commands--in +this case, `@samp' often looks better than `@code'. Basically, `@samp' +is a catchall for whatever is not covered by `@code', `@kbd', or `@key'. + + Only include punctuation marks within braces if they are part of the +string you are specifying. Write punctuation marks outside the braces +if those punctuation marks are part of the English text that surrounds +the string. In the following sentence, for example, the commas and +period are outside of the braces: + + In English, the vowels are @samp{a}, @samp{e}, + @samp{i}, @samp{o}, @samp{u}, and sometimes + @samp{y}. + +This produces: + + In English, the vowels are `a', `e', `i', `o', `u', and sometimes + `y'. + + +File: texinfo.info, Node: verb, Next: var, Prev: samp, Up: Indicating + +9.1.6 `@verb'{<char>TEXT<char>} +------------------------------- + +Use the `@verb' command to print a verbatim sequence of characters. + + Like LaTeX's `\verb' command, the verbatim text can be quoted using +any unique delimiter character. Enclose the verbatim text, including +the delimiters, in braces. Text is printed in a fixed-width font: + + How many @verb{|@|}-escapes does one need to print this + @verb{.@a @b @c.} string or @verb{+@'e?`!`{}\+} this? + +produces + + How many @-escapes does one need to print this + @a @b @c string or these @'e?`{}!`\ this? + + This is in contrast to `@samp' (see the previous section), `@code', +and similar commands; in those cases, the argument is normal Texinfo +text, where the three characters `@{}' are special. With `@verb', +nothing is special except the delimiter character you choose. + + It is not reliable to use `@verb' inside other Texinfo constructs. + + +File: texinfo.info, Node: var, Next: env, Prev: verb, Up: Indicating + +9.1.7 `@var'{METASYNTACTIC-VARIABLE} +------------------------------------ + +Use the `@var' command to indicate metasyntactic variables. A +"metasyntactic variable" is something that stands for another piece of +text. For example, you should use a metasyntactic variable in the +documentation of a function to describe the arguments that are passed +to that function. + + Do not use `@var' for the names of particular variables in +programming languages. These are specific names from a program, so +`@code' is correct for them (*note code::). For example, the Emacs +Lisp variable `texinfo-tex-command' is not a metasyntactic variable; it +is properly formatted using `@code'. + + Do not use `@var' for environment variables either; `@env' is correct +for them (see the next section). + + The effect of `@var' in the Info file is to change the case of the +argument to all upper case. In the printed manual and HTML output, the +argument is printed in slanted type. + + For example, + + To delete file @var{filename}, + type @samp{rm @var{filename}}. + +produces + + To delete file FILENAME, type `rm FILENAME'. + +(Note that `@var' may appear inside `@code', `@samp', `@file', etc.) + + Write a metasyntactic variable all in lower case without spaces, and +use hyphens to make it more readable. Thus, the Texinfo source for the +illustration of how to begin a Texinfo manual looks like this: + + \input texinfo + @@setfilename @var{info-file-name} + @@settitle @var{name-of-manual} + +This produces: + + \input texinfo + @setfilename INFO-FILE-NAME + @settitle NAME-OF-MANUAL + + In some documentation styles, metasyntactic variables are shown with +angle brackets, for example: + + ..., type rm <filename> + +However, that is not the style that Texinfo uses. (You can, of course, +modify the sources to `texinfo.tex' and the Info formatting commands to +output the `<...>' format if you wish.) + + +File: texinfo.info, Node: env, Next: file, Prev: var, Up: Indicating + +9.1.8 `@env'{ENVIRONMENT-VARIABLE} +---------------------------------- + +Use the `@env' command to indicate environment variables, as used by +many operating systems, including GNU. Do not use it for metasyntactic +variables; use `@var' instead (see the previous section). + + `@env' is equivalent to `@code' in its effects. For example: + + The @env{PATH} environment variable ... + produces + + The `PATH' environment variable ... + + +File: texinfo.info, Node: file, Next: command, Prev: env, Up: Indicating + +9.1.9 `@file'{FILE-NAME} +------------------------ + +Use the `@file' command to indicate text that is the name of a file, +buffer, or directory, or is the name of a node in Info. You can also +use the command for file name suffixes. Do not use `@file' for symbols +in a programming language; use `@code'. + + Currently, `@file' is equivalent to `@samp' in its effects. For +example, + + The @file{.el} files are in + the @file{/usr/local/emacs/lisp} directory. + +produces + + The `.el' files are in the `/usr/local/emacs/lisp' directory. + + +File: texinfo.info, Node: command, Next: option, Prev: file, Up: Indicating + +9.1.10 `@command'{COMMAND-NAME} +------------------------------- + +Use the `@command' command to indicate command names, such as `ls' or +`cc'. + + `@command' is equivalent to `@code' in its effects. For example: + + The command @command{ls} lists directory contents. + produces + + The command `ls' lists directory contents. + + You should write the name of a program in the ordinary text font, +rather than using `@command', if you regard it as a new English word, +such as `Emacs' or `Bison'. + + When writing an entire shell command invocation, as in `ls -l', you +should use either `@samp' or `@code' at your discretion. + + +File: texinfo.info, Node: option, Next: dfn, Prev: command, Up: Indicating + +9.1.11 `@option'{OPTION-NAME} +----------------------------- + +Use the `@option' command to indicate a command-line option; for +example, `-l' or `--version' or `--output=FILENAME'. + + `@option' is equivalent to `@samp' in its effects. For example: + + The option @option{-l} produces a long listing. + produces + + The option `-l' produces a long listing. + + In tables, putting options inside `@code' produces a more pleasing +effect. + + +File: texinfo.info, Node: dfn, Next: cite, Prev: option, Up: Indicating + +9.1.12 `@dfn'{TERM} +------------------- + +Use the `@dfn' command to identify the introductory or defining use of +a technical term. Use the command only in passages whose purpose is to +introduce a term which will be used again or which the reader ought to +know. Mere passing mention of a term for the first time does not +deserve `@dfn'. The command generates italics in the printed manual, +and double quotation marks in the Info file. For example: + + Getting rid of a file is called @dfn{deleting} it. + +produces + + Getting rid of a file is called "deleting" it. + + As a general rule, a sentence containing the defining occurrence of a +term should be a definition of the term. The sentence does not need to +say explicitly that it is a definition, but it should contain the +information of a definition--it should make the meaning clear. + + +File: texinfo.info, Node: cite, Next: acronym, Prev: dfn, Up: Indicating + +9.1.13 `@cite'{REFERENCE} +------------------------- + +Use the `@cite' command for the name of a book that lacks a companion +Info file. The command produces italics in the printed manual, and +quotation marks in the Info file. + + If a book is written in Texinfo, it is better to use a cross reference +command since a reader can easily follow such a reference in Info. +*Note `@xref': xref. + + +File: texinfo.info, Node: acronym, Next: indicateurl, Prev: cite, Up: Indicating + +9.1.14 `@acronym'{ACRONYM[, MEANING]} +------------------------------------- + +Use the `@acronym' command for abbreviations written in all capital +letters, such as `NASA'. The abbreviation is given as the single +argument in braces, as in `@acronym{NASA}'. As a matter of style, or +for particular abbreviations, you may prefer to use periods, as in +`@acronym{F.B.I.}'. + + If the acronym is at the end of a sentence, remember to use the +special `@.' and similar commands (*note Ending a Sentence::). + + In TeX, the acronym is printed in slightly smaller font. In the Info +output, the argument is printed as-is. In HTML, Docbook, and XML, the +`<acronym>' tag is used. + + `@acronym' accepts an optional second argument, intended to be used +for the meaning of the acronym. If present, it is printed in +parentheses after the acronym. For instance (since GNU is a recursive +acronym, we use `@acronym' recursively): + + @acronym{GNU, @acronym{GNU}'s Not Unix} + +produces: + + GNU (@acronym{GNU}'s Not Unix) + + In some circumstances, it is conventional to print family names in all +capitals. Don't use `@acronym' for this, since a name is not an +acronym. Use `@sc' instead (*note Smallcaps::). + + +File: texinfo.info, Node: indicateurl, Next: email, Prev: acronym, Up: Indicating + +9.1.15 `@indicateurl'{UNIFORM-RESOURCE-LOCATOR} +----------------------------------------------- + +Use the `@indicateurl' command to indicate a uniform resource locator +on the World Wide Web. This is analogous to `@file', `@var', etc., and +is purely for markup purposes. It does not produce a link you can +follow in HTML output (use the `@uref' command for that, *note `@uref': +uref.). It is useful for url's which do not actually exist. For +example: + + For example, the url might be @indicateurl{http://example.org/path}. + +which produces: + + For example, the url might be <http://example.org/path>. + + +File: texinfo.info, Node: email, Prev: indicateurl, Up: Indicating + +9.1.16 `@email'{EMAIL-ADDRESS[, DISPLAYED-TEXT]} +------------------------------------------------ + +Use the `@email' command to indicate an electronic mail address. It +takes one mandatory argument, the address, and one optional argument, +the text to display (the default is the address itself). + + In Info, the address is shown in angle brackets, preceded by the text +to display if any. In TeX, the angle brackets are omitted. In HTML +output, `@email' produces a `mailto' link that usually brings up a mail +composition window. For example: + + Send bug reports to @email{bug-texinfo@@gnu.org}, + suggestions to the @email{bug-texinfo@@gnu.org, same place}. + produces + Send bug reports to <bug-texinfo@gnu.org>, + suggestions to the same place <bug-texinfo@gnu.org>. + + +File: texinfo.info, Node: Emphasis, Prev: Indicating, Up: Marking Text + +9.2 Emphasizing Text +==================== + +Usually, Texinfo changes the font to mark words in the text according to +what category the words belong to; an example is the `@code' command. +Most often, this is the best way to mark words. However, sometimes you +will want to emphasize text without indicating a category. Texinfo has +two commands to do this. Also, Texinfo has several commands that +specify the font in which TeX will typeset text. These commands have +no effect on Info and only one of them, the `@r' command, has any +regular use. + +* Menu: + +* emph & strong:: How to emphasize text in Texinfo. +* Smallcaps:: How to use the small caps font. +* Fonts:: Various font commands for printed output. + + +File: texinfo.info, Node: emph & strong, Next: Smallcaps, Up: Emphasis + +9.2.1 `@emph'{TEXT} and `@strong'{TEXT} +--------------------------------------- + +The `@emph' and `@strong' commands are for emphasis; `@strong' is +stronger. In printed output, `@emph' produces _italics_ and `@strong' +produces *bold*. + + For example, + + @strong{Caution:} @samp{rm * .[^.]*} + removes @emph{all} files in the directory. + +produces the following in printed output and HTML: + + *Caution*: `rm * .[^.]*' removes _all_ files in the directory. + +and the following in Info: + + *Caution:* `rm * .[^.]*' removes _all_ + files in the directory. + + The `@strong' command is seldom used except to mark what is, in +effect, a typographical element, such as the word `Caution' in the +preceding example. + + In the Info output, `@emph' surrounds the text with underscores +(`_'), and `@strong' puts asterisks around the text. + + Caution: Do not use `@strong' with the word `Note'; Info will + mistake the combination for a cross reference. (It's usually + redundant, anyway.) Use a phrase such as *Please notice* or + *Caution* instead, or the optional argument to + `@quotation'--`Note' is allowable there. + + +File: texinfo.info, Node: Smallcaps, Next: Fonts, Prev: emph & strong, Up: Emphasis + +9.2.2 `@sc'{TEXT}: The Small Caps Font +-------------------------------------- + +Use the `@sc' command to set text in A SMALL CAPS FONT (where +possible). Write the text you want to be in small caps between braces +in lower case, like this: + + Richard @sc{Stallman} founded @acronym{GNU}. + +This produces: + + Richard STALLMAN founded GNU. + + As shown here, we recommend using `@acronym' for actual abbreviations +(*note acronym::), and reserving `@sc' for special cases where you want +small caps. The output is not the same (`@acronym' prints in a smaller +text font, not the small caps font), but more importantly it describes +the actual text more accurately. + + Family names are one case where small capitals are sometimes +desirable, also as shown here. + + TeX typesets any uppercase letters between the braces of an `@sc' +command in full-size capitals; only lowercase letters are printed in +the small caps font. In the Info output, the argument to `@sc' is +printed in all upper case. In HTML, the argument is uppercased and the +output marked with the `<small>' tag to reduce the font size. + + Since it's redundant to mark all-uppercase text with `@sc', +`makeinfo' warns about such usage. + + We recommend using regular mixed case wherever possible. + + +File: texinfo.info, Node: Fonts, Prev: Smallcaps, Up: Emphasis + +9.2.3 Fonts for Printing, Not Info +---------------------------------- + +Texinfo provides four font commands that specify font changes in the +printed manual and (where possible) in the HTML output, but have no +effect in the Info file. All four commands apply to an argument that +follows, surrounded by braces. + +`@i' + selects an italic font; + +`@b' + selects bold face; + +`@t' + selects the fixed-width, typewriter-style font used by `@code'; + +`@r' + selects a roman font, which is the usual font in which text is + printed. + + + Only the `@r' command has much use: in example-like environments, you +can use the `@r' command to write comments in the standard roman font +instead of the fixed-width font. This looks better in printed output, +and produces a `<lineannotation>' tag in Docbook output. + + For example, + + @lisp + (+ 2 2) ; @r{Add two plus two.} + @end lisp + +produces + + (+ 2 2) ; Add two plus two. + + In general, you should avoid using the other three font commands. If +you need to use one, it probably indicates a gap in the Texinfo +language. + + +File: texinfo.info, Node: Quotations and Examples, Next: Lists and Tables, Prev: Marking Text, Up: Top + +10 Quotations and Examples +************************** + +Quotations and examples are blocks of text consisting of one or more +whole paragraphs that are set off from the bulk of the text and treated +differently. They are usually indented. + + In Texinfo, you always begin a quotation or example by writing an +@-command at the beginning of a line by itself, and end it by writing +an `@end' command that is also at the beginning of a line by itself. +For instance, you begin an example by writing `@example' by itself at +the beginning of a line and end the example by writing `@end example' +on a line by itself, at the beginning of that line. + +* Menu: + +* Block Enclosing Commands:: Different constructs for different purposes. +* quotation:: Writing a quotation. +* example:: Writing an example in a fixed-width font. +* verbatim:: Writing a verbatim example. +* verbatiminclude:: Including a file verbatim. +* lisp:: Illustrating Lisp code. +* small:: Examples in a smaller font. +* display:: Writing an example in the current font. +* format:: Writing an example without narrowed margins. +* exdent:: Undo indentation on a line. +* flushleft & flushright:: Pushing text flush left or flush right. +* noindent:: Preventing paragraph indentation. +* indent:: Forcing paragraph indentation. +* cartouche:: Drawing rounded rectangles around examples. + + +File: texinfo.info, Node: Block Enclosing Commands, Next: quotation, Up: Quotations and Examples + +10.1 Block Enclosing Commands +============================= + +Here are commands for quotations and examples, explained further in the +following sections: + +`@quotation' + Indicate text that is quoted. The text is filled, indented (from + both margins), and printed in a roman font by default. + +`@example' + Illustrate code, commands, and the like. The text is printed in a + fixed-width font, and indented but not filled. + +`@verbatim' + Mark a piece of text that is to be printed verbatim; no character + substitutions are made and all commands are ignored, until the next + `@end verbatim'. The text is printed in a fixed-width font, and + not indented or filled. Extra spaces and blank lines are + significant, and tabs are expanded. + +`@smallexample' + Same as `@example', except that in TeX this command typesets text + in a smaller font. + +`@lisp' + Like `@example', but specifically for illustrating Lisp code. The + text is printed in a fixed-width font, and indented but not filled. + +`@smalllisp' + Is to `@lisp' as `@smallexample' is to `@example'. + +`@display' + Display illustrative text. The text is indented but not filled, + and no font is selected (so, by default, the font is roman). + +`@smalldisplay' + Is to `@display' as `@smallexample' is to `@example'. + +`@format' + Like `@display' (the text is not filled and no font is selected), + but the text is not indented. + +`@smallformat' + Is to `@format' as `@smallexample' is to `@example'. + + The `@exdent' command is used within the above constructs to undo the +indentation of a line. + + The `@flushleft' and `@flushright' commands are used to line up the +left or right margins of unfilled text. + + The `@noindent' command may be used after one of the above constructs +to prevent the following text from being indented as a new paragraph. + + You can use the `@cartouche' environment around one of the above +constructs to highlight the example or quotation by drawing a box with +rounded corners around it. *Note Drawing Cartouches Around Examples: +cartouche. + + +File: texinfo.info, Node: quotation, Next: example, Prev: Block Enclosing Commands, Up: Quotations and Examples + +10.2 `@quotation': Block quotations +=================================== + +The text of a quotation is processed normally (regular font, text is +filled) except that: + + * the margins are closer to the center of the page, so the whole of + the quotation is indented; + + * the first lines of paragraphs are indented no more than other + lines; + + * in the printed output, interparagraph spacing is reduced. + + This is an example of text written between an `@quotation' command + and an `@end quotation' command. An `@quotation' command is most + often used to indicate text that is excerpted from another (real + or hypothetical) printed work. + + Write an `@quotation' command as text on a line by itself. This line +will disappear from the output. Mark the end of the quotation with a +line beginning with and containing only `@end quotation'. The `@end +quotation' line will likewise disappear from the output. + + `@quotation' takes one optional argument, given on the remainder of +the line. This text, if present, is included at the beginning of the +quotation in bold or otherwise emphasized, and followed with a `:'. +For example: + + @quotation Note + This is + a foo. + @end quotation + +produces + + Note: This is a foo. + + If the `@quotation' argument is exactly one of these words: + + Caution Important Note Tip Warning + +then the Docbook output uses corresponding special tags (`<note>', +etc.) instead of the default `<blockquote>'. HTML output always uses +`<blockquote>'. + + +File: texinfo.info, Node: example, Next: verbatim, Prev: quotation, Up: Quotations and Examples + +10.3 `@example': Example Text +============================= + +The `@example' environment is used to indicate an example that is not +part of the running text, such as computer input or output. Write an +`@example' command at the beginning of a line by itself. Mark the end +of the example with an `@end example' command, also written at the +beginning of a line by itself. + + An `@example' environment has the following characteristics: + + * Each line in the input file is a line in the output; that is, the + source text is not filled as it normally is. + + * Extra spaces and blank lines are significant. + + * The output is indented. + + * The output uses a fixed-width font. + + * Texinfo commands _are_ expanded; if you want the output to be the + input verbatim, use the `@verbatim' environment instead (*note + `@verbatim': verbatim.). + + For example, + + @example + cp foo @var{dest1}; \ + cp foo @var{dest2} + @end example + +produces + + cp foo DEST1; \ + cp foo DEST2 + + The lines containing `@example' and `@end example' will disappear +from the output. To make the output look good, you should put a blank +line before the `@example' and another blank line after the `@end +example'. Blank lines inside the beginning `@example' and the ending +`@end example', on the other hand, do appear in the output. + + Caution: Do not use tabs in the lines of an example! (Or anywhere + else in Texinfo, except in verbatim environments.) TeX treats + tabs as single spaces, and that is not what they look like. In + Emacs, you can use `M-x untabify' to convert tabs in a region to + multiple spaces. + + Examples are often, logically speaking, "in the middle" of a +paragraph, and the text that continues afterwards should not be +indented, as in the example above. The `@noindent' command prevents a +piece of text from being indented as if it were a new paragraph (*note +`@noindent': noindent. + + If you want to embed code fragments within sentences, instead of +displaying them, use the `@code' command or its relatives (*note +`@code': code.). + + If you wish to write a "comment" on a line of an example in the +normal roman font, you can use the `@r' command (*note Fonts::). + + +File: texinfo.info, Node: verbatim, Next: verbatiminclude, Prev: example, Up: Quotations and Examples + +10.4 `@verbatim': Literal Text +============================== + +Use the `@verbatim' environment for printing of text that may contain +special characters or commands that should not be interpreted, such as +computer input or output (`@example' interprets its text as regular +Texinfo commands). This is especially useful for including +automatically generated output in a Texinfo manual. Here is an example; +the output you see is just the same as the input, with a line +`@verbatim' before and a line `@end verbatim' after. + + +This is an example of text written in a @verbatim +block. No character substitutions are made. All commands +are ignored, until `<at>end verbatim'. + +In the printed manual, the text is typeset in a +fixed-width font, and not indented or filled. All +spaces and blank lines are significant, including tabs. + + Write a `@verbatim' command at the beginning of a line by itself. +This line will disappear from the output. Mark the end of the verbatim +block with a `@end verbatim' command, also written at the beginning of +a line by itself. The `@end verbatim' will also disappear from the +output. + + For example: + +@verbatim +{ +<TAB>@command with strange characters: @'e +expand<TAB>me +} +@end verbatim + + +produces + + +{ + @command with strange characters: @'e +expand me +} + + Since the lines containing `@verbatim' and `@end verbatim' produce no +output, typically you should put a blank line before the `@verbatim' +and another blank line after the `@end verbatim'. Blank lines between +the beginning `@verbatim' and the ending `@end verbatim' will appear in +the output. + + It is not reliable to use `@verbatim' inside other Texinfo constructs. + + +File: texinfo.info, Node: verbatiminclude, Next: lisp, Prev: verbatim, Up: Quotations and Examples + +10.5 `@verbatiminclude' FILE: Include a File Verbatim +===================================================== + +You can include the exact contents of a file in the document with the +`@verbatiminclude' command: + + @verbatiminclude FILENAME + + The contents of FILENAME is printed in a verbatim environment (*note +`@verbatim': verbatim.). Generally, the file is printed exactly as it +is, with all special characters and white space retained. No +indentation is added; if you want indentation, enclose the +`@verbatiminclude' within `@example' (*note `@example': example.). + + The name of the file is taken literally, with a single exception: +`@value{VAR}' references are expanded. This makes it possible to +reliably include files in other directories in a distribution, for +instance: + + @include @value{top_srcdir}/NEWS + +(You still have to get `top_srcdir' defined in the first place.) + + +File: texinfo.info, Node: lisp, Next: small, Prev: verbatiminclude, Up: Quotations and Examples + +10.6 `@lisp': Marking a Lisp Example +==================================== + +The `@lisp' command is used for Lisp code. It is synonymous with the +`@example' command. + + This is an example of text written between an + `@lisp' command and an `@end lisp' command. + + Use `@lisp' instead of `@example' to preserve information regarding +the nature of the example. This is useful, for example, if you write a +function that evaluates only and all the Lisp code in a Texinfo file. +Then you can use the Texinfo file as a Lisp library.(1) + + Mark the end of `@lisp' with `@end lisp' on a line by itself. + + ---------- Footnotes ---------- + + (1) It would be straightforward to extend Texinfo to work in a +similar fashion for C, Fortran, or other languages. + + +File: texinfo.info, Node: small, Next: display, Prev: lisp, Up: Quotations and Examples + +10.7 `@small...' Block Commands +=============================== + +In addition to the regular `@example' and `@lisp' commands, Texinfo has +"small" example-style commands. These are `@smalldisplay', +`@smallexample', `@smallformat', and `@smalllisp'. + + In Info, the `@small...' commands are equivalent to their non-small +companion commands. + + In TeX, however, the `@small...' commands typeset text in a smaller +font than the non-small example commands. Consequently, many examples +containing long lines fit on a page without needing to be shortened. + + Mark the end of an `@small...' block with a corresponding `@end +small...'. For example, pair `@smallexample' with `@end smallexample'. + + Here is an example of the font used by the `@small...' commands (in +Info, the output will be the same as usual): + + ... to make sure that you have the freedom to + distribute copies of free software (and charge for + this service if you wish), that you receive source + code or can get it if you want it, that you can + change the software or use pieces of it in new free + programs; and that you know you can do these things. + + The `@small...' commands make it easier to prepare manuals without +forcing you to edit examples by hand to fit them onto narrower pages. + + As a general rule, a printed document looks much better if you use +only one of (for instance) `@example' or `@smallexample' consistently +within a chapter. + + +File: texinfo.info, Node: display, Next: format, Prev: small, Up: Quotations and Examples + +10.8 `@display' and `@smalldisplay' +=================================== + +The `@display' command begins a kind of example. It is like the +`@example' command except that, in a printed manual, `@display' does +not select the fixed-width font. In fact, it does not specify the font +at all, so that the text appears in the same font it would have +appeared in without the `@display' command. + + This is an example of text written between an `@display' command + and an `@end display' command. The `@display' command + indents the text, but does not fill it. + + Texinfo also provides a command `@smalldisplay', which is like +`@display' but uses a smaller font in `@smallbook' format. *Note +small::. + + +File: texinfo.info, Node: format, Next: exdent, Prev: display, Up: Quotations and Examples + +10.9 `@format' and `@smallformat' +================================= + +The `@format' command is similar to `@example' except that, in the +printed manual, `@format' does not select the fixed-width font and does +not narrow the margins. + +This is an example of text written between an `@format' command +and an `@end format' command. As you can see +from this example, +the `@format' command does not fill the text. + + Texinfo also provides a command `@smallformat', which is like +`@format' but uses a smaller font in `@smallbook' format. *Note +small::. + + +File: texinfo.info, Node: exdent, Next: flushleft & flushright, Prev: format, Up: Quotations and Examples + +10.10 `@exdent': Undoing a Line's Indentation +============================================= + +The `@exdent' command removes any indentation a line might have. The +command is written at the beginning of a line and applies only to the +text that follows the command that is on the same line. Do not use +braces around the text. In a printed manual, the text on an `@exdent' +line is printed in the roman font. + + `@exdent' is usually used within examples. Thus, + + @example + This line follows an @@example command. + @exdent This line is exdented. + This line follows the exdented line. + The @@end example comes on the next line. + @end group + +produces + + This line follows an @example command. +This line is exdented. + This line follows the exdented line. + The @end example comes on the next line. + + In practice, the `@exdent' command is rarely used. Usually, you +un-indent text by ending the example and returning the page to its +normal width. + + +File: texinfo.info, Node: flushleft & flushright, Next: noindent, Prev: exdent, Up: Quotations and Examples + +10.11 `@flushleft' and `@flushright' +==================================== + +The `@flushleft' and `@flushright' commands line up the ends of lines +on the left and right margins of a page, but do not fill the text. The +commands are written on lines of their own, without braces. The +`@flushleft' and `@flushright' commands are ended by `@end flushleft' +and `@end flushright' commands on lines of their own. + + For example, + + @flushleft + This text is + written flushleft. + @end flushleft + +produces + + This text is + written flushleft. + + `@flushright' produces the type of indentation often used in the +return address of letters. For example, + + @flushright + Here is an example of text written + flushright. The @code{@flushright} command + right justifies every line but leaves the + left end ragged. + @end flushright + +produces + + Here is an example of text written + flushright. The `@flushright' command + right justifies every line but leaves the + left end ragged. + + +File: texinfo.info, Node: noindent, Next: indent, Prev: flushleft & flushright, Up: Quotations and Examples + +10.12 `@noindent': Omitting Indentation +======================================= + +An example or other inclusion can break a paragraph into segments. +Ordinarily, the formatters indent text that follows an example as a new +paragraph. You can prevent this on a case-by-case basis by writing +`@noindent' at the beginning of a line, preceding the continuation +text. You can also disable indentation for all paragraphs globally with +`@paragraphindent' (*note Paragraph Indenting: paragraphindent.). + + It is best to write `@noindent' on a line by itself, since in most +environments, spaces following the command will not be ignored. It's ok +to use it at the beginning of a line, with text following, outside of +any environment. + + For example: + + @example + This is an example + @end example + + @noindent + This line is not indented. As you can see, the + beginning of the line is fully flush left with the line + that follows after it. (This whole example is between + @code{@@display} and @code{@@end display}.) + +produces: + + + This is an example + + This line is not indented. As you can see, the + beginning of the line is fully flush left with the line + that follows after it. (This whole example is between + `@display' and `@end display'.) + + To adjust the number of blank lines properly in the Info file output, +remember that the line containing `@noindent' does not generate a blank +line, and neither does the `@end example' line. + + In the Texinfo source file for this manual, each line that says +`produces' is preceded by `@noindent'. + + Do not put braces after an `@noindent' command; they are not +necessary, since `@noindent' is a command used outside of paragraphs +(*note Command Syntax::). + + +File: texinfo.info, Node: indent, Next: cartouche, Prev: noindent, Up: Quotations and Examples + +10.13 `@indent': Forcing Indentation +==================================== + + To complement the `@noindent' command (see the previous section), +Texinfo provides the `@indent' command that forces a paragraph to be +indented. This paragraph, for instance, is indented using an `@indent' +command. The first paragraph of a section is the most likely place to +use `@indent', to override the normal behavior of no indentation there +(*note paragraphindent::). + + It is best to write `@indent' on a line by itself, since in most +environments, spaces following the command will not be ignored. The +`@indent' line will not generate a blank line in the Info output within +an environment. + + However, it is ok to use it at the beginning of a line, with text +following, outside of any environment. + + Do not put braces after an `@indent' command; they are not necessary, +since `@indent' is a command used outside of paragraphs (*note Command +Syntax::). + + +File: texinfo.info, Node: cartouche, Prev: indent, Up: Quotations and Examples + +10.14 `@cartouche': Rounded Rectangles Around Examples +====================================================== + +In a printed manual, the `@cartouche' command draws a box with rounded +corners around its contents. In HTML, a normal rectangle is drawn +(that's the best HTML can do). `@cartouche' has no effect in Info +output. + + You can use this command to further highlight an example or quotation. +For instance, you could write a manual in which one type of example is +surrounded by a cartouche for emphasis. + + For example, + + @cartouche + @example + % pwd + /usr/local/share/emacs + @end example + @end cartouche + +surrounds the two-line example with a box with rounded corners, in the +printed manual. + + The output from the example looks like this (if you're reading this in +Info, you'll see the `@cartouche' had no effect): + + % pwd + /usr/local/info + + For proper output in HTML, it's necessary to put the `@cartouche' +around the `@example', and not the other way around. This limitation +of `makeinfo' may be removed one day. + + `@cartouche' also implies `@group' (*note group::). + + +File: texinfo.info, Node: Lists and Tables, Next: Special Displays, Prev: Quotations and Examples, Up: Top + +11 Lists and Tables +******************* + +Texinfo has several ways of making lists and tables. Lists can be +bulleted or numbered; two-column tables can highlight the items in the +first column; multi-column tables are also supported. + +* Menu: + +* Introducing Lists:: Texinfo formats lists for you. +* itemize:: How to construct a simple list. +* enumerate:: How to construct a numbered list. +* Two-column Tables:: How to construct a two-column table. +* Multi-column Tables:: How to construct generalized tables. + + +File: texinfo.info, Node: Introducing Lists, Next: itemize, Up: Lists and Tables + +11.1 Introducing Lists +====================== + +Texinfo automatically indents the text in lists or tables, and numbers +an enumerated list. This last feature is useful if you modify the +list, since you do not need to renumber it yourself. + + Numbered lists and tables begin with the appropriate @-command at the +beginning of a line, and end with the corresponding `@end' command on a +line by itself. The table and itemized-list commands also require that +you write formatting information on the same line as the beginning +@-command. + + Begin an enumerated list, for example, with an `@enumerate' command +and end the list with an `@end enumerate' command. Begin an itemized +list with an `@itemize' command, followed on the same line by a +formatting command such as `@bullet', and end the list with an `@end +itemize' command. + + Precede each element of a list with an `@item' or `@itemx' command. + + +Here is an itemized list of the different kinds of table and lists: + + * Itemized lists with and without bullets. + + * Enumerated lists, using numbers or letters. + + * Two-column tables with highlighting. + + +Here is an enumerated list with the same items: + + 1. Itemized lists with and without bullets. + + 2. Enumerated lists, using numbers or letters. + + 3. Two-column tables with highlighting. + + +And here is a two-column table with the same items and their @-commands: + +`@itemize' + Itemized lists with and without bullets. + +`@enumerate' + Enumerated lists, using numbers or letters. + +`@table' +`@ftable' +`@vtable' + Two-column tables, optionally with indexing. + + +File: texinfo.info, Node: itemize, Next: enumerate, Prev: Introducing Lists, Up: Lists and Tables + +11.2 `@itemize': Making an Itemized List +======================================== + +The `@itemize' command produces sequences of indented paragraphs, with +a bullet or other mark inside the left margin at the beginning of each +paragraph for which such a mark is desired. + + Begin an itemized list by writing `@itemize' at the beginning of a +line. Follow the command, on the same line, with a character or a +Texinfo command that generates a mark. Usually, you will write +`@bullet' after `@itemize', but you can use `@minus', or any command or +character that results in a single character in the Info file. If you +don't want any mark at all, use `@w'. (When you write the mark command +such as `@bullet' after an `@itemize' command, you may omit the `{}'.) +If you don't specify a mark command, the default is `@bullet'. + + Write the text of the indented paragraphs themselves after the +`@itemize', up to another line that says `@end itemize'. + + At the beginning of each paragraph for which a mark in the margin is +desired, write a line that starts with `@item'. It is ok to have text +following the `@item'. + + Usually, you should put a blank line before an `@item'. This puts a +blank line in the Info file. (TeX inserts the proper interline +whitespace in either case.) Except when the entries are very brief, +these blank lines make the list look better. + + Here is an example of the use of `@itemize', followed by the output +it produces. `@bullet' produces an `*' in Info and a round dot in TeX. + + @itemize @bullet + @item + Some text for foo. + + @item + Some text + for bar. + @end itemize + +This produces: + + * Some text for foo. + + * Some text for bar. + + Itemized lists may be embedded within other itemized lists. Here is a +list marked with dashes embedded in a list marked with bullets: + + @itemize @bullet + @item + First item. + + @itemize @minus + @item + Inner item. + + @item + Second inner item. + @end itemize + + @item + Second outer item. + @end itemize + +This produces: + + * First item. + + - Inner item. + + - Second inner item. + + * Second outer item. + + +File: texinfo.info, Node: enumerate, Next: Two-column Tables, Prev: itemize, Up: Lists and Tables + +11.3 `@enumerate': Making a Numbered or Lettered List +===================================================== + +`@enumerate' is like `@itemize' (*note `@itemize': itemize.), except +that the labels on the items are successive integers or letters instead +of bullets. + + Write the `@enumerate' command at the beginning of a line. The +command does not require an argument, but accepts either a number or a +letter as an option. Without an argument, `@enumerate' starts the list +with the number `1'. With a numeric argument, such as `3', the command +starts the list with that number. With an upper or lower case letter, +such as `a' or `A', the command starts the list with that letter. + + Write the text of the enumerated list in the same way as an itemized +list: write a line starting with `@item' at the beginning of each +paragraph that you want enumerated. It is ok to have text following +the `@item'. + + You should put a blank line between entries in the list. This +generally makes it easier to read the Info file. + + Here is an example of `@enumerate' without an argument: + + @enumerate + @item + Underlying causes. + + @item + Proximate causes. + @end enumerate + +This produces: + + 1. Underlying causes. + + 2. Proximate causes. + + + Here is an example with an argument of `3': + + @enumerate 3 + @item + Predisposing causes. + + @item + Precipitating causes. + + @item + Perpetuating causes. + @end enumerate + +This produces: + + 3. Predisposing causes. + + 4. Precipitating causes. + + 5. Perpetuating causes. + + + Here is a brief summary of the alternatives. The summary is +constructed using `@enumerate' with an argument of `a'. + + a. `@enumerate' + + Without an argument, produce a numbered list, starting with the + number 1. + + b. `@enumerate POSITIVE-INTEGER' + + With a (positive) numeric argument, start a numbered list with that + number. You can use this to continue a list that you interrupted + with other text. + + c. `@enumerate UPPER-CASE-LETTER' + + With an upper case letter as argument, start a list in which each + item is marked by a letter, beginning with that upper case letter. + + d. `@enumerate LOWER-CASE-LETTER' + + With a lower case letter as argument, start a list in which each + item is marked by a letter, beginning with that lower case letter. + + You can also nest enumerated lists, as in an outline. + + +File: texinfo.info, Node: Two-column Tables, Next: Multi-column Tables, Prev: enumerate, Up: Lists and Tables + +11.4 Making a Two-column Table +============================== + +`@table' is similar to `@itemize' (*note `@itemize': itemize.), but +allows you to specify a name or heading line for each item. The +`@table' command is used to produce two-column tables, and is +especially useful for glossaries, explanatory exhibits, and +command-line option summaries. + +* Menu: + +* table:: How to construct a two-column table. +* ftable vtable:: Automatic indexing for two-column tables. +* itemx:: How to put more entries in the first column. + + +File: texinfo.info, Node: table, Next: ftable vtable, Up: Two-column Tables + +11.4.1 Using the `@table' Command +--------------------------------- + +Use the `@table' command to produce two-column tables. It is usually +listed for "definition lists" of various sorts, where you have a list +of terms and a brief text with each one. + + Write the `@table' command at the beginning of a line, after a blank +line, and follow it on the same line with an argument that is a Texinfo +"indicating" command such as `@code', `@samp', `@var', `@option', or +`@kbd' (*note Indicating::). + + This command will be applied to the text that goes into the first +column of each item and thus determines how it will be highlighted. +For example, `@table @code' will cause the text in the first column to +be output as if it `@code' command. + + You may also use the `@asis' command as an argument to `@table'. +`@asis' is a command that does nothing; if you use this command after +`@table', the first column entries are output without added +highlighting ("as is"). + + The `@table' command works with other commands besides those +explicitly mentioned here. However, you can only use commands that +normally take arguments in braces. (In this case, however, you use the +command name without an argument, because the subsequent `@item''s will +supply the argument.) + + Begin each table entry with an `@item' command at the beginning of a +line. Write the first column text on the same line as the `@item' +command. Write the second column text on the line following the +`@item' line and on subsequent lines. (You do not need to type +anything for an empty second column entry.) You may write as many +lines of supporting text as you wish, even several paragraphs. But +only the text on the same line as the `@item' will be placed in the +first column (including any footnotes). + + Normally, you should put a blank line before an `@item' line. This +puts a blank line in the Info file. Except when the entries are very +brief, a blank line looks better. + + End the table with a line consisting of `@end table', followed by a +blank line. TeX will always start a new paragraph after the table, so +the blank line is needed for the Info output to be analogous. + + The following table, for example, highlights the text in the first +column with an `@samp' command: + + @table @samp + @item foo + This is the text for + @samp{foo}. + + @item bar + Text for @samp{bar}. + @end table + +This produces: + +`foo' + This is the text for `foo'. + +`bar' + Text for `bar'. + + If you want to list two or more named items with a single block of +text, use the `@itemx' command. (*Note `@itemx': itemx.) + + +File: texinfo.info, Node: ftable vtable, Next: itemx, Prev: table, Up: Two-column Tables + +11.4.2 `@ftable' and `@vtable' +------------------------------ + +The `@ftable' and `@vtable' commands are the same as the `@table' +command except that `@ftable' automatically enters each of the items in +the first column of the table into the index of functions and `@vtable' +automatically enters each of the items in the first column of the table +into the index of variables. This simplifies the task of creating +indices. Only the items on the same line as the `@item' commands are +indexed, and they are indexed in exactly the form that they appear on +that line. *Note Indices::, for more information about indices. + + Begin a two-column table using `@ftable' or `@vtable' by writing the +@-command at the beginning of a line, followed on the same line by an +argument that is a Texinfo command such as `@code', exactly as you +would for an `@table' command; and end the table with an `@end ftable' +or `@end vtable' command on a line by itself. + + See the example for `@table' in the previous section. + + +File: texinfo.info, Node: itemx, Prev: ftable vtable, Up: Two-column Tables + +11.4.3 `@itemx' +--------------- + +Use the `@itemx' command inside a table when you have two or more first +column entries for the same item, each of which should appear on a line +of its own. + + Use `@item' for the first entry, and `@itemx' for all subsequent +entries; `@itemx' must always follow an `@item' command, with no blank +line intervening. + + The `@itemx' command works exactly like `@item' except that it does +not generate extra vertical space above the first column text. If you +have multiple consecutive `@itemx' commands, do not insert any blank +lines between them. + + For example, + + @table @code + @item upcase + @itemx downcase + These two functions accept a character or a string as + argument, and return the corresponding upper case (lower + case) character or string. + @end table + +This produces: + +`upcase' +`downcase' + These two functions accept a character or a string as argument, + and return the corresponding upper case (lower case) character or + string. + +(Note also that this example illustrates multi-line supporting text in +a two-column table.) + + +File: texinfo.info, Node: Multi-column Tables, Prev: Two-column Tables, Up: Lists and Tables + +11.5 `@multitable': Multi-column Tables +======================================= + +`@multitable' allows you to construct tables with any number of +columns, with each column having any width you like. + + You define the column widths on the `@multitable' line itself, and +write each row of the actual table following an `@item' command, with +columns separated by an `@tab' command. Finally, `@end multitable' +completes the table. Details in the sections below. + +* Menu: + +* Multitable Column Widths:: Defining multitable column widths. +* Multitable Rows:: Defining multitable rows, with examples. + + +File: texinfo.info, Node: Multitable Column Widths, Next: Multitable Rows, Up: Multi-column Tables + +11.5.1 Multitable Column Widths +------------------------------- + +You can define the column widths for a multitable in two ways: as +fractions of the line length; or with a prototype row. Mixing the two +methods is not supported. In either case, the widths are defined +entirely on the same line as the `@multitable' command. + + 1. To specify column widths as fractions of the line length, write + `@columnfractions' and the decimal numbers (presumably less than + 1; a leading zero is allowed and ignored) after the `@multitable' + command, as in: + + @multitable @columnfractions .33 .33 .33 + + The fractions need not add up exactly to 1.0, as these do not. + This allows you to produce tables that do not need the full line + length. + + 2. To specify a prototype row, write the longest entry for each column + enclosed in braces after the `@multitable' command. For example: + + @multitable {some text for column one} {for column two} + + The first column will then have the width of the typeset `some + text for column one', and the second column the width of `for + column two'. + + The prototype entries need not appear in the table itself. + + Although we used simple text in this example, the prototype + entries can contain Texinfo commands; markup commands such as + `@code' are particularly likely to be useful. + + + +File: texinfo.info, Node: Multitable Rows, Prev: Multitable Column Widths, Up: Multi-column Tables + +11.5.2 Multitable Rows +---------------------- + +After the `@multitable' command defining the column widths (see the +previous section), you begin each row in the body of a multitable with +`@item', and separate the column entries with `@tab'. Line breaks are +not special within the table body, and you may break input lines in +your source file as necessary. + + You can also use `@headitem' instead of `@item' to produce a "heading +row". The TeX output for such a row is in bold, and the HTML, XML, and +Docbook output uses the `<thead>' tag. + + Here is a complete example of a multi-column table (the text is from +`The GNU Emacs Manual', *note Splitting Windows: (emacs)Split Window.): + + @multitable @columnfractions .15 .45 .4 + @headitem Key @tab Command @tab Description + @item C-x 2 + @tab @code{split-window-vertically} + @tab Split the selected window into two windows, + with one above the other. + @item C-x 3 + @tab @code{split-window-horizontally} + @tab Split the selected window into two windows + positioned side by side. + @item C-Mouse-2 + @tab + @tab In the mode line or scroll bar of a window, + split that window. + @end multitable + +produces: + +Key Command Description +--------------------------------------------------------------------------- +C-x 2 `split-window-vertically' Split the selected window + into two windows, with one + above the other. +C-x 3 `split-window-horizontally' Split the selected window + into two windows positioned + side by side. +C-Mouse-2 In the mode line or scroll + bar of a window, split that + window. + + +File: texinfo.info, Node: Special Displays, Next: Indices, Prev: Lists and Tables, Up: Top + +12 Special Displays +******************* + +The commands in this chapter allow you to write text that is specially +displayed (output format permitting), outside of the normal document +flow. + + One set of such commands is for creating "floats", that is, figures, +tables, and the like, set off from the main text, possibly numbered, +captioned, and/or referred to from elsewhere in the document. Images +are often included in these displays. + + Another group of commands is for creating footnotes in Texinfo. + +* Menu: + +* Floats:: Figures, tables, and the like. +* Images:: Including graphics and images. +* Footnotes:: Writing footnotes. + + +File: texinfo.info, Node: Floats, Next: Images, Up: Special Displays + +12.1 Floats +=========== + +A "float" is a display which is set off from the main text. It is +typically labelled as being a "Figure", "Table", "Example", or some +similar type. + + A float is so-named because, in principle, it can be moved to the +bottom or top of the current page, or to a following page, in the +printed output. (Floating does not make sense in other output +formats.) In the present version of Texinfo, however, this floating is +unfortunately not yet implemented. Instead, the floating material is +simply output at the current location, more or less as if it were an +`@group' (*note `@group': group.). + +* Menu: + +* float:: Producing floating material. +* caption shortcaption:: Specifying descriptions for floats. +* listoffloats:: A table of contents for floats. + + +File: texinfo.info, Node: float, Next: caption shortcaption, Up: Floats + +12.1.1 `@float' [TYPE][,LABEL]: Floating material +------------------------------------------------- + +To produce floating material, enclose the material you want to be +displayed separate between `@float' and `@end float' commands, on lines +by themselves. + + Floating material uses `@image' to display an already-existing +graphic (*note Images::), or `@multitable' to display a table (*note +Multi-column Tables::). However, the contents of the float can be +anything. Here's an example with simple text: + + @float Figure,fig:ex1 + This is an example float. + @end float + +And the output: + +This is an example float. + +Figure 12.1 + + As shown in the example, `@float' takes two arguments (separated by a +comma), TYPE and LABEL. Both are optional. + +TYPE + Specifies the sort of float this is; typically a word such as + "Figure", "Table", etc. If not given, and LABEL is, any + cross-referencing will simply use a bare number. + +LABEL + Specifies a cross-reference label for this float. If given, this + float is automatically given a number, and will appear in any + `@listofloats' output (*note listoffloats::). Cross-references to + LABEL are allowed. + + On the other hand, if LABEL is not given, then the float will not + be numbered and consequently will not appear in the + `@listoffloats' output or be cross-referenceable. + +Normally, you specify both TYPE and LABEL, to get a labeled and +numbered float. + + In Texinfo, all floats are numbered the same way: with the chapter +number (or appendix letter), a period, and the float number, which +simply counts 1, 2, 3, ..., and is reset at each chapter. Each float +type is counted independently. + + Floats within an `@unnumbered' are numbered, or outside of any +chapter, are simply numbered consecutively from 1. + + These numbering conventions are not, at present, changeable. + + +File: texinfo.info, Node: caption shortcaption, Next: listoffloats, Prev: float, Up: Floats + +12.1.2 `@caption' & `@shortcaption' +----------------------------------- + +You may write an `@caption' anywhere within a `@float' environment, to +define a caption for the float. It is not allowed in any other +context. `@caption' takes a single argument, enclosed in braces. +Here's an example: + + @float + An example float, with caption. + @caption{Caption for example float.} + @end float + +The output is: + +An example float, with caption. + +Caption for example float. + + `@caption' can appear anywhere within the float; it is not processed +until the `@end float'. The caption text is usually a sentence or two, +but may consist of several paragraphs if necessary. + + In the output, the caption always appears below the float; this is not +currently changeable. It is preceded by the float type and/or number, +as specified to the `@float' command (see the previous section). + + The `@shortcaption' command likewise may be used only within +`@float', and takes a single argument in braces. The short caption +text is used instead of the caption text in a list of floats (see the +next section). Thus, you can write a long caption for the main +document, and a short title to appear in the list of floats. + + +File: texinfo.info, Node: listoffloats, Prev: caption shortcaption, Up: Floats + +12.1.3 `@listoffloats': Tables of contents for floats +----------------------------------------------------- + +You can write a `@listoffloats' command to generate a list of floats +for a given float type (*note float::), analogous to the document's +overall table of contents. Typically, it is written in its own +`@unnumbered' node to provide a heading and structure, rather like +`@printindex' (*note Printing Indices & Menus::). + + `@listoffloats' takes one optional argument, the float type. Here's +an example: + + @node List of Figures + @unnumbered List of Figures + @listoffloats Figure + +And the output from `@listoffloats': + +* Menu: + +* Figure 12.1: fig:ex1. + + + Without any argument, `@listoffloats' generates a list of floats for +which no float type was specified, i.e., no first argument to the +`@float' command (*note float::). + + Each line in the list of floats contains the float type (if any), the +float number, and the caption, if any--the `@shortcaption' argument, if +it was specified, else the `@caption' argument. In Info, the result is +a menu where each float can be selected. In HTML, each line is a link +to the float. In printed output, the page number is included. + + Unnumbered floats (those without cross-reference labels) are omitted +from the list of floats. + + +File: texinfo.info, Node: Images, Next: Footnotes, Prev: Floats, Up: Special Displays + +12.2 Inserting Images +===================== + +You can insert an image given in an external file with the `@image' +command. Although images can be used anywhere, including the middle of +a paragraph, we describe them in this chapter since they are most often +part of a displayed figure or example. + +* Menu: + +* Image Syntax:: +* Image Scaling:: + + +File: texinfo.info, Node: Image Syntax, Next: Image Scaling, Up: Images + +12.2.1 Image Syntax +------------------- + +Here is the basic synopsis of the `@image' command: + + @image{FILENAME[, WIDTH[, HEIGHT[, ALTTEXT[, EXTENSION]]]]} + + The FILENAME argument is mandatory, and must not have an extension, +because the different processors support different formats: + + * TeX reads the file `FILENAME.eps' (Encapsulated PostScript format). + + * PDFTeX reads `FILENAME.pdf' (Adobe's Portable Document Format). + + * `makeinfo' includes `FILENAME.txt' verbatim for Info output (more + or less as if it was an `@example'). + + * `makeinfo' uses the optional fifth argument EXTENSION to `@image' + for the filename extension, if it is specified. For example: + + @image{foo,,,,.xpm} + + will cause `makeinfo' to look for `foo.xpm' before any others. + + + The WIDTH and HEIGHT arguments are described in the next section. + + When producing html, `makeinfo' sets the "alt attribute" for inline +images to the optional ALTTEXT (fourth) argument to `@image', if +supplied. If not supplied, `makeinfo' uses the full file name of the +image being displayed. If you want an empty `alt' string, use `@-'. +The ALTTEXT is taken as Texinfo text, so special characters such as `"' +and `<' and `&' are escaped in the HTML and XML output. + + If you do not supply the optional EXTENSION (fifth) argument, +`makeinfo' first tries `FILENAME.png'; if that does not exist, it tries +`FILENAME.jpg'. If that does not exist either, it complains. (We +cannot support GIF format directly due to software patents.) + + In Info output, `makeinfo' writes a reference to the binary image +file (trying FILENAME suffixed with `EXTENSION', `.EXTENSION', `.png', +or `.jpg', in that order) if one exists. It also literally includes +the `.txt' file if one exists. This way, Info readers which can +display images (such as the Emacs Info browser, running under X) can do +so, whereas Info readers which can only use text (such as the +standalone Info reader) can display the textual version. + + The implementation of this is to put the following construct into the +Info output: + + ^@^H[image src="BINARYFILE" text="TXTFILE" + alt="ALTTEXT ... ^@^H] + +where `^@' and `^H' stand for the actual null and backspace control +characters. If one of the files is not present, the corresponding +argument is omitted. + + The reason for mentioning this here is that older Info browsers (this +feature was introduced in Texinfo version 4.6) will display the above +literally, which, although not pretty, should not be harmful. + + +File: texinfo.info, Node: Image Scaling, Prev: Image Syntax, Up: Images + +12.2.2 Image Scaling +-------------------- + +The optional WIDTH and HEIGHT arguments to the `@image' command (see +the previous section) specify the size to scale the image to. They are +ignored for Info output. If neither is specified, the image is +presented in its natural size (given in the file); if only one is +specified, the other is scaled proportionately; and if both are +specified, both are respected, thus possibly distorting the original +image by changing its aspect ratio. + + The WIDTH and HEIGHT may be specified using any valid TeX dimension, +namely: + +pt + point (72.27pt = 1in) + +pc + pica (1pc = 12pt) + +bp + big point (72bp = 1in) + +in + inch + +cm + centimeter (2.54cm = 1in) + +mm + millimeter (10mm = 1cm) + +dd + dido^t point (1157dd = 1238pt) + +cc + cicero (1cc = 12dd) + +sp + scaled point (65536sp = 1pt) + + For example, the following will scale a file `ridt.eps' to one inch +vertically, with the width scaled proportionately: + + @image{ridt,,1in} + + For `@image' to work with TeX, the file `epsf.tex' must be installed +somewhere that TeX can find it. (The standard location is +`TEXMF/tex/generic/dvips/epsf.tex', where TEXMF is a root of your TeX +directory tree.) This file is included in the Texinfo distribution and +is also available from `ftp://tug.org/tex/epsf.tex', among other places. + + `@image' can be used within a line as well as for displayed figures. +Therefore, if you intend it to be displayed, be sure to leave a blank +line before the command, or the output will run into the preceding text. + + Image scaling is presently implemented only in TeX, not in HTML or +any other sort of output. + + +File: texinfo.info, Node: Footnotes, Prev: Images, Up: Special Displays + +12.3 Footnotes +============== + +A "footnote" is for a reference that documents or elucidates the +primary text.(1) Footnotes are distracting; use them sparingly, if at +all. Standard bibliographical references are better placed in a +bibliography at the end of a document than in footnotes throughout. + +* Menu: + +* Footnote Commands:: How to write a footnote in Texinfo. +* Footnote Styles:: Controlling how footnotes appear in Info. + + ---------- Footnotes ---------- + + (1) A footnote should complement or expand upon the primary text, but +a reader should not need to read a footnote to understand the primary +text. For a thorough discussion of footnotes, see `The Chicago Manual +of Style', which is published by the University of Chicago Press. + + +File: texinfo.info, Node: Footnote Commands, Next: Footnote Styles, Up: Footnotes + +12.3.1 Footnote Commands +------------------------ + +In Texinfo, footnotes are created with the `@footnote' command. This +command is followed immediately by a left brace, then by the text of +the footnote, and then by a terminating right brace. Footnotes may be +of any length (they will be broken across pages if necessary), but are +usually short. The template is: + + ordinary text@footnote{TEXT OF FOOTNOTE} + + As shown here, the `@footnote' command should come right after the +text being footnoted, with no intervening space; otherwise, the footnote +marker might end up starting a line. + + For example, this clause is followed by a sample footnote(1); in the +Texinfo source, it looks like this: + + ...a sample footnote@footnote{Here is the sample + footnote.}; in the Texinfo source... + + As you can see, the source includes two punctuation marks next to each +other; in this case, `.};' is the sequence. This is normal (the first +ends the footnote and the second belongs to the sentence being +footnoted), so don't worry that it looks odd. + + In a printed manual or book, the reference mark for a footnote is a +small, superscripted number; the text of the footnote appears at the +bottom of the page, below a horizontal line. + + In Info, the reference mark for a footnote is a pair of parentheses +with the footnote number between them, like this: `(1)'. The reference +mark is followed by a cross-reference link to the footnote's text. + + In the HTML output, footnote references are marked with a small, +superscripted number which is rendered as a hypertext link to the +footnote text. + + By the way, footnotes in the argument of an `@item' command for a +`@table' must be on the same line as the `@item' (as usual). *Note +Two-column Tables::. + + ---------- Footnotes ---------- + + (1) Here is the sample footnote. + + +File: texinfo.info, Node: Footnote Styles, Prev: Footnote Commands, Up: Footnotes + +12.3.2 Footnote Styles +---------------------- + +Info has two footnote styles, which determine where the text of the +footnote is located: + + * In the `End' node style, all the footnotes for a single node are + placed at the end of that node. The footnotes are separated from + the rest of the node by a line of dashes with the word `Footnotes' + within it. Each footnote begins with an `(N)' reference mark. + + Here is an example of a single footnote in the end of node style: + + --------- Footnotes --------- + + (1) Here is a sample footnote. + + * In the `Separate' node style, all the footnotes for a single node + are placed in an automatically constructed node of their own. In + this style, a "footnote reference" follows each `(N)' reference + mark in the body of the node. The footnote reference is actually + a cross reference which you use to reach the footnote node. + + The name of the node with the footnotes is constructed by + appending `-Footnotes' to the name of the node that contains the + footnotes. (Consequently, the footnotes' node for the `Footnotes' + node is `Footnotes-Footnotes'!) The footnotes' node has an `Up' + node pointer that leads back to its parent node. + + Here is how the first footnote in this manual looks after being + formatted for Info in the separate node style: + + File: texinfo.info Node: Overview-Footnotes, Up: Overview + + (1) The first syllable of "Texinfo" is pronounced like "speck", not + "hex". ... + + Unless your document has long and important footnotes (as in, say, +Gibbon's `Decline and Fall ...'), we recommend the `end' style, as it +is simpler for readers to follow. + + Use the `@footnotestyle' command to specify an Info file's footnote +style. Write this command at the beginning of a line followed by an +argument, either `end' for the end node style or `separate' for the +separate node style. + + For example, + + @footnotestyle end + or + @footnotestyle separate + + Write an `@footnotestyle' command before or shortly after the +end-of-header line at the beginning of a Texinfo file. (If you include +the `@footnotestyle' command between the start-of-header and +end-of-header lines, the region formatting commands will format +footnotes as specified.) + + If you do not specify a footnote style, the formatting commands use +their default style. Currently, `texinfo-format-buffer' and +`texinfo-format-region' use the `separate' style and `makeinfo' uses +the `end' style. + + +File: texinfo.info, Node: Indices, Next: Insertions, Prev: Special Displays, Up: Top + +13 Indices +********** + +Using Texinfo, you can generate indices without having to sort and +collate entries manually. In an index, the entries are listed in +alphabetical order, together with information on how to find the +discussion of each entry. In a printed manual, this information +consists of page numbers. In an Info file, this information is a menu +entry leading to the first node referenced. + + Texinfo provides several predefined kinds of index: an index for +functions, an index for variables, an index for concepts, and so on. +You can combine indices or use them for other than their canonical +purpose. Lastly, you can define your own new indices. + + *Note Printing Indices & Menus::, for information on how to print +indices. + +* Menu: + +* Index Entries:: Choose different words for index entries. +* Predefined Indices:: Use different indices for different kinds + of entries. +* Indexing Commands:: How to make an index entry. +* Combining Indices:: How to combine indices. +* New Indices:: How to define your own indices. + + +File: texinfo.info, Node: Index Entries, Next: Predefined Indices, Up: Indices + +13.1 Making Index Entries +========================= + +When you are making index entries, it is good practice to think of the +different ways people may look for something. Different people _do +not_ think of the same words when they look something up. A helpful +index will have items indexed under all the different words that people +may use. For example, one reader may think it obvious that the +two-letter names for indices should be listed under "Indices, +two-letter names", since the word "Index" is the general concept. But +another reader may remember the specific concept of two-letter names +and search for the entry listed as "Two letter names for indices". A +good index will have both entries and will help both readers. + + Like typesetting, the construction of an index is a highly skilled, +professional art, the subtleties of which are not appreciated until you +need to do it yourself. + + *Note Printing Indices & Menus::, for information about printing an +index at the end of a book or creating an index menu in an Info file. + + +File: texinfo.info, Node: Predefined Indices, Next: Indexing Commands, Prev: Index Entries, Up: Indices + +13.2 Predefined Indices +======================= + +Texinfo provides six predefined indices. Here are their nominal +meanings, abbreviations, and the corresponding index entry commands: + +`cp' + (`@cindex') concept index, for general concepts. + +`fn' + (`@findex') function index, for function and function-like names + (such as entry points of libraries). + +`ky' + (`@kindex') keystroke index, for keyboard commands. + +`pg' + (`@pindex') program index, for names of programs. + +`tp' + (`@tindex') data type index, for type names (such as structures + defined in header files). + +`vr' + (`@vindex') variable index, for variable names (such as global + variables of libraries). + +Not every manual needs all of these, and most manuals use only two or +three at most. The present manual, for example, has two indices: a +concept index and an @-command index (that is actually the function +index but is called a command index in the chapter heading). + + You are not required to use the predefined indices strictly for their +canonical purposes. For example, suppose you wish to index some C +preprocessor macros. You could put them in the function index along +with actual functions, just by writing `@findex' commands for them; +then, when you print the "Function Index" as an unnumbered chapter, you +could give it the title `Function and Macro Index' and all will be +consistent for the reader. + + On the other hand, it is best not to stray too far from the meaning of +the predefined indices. Otherwise, in the event that your text is +combined with other text from other manuals, the index entries will not +match up. Instead, define your own new index (*note New Indices::). + + We recommend having a single index in the final document whenever +possible, however many source indices you use, since then readers have +only one place to look. Two or more source indices can be combined +into one output index using the `@synindex' or `@syncodeindex' commands +(*note Combining Indices::). + + +File: texinfo.info, Node: Indexing Commands, Next: Combining Indices, Prev: Predefined Indices, Up: Indices + +13.3 Defining the Entries of an Index +===================================== + +The data to make an index come from many individual indexing commands +scattered throughout the Texinfo source file. Each command says to add +one entry to a particular index; after formatting, the index will give +the current page number or node name as the reference. + + An index entry consists of an indexing command at the beginning of a +line followed, on the rest of the line, by the entry. + + For example, this section begins with the following five entries for +the concept index: + + @cindex Defining indexing entries + @cindex Index entries, defining + @cindex Entries for an index + @cindex Specifying index entries + @cindex Creating index entries + + Each predefined index has its own indexing command--`@cindex' for the +concept index, `@findex' for the function index, and so on, as listed +in the previous section. + + Concept index entries consist of text. The best way to write an index +is to choose entries that are terse yet clear. If you can do this, the +index often looks better if the entries are not capitalized, but +written just as they would appear in the middle of a sentence. +(Capitalize proper names and acronyms that always call for upper case +letters.) This is the case convention we use in most GNU manuals' +indices. + + If you don't see how to make an entry terse yet clear, make it longer +and clear--not terse and confusing. If many of the entries are several +words long, the index may look better if you use a different convention: +to capitalize the first word of each entry. But do not capitalize a +case-sensitive name such as a C or Lisp function name or a shell +command; that would be a spelling error. + + Whichever case convention you use, please use it consistently! + + Entries in indices other than the concept index are symbol names in +programming languages, or program names; these names are usually +case-sensitive, so use upper and lower case as required for them. + + By default, entries for a concept index are printed in a small roman +font and entries for the other indices are printed in a small `@code' +font. You may change the way part of an entry is printed with the +usual Texinfo commands, such as `@file' for file names (*note Marking +Text::), and `@r' for the normal roman font (*note Fonts::). + + Caution: Do not use a colon in an index entry. In Info, a colon + separates the menu entry name from the node name, so a colon in + the entry itself confuses Info. *Note Menu Parts::, for more + information about the structure of a menu entry. + + +File: texinfo.info, Node: Combining Indices, Next: New Indices, Prev: Indexing Commands, Up: Indices + +13.4 Combining Indices +====================== + +Sometimes you will want to combine two disparate indices such as +functions and concepts, perhaps because you have few enough entries +that a separate index would look silly. + + You could put functions into the concept index by writing `@cindex' +commands for them instead of `@findex' commands, and produce a +consistent manual by printing the concept index with the title +`Function and Concept Index' and not printing the `Function Index' at +all; but this is not a robust procedure. It works only if your +document is never included as part of another document that is designed +to have a separate function index; if your document were to be included +with such a document, the functions from your document and those from +the other would not end up together. Also, to make your function names +appear in the right font in the concept index, you would need to +enclose every one of them between the braces of `@code'. + +* Menu: + +* syncodeindex:: How to merge two indices, using `@code' + font for the merged-from index. +* synindex:: How to merge two indices, using the + default font of the merged-to index. + + +File: texinfo.info, Node: syncodeindex, Next: synindex, Up: Combining Indices + +13.4.1 `@syncodeindex' +---------------------- + +When you want to combine functions and concepts into one index, you +should index the functions with `@findex' and index the concepts with +`@cindex', and use the `@syncodeindex' command to redirect the function +index entries into the concept index. + + The `@syncodeindex' command takes two arguments; they are the name of +the index to redirect, and the name of the index to redirect it to. +The template looks like this: + + @syncodeindex FROM TO + + For this purpose, the indices are given two-letter names: + +`cp' + concept index + +`fn' + function index + +`vr' + variable index + +`ky' + key index + +`pg' + program index + +`tp' + data type index + + Write an `@syncodeindex' command before or shortly after the +end-of-header line at the beginning of a Texinfo file. For example, to +merge a function index with a concept index, write the following: + + @syncodeindex fn cp + +This will cause all entries designated for the function index to merge +in with the concept index instead. + + To merge both a variables index and a function index into a concept +index, write the following: + + @syncodeindex vr cp + @syncodeindex fn cp + + The `@syncodeindex' command puts all the entries from the `from' +index (the redirected index) into the `@code' font, overriding whatever +default font is used by the index to which the entries are now +directed. This way, if you direct function names from a function index +into a concept index, all the function names are printed in the `@code' +font as you would expect. + + +File: texinfo.info, Node: synindex, Prev: syncodeindex, Up: Combining Indices + +13.4.2 `@synindex' +------------------ + +The `@synindex' command is nearly the same as the `@syncodeindex' +command, except that it does not put the `from' index entries into the +`@code' font; rather it puts them in the roman font. Thus, you use +`@synindex' when you merge a concept index into a function index. + + *Note Printing Indices & Menus::, for information about printing an +index at the end of a book or creating an index menu in an Info file. + + +File: texinfo.info, Node: New Indices, Prev: Combining Indices, Up: Indices + +13.5 Defining New Indices +========================= + +In addition to the predefined indices, you may use the `@defindex' and +`@defcodeindex' commands to define new indices. These commands create +new indexing @-commands with which you mark index entries. The +`@defindex' command is used like this: + + @defindex NAME + + The name of an index should be a two letter word, such as `au'. For +example: + + @defindex au + + This defines a new index, called the `au' index. At the same time, +it creates a new indexing command, `@auindex', that you can use to make +index entries. Use this new indexing command just as you would use a +predefined indexing command. + + For example, here is a section heading followed by a concept index +entry and two `au' index entries. + + @section Cognitive Semantics + @cindex kinesthetic image schemas + @auindex Johnson, Mark + @auindex Lakoff, George + +(Evidently, `au' serves here as an abbreviation for "author".) + + In general, Texinfo constructs the new indexing command by +concatenating the name of the index with `index'; thus, defining an +`xy' index leads to the automatic creation of an `@xyindex' command. + + Use the `@printindex' command to print the index, as you do with the +predefined indices. For example: + + @node Author Index + @unnumbered Author Index + + @printindex au + + The `@defcodeindex' is like the `@defindex' command, except that, in +the printed output, it prints entries in an `@code' font by default +instead of a roman font. + + You should define new indices before the end-of-header line of a +Texinfo file, and (of course) before any `@synindex' or `@syncodeindex' +commands (*note Texinfo File Header::). + + +File: texinfo.info, Node: Insertions, Next: Breaks, Prev: Indices, Up: Top + +14 Special Insertions +********************* + +Texinfo provides several commands for inserting characters that have +special meaning in Texinfo, such as braces, and for other graphic +elements that do not correspond to simple characters you can type. + +* Menu: + +* Atsign Braces Comma:: Inserting @ and {} and ,. +* Inserting Space:: How to insert the right amount of space + within a sentence. +* Inserting Accents:: How to insert accents and special characters. +* Dots Bullets:: How to insert dots and bullets. +* TeX and copyright:: How to insert the TeX logo + and the copyright symbol. +* pounds:: How to insert the pounds currency symbol. +* minus:: How to insert a minus sign. +* math:: How to format a mathematical expression. +* Glyphs:: How to indicate results of evaluation, + expansion of macros, errors, etc. + + +File: texinfo.info, Node: Atsign Braces Comma, Next: Inserting Space, Up: Insertions + +14.1 Inserting @ and {} and , +============================= + +`@' and curly braces are special characters in Texinfo. To insert +these characters so they appear in text, you must put an `@' in front +of these characters to prevent Texinfo from misinterpreting them. + + The comma `,' is a special character only in one uncommon context: it +separates arguments to commands that take multiple arguments. + +* Menu: + +* Inserting an Atsign:: +* Inserting Braces:: +* Inserting a Comma:: + + +File: texinfo.info, Node: Inserting an Atsign, Next: Inserting Braces, Up: Atsign Braces Comma + +14.1.1 Inserting `@' with `@@' +------------------------------ + +`@@' stands for a single `@' in either printed or Info output. + + Do not put braces after an `@@' command. + + +File: texinfo.info, Node: Inserting Braces, Next: Inserting a Comma, Prev: Inserting an Atsign, Up: Atsign Braces Comma + +14.1.2 Inserting `{' and `}' with `@{' and `@}' +----------------------------------------------- + +`@{' stands for a single `{' in either printed or Info output. + + `@}' stands for a single `}' in either printed or Info output. + + Do not put braces after either an `@{' or an `@}' command.ppp + + +File: texinfo.info, Node: Inserting a Comma, Prev: Inserting Braces, Up: Atsign Braces Comma + +14.1.3 Inserting `,' with `@comma{}' +------------------------------------ + +Ordinarily, a comma `,' is a normal character that can be simply typed +in your input where you need it. + + However, Texinfo uses the comma as a special character in one uncommon +context: some commands, such as `@acronym' (*note acronym::) and +`@xref' (*note Cross References::), as well as user-defined macros +(*note Defining Macros::), can take more than one argument. In these +cases, the comma character is used to separate arguments. + + Since a comma chacter would confuse Texinfo's parsing for these +commands, you must use the command `,' instead if you want to have an +actual comma in the output. Here are some examples: + + @acronym{ABC, A Bizarre @comma{}} + @xref{Comma,, The @comma{} symbol} + @mymac{One argument@comma{} containing a comma} + + Although , can be used anywhere, there is no need for it anywhere +except in this unusual case. + + +File: texinfo.info, Node: Inserting Space, Next: Inserting Accents, Prev: Atsign Braces Comma, Up: Insertions + +14.2 Inserting Space +==================== + +The following sections describe commands that control spacing of various +kinds within and after sentences. + +* Menu: + +* Not Ending a Sentence:: Sometimes a . doesn't end a sentence. +* Ending a Sentence:: Sometimes it does. +* Multiple Spaces:: Inserting multiple spaces. +* dmn:: How to format a dimension. + + +File: texinfo.info, Node: Not Ending a Sentence, Next: Ending a Sentence, Up: Inserting Space + +14.2.1 Not Ending a Sentence +---------------------------- + +Depending on whether a period or exclamation point or question mark is +inside or at the end of a sentence, less or more space is inserted after +a period in a typeset manual. Since it is not always possible to +determine when a period ends a sentence and when it is used in an +abbreviation, special commands are needed in some circumstances. +Usually, Texinfo can guess how to handle periods, so you do not need to +use the special commands; you just enter a period as you would if you +were using a typewriter, which means you put two spaces after the +period, question mark, or exclamation mark that ends a sentence. + + Use the `@:' command after a period, question mark, exclamation mark, +or colon that should not be followed by extra space. For example, use +`@:' after periods that end abbreviations which are not at the ends of +sentences. + + For example, + + The s.o.p.@: has three parts ... + The s.o.p. has three parts ... + +produces + + The s.o.p. has three parts ... + The s.o.p. has three parts ... + +(Incidentally, `s.o.p.' is an abbreviation for "Standard Operating +Procedure".) + + `@:' has no effect on the Info and HTML output. In Docbook and XML, +the previous punctuation character (.?!:) is output as an entity +instead of as the normal character: `. ? ! :'. +This gives further processors a chance to notice and not add the usual +extra space. + + Do not put braces after `@:' (or any non-alphabetic command). + + +File: texinfo.info, Node: Ending a Sentence, Next: Multiple Spaces, Prev: Not Ending a Sentence, Up: Inserting Space + +14.2.2 Ending a Sentence +------------------------ + +Use `@.' instead of a period, `@!' instead of an exclamation point, and +`@?' instead of a question mark at the end of a sentence that ends with +a capital letter. Otherwise, TeX will think the letter is an +abbreviation and will not insert the correct end-of-sentence spacing. +Here is an example: + + Give it to M.I.B. and to M.E.W@. Also, give it to R.J.C@. + Give it to M.I.B. and to M.E.W. Also, give it to R.J.C. + +produces + + Give it to M.I.B. and to M.E.W. Also, give it to R.J.C. + Give it to M.I.B. and to M.E.W. Also, give it to R.J.C. + + In the Info file output, `@.' is equivalent to a simple `.'; likewise +for `@!' and `@?'. + + The meanings of `@:' and `@.' in Texinfo are designed to work well +with the Emacs sentence motion commands (*note Sentences: +(emacs)Sentences.). + + Do not put braces after any of these commands. + + +File: texinfo.info, Node: Multiple Spaces, Next: dmn, Prev: Ending a Sentence, Up: Inserting Space + +14.2.3 Multiple Spaces +---------------------- + +Ordinarily, TeX collapses multiple whitespace characters (space, tab, +and newline) into a single space. Info output, on the other hand, +preserves whitespace as you type it, except for changing a newline into +a space; this is why it is important to put two spaces at the end of +sentences in Texinfo documents. + + Occasionally, you may want to actually insert several consecutive +spaces, either for purposes of example (what your program does with +multiple spaces as input), or merely for purposes of appearance in +headings or lists. Texinfo supports three commands: `@SPACE', `@TAB', +and `@NL', all of which insert a single space into the output. (Here, +`@SPACE' represents an `@' character followed by a space, i.e., `@ ', +and `TAB' and `NL' represent the tab character and end-of-line, i.e., +when `@' is the last character on a line.) + + For example, + Spacey@ @ @ @ + example. + +produces + + Spacey example. + + Other possible uses of `@SPACE' have been subsumed by `@multitable' +(*note Multi-column Tables::). + + Do not follow any of these commands with braces. + + To produce a non-breakable space, see *Note `@tie': tie. + + +File: texinfo.info, Node: dmn, Prev: Multiple Spaces, Up: Inserting Space + +14.2.4 `@dmn'{DIMENSION}: Format a Dimension +-------------------------------------------- + +At times, you may want to write `12pt' or `8.5in' with little or no +space between the number and the abbreviation for the dimension. You +can use the `@dmn' command to do this. On seeing the command, TeX +inserts just enough space for proper typesetting; the Info formatting +commands insert no space at all, since the Info file does not require +it. + + To use the `@dmn' command, write the number and then follow it +immediately, with no intervening space, by `@dmn', and then by the +dimension within braces. For example, + + A4 paper is 8.27@dmn{in} wide. + +produces + + A4 paper is 8.27in wide. + + Not everyone uses this style. Some people prefer `8.27 in.@:' or +`8.27 inches' to `8.27@dmn{in}' in the Texinfo file. In these cases, +however, the formatters may insert a line break between the number and +the dimension, so use `@w' (*note w::). Also, if you write a period +after an abbreviation within a sentence, you should write `@:' after +the period to prevent TeX from inserting extra whitespace, as shown +here. *Note Not Ending a Sentence::. + + +File: texinfo.info, Node: Inserting Accents, Next: Dots Bullets, Prev: Inserting Space, Up: Insertions + +14.3 Inserting Accents +====================== + +Here is a table with the commands Texinfo provides for inserting +floating accents. The commands with non-alphabetic names do not take +braces around their argument (which is taken to be the next character). +(Exception: `@,' _does_ take braces around its argument.) This is so +as to make the source as convenient to type and read as possible, since +accented characters are very common in some languages. + + To get the true accented characters output in Info, and not just the +ASCII transliterations, you can use the `--enable-encoding' option to +`makeinfo' (*note makeinfo options::). + +Command Output What +@"o o" umlaut accent +@'o o' acute accent +@,{c} c, cedilla accent +@=o o= macron/overbar accent +@^o o^ circumflex accent +@`o o` grave accent +@~o o~ tilde accent +@dotaccent{o} o. overdot accent +@H{o} o'' long Hungarian umlaut +@ringaccent{o} o* ring accent +@tieaccent{oo} oo[ tie-after accent +@u{o} o( breve accent +@ubaraccent{o} o_ underbar accent +@udotaccent{o} .o underdot accent +@v{o} o< hacek/check/caron accent + + This table lists the Texinfo commands for inserting other characters +commonly used in languages other than English. + +@exclamdown{} ! upside-down ! +@questiondown{} ? upside-down ? +@aa{} @AA{} aa AA a,A with circle +@ae{} @AE{} ae AE ae,AE ligatures +@dotless{i} i dotless i +@dotless{j} j dotless j +@l{} @L{} /l /L suppressed-L,l +@o{} @O{} /o /O O,o with slash +@oe{} @OE{} oe OE oe,OE ligatures +@ordf{} @ordm{} a o Spanish ordinals +@ss{} ss es-zet or sharp S + + +File: texinfo.info, Node: Dots Bullets, Next: TeX and copyright, Prev: Inserting Accents, Up: Insertions + +14.4 Inserting Ellipsis and Bullets +=================================== + +An "ellipsis" (a line of dots) is not typeset as a string of periods, +so a special command is used for ellipsis in Texinfo. The `@bullet' +command is special, too. Each of these commands is followed by a pair +of braces, `{}', without any whitespace between the name of the command +and the braces. (You need to use braces with these commands because +you can use them next to other text; without the braces, the formatters +would be confused. *Note @-Command Syntax: Command Syntax, for further +information.) + +* Menu: + +* dots:: How to insert dots ... +* bullet:: How to insert a bullet. + + +File: texinfo.info, Node: dots, Next: bullet, Up: Dots Bullets + +14.4.1 `@dots'{} (...) and `@enddots'{} (....) +---------------------------------------------- + +Use the `@dots{}' command to generate an ellipsis, which is three dots +in a row, appropriately spaced ... like so. Do not simply write three +periods in the input file; that would work for the Info file output, +but would produce the wrong amount of space between the periods in the +printed manual. + + Similarly, the `@enddots{}' command generates an end-of-sentence +ellipsis, which has different spacing afterwards, .... Look closely to +see the difference. + + +File: texinfo.info, Node: bullet, Prev: dots, Up: Dots Bullets + +14.4.2 `@bullet'{} (*) +---------------------- + +Use the `@bullet{}' command to generate a large round dot, or the +closest possible thing to one. In Info, an asterisk is used. + + Here is a bullet: * + + When you use `@bullet' in `@itemize', you do not need to type the +braces, because `@itemize' supplies them. (*Note `@itemize': itemize.) + + +File: texinfo.info, Node: TeX and copyright, Next: pounds, Prev: Dots Bullets, Up: Insertions + +14.5 Inserting TeX and Legal Symbols: (C), (R) +============================================== + +The logo `TeX' is typeset in a special fashion and it needs an +@-command. The copyright and registered symbols, `(C)' and `(R)', is +also special. Each of these commands is followed by a pair of braces, +`{}', without any whitespace between the name of the command and the +braces. + +* Menu: + +* tex:: The TeX logos. +* copyright symbol:: The copyright symbol (c in a circle). +* registered symbol:: The registered symbol (R in a circle). + + +File: texinfo.info, Node: tex, Next: copyright symbol, Up: TeX and copyright + +14.5.1 `@TeX'{} (TeX) and `@LaTeX'{} (LaTeX) +-------------------------------------------- + +Use the `@TeX{}' command to generate `TeX'. In a printed manual, this +is a special logo that is different from three ordinary letters. In +Info, it just looks like `TeX'. + + Similarly, use the `@LaTeX{}' command to generate `LaTeX', which is +even more special in printed manuals (and different from the incorrect +`La@TeX{}'. In Info, the result is just `LaTeX'. (LaTeX is another +macro package built on top of TeX, very loosely analogous to Texinfo in +that it emphasizes logical structure, but much (much) larger.) + + The spelling of these commands are unusual among Texinfo commands in +that they use both uppercase and lowercase letters. + + +File: texinfo.info, Node: copyright symbol, Next: registered symbol, Prev: tex, Up: TeX and copyright + +14.5.2 `@copyright{}' ((C)) +--------------------------- + +Use the `@copyright{}' command to generate the copyright symbol, `(C)'. +Where possible, this is a `c' inside a circle; in Info, this is `(C)'. + + +File: texinfo.info, Node: registered symbol, Prev: copyright symbol, Up: TeX and copyright + +14.5.3 `@registeredsymbol{}' ((R)) +---------------------------------- + +Use the `@registeredsymbol{}' command to generate the registered +symbol, `(R)'. Where possible, this is an `R' inside a circle; in +Info, this is `(R)'. + + +File: texinfo.info, Node: pounds, Next: minus, Prev: TeX and copyright, Up: Insertions + +14.6 `@pounds'{} (#): Pounds Sterling +===================================== + +Use the `@pounds{}' command to generate `#'. In a printed manual, this +is the symbol for the currency pounds sterling. In Info, it is a `#'. +Other currency symbols are unfortunately not available. + + +File: texinfo.info, Node: minus, Next: math, Prev: pounds, Up: Insertions + +14.7 `@minus'{} (-): Inserting a Minus Sign +=========================================== + +Use the `@minus{}' command to generate a minus sign. In a fixed-width +font, this is a single hyphen, but in a proportional font, the symbol +is the customary length for a minus sign--a little longer than a +hyphen, shorter than an em-dash: + + `-' is a minus sign generated with `@minus{}', + + `-' is a hyphen generated with the character `-', + + `--' is an em-dash for text. + +In the fixed-width font used by Info, `@minus{}' is the same as a +hyphen. + + You should not use `@minus{}' inside `@code' or `@example' because +the width distinction is not made in the fixed-width font they use. + + When you use `@minus' to specify the mark beginning each entry in an +itemized list, you do not need to type the braces (*note `@itemize': +itemize.). + + +File: texinfo.info, Node: math, Next: Glyphs, Prev: minus, Up: Insertions + +14.8 `@math': Inserting Mathematical Expressions +================================================ + +You can write a short mathematical expression with the `@math' command. +Write the mathematical expression between braces, like this: + + @math{(a + b)(a + b) = a^2 + 2ab + b^2} + +This produces the following in Info and HTML: + + (a + b)(a + b) = a^2 + 2ab + b^2 + + Thus, the `@math' command has no effect on the Info and HTML output; +`makeinfo' just reproduces the input, it does not try to interpret the +mathematics in any way. + + `@math' implies `@tex'. This not only makes it possible to write +superscripts and subscripts (as in the above example), but also allows +you to use any of the plain TeX math control sequences. It's +conventional to use `\' instead of `@' for these commands. As in: + @math{\sin 2\pi \equiv \cos 3\pi} + +which looks like the input in Info and HTML: + \sin 2\pi \equiv \cos 3\pi + + Since `\' is an escape character inside `@math', you can use `@\' to +get a literal backslash (`\\' will work in TeX, but you'll get the +literal `\\' in Info). `@\' is not defined outside of `@math', since a +`\' ordinarily produces a literal `\'. + + For displayed equations, you must at present use TeX directly (*note +Raw Formatter Commands::). + + +File: texinfo.info, Node: Glyphs, Prev: math, Up: Insertions + +14.9 Glyphs for Examples +======================== + +In Texinfo, code is often illustrated in examples that are delimited by +`@example' and `@end example', or by `@lisp' and `@end lisp'. In such +examples, you can indicate the results of evaluation or an expansion +using `=>' or `==>'. Likewise, there are commands to insert glyphs to +indicate printed output, error messages, equivalence of expressions, +and the location of point. + + The glyph-insertion commands do not need to be used within an +example, but most often they are. Every glyph-insertion command is +followed by a pair of left- and right-hand braces. + +* Menu: + +* Glyphs Summary:: +* result:: How to show the result of expression. +* expansion:: How to indicate an expansion. +* Print Glyph:: How to indicate printed output. +* Error Glyph:: How to indicate an error message. +* Equivalence:: How to indicate equivalence. +* Point Glyph:: How to indicate the location of point. + + +File: texinfo.info, Node: Glyphs Summary, Next: result, Up: Glyphs + +14.9.1 Glyphs Summary +--------------------- + +Here are the different glyph commands: + +=> + `@result{}' points to the result of an expression. + +==> + `@expansion{}' shows the results of a macro expansion. + +-| + `@print{}' indicates printed output. + +error--> + `@error{}' indicates that the following text is an error message. + +== + `@equiv{}' indicates the exact equivalence of two forms. + +-!- + `@point{}' shows the location of point. + +* Menu: + +* result:: +* expansion:: +* Print Glyph:: +* Error Glyph:: +* Equivalence:: +* Point Glyph:: + + +File: texinfo.info, Node: result, Next: expansion, Prev: Glyphs Summary, Up: Glyphs + +14.9.2 `@result{}' (=>): Indicating Evaluation +---------------------------------------------- + +Use the `@result{}' command to indicate the result of evaluating an +expression. + + The `@result{}' command is displayed as `=>' in Info and HTML and as +a true double stemmed arrow in the printed output. + + Thus, the following, + + (cdr '(1 2 3)) + => (2 3) + +may be read as "`(cdr '(1 2 3))' evaluates to `(2 3)'". + + +File: texinfo.info, Node: expansion, Next: Print Glyph, Prev: result, Up: Glyphs + +14.9.3 `@expansion{}' (==>): Indicating an Expansion +---------------------------------------------------- + +When an expression is a macro call, it expands into a new expression. +You can indicate the result of the expansion with the `@expansion{}' +command. + + The `@expansion{}' command is displayed as `==>' in Info and HTML, +and as a long arrow with a flat base in the printed output. + + For example, the following + + @lisp + (third '(a b c)) + @expansion{} (car (cdr (cdr '(a b c)))) + @result{} c + @end lisp + +produces + + (third '(a b c)) + ==> (car (cdr (cdr '(a b c)))) + => c + +which may be read as: + + `(third '(a b c))' expands to `(car (cdr (cdr '(a b c))))'; the + result of evaluating the expression is `c'. + +Often, as in this case, an example looks better if the `@expansion{}' +and `@result{}' commands are indented. + + +File: texinfo.info, Node: Print Glyph, Next: Error Glyph, Prev: expansion, Up: Glyphs + +14.9.4 `@print{}' (-|): Indicating Printed Output +------------------------------------------------- + +Sometimes an expression will print output during its execution. You +can indicate the printed output with the `@print{}' command. + + The `@print{}' command is displayed as `-|' in Info and HTML and +(similarly) as a horizontal dash butting against a vertical bar in the +printed output. + + In the following example, the printed text is indicated with `-|', +and the value of the expression follows on the last line. + + (progn (print 'foo) (print 'bar)) + -| foo + -| bar + => bar + +In a Texinfo source file, this example is written as follows: + + @lisp + (progn (print 'foo) (print 'bar)) + @print{} foo + @print{} bar + @result{} bar + @end lisp + + +File: texinfo.info, Node: Error Glyph, Next: Equivalence, Prev: Print Glyph, Up: Glyphs + +14.9.5 `@error{}' (error-->): Indicating an Error Message +--------------------------------------------------------- + +A piece of code may cause an error when you evaluate it. You can +designate the error message with the `@error{}' command. + + The `@error{}' command is displayed as `error-->' in Info and HTML +and as the word `error' in a box in the printed output. + + Thus, + + @lisp + (+ 23 'x) + @error{} Wrong type argument: integer-or-marker-p, x + @end lisp + +produces + + (+ 23 'x) + error--> Wrong type argument: integer-or-marker-p, x + +This indicates that the following error message is printed when you +evaluate the expression: + + Wrong type argument: integer-or-marker-p, x + + `error-->' itself is not part of the error message. + + +File: texinfo.info, Node: Equivalence, Next: Point Glyph, Prev: Error Glyph, Up: Glyphs + +14.9.6 `@equiv{}' (==): Indicating Equivalence +---------------------------------------------- + +Sometimes two expressions produce identical results. You can indicate +the exact equivalence of two forms with the `@equiv{}' command. + + The `@equiv{}' command is displayed as `==' in Info and HTML and as a +standard mathematical equivalence sign (three parallel horizontal +lines) in the printed output. + + Thus, + + @lisp + (make-sparse-keymap) @equiv{} (list 'keymap) + @end lisp + +produces + + (make-sparse-keymap) == (list 'keymap) + +This indicates that evaluating `(make-sparse-keymap)' produces +identical results to evaluating `(list 'keymap)'. + + +File: texinfo.info, Node: Point Glyph, Prev: Equivalence, Up: Glyphs + +14.9.7 `@point{}' (-!-): Indicating Point in a Buffer +----------------------------------------------------- + +Sometimes you need to show an example of text in an Emacs buffer. In +such examples, the convention is to include the entire contents of the +buffer in question between two lines of dashes containing the buffer +name. + + You can use the `@point{}' command to show the location of point in +the text in the buffer. (The symbol for point, of course, is not part +of the text in the buffer; it indicates the place _between_ two +characters where point is located.) + + The `@point{}' command is displayed as `-!-' in Info and HTML and as +a small five pointed star in the printed output. + + The following example shows the contents of buffer `foo' before and +after evaluating a Lisp command to insert the word `changed'. + + ---------- Buffer: foo ---------- + This is the -!-contents of foo. + ---------- Buffer: foo ---------- + + (insert "changed ") + => nil + ---------- Buffer: foo ---------- + This is the changed -!-contents of foo. + ---------- Buffer: foo ---------- + + In a Texinfo source file, the example is written like this: + + @example + ---------- Buffer: foo ---------- + This is the @point{}contents of foo. + ---------- Buffer: foo ---------- + + (insert "changed ") + @result{} nil + ---------- Buffer: foo ---------- + This is the changed @point{}contents of foo. + ---------- Buffer: foo ---------- + @end example + + +File: texinfo.info, Node: Breaks, Next: Definition Commands, Prev: Insertions, Up: Top + +15 Forcing and Preventing Breaks +******************************** + +Usually, a Texinfo file is processed both by TeX and by one of the Info +formatting commands. Line, paragraph, or page breaks sometimes occur +in the `wrong' place in one or other form of output. You must ensure +that text looks right both in the printed manual and in the Info file. + + For example, in a printed manual, page breaks may occur awkwardly in +the middle of an example; to prevent this, you can hold text together +using a grouping command that keeps the text from being split across +two pages. Conversely, you may want to force a page break where none +would occur normally. Fortunately, problems like these do not often +arise. When they do, use the break, break prevention, or pagination +commands. + +* Menu: + +* Break Commands:: Summary of break-related commands. +* Line Breaks:: Forcing line breaks. +* - and hyphenation:: Helping TeX with hyphenation points. +* w:: Preventing unwanted line breaks in text. +* tie:: Inserting an unbreakable but varying space. +* sp:: Inserting blank lines. +* page:: Forcing the start of a new page. +* group:: Preventing unwanted page breaks. +* need:: Another way to prevent unwanted page breaks. + + +File: texinfo.info, Node: Break Commands, Next: Line Breaks, Up: Breaks + +15.1 Break Commands +=================== + +The break commands create or allow line and paragraph breaks: + +`@*' + Force a line break. + +`@sp N' + Skip N blank lines. + +`@-' + Insert a discretionary hyphen. + +`@hyphenation{HY-PHEN-A-TED WORDS}' + Define hyphen points in HY-PHEN-A-TED WORDS. + + These commands hold text together on a single line: + +`@w{TEXT}' + Prevent TEXT from being split and hyphenated across two lines. + +`@tie{}' + Insert a normal interword space at which a line break may not + occur. + + The pagination commands apply only to printed output, since Info +files do not have pages. + +`@page' + Start a new page in the printed manual. + +`@group' + Hold text together that must appear on one printed page. + +`@need MILS' + Start a new printed page if not enough space on this one. + + +File: texinfo.info, Node: Line Breaks, Next: - and hyphenation, Prev: Break Commands, Up: Breaks + +15.2 `@*' and `@/': Generate and Allow Line Breaks +================================================== + +The `@*' command forces a line break in both the printed manual and in +Info. The `@/' command allows a line break (printed manual only). + + Here is an example with `@*': + + This line @* is broken @*in two places. + +produces + + This line + is broken + in two places. + + The `@/' command can be useful within a url (*note `@uref': uref.), +which tend to be long and are otherwise unbreakable. For example: + + The official Texinfo home page is on the GNU web site: + @uref{http://www.gnu.org/@/software/@/gnu/@/texinfo}. + +produces + + The official Texinfo home page is on the GNU web site: + `http://www.gnu.org/software/gnu/texinfo'. + +Without the `@/' commands, TeX would have nowhere to break the line. +`@/' has no effect in the online output. + + +File: texinfo.info, Node: - and hyphenation, Next: w, Prev: Line Breaks, Up: Breaks + +15.3 `@-' and `@hyphenation': Helping TeX Hyphenate +=================================================== + +Although TeX's hyphenation algorithm is generally pretty good, it does +miss useful hyphenation points from time to time. (Or, far more +rarely, insert an incorrect hyphenation.) So, for documents with an +unusual vocabulary or when fine-tuning for a printed edition, you may +wish to help TeX out. Texinfo supports two commands for this: + +`@-' + Insert a discretionary hyphen, i.e., a place where TeX can (but + does not have to) hyphenate. This is especially useful when you + notice an overfull hbox is due to TeX missing a hyphenation (*note + Overfull hboxes::). TeX will not insert any hyphenation points + itself into a word containing `@-'. + +`@hyphenation{HY-PHEN-A-TED WORDS}' + Tell TeX how to hyphenate HY-PHEN-A-TED WORDS. As shown, you put + a `-' at each hyphenation point. For example: + @hyphenation{man-u-script man-u-scripts} + TeX only uses the specified hyphenation points when the words + match exactly, so give all necessary variants. + + Info output is not hyphenated, so these commands have no effect there. + + +File: texinfo.info, Node: w, Next: tie, Prev: - and hyphenation, Up: Breaks + +15.4 `@w'{TEXT}: Prevent Line Breaks +==================================== + +`@w{TEXT}' outputs TEXT and prohibits line breaks within TEXT, for both +TeX and `makeinfo'. + + Thus, you can use `@w' to produce a non-breakable space, fixed at the +width of a normal interword space: + + @w{ } @w{ } @w{ } indentation. + +produces: + + indentation. + + The space from `@w{ }', as well as being non-breakable, also will not +stretch or shrink. Sometimes that is what you want, for instance if +you're doing indenting manual. However, usually you want a normal +interword space that does stretch and shrink (in the printed output); +see the `@tie' command in the next section. + + You can also use the `@w' command to prevent TeX from automatically +hyphenating a long name or phrase that happens to fall near the end of +a line. `makeinfo' does not ever hyphenate words. + + You can also use `@w' to avoid unwanted keyword expansion in source +control systems. For example, to literally write $Id$ in your +document, use `@w{$}Id$'. + + +File: texinfo.info, Node: tie, Next: sp, Prev: w, Up: Breaks + +15.5 `@tie{}': Inserting an Unbreakable Space +============================================= + +The `@tie{}' command produces a normal interword space at which a line +break may not occur. Always write it with following (empty) braces, as +usual for commands used within a paragraph. Here's an example: + + @TeX{} was written by Donald E.@tie{}Knuth. + +produces: + + TeX was written by Donald E. Knuth. + + There are two important differences between `@tie{}' and `@w{ }': + + * The space produced by `@tie{}' will stretch and shrink slightly + along with the normal interword spaces in the paragraph; the space + produced by `@w{ }' will not vary. + + * `@tie{}' allows hyphenation of the surrounding words, while + `@w{ }' inhibits hyphenation of those words (for TeXnical reasons, + namely that it produces an `\hbox'). + + + +File: texinfo.info, Node: sp, Next: page, Prev: tie, Up: Breaks + +15.6 `@sp' N: Insert Blank Lines +================================ + +A line beginning with and containing only `@sp N' generates N blank +lines of space in both the printed manual and the Info file. `@sp' +also forces a paragraph break. For example, + + @sp 2 + +generates two blank lines. + + The `@sp' command is most often used in the title page. + + +File: texinfo.info, Node: page, Next: group, Prev: sp, Up: Breaks + +15.7 `@page': Start a New Page +============================== + +A line containing only `@page' starts a new page in a printed manual. +The command has no effect on Info files since they are not paginated. +An `@page' command is often used in the `@titlepage' section of a +Texinfo file to start the copyright page. + + +File: texinfo.info, Node: group, Next: need, Prev: page, Up: Breaks + +15.8 `@group': Prevent Page Breaks +================================== + +The `@group' command (on a line by itself) is used inside an `@example' +or similar construct to begin an unsplittable vertical group, which +will appear entirely on one page in the printed output. The group is +terminated by a line containing only `@end group'. These two lines +produce no output of their own, and in the Info file output they have +no effect at all. + + Although `@group' would make sense conceptually in a wide variety of +contexts, its current implementation works reliably only within +`@example' and variants, and within `@display', `@format', `@flushleft' +and `@flushright'. *Note Quotations and Examples::. (What all these +commands have in common is that each line of input produces a line of +output.) In other contexts, `@group' can cause anomalous vertical +spacing. + + This formatting requirement means that you should write: + + @example + @group + ... + @end group + @end example + +with the `@group' and `@end group' commands inside the `@example' and +`@end example' commands. + + The `@group' command is most often used to hold an example together +on one page. In this Texinfo manual, more than 100 examples contain +text that is enclosed between `@group' and `@end group'. + + If you forget to end a group, you may get strange and unfathomable +error messages when you run TeX. This is because TeX keeps trying to +put the rest of the Texinfo file onto the one page and does not start +to generate error messages until it has processed considerable text. +It is a good rule of thumb to look for a missing `@end group' if you +get incomprehensible error messages in TeX. + + +File: texinfo.info, Node: need, Prev: group, Up: Breaks + +15.9 `@need MILS': Prevent Page Breaks +====================================== + +A line containing only `@need N' starts a new page in a printed manual +if fewer than N mils (thousandths of an inch) remain on the current +page. Do not use braces around the argument N. The `@need' command +has no effect on Info files since they are not paginated. + + This paragraph is preceded by an `@need' command that tells TeX to +start a new page if fewer than 800 mils (eight-tenths inch) remain on +the page. It looks like this: + + @need 800 + This paragraph is preceded by ... + + The `@need' command is useful for preventing orphans (single lines at +the bottoms of printed pages). + + +File: texinfo.info, Node: Definition Commands, Next: Conditionals, Prev: Breaks, Up: Top + +16 Definition Commands +********************** + +The `@deffn' command and the other "definition commands" enable you to +describe functions, variables, macros, commands, user options, special +forms and other such artifacts in a uniform format. + + In the Info file, a definition causes the entity +category--`Function', `Variable', or whatever--to appear at the +beginning of the first line of the definition, followed by the entity's +name and arguments. In the printed manual, the command causes TeX to +print the entity's name and its arguments on the left margin and print +the category next to the right margin. In both output formats, the +body of the definition is indented. Also, the name of the entity is +entered into the appropriate index: `@deffn' enters the name into the +index of functions, `@defvr' enters it into the index of variables, and +so on (*note Predefined Indices::). + + A manual need not and should not contain more than one definition for +a given name. An appendix containing a summary should use `@table' +rather than the definition commands. + +* Menu: + +* Def Cmd Template:: Writing descriptions using definition commands. +* Def Cmd Continuation Lines:: Continuing the heading over source lines. +* Optional Arguments:: Handling optional and repeated arguments. +* deffnx:: Group two or more `first' lines. +* Def Cmds in Detail:: Reference for all the definition commands. +* Def Cmd Conventions:: Conventions for writing definitions. +* Sample Function Definition:: An example. + + +File: texinfo.info, Node: Def Cmd Template, Next: Def Cmd Continuation Lines, Up: Definition Commands + +16.1 The Template for a Definition +================================== + +The `@deffn' command is used for definitions of entities that resemble +functions. To write a definition using the `@deffn' command, write the +`@deffn' command at the beginning of a line and follow it on the same +line by the category of the entity, the name of the entity itself, and +its arguments (if any). Then write the body of the definition on +succeeding lines. (You may embed examples in the body.) Finally, end +the definition with an `@end deffn' command written on a line of its +own. + + The other definition commands follow the same format: a line with the +`@def...' command and whatever arguments are appropriate for that +command; the body of the definition; and a corresponding `@end' line. + + The template for a definition looks like this: + + @deffn CATEGORY NAME ARGUMENTS... + BODY-OF-DEFINITION + @end deffn + +For example, + + @deffn Command forward-word count + This command moves point forward @var{count} words + (or backward if @var{count} is negative). ... + @end deffn + +produces + + -- Command: forward-word count + This function moves point forward COUNT words (or backward if + COUNT is negative). ... + + Capitalize the category name like a title. If the name of the +category contains spaces, as in the phrase `Interactive Command', +enclose it in braces. For example: + + @deffn {Interactive Command} isearch-forward + ... + @end deffn + +Otherwise, the second word will be mistaken for the name of the entity. +As a general rule, when any of the arguments in the heading line +_except_ the last one are more than one word, you need to enclose them +in braces. + + Some of the definition commands are more general than others. The +`@deffn' command, for example, is the general definition command for +functions and the like--for entities that may take arguments. When you +use this command, you specify the category to which the entity belongs. +Three predefined, specialized variations (`@defun', `@defmac', and +`@defspec') specify the category for you: "Function", "Macro", and +"Special Form" respectively. (In Lisp, a special form is an entity +much like a function.) Similarly, the general `@defvr' command is +accompanied by several specialized variations for describing particular +kinds of variables. + + *Note Sample Function Definition::, for a detailed example of a +function definition, including the use of `@example' inside the +definition. + + Unfortunately, due to implementation difficulties, macros are not +expanded in `@deffn' and all the other definition commands. + + +File: texinfo.info, Node: Def Cmd Continuation Lines, Next: Optional Arguments, Prev: Def Cmd Template, Up: Definition Commands + +16.2 Definition Command Continuation Lines +========================================== + +The heading line of a definition command can get very long. Therefore, +Texinfo has a special syntax allowing them to be continued over +multiple lines of the source file: a lone `@' at the end of each line +to be continued. Here's an example: + + @defun fn-name @ + arg1 arg2 arg3 + This is the basic continued defun. + @end defun + +produces: + + -- Function: fn-name arg1 arg2 arg3 + This is the basic continued defun. + +As you can see, the continued lines are combined, as if they had been +typed on one source line. + + Although this example only shows a one-line continuation, +continuations may extend over any number of lines; simply put an `@' at +the end of each line to be continued. + + The `@' character does not have to be the last character on the +physical line: whitespace is allowed (and ignored) afterwards. + + In general, any number of spaces or tabs around the `@' continuation +character, both on the line with the `@' and on the continued line, are +collapsed into a single space. There is one exception: the Texinfo +processors will not fully collapse whitespace around a continuation +inside braces. For example: + + @deffn {Category @ + Name} ... + +The output (not shown) has excess space between `Category' and `Name'. +In this case, simply elide any unwanted whitespace in your input, or +put the continuation `@' outside braces. + + `@' does not (currently) function as a continuation character in +_any_ other context. Ordinarily, `@' followed by a whitespace +character (space, tab, newline) produces a normal interword space +(*note Multiple Spaces::). + + +File: texinfo.info, Node: Optional Arguments, Next: deffnx, Prev: Def Cmd Continuation Lines, Up: Definition Commands + +16.3 Optional and Repeated Arguments +==================================== + +Some entities take optional or repeated arguments, which may be +specified by a distinctive glyph that uses square brackets and +ellipses. For example, a special form often breaks its argument list +into separate arguments in more complicated ways than a straightforward +function. + + An argument enclosed within square brackets is optional. Thus, +[OPTIONAL-ARG] means that OPTIONAL-ARG is optional. An argument +followed by an ellipsis is optional and may be repeated more than once. +Thus, REPEATED-ARGS`...' stands for zero or more arguments. +Parentheses are used when several arguments are grouped into additional +levels of list structure in Lisp. + + Here is the `@defspec' line of an example of an imaginary special +form: + + -- Special Form: foobar (VAR [FROM TO [INC]]) BODY... + +In this example, the arguments FROM and TO are optional, but must both +be present or both absent. If they are present, INC may optionally be +specified as well. These arguments are grouped with the argument VAR +into a list, to distinguish them from BODY, which includes all +remaining elements of the form. + + In a Texinfo source file, this `@defspec' line is written like this +(except it would not be split over two lines, as it is in this example). + + @defspec foobar (@var{var} [@var{from} @var{to} + [@var{inc}]]) @var{body}@dots{} + +The function is listed in the Command and Variable Index under `foobar'. + + +File: texinfo.info, Node: deffnx, Next: Def Cmds in Detail, Prev: Optional Arguments, Up: Definition Commands + +16.4 Two or More `First' Lines +============================== + +To create two or more `first' or header lines for a definition, follow +the first `@deffn' line by a line beginning with `@deffnx'. The +`@deffnx' command works exactly like `@deffn' except that it does not +generate extra vertical white space between it and the preceding line. + + For example, + + @deffn {Interactive Command} isearch-forward + @deffnx {Interactive Command} isearch-backward + These two search commands are similar except ... + @end deffn + +produces + + -- Interactive Command: isearch-forward + -- Interactive Command: isearch-backward + These two search commands are similar except ... + + Each definition command has an `x' form: `@defunx', `@defvrx', +`@deftypefunx', etc. + + The `x' forms work similarly to `@itemx' (*note itemx::). + + +File: texinfo.info, Node: Def Cmds in Detail, Next: Def Cmd Conventions, Prev: deffnx, Up: Definition Commands + +16.5 The Definition Commands +============================ + +Texinfo provides more than a dozen definition commands, all of which +are described in this section. + + The definition commands automatically enter the name of the entity in +the appropriate index: for example, `@deffn', `@defun', and `@defmac' +enter function names in the index of functions; `@defvr' and `@defvar' +enter variable names in the index of variables. + + Although the examples that follow mostly illustrate Lisp, the commands +can be used for other programming languages. + +* Menu: + +* Functions Commands:: Commands for functions and similar entities. +* Variables Commands:: Commands for variables and similar entities. +* Typed Functions:: Commands for functions in typed languages. +* Typed Variables:: Commands for variables in typed languages. +* Data Types:: The definition command for data types. +* Abstract Objects:: Commands for object-oriented programming. + + +File: texinfo.info, Node: Functions Commands, Next: Variables Commands, Up: Def Cmds in Detail + +16.5.1 Functions and Similar Entities +------------------------------------- + +This section describes the commands for describing functions and similar +entities: + +`@deffn CATEGORY NAME ARGUMENTS...' + The `@deffn' command is the general definition command for + functions, interactive commands, and similar entities that may take + arguments. You must choose a term to describe the category of + entity being defined; for example, "Function" could be used if the + entity is a function. The `@deffn' command is written at the + beginning of a line and is followed on the same line by the + category of entity being described, the name of this particular + entity, and its arguments, if any. Terminate the definition with + `@end deffn' on a line of its own. + + For example, here is a definition: + + @deffn Command forward-char nchars + Move point forward @var{nchars} characters. + @end deffn + + This shows a rather terse definition for a "command" named + `forward-char' with one argument, NCHARS. + + `@deffn' and prints argument names such as NCHARS in slanted type + in the printed output, because we think of these names as + metasyntactic variables--they stand for the actual argument values. + Within the text of the description, however, write an argument name + explicitly with `@var' to refer to the value of the argument. In + the example above, we used `@var{nchars}' in this way. + + In the unusual case when an argument name contains `--', or + another character sequence which is treated specially (*note + Conventions::), use `@var' around the argument. This causes the + name to be printed in slanted typewriter, instead of the regular + slanted font, exactly as input. + + The template for `@deffn' is: + + @deffn CATEGORY NAME ARGUMENTS... + BODY-OF-DEFINITION + @end deffn + +`@defun NAME ARGUMENTS...' + The `@defun' command is the definition command for functions. + `@defun' is equivalent to `@deffn Function ...'. Terminate the + definition with `@end defun' on a line of its own. Thus, the + template is: + + @defun FUNCTION-NAME ARGUMENTS... + BODY-OF-DEFINITION + @end defun + +`@defmac NAME ARGUMENTS...' + The `@defmac' command is the definition command for macros. + `@defmac' is equivalent to `@deffn Macro ...' and works like + `@defun'. + +`@defspec NAME ARGUMENTS...' + The `@defspec' command is the definition command for special + forms. (In Lisp, a special form is an entity much like a function, + *note Special Forms: (elisp)Special Forms.) `@defspec' is + equivalent to `@deffn {Special Form} ...' and works like `@defun'. + + All these commands create entries in the index of functions. + + +File: texinfo.info, Node: Variables Commands, Next: Typed Functions, Prev: Functions Commands, Up: Def Cmds in Detail + +16.5.2 Variables and Similar Entities +------------------------------------- + +Here are the commands for defining variables and similar entities: + +`@defvr CATEGORY NAME' + The `@defvr' command is a general definition command for something + like a variable--an entity that records a value. You must choose + a term to describe the category of entity being defined; for + example, "Variable" could be used if the entity is a variable. + Write the `@defvr' command at the beginning of a line and follow + it on the same line by the category of the entity and the name of + the entity. + + Capitalize the category name like a title. If the name of the + category contains spaces, as in the name "User Option", enclose it + in braces. Otherwise, the second word will be mistaken for the + name of the entity. For example, + + @defvr {User Option} fill-column + This buffer-local variable specifies + the maximum width of filled lines. + ... + @end defvr + + Terminate the definition with `@end defvr' on a line of its own. + + The template is: + + @defvr CATEGORY NAME + BODY-OF-DEFINITION + @end defvr + + `@defvr' creates an entry in the index of variables for NAME. + +`@defvar NAME' + The `@defvar' command is the definition command for variables. + `@defvar' is equivalent to `@defvr Variable ...'. + + For example: + + @defvar kill-ring + ... + @end defvar + + The template is: + + @defvar NAME + BODY-OF-DEFINITION + @end defvar + + `@defvar' creates an entry in the index of variables for NAME. + +`@defopt NAME' + The `@defopt' command is the definition command for "user + options", i.e., variables intended for users to change according to + taste; Emacs has many such (*note Variables: (emacs)Variables.). + `@defopt' is equivalent to `@defvr {User Option} ...' and works + like `@defvar'. It creates an entry in the index of variables. + + +File: texinfo.info, Node: Typed Functions, Next: Typed Variables, Prev: Variables Commands, Up: Def Cmds in Detail + +16.5.3 Functions in Typed Languages +----------------------------------- + +The `@deftypefn' command and its variations are for describing +functions in languages in which you must declare types of variables and +functions, such as C and C++. + +`@deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS...' + The `@deftypefn' command is the general definition command for + functions and similar entities that may take arguments and that are + typed. The `@deftypefn' command is written at the beginning of a + line and is followed on the same line by the category of entity + being described, the type of the returned value, the name of this + particular entity, and its arguments, if any. + + For example, + + @deftypefn {Library Function} int foobar + (int @var{foo}, float @var{bar}) + ... + @end deftypefn + + (where the text before the "...", shown above as two lines, would + actually be a single line in a real Texinfo file) produces the + following in Info: + + -- Library Function: int foobar (int FOO, float BAR) + ... + + This means that `foobar' is a "library function" that returns an + `int', and its arguments are FOO (an `int') and BAR (a `float'). + + Since in typed languages, the actual names of the arguments are + typically scattered among data type names and keywords, Texinfo + cannot find them without help. You can either (a) write everything + as straight text, and it will be printed in slanted type; (b) use + `@var' for the variable names, which will uppercase the variable + names in Info and use the slanted typewriter font in printed + output; (c) use `@var' for the variable names and `@code' for the + type names and keywords, which will be dutifully obeyed. + + The template for `@deftypefn' is: + + @deftypefn CATEGORY DATA-TYPE NAME ARGUMENTS ... + BODY-OF-DESCRIPTION + @end deftypefn + + Note that if the CATEGORY or DATA TYPE is more than one word then + it must be enclosed in braces to make it a single argument. + + If you are describing a procedure in a language that has packages, + such as Ada, you might consider using `@deftypefn' in a manner + somewhat contrary to the convention described in the preceding + paragraphs. For example: + + @deftypefn stacks private push @ + (@var{s}:in out stack; @ + @var{n}:in integer) + ... + @end deftypefn + + (The `@deftypefn' arguments are shown using continuations (*note + Def Cmd Continuation Lines::), but could be on a single line in a + real Texinfo file.) + + In this instance, the procedure is classified as belonging to the + package `stacks' rather than classified as a `procedure' and its + data type is described as `private'. (The name of the procedure + is `push', and its arguments are S and N.) + + `@deftypefn' creates an entry in the index of functions for NAME. + +`@deftypefun DATA-TYPE NAME ARGUMENTS...' + The `@deftypefun' command is the specialized definition command + for functions in typed languages. The command is equivalent to + `@deftypefn Function ...'. The template is: + + @deftypefun TYPE NAME ARGUMENTS... + BODY-OF-DESCRIPTION + @end deftypefun + + `@deftypefun' creates an entry in the index of functions for NAME. + + + +File: texinfo.info, Node: Typed Variables, Next: Data Types, Prev: Typed Functions, Up: Def Cmds in Detail + +16.5.4 Variables in Typed Languages +----------------------------------- + +Variables in typed languages are handled in a manner similar to +functions in typed languages. *Note Typed Functions::. The general +definition command `@deftypevr' corresponds to `@deftypefn' and the +specialized definition command `@deftypevar' corresponds to +`@deftypefun'. + +`@deftypevr CATEGORY DATA-TYPE NAME' + The `@deftypevr' command is the general definition command for + something like a variable in a typed language--an entity that + records a value. You must choose a term to describe the category + of the entity being defined; for example, "Variable" could be used + if the entity is a variable. + + The `@deftypevr' command is written at the beginning of a line and + is followed on the same line by the category of the entity being + described, the data type, and the name of this particular entity. + + For example: + + @deftypevr {Global Flag} int enable + ... + @end deftypevr + + produces the following in Info: + + -- Global Flag: int enable + ... + + The template is: + + @deftypevr CATEGORY DATA-TYPE NAME + BODY-OF-DESCRIPTION + @end deftypevr + +`@deftypevar DATA-TYPE NAME' + The `@deftypevar' command is the specialized definition command + for variables in typed languages. `@deftypevar' is equivalent to + `@deftypevr Variable ...'. The template is: + + @deftypevar DATA-TYPE NAME + BODY-OF-DESCRIPTION + @end deftypevar + + These commands create entries in the index of variables. + + +File: texinfo.info, Node: Data Types, Next: Abstract Objects, Prev: Typed Variables, Up: Def Cmds in Detail + +16.5.5 Data Types +----------------- + +Here is the command for data types: + +`@deftp CATEGORY NAME ATTRIBUTES...' + The `@deftp' command is the generic definition command for data + types. The command is written at the beginning of a line and is + followed on the same line by the category, by the name of the type + (which is a word like `int' or `float'), and then by names of + attributes of objects of that type. Thus, you could use this + command for describing `int' or `float', in which case you could + use `data type' as the category. (A data type is a category of + certain objects for purposes of deciding which operations can be + performed on them.) + + In Lisp, for example, "pair" names a particular data type, and an + object of that type has two slots called the CAR and the CDR. + Here is how you would write the first line of a definition of + `pair'. + + @deftp {Data type} pair car cdr + ... + @end deftp + + The template is: + + @deftp CATEGORY NAME-OF-TYPE ATTRIBUTES... + BODY-OF-DEFINITION + @end deftp + + `@deftp' creates an entry in the index of data types. + + +File: texinfo.info, Node: Abstract Objects, Prev: Data Types, Up: Def Cmds in Detail + +16.5.6 Object-Oriented Programming +---------------------------------- + +Here are the commands for formatting descriptions about abstract +objects, such as are used in object-oriented programming. A class is a +defined type of abstract object. An instance of a class is a +particular object that has the type of the class. An instance variable +is a variable that belongs to the class but for which each instance has +its own value. + +* Menu: + +* Variables: Object-Oriented Variables. +* Methods: Object-Oriented Methods. + + +File: texinfo.info, Node: Object-Oriented Variables, Next: Object-Oriented Methods, Up: Abstract Objects + +16.5.6.1 Object-Oriented Variables +.................................. + +These commands allow you to define different sorts of variables in +object-oriented programming languages. + +`@defcv CATEGORY CLASS NAME' + The `@defcv' command is the general definition command for + variables associated with classes in object-oriented programming. + The `@defcv' command is followed by three arguments: the category + of thing being defined, the class to which it belongs, and its + name. For instance: + + @defcv {Class Option} Window border-pattern + ... + @end defcv + + produces: + + -- Class Option of Window: border-pattern + ... + + `@defcv' creates an entry in the index of variables. + +`@deftypecv CATEGORY CLASS DATA-TYPE NAME' + The `@deftypecv' command is the definition command for typed class + variables in object-oriented programming. It is analogous to + `@defcv' with the addition of the DATA-TYPE parameter to specify + the type of the instance variable. Ordinarily, the data type is a + programming language construct that should be marked with `@code'. + For instance: + + @deftypecv {Class Option} Window @code{int} border-pattern + ... + @end deftypecv + + produces: + + -- Class Option of Window: `int' border-pattern + ... + + `@deftypecv' creates an entry in the index of variables. + +`@defivar CLASS NAME' + The `@defivar' command is the definition command for instance + variables in object-oriented programming. `@defivar' is + equivalent to `@defcv {Instance Variable} ...'. For instance: + + @defivar Window border-pattern + ... + @end defivar + + produces: + + -- Instance Variable of Window: border-pattern + ... + + `@defivar' creates an entry in the index of variables. + +`@deftypeivar CLASS DATA-TYPE NAME' + The `@deftypeivar' command is the definition command for typed + instance variables in object-oriented programming. It is + analogous to `@defivar' with the addition of the DATA-TYPE + parameter to specify the type of the instance variable. + Ordinarily, the data type is a programming language construct that + should be marked with `@code'. For instance: + + @deftypeivar Window @code{int} border-pattern + ... + @end deftypeivar + + produces: + + -- Instance Variable of Window: `int' border-pattern + ... + + `@deftypeivar' creates an entry in the index of variables. + + + +File: texinfo.info, Node: Object-Oriented Methods, Prev: Object-Oriented Variables, Up: Abstract Objects + +16.5.6.2 Object-Oriented Methods +................................ + +These commands allow you to define different sorts of function-like +entities resembling methods in object-oriented programming languages. +These entities take arguments, as functions do, but are associated with +particular classes of objects. + +`@defop CATEGORY CLASS NAME ARGUMENTS...' + The `@defop' command is the general definition command for these + method-like entities. + + For example, some systems have constructs called "wrappers" that + are associated with classes as methods are, but that act more like + macros than like functions. You could use `@defop Wrapper' to + describe one of these. + + Sometimes it is useful to distinguish methods and "operations". + You can think of an operation as the specification for a method. + Thus, a window system might specify that all window classes have a + method named `expose'; we would say that this window system + defines an `expose' operation on windows in general. Typically, + the operation has a name and also specifies the pattern of + arguments; all methods that implement the operation must accept + the same arguments, since applications that use the operation do + so without knowing which method will implement it. + + Often it makes more sense to document operations than methods. For + example, window application developers need to know about the + `expose' operation, but need not be concerned with whether a given + class of windows has its own method to implement this operation. + To describe this operation, you would write: + + @defop Operation windows expose + + The `@defop' command is written at the beginning of a line and is + followed on the same line by the overall name of the category of + operation, the name of the class of the operation, the name of the + operation, and its arguments, if any. + + The template is: + @defop CATEGORY CLASS NAME ARGUMENTS... + BODY-OF-DEFINITION + @end defop + + `@defop' creates an entry, such as ``expose' on `windows'', in the + index of functions. + +`@deftypeop CATEGORY CLASS DATA-TYPE NAME ARGUMENTS...' + The `@deftypeop' command is the definition command for typed + operations in object-oriented programming. It is similar to + `@defop' with the addition of the DATA-TYPE parameter to specify + the return type of the method. `@deftypeop' creates an entry in + the index of functions. + +`@defmethod CLASS NAME ARGUMENTS...' + The `@defmethod' command is the definition command for methods in + object-oriented programming. A method is a kind of function that + implements an operation for a particular class of objects and its + subclasses. + + `@defmethod' is equivalent to `@defop Method ...'. The command is + written at the beginning of a line and is followed by the name of + the class of the method, the name of the method, and its + arguments, if any. + + For example: + @defmethod `bar-class' bar-method argument + ... + @end defmethod + + illustrates the definition for a method called `bar-method' of the + class `bar-class'. The method takes an argument. + + `@defmethod' creates an entry in the index of functions. + +`@deftypemethod CLASS DATA-TYPE NAME ARGUMENTS...' + The `@deftypemethod' command is the definition command for methods + in object-oriented typed languages, such as C++ and Java. It is + similar to the `@defmethod' command with the addition of the + DATA-TYPE parameter to specify the return type of the method. + `@deftypemethod' creates an entry in the index of functions. + + + +File: texinfo.info, Node: Def Cmd Conventions, Next: Sample Function Definition, Prev: Def Cmds in Detail, Up: Definition Commands + +16.6 Conventions for Writing Definitions +======================================== + +When you write a definition using `@deffn', `@defun', or one of the +other definition commands, please take care to use arguments that +indicate the meaning, as with the COUNT argument to the `forward-word' +function. Also, if the name of an argument contains the name of a +type, such as INTEGER, take care that the argument actually is of that +type. + + +File: texinfo.info, Node: Sample Function Definition, Prev: Def Cmd Conventions, Up: Definition Commands + +16.7 A Sample Function Definition +================================= + +A function definition uses the `@defun' and `@end defun' commands. The +name of the function follows immediately after the `@defun' command and +it is followed, on the same line, by the parameter list. + + Here is a definition from *Note Calling Functions: (elisp)Calling +Functions. + + -- Function: apply function &rest arguments + `apply' calls FUNCTION with ARGUMENTS, just like `funcall' + but with one difference: the last of ARGUMENTS is a list of + arguments to give to FUNCTION, rather than a single argument. + We also say that this list is "appended" to the other + arguments. + + `apply' returns the result of calling FUNCTION. As with + `funcall', FUNCTION must either be a Lisp function or a + primitive function; special forms and macros do not make + sense in `apply'. + + (setq f 'list) + => list + (apply f 'x 'y 'z) + error--> Wrong type argument: listp, z + (apply '+ 1 2 '(3 4)) + => 10 + (apply '+ '(1 2 3 4)) + => 10 + + (apply 'append '((a b c) nil (x y z) nil)) + => (a b c x y z) + + An interesting example of using `apply' is found in the + description of `mapcar'. + + In the Texinfo source file, this example looks like this: + + @defun apply function &rest arguments + @code{apply} calls @var{function} with + @var{arguments}, just like @code{funcall} but with one + difference: the last of @var{arguments} is a list of + arguments to give to @var{function}, rather than a single + argument. We also say that this list is @dfn{appended} + to the other arguments. + + @code{apply} returns the result of calling + @var{function}. As with @code{funcall}, + @var{function} must either be a Lisp function or a + primitive function; special forms and macros do not make + sense in @code{apply}. + + @example + (setq f 'list) + @result{} list + (apply f 'x 'y 'z) + @error{} Wrong type argument: listp, z + (apply '+ 1 2 '(3 4)) + @result{} 10 + (apply '+ '(1 2 3 4)) + @result{} 10 + + (apply 'append '((a b c) nil (x y z) nil)) + @result{} (a b c x y z) + @end example + + An interesting example of using @code{apply} is found + in the description of @code{mapcar}. + @end defun + +In this manual, this function is listed in the Command and Variable +Index under `apply'. + + Ordinary variables and user options are described using a format like +that for functions except that variables do not take arguments. + + +File: texinfo.info, Node: Conditionals, Next: Internationalization, Prev: Definition Commands, Up: Top + +17 Conditionally Visible Text +***************************** + +The "conditional commands" allow you to use different text for +different output formats, or for general conditions that you define. +For example, you can use them to specify different text for the printed +manual and the Info output. + + The conditional commands comprise the following categories. + + * Commands specific to an output format (Info, TeX, HTML, ...). + + * Commands specific to any output format _other_ than a given one + (not Info, not TeX, ...). + + * `Raw' formatter text for any output format, passed straight + through with no interpretation of @-commands. + + * Format-independent variable substitutions, and testing if a + variable is set or clear. + + +* Menu: + +* Conditional Commands:: Text for a given format. +* Conditional Not Commands:: Text for any format other than a given one. +* Raw Formatter Commands:: Using raw formatter commands. +* set clear value:: Variable tests and substitutions. +* Conditional Nesting:: Using conditionals inside conditionals. + + +File: texinfo.info, Node: Conditional Commands, Next: Conditional Not Commands, Up: Conditionals + +17.1 Conditional Commands +========================= + +Texinfo has an `@ifFORMAT' environment for each output format, to allow +conditional inclusion of text for a particular output format. + + `@ifinfo' begins segments of text that should be ignored by TeX when +it typesets the printed manual, and by `makeinfo' when not producing +Info output. The segment of text appears only in the Info file and, +for historical compatibility, the plain text output. + + The environments for the other formats are analogous: + +`@ifdocbook ... @end ifdocbook' + Text to appear only in the Docbook output. + +`@ifhtml ... @end ifhtml' + Text to appear only in the HTML output. + +`@ifplaintext ... @end ifplaintext' + Text to appear only in the plain text output. + +`@iftex ... @end iftex' + Text to appear only in the printed manual. + +`@ifxml ... @end ifxml' + Text to appear only in the XML output. + + The `@if...' and `@end if...' commands must appear on lines by +themselves in your source file. + + Here is an example showing all these conditionals: + + @iftex + This text will appear only in the printed manual. + @end iftex + @ifinfo + However, this text will appear only in Info and plain text. + @end ifinfo + @ifhtml + And this text will only appear in HTML. + @end ifhtml + @ifplaintext + Whereas this text will only appear in plain text. + @end ifplaintext + @ifxml + Notwithstanding that this will only appear in XML. + @end ifxml + @ifdocbook + Nevertheless, this will only appear in Docbook. + @end ifdocbook + +The preceding example produces the following line: + + However, this text will appear only in Info and plain text. + +Notice that you only see one of the input lines, depending on which +version of the manual you are reading. + + +File: texinfo.info, Node: Conditional Not Commands, Next: Raw Formatter Commands, Prev: Conditional Commands, Up: Conditionals + +17.2 Conditional Not Commands +============================= + +You can specify text to be included in any output format _other_ than a +given one with the `@ifnot...' environments: + + @ifnotdocbook ... @end ifnotdocbook + @ifnothtml ... @end ifnothtml + @ifnotinfo ... @end ifnotinfo + @ifnotplaintext ... @end ifnotplaintext + @ifnottex ... @end ifnottex + @ifnotxml ... @end ifnotxml + +The `@ifnot...' command and the `@end' command must appear on lines by +themselves in your actual source file. + + If the output file is being made in the given format, the region is +_ignored_. Otherwise, it is included. + + There is one exception (for historical compatibility): `@ifnotinfo' +text is omitted for both Info and plain text output, not just Info. To +specify text which appears only in Info and not in plain text, use +`@ifnotplaintext', like this: + + @ifinfo + @ifnotplaintext + This will be in Info, but not plain text. + @end ifnotplaintext + @end ifinfo + + The regions delimited by these commands are ordinary Texinfo source as +with `@iftex', not raw formatter source as with `@tex' (*note Raw +Formatter Commands::). + + +File: texinfo.info, Node: Raw Formatter Commands, Next: set clear value, Prev: Conditional Not Commands, Up: Conditionals + +17.3 Raw Formatter Commands +=========================== + +Inside a region delineated by `@iftex' and `@end iftex', you can embed +some raw TeX commands. The Texinfo processors will ignore such a +region unless TeX output is being produced. You can write the TeX +commands as you would write them in a normal TeX file, except that you +must replace the `\' used by TeX with an `@'. For example, in the +`@titlepage' section of a Texinfo file, you can use the TeX command +`@vskip' to format the copyright page. (The `@titlepage' command +causes Info to ignore the region automatically, as it does with the +`@iftex' command.) + + However, most features of plain TeX will not work within `@iftex', as +they are overridden by Texinfo features. The purpose of `@iftex' is to +provide conditional processing for the Texinfo source, not provide +access to underlying formatting features. + + You can enter plain TeX completely, and use `\' in the TeX commands, +by delineating a region with the `@tex' and `@end tex' commands. All +plain TeX commands and category codes are restored within an `@tex' +region. The sole exception is that the `@' character still introduces +a command, so that `@end tex' can be recognized properly. As with +`@iftex', Texinfo processors will ignore such a region unless TeX +output is being produced. + + In complex cases, you may wish to define new TeX macros within +`@tex'. You must use `\gdef' to do this, not `\def', because `@tex' +regions are processed in a TeX group. + + As an example, here is a mathematical expression written in plain TeX: + + @tex + $$ \chi^2 = \sum_{i=1}^N + \left (y_i - (a + b x_i) + \over \sigma_i\right)^2 $$ + @end tex + +The output of this example will appear only in a printed manual. If +you are reading this in Info, you will not see the equation that appears +in the printed manual. + + Analogously, you can use `@ifhtml ... @end ifhtml' to delimit a +region to be included in HTML output only, and `@html ... @end html' +for a region of raw HTML. + + Likewise, you can use `@ifxml ... @end ifxml' to delimit a region to +be included in XML output only, and `@xml ... @end xml' for a region +of raw XML. + + Again likewise, you can use `@ifdocbook ... @end ifdocbook' to +delimit a region to be included in Docbook output only, and `@docbook +... @end docbook' for a region of raw Docbook. + + In all cases, the exception to the raw processing is that `@' is +still an escape character, so the `@end' command can be recognized. + + +File: texinfo.info, Node: set clear value, Next: Conditional Nesting, Prev: Raw Formatter Commands, Up: Conditionals + +17.4 `@set', `@clear', and `@value' +=================================== + +You can direct the Texinfo formatting commands to format or ignore parts +of a Texinfo file with the `@set', `@clear', `@ifset', and `@ifclear' +commands. + + Here are brief descriptions of these commands, see the following +sections for more details: + +`@set FLAG [VALUE]' + Set the variable FLAG, to the optional VALUE if specifed. + +`@clear FLAG' + Undefine the variable FLAG, whether or not it was previously + defined. + +`@ifset FLAG' + If FLAG is set, text through the next `@end ifset' command is + formatted. If FLAG is clear, text through the following `@end + ifset' command is ignored. + +`@ifclear FLAG' + If FLAG is set, text through the next `@end ifclear' command is + ignored. If FLAG is clear, text through the following `@end + ifclear' command is formatted. + +* Menu: + +* set value:: Expand a flag variable to a string. +* ifset ifclear:: Format a region if a flag is set. +* value Example:: An easy way to update edition information. + + +File: texinfo.info, Node: set value, Next: ifset ifclear, Up: set clear value + +17.4.1 `@set' and `@value' +-------------------------- + +You use the `@set' command to specify a value for a flag, which is +later expanded by the `@value' command. + + A "flag" (aka "variable") is an identifier. It is best to use only +letters and numerals in a flag name, not `-' or `_'--they will work in +some contexts, but not all, due to limitations in TeX. + + The value is the remainder of the input line, and can contain +anything. + + Write the `@set' command like this: + + @set foo This is a string. + +This sets the value of the flag `foo' to "This is a string.". + + The Texinfo formatters then replace an `@value{FLAG}' command with +the string to which FLAG is set. Thus, when `foo' is set as shown +above, the Texinfo formatters convert this: + + @value{foo} +to this: + This is a string. + + You can write an `@value' command within a paragraph; but you must +write an `@set' command on a line of its own. + + If you write the `@set' command like this: + + @set foo + +without specifying a string, the value of `foo' is the empty string. + + If you clear a previously set flag with `@clear FLAG', a subsequent +`@value{flag}' command will report an error. + + For example, if you set `foo' as follows: + + @set howmuch very, very, very + +then the formatters transform + + It is a @value{howmuch} wet day. +into + It is a very, very, very wet day. + + If you write + + @clear howmuch + +then the formatters transform + + It is a @value{howmuch} wet day. +into + It is a {No value for "howmuch"} wet day. + + +File: texinfo.info, Node: ifset ifclear, Next: value Example, Prev: set value, Up: set clear value + +17.4.2 `@ifset' and `@ifclear' +------------------------------ + +When a FLAG is set, the Texinfo formatting commands format text between +subsequent pairs of `@ifset FLAG' and `@end ifset' commands. When the +FLAG is cleared, the Texinfo formatting commands do _not_ format the +text. `@ifclear' operates analogously. + + Write the conditionally formatted text between `@ifset FLAG' and +`@end ifset' commands, like this: + + @ifset FLAG + CONDITIONAL-TEXT + @end ifset + + For example, you can create one document that has two variants, such +as a manual for a `large' and `small' model: + + You can use this machine to dig up shrubs + without hurting them. + + @set large + + @ifset large + It can also dig up fully grown trees. + @end ifset + + Remember to replant promptly ... + +In the example, the formatting commands will format the text between +`@ifset large' and `@end ifset' because the `large' flag is set. + + When FLAG is cleared, the Texinfo formatting commands do _not_ format +the text between `@ifset FLAG' and `@end ifset'; that text is ignored +and does not appear in either printed or Info output. + + For example, if you clear the flag of the preceding example by writing +an `@clear large' command after the `@set large' command (but before +the conditional text), then the Texinfo formatting commands ignore the +text between the `@ifset large' and `@end ifset' commands. In the +formatted output, that text does not appear; in both printed and Info +output, you see only the lines that say, "You can use this machine to +dig up shrubs without hurting them. Remember to replant promptly ...". + + If a flag is cleared with an `@clear FLAG' command, then the +formatting commands format text between subsequent pairs of `@ifclear' +and `@end ifclear' commands. But if the flag is set with `@set FLAG', +then the formatting commands do _not_ format text between an `@ifclear' +and an `@end ifclear' command; rather, they ignore that text. An +`@ifclear' command looks like this: + + @ifclear FLAG + + +File: texinfo.info, Node: value Example, Prev: ifset ifclear, Up: set clear value + +17.4.3 `@value' Example +----------------------- + +You can use the `@value' command to minimize the number of places you +need to change when you record an update to a manual. *Note GNU Sample +Texts::, for the full text of an example of using this to work with +Automake distributions. + + This example is adapted from *Note Overview: (make)Top. + + 1. Set the flags: + + @set EDITION 0.35 Beta + @set VERSION 3.63 Beta + @set UPDATED 14 August 1992 + @set UPDATE-MONTH August 1992 + + 2. Write text for the `@copying' section (*note copying::): + + @copying + This is Edition @value{EDITION}, + last updated @value{UPDATED}, + of @cite{The GNU Make Manual}, + for @code{make}, version @value{VERSION}. + + Copyright ... + + Permission is granted ... + @end copying + + 3. Write text for the title page, for people reading the printed + manual: + + @titlepage + @title GNU Make + @subtitle A Program for Directing Recompilation + @subtitle Edition @value{EDITION}, ... + @subtitle @value{UPDATE-MONTH} + @page + @insertcopying + ... + @end titlepage + + (On a printed cover, a date listing the month and the year looks + less fussy than a date listing the day as well as the month and + year.) + + 4. Write text for the Top node, for people reading the Info file: + + @ifnottex + @node Top + @top Make + + @insertcopying + ... + @end ifnottex + + After you format the manual, the `@value' constructs have been + expanded, so the output contains text like this: + + This is Edition 0.35 Beta, last updated 14 August 1992, + of `The GNU Make Manual', for `make', Version 3.63 Beta. + + When you update the manual, you change only the values of the flags; +you do not need to edit the three sections. + + +File: texinfo.info, Node: Conditional Nesting, Prev: set clear value, Up: Conditionals + +17.5 Conditional Nesting +======================== + +Conditionals can be nested; however, the details are a little tricky. +The difficulty comes with failing conditionals, such as `@ifhtml' when +HTML is not being produced, where the included text is to be ignored. +However, it is not to be _completely_ ignored, since it is useful to +have one `@ifset' inside another, for example--that is a way to include +text only if two conditions are met. Here's an example: + + @ifset somevar + @ifset anothervar + Both somevar and anothervar are set. + @end ifset + @ifclear anothervar + Somevar is set, anothervar is not. + @end ifclear + @end ifset + + Technically, Texinfo requires that for a failing conditional, the +ignored text must be properly nested with respect to that failing +conditional. Unfortunately, it's not always feasible to check that +_all_ conditionals are properly nested, because then the processors +could have to fully interpret the ignored text, which defeats the +purpose of the command. Here's an example illustrating these rules: + + @ifset a + @ifset b + @ifclear ok - ok, ignored + @end junky - ok, ignored + @end ifset + @c WRONG - missing @end ifset. + + Finally, as mentioned above, all conditional commands must be on lines +by themselves, with no text (even spaces) before or after. Otherwise, +the processors cannot reliably determine which commands to consider for +nesting purposes. + + +File: texinfo.info, Node: Internationalization, Next: Defining New Texinfo Commands, Prev: Conditionals, Up: Top + +18 Internationalization +*********************** + +Texinfo has some support for writing in languages other than English, +although this area still needs considerable work. + + For a list of the various accented and special characters Texinfo +supports, see *Note Inserting Accents::. + +* Menu: + +* documentlanguage:: Declaring the current language. +* documentencoding:: Declaring the input encoding. + + +File: texinfo.info, Node: documentlanguage, Next: documentencoding, Up: Internationalization + +18.1 `@documentlanguage CC': Set the Document Language +====================================================== + +The `@documentlanguage' command declares the current document language. +Write it on a line by itself, with a two-letter ISO-639 language code +following (list is included below). If you have a multilingual +document, the intent is to be able to use this command multiple times, +to declare each language change. If the command is not used at all, +the default is `en' for English. + + At present, this command is ignored in Info and HTML output. For +TeX, it causes the file `txi-CC.tex' to be read (if it exists). Such a +file appropriately redefines the various English words used in TeX +output, such as `Chapter', `See', and so on. + + It would be good if this command also changed TeX's ideas of the +current hyphenation patterns (via the TeX primitive `\language'), but +this is unfortunately not currently implemented. + + Hereare the valid language codes, from ISO-639. + +`aa' Afar `ab' Abkhazian `af' Afrikaans +`am' Amharic `ar' Arabic `as' Assamese +`ay' Aymara `az' Azerbaijani `ba' Bashkir +`be' Byelorussian `bg' Bulgarian `bh' Bihari +`bi' Bislama `bn' Bengali; Bangla `bo' Tibetan +`br' Breton `ca' Catalan `co' Corsican +`cs' Czech `cy' Welsh `da' Danish +`de' German `dz' Bhutani `el' Greek +`en' English `eo' Esperanto `es' Spanish +`et' Estonian `eu' Basque `fa' Persian +`fi' Finnish `fj' Fiji `fo' Faroese +`fr' French `fy' Frisian `ga' Irish +`gd' Scots Gaelic `gl' Galician `gn' Guarani +`gu' Gujarati `ha' Hausa `he' Hebrew +`hi' Hindi `hr' Croatian `hu' Hungarian +`hy' Armenian `ia' Interlingua `id' Indonesian +`ie' Interlingue `ik' Inupiak `is' Icelandic +`it' Italian `iu' Inuktitut `ja' Japanese +`jw' Javanese `ka' Georgian `kk' Kazakh +`kl' Greenlandic `km' Cambodian `kn' Kannada +`ks' Kashmiri `ko' Korean `ku' Kurdish +`ky' Kirghiz `la' Latin `ln' Lingala +`lt' Lithuanian `lo' Laothian `lv' Latvian, Lettish +`mg' Malagasy `mi' Maori `mk' Macedonian +`ml' Malayalam `mn' Mongolian `mo' Moldavian +`mr' Marathi `ms' Malay `mt' Maltese +`my' Burmese `na' Nauru `ne' Nepali +`nl' Dutch `no' Norwegian `oc' Occitan +`om' (Afan) Oromo `or' Oriya `pa' Punjabi +`pl' Polish `ps' Pashto, Pushto `pt' Portuguese +`qu' Quechua `rm' Rhaeto-Romance `rn' Kirundi +`ro' Romanian `ru' Russian `rw' Kinyarwanda +`sa' Sanskrit `sd' Sindhi `sg' Sangro +`sh' Serbo-Croatian `si' Sinhalese `sk' Slovak +`sl' Slovenian `sm' Samoan `sn' Shona +`so' Somali `sq' Albanian `sr' Serbian +`ss' Siswati `st' Sesotho `su' Sundanese +`sv' Swedish `sw' Swahili `ta' Tamil +`te' Telugu `tg' Tajik `th' Thai +`ti' Tigrinya `tk' Turkmen `tl' Tagalog +`tn' Setswana `to' Tonga `tr' Turkish +`ts' Tsonga `tt' Tatar `tw' Twi +`ug' Uighur `uk' Ukrainian `ur' Urdu +`uz' Uzbek `vi' Vietnamese `vo' Volapuk +`wo' Wolof `xh' Xhosa `yi' Yiddish +`yo' Yoruba `za' Zhuang `zh' Chinese +`zu' Zulu + + +File: texinfo.info, Node: documentencoding, Prev: documentlanguage, Up: Internationalization + +18.2 `@documentencoding ENC': Set Input Encoding +================================================ + +The `@documentencoding' command declares the input document encoding. +Write it on a line by itself, with a valid encoding specification +following. + + At present, Texinfo supports only three encodings: + +`US-ASCII' + This has no particular effect, but it's included for completeness. + +`ISO-8859-1' + +`ISO-8859-2' + These specify the standard encodings for Western European and + Eastern European languages, respectively. A full description of + the encodings is beyond our scope here; + `http://czyborra.com/charsets/iso8859.html' is one of many useful + references. + + Specifying an encoding ENC has the following effects: + + In Info output, if the option `--enable-encoding' is also given to +`makeinfo', a so-called `Local Variables' section (*note File +Variables: (emacs)File Variables.) is output including ENC. This +allows Info readers to set the encoding appropriately: + + Local Variables: + coding: ENC + End: + + In HTML output, a `<meta>' tag is output, in the `<head>' section of +the HTML, that specifies ENC. Web servers and browsers cooperate to +use this information so the correct encoding is used to display the +page. + + <meta http-equiv="Content-Type" content="text/html; + charset=ENC"> + + In all other cases, it is recognized but ignored. + + +File: texinfo.info, Node: Defining New Texinfo Commands, Next: Hardcopy, Prev: Internationalization, Up: Top + +19 Defining New Texinfo Commands +******************************** + +Texinfo provides several ways to define new commands: + + * A Texinfo "macro" allows you to define a new Texinfo command as any + sequence of text and/or existing commands (including other + macros). The macro can have any number of "parameters"--text you + supply each time you use the macro. + + Incidentally, these macros have nothing to do with the `@defmac' + command, which is for documenting macros in the subject of the + manual (*note Def Cmd Template::). + + * `@alias' is a convenient way to define a new name for an existing + command. + + * `@definfoenclose' allows you to define new commands with + customized output in the Info file. + + +* Menu: + +* Defining Macros:: Defining and undefining new commands. +* Invoking Macros:: Using a macro, once you've defined it. +* Macro Details:: Limitations of Texinfo macros. +* alias:: Command aliases. +* definfoenclose:: Customized highlighting. + + +File: texinfo.info, Node: Defining Macros, Next: Invoking Macros, Up: Defining New Texinfo Commands + +19.1 Defining Macros +==================== + +You use the Texinfo `@macro' command to define a macro, like this: + + @macro MACRONAME{PARAM1, PARAM2, ...} + TEXT ... \PARAM1\ ... + @end macro + + The "parameters" PARAM1, PARAM2, ... correspond to arguments supplied +when the macro is subsequently used in the document (described in the +next section). + + For a macro to work consistently with TeX, MACRONAME must consist +entirely of letters: no digits, hyphens, underscores, or other special +characters. So, we recommend using only letters. However, `makeinfo' +will accept anything except `{}_^='; `_' and `^' are excluded so that +macros can be called in `@math' mode without a following space (*note +`@math': math.). + + If a macro needs no parameters, you can define it either with an empty +list (`@macro foo {}') or with no braces at all (`@macro foo'). + + The definition or "body" of the macro can contain most Texinfo +commands, including previously-defined macros. Not-yet-defined macro +invocations are not allowed; thus, it is not possible to have mutually +recursive Texinfo macros. Also, a macro definition that defines another +macro does not work in TeX due to limitations in the design of `@macro'. + + In the macro body, instances of a parameter name surrounded by +backslashes, as in `\PARAM1\' in the example above, are replaced by the +corresponding argument from the macro invocation. You can use +parameter names any number of times in the body, including zero. + + To get a single `\' in the macro expansion, use `\\'. Any other use +of `\' in the body yields a warning. + + The newlines after the `@macro' line and before the `@end macro' line +are ignored, that is, not included in the macro body. All other +whitespace is treated according to the usual Texinfo rules. + + To allow a macro to be used recursively, that is, in an argument to a +call to itself, you must define it with `@rmacro', like this: + + @rmacro rmac {arg} + a\arg\b + @end rmacro + ... + @rmac{1@rmac{text}2} + + This produces the output `a1atextb2b'. With `@macro' instead of +`@rmacro', an error message is given. + + You can undefine a macro FOO with `@unmacro FOO'. It is not an error +to undefine a macro that is already undefined. For example: + + @unmacro foo + + +File: texinfo.info, Node: Invoking Macros, Next: Macro Details, Prev: Defining Macros, Up: Defining New Texinfo Commands + +19.2 Invoking Macros +==================== + +After a macro is defined (see the previous section), you can use +("invoke") it in your document like this: + + @MACRONAME {ARG1, ARG2, ...} + +and the result will be just as if you typed the body of MACRONAME at +that spot. For example: + + @macro foo {p, q} + Together: \p\ & \q\. + @end macro + @foo{a, b} + +produces: + + Together: a & b. + + Thus, the arguments and parameters are separated by commas and +delimited by braces; any whitespace after (but not before) a comma is +ignored. The braces are required in the invocation (but not the +definition), even when the macro takes no arguments, consistent with +all other Texinfo commands. For example: + + @macro argless {} + No arguments here. + @end macro + @argless{} + +produces: + + No arguments here. + + To insert a comma, brace, or backslash in an argument, prepend a +backslash, as in + + @MACNAME {\\\{\}\,} + +which will pass the (almost certainly error-producing) argument `\{},' +to MACNAME. However, commas in parameters, even if escaped by a +backslash, might cause trouble in TeX. + + If the macro is defined to take a single argument, and is invoked +without any braces, the entire rest of the line after the macro name is +supplied as the argument. For example: + + @macro bar {p} + Twice: \p\ & \p\. + @end macro + @bar aah + +produces: + + Twice: aah & aah. + + If the macro is defined to take a single argument, and is invoked with +braces, the braced text is passed as the argument, regardless of +commas. For example: + + @macro bar {p} + Twice: \p\ & \p\. + @end macro + @bar{a,b} + +produces: + + Twice: a,b & a,b. + + +File: texinfo.info, Node: Macro Details, Next: alias, Prev: Invoking Macros, Up: Defining New Texinfo Commands + +19.3 Macro Details +================== + +Due to unavoidable limitations, certain macro-related constructs cause +problems with TeX. If you get macro-related errors when producing the +printed version of a manual, try expanding the macros with `makeinfo' +by invoking `texi2dvi' with the `-E' option (*note Format with +texi2dvi::). + + * As mentioned earlier, macro names must consist entirely of letters. + + * It is not advisable to redefine any TeX primitive, plain, or + Texinfo command name as a macro. Unfortunately this is a very large + set of names, and the possible resulting errors are completely + random. + + * All macros are expanded inside at least one TeX group. This means + that `@set' and other such commands have no effect inside a macro. + + * Macros containing a command which must be on a line by itself, + such as a conditional, cannot be invoked in the middle of a line. + + * Commas in macro arguments, even if escaped by a backslash, don't + always work. + + * It is best to avoid comments inside macro definitions. + + * Macro arguments cannot cross lines. + + * Macros cannot define macros in the natural way. To do this, you + must use conditionals and raw TeX. For example: + + @ifnottex + @macro ctor {name, arg} + @macro \name\ + something involving \arg\ somehow + @end macro + @end macro + @end ifnottex + @tex + \gdef\ctor#1{\ctorx#1,} + \gdef\ctorx#1,#2,{\def#1{something involving #2 somehow}} + @end tex + + + The `makeinfo' implementation also has limitations: + + * `@verbatim' and macros do not mix; for instance, you can't start a + verbatim block inside a macro and end it outside. (*Note + verbatim::.) Starting any environment inside a macro and ending + it outside may or may not work, for that matter. + + * Macros that completely define macros are ok, but it's not possible + to have incorrectly nested macro definitions. That is, `@macro' + and `@end macro' (likewise for `@rmacro') must be correctly + paired. For example, you cannot start a macro definition within a + macro, and then end the nested definition outside the macro. + + * `@rmacro' is a kludge. + + + One more limitation is common to both implementations: white space is +ignored at the beginnings of lines. + + Future major revisions of Texinfo may ease some of these limitations +(by introducing a new macro syntax). + + +File: texinfo.info, Node: alias, Next: definfoenclose, Prev: Macro Details, Up: Defining New Texinfo Commands + +19.4 `@alias NEW=EXISTING' +========================== + +The `@alias' command defines a new command to be just like an existing +one. This is useful for defining additional markup names, thus +preserving semantic information in the input even though the output +result may be the same. + + Write the `@alias' command on a line by itself, followed by the new +command name, an equals sign, and the existing command name. +Whitespace around the equals sign is ignored. Thus: + @alias NEW = EXISTING + + For example, if your document contains citations for both books and +some other media (movies, for example), you might like to define a +macro `@moviecite{}' that does the same thing as an ordinary `@cite{}' +but conveys the extra semantic information as well. You'd do this as +follows: + + @alias moviecite = cite + + Macros do not always have the same effect as aliases, due to vagaries +of argument parsing. Also, aliases are much simpler to define than +macros. So the command is not redundant. (It was also heavily used in +the Jargon File!) + + Aliases must not be recursive, directly or indirectly. + + It is not advisable to redefine any TeX primitive, plain, or Texinfo +command name as an alias. Unfortunately this is a very large set of +names, and the possible resulting errors are completely random. + + +File: texinfo.info, Node: definfoenclose, Prev: alias, Up: Defining New Texinfo Commands + +19.5 `definfoenclose': Customized Highlighting +============================================== + +A `@definfoenclose' command may be used to define a highlighting +command for Info, but not for TeX. A command defined using +`@definfoenclose' marks text by enclosing it in strings that precede +and follow the text. You can use this to get closer control of your +Info output. + + Presumably, if you define a command with `@definfoenclose' for Info, +you will create a corresponding command for TeX, either in +`texinfo.tex', `texinfo.cnf', or within an `@iftex' in your document. + + Write a `@definfoenclose' command on a line and follow it with three +arguments separated by commas. The first argument to `@definfoenclose' +is the @-command name (without the `@'); the second argument is the +Info start delimiter string; and the third argument is the Info end +delimiter string. The latter two arguments enclose the highlighted +text in the Info file. A delimiter string may contain spaces. Neither +the start nor end delimiter is required. If you do not want a start +delimiter but do want an end delimiter, you must follow the command +name with two commas in a row; otherwise, the Info formatting commands +will naturally misinterpret the end delimiter string you intended as +the start delimiter string. + + If you do a `@definfoenclose' on the name of a pre-defined macro +(such as `@emph', `@strong', `@t', or `@i'), the enclosure definition +will override the built-in definition. + + An enclosure command defined this way takes one argument in braces; +this is intended for new markup commands (*note Marking Text::). + + For example, you can write: + + @definfoenclose phoo,//,\\ + +near the beginning of a Texinfo file to define `@phoo' as an Info +formatting command that inserts `//' before and `\\' after the argument +to `@phoo'. You can then write `@phoo{bar}' wherever you want +`//bar\\' highlighted in Info. + + Also, for TeX formatting, you could write + + @iftex + @global@let@phoo=@i + @end iftex + +to define `@phoo' as a command that causes TeX to typeset the argument +to `@phoo' in italics. + + Each definition applies to its own formatter: one for TeX, the other +for `texinfo-format-buffer' or `texinfo-format-region'. The +`@definfoenclose' command need not be within `@ifinfo', but the raw TeX +commands do need to be in `@iftex'. + + Here is another example: write + + @definfoenclose headword, , : + +near the beginning of the file, to define `@headword' as an Info +formatting command that inserts nothing before and a colon after the +argument to `@headword'. + + `@definfoenclose' definitions must not be recursive, directly or +indirectly. + + +File: texinfo.info, Node: Hardcopy, Next: Creating and Installing Info Files, Prev: Defining New Texinfo Commands, Up: Top + +20 Formatting and Printing Hardcopy +*********************************** + +There are three major shell commands for making a printed manual from a +Texinfo file: one for converting the Texinfo file into a file that will +be printed, a second for sorting indices, and a third for printing the +formatted document. When you use the shell commands, you can either +work directly in the operating system shell or work within a shell +inside GNU Emacs. + + If you are using GNU Emacs, you can use commands provided by Texinfo +mode instead of shell commands. In addition to the three commands to +format a file, sort the indices, and print the result, Texinfo mode +offers key bindings for commands to recenter the output buffer, show the +print queue, and delete a job from the print queue. + +* Menu: + +* Use TeX:: Use TeX to format for hardcopy. +* Format with tex/texindex:: How to format with explicit shell commands. +* Format with texi2dvi:: A simpler way to format. +* Print with lpr:: How to print. +* Within Emacs:: How to format and print from an Emacs shell. +* Texinfo Mode Printing:: How to format and print in Texinfo mode. +* Compile-Command:: How to print using Emacs's compile command. +* Requirements Summary:: TeX formatting requirements summary. +* Preparing for TeX:: What to do before you use TeX. +* Overfull hboxes:: What are and what to do with overfull hboxes. +* smallbook:: How to print small format books and manuals. +* A4 Paper:: How to print on A4 or A5 paper. +* pagesizes:: How to print with customized page sizes. +* Cropmarks and Magnification:: How to print marks to indicate the size + of pages and how to print scaled up output. +* PDF Output:: Portable Document Format output. +* Obtaining TeX:: How to Obtain TeX. + + +File: texinfo.info, Node: Use TeX, Next: Format with tex/texindex, Up: Hardcopy + +20.1 Use TeX +============ + +The typesetting program called TeX is used for formatting a Texinfo +file. TeX is a very powerful typesetting program and, if used +correctly, does an exceptionally good job. (*Note How to Obtain TeX: +Obtaining TeX, for information on how to obtain TeX.) + + The standalone `makeinfo' program and Emacs functions +`texinfo-format-region' and `texinfo-format-buffer' commands read the +very same @-commands in the Texinfo file as does TeX, but process them +differently to make an Info file (*note Creating an Info File::). + + +File: texinfo.info, Node: Format with tex/texindex, Next: Format with texi2dvi, Prev: Use TeX, Up: Hardcopy + +20.2 Format with `tex' and `texindex' +===================================== + +You can format the Texinfo file with the shell command `tex' followed +by the name of the Texinfo file. For example: + + tex foo.texi + +TeX will produce a "DVI file" as well as several auxiliary files +containing information for indices, cross references, etc. The DVI +file (for "DeVice Independent" file) can be printed on virtually any +device (see the following sections). + + The `tex' formatting command itself does not sort the indices; it +writes an output file of unsorted index data. (The `texi2dvi' command +automatically generates indices; *note Format with `texi2dvi': Format +with texi2dvi.) To generate a printed index after running the `tex' +command, you first need a sorted index to work from. The `texindex' +command sorts indices. (The source file `texindex.c' comes as part of +the standard Texinfo distribution, among other places.) + + The `tex' formatting command outputs unsorted index files under names +that obey a standard convention: the name of your main input file with +any `.tex' (or similar, *note tex invocation: (web2c)tex invocation.) +extension removed, followed by the two letter names of indices. For +example, the raw index output files for the input file `foo.texinfo' +would be `foo.cp', `foo.vr', `foo.fn', `foo.tp', `foo.pg' and `foo.ky'. +Those are exactly the arguments to give to `texindex'. + + Instead of specifying all the unsorted index file names explicitly, +you can use `??' as shell wildcards and give the command in this form: + + texindex foo.?? + +This command will run `texindex' on all the unsorted index files, +including any that you have defined yourself using `@defindex' or +`@defcodeindex'. (You may execute `texindex foo.??' even if there are +similarly named files with two letter extensions that are not index +files, such as `foo.el'. The `texindex' command reports but otherwise +ignores such files.) + + For each file specified, `texindex' generates a sorted index file +whose name is made by appending `s' to the input file name. The +`@printindex' command looks for a file with that name (*note Printing +Indices & Menus::). `texindex' does not alter the raw index output +file. + + After you have sorted the indices, you need to rerun `tex' on the +Texinfo file. This regenerates the DVI file, this time with up-to-date +index entries. + + Finally, you may need to run `tex' one more time, to get the page +numbers in the cross-references correct. + + To summarize, this is a five step process: + + 1. Run `tex' on your Texinfo file. This generates a DVI file (with + undefined cross-references and no indices), and the raw index files + (with two letter extensions). + + 2. Run `texindex' on the raw index files. This creates the + corresponding sorted index files (with three letter extensions). + + 3. Run `tex' again on your Texinfo file. This regenerates the DVI + file, this time with indices and defined cross-references, but + with page numbers for the cross-references from last time, + generally incorrect. + + 4. Sort the indices again, with `texindex'. + + 5. Run `tex' one last time. This time the correct page numbers are + written for the cross-references. + + Alternatively, it's a one-step process: run `texi2dvi' (*note Format +with texi2dvi::). + + You need not run `texindex' each time after you run `tex'. If you do +not, on the next run, the `tex' formatting command will use whatever +sorted index files happen to exist from the previous use of `texindex'. +This is usually ok while you are debugging. + + Sometimes you may wish to print a document while you know it is +incomplete, or to print just one chapter of a document. In that case, +the usual auxiliary files that TeX creates and warnings TeX gives when +cross-references are not satisfied are just nuisances. You can avoid +them with the `@novalidate' command, which you must give _before_ the +`@setfilename' command (*note `@setfilename': setfilename.). Thus, the +beginning of your file would look approximately like this: + + \input texinfo + @novalidate + @setfilename myfile.info + ... + +`@novalidate' also turns off validation in `makeinfo', just like its +`--no-validate' option (*note Pointer Validation::). + + +File: texinfo.info, Node: Format with texi2dvi, Next: Print with lpr, Prev: Format with tex/texindex, Up: Hardcopy + +20.3 Format with `texi2dvi' +=========================== + +The `texi2dvi' command automatically runs both TeX and `texindex' as +many times as necessary to produce a DVI file with sorted indices and +all cross-references resolved. It is therefore simpler than manually +executing the `tex'--`texindex'--`tex'--`tex' sequence described in the +previous section. + + To run `texi2dvi' on an input file `foo.texi', do this (where +`prompt$ ' is your shell prompt): + + prompt$ texi2dvi foo.texi + + As shown in this example, the input filenames to `texi2dvi' must +include any extension (`.texi', `.texinfo', etc.). Under MS-DOS and +perhaps in other circumstances, you may need to run `sh texi2dvi +foo.texi' instead of relying on the operating system to invoke the +shell on the `texi2dvi' script. + + Perhaps the most useful option to `texi2dvi' is `--command=CMD'. +This inserts CMD on a line by itself after the `@setfilename' in a +temporary copy of the input file before running TeX. With this, you +can specify different printing formats, such as `@smallbook' (*note +smallbook::), `@afourpaper' (*note A4 Paper::), or `@pagesizes' (*note +pagesizes::), without actually changing the document source. (You can +also do this on a site-wide basis with `texinfo.cnf'; *note Preparing +for TeX: Preparing for TeX.). + + `texi2dvi' can also be used to process LaTeX files; simply run +`texi2dvi filename.ext'. + + For a list of other options, run `texi2dvi --help'. + + +File: texinfo.info, Node: Print with lpr, Next: Within Emacs, Prev: Format with texi2dvi, Up: Hardcopy + +20.4 Shell Print Using `lpr -d' +=============================== + +The precise command to print a DVI file depends on your system +installation. Two common ones are `dvips foo.dvi -o' and `lpr -d +foo.dvi'. + + For example, the following commands will (perhaps) suffice to sort the +indices, format, and print the `Bison Manual': + + tex bison.texinfo + texindex bison.?? + tex bison.texinfo + lpr -d bison.dvi + +(Remember that the shell commands may be different at your site; but +these are commonly used versions.) + + Using the `texi2dvi' shell script (see the previous section): + + texi2dvi bison.texinfo + lpr -d bison.dvi + # or perhaps dvips bison.dvi -o + + `lpr' is a standard program on Unix systems, but it is usually absent +on MS-DOS/MS-Windows. Some network packages come with a program named +`lpr', but these are usually limited to sending files to a print server +over the network, and generally don't support the `-d' option. If you +are unfortunate enough to work on one of these systems, you have +several alternative ways of printing DVI files: + + * Find and install a Unix-like `lpr' program, or its clone. If you + can do that, you will be able to print DVI files just like + described above. + + * Send the DVI files to a network printer queue for DVI files. Some + network printers have special queues for printing DVI files. You + should be able to set up your network software to send files to + that queue. In some cases, the version of `lpr' which comes with + your network software will have a special option to send a file to + specific queues, like this: + + lpr -Qdvi -hprint.server.domain bison.dvi + + * Convert the DVI file to a Postscript or PCL file and send it to + your local printer. *Note Invoking Dvips: (dvips)Invoking Dvips, + and the man pages for `dvilj', for detailed description of these + tools. Once the DVI file is converted to the format your local + printer understands directly, just send it to the appropriate + port, usually `PRN'. + + +File: texinfo.info, Node: Within Emacs, Next: Texinfo Mode Printing, Prev: Print with lpr, Up: Hardcopy + +20.5 From an Emacs Shell +======================== + +You can give formatting and printing commands from a shell within GNU +Emacs. To create a shell within Emacs, type `M-x shell'. In this +shell, you can format and print the document. *Note Format and Print +Hardcopy: Hardcopy, for details. + + You can switch to and from the shell buffer while `tex' is running +and do other editing. If you are formatting a long document on a slow +machine, this can be very convenient. + + You can also use `texi2dvi' from an Emacs shell. For example, here +is how to use `texi2dvi' to format and print `Using and Porting GNU CC' +from a shell within Emacs: + + texi2dvi gcc.texinfo + lpr -d gcc.dvi + + See the next section for more information about formatting and +printing in Texinfo mode. + + +File: texinfo.info, Node: Texinfo Mode Printing, Next: Compile-Command, Prev: Within Emacs, Up: Hardcopy + +20.6 Formatting and Printing in Texinfo Mode +============================================ + +Texinfo mode provides several predefined key commands for TeX +formatting and printing. These include commands for sorting indices, +looking at the printer queue, killing the formatting job, and +recentering the display of the buffer in which the operations occur. + +`C-c C-t C-b' +`M-x texinfo-tex-buffer' + Run `texi2dvi' on the current buffer. + +`C-c C-t C-r' +`M-x texinfo-tex-region' + Run TeX on the current region. + +`C-c C-t C-i' +`M-x texinfo-texindex' + Sort the indices of a Texinfo file formatted with + `texinfo-tex-region'. + +`C-c C-t C-p' +`M-x texinfo-tex-print' + Print a DVI file that was made with `texinfo-tex-region' or + `texinfo-tex-buffer'. + +`C-c C-t C-q' +`M-x tex-show-print-queue' + Show the print queue. + +`C-c C-t C-d' +`M-x texinfo-delete-from-print-queue' + Delete a job from the print queue; you will be prompted for the job + number shown by a preceding `C-c C-t C-q' command + (`texinfo-show-tex-print-queue'). + +`C-c C-t C-k' +`M-x tex-kill-job' + Kill the currently running TeX job started by either + `texinfo-tex-region' or `texinfo-tex-buffer', or any other process + running in the Texinfo shell buffer. + +`C-c C-t C-x' +`M-x texinfo-quit-job' + Quit a TeX formatting job that has stopped because of an error by + sending an <x> to it. When you do this, TeX preserves a record of + what it did in a `.log' file. + +`C-c C-t C-l' +`M-x tex-recenter-output-buffer' + Redisplay the shell buffer in which the TeX printing and formatting + commands are run to show its most recent output. + + Thus, the usual sequence of commands for formatting a buffer is as +follows (with comments to the right): + + C-c C-t C-b Run `texi2dvi' on the buffer. + C-c C-t C-p Print the DVI file. + C-c C-t C-q Display the printer queue. + + The Texinfo mode TeX formatting commands start a subshell in Emacs +called the `*tex-shell*'. The `texinfo-tex-command', +`texinfo-texindex-command', and `tex-dvi-print-command' commands are +all run in this shell. + + You can watch the commands operate in the `*tex-shell*' buffer, and +you can switch to and from and use the `*tex-shell*' buffer as you +would any other shell buffer. + + The formatting and print commands depend on the values of several +variables. The default values are: + + Variable Default value + + texinfo-texi2dvi-command "texi2dvi" + texinfo-tex-command "tex" + texinfo-texindex-command "texindex" + texinfo-delete-from-print-queue-command "lprm" + texinfo-tex-trailer "@bye" + tex-start-of-header "%**start" + tex-end-of-header "%**end" + tex-dvi-print-command "lpr -d" + tex-show-queue-command "lpq" + + You can change the values of these variables with the `M-x +set-variable' command (*note Examining and Setting Variables: +(emacs)Examining.), or with your `.emacs' initialization file (*note +Init File: (emacs)Init File.). + + Beginning with version 20, GNU Emacs offers a user-friendly interface, +called "Customize", for changing values of user-definable variables. +*Note Easy Customization Interface: (emacs)Easy Customization, for more +details about this. The Texinfo variables can be found in the +`Development/Docs/Texinfo' group, once you invoke the `M-x customize' +command. + + +File: texinfo.info, Node: Compile-Command, Next: Requirements Summary, Prev: Texinfo Mode Printing, Up: Hardcopy + +20.7 Using the Local Variables List +=================================== + +Yet another way to apply the TeX formatting command to a Texinfo file +is to put that command in a "local variables list" at the end of the +Texinfo file. You can then specify the `tex' or `texi2dvi' commands as +a `compile-command' and have Emacs run it by typing `M-x compile'. +This creates a special shell called the `*compilation*' buffer in which +Emacs runs the compile command. For example, at the end of the +`gdb.texinfo' file, after the `@bye', you could put the following: + + Local Variables: + compile-command: "texi2dvi gdb.texinfo" + End: + +This technique is most often used by programmers who also compile +programs this way; see *Note Compilation: (emacs)Compilation. + + +File: texinfo.info, Node: Requirements Summary, Next: Preparing for TeX, Prev: Compile-Command, Up: Hardcopy + +20.8 TeX Formatting Requirements Summary +======================================== + +Every Texinfo file that is to be input to TeX must begin with a +`\input' command and must contain an `@setfilename' command: + + \input texinfo + @setfilename ARG-NOT-USED-BY-TEX + +The first command instructs TeX to load the macros it needs to process +a Texinfo file and the second command opens auxiliary files. + + Every Texinfo file must end with a line that terminates TeX's +processing and forces out unfinished pages: + + @bye + + Strictly speaking, these lines are all a Texinfo file needs to be +processed successfully by TeX. + + Usually, however, the beginning includes an `@settitle' command to +define the title of the printed manual, an `@setchapternewpage' +command, a title page, a copyright page, and permissions. Besides an +`@bye', the end of a file usually includes indices and a table of +contents. (And of course most manuals contain a body of text as well.) + + For more information, see: + + * *Note `@settitle': settitle. + + * *Note `@setchapternewpage': setchapternewpage. + + * *Note Page Headings: Headings. + + * *Note Titlepage & Copyright Page::. + + * *Note Printing Indices & Menus::. + + * *Note Contents::. + + +File: texinfo.info, Node: Preparing for TeX, Next: Overfull hboxes, Prev: Requirements Summary, Up: Hardcopy + +20.9 Preparing for TeX +====================== + +TeX needs to know where to find the `texinfo.tex' file that the `\input +texinfo' command on the first line reads. The `texinfo.tex' file tells +TeX how to handle @-commands; it is included in all standard GNU +distributions. The latest version is always available from the Texinfo +source repository: + `http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/doc/texinfo.tex?rev=HEAD' + + Usually, the installer has put the `texinfo.tex' file in the default +directory that contains TeX macros when GNU Texinfo, Emacs or other GNU +software is installed. In this case, TeX will find the file and you do +not need to do anything special. If this has not been done, you can +put `texinfo.tex' in the current directory when you run TeX, and TeX +will find it there. + + Also, you should install `epsf.tex', if it is not already installed +from another distribution. More details are at the end of the +description of the `@image' command (*note Images::). + + Likewise for `pdfcolor.tex', if it is not already installed and you +use pdftex. + + Optionally, you may create an additional `texinfo.cnf', and install +it as well. This file is read by TeX when the `@setfilename' command +is executed (*note `@setfilename': setfilename.). You can put any +commands you like there, according to local site-wide conventions. They +will be read by TeX when processing any Texinfo document. For example, +if `texinfo.cnf' contains the line `@afourpaper' (*note A4 Paper::), +then all Texinfo documents will be processed with that page size in +effect. If you have nothing to put in `texinfo.cnf', you do not need +to create it. + + If neither of the above locations for these system files suffice for +you, you can specify the directories explicitly. For `texinfo.tex', +you can do this by writing the complete path for the file after the +`\input' command. Another way, that works for both `texinfo.tex' and +`texinfo.cnf' (and any other file TeX might read), is to set the +`TEXINPUTS' environment variable in your `.cshrc' or `.profile' file. + + Which you use of `.cshrc' or `.profile' depends on whether you use a +Bourne shell-compatible (`sh', `bash', `ksh', ...) or C +shell-compatible (`csh', `tcsh') command interpreter. The latter read +the `.cshrc' file for initialization information, and the former read +`.profile'. + + In a `.cshrc' file, you could use the following `csh' command +sequence: + + setenv TEXINPUTS .:/home/me/mylib: + + In a `.profile' file, you could use the following `sh' command +sequence: + + TEXINPUTS=.:/home/me/mylib: + export TEXINPUTS + + On MS-DOS/MS-Windows, you would say it like this(1): + + set TEXINPUTS=.;d:/home/me/mylib;c: + +It is customary for DOS/Windows users to put such commands in the +`autoexec.bat' file, or in the Windows Registry. + +These settings would cause TeX to look for `\input' file first in the +current directory, indicated by the `.', then in a hypothetical user +`me''s `mylib' directory, and finally in the system directories. (A +leading, trailing, or doubled `:' indicates searching the system +directories at that point.) + + Finally, you may wish to dump a `.fmt' file (*note Memory dumps: +(web2c)Memory dumps.) so that TeX can load Texinfo faster. (The +disadvantage is that then updating `texinfo.tex' requires redumping.) +You can do this by running this command, assuming `epsf.tex' is +findable by TeX: + + initex texinfo @dump + + (`dump' is a TeX primitive.) Then, move `texinfo.fmt' to wherever +your `.fmt' files are found; typically, this will be in the +subdirectory `web2c' of your TeX installation. + + ---------- Footnotes ---------- + + (1) Note the use of the `;' character, instead of `:', as directory +separator on these systems. + + +File: texinfo.info, Node: Overfull hboxes, Next: smallbook, Prev: Preparing for TeX, Up: Hardcopy + +20.10 Overfull "hboxes" +======================= + +TeX is sometimes unable to typeset a line without extending it into the +right margin. This can occur when TeX comes upon what it interprets as +a long word that it cannot hyphenate, such as an electronic mail +network address or a very long title. When this happens, TeX prints an +error message like this: + + Overfull @hbox (20.76302pt too wide) + +(In TeX, lines are in "horizontal boxes", hence the term, "hbox". +`@hbox' is a TeX primitive not needed in the Texinfo language.) + + TeX also provides the line number in the Texinfo source file and the +text of the offending line, which is marked at all the places that TeX +considered hyphenation. *Note Catching Errors with TeX Formatting: +Debugging with TeX, for more information about typesetting errors. + + If the Texinfo file has an overfull hbox, you can rewrite the sentence +so the overfull hbox does not occur, or you can decide to leave it. A +small excursion into the right margin often does not matter and may not +even be noticeable. + + If you have many overfull boxes and/or an antipathy to rewriting, you +can coerce TeX into greatly increasing the allowable interword spacing, +thus (if you're lucky) avoiding many of the bad line breaks, like this: + + @tex + \global\emergencystretch = .9\hsize + @end tex + +(You should adjust the fraction as needed.) This huge value for +`\emergencystretch' cannot be the default, since then the typeset +output would generally be of noticeably lower quality; the default is +`.15\hsize'. `\hsize' is the TeX dimension containing the current line +width. + + For what overfull boxes you have, however, TeX will print a large, +ugly, black rectangle beside the line that contains the overfull hbox +unless told otherwise. This is so you will notice the location of the +problem if you are correcting a draft. + + To prevent such a monstrosity from marring your final printout, write +the following in the beginning of the Texinfo file on a line of its own, +before the `@titlepage' command: + + @finalout + + +File: texinfo.info, Node: smallbook, Next: A4 Paper, Prev: Overfull hboxes, Up: Hardcopy + +20.11 Printing "Small" Books +============================ + +By default, TeX typesets pages for printing in an 8.5 by 11 inch +format. However, you can direct TeX to typeset a document in a 7 by +9.25 inch format that is suitable for bound books by inserting the +following command on a line by itself at the beginning of the Texinfo +file, before the title page: + + @smallbook + +(Since many books are about 7 by 9.25 inches, this command might better +have been called the `@regularbooksize' command, but it came to be +called the `@smallbook' command by comparison to the 8.5 by 11 inch +format.) + + If you write the `@smallbook' command between the start-of-header and +end-of-header lines, the Texinfo mode TeX region formatting command, +`texinfo-tex-region', will format the region in "small" book size +(*note Start of Header::). + + *Note small::, for information about commands that make it easier to +produce examples for a smaller manual. + + *Note Format with texi2dvi::, and *Note Preparing for TeX: Preparing +for TeX, for other ways to format with `@smallbook' that do not require +changing the source file. + + +File: texinfo.info, Node: A4 Paper, Next: pagesizes, Prev: smallbook, Up: Hardcopy + +20.12 Printing on A4 Paper +========================== + +You can tell TeX to format a document for printing on European size A4 +paper (or A5) with the `@afourpaper' (or `@afivepaper') command. Write +the command on a line by itself near the beginning of the Texinfo file, +before the title page. For example, this is how you would write the +header for this manual: + + \input texinfo @c -*-texinfo-*- + @c %**start of header + @setfilename texinfo + @settitle Texinfo + @afourpaper + @c %**end of header + + *Note Format with texi2dvi::, and *Note Preparing for TeX: Preparing +for TeX, for other ways to format for different paper sizes that do not +require changing the source file. + + You may or may not prefer the formatting that results from the command +`@afourlatex'. There's also `@afourwide' for A4 paper in wide format. + + +File: texinfo.info, Node: pagesizes, Next: Cropmarks and Magnification, Prev: A4 Paper, Up: Hardcopy + +20.13 `@pagesizes' [WIDTH][, HEIGHT]: Custom Page Sizes +======================================================= + +You can explicitly specify the height and (optionally) width of the main +text area on the page with the `@pagesizes' command. Write this on a +line by itself near the beginning of the Texinfo file, before the title +page. The height comes first, then the width if desired, separated by +a comma. Examples: + + @pagesizes 200mm,150mm + and + @pagesizes 11.5in + + This would be reasonable for printing on B5-size paper. To emphasize, +this command specifies the size of the _text area_, not the size of the +paper (which is 250mm by 177mm for B5, 14in by 8.5in for legal). + + To make more elaborate changes, such as changing any of the page +margins, you must define a new command in `texinfo.tex' (or +`texinfo.cnf', *note Preparing for TeX: Preparing for TeX.). + + *Note Format with texi2dvi::, and *Note Preparing for TeX: Preparing +for TeX, for other ways to specify `@pagesizes' that do not require +changing the source file. + + `@pagesizes' is ignored by `makeinfo'. + + +File: texinfo.info, Node: Cropmarks and Magnification, Next: PDF Output, Prev: pagesizes, Up: Hardcopy + +20.14 Cropmarks and Magnification +================================= + +You can (attempt to) direct TeX to print cropmarks at the corners of +pages with the `@cropmarks' command. Write the `@cropmarks' command on +a line by itself between `@iftex' and `@end iftex' lines near the +beginning of the Texinfo file, before the title page, like this: + + @iftex + @cropmarks + @end iftex + + This command is mainly for printers that typeset several pages on one +sheet of film; but you can attempt to use it to mark the corners of a +book set to 7 by 9.25 inches with the `@smallbook' command. (Printers +will not produce cropmarks for regular sized output that is printed on +regular sized paper.) Since different printing machines work in +different ways, you should explore the use of this command with a +spirit of adventure. You may have to redefine the command in +`texinfo.tex'. + + You can attempt to direct TeX to typeset pages larger or smaller than +usual with the `\mag' TeX command. Everything that is typeset is +scaled proportionally larger or smaller. (`\mag' stands for +"magnification".) This is _not_ a Texinfo @-command, but is a plain +TeX command that is prefixed with a backslash. You have to write this +command between `@tex' and `@end tex' (*note Raw Formatter Commands::). + + Follow the `\mag' command with an `=' and then a number that is 1000 +times the magnification you desire. For example, to print pages at 1.2 +normal size, write the following near the beginning of the Texinfo +file, before the title page: + + @tex + \mag=1200 + @end tex + + With some printing technologies, you can print normal-sized copies +that look better than usual by giving a larger-than-normal master to +your print shop. They do the reduction, thus effectively increasing the +resolution. + + Depending on your system, DVI files prepared with a +nonstandard-`\mag' may not print or may print only with certain +magnifications. Be prepared to experiment. + + +File: texinfo.info, Node: PDF Output, Next: Obtaining TeX, Prev: Cropmarks and Magnification, Up: Hardcopy + +20.15 PDF Output +================ + +You can generate a PDF output file from Texinfo source by using the +`pdftex' program to process your file instead of plain `tex'. That is, +run `pdftex foo.texi' instead of `tex foo.texi', or give the `--pdf' +option to `texi2dvi'. + + "PDF" stands for `Portable Document Format'. It was invented by Adobe +Systems some years ago for document interchange, based on their +PostScript language. A PDF reader (http://www.foolabs.com/xpdf/) for +the X window system is freely available, as is the definition of the +file format (http://partners.adobe.com/asn/developer/technotes/). At +present, there are no `@ifpdf' or `@pdf' commands as with the other +output formats. + + Despite the `portable' in the name, PDF files are nowhere near as +portable in practice as the plain ASCII formats (Info, HTML) that +Texinfo supports (DVI portability is arguable). They also tend to be +much larger. Nevertheless, a PDF file does preserve an actual printed +document on a screen as faithfully as possible, so it has its place. + + +File: texinfo.info, Node: Obtaining TeX, Prev: PDF Output, Up: Hardcopy + +20.16 How to Obtain TeX +======================= + +TeX is freely redistributable. You can obtain TeX for Unix systems via +anonymous ftp or on physical media. The core material consists of the +Web2c TeX distribution (`http://tug.org/web2c'). + + Instructions for retrieval by anonymous ftp and information on other +available distributions: `http://tug.org/unixtex.ftp'. + + The Free Software Foundation provides a core distribution on its +Source Code CD-ROM suitable for printing Texinfo manuals. To order it, +contact: + + Free Software Foundation, Inc. + 59 Temple Place Suite 330 + Boston, MA 02111-1307 + USA + Telephone: +1-617-542-5942 + Fax: (including Japan) +1-617-542-2652 + Free Dial Fax (in Japan): + 0031-13-2473 (KDD) + 0066-3382-0158 (IDC) + Electronic mail: `gnu@gnu.org' + + Many other TeX distributions are available; see `http://tug.org/'. + + +File: texinfo.info, Node: Creating and Installing Info Files, Next: Generating HTML, Prev: Hardcopy, Up: Top + +21 Creating and Installing Info Files +************************************* + +This chapter describes how to create and install Info files. *Note +Info Files::, for general information about the file format itself. + +* Menu: + +* Creating an Info File:: +* Installing an Info File:: + + +File: texinfo.info, Node: Creating an Info File, Next: Installing an Info File, Up: Creating and Installing Info Files + +21.1 Creating an Info File +========================== + +`makeinfo' is a program that converts a Texinfo file into an Info file, +HTML file, or plain text. `texinfo-format-region' and +`texinfo-format-buffer' are GNU Emacs functions that convert Texinfo to +Info. + + For information on installing the Info file in the Info system, *note +Installing an Info File::. + +* Menu: + +* makeinfo advantages:: `makeinfo' provides better error checking. +* Invoking makeinfo:: How to run `makeinfo' from a shell. +* makeinfo options:: Specify fill-column and other options. +* Pointer Validation:: How to check that pointers point somewhere. +* makeinfo in Emacs:: How to run `makeinfo' from Emacs. +* texinfo-format commands:: Two Info formatting commands written + in Emacs Lisp are an alternative + to `makeinfo'. +* Batch Formatting:: How to format for Info in Emacs Batch mode. +* Tag and Split Files:: How tagged and split files help Info + to run better. + + +File: texinfo.info, Node: makeinfo advantages, Next: Invoking makeinfo, Up: Creating an Info File + +21.1.1 `makeinfo' Preferred +--------------------------- + +The `makeinfo' utility creates an Info file from a Texinfo source file +more quickly than either of the Emacs formatting commands and provides +better error messages. We recommend it. `makeinfo' is a C program +that is independent of Emacs. You do not need to run Emacs to use +`makeinfo', which means you can use `makeinfo' on machines that are too +small to run Emacs. You can run `makeinfo' in any one of three ways: +from an operating system shell, from a shell inside Emacs, or by typing +the `C-c C-m C-r' or the `C-c C-m C-b' command in Texinfo mode in Emacs. + + The `texinfo-format-region' and the `texinfo-format-buffer' commands +are useful if you cannot run `makeinfo'. Also, in some circumstances, +they format short regions or buffers more quickly than `makeinfo'. + + +File: texinfo.info, Node: Invoking makeinfo, Next: makeinfo options, Prev: makeinfo advantages, Up: Creating an Info File + +21.1.2 Running `makeinfo' from a Shell +-------------------------------------- + +To create an Info file from a Texinfo file, invoke `makeinfo' followed +by the name of the Texinfo file. Thus, to create the Info file for +Bison, type the following to the shell: + + makeinfo bison.texinfo + + (You can run a shell inside Emacs by typing `M-x shell'.) + + `makeinfo' has many options to control its actions and output; see +the next section. + + +File: texinfo.info, Node: makeinfo options, Next: Pointer Validation, Prev: Invoking makeinfo, Up: Creating an Info File + +21.1.3 Options for `makeinfo' +----------------------------- + +The `makeinfo' program accepts many options. Perhaps the most commonly +needed are those that change the output format. By default, `makeinfo' +outputs Info files. + + Each command line option is a word preceded by `--' or a letter +preceded by `-'. You can use abbreviations for the long option names +as long as they are unique. + + For example, you could use the following shell command to create an +Info file for `bison.texinfo' in which each line is filled to only 68 +columns: + + makeinfo --fill-column=68 bison.texinfo + + You can write two or more options in sequence, like this: + + makeinfo --no-split --fill-column=70 ... + +This would keep the Info file together as one possibly very long file +and would also set the fill column to 70. + + The options are: + +`-D VAR' + Cause the variable VAR to be defined. This is equivalent to `@set + VAR' in the Texinfo file (*note set clear value::). + +`--commands-in-node-names' + Allow `@'-commands in node names. This is not recommended, as it + can probably never be implemented in TeX. It also makes + `makeinfo' much slower. Also, this option is ignored when + `--no-validate' is used. *Note Pointer Validation::, for more + details. + +`--css-include=FILE' + Include the contents of FILE, which should contain cascading style + sheets specifications, in the `<style>' block of the HTML output. + *Note HTML CSS::. If FILE is `-', read standard input. + +`--docbook' + Generate Docbook output rather than Info. + +`--enable-encoding' + Output accented and special characters in Info or plain text output + based on `@documentencoding'. *Note `documentencoding': + documentencoding, and *Note Inserting Accents::. + +`--error-limit=LIMIT' +`-e LIMIT' + Set the maximum number of errors that `makeinfo' will report + before exiting (on the assumption that continuing would be + useless); default 100. + +`--fill-column=WIDTH' +`-f WIDTH' + Specify the maximum number of columns in a line; this is the + right-hand edge of a line. Paragraphs that are filled will be + filled to this width. (Filling is the process of breaking up and + connecting lines so that lines are the same length as or shorter + than the number specified as the fill column. Lines are broken + between words.) The default value is 72. Ignored with `--html'. + +`--footnote-style=STYLE' +`-s STYLE' + Set the footnote style to STYLE, either `end' for the end node + style (the default) or `separate' for the separate node style. + The value set by this option overrides the value set in a Texinfo + file by an `@footnotestyle' command (*note Footnotes::). When the + footnote style is `separate', `makeinfo' makes a new node + containing the footnotes found in the current node. When the + footnote style is `end', `makeinfo' places the footnote references + at the end of the current node. Ignored with `--html'. + +`--force' +`-F' + Ordinarily, if the input file has errors, the output files are not + created. With this option, they are preserved. + +`--help' +`-h' + Print a usage message listing all available options, then exit + successfully. + +`--html' + Generate HTML output rather than Info. *Note Generating HTML::. + By default, the HTML output is split into one output file per + Texinfo source node, and the split output is written into a + subdirectory with the name of the top-level info file. + +`-I DIR' + Append DIR to the directory search list for finding files that are + included using the `@include' command. By default, `makeinfo' + searches only the current directory. If DIR is not given, the + current directory `.' is appended. Note that DIR can actually be + a list of several directories separated by the usual path + separator character (`:' on Unix, `;' on MS-DOS/MS-Windows). + +`--ifdocbook' +`--ifhtml' +`--ifinfo' +`--ifplaintext' +`--iftex' +`--ifxml' + For the specified format, process `@ifFORMAT' and `@FORMAT' + commands even if not generating the given output format. For + instance, if `--iftex' is specified, then `@iftex' and `@tex' + blocks will be read. This can be useful when postprocessing the + output. + +`--macro-expand=FILE' +`-E FILE' + Output the Texinfo source with all the macros expanded to the named + file. Normally, the results of macro expansion are used + internally by `makeinfo' and then discarded. This option is used + by `texi2dvi'. + +`--no-headers' + For Info output, do not include menus or node separator lines in + the output, and implicitly `--enable-encoding' (see above). This + results in a simple plain text file that you can (for example) + send in email without complications, or include in a distribution + (as in an `INSTALL' file). + + For HTML output, likewise omit menus. And if `--no-split' is also + specified, do not include a navigation links at the top of each + node (these are never included in the default case of split + output). *Note Generating HTML::. + + In both cases, ignore `@setfilename' and write to standard output + by default--can be overridden with `-o'. + +`--no-ifdocbook' +`--no-ifhtml' +`--no-ifinfo' +`--no-ifplaintext' +`--no-iftex' +`--no-ifxml' + Do not process `@ifFORMAT' and `@FORMAT' commands even if + generating the given format. For instance, if `--no-ifhtml' is + specified, then `@ifhtml' and `@html' blocks will not be read. + +`--no-split' + Suppress the splitting stage of `makeinfo'. By default, large + output files (where the size is greater than 70k bytes) are split + into smaller subfiles. For Info output, each one is approximately + 50k bytes. For HTML output, each file contains one node (*note + Generating HTML::). + +`--no-pointer-validate' +`--no-validate' + Suppress the pointer-validation phase of `makeinfo'. This can also + be done with the `@novalidate' command (*note Use TeX: Use TeX.). + Normally, after a Texinfo file is processed, some consistency + checks are made to ensure that cross references can be resolved, + etc. *Note Pointer Validation::. + +`--no-warn' + Suppress warning messages (but _not_ error messages). You might + want this if the file you are creating has examples of Texinfo + cross references within it, and the nodes that are referenced do + not actually exist. + +`--number-sections' + Output chapter, section, and appendix numbers as in printed + manuals. + +`--no-number-footnotes' + Suppress automatic footnote numbering. By default, `makeinfo' + numbers each footnote sequentially in a single node, resetting the + current footnote number to 1 at the start of each node. + +`--output=FILE' +`-o FILE' + Specify that the output should be directed to FILE and not to the + file name specified in the `@setfilename' command found in the + Texinfo source (*note setfilename::). If FILE is `-', output goes + to standard output and `--no-split' is implied. For split HTML + output, FILE is the name for the directory into which all HTML + nodes are written (*note Generating HTML::). + +`-P DIR' + Prepend DIR to the directory search list for `@include'. If DIR + is not given, the current directory `.' is prepended. See `-I' + for more details. + +`--paragraph-indent=INDENT' +`-p INDENT' + Set the paragraph indentation style to INDENT. The value set by + this option overrides the value set in a Texinfo file by an + `@paragraphindent' command (*note paragraphindent::). The value + of INDENT is interpreted as follows: + + `asis' + Preserve any existing indentation at the starts of paragraphs. + + `0' or `none' + Delete any existing indentation. + + NUM + Indent each paragraph by NUM spaces. + +`--reference-limit=LIMIT' +`-r LIMIT' + Set the value of the number of references to a node that + `makeinfo' will make without reporting a warning. If a node has + more than this number of references in it, `makeinfo' will make the + references but also report a warning. The default is 1000. + +`--split-size=NUM' + Keep Info files to at most NUM characters; default is 300,000. + +`-U VAR' + Cause VAR to be undefined. This is equivalent to `@clear VAR' in + the Texinfo file (*note set clear value::). + +`--verbose' + Cause `makeinfo' to display messages saying what it is doing. + Normally, `makeinfo' only outputs messages if there are errors or + warnings. + +`--version' +`-V' + Print the version number, then exit successfully. + +`--xml' + Generate XML output rather than Info. + + + `makeinfo' also reads the environment variable +`TEXINFO_OUTPUT_FORMAT' to determine the output format, if not +overridden by a command line option. The possible values are: + + docbook html info plaintext xml + + If not set, Info output is the default. + + +File: texinfo.info, Node: Pointer Validation, Next: makeinfo in Emacs, Prev: makeinfo options, Up: Creating an Info File + +21.1.4 Pointer Validation +------------------------- + +If you do not suppress pointer validation with the `--no-validate' +option or the `@novalidate' command in the source file (*note Use TeX: +Use TeX.), `makeinfo' will check the validity of the final Info file. +Mostly, this means ensuring that nodes you have referenced really +exist. Here is a complete list of what is checked: + + 1. If a `Next', `Previous', or `Up' node reference is a reference to a + node in the current file and is not an external reference such as + to `(dir)', then the referenced node must exist. + + 2. In every node, if the `Previous' node is different from the `Up' + node, then the node pointed to by the `Previous' field must have a + `Next' field which points back to this node. + + 3. Every node except the `Top' node must have an `Up' pointer. + + 4. The node referenced by an `Up' pointer must itself reference the + current node through a menu item, unless the node referenced by + `Up' has the form `(FILE)'. + + 5. If the `Next' reference of a node is not the same as the `Next' + reference of the `Up' reference, then the node referenced by the + `Next' pointer must have a `Previous' pointer that points back to + the current node. This rule allows the last node in a section to + point to the first node of the next chapter. + + 6. Every node except `Top' should be referenced by at least one other + node, either via the `Previous' or `Next' links, or via a menu or a + cross-reference. + + Some Texinfo documents might fail during the validation phase because +they use commands like `@value' and `@definfoenclose' in node +definitions and cross-references inconsistently. Consider the +following example: + + @set nodename Node 1 + + @node @value{nodename}, Node 2, Top, Top + + This is node 1. + + @node Node 2, , Node 1, Top + + This is node 2. + +Here, the node "Node 1" was referenced both verbatim and through +`@value'. + + By default, `makeinfo' fails such cases, because node names are not +fully expanded until they are written to the output file. You should +always try to reference nodes consistently; e.g., in the above example, +the second `@node' line should have also used `@value'. However, if, +for some reason, you _must_ reference node names inconsistently, and +`makeinfo' fails to validate the file, you can use the +`--commands-in-node-names' option to force `makeinfo' to perform the +expensive expansion of all node names it finds in the document. This +might considerably slow down the program, though; twofold increase in +conversion time was measured for large documents such as the Jargon +file. + + The support for `@'-commands in `@node' directives is not general +enough to be freely used. For example, if the example above redefined +`nodename' somewhere in the document, `makeinfo' will fail to convert +it, even if invoked with the `--commands-in-node-names' option. + + `--commands-in-node-names' has no effect if the `--no-validate' +option is given. + + +File: texinfo.info, Node: makeinfo in Emacs, Next: texinfo-format commands, Prev: Pointer Validation, Up: Creating an Info File + +21.1.5 Running `makeinfo' Within Emacs +-------------------------------------- + +You can run `makeinfo' in GNU Emacs Texinfo mode by using either the +`makeinfo-region' or the `makeinfo-buffer' commands. In Texinfo mode, +the commands are bound to `C-c C-m C-r' and `C-c C-m C-b' by default. + +`C-c C-m C-r' +`M-x makeinfo-region' + Format the current region for Info. + +`C-c C-m C-b' +`M-x makeinfo-buffer' + Format the current buffer for Info. + + When you invoke `makeinfo-region' the output goes to a temporary +buffer. When you invoke `makeinfo-buffer' output goes to the file set +with `@setfilename' (*note setfilename::). + + The Emacs `makeinfo-region' and `makeinfo-buffer' commands run the +`makeinfo' program in a temporary shell buffer. If `makeinfo' finds +any errors, Emacs displays the error messages in the temporary buffer. + + You can parse the error messages by typing `C-x `' (`next-error'). +This causes Emacs to go to and position the cursor on the line in the +Texinfo source that `makeinfo' thinks caused the error. *Note Running +`make' or Compilers Generally: (emacs)Compilation, for more information +about using the `next-error' command. + + In addition, you can kill the shell in which the `makeinfo' command +is running or make the shell buffer display its most recent output. + +`C-c C-m C-k' +`M-x makeinfo-kill-job' + Kill the current running `makeinfo' job (from `makeinfo-region' or + `makeinfo-buffer'). + +`C-c C-m C-l' +`M-x makeinfo-recenter-output-buffer' + Redisplay the `makeinfo' shell buffer to display its most recent + output. + +(Note that the parallel commands for killing and recentering a TeX job +are `C-c C-t C-k' and `C-c C-t C-l'. *Note Texinfo Mode Printing::.) + + You can specify options for `makeinfo' by setting the +`makeinfo-options' variable with either the `M-x customize' or the `M-x +set-variable' command, or by setting the variable in your `.emacs' +initialization file. + + For example, you could write the following in your `.emacs' file: + + (setq makeinfo-options + "--paragraph-indent=0 --no-split + --fill-column=70 --verbose") + +For more information, see +*Note Easy Customization Interface: (emacs)Easy Customization, +*Note Examining and Setting Variables: (emacs)Examining, +*Note Init File: (emacs)Init File, and +*Note Options for `makeinfo': makeinfo options. + + +File: texinfo.info, Node: texinfo-format commands, Next: Batch Formatting, Prev: makeinfo in Emacs, Up: Creating an Info File + +21.1.6 The `texinfo-format...' Commands +--------------------------------------- + +In GNU Emacs in Texinfo mode, you can format part or all of a Texinfo +file with the `texinfo-format-region' command. This formats the +current region and displays the formatted text in a temporary buffer +called `*Info Region*'. + + Similarly, you can format a buffer with the `texinfo-format-buffer' +command. This command creates a new buffer and generates the Info file +in it. Typing `C-x C-s' will save the Info file under the name +specified by the `@setfilename' line which must be near the beginning +of the Texinfo file. + +`C-c C-e C-r' +``texinfo-format-region'' + Format the current region for Info. + +`C-c C-e C-b' +``texinfo-format-buffer'' + Format the current buffer for Info. + + The `texinfo-format-region' and `texinfo-format-buffer' commands +provide you with some error checking, and other functions can provide +you with further help in finding formatting errors. These procedures +are described in an appendix; see *Note Catching Mistakes::. However, +the `makeinfo' program is often faster and provides better error +checking (*note makeinfo in Emacs::). + + +File: texinfo.info, Node: Batch Formatting, Next: Tag and Split Files, Prev: texinfo-format commands, Up: Creating an Info File + +21.1.7 Batch Formatting +----------------------- + +You can format Texinfo files for Info using `batch-texinfo-format' and +Emacs Batch mode. You can run Emacs in Batch mode from any shell, +including a shell inside of Emacs. (*Note Command Arguments: +(emacs)Command Arguments.) + + Here is a shell command to format all the files that end in +`.texinfo' in the current directory: + + emacs -batch -funcall batch-texinfo-format *.texinfo + +Emacs processes all the files listed on the command line, even if an +error occurs while attempting to format some of them. + + Run `batch-texinfo-format' only with Emacs in Batch mode as shown; it +is not interactive. It kills the Batch mode Emacs on completion. + + `batch-texinfo-format' is convenient if you lack `makeinfo' and want +to format several Texinfo files at once. When you use Batch mode, you +create a new Emacs process. This frees your current Emacs, so you can +continue working in it. (When you run `texinfo-format-region' or +`texinfo-format-buffer', you cannot use that Emacs for anything else +until the command finishes.) + + +File: texinfo.info, Node: Tag and Split Files, Prev: Batch Formatting, Up: Creating an Info File + +21.1.8 Tag Files and Split Files +-------------------------------- + +If a Texinfo file has more than 30,000 bytes, `texinfo-format-buffer' +automatically creates a tag table for its Info file; `makeinfo' always +creates a tag table. With a "tag table", Info can jump to new nodes +more quickly than it can otherwise. + + In addition, if the Texinfo file contains more than about 300,000 +bytes, `texinfo-format-buffer' and `makeinfo' split the large Info file +into shorter "indirect" subfiles of about 300,000 bytes each. Big +files are split into smaller files so that Emacs does not need to make +a large buffer to hold the whole of a large Info file; instead, Emacs +allocates just enough memory for the small, split-off file that is +needed at the time. This way, Emacs avoids wasting memory when you run +Info. (Before splitting was implemented, Info files were always kept +short and "include files" were designed as a way to create a single, +large printed manual out of the smaller Info files. *Note Include +Files::, for more information. Include files are still used for very +large documents, such as `The Emacs Lisp Reference Manual', in which +each chapter is a separate file.) + + When a file is split, Info itself makes use of a shortened version of +the original file that contains just the tag table and references to +the files that were split off. The split-off files are called +"indirect" files. + + The split-off files have names that are created by appending `-1', +`-2', `-3' and so on to the file name specified by the `@setfilename' +command. The shortened version of the original file continues to have +the name specified by `@setfilename'. + + At one stage in writing this document, for example, the Info file was +saved as the file `test-texinfo' and that file looked like this: + + Info file: test-texinfo, -*-Text-*- + produced by texinfo-format-buffer + from file: new-texinfo-manual.texinfo + + ^_ + Indirect: + test-texinfo-1: 102 + test-texinfo-2: 50422 + test-texinfo-3: 101300 + ^_^L + Tag table: + (Indirect) + Node: overview^?104 + Node: info file^?1271 + Node: printed manual^?4853 + Node: conventions^?6855 + ... + +(But `test-texinfo' had far more nodes than are shown here.) Each of +the split-off, indirect files, `test-texinfo-1', `test-texinfo-2', and +`test-texinfo-3', is listed in this file after the line that says +`Indirect:'. The tag table is listed after the line that says `Tag +table:'. + + In the list of indirect files, the number following the file name +records the cumulative number of bytes in the preceding indirect files, +not counting the file list itself, the tag table, or the permissions +text in each file. In the tag table, the number following the node name +records the location of the beginning of the node, in bytes from the +beginning of the (unsplit) output. + + If you are using `texinfo-format-buffer' to create Info files, you +may want to run the `Info-validate' command. (The `makeinfo' command +does such a good job on its own, you do not need `Info-validate'.) +However, you cannot run the `M-x Info-validate' node-checking command +on indirect files. For information on how to prevent files from being +split and how to validate the structure of the nodes, see *Note Using +Info-validate::. + + +File: texinfo.info, Node: Installing an Info File, Prev: Creating an Info File, Up: Creating and Installing Info Files + +21.2 Installing an Info File +============================ + +Info files are usually kept in the `info' directory. You can read Info +files using the standalone Info program or the Info reader built into +Emacs. (*note info: (info)Top, for an introduction to Info.) + +* Menu: + +* Directory File:: The top level menu for all Info files. +* New Info File:: Listing a new Info file. +* Other Info Directories:: How to specify Info files that are + located in other directories. +* Installing Dir Entries:: How to specify what menu entry to add + to the Info directory. +* Invoking install-info:: `install-info' options. + + +File: texinfo.info, Node: Directory File, Next: New Info File, Up: Installing an Info File + +21.2.1 The Directory File `dir' +------------------------------- + +For Info to work, the `info' directory must contain a file that serves +as a top level directory for the Info system. By convention, this file +is called `dir'. (You can find the location of this file within Emacs +by typing `C-h i' to enter Info and then typing `C-x C-f' to see the +pathname to the `info' directory.) + + The `dir' file is itself an Info file. It contains the top level +menu for all the Info files in the system. The menu looks like this: + + * Menu: + * Info: (info). Documentation browsing system. + * Emacs: (emacs). The extensible, self-documenting + text editor. + * Texinfo: (texinfo). With one source file, make + either a printed manual using + @TeX{} or an Info file. + ... + + Each of these menu entries points to the `Top' node of the Info file +that is named in parentheses. (The menu entry does not need to specify +the `Top' node, since Info goes to the `Top' node if no node name is +mentioned. *Note Nodes in Other Info Files: Other Info Files.) + + Thus, the `Info' entry points to the `Top' node of the `info' file +and the `Emacs' entry points to the `Top' node of the `emacs' file. + + In each of the Info files, the `Up' pointer of the `Top' node refers +back to the `dir' file. For example, the line for the `Top' node of +the Emacs manual looks like this in Info: + + File: emacs Node: Top, Up: (DIR), Next: Distrib + +In this case, the `dir' file name is written in upper case letters--it +can be written in either upper or lower case. This is not true in +general, it is a special case for `dir'. + + +File: texinfo.info, Node: New Info File, Next: Other Info Directories, Prev: Directory File, Up: Installing an Info File + +21.2.2 Listing a New Info File +------------------------------ + +To add a new Info file to your system, you must write a menu entry to +add to the menu in the `dir' file in the `info' directory. For +example, if you were adding documentation for GDB, you would write the +following new entry: + + * GDB: (gdb). The source-level C debugger. + +The first part of the menu entry is the menu entry name, followed by a +colon. The second part is the name of the Info file, in parentheses, +followed by a period. The third part is the description. + + The name of an Info file often has a `.info' extension. Thus, the +Info file for GDB might be called either `gdb' or `gdb.info'. The Info +reader programs automatically try the file name both with and without +`.info'(1); so it is better to avoid clutter and not to write `.info' +explicitly in the menu entry. For example, the GDB menu entry should +use just `gdb' for the file name, not `gdb.info'. + + ---------- Footnotes ---------- + + (1) On MS-DOS/MS-Windows systems, Info will try the `.inf' extension +as well. + + +File: texinfo.info, Node: Other Info Directories, Next: Installing Dir Entries, Prev: New Info File, Up: Installing an Info File + +21.2.3 Info Files in Other Directories +-------------------------------------- + +If an Info file is not in the `info' directory, there are three ways to +specify its location: + + 1. Write the pathname in the `dir' file as the second part of the + menu. + + 2. If you are using Emacs, list the name of the file in a second `dir' + file, in its directory; and then add the name of that directory to + the `Info-directory-list' variable in your personal or site + initialization file. + + This variable tells Emacs where to look for `dir' files (the files + must be named `dir'). Emacs merges the files named `dir' from + each of the listed directories. (In Emacs version 18, you can set + the `Info-directory' variable to the name of only one directory.) + + 3. Specify the Info directory name in the `INFOPATH' environment + variable in your `.profile' or `.cshrc' initialization file. + (Only you and others who set this environment variable will be + able to find Info files whose location is specified this way.) + + For example, to reach a test file in the `/home/bob/info' directory, +you could add an entry like this to the menu in the standard `dir' file: + + * Test: (/home/bob/info/info-test). Bob's own test file. + +In this case, the absolute file name of the `info-test' file is written +as the second part of the menu entry. + + Alternatively, you could write the following in your `.emacs' file: + + (require 'info) + (setq Info-directory-list + (cons (expand-file-name "/home/bob/info") + Info-directory-list)) + + This tells Emacs to merge the system `dir' file with the `dir' file +in `/home/bob/info'. Thus, Info will list the +`/home/bob/info/info-test' file as a menu entry in the +`/home/bob/info/dir' file. Emacs does the merging only when `M-x info' +is first run, so if you want to set `Info-directory-list' in an Emacs +session where you've already run `info', you must `(setq +Info-dir-contents nil)' to force Emacs to recompose the `dir' file. + + Finally, you can tell Info where to look by setting the `INFOPATH' +environment variable in your shell startup file, such as `.cshrc', +`.profile' or `autoexec.bat'. If you use a Bourne-compatible shell +such as `sh' or `bash' for your shell command interpreter, you set the +`INFOPATH' environment variable in the `.profile' initialization file; +but if you use `csh' or `tcsh', you set the variable in the `.cshrc' +initialization file. On MS-DOS/MS-Windows systems, you must set +`INFOPATH' in your `autoexec.bat' file or in the Registry. Each type +of shell uses a different syntax. + + * In a `.cshrc' file, you could set the `INFOPATH' variable as + follows: + + setenv INFOPATH .:~/info:/usr/local/emacs/info + + * In a `.profile' file, you would achieve the same effect by writing: + + INFOPATH=.:$HOME/info:/usr/local/emacs/info + export INFOPATH + + * In a `autoexec.bat' file, you write this command(1): + + set INFOPATH=.;%HOME%/info;c:/usr/local/emacs/info + +The `.' indicates the current directory as usual. Emacs uses the +`INFOPATH' environment variable to initialize the value of Emacs's own +`Info-directory-list' variable. The stand-alone Info reader merges any +files named `dir' in any directory listed in the `INFOPATH' variable +into a single menu presented to you in the node called `(dir)Top'. + + However you set `INFOPATH', if its last character is a colon(2), this +is replaced by the default (compiled-in) path. This gives you a way to +augment the default path with new directories without having to list all +the standard places. For example (using `sh' syntax): + + INFOPATH=/local/info: + export INFOPATH + +will search `/local/info' first, then the standard directories. +Leading or doubled colons are not treated specially. + + When you create your own `dir' file for use with +`Info-directory-list' or `INFOPATH', it's easiest to start by copying +an existing `dir' file and replace all the text after the `* Menu:' +with your desired entries. That way, the punctuation and special +CTRL-_ characters that Info needs will be present. + + ---------- Footnotes ---------- + + (1) Note the use of `;' as the directory separator, and a different +syntax for using values of other environment variables. + + (2) On MS-DOS/MS-Windows systems, use semi-colon instead. + + +File: texinfo.info, Node: Installing Dir Entries, Next: Invoking install-info, Prev: Other Info Directories, Up: Installing an Info File + +21.2.4 Installing Info Directory Files +-------------------------------------- + +When you install an Info file onto your system, you can use the program +`install-info' to update the Info directory file `dir'. Normally the +makefile for the package runs `install-info', just after copying the +Info file into its proper installed location. + + In order for the Info file to work with `install-info', you include +the commands `@dircategory' and `@direntry'...`@end direntry' in the +Texinfo source file. Use `@direntry' to specify the menu entries to +add to the Info directory file, and use `@dircategory' to specify which +part of the Info directory to put it in. Here is how these commands +are used in this manual: + + @dircategory Texinfo documentation system + @direntry + * Texinfo: (texinfo). The GNU documentation format. + * install-info: (texinfo)Invoking install-info. ... + ... + @end direntry + + Here's what this produces in the Info file: + + INFO-DIR-SECTION Texinfo documentation system + START-INFO-DIR-ENTRY + * Texinfo: (texinfo). The GNU documentation format. + * install-info: (texinfo)Invoking install-info. ... + ... + END-INFO-DIR-ENTRY + +The `install-info' program sees these lines in the Info file, and that +is how it knows what to do. + + Always use the `@direntry' and `@dircategory' commands near the +beginning of the Texinfo input, before the first `@node' command. If +you use them later on in the input, `install-info' will not notice them. + + If you use `@dircategory' more than once in the Texinfo source, each +usage specifies the `current' category; any subsequent `@direntry' +commands will add to that category. + + When choosing a category name for the `@dircategory' command, we +recommend consulting the Free Software Directory +(http://www.gnu.org/directory). If your program is not listed there, +or listed incorrectly or incompletely, please report the situation to +the directory maintainers (<bug-directory@gnu.org>) so that the +category names can be kept in sync. + + Here are a few examples (see the `util/dir-example' file in the +Texinfo distribution for large sample `dir' file): + + Emacs + Localization + Printing + Software development + Software libraries + Text creation and manipulation + + Each `Invoking' node for every program installed should have a +corresponding `@direntry'. This lets users easily find the +documentation for the different programs they can run, as with the +traditional `man' system. + + +File: texinfo.info, Node: Invoking install-info, Prev: Installing Dir Entries, Up: Installing an Info File + +21.2.5 Invoking `install-info' +------------------------------ + +`install-info' inserts menu entries from an Info file into the +top-level `dir' file in the Info system (see the previous sections for +an explanation of how the `dir' file works). It's most often run as +part of software installation, or when constructing a `dir' file for +all manuals on a system. Synopsis: + + install-info [OPTION]... [INFO-FILE [DIR-FILE]] + + If INFO-FILE or DIR-FILE are not specified, the options (described +below) that define them must be. There are no compile-time defaults, +and standard input is never used. `install-info' can read only one +Info file and write only one `dir' file per invocation. + + If DIR-FILE (however specified) does not exist, `install-info' +creates it if possible (with no entries). + + If any input file is compressed with `gzip' (*note Invoking gzip: +(gzip)Invoking gzip.), `install-info' automatically uncompresses it for +reading. And if DIR-FILE is compressed, `install-info' also +automatically leaves it compressed after writing any changes. If +DIR-FILE itself does not exist, `install-info' tries to open +`DIR-FILE.gz'. + + Options: + +`--delete' + Delete the entries in INFO-FILE from DIR-FILE. The file name in + the entry in DIR-FILE must be INFO-FILE (except for an optional + `.info' in either one). Don't insert any new entries. + +`--dir-file=NAME' +`-d NAME' + Specify file name of the Info directory file. This is equivalent + to using the DIR-FILE argument. + +`--entry=TEXT' +`-e TEXT' + Insert TEXT as an Info directory entry; TEXT should have the form + of an Info menu item line plus zero or more extra lines starting + with whitespace. If you specify more than one entry, they are all + added. If you don't specify any entries, they are determined from + information in the Info file itself. + +`--help' +`-h' + Display a usage message listing basic usage and all available + options, then exit successfully. + +`--info-file=FILE' +`-i FILE' + Specify Info file to install in the directory. Equivalent to + using the INFO-FILE argument. + +`--info-dir=DIR' +`-D DIR' + Specify the directory where the directory file `dir' resides. + Equivalent to `--dir-file=DIR/dir'. + +`--item=TEXT' + Same as `--entry=TEXT'. An Info directory entry is actually a + menu item. + +`--quiet' + Suppress warnings. + +`--remove' +`-r' + Same as `--delete'. + +`--section=SEC' +`-s SEC' + Put this file's entries in section SEC of the directory. If you + specify more than one section, all the entries are added in each + of the sections. If you don't specify any sections, they are + determined from information in the Info file itself. + +`--version' +`-V' + Display version information and exit successfully. + + + +File: texinfo.info, Node: Generating HTML, Next: Command List, Prev: Creating and Installing Info Files, Up: Top + +22 Generating HTML +****************** + +`makeinfo' generates Info output by default, but given the `--html' +option, it will generate HTML, for web browsers and other programs. +This chapter gives some details on such HTML output. + + `makeinfo' can also write in XML and Docbook format, but we do not as +yet describe these further. *Note Output Formats::, for a brief +overview of all the output formats. + +* Menu: + +* HTML Translation:: Details of the HTML output. +* HTML Splitting:: How HTML output is split. +* HTML CSS:: Influencing HTML output with Cascading Style Sheets. +* HTML Xref:: Cross-references in HTML output. + + +File: texinfo.info, Node: HTML Translation, Next: HTML Splitting, Up: Generating HTML + +22.1 HTML Translation +===================== + +`makeinfo' will include segments of Texinfo source between `@ifhtml' +and `@end ifhtml' in the HTML output (but not any of the other +conditionals, by default). Source between `@html' and `@end html' is +passed without change to the output (i.e., suppressing the normal +escaping of input `<', `>' and `&' characters which have special +significance in HTML). *Note Conditional Commands::. + + The `--footnote-style' option is currently ignored for HTML output; +footnotes are always linked to the end of the output file. + + By default, a navigation bar is inserted at the start of each node, +analogous to Info output. The `--no-headers' option suppresses this if +used with `--no-split'. Header `<link>' elements in split output can +support info-like navigation with browsers like Lynx and Emacs W3 which +implement this HTML 1.0 feature. + + The HTML generated is mostly standard (i.e., HTML 2.0, RFC-1866). +One exception is that HTML 3.2 tables are generated from the +`@multitable' command, but tagged to degrade as well as possible in +browsers without table support. The HTML 4 `lang' attribute on the +`<html>' attribute is also used. (Please report output from an +error-free run of `makeinfo' which has browser portability problems as +a bug.) + + +File: texinfo.info, Node: HTML Splitting, Next: HTML CSS, Prev: HTML Translation, Up: Generating HTML + +22.2 HTML Splitting +=================== + +When splitting output (which is the default), `makeinfo' writes HTML +output into (generally) one output file per Texinfo source `@node'. + + The output file name is the node name with special characters replaced +by `-''s, so it can work as a filename. In the unusual case of two +different nodes having the same name after this treatment, they are +written consecutively to the same file, with HTML anchors so each can +be referred to separately. If `makeinfo' is run on a system which does +not distinguish case in filenames, nodes which are the same except for +case will also be folded into the same output file. + + When splitting, the HTML output files are written into a subdirectory, +with the name chosen as follows: + 1. `makeinfo' first tries the subdirectory with the base name from + `@setfilename' (that is, any extension is removed). For example, + HTML output for `@setfilename gcc.info' would be written into a + subdirectory named `gcc'. + + 2. If that directory cannot be created for any reason, then + `makeinfo' tries appending `.html' to the directory name. For + example, output for `@setfilename texinfo' would be written to + `texinfo.html'. + + 3. If the `NAME.html' directory can't be created either, `makeinfo' + gives up. + + +In any case, the top-level output file within the directory is always +named `index.html'. + + Monolithic output (`--no-split') is named according to `@setfilename' +(with any `.info' extension is replaced with `.html') or `--output' +(the argument is used literally). + + +File: texinfo.info, Node: HTML CSS, Next: HTML Xref, Prev: HTML Splitting, Up: Generating HTML + +22.3 HTML CSS +============= + +Cascading Style Sheets (CSS for short) is an Internet standard for +influencing the display of HTML documents: see +`http://www.w3.org/Style/CSS/'. + + By default, `makeinfo' includes a few simple CSS commands to better +implement the appearance of some of the environments. Here are two of +them, as an example: + + pre.display { font-family:inherit } + pre.smalldisplay { font-family:inherit; font-size:smaller } + + A full explanation of CSS is (far) beyond this manual; please see the +reference above. In brief, however, this specification tells the web +browser to use a `smaller' font size for `@smalldisplay' text, and to +use the `inherited' font (generally a regular roman typeface) for both +`@smalldisplay' and `@display'. By default, the HTML `<pre>' command +uses a monospaced font. + + You can influence the CSS in the HTML output with the +`--css-include=FILE' option to `makeinfo'. This includes the contents +FILE in the HTML output, as you might expect. However, the details are +somewhat tricky, as described in the following, to provide maximum +flexibility. + + The CSS file may begin with so-called `@import' directives, which +link to external CSS specifications for browsers to use when +interpreting the document. Again, a full description is beyond our +scope here, but we'll describe how they work syntactically, so we can +explain how `makeinfo' handles them. + + There can be more than one `@import', but they have to come first in +the file, with only whitespace and comments interspersed, no normal +definitions. (Technical exception: an `@charset' directive may precede +the `@import''s. This does not alter `makeinfo''s behavior, it just +copies the `@charset' if present.) Comments in CSS files are delimited +by `/* ... */', as in C. An `@import' directive must be in one of +these two forms: + + @import url(http://example.org/foo.css); + @import "http://example.net/bar.css"; + + As far as `makeinfo' is concerned, the crucial characters are the `@' +at the beginning and the semicolon terminating the directive. When +reading the CSS file, it simply copies any such `@'-directive into the +output, as follows: + + * If FILE contains only normal CSS declarations, it is included + after `makeinfo''s default CSS, thus overriding it. + + * If FILE begins with `@import' specifications (see below), then the + `import''s are included first (they have to come first, according + to the standard), and then `makeinfo''s default CSS is included. + If you need to override `makeinfo''s defaults from an `@import', + you can do so with the `! important' CSS construct, as in: + pre.smallexample { font-size: inherit ! important } + + * If FILE contains both `@import' and inline CSS specifications, the + `@import''s are included first, then `makeinfo''s defaults, and + lastly the inline CSS from FILE. + + * Any @-directive other than `@import' and `@charset' is treated as + a CSS declaration, meaning `makeinfo' includes its default CSS and + then the rest of the file. + + + If the CSS file is malformed or erroneous, `makeinfo''s output is +unspecified. `makeinfo' does not try to interpret the meaning of the +CSS file in any way; it just looks for the special `@' and `;' +characters and blindly copies the text into the output. Comments in +the CSS file may or may not be included in the output. + + +File: texinfo.info, Node: HTML Xref, Prev: HTML CSS, Up: Generating HTML + +22.4 HTML Cross-references +========================== + +Cross-references between Texinfo manuals in HTML format amount, in the +end, to a standard HTML `<a>' link, but the details are unfortunately +complex. This section describes the algorithm used in detail, so that +Texinfo can cooperate with other programs, such as `texi2html', by +writing mutually compatible HTML files. + + This algorithm may or may not be used for links _within_ HTML output +for a Texinfo file. Since no issues of compatibility arise in such +cases, we do not need to specify this. + + We try to support references to such "external" manuals in both +monolithic and split forms. A "monolithic" (mono) manual is entirely +contained in one file, and a "split" manual has a file for each node. +(*Note HTML Splitting::.) + + Acknowledgement: this algorithm was primarily devised by Patrice Dumas +in 2003-04. + +* Menu: + +* Link Basics: HTML Xref Link Basics. +* Node Expansion: HTML Xref Node Name Expansion. +* Command Expansion: HTML Xref Command Expansion. +* 8-bit Expansion: HTML Xref 8-bit Character Expansion. +* Mismatch: HTML Xref Mismatch. + + +File: texinfo.info, Node: HTML Xref Link Basics, Next: HTML Xref Node Name Expansion, Up: HTML Xref + +22.4.1 HTML Cross-reference Link Basics +--------------------------------------- + +For our purposes, an HTML link consists of four components: a host +name, a directory part, a file part, and a target part. We always +assume the `http' protocol. For example: + + http://HOST/DIR/FILE.html#TARGET + + The information to construct a link comes from the node name and +manual name in the cross-reference command in the Texinfo source (*note +Cross References::), and from "external information", which is +currently simply hardwired. In the future, it may come from an +external data file. + + We now consider each part in turn. + + The HOST is hardwired to be the local host. This could either be the +literal string `localhost', or, according to the rules for HTML links, +the `http://localhost/' could be omitted entirely. + + The DIR and FILE parts are more complicated, and depend on the +relative split/mono nature of both the manual being processed and the +manual that the cross-reference refers to. The underlying idea is that +there is one directory for Texinfo manuals in HTML, and each manual is +either available as a monolithic file `manual.html', or a split +subdirectory `manual/*.html'. Here are the cases: + + * If the present manual is split, and the referent manual is also + split, the directory is `../REFERENT/' and the file is the + expanded node name (described later). + + * If the present manual is split, and the referent manual is mono, + the directory is `../' and the file is `REFERENT.html'. + + * If the present manual is mono, and the referent manual is split, + the directory is `REFERENT/' and the file is the expanded node + name. + + * If the present manual is mono, and the referent manual is also + mono, the directory is `./' (or just the empty string), and the + file is `REFERENT.html'. + + + Any directory part in the filename argument of the source +cross-reference command is ignored. Thus, `@xref{,,,../foo}' and +`@xref{,,,foo}' both use `foo' as the manual name. This is because any +such attempted hardwiring of the directory is very unlikely to be +useful for both Info and HTML output. + + Finally, the TARGET part is always the expanded node name. + + Whether the present manual is split or mono is determined by user +option; `makeinfo' defaults to split, with the `--no-split' option +overriding this. + + Whether the referent manual is split or mono is another bit of the +external information. For now, `makeinfo' simply assumes the referent +manual is the same as the present manual. + + There can be a mismatch between the format of the referent manual that +the generating software assumes, and the format it's actually present +in. *Note HTML Xref Mismatch::. + + +File: texinfo.info, Node: HTML Xref Node Name Expansion, Next: HTML Xref Command Expansion, Prev: HTML Xref Link Basics, Up: HTML Xref + +22.4.2 HTML Cross-reference Node Name Expansion +----------------------------------------------- + +As mentioned in the previous section, the key part of the HTML +cross-reference algorithm is the conversion of node names in the +Texinfo source into strings suitable for HTML identifiers and +filenames. The restrictions are similar for each: plain ASCII letters, +numbers, and the `-' and `_' characters are all that can be used. + + Cross-references in Texinfo can actually refer either to nodes or +anchors (*note anchor::), but anchors are treated identically to nodes +in this context, so we'll continue to say "node" names for simplicity. + + (@-commands and 8-bit characters are not presently handled by +`makeinfo' for HTML cross-references. See the next section.) + + A special exception: the Top node (*note The Top Node::) is always +mapped to the file `index.html', to match web server software. +However, the HTML _target_ is `Top'. Thus (in the split case): + @xref{Top, Introduction,, emacs, The GNU Emacs Manual}. + => <a href="emacs/index.html#Top"> + + 1. The standard ASCII letters (a-z and A-z), and numbers (0-9) are not + modified. All other characters are changed as specified below. + + 2. Multiple consecutive space, tab and newline characters are + transformed into just one space. (It's not possible to have + newlines in node names with the current implementation, but we + specify it anyway, just in case.) + + 3. Leading and trailing spaces are removed. + + 4. After the above has been applied, each remaining space character is + converted into a `-' character. + + 5. Other ASCII 7-bit characters are transformed into `_00XX', where + XX is the ASCII character code in (lowercase) hexadecimal. This + includes `_', which is mapped to `_005f'. + + + For example: + + @node A node --- with _'% + => A-node-_002d_002d_002d-with-_005f_0027_0025 + + Notice in particular: + + * `_' => `_005f' + + * `-' => `_002d' + + * `A node' => `A-node' + + On case-folding computer systems, nodes differing only by case will be +mapped to the same file. + + In particular, as mentioned above, Top always maps to the file +`index.html'. Thus, on a case-folding system, Top and a node named +`Index' will both be written to `index.html'. + + Fortunately, the targets serve to distinguish these cases, since HTML +target names are always case-sensitive, independent of operating system. + + +File: texinfo.info, Node: HTML Xref Command Expansion, Next: HTML Xref 8-bit Character Expansion, Prev: HTML Xref Node Name Expansion, Up: HTML Xref + +22.4.3 HTML Cross-reference Command Expansion +--------------------------------------------- + +In standard Texinfo, node names may not contain @-commands. `makeinfo' +has an option `--commands-in-node-names' which partially supports it +(*note Invoking makeinfo::), but it is not robust and not recommended. + + Thus, `makeinfo' also does not fully implement this part of the HTML +cross-reference algorithm, but it is documented here for the sake of +completeness. + + First, comments are removed. + + Next, any `@value' commands (*note set value::) and macro invocations +(*note Invoking Macros::) are fully expanded. + + Then, for the following commands, the command name and braces are +removed, the text of the argument is recursively transformed: + @asis @b @cite @code @command @dfn @dmn @dotless + @emph @env @file @indicateurl @kbd @key + @samp @sc @strong @t @var @w + +For `@sc', any letters are capitalized. + + The following commands are replaced by constant text, as shown. If +any of these commands have non-empty arguments, as in `@TeX{bad}', it +is an error, and the result is unspecified. `(space)' means a space +character, `(nothing)' means the empty string, etc. The notation +`U+XXXX' means Unicode code point XXXX. There are further +transformations of many of these expansions for the final file or +target name, such as space characters to `-', etc., according to the +other rules. + +`@(newline)' (space) +`@(space)' (space) +`@(tab)' (space) +`@!' `!' +`@*' (space) +`@-' (nothing) +`@.' `.' +`@:' (nothing) +`@?' `?' +`@@' `@' +`@{' `{' +`@}' `}' +`@LaTeX' `LaTeX' +`@TeX' `TeX' +`@bullet' U+2022 +`@comma' `,' +`@copyright' U+00A9 +`@dots' U+2026 +`@enddots' `...' +`@equiv' U+2261 +`@error' `error-->' +`@exclamdown' U+00A1 +`@expansion' U+2192 +`@minus' U+2212 +`@ordf' U+00AA +`@ordm' U+00BA +`@point' U+2217 +`@pounds' U+00A3 +`@print' `-|' +`@questiondown' U+00BF +`@registeredsymbol' U+00AE +`@result' U+21D2 +`@tie' (space) + + An `@acronym' command is replaced by the first argument, followed by +the second argument in parentheses, if present. *Note acronym::. + + An `@email' command is replaced by the TEXT argument if present, else +the address. *Note email::. + + An `@image' command is replaced by the filename (first) argument. +*Note Images::. + + A `@verb' command is replaced by its transformed argument. *Note +verb::. + + Any other command is an error, and the result is unspecified. + + +File: texinfo.info, Node: HTML Xref 8-bit Character Expansion, Next: HTML Xref Mismatch, Prev: HTML Xref Command Expansion, Up: HTML Xref + +22.4.4 HTML Cross-reference 8-bit Character Expansion +----------------------------------------------------- + +Characters other than plain 7-bit ASCII are transformed into the +corresponding Unicode code point(s), in Normalization Form C, which +uses precomposed characters where available. (This is the +normalization form recommended by the W3C and other bodies.) + + These will then be further transformed by the rules above into the +string `_XXXX', where XXXX is the code point in hex. + + For example, combining this rule and the previous section: + + @node @b{A} @TeX{} @u{B} @point{}@enddots{} + => A-TeX-B_0306-_2605_002e_002e_002e + + Notice: 1) `@enddots' expands to three periods which in turn expands +to three `_002e''s; 2) `@u{B}' is a `B' with a breve accent, which does +not exist as a pre-accented Unicode character, therefore expands to +`B_0306' (B with combining breve). + + For the definition of Unicode Normalization Form C, see Unicode report +UAX#15, `http://www.unicode.org/reports/tr15/'. Many related documents +and implementations are available elsewhere on the web. + + +File: texinfo.info, Node: HTML Xref Mismatch, Prev: HTML Xref 8-bit Character Expansion, Up: HTML Xref + +22.4.5 HTML Cross-reference Mismatch +------------------------------------ + +As mentioned earlier (*note HTML Xref Link Basics::), the generating +software has to guess whether a given manual being cross-referenced is +available in split or monolithic form--and, inevitably, it might guess +wrong. However, it is possible when the referent manual itself is +generated, it is possible to handle at least some mismatches. + + In the case where we assume the referent is split, but it is actually +available in mono, the only recourse would be to generate a `manual/' +subdirectory full of HTML files which redirect back to the monolithic +`manual.html'. Since this is essentially the same as a split manual in +the first place, it's not very appealing. + + On the other hand, in the case where we assume the referent is mono, +but it is actually available in split, it is possible to use JavaScript +to redirect from the putatively monolithic `manual.html' to the +different `manual/node.html' files. Here's an example: + + function redirect() { + switch (location.hash) { + case "#Node1": + location.replace("manual/Node1.html#Node1"); break; + case "#Node2" : + location.replace("manual/Node2.html#Node2"); break; + ... + default:; + } + } + + Then, in the `<body>' tag of `manual.html': + + <body onLoad="redirect();"> + + Once again, this is something the software which generated the +_referent_ manual has to do in advance, it's not something the software +generating the actual cross-reference in the present manual can control. + + Ultimately, we hope to allow for an external configuration file to +control which manuals are available from where, and how. + + +File: texinfo.info, Node: Command List, Next: Tips, Prev: Generating HTML, Up: Top + +Appendix A @-Command List +************************* + +Here is an alphabetical list of the @-commands in Texinfo. Square +brackets, [ ], indicate optional arguments; an ellipsis, `...', +indicates repeated text. + + More specifics on the general syntax of different @-commands are +given in the section below. + +* Menu: + +* Command Syntax:: General syntax for varieties of @-commands. + + +`@WHITESPACE' + An `@' followed by a space, tab, or newline produces a normal, + stretchable, interword space. *Note Multiple Spaces::. + +`@!' + Generate an exclamation point that really does end a sentence + (usually after an end-of-sentence capital letter). *Note Ending a + Sentence::. + +`@"' +`@'' + Generate an umlaut or acute accent, respectively, over the next + character, as in o" and o'. *Note Inserting Accents::. + +`@*' + Force a line break. *Note Line Breaks::. + +`@,{C}' + Generate a cedilla accent under C, as in c,. *Note Inserting + Accents::. + +`@-' + Insert a discretionary hyphenation point. *Note - and + hyphenation::. + +`@.' + Produce a period that really does end a sentence (usually after an + end-of-sentence capital letter). *Note Ending a Sentence::. + +`@/' + Produces no output, but allows a line break. *Note Line Breaks::. + +`@:' + Indicate to TeX that an immediately preceding period, question + mark, exclamation mark, or colon does not end a sentence. Prevent + TeX from inserting extra whitespace as it does at the end of a + sentence. The command has no effect on the Info file output. + *Note Not Ending a Sentence::. + +`@=' + Generate a macron (bar) accent over the next character, as in o=. + *Note Inserting Accents::. + +`@?' + Generate a question mark that really does end a sentence (usually + after an end-of-sentence capital letter). *Note Ending a + Sentence::. + +`@@' + Stands for an at sign, `@'. *Note Inserting @ and {} and ,: + Atsign Braces Comma. + +`@\' + Stands for a backslash (`\') inside `@math'. *Note `math': math. + +`@^' +`@`' + Generate a circumflex (hat) or grave accent, respectively, over + the next character, as in o^ and e`. *Note Inserting Accents::. + +`@{' + Stands for a left brace, `{'. *Note Inserting @ and {} and ,: + Atsign Braces Comma. + +`@}' + Stands for a right-hand brace, `}'. + *Note Inserting @ and {} and ,: Atsign Braces Comma. + +`@~' + Generate a tilde accent over the next character, as in N~. *Note + Inserting Accents::. + +`@AA{}' +`@aa{}' + Generate the uppercase and lowercase Scandinavian A-ring letters, + respectively: AA, aa. *Note Inserting Accents::. + +`@acronym{ABBREV}' + Tag ABBREV as an acronym, that is, an abbreviation written in all + capital letters, such as `NASA'. *Note `acronym': acronym. + +`@AE{}' +`@ae{}' + Generate the uppercase and lowercase AE ligatures, respectively: + AE, ae. *Note Inserting Accents::. + +`@afivepaper' + Change page dimensions for the A5 paper size. *Note A4 Paper::. + +`@afourlatex' +`@afourpaper' +`@afourwide' + Change page dimensions for the A4 paper size. *Note A4 Paper::. + +`@alias NEW=EXISTING' + Make the command `@NEW' an alias for the existing command + `@EXISTING'. *Note alias::. + +`@anchor{NAME}' + Define NAME as the current location for use as a cross-reference + target. *Note `@anchor': anchor. + +`@appendix TITLE' + Begin an appendix. The title appears in the table of contents of + a printed manual. In Info, the title is underlined with + asterisks. *Note The `@unnumbered' and `@appendix' Commands: + unnumbered & appendix. + +`@appendixsec TITLE' +`@appendixsection TITLE' + Begin an appendix section within an appendix. The section title + appears in the table of contents of a printed manual. In Info, + the title is underlined with equal signs. `@appendixsection' is a + longer spelling of the `@appendixsec' command. *Note Section + Commands: unnumberedsec appendixsec heading. + +`@appendixsubsec TITLE' + Begin an appendix subsection within an appendix. The title appears + in the table of contents of a printed manual. In Info, the title + is underlined with hyphens. *Note Subsection Commands: + unnumberedsubsec appendixsubsec subheading. + +`@appendixsubsubsec TITLE' + Begin an appendix subsubsection within an appendix subsection. The + title appears in the table of contents of a printed manual. In + Info, the title is underlined with periods. *Note The `subsub' + Commands: subsubsection. + +`@asis' + Used following `@table', `@ftable', and `@vtable' to print the + table's first column without highlighting ("as is"). *Note Making + a Two-column Table: Two-column Tables. + +`@author AUTHOR' + Typeset AUTHOR flushleft and underline it. *Note The `@title' and + `@author' Commands: title subtitle author. + +`@b{TEXT}' + Print TEXT in bold font. No effect in Info. *Note Fonts::. + +`@bullet{}' + Generate a large round dot, or the closest possible thing to one. + *Note `@bullet': bullet. + +`@bye' + Stop formatting a file. The formatters do not see the contents of + a file following an `@bye' command. *Note Ending a File::. + +`@c COMMENT' + Begin a comment in Texinfo. The rest of the line does not appear + in either the Info file or the printed manual. A synonym for + `@comment'. *Note Comments::. + +`@caption' + Define the full caption for a `@float'. *Note caption + shortcaption::. + +`@cartouche' + Highlight an example or quotation by drawing a box with rounded + corners around it. Pair with `@end cartouche'. No effect in + Info. *Note Drawing Cartouches Around Examples: cartouche.) + +`@center LINE-OF-TEXT' + Center the line of text following the command. *Note `@center': + titlefont center sp. + +`@centerchap LINE-OF-TEXT' + Like `@chapter', but centers the chapter title. *Note `@chapter': + chapter. + +`@chapheading TITLE' + Print a chapter-like heading in the text, but not in the table of + contents of a printed manual. In Info, the title is underlined + with asterisks. *Note `@majorheading' and `@chapheading': + majorheading & chapheading. + +`@chapter TITLE' + Begin a chapter. The chapter title appears in the table of + contents of a printed manual. In Info, the title is underlined + with asterisks. *Note `@chapter': chapter. + +`@cindex ENTRY' + Add ENTRY to the index of concepts. *Note Defining the Entries of + an Index: Index Entries. + +`@cite{REFERENCE}' + Highlight the name of a book or other reference that lacks a + companion Info file. *Note `@cite': cite. + +`@clear FLAG' + Unset FLAG, preventing the Texinfo formatting commands from + formatting text between subsequent pairs of `@ifset FLAG' and + `@end ifset' commands, and preventing `@value{FLAG}' from + expanding to the value to which FLAG is set. *Note `@set' + `@clear' `@value': set clear value. + +`@code{SAMPLE-CODE}' + Highlight text that is an expression, a syntactically complete + token of a program, or a program name. *Note `@code': code. + +`@comma{}' + Insert a comma `,' character; only needed when a literal comma + would be taken as an argument separator. *Note Inserting a + Comma::. + +`@command{COMMAND-NAME}' + Indicate a command name, such as `ls'. *Note `@command': command. + +`@comment COMMENT' + Begin a comment in Texinfo. The rest of the line does not appear + in either the Info file or the printed manual. A synonym for `@c'. + *Note Comments::. + +`@contents' + Print a complete table of contents. Has no effect in Info, which + uses menus instead. *Note Generating a Table of Contents: + Contents. + +`@copyright{}' + Generate the copyright symbol (C). *Note `@copyright{}': + copyright symbol. + +`@defcodeindex INDEX-NAME' + Define a new index and its indexing command. Print entries in an + `@code' font. *Note Defining New Indices: New Indices. + +`@defcv CATEGORY CLASS NAME' +`@defcvx CATEGORY CLASS NAME' + Format a description for a variable associated with a class in + object-oriented programming. Takes three arguments: the category + of thing being defined, the class to which it belongs, and its + name. *Note Definition Commands::, and *Note Def Cmds in Detail: + deffnx. + +`@deffn CATEGORY NAME ARGUMENTS...' +`@deffnx CATEGORY NAME ARGUMENTS...' + Format a description for a function, interactive command, or + similar entity that may take arguments. `@deffn' takes as + arguments the category of entity being described, the name of this + particular entity, and its arguments, if any. *Note Definition + Commands::. + +`@defindex INDEX-NAME' + Define a new index and its indexing command. Print entries in a + roman font. *Note Defining New Indices: New Indices. + +`@definfoenclose NEWCMD, BEFORE, AFTER,' + Create new @-command NEWCMD for Info that marks text by enclosing + it in strings that precede and follow the text. *Note + definfoenclose::. + +`@defivar CLASS INSTANCE-VARIABLE-NAME' +`@defivarx CLASS INSTANCE-VARIABLE-NAME' + This command formats a description for an instance variable in + object-oriented programming. The command is equivalent to `@defcv + {Instance Variable} ...'. *Note Definition Commands::, and *Note + Def Cmds in Detail: deffnx. + +`@defmac MACRONAME ARGUMENTS...' +`@defmacx MACRONAME ARGUMENTS...' + Format a description for a macro. The command is equivalent to + `@deffn Macro ...'. *Note Definition Commands::, and *Note Def + Cmds in Detail: deffnx. + +`@defmethod CLASS METHOD-NAME ARGUMENTS...' +`@defmethodx CLASS METHOD-NAME ARGUMENTS...' + Format a description for a method in object-oriented programming. + The command is equivalent to `@defop Method ...'. Takes as + arguments the name of the class of the method, the name of the + method, and its arguments, if any. *Note Definition Commands::, + and *Note Def Cmds in Detail: deffnx. + +`@defop CATEGORY CLASS NAME ARGUMENTS...' +`@defopx CATEGORY CLASS NAME ARGUMENTS...' + Format a description for an operation in object-oriented + programming. `@defop' takes as arguments the overall name of the + category of operation, the name of the class of the operation, the + name of the operation, and its arguments, if any. *Note + Definition Commands::, and *Note Abstract Objects::. + +`@defopt OPTION-NAME' +`@defoptx OPTION-NAME' + Format a description for a user option. The command is equivalent + to `@defvr {User Option} ...'. *Note Definition Commands::, and + *Note Def Cmds in Detail: deffnx. + +`@defspec SPECIAL-FORM-NAME ARGUMENTS...' +`@defspecx SPECIAL-FORM-NAME ARGUMENTS...' + Format a description for a special form. The command is + equivalent to `@deffn {Special Form} ...'. *Note Definition + Commands::, and *Note Def Cmds in Detail: deffnx. + +`@deftp CATEGORY NAME-OF-TYPE ATTRIBUTES...' +`@deftpx CATEGORY NAME-OF-TYPE ATTRIBUTES...' + Format a description for a data type. `@deftp' takes as arguments + the category, the name of the type (which is a word like `int' or + `float'), and then the names of attributes of objects of that type. + *Note Definition Commands::, and *Note Data Types::. + +`@deftypecv CATEGORY CLASS DATA-TYPE NAME' +`@deftypecvx CATEGORY CLASS DATA-TYPE NAME' + Format a description for a typed class variable in object-oriented + programming. *Note Definition Commands::, and *Note Abstract + Objects::. + +`@deftypefn CLASSIFICATION DATA-TYPE NAME ARGUMENTS...' +`@deftypefnx CLASSIFICATION DATA-TYPE NAME ARGUMENTS...' + Format a description for a function or similar entity that may take + arguments and that is typed. `@deftypefn' takes as arguments the + classification of entity being described, the type, the name of the + entity, and its arguments, if any. *Note Definition Commands::, + and *Note Def Cmds in Detail: deffnx. + +`@deftypefun DATA-TYPE FUNCTION-NAME ARGUMENTS...' +`@deftypefunx DATA-TYPE FUNCTION-NAME ARGUMENTS...' + Format a description for a function in a typed language. The + command is equivalent to `@deftypefn Function ...'. *Note + Definition Commands::, and *Note Def Cmds in Detail: deffnx. + +`@deftypeivar CLASS DATA-TYPE VARIABLE-NAME' +`@deftypeivarx CLASS DATA-TYPE VARIABLE-NAME' + Format a description for a typed instance variable in + object-oriented programming. *Note Definition Commands::, and + *Note Abstract Objects::. + +`@deftypemethod CLASS DATA-TYPE METHOD-NAME ARGUMENTS...' +`@deftypemethodx CLASS DATA-TYPE METHOD-NAME ARGUMENTS...' + Format a description for a typed method in object-oriented + programming. *Note Definition Commands::, and *Note Def Cmds in + Detail: deffnx. + +`@deftypeop CATEGORY CLASS DATA-TYPE NAME ARGUMENTS...' +`@deftypeopx CATEGORY CLASS DATA-TYPE NAME ARGUMENTS...' + Format a description for a typed operation in object-oriented + programming. *Note Definition Commands::, and *Note Abstract + Objects::. + +`@deftypevar DATA-TYPE VARIABLE-NAME' +`@deftypevarx DATA-TYPE VARIABLE-NAME' + Format a description for a variable in a typed language. The + command is equivalent to `@deftypevr Variable ...'. *Note + Definition Commands::, and *Note Def Cmds in Detail: deffnx. + +`@deftypevr CLASSIFICATION DATA-TYPE NAME' +`@deftypevrx CLASSIFICATION DATA-TYPE NAME' + Format a description for something like a variable in a typed + language--an entity that records a value. Takes as arguments the + classification of entity being described, the type, and the name + of the entity. *Note Definition Commands::, and *Note Def Cmds in + Detail: deffnx. + +`@defun FUNCTION-NAME ARGUMENTS...' +`@defunx FUNCTION-NAME ARGUMENTS...' + Format a description for functions. The command is equivalent to + `@deffn Function ...'. *Note Definition Commands::, and *Note Def + Cmds in Detail: deffnx. + +`@defvar VARIABLE-NAME' +`@defvarx VARIABLE-NAME' + Format a description for variables. The command is equivalent to + `@defvr Variable ...'. *Note Definition Commands::, and *Note Def + Cmds in Detail: deffnx. + +`@defvr CATEGORY NAME' +`@defvrx CATEGORY NAME' + Format a description for any kind of variable. `@defvr' takes as + arguments the category of the entity and the name of the entity. + *Note Definition Commands::, and *Note Def Cmds in Detail: deffnx. + +`@detailmenu' + Avoid `makeinfo' confusion stemming from the detailed node listing + in a master menu. *Note Master Menu Parts::. + +`@dfn{TERM}' + Highlight the introductory or defining use of a term. *Note + `@dfn': dfn. + +`@dircategory DIRPART' + Specify a part of the Info directory menu where this file's entry + should go. *Note Installing Dir Entries::. + +`@direntry' + Begin the Info directory menu entry for this file. Pair with + `@end direntry'. *Note Installing Dir Entries::. + +`@display' + Begin a kind of example. Like `@example' (indent text, do not + fill), but do not select a new font. Pair with `@end display'. + *Note `@display': display. + +`@dmn{DIMENSION}' + Format a unit of measure, as in 12pt. Causes TeX to insert a thin + space before DIMENSION. No effect in Info. *Note `@dmn': dmn. + +`@docbook' + Enter Docbook completely. Pair with `@end docbook'. *Note Raw + Formatter Commands::. + +`@documentdescription' + Set the document description text, included in the HTML output. + Pair with `@end documentdescription'. *Note + `@documentdescription': documentdescription. + +`@documentencoding ENC' + Declare the input encoding to be ENC. *Note `@documentencoding': + documentencoding. + +`@documentlanguage CC' + Declare the document language as the two-character ISO-639 + abbreviation CC. *Note `@documentlanguage': documentlanguage. + +`@dotaccent{C}' + Generate a dot accent over the character C, as in o.. *Note + Inserting Accents::. + +`@dots{}' + Insert an ellipsis: `...'. *Note `@dots': dots. + +`@email{ADDRESS[, DISPLAYED-TEXT]}' + Indicate an electronic mail address. *Note `@email': email. + +`@emph{TEXT}' + Highlight TEXT; text is displayed in _italics_ in printed output, + and surrounded by asterisks in Info. *Note Emphasizing Text: + Emphasis. + +`@end ENVIRONMENT' + Ends ENVIRONMENT, as in `@end example'. *Note @-commands: + Formatting Commands. + +`@env{ENVIRONMENT-VARIABLE}' + Indicate an environment variable name, such as `PATH'. *Note + `@env': env. + +`@enddots{}' + Generate an end-of-sentence of ellipsis, like this .... *Note + `@dots{}': dots. + +`@enumerate [NUMBER-OR-LETTER]' + Begin a numbered list, using `@item' for each entry. Optionally, + start list with NUMBER-OR-LETTER. Pair with `@end enumerate'. + *Note `@enumerate': enumerate. + +`@equiv{}' + Indicate to the reader the exact equivalence of two forms with a + glyph: `=='. *Note Equivalence::. + +`@error{}' + Indicate to the reader with a glyph that the following text is an + error message: `error-->'. *Note Error Glyph::. + +`@evenfooting [LEFT] @| [CENTER] @| [RIGHT]' +`@evenheading [LEFT] @| [CENTER] @| [RIGHT]' + Specify page footings resp. headings for even-numbered (left-hand) + pages. *Note How to Make Your Own Headings: Custom Headings. + +`@everyfooting [LEFT] @| [CENTER] @| [RIGHT]' +`@everyheading [LEFT] @| [CENTER] @| [RIGHT]' + Specify page footings resp. headings for every page. Not relevant + to Info. *Note How to Make Your Own Headings: Custom Headings. + +`@example' + Begin an example. Indent text, do not fill, and select + fixed-width font. Pair with `@end example'. *Note `@example': + example. + +`@exampleindent INDENT' + Indent example-like environments by INDENT number of spaces + (perhaps 0). *Note Paragraph Indenting: exampleindent. + +`@exclamdown{}' + Produce an upside-down exclamation point. *Note Inserting + Accents::. + +`@exdent LINE-OF-TEXT' + Remove any indentation a line might have. *Note Undoing the + Indentation of a Line: exdent. + +`@expansion{}' + Indicate the result of a macro expansion to the reader with a + special glyph: `==>'. *Note ==> Indicating an Expansion: + expansion. + +`@file{FILENAME}' + Highlight the name of a file, buffer, node, or directory. *Note + `@file': file. + +`@finalout' + Prevent TeX from printing large black warning rectangles beside + over-wide lines. *Note Overfull hboxes::. + +`@findex ENTRY' + Add ENTRY to the index of functions. *Note Defining the Entries + of an Index: Index Entries. + +`@float' + Environment to define floating material. Pair with `@end float'. + *Note Floats::. + +`@flushleft' +`@flushright' + Left justify every line but leave the right end ragged. Leave + font as is. Pair with `@end flushleft'. `@flushright' analogous. + *Note `@flushleft' and `@flushright': flushleft & flushright. + +`@footnote{TEXT-OF-FOOTNOTE}' + Enter a footnote. Footnote text is printed at the bottom of the + page by TeX; Info may format in either `End' node or `Separate' + node style. *Note Footnotes::. + +`@footnotestyle STYLE' + Specify an Info file's footnote style, either `end' for the end + node style or `separate' for the separate node style. *Note + Footnotes::. + +`@format' + Begin a kind of example. Like `@display', but do not narrow the + margins. Pair with `@end format'. *Note `@example': example. + +`@ftable FORMATTING-COMMAND' + Begin a two-column table, using `@item' for each entry. + Automatically enter each of the items in the first column into the + index of functions. Pair with `@end ftable'. The same as + `@table', except for indexing. *Note `@ftable' and `@vtable': + ftable vtable. + +`@group' + Hold text together that must appear on one printed page. Pair with + `@end group'. Not relevant to Info. *Note `@group': group. + +`@H{C}' + Generate the long Hungarian umlaut accent over C, as in o''. + +`@heading TITLE' + Print an unnumbered section-like heading in the text, but not in + the table of contents of a printed manual. In Info, the title is + underlined with equal signs. *Note Section Commands: + unnumberedsec appendixsec heading. + +`@headings ON-OFF-SINGLE-DOUBLE' + Turn page headings on or off, and/or specify single-sided or + double-sided page headings for printing. *Note The `@headings' + Command: headings on off. + +`@html' + Enter HTML completely. Pair with `@end html'. *Note Raw + Formatter Commands::. + +`@hyphenation{HY-PHEN-A-TED WORDS}' + Explicitly define hyphenation points. *Note `@-' and + `@hyphenation': - and hyphenation. + +`@i{TEXT}' + Print TEXT in italic font. No effect in Info. *Note Fonts::. + +`@ifclear FLAG' + If FLAG is cleared, the Texinfo formatting commands format text + between `@ifclear FLAG' and the following `@end ifclear' command. + *Note `@set' `@clear' `@value': set clear value. + +`@ifdocbook' +`@ifhtml' +`@ifinfo' + Begin text that will appear only in the given output format. + `@ifinfo' output appears in both Info and (for historical + compatibility) plain text output. Pair with `@end ifdocbook' + resp. `@end ifhtml' resp. `@end ifinfo'. *Note Conditionals::. + +`@ifnotdocbook' +`@ifnothtml' +`@ifnotinfo' +`@ifnotplaintext' +`@ifnottex' +`@ifnotxml' + Begin a stretch of text that will be ignored in one output format + but not the others. The text appears in the formats not specified: + `@ifnothtml' text is omitted from html output, etc. The exception + is `@ifnotinfo' text, which is omitted from plain text output as + well as Info output. Pair with the corresponding `@end + ifnotFORMAT'. *Note Conditionals::. + +`@ifplaintext' + Begin text that will appear only in the plain text output. Pair + with `@end ifplaintext'. *Note Conditionals::. + +`@ifset FLAG' + If FLAG is set, the Texinfo formatting commands format text + between `@ifset FLAG' and the following `@end ifset' command. + *Note `@set' `@clear' `@value': set clear value. + +`@iftex' + Begin text that will not appear in the Info file or other output, + but will be processed only by TeX. Pair with `@end iftex'. *Note + Conditionally Visible Text: Conditionals. + +`@ifxml' + Begin text that will appear only in the XML output. Pair with + `@end ifxml'. *Note Conditionals::. + +`@ignore' + Begin text that will not appear in any output. Pair with `@end + ignore'. *Note Comments and Ignored Text: Comments. + +`@image{FILENAME, [WIDTH], [HEIGHT], [ALT], [EXT]}' + Include graphics image in external FILENAME scaled to the given + WIDTH and/or HEIGHT, using ALT text and looking for `FILENAME.EXT' + in HTML. *Note Images::. + +`@include FILENAME' + Incorporate the contents of the file FILENAME into the Info file + or printed document. *Note Include Files::. + +`@indicateurl{INDICATEURL}' + Indicate text that is a uniform resource locator for the World Wide + Web. *Note `@indicateurl': indicateurl. + +`@inforef{NODE-NAME, [ENTRY-NAME], INFO-FILE-NAME}' + Make a cross reference to an Info file for which there is no + printed manual. *Note Cross references using `@inforef': inforef. + +`\input MACRO-DEFINITIONS-FILE' + Use the specified macro definitions file. This command is used + only in the first line of a Texinfo file to cause TeX to make use + of the `texinfo' macro definitions file. The backslash in `\input' + is used instead of an `@' because TeX does not recognize `@' until + after it has read the definitions file. *Note Texinfo File + Header::. + +`@item' + Indicate the beginning of a marked paragraph for `@itemize' and + `@enumerate'; indicate the beginning of the text of a first column + entry for `@table', `@ftable', and `@vtable'. *Note Lists and + Tables::. + +`@itemize MARK-GENERATING-CHARACTER-OR-COMMAND' + Produce a sequence of indented paragraphs, with a mark inside the + left margin at the beginning of each paragraph. Pair with `@end + itemize'. *Note `@itemize': itemize. + +`@itemx' + Like `@item' but do not generate extra vertical space above the + item text. *Note `@itemx': itemx. + +`@kbd{KEYBOARD-CHARACTERS}' + Indicate text that is characters of input to be typed by users. + *Note `@kbd': kbd. + +`@kbdinputstyle STYLE' + Specify when `@kbd' should use a font distinct from `@code'. + *Note `@kbd': kbd. + +`@key{KEY-NAME}' + Indicate a name for a key on a keyboard. *Note `@key': key. + +`@kindex ENTRY' + Add ENTRY to the index of keys. *Note Defining the Entries of an + Index: Index Entries. + +`@L{}' +`@l{}' + Generate the uppercase and lowercase Polish suppressed-L letters, + respectively: /L, /l. + +`@LaTeX{}' + Insert the logo LaTeX. *Note TeX and LaTeX: tex. + +`@lisp' + Begin an example of Lisp code. Indent text, do not fill, and + select fixed-width font. Pair with `@end lisp'. *Note `@lisp': + lisp. + +`@listoffloats' + Produce a table-of-contents-like listing of `@float's. *Note + listoffloats::. + +`@lowersections' + Change subsequent chapters to sections, sections to subsections, + and so on. *Note `@raisesections' and `@lowersections': + Raise/lower sections. + +`@macro MACRONAME {PARAMS}' + Define a new Texinfo command `@MACRONAME{PARAMS}'. Only supported + by `makeinfo' and `texi2dvi'. *Note Defining Macros::. + +`@majorheading TITLE' + Print a chapter-like heading in the text, but not in the table of + contents of a printed manual. Generate more vertical whitespace + before the heading than the `@chapheading' command. *Note + `@majorheading' and `@chapheading': majorheading & chapheading. + +`@math{MATHEMATICAL-EXPRESSION}' + Format a mathematical expression. *Note `@math': Inserting + Mathematical Expressions: math. + +`@menu' + Mark the beginning of a menu of nodes in Info. No effect in a + printed manual. Pair with `@end menu'. *Note Menus::. + +`@minus{}' + Generate a minus sign, `-'. *Note `@minus': minus. + +`@multitable COLUMN-WIDTH-SPEC' + Begin a multi-column table. Pair with `@end multitable'. *Note + Multitable Column Widths::. + +`@need N' + Start a new page in a printed manual if fewer than N mils + (thousandths of an inch) remain on the current page. *Note + `@need': need. + +`@node NAME, NEXT, PREVIOUS, UP' + Define the beginning of a new node in Info, and serve as a locator + for references for TeX. *Note `@node': node. + +`@noindent' + Prevent text from being indented as if it were a new paragraph. + *Note `@noindent': noindent. + +`@novalidate' + Suppress validation of node references, omit creation of auxiliary + files with TeX. Use before `@setfilename'. *Note Pointer + Validation::. + +`@O{}' +`@o{}' + Generate the uppercase and lowercase O-with-slash letters, + respectively: /O, /o. + +`@oddfooting [LEFT] @| [CENTER] @| [RIGHT]' +`@oddheading [LEFT] @| [CENTER] @| [RIGHT]' + Specify page footings resp. headings for odd-numbered (right-hand) + pages. *Note How to Make Your Own Headings: Custom Headings. + +`@OE{}' +`@oe{}' + Generate the uppercase and lowercase OE ligatures, respectively: + OE, oe. *Note Inserting Accents::. + +`@option{OPTION-NAME}' + Indicate a command-line option, such as `-l' or `--help'. *Note + `@option': option. + +`@page' + Start a new page in a printed manual. No effect in Info. *Note + `@page': page. + +`@pagesizes [WIDTH][, HEIGHT]' + Change page dimensions. *Note pagesizes::. + +`@paragraphindent INDENT' + Indent paragraphs by INDENT number of spaces (perhaps 0); preserve + source file indentation if INDENT is `asis'. *Note Paragraph + Indenting: paragraphindent. + +`@pindex ENTRY' + Add ENTRY to the index of programs. *Note Defining the Entries of + an Index: Index Entries. + +`@point{}' + Indicate the position of point in a buffer to the reader with a + glyph: `-!-'. *Note Indicating Point in a Buffer: Point Glyph. + +`@pounds{}' + Generate the pounds sterling currency sign. *Note `@pounds{}': + pounds. + +`@print{}' + Indicate printed output to the reader with a glyph: `-|'. *Note + Print Glyph::. + +`@printindex INDEX-NAME' + Print an alphabetized two-column index in a printed manual or + generate an alphabetized menu of index entries for Info. *Note + Printing Indices & Menus::. + +`@pxref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}' + Make a reference that starts with a lower case `see' in a printed + manual. Use within parentheses only. Do not follow command with a + punctuation mark--the Info formatting commands automatically insert + terminating punctuation as needed. Only the first argument is + mandatory. *Note `@pxref': pxref. + +`@questiondown{}' + Generate an upside-down question mark. *Note Inserting Accents::. + +`@quotation' + Narrow the margins to indicate text that is quoted from another + real or imaginary work. Takes optional argument of prefix text. + Pair with `@end quotation'. *Note `@quotation': quotation. + +`@r{TEXT}' + Print TEXT in roman font. No effect in Info. *Note Fonts::. + +`@raisesections' + Change subsequent sections to chapters, subsections to sections, + and so on. *Note `@raisesections' and `@lowersections': + Raise/lower sections. + +`@ref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}' + Make a reference. In a printed manual, the reference does not + start with a `See'. Follow command with a punctuation mark. Only + the first argument is mandatory. *Note `@ref': ref. + +`@refill' + This command used to refill and indent the paragraph after all the + other processing has been done. It is no longer needed, since all + formatters now automatically refill as needed, but you may still + see it in the source to some manuals, as it does no harm. + +`@registeredsymbol{}' + Generate the legal symbol (R). *Note `@registeredsymbol{}': + registered symbol. + +`@result{}' + Indicate the result of an expression to the reader with a special + glyph: `=>'. *Note `@result': result. + +`@ringaccent{C}' + Generate a ring accent over the next character, as in o*. *Note + Inserting Accents::. + +`@samp{TEXT}' + Highlight TEXT that is a literal example of a sequence of + characters. Used for single characters, for statements, and often + for entire shell commands. *Note `@samp': samp. + +`@sc{TEXT}' + Set TEXT in a printed output in THE SMALL CAPS FONT and set text + in the Info file in uppercase letters. *Note Smallcaps::. + +`@section TITLE' + Begin a section within a chapter. In a printed manual, the section + title is numbered and appears in the table of contents. In Info, + the title is underlined with equal signs. *Note `@section': + section. + +`@set FLAG [STRING]' + Make FLAG active, causing the Texinfo formatting commands to + format text between subsequent pairs of `@ifset FLAG' and `@end + ifset' commands. Optionally, set value of FLAG to STRING. *Note + `@set' `@clear' `@value': set clear value. + +`@setchapternewpage ON-OFF-ODD' + Specify whether chapters start on new pages, and if so, whether on + odd-numbered (right-hand) new pages. *Note `@setchapternewpage': + setchapternewpage. + +`@setcontentsaftertitlepage' + Put the table of contents after the `@end titlepage' even if the + `@contents' command is not there. *Note Contents::. + +`@setfilename INFO-FILE-NAME' + Provide a name to be used by the Info file. This command is + essential for TeX formatting as well, even though it produces no + output. *Note `@setfilename': setfilename. + +`@setshortcontentsaftertitlepage' + Place the short table of contents after the `@end titlepage' + command even if the `@shortcontents' command is not there. *Note + Contents::. + +`@settitle TITLE' + Provide a title for page headers in a printed manual, and the + default document description for HTML `<head>'. *Note + `@settitle': settitle. + +`@shortcaption' + Define the short caption for a `@float'. *Note caption + shortcaption::. + +`@shortcontents' + Print a short table of contents. Not relevant to Info, which uses + menus rather than tables of contents. A synonym for + `@summarycontents'. *Note Generating a Table of Contents: + Contents. + +`@shorttitlepage TITLE' + Generate a minimal title page. *Note `@titlepage': titlepage. + +`@smallbook' + Cause TeX to produce a printed manual in a 7 by 9.25 inch format + rather than the regular 8.5 by 11 inch format. *Note Printing + Small Books: smallbook. Also, see *Note small::. + +`@smalldisplay' + Begin a kind of example. Like `@smallexample' (narrow margins, no + filling), but do not select the fixed-width font. Pair with `@end + smalldisplay'. *Note small::. + +`@smallexample' + Indent text to indicate an example. Do not fill, select + fixed-width font, narrow the margins. In printed manuals, print + text in a smaller font than with `@example'. Pair with `@end + smallexample'. *Note small::. + +`@smallformat' + Begin a kind of example. Like `@smalldisplay', but do not narrow + the margins. Pair with `@end smallformat'. *Note small::. + +`@smalllisp' + Begin an example of Lisp code. Same as `@smallexample'. Pair + with `@end smalllisp'. *Note small::. + +`@sp N' + Skip N blank lines. *Note `@sp': sp. + +`@ss{}' + Generate the German sharp-S es-zet letter, ss. *Note Inserting + Accents::. + +`@strong {TEXT}' + Emphasize TEXT by typesetting it in a *bold* font for the printed + manual and by surrounding it with asterisks for Info. *Note + Emphasizing Text: emph & strong. + +`@subheading TITLE' + Print an unnumbered subsection-like heading in the text, but not in + the table of contents of a printed manual. In Info, the title is + underlined with hyphens. *Note `@unnumberedsubsec' + `@appendixsubsec' `@subheading': unnumberedsubsec appendixsubsec + subheading. + +`@subsection TITLE' + Begin a subsection within a section. In a printed manual, the + subsection title is numbered and appears in the table of contents. + In Info, the title is underlined with hyphens. *Note + `@subsection': subsection. + +`@subsubheading TITLE' + Print an unnumbered subsubsection-like heading in the text, but + not in the table of contents of a printed manual. In Info, the + title is underlined with periods. *Note The `subsub' Commands: + subsubsection. + +`@subsubsection TITLE' + Begin a subsubsection within a subsection. In a printed manual, + the subsubsection title is numbered and appears in the table of + contents. In Info, the title is underlined with periods. *Note + The `subsub' Commands: subsubsection. + +`@subtitle TITLE' + In a printed manual, set a subtitle in a normal sized font flush to + the right-hand side of the page. Not relevant to Info, which does + not have title pages. *Note `@title' `@subtitle' and `@author' + Commands: title subtitle author. + +`@summarycontents' + Print a short table of contents. Not relevant to Info, which uses + menus rather than tables of contents. A synonym for + `@shortcontents'. *Note Generating a Table of Contents: Contents. + +`@syncodeindex FROM-INDEX INTO-INDEX' + Merge the index named in the first argument into the index named in + the second argument, printing the entries from the first index in + `@code' font. *Note Combining Indices::. + +`@synindex FROM-INDEX INTO-INDEX' + Merge the index named in the first argument into the index named in + the second argument. Do not change the font of FROM-INDEX + entries. *Note Combining Indices::. + +`@t{TEXT}' + Print TEXT in a fixed-width, typewriter-like font. No effect in + Info. *Note Fonts::. + +`@tab' + Separate columns in a multitable. *Note Multitable Rows::. + +`@table FORMATTING-COMMAND' + Begin a two-column table, using `@item' for each entry. Write + each first column entry on the same line as `@item'. First column + entries are printed in the font resulting from FORMATTING-COMMAND. + Pair with `@end table'. *Note Making a Two-column Table: + Two-column Tables. Also see *Note `@ftable' and `@vtable': ftable + vtable, and *Note `@itemx': itemx. + +`@TeX{}' + Insert the logo TeX. *Note TeX and LaTeX: tex. + +`@tex' + Enter TeX completely. Pair with `@end tex'. *Note Raw Formatter + Commands::. + +`@thischapter' +`@thischaptername' +`@thisfile' +`@thispage' +`@thistitle' + Only allowed in a heading or footing. Stands for the number and + name of the current chapter (in the format `Chapter 1: Title'), + the chapter name only, the filename, the current page number, and + the title of the document, respectively. *Note How to Make Your + Own Headings: Custom Headings. + +`@tie{}' + Generate a normal interword space at which a line break is not + allowed. *Note `@tie{}': tie. + +`@tieaccent{CC}' + Generate a tie-after accent over the next two characters CC, as in + `oo['. *Note Inserting Accents::. + +`@tindex ENTRY' + Add ENTRY to the index of data types. *Note Defining the Entries + of an Index: Index Entries. + +`@title TITLE' + In a printed manual, set a title flush to the left-hand side of the + page in a larger than normal font and underline it with a black + rule. Not relevant to Info, which does not have title pages. + *Note The `@title' `@subtitle' and `@author' Commands: title + subtitle author. + +`@titlefont{TEXT}' + In a printed manual, print TEXT in a larger than normal font. Not + relevant to Info, which does not have title pages. *Note The + `@titlefont' `@center' and `@sp' Commands: titlefont center sp. + +`@titlepage' + Indicate to Texinfo the beginning of the title page. Write + command on a line of its own. Pair with `@end titlepage'. + Nothing between `@titlepage' and `@end titlepage' appears in Info. + *Note `@titlepage': titlepage. + +`@today{}' + Insert the current date, in `1 Jan 1900' style. *Note How to Make + Your Own Headings: Custom Headings. + +`@top TITLE' + In a Texinfo file to be formatted with `makeinfo', identify the + topmost `@node' in the file, which must be written on the line + immediately preceding the `@top' command. Used for `makeinfo''s + node pointer insertion feature. The title is underlined with + asterisks. Both the `@node' line and the `@top' line normally + should be enclosed by `@ifnottex' and `@end ifnottex'. In TeX and + `texinfo-format-buffer', the `@top' command is merely a synonym + for `@unnumbered'. *Note Creating Pointers with `makeinfo': + makeinfo Pointer Creation. + +`@u{C}' +`@ubaraccent{C}' +`@udotaccent{C}' + Generate a breve, underbar, or underdot accent, respectively, over + or under the character C, as in o(, o_, .o. *Note Inserting + Accents::. + +`@unnumbered TITLE' + In a printed manual, begin a chapter that appears without chapter + numbers of any kind. The title appears in the table of contents + of a printed manual. In Info, the title is underlined with + asterisks. *Note `@unnumbered' and `@appendix': unnumbered & + appendix. + +`@unnumberedsec TITLE' + In a printed manual, begin a section that appears without section + numbers of any kind. The title appears in the table of contents + of a printed manual. In Info, the title is underlined with equal + signs. *Note Section Commands: unnumberedsec appendixsec heading. + +`@unnumberedsubsec TITLE' + In a printed manual, begin an unnumbered subsection within a + chapter. The title appears in the table of contents of a printed + manual. In Info, the title is underlined with hyphens. *Note + `@unnumberedsubsec' `@appendixsubsec' `@subheading': + unnumberedsubsec appendixsubsec subheading. + +`@unnumberedsubsubsec TITLE' + In a printed manual, begin an unnumbered subsubsection within a + chapter. The title appears in the table of contents of a printed + manual. In Info, the title is underlined with periods. *Note The + `subsub' Commands: subsubsection. + +`@uref{URL[, DISPLAYED-TEXT][, REPLACEMENT}' +`@url{URL[, DISPLAYED-TEXT][, REPLACEMENT}' + Define a cross reference to an external uniform resource locator + for the World Wide Web. *Note `@uref': uref. + +`@v{C}' + Generate check accent over the character C, as in o<. *Note + Inserting Accents::. + +`@value{FLAG}' + Replace FLAG with the value to which it is set by `@set FLAG'. + *Note `@set' `@clear' `@value': set clear value. + +`@var{METASYNTACTIC-VARIABLE}' + Highlight a metasyntactic variable, which is something that stands + for another piece of text. *Note Indicating Metasyntactic + Variables: var. + +`@verb{DELIM LITERAL DELIM}' + Output LITERAL, delimited by the single character DELIM, exactly + as is (in the fixed-width font), including any whitespace or + Texinfo special characters. *Note `verb': verb. + +`@verbatim' + Output the text of the environment exactly as is (in the + fixed-width font). Pair with `@end verbatim'. *Note `verbatim': + verbatim. + +`@verbatiminclude FILENAME' + Output the contents of FILENAME exactly as is (in the fixed-width + font). *Note `verbatiminclude': verbatiminclude. + +`@vindex ENTRY' + Add ENTRY to the index of variables. *Note Defining the Entries + of an Index: Index Entries. + +`@vskip AMOUNT' + In a printed manual, insert whitespace so as to push text on the + remainder of the page towards the bottom of the page. Used in + formatting the copyright page with the argument `0pt plus 1filll'. + (Note spelling of `filll'.) `@vskip' may be used only in + contexts ignored for Info. *Note Copyright::. + +`@vtable FORMATTING-COMMAND' + Begin a two-column table, using `@item' for each entry. + Automatically enter each of the items in the first column into the + index of variables. Pair with `@end vtable'. The same as + `@table', except for indexing. *Note `@ftable' and `@vtable': + ftable vtable. + +`@w{TEXT}' + Prevent TEXT from being split across two lines. *Note `@w': w. + +`@xml' + Enter XML completely. Pair with `@end xml'. *Note Raw Formatter + Commands::. + +`@xref{NODE-NAME, [ENTRY], [TOPIC-OR-TITLE], [INFO-FILE], [MANUAL]}' + Make a reference that starts with `See' in a printed manual. + Follow command with a punctuation mark. Only the first argument is + mandatory. *Note `@xref': xref. + + +File: texinfo.info, Node: Command Syntax, Up: Command List + +A.1 @-Command Syntax +==================== + +The character `@' is used to start special Texinfo commands. (It has +the same meaning that `\' has in plain TeX.) Texinfo has four types of +@-command: + +1. Non-alphabetic commands. + These commands consist of an @ followed by a punctuation mark or + other character that is not part of the alphabet. Non-alphabetic + commands are almost always part of the text within a paragraph, + and never take any argument. The two characters (@ and the other + one) are complete in themselves; none is followed by braces. The + non-alphabetic commands are: `@.', `@:', `@*', `@SPACE', `@TAB', + `@NL', `@@', `@{', and `@}'. + +2. Alphabetic commands that do not require arguments. + These commands start with @ followed by a word followed by left- + and right-hand braces. These commands insert special symbols in + the document; they do not require arguments. For example, + `@dots{}' => `...', `@equiv{}' => `==', `@TeX{}' => `TeX', and + `@bullet{}' => `*'. + +3. Alphabetic commands that require arguments within braces. + These commands start with @ followed by a letter or a word, + followed by an argument within braces. For example, the command + `@dfn' indicates the introductory or defining use of a term; it is + used as follows: `In Texinfo, @@-commands are @dfn{mark-up} + commands.' + +4. Alphabetic commands that occupy an entire line. + These commands occupy an entire line. The line starts with @, + followed by the name of the command (a word); for example, + `@center' or `@cindex'. If no argument is needed, the word is + followed by the end of the line. If there is an argument, it is + separated from the command name by a space. Braces are not used. + + Thus, the alphabetic commands fall into classes that have different +argument syntaxes. You cannot tell to which class a command belongs by +the appearance of its name, but you can tell by the command's meaning: +if the command stands for a glyph, it is in class 2 and does not +require an argument; if it makes sense to use the command together with +other text as part of a paragraph, the command is in class 3 and must +be followed by an argument in braces; otherwise, it is in class 4 and +uses the rest of the line as its argument. + + The purpose of having a different syntax for commands of classes 3 and +4 is to make Texinfo files easier to read, and also to help the GNU +Emacs paragraph and filling commands work properly. There is only one +exception to this rule: the command `@refill', which is always used at +the end of a paragraph immediately following the final period or other +punctuation character. `@refill' takes no argument and does _not_ +require braces. `@refill' never confuses the Emacs paragraph commands +because it cannot appear at the beginning of a line. It is also no +longer needed, since all formatters now refill paragraphs automatically. + + +File: texinfo.info, Node: Tips, Next: Sample Texinfo Files, Prev: Command List, Up: Top + +Appendix B Tips and Hints +************************* + +Here are some tips for writing Texinfo documentation: + + * Write in the present tense, not in the past or the future. + + * Write actively! For example, write "We recommend that ..." rather + than "It is recommended that ...". + + * Use 70 or 72 as your fill column. Longer lines are hard to read. + + * Include a copyright notice and copying permissions. + +Index, Index, Index! +.................... + +Write many index entries, in different ways. Readers like indices; +they are helpful and convenient. + + Although it is easiest to write index entries as you write the body of +the text, some people prefer to write entries afterwards. In either +case, write an entry before the paragraph to which it applies. This +way, an index entry points to the first page of a paragraph that is +split across pages. + + Here are more hints we have found valuable: + + * Write each index entry differently, so each entry refers to a + different place in the document. + + * Write index entries only where a topic is discussed significantly. + For example, it is not useful to index "debugging information" in + a chapter on reporting bugs. Someone who wants to know about + debugging information will certainly not find it in that chapter. + + * Consistently capitalize the first word of every concept index + entry, or else consistently use lower case. Terse entries often + call for lower case; longer entries for capitalization. Whichever + case convention you use, please use one or the other consistently! + Mixing the two styles looks bad. + + * Always capitalize or use upper case for those words in an index for + which this is proper, such as names of countries or acronyms. + Always use the appropriate case for case-sensitive names, such as + those in C or Lisp. + + * Write the indexing commands that refer to a whole section + immediately after the section command, and write the indexing + commands that refer to a paragraph before that paragraph. + + In the example that follows, a blank line comes after the index + entry for "Leaping": + + @section The Dog and the Fox + @cindex Jumping, in general + @cindex Leaping + + @cindex Dog, lazy, jumped over + @cindex Lazy dog jumped over + @cindex Fox, jumps over dog + @cindex Quick fox jumps over dog + The quick brown fox jumps over the lazy dog. + + (Note that the example shows entries for the same concept that are + written in different ways--`Lazy dog', and `Dog, lazy'--so readers + can look up the concept in different ways.) + +Blank Lines +........... + + * Insert a blank line between a sectioning command and the first + following sentence or paragraph, or between the indexing commands + associated with the sectioning command and the first following + sentence or paragraph, as shown in the tip on indexing. + Otherwise, a formatter may fold title and paragraph together. + + * Always insert a blank line before an `@table' command and after an + `@end table' command; but never insert a blank line after an + `@table' command or before an `@end table' command. + + For example, + + Types of fox: + + @table @samp + @item Quick + Jump over lazy dogs. + + @item Brown + Also jump over lazy dogs. + @end table + @noindent + On the other hand, ... + + Insert blank lines before and after `@itemize' ... `@end itemize' + and `@enumerate' ... `@end enumerate' in the same way. + +Complete Phrases +................ + +Complete phrases are easier to read than ... + + * Write entries in an itemized list as complete sentences; or at + least, as complete phrases. Incomplete expressions ... awkward + ... like this. + + * Write the prefatory sentence or phrase for a multi-item list or + table as a complete expression. Do not write "You can set:"; + instead, write "You can set these variables:". The former + expression sounds cut off. + +Editions, Dates and Versions +............................ + +Include edition numbers, version numbers, and dates in the `@copying' +text (for people reading the Texinfo file, and for the legal copyright +in the output files). Then use `@insertcopying' in the `@titlepage' +section (for people reading the printed output) and the Top node (for +people reading the online output). + + It is easiest to do this using `@set' and `@value'. *Note `@value' +Example: value Example, and *Note GNU Sample Texts::. + +Definition Commands +................... + +Definition commands are `@deffn', `@defun', `@defmac', and the like, +and enable you to write descriptions in a uniform format. + + * Write just one definition command for each entity you define with a + definition command. The automatic indexing feature creates an + index entry that leads the reader to the definition. + + * Use `@table' ... `@end table' in an appendix that contains a + summary of functions, not `@deffn' or other definition commands. + +Capitalization +.............. + + * Capitalize "Texinfo"; it is a name. Do not write the `x' or `i' + in upper case. + + * Capitalize "Info"; it is a name. + + * Write TeX using the `@TeX{}' command. Note the uppercase `T' and + `X'. This command causes the formatters to typeset the name + according to the wishes of Donald Knuth, who wrote TeX. + +Spaces +...... + +Do not use spaces to format a Texinfo file, except inside of `@example' +... `@end example' and other literal environments and commands. + + For example, TeX fills the following: + + @kbd{C-x v} + @kbd{M-x vc-next-action} + Perform the next logical operation + on the version-controlled file + corresponding to the current buffer. + +so it looks like this: + + `C-x v' `M-x vc-next-action' Perform the next logical operation on + the version-controlled file corresponding to the current buffer. + +In this case, the text should be formatted with `@table', `@item', and +`@itemx', to create a table. + +@code, @samp, @var, and `---' +............................. + + * Use `@code' around Lisp symbols, including command names. For + example, + + The main function is @code{vc-next-action}, ... + + * Avoid putting letters such as `s' immediately after an `@code'. + Such letters look bad. + + * Use `@var' around meta-variables. Do not write angle brackets + around them. + + * Use three hyphens in a row, `---', to indicate a long dash. TeX + typesets these as a long dash and the Info formatters reduce three + hyphens to two. + +Periods Outside of Quotes +......................... + +Place periods and other punctuation marks _outside_ of quotations, +unless the punctuation is part of the quotation. This practice goes +against publishing conventions in the United States, but enables the +reader to distinguish between the contents of the quotation and the +whole passage. + + For example, you should write the following sentence with the period +outside the end quotation marks: + + Evidently, `au' is an abbreviation for ``author''. + +since `au' does _not_ serve as an abbreviation for `author.' (with a +period following the word). + +Introducing New Terms +..................... + + * Introduce new terms so that a reader who does not know them can + understand them from context; or write a definition for the term. + + For example, in the following, the terms "check in", "register" and + "delta" are all appearing for the first time; the example sentence + should be rewritten so they are understandable. + + The major function assists you in checking in a file to your + version control system and registering successive sets of + changes to it as deltas. + + * Use the `@dfn' command around a word being introduced, to indicate + that the reader should not expect to know the meaning already, and + should expect to learn the meaning from this passage. + +@pxref +...... + +Absolutely never use `@pxref' except in the special context for which +it is designed: inside parentheses, with the closing parenthesis +following immediately after the closing brace. One formatter +automatically inserts closing punctuation and the other does not. This +means that the output looks right both in printed output and in an Info +file, but only when the command is used inside parentheses. + +Invoking from a Shell +..................... + +You can invoke programs such as Emacs, GCC, and `gawk' from a shell. +The documentation for each program should contain a section that +describes this. Unfortunately, if the node names and titles for these +sections are all different, they are difficult for users to find. + + So, there is a convention to name such sections with a phrase +beginning with the word `Invoking', as in `Invoking Emacs'; this way, +users can find the section easily. + +ANSI C Syntax +............. + +When you use `@example' to describe a C function's calling conventions, +use the ANSI C syntax, like this: + + void dld_init (char *@var{path}); + +And in the subsequent discussion, refer to the argument values by +writing the same argument names, again highlighted with `@var'. + + Avoid the obsolete style that looks like this: + + #include <dld.h> + + dld_init (path) + char *path; + + Also, it is best to avoid writing `#include' above the declaration +just to indicate that the function is declared in a header file. The +practice may give the misimpression that the `#include' belongs near +the declaration of the function. Either state explicitly which header +file holds the declaration or, better yet, name the header file used +for a group of functions at the beginning of the section that describes +the functions. + +Bad Examples +............ + +Here are several examples of bad writing to avoid: + + In this example, say, " ... you must `@dfn'{check in} the new +version." That flows better. + + When you are done editing the file, you must perform a + `@dfn'{check in}. + + In the following example, say, "... makes a unified interface such as +VC mode possible." + + SCCS, RCS and other version-control systems all perform similar + functions in broadly similar ways (it is this resemblance which + makes a unified control mode like this possible). + + And in this example, you should specify what `it' refers to: + + If you are working with other people, it assists in coordinating + everyone's changes so they do not step on each other. + +And Finally ... +............... + + * Pronounce TeX as if the `X' were a Greek `chi', as the last sound + in the name `Bach'. But pronounce Texinfo as in `speck': + "teckinfo". + + * Write notes for yourself at the very end of a Texinfo file after + the `@bye'. None of the formatters process text after the `@bye'; + it is as if the text were within `@ignore' ... `@end ignore'. + + +File: texinfo.info, Node: Sample Texinfo Files, Next: Include Files, Prev: Tips, Up: Top + +Appendix C Sample Texinfo Files +******************************* + +The first example is from the first chapter (*note Short Sample::), +given here in its entirety, without commentary. The second includes +the full texts to be used in GNU manuals. + +* Menu: + +* Short Sample Texinfo File:: +* GNU Sample Texts:: +* Verbatim Copying License:: +* All-permissive Copying License:: + + +File: texinfo.info, Node: Short Sample Texinfo File, Next: GNU Sample Texts, Up: Sample Texinfo Files + +C.1 Short Sample +================ + +Here is a complete, short sample Texinfo file, without any commentary. +You can see this file, with comments, in the first chapter. *Note +Short Sample::. + + In a nutshell: The `makeinfo' program transforms a Texinfo source +file such as this into an Info file or HTML; and TeX typesets it for a +printed manual. + + + \input texinfo @c -*-texinfo-*- + @c %**start of header + @setfilename sample.info + @settitle Sample Manual 1.0 + @c %**end of header + + @copying + This is a short example of a complete Texinfo file. + + Copyright (C) 2004 Free Software Foundation, Inc. + @end copying + + @titlepage + @title Sample Title + @page + @vskip 0pt plus 1filll + @insertcopying + @end titlepage + + @c Output the table of the contents at the beginning. + @contents + + @ifnottex + @node Top + @top GNU Sample + + @insertcopying + @end ifnottex + + @menu + * First Chapter:: The first chapter is the + only chapter in this sample. + * Index:: Complete index. + @end menu + + + @node First Chapter + @chapter First Chapter + + @cindex chapter, first + + This is the first chapter. + @cindex index entry, another + + Here is a numbered list. + + @enumerate + @item + This is the first item. + + @item + This is the second item. + @end enumerate + + + @node Index + @unnumbered Index + + @printindex cp + + @bye + + +File: texinfo.info, Node: GNU Sample Texts, Next: Verbatim Copying License, Prev: Short Sample Texinfo File, Up: Sample Texinfo Files + +C.2 GNU Sample Texts +==================== + +Following is a sample Texinfo document with the full texts that should +be used in GNU manuals. + + As well as the legal texts, it also serves as a practical example of +how many elements in a GNU system can affect the manual. If you're not +familiar with all these different elements, don't worry. They're not +required and a perfectly good manual can be written without them. +They're included here nonetheless because many manuals do (or could) +benefit from them. + + *Note Short Sample::, for a minimal example of a Texinfo file. *Note +Beginning a File::, for a full explanation of that minimal example. + + Here are some notes on the example: + + * The `$Id:' comment is for the CVS (*note Overview: (cvs)Top.) or + RCS (see rcsintro(1)) version control systems, which expand it + into a string such as: + $Id: texinfo.txi,v 1.52 2004/04/09 21:30:07 karl Exp $ + (This is useful in all sources that use version control, not just + manuals.) You may wish to include the `$Id:' comment in the + `@copying' text, if you want a completely unambiguous reference to + the documentation version. + + If you want to literally write $Id$, use `@w': `@w{$}Id$'. + + * The `version.texi' in the `@include' command is maintained + automatically by Automake (*note Introduction: (automake)Top.). + It sets the `VERSION' and `UPDATED' values used elsewhere. If + your distribution doesn't use Automake, but you do use Emacs, you + may find the time-stamp.el package helpful (*note Time Stamps: + (emacs)Time Stamps.). + + * The `@syncodeindex' command reflects the recommendation to use + only one index where possible, to make it easier for readers to + look up index entries. + + * The `@dircategory' is for constructing the Info directory. *Note + Installing Dir Entries::, which includes a variety of recommended + category names. + + * The `Invoking' node is a GNU standard to help users find the basic + information about command-line usage of a given program. *Note + Manual Structure Details: (standards)Manual Structure Details. + + * It is best to include the entire GNU Free Documentation License in + a GNU manual, unless the manual is only a few pages long. Of + course this sample is even shorter than that, but it includes the + FDL anyway in order to show one conventional way to do so. The + `fdl.texi' file is available on the GNU machines and in the + Texinfo and other GNU source distributions. + + The FDL provides for omitting itself under certain conditions, but + in that case the sample texts given here have to be modified. + *Note GNU Free Documentation License::. + + * If your manual has invariant sections (again, see the license + itself for details), then don't forget to change the text here + accordingly. + + * For documents that express your personal views, feelings or + experiences, it is more appropriate to use a license permitting + only verbatim copying, rather than the FDL. *Note Verbatim + Copying License::. + + + Here is the sample document: + + +\input texinfo @c -*-texinfo-*- +@comment $Id: texinfo.txi,v 1.52 2004/04/09 21:30:07 karl Exp $ +@comment %**start of header +@setfilename sample.info +@include version.texi +@settitle GNU Sample @value{VERSION} +@syncodeindex pg cp +@comment %**end of header +@copying +This manual is for GNU Sample +(version @value{VERSION}, @value{UPDATED}), +which is an example in the Texinfo documentation. + +Copyright @copyright{} 2004 Free Software Foundation, Inc. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 or +any later version published by the Free Software Foundation; with no +Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,'' +and with the Back-Cover Texts as in (a) below. A copy of the +license is included in the section entitled ``GNU Free Documentation +License.'' + +(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify +this GNU Manual, like GNU software. Copies published by the Free +Software Foundation raise funds for GNU development.'' +@end quotation +@end copying + +@dircategory Texinfo documentation system +@direntry +* sample: (sample)Invoking sample. +@end direntry + +@titlepage +@title GNU Sample +@subtitle for version @value{VERSION}, @value{UPDATED} +@author A.U. Thor (@email{bug-texinfo@@gnu.org}) +@page +@vskip 0pt plus 1filll +@insertcopying +@end titlepage + +@contents + +@ifnottex +@node Top +@top GNU Sample + +@insertcopying +@end ifnottex + +@menu +* Invoking sample:: +* Copying This Manual:: +* Index:: +@end menu + + +@node Invoking sample +@chapter Invoking sample + +@pindex sample +@cindex invoking @command{sample} + +This is a sample manual. There is no sample program to +invoke, but if there was, you could see its basic usage +and command line options here. + + +@node Copying This Manual +@appendix Copying This Manual + +@menu +* GNU Free Documentation License:: License for copying this manual. +@end menu + +@include fdl.texi + + +@node Index +@unnumbered Index + +@printindex cp + +@bye + + +File: texinfo.info, Node: Verbatim Copying License, Next: All-permissive Copying License, Prev: GNU Sample Texts, Up: Sample Texinfo Files + +C.3 Verbatim Copying License +============================ + +For software manuals and other documentation, it is important to use a +license permitting free redistribution and updating, so that when a free +program is changed, the documentation can be updated as well. + + On the other hand, for documents that express your personal views, +feelings or experiences, it is more appropriate to use a license +permitting only verbatim copying. + + Here is sample text for such a license permitting verbatim copying +only. This is just the license text itself. For a complete sample +document, see the previous sections. + + +@copying +This document is a sample for allowing verbatim copying only. + +Copyright @copyright{} 2004 Free Software Foundation, Inc. + +@quotation +Permission is granted to make and distribute verbatim copies +of this entire document without royalty provided the +copyright notice and this permission notice are preserved. +@end quotation +@end copying + + +File: texinfo.info, Node: All-permissive Copying License, Prev: Verbatim Copying License, Up: Sample Texinfo Files + +C.4 All-permissive Copying License +================================== + +For software manuals and other documentation, it is important to use a +license permitting free redistribution and updating, so that when a free +program is changed, the documentation can be updated as well. + + On the other hand, for small supporting files, short manuals (under +300 lines long) and rough documentation (README files, INSTALL files, +etc.), the full FDL would be overkill. They can use a simple +all-permissive license. + + Here is sample text for such an all-permissive license. This is just +the license text itself. For a complete sample document, see the +previous sections. + + Copyright (C) 2004 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. + + +File: texinfo.info, Node: Include Files, Next: Headings, Prev: Sample Texinfo Files, Up: Top + +Appendix D Include Files +************************ + +When TeX or an Info formatting command sees an `@include' command in a +Texinfo file, it processes the contents of the file named by the +command and incorporates them into the DVI or Info file being created. +Index entries from the included file are incorporated into the indices +of the output file. + + Include files let you keep a single large document as a collection of +conveniently small parts. + +* Menu: + +* Using Include Files:: How to use the `@include' command. +* texinfo-multiple-files-update:: How to create and update nodes and + menus when using included files. +* Include Files Requirements:: `texinfo-multiple-files-update' needs. +* Sample Include File:: A sample outer file with included files + within it; and a sample included file. +* Include Files Evolution:: How use of the `@include' command + has changed over time. + + +File: texinfo.info, Node: Using Include Files, Next: texinfo-multiple-files-update, Up: Include Files + +D.1 How to Use Include Files +============================ + +To include another file within a Texinfo file, write the `@include' +command at the beginning of a line and follow it on the same line by +the name of a file to be included. For example: + + @include buffers.texi + + The name of the file is taken literally, with a single exception: +`@value{VAR}' references are expanded. This makes it possible to +reliably include files in other directories in a distribution. *Note +`@verbatiminclude': verbatiminclude, for an example. + + An included file should simply be a segment of text that you expect to +be included as is into the overall or "outer" Texinfo file; it should +not contain the standard beginning and end parts of a Texinfo file. In +particular, you should not start an included file with a line saying +`\input texinfo'; if you do, that phrase is inserted into the output +file as is. Likewise, you should not end an included file with an +`@bye' command; nothing after `@bye' is formatted. + + In the past, you were required to write an `@setfilename' line at the +beginning of an included file, but no longer. Now, it does not matter +whether you write such a line. If an `@setfilename' line exists in an +included file, it is ignored. + + Conventionally, an included file begins with an `@node' line that is +followed by an `@chapter' line. Each included file is one chapter. +This makes it easy to use the regular node and menu creating and +updating commands to create the node pointers and menus within the +included file. However, the simple Emacs node and menu creating and +updating commands do not work with multiple Texinfo files. Thus you +cannot use these commands to fill in the `Next', `Previous', and `Up' +pointers of the `@node' line that begins the included file. Also, you +cannot use the regular commands to create a master menu for the whole +file. Either you must insert the menus and the `Next', `Previous', and +`Up' pointers by hand, or you must use the GNU Emacs Texinfo mode +command, `texinfo-multiple-files-update', that is designed for +`@include' files. + + When an included file does not have any node lines in it, the +multiple files update command does not try to create a menu entry for +it. Consequently, you can include any file, such as a version or an +update file without node lines, not just files that are chapters. +Small includable files like this are created by Automake (*note GNU +Sample Texts::). + + +File: texinfo.info, Node: texinfo-multiple-files-update, Next: Include Files Requirements, Prev: Using Include Files, Up: Include Files + +D.2 `texinfo-multiple-files-update' +=================================== + +GNU Emacs Texinfo mode provides the `texinfo-multiple-files-update' +command. This command creates or updates `Next', `Previous', and `Up' +pointers of included files as well as those in the outer or overall +Texinfo file, and it creates or updates a main menu in the outer file. +Depending whether you call it with optional arguments, the command +updates only the pointers in the first `@node' line of the included +files or all of them: + +`M-x texinfo-multiple-files-update' + Called without any arguments: + + - Create or update the `Next', `Previous', and `Up' pointers of + the first `@node' line in each file included in an outer or + overall Texinfo file. + + - Create or update the `Top' level node pointers of the outer or + overall file. + + - Create or update a main menu in the outer file. + +`C-u M-x texinfo-multiple-files-update' + Called with `C-u' as a prefix argument: + + - Create or update pointers in the first `@node' line in each + included file. + + - Create or update the `Top' level node pointers of the outer + file. + + - Create and insert a master menu in the outer file. The + master menu is made from all the menus in all the included + files. + +`C-u 8 M-x texinfo-multiple-files-update' + Called with a numeric prefix argument, such as `C-u 8': + + - Create or update *all* the `Next', `Previous', and `Up' + pointers of all the included files. + + - Create or update *all* the menus of all the included files. + + - Create or update the `Top' level node pointers of the outer or + overall file. + + - And then create a master menu in the outer file. This is + similar to invoking `texinfo-master-menu' with an argument + when you are working with just one file. + + Note the use of the prefix argument in interactive use: with a regular +prefix argument, just `C-u', the `texinfo-multiple-files-update' +command inserts a master menu; with a numeric prefix argument, such as +`C-u 8', the command updates *every* pointer and menu in *all* the +files and then inserts a master menu. + + +File: texinfo.info, Node: Include Files Requirements, Next: Sample Include File, Prev: texinfo-multiple-files-update, Up: Include Files + +D.3 Include Files Requirements +============================== + +If you plan to use the `texinfo-multiple-files-update' command, the +outer Texinfo file that lists included files within it should contain +nothing but the beginning and end parts of a Texinfo file, and a number +of `@include' commands listing the included files. It should not even +include indices, which should be listed in an included file of their +own. + + Moreover, each of the included files must contain exactly one highest +level node (conventionally, `@chapter' or equivalent), and this node +must be the first node in the included file. Furthermore, each of +these highest level nodes in each included file must be at the same +hierarchical level in the file structure. Usually, each is an +`@chapter', an `@appendix', or an `@unnumbered' node. Thus, normally, +each included file contains one, and only one, chapter or +equivalent-level node. + + The outer file should contain only _one_ node, the `Top' node. It +should _not_ contain any nodes besides the single `Top' node. The +`texinfo-multiple-files-update' command will not process them. + + +File: texinfo.info, Node: Sample Include File, Next: Include Files Evolution, Prev: Include Files Requirements, Up: Include Files + +D.4 Sample File with `@include' +=============================== + +Here is an example of an outer Texinfo file with `@include' files +within it before running `texinfo-multiple-files-update', which would +insert a main or master menu: + + \input texinfo @c -*-texinfo-*- + @setfilename include-example.info + @settitle Include Example + + ... *Note Sample Texinfo Files::, for + examples of the rest of the frontmatter ... + + @ifnottex + @node Top + @top Include Example + @end ifnottex + + @include foo.texinfo + @include bar.texinfo + @include concept-index.texinfo + @bye + + An included file, such as `foo.texinfo', might look like this: + + @node First + @chapter First Chapter + + Contents of first chapter ... + + The full contents of `concept-index.texinfo' might be as simple as +this: + + @node Concept Index + @unnumbered Concept Index + + @printindex cp + + The outer Texinfo source file for `The GNU Emacs Lisp Reference +Manual' is named `elisp.texi'. This outer file contains a master menu +with 417 entries and a list of 41 `@include' files. + + +File: texinfo.info, Node: Include Files Evolution, Prev: Sample Include File, Up: Include Files + +D.5 Evolution of Include Files +============================== + +When Info was first created, it was customary to create many small Info +files on one subject. Each Info file was formatted from its own +Texinfo source file. This custom meant that Emacs did not need to make +a large buffer to hold the whole of a large Info file when someone +wanted information; instead, Emacs allocated just enough memory for the +small Info file that contained the particular information sought. This +way, Emacs could avoid wasting memory. + + References from one file to another were made by referring to the file +name as well as the node name. (*Note Referring to Other Info Files: +Other Info Files. Also, see *Note `@xref' with Four and Five +Arguments: Four and Five Arguments.) + + Include files were designed primarily as a way to create a single, +large printed manual out of several smaller Info files. In a printed +manual, all the references were within the same document, so TeX could +automatically determine the references' page numbers. The Info +formatting commands used include files only for creating joint indices; +each of the individual Texinfo files had to be formatted for Info +individually. (Each, therefore, required its own `@setfilename' line.) + + However, because large Info files are now split automatically, it is +no longer necessary to keep them small. + + Nowadays, multiple Texinfo files are used mostly for large documents, +such as `The GNU Emacs Lisp Reference Manual', and for projects in +which several different people write different sections of a document +simultaneously. + + In addition, the Info formatting commands have been extended to work +with the `@include' command so as to create a single large Info file +that is split into smaller files if necessary. This means that you can +write menus and cross references without naming the different Texinfo +files. + + +File: texinfo.info, Node: Headings, Next: Catching Mistakes, Prev: Include Files, Up: Top + +Appendix E Page Headings +************************ + +Most printed manuals contain headings along the top of every page +except the title and copyright pages. Some manuals also contain +footings. (Headings and footings have no meaning to Info, which is not +paginated.) + +* Menu: + +* Headings Introduced:: Conventions for using page headings. +* Heading Format:: Standard page heading formats. +* Heading Choice:: How to specify the type of page heading. +* Custom Headings:: How to create your own headings and footings. + + +File: texinfo.info, Node: Headings Introduced, Next: Heading Format, Up: Headings + +E.1 Headings Introduced +======================= + +Texinfo provides standard page heading formats for manuals that are +printed on one side of each sheet of paper and for manuals that are +printed on both sides of the paper. Typically, you will use these +formats, but you can specify your own format if you wish. + + In addition, you can specify whether chapters should begin on a new +page, or merely continue the same page as the previous chapter; and if +chapters begin on new pages, you can specify whether they must be +odd-numbered pages. + + By convention, a book is printed on both sides of each sheet of paper. +When you open a book, the right-hand page is odd-numbered, and chapters +begin on right-hand pages--a preceding left-hand page is left blank if +necessary. Reports, however, are often printed on just one side of +paper, and chapters begin on a fresh page immediately following the end +of the preceding chapter. In short or informal reports, chapters often +do not begin on a new page at all, but are separated from the preceding +text by a small amount of whitespace. + + The `@setchapternewpage' command controls whether chapters begin on +new pages, and whether one of the standard heading formats is used. In +addition, Texinfo has several heading and footing commands that you can +use to generate your own heading and footing formats. + + In Texinfo, headings and footings are single lines at the tops and +bottoms of pages; you cannot create multiline headings or footings. +Each header or footer line is divided into three parts: a left part, a +middle part, and a right part. Any part, or a whole line, may be left +blank. Text for the left part of a header or footer line is set +flushleft; text for the middle part is centered; and, text for the +right part is set flushright. + + +File: texinfo.info, Node: Heading Format, Next: Heading Choice, Prev: Headings Introduced, Up: Headings + +E.2 Standard Heading Formats +============================ + +Texinfo provides two standard heading formats, one for manuals printed +on one side of each sheet of paper, and the other for manuals printed +on both sides of the paper. + + By default, nothing is specified for the footing of a Texinfo file, +so the footing remains blank. + + The standard format for single-sided printing consists of a header +line in which the left-hand part contains the name of the chapter, the +central part is blank, and the right-hand part contains the page number. + + A single-sided page looks like this: + + _______________________ + | | + | chapter page number | + | | + | Start of text ... | + | ... | + | | + + The standard format for two-sided printing depends on whether the page +number is even or odd. By convention, even-numbered pages are on the +left- and odd-numbered pages are on the right. (TeX will adjust the +widths of the left- and right-hand margins. Usually, widths are +correct, but during double-sided printing, it is wise to check that +pages will bind properly--sometimes a printer will produce output in +which the even-numbered pages have a larger right-hand margin than the +odd-numbered pages.) + + In the standard double-sided format, the left part of the left-hand +(even-numbered) page contains the page number, the central part is +blank, and the right part contains the title (specified by the +`@settitle' command). The left part of the right-hand (odd-numbered) +page contains the name of the chapter, the central part is blank, and +the right part contains the page number. + + Two pages, side by side as in an open book, look like this: + + _______________________ _______________________ + | | | | + | page number title | | chapter page number | + | | | | + | Start of text ... | | More text ... | + | ... | | ... | + | | | | + +The chapter name is preceded by the word "Chapter", the chapter number +and a colon. This makes it easier to keep track of where you are in the +manual. + + +File: texinfo.info, Node: Heading Choice, Next: Custom Headings, Prev: Heading Format, Up: Headings + +E.3 Specifying the Type of Heading +================================== + +TeX does not begin to generate page headings for a standard Texinfo +file until it reaches the `@end titlepage' command. Thus, the title +and copyright pages are not numbered. The `@end titlepage' command +causes TeX to begin to generate page headings according to a standard +format specified by the `@setchapternewpage' command that precedes the +`@titlepage' section. + + There are four possibilities: + +No `@setchapternewpage' command + Cause TeX to specify the single-sided heading format, with chapters + on new pages. This is the same as `@setchapternewpage on'. + +`@setchapternewpage on' + Specify the single-sided heading format, with chapters on new + pages. + +`@setchapternewpage off' + Cause TeX to start a new chapter on the same page as the last page + of the preceding chapter, after skipping some vertical whitespace. + Also cause TeX to typeset for single-sided printing. (You can + override the headers format with the `@headings double' command; + see *Note The `@headings' Command: headings on off.) + +`@setchapternewpage odd' + Specify the double-sided heading format, with chapters on new + pages. + +Texinfo lacks an `@setchapternewpage even' command. + + +File: texinfo.info, Node: Custom Headings, Prev: Heading Choice, Up: Headings + +E.4 How to Make Your Own Headings +================================= + +You can use the standard headings provided with Texinfo or specify your +own. By default, Texinfo has no footers, so if you specify them, the +available page size for the main text will be slightly reduced. + + Texinfo provides six commands for specifying headings and footings: + * `@everyheading' `@everyfooting' generate page headers and footers + that are the same for both even- and odd-numbered pages. + + * `@evenheading' and `@evenfooting' command generate headers and + footers for even-numbered (left-hand) pages. + + * `@oddheading' and `@oddfooting' generate headers and footers for + odd-numbered (right-hand) pages. + + Write custom heading specifications in the Texinfo file immediately +after the `@end titlepage' command. You must cancel the predefined +heading commands with the `@headings off' command before defining your +own specifications. + + Here is how to tell TeX to place the chapter name at the left, the +page number in the center, and the date at the right of every header +for both even- and odd-numbered pages: + + @headings off + @everyheading @thischapter @| @thispage @| @today{} + +You need to divide the left part from the central part and the central +part from the right part by inserting `@|' between parts. Otherwise, +the specification command will not be able to tell where the text for +one part ends and the next part begins. + + Each part can contain text or @-commands. The text is printed as if +the part were within an ordinary paragraph in the body of the page. +The @-commands replace themselves with the page number, date, chapter +name, or whatever. + + Here are the six heading and footing commands: + +`@everyheading LEFT @| CENTER @| RIGHT' +`@everyfooting LEFT @| CENTER @| RIGHT' + The `every' commands specify the format for both even- and + odd-numbered pages. These commands are for documents that are + printed on one side of each sheet of paper, or for documents in + which you want symmetrical headers or footers. + +`@evenheading LEFT @| CENTER @| RIGHT' +`@oddheading LEFT @| CENTER @| RIGHT' +`@evenfooting LEFT @| CENTER @| RIGHT' +`@oddfooting LEFT @| CENTER @| RIGHT' + The `even' and `odd' commands specify the format for even-numbered + pages and odd-numbered pages. These commands are for books and + manuals that are printed on both sides of each sheet of paper. + + Use the `@this...' series of @-commands to provide the names of +chapters and sections and the page number. You can use the `@this...' +commands in the left, center, or right portions of headers and footers, +or anywhere else in a Texinfo file so long as they are between `@iftex' +and `@end iftex' commands. + + Here are the `@this...' commands: + +`@thispage' + Expands to the current page number. + +`@thischaptername' + Expands to the name of the current chapter. + +`@thischapter' + Expands to the number and name of the current chapter, in the + format `Chapter 1: Title'. + +`@thistitle' + Expands to the name of the document, as specified by the + `@settitle' command. + +`@thisfile' + For `@include' files only: expands to the name of the current + `@include' file. If the current Texinfo source file is not an + `@include' file, this command has no effect. This command does + _not_ provide the name of the current Texinfo source file unless + it is an `@include' file. (*Note Include Files::, for more + information about `@include' files.) + +You can also use the `@today{}' command, which expands to the current +date, in `1 Jan 1900' format. + + Other @-commands and text are printed in a header or footer just as +if they were in the body of a page. It is useful to incorporate text, +particularly when you are writing drafts: + + @headings off + @everyheading @emph{Draft!} @| @thispage @| @thischapter + @everyfooting @| @| Version: 0.27: @today{} + + Beware of overlong titles: they may overlap another part of the +header or footer and blot it out. + + +File: texinfo.info, Node: Catching Mistakes, Next: Copying This Manual, Prev: Headings, Up: Top + +Appendix F Formatting Mistakes +****************************** + +Besides mistakes in the content of your documentation, there are two +kinds of mistake you can make with Texinfo: you can make mistakes with +@-commands, and you can make mistakes with the structure of the nodes +and chapters. + + Emacs has two tools for catching the @-command mistakes and two for +catching structuring mistakes. + + For finding problems with @-commands, you can run TeX or a region +formatting command on the region that has a problem; indeed, you can +run these commands on each region as you write it. + + For finding problems with the structure of nodes and chapters, you +can use `C-c C-s' (`texinfo-show-structure') and the related `occur' +command and you can use the `M-x Info-validate' command. + +* Menu: + +* makeinfo Preferred:: `makeinfo' finds errors. +* Debugging with Info:: How to catch errors with Info formatting. +* Debugging with TeX:: How to catch errors with TeX formatting. +* Using texinfo-show-structure:: How to use `texinfo-show-structure'. +* Using occur:: How to list all lines containing a pattern. +* Running Info-Validate:: How to find badly referenced nodes. + + +File: texinfo.info, Node: makeinfo Preferred, Next: Debugging with Info, Up: Catching Mistakes + +F.1 `makeinfo' Find Errors +========================== + +The `makeinfo' program does an excellent job of catching errors and +reporting them--far better than `texinfo-format-region' or +`texinfo-format-buffer'. In addition, the various functions for +automatically creating and updating node pointers and menus remove many +opportunities for human error. + + If you can, use the updating commands to create and insert pointers +and menus. These prevent many errors. Then use `makeinfo' (or its +Texinfo mode manifestations, `makeinfo-region' and `makeinfo-buffer') +to format your file and check for other errors. This is the best way +to work with Texinfo. But if you cannot use `makeinfo', or your +problem is very puzzling, then you may want to use the tools described +in this appendix. + + +File: texinfo.info, Node: Debugging with Info, Next: Debugging with TeX, Prev: makeinfo Preferred, Up: Catching Mistakes + +F.2 Catching Errors with Info Formatting +======================================== + +After you have written part of a Texinfo file, you can use the +`texinfo-format-region' or the `makeinfo-region' command to see whether +the region formats properly. + + Most likely, however, you are reading this section because for some +reason you cannot use the `makeinfo-region' command; therefore, the +rest of this section presumes that you are using +`texinfo-format-region'. + + If you have made a mistake with an @-command, `texinfo-format-region' +will stop processing at or after the error and display an error +message. To see where in the buffer the error occurred, switch to the +`*Info Region*' buffer; the cursor will be in a position that is after +the location of the error. Also, the text will not be formatted after +the place where the error occurred (or more precisely, where it was +detected). + + For example, if you accidentally end a menu with the command `@end +menus' with an `s' on the end, instead of with `@end menu', you will +see an error message that says: + + @end menus is not handled by texinfo + +The cursor will stop at the point in the buffer where the error occurs, +or not long after it. The buffer will look like this: + + ---------- Buffer: *Info Region* ---------- + * Menu: + + * Using texinfo-show-structure:: How to use + `texinfo-show-structure' + to catch mistakes. + * Running Info-Validate:: How to check for + unreferenced nodes. + @end menus + -!- + ---------- Buffer: *Info Region* ---------- + + The `texinfo-format-region' command sometimes provides slightly odd +error messages. For example, the following cross reference fails to +format: + + (@xref{Catching Mistakes, for more info.) + +In this case, `texinfo-format-region' detects the missing closing brace +but displays a message that says `Unbalanced parentheses' rather than +`Unbalanced braces'. This is because the formatting command looks for +mismatches between braces as if they were parentheses. + + Sometimes `texinfo-format-region' fails to detect mistakes. For +example, in the following, the closing brace is swapped with the +closing parenthesis: + + (@xref{Catching Mistakes), for more info.} + +Formatting produces: + (*Note for more info.: Catching Mistakes) + + The only way for you to detect this error is to realize that the +reference should have looked like this: + + (*Note Catching Mistakes::, for more info.) + + Incidentally, if you are reading this node in Info and type `f <RET>' +(`Info-follow-reference'), you will generate an error message that says: + + No such node: "Catching Mistakes) The only way ... + +This is because Info perceives the example of the error as the first +cross reference in this node and if you type a <RET> immediately after +typing the Info `f' command, Info will attempt to go to the referenced +node. If you type `f catch <TAB> <RET>', Info will complete the node +name of the correctly written example and take you to the `Catching +Mistakes' node. (If you try this, you can return from the `Catching +Mistakes' node by typing `l' (`Info-last').) + + +File: texinfo.info, Node: Debugging with TeX, Next: Using texinfo-show-structure, Prev: Debugging with Info, Up: Catching Mistakes + +F.3 Catching Errors with TeX Formatting +======================================= + +You can also catch mistakes when you format a file with TeX. + + Usually, you will want to do this after you have run +`texinfo-format-buffer' (or, better, `makeinfo-buffer') on the same +file, because `texinfo-format-buffer' sometimes displays error messages +that make more sense than TeX. (*Note Debugging with Info::, for more +information.) + + For example, TeX was run on a Texinfo file, part of which is shown +here: + + ---------- Buffer: texinfo.texi ---------- + name of the Texinfo file as an extension. The + @samp{??} are `wildcards' that cause the shell to + substitute all the raw index files. (@xref{sorting + indices, for more information about sorting + indices.)@refill + ---------- Buffer: texinfo.texi ---------- + +(The cross reference lacks a closing brace.) TeX produced the +following output, after which it stopped: + + ---------- Buffer: *tex-shell* ---------- + Runaway argument? + {sorting indices, for more information about sorting + indices.) @refill @ETC. + ! Paragraph ended before @xref was complete. + <to be read again> + @par + l.27 + + ? + ---------- Buffer: *tex-shell* ---------- + + In this case, TeX produced an accurate and understandable error +message: + + Paragraph ended before @xref was complete. + +`@par' is an internal TeX command of no relevance to Texinfo. `l.27' +means that TeX detected the problem on line 27 of the Texinfo file. +The `?' is the prompt TeX uses in this circumstance. + + Unfortunately, TeX is not always so helpful, and sometimes you must +truly be a Sherlock Holmes to discover what went wrong. + + In any case, if you run into a problem like this, you can do one of +three things. + + 1. You can tell TeX to continue running and ignore just this error by + typing <RET> at the `?' prompt. + + 2. You can tell TeX to continue running and to ignore all errors as + best it can by typing `r <RET>' at the `?' prompt. + + This is often the best thing to do. However, beware: the one error + may produce a cascade of additional error messages as its + consequences are felt through the rest of the file. To stop TeX + when it is producing such an avalanche of error messages, type + `C-c' (or `C-c C-c', if you are running a shell inside Emacs). + + 3. You can tell TeX to stop this run by typing `x <RET>' at the `?' + prompt. + + If you are running TeX inside Emacs, you need to switch to the shell +buffer and line at which TeX offers the `?' prompt. + + Sometimes TeX will format a file without producing error messages even +though there is a problem. This usually occurs if a command is not +ended but TeX is able to continue processing anyhow. For example, if +you fail to end an itemized list with the `@end itemize' command, TeX +will write a DVI file that you can print out. The only error message +that TeX will give you is the somewhat mysterious comment that + + (@end occurred inside a group at level 1) + +However, if you print the DVI file, you will find that the text of the +file that follows the itemized list is entirely indented as if it were +part of the last item in the itemized list. The error message is the +way TeX says that it expected to find an `@end' command somewhere in +the file; but that it could not determine where it was needed. + + Another source of notoriously hard-to-find errors is a missing `@end +group' command. If you ever are stumped by incomprehensible errors, +look for a missing `@end group' command first. + + If the Texinfo file lacks header lines, TeX may stop in the beginning +of its run and display output that looks like the following. The `*' +indicates that TeX is waiting for input. + + This is TeX, Version 3.14159 (Web2c 7.0) + (test.texinfo [1]) + * + +In this case, simply type `\end <RET>' after the asterisk. Then write +the header lines in the Texinfo file and run the TeX command again. +(Note the use of the backslash, `\'. TeX uses `\' instead of `@'; and +in this circumstance, you are working directly with TeX, not with +Texinfo.) + + +File: texinfo.info, Node: Using texinfo-show-structure, Next: Using occur, Prev: Debugging with TeX, Up: Catching Mistakes + +F.4 Using `texinfo-show-structure' +================================== + +It is not always easy to keep track of the nodes, chapters, sections, +and subsections of a Texinfo file. This is especially true if you are +revising or adding to a Texinfo file that someone else has written. + + In GNU Emacs, in Texinfo mode, the `texinfo-show-structure' command +lists all the lines that begin with the @-commands that specify the +structure: `@chapter', `@section', `@appendix', and so on. With an +argument (`C-u' as prefix argument, if interactive), the command also +shows the `@node' lines. The `texinfo-show-structure' command is bound +to `C-c C-s' in Texinfo mode, by default. + + The lines are displayed in a buffer called the `*Occur*' buffer, +indented by hierarchical level. For example, here is a part of what was +produced by running `texinfo-show-structure' on this manual: + + Lines matching "^@\\(chapter \\|sect\\|subs\\|subh\\| + unnum\\|major\\|chapheading \\|heading \\|appendix\\)" + in buffer texinfo.texi. + ... + 4177:@chapter Nodes + 4198: @heading Two Paths + 4231: @section Node and Menu Illustration + 4337: @section The @code{@@node} Command + 4393: @subheading Choosing Node and Pointer Names + 4417: @subsection How to Write an @code{@@node} Line + 4469: @subsection @code{@@node} Line Tips + ... + + This says that lines 4337, 4393, and 4417 of `texinfo.texi' begin +with the `@section', `@subheading', and `@subsection' commands +respectively. If you move your cursor into the `*Occur*' window, you +can position the cursor over one of the lines and use the `C-c C-c' +command (`occur-mode-goto-occurrence'), to jump to the corresponding +spot in the Texinfo file. *Note Using Occur: (emacs)Other Repeating +Search, for more information about `occur-mode-goto-occurrence'. + + The first line in the `*Occur*' window describes the "regular +expression" specified by TEXINFO-HEADING-PATTERN. This regular +expression is the pattern that `texinfo-show-structure' looks for. +*Note Using Regular Expressions: (emacs)Regexps, for more information. + + When you invoke the `texinfo-show-structure' command, Emacs will +display the structure of the whole buffer. If you want to see the +structure of just a part of the buffer, of one chapter, for example, +use the `C-x n n' (`narrow-to-region') command to mark the region. +(*Note Narrowing: (emacs)Narrowing.) This is how the example used +above was generated. (To see the whole buffer again, use `C-x n w' +(`widen').) + + If you call `texinfo-show-structure' with a prefix argument by typing +`C-u C-c C-s', it will list lines beginning with `@node' as well as the +lines beginning with the @-sign commands for `@chapter', `@section', +and the like. + + You can remind yourself of the structure of a Texinfo file by looking +at the list in the `*Occur*' window; and if you have mis-named a node +or left out a section, you can correct the mistake. + + +File: texinfo.info, Node: Using occur, Next: Running Info-Validate, Prev: Using texinfo-show-structure, Up: Catching Mistakes + +F.5 Using `occur' +================= + +Sometimes the `texinfo-show-structure' command produces too much +information. Perhaps you want to remind yourself of the overall +structure of a Texinfo file, and are overwhelmed by the detailed list +produced by `texinfo-show-structure'. In this case, you can use the +`occur' command directly. To do this, type + + M-x occur + +and then, when prompted, type a "regexp", a regular expression for the +pattern you want to match. (*Note Regular Expressions: +(emacs)Regexps.) The `occur' command works from the current location +of the cursor in the buffer to the end of the buffer. If you want to +run `occur' on the whole buffer, place the cursor at the beginning of +the buffer. + + For example, to see all the lines that contain the word `@chapter' in +them, just type `@chapter'. This will produce a list of the chapters. +It will also list all the sentences with `@chapter' in the middle of +the line. + + If you want to see only those lines that start with the word +`@chapter', type `^@chapter' when prompted by `occur'. If you want to +see all the lines that end with a word or phrase, end the last word +with a `$'; for example, `catching mistakes$'. This can be helpful +when you want to see all the nodes that are part of the same chapter or +section and therefore have the same `Up' pointer. + + *Note Using Occur: (emacs)Other Repeating Search, for more +information. + + +File: texinfo.info, Node: Running Info-Validate, Prev: Using occur, Up: Catching Mistakes + +F.6 Finding Badly Referenced Nodes +================================== + +You can use the `Info-validate' command to check whether any of the +`Next', `Previous', `Up' or other node pointers fail to point to a +node. This command checks that every node pointer points to an +existing node. The `Info-validate' command works only on Info files, +not on Texinfo files. + + The `makeinfo' program validates pointers automatically, so you do +not need to use the `Info-validate' command if you are using +`makeinfo'. You only may need to use `Info-validate' if you are unable +to run `makeinfo' and instead must create an Info file using +`texinfo-format-region' or `texinfo-format-buffer', or if you write an +Info file from scratch. + +* Menu: + +* Using Info-validate:: How to run `Info-validate'. +* Unsplit:: How to create an unsplit file. +* Tagifying:: How to tagify a file. +* Splitting:: How to split a file manually. + + +File: texinfo.info, Node: Using Info-validate, Next: Unsplit, Up: Running Info-Validate + +F.6.1 Running `Info-validate' +----------------------------- + +To use `Info-validate', visit the Info file you wish to check and type: + + M-x Info-validate + +Note that the `Info-validate' command requires an upper case `I'. You +may also need to create a tag table before running `Info-validate'. +*Note Tagifying::. + + If your file is valid, you will receive a message that says "File +appears valid". However, if you have a pointer that does not point to +a node, error messages will be displayed in a buffer called `*problems +in info file*'. + + For example, `Info-validate' was run on a test file that contained +only the first node of this manual. One of the messages said: + + In node "Overview", invalid Next: Texinfo Mode + +This meant that the node called `Overview' had a `Next' pointer that +did not point to anything (which was true in this case, since the test +file had only one node in it). + + Now suppose we add a node named `Texinfo Mode' to our test case but +we do not specify a `Previous' for this node. Then we will get the +following error message: + + In node "Texinfo Mode", should have Previous: Overview + +This is because every `Next' pointer should be matched by a `Previous' +(in the node where the `Next' points) which points back. + + `Info-validate' also checks that all menu entries and cross references +point to actual nodes. + + `Info-validate' requires a tag table and does not work with files +that have been split. (The `texinfo-format-buffer' command +automatically splits large files.) In order to use `Info-validate' on +a large file, you must run `texinfo-format-buffer' with an argument so +that it does not split the Info file; and you must create a tag table +for the unsplit file. + + +File: texinfo.info, Node: Unsplit, Next: Tagifying, Prev: Using Info-validate, Up: Running Info-Validate + +F.6.2 Creating an Unsplit File +------------------------------ + +You can run `Info-validate' only on a single Info file that has a tag +table. The command will not work on the indirect subfiles that are +generated when a master file is split. If you have a large file +(longer than 300,000 bytes or so), you need to run the +`texinfo-format-buffer' or `makeinfo-buffer' command in such a way that +it does not create indirect subfiles. You will also need to create a +tag table for the Info file. After you have done this, you can run +`Info-validate' and look for badly referenced nodes. + + The first step is to create an unsplit Info file. To prevent +`texinfo-format-buffer' from splitting a Texinfo file into smaller Info +files, give a prefix to the `M-x texinfo-format-buffer' command: + + C-u M-x texinfo-format-buffer + +or else + + C-u C-c C-e C-b + +When you do this, Texinfo will not split the file and will not create a +tag table for it. + + +File: texinfo.info, Node: Tagifying, Next: Splitting, Prev: Unsplit, Up: Running Info-Validate + +F.6.3 Tagifying a File +---------------------- + +After creating an unsplit Info file, you must create a tag table for +it. Visit the Info file you wish to tagify and type: + + M-x Info-tagify + +(Note the upper case `I' in `Info-tagify'.) This creates an Info file +with a tag table that you can validate. + + The third step is to validate the Info file: + + M-x Info-validate + +(Note the upper case `I' in `Info-validate'.) In brief, the steps are: + + C-u M-x texinfo-format-buffer + M-x Info-tagify + M-x Info-validate + + After you have validated the node structure, you can rerun +`texinfo-format-buffer' in the normal way so it will construct a tag +table and split the file automatically, or you can make the tag table +and split the file manually. + + +File: texinfo.info, Node: Splitting, Prev: Tagifying, Up: Running Info-Validate + +F.6.4 Splitting a File Manually +------------------------------- + +You should split a large file or else let the `texinfo-format-buffer' +or `makeinfo-buffer' command do it for you automatically. (Generally +you will let one of the formatting commands do this job for you. *Note +Creating an Info File::.) + + The split-off files are called the indirect subfiles. + + Info files are split to save memory. With smaller files, Emacs does +not have make such a large buffer to hold the information. + + If an Info file has more than 30 nodes, you should also make a tag +table for it. *Note Using Info-validate::, for information about +creating a tag table. (Again, tag tables are usually created +automatically by the formatting command; you only need to create a tag +table yourself if you are doing the job manually. Most likely, you +will do this for a large, unsplit file on which you have run +`Info-validate'.) + + Visit the Info file you wish to tagify and split and type the two +commands: + + M-x Info-tagify + M-x Info-split + +(Note that the `I' in `Info' is upper case.) + + When you use the `Info-split' command, the buffer is modified into a +(small) Info file which lists the indirect subfiles. This file should +be saved in place of the original visited file. The indirect subfiles +are written in the same directory the original file is in, with names +generated by appending `-' and a number to the original file name. + + The primary file still functions as an Info file, but it contains just +the tag table and a directory of subfiles. + + +File: texinfo.info, Node: Copying This Manual, Next: Command and Variable Index, Prev: Catching Mistakes, Up: Top + +Appendix G Copying This Manual +****************************** + +* Menu: + +* GNU Free Documentation License:: License for copying this manual. + + +File: texinfo.info, Node: GNU Free Documentation License, Up: Copying This Manual + +G.1 GNU Free Documentation License +================================== + + Version 1.2, November 2002 + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included in an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + +G.1.1 ADDENDUM: How to use this License for your documents +---------------------------------------------------------- + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and license +notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled ``GNU + Free Documentation License''. + + If you have Invariant Sections, Front-Cover Texts and Back-Cover +Texts, replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with + the Front-Cover Texts being LIST, and with the Back-Cover Texts + being LIST. + + If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + + If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, to +permit their use in free software. + + +File: texinfo.info, Node: Command and Variable Index, Next: Concept Index, Prev: Copying This Manual, Up: Top + +Command and Variable Index +************************** + +This is an alphabetical list of all the @-commands, assorted Emacs Lisp +functions, and several variables. To make the list easier to use, the +commands are listed without their preceding `@'. + + +* Menu: + +* ! (end of sentence): Ending a Sentence. (line 6) +* " (umlaut accent): Inserting Accents. (line 17) +* ' (umlaut accent): Inserting Accents. (line 17) +* * (force line break): Line Breaks. (line 6) +* , (cedilla accent): Inserting Accents. (line 17) +* - (discretionary hyphen): - and hyphenation. (line 6) +* . (end of sentence): Ending a Sentence. (line 6) +* / (allow line break): Line Breaks. (line 6) +* <colon> (suppress end-of-sentence space): Not Ending a Sentence. + (line 16) +* <newline>: Multiple Spaces. (line 6) +* <space>: Multiple Spaces. (line 6) +* <tab>: Multiple Spaces. (line 6) +* = (macron accent): Inserting Accents. (line 17) +* ? (end of sentence): Ending a Sentence. (line 6) +* @ (literal @): Inserting an Atsign. (line 6) +* \ (literal \ in @math): math. (line 28) +* \emergencystretch: Overfull hboxes. (line 31) +* \gdef within @tex: Raw Formatter Commands. + (line 29) +* \input (raw TeX startup): Minimum. (line 24) +* \mag (raw TeX magnification): Cropmarks and Magnification. + (line 24) +* ^ (circumflex accent): Inserting Accents. (line 17) +* ` (grave accent): Inserting Accents. (line 17) +* AA: Inserting Accents. (line 37) +* aa: Inserting Accents. (line 37) +* acronym: acronym. (line 6) +* AE: Inserting Accents. (line 37) +* ae: Inserting Accents. (line 37) +* afourlatex: A4 Paper. (line 23) +* afourpaper: A4 Paper. (line 6) +* afourwide: A4 Paper. (line 23) +* alias: alias. (line 6) +* anchor: anchor. (line 6) +* appendix: unnumbered & appendix. + (line 6) +* appendixsec: unnumberedsec appendixsec heading. + (line 6) +* appendixsection: unnumberedsec appendixsec heading. + (line 18) +* appendixsubsec: unnumberedsubsec appendixsubsec subheading. + (line 6) +* appendixsubsubsec: subsubsection. (line 6) +* apply: Sample Function Definition. + (line 14) +* asis: table. (line 20) +* author: title subtitle author. + (line 6) +* b (bold font): Fonts. (line 6) +* bullet: bullet. (line 6) +* bye <1>: File End. (line 6) +* bye: Ending a File. (line 6) +* c (comment): Comments. (line 6) +* caption: caption shortcaption. + (line 6) +* cartouche: cartouche. (line 6) +* center: titlefont center sp. (line 6) +* centerchap: chapter. (line 25) +* chapheading: majorheading & chapheading. + (line 6) +* chapter: chapter. (line 6) +* cite: cite. (line 6) +* code: code. (line 6) +* columnfractions: Multitable Column Widths. + (line 11) +* comma: Inserting a Comma. (line 6) +* command: command. (line 6) +* comment: Comments. (line 6) +* contents: Contents. (line 6) +* copying: copying. (line 6) +* copyright <1>: copying. (line 37) +* copyright: copyright symbol. (line 6) +* cropmarks: Cropmarks and Magnification. + (line 6) +* defcodeindex: New Indices. (line 6) +* defcv: Object-Oriented Variables. + (line 10) +* deffn: Functions Commands. (line 9) +* deffnx: deffnx. (line 6) +* defindex: New Indices. (line 6) +* definfoenclose: definfoenclose. (line 6) +* defivar: Object-Oriented Variables. + (line 47) +* defmac: Functions Commands. (line 58) +* defmethod: Object-Oriented Methods. + (line 80) +* defop: Object-Oriented Methods. + (line 11) +* defopt: Variables Commands. (line 56) +* defspec: Functions Commands. (line 63) +* deftp: Data Types. (line 8) +* deftypecv: Object-Oriented Variables. + (line 28) +* deftypefn: Typed Functions. (line 10) +* deftypefun: Typed Functions. (line 76) +* deftypeivar: Object-Oriented Variables. + (line 63) +* deftypeop: Object-Oriented Methods. + (line 51) +* deftypevar: Typed Variables. (line 40) +* deftypevr: Typed Variables. (line 12) +* defun: Functions Commands. (line 48) +* defvar: Variables Commands. (line 38) +* defvr: Variables Commands. (line 8) +* dfn: dfn. (line 6) +* dircategory: Installing Dir Entries. + (line 11) +* direntry: Installing Dir Entries. + (line 11) +* display: display. (line 6) +* dmn: dmn. (line 6) +* docbook: Raw Formatter Commands. + (line 53) +* documentdescription: documentdescription. (line 6) +* documentencoding: documentencoding. (line 6) +* documentlanguage: documentlanguage. (line 6) +* dotaccent: Inserting Accents. (line 17) +* dotless: Inserting Accents. (line 37) +* dots: dots. (line 6) +* email: email. (line 6) +* emph: emph & strong. (line 6) +* end <1>: Introducing Lists. (line 20) +* end: Quotations and Examples. + (line 15) +* end titlepage: end titlepage. (line 6) +* enddots: dots. (line 6) +* enumerate: enumerate. (line 6) +* env: env. (line 6) +* equiv: Equivalence. (line 6) +* error: Error Glyph. (line 6) +* evenfooting: Custom Headings. (line 51) +* evenheading: Custom Headings. (line 51) +* everyfooting: Custom Headings. (line 44) +* everyheading: Custom Headings. (line 44) +* example: example. (line 6) +* exampleindent: exampleindent. (line 6) +* exclamdown: Inserting Accents. (line 37) +* exdent: exdent. (line 6) +* expansion: expansion. (line 6) +* file: file. (line 6) +* filll TeX dimension: Copyright. (line 12) +* finalout: Overfull hboxes. (line 46) +* firstparagraphindent: firstparagraphindent. + (line 6) +* float: float. (line 6) +* flushleft: flushleft & flushright. + (line 6) +* flushright: flushleft & flushright. + (line 6) +* fn-name: Def Cmd Continuation Lines. + (line 19) +* foobar: Optional Arguments. (line 23) +* footnote: Footnotes. (line 6) +* footnotestyle: Footnote Styles. (line 44) +* format: format. (line 6) +* forward-word: Def Cmd Template. (line 35) +* ftable: ftable vtable. (line 6) +* group: group. (line 6) +* H (Hungarian umlaut accent): Inserting Accents. (line 17) +* hbox: Overfull hboxes. (line 14) +* heading: unnumberedsec appendixsec heading. + (line 6) +* headings: headings on off. (line 6) +* headitem: Multitable Rows. (line 12) +* headword: definfoenclose. (line 58) +* html: Raw Formatter Commands. + (line 45) +* hyphenation: - and hyphenation. (line 6) +* i (italic font): Fonts. (line 6) +* ifclear: ifset ifclear. (line 47) +* ifdocbook <1>: Raw Formatter Commands. + (line 53) +* ifdocbook: Conditional Commands. + (line 14) +* ifhtml <1>: Raw Formatter Commands. + (line 45) +* ifhtml: Conditional Commands. + (line 14) +* ifinfo: Conditional Commands. + (line 9) +* ifnotdocbook: Conditional Not Commands. + (line 6) +* ifnothtml: Conditional Not Commands. + (line 6) +* ifnotinfo: Conditional Not Commands. + (line 6) +* ifnotplaintext: Conditional Not Commands. + (line 6) +* ifnottex: Conditional Not Commands. + (line 6) +* ifnotxml: Conditional Not Commands. + (line 6) +* ifplaintext: Conditional Commands. + (line 14) +* ifset: ifset ifclear. (line 6) +* iftex: Conditional Commands. + (line 14) +* ifxml <1>: Raw Formatter Commands. + (line 49) +* ifxml: Conditional Commands. + (line 14) +* ignore: Comments. (line 19) +* image: Images. (line 6) +* include: Using Include Files. (line 6) +* indent: indent. (line 6) +* indicateurl: indicateurl. (line 6) +* Info-validate: Running Info-Validate. + (line 6) +* inforef: inforef. (line 6) +* insertcopying: insertcopying. (line 6) +* isearch-backward: deffnx. (line 22) +* isearch-forward: deffnx. (line 21) +* item <1>: Multitable Rows. (line 6) +* item <2>: table. (line 31) +* item: itemize. (line 22) +* itemize: itemize. (line 6) +* itemx: itemx. (line 6) +* kbd: kbd. (line 6) +* kbdinputstyle: kbd. (line 26) +* key: key. (line 6) +* l: Inserting Accents. (line 37) +* L: Inserting Accents. (line 37) +* LaTeX: tex. (line 6) +* lisp: lisp. (line 6) +* listoffloats: listoffloats. (line 6) +* lowersections: Raise/lower sections. + (line 6) +* macro: Defining Macros. (line 6) +* majorheading: majorheading & chapheading. + (line 6) +* makeinfo-buffer: makeinfo in Emacs. (line 16) +* makeinfo-kill-job: makeinfo in Emacs. (line 37) +* makeinfo-recenter-output-buffer: makeinfo in Emacs. (line 42) +* makeinfo-region: makeinfo in Emacs. (line 12) +* math: math. (line 6) +* menu: Menus. (line 6) +* minus: minus. (line 6) +* multitable: Multi-column Tables. (line 6) +* need: need. (line 6) +* next-error: makeinfo in Emacs. (line 26) +* node: node. (line 6) +* noindent: noindent. (line 6) +* novalidate: Format with tex/texindex. + (line 84) +* o: Inserting Accents. (line 37) +* O: Inserting Accents. (line 37) +* occur: Using occur. (line 6) +* occur-mode-goto-occurrence: Showing the Structure. + (line 22) +* oddfooting: Custom Headings. (line 51) +* oddheading: Custom Headings. (line 51) +* oe: Inserting Accents. (line 37) +* OE: Inserting Accents. (line 37) +* option: option. (line 6) +* ordf: Inserting Accents. (line 37) +* ordm: Inserting Accents. (line 37) +* page: page. (line 6) +* page, within @titlepage: titlepage. (line 17) +* pagesizes: pagesizes. (line 6) +* paragraphindent: paragraphindent. (line 6) +* phoo: definfoenclose. (line 35) +* point: Point Glyph. (line 6) +* pounds: pounds. (line 6) +* print: Print Glyph. (line 6) +* printindex: Printing Indices & Menus. + (line 23) +* pxref: pxref. (line 6) +* questiondown: Inserting Accents. (line 37) +* quotation: quotation. (line 6) +* r (roman font): Fonts. (line 6) +* raisesections: Raise/lower sections. + (line 6) +* ref: ref. (line 6) +* registeredsymbol: registered symbol. (line 6) +* result: result. (line 6) +* ringaccent: Inserting Accents. (line 17) +* rmacro: Defining Macros. (line 44) +* samp: samp. (line 6) +* sc (small caps font): Smallcaps. (line 6) +* section: section. (line 6) +* setchapternewpage: setchapternewpage. (line 6) +* setcontentsaftertitlepage: Contents. (line 51) +* setfilename: setfilename. (line 6) +* setshortcontentsaftertitlepage: Contents. (line 51) +* settitle: settitle. (line 6) +* shortcaption: caption shortcaption. + (line 6) +* shortcontents: Contents. (line 6) +* shorttitlepage: titlepage. (line 46) +* smallbook: smallbook. (line 6) +* smalldisplay <1>: small. (line 6) +* smalldisplay: display. (line 16) +* smallexample: small. (line 6) +* smallformat <1>: format. (line 15) +* smallformat: small. (line 6) +* smalllisp: small. (line 6) +* sp (line spacing): sp. (line 6) +* sp (titlepage line spacing): titlefont center sp. (line 6) +* ss: Inserting Accents. (line 37) +* strong: emph & strong. (line 6) +* subheading: unnumberedsubsec appendixsubsec subheading. + (line 6) +* subsection: subsection. (line 6) +* subsubheading: subsubsection. (line 6) +* subsubsection: subsubsection. (line 6) +* subtitle: title subtitle author. + (line 6) +* summarycontents: Contents. (line 6) +* syncodeindex: syncodeindex. (line 6) +* synindex: synindex. (line 6) +* t (typewriter font): Fonts. (line 6) +* tab: Multitable Rows. (line 6) +* table: Two-column Tables. (line 6) +* tex: Raw Formatter Commands. + (line 21) +* TeX: tex. (line 6) +* texinfo-all-menus-update: Updating Commands. (line 112) +* texinfo-every-node-update: Updating Commands. (line 107) +* texinfo-format-buffer <1>: texinfo-format commands. + (line 23) +* texinfo-format-buffer: Info Formatting. (line 22) +* texinfo-format-region <1>: texinfo-format commands. + (line 19) +* texinfo-format-region: Info Formatting. (line 13) +* texinfo-indent-menu-description: Other Updating Commands. + (line 45) +* texinfo-insert-@code: Inserting. (line 15) +* texinfo-insert-@dfn: Inserting. (line 19) +* texinfo-insert-@end: Inserting. (line 23) +* texinfo-insert-@example: Inserting. (line 62) +* texinfo-insert-@item: Inserting. (line 30) +* texinfo-insert-@kbd: Inserting. (line 35) +* texinfo-insert-@node: Inserting. (line 39) +* texinfo-insert-@noindent: Inserting. (line 44) +* texinfo-insert-@samp: Inserting. (line 49) +* texinfo-insert-@table: Inserting. (line 53) +* texinfo-insert-@var: Inserting. (line 58) +* texinfo-insert-braces: Inserting. (line 67) +* texinfo-insert-node-lines: Other Updating Commands. + (line 10) +* texinfo-make-menu: Updating Commands. (line 93) +* texinfo-master-menu: Updating Commands. (line 55) +* texinfo-multiple-files-update: texinfo-multiple-files-update. + (line 6) +* texinfo-multiple-files-update (in brief): Other Updating Commands. + (line 34) +* texinfo-sequential-node-update: Other Updating Commands. + (line 54) +* texinfo-show-structure <1>: Showing the Structure. + (line 18) +* texinfo-show-structure: Using texinfo-show-structure. + (line 6) +* texinfo-start-menu-description: Inserting. (line 94) +* texinfo-tex-buffer: Printing. (line 21) +* texinfo-tex-print: Printing. (line 42) +* texinfo-tex-region: Printing. (line 27) +* texinfo-update-node: Updating Commands. (line 83) +* thischapter: Custom Headings. (line 73) +* thischaptername: Custom Headings. (line 70) +* thisfile: Custom Headings. (line 81) +* thispage: Custom Headings. (line 67) +* thistitle: Custom Headings. (line 77) +* tie (unbreakable interword space): tie. (line 6) +* tieaccent: Inserting Accents. (line 17) +* title: title subtitle author. + (line 6) +* titlefont: titlefont center sp. (line 6) +* titlepage: titlepage. (line 6) +* today: Custom Headings. (line 90) +* top: The Top Node. (line 13) +* top (@-command): makeinfo top command. + (line 6) +* u (breve accent): Inserting Accents. (line 17) +* ubaraccent: Inserting Accents. (line 17) +* udotaccent: Inserting Accents. (line 17) +* unmacro: Defining Macros. (line 56) +* unnumbered: unnumbered & appendix. + (line 6) +* unnumberedsec: unnumberedsec appendixsec heading. + (line 6) +* unnumberedsubsec: unnumberedsubsec appendixsubsec subheading. + (line 6) +* unnumberedsubsubsec: subsubsection. (line 6) +* up-list: Inserting. (line 72) +* uref: uref. (line 6) +* v (check accent): Inserting Accents. (line 17) +* value: set value. (line 6) +* var: var. (line 6) +* verb: verb. (line 6) +* verbatim: verbatim. (line 6) +* verbatiminclude: verbatiminclude. (line 6) +* vskip TeX vertical skip: Copyright. (line 12) +* vtable: ftable vtable. (line 6) +* w (prevent line break): w. (line 6) +* xml: Raw Formatter Commands. + (line 49) +* xref: xref. (line 6) +* { (literal {): Inserting Braces. (line 6) +* } (literal }): Inserting Braces. (line 6) +* ~ (tilde accent): Inserting Accents. (line 17) + + +File: texinfo.info, Node: Concept Index, Prev: Command and Variable Index, Up: Top + +Concept Index +************* + + +* Menu: + +* !: Inserting Accents. (line 37) +* $Id: GNU Sample Texts. (line 21) +* $Id expansion, preventing: w. (line 28) +* (dir) as Up node of Top node: First Node. (line 13) +* --commands-in-node-names: makeinfo options. (line 34) +* --css-include: makeinfo options. (line 41) +* --delete: Invoking install-info. + (line 32) +* --dir-file=NAME: Invoking install-info. + (line 38) +* --docbook: makeinfo options. (line 46) +* --enable-encoding <1>: makeinfo options. (line 49) +* --enable-encoding: documentencoding. (line 26) +* --entry=TEXT: Invoking install-info. + (line 43) +* --error-limit=LIMIT: makeinfo options. (line 55) +* --fill-column=WIDTH: makeinfo options. (line 61) +* --footnote-style, ignored in HTML output: HTML Translation. (line 13) +* --footnote-style=STYLE: makeinfo options. (line 70) +* --force: makeinfo options. (line 81) +* --help <1>: makeinfo options. (line 86) +* --help: Invoking install-info. + (line 51) +* --html: makeinfo options. (line 90) +* --ifdocbook: makeinfo options. (line 104) +* --ifhtml: makeinfo options. (line 105) +* --ifinfo: makeinfo options. (line 106) +* --ifplaintext: makeinfo options. (line 107) +* --iftex: makeinfo options. (line 108) +* --ifxml: makeinfo options. (line 109) +* --info-dir=DIR: Invoking install-info. + (line 61) +* --info-file=FILE: Invoking install-info. + (line 56) +* --item=TEXT: Invoking install-info. + (line 65) +* --macro-expand=FILE: makeinfo options. (line 117) +* --no-headers: makeinfo options. (line 123) +* --no-ifdocbook: makeinfo options. (line 138) +* --no-ifhtml: makeinfo options. (line 139) +* --no-ifinfo: makeinfo options. (line 140) +* --no-ifplaintext: makeinfo options. (line 141) +* --no-iftex: makeinfo options. (line 142) +* --no-ifxml: makeinfo options. (line 143) +* --no-number-footnotes: makeinfo options. (line 173) +* --no-pointer-validate: makeinfo options. (line 156) +* --no-split: makeinfo options. (line 148) +* --no-validate: makeinfo options. (line 156) +* --no-warn: makeinfo options. (line 163) +* --number-sections: makeinfo options. (line 169) +* --output=FILE: makeinfo options. (line 179) +* --paragraph-indent=INDENT: makeinfo options. (line 193) +* --quiet: Invoking install-info. + (line 69) +* --reference-limit=LIMIT: makeinfo options. (line 209) +* --remove: Invoking install-info. + (line 73) +* --section=SEC: Invoking install-info. + (line 77) +* --split-size=NUM: makeinfo options. (line 215) +* --verbose: makeinfo options. (line 222) +* --version <1>: makeinfo options. (line 228) +* --version: Invoking install-info. + (line 84) +* --xml: makeinfo options. (line 231) +* -D DIR: Invoking install-info. + (line 61) +* -d NAME: Invoking install-info. + (line 38) +* -D VAR: makeinfo options. (line 30) +* -E FILE: makeinfo options. (line 117) +* -e LIMIT: makeinfo options. (line 55) +* -e TEXT: Invoking install-info. + (line 43) +* -F: makeinfo options. (line 81) +* -f WIDTH: makeinfo options. (line 61) +* -h <1>: makeinfo options. (line 86) +* -h: Invoking install-info. + (line 51) +* -I DIR: makeinfo options. (line 96) +* -i FILE: Invoking install-info. + (line 56) +* -o FILE: makeinfo options. (line 179) +* -P DIR: makeinfo options. (line 187) +* -p INDENT: makeinfo options. (line 193) +* -r: Invoking install-info. + (line 73) +* -r LIMIT: makeinfo options. (line 209) +* -s SEC: Invoking install-info. + (line 77) +* -s STYLE: makeinfo options. (line 70) +* -V <1>: Invoking install-info. + (line 84) +* -V: makeinfo options. (line 228) +* .cshrc initialization file: Preparing for TeX. (line 6) +* .profile initialization file: Preparing for TeX. (line 6) +* /l: Inserting Accents. (line 37) +* /L: Inserting Accents. (line 37) +* /O: Inserting Accents. (line 37) +* /o: Inserting Accents. (line 37) +* 8-bit characters, in HTML cross-references: HTML Xref 8-bit Character Expansion. + (line 6) +* <acronym> tag: acronym. (line 15) +* <blockquote> HTML tag: quotation. (line 45) +* <lineannotation> Docbook tag: Fonts. (line 25) +* <meta> HTML tag, and charset specification: documentencoding. + (line 35) +* <meta> HTML tag, and document description: documentdescription. + (line 6) +* <note> Docbook tag: quotation. (line 45) +* <small> tag: Smallcaps. (line 25) +* <thead> HTML tag: Multitable Rows. (line 12) +* <title> HTML tag: settitle. (line 21) +* <URL: convention, not used: uref. (line 71) +* ?: Inserting Accents. (line 37) +* @ as continuation in definition commands: Def Cmd Continuation Lines. + (line 6) +* @-command list: Command List. (line 6) +* @-command syntax: Command Syntax. (line 6) +* @-commands: Formatting Commands. (line 6) +* @-commands in @node, limited support: Pointer Validation. (line 36) +* @-commands in nodename: Node Line Requirements. + (line 23) +* @import specifications, in CSS files: HTML CSS. (line 30) +* @include file sample: Sample Include File. (line 6) +* @menu parts: Menu Parts. (line 6) +* @node line writing: Writing a Node. (line 6) +* @value in @node lines: Pointer Validation. (line 66) +* @w, for blank items: itemize. (line 10) +* \input source line ignored: setfilename. (line 16) +* a: Inserting Accents. (line 37) +* A4 paper, printing on: A4 Paper. (line 6) +* A5 paper, printing on: A4 Paper. (line 6) +* AA: Inserting Accents. (line 37) +* aa: Inserting Accents. (line 37) +* Abbreviations for keys: key. (line 19) +* Abbreviations, tagging: acronym. (line 6) +* Abstract of document: documentdescription. (line 6) +* Accents, inserting: Inserting Accents. (line 6) +* Acronyms, tagging: acronym. (line 6) +* Acute accent: Inserting Accents. (line 17) +* Adding a new Info file: New Info File. (line 6) +* ae: Inserting Accents. (line 37) +* AE: Inserting Accents. (line 37) +* Aliases, command: alias. (line 6) +* All-permissive copying license: All-permissive Copying License. + (line 6) +* Allow line break: Line Breaks. (line 6) +* Alphabetical @-command list: Command List. (line 6) +* Alt attribute for images: Image Syntax. (line 30) +* Anchors: anchor. (line 6) +* Another Info directory: Other Info Directories. + (line 6) +* Arguments, repeated and optional: Optional Arguments. (line 6) +* ASCII text output: makeinfo options. (line 123) +* Aspect ratio of images: Image Scaling. (line 6) +* autoexec.bat: Other Info Directories. + (line 70) +* automake, and version info: GNU Sample Texts. (line 32) +* Automatic pointer creation with makeinfo: makeinfo Pointer Creation. + (line 6) +* Automatically insert nodes, menus: Updating Nodes and Menus. + (line 6) +* Auxiliary files, avoiding: Format with tex/texindex. + (line 84) +* B5 paper, printing on: pagesizes. (line 16) +* Back-end output formats: Output Formats. (line 6) +* Backslash in macros: Defining Macros. (line 37) +* Backslash, and macros: Invoking Macros. (line 23) +* Badly referenced nodes: Running Info-Validate. + (line 6) +* Bastard title page: titlepage. (line 46) +* Batch formatting for Info: Batch Formatting. (line 6) +* Beebe, Nelson: Output Formats. (line 51) +* Beginning a Texinfo file: Beginning a File. (line 6) +* Beginning line of a Texinfo file: First Line. (line 6) +* Berry, Karl: History. (line 6) +* Big points: Image Scaling. (line 24) +* Black rectangle in hardcopy: Overfull hboxes. (line 41) +* Blank lines: sp. (line 6) +* Blank lines, as paragraph separator: Conventions. (line 16) +* Body of a macro: Defining Macros. (line 26) +* Bold font: Fonts. (line 15) +* Bolio: History. (line 30) +* Book characteristics, printed: Printed Books. (line 6) +* Book, printing small: smallbook. (line 6) +* border-pattern: Object-Oriented Variables. + (line 58) +* border-pattern of Window: Object-Oriented Variables. + (line 77) +* BoTeX: History. (line 30) +* Box with rounded corners: cartouche. (line 6) +* Box, ugly black in hardcopy: Overfull hboxes. (line 41) +* Braces and argument syntax: Command Syntax. (line 40) +* Braces, in macro arguments: Invoking Macros. (line 38) +* Braces, inserting: Inserting Braces. (line 6) +* Braces, when to use: Formatting Commands. (line 50) +* Breaks in a line: Line Breaks. (line 6) +* Breve accent: Inserting Accents. (line 17) +* Buffer formatting and printing: Printing. (line 6) +* Bugs, reporting: Reporting Bugs. (line 6) +* Bullets, inserting: Dots Bullets. (line 6) +* Captions, for floats: caption shortcaption. + (line 6) +* Caron accent: Inserting Accents. (line 17) +* Cascading Style Sheets, and HTML output: HTML CSS. (line 6) +* Case in node name: Node Line Requirements. + (line 42) +* Case, not altering in @code: code. (line 19) +* Catching errors with Info formatting: Debugging with Info. (line 6) +* Catching errors with TeX formatting: Debugging with TeX. (line 6) +* Catching mistakes: Catching Mistakes. (line 6) +* Categories, choosing: Installing Dir Entries. + (line 45) +* Cedilla accent: Inserting Accents. (line 17) +* Centimeters: Image Scaling. (line 30) +* Chapter structuring: Structuring. (line 6) +* Chapters, formatting one at a time: Format with tex/texindex. + (line 84) +* Character set, declaring: documentencoding. (line 6) +* Characteristics, printed books or manuals: Printed Books. (line 6) +* Characters, basic input: Conventions. (line 6) +* Characters, invalid in node name: Node Line Requirements. + (line 30) +* Chassell, Robert J.: History. (line 6) +* Check accent: Inserting Accents. (line 17) +* Checking for badly referenced nodes: Running Info-Validate. + (line 6) +* Checklist for bug reports: Reporting Bugs. (line 11) +* Ciceros: Image Scaling. (line 39) +* Circumflex accent: Inserting Accents. (line 17) +* code, value for @kbdinputstyle: kbd. (line 32) +* Collapsing whitespace around continuations: Def Cmd Continuation Lines. + (line 31) +* Colon in nodename: Node Line Requirements. + (line 30) +* Colon, last in INFOPATH: Other Info Directories. + (line 80) +* Column widths, defining for multitables: Multitable Column Widths. + (line 6) +* Combining indices: Combining Indices. (line 6) +* Comma in nodename: Node Line Requirements. + (line 30) +* Comma, in macro arguments: Invoking Macros. (line 38) +* Command aliases: alias. (line 6) +* Command definitions: Sample Function Definition. + (line 6) +* Command names, indicating: command. (line 6) +* Command syntax: Command Syntax. (line 6) +* Commands to insert special characters: Atsign Braces Comma. (line 6) +* Commands using raw TeX: Raw Formatter Commands. + (line 6) +* Commands, inserting them: Inserting. (line 6) +* Commas, inserting: Inserting a Comma. (line 6) +* Comments: Comments. (line 6) +* Comments, in CSS files: HTML CSS. (line 36) +* Compile command for formatting: Compile-Command. (line 6) +* Compressed files, reading: Invoking install-info. + (line 22) +* Conditionally visible text: Conditionals. (line 6) +* Conditionals, nested: Conditional Nesting. (line 6) +* Conditions for copying Texinfo: Copying Conditions. (line 6) +* Contents, after title page: Contents. (line 51) +* Contents, Table of: Contents. (line 6) +* Contents-like outline of file structure: Showing the Structure. + (line 6) +* Continuation lines in definition commands: Def Cmd Continuation Lines. + (line 6) +* Conventions for writing definitions: Def Cmd Conventions. (line 6) +* Conventions, syntactic: Conventions. (line 6) +* Copying conditions: Copying Conditions. (line 6) +* Copying Permissions: Document Permissions. + (line 6) +* Copying software: Software Copying Permissions. + (line 6) +* Copying text, including: insertcopying. (line 6) +* Copyright holder for FSF works: copying. (line 53) +* Copyright page: Copyright. (line 6) +* Copyright page, for plain text: Titlepage & Copyright Page. + (line 16) +* Copyright word, always in English: copying. (line 44) +* Correcting mistakes: Catching Mistakes. (line 6) +* cp (concept) index: Predefined Indices. (line 10) +* Create nodes, menus automatically: Updating Nodes and Menus. + (line 6) +* Creating an Info file: Creating an Info File. + (line 6) +* Creating an unsplit file: Unsplit. (line 6) +* Creating index entries: Indexing Commands. (line 6) +* Creating pointers with makeinfo: makeinfo Pointer Creation. + (line 6) +* Cropmarks for printing: Cropmarks and Magnification. + (line 6) +* Cross reference parts: Cross Reference Parts. + (line 6) +* Cross references: Cross References. (line 6) +* Cross references using @inforef: inforef. (line 6) +* Cross references using @pxref: pxref. (line 6) +* Cross references using @ref: ref. (line 6) +* Cross references using @xref: xref. (line 6) +* Cross-reference targets, arbitrary: anchor. (line 6) +* Cross-references, in HTML output: HTML Xref. (line 6) +* CSS, and HTML output: HTML CSS. (line 6) +* Custom page sizes: pagesizes. (line 6) +* Customize Emacs package (Development/Docs/Texinfo): Texinfo Mode Printing. + (line 92) +* Customized highlighting: definfoenclose. (line 6) +* Customizing of TeX for Texinfo: Preparing for TeX. (line 27) +* CVS $Id: GNU Sample Texts. (line 21) +* Dashes in source: Conventions. (line 41) +* Debugging the Texinfo structure: Catching Mistakes. (line 6) +* Debugging with Info formatting: Debugging with Info. (line 6) +* Debugging with TeX formatting: Debugging with TeX. (line 6) +* Defining indexing entries: Indexing Commands. (line 6) +* Defining macros: Defining Macros. (line 6) +* Defining new indices: New Indices. (line 6) +* Defining new Texinfo commands: Defining New Texinfo Commands. + (line 6) +* Definition command headings, continuing: Def Cmd Continuation Lines. + (line 6) +* Definition commands: Definition Commands. (line 6) +* Definition conventions: Def Cmd Conventions. (line 6) +* Definition lists, typesetting: table. (line 6) +* Definition template: Def Cmd Template. (line 6) +* Definitions grouped together: deffnx. (line 6) +* Delimiter character, for verbatim: verb. (line 6) +* Depth of text area: pagesizes. (line 6) +* Description for menu, start: Inserting. (line 94) +* Description of document: documentdescription. (line 6) +* Details of macro usage: Macro Details. (line 6) +* Dido^t points: Image Scaling. (line 36) +* Different cross reference commands: Cross Reference Commands. + (line 6) +* Dimension formatting: dmn. (line 6) +* Dimensions and image sizes: Image Scaling. (line 14) +* Dir categories, choosing: Installing Dir Entries. + (line 45) +* dir directory for Info installation: Installing an Info File. + (line 6) +* dir file listing: New Info File. (line 6) +* dir file, creating your own: Other Info Directories. + (line 91) +* dir files and Info directories: Other Info Directories. + (line 6) +* Dir files, compressed: Invoking install-info. + (line 22) +* dir, created by install-info: Invoking install-info. + (line 19) +* Display formatting: display. (line 6) +* Displayed equations: math. (line 33) +* distinct, value for @kbdinputstyle: kbd. (line 32) +* Distorting images: Image Scaling. (line 6) +* Distribution: Software Copying Permissions. + (line 6) +* Docbook output: Output Formats. (line 70) +* Docbook, including raw: Raw Formatter Commands. + (line 6) +* Document description: documentdescription. (line 6) +* Document input encoding: documentencoding. (line 6) +* Document language, declaring: documentlanguage. (line 6) +* Document Permissions: Document Permissions. + (line 6) +* Documentation identification: GNU Sample Texts. (line 21) +* Dot accent: Inserting Accents. (line 17) +* Dotless i, j: Inserting Accents. (line 37) +* Dots, inserting <1>: dots. (line 6) +* Dots, inserting: Dots Bullets. (line 6) +* Double-colon menu entries: Less Cluttered Menu Entry. + (line 6) +* DTD, for Texinfo XML: Output Formats. (line 60) +* Dumas, Patrice: HTML Xref. (line 21) +* Dumping a .fmt file: Preparing for TeX. (line 74) +* DVI file: Format with tex/texindex. + (line 6) +* DVI output: Output Formats. (line 36) +* dvips: Output Formats. (line 36) +* Ellipsis, inserting: Dots Bullets. (line 6) +* Em dash, compared to minus sign: minus. (line 6) +* Em dash, producing: Conventions. (line 41) +* Emacs: Texinfo Mode. (line 6) +* Emacs shell, format, print from: Within Emacs. (line 6) +* Emacs-W3: Output Formats. (line 26) +* Emphasizing text: Emphasis. (line 6) +* Emphasizing text, font for: emph & strong. (line 6) +* En dash, producing: Conventions. (line 41) +* Encoding, declaring: documentencoding. (line 6) +* End node footnote style: Footnote Styles. (line 9) +* End of header line: End of Header. (line 6) +* End titlepage starts headings: end titlepage. (line 6) +* Ending a Sentence: Ending a Sentence. (line 6) +* Ending a Texinfo file: Ending a File. (line 6) +* Entries for an index: Indexing Commands. (line 6) +* Entries, making index: Index Entries. (line 6) +* Enumeration: enumerate. (line 6) +* Environment indentation: exampleindent. (line 6) +* Environment variable INFOPATH: Other Info Directories. + (line 50) +* Environment variable TEXINFO_OUTPUT_FORMAT: makeinfo options. + (line 234) +* Environment variable TEXINPUTS: Preparing for TeX. (line 37) +* epsf.tex: Image Scaling. (line 49) +* epsf.tex, installing: Preparing for TeX. (line 20) +* Equations, displayed: math. (line 33) +* Equivalence, indicating: Equivalence. (line 6) +* Error message, indicating: Error Glyph. (line 6) +* Errors, parsing: makeinfo in Emacs. (line 26) +* Es-zet: Inserting Accents. (line 37) +* European A4 paper: A4 Paper. (line 6) +* Evaluation glyph: result. (line 6) +* Example beginning of Texinfo file: Sample Beginning. (line 6) +* Example indentation: exampleindent. (line 6) +* Example menu: Menu Example. (line 6) +* example, value for @kbdinputstyle: kbd. (line 32) +* Examples in smaller fonts: small. (line 6) +* Examples, formatting them: example. (line 6) +* Examples, glyphs for: Glyphs. (line 6) +* Expanding macros: Invoking Macros. (line 6) +* Expansion of 8-bit characters in HTML cross-references: HTML Xref 8-bit Character Expansion. + (line 6) +* Expansion, indicating: expansion. (line 6) +* expansion, of node names in HTML cross-references: HTML Xref Node Name Expansion. + (line 6) +* Expressions in a program, indicating: code. (line 10) +* F.B.I., as acronym: acronym. (line 6) +* FDL, GNU Free Documentation License: GNU Free Documentation License. + (line 6) +* Feminine ordinal: Inserting Accents. (line 37) +* File beginning: Beginning a File. (line 6) +* File ending: Ending a File. (line 6) +* File name collision: setfilename. (line 26) +* File section structure, showing it: Showing the Structure. + (line 6) +* Final output: Overfull hboxes. (line 6) +* Finding badly referenced nodes: Running Info-Validate. + (line 6) +* Fine-tuning, and hyphenation: - and hyphenation. (line 6) +* First line of a Texinfo file: First Line. (line 6) +* First node: First Node. (line 6) +* First paragraph, suppressing indentation of: firstparagraphindent. + (line 6) +* Fixed-width font: Fonts. (line 18) +* Float environment: float. (line 6) +* Floating accents, inserting: Inserting Accents. (line 6) +* Floating, not yet implemented: Floats. (line 10) +* Floats, in general: Floats. (line 6) +* Floats, list of: listoffloats. (line 6) +* Floats, making unnumbered: float. (line 39) +* Floats, numbering of: float. (line 46) +* Flooding: pxref. (line 34) +* fn (function) index: Predefined Indices. (line 13) +* Fonts for indices: syncodeindex. (line 52) +* Fonts for printing, not Info: Fonts. (line 6) +* Footings: Headings. (line 6) +* Footnotes: Footnotes. (line 6) +* Force line break: Line Breaks. (line 6) +* Forcing indentation: indent. (line 6) +* Forcing line and page breaks: Breaks. (line 6) +* Format a dimension: dmn. (line 6) +* Format and print hardcopy: Hardcopy. (line 6) +* Format and print in Texinfo mode: Texinfo Mode Printing. + (line 6) +* Format file, dumping: Preparing for TeX. (line 74) +* Format with the compile command: Compile-Command. (line 6) +* Format, print from Emacs shell: Within Emacs. (line 6) +* Formats for images: Image Syntax. (line 10) +* Formatting a file for Info: Creating an Info File. + (line 6) +* Formatting commands: Formatting Commands. (line 6) +* Formatting examples: example. (line 6) +* Formatting for Info: Info Formatting. (line 6) +* Formatting for printing: Printing. (line 6) +* Formatting headings and footings: Headings. (line 6) +* Formatting requirements: Requirements Summary. + (line 6) +* Formatting with tex and texindex: Format with tex/texindex. + (line 6) +* Formulas, mathematical: math. (line 6) +* Fox, Brian: History. (line 6) +* Free Documentation License, including entire: GNU Sample Texts. + (line 51) +* Free Software Directory: Installing Dir Entries. + (line 45) +* Frequently used commands, inserting: Inserting. (line 6) +* Frontmatter, text in: Beginning a File. (line 15) +* Full texts, GNU: GNU Sample Texts. (line 6) +* Function definitions: Sample Function Definition. + (line 6) +* General syntactic conventions: Conventions. (line 6) +* Generating menus with indices: Printing Indices & Menus. + (line 6) +* Generating plain text files: makeinfo options. (line 123) +* German S: Inserting Accents. (line 37) +* GIF images, unsupported due to patents: Image Syntax. (line 37) +* Global Document Commands: Global Document Commands. + (line 6) +* Globbing: Format with tex/texindex. + (line 32) +* Glyphs: Glyphs. (line 6) +* GNU Emacs: Texinfo Mode. (line 6) +* GNU Emacs shell, format, print from: Within Emacs. (line 6) +* GNU Free Documentation License, including entire: GNU Sample Texts. + (line 51) +* GNU sample texts: GNU Sample Texts. (line 6) +* Going to other Info files' nodes: Other Info Files. (line 6) +* Grave accent: Inserting Accents. (line 17) +* Grave accent, vs. left quote: Conventions. (line 35) +* Group (hold text together vertically): group. (line 6) +* Grouping two definitions together: deffnx. (line 6) +* Hacek accent: Inserting Accents. (line 17) +* Hardcopy, printing it: Hardcopy. (line 6) +* hboxes, overfull: Overfull hboxes. (line 6) +* Header for Texinfo files: Texinfo File Header. (line 6) +* Header of a Texinfo file: First Line. (line 6) +* Heading row, in table: Multitable Rows. (line 12) +* Headings: Headings. (line 6) +* Headings, indentation after: firstparagraphindent. + (line 6) +* Headings, page, begin to appear: end titlepage. (line 6) +* Height of images: Image Scaling. (line 6) +* Height of text area: pagesizes. (line 6) +* help2man: Output Formats. (line 88) +* Hierarchical documents, and menus: Menu Location. (line 16) +* Highlighting text: Indicating. (line 6) +* Highlighting, customized: definfoenclose. (line 6) +* Hints: Tips. (line 8) +* History of Texinfo: History. (line 24) +* Holder of copyright for FSF works: copying. (line 53) +* Holding text together vertically: group. (line 6) +* href, producing HTML: uref. (line 6) +* HTML cross-reference 8-bit character expansion: HTML Xref 8-bit Character Expansion. + (line 6) +* HTML cross-reference command expansion: HTML Xref Command Expansion. + (line 6) +* HTML cross-reference link basics: HTML Xref Link Basics. + (line 6) +* HTML cross-reference mismatch: HTML Xref Mismatch. (line 6) +* HTML cross-reference node name expansion: HTML Xref Node Name Expansion. + (line 6) +* HTML cross-references: HTML Xref. (line 6) +* HTML output <1>: Generating HTML. (line 6) +* HTML output: Output Formats. (line 26) +* HTML output, and encodings: documentencoding. (line 35) +* HTML output, browser compatibility of: HTML Translation. (line 22) +* HTML output, split: HTML Splitting. (line 6) +* HTML, and CSS: HTML CSS. (line 6) +* HTML, including raw: Raw Formatter Commands. + (line 6) +* http-equiv, and charset specification: documentencoding. (line 35) +* Hungarian umlaut accent: Inserting Accents. (line 17) +* Hurricanes: ref. (line 12) +* Hyphen, compared to minus: minus. (line 6) +* Hyphenation patterns, language-dependent: documentlanguage. (line 18) +* Hyphenation, helping TeX do: - and hyphenation. (line 6) +* Hyphenation, preventing: w. (line 24) +* Hyphens in source, two or three in a row: Conventions. (line 41) +* i (dotless i): Inserting Accents. (line 37) +* Identification of documentation: GNU Sample Texts. (line 21) +* If text conditionally visible: Conditionals. (line 6) +* Ignored before @setfilename: setfilename. (line 16) +* Ignored text: Comments. (line 19) +* Image formats: Image Syntax. (line 10) +* Images, alternate text for: Image Syntax. (line 30) +* Images, inserting: Images. (line 6) +* Images, scaling: Image Scaling. (line 6) +* Inches: Image Scaling. (line 27) +* Include file sample: Sample Include File. (line 6) +* Include files: Include Files. (line 6) +* Include files requirements: Include Files Requirements. + (line 6) +* Include files, and section levels: Raise/lower sections. + (line 16) +* Including a file verbatim: verbatiminclude. (line 6) +* Including permissions text: insertcopying. (line 6) +* Indentation undoing: exdent. (line 6) +* Indentation, forcing: indent. (line 6) +* Indentation, omitting: noindent. (line 6) +* Indenting environments: exampleindent. (line 6) +* Indenting paragraphs, control of: paragraphindent. (line 6) +* Indenting, suppressing of first paragraph: firstparagraphindent. + (line 6) +* Index entries: Indexing Commands. (line 6) +* Index entries, making: Index Entries. (line 6) +* Index entry writing: Indexing Commands. (line 27) +* Index file names: Format with tex/texindex. + (line 24) +* Index font types: Indexing Commands. (line 48) +* Indexing table entries automatically: ftable vtable. (line 6) +* Indicating commands, definitions, etc.: Indicating. (line 6) +* Indicating evaluation: result. (line 6) +* Indices: Indices. (line 6) +* Indices, combining them: Combining Indices. (line 6) +* Indices, defining new: New Indices. (line 6) +* Indices, printing and menus: Printing Indices & Menus. + (line 6) +* Indices, sorting: Hardcopy. (line 6) +* Indices, two letter names: syncodeindex. (line 17) +* Indirect subfiles: Tag and Split Files. (line 11) +* Info batch formatting: Batch Formatting. (line 6) +* Info file installation: Installing an Info File. + (line 6) +* Info file name, choosing: setfilename. (line 26) +* Info file, listing a new: New Info File. (line 6) +* Info file, splitting manually: Splitting. (line 6) +* Info files: Info Files. (line 6) +* Info format, and menus: Menu Location. (line 10) +* Info formatting: Info Formatting. (line 6) +* Info installed in another directory: Other Info Directories. + (line 6) +* Info output: Output Formats. (line 10) +* Info output, and encoding: documentencoding. (line 26) +* Info validating a large file: Using Info-validate. (line 6) +* Info, creating an online file: Creating an Info File. + (line 6) +* Info-directory-list: Other Info Directories. + (line 37) +* Info; other files' nodes: Other Info Files. (line 6) +* INFOPATH: Other Info Directories. + (line 50) +* Initialization file for TeX input: Preparing for TeX. (line 6) +* Input encoding, declaring: documentencoding. (line 6) +* Insert nodes, menus automatically: Updating Nodes and Menus. + (line 6) +* Inserting @ (literal @): Inserting an Atsign. (line 6) +* Inserting accents: Inserting Accents. (line 6) +* Inserting dots <1>: Dots Bullets. (line 6) +* Inserting dots: dots. (line 6) +* Inserting ellipsis: Dots Bullets. (line 6) +* Inserting frequently used commands: Inserting. (line 6) +* Inserting indentation: indent. (line 6) +* Inserting space: Inserting Space. (line 6) +* Inserting special characters and symbols: Insertions. (line 6) +* INSTALL file, generating: makeinfo options. (line 123) +* install-info: Invoking install-info. + (line 6) +* Installing an Info file: Installing an Info File. + (line 6) +* Installing Info in another directory: Other Info Directories. + (line 6) +* Internationalization: Internationalization. + (line 6) +* Introduction to Texinfo: Using Texinfo. (line 6) +* Introduction, as part of file: Software Copying Permissions. + (line 16) +* Invalid characters in node names: Node Line Requirements. + (line 30) +* Invoking macros: Invoking Macros. (line 6) +* Invoking nodes, including in dir file: Installing Dir Entries. + (line 62) +* ISO 639 codes: documentlanguage. (line 22) +* Italic font: Fonts. (line 12) +* Itemization: itemize. (line 6) +* j (dotless j): Inserting Accents. (line 37) +* JPG image format: Image Syntax. (line 37) +* Keyboard input: kbd. (line 6) +* Keys, recommended names: key. (line 19) +* Keyword expansion, preventing: w. (line 28) +* Keywords, indicating: code. (line 10) +* Knuth, Donald: Printed Books. (line 6) +* ky (keystroke) index: Predefined Indices. (line 17) +* Language codes: documentlanguage. (line 22) +* Language, declaring: documentlanguage. (line 6) +* Larger or smaller pages: Cropmarks and Magnification. + (line 24) +* LaTeX, processing with texi2dvi: Format with texi2dvi. + (line 32) +* Legal paper, printing on: pagesizes. (line 16) +* Length of file names: setfilename. (line 26) +* Less cluttered menu entry: Less Cluttered Menu Entry. + (line 6) +* License agreement: Software Copying Permissions. + (line 6) +* License for all-permissive copying: All-permissive Copying License. + (line 6) +* License for verbatim copying: Verbatim Copying License. + (line 6) +* Line breaks <1>: Breaks. (line 6) +* Line breaks: Line Breaks. (line 6) +* Line breaks, preventing: w. (line 6) +* Line length, column widths as fraction of: Multitable Column Widths. + (line 11) +* Line spacing: sp. (line 6) +* Lisp example: lisp. (line 6) +* Lisp examples in smaller fonts: small. (line 6) +* List of @-commands: Command List. (line 6) +* List of floats: listoffloats. (line 6) +* Listing a new Info file: New Info File. (line 6) +* Lists and tables, making: Lists and Tables. (line 6) +* Local variables: Compile-Command. (line 6) +* Local Variables: section, for encoding: documentencoding. (line 26) +* Location of menus: Menu Location. (line 6) +* Looking for badly referenced nodes: Running Info-Validate. + (line 6) +* Lowering and raising sections: Raise/lower sections. + (line 6) +* lpr (DVI print command): Print with lpr. (line 6) +* lpr-d, replacements on MS-DOS/MS-Windows: Print with lpr. (line 27) +* Lynx: Output Formats. (line 26) +* Macro definitions <1>: Defining Macros. (line 6) +* Macro definitions: Sample Function Definition. + (line 6) +* Macro details: Macro Details. (line 6) +* Macro expansion, indicating: expansion. (line 6) +* Macro invocation: Invoking Macros. (line 6) +* Macro names, valid characters in: Defining Macros. (line 16) +* Macron accent: Inserting Accents. (line 17) +* Macros: Defining New Texinfo Commands. + (line 6) +* Macros in definition commands: Def Cmd Template. (line 66) +* Macros, undefining: Defining Macros. (line 56) +* Magnified printing: Cropmarks and Magnification. + (line 24) +* Mailto link: email. (line 10) +* makeinfo: Invoking makeinfo. (line 6) +* makeinfo inside Emacs: makeinfo in Emacs. (line 6) +* makeinfo options: makeinfo options. (line 6) +* Making a printed manual: Hardcopy. (line 6) +* Making a tag table automatically: Tag and Split Files. (line 6) +* Making a tag table manually: Unsplit. (line 26) +* Making cross references: Cross References. (line 6) +* Making line and page breaks: Breaks. (line 6) +* Making lists and tables: Lists and Tables. (line 6) +* Man page output, not supported: Output Formats. (line 78) +* Man page, reference to: uref. (line 20) +* Manual characteristics, printed: Printed Books. (line 6) +* Margins on page, not controllable: pagesizes. (line 20) +* Marking text within a paragraph: Marking Text. (line 6) +* Marking words and phrases: Marking Text. (line 6) +* Masculine ordinal: Inserting Accents. (line 37) +* Master menu: Master Menu Parts. (line 6) +* Mathematical expressions <1>: Raw Formatter Commands. + (line 33) +* Mathematical expressions: math. (line 6) +* Menu description, start: Inserting. (line 94) +* Menu entries with two colons: Less Cluttered Menu Entry. + (line 6) +* Menu example: Menu Example. (line 6) +* Menu location: Menu Location. (line 6) +* Menu parts: Menu Parts. (line 6) +* Menu writing: Writing a Menu. (line 6) +* Menu, master: Master Menu Parts. (line 6) +* Menus: Menus. (line 6) +* Menus generated with indices: Printing Indices & Menus. + (line 6) +* Menus, omitting: makeinfo options. (line 123) +* META key: key. (line 53) +* Meta-syntactic chars for arguments: Optional Arguments. (line 6) +* Methods, object-oriented: Object-Oriented Methods. + (line 6) +* Millimeters: Image Scaling. (line 33) +* Minimal requirements for formatting: Requirements Summary. + (line 6) +* Minimal Texinfo file (requirements): Minimum. (line 6) +* Mismatched HTML cross-reference source and target: HTML Xref Mismatch. + (line 6) +* Mistakes, catching: Catching Mistakes. (line 6) +* Mode, using Texinfo: Texinfo Mode. (line 6) +* Monospace font: Fonts. (line 18) +* Mozilla: Output Formats. (line 26) +* Multiple dashes in source: Conventions. (line 41) +* Multiple spaces: Multiple Spaces. (line 6) +* Multitable column widths: Multitable Column Widths. + (line 6) +* Multitable rows: Multitable Rows. (line 6) +* Must have in Texinfo file: Minimum. (line 6) +* Mutually recursive macros: Defining Macros. (line 26) +* Names for indices: syncodeindex. (line 17) +* Names of index files: Format with tex/texindex. + (line 24) +* Names of macros, valid characters of: Defining Macros. (line 16) +* Names recommended for keys: key. (line 19) +* Naming a `Top' Node in references: Top Node Naming. (line 6) +* NASA, as acronym: acronym. (line 6) +* Navigation bar, in HTML output: HTML Translation. (line 16) +* Navigation links, omitting: makeinfo options. (line 129) +* Need space at page bottom: need. (line 6) +* Nesting conditionals: Conditional Nesting. (line 6) +* New index defining: New Indices. (line 6) +* New Info file, listing it in dir file: New Info File. (line 6) +* New Texinfo commands, defining: Defining New Texinfo Commands. + (line 6) +* Newlines, as blank lines: Conventions. (line 16) +* Next node of Top node: First Node. (line 30) +* Node line requirements: Node Line Requirements. + (line 6) +* Node line writing: Writing a Node. (line 6) +* node name expansion, in HTML cross-references: HTML Xref Node Name Expansion. + (line 6) +* Node name must be unique: Node Line Requirements. + (line 8) +* Node name, should not contain @-commands: Node Line Requirements. + (line 23) +* Node names, choosing: Node Names. (line 6) +* Node names, invalid characters in: Node Line Requirements. + (line 30) +* Node separators, omitting: makeinfo options. (line 123) +* Node, `Top': The Top Node. (line 6) +* Node, defined: node. (line 6) +* Nodes in other Info files: Other Info Files. (line 6) +* Nodes, catching mistakes: Catching Mistakes. (line 6) +* Nodes, checking for badly referenced: Running Info-Validate. + (line 6) +* Non-breakable space, fixed: w. (line 9) +* Non-breakable space, variable: tie. (line 6) +* Not ending a sentence: Not Ending a Sentence. + (line 6) +* Numbering of floats: float. (line 46) +* o: Inserting Accents. (line 37) +* O'Dea, Brendan: Output Formats. (line 88) +* Object-oriented programming: Abstract Objects. (line 6) +* Obtaining TeX: Obtaining TeX. (line 6) +* Occurrences, listing with @occur: Using occur. (line 6) +* OE: Inserting Accents. (line 37) +* oe: Inserting Accents. (line 37) +* Omitting indentation: noindent. (line 6) +* Optional and repeated arguments: Optional Arguments. (line 6) +* Options for makeinfo: makeinfo options. (line 6) +* Ordinals, Romance: Inserting Accents. (line 37) +* Ordinary TeX commands, using: Raw Formatter Commands. + (line 6) +* Other Info files' nodes: Other Info Files. (line 6) +* Outline of file structure, showing it: Showing the Structure. + (line 6) +* Output file splitting: makeinfo options. (line 148) +* Output formats: Output Formats. (line 6) +* Output formats, supporting more: Output Formats. (line 95) +* Overfull hboxes: Overfull hboxes. (line 6) +* Overview of Texinfo: Overview. (line 6) +* Owner of copyright for FSF works: copying. (line 53) +* Page breaks <1>: page. (line 6) +* Page breaks: Breaks. (line 11) +* Page delimiter in Texinfo mode: Showing the Structure. + (line 40) +* Page headings: Headings. (line 6) +* Page numbering: Headings. (line 6) +* Page sizes for books: smallbook. (line 6) +* Page sizes, customized: pagesizes. (line 6) +* page-delimiter: Showing the Structure. + (line 40) +* Pages, starting odd: setchapternewpage. (line 6) +* Paper size, A4: A4 Paper. (line 6) +* Paragraph indentation control: paragraphindent. (line 6) +* Paragraph separator: Conventions. (line 16) +* Paragraph, marking text within: Marking Text. (line 6) +* Parameters to macros: Defining Macros. (line 32) +* Parentheses in nodename: Node Line Requirements. + (line 30) +* Parsing errors: makeinfo in Emacs. (line 26) +* Part of file formatting and printing: Printing. (line 6) +* Parts of a cross reference: Cross Reference Parts. + (line 6) +* Parts of a master menu: Master Menu Parts. (line 6) +* Parts of a menu: Menu Parts. (line 6) +* Patches, contributing: Reporting Bugs. (line 30) +* PDF output <1>: PDF Output. (line 6) +* PDF output: Output Formats. (line 51) +* pdfcolor.tex, installing: Preparing for TeX. (line 24) +* pdftex <1>: Output Formats. (line 51) +* pdftex: PDF Output. (line 6) +* pdftex, and images: Image Syntax. (line 15) +* Period in nodename: Node Line Requirements. + (line 30) +* Periods, inserting: Not Ending a Sentence. + (line 6) +* Permissions text, including: insertcopying. (line 6) +* Permissions, printed: Copyright. (line 6) +* pg (program) index: Predefined Indices. (line 20) +* Picas: Image Scaling. (line 21) +* Pictures, inserting: Images. (line 6) +* Pinard, Franc,ois: History. (line 14) +* Plain TeX: Raw Formatter Commands. + (line 6) +* Plain text output <1>: Output Formats. (line 21) +* Plain text output: makeinfo options. (line 123) +* PNG image format: Image Syntax. (line 37) +* Point, indicating in a buffer: Point Glyph. (line 6) +* Pointer creation with makeinfo: makeinfo Pointer Creation. + (line 6) +* Pointer validation with makeinfo: Pointer Validation. (line 6) +* Pointer validation, suppressing <1>: makeinfo options. (line 156) +* Pointer validation, suppressing: Format with tex/texindex. + (line 84) +* Points (dimension): Image Scaling. (line 18) +* Predefined names for indices: syncodeindex. (line 17) +* Preparing for TeX: Preparing for TeX. (line 6) +* Preventing first paragraph indentation: firstparagraphindent. + (line 6) +* Preventing line and page breaks: Breaks. (line 6) +* Previous node of Top node: First Node. (line 24) +* Print and format in Texinfo mode: Texinfo Mode Printing. + (line 6) +* Print, format from Emacs shell: Within Emacs. (line 6) +* Printed book and manual characteristics: Printed Books. (line 6) +* Printed output, indicating: Print Glyph. (line 6) +* Printed permissions: Copyright. (line 6) +* Printing a region or buffer: Printing. (line 6) +* Printing an index: Printing Indices & Menus. + (line 6) +* Printing cropmarks: Cropmarks and Magnification. + (line 6) +* Printing DVI files, on MS-DOS/MS-Windows: Print with lpr. (line 27) +* Printing hardcopy: Hardcopy. (line 6) +* Problems, catching: Catching Mistakes. (line 6) +* Program names, indicating: command. (line 6) +* Prototype row, column widths defined by: Multitable Column Widths. + (line 22) +* Quotation characters (`'), in source: Conventions. (line 24) +* Quotations: quotation. (line 6) +* Ragged left: flushleft & flushright. + (line 6) +* Ragged right: flushleft & flushright. + (line 6) +* Raising and lowering sections: Raise/lower sections. + (line 6) +* Raw formatter commands: Raw Formatter Commands. + (line 6) +* RCS $Id: GNU Sample Texts. (line 21) +* Recommended names for keys: key. (line 19) +* Rectangle, black in hardcopy: Overfull hboxes. (line 41) +* Recursion, mutual: Defining Macros. (line 26) +* Recursive macro invocations: Defining Macros. (line 44) +* Reference to @-commands: Command List. (line 6) +* References: Cross References. (line 6) +* References using @inforef: inforef. (line 6) +* References using @pxref: pxref. (line 6) +* References using @ref: ref. (line 6) +* References using @xref: xref. (line 6) +* Referring to other Info files: Other Info Files. (line 6) +* Region formatting and printing: Printing. (line 6) +* Region printing in Texinfo mode: Texinfo Mode Printing. + (line 6) +* Reid, Brian: History. (line 24) +* Repeated and optional arguments: Optional Arguments. (line 6) +* Reporting bugs: Reporting Bugs. (line 6) +* Required in Texinfo file: Minimum. (line 6) +* Requirements for formatting: Requirements Summary. + (line 6) +* Requirements for include files: Include Files Requirements. + (line 6) +* Requirements for updating commands: Updating Requirements. + (line 6) +* Reserved words, indicating: code. (line 10) +* Restrictions on node names: Node Line Requirements. + (line 6) +* Result of an expression: result. (line 6) +* ridt.eps: Image Scaling. (line 44) +* Ring accent: Inserting Accents. (line 17) +* Roman font: Fonts. (line 21) +* Romance ordinals: Inserting Accents. (line 37) +* Rounded rectangles, around examples: cartouche. (line 6) +* Rows, of a multitable: Multitable Rows. (line 6) +* Running an Info formatter: Info Formatting. (line 6) +* Running Info-validate: Using Info-validate. (line 6) +* Running macros: Invoking Macros. (line 6) +* Running makeinfo in Emacs: makeinfo in Emacs. (line 6) +* Sample @include file: Sample Include File. (line 6) +* Sample function definition: Sample Function Definition. + (line 6) +* Sample Texinfo file, no comments: Short Sample Texinfo File. + (line 6) +* Sample Texinfo file, with comments: Short Sample. (line 6) +* Sample Texinfo files: Sample Texinfo Files. + (line 6) +* Sample texts, GNU: GNU Sample Texts. (line 6) +* Scaled points: Image Scaling. (line 42) +* Scaling images: Image Scaling. (line 6) +* Schwab, Andreas: History. (line 14) +* Scribe: History. (line 24) +* Sea surges: ref. (line 27) +* Section structure of a file, showing it: Showing the Structure. + (line 6) +* Sections, raising and lowering: Raise/lower sections. + (line 6) +* Sentence ending punctuation: Ending a Sentence. (line 6) +* Sentence non-ending punctuation: Not Ending a Sentence. + (line 6) +* Separate footnote style: Footnote Styles. (line 20) +* SGML-tools output format: Output Formats. (line 95) +* Sharp S: Inserting Accents. (line 37) +* Shell formatting with tex and texindex: Format with tex/texindex. + (line 6) +* Shell printing, on MS-DOS/MS-Windows: Print with lpr. (line 27) +* Shell, format, print from: Within Emacs. (line 6) +* Shell, running makeinfo in: makeinfo in Emacs. (line 6) +* Short captions, for lists of floats: caption shortcaption. + (line 6) +* Short table of contents: Contents. (line 6) +* Showing the section structure of a file: Showing the Structure. + (line 6) +* Showing the structure of a file: Using texinfo-show-structure. + (line 6) +* Shrubbery: ifset ifclear. (line 21) +* Site-wide Texinfo configuration file: Preparing for TeX. (line 27) +* Size of printed book: smallbook. (line 6) +* Slanted typewriter font, for @kbd: kbd. (line 15) +* Small book size: smallbook. (line 6) +* Small caps font: Smallcaps. (line 6) +* Small examples: small. (line 6) +* Software copying permissions: Software Copying Permissions. + (line 6) +* Sorting indices: Hardcopy. (line 6) +* Source file format: Using Texinfo. (line 19) +* Source files, characters used: Conventions. (line 9) +* Space, inserting horizontal: Multiple Spaces. (line 6) +* Space, inserting vertical: sp. (line 6) +* Spaces in macros: Defining Macros. (line 40) +* Spaces in node name: Node Line Requirements. + (line 44) +* Spaces, in menus: Writing a Menu. (line 25) +* Spacing, inserting: Inserting Space. (line 6) +* Special characters, inserting: Atsign Braces Comma. (line 6) +* Special displays: Special Displays. (line 6) +* Special insertions: Insertions. (line 6) +* Special typesetting commands: Dots Bullets. (line 6) +* Specifying index entries: Indexing Commands. (line 6) +* Split HTML output: HTML Splitting. (line 6) +* Splitting an Info file manually: Splitting. (line 6) +* Splitting of output files: makeinfo options. (line 148) +* ss: Inserting Accents. (line 37) +* Stallman, Richard M.: History. (line 6) +* Start of header line: Start of Header. (line 6) +* Starting chapters: setchapternewpage. (line 6) +* Structure of a file, showing it: Showing the Structure. + (line 6) +* Structure, catching mistakes in: Catching Mistakes. (line 6) +* Structuring of chapters: Structuring. (line 6) +* Subsection-like commands: unnumberedsubsec appendixsubsec subheading. + (line 6) +* Subsub commands: subsubsection. (line 6) +* Suggestions for Texinfo, making: Reporting Bugs. (line 6) +* Summary of document: documentdescription. (line 6) +* Suppressing first paragraph indentation: firstparagraphindent. + (line 6) +* Suppressing indentation: noindent. (line 6) +* Syntactic conventions: Conventions. (line 6) +* Syntactic tokens, indicating: code. (line 6) +* Syntax, of @-commands: Command Syntax. (line 6) +* Syntax, optional & repeated arguments: Optional Arguments. (line 6) +* Table of contents: Contents. (line 6) +* Table of contents, after title page: Contents. (line 51) +* Table of contents, for floats: listoffloats. (line 6) +* Tables and lists, making: Lists and Tables. (line 6) +* Tables with indexes: ftable vtable. (line 6) +* Tables, making multi-column: Multi-column Tables. (line 6) +* Tables, making two-column: Two-column Tables. (line 6) +* Tabs; don't use!: Conventions. (line 51) +* Tag table, making automatically: Tag and Split Files. (line 6) +* Tag table, making manually: Unsplit. (line 26) +* Targets for cross-references, arbitrary: anchor. (line 6) +* Template for a definition: Def Cmd Template. (line 6) +* TeX commands, using ordinary: Raw Formatter Commands. + (line 6) +* TeX index sorting: Hardcopy. (line 6) +* TeX input initialization: Preparing for TeX. (line 6) +* TeX, how to obtain: Obtaining TeX. (line 6) +* texi2dvi: Format with tex/texindex. + (line 76) +* texi2dvi (shell script): Format with texi2dvi. + (line 6) +* texi2roff, unsupported software: Printed Books. (line 59) +* texindex <1>: Hardcopy. (line 6) +* texindex: Format with tex/texindex. + (line 16) +* Texinfo commands, defining new: Defining New Texinfo Commands. + (line 6) +* Texinfo file beginning: Beginning a File. (line 6) +* Texinfo file ending: Ending a File. (line 6) +* Texinfo file header: Texinfo File Header. (line 6) +* Texinfo file minimum: Minimum. (line 6) +* Texinfo file section structure, showing it: Showing the Structure. + (line 6) +* Texinfo history: History. (line 24) +* Texinfo mode: Texinfo Mode. (line 6) +* Texinfo overview: Overview. (line 6) +* Texinfo printed book characteristics: Printed Books. (line 6) +* Texinfo requires @setfilename: setfilename. (line 6) +* Texinfo, introduction to: Using Texinfo. (line 6) +* texinfo.cnf: setfilename. (line 43) +* texinfo.cnf installation: Preparing for TeX. (line 27) +* texinfo.dtd: Output Formats. (line 60) +* texinfo.tex, installing: Preparing for TeX. (line 13) +* TEXINFO_OUTPUT_FORMAT: makeinfo options. (line 234) +* TEXINPUTS: Preparing for TeX. (line 37) +* Text width and height: pagesizes. (line 6) +* Text, conditionally visible: Conditionals. (line 6) +* Text, marking up: Marking Text. (line 6) +* Thin space between number, dimension: dmn. (line 6) +* Tie-after accent: Inserting Accents. (line 17) +* Tied space: tie. (line 6) +* Tilde accent: Inserting Accents. (line 17) +* time-stamp.el: GNU Sample Texts. (line 32) +* Tips: Tips. (line 8) +* Title page: titlepage. (line 6) +* Title page, bastard: titlepage. (line 46) +* Title page, for plain text: Titlepage & Copyright Page. + (line 16) +* Titlepage end starts headings: end titlepage. (line 6) +* Top node: The Top Node. (line 6) +* Top node example: Top Node Example. (line 6) +* Top node is first: First Node. (line 6) +* Top node naming for references: Top Node Naming. (line 6) +* tp (data type) index: Predefined Indices. (line 23) +* Tree structuring: Tree Structuring. (line 6) +* Two `First' Lines for @deffn: deffnx. (line 6) +* Two letter names for indices: syncodeindex. (line 17) +* Two named items for @table: itemx. (line 6) +* Two part menu entry: Less Cluttered Menu Entry. + (line 6) +* txi-CC.tex: documentlanguage. (line 13) +* Typesetting commands for dots, etc.: Dots Bullets. (line 6) +* Typewriter font: Fonts. (line 18) +* Ugly black rectangles in hardcopy: Overfull hboxes. (line 41) +* Umlaut accent: Inserting Accents. (line 17) +* Unbreakable space, fixed: w. (line 9) +* Unbreakable space, variable: tie. (line 6) +* Uncluttered menu entry: Less Cluttered Menu Entry. + (line 6) +* Undefining macros: Defining Macros. (line 56) +* Underbar accent: Inserting Accents. (line 17) +* Underdot accent: Inserting Accents. (line 17) +* Unicode quotation characters: Conventions. (line 35) +* Uniform resource locator, indicating: indicateurl. (line 6) +* Uniform resource locator, referring to: uref. (line 6) +* Unique nodename requirement: Node Line Requirements. + (line 8) +* Unnumbered float, creating: float. (line 39) +* Unprocessed text: Comments. (line 19) +* Unsplit file creation: Unsplit. (line 6) +* Up node of Top node: First Node. (line 13) +* UPDATED Automake variable: GNU Sample Texts. (line 32) +* Updating nodes and menus: Updating Nodes and Menus. + (line 6) +* Updating requirements: Updating Requirements. + (line 6) +* URI syntax for Info: Info Files. (line 78) +* URL, indicating: indicateurl. (line 6) +* URL, referring to: uref. (line 6) +* Usage tips: Tips. (line 8) +* User input: kbd. (line 15) +* User options, marking: Variables Commands. (line 57) +* User-defined Texinfo commands: Defining New Texinfo Commands. + (line 6) +* Using Texinfo in general: Using Texinfo. (line 6) +* Validating a large file: Using Info-validate. (line 6) +* Validation of pointers: Pointer Validation. (line 6) +* Value of an expression, indicating: result. (line 6) +* Variables, object-oriented: Object-Oriented Variables. + (line 6) +* Verbatim copying license: Verbatim Copying License. + (line 6) +* Verbatim environment: verbatim. (line 6) +* Verbatim in-line text: verb. (line 6) +* Verbatim, include file: verbatiminclude. (line 6) +* VERSION Automake variable: GNU Sample Texts. (line 32) +* Version control keywords, preventing expansion of: w. (line 28) +* Version number, for install-info: Invoking install-info. + (line 84) +* Vertically holding text together: group. (line 6) +* Visibility of conditional text: Conditionals. (line 6) +* vr (variable) index: Predefined Indices. (line 27) +* W3 consortium: Output Formats. (line 26) +* Weinberg, Zack: History. (line 14) +* Weisshaus, Melissa: History. (line 14) +* White space in node name: Node Line Requirements. + (line 44) +* White space, excessive: Breaks. (line 11) +* Whitespace in macros: Defining Macros. (line 40) +* Whitespace, collapsed around continuations: Def Cmd Continuation Lines. + (line 31) +* Whitespace, inserting: Multiple Spaces. (line 6) +* Width of images: Image Scaling. (line 6) +* Width of text area: pagesizes. (line 6) +* Widths, defining multitable column: Multitable Column Widths. + (line 6) +* Wildcards: Format with tex/texindex. + (line 32) +* Words and phrases, marking them: Marking Text. (line 6) +* Writing a menu: Writing a Menu. (line 6) +* Writing an @node line: Writing a Node. (line 6) +* Writing index entries: Indexing Commands. (line 27) +* xdvi: Output Formats. (line 36) +* XML output: Output Formats. (line 60) +* XML, including raw: Raw Formatter Commands. + (line 6) +* XPM image format: Image Syntax. (line 23) +* Years, in copyright line: copying. (line 48) +* Zaretskii, Eli: History. (line 14) +* Zuhn, David D.: History. (line 14) + + + +Tag Table: +Node: Top1485 +Node: Copying Conditions26788 +Node: Overview28855 +Ref: Overview-Footnote-130234 +Node: Reporting Bugs30691 +Node: Using Texinfo32215 +Node: Output Formats33804 +Node: Info Files38893 +Ref: Info Files-Footnote-143301 +Node: Printed Books43480 +Ref: Printed Books-Footnote-146309 +Node: Formatting Commands46643 +Ref: Formatting Commands-Footnote-149496 +Node: Conventions50104 +Node: Comments53438 +Node: Minimum55068 +Node: Six Parts57631 +Node: Short Sample59285 +Node: History63419 +Node: Texinfo Mode65471 +Node: Texinfo Mode Overview66848 +Node: Emacs Editing67618 +Node: Inserting69762 +Node: Showing the Structure74049 +Node: Updating Nodes and Menus76370 +Node: Updating Commands77449 +Node: Updating Requirements83453 +Node: Other Updating Commands85842 +Node: Info Formatting89108 +Node: Printing90374 +Node: Texinfo Mode Summary92682 +Node: Beginning a File97376 +Node: Sample Beginning98795 +Node: Texinfo File Header100392 +Node: First Line101856 +Node: Start of Header102887 +Node: setfilename103878 +Node: settitle106383 +Node: End of Header108644 +Node: Document Permissions108928 +Node: copying109559 +Node: insertcopying112113 +Node: Titlepage & Copyright Page113648 +Node: titlepage115327 +Ref: titlepage-Footnote-1117834 +Node: titlefont center sp118120 +Node: title subtitle author119802 +Node: Copyright122576 +Node: end titlepage124105 +Node: headings on off125759 +Node: Contents127829 +Node: The Top Node131059 +Node: Top Node Example132363 +Node: Master Menu Parts132748 +Node: Global Document Commands134558 +Node: documentdescription135314 +Node: setchapternewpage136130 +Node: paragraphindent139016 +Node: firstparagraphindent140290 +Node: exampleindent141558 +Node: Software Copying Permissions142582 +Node: Ending a File143640 +Node: Printing Indices & Menus144215 +Node: File End147315 +Node: Structuring148001 +Node: Tree Structuring149660 +Node: Structuring Command Types151079 +Node: makeinfo top153574 +Node: chapter154365 +Node: unnumbered & appendix155395 +Node: majorheading & chapheading156246 +Node: section157073 +Node: unnumberedsec appendixsec heading157843 +Node: subsection158840 +Node: unnumberedsubsec appendixsubsec subheading159418 +Node: subsubsection160379 +Node: Raise/lower sections161937 +Node: Nodes164113 +Node: Two Paths165323 +Node: Node Menu Illustration166659 +Node: node170467 +Node: Node Names173226 +Node: Writing a Node174610 +Node: Node Line Tips176656 +Node: Node Line Requirements177460 +Node: First Node179617 +Node: makeinfo top command181435 +Node: makeinfo Pointer Creation182716 +Node: anchor184345 +Node: Menus185821 +Node: Menu Location186887 +Node: Writing a Menu188518 +Node: Menu Parts189581 +Node: Less Cluttered Menu Entry190745 +Node: Menu Example191376 +Node: Other Info Files192886 +Node: Cross References194738 +Node: References195709 +Node: Cross Reference Commands197481 +Node: Cross Reference Parts198546 +Node: xref201402 +Node: Reference Syntax202207 +Node: One Argument203844 +Node: Two Arguments204871 +Node: Three Arguments205996 +Node: Four and Five Arguments208397 +Node: Top Node Naming210819 +Node: ref211835 +Node: pxref213256 +Node: inforef215624 +Node: uref216935 +Node: Marking Text219685 +Node: Indicating220338 +Node: Useful Highlighting222478 +Node: code224101 +Node: kbd227343 +Node: key229563 +Node: samp230907 +Node: verb232388 +Node: var233377 +Node: env235351 +Node: file235862 +Node: command236483 +Node: option237189 +Node: dfn237709 +Node: cite238633 +Node: acronym239101 +Node: indicateurl240384 +Node: email241082 +Node: Emphasis241938 +Node: emph & strong242775 +Node: Smallcaps243990 +Node: Fonts245336 +Node: Quotations and Examples246492 +Node: Block Enclosing Commands248177 +Node: quotation250364 +Node: example252002 +Node: verbatim254321 +Node: verbatiminclude256091 +Node: lisp257085 +Ref: lisp-Footnote-1257824 +Node: small257942 +Node: display259473 +Node: format260275 +Node: exdent260921 +Node: flushleft & flushright262011 +Node: noindent263286 +Node: indent265150 +Node: cartouche266194 +Node: Lists and Tables267390 +Node: Introducing Lists268079 +Node: itemize269741 +Node: enumerate272019 +Node: Two-column Tables274517 +Node: table275214 +Node: ftable vtable277892 +Node: itemx278989 +Node: Multi-column Tables280175 +Node: Multitable Column Widths280884 +Node: Multitable Rows282366 +Node: Special Displays284419 +Node: Floats285208 +Node: float286105 +Ref: fig:ex1286779 +Node: caption shortcaption288050 +Node: listoffloats289361 +Node: Images290764 +Node: Image Syntax291199 +Node: Image Scaling293804 +Node: Footnotes295528 +Ref: Footnotes-Footnote-1296094 +Node: Footnote Commands296374 +Ref: Footnote Commands-Footnote-1298251 +Node: Footnote Styles298287 +Node: Indices300902 +Node: Index Entries302116 +Node: Predefined Indices303241 +Node: Indexing Commands305350 +Node: Combining Indices308063 +Node: syncodeindex309416 +Node: synindex311064 +Node: New Indices311601 +Node: Insertions313370 +Node: Atsign Braces Comma314497 +Node: Inserting an Atsign315065 +Node: Inserting Braces315337 +Node: Inserting a Comma315756 +Node: Inserting Space316790 +Node: Not Ending a Sentence317307 +Node: Ending a Sentence318919 +Node: Multiple Spaces319943 +Node: dmn321234 +Node: Inserting Accents322459 +Node: Dots Bullets324462 +Node: dots325278 +Node: bullet325901 +Node: TeX and copyright326310 +Node: tex326986 +Node: copyright symbol327803 +Node: registered symbol328113 +Node: pounds328435 +Node: minus328806 +Node: math329725 +Node: Glyphs331073 +Node: Glyphs Summary332179 +Node: result332804 +Node: expansion333314 +Node: Print Glyph334276 +Node: Error Glyph335168 +Node: Equivalence336022 +Node: Point Glyph336772 +Node: Breaks338343 +Node: Break Commands339827 +Node: Line Breaks340723 +Node: - and hyphenation341697 +Node: w342963 +Node: tie344071 +Node: sp344975 +Node: page345394 +Node: group345779 +Node: need347531 +Node: Definition Commands348269 +Node: Def Cmd Template349920 +Node: Def Cmd Continuation Lines352645 +Node: Optional Arguments354456 +Node: deffnx356063 +Node: Def Cmds in Detail357006 +Node: Functions Commands358124 +Node: Variables Commands361026 +Node: Typed Functions363169 +Node: Typed Variables366674 +Node: Data Types368395 +Node: Abstract Objects369686 +Node: Object-Oriented Variables370293 +Node: Object-Oriented Methods372926 +Node: Def Cmd Conventions376737 +Node: Sample Function Definition377308 +Node: Conditionals380144 +Node: Conditional Commands381338 +Node: Conditional Not Commands383229 +Node: Raw Formatter Commands384513 +Node: set clear value387141 +Node: set value388355 +Node: ifset ifclear389957 +Node: value Example392088 +Node: Conditional Nesting394105 +Node: Internationalization395646 +Node: documentlanguage396182 +Node: documentencoding400369 +Node: Defining New Texinfo Commands401861 +Node: Defining Macros403039 +Node: Invoking Macros405417 +Node: Macro Details407218 +Node: alias409796 +Node: definfoenclose411220 +Node: Hardcopy413968 +Node: Use TeX416044 +Node: Format with tex/texindex416677 +Node: Format with texi2dvi421043 +Node: Print with lpr422614 +Node: Within Emacs424773 +Node: Texinfo Mode Printing425664 +Node: Compile-Command429333 +Node: Requirements Summary430215 +Node: Preparing for TeX431555 +Ref: Preparing for TeX-Footnote-1435308 +Node: Overfull hboxes435407 +Node: smallbook437566 +Node: A4 Paper438772 +Node: pagesizes439708 +Node: Cropmarks and Magnification440902 +Node: PDF Output442971 +Node: Obtaining TeX444127 +Node: Creating and Installing Info Files445104 +Node: Creating an Info File445498 +Node: makeinfo advantages446726 +Node: Invoking makeinfo447662 +Node: makeinfo options448228 +Node: Pointer Validation457295 +Node: makeinfo in Emacs460427 +Node: texinfo-format commands462910 +Node: Batch Formatting464197 +Node: Tag and Split Files465409 +Node: Installing an Info File468806 +Node: Directory File469645 +Node: New Info File471444 +Ref: New Info File-Footnote-1472558 +Node: Other Info Directories472639 +Ref: Other Info Directories-Footnote-1476914 +Ref: Other Info Directories-Footnote-2477041 +Node: Installing Dir Entries477102 +Node: Invoking install-info479764 +Node: Generating HTML482661 +Node: HTML Translation483442 +Node: HTML Splitting484824 +Node: HTML CSS486507 +Node: HTML Xref489996 +Node: HTML Xref Link Basics491203 +Node: HTML Xref Node Name Expansion494026 +Node: HTML Xref Command Expansion496579 +Node: HTML Xref 8-bit Character Expansion499584 +Node: HTML Xref Mismatch500818 +Node: Command List502636 +Node: Command Syntax545467 +Node: Tips548476 +Node: Sample Texinfo Files559473 +Node: Short Sample Texinfo File559939 +Node: GNU Sample Texts561534 +Node: Verbatim Copying License566809 +Node: All-permissive Copying License567911 +Node: Include Files568941 +Node: Using Include Files570052 +Node: texinfo-multiple-files-update572604 +Node: Include Files Requirements574972 +Node: Sample Include File576226 +Node: Include Files Evolution577463 +Node: Headings579443 +Node: Headings Introduced580100 +Node: Heading Format581977 +Node: Heading Choice584421 +Node: Custom Headings585799 +Node: Catching Mistakes589906 +Node: makeinfo Preferred591213 +Node: Debugging with Info592098 +Node: Debugging with TeX595442 +Node: Using texinfo-show-structure599705 +Node: Using occur602795 +Node: Running Info-Validate604336 +Node: Using Info-validate605403 +Node: Unsplit607213 +Node: Tagifying608272 +Node: Splitting609134 +Node: Copying This Manual610762 +Node: GNU Free Documentation License611025 +Node: Command and Variable Index633432 +Node: Concept Index662680 + +End Tag Table diff --git a/Master/texmf/doc/info/web2c.info b/Master/texmf/doc/info/web2c.info new file mode 100644 index 00000000000..2742d1abb9d --- /dev/null +++ b/Master/texmf/doc/info/web2c.info @@ -0,0 +1,4739 @@ +This is web2c.info, produced by makeinfo version 4.8 from web2c.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* Web2c: (web2c). TeX, Metafont, and companion programs. +* bibtex: (web2c)bibtex invocation. Maintaining bibliographies. +* dmp: (web2c)dmp invocation. Troff->MPX (MetaPost pictures). +* dvicopy: (web2c)dvicopy invocation. Virtual font expansion +* dvitomp: (web2c)dvitomp invocation. DVI to MPX (MetaPost pictures). +* dvitype: (web2c)dvitype invocation. DVI to human-readable text. +* gftodvi: (web2c)gftodvi invocation. Generic font proofsheets. +* gftopk: (web2c)gftopk invocation. Generic to packed fonts. +* gftype: (web2c)gftype invocation. GF to human-readable text. +* makempx: (web2c)makempx invocation. MetaPost label typesetting. +* mf: (web2c)mf invocation. Creating typeface families. +* mft: (web2c)mft invocation. Prettyprinting Metafont source. +* mltex: (web2c)MLTeX. Multi-lingual TeX. +* mpost: (web2c)mpost invocation. Creating technical diagrams. +* mpto: (web2c)mpto invocation. MetaPost label extraction. +* newer: (web2c)newer invocation. Compare modification times. +* patgen: (web2c)patgen invocation. Creating hyphenation patterns. +* pktogf: (web2c)pktogf invocation. Packed to generic fonts. +* pktype: (web2c)pktype invocation. PK to human-readable text. +* pltotf: (web2c)pltotf invocation. Property list to TFM. +* pooltype: (web2c)pooltype invocation. Display WEB pool files. +* tangle: (web2c)tangle invocation. WEB to Pascal. +* tex: (web2c)tex invocation. Typesetting. +* tftopl: (web2c)tftopl invocation. TFM -> property list. +* vftovp: (web2c)vftovp invocation. Virtual font -> virtual pl. +* vptovf: (web2c)vptovf invocation. Virtual pl -> virtual font. +* weave: (web2c)weave invocation. WEB to TeX. +END-INFO-DIR-ENTRY + + This file documents the installation and use of the programs in +Web2c, an implementation of Donald Knuth's TeX system. + + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 +Karl Berry & Olaf Weber. + + Permission is granted to make and distribute verbatim copies of this +manual provided the copyright notice and this permission notice are +preserved on all copies. + + Permission is granted to copy and distribute modified versions of +this manual under the conditions for verbatim copying, provided that the +entire resulting derived work is distributed under the terms of a +permission notice identical to this one. + + Permission is granted to copy and distribute translations of this +manual into another language, under the above conditions for modified +versions, except that this permission notice may be stated in a +translation + + +File: web2c.info, Node: Top, Next: Introduction, Up: (dir) + +Web2c +***** + +This document describes how to install and use the programs in the Web2c +implementation of the TeX system, especially for Unix systems. It +corresponds to Web2c version 7.5.5, released in June 2005. + +* Menu: + +* Introduction:: A brief introduction. +* Installation:: How to compile and install Web2c. +* Commonalities:: Option syntax, standard options, memory dumps. +* TeX:: Typesetting. +* Metafont:: Typeface design. +* MetaPost:: Technical illustrations. +* BibTeX:: Reusable bibliographies. +* WEB:: Literate programming. +* DVI utilities:: DVI expansion. +* Font utilities:: Font format conversion. +* Legalisms:: Blah blah blah. +* References:: Books and such. +* Index:: General index. + + +File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top + +1 Introduction +************** + +This manual corresponds to version 7.5.5 of Web2c, released in +June 2005. + + "Web2c" is the name of a TeX implementation, originally for Unix, +but now also running under DOS, Amiga, and other operating systems. By +"TeX implementation", we mean all of the standard programs developed by +the Stanford TeX project directed by Donald E. Knuth: Metafont, +DVItype, GFtoDVI, BibTeX, Tangle, etc., as well as TeX itself. Other +programs are also included: DVIcopy, written by Peter Breitenlohner, +MetaPost and its utilities (derived from Metafont), by John Hobby, etc. + + General strategy: Web2c works, as its name implies, by translating +the WEB source in which TeX is written into C source code. Its output is +not self-contained, however; it makes extensive use of many macros and +functions in a library (the `web2c/lib' directory in the sources). +Therefore, it will not work without change on an arbitrary WEB program. + + Availability: All of Web2c is freely available--"free" both in the +sense of no cost (free ice cream) and of having the source code to +modify and/or redistribute (free speech). *Note unixtex.ftp: +(kpathsea)unixtex.ftp, for the practical details of how to obtain Web2c. + + Different parts of the Web2c distribution have different licensing +terms, however, reflecting the different circumstances of their +creation; consult each source file for exact details. The main +practical implication for redistributors of Web2c is that the +executables are covered by the GNU General Public License, and +therefore anyone who gets a binary distribution must also get the +sources, as explained by the terms of the GPL (*note Copying: +(kpathsea)Copying.). The GPL covers the Web2c executables, including +`tex', because the Free Software Foundation sponsored the initial +development of the Kpathsea library that Web2c uses. The basic source +files from Stanford, however, have their own copyright terms or are in +the public domain, and are not covered by the GPL. + + History: Tomas Rokicki originated the TeX-to-C system in 1987, +working from the first change files for TeX under Unix, which were done +primarily by Howard Trickey and Pavel Curtis. Tim Morgan then took over +development and maintenance for a number of years; the name changed to +Web-to-C somewhere in there. In 1990, Karl Berry became the +maintainer. He made many changes to the original sources, and started +using the shorter name Web2c. In 1997, Olaf Weber took over. Dozens of +other people have contributed; their names are listed in the +`ChangeLog' files. + + Other acknowledgements: The University of Massachusetts at Boston +(particularly Rick Martin and Bob Morris) has provided computers and ftp +access to me for many years. Richard Stallman at the Free Software +Foundation employed me while I wrote the original path searching library +(for the GNU font utilities). (rms also gave us Emacs, GDB, and GCC, +without which I cannot imagine developing Web2c.) And, of course, TeX +would not exist in the first place without Donald E. Knuth. + + Further reading: *Note References::. + + +File: web2c.info, Node: Installation, Next: Commonalities, Prev: Introduction, Up: Top + +2 Installation +************** + +(A copy of this chapter is in the distribution file `web2c/INSTALL'.) + +Installing Web2c is mostly the same as installing any other +Kpathsea-using program. Therefore, for the basic steps involved, see +*Note Installation: (kpathsea)Installation. (A copy is in the file +`kpathsea/INSTALL'.) + + One peculiarity to Web2c is that the source distribution comes in two +files: `web.tar.gz' and `web2c.tar.gz'. You must retrieve and unpack +them both. (We have two because the former archive contains the very +large and seldom-changing original WEB source files.) *Note +unixtex.ftp: (kpathsea)unixtex.ftp. + + Another peculiarity is the MetaPost program. Although it has been +installed previously as `mp', as of Web2c 7.0 the installed name is now +`mpost', to avoid conflict with the `mp' program that does +prettyprinting. This approach was recommended by the MetaPost author, +John Hobby. If you as the TeX administrator wish to make it available +under its shorter name as well, you will have to set up a link or some +such yourself. And of course individual users can do the same. + + For solutions to common installation problems and information on how +to report a bug, see the file `kpathsea/BUGS' (*note Bugs: +(kpathsea)Bugs.). See also the Web2c home page, +`http://www.tug.org/web2c'. + + Points worth repeating: + + * Before starting the standard compilation and installation you must + install the basic fonts, macros, and other library files. *Note + Installation: (kpathsea)Installation. + + * If you do not wish to use the standard file locations, see *Note + Changing search paths: (kpathsea)Changing search paths. + + * Some Web2c features are enabled or disabled at `configure' time, + as described in the first section below. + + +* Menu: + +* configure options:: Especially --with and --enable. +* Compile-time options:: Unusual -D's. +* Additional targets:: Breaking down the task. +* Triptrap:: Running the torture tests. +* Runtime options:: Array sizes and the like. + + +File: web2c.info, Node: configure options, Next: Compile-time options, Up: Installation + +2.1 `configure' options +======================= + +This section gives pointers to descriptions of the `--with' and +`--enable' `configure' arguments that Web2c accepts. Some are specific +to Web2c, others are generic to all Kpathsea-using programs. + + For a list of all the options `configure' accepts, run `configure +--help'. The generic options are listed first, and the +package-specific options come last. + + For a description of the generic options (which mainly allow you to +specify installation directories) and basic `configure' usage, see +*Note Running `configure' scripts: (autoconf)Invoking configure, a copy +is in the file `kpathsea/CONFIGURE'. + +`--disable-dump-share' + Do not make fmt/base/mem files sharable across different endian + architectures. *Note Hardware and memory dumps::. + +`--without-maketexmf-default' +`--without-maketexpk-default' +`--without-maketextfm-default' +`--with-maketextex-default' + Enable or disable the dynamic generation programs. *Note mktex + configuration: (kpathsea)mktex configuration. The defaults are + the inverse of the options, i.e., everything is enabled except + `mktextex'. + +`--enable-shared' + Build Kpathsea as a shared library. *Note Shared library: + (kpathsea)Shared library. + +`--with-editor=CMD' + Change the default editor invoked by the `e' interactive command. + *Note Editor invocation::. + +`--with-epsfwin' +`--with-hp2627win' +`--with-mftalkwin' +`--with-nextwin' +`--with-regiswin' +`--with-suntoolswin' +`--with-tektronixwin' +`--with-unitermwin' +`--with-x' +`--with-x-toolkit=KIT' +`--with-x11win' +`--with-x11' + Define Metafont graphics support; by default, no graphics support + is enabled. *Note Online Metafont graphics::. + +`--x-includes=DIR' +`--x-libraries=DIR' + Define the locations of the X11 include files and libraries; by + default, `configure' does its best to guess). *Note Optional + Features: (autoconf)Optional Features. A copy is in + `kpathsea/CONFIGURE'. + + +File: web2c.info, Node: Compile-time options, Next: Additional targets, Prev: configure options, Up: Installation + +2.2 Compile-time options +======================== + +In addition to the `configure' options listed in the previous section, +there are a few things that can be affected at compile-time with C +definitions, rather than with `configure'. Using any of these is +unusual. + + To specify extra compiler flags (`-DNAME' in this case), the +simplest thing to do is: + make XCFLAGS="CCOPTIONS" + You can also set the `CFLAGS' environment variable before running +`configure'. *Note configure environment: (kpathsea)configure +environment. + + Anyway, here are the possibilities: + +`-DFIXPT' +`-DNO_MF_ASM' + Use the original WEB fixed-point routines for Metafont and MetaPost + arithmetic calculations regarding fractions. By default, + assembly-language routines are used on x86 hardware with GNU C + (unless `NO_MF_ASM' is defined), and floating-point routines are + used otherwise. + +`-DIPC_DEBUG' + Report on various interprocess communication activities. *Note + IPC and TeX: IPC and TeX. + + +File: web2c.info, Node: Additional targets, Next: Triptrap, Prev: Compile-time options, Up: Installation + +2.3 Additional targets +====================== + +Web2c has several Make targets besides the standard ones. You can +invoke these either in the top level directory of the source +distribution (the one containing `kpathsea/' and `web2c/'), or in the +`web2c/' directory. + +`c-sources' + Make only the C files, translated from the Web sources, presumably + because you want to take them to a non-Unix machine. + +`formats' +`install-formats' + Make or install all the memory dumps (*note Memory dumps::). By + default, the standard plain formats plus `latex.fmt' are made. You + can add other formats by redefining the `fmts', `bases', and + `mems' variables. See the top of `web2c/Makefile' for the + possibilities. + +`fmts' +`install-fmts' + Make or install the TeX `.fmt' files. *Note Initial TeX::. + +`bases' +`install-bases' + Make or install the Metafont `.base' files. *Note Initial + Metafont::. + +`mems' +`install-mems' + Make or install the MetaPost `.mem' files. *Note Initial + MetaPost::. + +`triptrap' +`trip' +`trap' +`mptrap' + To run the torture tests for TeX, Metafont, and MetaPost + (respectively). See the next section. + + + +File: web2c.info, Node: Triptrap, Next: Runtime options, Prev: Additional targets, Up: Installation + +2.4 Trip, trap, and mptrap: Torture tests +========================================= + +To validate your TeX, Metafont, and MetaPost executables, run `make +triptrap'. This runs the trip, trap, and mptrap "torture tests". See +the files `triptrap/tripman.tex', `triptrap/trapman.tex', and +`triptrap/mptrap.readme' for detailed information and background on the +tests. + + The differences between your executables' behavior and the standard +values will show up on your terminal. The usual differences (these are +all acceptable) are: + + * string usage and table sizes; + + * glue set ratios; + + * `down4', `right4', and `y4' commands in DVItype output; + + * dates and times. + +Any other differences are trouble. The most common culprit in the past +has been compiler bugs, especially when optimizing. *Note TeX or +Metafont failing: (kpathsea)TeX or Metafont failing. + + The files `trip.diffs', `mftrap.diffs', and `mptrap.diffs' in the +`triptrap' directory show the standard diffs against the original +output. If you diff your diffs against these files, you should come up +clean. For example + make trip >&mytrip.diffs + diff triptrap/trip.diffs mytrip.diffs + + To run the tests separately, use the targets `trip', `trap', and +`mptrap'. + + To run simple tests for all the programs as well as the torture +tests, run `make check'. You can compare the output to the distributed +file `tests/check.log' if you like. + + +File: web2c.info, Node: Runtime options, Prev: Triptrap, Up: Installation + +2.5 Runtime options +=================== + +Besides the configure- and compile-time options described in the +previous sections, you can control a number of parameters (in +particular, array sizes) in the `texmf.cnf' runtime file read by +Kpathsea (*note Config files: (kpathsea)Config files.). + + Rather than exhaustively listing them here, please see the last +section of the distributed `kpathsea/texmf.cnf'. Some of the more +interesting values: + +`main_memory' + Total words of memory available, for TeX, Metafont, and MetaPost. + Must remake the format file after changing. + +`extra_mem_bot' + Extra space for "large" TeX data structures: boxes, glue, + breakpoints, et al. If you use PiCTeX, you may well want to set + this. + +`font_mem_size' + Words of font info available for TeX; this is approximately the + total size of all TFM files read. + +`hash_extra' + Additional space for the hash table of control sequence names. + Approximately 10,000 control sequences can be stored in the main + hash table; if you have a large book with numerous + cross-references, this might not be enough, and thus you will want + to set `hash_extra'. + + + Of course, ideally all arrays would be dynamically expanded as +necessary, so the only limiting factor would be the amount of swap space +available. Unfortunately, implementing this is extremely difficult, as +the fixed size of arrays is assumed in many places throughout the source +code. These runtime limits are a practical compromise between the +compile-time limits in previous versions, and truly dynamic arrays. (On +the other hand, the Web2c BibTeX implementation does do dynamic +reallocation of some arrays.) + + +File: web2c.info, Node: Commonalities, Next: TeX, Prev: Installation, Up: Top + +3 Commonalities +*************** + +Many aspects of the TeX system are the same among more than one +program, so we describe all those pieces together, here. + +* Menu: + +* Option conventions:: -- or -, = or ` ' for values. +* Common options:: --help --version --verbose, and TeX/MF/MP options. +* Path searching:: Features of the common path searching library. +* Output file location:: TEXMFOUTPUT allows output in places other than `.'. +* Three programs:: TeX, Metafont, and MetaPost have a lot in common. + + +File: web2c.info, Node: Option conventions, Next: Common options, Up: Commonalities + +3.1 Option conventions +====================== + +To provide a clean and consistent behavior, we chose to have all these +programs use the GNU function `getopt_long_only' to parse command +lines. However, we do use in a restricted mode, where all the options +have to come before the rest of the arguments. + + As a result, you can: + * use `-' or `--' to start an option name; + + * use any unambiguous abbreviation for an option name; + + * separate option names and values with either `=' or one or more + spaces; + + * use filenames that would otherwise look like options by putting + them after an option `--'. + + By convention, non-option arguments, if specified, generally define +the name of an input file, as documented for each program. + + If a particular option with a value is given more than once, it is +the last value that counts. + + For example, the following command line specifies the options `foo', +`bar', and `verbose'; gives the value `baz' to the `abc' option, and +the value `xyz' to the `quux' option; and specifies the filename +`-myfile-'. + + -foo --bar -verb -abc=baz -quux karl --quux xyz -- -myfile- + + +File: web2c.info, Node: Common options, Next: Path searching, Prev: Option conventions, Up: Commonalities + +3.2 Common options +================== + +All of these programs accept the standard GNU `--help' and `--version' +options, and several programs accept `--verbose'. Rather than writing +identical descriptions for every program, they are described here. + +`--help' + Print a usage message listing basic usage and all available + options to standard output, then exit successfully. + +`--verbose' + Print progress reports to standard output. + +`--version' + Print the version number to standard output, then exit + successfully. + + TeX, Metafont, and MetaPost have a number of additional options in +common: + +`-file-line-error' +`-no-file-line-error' + Change (or do not change) the way error messages are printed. The + alternate style looks like error messages from many compilers and + is easier to parse for some editors that invoke TeX. This option + used to be called `-file-line-error-style'. + +`-fmt=DUMPNAME' +`-base=DUMPNAME' +`-mem=DUMPNAME' + Use DUMPNAME instead of the program name or a `%&' line to + determine the name of the memory dump file read (`fmt' for TeX, + `base' for Metafont, `mem' for MetaPost). *Note Memory dumps::. + Also sets the program name to DUMPNAME if no `-progname' option + was given. + +`-halt-on-error' + Stop processing and exit when an error occurs, as opposed to the + normal process of trying to recover and continue. + +`-ini' + Enable the "initial" form of the program (*note Initial and + virgin::). This is implicitly set if the program name is `initex' + resp. `inimf' resp. `inimpost', although these variants are no + longer typically installed. + +`-interaction=STRING' + Set the interaction mode from the command line. The STRING must + be one of `batchmode', `nonstopmode', `scrollmode', or + `errorstopmode'. + +`-jobname=STRING' + Set the job name to STRING, instead of deriving it from the name + of the input file. + +`-kpathsea-debug=NUMBER' + Set path searching debugging flags according to the bits of NUMBER + (*note Debugging: (kpathsea)Debugging.). You can also specify + this in `KPATHSEA_DEBUG' environment variable (for all Web2c + programs). (The command line value overrides.) The most useful + value is `-1', to get all available output. + +`-output-directory=DIRNAME' + Specify the directory DIRNAME to which output files are written. + Also look for input files in DIRNAME first, before looking along + the normal search path. This is useful when you are in some + read-only distribution directory, perhaps on a CD-ROM, and want to + TeX some documentation, for example. Note that for input files + the "search" in DIRNAME does not use the full generality of the + search mechanism. This means that some files are not found there + even though you might expect them to be. + +`-parse-first-line' +`-no-parse-first-line' + Check or disable checking whether the first line of the main input + file starts with `%&', and parse it if it does. This line can be + used specify the format and/or a TCX file. + +`-progname=STRING' + Set program (and memory dump) name to STRING. This may affect the + search paths and other values used (*note Config files: + (kpathsea)Config files.). Using this option is equivalent to + making a link named STRING to the binary and then invoking the + binary under that name. *Note Memory dumps::. + +`-recorder' + Enable the filename recorder. This makes the program save a list + of the opened files into a file with (by default) extension + `.fls'. For Omega, this option is always on, and the file has + extension `.ofl'. + +`-translate-file=TCXFILE' + Use TCXFILE to define which characters are printable and + translations between the internal and external character sets. + Moreover, TCXFILE can be explicitly declared in the first line of + the main input file `%& -translate-file=TCXFILE'. This is the + recommended method for portability reasons. *Note TCX files::. + +`-8bit' + This option specifies that by default all characters should be + considered printable. If `-translate-file' was given as well, + then the TCX file may mark characters as non-printable. + +`-oem' + This option is specific to Windows. When specified, TeX engines + will use the OEM code page rather than the ANSI one to display + their messages. + + + +File: web2c.info, Node: Path searching, Next: Output file location, Prev: Common options, Up: Commonalities + +3.3 Path searching +================== + +All of the Web2c programs, including TeX, which do path searching use +the Kpathsea routines to do so. The precise names of the environment +and configuration file variables which get searched for particular file +formatted are therefore documented in the Kpathsea manual (*note +Supported file formats: (kpathsea)Supported file formats.). Reading +`texmf.cnf' (*note Config files: (kpathsea)Config files.), invoking +`mktex...' scripts (*note mktex scripts: (kpathsea)mktex scripts.), and +so on are all handled by Kpathsea. + + The programs which read fonts make use of another Kpathsea feature: +`texfonts.map', which allows arbitrary aliases for the actual names of +font files; for example, `Times-Roman' for `ptmr8r.tfm'. The +distributed (and installed by default) `texfonts.map' includes aliases +for many widely available PostScript fonts by their PostScript names. + + +File: web2c.info, Node: Output file location, Next: Three programs, Prev: Path searching, Up: Commonalities + +3.4 Output file location +======================== + +All the programs generally follow the usual convention for output files. +Namely, they are placed in the directory current when the program is +run, regardless of any input file location; or, in a few cases, output +is to standard output. + + For example, if you run `tex /tmp/foo', for example, the output will +be in `./foo.dvi' and `./foo.log', not `/tmp/foo.dvi' and +`/tmp/foo.log'. + + You can use the `-output-directory' option to cause all output files +that would normally be written in the current directory to be written +in the specified directory instead. *Note Common options::. + + If the current directory is not writable, and `-output-directory' is +not specified, the main programs (TeX, Metafont, MetaPost, and BibTeX) +make an exception: if the config file value `TEXMFOUTPUT' is set (it is +not by default), output files are written to the directory specified. + + +File: web2c.info, Node: Three programs, Prev: Output file location, Up: Commonalities + +3.5 Three programs: Metafont, MetaPost, and TeX +=============================================== + +TeX, Metafont, and MetaPost have a number of features in common. +Besides the ones here, the common command-line options are described in +the previous section. The configuration file options that let you +control some array sizes and other features are described in *Note +Runtime options::. + +* Menu: + +* Initial and virgin:: Making memory dumps vs. production runs. +* Memory dumps:: .fmt/.base/.mem files for fast startup. +* Editor invocation:: The `e' response at errors. +* \input filenames:: ~ and $ expansion in TeX/MF/MP. + + +File: web2c.info, Node: Initial and virgin, Next: Memory dumps, Up: Three programs + +3.5.1 Initial and virgin +------------------------ + +The TeX, Metafont, and MetaPost programs each have two main variants, +called "initial" and "virgin". As of Web2c 7, one executable suffices +for both variants, and in fact, the `ini...' executables are no longer +created. + + The initial form is enabled if: + 1. the `-ini' option was specified; or + + 2. the program name is `initex' resp. `inimf' resp. `inimpost' + (these variants are no longer typically installed); or + + 3. the first line of the main input file is `%&ini'; + otherwise, the virgin form is used. + + The "virgin" form is the one generally invoked for production use. +The first thing it does is read a memory dump (*note Determining the +memory dump to use::), and then proceeds on with the main job. + + The "initial" form is generally used only to create memory dumps +(see the next section). It starts up more slowly than the virgin form, +because it must do lengthy initializations that are encapsulated in the +memory dump file. + + +File: web2c.info, Node: Memory dumps, Next: Editor invocation, Prev: Initial and virgin, Up: Three programs + +3.5.2 Memory dumps +------------------ + +In typical use, TeX, Metafont, and MetaPost require a large number of +macros to be predefined; therefore, they support "memory dump" files, +which can be read much more efficiently than ordinary source code. + +* Menu: + +* Creating memory dumps:: +* Determining the memory dump to use:: +* Hardware and memory dumps:: + + +File: web2c.info, Node: Creating memory dumps, Next: Determining the memory dump to use, Up: Memory dumps + +3.5.2.1 Creating memory dumps +............................. + +The programs all create memory dumps in slightly idiosyncratic (thought +substantially similar) way, so we describe the details in separate +sections (references below). The basic idea is to run the initial +version of the program (*note Initial and virgin::), read the source +file to define the macros, and then execute the `\dump' primitive. + + Also, each program uses a different filename extension for its memory +dumps, since although they are completely analogous they are not +interchangeable (TeX cannot read a Metafont memory dump, for example). + + Here is a list of filename extensions with references to examples of +creating memory dumps: + +TeX + (`.fmt') *Note Initial TeX: Initial TeX. + +Metafont + (`.base') *Note Initial Metafont::. + +MetaPost + (`.mem') *Note Initial MetaPost::. + + When making memory dumps, the programs read environment variables and +configuration files for path searching and other values as usual. If +you are making a new installation and have environment variables +pointing to an old one, for example, you will probably run into +difficulties. + + +File: web2c.info, Node: Determining the memory dump to use, Next: Hardware and memory dumps, Prev: Creating memory dumps, Up: Memory dumps + +3.5.2.2 Determining the memory dump to use +.......................................... + +The virgin form (*note Initial and virgin::) of each program always +reads a memory dump before processing normal source input. All three +programs determine the memory dump to use in the same way: + + 1. If the first non-option command-line argument begins with `&', the + program uses the remainder of that argument as the memory dump + name. For example, running `tex \&super' reads `super.fmt'. (The + backslash protects the `&' against interpretation by the shell.) + + 2. If the `-fmt' resp. `-base' resp. `-mem' option is specified, its + value is used. + + 3. If the `-progname' option is specified, its value is used. + + 4. If the first line of the main input file (which must be specified + on the command line, not in response to `**') is `%&DUMP', and + DUMP is an existing memory dump of the appropriate type, DUMP is + used. + + The first line of the main input file can also specify which + character translation file is to be used: + `%&-translate-file=TCXFILE' (*note TCX files::). + + These two roles can be combined: `%&DUMP -translate-file=TCXFILE'. + If this is done, the name of the dump must be given first. + + 5. Otherwise, the program uses the program invocation name, most + commonly `tex' resp. `mf' resp. `mpost'. For example, if `latex' + is a link to `tex', and the user runs `latex foo', `latex.fmt' + will be used. + + + +File: web2c.info, Node: Hardware and memory dumps, Prev: Determining the memory dump to use, Up: Memory dumps + +3.5.2.3 Hardware and memory dumps +................................. + +By default, memory dump files are generally sharable between +architectures of different types; specifically, on machines of different +endianness (*note Byte order: (libc)Byte order.). (This is a feature +of the Web2c implementation, and is not true of all TeX +implementations.) If you specify `--disable-dump-share' to +`configure', however, memory dumps will be endian-dependent. + + The reason to do this is speed. To achieve endian-independence, the +reading of memory dumps on LittleEndian architectures, such as PC's and +DEC architectures, is somewhat slowed (all the multibyte values have to +be swapped). Usually, this is not noticeable, and the advantage of +being able to share memory dumps across all platforms at a site far +outweighs the speed loss. But if you're installing Web2c for use on +LittleEndian machines only, perhaps on a PC being used only by you, you +may wish to get maximum speed. + + TeXnically, even without `--disable-dump-share', sharing of `.fmt' +files cannot be guaranteed to work. Floating-point values are always +written in native format, and hence will generally not be readable +across platforms. Fortunately, TeX uses floating point only to +represent glue ratios, and all common formats (plain, LaTeX, AMSTeX, +...) do not do any glue setting at `.fmt'-creation time. Metafont and +MetaPost do not use floating point in any dumped value at all. + + Incidentally, different memory dump files will never compare equal +byte-for-byte, because the program always dumps the current date and +time. So don't be alarmed by just a few bytes difference. + + If you don't know what endianness your machine is, and you're +curious, here is a little C program to tell you. (The `configure' script +contains a similar program.) This is from the book `C: A Reference +Manual', by Samuel P. Harbison and Guy L. Steele Jr. (*note +References::). + + main () + { + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long l; + char c[sizeof (long)]; + } u; + u.l = 1; + if (u.c[0] == 1) + printf ("LittleEndian\n"); + else if (u.c[sizeof (long) - 1] == 1) + printf ("BigEndian\n"); + else + printf ("unknownEndian"); + + exit (u.c[sizeof (long) - 1] == 1); + } + + +File: web2c.info, Node: Editor invocation, Next: \input filenames, Prev: Memory dumps, Up: Three programs + +3.5.3 Editor invocation +----------------------- + +TeX, Metafont, and MetaPost all (by default) stop and ask for user +intervention at an error. If the user responds with `e' or `E', the +program invokes an editor. + + Specifying `--with-editor=CMD' to `configure' sets the default +editor command string to CMD. The environment variables/configuration +values `TEXEDIT', `MFEDIT', and `MPEDIT' (respectively) override this. +If `--with-editor' is not specified, the default is `vi +%d %s'. + + In this string, `%d' is replaced by the line number of the error, +and `%s' is replaced by the name of the current input file. + + +File: web2c.info, Node: \input filenames, Prev: Editor invocation, Up: Three programs + +3.5.4 `\input' filenames +------------------------ + +TeX, Metafont, and MetaPost source programs can all read other source +files with the `\input' (TeX) and `input' (MF and MP) primitives: + \input NAME % in TeX + + The file NAME can always be terminated with whitespace; for Metafont +and MetaPost, the statement terminator `;' also works. (LaTeX and +other macro packages provide other interfaces to `\input' that allow +different notation; here we are concerned only with the primitive +operation.) + + As of Web2c version 7.5.3, double-quote characters can be used to +include spaces or other special cases. In typical use, the `"' +characters surround the entire filename: + \input "filename with spaces" + + Technically, the quote characters can be used inside the name, and +can enclose any characters, as in: + \input filename" "with" "spaces + + One more point. In LaTeX, the quotes are needed inside the braces, +thus + \input{a b} % fails + \input{"a b"} % ok + + This quoting mechanism comes into play _after_ TeX has tokenized and +expanded the input. So, multiple spaces and tabs may be seen as a +single space, active characters such as `~' are expanded first, and so +on. (See below.) + + On the other hand, various C library routines and Unix itself use +the null byte (character code zero, ASCII NUL) to terminate strings. So +filenames in Web2c cannot contain nulls, even though TeX itself does +not treat NUL specially. In addition, some older Unix variants do not +allow eight-bit characters (codes 128-255) in filenames. + + For maximal portability of your document across systems, use only the +characters `a'-`z', `0'-`9', and `.', and restrict your filenames to at +most eight characters (not including the extension), and at most a +three-character extension. Do not use anything but simple filenames, +since directory separators vary among systems; instead, add the +necessary directories to the appropriate search path. + + Finally, the present Web2c implementation does `~' and `$' expansion +on NAME, unlike Knuth's original implementation and older versions of +Web2c. Thus: + \input ~jsmith/$foo.bar + will dereference the environment variable or Kpathsea config file +value `foo' and read that file extended with `.bar' in user `jsmith''s +home directory. You can also use braces, as in `${foo}bar', if you +want to follow the variable name with a letter, numeral, or `_'. + + (So another way to get a program to read a filename containing +whitespace is to define an environment variable and dereference it.) + + In all the common TeX formats (plain TeX, LaTeX, AMSTeX), the +characters `~' and `$' have special category codes, so to actually use +these in a document you have to change their catcodes or use `\string'. +(The result is unportable anyway, see the suggestions above.) The +place where they are most likely to be useful is when typing +interactively. + + +File: web2c.info, Node: TeX, Next: Metafont, Prev: Commonalities, Up: Top + +4 TeX: Typesetting +****************** + +TeX is a typesetting system: it was especially designed to handle +complex mathematics, as well as most ordinary text typesetting. + + TeX is a batch language, like C or Pascal, and not an interactive +"word processor": you compile a TeX input file into a corresponding +device-independent (DVI) file (and then translate the DVI file to the +commands for a particular output device). This approach has both +considerable disadvantages and considerable advantages. For a complete +description of the TeX language, see `The TeXbook' (*note +References::). Many other books on TeX, introductory and otherwise, +are available. + +* Menu: + +* tex invocation:: Invoking TeX. +* Initial TeX:: Making format files. +* Formats:: Major TeX macro packages. +* Languages and hyphenation:: TeX supports many human languages. +* IPC and TeX:: DVI output to a socket. +* TeX extensions:: Changes to the TeX language. + + +File: web2c.info, Node: tex invocation, Next: Initial TeX, Up: TeX + +4.1 `tex' invocation +==================== + +TeX (usually invoked as `tex') formats the given text and commands, and +outputs a corresponding device-independent representation of the +typeset document. This section merely describes the options available +in the Web2c implementation. For a complete description of the TeX +typesetting language, see `The TeXbook' (*note References::). + + TeX, Metafont, and MetaPost process the command line (described +here) and determine their memory dump (fmt) file in the same way (*note +Memory dumps::). Synopses: + + tex [OPTION]... [TEXNAME[.tex]] [TEX-COMMANDS] + tex [OPTION]... \FIRST-LINE + tex [OPTION]... &FMT ARGS + + TeX searches the usual places for the main input file TEXNAME (*note +Supported file formats: (kpathsea)Supported file formats.), extending +TEXNAME with `.tex' if necessary. To see all the relevant paths, set +the environment variable `KPATHSEA_DEBUG' to `-1' before running the +program. + + After TEXNAME is read, TeX processes any remaining TEX-COMMANDS on +the command line as regular TeX input. Also, if the first non-option +argument begins with a TeX escape character (usually `\'), TeX +processes all non-option command-line arguments as a line of regular +TeX input. + + If no arguments or options are specified, TeX prompts for an input +file name with `**'. + + TeX writes the main DVI output to the file `BASETEXNAME.dvi', where +BASETEXNAME is the basename of TEXNAME, or `texput' if no input file +was specified. A DVI file is a device-independent binary +representation of your TeX document. The idea is that after running +TeX, you translate the DVI file using a separate program to the +commands for a particular output device, such as a PostScript printer +(*note Introduction: (dvips)Top.) or an X Window System display (see +xdvi(1)). + + TeX also reads TFM files for any fonts you load in your document with +the `\font' primitive. By default, it runs an external program named +`mktextfm' to create any nonexistent TFM files. You can disable this +at configure-time or runtime (*note mktex configuration: +(kpathsea)mktex configuration.). This is enabled mostly for the sake +of the EC fonts, which can be generated at any size. + + TeX can write output files, via the `\openout' primitive; this opens +a security hole vulnerable to Trojan horse attack: an unwitting user +could run a TeX program that overwrites, say, `~/.rhosts'. (MetaPost +has a `write' primitive with similar implications). To alleviate this, +there is a configuration variable `openout_any', which selects one of +three levels of security. When it is set to `a' (for "any"), no +restrictions are imposed. When it is set to `r' (for "restricted"), +filenames beginning with `.' are disallowed (except `.tex' because +LaTeX needs it). When it is set to `p' (for "paranoid") additional +restrictions are imposed: an absolute filename must refer to a file in +(a subdirectory) of `TEXMFOUTPUT', and any attempt to go up a directory +level is forbidden (that is, paths may not contain a `..' component). +The paranoid setting is the default. (For backwards compatibility, `y' +and `1' are synonyms of `a', while `n' and `0' are synonyms for `r'.) + + In any case, all `\openout' filenames are recorded in the log file, +except those opened on the first line of input, which is processed when +the log file has not yet been opened. (If you as a TeX administrator +wish to implement more stringent rules on `\openout', modifying the +function `openoutnameok' in `web2c/lib/texmfmp.c' is intended to +suffice.) + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-enc' +`-[no]-file-line-error' +`-fmt=FMTNAME' +`-halt-on-error' +`-ini' +`-interaction=STRING' +`-ipc' +`-ipc-start' +`-jobname=STRING' +`-kpathsea-debug=NUMBER' +`-[no]parse-first-line' +`-output-directory' +`-progname=STRING' +`-recorder' +`-translate-file=TCXFILE' +`-8bit' + These options are common to TeX, Metafont, and MetaPost. *Note + Common options::. + +`-enc' + Enable encTeX extensions, such as `\mubyte'. This can be used to + support Unicode UTF-8 input encoding. See + `http://www.olsak.net/enctex.html'. + +`-ipc' +`-ipc-start' + With either option, TeX writes its DVI output to a socket as well + as to the usual `.dvi' file. With `-ipc-start', TeX also opens a + server program at the other end to read the output. *Note IPC and + TeX: IPC and TeX. + + These options are available only if the `--enable-ipc' option was + specified to `configure' during installation of Web2c. + +`-mktex=FILETYPE' +`-no-mktex=FILETYPE' + Turn on or off the `mktex' script associated with FILETYPE. The + only values that make sense for FILETYPE are `tex' and `tfm'. + +`-mltex' + If we are `INITEX' (*note Initial and virgin::), enable MLTeX + extensions such as `\charsubdef'. Implicitly set if the program + name is `mltex'. *Note MLTeX: MLTeX. + +`-output-comment=STRING' + Use STRING as the DVI file comment. Ordinarily, this comment + records the date and time of the TeX run, but if you are doing + regression testing, you may not want the DVI file to have this + spurious difference. This is also taken from the environment + variable and config file value `output_comment'. + +`-shell-escape' +`-no-shell-escape' + Enable (or disable) the `\write18{SHELL-COMMAND}' feature. This + is also enabled if the environment variable or config file value + `shell_escape' is set to `t' (but the `-no-shell-escape' command + line option overrides this). (For backwards compatibility, `y' + and `1' are accepted as synonyms of `t'). It is disabled by + default to avoid security problems. When enabled, the + SHELL-COMMAND string (which first undergoes the usual TeX + expansions, just as in `\special') is passed to the command shell + (via the C library function `system'). The output of + SHELL-COMMAND is not diverted anywhere, so it will not appear in + the log file. The system call either happens at `\output' time or + right away, according to the absence or presence of the + `\immediate' prefix, as usual for `\write'. (If you as a TeX + administrator wish to implement more stringent rules on what can + be executed, you will need to modify `tex.ch'.) + +`-src-specials' +`-src-specials=STRING' + This option makes TeX output specific source information using + `\special' commands in the DVI file. These `\special' track the + current file name and line number. + + Using the first form of this option, the `\special' commands are + inserted automatically. + + In the second form of the option, STRING is a comma separated list + of the following values: `cr', `display', `hbox', `math', `par', + `parend', `vbox'. You can use this list to specify where you want + TeX to output such commands. For example, `-src-specials=cr,math' + will output source information every line and every math formula. + + These commands can be used with the appropriate DVI viewer and + text editor to switch from the current position in the editor to + the same position in the viewer and back from the viewer to the + editor. + + This option works by inserting `\special' commands into the token + stream, and thus in principle these additional tokens can be + recovered or seen by the tricky-enough macros. If you run across + a case, let us know, because this counts as a bug. However, such + bugs are very hard to fix, requiring significant changes to TeX, + so please don't count on it. + + Redefining `\special' will not affect the functioning of this + option. The commands inserted into the token stream are + hard-coded to always use the `\special' primitive. + + TeX does not pass the trip test when this option is enabled. + + + +File: web2c.info, Node: Initial TeX, Next: Formats, Prev: tex invocation, Up: TeX + +4.2 Initial TeX +=============== + +The "initial" form of TeX is invoked by `tex -ini'. It does lengthy +initializations avoided by the "virgin" (`vir') form, so as to be +capable of dumping `.fmt' files (*note Memory dumps::). For a detailed +comparison of virgin and initial forms, *note Initial and virgin::. In +past releases, a separate program `initex' was installed to invoke the +initial form, but this is no longer the case. + + For a list of options and other information, *note tex invocation::. + + Unlike Metafont and MetaPost, many format files are commonly used +with TeX. The standard one implementing the features described in the +`TeXbook' is `plain.fmt', also known as `tex.fmt' (again, *note Memory +dumps::). It is created by default during installation, but you can +also do so by hand if necessary (e.g., if an update to `plain.tex' is +issued): + tex -ini '\input plain \dump' + (The quotes prevent interpretation of the backslashes from the +shell.) Then install the resulting `plain.fmt' in `$(fmtdir)' +(`/usr/local/share/texmf/web2c' by default), and link `tex.fmt' to it. + + The necessary invocation for generating a format file differs for +each format, so instructions that come with the format should explain. +The top-level `web2c' Makefile has targets for making most common +formats: plain latex amstex texinfo eplain. *Note Formats::, for more +details on TeX formats. + + +File: web2c.info, Node: Formats, Next: Languages and hyphenation, Prev: Initial TeX, Up: TeX + +4.3 Formats +=========== + +TeX "formats" are large collections of macros, often dumped into a +`.fmt' file (*note Memory dumps::) by `tex -ini' (*note Initial TeX::). +A number of formats are in reasonably widespread use, and the Web2c +Makefile has targets to make the versions current at the time of +release. You can change which formats are automatically built by +setting the `fmts' Make variable; by default, only the `plain' and +`latex' formats are made. + + You can get the latest versions of most of these formats from the +CTAN archives in subdirectories of `CTAN:/macros' (for CTAN info, *note +unixtex.ftp: (kpathsea)unixtex.ftp.). The archive +`ftp://ftp.tug.org/tex/lib.tar.gz' (also available from CTAN) contains +most of these formats (although perhaps not the absolute latest +version), among other things. + +latex + The most widely used format. The current release is named `LaTeX + 2e'; new versions are released approximately every six months, with + patches issued as needed. The old release was called `LaTeX 2.09', + and is no longer maintained or supported. LaTeX attempts to + provide generic markup instructions, such as "emphasize", instead + of specific typesetting instructions, such as "use the 10pt + Computer Modern italic font". The LaTeX home page: + `http://www.latex-project.org'. + +context + ConTeXt is an independent macro package which has a basic document + structuring approach similar to LaTeX. It also supports creating + interactive PDF files and has integrated MetaPost support, among + many other interesting features. The ConTeXt home page: + `http://www.pragma-ade.com'. + +amstex + The official typesetting system of the American Mathematical + Society. Like LaTeX, it encourages generic markup commands. The + AMS also provides many LaTeX package for authors who prefer LaTeX. + Taken together, they are used to produce nearly all AMS + publications, e.g., `Mathematical Reviews'. The AMSTeX home page: + `http://www.ams.org/tex'. + +texinfo + The documentation system developed and maintained by the Free + Software Foundation for their software manuals. It can be + automatically converted into plain text, a machine-readable + on-line format called `info', HTML, etc. The Texinfo home page: + `http://www.gnu.org/software/texinfo'. + +eplain + The "expanded plain" format provides various common features (e.g., + symbolic cross-referencing, tables of contents, indexing, citations + using BibTeX), for those authors who prefer to handle their own + high-level formatting. The Eplain home page: + `http://www.tug.org/eplain'. + +slitex + An obsolete LaTeX 2.09 format for making slides. It is replaced by + the `slides' document class, along with the `beamer', `texpower', + and other packages. + + + +File: web2c.info, Node: Languages and hyphenation, Next: IPC and TeX, Prev: Formats, Up: TeX + +4.4 Languages and hyphenation +============================= + +TeX supports most natural languages. See also *Note TeX extensions: +TeX extensions. + +* Menu: + +* MLTeX:: Multi-lingual TeX. +* patgen invocation:: Creating hyphenation patterns. +* TCX files:: Support for different character sets & fonts. + + +File: web2c.info, Node: MLTeX, Next: patgen invocation, Up: Languages and hyphenation + +4.4.1 MLTeX: Multi-lingual TeX +------------------------------ + +Multi-lingual TeX (`mltex') is an extension of TeX originally written +by Michael Ferguson and now updated and maintained by Bernd Raichle. +It allows the use of non-existing glyphs in a font by declaring glyph +substitutions. These are restricted to substitutions of an accented +character glyph, which need not be defined in the current font, by its +appropriate `\accent' construction using a base and accent character +glyph, which do have to exist in the current font. This substitution +is automatically done behind the scenes, if necessary, and thus MLTeX +additionally supports hyphenation of words containing an accented +character glyph for fonts missing this glyph (e.g., Computer Modern). +Standard TeX suppresses hyphenation in this case. + + MLTeX works at `.fmt'-creation time: the basic idea is to specify +the `-mltex' option to TeX when you `\dump' a format. Then, when you +subsequently invoke TeX and read that `.fmt' file, the MLTeX features +described below will be enabled. + + Generally, you use special macro files to create an MLTeX `.fmt' +file. + + The sections below describe the two new primitives that MLTeX +defines. Aside from these, MLTeX is completely compatible with +standard TeX. + +* Menu: + +* \charsubdef:: Character substitution definitions. +* \tracingcharsubdef:: Tracing substitutions. + + +File: web2c.info, Node: \charsubdef, Next: \tracingcharsubdef, Up: MLTeX + +4.4.1.1 `\charsubdef': Character substitutions +.............................................. + +The most important primitive MLTeX adds is `\charsubdef', used in a way +reminiscent of `\chardef': + \charsubdef COMPOSITE [=] ACCENT BASE + + Each of COMPOSITE, ACCENT, and BASE are font glyph numbers, +expressed in the usual TeX syntax: `\e symbolically, '145 for octal, +"65 for hex, 101 for decimal. + + MLTeX's `\charsubdef' declares how to construct an accented +character glyph (not necessarily existing in the current font) using two +character glyphs (that do exist). Thus it defines whether a character +glyph code, either typed as a single character or using the `\char' +primitive, will be mapped to a font glyph or to an `\accent' glyph +construction. + + For example, if you assume glyph code 138 (decimal) for an +e-circumflex and you are using the Computer Modern fonts, which have +the circumflex accent in position 18 and lowercase `e' in the usual +ASCII position 101 decimal, you would use `\charsubdef' as follows: + + \charsubdef 138 = 18 101 + + For the plain TeX format to make use of this substitution, you have +to redefine the circumflex accent macro `\^' in such a way that if its +argument is character `e' the expansion `\char138 ' is used instead of +`\accent18 e'. Similar `\charsubdef' declaration and macro +redefinitions have to be done for all other accented characters. + + To disable a previous `\charsubdef C', redefine C as a pair of +zeros. For example: + \charsubdef '321 = 0 0 % disable N tilde + (Octal '321 is the ISO Latin-1 value for the Spanish N tilde.) + + `\charsubdef' commands should only be given once. Although in +principle you can use `\charsubdef' at any time, the result is +unspecified. If `\charsubdef' declarations are changed, usually either +incorrect character dimensions will be used or MLTeX will output +missing character warnings. (The substitution of a `\charsubdef' is +used by TeX when appending the character node to the current horizontal +list, to compute the width of a horizontal box when the box gets +packed, and when building the `\accent' construction at +`\shipout'-time. In summary, the substitution is accessed often, so +changing it is not desirable, nor generally useful.) + + +File: web2c.info, Node: \tracingcharsubdef, Prev: \charsubdef, Up: MLTeX + +4.4.1.2 `\tracingcharsubdef': Substitution diagnostics +...................................................... + +To help diagnose problems with `\charsubdef', MLTeX provides a new +primitive parameter, `\tracingcharsubdef'. If positive, every use of +`\charsubdef' will be reported. This can help track down when a +character is redefined. + + In addition, if the TeX parameter `\tracinglostchars' is 100 or +more, the character substitutions actually performed at `\shipout'-time +will be recorded. + + +File: web2c.info, Node: TCX files, Prev: patgen invocation, Up: Languages and hyphenation + +4.4.2 TCX files: Character translations +--------------------------------------- + +TCX (TeX character translation) files help TeX support direct input of +8-bit international characters if fonts containing those characters are +being used. Specifically, they map an input (keyboard) character code +to the internal TeX character code (a superset of ASCII). + + Of the various proposals for handling more than one input encoding, +TCX files were chosen because they follow Knuth's original ideas for +the use of the `xchr' and `xord' tables. He ventured that these would +be changed in the WEB source in order to adjust the actual version to a +given environment. It turns out, however, that recompiling the WEB +sources is not as simple a task as Knuth may have imagined; therefore, +TCX files, providing the possibility of changing of the conversion +tables on on-the-fly, have been implemented instead. + + This approach limits the portability of TeX documents, as some +implementations do not support it (or use a different method for +input-internal reencoding). It may also be problematic to determine +the encoding to use for a TeX document of unknown provenance; in the +worst case, failure to do so correctly may result in subtle errors in +the typeset output. But we feel the benefits outweigh these +disadvantages. + + This is entirely independent of the MLTeX extension (*note MLTeX::): +whereas a TCX file defines how an input keyboard character is mapped to +TeX's internal code, MLTeX defines substitutions for a non-existing +character glyph in a font with a `\accent' construction made out of two +separate character glyphs. TCX files involve no new primitives; it is +not possible to specify that an input (keyboard) character maps to more +than one character. + + Information on specifying TCX files: + + * The best way to specify a TCX file is to list it explicitly in the + first line of the main document: + %& -translate-file=TCXFILE + + * You can also specify a TCX file to be used on a particular TeX run + with the command-line option `-translate-file=TCXFILE'. + + * TCX files are searched for along the `WEB2C' path. + + * Initial TeX (*note Initial TeX: Initial TeX.) ignores TCX files. + + The Web2c distribution comes with a number of TCX files. Two +important ones are `il1-t1.tcx' and `il2-t1.tcx', which support ISO +Latin 1 and ISO Latin 2, respectively, with Cork-encoded fonts (a.k.a. +the LaTeX T1 encoding). TCX files for Czech, Polish, and Slovak are +also provided. + + One other notable TCX file is `empty.tcx', which is, well, empty. +Its purpose is to reset Web2C's behavior to the default (only visible +ASCII being printable, as described below) when a format was dumped +with another TCX being active--which is in fact the case for everything +but plain TeX in the TeX Live and other distributions. Thus: + + latex somefile8.tex + => terminal etc. output with 8-bit chars + latex --translate-file=empty.tcx somefile8.tex + => terminal etc. output with ^^ notation + + Syntax of TCX files: + 1. Line-oriented. Blank lines are ignored. + + 2. Whitespace is ignored except as a separator. + + 3. Comments start with `%' and continue to the end of the line. + + 4. Otherwise, a line consists of one or two character codes, + optionally followed by 0 or 1. The last number indicates whether + DEST is considered printable. + SRC [DEST [PRNT]] + + 5. Each character code may be specified in octal with a leading `0', + hexadecimal with a leading `0x', or decimal otherwise. Values must + be between 0 and 255, inclusive (decimal). + + 6. If the DEST code is not specified, it is taken to be the same as + SRC. + + 7. If the same SRC code is specified more than once, it is the last + definition that counts. + + Finally, here's what happens: when TeX sees an input character with +code SRC, it 1) changes SRC to DEST; and 2) makes the DEST code +"printable", i.e., printed as-is in diagnostics and the log file rather +than in `^^' notation. + + By default, no characters are translated, and character codes +between 32 and 126 inclusive (decimal) are printable. + + Specifying translations for the printable ASCII characters (codes +32-127) will yield unpredictable results. Additionally you shouldn't +make the following characters printable: `^^I' (TAB), `^^J' (line +feed), `^^M' (carriage return), and `^^?' (delete), since TeX uses them +in various ways. + + Thus, the idea is to specify the input (keyboard) character code for +SRC, and the output (font) character code for DEST. + + By default, only the printable ASCII characters are considered +printable by TeX. If you specify the `-8bit' option, all characters are +considered printable by default. If you specify both the `-8bit' +option and a TCX file, then the TCX can set specific characters to be +non-printable. + + Both the specified TCX encoding and whether characters are printable +are saved in the dump files (like `tex.fmt'). So by giving these +options in combination with `-ini', you control the defaults seen by +anyone who uses the resulting dump file. + + When loading a dump, if the `-8bit' option was given, then all +characters become printable by default. + + When loading a dump, if a TCX file was specified, then the TCX data +from the dump is ignored and the data from the file used instead. + + +File: web2c.info, Node: patgen invocation, Next: TCX files, Prev: MLTeX, Up: Languages and hyphenation + +4.4.3 Patgen: Creating hyphenation patterns +------------------------------------------- + +Patgen creates hyphenation patterns from dictionary files for use with +TeX. Synopsis: + + patgen DICTIONARY PATTERNS OUTPUT TRANSLATE + + Each argument is a filename. No path searching is done. The output is +written to the file OUTPUT. + + In addition, Patgen prompts interactively for other values. + + For more information, see `Word hy-phen-a-tion by com-puter' by +Frank Liang (*note References::), and also the `patgen.web' source file. + + The only options are `-help' and `-version' (*note Common options::). + + +File: web2c.info, Node: IPC and TeX, Next: TeX extensions, Prev: Languages and hyphenation, Up: TeX + +4.5 IPC and TeX +=============== + +(Sorry, but I'm not going to write this unless someone actually uses +this feature. Let me know.) + + This functionality is available only if the `--enable-ipc' option +was specified to `configure' during installation of Web2c (*note +Installation::). + + If you define `IPC_DEBUG' before compilation (e.g., with `make +XCFLAGS=-DIPC_DEBUG'), TeX will print messages to standard error about +its socket operations. This may be helpful if you are, well, debugging. + + +File: web2c.info, Node: TeX extensions, Prev: IPC and TeX, Up: TeX + +4.6 TeX extensions +================== + +The base TeX program has been extended in many ways. Here's a partial +list. Please send information on extensions not listed here to the +address in *Note Reporting bugs: (kpathsea)Reporting bugs. + +e-TeX + Adds many new primitives, including right-to-left typesetting. + Available from `http://www.vms.rhbnc.ac.uk/e-TeX/' and + `CTAN:/systems/e-tex'. + +Omega + Adds Unicode support, right-to-left typesetting, and more. + Available from `http://www.ens.fr/omega' and `CTAN:/systems/omega'. + +pdfTeX + A variant of TeX that produces PDF instead of DVI files. It also + includes primitives for hypertext and micro-typography. Available + from `CTAN:/systems/pdftex'. + +`TeX--XeT' + Adds primitives and DVI opcodes for right-to-left typesetting (as + used in Arabic, for example). An old version for TeX 3.1415 is + available from `CTAN:/systems/knuth/tex--xet'. A newer version is + included in e-TeX. + +File-handling TeX + Adds primitives for creating multiple DVI files in a single run; + and appending to output files as well as overwriting. Web2c + implementation available in the distribution file + `web2c/contrib/file-handling-tex'. + + +File: web2c.info, Node: Metafont, Next: MetaPost, Prev: TeX, Up: Top + +5 Metafont: Creating typeface families +************************************** + +Metafont is a system for producing shapes; it was designed for producing +complete typeface families, but it can also produce geometric designs, +dingbats, etc. And it has considerable mathematical and +equation-solving capabilities which can be useful entirely on their own. + + Metafont is a batch language, like C or Pascal: you compile a +Metafont program into a corresponding font, rather than interactively +drawing lines or curves. This approach has both considerable +disadvantages (people unfamiliar with conventional programming +languages will be unlikely to find it usable) and considerable +advantages (you can make your design intentions specific and +parameterizable). For a complete description of the Metafont language, +see `The METAFONTbook' (*note References::). + +* Menu: + +* mf invocation:: Invoking Metafont. +* Initial Metafont:: Making bases. +* Modes:: Device definitions for Metafont. +* Online Metafont graphics:: Seeing MF output online. +* gftodvi invocation:: Making proofsheets for fonts. +* mft invocation:: Prettyprinting Metafont sources. + + +File: web2c.info, Node: mf invocation, Next: Initial Metafont, Up: Metafont + +5.1 `mf' invocation +=================== + +Metafont (usually invoked as `mf') reads character definitions +specified in the Metafont programming language, and outputs the +corresponding font. This section merely describes the options available +in the Web2c implementation. For a complete description of the Metafont +language, see `The Metafontbook' (*note References::). + + Metafont processes its command line and determines its memory dump +(base) file in a way exactly analogous to MetaPost and TeX (*note tex +invocation::, and *note Memory dumps::). Synopses: + + mf [OPTION]... [MFNAME[.mf]] [MF-COMMANDS] + mf [OPTION]... \FIRST-LINE + mf [OPTION]... &BASE ARGS + + Most commonly, a Metafont invocation looks like this: + mf '\mode:=MODE; mag:=MAGNIFICATION; input MFNAME' + (The single quotes avoid unwanted interpretation by the shell.) + + Metafont searches the usual places for the main input file MFNAME +(*note Supported file formats: (kpathsea)Supported file formats.), +extending MFNAME with `.mf' if necessary. To see all the relevant +paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before +running the program. By default, Metafont runs an external program +named `mktexmf' to create any nonexistent Metafont source files you +input. You can disable this at configure-time or runtime (*note mktex +configuration: (kpathsea)mktex configuration.). This is mostly for the +sake of the EC fonts, which can be generated at any size. + + Metafont writes the main GF output to the file `BASEMFNAME.NNNgf', +where NNN is the font resolution in pixels per inch, and BASEMFNAME is +the basename of MFNAME, or `mfput' if no input file was specified. A +GF file contains bitmaps of the actual character shapes. Usually GF +files are converted immediately to PK files with GFtoPK (*note gftopk +invocation::), since PK files contain equivalent information, but are +more compact. (Metafont output in GF format rather than PK for only +historical reasons.) + + Metafont also usually writes a metric file in TFM format to +`BASEMFNAME.tfm'. A TFM file contains character dimensions, kerns, and +ligatures, and spacing parameters. TeX reads only this .tfm file, not +the GF file. + + The MODE in the example command above is a name referring to a +device definition (*note Modes::); for example, `localfont' or +`ljfour'. These device definitions must generally be precompiled into +the base file. If you leave this out, the default is `proof' mode, as +stated in `The Metafontbook', in which Metafont outputs at a resolution +of 2602dpi; this is usually not what you want. The remedy is simply to +assign a different mode--`localfont', for example. + + The MAGNIFICATION assignment in the example command above is a +magnification factor; for example, if the device is 600dpi and you +specify `mag:=2', Metafont will produce output at 1200dpi. Very often, +the MAGNIFICATION is an expression such as `magstep(.5)', corresponding +to a TeX "magstep", which are factors of 1.2 * sqrt(2). + + After running Metafont, you can use the font in a TeX document as +usual. For example: + \font\myfont = newfont + \myfont Now I am typesetting in my new font (minimum hamburgers). + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-[no]-file-line-error' +`-fmt=FMTNAME' +`-halt-on-error' +`-ini' +`-interaction=STRING' +`-jobname=STRING' +`-kpathsea-debug=NUMBER' +`-[no]parse-first-line' +`-output-directory' +`-progname=STRING' +`-recorder' +`-translate-file=TCXFILE' +`-8bit' + These options are common to TeX, Metafont, and MetaPost. *Note + Common options::. + +`-mktex=FILETYPE' +`-no-mktex=FILETYPE' + Turn on or off the `mktex' script associated with FILETYPE. The + only value that makes sense for FILETYPE is `mf'. + + +File: web2c.info, Node: Initial Metafont, Next: Modes, Prev: mf invocation, Up: Metafont + +5.2 Initial Metafont +==================== + +`inimf' is the "initial" form of Metafont, which does lengthy +initializations avoided by the "virgin" (`vir') form, so as to be +capable of dumping `.base' files (*note Memory dumps::). For a +detailed comparison of virgin and initial forms, see *Note Initial and +virgin::. In past releases, a separate program `inimf' was installed +to invoke the initial form, but this is no longer the case. + + For a list of options and other information, see *Note mf +invocation::. + + The only memory dump file commonly used with Metafont is the default +`plain.base', also known as `mf.base' (again, *note Memory dumps::). +It is created by default during installation, but you can also do so by +hand if necessary (e.g., if a Metafont update is issued): + mf -ini '\input plain; input modes; dump' + (The quotes prevent interpretation of the backslashes from the +shell.) Then install the resulting `plain.base' in `$(basedir)' +(`/usr/local/share/texmf/web2c' by default), and link `mf.base' to it. + + For an explanation of the additional `modes.mf' file, see *Note +Modes::. This file has no counterpart in TeX or MetaPost. + + In the past, it was sometimes useful to create a base file +`cmmf.base' (a.k.a. `cm.base'), with the Computer Modern macros also +included in the base file. Nowadays, however, the additional time +required to read `cmbase.mf' is exceedingly small, usually not enough +to be worth the administrative hassle of updating the `cmmf.base' file +when you install a new version of `modes.mf'. People actually working +on a typeface may still find it worthwhile to create their own base +file, of course. + + +File: web2c.info, Node: Modes, Next: Online Metafont graphics, Prev: Initial Metafont, Up: Metafont + +5.3 Modes: Device definitions for Metafont +========================================== + +Running Metafont and creating Metafont base files requires information +that TeX and MetaPost do not: "mode" definitions which specify device +characteristics, so Metafont can properly rasterize the shapes. + + When making a base file, a file containing modes for +locally-available devices should be input after `plain.mf'. One +commonly used file is `ftp://ftp.tug.org/tex/modes.mf'; it includes all +known definitions. + + If, however, for some reason you have decreased the memory available +in your Metafont, you may need to copy `modes.mf' and remove the +definitions irrelevant to you (probably most of them) instead of using +it directly. (Or, if you're a Metafont hacker, maybe you can suggest a +way to redefine `mode_def' and/or `mode_setup'; right now, the amount +of memory used is approximately four times the total length of the +`mode_def' names, and that's a lot.) + + If you have a device not included in `modes.mf', please see comments +in that file for how to create the new definition, and please send the +definition to <tex-fonts@mail.tug.org> to get it included in the next +release of `modes.mf'. + + Usually, when you run Metafont you must supply the name of a mode +that was dumped in the base file. But you can also define the mode +characteristics dynamically, by invoking Metafont with an assignment to +`smode' instead of `mode', like this: + mf '\smode:="newmode.mf"; mag:=MAGNIFICATION; input MFNAME' + This is most useful when you are working on the definition of a new +mode. + + The MAGNIFICATION and MFNAME arguments are explained in *Note mf +invocation::. In the file `newmode.mf', you should have the following +(with no `mode_def' or `enddef'), if you are using `modes.mf' +conventions: + mode_param (pixels_per_inch, DPI); + mode_param (blacker, B); + mode_param (fillin, F); + mode_param (o_correction, O); + mode_common_setup_; + (Of course, you should use real numbers for DPI, B, F, and O.) + + For more information on the use of `smode', or if you are not using +`modes.mf', see page 269 of `The Metafontbook'. + + +File: web2c.info, Node: Online Metafont graphics, Next: gftodvi invocation, Prev: Modes, Up: Metafont + +5.4 Online Metafont graphics +============================ + +The Web2c implementation of Metafont can do online graphics with a +number of devices. (See the Metafont manual for more information about +how to draw on your screen.) By default, no graphics support is +enabled. + + Metafont examines the `MFTERM' environment variable or config file +value at runtime, or the `TERM' environment variable if `MFTERM' is not +set, to determine the device support to use. Naturally, only the +devices for which support has been compiled in can be selected. + + Here is a table of the possibilities, showing the `MFTERM' value and +the corresponding `configure' option(s) in parentheses. + +`epsf' + (`--with-epsfwin') Pseudo-window server for Encapsulated + PostScript (see `web2c/window/epsf.c'). This device produces an + EPS file containing the graphics which would be displayed online on + other devices. The name of the EPS file defaults to metafont.eps + but can be changed by setting the MFEPSF environment variable to + the new filename. Contributed by Mathias Herberts. + +`hp2627' + (`--with-hp2627win') HP2627a color graphics terminals. + +`mftalk' + (`--with-mftalkwin') Generic window server (see + `web2c/window/mftalk.c'). + +`next' + (`--with-next') NeXT window system. This requires a separate + program, called `DrawingServant', available separately. See the + `web2c/window/next.c'. + +`regis' + (`--with-regiswin') Regis terminals. + +`sun' + (`--with-suntoolswin') The old Suntools (not any flavor of X) + window system. (You can get the even older SunWindows `gfx' system + by using `sun-gfx.c'.) + +`tek' + (`--with-tektronixwin') Tektronix terminals. + +`uniterm' + (`--with-unitermwin') Uniterm, Simon Poole's emulator of a smart + Tektronix 4014 terminal. This may work with regular Tektronix + terminals as well; it's faster than the driver `--with-tek' + selects. + +`xterm' + (`--with-x11win', `--with-x', `--with-x11') The X window system + (version 11). + + There are two variants of the X11 support, one that works with the + Xt toolkit, and another that works directly with Xlib. The Xt + support is more efficient and has more functionality, so it is the + default. If you must use the Xlib support, use `configure --with-x + --with-x-toolkit=no'. + + You cannot specify any of the usual X options (e.g., `-geometry') + on the Metafont command line, but you can specify X resources in + your `~/.Xdefaults' or `~/.Xresources' file. The class name is + `Metafont'. If you're using the Xt support, all the usual X toolkit + resources are supported. If you're using the Xlib support, only + the `geometry' resource is supported. + + You specify the X display to which Metafont connects in the + `DISPLAY' environment variable, as usual. + + + Writing support for a new device is straightforward. Aside from +defining the basic drawing routines that Metafont uses (see `mf.web'), +you only have to add another entry to the tables on the last page of +`web2c/lib/texmfmp.c'. Or you can write an independent program and use +MFtalk (see `web2c/window/mftalk.c'). + + +File: web2c.info, Node: gftodvi invocation, Next: mft invocation, Prev: Online Metafont graphics, Up: Metafont + +5.5 GFtoDVI: Character proofs of fonts +====================================== + +GFtoDVI makes "proof sheets" from a GF bitmap file as output by, for +example, Metafont (*note Metafont::). This is an indispensable aid for +font designers or Metafont hackers. Synopsis: + + gftodvi [OPTION]... GFNAME[gf] + + The font GFNAME is searched for in the usual places (*note Glyph +lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set +the environment variable `KPATHSEA_DEBUG' to `-1' before running the +program. + + The suffix `gf' is supplied if not already present. This suffix is +not an extension; no `.' precedes it: for instance `cmr10.600gf'. + + The output filename is the basename of GFNAME extended with `.dvi', +e.g., `gftodvi /wherever/foo.600gf' creates `./foo.dvi'. + + The characters from GFNAME appear one per page in the DVI output, +with labels, titles, and annotations, as specified in Appendix H +(Hardcopy Proofs) of `The Metafontbook'. + + GFtoDVI uses several fonts besides GFNAME itself: + + * "gray font" (default `gray'): for the pixels that actually make up + the character. Simply using black is not right, since then labels, + key points, and other information could not be shown. + + * "title font" (default `cmr8'): for the header information at the + top of each output page. + + * "label font" (default `cmtt10'): for the labels on key points of + the figure. + + * "slant font" (no default): for diagonal lines, which are otherwise + simulated using horizontal and vertical rules. + + + To change the default fonts, you must use `special' commands in your +Metafont source file. + + The program accepts the following option, as well as the standard +`-verbose', `-help', and `-version' (*note Common options::): +`-overflow-label-offset=POINTS' + Typeset the so-called overflow labels, if any, POINTS TeX points + from the right edge of the character bounding box. The default is + a little over two inches (ten million scaled points, to be + precise). Overflow equations are used to locate coordinates when + their actual position is too crowded with other information. + + +File: web2c.info, Node: mft invocation, Prev: gftodvi invocation, Up: Metafont + +5.6 MFT: Prettyprinting Metafont source +======================================= + +MFT translates a Metafont program into a TeX document suitable for +typesetting, with the aid of TeX macros defined in the file +`mftmac.tex'. Synopsis: + + mft [OPTION]... MFNAME[.mf] + + MFT searches the usual places for MFNAME (*note Supported file +formats: (kpathsea)Supported file formats.). To see all the relevant +paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before +running the program. The output goes to the basename of MFNAME extended +with `.tex', e.g., `mft /wherever/foo.mf' creates `./foo.tex'. + + Line breaks in the input are carried over into the output; moreover, +blank spaces at the beginning of a line are converted to quads of +indentation in the output. Thus, you have full control over the +indentation and line breaks. Each line of input is translated +independently of the others. + + Further control is allowed via Metafont comments: + * Metafont comments following a single `%' should be valid TeX + input. But Metafont material can be included within vertical bars + in a comment; this will be translated by MFT as if it were regular + Metafont code. For example, a comment like `% |x2r| is the tip of + the bowl' will be translated into the TeX `% $x_{2r}$ is the ...', + i.e., the `x2r' is treated as an identifier. + + * `%%' indicates that the remainder of an input line should be copied + verbatim to the output. This is typically used to introduce + additional TeX material at the beginning or an MFT job, e.g. code + to modify the standard layout or the formatting macros defined in + `mftmac.tex', or to add a line saying `%%\bye' at the end of the + job. (MFT doesn't add this automatically in order to allow + processing several files produces by MFT in the same TeX job.) + + * `%%% TOKEN1 OTHER-TOKENS' introduces a change in MFT's formatting + rules; all the OTHER-TOKENS will henceforth be translated + according to the current conventions for TOKEN1. The tokens must + be symbolic (i.e., not numeric or string tokens). For example, the + input line + %%% addto fill draw filldraw + says to format the `fill', `draw', and `filldraw' operations of + plain Metafont just like the primitive token `addto', i.e., in + boldface type. Without such reformatting commands, MFT would + treat `fill' like an ordinary tag or variable name. In fact, you + need a `%%%' command even to get parentheses to act like + delimiters. + + * `%%%%' introduces an MFT comment, i.e., MFT ignores the remainder + of such a line. + + * Five or more `%' signs should not be used. + + (The above description was edited from `mft.web', written by +D.E. Knuth.) + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-change=CHFILE[.ch]' + Apply the change file CHFILE as with Tangle and Weave (*note + WEB::). + +`-style=MFTFILE[.mft]' + Read MFTFILE before anything else; a MFT style file typically + contains only MFT directives as described above. The default + style file is named `plain.mft', which defines this properly for + programs using plain Metafont. The MFT files is searched along the + `MFTINPUTS' path; see *Note Supported file formats: + (kpathsea)Supported file formats. + + Other examples of MFT style files are `cmbase.mft', which defines + formatting rules for the macros defined in `cm.base', and `e.mft', + which was used in the production of Knuth's Volume E, `Computer + Modern Typefaces'. + + Using an appropriate MFT style file, it is also possible to + configure MFT for typesetting MetaPost sources. However, MFT does + not search the usual places for MetaPost input files. + + If you use eight-bit characters in the input file, they are passed +on verbatim to the TeX output file; it is up to you to configure TeX to +print these properly. + + +File: web2c.info, Node: MetaPost, Next: BibTeX, Prev: Metafont, Up: Top + +6 MetaPost: Creating technical illustrations +******************************************** + +MetaPost is a picture-drawing language similar to Metafont (*note +Metafont::), but instead of outputting bitmaps in a "font", it outputs +PostScript commands. It's primarily intended for creating technical +illustrations. + + MetaPost also provides for arbitrary integration of text and +graphics in a natural way, using any typesetter (TeX and Troff are both +supported) and a number of other subsidiary programs, described below. + +* Menu: + +* mpost invocation:: Invoking MetaPost. +* Initial MetaPost:: Making mems. +* makempx invocation:: Create MPX files for labels. +* dvitomp invocation:: DVI-to-MPX translation. +* dmp invocation:: Ditroff-to-MPX translation. +* mpto invocation:: Extracting labels from MetaPost programs. +* newer invocation:: Is one file newer than another? + + +File: web2c.info, Node: mpost invocation, Next: Initial MetaPost, Up: MetaPost + +6.1 `mpost' invocation +====================== + +MetaPost (installed as `mpost') reads a series of pictures specified in +the MetaPost programming language, and outputs corresponding PostScript +code. This section merely describes the options available in the Web2c +implementation. For a complete description of the MetaPost language, +see AT&T technical report CSTR-162, generally available in +`TEXMF/doc/metapost/', where TEXMF is the root of TeX directory +structure. See also: + * `http://cm.bell-labs.com/who/hobby/MetaPost.html' (the + MetaPost author's home page); + + * `http://tug.org/metapost.html' (papers, packages, and + related information). + + Also, a standard MetaPost package for drawing graphs is documented in +AT&T technical report CSTR-164, available as the file `mpgraph.ps', +generally stored alongside `mpman.ps'. + + MetaPost processes its command line and determines its memory dump +(mem) file in a way exactly analogous to Metafont and TeX (*note `tex' +invocation: tex invocation, and *note Memory dumps::). Synopses: + + mpost [OPTION]... [MPNAME[.mp]] [MP-COMMANDS] + mpost [OPTION]... \FIRST-LINE + mpost [OPTION]... &MEM ARGS + + MetaPost searches the usual places for the main input file MPNAME +(*note Supported file formats: (kpathsea)Supported file formats.), +extending MPNAME with `.mp' if necessary. To see all the relevant +paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before +running the program. + + MetaPost writes its PostScript output to a series of files +`BASEMPNAME.NNN' (or perhaps `BASEMPNAME.ps', very occasionally +`BASEMPNAME.tfm'), where NNN are the figure numbers specified in the +input, typically to the `beginfig' macro, and BASEMPNAME is the +basename of MPNAME, or `mpout' if no input file was specified. +MetaPost uses the `.ps' extension when the figure number is out of +range, e.g., if you say `beginfig(-1)'. + + You can use the output files as figures in a TeX document just as +with any other PostScript figures. For example, with this TeX command: + \special{psfile="FILENAME"} + or by using `epsf.tex' (*note EPSF macros: (dvips)EPSF macros.). + + The MetaPost construct + btex ... TEX-INPUT ... etex + calls MakeMPX to generate a MPX file containing a MetaPost picture +expression corresponding to TEX-INPUT (*note makempx invocation::). + + The construct + verbatimtex ... TEX-INPUT ... etex + simply passes the TEX-INPUT through to MakeMPX and thus to TeX. For +example, if you are using LaTeX, your MetaPost input file must start +with a `verbatimtex' block that gives the necessary `\documentclass' +(or `\documentstyle') `\begin{document}' command. You will also need +to set the enviroment variable `TEX' to `latex' (*note makempx +invocation::). + + TEX-INPUT need not be specifically TeX input; it could also be +Troff. In that case, you will need the `-m pictures' Troff macro +package (unfortunately absent from many Troff implementations), or an +equivalent such as the `-m pspic' macros from GNU groff described in +grops(1). + + Other typesetters can be supported with no change to MetaPost itself; +only MakeMPX needs to be updated. + + Naturally, you must use fonts that are supported by the typesetter; +specifically, you'll probably want to use standard PostScript fonts with +Troff. And only the TeX system understands Computer Modern or other +Metafont fonts; you can also use PostScript fonts with TeX, of course. + + MetaPost-generated PostScript figures which do use Computer Modern +fonts for labels cannot be directly previewed or printed. Instead, you +must include them in a TeX document and run the resulting DVI file +through Dvips to arrange for the downloading of the required fonts +(*note Fonts in figures: (dvips)Fonts in figures.). To help with this, +the MetaPost distribution provides a small TeX file `mproof.tex' which +is typically called as: + tex mproof MP-OUTPUT-FILES... ; dvips mproof -o + The resulting file `mproof.ps' can then be printed or previewed. + + To generate EPSF files, set the internal MetaPost variable +`prologues' positive. To make the output files self-contained, use +only standard PostScript fonts. MetaPost reads the same `psfonts.map' +file as Dvips, to determine PostScript fonts that need to be downloaded +(*note psfonts.map: (dvips)psfonts.map.). + + MetaPost can write output files, via the `write' primitive; this +opens a security hole. *Note tex invocation::. + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-[no]-file-line-error' +`-fmt=FMTNAME' +`-halt-on-error' +`-ini' +`-interaction=STRING' +`-jobname=STRING' +`-kpathsea-debug=NUMBER' +`-[no]parse-first-line' +`-output-directory' +`-progname=STRING' +`-recorder' +`-translate-file=TCXFILE' +`-8bit' + These options are common to TeX, Metafont, and MetaPost. *Note + Common options::. + +`-T' +`-troff' + Set the `prologues' internal variable to `1', and use `makempx + -troff' to generate MPX files. + +`-tex=TEXPROGRAM' + When this option is given, the program TEXPROGRAM is used to + typeset the labels. + + + +File: web2c.info, Node: Initial MetaPost, Next: makempx invocation, Prev: mpost invocation, Up: MetaPost + +6.2 Initial MetaPost +==================== + +`inimpost' is the "initial" form of MetaPost, which does lengthy +initializations avoided by the "virgin" (`vir') form, so as to be +capable of dumping `.mem' files (*note Memory dumps::). For a detailed +comparison of virgin and initial forms, see *Note Initial and virgin::. +In past releases, a separate program `inimpost' was installed for the +initial form, but this is no longer the case. + + For a list of options and other information, see *Note mpost +invocation::. + + The principal memory dump file used with MetaPost is the default, +`plain.mem', also known as `mpost.mem' (again, *note Memory dumps::). +It is created by default during installation, but you can also do so by +hand if necessary (e.g., if a `plain.mp' update is issued): + mpost -ini '\input plain dump' + (The quotes prevent interpretation of the backslashes from the +shell.) Then install the resulting `plain.mem' in `$(memdir)' +(`/usr/local/share/texmf/web2c' by default), and link `mpost.mem' to it. + + MetaPost also provides a mem file with all the features of plain +Metafont, called `mfplain.mem'. You can create that in the same way; +just replace `plain' in the above command with `mfplain'. +`mfplain.mem' file lets you directly process Metafont source files with +MetaPost, producing character proofs (one file for each character) +similar to those produced with Metafont in proof mode and GFtoDVI +(*note gftodvi invocation::). + + Another MetaPost mem file, named MetaFun, provides many advanced +features. It was developed and maintained by Pragma ADE. The home +page for MetaFun, and other MetaPost-related things from Pragma: +`http://www.pragma-ade.com/metapost.htm'. + + +File: web2c.info, Node: makempx invocation, Next: dvitomp invocation, Prev: Initial MetaPost, Up: MetaPost + +6.3 MakeMPX: Support MetaPost labels +==================================== + +In MetaPost, labels can be typeset using any document processor; the +Web2c implementation supports TeX and Troff. MakeMPX translates the +labels from the typesetting language back into low-level MetaPost +commands in a so-called "mpx file", so text can be manipulated like +other graphic objects. It is invoked automatically by MetaPost. +Synopsis: + + makempx [-troff] MPFILE MPXFILE + +The input comes from MPFILE (no path searching is done), and the output +goes to MPXFILE. However, if the file MPXFILE already exists, and is +newer than MPFILE, then nothing is done (presumably the file is +up-to-date). + + Otherwise: + 1. MPto is run to extract the label text from the MetaPost source + file MPFILE (*note mpto invocation::). + + 2. The typesetting program itself is run, either TeX or Troff (see + below). If TeX, and the file named by the `MPTEXPRE' environment + variable exists (`mptexpre.tex' by default), that file is + prepended to the input from the MetaPost file. + + 3. The typesetter output (a DVI file in the case of TeX, Ditroff + output for Troff) is translated back to MetaPost, by DVItoMP + (*note dvitomp invocation::) or DMP (*note dmp invocation::) + respectively. + + If any of the above steps fail, for example if there was a +typesetting mistake in the original MPFILE, output may be left in files +named `mpxerr.{log,tex,dvi}' (TeX) or `mpxerr{,.t}' (Troff), so you can +diagnose the problem. + + The `-troff' option to MPto selects the Troff commands, rather than +TeX. MetaPost supplies this automatically if the `-T' or `-troff' +option was specified to MetaPost. + + The MPX file created by MakeMPX is a sequence of MetaPost picture +expressions, one for every label in the original MetaPost input file. + + The names of the commands run by MakeMPX, and the directory added to +the shell search `PATH' for the commands' location, are overridden by +environment variables. Here is a list: + +`MAKEMPX_BINDIR' + The directory added to the `PATH'. Default is the `$(bindir)' + Make directory, which in turn is set from the configure-time + `--bindir', `--exec-prefix' and `--prefix' options; if nothing + else is specified, the default is file `/usr/local'. + +`NEWER' + The command run to determine if MPXFILE is out of date with respect + to MPFILE; default is `newer'. + +`MPTOTEX' + The command run to extract MetaPost labels in TeX format; default + is `mpto -tex'. + +`MPTOTR' + Likewise, for Troff; default is `mpto -troff'. + +`DVITOMP' + The command run to convert TeX output back to MetaPost; default is + `dvitomp'. + +`DMP' + Likewise, for Troff; default is `dmp'. + +`TEX' + The command run to typeset the labels in TeX; default is `tex'. + If you use LaTeX, set this to `latex', and supply an appropriate + `verbatimtex' header in the MP source (*note mpost invocation::). + +`TROFF' + Likewise, for Troff; default is `'eqn -d\$\$ | troff -Tpost''. You + may need to replace `-Tpost' by `-TTERM', where TERM is the + PostScript device name for your Troff implementation, e.g., `ps' + or `psc'; see troff(1). + + If you change this, you will also need to set the `TRFONTS' + environment variable or configuration value to point to the + appropriate font directory, traditionally `/usr/lib/font/devTERM'. + + + +File: web2c.info, Node: dvitomp invocation, Next: dmp invocation, Prev: makempx invocation, Up: MetaPost + +6.4 DVItoMP: DVI to MPX conversion +================================== + +DVItoMP converts DVI files into low-level MetaPost commands in a +so-called MPX file. This program is generally invoked only by MakeMPX +(*note makempx invocation::). Synopsis: + + dvitomp DVIFILE[.dvi] [MPXFILE[.mpx]] + +If MPXFILE is not specified, the output goes to the basename of DVIFILE +extended with `.mpx', e.g., `dvitomp /wherever/foo.dvi' creates +`./foo.mpx'. + + The only options are `-help' and `-version' (*note Common options::). + + +File: web2c.info, Node: dmp invocation, Next: mpto invocation, Prev: dvitomp invocation, Up: MetaPost + +6.5 DMP: Ditroff to MPX conversion +================================== + +DMP converts device-independent Troff (ditroff) output files into +low-level MetaPost commands in a so-called MPX file. This program is +generally invoked by MakeMPX (*note makempx invocation::). Synopsis: + + dmp [DITROFF-FILE [MPXFILE]] + +If DITROFF-FILE is not specified, input comes from standard input; and +if MPXFILE is not specified, output goes to standard output. + + DMP was written to process the output of a Troff pipeline fed the +output of `mpto -troff' (*note mpto invocation::). DMP understands all +the `DC' graphics functions that `dpost' does, but it ignores `x X' +device control functions such as `x X SetColor:...', `x X BeginPath:', +and `x X DrawPath:...'. + + The available font names are defined in the support file +`trfonts.map', which DMP looks for along the `MPSUPPORT' path. + + Another support file `trchars.adj', also looked for along the +`MPSUPPORT' path, contains a character adjustment table which should +reflect the shift amounts found in the standard PostScript prologue for +Troff and dpost found in the `TRFONTS' directory. Such an adjustment +table is unnecessary for some Troff implementations, in which case +`trchars.adj' should be replaced by an empty file--but it must still +exist. + + DMP was written for one particular Troff implementation, and it +unfortunately has many built-in assumptions about the output and fonts +file formats used by Troff, which may not be satisfied in other +environments. In particular, GNU groff uses some extensions in its file +formats described in groff_font(5) and groff_out(5) which make its +output completely unusable for DMP. On the other hand, the Troff +version found in Sun Solaris 2.x, and perhaps other systems derived from +System V R4, works fine with the default settings. + + If you run into trouble and want to adapt DMP to other systems, you +might have to try the following (this is primarily for hackers): + + * If DMP complains about a missing font table (e.g., `Cannot find + TR'), your Troff may not support the device `post'. + + Check troff(1) for the devices supported by your Troff and set the + `TROFF' environment variable appropriately (see above). Also, + locate the appropriate font directory and set the `TRFONTS' + variable as needed. + + * If DMP complains about a missing font description file (e.g., `Font + TR was not in map file'), your version of Troff may be using + internal font names different from those in the distributed + `trfonts.map'; e.g., TR and TI instead of R and I for Times-Roman + and Times-Italic. + + In this case, you may have to adapt `trfonts.map' and perhaps also + `trchars.adj' in the MetaPost support directory + (`texmf/metapost/support' by default). + + * If DMP still complains that it cannot parse the font description + files or the Troff output (e.g., `TR has a bad line in its + description file', you are probably out of luck and have to hack + the DMP program (in `web2c/mpware/dmp.c'). + + Such problems may be caused by subtle differences in the file + formats, such as use of tabs vs. spaces as field separators or + decimal vs. octal vs. hex format for font metric data. + + A reasonably good description of the expected Troff file formats + can be found in AT&T technical report CSTR-54 (`Troff User's + Manual', Revised 1992). Documentation on the subtle differences + in other Troff implementation is harder to find except for GNU + groff, where it's all documented in the above-mentioned + groff_font(5) and groff_out(5). + + Any contributions to improve the portability of DMP or to make it + work with GNU groff are welcome, of course. + + + (Some of the above description was edited from the `dmp.c' source +file, written by John Hobby.) + + The only options are `--help' and `--version' (*note Common +options::). + + +File: web2c.info, Node: mpto invocation, Next: newer invocation, Prev: dmp invocation, Up: MetaPost + +6.6 MPto: Extract labels from MetaPost input +============================================ + +MPto extracts the labels from a MetaPost input file; this is the +contents of any `btex...etex' and `verbatimtex...etex' sections. This +program is generally invoked by MakeMPX (*note makempx invocation::). +Synopsis: + + mpto [OPTION]... MPFILE + +The input comes from MPFILE; no path searching is done. The output +goes to standard output. Leading and trailing spaces and tabs are +removed, and various predefined typesetter commands are included at the +beginning of and end of the file and of each section. + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-troff' + Surround the MetaPost sections with Troff commands. + +`-tex' + Surround the MetaPost sections with TeX commands. This is the + default. + + +File: web2c.info, Node: newer invocation, Prev: mpto invocation, Up: MetaPost + +6.7 Newer: Compare file modification times +========================================== + +Newer compares file modification times. Synopsis: + + newer SRC1 [ SRC2 ... SRCN ] TARGET + +Newer exits successfully if the files SRC1 ... SRCN exist and at least +one of them is not older than DEPENDENT, i.e., the modification time +(mtime) of at least one of the source files is greater than or the same +as that of DEPENDENT. Newer also exits successfully if the file +DEPENDENT doesn't exist. *Note Attribute Meanings: (libc)Attribute +Meanings. + + The program accepts the following option, as well as the standard +`--help' and `--version' (*note Common options::): +`--quiet' + Return result only, do not print any output. + +`--verbose' + List missing source files to STDERR. This is the default. + + This is used by MakeMPX (*note makempx invocation::). + + +File: web2c.info, Node: BibTeX, Next: WEB, Prev: MetaPost, Up: Top + +7 BibTeX: Bibliographies +************************ + +BibTeX automates much of the job of typesetting bibliographies, and +makes bibliography entries reusable in many different contexts. + +* Menu: + +* bibtex invocation:: +* Basic BibTeX style files:: The standard and semi-standard styles. + + +File: web2c.info, Node: bibtex invocation, Next: Basic BibTeX style files, Up: BibTeX + +7.1 BibTeX invocation +===================== + +BibTeX creates a printable bibliography (`.bbl') file from references +in a `.aux' file, generally written by TeX or LaTeX. The `.bbl' file +is then incorporated on a subsequent run. The basic bibliographic +information comes from `.bib' files, and a BibTeX style (`.bst') file +controls the precise contents of the `.bbl' file. Synopsis: + + bibtex [OPTION]... AUXFILE[.aux] + +The output goes to the basename of AUXFILE extended with `.bbl'; for +example, `bibtex /wherever/foo.aux' creates `./foo.bbl'. BibTeX also +writes a log file to the basename of AUXFILE extended with `.blg'. + + The names of the `.bib' and `.bst' files are specified in the `.aux' +file as well, via the `\bibliography' and `\bibliographystyle' (La)TeX +macros. BibTeX searches for `.bib' files using the `BIBINPUTS' and +`TEXBIB' paths, and for `.bst' files using `BSTINPUTS' (*note Supported +file formats: (kpathsea)Supported file formats.). It does no path +searching for `.aux' files. + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-terse' + Suppress the program banner and progress reports normally output. + +`-min-crossrefs=N' + If at least N (2 by default) bibliography entries refer to another + entry E via their `crossref' field, include E in the .bbl file, + even if it was not explicitly referenced in the .aux file. For + example, E might be a conference proceedings as a whole, with the + cross-referencing entries being individual articles published in + the proceedings. In some circumstances, you may want to avoid + these automatic inclusions altogether; to do this, make N a + sufficiently large number. + + See also: +`btxdoc.tex' + Basic LaTeXable documentation for general BibTeX users. + +`btxhak.tex' + LaTeXable documentation for style designers. + +`btxdoc.bib' + BibTeX database file for the two above documents. + +`xampl.bib' + Example database file with all the standard entry types. + +``ftp://ftp.math.utah.edu/pub/tex/bib/'' + A very large `.bib' and `.bst' collection, including references + for all the standard TeX books and a complete bibliography for + TUGboat. + + +File: web2c.info, Node: Basic BibTeX style files, Prev: bibtex invocation, Up: BibTeX + +7.2 Basic BibTeX style files +============================ + +Here are descriptions of the four standard and four semi-standard basic +BibTeX styles. `CTAN:/biblio/bibtex' contains these and many more (for +CTAN info, *note unixtex.ftp: (kpathsea)unixtex.ftp.). + +`plain' + Sorts entries alphabetically, with numeric labels. Generally + formatted according to van Leunen's `A Handbook for Scholars'. + The other style files listed here are based on `plain'. + +`abbrv' + First names, month names, and journal names are abbreviated. + +`acm' + Names are printed in small caps. + +`alpha' + Alphanumeric labels, e.g., `Knu66'. + +`apalike' + No labels at all; instead, the year appears in parentheses after + the author. Use this in conjunction with `apalike.tex' (plain + TeX) or `apalike.sty' (LaTeX), which also changes the citations in + the text to be `(AUTHOR, YEAR)'. + +`ieeetr' + Numeric labels, entries in citation order, IEEE abbreviations, + article titles in quotes. + +`siam' + Numeric labels, alphabetic order, `Math. Reviews' abbreviations, + names in small caps. + +`unsrt' + Lists entries in citation order, i.e., unsorted. + +`btxbst.doc' + The template file and documentation for the standard styles. + + + +File: web2c.info, Node: WEB, Next: DVI utilities, Prev: BibTeX, Up: Top + +8 WEB: Literate programming +*************************** + +"WEB" languages allow you to write a single source file that can +produce both a compilable program and a well-formatted document +describing the program in as much detail as you wish to prepare. +Writing in this kind of dual-purpose language is called "literate +programming". (The Usenet newsgroup `comp.programming.literate' and +the mailing list <litprog@shsu.edu> are devoted to this subject; they +are gatewayed to each other.) + + WEB-like languages have been implemented with many pairs of base +languages: Cweb provides C and Troff (*note References::); CWEB provides +C and TeX (`CTAN:/web/c_cpp/cweb'); Spiderweb provides C, C++, Awk, +Ada, many others, and TeX (`CTAN:/web/spiderweb'); and, of course, the +original WEB provides Pascal and TeX, the implementation languages for +the original TeX, Metafont, MetaPost, and related programs to come from +the TeX project at Stanford. + + The original WEB language is documented in the file `webman.tex', +which is included in the `ftp://ftp.tug.org/tex/lib.tar.gz' archive +(and available in many other places, of course). + +* Menu: + +* tangle invocation:: +* weave invocation:: +* pooltype invocation:: + + +File: web2c.info, Node: tangle invocation, Next: weave invocation, Up: WEB + +8.1 Tangle: Translate WEB to Pascal +=================================== + +Tangle creates a compilable Pascal program from a WEB source file +(*note WEB::). Synopsis: + + tangle [OPTION]... WEBFILE[.web] [CHANGEFILE[.ch]] + +The Pascal output is written to the basename of WEBFILE extended with +`.p'; for example, `tangle /wherever/foo.web' creates `./foo.p'. +Tangle applies CHANGEFILE to WEBFILE before writing the output; by +default, there is no change file. + + If the program makes use of the WEB string facility, Tangle writes +the string pool to the basename of WEBFILE extended with `.pool'. + + The Pascal output is packed into lines of 72 characters or less, with +the only concession to readability being the termination of lines at +semicolons when this can be done conveniently. + + The program accepts the following options, as well as the standard +`--help' and `--version' (*note Common options::): + +`-length=NUMBER' + The number of characters that are considered significant in an + identifier. Whether underline characters are counted depends on + the `-underline' option. The default value is 32, the original + tangle used 7, but this proved too restrictive for use by Web2c. + +`-lowercase' +`-mixedcase' +`-uppercase' + These options specify the case of identifiers in the output of + tangle. If `-uppercase' (`-lowercase') is specified, tangle will + convert all identfiers to uppercase (lowercase). The default is + `-mixedcase', which specifies that the case will not be changed. + +`-underline' + When this option is given, tangle does not strip underline + characters from identifiers. + +`-loose' +`-strict' + These options specify how strict tangle must be when checking + identifiers for equality. The default is `-loose', which means + that tangle will follow the rules set by the case-smashing and + underline options above. If `-strict' is set, then identifiers + will always be stripped of underlines and converted to uppercase + before checking whether they collide. + + + +File: web2c.info, Node: weave invocation, Next: pooltype invocation, Prev: tangle invocation, Up: WEB + +8.2 Weave: Translate WEB to TeX +=============================== + +Weave creates a TeX document from a WEB source file (*note WEB::), +assuming various macros defined in `webmac.tex'. It takes care of +typographic details such as page layout, indentation, and italicizing +identifiers. It also automatically gathers and outputs extensive +cross-reference information. Synopsis: + + weave [OPTION]... WEBFILE[.web] [CHANGEFILE[.ch]] + +The output is to the basename of WEBFILE extended with `.tex'; for +example, `weave /wherever/foo.web' creates `./foo.tex'. Weave applies +CHANGEFILE to WEBFILE before writing the output; by default, there is +no change file. + + The program accepts the following option, as well as the standard +`-verbose', `-help' and `-version' (*note Common options::): +`-x' + Omit the cross-reference information: the index, the list of WEB + module names, and the table of contents (an empty `CONTENTS.tex' + file will still be written when the Weave output file is processed + by TeX using the default `webmac.tex', though). + + Conventionally, WEB programmers should define the TeX `\title' macro +at the beginning of the source file. Also, to get output of only +changed modules, one can say `\let\maybe=\iffalse' (usually as the +first change in the change file). + + +File: web2c.info, Node: pooltype invocation, Prev: weave invocation, Up: WEB + +8.3 Pooltype: Display WEB pool files +==================================== + +Pooltype shows the so-called "string number" of each string in a WEB +pool file (*note WEB::), as output by Tangle (*note tangle +invocation::), including the first 256 strings corresponding to the +possible input characters. Pooltype primarily serves as an example of +WEB conventions to implementors of the TeX system. Synopsis: + + pooltype [OPTION]... POOLFILE[.pool] + +No path searching is done for POOLFILE. Output is to standard output. + + The only options are `--help' and `--version' (*note Common +options::). + + As an example of the output, here is the (edited) output for +`tex.pool': + 0: "^^@" + 1: "^^A" + ... + 255: "^^ff" + 256: "pool size" + ... + 1314: "Using character substitution: " + (23617 characters in all.) + + In Metafont and MetaPost, the first 256 characters are actually +represented as single bytes (i.e., themselves), not in the `^^' +notation. Consider Pooltype as showing the results after conversion for +output. + + +File: web2c.info, Node: DVI utilities, Next: Font utilities, Prev: WEB, Up: Top + +9 DVI utilities +*************** + +TeX outputs a file in "DVI" (DeVice Independent) format as a compact +representation of the original document. DVI files can be translated +to meet the requirements of a real physical device, such as PostScript +printers (*note Introduction: (dvips)Top.), PCL printers (see +dvilj(1)), and X displays (see xdvi(1)). In fact, DVI translators are +available for virtually all common devices: see `CTAN:/dviware' (for +CTAN info, *note unixtex.ftp: (kpathsea)unixtex.ftp.). + + For the precise definition of the DVI file format, see (for example) +the source file `web2c/dvitype.web'. + + The DVI-processing programs in the Web2c distribution are not device +drivers; they perform generic utility functions. + +* Menu: + +* dvicopy invocation:: Expand virtual fonts. +* dvitype invocation:: DVI to human-readable text. + + +File: web2c.info, Node: dvicopy invocation, Next: dvitype invocation, Up: DVI utilities + +9.1 DVIcopy: Canonicalize virtual font references +================================================= + +DVIcopy reads a DVI file, expands any references to virtual fonts +(*note Virtual fonts: (dvips)Virtual fonts.) to base fonts, and writes +the resulting DVI file. Thus you can use virtual fonts even if your DVI +processor does not support them, by passing the documents through +DVIcopy first. Synopsis: + + dvicopy [OPTION]... [INDVI[.dvi] [OUTDVI[.dvi]]] + + DVIcopy reads standard input if INDVI is not specified, and writes +standard output if OUTDVI is not specified. + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-magnification=INTEGER' + Override existing magnification in INDVI with INTEGER; 1000 + specifies no magnification. This is equivalent to setting TeX's + `\mag' parameter. + +`-max-pages=N' + Process N pages; default is one million. + +`-page-start=PAGE-SPEC' + Start at the first page matching PAGE-SPEC, which is one or more + (signed) integers separated by periods, corresponding to TeX's + `\count0...9' parameters at `\shipout' time; `*' matches anything. + Examples: `3', `1.*.-4'. + + +File: web2c.info, Node: dvitype invocation, Prev: dvicopy invocation, Up: DVI utilities + +9.2 DVItype: Plain text transliteration of DVI files +==================================================== + +DVItype translates a DeVice Independent (DVI) file (as output by TeX, +for example) to a plain text file that humans can read. It also serves +as a DVI-validating program, i.e., if DVItype can read a file, it's +correct. Synopsis: + + dvitype [OPTION]... DVIFILE[.dvi] + +DVItype does not read any bitmap files, but it does read TFM files for +fonts referenced in DVIFILE. The usual places are searched (*note +Supported file formats: (kpathsea)Supported file formats.). To see all +the relevant paths, set the environment variable `KPATHSEA_DEBUG' to +`-1' before running the program. + + Output goes to standard output. + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-dpi=REAL' + Do pixel movement calculations at REAL pixels per inch; default + 300.0. + +`-magnification=INTEGER' + Override existing magnification in INDVI with INTEGER; 1000 + specifies no magnification. This is equivalent to setting TeX's + `\mag' parameter. + +`-max-pages=N' + Process N pages; default is one million. + +`-output-level=N' + Verbosity level of output, from 0 to 4 (default 4): + * 0: Global document information only. + + * 1: Most DVI commands included, and typeset characters + summarized. + + * 2: Character and movement commands explicitly included. + + * 3: DVI stack and current position calculations included. + + * 4: Same information as level 3, but DVItype does random + positioning in the file, reading the DVI postamble first. + +`-page-start=PAGE-SPEC' + Start at the first page matching PAGE-SPEC, which is one or more + (signed) integers separated by periods, corresponding to TeX's + `\count0...9' parameters at `\shipout' time; `*' matches anything. + Examples: `1', `5.*.-9'. + +`-show-opcodes' + Show numeric opcode values (in decimal) for DVI commands, in braces + after the command name. This can help in debugging DVI utilities. + We use decimal because in the DVI format documentation (in + `dvitype.web', among others) the opcodes are shown in decimal. + +* Menu: + +* dvitype output example:: + + +File: web2c.info, Node: dvitype output example, Up: dvitype invocation + +9.2.1 DVItype output example +---------------------------- + +As an example of the output from DVItype (see section above), here is +its (abridged) translation of the `story.dvi' resulting from running +the example in `The TeXbook', with `-output-level=4' and +`-show-opcodes' on. + + ... + Options selected: + Starting page = * + Maximum number of pages = 1000000 + Output level = 4 (the works) + Resolution = 300.00000000 pixels per inch + numerator/denominator=25400000/473628672 + magnification=1000; 0.00006334 pixels per DVI unit + ' TeX output 1992.05.17:0844' + Postamble starts at byte 564. + maxv=43725786, maxh=30785863, maxstackdepth=3, totalpages=1 + Font 33: cmsl10---loaded at size 655360 DVI units + Font 23: cmbx10---loaded at size 655360 DVI units + Font 0: cmr10---loaded at size 655360 DVI units + + 42: beginning of page 1 + 87: push {141} + level 0:(h=0,v=0,w=0,x=0,y=0,z=0,hh=0,vv=0) + 88: down3 -917504 {159} v:=0-917504=-917504, vv:=-58 + 92: pop {142} + ... + 104: putrule {137} height 26214, width 30785863 (2x1950 pixels) + 113: down3 5185936 {159} v:=655360+5185936=5841296, vv:=370 + 117: push {141} + level 1:(h=0,v=5841296,w=0,x=0,y=0,z=0,hh=0,vv=370) + 118: right4 12265425 {146} h:=0+12265425=12265425, hh:=777 + [ ] + 123: fntdef1 23 {243}: cmbx10 + 145: fntnum23 {194} current font is cmbx10 + 146: setchar65 h:=12265425+569796=12835221, hh:=813 + 147: w3 251220 {150} h:=12835221+251220=13086441, hh:=829 + 151: setchar83 h:=13086441+418700=13505141, hh:=856 + ... + 164: setchar82 h:=17448202+565245=18013447, hh:=1142 + 165: x0 -62805 {152} h:=18013447-62805=17950642, hh:=1138 + 166: setchar89 h:=17950642+569796=18520438, hh:=1174 + [A SHORT STORY] + 167: pop {142} + level 1:(h=0,v=5841296,w=0,x=0,y=0,z=0,hh=0,vv=370) + ... + 550: pop {142} + level 0:(h=0,v=42152922,w=0,x=0,y=0,z=0,hh=0,vv=2670) + 551: down3 1572864 {159} v:=42152922+1572864=43725786, vv:=2770 + 555: push {141} + level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770) + 556: right4 15229091 {146} h:=0+15229091=15229091, hh:=965 + 561: setchar49 h:=15229091+327681=15556772, hh:=986 + [ 1] + 562: pop {142} + level 0:(h=0,v=43725786,w=0,x=0,y=0,z=0,hh=0,vv=2770) + 563: eop {140} + + Explanation: + + * The DVItype options are recorded at the beginning, followed by + global information about the document, including fonts used. + + * Each DVI command is preceded by its byte position in the file + (`42:', `87:', ...), and (because of the `-show-opcodes') followed + by its decimal opcode value in braces (`{141}', `{142}', ...). + + * The `level' lines record information about the DVI stack; `h' and + `v' define the current position in DVI units, while `hh' and `vv' + are the same in pixels. + + * Text sequences are summarized in brackets, as in `[A SHORT STORY]' + and the `[ 1]'. + + +File: web2c.info, Node: Font utilities, Next: Legalisms, Prev: DVI utilities, Up: Top + +10 Font utilities +***************** + +The Web2c programs described here convert between various TeX-related +font formats; the first section below briefly describes the formats. +GFtoPK is the only one that is routinely used, as Metafont outputs GF +format, but it's most efficient for device drivers to use PK. + + The precise definitions of the PK, GF, TFM, PL, VF, and VPL formats +mentioned below are in the source files that read them; `pktype.web', +`gftype.web', `tftopl.web', etc. + +* Menu: + +* Font file formats:: Explanations of GF, PK, TFM, VF, ... +* gftopk invocation:: GF -> PK (compact) +* pktogf invocation:: PK -> GF (expand). +* pktype invocation:: PK -> human-readable text. +* gftype invocation:: GF -> human-readable text. +* tftopl invocation:: TFM -> PL (for editing TFM). +* pltotf invocation:: PL -> TFM (make editing results usable). +* vftovp invocation:: VF -> VPL (tftopl for virtual fonts). +* vptovf invocation:: VPL -> VF (pltotf for virtual fonts). +* Font utilities available elsewhere:: Type 1, BDF, editors, etc. + + +File: web2c.info, Node: Font file formats, Next: gftopk invocation, Up: Font utilities + +10.1 Font file formats +====================== + +(For another perspective on this, *note Font concepts: (dvips)Font +concepts.). + + Font files come in several varieties, with suffixes like: + .tfm .*pk .*gf .*pxl (obsolete) .pl .mf .vf .vpl + Each represents a file format. + + A TFM (TeX font metric) file is a compact binary file that contains +information about each character in a font, about combinations of +characters within that font, and about the font as a whole. The font +metric information contained in TFM files is device-independent units is +used by TeX to do typesetting. Unlike the bitmap (raster) fonts +described below, TFM font files contain no information about the shapes +of characters. They describe rectangular areas and combinations +thereof, but not what will eventually be printed in those areas. + + Since TeX does scaling calculations, one TFM file serves for all +magnifications of a given typeface. On the other hand, the best printed +results are obtained when magnified (or reduced fonts) are not produced +geometrically (as done by PostScript, for example) but rather optically, +with each size a separate design (as done with Computer Modern and the +EC fonts, for example); then a separate TFM file is needed for each +size. + + At any rate, TeX produces a DVI (DeVice Independent) file from your +source document. In order to print DVI files on real devices, you need +font files defining digitized character shapes and other data. Then +previewers and printer-driver programs can translate your DVI files into +something usable by your monitor or printer. Bitmap fonts come with +suffixes such as `.600pk' or `.600gf' or `.3000pxl', where the `600' is +the horizontal dots-per-inch resolution at which the font was produced, +and the `pk' or `gf' or `pxl' indicates the font format. Outline fonts +in PostScript Type 1 format have suffixes such as `.pfa' or `.pfb'. + + Fonts in pk (packed) format are in the tightly packed raster format +that is pretty much the standard today. They take up less space than +fonts in the gf (generic font) format that Metafont generates, and far +less space than fonts in pxl format. Fonts in pxl format take up gross +amounts of disk space and permit only 128 characters. They are +obsolete. + + Font files with the `.pl' (property list) suffix are the plain text +(human-readable) analog of the binary `.tfm' files. The TFtoPL and +PLtoTF programs convert between the two formats (*note tftopl +invocation:: and *Note pltotf invocation::). + + Font files with the `.mf' suffix are in Metafont source format. +These are the files used by Metafont to generate rastered fonts for +specific typefaces at specific magnifications for the specific +resolution and type of mapping used by your device. + + The suffix `.vf' identifies "virtual font" files, for which `.vpl' +is the human-readable analog. See *Note vftovp invocation::, and *Note +vptovf invocation::. For further discussion of virtual fonts, see +`CTAN:/doc/virtual-fonts.knuth', `CTAN:/help/virtualfonts.txt', and +*Note Virtual fonts: (dvips)Virtual fonts. + + (This section is based on documentation in the original Unix TeX +distribution by Pierre MacKay and Elizabeth Tachikawa.) + + +File: web2c.info, Node: gftopk invocation, Next: pktogf invocation, Prev: Font file formats, Up: Font utilities + +10.2 GFtoPK: Generic to packed font conversion +============================================== + +GFtoPK converts a generic font (GF) file output by, for example, +Metafont (*note mf invocation::) to a packed font (PK) file. PK files +are considerably smaller than the corresponding gf files, so they are +generally the bitmap font format of choice. Some DVI-processing +programs, notably Dvips, only support PK files and not GF files. +Synopsis: + + gftopk [OPTION]... GFNAME.DPI[gf] [PKFILE] + +The font GFNAME is searched for in the usual places (*note Glyph +lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set +the environment variable `KPATHSEA_DEBUG' to `-1' before running the +program. + + The suffix `gf' is supplied if not already present. This suffix is +not an extension; no `.' precedes it: for instance, `cmr10.600gf'. + + If PKFILE is not specified, the output is written to the basename of +`GFNAME.DPIpk', e.g., `gftopk /wherever/cmr10.600gf' creates +`./cmr10.600pk'. + + The only options are `--verbose', `--help', and `--version' (*note +Common options::). + + +File: web2c.info, Node: pktogf invocation, Next: pktype invocation, Prev: gftopk invocation, Up: Font utilities + +10.3 PKtoGF: Packed to generic font conversion +============================================== + +PKtoGF converts a packed font (PK) file to a generic font (GF) file. +Since PK format is much more compact than GF format, the most likely +reason to do this is to run GFtype (*note gftype invocation::) on the +result, so you can see the bitmap images. Also, a few old utility +programs do not support PK format. Synopsis: + + pktogf [OPTION]... PKNAME.DPI[pk] [GFFILE] + +The font PKNAME is searched for in the usual places (*note Glyph +lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set +the environment variable `KPATHSEA_DEBUG' to `-1' before running the +program. + + The suffix `pk' is supplied if not already present. This suffix is +not an extension; no `.' precedes it: for instance, `cmr10.600pk'. + + If GFFILE is not specified, the output is written to the basename of +`PKNAME.DPIgf', e.g., `pktogf /wherever/cmr10.600pk' creates +`./cmr10.600gf'. + + The only options are `--verbose', `--help', and `--version' (*note +Common options::). + + +File: web2c.info, Node: pktype invocation, Next: gftype invocation, Prev: pktogf invocation, Up: Font utilities + +10.4 PKtype: Plain text transliteration of packed fonts +======================================================= + +PKtype translates a packed font (PK) bitmap file (as output by GFtoPK, +for example) to a plain text file that humans can read. It also serves +as a PK-validating program, i.e., if PKtype can read a file, it's +correct. Synopsis: + + pktype PKNAME.DPI[pk] + + The font PKNAME is searched for in the usual places (*note Glyph +lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set +the environment variable `KPATHSEA_DEBUG' to `-1' before running the +program. + + The suffix `pk' is supplied if not already present. This suffix is +not an extension; no `.' precedes it: for instance, `cmr10.600pk'. + + The translation is written to standard output. + + The only options are `-help' and `-version' (*note Common options::). + + As an example of the output, here is the (abridged) translation of +the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' +from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'). + + 955: Flag byte = 184 Character = 75 Packet length = 174 + Dynamic packing variable = 11 + TFM width = 815562 dx = 4259840 + Height = 57 Width = 57 X-offset = -3 Y-offset = 56 + [2]23(16)17(8)9(25)11(13)7(27)7(16)7(28)4(18)7(28)2(20)7(27)... + ... + (14)9(24)12(5)[2]23(13)21 + +Explanation: + +`955' + The byte position in the file where this character starts. + +`Flag byte' +`Dynamic packing variable' + Related to the packing for this character; see the source code. + +`Character' + The character code, in decimal. + +`Packet length' + The total length of this character definition, in bytes. + +`TFM width' + The device-independent (TFM) width of this character. It is 2^24 + times the ratio of the true width to the font's design size. + +`dx' + The device-dependent width, in "scaled pixels", i.e., units of + horizontal pixels times 2^16. + +`Height' +`Width' + The bitmap height and width, in pixels. + +`X-offset' +`Y-offset' + Horizontal and vertical offset from the upper left pixel to the + reference (origin) pixel for this character, in pixels (right and + down are positive). The "reference pixel" is the pixel that + occupies the unit square in Metafont; the Metafont reference point + is the lower left hand corner of this pixel. Put another way, the + x-offset is the negative of the left side bearing; the right side + bearing is the horizontal escapement minus the bitmap width plus + the x-offset. + +`[2]23(16)...' + Finally, run lengths of black pixels alternate with parenthesized + run lengths of white pixels, and brackets indicate a repeated row. + + +File: web2c.info, Node: gftype invocation, Next: tftopl invocation, Prev: pktype invocation, Up: Font utilities + +10.5 GFtype: Plain text transliteration of generic fonts +======================================================== + +GFtype translates a generic font (GF) bitmap file (as output by +Metafont, for example) to a plain text file that humans can read. It +also serves as a GF-validating program, i.e., if GFtype can read a file, +it's correct. Synopsis: + + gftype [OPTION]... GFNAME.DPI[gf] + + The font GFNAME is searched for in the usual places (*note Glyph +lookup: (kpathsea)Glyph lookup.). To see all the relevant paths, set +the environment variable `KPATHSEA_DEBUG' to `-1' before running the +program. + + The suffix `gf' is supplied if not already present. This suffix is +not an extension; no `.' precedes it: for instance, `cmr10.600gf'. + + The translation is written to standard output. + + The program accepts the following options, as well as the standard +`-help' and `-version' (*note Common options::): +`-images' + Show the characters' bitmaps using asterisks and spaces. + +`-mnemonics' + Translate all commands in the GF file. + + As an example of the output, here is the (abrdiged) translation of +the letter `K' in `cmr10', as rendered at 600dpi with the mode `ljfour' +from `modes.mf' (available from `ftp://ftp.tug.org/tex/modes.mf'), with +both `-mnemonics' and `-images' enabled. + + GFtype outputs the information about a character in two places: a +main definition and a one-line summary at the end. We show both. Here +is the main definition: + + 2033: beginning of char 75: 3<=m<=60 0<=n<=56 + (initially n=56) paint (0)24(12)20 + 2043: newrow 0 (n=55) paint 24(12)20 + 2047: newrow 0 (n=54) paint 24(12)20 + 2051: newrow 0 (n=53) paint 24(12)20 + 2055: newrow 7 (n=52) paint 10(21)13 + 2059: newrow 8 (n=51) paint 8(23)9 + ... + 2249: newrow 8 (n=5) paint 8(23)11 + 2253: newrow 7 (n=4) paint 10(22)12 + 2257: newrow 0 (n=3) paint 24(11)22 + 2261: newrow 0 (n=2) paint 24(11)22 + 2265: newrow 0 (n=1) paint 24(11)22 + 2269: newrow 0 (n=0) paint 24(11)22 + 2273: eoc + .<--This pixel's lower left corner is at (3,57) in METAFONT coordinates + ************************ ******************** + ************************ ******************** + ************************ ******************** + ************************ ******************** + ********** ************* + ******** ********* + ... + ******** *********** + ********** ************ + ************************ ********************** + ************************ ********************** + ************************ ********************** + ************************ ********************** + .<--This pixel's upper left corner is at (3,0) in METAFONT coordinates + +Explanation: + +`2033' +`2043' +`...' + The byte position in the file where each GF command starts. + +`beginning of char 75' + The character code, in decimal. + +`3<=m<=60 0<=n<=56' + The character's bitmap lies between 3 and 60 (inclusive) + horizontally, and between 0 and 56 (inclusive) vertically. (m is a + column position and n is a row position.) Thus, 3 is the left side + bearing. The right side bearing is the horizontal escapement + (given below) minus the maximum m. + +`(initially n=56) paint (0)24(12)20' + The first row of pixels: 0 white pixels, 24 black pixels, 12 white + pixels, etc. + +`newrow 0 (n=55) paint 24(12)20' + The second row of pixels, with zero leading white pixels on the + row. + +`eoc' + The end of the main character definition. + + + Here is the GF postamble information that GFtype outputs at the end: + + Character 75: dx 4259840 (65), width 815562 (64.57289), loc 2033 + + Explanation: + +`dx' + The device-dependent width, in "scaled pixels", i.e., units of + horizontal pixels times 2^16. The `(65)' is simply the same number + rounded. If the vertical escapement is nonzero, it would appear + here as a `dy' value. + +`width' + The device-independent (TFM) width of this character. It is 2^24 + times the ratio of the true width to the font's design size. The + `64.57289' is the same number converted to pixels. + +`loc' + The byte position in the file where this character starts. + + + +File: web2c.info, Node: tftopl invocation, Next: pltotf invocation, Prev: gftype invocation, Up: Font utilities + +10.6 TFtoPL: TeX font metric to property list conversion +======================================================== + +TFtoPL translates a TeX font metric (TFM, *note Metric files: +(dvips)Metric files.) file (as output by Metafont, for example) to +"property list format" (a list of parenthesized items describing the +font) that humans can edit or read. This program is mostly used by +people debugging TeX implementations, writing font utilities, etc. +Synopsis: + + tftopl [OPTION]... TFMNAME[.tfm] [PLFILE[.pl]] + + The font TFMNAME (extended with `.tfm' if necessary) is searched for +in the usual places (*note Supported file formats: (kpathsea)Supported +file formats.). To see all the relevant paths, set the environment +variable `KPATHSEA_DEBUG' to `-1' before running the program. + + If PLFILE (which is extended with `.pl' if necessary) is not +specified, the property list file is written to standard output. The +property list file can be converted back to TFM format by the companion +program TFtoPL (see the next section). + + The program accepts the following option, as well as the standard +`-verbose', `-help' and `-version' (*note Common options::): +`-charcode-format=TYPE' + Output character codes in the PL file according to TYPE: either + `octal' or `ascii'. Default is `ascii' for letters and digits, + octal for all other characters. Exception: if the font's coding + scheme starts with `TeX math sy' or `TeX math ex', all character + codes are output in octal. + + In `ascii' format, character codes that correspond to graphic + characters, except for left and right parentheses, are output as a + `C' followed by the single character: `C K', for example. In + octal format, character codes are output as the letter `O' followed + by octal digits, as in `O 113' for `K'. + + `octal' format is useful for symbol and other non-alphabetic fonts, + where using ASCII characters for the character codes is merely + confusing. + + As an example of the output, here is the (abridged) property list +translation of `cmr10.tfm': + + (FAMILY CMR) + (FACE O 352) + (CODINGSCHEME TEX TEXT) + (DESIGNSIZE R 10.0) + (COMMENT DESIGNSIZE IS IN POINTS) + (COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE) + (CHECKSUM O 11374260171) + (FONTDIMEN + (SLANT R 0.0) + (SPACE R 0.333334) + (STRETCH R 0.166667) + (SHRINK R 0.111112) + (XHEIGHT R 0.430555) + (QUAD R 1.000003) + (EXTRASPACE R 0.111112) + ) + (LIGTABLE + ... + (LABEL C f) + (LIG C i O 14) + (LIG C f O 13) + (LIG C l O 15) + (KRN O 47 R 0.077779) + (KRN O 77 R 0.077779) + (KRN O 41 R 0.077779) + (KRN O 51 R 0.077779) + (KRN O 135 R 0.077779) + (STOP) + ... + ) + ... + (CHARACTER C f + (CHARWD R 0.305557) + (CHARHT R 0.694445) + (CHARIC R 0.077779) + (COMMENT + (LIG C i O 14) + (LIG C f O 13) + (LIG C l O 15) + (KRN O 47 R 0.077779) + (KRN O 77 R 0.077779) + ... + ) + ) + ... + + As you can see, the general format is a list of parenthesized +"properties", nested where necessary. + + * The first few items (`FAMILY', `FACE', and so on) are the + so-called "headerbyte" information from Metafont, giving general + information about the font. + + * The `FONTDIMEN' property defines the TeX `\fontdimen' values. + + * The `LIGTABLE' property defines the ligature and kerning table. + `LIG' properties define ligatures: in the example above, an `f' + (in the `LABEL') followed by an `i' is a ligature, i.e., a + typesetting program like TeX replaces those two consecutive + characters by the character at position octal '014 in the current + font--presumably the `fi' ligature. `KRN' properties define + kerns: if an `f' is followed by character octal '047 (an + apostrophe), TeX inserts a small amount of space between them: + 0.077779 times the design size the font was loaded at (about + three-quarters of a printer's point by default in this case, or + .001 inches). + + * The `CHARACTER' property defines the dimensions of a character: its + width, height, depth, and italic correction, also in design-size + units, as explained in the previous item. For our example `f', + the depth is zero, so that property is omitted. TFtoPL also + inserts any kerns and ligatures for this character as a comment. + + + +File: web2c.info, Node: pltotf invocation, Next: vftovp invocation, Prev: tftopl invocation, Up: Font utilities + +10.7 PLtoTF: Property list to TeX font metric conversion +======================================================== + +PLtoTF translates a property list file (as output by TFtoPL, for +example) to TeX font metric (TFM, *note Metric files: (dvips)Metric +files.) format. It's much easier for both programs and humans to +create the (plain text) property list files and let PLtoTF take care of +creating the binary TFM equivalent than to output TFM files directly. +Synopsis: + + pltotf [OPTION]... PLFILE[.pl] [TFMFILE[.tfm]] + + If TFMFILE (extended with `.tfm' if necessary) is not specified, the +TFM file is written to the basename of `PLFILE.tfm', e.g., `pltotf +/wherever/cmr10.pl' creates `./cmr10.tfm'. (Since TFM files are +binary, writing to standard output by default is undesirable.) + + The only options are `-verbose', `-help', and `-version' (*note +Common options::). + + For an example of property list format, see the previous section. + + +File: web2c.info, Node: vftovp invocation, Next: vptovf invocation, Prev: pltotf invocation, Up: Font utilities + +10.8 VFtoVP: Virtual font to virtual property lists +=================================================== + +VFtoVP translates a virtual font metric (VF, *note Virtual fonts: +(dvips)Virtual fonts.) file and its accompanying TeX font metric (TFM, +*note Metric files: (dvips)Metric files.) file (as output by VPtoVF, for +example) to "virtual property list format" (a list of parenthesized +items describing the virtual font) that humans can edit or read. This +program is mostly used by people debugging virtual font utilities. +Synopsis: + + vftovp [OPTION]... VFNAME[.vf] [TFMNAME[.tfm] [VPLFILE[.vpl]]] + + The fonts VFNAME and TFMNAME (extended with `.vf' and `.tfm' if +necessary) are searched for in the usual places (*note Supported file +formats: (kpathsea)Supported file formats.). To see all the relevant +paths, set the environment variable `KPATHSEA_DEBUG' to `-1' before +running the program. If TFMNAME is not specified, VFNAME (without a +trailing `.vf') is used. + + If VPLFILE (extended with `.vpl' if necessary) is not specified, the +property list file is written to standard output. The property list +file can be converted back to VF and TFM format by the companion +program VFtoVP (see the next section). + + The program accepts the following option, as well as the standard +`-verbose', `-help' and `-version' (*note Common options::): +`-charcode-format=TYPE' + Output character codes in the PL file according to TYPE: either + `octal' or `ascii'. Default is `ascii' for letters and digits, + octal for all other characters. Exception: if the font's coding + scheme starts with `TeX math sy' or `TeX math ex', all character + codes are output in octal. + + In `ascii' format, character codes that correspond to graphic + characters, except for left and right parentheses, are output as a + `C' followed by the single character: `C K', for example. In + octal format, character codes are output as the letter `O' followed + by octal digits, as in `O 113' for `K'. + + `octal' format is useful for symbol and other non-alphabetic fonts, + where using ASCII characters for the character codes is merely + confusing. + + +File: web2c.info, Node: vptovf invocation, Next: Font utilities available elsewhere, Prev: vftovp invocation, Up: Font utilities + +10.9 VPtoVF: Virtual property lists to virtual font +=================================================== + +VPtoVF translates a virtual property list file (as output by VFtoVP, for +example) to virtual font (VF, *note Virtual fonts: (dvips)Virtual +fonts.) and TeX font metric (TFM, *note Metric files: (dvips)Metric +files.) files. It's much easier for both programs and humans to create +the (plain text) property list files and let VPtoVF take care of +creating the binary VF and TFM equivalents than to output them +directly. Synopsis: + + vptovf [OPTION]... VPLFILE[.vpl] [VFFILE[.vf] [TFMFILE[.tfm]]] + + If VFFILE (extended with `.vf' if necessary) is not specified, the +VF output is written to the basename of `VPLFILE.vf'; similarly for +TFMFILE. For example, `vptovf /wherever/ptmr.vpl' creates `./ptmr.vf' +and `./ptmr.tfm'. + + The only options are `-verbose', `-help', and `-version' (*note +Common options::). + + +File: web2c.info, Node: Font utilities available elsewhere, Prev: vptovf invocation, Up: Font utilities + +10.10 Font utilities available elsewhere +======================================== + +The Web2c complement of font utilities merely implements a few basic +conversions. Many other more sophisticated font utilities exist; most +are in `CTAN:/fonts/utilities' (for CTAN info, *note unixtex.ftp: +(kpathsea)unixtex.ftp.). Here are some of the most commonly-requested +items: + + * AFM (Adobe font metric) to TFM conversion: *note Invoking afm2tfm: + (dvips)Invoking afm2tfm, and `CTAN:/fonts/utilities/afmtopl'. + + * BDF (the X bitmap format) conversion: + `ftp://ftp.tug.org/tex/bdf.tar.gz'. + + * Creating fonts using MetaPost: MetaType1. + `ftp://bop.eps.gda.pl/pub/metatype1'. This is used to create the + excellent Latin Modern font family (`CTAN:/fonts/lm'), which + extends Computer Modern to a vast repertoire of scripts. + + * Editing of bitmap fonts: Xbfe from the GNU font utilities mentioned + below; the X BDF-editing programs available from + `ftp://ftp.x.org/R5contrib/xfed.tar.Z' and + `ftp://ftp.x.org/R5contrib/xfedor.tar.Z'; and finally, if your + fonts have only 128 characters, you can use the old `gftopxl', + `pxtoch', and `chtopx' programs from `ftp://ftp.tug.org/tex/web'. + + * Editing of outline fonts: FontForge, `fontforge.sourceforge.net'. + This is a very elaborate program with support for many outline + formats (Type 1, OpenType, TrueType, ...), and many advanced font + editing features. + + * PK bitmaps from PostScript outline fonts: gsftopk from the `xdvi' + distribution. Alternatively, `ps2pk', from + `CTAN:/fonts/utilities/ps2pk'. + + * PostScript Type 1 font format conversion (i.e., between PFA and PFB + formats): `ftp://ftp.tug.org/tex/t1utils.tar.gz'. + + * Scanned image conversion: the (aging) GNU font utilities convert + type specimen images to Metafont, PostScript, etc.: + `http://www.gnu.org/software/fontutils/'. + + * Tracing bitmaps to fitted outlines: Autotrace + (`http://autotrace.sourceforge.net'), Potrace + (`http://potrace.sourceforge.net'). For Metafont fonts, either of + the two programs `mftrace' + (`http://www.xs4all.nl/~hanwen/mftrace') or `textrace' + (`http://textrace.sourceforge.net') make the job easier. + + * Virtual font creation: `CTAN:/fonts/utilities/fontinst'. + + +File: web2c.info, Node: Legalisms, Next: References, Prev: Font utilities, Up: Top + +Appendix A Legalisms +******************** + +In general, each file has its own copyright notice stating the copying +permissions for that file. Following is a summary. + + The Web2c system itself and most of the original WEB source files are +public domain. + + `tex.web', the MLTeX code, `mf.web', and `bibtex.web', are +copyrighted by their authors. They may be copied verbatim, but may be +modified only through a `.ch' file. + + MetaPost-related files, including `mp.web' itself, are copyrighted +under X-like terms; the precise notice is included below. + + Finally, the Kpathsea library is covered by the GNU Lesser General +Public License (*note Introduction: (kpathsea)Introduction.). +Therefore, the _binaries_ resulting from a standard Web2c compilation +are also covered by the LGPL; so if you (re)distribute the binaries, +you must also (offer to) distribute the complete source that went into +those binaries. See the file `LGPL' for complete details on the LGPL. + + The following notice must be included by the terms of the MetaPost +copyright. + + Permission to use, copy, modify, and distribute this software and + its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that the copyright notice and this permission + notice and warranty disclaimer appear in supporting documentation, + and that the names of AT&T Bell Laboratories or any of its + entities not be used in advertising or publicity pertaining to + distribution of the software without specific, written prior + permission. + + AT&T disclaims all warranties with regard to this software, + including all implied warranties of merchantability and fitness. + In no event shall AT&T be liable for any special, indirect or + consequential damages or any damages whatsoever resulting from + loss of use, data or profits, whether in an action of contract, + negligence or other tortious action, arising out of or in + connection with the use or performance of this software. + + +File: web2c.info, Node: References, Next: Index, Prev: Legalisms, Up: Top + +Appendix B References +********************* + + 1. Kpathsea: *Note Introduction: (kpathsea)Top. + + 2. Dvips and Afm2tfm: *Note Introduction: (dvips)Top. + + 3. The TeX Users Group: `http://www.tug.org'. For an introduction to + the TeX system, see `http://tug.org/begin.html'. + + 4. TUGboat: `http://tug.org/TUGboat'. + + 5. TeX and computer typesetting in general: + `ftp://ftp.math.utah.edu/pub/tex/bib/texbook1.bib'. + + 6. For a bibliography of formal articles and technical reports on the + TeX project, see the books `TeX: The Program' or `Metafont: The + Program' cited below. + + 7. [Bil87] Neenie Billawala. Write-white printing engines and tuning + fonts with Metafont. `TUGboat', 8(1):29-32, April 1987. + + 8. [GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin. + `The LaTeX Companion'. Addison-Wesley, Reading, MA, USA, 1994. + + 9. [Hob89] John D. Hobby. A Metafont-like system with PS output. + `TUGboat', 10(4):505-512, December 1989. + + 10. [Hob92] John D. Hobby. A User's Manual for MetaPost. Technical + Report CSTR-162, AT&T Bell Laboratories, 1992. + + 11. [Hob93] John D. Hobby. Drawing Graphs with MetaPost. Technical + Report CSTR-164, AT&T Bell Laboratories, 1993. + + 12. [HS91] Samuel P. Harbison and Guy L. Steele Jr. `C--A Reference + Manual'. Prentice-Hall, Upper Saddle River, NJ 07458, USA, third + edition, 1991. An authoritative reference to the C programming + language, and a good companion to Kernighan and Ritchie. + + 13. [KL93] Donald E. Knuth and Silvio Levy. `The CWEB System of + Structured Documentation, Version 3.0'. Addison-Wesley, Reading, + MA, USA, 1993. + + 14. [Knu84] Donald E. Knuth. A torture test for TeX. Report No. + STAN-CS-84-1027, Stanford University, Department of Computer + Science, 1984. + + 15. [Knu86a] Donald E. Knuth. A Torture Test for METAFONT. Report + No. STAN-CS-86-1095, Stanford University, Department of Computer + Science, 1986. + + 16. [Knu86b] Donald E. Knuth. `The TeXbook', volume A of `Computers + and Typesetting'. Addison-Wesley, Reading, MA, USA, 1986. + + 17. [Knu86c] Donald E. Knuth. `TeX: The Program', volume B of + `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 1986. + + 18. [Knu86d] Donald E. Knuth. `The METAFONTbook', volume C of + `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 1986. + + 19. [Knu86e] Donald E. Knuth. `METAFONT: The Program', volume D of + `Computers and Typesetting'. Addison-Wesley, Reading, MA, USA, + 1986. + + 20. [Knu86f] Donald E. Knuth. `Computer Modern Typefaces', volume E + of `Computers and Typesetting'. Addison-Wesley, Reading, MA, + USA, 1986. + + 21. [Knu89] Donald E. Knuth. The errors of TeX. `Software--Practice + and Experience', 19(7):607-681, July 1989. This is an updated + version of iteKnuth:1988:ET. + + 22. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards. + `TUGboat', 11(1):13-23, April 1990. + + 23. [Knu92] Donald E. Knuth. `Literate Programming'. CSLI Lecture + Notes Number 27. Stanford University Center for the Study of + Language and Information, Stanford, CA, USA, 1992. + + 24. [Lam94] Leslie Lamport. `LaTeX: A Document Preparation System: + User's Guide and Reference Manual'. Addison-Wesley, Reading, + MA, USA, second edition, 1994. Reprinted with corrections in 1996. + + 25. [Lia83] Franklin Mark Liang. Word hy-phen-a-tion by com-pu-ter. + Technical Report STAN-CS-83-977, Stanford University, August 1983. + + 26. [Mac91] Pierre A. MacKay. Looking at the pixels: Quality control + for 300 dpi laser printer fonts, especially Metafonts. In + Robert A. Morris and Jacques Andre, editors, `Raster Imaging and + Digital Typography II--Papers from the second RIDT meeting, held in + Boston, Oct. 14-16, 1991', pages 205-215, New York, 1991. + Cambridge University Press. + + 27. [Spi89] Michael D. Spivak. `LAMSTeX, The Synthesis'. The + TeXplorators Corporation, 3701 W. Alabama, Suite 450-273, Houston, + TX 77027, USA, 1989. + + 28. [Spi90] Michael D. Spivak. `The Joy of TeX--A Gourmet Guide to + Typesetting with the AMSTeX macro package'. American + Mathematical Society, Providence, RI, USA, 2nd revised edition, + 1990. + + + +File: web2c.info, Node: Index, Prev: References, Up: Top + +Index +***** + + +* Menu: + +* #define options: Compile-time options. + (line 6) +* $ expansion in filenames: \input filenames. (line 48) +* %& magic number: Determining the memory dump to use. + (line 20) +* - starting a filename: Option conventions. (line 19) +* - starts option names: Option conventions. (line 11) +* -- starts option names: Option conventions. (line 11) +* --disable-dump-share configure option: Hardware and memory dumps. + (line 6) +* --enable-ipc configure option: tex invocation. (line 101) +* --help common option: Common options. (line 11) +* --quiet (newer): newer invocation. (line 20) +* --verbose (newer): newer invocation. (line 23) +* --verbose common option: Common options. (line 15) +* --version common option: Common options. (line 18) +* --with-editor=CMD: Editor invocation. (line 10) +* --with-epsfwin: Online Metafont graphics. + (line 20) +* --with-hp2627win: Online Metafont graphics. + (line 28) +* --with-mftalkwin: Online Metafont graphics. + (line 31) +* --with-next: Online Metafont graphics. + (line 35) +* --with-regiswin: Online Metafont graphics. + (line 40) +* --with-suntoolswin: Online Metafont graphics. + (line 43) +* --with-tektronixwin: Online Metafont graphics. + (line 48) +* --with-unitermwin: Online Metafont graphics. + (line 51) +* --with-x: Online Metafont graphics. + (line 57) +* --with-x-toolkit=KIT: Online Metafont graphics. + (line 60) +* --with-x11: Online Metafont graphics. + (line 57) +* --with-x11win: Online Metafont graphics. + (line 57) +* -8bit: Common options. (line 103) +* -base=BASE: Determining the memory dump to use. + (line 15) +* -base=DUMPNAME: Common options. (line 34) +* -change=CHFILE: mft invocation. (line 64) +* -charcode-format=TYPE <1>: vftovp invocation. (line 31) +* -charcode-format=TYPE: tftopl invocation. (line 28) +* -D compiler options: Compile-time options. + (line 6) +* -dpi=REAL: dvitype invocation. (line 24) +* -enc: tex invocation. (line 95) +* -file-line-error: Common options. (line 25) +* -file-line-error-style: Common options. (line 26) +* -fmt=DUMPNAME: Common options. (line 34) +* -fmt=FMT: Determining the memory dump to use. + (line 15) +* -geometry, supported with Xt: Online Metafont graphics. + (line 66) +* -halt-on-error: Common options. (line 41) +* -images: gftype invocation. (line 26) +* -ini <1>: Initial and virgin. (line 12) +* -ini: Common options. (line 45) +* -interaction=STRING: Common options. (line 51) +* -ipc: tex invocation. (line 101) +* -ipc-start: tex invocation. (line 101) +* -jobname=STRING: Common options. (line 56) +* -kpathsea-debug=NUMBER: Common options. (line 60) +* -length=NUMBER: tangle invocation. (line 27) +* -loose: tangle invocation. (line 46) +* -lowercase: tangle invocation. (line 35) +* -magnification=INTEGER <1>: dvitype invocation. (line 28) +* -magnification=INTEGER: dvicopy invocation. (line 20) +* -max-pages=N <1>: dvitype invocation. (line 33) +* -max-pages=N: dvicopy invocation. (line 25) +* -mem=DUMPNAME: Common options. (line 34) +* -mem=MEM: Determining the memory dump to use. + (line 15) +* -min-crossrefs=N: bibtex invocation. (line 31) +* -mixedcase: tangle invocation. (line 35) +* -mktex=FILETYPE <1>: mf invocation. (line 87) +* -mktex=FILETYPE: tex invocation. (line 111) +* -mltex: tex invocation. (line 115) +* -mnemonics: gftype invocation. (line 29) +* -no-file-line-error: Common options. (line 26) +* -no-mktex=FILETYPE <1>: mf invocation. (line 87) +* -no-mktex=FILETYPE: tex invocation. (line 111) +* -no-parse-first-line: Common options. (line 78) +* -no-shell-escape: tex invocation. (line 128) +* -oem: Common options. (line 108) +* -output-comment=STRING: tex invocation. (line 120) +* -output-directory <1>: Output file location. + (line 15) +* -output-directory: Common options. (line 67) +* -output-level=N: dvitype invocation. (line 36) +* -overflow-label-offset=POINTS: gftodvi invocation. (line 49) +* -page-start=PAGE-SPEC <1>: dvitype invocation. (line 50) +* -page-start=PAGE-SPEC: dvicopy invocation. (line 28) +* -parse-first-line: Common options. (line 77) +* -progname=STRING <1>: Determining the memory dump to use. + (line 18) +* -progname=STRING: Common options. (line 83) +* -recorder: Common options. (line 90) +* -shell-escape: tex invocation. (line 127) +* -show-opcodes: dvitype invocation. (line 56) +* -strict: tangle invocation. (line 46) +* -style=MFTFILE: mft invocation. (line 68) +* -T: mpost invocation. (line 117) +* -terse: bibtex invocation. (line 28) +* -tex: mpto invocation. (line 24) +* -tex=TEXPROGRAM: mpost invocation. (line 121) +* -translate-file=TCXFILE: Common options. (line 96) +* -troff <1>: mpto invocation. (line 21) +* -troff <2>: makempx invocation. (line 39) +* -troff: mpost invocation. (line 117) +* -underline: tangle invocation. (line 41) +* -uppercase: tangle invocation. (line 35) +* -x: weave invocation. (line 22) +* ., used for output: Output file location. + (line 6) +* .2602gf: mf invocation. (line 48) +* .aux cross-reference files: bibtex invocation. (line 6) +* .base: Initial Metafont. (line 6) +* .bbl bibliography files: bibtex invocation. (line 6) +* .bib bibliography databases: bibtex invocation. (line 6) +* .blg BibTeX log file: bibtex invocation. (line 14) +* .fmt: Initial TeX. (line 6) +* .mem: Initial MetaPost. (line 6) +* .mf: mf invocation. (line 24) +* .mp: mpost invocation. (line 31) +* .NNN PostScript figures: mpost invocation. (line 37) +* .NNNgf generic fonts: mf invocation. (line 34) +* .tcx character translation files <1>: TCX files. (line 6) +* .tcx character translation files: Common options. (line 96) +* .tex: tex invocation. (line 20) +* .tfm output <1>: mpost invocation. (line 37) +* .tfm output: mf invocation. (line 43) +* .Xdefaults: Online Metafont graphics. + (line 66) +* .Xresources: Online Metafont graphics. + (line 66) +* 2602gf: mf invocation. (line 48) +* 8 bit clean: Common options. (line 103) +* 8 bit clean output, specifying: Common options. (line 103) +* 8-bit characters: TCX files. (line 6) +* \bibliography: bibtex invocation. (line 18) +* \bibliographystyle: bibtex invocation. (line 18) +* \charsubdef and MLTeX: \charsubdef. (line 6) +* \countN <1>: dvitype invocation. (line 50) +* \countN: dvicopy invocation. (line 28) +* \font and dynamic generation: tex invocation. (line 44) +* \fontdimen: tftopl invocation. (line 100) +* \immediate\write18: tex invocation. (line 128) +* \input filenames: \input filenames. (line 6) +* \mag <1>: dvitype invocation. (line 28) +* \mag: dvicopy invocation. (line 20) +* \openout and security: tex invocation. (line 51) +* \string: \input filenames. (line 60) +* \tracingcharsubdef and MLTeX: \tracingcharsubdef. (line 6) +* \tracinglostchars and MLTeX: \tracingcharsubdef. (line 11) +* \write18 shell escape extension: tex invocation. (line 128) +* ^^ notation, avoiding: TCX files. (line 88) +* `Computer Modern Typefaces', production of: mft invocation. (line 75) +* abbrv.bst: Basic BibTeX style files. + (line 16) +* accented character: TCX files. (line 6) +* accents, hyphenating words with: MLTeX. (line 6) +* acknowledgements: Introduction. (line 51) +* acm.bst: Basic BibTeX style files. + (line 19) +* Ada, WEB for: WEB. (line 14) +* additional Make targets: Additional targets. (line 6) +* AFM to TFM conversion: Font utilities available elsewhere. + (line 12) +* afm2tfm: Font utilities available elsewhere. + (line 12) +* afmtopl: Font utilities available elsewhere. + (line 12) +* aliases for fonts: Path searching. (line 15) +* alpha.bst: Basic BibTeX style files. + (line 22) +* American Mathematical Society, typesetting system: Formats. (line 39) +* AMSTeX: Formats. (line 39) +* apalike.bst: Basic BibTeX style files. + (line 25) +* Arabic typesetting: TeX extensions. (line 25) +* architecture dependencies: Hardware and memory dumps. + (line 6) +* array limit, fixed: Runtime options. (line 36) +* array sizes: Runtime options. (line 6) +* assembly language routines: Compile-time options. + (line 22) +* autotrace: Font utilities available elsewhere. + (line 46) +* Awk, WEB for: WEB. (line 14) +* base file, determining: Determining the memory dump to use. + (line 6) +* base files: Initial Metafont. (line 6) +* base files, need mode definitions: Modes. (line 6) +* base files, plain only: Initial Metafont. (line 28) +* base files, sharing: Hardware and memory dumps. + (line 6) +* bases Make target: Additional targets. (line 29) +* basic BibTeX style files: Basic BibTeX style files. + (line 6) +* basic fonts and macros: Installation. (line 34) +* batch languages: TeX. (line 9) +* BDF and GF conversion: Font utilities available elsewhere. + (line 15) +* beginfig: mpost invocation. (line 37) +* BeginPath ditroff command: dmp invocation. (line 15) +* Berry, Karl: Introduction. (line 41) +* BIBINPUTS, search path for bib files: bibtex invocation. (line 18) +* bibliographies, creating: BibTeX. (line 6) +* bibliography: References. (line 6) +* bibliography items, cross-referenced: bibtex invocation. (line 31) +* bibtex: bibtex invocation. (line 6) +* BibTeX: BibTeX. (line 6) +* BibTeX collection: bibtex invocation. (line 54) +* BibTeX style files: Basic BibTeX style files. + (line 6) +* BigEndian machines: Hardware and memory dumps. + (line 6) +* binaries, linking: Common options. (line 83) +* blank lines, in TCX files: TCX files. (line 67) +* Bourne shell commands in TeX: tex invocation. (line 128) +* boxes, memory for: Runtime options. (line 20) +* breakpoints, memory for: Runtime options. (line 20) +* Breitenlohner, Peter: Introduction. (line 9) +* BSTINPUTS, search path for bst files: bibtex invocation. (line 18) +* btex and label extraction: mpto invocation. (line 6) +* btex for MetaPost labels: mpost invocation. (line 50) +* btxdoc.bib: bibtex invocation. (line 48) +* btxdoc.tex: bibtex invocation. (line 42) +* btxhak.tex: bibtex invocation. (line 45) +* byte position <1>: gftype invocation. (line 76) +* byte position: pktype invocation. (line 40) +* byte swapping: Hardware and memory dumps. + (line 13) +* c-sources Makefile target: Additional targets. (line 12) +* captions, extracting from MetaPost input: mpto invocation. (line 6) +* captions, for MetaPost: makempx invocation. (line 6) +* change files, and MFT: mft invocation. (line 64) +* change files, and Tangle: tangle invocation. (line 11) +* change files, and Weave: weave invocation. (line 14) +* changing error messages style: Common options. (line 26) +* character codes, in GFtype output: gftype invocation. (line 79) +* character codes, in PKtype output: pktype invocation. (line 47) +* character codes, in TCX files: TCX files. (line 78) +* character proofs of fonts: gftodvi invocation. (line 6) +* CHARACTER property: tftopl invocation. (line 114) +* character translation files: TCX files. (line 6) +* CHARDP property: tftopl invocation. (line 114) +* CHARHT property: tftopl invocation. (line 114) +* CHARIC property: tftopl invocation. (line 114) +* CHARWD property: tftopl invocation. (line 114) +* chtopx: Font utilities available elsewhere. + (line 23) +* class name for Metafont: Online Metafont graphics. + (line 66) +* cm.base: Initial Metafont. (line 28) +* cmbase.mf: Initial Metafont. (line 28) +* cmbase.mft: mft invocation. (line 75) +* cmmf.base not recommended: Initial Metafont. (line 28) +* comments, in TCX files: TCX files. (line 71) +* comments, MFT control: mft invocation. (line 24) +* common options: Common options. (line 6) +* commonalities: Commonalities. (line 6) +* comparing file modification times: newer invocation. (line 6) +* compilation: Installation. (line 6) +* compile-time options <1>: Compile-time options. + (line 6) +* compile-time options: configure options. (line 6) +* Computer Modern fonts, and Troff: mpost invocation. (line 73) +* Computer Modern macros: Initial Metafont. (line 28) +* configuration: Installation. (line 6) +* configuration file reading: Path searching. (line 6) +* configuration file values: Runtime options. (line 6) +* configuration, compile-time: configure options. (line 6) +* configure --with/--enable options: configure options. (line 6) +* CONTENTS.tex: weave invocation. (line 22) +* control sequence names, space for: Runtime options. (line 29) +* conventions for options,: Option conventions. (line 6) +* conversion, DVI to plain text: dvitype invocation. (line 6) +* conversion, GF to PK: gftopk invocation. (line 6) +* conversion, GF to plain text: gftype invocation. (line 6) +* conversion, PK to GF: pktogf invocation. (line 6) +* conversion, PK to plain text: pktype invocation. (line 6) +* conversion, property list to TFM: pltotf invocation. (line 6) +* conversion, property list to VF: vptovf invocation. (line 6) +* conversion, TFM to property list: tftopl invocation. (line 6) +* conversion, VF to VPL: vftovp invocation. (line 6) +* copyright notices: Legalisms. (line 6) +* Cork encoding and ISO input: TCX files. (line 49) +* creating memory dumps: Creating memory dumps. + (line 6) +* cross-referenced bibliography items: bibtex invocation. (line 31) +* cross-references, omitting: weave invocation. (line 22) +* current directory, used for output: Output file location. + (line 6) +* Curtis, Pavel: Introduction. (line 41) +* CWEB: WEB. (line 14) +* Cweb: WEB. (line 14) +* D C ditroff graphics: dmp invocation. (line 15) +* date and time, in memory dumps: Hardware and memory dumps. + (line 30) +* debugging DVI utilities: dvitype invocation. (line 56) +* debugging flags, specifying: Common options. (line 60) +* decimal character codes, in TCX files: TCX files. (line 78) +* dependencies, hardware: Hardware and memory dumps. + (line 6) +* design-size units: tftopl invocation. (line 102) +* device definitions, for Metafont: Modes. (line 6) +* device-independent width <1>: gftype invocation. (line 113) +* device-independent width: pktype invocation. (line 53) +* directory structure: Installation. (line 34) +* DISPLAY: Online Metafont graphics. + (line 73) +* ditroff output, converting to MPX: dmp invocation. (line 6) +* DMP <1>: dmp invocation. (line 6) +* DMP: makempx invocation. (line 71) +* DMP, invoked by MakeMPX: makempx invocation. (line 29) +* dmp.c: dmp invocation. (line 82) +* dot files, written by TeX programs: tex invocation. (line 51) +* downloading of fonts for MetaPost labels: mpost invocation. (line 78) +* dpost: dmp invocation. (line 15) +* DrawingServant: Online Metafont graphics. + (line 35) +* DrawPath ditroff command: dmp invocation. (line 15) +* dump file: Common options. (line 34) +* dumping memory: Memory dumps. (line 6) +* DVI comment, specifying: tex invocation. (line 120) +* DVI files, converting to MPX: dvitomp invocation. (line 6) +* DVI files, creating multiple: TeX extensions. (line 31) +* DVI files, explained: Font file formats. (line 30) +* DVI format definition: DVI utilities. (line 14) +* DVI opcodes, showing: dvitype invocation. (line 56) +* DVI utilities: DVI utilities. (line 6) +* dvicopy: dvicopy invocation. (line 6) +* dvitomp: dvitomp invocation. (line 6) +* DVITOMP: makempx invocation. (line 67) +* DVItoMP, invoked by MakeMPX: makempx invocation. (line 29) +* dvitype DVI validation: dvitype invocation. (line 6) +* dvitype output example: dvitype output example. + (line 6) +* dvitype.web: DVI utilities. (line 14) +* dx horizontal escapement <1>: gftype invocation. (line 107) +* dx horizontal escapement: pktype invocation. (line 57) +* dy vertical escapement: gftype invocation. (line 107) +* dynamic array allocation: Runtime options. (line 36) +* dynamic Metafont mode definitions with smode: Modes. (line 28) +* dynamic packing variable: pktype invocation. (line 44) +* e response at error prompt: Editor invocation. (line 6) +* e-circumflex: \charsubdef. (line 21) +* e-TeX: TeX extensions. (line 11) +* e.mft: mft invocation. (line 75) +* EC fonts <1>: mf invocation. (line 24) +* EC fonts: tex invocation. (line 44) +* editing of bitmap fonts: Font utilities available elsewhere. + (line 23) +* editor invoked at error: Editor invocation. (line 6) +* eight-bit characters in filenames: \input filenames. (line 35) +* empty.tcx: TCX files. (line 49) +* endian dependencies: Hardware and memory dumps. + (line 6) +* eoc GF command: gftype invocation. (line 97) +* Eplain: Formats. (line 54) +* epsf: Online Metafont graphics. + (line 19) +* errors, editor invoked at: Editor invocation. (line 6) +* escapement, horizontal <1>: gftype invocation. (line 107) +* escapement, horizontal: pktype invocation. (line 57) +* escapement, vertical: gftype invocation. (line 107) +* etex and label extraction: mpto invocation. (line 6) +* etex for MetaPost labels: mpost invocation. (line 50) +* executables, shared initial and virgin: Initial and virgin. (line 6) +* expanded plain format: Formats. (line 54) +* extensions to TeX: TeX extensions. (line 6) +* extra_mem_bot: Runtime options. (line 19) +* FACE property: tftopl invocation. (line 96) +* FAMILY property: tftopl invocation. (line 96) +* Ferguson, Michael: MLTeX. (line 6) +* file formats for fonts: Font file formats. (line 6) +* file mtimes, comparing: newer invocation. (line 6) +* file recorder: Common options. (line 90) +* File-handling TeX: TeX extensions. (line 31) +* filename conventions, in input files: \input filenames. (line 6) +* filenames starting with -: Option conventions. (line 19) +* first line of the main input file: Common options. (line 96) +* fixed-point arithmetic: Compile-time options. + (line 22) +* FIXPT: Compile-time options. + (line 22) +* flag byte: pktype invocation. (line 44) +* floating-point arithmetic: Compile-time options. + (line 22) +* floating-point values: Hardware and memory dumps. + (line 22) +* fmt file, determining: Determining the memory dump to use. + (line 6) +* fmt files: Initial TeX. (line 6) +* fmt files, sharing: Hardware and memory dumps. + (line 6) +* fmts Make target: Additional targets. (line 25) +* font aliases: Path searching. (line 15) +* font character code, translating: TCX files. (line 102) +* font design: Metafont. (line 6) +* font downloading for MetaPost labels: mpost invocation. (line 78) +* font file formats: Font file formats. (line 6) +* font proofs: gftodvi invocation. (line 6) +* font utilities: Font utilities. (line 6) +* font utilities, non-Web2c: Font utilities available elsewhere. + (line 6) +* font_mem_size: Runtime options. (line 24) +* fontforge: Font utilities available elsewhere. + (line 30) +* fontinst, for creating virtual fonts: Font utilities available elsewhere. + (line 53) +* fonts, basic: Installation. (line 34) +* fontutils: Font utilities available elsewhere. + (line 42) +* format files: Initial TeX. (line 15) +* formats for TeX: Formats. (line 6) +* formats Make target: Additional targets. (line 17) +* fraction routines: Compile-time options. + (line 22) +* Free Software Foundation documentation system: Formats. (line 47) +* freedom of Web2c: Introduction. (line 23) +* ftp.math.utah.edu: bibtex invocation. (line 54) +* generating source specials: tex invocation. (line 146) +* geometric designs: Metafont. (line 6) +* geometric font scaling: Font file formats. (line 22) +* geometry for Metafont: Online Metafont graphics. + (line 66) +* getopt_long_only: Option conventions. (line 6) +* GF files, explained: Font file formats. (line 40) +* GF files, output by Metafont: mf invocation. (line 34) +* GF format definition: Font utilities. (line 11) +* GF output: mf invocation. (line 34) +* GF, converting PK to: pktogf invocation. (line 6) +* GF, converting to PK: gftopk invocation. (line 6) +* gftodvi: gftodvi invocation. (line 6) +* gftopk: gftopk invocation. (line 6) +* gftopxl: Font utilities available elsewhere. + (line 23) +* gftype GF validation: gftype invocation. (line 6) +* gftype.web: Font utilities. (line 11) +* glue ratio representations: Hardware and memory dumps. + (line 22) +* glue, memory for: Runtime options. (line 20) +* glyph substitutions: MLTeX. (line 6) +* gray font: gftodvi invocation. (line 29) +* Gruff, Billy Goat: Triptrap. (line 6) +* gsftopk: Font utilities available elsewhere. + (line 35) +* Harbison, Samuel P.: Hardware and memory dumps. + (line 34) +* hardware and memory dumps: Hardware and memory dumps. + (line 6) +* hash table, increasing size of: Runtime options. (line 29) +* hash_extra: Runtime options. (line 28) +* headerbyte information: tftopl invocation. (line 96) +* height, in pixels: pktype invocation. (line 62) +* help, online: Common options. (line 11) +* Henry, Patrick: Introduction. (line 23) +* Herberts, Mathias: Online Metafont graphics. + (line 20) +* hex character codes, in TCX files: TCX files. (line 78) +* history: Introduction. (line 41) +* Hobby, John <1>: dmp invocation. (line 82) +* Hobby, John: Introduction. (line 9) +* horizontal escapement <1>: gftype invocation. (line 107) +* horizontal escapement: pktype invocation. (line 57) +* hp2627: Online Metafont graphics. + (line 27) +* human languages, supported in TeX: Languages and hyphenation. + (line 6) +* human-readable text, converting DVI to: dvitype invocation. (line 6) +* human-readable text, converting GF to: gftype invocation. (line 6) +* human-readable text, converting PK to: pktype invocation. (line 6) +* human-readable text, converting TFM to: tftopl invocation. (line 6) +* human-readable text, converting VF to: vftovp invocation. (line 6) +* hyphenation and languages: Languages and hyphenation. + (line 6) +* hyphenation patterns, creating: patgen invocation. (line 6) +* ice cream: Introduction. (line 23) +* identifier case: tangle invocation. (line 35) +* identifier collisions: tangle invocation. (line 46) +* identifier length: tangle invocation. (line 27) +* identifiers with underlines: tangle invocation. (line 41) +* ieeetr.bst: Basic BibTeX style files. + (line 31) +* il1-t1.tcx: TCX files. (line 49) +* il2-t1.tcx: TCX files. (line 49) +* Info format: Formats. (line 47) +* initial form, enabling: Common options. (line 45) +* initial Metafont: Initial Metafont. (line 6) +* initial MetaPost: Initial MetaPost. (line 6) +* initial programs: Initial and virgin. (line 24) +* initial TeX: Initial TeX. (line 6) +* initializations, lengthy: Initial and virgin. (line 24) +* input filenames: \input filenames. (line 6) +* install-bases Make target: Additional targets. (line 29) +* install-fmts Make target: Additional targets. (line 25) +* install-formats Make target: Additional targets. (line 17) +* install-mems Make target: Additional targets. (line 34) +* installation: Installation. (line 6) +* interaction between TCX files and -8bit.: TCX files. (line 105) +* interaction mode: Common options. (line 51) +* international characters: TCX files. (line 6) +* introduction: Introduction. (line 6) +* IPC: IPC and TeX. (line 6) +* IPC_DEBUG <1>: IPC and TeX. (line 13) +* IPC_DEBUG: Compile-time options. + (line 29) +* job name: Common options. (line 56) +* kerning table, in TFM files: tftopl invocation. (line 102) +* keyboard character code, translating: TCX files. (line 102) +* Knuth, Donald E. <1>: mft invocation. (line 58) +* Knuth, Donald E.: Introduction. (line 9) +* KPATHSEA_DEBUG: Common options. (line 60) +* KRN property: tftopl invocation. (line 102) +* label font: gftodvi invocation. (line 36) +* LABEL property: tftopl invocation. (line 102) +* labels, extracting from MetaPost input: mpto invocation. (line 6) +* labels, for MetaPost: makempx invocation. (line 6) +* language support in TeX: Languages and hyphenation. + (line 6) +* languages, hyphenation rules for: patgen invocation. (line 6) +* LaTeX: Formats. (line 22) +* Latin Modern: Font utilities available elsewhere. + (line 18) +* left side bearing <1>: gftype invocation. (line 82) +* left side bearing: pktype invocation. (line 66) +* legalisms: Legalisms. (line 6) +* licensing terms: Introduction. (line 23) +* LIG property: tftopl invocation. (line 102) +* ligature table, in TFM files: tftopl invocation. (line 102) +* LIGTABLE property: tftopl invocation. (line 102) +* linking binaries: Common options. (line 83) +* links to binaries: Determining the memory dump to use. + (line 32) +* literate programming: WEB. (line 6) +* litprog@shsu.edu: WEB. (line 6) +* LittleEndian machines: Hardware and memory dumps. + (line 6) +* log file, BibTeX: bibtex invocation. (line 14) +* machine dependencies: Hardware and memory dumps. + (line 6) +* machine-readable, converting property lists to <1>: vptovf invocation. + (line 6) +* machine-readable, converting property lists to: pltotf invocation. + (line 6) +* MacKay, Pierre: Font file formats. (line 63) +* macro packages, major TeX: Formats. (line 6) +* macros, basic: Installation. (line 34) +* macros, predefining in memory dumps: Memory dumps. (line 6) +* magnification <1>: dvitype invocation. (line 28) +* magnification: dvicopy invocation. (line 20) +* main_memory: Runtime options. (line 15) +* Make targets, additional: Additional targets. (line 6) +* makempx: makempx invocation. (line 6) +* MAKEMPX_BINDIR: makempx invocation. (line 50) +* Martin, Rick: Introduction. (line 51) +* Mathematical Reviews: Formats. (line 39) +* mathematical typesetting: TeX. (line 6) +* mem file, determining: Determining the memory dump to use. + (line 6) +* mem files: Initial MetaPost. (line 6) +* mem files, plain only: Initial MetaPost. (line 16) +* mem files, sharing: Hardware and memory dumps. + (line 6) +* memory dump to use, determining: Determining the memory dump to use. + (line 6) +* memory dumps: Memory dumps. (line 6) +* memory dumps and hardware: Hardware and memory dumps. + (line 6) +* memory dumps, contain date and time: Hardware and memory dumps. + (line 30) +* memory dumps, creating: Creating memory dumps. + (line 6) +* mems Make target: Additional targets. (line 34) +* meta characters in filenames: \input filenames. (line 35) +* Metafont: Metafont. (line 6) +* Metafont geometry: Online Metafont graphics. + (line 66) +* Metafont graphics: Online Metafont graphics. + (line 6) +* Metafont input files: mf invocation. (line 24) +* Metafont invocation: mf invocation. (line 6) +* Metafont meets PostScript: MetaPost. (line 6) +* Metafont online support, new devices: Online Metafont graphics. + (line 77) +* Metafont source, prettyprinting: mft invocation. (line 6) +* Metafont, compatibility in MetaPost: Initial MetaPost. (line 25) +* Metafont, initial: Initial Metafont. (line 6) +* Metafont, MetaPost, and TeX: Three programs. (line 6) +* MetaFun, enhanced MetaPost: Initial MetaPost. (line 33) +* metafun.mp: Initial MetaPost. (line 33) +* MetaPost: MetaPost. (line 6) +* MetaPost and plain Metafont compatibility: Initial MetaPost. + (line 25) +* MetaPost input files: mpost invocation. (line 31) +* MetaPost input, extracting labels from: mpto invocation. (line 6) +* MetaPost invocation: mpost invocation. (line 6) +* MetaPost labels: makempx invocation. (line 6) +* MetaPost source, prettyprinting: mft invocation. (line 80) +* MetaPost, initial: Initial MetaPost. (line 6) +* MetaPost, TeX, and Metafont: Three programs. (line 6) +* metatype1: Font utilities available elsewhere. + (line 18) +* mf: mf invocation. (line 6) +* mf.base: Initial Metafont. (line 16) +* MFEDIT: Editor invocation. (line 10) +* mfplain.mem: Initial MetaPost. (line 25) +* mfput: mf invocation. (line 34) +* mft: mft invocation. (line 6) +* mftalk: Online Metafont graphics. + (line 30) +* MFTERM: Online Metafont graphics. + (line 11) +* mftmac.tex: mft invocation. (line 6) +* mktexmf, disabling: mf invocation. (line 24) +* mktextfM, disabling: tex invocation. (line 44) +* mltex: MLTeX. (line 6) +* MLTeX, enabling: tex invocation. (line 115) +* mode needed to run Metafont: mf invocation. (line 48) +* mode_def: Modes. (line 15) +* mode_setup: Modes. (line 15) +* modes file needed for Metafont: Modes. (line 6) +* modes.mf recommended modes file: Modes. (line 10) +* Morgan, Tim: Introduction. (line 41) +* Morris, Bob: Introduction. (line 51) +* MPEDIT: Editor invocation. (line 10) +* mpgraph.ps: mpost invocation. (line 19) +* mpman.ps: mpost invocation. (line 6) +* mpost: mpost invocation. (line 6) +* mpost, reason for name change: Installation. (line 19) +* mpost.mem: Initial MetaPost. (line 16) +* mpout: mpost invocation. (line 37) +* mproof.tex: mpost invocation. (line 78) +* MPSUPPORT: dmp invocation. (line 21) +* MPto: mpto invocation. (line 6) +* MPto, invoked by MakeMPX: makempx invocation. (line 21) +* MPTOTEX: makempx invocation. (line 60) +* MPTOTR: makempx invocation. (line 64) +* mptrap Make target: Additional targets. (line 41) +* mptrap test: Triptrap. (line 6) +* mptrap.readme: Triptrap. (line 6) +* mpx file, defined: makempx invocation. (line 43) +* MPX files, converting from DVI files: dvitomp invocation. (line 6) +* MPX files, creating from ditroff output: dmp invocation. (line 6) +* mpxerr: makempx invocation. (line 34) +* mpxerr.dvi: makempx invocation. (line 34) +* mpxerr.log: makempx invocation. (line 34) +* mpxerr.t: makempx invocation. (line 34) +* mpxerr.tex: makempx invocation. (line 34) +* mtimes of files, comparing: newer invocation. (line 6) +* Multi-lingual TeX: MLTeX. (line 6) +* multiple DVI files, creating: TeX extensions. (line 31) +* N tilde: \charsubdef. (line 37) +* new graphics support for Metafont: Online Metafont graphics. + (line 77) +* NEWER: makempx invocation. (line 56) +* newer file comparison: newer invocation. (line 6) +* newrow GF command: gftype invocation. (line 93) +* next: Online Metafont graphics. + (line 34) +* NO_X11WIN: Online Metafont graphics. + (line 56) +* non-Unix system, compiling on: Additional targets. (line 12) +* NUL, not allowed in filenames: \input filenames. (line 35) +* octal character codes, in TCX files: TCX files. (line 78) +* offset for overflow labels: gftodvi invocation. (line 49) +* older-than, file comparisons: newer invocation. (line 6) +* Omega: TeX extensions. (line 16) +* online Metafont graphics: Online Metafont graphics. + (line 6) +* opcodes, showing DVI: dvitype invocation. (line 56) +* optical font scaling: Font file formats. (line 22) +* option conventions: Option conventions. (line 6) +* origin: pktype invocation. (line 66) +* output directory, specifying <1>: Output file location. + (line 15) +* output directory, specifying: Common options. (line 67) +* output file location: Output file location. + (line 6) +* output files, written by TeX programs: tex invocation. (line 51) +* output_comment for DVI files: tex invocation. (line 120) +* overflow label offset: gftodvi invocation. (line 49) +* packet length: pktype invocation. (line 50) +* page, starting <1>: dvitype invocation. (line 50) +* page, starting: dvicopy invocation. (line 28) +* parsing the first line: Common options. (line 78) +* Pascal, creating from WEB: tangle invocation. (line 6) +* patgen: patgen invocation. (line 6) +* path searching: Path searching. (line 6) +* path searching debugging: Common options. (line 60) +* PDF: TeX extensions. (line 20) +* pdfTeX: TeX extensions. (line 20) +* permissions, legal: Legalisms. (line 6) +* PFA and PFB conversion: Font utilities available elsewhere. + (line 39) +* pfaedit: Font utilities available elsewhere. + (line 30) +* PiCTeX, increasing memory for: Runtime options. (line 20) +* picture expressions: makempx invocation. (line 43) +* pixel height: pktype invocation. (line 62) +* pixel width: pktype invocation. (line 62) +* PK bitmaps from PostScript: Font utilities available elsewhere. + (line 35) +* PK files, explained: Font file formats. (line 40) +* PK files, not output by Metafont: mf invocation. (line 34) +* PK format definition: Font utilities. (line 11) +* PK, converting GF to: gftopk invocation. (line 6) +* PK, converting to GF: pktogf invocation. (line 6) +* pktogf: pktogf invocation. (line 6) +* pktype PK validation: pktype invocation. (line 6) +* pktype.web: Font utilities. (line 11) +* PL files, explained: Font file formats. (line 47) +* plain Metafont, compatibility in MetaPost: Initial MetaPost. + (line 25) +* plain text, converting DVI to: dvitype invocation. (line 6) +* plain text, converting GF to: gftype invocation. (line 6) +* plain text, converting PK to: pktype invocation. (line 6) +* plain text, converting TFM to: tftopl invocation. (line 6) +* plain text, converting VF to: vftovp invocation. (line 6) +* plain.base: Initial Metafont. (line 16) +* plain.bst: Basic BibTeX style files. + (line 11) +* plain.fmt: Initial TeX. (line 15) +* plain.mem: Initial MetaPost. (line 16) +* plain.mft: mft invocation. (line 68) +* pltotf: pltotf invocation. (line 6) +* pool file, writing: tangle invocation. (line 16) +* Poole, Simon: Online Metafont graphics. + (line 50) +* pooltype: pooltype invocation. (line 6) +* portable filenames: \input filenames. (line 41) +* PostScript fonts, and Troff: mpost invocation. (line 73) +* PostScript meets Metafont: MetaPost. (line 6) +* PostScript output: mpost invocation. (line 37) +* PostScript to PK bitmaps: Font utilities available elsewhere. + (line 35) +* PostScript Type 1 font conversion: Font utilities available elsewhere. + (line 39) +* PostScript, and font scaling: Font file formats. (line 22) +* potrace: Font utilities available elsewhere. + (line 46) +* Pragma ADE: Initial MetaPost. (line 33) +* predefined macros and memory dumps: Memory dumps. (line 6) +* prettyprinting Metafont source: mft invocation. (line 6) +* prettyprinting WEB programs: weave invocation. (line 6) +* primitives, new: TeX extensions. (line 11) +* printable characters, specifying: TCX files. (line 88) +* printer characteristics, for Metafont: Modes. (line 6) +* production use: Initial and virgin. (line 20) +* program name, determines memory dump: Determining the memory dump to use. + (line 32) +* program names, special <1>: tex invocation. (line 115) +* program names, special: Common options. (line 45) +* prologues: mpost invocation. (line 117) +* prologues and Troff in MetaPost: makempx invocation. (line 39) +* prologues, and EPSF output: mpost invocation. (line 88) +* proof mode: mf invocation. (line 48) +* proof sheets, of fonts: gftodvi invocation. (line 6) +* property list format: tftopl invocation. (line 44) +* property list, converting TFM to: tftopl invocation. (line 6) +* property list, converting VF to virtual: vftovp invocation. (line 6) +* ps2pk: Font utilities available elsewhere. + (line 35) +* psfonts.map, read by MetaPost: mpost invocation. (line 88) +* PXL files, explained: Font file formats. (line 40) +* pxtoch: Font utilities available elsewhere. + (line 23) +* Raichle, Bernd: MLTeX. (line 6) +* reading, additional: Introduction. (line 59) +* readonly directory, running TeX in: Output file location. + (line 15) +* reallocation of arrays: Runtime options. (line 36) +* redefined character substitutions: \tracingcharsubdef. (line 6) +* reference pixel: pktype invocation. (line 66) +* references: References. (line 6) +* regis: Online Metafont graphics. + (line 39) +* Regis graphics support: Online Metafont graphics. + (line 40) +* regression testing: tex invocation. (line 120) +* repeated rows: pktype invocation. (line 76) +* representation of strings: pooltype invocation. (line 30) +* right side bearing <1>: gftype invocation. (line 82) +* right side bearing: pktype invocation. (line 66) +* right-to-left typesetting: TeX extensions. (line 25) +* Rokicki, Tomas: Introduction. (line 41) +* run length encoded bitmaps <1>: gftype invocation. (line 89) +* run length encoded bitmaps: pktype invocation. (line 76) +* runtime options: Runtime options. (line 6) +* scaled pixels <1>: gftype invocation. (line 107) +* scaled pixels: pktype invocation. (line 57) +* scaling of fonts: Font file formats. (line 22) +* scanned images of fonts: Font utilities available elsewhere. + (line 42) +* security, and \openout: tex invocation. (line 51) +* security, and output files: tex invocation. (line 51) +* security, and shell escapes: tex invocation. (line 128) +* SetColor ditroff command: dmp invocation. (line 15) +* shapes: Metafont. (line 6) +* sharing memory dumps: Hardware and memory dumps. + (line 6) +* shell commands in TeX: tex invocation. (line 128) +* shell_escape enabling in TeX: tex invocation. (line 128) +* siam.bst: Basic BibTeX style files. + (line 35) +* side bearings <1>: gftype invocation. (line 82) +* side bearings: pktype invocation. (line 66) +* slant font: gftodvi invocation. (line 39) +* slides, producing: Formats. (line 61) +* SliTeX: Formats. (line 61) +* small Metafont memory and modes: Modes. (line 15) +* smode and dynamic Metafont mode definition: Modes. (line 28) +* sockets: IPC and TeX. (line 6) +* space-terminated filenames: \input filenames. (line 10) +* Spiderweb: WEB. (line 14) +* Stallman, Richard: Introduction. (line 51) +* starting page <1>: dvitype invocation. (line 50) +* starting page: dvicopy invocation. (line 28) +* Steele Jr., Guy L.: Hardware and memory dumps. + (line 34) +* stopping at the first error: Common options. (line 41) +* strategy, overall: Introduction. (line 17) +* string numbers, displaying: pooltype invocation. (line 6) +* string pool, writing: tangle invocation. (line 16) +* string representation: pooltype invocation. (line 30) +* style design, for BibTeX: bibtex invocation. (line 45) +* style files: mft invocation. (line 68) +* substitutions of font glyphs: MLTeX. (line 6) +* sun: Online Metafont graphics. + (line 42) +* sun-gfx.c: Online Metafont graphics. + (line 43) +* Suntools: Online Metafont graphics. + (line 43) +* SunView: Online Metafont graphics. + (line 43) +* swap space, as array limit: Runtime options. (line 36) +* swapping bytes: Hardware and memory dumps. + (line 13) +* syntax of TCX files: TCX files. (line 66) +* system C library function: tex invocation. (line 128) +* T1 encoding and ISO input: TCX files. (line 49) +* Tachikawa, Elizabeth: Font file formats. (line 63) +* tangle: tangle invocation. (line 6) +* targets, additional Make: Additional targets. (line 6) +* TCX character translation files: TCX files. (line 6) +* tek: Online Metafont graphics. + (line 47) +* Tektronix: Online Metafont graphics. + (line 48) +* Tektronix 4014: Online Metafont graphics. + (line 51) +* TERM: Online Metafont graphics. + (line 11) +* terminator for filenames: \input filenames. (line 10) +* terse output: bibtex invocation. (line 28) +* TEX: makempx invocation. (line 74) +* tex: tex invocation. (line 6) +* TeX, bibliographies for: bibtex invocation. (line 54) +* TeX, creating from Metafont: mft invocation. (line 6) +* TeX, creating from WEB: weave invocation. (line 6) +* TeX, description of: TeX. (line 6) +* TeX, extensions to: TeX extensions. (line 6) +* TeX, format packages for: Formats. (line 6) +* TeX, initial: Initial TeX. (line 6) +* TeX, input files found: tex invocation. (line 20) +* TeX, invocation: tex invocation. (line 6) +* TeX, Metafont, and MetaPost: Three programs. (line 6) +* TeX, Web2c implementation of: Introduction. (line 9) +* TeX--XeT: TeX extensions. (line 25) +* tex.fmt: Initial TeX. (line 15) +* TEXBIB, search path for bib files: bibtex invocation. (line 18) +* TEXEDIT: Editor invocation. (line 10) +* texfonts.map: Path searching. (line 15) +* Texinfo: Formats. (line 47) +* texmf.cnf: Path searching. (line 6) +* texmfmp.c: Online Metafont graphics. + (line 77) +* texmfmp.c and openoutnameok: tex invocation. (line 51) +* TEXMFOUTPUT, used if . unwritable: Output file location. + (line 19) +* texput: tex invocation. (line 35) +* text, extracting from MetaPost input: mpto invocation. (line 6) +* TFM files, converting property lists to: pltotf invocation. (line 6) +* TFM files, explained: Font file formats. (line 13) +* TFM files, memory for: Runtime options. (line 25) +* TFM files, output by Metafont: mf invocation. (line 43) +* TFM files, output by MetaPost: mpost invocation. (line 37) +* TFM width of characters <1>: gftype invocation. (line 113) +* TFM width of characters: pktype invocation. (line 53) +* tftopl: tftopl invocation. (line 6) +* three programs: Three programs. (line 6) +* time and date, in memory dumps: Hardware and memory dumps. + (line 30) +* title font: gftodvi invocation. (line 33) +* toolkits, X: Online Metafont graphics. + (line 60) +* torture tests: Triptrap. (line 6) +* translation file for TeX, specifying: Common options. (line 96) +* translation from WEB to C: Introduction. (line 17) +* trap Make target: Additional targets. (line 41) +* trap test: Triptrap. (line 6) +* trapman.tex: Triptrap. (line 6) +* trchars.adj: dmp invocation. (line 24) +* Trickey, Howard: Introduction. (line 41) +* trip Make target: Additional targets. (line 41) +* trip test: Triptrap. (line 6) +* tripman.tex: Triptrap. (line 6) +* triptrap Make target: Additional targets. (line 41) +* TROFF: makempx invocation. (line 79) +* Troff, and MetaPost: mpost invocation. (line 73) +* Troff, WEB for: WEB. (line 14) +* Trojan horses and TeX programs: tex invocation. (line 51) +* TUGboat bibliography: bibtex invocation. (line 54) +* Type 1 conversion: Font utilities available elsewhere. + (line 39) +* type design, personal: Initial Metafont. (line 33) +* type programs, DVI: dvitype invocation. (line 6) +* type programs, GF: gftype invocation. (line 6) +* type programs, PK: pktype invocation. (line 6) +* type programs, pool: pooltype invocation. (line 6) +* typeface families: Metafont. (line 6) +* typeface specimen sheets: Font utilities available elsewhere. + (line 42) +* typesetting: TeX. (line 6) +* Unicode: TeX extensions. (line 16) +* Unicode input: tex invocation. (line 95) +* uniterm: Online Metafont graphics. + (line 50) +* unsrt.bst: Basic BibTeX style files. + (line 39) +* using local codepage to display messages: Common options. (line 108) +* UTF-8 input: tex invocation. (line 95) +* validation, of DVI files: dvitype invocation. (line 6) +* validation, of GF files: gftype invocation. (line 6) +* validation, of PK files: pktype invocation. (line 6) +* validation, of TFM files: tftopl invocation. (line 6) +* validation, of VF files: vftovp invocation. (line 6) +* verbatimtex MetaPost command: mpto invocation. (line 6) +* verbose BibTeX output, suppressing: bibtex invocation. (line 28) +* verbosity, enabling: Common options. (line 15) +* version number, finding: Common options. (line 18) +* vertical escapement: gftype invocation. (line 107) +* VF files, converting property lists to: vptovf invocation. (line 6) +* vftovp: vftovp invocation. (line 6) +* virgin programs: Initial and virgin. (line 20) +* virtual font creation: Font utilities available elsewhere. + (line 53) +* virtual fonts, expanding: dvicopy invocation. (line 6) +* virtual-fonts.knuth: Font file formats. (line 57) +* virtualfonts.txt: Font file formats. (line 57) +* vptovf: vptovf invocation. (line 6) +* weave: weave invocation. (line 6) +* WEB: WEB. (line 6) +* WEB pool files, displaying: pooltype invocation. (line 6) +* WEB programs, compiling: tangle invocation. (line 6) +* WEB programs, typesetting: weave invocation. (line 6) +* WEB2C, search path for TCX files: TCX files. (line 36) +* Weber, Olaf: Introduction. (line 41) +* webmac.tex: weave invocation. (line 22) +* webman.tex: WEB. (line 14) +* whitespace, in TCX files: TCX files. (line 69) +* whitespace-terminated filenames: \input filenames. (line 10) +* width, device-independent <1>: gftype invocation. (line 113) +* width, device-independent: pktype invocation. (line 53) +* width, in pixels: pktype invocation. (line 62) +* word processor, not: TeX. (line 9) +* writing memory dumps: Creating memory dumps. + (line 6) +* X bitmap fonts: Font utilities available elsewhere. + (line 15) +* X class name for Metafont: Online Metafont graphics. + (line 66) +* x offset: pktype invocation. (line 66) +* X resources: Online Metafont graphics. + (line 66) +* X toolkits and Metafont: Online Metafont graphics. + (line 60) +* x X ditroff device control: dmp invocation. (line 15) +* xampl.bib: bibtex invocation. (line 51) +* xbfe, bitmap font editor: Font utilities available elsewhere. + (line 23) +* xfed, bitmap font editor: Font utilities available elsewhere. + (line 23) +* xfedor, bitmap font editor: Font utilities available elsewhere. + (line 23) +* Xlib: Online Metafont graphics. + (line 56) +* Xlib support: Online Metafont graphics. + (line 60) +* Xt: Online Metafont graphics. + (line 56) +* Xt support: Online Metafont graphics. + (line 60) +* xterm: Online Metafont graphics. + (line 56) +* y offset: pktype invocation. (line 66) +* ~ expansion in filenames: \input filenames. (line 48) + + + +Tag Table: +Node: Top2967 +Node: Introduction3962 +Node: Installation7139 +Node: configure options9303 +Node: Compile-time options11385 +Node: Additional targets12511 +Node: Triptrap13792 +Node: Runtime options15321 +Node: Commonalities17093 +Node: Option conventions17698 +Node: Common options18922 +Node: Path searching23434 +Node: Output file location24456 +Node: Three programs25496 +Node: Initial and virgin26255 +Node: Memory dumps27355 +Node: Creating memory dumps27822 +Node: Determining the memory dump to use29083 +Node: Hardware and memory dumps30707 +Node: Editor invocation33176 +Node: \input filenames33906 +Node: TeX36899 +Node: tex invocation37989 +Node: Initial TeX45921 +Node: Formats47410 +Node: Languages and hyphenation50349 +Node: MLTeX50777 +Node: \charsubdef52272 +Node: \tracingcharsubdef54598 +Node: TCX files55173 +Node: patgen invocation60597 +Node: IPC and TeX61314 +Node: TeX extensions61915 +Node: Metafont63216 +Node: mf invocation64504 +Node: Initial Metafont68387 +Node: Modes70140 +Node: Online Metafont graphics72395 +Node: gftodvi invocation75668 +Node: mft invocation77927 +Node: MetaPost81982 +Node: mpost invocation83003 +Node: Initial MetaPost88188 +Node: makempx invocation90000 +Node: dvitomp invocation93500 +Node: dmp invocation94129 +Node: mpto invocation98150 +Node: newer invocation99132 +Node: BibTeX100069 +Node: bibtex invocation100430 +Node: Basic BibTeX style files102755 +Node: WEB104097 +Node: tangle invocation105380 +Node: weave invocation107503 +Node: pooltype invocation108911 +Node: DVI utilities110041 +Node: dvicopy invocation110985 +Node: dvitype invocation112283 +Node: dvitype output example114638 +Node: Font utilities117689 +Node: Font file formats118869 +Node: gftopk invocation122168 +Node: pktogf invocation123372 +Node: pktype invocation124551 +Node: gftype invocation127386 +Node: tftopl invocation131902 +Node: pltotf invocation136536 +Node: vftovp invocation137601 +Node: vptovf invocation139885 +Node: Font utilities available elsewhere140939 +Node: Legalisms143359 +Node: References145530 +Node: Index149915 + +End Tag Table |