diff options
author | Karl Berry <karl@freefriends.org> | 2013-04-07 18:26:53 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2013-04-07 18:26:53 +0000 |
commit | b04c2e1a42573e9735547702356c7b9a769a6855 (patch) | |
tree | c0753443f39500a062d7698fe6b94359c813f871 /Master/texmf-dist/doc/info | |
parent | fb0bf13304a356f197bfc1add17f98c07e96f17b (diff) |
texmf -> texmf-dist: doc
git-svn-id: svn://tug.org/texlive/trunk@29714 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/info')
-rw-r--r-- | Master/texmf-dist/doc/info/asy-faq.info | 1671 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/asymptote.info | 9963 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/dir | 69 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/dvipng.info | 1211 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/dvips.info | 4802 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/eplain.info | 8187 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/epspdf.info | bin | 0 -> 22867 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/info/fontname.info | 16120 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/kpathsea.info | 4763 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/latex2e-es.info | 8019 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/latex2e.info | 7503 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/latex2man.info | 1055 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/mf2pt1.info | 714 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/tds.info | 1714 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/texdraw.info | 2429 | ||||
-rw-r--r-- | Master/texmf-dist/doc/info/web2c.info | 4515 |
16 files changed, 72735 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/info/asy-faq.info b/Master/texmf-dist/doc/info/asy-faq.info new file mode 100644 index 00000000000..ce35b88fc2b --- /dev/null +++ b/Master/texmf-dist/doc/info/asy-faq.info @@ -0,0 +1,1671 @@ +Info file: asy-faq.info, -*-Text-*- +produced by bfnnconv.pl from the Bizarre Format With No Name. + +INFO-DIR-SECTION Languages +START-INFO-DIR-ENTRY +* asymptote FAQ: (asy-faq). Asymptote Frequently Asked Questions. +END-INFO-DIR-ENTRY + + +File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) + + ASYMPTOTE FREQUENTLY ASKED QUESTIONS + 30 May 2012 + +This is the list of Frequently Asked Questions about Asymptote (asy). + +Index + +* Menu: +* Section 1:: About Asymptote +* Section 2:: Questions about installation and setup +* Section 3:: Questions about paths +* Section 4:: Questions about labels +* Section 5:: Questions about arrows +* Section 6:: Questions about 2D graphs +* Section 7:: Questions about programming +* Section 8:: Questions about differences between Asymptote and + MetaPost +* Section 9:: Questions about output + +Section 1, About Asymptote +* Question 1.1:: What is Asymptote? +* Question 1.2:: How do I obtain Asymptote? +* Question 1.3:: Where can I ask questions about Asymptote? +* Question 1.4:: Why was the name Asymptote chosen? +* Question 1.5:: In the internal Asymptote source code, what does the + name camp refer to? + +Section 2, Questions about installation and setup +* Question 2.1:: Is it possible to install Asymptote on Mac OS X? +* Question 2.2:: Why do I get the error Bad CPU type in executable on + installing Asymptote from the MAC OS binary? +* Question 2.3:: What do I do if I get the error: Error: pdfetex (file + pdftex.cfg): cannot open config file...texinfo.tex + appears to be broken? +* Question 2.4:: What do I do if I get the error: ! Undefined control + sequence. l.6 @copying? +* Question 2.5:: Is it possible to integrate Asymptote into LaTeX? +* Question 2.6:: Is it possible to integrate Asymptote into latex or + pdflatex? +* Question 2.7:: Do I need the tkinter package to install an Asymptote + rpm binary? +* Question 2.8:: What does the path %USERPROFILE%\.asy\config.asy mean? +* Question 2.9:: Why do I get the error "string not terminated" when I + try to set settings.dir="C:\asymptote\";? +* Question 2.10:: How do I change environment variables in Microsoft + Windows, for example, in order to change the default + PostScript viewer? +* Question 2.11:: Under Microsoft Windows XP, why do I get an error like + "Invalid Parameter - 432x432"? +* Question 2.12:: Why does Asymptote freeze upon trying to draw a label + with my MikTex installation under Microsoft Windows? + +Section 3, Questions about paths +* Question 3.1:: Why do I get a syntax error message when I specify an + integer value for the path tension? +* Question 3.2:: Shouldn't dots always be the same size? + +Section 4, Questions about labels +* Question 4.1:: How do I get Greek letters like omega to show up in my + labels? +* Question 4.2:: Can Asymptote use matrices as labels? +* Question 4.3:: How do I tell Asymptote to load a particular LaTeX + package, like mathptmx? +* Question 4.4:: How can I use international fonts in Asymptote labels? +* Question 4.5:: How can I use Fourier fonts? +* Question 4.6:: Is there any way to change the default appearance of + the decimal separator, using a comma instead of a dot? +* Question 4.7:: How can I get a rotated label with the filled box + rotated as well so that it fits the text? +* Question 4.8:: How can I rotate labels in a 3D figure? +* Question 4.9:: How can I draw some squares and circles of a fixed + size and put a label in the middle of them? +* Question 4.10:: The binary operator * can be used to scale the color + of a pen by a real number. Does this scaling factor + have to be less than 1? +* Question 4.11:: Why is the space after the comma decimal separator in + my locale so large? +* Question 4.12:: How can I prevent + texpreamble("\usepackage[pdftex]{hyperref}") from + changing the page size? + +Section 5, Questions about arrows +* Question 5.1:: How do I draw two arrows at arbitrary positions along + a path? +* Question 5.2:: How do I reverse the direction of an arrowhead? +* Question 5.3:: How do I change the size of all arrows? +* Question 5.4:: Can I create other arrowhead styles? + +Section 6, Questions about 2D graphs +* Question 6.1:: How can I draw x axis ticks on the right side, with + the tick labels on the left side (relative to the axis + path)? +* Question 6.2:: How can I reposition the x axis label to + three-quarters along the axis length? +* Question 6.3:: How can I move the x axis label down 10bp? +* Question 6.4:: Can I use different pens for the axis, the axis label, + and the tick labels? +* Question 6.5:: How can I change the font type of the axes label? +* Question 6.6:: How can I change the font type of the tick labels on + an axis? +* Question 6.7:: How can I prevent axes tick labels from rendering on + top of each other? +* Question 6.8:: How do I make the plot region of a graph, ignoring + labels and legends, have a fixed size? +* Question 6.9:: How can I plot a function f(x) within [0,1]x[0,2] + without explicitly calculating the x values for which + f(x) hits the boundary? +* Question 6.10:: Is it possible to define customized palettes? +* Question 6.11:: Is there an easy way to graph factorial functions + nicely? +* Question 6.12:: How do I indicate that a certain length should be + exactly the size I prescribe with no rescaling, within + a picture which has its own size? +* Question 6.13:: How can I make the y axis display base-2 logarithmic + values? +* Question 6.14:: How can I align the x axes of two graphs on the same + figure? +* Question 6.15:: How can I change the direction of the y-axis, such + that negatives values are on the upper y-axis? +* Question 6.16:: How can I fill a path with a function that defines the + color of each location? +* Question 6.17:: Is there a way to draw a function that is not + explicitly given, such as (y - 2)^2 = x - 1 ? +* Question 6.18:: Is it possible to reverse or stretch an axis? +* Question 6.19:: Why can't I use the UnFill option to draw graphs with + empty markers? +* Question 6.20:: How can I force several images to use the same palette + range (e.g. the entire 0-255 grayscale range)? + +Section 7, Questions about programming +* Question 7.1:: Is Asymptote an interpreter or a compiler? +* Question 7.2:: What is the difference between a frame and a picture? +* Question 7.3:: What is the difference between a path and a guide? +* Question 7.4:: What is a convenient way to declare and initialize an + array of pictures? +* Question 7.5:: Is there a way to define functions that act on arrays + in general (i.e. work for arrays of any type)? +* Question 7.6:: Is there any way to declare structures ahead of their + definition, e.g. where struct A performs some + operation on struct B, but B contains an A member? +* Question 7.7:: Where are static variables in for loops allocated? +* Question 7.8:: Is there a debugger for asy? +* Question 7.9:: Do you accept patches for Asymptote? + +Section 8, Questions about differences between Asymptote and + MetaPost +* Question 8.1:: What is the equivalent of the MetaPost c[a,b] + interpolation operator? +* Question 8.2:: How does picture scaling differ in Asymptote and + MetaPost? +* Question 8.3:: How can I avoid automatic scaling of a picture? +* Question 8.4:: What is the equivalent of MetaPost ... command? +* Question 8.5:: What is the equivalent of the MetaPost pickup command? +* Question 8.6:: What is the equivalent of the MetaPost whatever + command? +* Question 8.7:: What is the equivalent for the MetaPost command for + lray - horiz*v - verti*u = whatever*(LightSource - R), + a system of three linear equations for three unknowns: + horiz, verti, whatever? +* Question 8.8:: In MetaPost, it is possible to have a drawing remain + the same size in different pictures by defining a unit + u and explicitly multiply all the coordinates by u. Is + there a better way to do this in Asymptote? +* Question 8.9:: In MetaPost, one could produce tiling pictures by + generating a picture, and then clipping the picture to + a rectangle of fixed dimensions around the center of + the picture. How is that done in Asymptote? + +Section 9, Questions about output +* Question 9.1:: How can I disable automatic invocation of the PS + viewer after an asy file is done processing? +* Question 9.2:: How do I output jpeg images? +* Question 9.3:: Can I embed bitmaps (photos) into my drawings and + position and scale them? +* Question 9.4:: Does Asymptote support direct PDF output? +* Question 9.5:: How to I produce large pictures of high quality in + raster format (e.g. png, giff etc). +* Question 9.6:: Is it possible to produce multi-page documents with + asymptote? + + + +File: asy-faq.info, Node: Section 1, Next: Section 2, Previous: Top, Up: Top + +About Asymptote + +* Menu: +* Question 1.1:: What is Asymptote? +* Question 1.2:: How do I obtain Asymptote? +* Question 1.3:: Where can I ask questions about Asymptote? +* Question 1.4:: Why was the name Asymptote chosen? +* Question 1.5:: In the internal Asymptote source code, what does the + name camp refer to? + + + +File: asy-faq.info, Node: Question 1.1, Next: Question 1.2, Previous: Top, Up: Section 1 + +Question 1.1. What is Asymptote? + +Asymptote is a vector graphics language designed for technical graphics, +inspired by MetaPost but with IEEE floating-point numerics, native +three-dimensional graphics, Grayscale/RGB/CMYK colourspaces, and a +C++-like syntax. Unlike MetaPost, it natively supports multiple-segment +paths (and hence regions other than simply connected ones), tiling +patterns, Gouraud shading, tensor patch shading, and PostScript images. + + +File: asy-faq.info, Node: Question 1.2, Next: Question 1.3, Previous: Question 1.1, Up: Section 1 + +Question 1.2. How do I obtain Asymptote? + +Binary releases are available for Linux, MacOS X, and Microsoft Windows +platforms, in addition to full source code, from the website +http://asymptote.sourceforge.net/. Many Linux distributions (such as +RedHat and Debian) now include an Asymptote package (check your +distribution's documentation for further information about this). + + +File: asy-faq.info, Node: Question 1.3, Next: Question 1.4, Previous: Question 1.2, Up: Section 1 + +Question 1.3. Where can I ask questions about Asymptote? + +If you have a question, please try to find an answer in this FAQ, in the +extensive Asymptote documentation at +http://asymptote.sourceforge.net/doc/, or search the forum: +http://sourceforge.net/forum/forum.php?forum_id=409349. + + +File: asy-faq.info, Node: Question 1.4, Next: Question 1.5, Previous: Question 1.3, Up: Section 1 + +Question 1.4. Why was the name Asymptote chosen? + +Well, it isn't the perfect graphics package, but we do think it is getting +there asymptotically... + + +File: asy-faq.info, Node: Question 1.5, Next: Question 2.1, Previous: Question 1.4, Up: Section 1 + +Question 1.5. In the internal Asymptote source code, what does the name camp refer to? + +That was our original tentative name for this project, which stood for +"C's Answer to MetaPost" (the language that inspired Asymptote). However, +we eventually decided that the name Asymptote better emphasizes the +mathematical and graphical nature of this language. + + +File: asy-faq.info, Node: Section 2, Next: Section 3, Previous: Section 1, Up: Top + +Questions about installation and setup + +* Menu: +* Question 2.1:: Is it possible to install Asymptote on Mac OS X? +* Question 2.2:: Why do I get the error Bad CPU type in executable on + installing Asymptote from the MAC OS binary? +* Question 2.3:: What do I do if I get the error: Error: pdfetex (file + pdftex.cfg): cannot open config file...texinfo.tex + appears to be broken? +* Question 2.4:: What do I do if I get the error: ! Undefined control + sequence. l.6 @copying? +* Question 2.5:: Is it possible to integrate Asymptote into LaTeX? +* Question 2.6:: Is it possible to integrate Asymptote into latex or + pdflatex? +* Question 2.7:: Do I need the tkinter package to install an Asymptote + rpm binary? +* Question 2.8:: What does the path %USERPROFILE%\.asy\config.asy mean? +* Question 2.9:: Why do I get the error "string not terminated" when I + try to set settings.dir="C:\asymptote\";? +* Question 2.10:: How do I change environment variables in Microsoft + Windows, for example, in order to change the default + PostScript viewer? +* Question 2.11:: Under Microsoft Windows XP, why do I get an error like + "Invalid Parameter - 432x432"? +* Question 2.12:: Why does Asymptote freeze upon trying to draw a label + with my MikTex installation under Microsoft Windows? + + + +File: asy-faq.info, Node: Question 2.1, Next: Question 2.2, Previous: Question 1.5, Up: Section 2 + +Question 2.1. Is it possible to install Asymptote on Mac OS X? + +It is easy to compile Asymptote directly from the source code at +http://sourceforge.net/project/showfiles.php?group_id=120000 We recommend +first upgrading to the latest GNU readline library, unless you don't care +about interactive readline support (in which case configure will +automatically detect and disable obsolete versions of the readline +library). Marius Schamschula also maintains a binary package for various +MacOS X platforms +http://www.hmug.org/pub/MacOS_X/X/Applications/Publishing/asymptote. + + +File: asy-faq.info, Node: Question 2.2, Next: Question 2.3, Previous: Question 2.1, Up: Section 2 + +Question 2.2. Why do I get the error Bad CPU type in executable on installing Asymptote from the MAC OS binary? + +This means either that you have a binary distribution for another MAC +architecture, or (according to Marius Schamschula) that you may have a +missing library. The simplest solution is to compile Asymptote directly +from the official source: +http://sourceforge.net/project/showfiles.php?group_id=120000. + + +File: asy-faq.info, Node: Question 2.3, Next: Question 2.4, Previous: Question 2.2, Up: Section 2 + +Question 2.3. What do I do if I get the error: Error: pdfetex (file pdftex.cfg): cannot open config file...texinfo.tex appears to be broken? + +Simply put http://asymptote.sourceforge.net/asymptote.pdf in the directory +doc and repeat the command make all. Or, if you don't want to build a +local copy of the documentation, simply proceed with make install-asy. + + +File: asy-faq.info, Node: Question 2.4, Next: Question 2.5, Previous: Question 2.3, Up: Section 2 + +Question 2.4. What do I do if I get the error: ! Undefined control sequence. l.6 @copying? + +Either upgrade your texinfo package or follow one of the easy work arounds +in *Note Question 2.3:: `What do I do if I get the error: Error: pdfetex +(file pdftex.cfg): cannot open config file...texinfo.tex appears to be +broken?'. + + +File: asy-faq.info, Node: Question 2.5, Next: Question 2.6, Previous: Question 2.4, Up: Section 2 + +Question 2.5. Is it possible to integrate Asymptote into LaTeX? + +Yes, see the example latexusage.tex. Dario Teixeira has also written a +detailed guide on the topic. You can download it from +http://dario.dse.nl/projects/asylatex/. + +Philippe Ivaldi has contributed an Asymptote mode for Emacs users +http://asymptote.sourceforge.net/doc/Editing-modes.html, which includes a +lasy-mode that allows one to compile and view the output of one +\begin{asy}...\end{asy} section at a time. + + +File: asy-faq.info, Node: Question 2.6, Next: Question 2.7, Previous: Question 2.5, Up: Section 2 + +Question 2.6. Is it possible to integrate Asymptote into latex or pdflatex? + +Yes, as of version 1.14, Asymptote supports latex and pdflatex (both in +EPS/PDF and inline mode), as illustrated by the example latexusage.tex: + +pdflatex latexusage +asy latexusage +pdflatex latexusage + +File: asy-faq.info, Node: Question 2.7, Next: Question 2.8, Previous: Question 2.6, Up: Section 2 + +Question 2.7. Do I need the tkinter package to install an Asymptote rpm binary? + +No, you don't need tkinter unless you want to try out the GUI xasy. Try + +rpm -Uvh --nodeps asymptote-x.xx-1.i386.rpm +where x.xx represents the version number. + + +File: asy-faq.info, Node: Question 2.8, Next: Question 2.9, Previous: Question 2.7, Up: Section 2 + +Question 2.8. What does the path %USERPROFILE%\.asy\config.asy mean? + +That is the way that Microsoft Windows refers to the user profile +directory. There's nothing really to understand here, just put your +configuration commands in the file config.asy in a new folder +%USERPROFILE%\.asy. + + +File: asy-faq.info, Node: Question 2.9, Next: Question 2.10, Previous: Question 2.8, Up: Section 2 + +Question 2.9. Why do I get the error "string not terminated" when I try to set settings.dir="C:\asymptote\";? + +The backslash is an escape character here, so \" is interpreted as a +verbatim quotation mark, leaving the string without a terminating +quotation mark. Fortunately, this is the only escaped character in +double-quoted strings. A final backslash isn't needed here anyway, but +should you really want one somewhere, you can say: +settings.dir="C:\asymptote"+'\\';. + + +File: asy-faq.info, Node: Question 2.10, Next: Question 2.11, Previous: Question 2.9, Up: Section 2 + +Question 2.10. How do I change environment variables in Microsoft Windows, for example, in order to change the default PostScript viewer? + +While it is easier to set the corresponding Asymptote configuration +variable in your config.asy file, here is the procedure for changing +Microsoft Windows environment variables: + +Click on the [Start] button + +* RIGHT-click on 'My Computer' + +* Choose 'Properties' from the popup menu + +* Click the 'Advanced' tab + +* Click the 'Environment Variables' button. + + +File: asy-faq.info, Node: Question 2.11, Next: Question 2.12, Previous: Question 2.10, Up: Section 2 + +Question 2.11. Under Microsoft Windows XP, why do I get an error like "Invalid Parameter - 432x432"? + +This means that ImageMagick wasn't properly installed and you are using +the MSDOS convert program rather than the ImageMagick one. Or you may have +installed ImageMagick but ran Asymptote from an existing MSDOS window. In +that case, simply open a new window and try again. If that doesn't work, +check that + +convert --version +returns something like + +Version: ImageMagick 6.2.8 06/27/06 Q16 http://www.imagemagick.org + +File: asy-faq.info, Node: Question 2.12, Next: Question 3.1, Previous: Question 2.11, Up: Section 2 + +Question 2.12. Why does Asymptote freeze upon trying to draw a label with my MikTex installation under Microsoft Windows? + +Likely, this means that latex and dvips are not in your default path. Try +adding the appropriate paths in your config.asy file, for example: + +import settings; +latex="C:\Program Files\MiKTeX 2.7\miktex\bin\latex.exe"; +dvips="C:\Program Files\MiKTeX 2.7\miktex\bin\dvips.exe"; + +File: asy-faq.info, Node: Section 3, Next: Section 4, Previous: Section 2, Up: Top + +Questions about paths + +* Menu: +* Question 3.1:: Why do I get a syntax error message when I specify an + integer value for the path tension? +* Question 3.2:: Shouldn't dots always be the same size? + + + +File: asy-faq.info, Node: Question 3.1, Next: Question 3.2, Previous: Question 2.12, Up: Section 3 + +Question 3.1. Why do I get a syntax error message when I specify an integer value for the path tension? + +What is happening here is that + +draw((0,0)..tension 2..(0,50)..(100,100)); +is read as + +draw((0,0)..tension 2. .(0,50)..(100,100)); +So the first . after the two is treated as a decimal point. Just put a +space after the integer tension value: + +draw((0,0)..tension 2 ..(0,50)..(100,100)); + +File: asy-faq.info, Node: Question 3.2, Next: Question 4.1, Previous: Question 3.1, Up: Section 3 + +Question 3.2. Shouldn't dots always be the same size? + +From the documentation: + +"The dot command defined in the module plain draws a dot having a diameter +equal to an explicit pen linewidth or the default linewidth magnified by +dotfactor (6 by default)." + +Thus, when you use the default pen, the dot will have size 6*linewidth, +but when you give a pen with an explicit width specified, you will have a +dot of size linewidth. If you want the first case to behave like the +second, you may set dotfactor=1. + + +File: asy-faq.info, Node: Section 4, Next: Section 5, Previous: Section 3, Up: Top + +Questions about labels + +* Menu: +* Question 4.1:: How do I get Greek letters like omega to show up in my + labels? +* Question 4.2:: Can Asymptote use matrices as labels? +* Question 4.3:: How do I tell Asymptote to load a particular LaTeX + package, like mathptmx? +* Question 4.4:: How can I use international fonts in Asymptote labels? +* Question 4.5:: How can I use Fourier fonts? +* Question 4.6:: Is there any way to change the default appearance of + the decimal separator, using a comma instead of a dot? +* Question 4.7:: How can I get a rotated label with the filled box + rotated as well so that it fits the text? +* Question 4.8:: How can I rotate labels in a 3D figure? +* Question 4.9:: How can I draw some squares and circles of a fixed + size and put a label in the middle of them? +* Question 4.10:: The binary operator * can be used to scale the color + of a pen by a real number. Does this scaling factor + have to be less than 1? +* Question 4.11:: Why is the space after the comma decimal separator in + my locale so large? +* Question 4.12:: How can I prevent + texpreamble("\usepackage[pdftex]{hyperref}") from + changing the page size? + + + +File: asy-faq.info, Node: Question 4.1, Next: Question 4.2, Previous: Question 3.2, Up: Section 4 + +Question 4.1. How do I get Greek letters like omega to show up in my labels? + +In (La)TeX, Greek letters can be obtained in math mode by prepending a +backslash to the letter name. So for a omega symbol, use "$\omega$". +Everything between the dollar signs is considered to be a math formula. +Uppercase Greek letters can be used by capitalizing the first letter of +the name: + +label("$\omega$",(0,0)); +label("$\Omega$",(20,0)); + +File: asy-faq.info, Node: Question 4.2, Next: Question 4.3, Previous: Question 4.1, Up: Section 4 + +Question 4.2. Can Asymptote use matrices as labels? + +Yes: +usepackage("amsmath"); +label("$\begin{matrix} 1 & 2 \\\ 1 & 1 \end{matrix}$",(0,0)); + +File: asy-faq.info, Node: Question 4.3, Next: Question 4.4, Previous: Question 4.2, Up: Section 4 + +Question 4.3. How do I tell Asymptote to load a particular LaTeX package, like mathptmx? + +Put + +usepackage("mathptmx"); +at the beginning of your file. Note: to enable the Adobe Times Roman font +for text, you will also need to say: +defaultpen(TimesRoman()); + +File: asy-faq.info, Node: Question 4.4, Next: Question 4.5, Previous: Question 4.3, Up: Section 4 + +Question 4.4. How can I use international fonts in Asymptote labels? + +See http://asymptote.sourceforge.net/doc/unicode.html. + + +File: asy-faq.info, Node: Question 4.5, Next: Question 4.6, Previous: Question 4.4, Up: Section 4 + +Question 4.5. How can I use Fourier fonts? + +usepackage("fourier"); +defaultpen(font("T1","fut\textfamilyextension","m","n")); + +File: asy-faq.info, Node: Question 4.6, Next: Question 4.7, Previous: Question 4.5, Up: Section 4 + +Question 4.6. Is there any way to change the default appearance of the decimal separator, using a comma instead of a dot? + +Just set your locale appropriately: + +locale("it_IT"); +usepackage("icomma"); +label(format(0.5)); + +File: asy-faq.info, Node: Question 4.7, Next: Question 4.8, Previous: Question 4.6, Up: Section 4 + +Question 4.7. How can I get a rotated label with the filled box rotated as well so that it fits the text? + +frame f; +label(f,"This is some text",white,Fill(blue)); +add(rotate(65)*f); + +File: asy-faq.info, Node: Question 4.8, Next: Question 4.9, Previous: Question 4.7, Up: Section 4 + +Question 4.8. How can I rotate labels in a 3D figure? + +You need to first project the triple to a pair like this: + +import three; +size(100,100); + +draw(rotate(90,project(Z))*"A",O--X); + +File: asy-faq.info, Node: Question 4.9, Next: Question 4.10, Previous: Question 4.8, Up: Section 4 + +Question 4.9. How can I draw some squares and circles of a fixed size and put a label in the middle of them? + +Fixed-size objects should be drawn on a separate picture and then added to +currentpicture. Here is one way (see also +http://asymptote.sourceforge.net/gallery/subpictures.asy and +http://asymptote.sourceforge.net/gallery/mosquito.asy): + +real u=2cm; + +picture square; +draw(square,scale(u)*shift(-0.5,-0.5)*unitsquare); + +picture circle; +draw(circle,scale(0.5u)*unitcircle); + +void add(picture pic=currentpicture, Label L, picture object, pair z) { +add(pic,object,z); +label(pic,L,z); +} + +add("square",square,(0,0)); +add("circle",circle,(5cm,0)); + +File: asy-faq.info, Node: Question 4.10, Next: Question 4.11, Previous: Question 4.9, Up: Section 4 + +Question 4.10. The binary operator * can be used to scale the color of a pen by a real number. Does this scaling factor have to be less than 1? + +The scaling factor can be greater than 1. But keep in mind that the rgb +color components saturate at 1. + +Try +write(cyan); write(0.8*cyan); write(1.5*cyan); +and you will quickly see what is going on. + +To get a lighter cyan you can say white+cyan, which yields rgb(0.5,1,1). +If you want something even lighter specify the rgb colors directly, for +example, rgb(0.9,1,1). + +Alternatively, work in cmyk colour space, which is nicer in that it +handles saturation separately from hue: + +0.1*Cyan is light and 0.9*Cyan is dark. You can also say 0.1*cmyk(red). + + +File: asy-faq.info, Node: Question 4.11, Next: Question 4.12, Previous: Question 4.10, Up: Section 4 + +Question 4.11. Why is the space after the comma decimal separator in my locale so large? + +LaTeX is treating the comma as punctuation and not as a decimal separator. +The solution is to load the icomma package near the beginning of your +file: +usepackage("icomma"); + +File: asy-faq.info, Node: Question 4.12, Next: Question 5.1, Previous: Question 4.11, Up: Section 4 + +Question 4.12. How can I prevent texpreamble("\usepackage[pdftex]{hyperref}") from changing the page size? + +texpreamble("\usepackage[pdftex,setpagesize=false]{hyperref}"); + +File: asy-faq.info, Node: Section 5, Next: Section 6, Previous: Section 4, Up: Top + +Questions about arrows + +* Menu: +* Question 5.1:: How do I draw two arrows at arbitrary positions along + a path? +* Question 5.2:: How do I reverse the direction of an arrowhead? +* Question 5.3:: How do I change the size of all arrows? +* Question 5.4:: Can I create other arrowhead styles? + + + +File: asy-faq.info, Node: Question 5.1, Next: Question 5.2, Previous: Question 4.12, Up: Section 5 + +Question 5.1. How do I draw two arrows at arbitrary positions along a path? + +Assuming that at least one of the arrowheads is to be filled, you can do +this: + +size(200); +path g = (0,0)..(1,3)..(3,0); +draw(g,Arrow(Relative(0.9))); +add(arrow(g,invisible,FillDraw(black),Relative(0.5))); +add(arrow(reverse(g),invisible,FillDraw(white,black),Relative(0.9))); +If both of the arrowheads are to be drawn with filltype NoFill, one will +need to create a specialized version of the arrow routine in +plain_arrows.asy: + +void arrow(frame f, arrowhead arrowhead=DefaultHead, + path g, pen p=currentpen, real size=0, + real angle=arrowangle, filltype filltype=arrowhead.defaultfilltype, + position position=EndPoint, bool forwards=true, + margin margin=NoMargin, bool center=false); + +File: asy-faq.info, Node: Question 5.2, Next: Question 5.3, Previous: Question 5.1, Up: Section 5 + +Question 5.2. How do I reverse the direction of an arrowhead? + +Simply reverse the direction of the path. + +path g=((0,0)--(5cm,0)); +draw(reverse(g),Arrow(Relative(0.55))); + +File: asy-faq.info, Node: Question 5.3, Next: Question 5.4, Previous: Question 5.2, Up: Section 5 + +Question 5.3. How do I change the size of all arrows? + +To override the arrowsize you can give every Arrow drawing attribute a +real size argument. If you want to do this globally, you can override the +pen-dependent arrowsize function like this: + +arrowsize=new real(pen p=currentpen) {return 2mm;}; + +File: asy-faq.info, Node: Question 5.4, Next: Question 6.1, Previous: Question 5.3, Up: Section 5 + +Question 5.4. Can I create other arrowhead styles? + +Yes, you can build custom arrowheads like this (see the predefined +arrowhead styles in plain_arrows.asy for further examples): + +arrowhead DotHead; +DotHead.head=new path(path g, position position=EndPoint, pen p=currentpen, + real size=0, real angle=arrowangle) { + if(size == 0) size=DotHead.size(p); + bool relative=position.relative; + real position=position.position.x; + if(relative) position=reltime(g,position); + path r=subpath(g,position,0); + pair x=point(r,0); + real t=arctime(r,size); + pair y=point(r,t); + return circle(0.5(x+y),0.5size); +}; + +size(100); +draw((0,0)..(1,1)..(2,0),Arrow(DotHead)); +dot((2,0),red); +If you submit your alternate arrowheads to the Forum or the Patch +Tracking System, we'll consider including them in a future release. + + +File: asy-faq.info, Node: Section 6, Next: Section 7, Previous: Section 5, Up: Top + +Questions about 2D graphs + +* Menu: +* Question 6.1:: How can I draw x axis ticks on the right side, with + the tick labels on the left side (relative to the axis + path)? +* Question 6.2:: How can I reposition the x axis label to + three-quarters along the axis length? +* Question 6.3:: How can I move the x axis label down 10bp? +* Question 6.4:: Can I use different pens for the axis, the axis label, + and the tick labels? +* Question 6.5:: How can I change the font type of the axes label? +* Question 6.6:: How can I change the font type of the tick labels on + an axis? +* Question 6.7:: How can I prevent axes tick labels from rendering on + top of each other? +* Question 6.8:: How do I make the plot region of a graph, ignoring + labels and legends, have a fixed size? +* Question 6.9:: How can I plot a function f(x) within [0,1]x[0,2] + without explicitly calculating the x values for which + f(x) hits the boundary? +* Question 6.10:: Is it possible to define customized palettes? +* Question 6.11:: Is there an easy way to graph factorial functions + nicely? +* Question 6.12:: How do I indicate that a certain length should be + exactly the size I prescribe with no rescaling, within + a picture which has its own size? +* Question 6.13:: How can I make the y axis display base-2 logarithmic + values? +* Question 6.14:: How can I align the x axes of two graphs on the same + figure? +* Question 6.15:: How can I change the direction of the y-axis, such + that negatives values are on the upper y-axis? +* Question 6.16:: How can I fill a path with a function that defines the + color of each location? +* Question 6.17:: Is there a way to draw a function that is not + explicitly given, such as (y - 2)^2 = x - 1 ? +* Question 6.18:: Is it possible to reverse or stretch an axis? +* Question 6.19:: Why can't I use the UnFill option to draw graphs with + empty markers? +* Question 6.20:: How can I force several images to use the same palette + range (e.g. the entire 0-255 grayscale range)? + + + +File: asy-faq.info, Node: Question 6.1, Next: Question 6.2, Previous: Question 5.4, Up: Section 6 + +Question 6.1. How can I draw x axis ticks on the right side, with the tick labels on the left side (relative to the axis path)? + +import graph; + +size(250,200,IgnoreAspect); + +draw(graph(exp,-1,1),red); + +xaxis("$x$",RightTicks(Label(align=left))); +yaxis("$y$",RightTicks); + +File: asy-faq.info, Node: Question 6.2, Next: Question 6.3, Previous: Question 6.1, Up: Section 6 + +Question 6.2. How can I reposition the x axis label to three-quarters along the axis length? + +import graph; + +size(250,200,IgnoreAspect); + +draw(graph(exp,-1,1),red); + +xaxis(Label("$x$",0.75),LeftTicks); +yaxis("$y$",RightTicks); + +File: asy-faq.info, Node: Question 6.3, Next: Question 6.4, Previous: Question 6.2, Up: Section 6 + +Question 6.3. How can I move the x axis label down 10bp? + +import graph; +size(250,200,IgnoreAspect); + +draw(graph(exp,-1,1),red); + +xaxis(shift(0,-10)*"$x$",LeftTicks); +yaxis("$y$",RightTicks); + +File: asy-faq.info, Node: Question 6.4, Next: Question 6.5, Previous: Question 6.3, Up: Section 6 + +Question 6.4. Can I use different pens for the axis, the axis label, and the tick labels? + +Yes: + +import graph; +size(300,200,IgnoreAspect); + +xlimits(-50,50); +ylimits(0,100); + +xaxis(Label("$x$",MidPoint,red),Bottom,blue,LeftTicks(green)); +yaxis("$y$",Left,RightTicks); + +File: asy-faq.info, Node: Question 6.5, Next: Question 6.6, Previous: Question 6.4, Up: Section 6 + +Question 6.5. How can I change the font type of the axes label? + +import graph; +size(300,200,IgnoreAspect); + +xlimits(-50,50); +ylimits(0,100); + +xaxis("x",Bottom,Courier("m","n"),LeftTicks); +yaxis("$y$",Left,RightTicks); + +File: asy-faq.info, Node: Question 6.6, Next: Question 6.7, Previous: Question 6.5, Up: Section 6 + +Question 6.6. How can I change the font type of the tick labels on an axis? + +Tick labels are by default typeset in (TeX) math mode, so to use other +fonts you need to override the default tick format: + +import graph; +size(300,200,IgnoreAspect); + +xlimits(-50,50); +ylimits(0,100); + +xaxis("$x$",Bottom,LeftTicks("%.4g",Courier("m","n")+fontsize(12))); +yaxis("$y$",Left,RightTicks); + +File: asy-faq.info, Node: Question 6.7, Next: Question 6.8, Previous: Question 6.6, Up: Section 6 + +Question 6.7. How can I prevent axes tick labels from rendering on top of each other? + +Either: + +(i) give LeftTicks/RightTicks/Ticks the arguments beginlabel=false and/or +endlabel=false; + +(ii) explicitly remove specific ticks and their labels (drawing them +manually; see +http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/base/graph.asy +for the definition of NoZero): + +import graph; + +size(10cm); + +real f(real x) {return x^2;} + +draw(graph(f,-2,2)); + +xaxis(Ticks(NoZero)); +yaxis(Ticks(NoZero)); + +label("$0$",(0,0),SW); +(iii) explicitly remove specific tick labels and draw them manually (see +http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/base/graph.asy +for the definition of NoZeroFormat): + +import graph; + +size(10cm); + +real f(real x) {return x^2;} + +draw(graph(f,-2,2)); + +xaxis(Ticks(NoZeroFormat)); +yaxis(Ticks(NoZeroFormat)); + +label("$0$",(0,0),SW); +(iv) use the xasy GUI to move overlapping labels; + +(v) change the Label argument of LeftTicks, RightTicks, or Ticks to: + +Label(currentpen+overwrite(Move)) +Solution (v) will move labels that might otherwise overwrite a previous +label. Other possible overwrite arguments are Allow (allows overlapping +labels; the default), Suppress (an overlapping label will not be written +at all), SuppressQuiet, and MoveQuiet. The last two achieve the same +result as the non-quiet types, but will not notify you which labels are +overlapping. See: http://asymptote.sourceforge.net/doc/Pens.html. + +In the case of a user-specified tick array, you can change which labels +get suppressed/moved by changing the order of array entries. + + +File: asy-faq.info, Node: Question 6.8, Next: Question 6.9, Previous: Question 6.7, Up: Section 6 + +Question 6.8. How do I make the plot region of a graph, ignoring labels and legends, have a fixed size? + +Either: + +i) Specify an explicit unitsize, which overrides any call to size: +unitsize(x=1cm,y=2cm); +ii) Explicitly tell Asymptote to map the plot region to a specific size: +import graph; +real[] x={0,1,2,3}; +real[] y=x^2; +draw(graph(x,y),red); +xaxis("$x$",BottomTop,LeftTicks); +yaxis("$y$",LeftRight,RightTicks); + +size(5cm,5cm,point(SW),point(NE)); + +label("$f_\mathrm{T}$",point(N),2N); +iii) Specify the points in user coordinates that should correspond to a +given picture size: + +import graph; + +size(250,200,IgnoreAspect); + +draw(graph(exp,-1,1),red); + +xaxis("$x$",BottomTop,LeftTicks); +yaxis("$y$",LeftRight,RightTicks); + +fixedscaling((-1.5,-0.5),(1.5,3.5)); +In this example, the user coordinate (-1.5,-0.5) will end up being the +lower left corner of the figure and (1.5,3.5) will be the upper right +corner. You can use this option to ensure multiple figures have the same +scaling and same resulting figure size (just ensure the two coordinates +given to fixedscaling() leaves room for any labels). + +See also http://asymptote.sourceforge.net/doc/Frames-and-pictures.html. + + +File: asy-faq.info, Node: Question 6.9, Next: Question 6.10, Previous: Question 6.8, Up: Section 6 + +Question 6.9. How can I plot a function f(x) within [0,1]x[0,2] without explicitly calculating the x values for which f(x) hits the boundary? + +Call limits with the Crop option before drawing the graph: +import graph; + +size(250,200,IgnoreAspect); + +draw(graph(exp,-1,1),red); + +limits((0,0),(1,2),Crop); + +xaxis("$x$",BottomTop,LeftTicks); +yaxis("$y$",LeftRight,RightTicks); +See also http://asymptote.sourceforge.net/doc/graph.html. + + +File: asy-faq.info, Node: Question 6.10, Next: Question 6.11, Previous: Question 6.9, Up: Section 6 + +Question 6.10. Is it possible to define customized palettes? + +Yes, you may generate your own pen[] array. For example: + +int NColors=32768; +pen[] MyPalette=new pen[NColors]; +real step=1/(NColors-1.0); +// Start at black: rgb(0,0,0) +// End at yellow: rgb(1,1,0) +for(int i=0; i < NColors; ++i) { + real rgval=i*step; + MyPalette[i]=rgb(rgval,rgval,0.0); +} + +File: asy-faq.info, Node: Question 6.11, Next: Question 6.12, Previous: Question 6.10, Up: Section 6 + +Question 6.11. Is there an easy way to graph factorial functions nicely? + +The example below shows a continuous function and two methods for placing +markers at integer values of x: + +import graph; + +size(200,200,IgnoreAspect); + +real factorial(real t) {return gamma(t+1);} + +scale(Linear,Log); + +// Graph the factorial function. +draw(graph(factorial,0,10)); + +// Method 1: Draw nodes, but hide line +pair F(int t) {return (t,factorial(t));} +// Graph of factorial function from 0 to 10 +pair[] z=sequence(F,11); +draw(graph(z),invisible,marker(scale(0.8mm)*unitcircle,blue,Fill)); + +// Method 2: Nongraphing routines require explicit scaling: +pair dotloc(int t) {return Scale(F(t));} +pair[] dotlocs=sequence(dotloc,11); +dot(dotlocs); + +xaxis("$x$",BottomTop,LeftTicks); +yaxis("$y$",LeftRight,RightTicks); + +File: asy-faq.info, Node: Question 6.12, Next: Question 6.13, Previous: Question 6.11, Up: Section 6 + +Question 6.12. How do I indicate that a certain length should be exactly the size I prescribe with no rescaling, within a picture which has its own size? + +Here's an easy way to do this. + +size(12cm,0); + +void distance(picture pic=currentpicture, pair A, pair B, Label L="", real n=0, + pen p=currentpen) +{ + real d=3mm; + path g=A--B; + transform T=shift(-n*d*unit(B-A)*I); + pic.add(new void(frame f, transform t) { + picture opic; + path G=T*t*g; + draw(opic,Label(L,Center,UnFill(1)),G,p,Arrows(NoFill),Bars,PenMargins); + add(f,opic.fit()); + }); + pic.addBox(min(g),max(g),T*min(p),T*max(p)); +} + +pair A=(0,0), B=(3,3); + +dot(A); +dot(B); + +distance(A,B,"$\ell$",1); + +File: asy-faq.info, Node: Question 6.13, Next: Question 6.14, Previous: Question 6.12, Up: Section 6 + +Question 6.13. How can I make the y axis display base-2 logarithmic values? + +See the example http://asymptote.sourceforge.net/gallery/2D +graphs/log2graph.asy. + + +File: asy-faq.info, Node: Question 6.14, Next: Question 6.15, Previous: Question 6.13, Up: Section 6 + +Question 6.14. How can I align the x axes of two graphs on the same figure? + +An easy way to do this, if the axes to be aligned have the same scaling +and size, is illustrated in the example +http://asymptote.sourceforge.net/gallery/2D graphs/alignedaxis.asy. + +Here is a more general solution to the problem of aligning two arbitrary +axes. One fits the second picture to a frame based on the horizontal +scaling for the first picture: + +import graph; + +real width=15cm; +real aspect=0.3; + +picture pic1,pic2; + +size(pic1,width,aspect*width,IgnoreAspect); +size(pic2,width,aspect*width,IgnoreAspect); + +scale(pic1,false); +scale(pic2,false); + +real xmin1=6; +real xmax1=9; +real xmin2=8; +real xmax2=16; + +real a1=1; +real a2=0.001; + +real f1(real x) {return a1*sin(x/2*pi);} +real f2(real x) {return a2*sin(x/4*pi);} + +draw(pic1,graph(pic1,f1,xmin1,xmax1)); +draw(pic2,graph(pic2,f2,xmin2,xmax2)); + +xaxis(pic1,Bottom,LeftTicks()); +yaxis(pic1,"$f_1(x)$",Left,RightTicks); + +xaxis(pic2,"$x$",Bottom,LeftTicks(Step=4)); +yaxis(pic2,"$f_2(x)$",Left,RightTicks); + +yequals(pic1,0,Dotted); +yequals(pic2,0,Dotted); + +pair min1=point(pic1,SW); +pair max1=point(pic1,NE); + +pair min2=point(pic2,SW); +pair max2=point(pic2,NE); + +real scale=(max1.x-min1.x)/(max2.x-min2.x); +real shift=min1.x/scale-min2.x; + +transform t1=pic1.calculateTransform(); +transform t2=pic2.calculateTransform(); +transform T=xscale(scale*t1.xx)*yscale(t2.yy); + +add(pic1.fit()); +real height=truepoint(N,user=false).y-truepoint(S,user=false).y; +add(shift(0,-height)*(shift(shift)*pic2).fit(T)); + +File: asy-faq.info, Node: Question 6.15, Next: Question 6.16, Previous: Question 6.14, Up: Section 6 + +Question 6.15. How can I change the direction of the y-axis, such that negatives values are on the upper y-axis? + +Here is a simple example (see also the example +http://asymptote.sourceforge.net/gallery/2D graphs/diatom.asy or the +discussion of Linear(-1) in the documentation): + +import graph; +size(250,200,IgnoreAspect); + +scale(Linear,Linear(-1)); + +draw(graph(log,0.1,10),red); + +xaxis("$x$",LeftTicks); +yaxis("$y$",RightTicks); + +File: asy-faq.info, Node: Question 6.16, Next: Question 6.17, Previous: Question 6.15, Up: Section 6 + +Question 6.16. How can I fill a path with a function that defines the color of each location? + +Use functionshade with a PDF tex engine, as illustrated by the example +{functionshading.asy}. + +If you want to produce PostScript output, an approximate solution for now +would be to superimpose a fine grid and specify colors to latticeshade +that depend on position as a single pen[][] lattice. Alternatively, it may +be more efficient to use tensorshade}. + + +File: asy-faq.info, Node: Question 6.17, Next: Question 6.18, Previous: Question 6.16, Up: Section 6 + +Question 6.17. Is there a way to draw a function that is not explicitly given, such as (y - 2)^2 = x - 1 ? + +Yes, use the parametric form + +y=t +x=(t-2)^2+1 +See the example http://asymptote.sourceforge.net/gallery/2D +graphs/parametricgraph.asy. + + +File: asy-faq.info, Node: Question 6.18, Next: Question 6.19, Previous: Question 6.17, Up: Section 6 + +Question 6.18. Is it possible to reverse or stretch an axis? + +The real scaling argument to Linear is used to stretch (or reverse) the +axis. To see the effect of axis stretching, be sure not to specify +IgnoreAspect in the picture size command. + +A secondary axis has the same length as the primary axis, so stretching +cannot have any effect. But one can still reverse the axis, with +Linear(-1). + + +File: asy-faq.info, Node: Question 6.19, Next: Question 6.20, Previous: Question 6.18, Up: Section 6 + +Question 6.19. Why can't I use the UnFill option to draw graphs with empty markers? + +UnFill won't work here because it only affects the local frame the markers +are initially drawn on, before being added to currentpicture. Here is a +way of achieving the desired effect (assuming a white background): + +import graph; +size(10cm,0); +pair[] z={(0,0),(0.5,0.5),(1,1)}; +path g=graph(z); + +draw(shift(0,.5)*g,marker(scale(5)*unitcircle,FillDraw(white))); + +xaxis(BottomTop,LeftTicks); +yaxis(LeftRight,RightTicks); + +File: asy-faq.info, Node: Question 6.20, Next: Question 7.1, Previous: Question 6.19, Up: Section 6 + +Question 6.20. How can I force several images to use the same palette range (e.g. the entire 0-255 grayscale range)? + +The palette color space corresponds to a range of values specified by the +argument range, which can be Full, Automatic or an explicit range +Range(pair min, pair max). Here Full} specifies a range varying from the +minimum to maximum values of the function over the sampling interval, +while Automatic selects "nice" limits. + + +File: asy-faq.info, Node: Section 7, Next: Section 8, Previous: Section 6, Up: Top + +Questions about programming + +* Menu: +* Question 7.1:: Is Asymptote an interpreter or a compiler? +* Question 7.2:: What is the difference between a frame and a picture? +* Question 7.3:: What is the difference between a path and a guide? +* Question 7.4:: What is a convenient way to declare and initialize an + array of pictures? +* Question 7.5:: Is there a way to define functions that act on arrays + in general (i.e. work for arrays of any type)? +* Question 7.6:: Is there any way to declare structures ahead of their + definition, e.g. where struct A performs some + operation on struct B, but B contains an A member? +* Question 7.7:: Where are static variables in for loops allocated? +* Question 7.8:: Is there a debugger for asy? +* Question 7.9:: Do you accept patches for Asymptote? + + + +File: asy-faq.info, Node: Question 7.1, Next: Question 7.2, Previous: Question 6.20, Up: Section 7 + +Question 7.1. Is Asymptote an interpreter or a compiler? + +Asymptote compiles Asymptote commands into its own virtual machine code. +It then runs this pseudocode on a virtual machine to produce PostScript +code. + + +File: asy-faq.info, Node: Question 7.2, Next: Question 7.3, Previous: Question 7.1, Up: Section 7 + +Question 7.2. What is the difference between a frame and a picture? + +Frames are canvases for drawing in PostScript coordinates. While working +with frames directly is occasionally necessary for constructing deferred +drawing routines, pictures are usually more convenient to work with. See +*Note Question 8.8:: `In MetaPost, it is possible to have a drawing remain +the same size in different pictures by defining a unit u and explicitly +multiply all the coordinates by u. Is there a better way to do this in +Asymptote?'. + + +File: asy-faq.info, Node: Question 7.3, Next: Question 7.4, Previous: Question 7.2, Up: Section 7 + +Question 7.3. What is the difference between a path and a guide? + +A path is a cubic spline with fixed endpoint conditions. + +A guide is an unresolved cubic spline (list of cubic-spline nodes and +control points). A guide is like a path except that the computation of the +cubic spline is deferred until drawing time (when it is resolved into a +path); this allows two guides with free endpoint conditions to be joined +together smoothly. + + +File: asy-faq.info, Node: Question 7.4, Next: Question 7.5, Previous: Question 7.3, Up: Section 7 + +Question 7.4. What is a convenient way to declare and initialize an array of pictures? + +You could write yourself a routine such as: +picture[] picture(int n) { + picture[] pic; + for(int i=0; i < n; ++i) { + pic[i]=new picture; + size(pic[i],19cm,0); + } + return pic; +} + +picture[] pic=picture(6); + +File: asy-faq.info, Node: Question 7.5, Next: Question 7.6, Previous: Question 7.4, Up: Section 7 + +Question 7.5. Is there a way to define functions that act on arrays in general (i.e. work for arrays of any type)? + +Generic types aren't yet implemented. + +But for now you can at least say +typedef string T; +include F; + +typedef real T; +include F; +where F.asy contains some type-dependent code like +T[] operator $(T A, T B) {return new T[] {A,B};} + +File: asy-faq.info, Node: Question 7.6, Next: Question 7.7, Previous: Question 7.5, Up: Section 7 + +Question 7.6. Is there any way to declare structures ahead of their definition, e.g. where struct A performs some operation on struct B, but B contains an A member? + +Asymptote does not support forward declaration of types. You can, however, +nest structures, so that both types are visible for parts of the bodies of +both structure definitions. For example: + +struct B { + typedef void someroutine(B b); + + static struct A { + someroutine routine; + void operator init(someroutine routine) { + this.routine=routine; + } + } + + string test="Testing"; +} + +typedef B.A A; + +A a=B.A(new void(B b){write(b.test);}); + +B b; +a.routine(b); + +File: asy-faq.info, Node: Question 7.7, Next: Question 7.8, Previous: Question 7.6, Up: Section 7 + +Question 7.7. Where are static variables in for loops allocated? + +In the example + +void f() { + for(int i=0; i < 3; ++i) { + static int n; + ++n; + write(n); + } +} + +f(); // Writes 1, 2, 3 +the static qualifier means that n is allocated not just outside of the for +loop, but also outside the function. This is clear if you call f multiple +times; there is still only one instance of n. + +The "level" of a variable (where it is allocated) has nothing to do with +the "scope" of a variable (how long it can be referred to by name). The +curly braces enclosing a block affect only a variable's scope, not its +level. + +Static modifiers are meaningless at the top level; they generate a warning +and are simply ignored: + +for(int i=0; i < 3; ++i) { + static int n; + ++n; + write(n); +} +// Writes warning about top-level static modifier and then 1, 1, 1 +Since version 1.22, non-static variables allocated in a loop body are +allocated anew every iteration. This is only noticable in obscure cases +where a variable in a loop is accessed in the closure of a function +defined in the loop: + +int f(); + +for(int i=0; i < 10; ++i) { + int j=10*i; + if(i == 5) + f=new int() {return j;}; +} + +write(f()); // Writes 50 +Variables in the body of a loop last as long as that iteration of the +loop, unless they are kept alive by a function closure as in the example +above. In a function body, variables will last at least as long as the +function call, though because of closures and garbage collection, they may +last longer than that. If defined at the top level of a file or at the +interactive prompt, they will last at least until the end of the file or +prompt's run. + + +File: asy-faq.info, Node: Question 7.8, Next: Question 7.9, Previous: Question 7.7, Up: Section 7 + +Question 7.8. Is there a debugger for asy? + +Yes, Asymptote includes a line-based debugger: + +http://asymptote.sourceforge.net/doc/Debugger.html + + +File: asy-faq.info, Node: Question 7.9, Next: Question 8.1, Previous: Question 7.8, Up: Section 7 + +Question 7.9. Do you accept patches for Asymptote? + +Yes, in fact we would prefer that users submit patches for customized +features (to http://sourceforge.net/tracker/?atid=685685&group_id=120000) +instead of relying on us to do all of the coding. Development will proceed +faster that way. + + +File: asy-faq.info, Node: Section 8, Next: Section 9, Previous: Section 7, Up: Top + +Questions about differences between Asymptote and MetaPost + +* Menu: +* Question 8.1:: What is the equivalent of the MetaPost c[a,b] + interpolation operator? +* Question 8.2:: How does picture scaling differ in Asymptote and + MetaPost? +* Question 8.3:: How can I avoid automatic scaling of a picture? +* Question 8.4:: What is the equivalent of MetaPost ... command? +* Question 8.5:: What is the equivalent of the MetaPost pickup command? +* Question 8.6:: What is the equivalent of the MetaPost whatever + command? +* Question 8.7:: What is the equivalent for the MetaPost command for + lray - horiz*v - verti*u = whatever*(LightSource - R), + a system of three linear equations for three unknowns: + horiz, verti, whatever? +* Question 8.8:: In MetaPost, it is possible to have a drawing remain + the same size in different pictures by defining a unit + u and explicitly multiply all the coordinates by u. Is + there a better way to do this in Asymptote? +* Question 8.9:: In MetaPost, one could produce tiling pictures by + generating a picture, and then clipping the picture to + a rectangle of fixed dimensions around the center of + the picture. How is that done in Asymptote? + + + +File: asy-faq.info, Node: Question 8.1, Next: Question 8.2, Previous: Question 7.9, Up: Section 8 + +Question 8.1. What is the equivalent of the MetaPost c[a,b] interpolation operator? + +interp(a,b,c); + +File: asy-faq.info, Node: Question 8.2, Next: Question 8.3, Previous: Question 8.1, Up: Section 8 + +Question 8.2. How does picture scaling differ in Asymptote and MetaPost? + +Asymptote includes an optional facility to do automatic scaling of +pictures to achieve a given overall picture size, whereas Metapost only +supports manual scaling. Asymptote defers drawing of objects drawn to +pictures and distinguishes between true-size objects and objects that +should scale with the picture size. The resulting linear programming +problem is solved via the Simplex method. + +See the http://asymptote.sourceforge.net/gallery/dimension.asy example for +an example of how deferred drawing is used to accomodate both user and +true-size (PostScript) coordinates. + + +File: asy-faq.info, Node: Question 8.3, Next: Question 8.4, Previous: Question 8.2, Up: Section 8 + +Question 8.3. How can I avoid automatic scaling of a picture? + +If you really like Metapost-style manual (hard-wired) scaling either: + +(i) use the default size(0,0) for the entire picture and do all of the +scaling by hand, just like in MetaPost; + +(ii) draw to a separate picture pic and add(pic.fit()); + +(iii) use frames. + + +File: asy-faq.info, Node: Question 8.4, Next: Question 8.5, Previous: Question 8.3, Up: Section 8 + +Question 8.4. What is the equivalent of MetaPost ... command? + +The connector :: is a macro for tension atleast 1: + +size(100); +pair z0=(0,0); +pair z1=(1,0.25); +pair z2=(2,0); +draw(z0{up}::z1{right}::z2{down}); + +File: asy-faq.info, Node: Question 8.5, Next: Question 8.6, Previous: Question 8.4, Up: Section 8 + +Question 8.5. What is the equivalent of the MetaPost pickup command? + +Just say, for example: + +currentpen=red; + +File: asy-faq.info, Node: Question 8.6, Next: Question 8.7, Previous: Question 8.5, Up: Section 8 + +Question 8.6. What is the equivalent of the MetaPost whatever command? + +Asymptote does not implicitly solve linear equations and therefore does +not have the notion of a whatever unknown. Such a facility could certainly +be added (perhaps using the notation ?= since = means assignment). +However, the most common uses of whatever in MetaPost are covered by +functions like extension in math.asy: +pair extension(pair P, pair Q, pair p, pair q); +this returns the intersection point of the extensions of the line segments +PQ and pq. We find using routines like extension more explicit and less +confusing to new users. But we could be persuaded to add something similar +if someone can justify the need. In the meantime, one can always use the +explicit built-in linear solver solve (see +http://asymptote.sourceforge.net/doc/solve.html), which uses LU +decomposition. + + +File: asy-faq.info, Node: Question 8.7, Next: Question 8.8, Previous: Question 8.6, Up: Section 8 + +Question 8.7. What is the equivalent for the MetaPost command for lray - horiz*v - verti*u = whatever*(LightSource - R), a system of three linear equations for three unknowns: horiz, verti, whatever? + +Since horiz*v+verti*u spans a plane, you could use +real intersect(vector P, vector Q, vector n, vector Z); +to find the intersection time for the line lray-whatever*(LightSource - +R) and then extract the three desired values from there. (You'll still +need to use the built-in explicit linear solver to solve a 2x2 system to +get horiz and verti.) + + +File: asy-faq.info, Node: Question 8.8, Next: Question 8.9, Previous: Question 8.7, Up: Section 8 + +Question 8.8. In MetaPost, it is possible to have a drawing remain the same size in different pictures by defining a unit u and explicitly multiply all the coordinates by u. Is there a better way to do this in Asymptote? + +Yes, Asymptote has a better way: you definitely don't want to manually +scale all of your coordinates. To make the user coordinates represent +multiples of exactly 1cm: + +unitsize(1cm); +draw(unitsquare); +One can also specify different x and y unit sizes: + +unitsize(x=1cm,y=2cm); +draw(unitsquare); +Another way is to draw your fixed size object to a frame and add it to +currentpicture like this: + +path p=(0,0)--(1,0); +frame object; +draw(object,scale(100)*p); + +add(object); +add(object,(0,-10)); +To understand the difference between frames and pictures, try this: + +size(300,300); + +path p=(0,0)--(1,0); +picture object; +draw(object,scale(100)*p); + +add(object); +add(object,(0,-10)); // Adds truesize object to currentpicture + +File: asy-faq.info, Node: Question 8.9, Next: Question 9.1, Previous: Question 8.8, Up: Section 8 + +Question 8.9. In MetaPost, one could produce tiling pictures by generating a picture, and then clipping the picture to a rectangle of fixed dimensions around the center of the picture. How is that done in Asymptote? + +If you are using currentpicture the way one would in MetaPost (drawing in +raw PostScript coordinates), you can simply do something like: + +fill((0,0)--(100,100)--(200,0)--cycle); + +pair center(picture pic=currentpicture) {return 0.5*(pic.min()+pic.max());} + +real height=100; +real width=100; +pair delta=0.5(width,height); +pair c=center(); +clip(box(c-delta,c+delta)); +However, drawing in PostScript coordinates is often inconvenient. Here's +the Asymptote way of doing the same thing, using deferred drawing: + +size(200,100); +fill((0,0)--(1,1)--(2,0)--cycle); + +void clip(picture pic=currentpicture, real width, real height) +{ + pic.clip(new void (frame f, transform) { + pair center=0.5(min(f)+max(f)); + pair delta=0.5(width,height); + clip(f,box(center-delta,center+delta)); + }); +} + +clip(100,100); +See also the discussion of tilings in the documentation: +http://asymptote.sourceforge.net/doc/Pens.html. + + +File: asy-faq.info, Node: Section 9, Previous: Section 8, Up: Top + +Questions about output + +* Menu: +* Question 9.1:: How can I disable automatic invocation of the PS + viewer after an asy file is done processing? +* Question 9.2:: How do I output jpeg images? +* Question 9.3:: Can I embed bitmaps (photos) into my drawings and + position and scale them? +* Question 9.4:: Does Asymptote support direct PDF output? +* Question 9.5:: How to I produce large pictures of high quality in + raster format (e.g. png, giff etc). +* Question 9.6:: Is it possible to produce multi-page documents with + asymptote? + + + +File: asy-faq.info, Node: Question 9.1, Next: Question 9.2, Previous: Question 8.9, Up: Section 9 + +Question 9.1. How can I disable automatic invocation of the PS viewer after an asy file is done processing? + +It's actually not on by default, unless you happen to be using Microsoft +Windows (because that is what most Microsoft Windows users expect). +Microsoft Windows users can turn this feature off with the command-line +option -noV or by putting + +import settings; +interactiveView=false; +batchView=false; +in their config.asy file. See +http://asymptote.sourceforge.net/doc/Options.html. + + +File: asy-faq.info, Node: Question 9.2, Next: Question 9.3, Previous: Question 9.1, Up: Section 9 + +Question 9.2. How do I output jpeg images? + +If you have the ImageMagick convert program installed, simply type + +asy -f jpg test.asy + +File: asy-faq.info, Node: Question 9.3, Next: Question 9.4, Previous: Question 9.2, Up: Section 9 + +Question 9.3. Can I embed bitmaps (photos) into my drawings and position and scale them? + +Convert them to eps format and use the graphic(string) function just like +a Label: + +label(graphic("file"),(0,0)); +See the example http://asymptote.sourceforge.net/gallery/orthocenter.asy +and http://asymptote.sourceforge.net/doc/label.html. + + +File: asy-faq.info, Node: Question 9.4, Next: Question 9.5, Previous: Question 9.3, Up: Section 9 + +Question 9.4. Does Asymptote support direct PDF output? + +Yes, PDF output can be produced by the -f pdf option or -tex pdflatex +option. This supports transparency, annotations, embedded movies, and +U3D/PRC content. + + +File: asy-faq.info, Node: Question 9.5, Next: Question 9.6, Previous: Question 9.4, Up: Section 9 + +Question 9.5. How to I produce large pictures of high quality in raster format (e.g. png, giff etc). + +Try using some of the options to convert, mainly -geometry and -density. +For example: +convert -geometry 1000x3000 example.eps example.png +You can also change the default resolution of the image with: +convert -geometry 1000x3000 -density 300 -units PixelsPerInch example.eps example.png +This does not change the number of pixels in the image, but just gives a +hint as to how large each pixel should be displayed. + +If you include the -density option without the -geometry option, convert +will keep the image size constant (so a 4cm x 3cm eps figure will +generate a 4cm x 3cm png image). + + +File: asy-faq.info, Node: Question 9.6, Previous: Question 9.5, Up: Section 9 + +Question 9.6. Is it possible to produce multi-page documents with asymptote? + +Yes, simply call the newpage() function. This is used by the slide.asy +package to produce high-quality slide presentations (easier to use than +Prosper). + diff --git a/Master/texmf-dist/doc/info/asymptote.info b/Master/texmf-dist/doc/info/asymptote.info new file mode 100644 index 00000000000..ee7d4f40b51 --- /dev/null +++ b/Master/texmf-dist/doc/info/asymptote.info @@ -0,0 +1,9963 @@ +This is asymptote.info, produced by makeinfo version 4.13 from +../asymptote.texi. + +This file documents `Asymptote', version 2.16. + + `http://asymptote.sourceforge.net' + + Copyright (C) 2004-11 Andy Hammerlindl, John Bowman, and Tom Prince. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Lesser General Public License + (see the file LICENSE in the top-level source directory). + + +INFO-DIR-SECTION Languages +START-INFO-DIR-ENTRY +* asymptote: (asymptote/asymptote). Vector graphics language. +END-INFO-DIR-ENTRY + + +File: asymptote.info, Node: Top, Next: Description, Up: (dir) + +Asymptote +********* + +This file documents `Asymptote', version 2.16. + + `http://asymptote.sourceforge.net' + + Copyright (C) 2004-11 Andy Hammerlindl, John Bowman, and Tom Prince. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Lesser General Public License + (see the file LICENSE in the top-level source directory). + + +* Menu: + +* Description:: What is `Asymptote'? +* Installation:: Downloading and installing +* Tutorial:: Getting started +* Drawing commands:: Four primitive graphics commands +* Bezier curves:: Path connectors and direction specifiers +* Programming:: The `Asymptote' vector graphics language +* LaTeX usage:: Embedding `Asymptote' commands within `LaTeX' +* Base modules:: Base modules shipped with `Asymptote' +* Options:: Command-line options +* Interactive mode:: Typing `Asymptote' commands interactively +* GUI:: Graphical user interface +* PostScript to Asymptote:: `Asymptote' backend to `pstoedit' +* Help:: Where to get help and submit bug reports +* Debugger:: Squish those bugs! +* Credits:: Contributions and acknowledgments +* Index:: General index + + --- The Detailed Node Listing --- + +Installation + +* UNIX binary distributions:: Prebuilt `UNIX' binaries +* MacOS X binary distributions:: Prebuilt `MacOS X' binaries +* Microsoft Windows:: Prebuilt `Microsoft Windows' binary +* Configuring:: Configuring `Asymptote' for your system +* Search paths:: Where `Asymptote' looks for your files +* Compiling from UNIX source:: Building `Asymptote' from scratch +* Editing modes:: Convenient `emacs' and `vim' modes +* Subversion:: Getting the latest development source +* Uninstall:: Goodbye, `Asymptote'! + +Drawing commands + +* draw:: Draw a path on a picture or frame +* fill:: Fill a cyclic path on a picture or frame +* clip:: Clip a picture or frame to a cyclic path +* label:: Label a point on a picture + +Programming + +* Data types:: void, bool, int, real, pair, triple, string +* Paths and guides:: +* Pens:: Colors, line types, line widths, font sizes +* Transforms:: Affine transforms +* Frames and pictures:: Canvases for immediate and deferred drawing +* Files:: Reading and writing your data +* Variable initializers:: Initialize your variables +* Structures:: Organize your data +* Operators:: Arithmetic and logical operators +* Implicit scaling:: Avoiding those ugly *s +* Functions:: Traditional and high-order functions +* Arrays:: Dynamic vectors +* Casts:: Implicit and explicit casts +* Import:: Importing external `Asymptote' modules +* Static:: Where to allocate your variable? + +Operators + +* Arithmetic & logical:: Basic mathematical operators +* Self & prefix operators:: Increment and decrement +* User-defined operators:: Overloading operators + +Functions + +* Default arguments:: Default values can appear anywhere +* Named arguments:: Assigning function arguments by keyword +* Rest arguments:: Functions with a variable number of arguments +* Mathematical functions:: Standard libm functions + + +Arrays + +* Slices:: Python-style array slices + +Base modules + +* plain:: Default `Asymptote' base file +* simplex:: Linear programming: simplex method +* math:: Extend `Asymptote''s math capabilities +* interpolate:: Interpolation routines +* geometry:: Geometry routines +* trembling:: Wavy lines +* stats:: Statistics routines and histograms +* patterns:: Custom fill and draw patterns +* markers:: Custom path marker routines +* tree:: Dynamic binary search tree +* binarytree:: Binary tree drawing module +* drawtree:: Tree drawing module +* syzygy:: Syzygy and braid drawing module +* feynman:: Feynman diagrams +* roundedpath:: Round the sharp corners of paths +* animation:: Embedded PDF and MPEG movies +* embed:: Embedding movies, sounds, and 3D objects +* slide:: Making presentations with `Asymptote' +* MetaPost:: `MetaPost' compatibility routines +* unicode:: Accept `unicode' (UTF-8) characters +* latin1:: Accept `ISO 8859-1' characters +* babel:: Interface to `LaTeX' `babel' package +* labelpath:: Drawing curved labels +* labelpath3:: Drawing curved labels in 3D +* annotate:: Annotate your PDF files +* CAD:: 2D CAD pen and measurement functions (DIN 15) +* graph:: 2D linear & logarithmic graphs +* palette:: Color density images and palettes +* three:: 3D vector graphics +* obj:: 3D obj files +* graph3:: 3D linear & logarithmic graphs +* grid3:: 3D grids +* solids:: 3D solid geometry +* tube:: 3D rotation minimizing tubes +* flowchart:: Flowchart drawing routines +* contour:: Contour lines +* contour3:: Contour surfaces +* slopefield:: Slope fields +* ode:: Ordinary differential equations + +Graphical User Interface + +* GUI installation:: Installing `xasy' +* GUI usage:: + + +File: asymptote.info, Node: Description, Next: Installation, Prev: Top, Up: Top + +1 Description +************* + +`Asymptote' is a powerful descriptive vector graphics language that +provides a mathematical coordinate-based framework for technical +drawings. Labels and equations are typeset with `LaTeX', for overall +document consistency, yielding the same high-quality level of +typesetting that `LaTeX' provides for scientific text. By default it +produces `PostScript' output, but it can also generate any format that +the `ImageMagick' package can produce. + + A major advantage of `Asymptote' over other graphics packages is +that it is a high-level programming language, as opposed to just a +graphics program: it can therefore exploit the best features of the +script (command-driven) and graphical-user-interface (GUI) methods for +producing figures. The rudimentary GUI `xasy' included with the package +allows one to move script-generated objects around. To make `Asymptote' +accessible to the average user, this GUI is currently being developed +into a full-fledged interface that can generate objects directly. +However, the script portion of the language is now ready for general +use by users who are willing to learn a few simple `Asymptote' graphics +commands (*note Drawing commands::). + + `Asymptote' is mathematically oriented (e.g. one can use complex +multiplication to rotate a vector) and uses `LaTeX' to do the +typesetting of labels. This is an important feature for scientific +applications. It was inspired by an earlier drawing program (with a +weaker syntax and capabilities) called `MetaPost'. + + The `Asymptote' vector graphics language provides: + + * a standard for typesetting mathematical figures, just as + TeX/`LaTeX' is the de-facto standard for typesetting equations. + + * `LaTeX' typesetting of labels, for overall document consistency; + + * the ability to generate and embed 3D vector PRC graphics within + PDF files; + + * a natural coordinate-based framework for technical drawings, + inspired by `MetaPost', with a much cleaner, powerful C++-like + programming syntax; + + * compilation of figures into virtual machine code for speed, without + sacrificing portability; + + * the power of a script-based language coupled to the convenience of + a GUI; + + * customization using its own C++-like graphics programming language; + + * sensible defaults for graphical features, with the ability to + override; + + * a high-level mathematically oriented interface to the `PostScript' + language for vector graphics, including affine transforms and + complex variables; + + * functions that can create new (anonymous) functions; + + * deferred drawing that uses the simplex method to solve overall size + constraint issues between fixed-sized objects (labels and + arrowheads) and objects that should scale with figure size; + + + Many of the features of `Asymptote' are written in the `Asymptote' +language itself. While the stock version of `Asymptote' is designed for +mathematics typesetting needs, one can write `Asymptote' modules that +tailor it to specific applications. A scientific graphing module has +already been written (*note graph::). Examples of `Asymptote' code and +output, including animations, are available at + + `http://asymptote.sourceforge.net/gallery/'. + Links to many external resources, including an excellent user-written +`Asymptote' tutorial can be found at + + `http://asymptote.sourceforge.net/links.html'. + A quick reference card for `Asymptote' is available at + + `http://asymptote.sourceforge.net/asyRefCard.pdf'. + + +File: asymptote.info, Node: Installation, Next: Tutorial, Prev: Description, Up: Top + +2 Installation +************** + +* Menu: + +* UNIX binary distributions:: Prebuilt `UNIX' binaries +* MacOS X binary distributions:: Prebuilt `MacOS X' binaries +* Microsoft Windows:: Prebuilt `Microsoft Windows' binary +* Configuring:: Configuring `Asymptote' for your system +* Search paths:: Where `Asymptote' looks for your files +* Compiling from UNIX source:: Building `Asymptote' from scratch +* Editing modes:: Convenient `emacs' and `vim' modes +* Subversion:: Getting the latest development source +* Uninstall:: Goodbye, `Asymptote'! + + After following the instructions for your specific distribution, +please see also *note Configuring::. + +We recommend subscribing to new release announcements at + + `http://freshmeat.net/projects/asy' + Users may also wish to monitor the `Asymptote' forum: + + `http://sourceforge.net/projects/asymptote/forums/forum/409349' + + +File: asymptote.info, Node: UNIX binary distributions, Next: MacOS X binary distributions, Up: Installation + +2.1 UNIX binary distributions +============================= + +We release both `tgz' and RPM binary distributions of `Asymptote'. The +root user can install the `Linux i386' `tgz' distribution of version +`x.xx' of `Asymptote' with the commands: +tar -C / -zxf asymptote-x.xx.i386.tgz +texhash + The `texhash' command, which installs LaTeX style files, is optional. +The executable file will be `/usr/local/bin/asy') and example code will +be installed by default in `/usr/local/share/doc/asymptote/examples'. + +Fedora users can easily install the most recent version of `Asymptote' +with the command +yum --enablerepo=rawhide install asymptote + +To install the latest version of `Asymptote' on a Debian-based +distribution (e.g. Ubuntu, Mepis, Linspire) follow the instructions for +compiling from `UNIX' source (*note Compiling from UNIX source::). +Alternatively, Debian users can install one of Hubert Chan's prebuilt +`Asymptote' binaries from + + `http://ftp.debian.org/debian/pool/main/a/asymptote' + + +File: asymptote.info, Node: MacOS X binary distributions, Next: Microsoft Windows, Prev: UNIX binary distributions, Up: Installation + +2.2 MacOS X binary distributions +================================ + +`MacOS X' users can either compile the `UNIX' source code (*note +Compiling from UNIX source::) or install the contributed `Asymptote' +binary available at + +`http://www.hmug.org/pub/MacOS_X/X/Applications/Publishing/asymptote/' + +Because these preconfigured binary distributions have strict +architecture and library dependencies that many installations do not +satisfy, we recommend installing `Asymptote' directly from the official +source: + + `http://sourceforge.net/project/showfiles.php?group_id=120000' + +Note that many `MacOS X' (and FreeBSD) systems lack the GNU `readline' +library. For full interactive functionality, GNU `readline' version 4.3 +or later must be installed. + + +File: asymptote.info, Node: Microsoft Windows, Next: Configuring, Prev: MacOS X binary distributions, Up: Installation + +2.3 Microsoft Windows +===================== + +Users of the `Microsoft Windows' operating system can install the +self-extracting `Asymptote' executable `asymptote-x.xx-setup.exe', +where `x.xx' denotes the latest version. + + A working TeX implementation (such as the one available at +`http://www.miktex.org') will be required to typeset labels. You will +also need to install `GPL Ghostscript' from +`http://sourceforge.net/projects/ghostscript/'. + + To view the default `PostScript' output, you can install the program +`gsview' available from `http://www.cs.wisc.edu/~ghost/gsview/'. A +better (and free) `PostScript' viewer available at +`http://psview.sourceforge.net/' (which in particular works properly in +interactive mode) unfortunately currently requires some manual +configuration. Specifically, if version `x.xx' of `psview' is extracted +to the directory `c:\Program Files' one needs to put +import settings; +psviewer="c:\Program Files\psview-x.xx\psv.exe"; + in the optional `Asymptote' configuration file; *note configuration +file::). + + The `ImageMagick' package from + + `http://www.imagemagick.org/script/binary-releases.php' + +is required to support output formats other than EPS, PDF, SVG, and PNG +(*note convert::). The `Python' interpreter from +`http://www.python.org' is only required if you wish to try out the +graphical user interface (*note GUI::). + +Example code will be installed by default in the `examples' +subdirectory of the installation directory (by default, `C:\Program +Files\Asymptote'). + + +File: asymptote.info, Node: Configuring, Next: Search paths, Prev: Microsoft Windows, Up: Installation + +2.4 Configuring +=============== + +In interactive mode, or when given the `-V' option (the default when +running `Asymptote' on a single file under `MSDOS'), `Asymptote' will +automatically invoke the `PostScript' viewer `gv' (under `UNIX') or +`gsview' (under `MSDOS' to display graphical output. These defaults may +be overridden with the configuration variable `psviewer'. The +`PostScript' viewer should be capable of automatically redrawing +whenever the output file is updated. The default `UNIX' `PostScript' +viewer `gv' supports this (via a `SIGHUP' signal). Version `gv-3.6.3' +or later (from `http://ftp.gnu.org/gnu/gv/') is required for +interactive mode to work properly. Users of `ggv' will need to enable +`Watch file' under `Edit/Postscript Viewer Preferences'. Users of +`gsview' will need to enable `Options/Auto Redisplay' (however, under +`MSDOS' it is still necessary to click on the `gsview' window; under +`UNIX' one must manually redisplay by pressing the `r' key). A better +(and free) multiplatform alternative to `gsview' is `psview' (*note +psview::). + + Configuration variables are most easily set as `Asymptote' variables +in an optional configuration file `config.asy' *note configuration +file::). Here are the default values of several important configuration +variables under `UNIX': + + +import settings; +psviewer="gv"; +pdfviewer="acroread"; +gs="gs"; + +Under `MSDOS', the (installation-dependent) default values of these +configuration variables are determined automatically from the +`Microsoft Windows' registry. Viewer settings (such as `psviewer' and +`pdfviewer') can be set to the string `cmd' to request the application +normally associated with the corresponding file type. + + For PDF format output, the `gs' setting specifies the location of +the `PostScript'-to-PDF processor `Ghostscript', available from +`http://sourceforge.net/projects/ghostscript/'. + + The setting `pdfviewer' specifies the location of the PDF viewer. On +`UNIX' systems, to support automatic document reloading in `Adobe +Reader', we recommend copying the file `reload.js' from the `Asymptote' +system directory (by default, `/usr/local/share/asymptote' under `UNIX' +to `~/.adobe/Acrobat/x.x/JavaScripts/', where `x.x' represents the +appropriate `Adobe Reader' version number. The automatic document +reload feature must then be explicitly enabled by putting +import settings; +pdfreload=true; +pdfreloadOptions="-tempFile"; + in the `Asymptote' configuration file. This reload feature is not +useful under `MSDOS' since the document cannot be updated anyway on +that operating system until it is first closed by `Adobe Reader'. + + The configuration variable `dir' can be used to adjust the search +path (*note Search paths::). + + By default, `Asymptote' attempts to center the figure on the page, +assuming that the paper type is `letter'. The default paper type may be +changed to `a4' with the configuration variable `papertype'. Alignment +to other paper sizes can be obtained by setting the configuration +variables `paperwidth' and `paperheight'. + + The following configuration variables normally do not require +adjustment: +texpath +texcommand +dvips +dvisvgm +convert +display +animate + Warnings (such as "writeoverloaded") may be enabled or disabled with +the functions +warn(string s); +nowarn(string s); + or by directly modifying the string array `settings.suppress', which +lists all disabled warnings. + + Configuration variables may also be set or overwritten with a +command-line option: +asy -psviewer=gsview -V venn + + Alternatively, system environment versions of the above configuration +variables may be set in the conventional way. The corresponding +environment variable name is obtained by converting the configuration +variable name to upper case and prepending `ASYMPTOTE_': for example, +to set the environment variable +ASYMPTOTE_PSVIEWER="C:\Program Files\Ghostgum\gsview\gsview32.exe"; + under `Microsoft Windows XP': + 1. Click on the `Start' button; + + 2. Right-click on `My Computer'; + + 3. Choose `View system information'; + + 4. Click the `Advanced' tab; + + 5. Click the `Environment Variables' button. + + +File: asymptote.info, Node: Search paths, Next: Compiling from UNIX source, Prev: Configuring, Up: Installation + +2.5 Search paths +================ + +In looking for `Asymptote' system files, `asy' will search the +following paths, in the order listed: + 1. The current directory; + + 2. A list of one or more directories specified by the configuration + variable `dir' or environment variable `ASYMPTOTE_DIR' (separated + by `:' under UNIX and `;' under `MSDOS'); + + 3. The directory specified by the environment variable + `ASYMPTOTE_HOME'; if this variable is not set, the directory + `.asy' in the user's home directory (`%USERPROFILE%\.asy' under + `MSDOS') is used; + + 4. The `Asymptote' system directory (by default, + `/usr/local/share/asymptote' under `UNIX' and `C:\Program + Files\Asymptote' under `MSDOS'). + + +File: asymptote.info, Node: Compiling from UNIX source, Next: Editing modes, Prev: Search paths, Up: Installation + +2.6 Compiling from UNIX source +============================== + +To compile and install a `UNIX' executable from a source release +`x.xx', first execute the commands: +gunzip asymptote-x.xx.src.tgz +tar -xf asymptote-x.xx.src.tar +cd asymptote-x.xx + By default the system version of the Boehm garbage collector will be +used; if it is old we recommend first putting +`http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2b.tar.gz' +in the `Asymptote' source directory. + +If your graphics card supports multisampling, we recommend using version +`2.6.0' of `freeglut' to support antialiasing in `Asymptote''s adaptive +`OpenGL' 3D renderer (`MacOS X' users can skip this step since +`Asymptote' is configured to use the native glut library on that +platform). Download + + `http://prdownloads.sourceforge.net/freeglut/freeglut-2.6.0.tar.gz' + and type (as the root user): +tar -zxf freeglut-2.6.0.tar.gz +cd freeglut-2.6.0 +./configure --prefix=/usr +make install +cd .. + Then compile `Asymptote' with the commands +./configure +make all +make install + Be sure to use GNU `make' (on non-GNU systems this command may be +called `gmake'). To build the documentation, you may need to install +the `texinfo-tex' package. If you get errors from a broken `texinfo' or +`pdftex' installation, simply put + + `http://asymptote.sourceforge.net/asymptote.pdf' + in the directory `doc' and repeat the command `make all'. + +For a (default) system-wide installation, the last command should be +done as the root user. To install without root privileges, change the +`./configure' command to +./configure --prefix=$HOME/asymptote + One can disable use of the Boehm garbage collector by configuring with +`./configure --disable-gc'. For a list of other configuration options, +say `./configure --help'. For example, one can tell configure to look +for header files and libraries in nonstandard locations: +./configure CFLAGS=-I/opt/usr/include LDFLAGS=-L/opt/usr/lib + + If you are compiling `Asymptote' with `gcc', you will need a +relatively recent version (e.g. 3.4.4 or later). For full interactive +functionality, you will need version 4.3 or later of the GNU `readline' +library. The file `gcc3.3.2curses.patch' in the `patches' directory can +be used to patch the broken curses.h header file (or a local copy +thereof in the current directory) on some `AIX' and `IRIX' systems. + + The `FFTW' library is only required if you want `Asymptote' to be +able to take Fourier transforms of data (say, to compute an audio power +spectrum). The `GSL' library is only required if you require the +special functions that it supports. + + If you don't want to install `Asymptote' system wide, just make sure +the compiled binary `asy' and GUI script `xasy' are in your path and +set the configuration variable `dir' to point to the directory `base' +(in the top level directory of the `Asymptote' source code). + + +File: asymptote.info, Node: Editing modes, Next: Subversion, Prev: Compiling from UNIX source, Up: Installation + +2.7 Editing modes +================= + +Users of `emacs' can edit `Asymptote' code with the mode `asy-mode', +after enabling it by putting the following lines in their `.emacs' +initialization file, replacing `ASYDIR' with the location of the +`Asymptote' system directory (by default, `/usr/local/share/asymptote' +or `C:\Program Files\Asymptote' under `MSDOS'): +(add-to-list 'load-path "ASYDIR") +(autoload 'asy-mode "asy-mode.el" "Asymptote major mode." t) +(autoload 'lasy-mode "asy-mode.el" "hybrid Asymptote/Latex major mode." t) +(autoload 'asy-insinuate-latex "asy-mode.el" "Asymptote insinuate LaTeX." t) +(add-to-list 'auto-mode-alist '("\\.asy$" . asy-mode)) + + Particularly useful key bindings in this mode are `C-c C-c', which +compiles and displays the current buffer, and the key binding `C-c ?', +which shows the available function prototypes for the command at the +cursor. For full functionality you should also install the Apache +Software Foundation package `two-mode-mode': + + `http://www.dedasys.com/freesoftware/files/two-mode-mode.el' + Once installed, you can use the hybrid mode `lasy-mode' to edit a +LaTeX file containing embedded `Asymptote' code (*note LaTeX usage::). +This mode can be enabled within `latex-mode' with the key sequence `M-x +lasy-mode <RET>'. On `UNIX' systems, additional keywords will be +generated from all `asy' files in the space-separated list of +directories specified by the environment variable `ASYMPTOTE_SITEDIR'. +Further documentation of `asy-mode' is available within `emacs' by +pressing the sequence keys `C-h f asy-mode <RET>'. + + Fans of `vim' can customize `vim' for `Asymptote' with + +`cp /usr/local/share/asymptote/asy.vim ~/.vim/syntax/asy.vim' + +and add the following to their `~/.vimrc' file: +augroup filetypedetect +au BufNewFile,BufRead *.asy setf asy +augroup END +filetype plugin on + + If any of these directories or files don't exist, just create them. +To set `vim' up to run the current asymptote script using `:make' just +add to `~/.vim/ftplugin/asy.vim': +setlocal makeprg=asy\ % +setlocal errorformat=%f:\ %l.%c:\ %m + + Syntax highlighting support for the KDE editor `Kate' can be enabled +by running `asy-kate.sh' in the `/usr/local/share/asymptote' directory +and putting the generated `asymptote.xml' file in +`~/.kde/share/apps/katepart/syntax/'. + + +File: asymptote.info, Node: Subversion, Next: Uninstall, Prev: Editing modes, Up: Installation + +2.8 Subversion (SVN) +==================== + +The following commands are needed to install the latest development +version of `Asymptote' using `Subversion': +svn co http://asymptote.svn.sourceforge.net/svnroot/asymptote/trunk/asymptote +cd asymptote +./autogen.sh +./configure +make all +make install + +To compile without optimization, use the command `make CFLAGS=-g'. + + +File: asymptote.info, Node: Uninstall, Prev: Subversion, Up: Installation + +2.9 Uninstall +============= + +To uninstall an `Linux i386' binary distribution, use the commands +tar -zxvf asymptote-x.xx.i386.tgz | xargs --replace=% rm /% +texhash + +To uninstall all `Asymptote' files installed from a source +distribution, use the command +make uninstall + + +File: asymptote.info, Node: Tutorial, Next: Drawing commands, Prev: Installation, Up: Top + +3 Tutorial +********** + +3.1 Drawing in batch mode +========================= + +To draw a line from coordinate (0,0) to coordinate (100,100), create a +text file `test.asy' containing + +draw((0,0)--(100,100)); + Then execute the command +asy -V test + Alternatively, `MSDOS' users can drag and drop `test.asy' onto the +Desktop `asy' icon (or make `Asymptote' the default application for the +extension `asy'). + +This method, known as _batch mode_, outputs a `PostScript' file +`test.eps'. If you prefer PDF output, use the command line +asy -V -f pdf test + In either case, the `-V' option opens up a viewer window so you can +immediately view the result: + + +Here, the `--' connector joins the two points `(0,0)' and `(100,100)' +with a line segment. + +3.2 Drawing in interactive mode +=============================== + +Another method is _interactive mode_, where `Asymptote' reads +individual commands as they are entered by the user. To try this out, +enter `Asymptote''s interactive mode by clicking on the `Asymptote' +icon or typing the command `asy'. Then type +draw((0,0)--(100,100)); + followed by `Enter', to obtain the above image. At this point you can +type further `draw' commands, which will be added to the displayed +figure, `erase' to clear the canvas, +input test; + to execute all of the commands contained in the file `test.asy', or +`quit' to exit interactive mode. You can use the arrow keys in +interactive mode to edit previous lines. The tab key will +automatically complete unambiguous words; otherwise, hitting tab again +will show the possible choices. Further commands specific to +interactive mode are described in *note Interactive mode::. + +3.3 Figure size +=============== + +In `Asymptote', coordinates like `(0,0)' and `(100,100)', called +_pairs_, are expressed in `PostScript' "big points" (1 `bp' = 1/72 +`inch') and the default line width is `0.5bp'. However, it is often +inconvenient to work directly in `PostScript' coordinates. The next +example produces identical output to the previous example, by scaling +the line `(0,0)--(1,1)' to fit a rectangle of width `100.5 bp' and +height `100.5 bp' (the extra `0.5bp' accounts for the line width): +size(100.5,100.5); +draw((0,0)--(1,1)); + + + +One can also specify the size in `pt' (1 `pt' = 1/72.27 `inch'), `cm', +`mm', or `inches'. Two nonzero size arguments (or a single size +argument) restrict the size in both directions, preserving the aspect +ratio. If 0 is given as a size argument, no restriction is made in +that direction; the overall scaling will be determined by the other +direction (*note size::): + +size(0,100.5); +draw((0,0)--(2,1),Arrow); + + + +To connect several points and create a cyclic path, use the `cycle' +keyword: + +size(3cm); +draw((0,0)--(1,0)--(1,1)--(0,1)--cycle); + + +For convenience, the path `(0,0)--(1,0)--(1,1)--(0,1)--cycle' may be +replaced with the predefined variable `unitsquare', or equivalently, +`box((0,0),(1,1))'. + + To make the user coordinates represent multiples of exactly `1cm': +unitsize(1cm); +draw(unitsquare); + +3.4 Labels +========== + +Adding labels is easy in `Asymptote'; one specifies the label as a +double-quoted `LaTeX' string, a coordinate, and an optional alignment +direction: + +size(3cm); +draw(unitsquare); +label("$A$",(0,0),SW); +label("$B$",(1,0),SE); +label("$C$",(1,1),NE); +label("$D$",(0,1),NW); + + + +`Asymptote' uses the standard compass directions `E=(1,0)', `N=(0,1)', +`NE=unit(N+E)', and `ENE=unit(E+NE)', etc., which along with the +directions `up', `down', `right', and `left' are defined as pairs in +the `Asymptote' base module `plain' (a user who has a local variable +named `E' may access the compass direction `E' by prefixing it with the +name of the module where it is defined: `plain.E'). + +3.5 Paths +========= + +This example draws a path that approximates a quarter circle, +terminated with an arrowhead: + +size(100,0); +draw((1,0){up}..{left}(0,1),Arrow); + + +Here the directions `up' and `left' in braces specify the incoming and +outgoing directions at the points `(1,0)' and `(0,1)', respectively. + + In general, a path is specified as a list of points (or other paths) +interconnected with `--', which denotes a straight line segment, or +`..', which denotes a cubic spline (*note Bezier curves::). Specifying +a final `..cycle' creates a cyclic path that connects smoothly back to +the initial node, as in this approximation (accurate to within 0.06%) +of a unit circle: +path unitcircle=E..N..W..S..cycle; + +An `Asymptote' path, being connected, is equivalent to a `Postscript +subpath'. The `^^' binary operator, which requests that the pen be +moved (without drawing or affecting endpoint curvatures) from the final +point of the left-hand path to the initial point of the right-hand +path, may be used to group several `Asymptote' paths into a `path[]' +array (equivalent to a `PostScript' path): + +size(0,100); +path unitcircle=E..N..W..S..cycle; +path g=scale(2)*unitcircle; +filldraw(unitcircle^^g,evenodd+yellow,black); + + + +The `PostScript' even-odd fill rule here specifies that only the region +bounded between the two unit circles is filled (*note fillrule::). In +this example, the same effect can be achieved by using the default zero +winding number fill rule, if one is careful to alternate the +orientation of the paths: +filldraw(unitcircle^^reverse(g),yellow,black); + + The `^^' operator is used by the `box(triple, triple)' function in +the module `three.asy' to construct the edges of a cube `unitbox' +without retracing steps (*note three::): + +import three; + +currentprojection=orthographic(5,4,2,center=true); + +size(5cm); +size3(3cm,5cm,8cm); + +draw(unitbox); + +dot(unitbox,red); + +label("$O$",(0,0,0),NW); +label("(1,0,0)",(1,0,0),S); +label("(0,1,0)",(0,1,0),E); +label("(0,0,1)",(0,0,1),Z); + + + +See section *note graph:: (or the online `Asymptote' gallery and +external links posted at `http://asymptote.sourceforge.net') for +further examples, including two-dimensional and interactive +three-dimensional scientific graphs. Additional examples have been +posted by Philippe Ivaldi at `http://www.piprime.fr/asymptote'. A +user-written `Asymptote' tutorial is available at +http://www.artofproblemsolving.com/Wiki/index.php/Asymptote:_Basics + + +File: asymptote.info, Node: Drawing commands, Next: Bezier curves, Prev: Tutorial, Up: Top + +4 Drawing commands +****************** + +All of `Asymptote''s graphical capabilities are based on four primitive +commands. The three `PostScript' drawing commands `draw', `fill', and +`clip' add objects to a picture in the order in which they are +executed, with the most recently drawn object appearing on top. The +labeling command `label' can be used to add text labels and external +EPS images, which will appear on top of the `PostScript' objects (since +this is normally what one wants), but again in the relative order in +which they were executed. After drawing objects on a picture, the +picture can be output with the `shipout' function (*note shipout::). + + If you wish to draw `PostScript' objects on top of labels (or +verbatim `tex' commands; *note tex::), the `layer' command may be used +to start a new `PostScript/LaTeX' layer: +void layer(picture pic=currentpicture); + + The `layer' function gives one full control over the order in which +objects are drawn. Layers are drawn sequentially, with the most recent +layer appearing on top. Within each layer, labels, images, and verbatim +`tex' commands are always drawn after the `PostScript' objects in that +layer. + + While some of these drawing commands take many options, they all +have sensible default values (for example, the picture argument +defaults to currentpicture). + +* Menu: + +* draw:: Draw a path on a picture or frame +* fill:: Fill a cyclic path on a picture or frame +* clip:: Clip a picture or frame to a cyclic path +* label:: Label a point on a picture + + +File: asymptote.info, Node: draw, Next: fill, Up: Drawing commands + +4.1 draw +======== + +void draw(picture pic=currentpicture, Label L="", path g, + align align=NoAlign, pen p=currentpen, + arrowbar arrow=None, arrowbar bar=None, margin margin=NoMargin, + Label legend="", marker marker=nomarker); + +Draw the path `g' on the picture `pic' using pen `p' for drawing, with +optional drawing attributes (Label `L', explicit label alignment +`align', arrows and bars `arrow' and `bar', margins `margin', legend, +and markers `marker'). Only one parameter, the path, is required. For +convenience, the arguments `arrow' and `bar' may be specified in either +order. The argument `legend' is a Label to use in constructing an +optional legend entry. + + Bars are useful for indicating dimensions. The possible values of +`bar' are `None', `BeginBar', `EndBar' (or equivalently `Bar'), and +`Bars' (which draws a bar at both ends of the path). Each of these bar +specifiers (except for `None') will accept an optional real argument +that denotes the length of the bar in `PostScript' coordinates. The +default bar length is `barsize(pen)'. + + The possible values of `arrow' are `None', `Blank' (which draws no +arrows or path), `BeginArrow', `MidArrow', `EndArrow' (or equivalently +`Arrow'), and `Arrows' (which draws an arrow at both ends of the path). +All of the arrow specifiers except for `None' and `Blank' may be given +the optional arguments arrowhead `arrowhead' (one of the predefined +arrowhead styles `DefaultHead', `SimpleHead', `HookHead', `TeXHead'), +real `size' (arrowhead size in `PostScript' coordinates), real `angle' +(arrowhead angle in degrees), filltype `filltype' (one of `FillDraw', +`Fill', `NoFill', `UnFill', `Draw') and (except for `MidArrow' and +`Arrows') a real `position' (in the sense of `point(path p, real t)') +along the path where the tip of the arrow should be placed. The default +arrowhead size when drawn with a pen `p' is `arrowsize(p)'. There are +also arrow versions with slightly modified default values of `size' and +`angle' suitable for curved arrows: `BeginArcArrow', `EndArcArrow' (or +equivalently `ArcArrow'), `MidArcArrow', and `ArcArrows'. + + Margins can be used to shrink the visible portion of a path by +`labelmargin(p)' to avoid overlap with other drawn objects. Typical +values of `margin' are `NoMargin', `BeginMargin', `EndMargin' (or +equivalently `Margin'), and `Margins' (which leaves a margin at both +ends of the path). One may use `Margin(real begin, real end)' to +specify the size of the beginning and ending margin, respectively, in +multiples of the units `labelmargin(p)' used for aligning labels. +Alternatively, `BeginPenMargin', `EndPenMargin' (or equivalently +`PenMargin'), `PenMargins', `PenMargin(real begin, real end)' specify a +margin in units of the pen line width, taking account of the pen line +width when drawing the path or arrow. For example, use `DotMargin', an +abbreviation for `PenMargin(-0.5*dotfactor,0.5*dotfactor)', to draw +from the usual beginning point just up to the boundary of an end dot of +width `dotfactor*linewidth(p)'. The qualifiers `BeginDotMargin', +`EndDotMargin', and `DotMargins' work similarly. The qualifier +`TrueMargin(real begin, real end)' allows one to specify a margin +directly in `PostScript' units, independent of the pen line width. + + The use of arrows, bars, and margins is illustrated by the examples +`Pythagoras.asy', `sqrtx01.asy', and `triads.asy'. + + The legend for a picture `pic' can be fit and aligned to a frame +with the routine: +frame legend(picture pic=currentpicture, int perline=1, + real xmargin=legendmargin, real ymargin=xmargin, + real linelength=legendlinelength, + real hskip=legendhskip, real vskip=legendvskip, + real maxwidth=0, real maxheight=0, + bool hstretch=false, bool vstretch=false, pen p=currentpen); + Here `xmargin' and `ymargin' specify the surrounding x and y margins, +`perline' specifies the number of entries per line (default 1; 0 means +choose this number automatically), `linelength' specifies the length of +the path lines, `hskip' and `vskip' specify the line skip (as a +multiple of the legend entry size), `maxwidth' and `maxheight' specify +optional upper limits on the width and height of the resulting legend +(0 means unlimited), `hstretch' and `vstretch' allow the legend to +stretch horizontally or vertically, and `p' specifies the pen used to +draw the bounding box. The legend frame can then be added and aligned +about a point on a picture `dest' using `add' or `attach' (*note add +about::). + + To draw a dot, simply draw a path containing a single point. The +`dot' command defined in the module `plain' draws a dot having a +diameter equal to an explicit pen line width or the default line width +magnified by `dotfactor' (6 by default), using the specified filltype +(*note filltype::): +void dot(picture pic=currentpicture, pair z, pen p=currentpen, + filltype filltype=Fill); +void dot(picture pic=currentpicture, Label L, pair z, align align=NoAlign, + string format=defaultformat, pen p=currentpen, filltype filltype=Fill); +void dot(picture pic=currentpicture, Label[] L=new Label[], pair[] z, + align align=NoAlign, string format=defaultformat, pen p=currentpen, + filltype filltype=Fill) +void dot(picture pic=currentpicture, Label L, pen p=currentpen, + filltype filltype=Fill); + + If the variable `Label' is given as the `Label' argument to the +second routine, the `format' argument will be used to format a string +based on the dot location (here `defaultformat' is `"$%.4g$"'). The +third routine draws a dot at every point of a pair array `z'. One can +also draw a dot at every node of a path: +void dot(picture pic=currentpicture, Label[] L=new Label[], + path g, align align=RightSide, string format=defaultformat, + pen p=currentpen, filltype filltype=Fill); + See *note pathmarkers:: and *note markers:: for more general methods +for marking path nodes. + + To draw a fixed-sized object (in `PostScript' coordinates) about the +user coordinate `origin', use the routine +void draw(pair origin, picture pic=currentpicture, Label L="", path g, + align align=NoAlign, pen p=currentpen, arrowbar arrow=None, + arrowbar bar=None, margin margin=NoMargin, Label legend="", + marker marker=nomarker); + + +File: asymptote.info, Node: fill, Next: clip, Prev: draw, Up: Drawing commands + +4.2 fill +======== + +void fill(picture pic=currentpicture, path g, pen p=currentpen); + +Fill the interior region bounded by the cyclic path `g' on the picture +`pic', using the pen `p'. + + There is also a convenient `filldraw' command, which fills the path +and then draws in the boundary. One can specify separate pens for each +operation: +void filldraw(picture pic=currentpicture, path g, pen fillpen=currentpen, + pen drawpen=currentpen); + + This fixed-size version of `fill' allows one to fill an object +described in `PostScript' coordinates about the user coordinate +`origin': +void fill(pair origin, picture pic=currentpicture, path g, pen p=currentpen); + +This is just a convenient abbreviation for the commands: +picture opic; +fill(opic,g,p); +add(pic,opic,origin); + + The routine +void filloutside(picture pic=currentpicture, path g, pen p=currentpen); + fills the region exterior to the path `g', out to the current boundary +of picture `pic'. + + Lattice gradient shading varying smoothly over a two-dimensional +array of pens `p', using fill rule `fillrule', can be produced with +void latticeshade(picture pic=currentpicture, path g, bool stroke=false, + pen fillrule=currentpen, pen[][] p) + If `stroke=true', the region filled is the same as the region that +would be drawn by `draw(pic,g,fillrule+zerowinding)'; in this case the +path `g' need not be cyclic. The pens in `p' must belong to the same +color space. One can use the functions `rgb(pen)' or `cmyk(pen)' to +promote pens to a higher color space, as illustrated in the example file +`latticeshading.asy'. + + Axial gradient shading varying smoothly from `pena' to `penb' in the +direction of the line segment `a--b' can be achieved with +void axialshade(picture pic=currentpicture, path g, bool stroke=false, + pen pena, pair a, + pen penb, pair b); + + Radial gradient shading varying smoothly from `pena' on the circle +with center `a' and radius `ra' to `penb' on the circle with center `b' +and radius `rb' is similar: +void radialshade(picture pic=currentpicture, path g, bool stroke=false, + pen pena, pair a, real ra, + pen penb, pair b, real rb); + Illustrations of radial shading are provided in the example files +`shade.asy', `ring.asy', and `shadestroke.asy'. + + Gouraud shading using fill rule `fillrule' and the vertex colors in +the pen array `p' on a triangular lattice defined by the vertices `z' +and edge flags `edges' is implemented with +void gouraudshade(picture pic=currentpicture, path g, bool stroke=false, + pen fillrule=currentpen, pen[] p, pair[] z, + int[] edges); +void gouraudshade(picture pic=currentpicture, path g, bool stroke=false, + pen fillrule=currentpen, pen[] p, int[] edges); + In the second form, the elements of `z' are taken to be successive +nodes of path `g'. The pens in `p' must belong to the same color space. +Illustrations of Gouraud shading are provided in the example file +`Gouraud.asy' and in the solid geometry module `solids.asy'. The edge +flags used in Gouraud shading are documented here: + + `http://partners.adobe.com/public/developer/en/ps/sdk/TN5600.SmoothShading.pdf'. + + Tensor product shading using fill rule `fillrule' on patches bounded +by the n cyclic paths of length 4 in path array `b', using the vertex +colors specified in the n \times 4 pen array `p' and internal control +points in the n \times 4 array `z', is implemented with +void tensorshade(picture pic=currentpicture, path g, bool stroke=false, + pen fillrule=currentpen, pen[][] p, path[] b=g, + pair[][] z=new pair[][]); + If the array `z' is empty, Coons shading, in which the color control +points are calculated automatically, is used. The pens in `p' must +belong to the same color space. A simpler interface for the case of a +single patch (n=1) is also available: +void tensorshade(picture pic=currentpicture, path g, bool stroke=false, + pen fillrule=currentpen, pen[] p, path b=g, + pair[] z=new pair[]); + One can also smoothly shade the regions between consecutive paths of a +sequence using a given array of pens: +void draw(picture pic=currentpicture, pen fillrule=currentpen, path[] g, + pen[] p); + Illustrations of tensor product and Coons shading are provided in the +example files `tensor.asy', `Coons.asy', `BezierSurface.asy', and +`rainbow.asy'. + + More general shading possibilities are available with the `pdflatex', +`context', and `pdftex' TeX engines: the routine +void functionshade(picture pic=currentpicture, path[] g, bool stroke=false, + pen fillrule=currentpen, string shader); + shades on picture `pic' the interior of path `g' according to fill +rule `fillrule' using the `PostScript' calculator routine specified by +the string `shader'; this routine takes 2 arguments, each in [0,1], and +returns `colors(fillrule).length' color components. Function shading +is illustrated in the example `functionshading.asy'. + + The following routine uses `evenodd' clipping together with the `^^' +operator to unfill a region: + +void unfill(picture pic=currentpicture, path g); + + +File: asymptote.info, Node: clip, Next: label, Prev: fill, Up: Drawing commands + +4.3 clip +======== + +void clip(picture pic=currentpicture, path g, stroke=false, + pen fillrule=currentpen); + +Clip the current contents of picture `pic' to the region bounded by the +path `g', using fill rule `fillrule' (*note fillrule::). If +`stroke=true', the clipped portion is the same as the region that would +be drawn with `draw(pic,g,fillrule+zerowinding)'; in this case the path +`g' need not be cyclic. For an illustration of picture clipping, see +the first example in *note LaTeX usage::. + + +File: asymptote.info, Node: label, Prev: clip, Up: Drawing commands + +4.4 label +========= + +void label(picture pic=currentpicture, Label L, pair position, + align align=NoAlign, pen p=currentpen, filltype filltype=NoFill) + +Draw Label `L' on picture `pic' using pen `p'. If `align' is `NoAlign', +the label will be centered at user coordinate `position'; otherwise it +will be aligned in the direction of `align' and displaced from +`position' by the `PostScript' offset `align*labelmargin(p)'. The +constant `Align' can be used to align the bottom-left corner of the +label at `position'. The Label `L' can either be a string or the +structure obtained by calling one of the functions +Label Label(string s="", pair position, align align=NoAlign, + pen p=nullpen, embed embed=Rotate, filltype filltype=NoFill); +Label Label(string s="", align align=NoAlign, + pen p=nullpen, embed embed=Rotate, filltype filltype=NoFill); +Label Label(Label L, pair position, align align=NoAlign, + pen p=nullpen, embed embed=L.embed, filltype filltype=NoFill); +Label Label(Label L, align align=NoAlign, + pen p=nullpen, embed embed=L.embed, filltype filltype=NoFill); + The text of a Label can be scaled, slanted, rotated, or shifted by +multiplying it on the left by an affine transform (*note Transforms::). +For example, `rotate(45)*xscale(2)*L' first scales `L' in the x +direction and then rotates it counterclockwise by 45 degrees. The final +position of a Label can also be shifted by a `PostScript' coordinate +translation: `shift(10,0)*L'. An explicit pen specified within the +Label overrides other pen arguments. The `embed' argument determines +how the Label should transform with the embedding picture: +`Shift' + only shift with embedding picture; + +`Rotate' + only shift and rotate with embedding picture (default); + +`Rotate(pair z)' + rotate with (picture-transformed) vector `z'. + +`Slant' + only shift, rotate, slant, and reflect with embedding picture; + +`Scale' + shift, rotate, slant, reflect, and scale with embedding picture. + + + To add a label to a path, use +void label(picture pic=currentpicture, Label L, path g, align align=NoAlign, + pen p=currentpen, filltype filltype=NoFill); + By default the label will be positioned at the midpoint of the path. +An alternative label position (in the sense of `point(path p, real t)') +may be specified as a real value for `position' in constructing the +Label. The position `Relative(real)' specifies a location relative to +the total arclength of the path. These convenient abbreviations are +predefined: +position BeginPoint=Relative(0); +position MidPoint=Relative(0.5); +position EndPoint=Relative(1); + + Path labels are aligned in the direction `align', which may be +specified as an absolute compass direction (pair) or a direction +`Relative(pair)' measured relative to a north axis in the local +direction of the path. For convenience `LeftSide', `Center', and +`RightSide' are defined as `Relative(W)', `Relative((0,0))', and +`Relative(E)', respectively. Multiplying `LeftSide', `Center', +`RightSide' on the left by a real scaling factor will move the label +further away from or closer to the path. + + A label with a fixed-size arrow of length `arrowlength' pointing to +`b' from direction `dir' can be produced with the routine +void arrow(picture pic=currentpicture, Label L="", pair b, pair dir, + real length=arrowlength, align align=NoAlign, + pen p=currentpen, arrowbar arrow=Arrow, margin margin=EndMargin); + If no alignment is specified (either in the Label or as an explicit +argument), the optional Label will be aligned in the direction `dir', +using margin `margin'. + + The function `string graphic(string name, string options="")' +returns a string that can be used to include an encapsulated +`PostScript' (EPS) file. Here, `name' is the name of the file to +include and `options' is a string containing a comma-separated list of +optional bounding box (`bb=llx lly urx ury'), width (`width=value'), +height (`height=value'), rotation (`angle=value'), scaling +(`scale=factor'), clipping (`clip=bool'), and draft mode (`draft=bool') +parameters. The `layer()' function can be used to force future objects +to be drawn on top of the included image: +label(graphic("file.eps","width=1cm"),(0,0),NE); +layer(); + + The `string baseline(string s, string template="\strut")' function +can be used to enlarge the bounding box of labels to match a given +template, so that their baselines will be typeset on a horizontal line. +See `Pythagoras.asy' for an example. + + One can prevent labels from overwriting one another with the +`overwrite' pen attribute (*note overwrite::). + + The structure `object' defined in `plain_Label.asy' allows Labels +and frames to be treated in a uniform manner. A group of objects may +be packed together into single frame with the routine +frame pack(pair align=2S ... object inset[]); + To draw or fill a box (or ellipse or other path) around a Label and +return the bounding object, use one of the routines +object draw(picture pic=currentpicture, Label L, envelope e, + real xmargin=0, real ymargin=xmargin, pen p=currentpen, + filltype filltype=NoFill, bool above=true); +object draw(picture pic=currentpicture, Label L, envelope e, pair position, + real xmargin=0, real ymargin=xmargin, pen p=currentpen, + filltype filltype=NoFill, bool above=true); + Here `envelope' is a boundary-drawing routine such as `box', +`roundbox', or `ellipse' defined in `plain_boxes.asy' (*note +envelope::). + + The function `path[] texpath(Label L)' returns the path array that +TeX would fill to draw the Label `L'. + + The `string minipage(string s, width=100pt)' function can be used to +format string `s' into a paragraph of width `width'. This example uses +`minipage', `clip', and `graphic' to produce a CD label: + + +size(11.7cm,11.7cm); +asy(nativeformat(),"logo"); +fill(unitcircle^^(scale(2/11.7)*unitcircle), + evenodd+rgb(124/255,205/255,124/255)); +label(scale(1.1)*minipage( +"\centering\scriptsize \textbf{\LARGE {\tt Asymptote}\\ +\smallskip +\small The Vector Graphics Language}\\ +\smallskip +\textsc{Andy Hammerlindl, John Bowman, and Tom Prince} +http://asymptote.sourceforge.net\\ +",8cm),(0,0.6)); +label(graphic("logo."+nativeformat(),"height=7cm"),(0,-0.22)); +clip(unitcircle^^(scale(2/11.7)*unitcircle),evenodd); + + +File: asymptote.info, Node: Bezier curves, Next: Programming, Prev: Drawing commands, Up: Top + +5 Bezier curves +*************** + +Each interior node of a cubic spline may be given a direction prefix or +suffix `{dir}': the direction of the pair `dir' specifies the direction +of the incoming or outgoing tangent, respectively, to the curve at that +node. Exterior nodes may be given direction specifiers only on their +interior side. + + A cubic spline between the node z_0, with postcontrol point c_0, and +the node z_1, with precontrol point c_1, is computed as the Bezier curve + + + +As illustrated in the diagram below, the third-order midpoint (m_5) +constructed from two endpoints z_0 and z_1 and two control points c_0 +and c_1, is the point corresponding to t=1/2 on the Bezier curve formed +by the quadruple (z_0, c_0, c_1, z_1). This allows one to recursively +construct the desired curve, by using the newly extracted third-order +midpoint as an endpoint and the respective second- and first-order +midpoints as control points: + + + +Here m_0, m_1 and m_2 are the first-order midpoints, m_3 and m_4 are +the second-order midpoints, and m_5 is the third-order midpoint. The +curve is then constructed by recursively applying the algorithm to +(z_0, m_0, m_3, m_5) and (m_5, m_4, m_2, z_1). + + In fact, an analogous property holds for points located at any +fraction t in [0,1] of each segment, not just for midpoints (t=1/2). + + The Bezier curve constructed in this manner has the following +properties: + * It is entirely contained in the convex hull of the given four + points. + + * It starts heading from the first endpoint to the first control + point and finishes heading from the second control point to the + second endpoint. + + + The user can specify explicit control points between two nodes like +this: +draw((0,0)..controls (0,100) and (100,100)..(100,0)); + + However, it is usually more convenient to just use the `..' +operator, which tells `Asymptote' to choose its own control points +using the algorithms described in Donald Knuth's monograph, The +MetaFontbook, Chapter 14. The user can still customize the guide (or +path) by specifying direction, tension, and curl values. + + The higher the tension, the straighter the curve is, and the more it +approximates a straight line. One can change the spline tension from +its default value of 1 to any real value greater than or equal to 0.75 +(cf. John D. Hobby, Discrete and Computational Geometry 1, 1986): +draw((100,0)..tension 2 ..(100,100)..(0,100)); +draw((100,0)..tension 2 and 1 ..(100,100)..(0,100)); +draw((100,0)..tension atleast 1 ..(100,100)..(0,100)); + + The curl parameter specifies the curvature at the endpoints of a path +(0 means straight; the default value of 1 means approximately circular): +draw((100,0){curl 0}..(100,100)..{curl 0}(0,100)); + + The `MetaPost ...' path connector, which requests, when possible, an +inflection-free curve confined to a triangle defined by the endpoints +and directions, is implemented in `Asymptote' as the convenient +abbreviation `::' for `..tension atleast 1 ..' (the ellipsis `...' is +used in `Asymptote' to indicate a variable number of arguments; *note +Rest arguments::). For example, compare + +draw((0,0){up}..(100,25){right}..(200,0){down}); + + +with + +draw((0,0){up}::(100,25){right}::(200,0){down}); + + + +The `---' connector is an abbreviation for `..tension atleast +infinity..' and the `&' connector concatenates two paths, after first +stripping off the last node of the first path (which normally should +coincide with the first node of the second path). + + +File: asymptote.info, Node: Programming, Next: LaTeX usage, Prev: Bezier curves, Up: Top + +6 Programming +************* + +Here is a short introductory example to the `Asymptote' programming +language that highlights the similarity of its control structures with +those of C, C++, and Java: +// This is a comment. + +// Declaration: Declare x to be a real variable; +real x; + +// Assignment: Assign the real variable x the value 1. +x=1.0; + +// Conditional: Test if x equals 1 or not. +if(x == 1.0) { + write("x equals 1.0"); +} else { + write("x is not equal to 1.0"); +} + +// Loop: iterate 10 times +for(int i=0; i < 10; ++i) { + write(i); +} + + `Asymptote' supports `while', `do', `break', and `continue' +statements just as in C/C++. It also supports the Java-style shorthand +for iterating over all elements of an array: + +// Iterate over an array +int[] array={1,1,2,3,5}; +for(int k : array) { + write(k); +} + In addition, it supports many features beyond the ones found in those +languages. + +* Menu: + +* Data types:: void, bool, int, real, pair, triple, string +* Paths and guides:: +* Pens:: Colors, line types, line widths, font sizes +* Transforms:: Affine transforms +* Frames and pictures:: Canvases for immediate and deferred drawing +* Files:: Reading and writing your data +* Variable initializers:: Initialize your variables +* Structures:: Organize your data +* Operators:: Arithmetic and logical operators +* Implicit scaling:: Avoiding those ugly *s +* Functions:: Traditional and high-order functions +* Arrays:: Dynamic vectors +* Casts:: Implicit and explicit casts +* Import:: Importing external `Asymptote' modules +* Static:: Where to allocate your variable? + + +File: asymptote.info, Node: Data types, Next: Paths and guides, Up: Programming + +6.1 Data types +============== + +`Asymptote' supports the following data types (in addition to +user-defined types): + +`void' + The void type is used only by functions that take or return no + arguments. + +`bool' + a boolean type that can only take on the values `true' or `false'. + For example: bool b=true; + + defines a boolean variable `b' and initializes it to the value + `true'. If no initializer is given: bool b; + + the value `false' is assumed. + +`bool3' + an extended boolean type that can take on the values `true', + `default', or `false'. A bool3 type can be cast to or from a bool. + The default initializer for bool3 is `default'. + +`int' + an integer type; if no initializer is given, the implicit value `0' + is assumed. The minimum allowed value of an integer is `intMin' + and the maximum value is `intMax'. + +`real' + a real number; this should be set to the highest-precision native + floating-point type on the architecture. The implicit initializer + for reals is `0.0'. Real numbers have precision `realEpsilon', + with `realDigits' significant digits. The smallest positive real + number is `realMin' and the largest positive real number is + `realMax'. The variable `inf' and function `bool isnan(real x)' + are useful when floating-point exceptions are masked with the + `-mask' command-line option (the default in interactive mode). + +`pair' + complex number, that is, an ordered pair of real components + `(x,y)'. The real and imaginary parts of a pair `z' can read as + `z.x' and `z.y'. We say that `x' and `y' are virtual members of + the data element pair; they cannot be directly modified, however. + The implicit initializer for pairs is `(0.0,0.0)'. + + There are a number of ways to take the complex conjugate of a pair: + pair z=(3,4); + z=(z.x,-z.y); + z=z.x-I*z.y; + z=conj(z); + + Here `I' is the pair `(0,1)'. A number of built-in functions are + defined for pairs: + + `pair conj(pair z)' + returns the conjugate of `z'; + + `real length(pair z)' + returns the complex modulus `|z|' of its argument `z'. For + example, + pair z=(3,4); + length(z); + returns the result 5. A synonym for `length(pair)' is + `abs(pair)'; + + `real angle(pair z, bool warn=true)' + returns the angle of `z' in radians in the interval + [-`pi',`pi'] or `0' if `warn' is `false' and `z=(0,0)' + (rather than producing an error); + + `real degrees(pair z, bool warn=true)' + returns the angle of `z' in degrees in the interval [0,360) + or `0' if `warn' is `false' and `z=(0,0)' (rather than + producing an error); + + `pair unit(pair z)' + returns a unit vector in the direction of the pair `z'; + + `pair expi(real angle)' + returns a unit vector in the direction `angle' measured in + radians; + + `pair dir(real degrees)' + returns a unit vector in the direction `degrees' measured in + degrees; + + `real xpart(pair z)' + returns `z.x'; + + `real ypart(pair z)' + returns `z.y'; + + `pair realmult(pair z, pair w)' + returns the element-by-element product `(z.x*w.x,z.y*w.y)'; + + `real dot(explicit pair z, explicit pair w)' + returns the dot product `z.x*w.x+z.y*w.y'; + + `pair minbound(pair z, pair w)' + returns `(min(z.x,w.x),min(z.y,w.y))'; + + `pair maxbound(pair z, pair w)' + returns `(max(z.x,w.x),max(z.y,w.y))'. + + +`triple' + an ordered triple of real components `(x,y,z)' used for + three-dimensional drawings. The respective components of a triple + `v' can read as `v.x', `v.y', and `v.z'. The implicit initializer + for triples is `(0.0,0.0,0.0)'. + + Here are the built-in functions for triples: + `real length(triple v)' + returns the length `|v|' of the vector `v'. A synonym for + `length(triple)' is `abs(triple)'; + + `real polar(triple v, bool warn=true)' + returns the colatitude of `v' measured from the z axis in + radians or `0' if `warn' is `false' and `v=O' (rather than + producing an error); + + `real azimuth(triple v, bool warn=true)' + returns the longitude of `v' measured from the x axis in + radians or `0' if `warn' is `false' and `v.x=v.y=0' (rather + than producing an error); + + `real colatitude(triple v, bool warn=true)' + returns the colatitude of `v' measured from the z axis in + degrees or `0' if `warn' is `false' and `v=O' (rather than + producing an error); + + `real latitude(triple v, bool warn=true)' + returns the latitude of `v' measured from the xy plane in + degrees or `0' if `warn' is `false' and `v=O' (rather than + producing an error); + + `real longitude(triple v, bool warn=true)' + returns the longitude of `v' measured from the x axis in + degrees or `0' if `warn' is `false' and `v.x=v.y=0' (rather + than producing an error); + + `triple unit(triple v)' + returns a unit triple in the direction of the triple `v'; + + `triple expi(real polar, real azimuth)' + returns a unit triple in the direction `(polar,azimuth)' + measured in radians; + + `triple dir(real colatitude, real longitude)' + returns a unit triple in the direction + `(colatitude,longitude)' measured in degrees; + + `real xpart(triple v)' + returns `v.x'; + + `real ypart(triple v)' + returns `v.y'; + + `real zpart(triple v)' + returns `v.z'; + + `real dot(triple u, triple v)' + returns the dot product `u.x*v.x+u.y*v.y+u.z*v.z'; + + `triple cross(triple u, triple v)' + returns the cross product + + `(u.y*v.z-u.z*v.y,u.z*v.x-u.x*v.z,u.x*v.y-v.x*u.y)'; + + `triple minbound(triple u, triple v)' + returns `(min(u.x,v.x),min(u.y,v.y),min(u.z,v.z))'; + + `triple maxbound(triple u, triple v)' + returns `(max(u.x,v.x),max(u.y,v.y),max(u.z,v.z)'). + + +`string' + a character string, implemented using the STL `string' class. + + Strings delimited by double quotes (`"') are subject to the + following mappings to allow the use of double quotes in TeX (e.g. + for using the `babel' package, *note babel::): + + * \" maps to " + + * \\ maps to \\ + + Strings delimited by single quotes (`'') have the same mappings as + character strings in ANSI `C': + + * \' maps to ' + + * \" maps to " + + * \? maps to ? + + * \\ maps to backslash + + * \a maps to alert + + * \b maps to backspace + + * \f maps to form feed + + * \n maps to newline + + * \r maps to carriage return + + * \t maps to tab + + * \v maps to vertical tab + + * \0-\377 map to corresponding octal byte + + * \x0-\xFF map to corresponding hexadecimal byte + + The implicit initializer for strings is the empty string `""'. + Strings may be concatenated with the `+' operator. In the following + string functions, position `0' denotes the start of the string: + `int length(string s)' + returns the length of the string `s'; + + `int find(string s, string t, int pos=0)' + returns the position of the first occurrence of string `t' in + string `s' at or after position `pos', or -1 if `t' is not a + substring of `s'; + + `int rfind(string s, string t, int pos=-1)' + returns the position of the last occurrence of string `t' in + string `s' at or before position `pos' (if `pos'=-1, at the + end of the string `s'), or -1 if `t' is not a substring of + `s'; + + `string insert(string s, int pos, string t)' + returns the string formed by inserting string `t' at position + `pos' in `s'; + + `string erase(string s, int pos, int n)' + returns the string formed by erasing the string of length `n' + (if `n'=-1, to the end of the string `s') at position `pos' + in `s'; + + `string substr(string s, int pos, int n=-1)' + returns the substring of `s' starting at position `pos' and + of length `n' (if `n'=-1, until the end of the string `s'); + + `string reverse(string s)' + returns the string formed by reversing string `s'; + + `string replace(string s, string before, string after)' + returns a string with all occurrences of the string `before' + in the string `s' changed to the string `after'; + + `string replace(string s, string[][] table)' + returns a string constructed by translating in string `s' all + occurrences of the string `before' in an array `table' of + string pairs {`before',`after'} to the corresponding string + `after'; + + `string[] split(string s, string delimiter="")' + returns an array of strings obtained by splitting `s' into + substrings delimited by `delimiter' (an empty delimiter + signifies a space, but with duplicate delimiters discarded); + + `string format(string s, int n, string locale="")' + returns a string containing `n' formatted according to the + C-style format string `s' using locale `locale' (or the + current locale if an empty string is specified); + + `string format(string s=defaultformat, string s=defaultseparator, real x, string locale="")' + returns a string containing `x' formatted according to the + C-style format string `s' using locale `locale' (or the + current locale if an empty string is specified), following + the behaviour of the C function `fprintf'), except that only + one data field is allowed, trailing zeros are removed by + default (unless `#' is specified), and (if the format string + specifies math mode) TeX is used to typeset scientific + notation using the `defaultseparator="\!\times\!";'; + + `int hex(string s);' + casts a hexidecimal string `s' to an integer; + + `int ascii(string s);' + returns the ASCII code for the first character of string `s'; + + `string string(real x, int digits=realDigits)' + casts `x' to a string using precision `digits' and the C + locale; + + `string locale(string s="")' + sets the locale to the given string, if nonempty, and returns + the current locale; + + `string time(string format="%a %b %d %T %Z %Y")' + returns the current time formatted by the ANSI C routine + `strftime' according to the string `format' using the current + locale. Thus time(); + time("%a %b %d %H:%M:%S %Z %Y"); + + are equivalent ways of returning the current time in the + default format used by the `UNIX' `date' command; + + `int seconds(string t="", string format="")' + returns the time measured in seconds after the Epoch (Thu Jan + 01 00:00:00 UTC 1970) as determined by the ANSI C routine + `strptime' according to the string `format' using the current + locale, or the current time if `t' is the empty string. Note + that the `"%Z"' extension to the POSIX `strptime' + specification is ignored by the current GNU C Library. If an + error occurs, the value -1 is returned. Here are some + examples: seconds("Mar 02 11:12:36 AM PST 2007","%b %d %r PST %Y"); + seconds(time("%b %d %r %z %Y"),"%b %d %r %z %Y"); + seconds(time("%b %d %r %Z %Y"),"%b %d %r "+time("%Z")+" %Y"); + 1+(seconds()-seconds("Jan 1","%b %d"))/(24*60*60); + The last example returns today's ordinal date, measured from + the beginning of the year. + + `string time(int seconds, string format="%a %b %d %T %Z %Y")' + returns the time corresponding to `seconds' seconds after the + Epoch (Thu Jan 01 00:00:00 UTC 1970) formatted by the ANSI C + routine `strftime' according to the string `format' using the + current locale. For example, to return the date corresponding + to 24 hours ago: time(seconds()-24*60*60); + + `int system(string s)' + + `int system(string[] s)' + if the setting `safe' is false, call the arbitrary system + command `s'; + + `void asy(string format, bool overwrite=false ... string[] s)' + conditionally process each file name in array `s' in a new + environment, using format `format', overwriting the output + file only if `overwrite' is true; + + `void abort(string s="")' + aborts execution (with a non-zero return code in batch mode); + if string `s' is nonempty, a diagnostic message constructed + from the source file, line number, and `s' is printed; + + `void assert(bool b, string s="")' + aborts execution with an error message constructed from `s' if + `b=false'; + + `void exit()' + exits (with a zero error return code in batch mode); + + `void sleep(int seconds)' + pauses for the given number of seconds; + + `void usleep(int microseconds)' + pauses for the given number of microseconds; + + `void beep()' + produces a beep on the console; + + + + As in C/C++, complicated types may be abbreviated with `typedef' +(see the example in *note Functions::). + + +File: asymptote.info, Node: Paths and guides, Next: Pens, Prev: Data types, Up: Programming + +6.2 Paths and guides +==================== + +`path' + a cubic spline resolved into a fixed path. The implicit + initializer for paths is `nullpath'. + + For example, the routine `circle(pair c, real r)', which returns a + Bezier curve approximating a circle of radius `r' centered on `c', + is based on `unitcircle' (*note unitcircle::): path circle(pair c, real r) + { + return shift(c)*scale(r)*unitcircle; + } + If high accuracy is needed, a true circle may be produced with the + routine `Circle' defined in the module `graph.asy': import graph; + path Circle(pair c, real r, int n=nCircle); + + A circular arc consistent with `circle' centered on `c' with + radius `r' from `angle1' to `angle2' degrees, drawing + counterclockwise if `angle2 >= angle1', can be constructed with path arc(pair c, real r, real angle1, real angle2); + One may also specify the direction explicitly: path arc(pair c, real r, real angle1, real angle2, bool direction); + Here the direction can be specified as CCW (counter-clockwise) or + CW (clockwise). For convenience, an arc centered at `c' from pair + `z1' to `z2' (assuming `|z2-c|=|z1-c|') in the may also be + constructed with path arc(pair c, explicit pair z1, explicit pair z2, + bool direction=CCW) + + If high accuracy is needed, true arcs may be produced with routines + in the module `graph.asy' that produce Bezier curves with `n' + control points: import graph; + path Arc(pair c, real r, real angle1, real angle2, bool direction, + int n=nCircle); + path Arc(pair c, real r, real angle1, real angle2, int n=nCircle); + path Arc(pair c, explicit pair z1, explicit pair z2, + bool direction=CCW, int n=nCircle); + + An ellipse can be drawn with the routine path ellipse(pair c, real a, real b) + { + return shift(c)*scale(a,b)*unitcircle; + } + + This example illustrates the use of all five guide connectors + discussed in *note Tutorial:: and *note Bezier curves::: size(300,0); + pair[] z=new pair[10]; + + z[0]=(0,100); z[1]=(50,0); z[2]=(180,0); + + for(int n=3; n <= 9; ++n) + z[n]=z[n-3]+(200,0); + + path p=z[0]..z[1]---z[2]::{up}z[3] + &z[3]..z[4]--z[5]::{up}z[6] + &z[6]::z[7]---z[8]..{up}z[9]; + + draw(p,grey+linewidth(4mm)); + + dot(z); + + + + Here are some useful functions for paths: + + `int length(path p);' + This is the number of (linear or cubic) segments in path `p'. + If `p' is cyclic, this is the same as the number of nodes in + `p'. + + `int size(path p);' + This is the number of nodes in the path `p'. If `p' is + cyclic, this is the same as `length(p)'. + + `bool cyclic(path p);' + returns `true' iff path `p' is cyclic. + + `bool straight(path p, int i);' + returns `true' iff the segment of path `p' between node `i' + and node `i+1' is straight. + + `bool piecewisestraight(path p)' + returns `true' iff the path `p' is piecewise straight. + + `pair point(path p, int t);' + If `p' is cyclic, return the coordinates of node `t' mod + `length(p)'. Otherwise, return the coordinates of node `t', + unless `t' < 0 (in which case `point(0)' is returned) or `t' + > `length(p)' (in which case `point(length(p))' is returned). + + `pair point(path p, real t);' + This returns the coordinates of the point between node + `floor(t)' and `floor(t)+1' corresponding to the cubic spline + parameter `t-floor(t)' (*note Bezier curves::). If `t' lies + outside the range [0,`length(p)'], it is first reduced modulo + `length(p)' in the case where `p' is cyclic or else converted + to the corresponding endpoint of `p'. + + `pair dir(path p, int t, int sign=0, bool normalize=true);' + If `sign < 0', return the direction (as a pair) of the + incoming tangent to path `p' at node `t'; if `sign > 0', + return the direction of the outgoing tangent. If `sign=0', + the mean of these two directions is returned. + + `pair dir(path p, real t, bool normalize=true);' + returns the direction of the tangent to path `p' at the point + between node `floor(t)' and `floor(t)+1' corresponding to the + cubic spline parameter `t-floor(t)' (*note Bezier curves::). + + `pair dir(path p)' + returns dir(p,length(p)). + + `pair dir(path p, path q)' + returns unit(dir(p)+dir(q)). + + `pair accel(path p, int t, int sign=0);' + If `sign < 0', return the acceleration of the incoming path + `p' at node `t'; if `sign > 0', return the acceleration of + the outgoing path. If `sign=0', the mean of these two + accelerations is returned. + + `pair accel(path p, real t);' + returns the acceleration of the path `p' at the point `t'. + + `real radius(path p, real t);' + returns the radius of curvature of the path `p' at the point + `t'. + + `pair precontrol(path p, int t);' + returns the precontrol point of `p' at node `t'. + + `pair precontrol(path p, real t);' + returns the effective precontrol point of `p' at parameter + `t'. + + `pair postcontrol(path p, int t);' + returns the postcontrol point of `p' at node `t'. + + `pair postcontrol(path p, real t);' + returns the effective postcontrol point of `p' at parameter + `t'. + + `real arclength(path p);' + returns the length (in user coordinates) of the piecewise + linear or cubic curve that path `p' represents. + + `real arctime(path p, real L);' + returns the path "time", a real number between 0 and the + length of the path in the sense of `point(path p, real t)', + at which the cumulative arclength (measured from the + beginning of the path) equals `L'. + + `real arcpoint(path p, real L);' + returns `point(p,arctime(p,L))'. + + `real dirtime(path p, pair z);' + returns the first "time", a real number between 0 and the + length of the path in the sense of `point(path, real)', at + which the tangent to the path has the direction of pair `z', + or -1 if this never happens. + + `real reltime(path p, real l);' + returns the time on path `p' at the relative fraction `l' of + its arclength. + + `pair relpoint(path p, real l);' + returns the point on path `p' at the relative fraction `l' of + its arclength. + + `pair midpoint(path p);' + returns the point on path `p' at half of its arclength. + + `path reverse(path p);' + returns a path running backwards along `p'. + + `path subpath(path p, int a, int b);' + returns the subpath of `p' running from node `a' to node `b'. + If `a' < `b', the direction of the subpath is reversed. + + `path subpath(path p, real a, real b);' + returns the subpath of `p' running from path time `a' to path + time `b', in the sense of `point(path, real)'. If `a' < `b', + the direction of the subpath is reversed. + + `real[] intersect(path p, path q, real fuzz=-1);' + If `p' and `q' have at least one intersection point, return a + real array of length 2 containing the times representing the + respective path times along `p' and `q', in the sense of + `point(path, real)', for one such intersection point (as + chosen by the algorithm described on page 137 of `The + MetaFontbook'). The computations are performed to the + absolute error specified by `fuzz', or if `fuzz < 0', to + machine precision. If the paths do not intersect, return a + real array of length 0. + + `real[][] intersections(path p, path q, real fuzz=-1);' + Return all (unless there are infinitely many) intersection + times of paths `p' and `q' as a sorted array of real arrays + of length 2 (*note sort::). The computations are performed to + the absolute error specified by `fuzz', or if `fuzz < 0', to + machine precision. + + `real[] intersections(path p, explicit pair a, explicit pair b, real fuzz=-1);' + Return all (unless there are infinitely many) intersection + times of path `p' with the (infinite) line through points `a' + and `b' as a sorted array. The intersections returned are + guaranteed to be correct to within the absolute error + specified by `fuzz', or if `fuzz < 0', to machine precision. + + `real[] times(path p, real x)' + returns all intersection times of path `p' with the vertical + line through `(x,0)'. + + `real[] times(path p, explicit pair z)' + returns all intersection times of path `p' with the + horizontal line through `(0,z.y)'. + + `real[] mintimes(path p)' + returns an array of length 2 containing times at which path + `p' reaches its minimal horizontal and vertical extents, + respectively. + + `real[] maxtimes(path p)' + returns an array of length 2 containing the times at which + path `p' reaches its maximal horizontal and vertical extents, + respectively. + + `pair intersectionpoint(path p, path q, real fuzz=-1);' + returns the intersection point + `point(p,intersect(p,q,fuzz)[0])'. + + `pair[] intersectionpoints(path p, path q, real fuzz=-1);' + returns an array containing all intersection points of the + paths `p' and `q'. + + `pair extension(pair P, pair Q, pair p, pair q);' + returns the intersection point of the extensions of the line + segments `P--Q' and `p--q', or if the lines are parallel, + `(infinity,infinity)'. + + `slice cut(path p, path knife, int n);' + returns the portions of path `p' before and after the `n'th + intersection of `p' with path `knife' as a structure `slice' + (if no intersection exist is found, the entire path is + considered to be `before' the intersection): struct slice { + path before,after; + } + The argument `n' is treated as modulo the number of + intersections. + + `slice firstcut(path p, path knife);' + equivalent to `cut(p,knife,0);' Note that `firstcut.after' + plays the role of the `MetaPost cutbefore' command. + + `slice lastcut(path p, path knife);' + equivalent to `cut(p,knife,-1);' Note that `lastcut.before' + plays the role of the `MetaPost cutafter' command. + + `path buildcycle(... path[] p);' + This returns the path surrounding a region bounded by a list + of two or more consecutively intersecting paths, following + the behaviour of the `MetaPost buildcycle' command. + + `pair min(path p);' + returns the pair (left,bottom) for the path bounding box of + path `p'. + + `pair max(path p);' + returns the pair (right,top) for the path bounding box of + path `p'. + + `int windingnumber(path p, pair z);' + returns the winding number of the cyclic path `p' relative to + the point `z'. The winding number is positive if the path + encircles `z' in the counterclockwise direction. If `z' lies + on `p' the constant `undefined' (defined to be the largest + odd integer) is returned. + + `bool interior(int windingnumber, pen fillrule)' + returns true if `windingnumber' corresponds to an interior + point according to `fillrule'. + + `bool inside(path p, pair z, pen fillrule=currentpen);' + returns `true' iff the point `z' lies inside or on the edge of + the region bounded by the cyclic path `p' according to the + fill rule `fillrule' (*note fillrule::). + + `int inside(path p, path q, pen fillrule=currentpen);' + returns `1' if the cyclic path `p' strictly contains `q' + according to the fill rule `fillrule' (*note fillrule::), `-1' + if the cyclic path `q' strictly contains `p', and `0' + otherwise. + + `pair inside(path p, pen fillrule=currentpen);' + returns an arbitrary point strictly inside a cyclic path `p' + according to the fill rule `fillrule' (*note fillrule::). + + `path[] strokepath(path g, pen p=currentpen);' + returns the path array that `PostScript' would fill in + drawing path `g' with pen `p'. + + +`guide' + an unresolved cubic spline (list of cubic-spline nodes and control + points). The implicit initializer for a guide is `nullpath'; this + is useful for building up a guide within a loop. + + A guide is similar to a path except that the computation of the + cubic spline is deferred until drawing time (when it is resolved + into a path); this allows two guides with free endpoint conditions + to be joined together smoothly. The solid curve in the following + example is built up incrementally as a guide, but only resolved at + drawing time; the dashed curve is incrementally resolved at each + iteration, before the entire set of nodes (shown in red) is known: + + size(200); + + real mexican(real x) {return (1-8x^2)*exp(-(4x^2));} + + int n=30; + real a=1.5; + real width=2a/n; + + guide hat; + path solved; + + for(int i=0; i < n; ++i) { + real t=-a+i*width; + pair z=(t,mexican(t)); + hat=hat..z; + solved=solved..z; + } + + draw(hat); + dot(hat,red); + draw(solved,dashed); + + + + We point out an efficiency distinction in the use of guides and + paths: guide g; + for(int i=0; i < 10; ++i) + g=g--(i,i); + path p=g; + + runs in linear time, whereas path p; + for(int i=0; i < 10; ++i) + p=p--(i,i); + + runs in quadratic time, as the entire path up to that point is + copied at each step of the iteration. + + The following routines can be used to examine the individual + elements of a guide without actually resolving the guide to a + fixed path (except for internal cycles, which are resolved): + + `int size(guide g);' + Analogous to `size(path p)'. + + `int length(guide g);' + Analogous to `length(path p)'. + + `bool cyclic(path p);' + Analogous to `cyclic(path p)'. + + `pair point(guide g, int t);' + Analogous to `point(path p, int t)'. + + `guide reverse(guide g);' + Analogous to `reverse(path p)'. If `g' is cyclic and also + contains a secondary cycle, it is first solved to a path, + then reversed. If `g' is not cyclic but contains an internal + cycle, only the internal cycle is solved before reversal. If + there are no internal cycles, the guide is reversed but not + solved to a path. + + `pair[] dirSpecifier(guide g, int i);' + This returns a pair array of length 2 containing the outgoing + (in element 0) and incoming (in element 1) direction + specifiers (or `(0,0)' if none specified) for the segment of + guide `g' between nodes `i' and `i+1'. + + `pair[] controlSpecifier(guide g, int i);' + If the segment of guide `g' between nodes `i' and `i+1' has + explicit outgoing and incoming control points, they are + returned as elements 0 and 1, respectively, of a two-element + array. Otherwise, an empty array is returned. + + `tensionSpecifier tensionSpecifier(guide g, int i);' + This returns the tension specifier for the segment of guide + `g' between nodes `i' and `i+1'. The individual components of + the `tensionSpecifier' type can be accessed as the virtual + members `in', `out', and `atLeast'. + + `real[] curlSpecifier(guide g);' + This returns an array containing the initial curl specifier + (in element 0) and final curl specifier (in element 1) for + guide `g'. + + + As a technical detail we note that a direction specifier given to + `nullpath' modifies the node on the other side: the guides a..{up}nullpath..b; + c..nullpath{up}..d; + e..{up}nullpath{down}..f; + are respectively equivalent to a..nullpath..{up}b; + c{up}..nullpath..d; + e{down}..nullpath..{up}f; + + + +File: asymptote.info, Node: Pens, Next: Transforms, Prev: Paths and guides, Up: Programming + +6.3 Pens +======== + +In `Asymptote', pens provide a context for the four basic drawing +commands (*note Drawing commands::). They are used to specify the +following drawing attributes: color, line type, line width, line cap, +line join, fill rule, text alignment, font, font size, pattern, +overwrite mode, and calligraphic transforms on the pen nib. The default +pen used by the drawing routines is called `currentpen'. This provides +the same functionality as the `MetaPost' command `pickup'. The +implicit initializer for pens is `defaultpen'. + + Pens may be added together with the nonassociative binary operator +`+'. This will add the colors of the two pens. All other non-default +attributes of the rightmost pen will override those of the leftmost +pen. Thus, one can obtain a yellow dashed pen by saying +`dashed+red+green' or `red+green+dashed' or `red+dashed+green'. The +binary operator `*' can be used to scale the color of a pen by a real +number, until it saturates with one or more color components equal to 1. + + * Colors are specified using one of the following colorspaces: + `pen gray(real g);' + This produces a grayscale color, where the intensity `g' lies + in the interval [0,1], with 0.0 denoting black and 1.0 + denoting white. + + `pen rgb(real r, real g, real b);' + This produces an RGB color, where each of the red, green, and + blue intensities `r', `g', `b', lies in the interval [0,1]. + + `pen cmyk(real c, real m, real y, real k);' + This produces a CMYK color, where each of the cyan, magenta, + yellow, and black intensities `c', `m', `y', `k', lies in the + interval [0,1]. + + `pen invisible;' + This special pen writes in invisible ink, but adjusts the + bounding box as if something had been drawn (like the + `\phantom' command in TeX). The function `bool + invisible(pen)' can be used to test whether a pen is + invisible. + + + The default color is `black'; this may be changed with the routine + `defaultpen(pen)'. The function `colorspace(pen p)' returns the + colorspace of pen `p' as a string (`"gray"', `"rgb"', `"cmyk"', or + `""'). + + The function `real[] colors(pen)' returns the color components of + a pen. The functions `pen gray(pen)', `pen rgb(pen)', and `pen + cmyk(pen)' return new pens obtained by converting their arguments + to the respective color spaces. The function + `colorless(pen=currentpen)' returns a copy of its argument with + the color attributes stripped (to avoid color mixing). + + A 6-character RGB hexidecimal string can be converted to a pen with + the routine pen rgb(string s); + A pen can be converted to a hexidecimal string with + + * string hex(pen p); + + Various shades and mixtures of the grayscale primary colors + `black' and `white', RGB primary colors `red', `green', and + `blue', and RGB secondary colors `cyan', `magenta', and `yellow' + are defined as named colors, along with the CMYK primary colors + `Cyan', `Magenta', `Yellow', and `Black', in the module `plain': + + + + The standard 140 RGB `X11' colors can be imported with the command import x11colors; + and the standard 68 CMYK TeX colors can be imported with the + command import texcolors; + Note that there is some overlap between these two standards and + the definitions of some colors (e.g. `Green') actually disagree. + + `Asymptote' also comes with a `asycolors.sty' `LaTeX' package that + defines to `LaTeX' CMYK versions of `Asymptote''s predefined + colors, so that they can be used directly within `LaTeX' strings. + Normally, such colors are passed to `LaTeX' via a pen argument; + however, to change the color of only a portion of a string, say + for a slide presentation, (*note slide::) it may be desirable to + specify the color directly to `LaTeX'. This file can be passed to + `LaTeX' with the `Asymptote' command usepackage("asycolors"); + + The structure `hsv' defined in `plain_pens.asy' may be used to + convert between HSV and RGB spaces, where the hue `h' is an angle + in [0,360) and the saturation `s' and value `v' lie in `[0,1]': pen p=hsv(180,0.5,0.75); + write(p); // ([default], red=0.375, green=0.75, blue=0.75) + hsv q=p; + write(q.h,q.s,q.v); // 180 0.5 0.75 + + * Line types are specified with the function `pen linetype(real[] a, + real offset=0, bool scale=true, bool adjust=true)', where `a' is + an array of real array numbers. The optional parameter `offset' + specifies where in the pattern to begin. The first number + specifies how far (if `scale' is `true', in units of the pen line + width; otherwise in `PostScript' units) to draw with the pen on, + the second number specifies how far to draw with the pen off, and + so on. If `adjust' is `true', these spacings are automatically + adjusted by `Asymptote' to fit the arclength of the path. Here are + the predefined line types: pen solid=linetype(new real[]); + pen dotted=linetype(new real[] {0,4}); + pen dashed=linetype(new real[] {8,8}); + pen longdashed=linetype(new real[] {24,8}); + pen dashdotted=linetype(new real[] {8,8,0,8}); + pen longdashdotted=linetype(new real[] {24,8,0,8}); + pen Dotted(pen p=currentpen) {return linetype(new real[] {0,3})+2*linewidth(p);} + pen Dotted=Dotted(); + + + + The default line type is `solid'; this may be changed with + `defaultpen(pen)'. The line type of a pen can be determined with + the functions `real[] linetype(pen p=currentpen)', `real + offset(pen p)', `bool scale(pen p)', and `bool adjust(pen p)'. + + * The pen line width is specified in `PostScript' units with `pen + linewidth(real)'. The default line width is 0.5 bp; this value may + be changed with `defaultpen(pen)'. The line width of a pen is + returned by `real linewidth(pen p=currentpen)'. For convenience, + in the module `plain_pens' we define void defaultpen(real w) {defaultpen(linewidth(w));} + pen operator +(pen p, real w) {return p+linewidth(w);} + pen operator +(real w, pen p) {return linewidth(w)+p;} + so that one may set the line width like this: defaultpen(2); + pen p=red+0.5; + + * A pen with a specific `PostScript' line cap is returned on calling + `linecap' with an integer argument: pen squarecap=linecap(0); + pen roundcap=linecap(1); + pen extendcap=linecap(2); + + The default line cap, `roundcap', may be changed with + `defaultpen(pen)'. The line cap of a pen is returned by `int + linecap(pen p=currentpen)'. + + * A pen with a specific `PostScript' join style is returned on + calling `linejoin' with an integer argument: pen miterjoin=linejoin(0); + pen roundjoin=linejoin(1); + pen beveljoin=linejoin(2); + + The default join style, `roundjoin', may be changed with + `defaultpen(pen)'.The join style of a pen is returned by `int + linejoin(pen p=currentpen)'. + + * A pen with a specific `PostScript' miter limit is returned by + calling `miterlimit(real)'. The default miterlimit, `10.0', may + be changed with `defaultpen(pen)'. The miter limit of a pen is + returned by `real miterlimit(pen p=currentpen)'. + + * A pen with a specific `PostScript' fill rule is returned on + calling `fillrule' with an integer argument: pen zerowinding=fillrule(0); + pen evenodd=fillrule(1); + + The fill rule, which identifies the algorithm used to determine the + insideness of a path or array of paths, only affects the `clip', + `fill', and `inside' functions. For the `zerowinding' fill rule, a + point `z' is outside the region bounded by a path if the number of + upward intersections of the path with the horizontal line + `z--z+infinity' minus the number of downward intersections is + zero. For the `evenodd' fill rule, `z' is considered to be outside + the region if the total number of such intersections is even. The + default fill rule, `zerowinding', may be changed with + `defaultpen(pen)'. The fill rule of a pen is returned by `int + fillrule(pen p=currentpen)'. + + * A pen with a specific text alignment setting is returned on + calling `basealign' with an integer argument: pen nobasealign=basealign(0); + pen basealign=basealign(1); + + The default setting, `nobasealign',which may be changed with + `defaultpen(pen)', causes the label alignment routines to use the + full label bounding box for alignment. In contrast, `basealign' + requests that the TeX baseline be respected. The base align + setting of a pen is returned by `int basealigin(pen p=currentpen)'. + + * The font size is specified in TeX points (1 pt = 1/72.27 inches) + with the function `pen fontsize(real size, real + lineskip=1.2*size)'. The default font size, 12pt, may be changed + with `defaultpen(pen)'. Nonstandard font sizes may require + inserting import fontsize; + at the beginning of the file (this requires the `type1cm' package + available from + + `http://www.ctan.org/tex-archive/macros/latex/contrib/type1cm/' + and included in recent `LaTeX' distributions). The font size and + line skip of a pen can be examined with the routines `real + fontsize(pen p=currentpen)' and `real lineskip(pen p=currentpen)', + respectively. + + * A pen using a specific `LaTeX' `NFSS' font is returned by calling + the function `pen font(string encoding, string family, string + series, string shape)'. The default setting, + `font("OT1","cmr","m","n")', corresponds to 12pt Computer Modern + Roman; this may be changed with `defaultpen(pen)'. The font + setting of a pen is returned by `string font(pen p=currentpen)'. + Support for standardized international characters is provided by + the `unicode' package (*note unicode::). + + Alternatively, one may select a fixed-size TeX font (on which + `fontsize' has no effect) like `"cmr12"' (12pt Computer Modern + Roman) or `"pcrr"' (Courier) using the function `pen font(string + name)'. An optional size argument can also be given to scale the + font to the requested size: `pen font(string name, real size)'. + + A nonstandard font command can be generated with `pen + fontcommand(string)'. + + A convenient interface to the following standard `PostScript' + fonts is also provided: pen AvantGarde(string series="m", string shape="n"); + pen Bookman(string series="m", string shape="n"); + pen Courier(string series="m", string shape="n"); + pen Helvetica(string series="m", string shape="n"); + pen NewCenturySchoolBook(string series="m", string shape="n"); + pen Palatino(string series="m", string shape="n"); + pen TimesRoman(string series="m", string shape="n"); + pen ZapfChancery(string series="m", string shape="n"); + pen Symbol(string series="m", string shape="n"); + pen ZapfDingbats(string series="m", string shape="n"); + + * The transparency of a pen can be changed with the command: pen opacity(real opacity=1, string blend="Compatible"); + The opacity can be varied from `0' (fully transparent) to the + default value of `1' (opaque), and `blend' specifies one of the + following foreground-background blending operations: "Compatible","Normal","Multiply","Screen","Overlay","SoftLight", + "HardLight","ColorDodge","ColorBurn","Darken","Lighten","Difference", + "Exclusion","Hue","Saturation","Color","Luminosity", + as described in + + `http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf'. + Since `PostScript' does not support transparency, this feature is + only effective with the `-f pdf' output format option; other + formats can be produced from the resulting PDF file with the + `ImageMagick' `convert' program. Labels are always drawn with an + `opacity' of 1. A simple example of transparent filling is + provided in the example file `transparency.asy'. + + * `PostScript' commands within a `picture' may be used to create a + tiling pattern, identified by the string `name', for `fill' and + `draw' operations by adding it to the global `PostScript' frame + `currentpatterns', with optional left-bottom margin `lb' and + right-top margin `rt'. import patterns; + void add(string name, picture pic, pair lb=0, pair rt=0); + + To `fill' or `draw' using pattern `name', use the pen + `pattern("name")'. For example, rectangular tilings can be + constructed using the routines `picture tile(real Hx=5mm, real + Hy=0, pen p=currentpen, filltype filltype=NoFill)', `picture + checker(real Hx=5mm, real Hy=0, pen p=currentpen)', and `picture + brick(real Hx=5mm, real Hy=0, pen p=currentpen)' defined in + `patterns.asy': size(0,90); + import patterns; + + add("tile",tile()); + add("filledtilewithmargin",tile(6mm,4mm,red,Fill),(1mm,1mm),(1mm,1mm)); + add("checker",checker()); + add("brick",brick()); + + real s=2.5; + filldraw(unitcircle,pattern("tile")); + filldraw(shift(s,0)*unitcircle,pattern("filledtilewithmargin")); + filldraw(shift(2s,0)*unitcircle,pattern("checker")); + filldraw(shift(3s,0)*unitcircle,pattern("brick")); + + + + Hatch patterns can be generated with the routines `picture + hatch(real H=5mm, pair dir=NE, pen p=currentpen)', `picture + crosshatch(real H=5mm, pen p=currentpen)': size(0,100); + import patterns; + + add("hatch",hatch()); + add("hatchback",hatch(NW)); + add("crosshatch",crosshatch(3mm)); + + real s=1.25; + filldraw(unitsquare,pattern("hatch")); + filldraw(shift(s,0)*unitsquare,pattern("hatchback")); + filldraw(shift(2s,0)*unitsquare,pattern("crosshatch")); + + + + You may need to turn off aliasing in your `PostScript' viewer for + patterns to appear correctly. Custom patterns can easily be + constructed, following the examples in `patterns.asy'. The tiled + pattern can even incorporate shading (*note gradient shading::), + as illustrated in this example (not included in the manual because + not all printers support `PostScript' 3): size(0,100); + import patterns; + + real d=4mm; + picture tiling; + path square=scale(d)*unitsquare; + axialshade(tiling,square,white,(0,0),black,(d,d)); + fill(tiling,shift(d,d)*square,blue); + add("shadedtiling",tiling); + + filldraw(unitcircle,pattern("shadedtiling")); + + + + * One can specify a custom pen nib as an arbitrary polygonal path + with `pen makepen(path)'; this path represents the mark to be + drawn for paths containing a single point. This pen nib path can be + recovered from a pen with `path nib(pen)'. Unlike in `MetaPost', + the path need not be convex: + + size(200); + pen convex=makepen(scale(10)*polygon(8))+grey; + draw((1,0.4),convex); + draw((0,0)---(1,1)..(2,0)--cycle,convex); + + pen nonconvex=scale(10)* + makepen((0,0)--(0.25,-1)--(0.5,0.25)--(1,0)--(0.5,1.25)--cycle)+red; + draw((0.5,-1.5),nonconvex); + draw((0,-1.5)..(1,-0.5)..(2,-1.5),nonconvex); + + + + The value `nullpath' represents a circular pen nib (the default); + an elliptical pen can be achieved simply by multiplying the pen by + a transform: `yscale(2)*currentpen'. + + * One can prevent labels from overwriting one another by using the + pen attribute `overwrite', which takes a single argument: + + `Allow' + Allow labels to overwrite one another. This is the default + behaviour (unless overridden with `defaultpen(pen)'. + + `Suppress' + Suppress, with a warning, each label that would overwrite + another label. + + `SuppressQuiet' + Suppress, without warning, each label that would overwrite + another label. + + `Move' + Move a label that would overwrite another out of the way and + issue a warning. As this adjustment is during the final + output phase (in `PostScript' coordinates) it could result in + a larger figure than requested. + + `MoveQuiet' + Move a label that would overwrite another out of the way, + without warning. As this adjustment is during the final + output phase (in `PostScript' coordinates) it could result in + a larger figure than requested. + + + + The routine `defaultpen()' returns the current default pen +attributes. Calling the routine `resetdefaultpen()' resets all pen +default attributes to their initial values. + + +File: asymptote.info, Node: Transforms, Next: Frames and pictures, Prev: Pens, Up: Programming + +6.4 Transforms +============== + +`Asymptote' makes extensive use of affine transforms. A pair `(x,y)' is +transformed by the transform `t=(t.x,t.y,t.xx,t.xy,t.yx,t.yy)' to +`(x',y')', where +x' = t.x + t.xx * x + t.xy * y +y' = t.y + t.yx * x + t.yy * y + This is equivalent to the `PostScript' transformation `[t.xx t.yx t.xy +t.yy t.x t.y]'. + + Transforms can be applied to pairs, guides, paths, pens, strings, +transforms, frames, and pictures by multiplication (via the binary +operator `*') on the left (*note circle:: for an example). Transforms +can be composed with one another and inverted with the function +`transform inverse(transform t)'; they can also be raised to any +integer power with the `^' operator. + + The built-in transforms are: + +`transform identity();' + the identity transform; + +`transform shift(pair z);' + translates by the pair `z'; + +`transform shift(real x, real y);' + translates by the pair `(x,y)'; + +`transform xscale(real x);' + scales by `x' in the x direction; + +`transform yscale(real y);' + scales by `y' in the y direction; + +`transform scale(real s);' + scale by `s' in both x and y directions; + +`transform scale(real x, real y);' + scale by `x' in the x direction and by `y' in the y direction; + +`transform slant(real s);' + maps `(x,y)' -> `(x+s*y,y)'; + +`transform rotate(real angle, pair z=(0,0));' + rotates by `angle' in degrees about `z'; + +`transform reflect(pair a, pair b);' + reflects about the line `a--b'. + + The implicit initializer for transforms is `identity()'. The +routines `shift(transform t)' and `shiftless(transform t)' return the +transforms `(t.x,t.y,0,0,0,0)' and `(0,0,t.xx,t.xy,t.yx,t.yy)' +respectively. + + +File: asymptote.info, Node: Frames and pictures, Next: Files, Prev: Transforms, Up: Programming + +6.5 Frames and pictures +======================= + +`frame' + Frames are canvases for drawing in `PostScript' coordinates. While + working with frames directly is occasionally necessary for + constructing deferred drawing routines, pictures are usually more + convenient to work with. The implicit initializer for frames is + `newframe'. The function `bool empty(frame f)' returns `true' only + if the frame `f' is empty. A frame may be erased with the + `erase(frame)' routine. The functions `pair min(frame)' and `pair + max(frame)' return the (left,bottom) and (right,top) coordinates + of the frame bounding box, respectively. The contents of frame + `src' may be appended to frame `dest' with the command void add(frame dest, frame src); + or prepended with void prepend(frame dest, frame src); + A frame obtained by aligning frame `f' in the direction `align', + in a manner analogous to the `align' argument of `label' (*note + label::), is returned by frame align(frame f, pair align); + + To draw or fill a box or ellipse around a label or frame and + return the boundary as a path, use one of the predefined + `envelope' routines path box(frame f, Label L="", real xmargin=0, + real ymargin=xmargin, pen p=currentpen, + filltype filltype=NoFill, bool above=true); + path roundbox(frame f, Label L="", real xmargin=0, + real ymargin=xmargin, pen p=currentpen, + filltype filltype=NoFill, bool above=true); + path ellipse(frame f, Label L="", real xmargin=0, + real ymargin=xmargin, pen p=currentpen, + filltype filltype=NoFill, bool above=true); + +`picture' + Pictures are high-level structures (*note Structures::) defined in + the module `plain' that provide canvases for drawing in user + coordinates. The default picture is called `currentpicture'. A + new picture can be created like this: picture pic; + Anonymous pictures can be made by the expression `new picture'. + + The `size' routine specifies the dimensions of the desired picture: + + void size(picture pic=currentpicture, real x, real y=x, + bool keepAspect=Aspect); + + If the `x' and `y' sizes are both 0, user coordinates will be + interpreted as `PostScript' coordinates. In this case, the + transform mapping `pic' to the final output frame is `identity()'. + + If exactly one of `x' or `y' is 0, no size restriction is imposed + in that direction; it will be scaled the same as the other + direction. + + If `keepAspect' is set to `Aspect' or `true', the picture will be + scaled with its aspect ratio preserved such that the final width + is no more than `x' and the final height is no more than `y'. + + If `keepAspect' is set to `IgnoreAspect' or `false', the picture + will be scaled in both directions so that the final width is `x' + and the height is `y'. + + To make the user coordinates of picture `pic' represent multiples + of `x' units in the x direction and `y' units in the y direction, + use void unitsize(picture pic=currentpicture, real x, real y=x); + When nonzero, these `x' and `y' values override the corresponding + size parameters of picture `pic'. + + The routine void size(picture pic=currentpicture, real xsize, real ysize, + pair min, pair max); + forces the final picture scaling to map the user coordinates + `box(min,max)' to a region of width `xsize' and height `ysize' + (when these parameters are nonzero). + + Alternatively, calling the routine transform fixedscaling(picture pic=currentpicture, pair min, + pair max, pen p=nullpen, bool warn=false); + will cause picture `pic' to use a fixed scaling to map user + coordinates in `box(min,max)' to the (already specified) picture + size, taking account of the width of pen `p'. A warning will be + issued if the final picture exceeds the specified size. + + A picture `pic' can be fit to a frame and output to a file + `prefix'.`format' using image format `format' by calling the + `shipout' function: void shipout(string prefix=defaultfilename, picture pic=currentpicture, + orientation orientation=orientation, + string format="", bool wait=false, bool view=true, + string options="", string script="", + light light=currentlight, projection P=currentprojection) + The default output format, `PostScript', may be changed with the + `-f' or `-tex' command-line options. The `options', `script', and + `projection' parameters are only relevant for 3D pictures. If + `defaultfilename' is an empty string, the prefix `outprefix()' + will be used. + + A `shipout()' command is added implicitly at file exit if no + previous `shipout' commands have been executed. The default page + orientation is `Portrait'; this may be modified by changing the + variable `orientation'. To output in landscape mode, simply set + the variable `orientation=Landscape' or issue the command shipout(Landscape); + + To rotate the page by -90 degrees, use the orientation `Seascape'. The + orientation `UpsideDown' rotates the page by 180 degrees. + + A picture `pic' can be explicitly fit to a frame by calling frame pic.fit(real xsize=pic.xsize, real ysize=pic.ysize, + bool keepAspect=pic.keepAspect); + The default size and aspect ratio settings are those given to the + `size' command (which default to `0', `0', and `true', + respectively). The transformation that would currently be used to + fit a picture `pic' to a frame is returned by the member function + `pic.calculateTransform()'. + + In certain cases (e.g. 2D graphs) where only an approximate size + estimate for `pic' is available, the picture fitting routine frame pic.scale(real xsize=this.xsize, real ysize=this.ysize, + bool keepAspect=this.keepAspect); + (which scales the resulting frame, including labels and fixed-size + objects) will enforce perfect compliance with the requested size + specification, but should not normally be required. + + To draw a bounding box with margins around a picture, fit the + picture to a frame using the function frame bbox(picture pic=currentpicture, real xmargin=0, + real ymargin=xmargin, pen p=currentpen, + filltype filltype=NoFill); + Here `filltype' specifies one of the following fill types: + `FillDraw' + Fill the interior and draw the boundary. + + `FillDraw(real xmargin=0, real ymargin=xmargin, pen fillpen=nullpen,' + `pen drawpen=nullpen)' If `fillpen' is `nullpen', fill with + the drawing pen; otherwise fill with pen `fillpen'. If + `drawpen' is `nullpen', draw the boundary with `fillpen'; + otherwise with `drawpen'. An optional margin of `xmargin' and + `ymargin' can be specified. + + `Fill' + Fill the interior. + + `Fill(real xmargin=0, real ymargin=xmargin, pen p=nullpen)' + If `p' is `nullpen', fill with the drawing pen; otherwise + fill with pen `p'. An optional margin of `xmargin' and + `ymargin' can be specified. + + `NoFill' + Do not fill. + + `Draw' + Draw only the boundary. + + `Draw(real xmargin=0, real ymargin=xmargin, pen p=nullpen)' + If `p' is `nullpen', draw the boundary with the drawing pen; + otherwise draw with pen `p'. An optional margin of `xmargin' + and `ymargin' can be specified. + + `UnFill' + Clip the region. + + `UnFill(real xmargin=0, real ymargin=xmargin)' + Clip the region and surrounding margins `xmargin' and + `ymargin'. + + `RadialShade(pen penc, pen penr)' + Fill varying radially from `penc' at the center of the + bounding box to `penr' at the edge. + + `RadialShadeDraw(real xmargin=0, real ymargin=xmargin, pen penc,' + `pen penr, pen drawpen=nullpen)' Fill with RadialShade and + draw the boundary. + + + For example, to draw a bounding box around a picture with a 0.25 cm + margin and output the resulting frame, use the command: shipout(bbox(0.25cm)); + A `picture' may be fit to a frame with the background color pen + `p', using the function `bbox(p,Fill)'. + + The functions pair min(picture pic, user=false); + pair max(picture pic, user=false); + pair size(picture pic, user=false); + calculate the bounds that picture `pic' would have if it were + currently fit to a frame using its default size specification. If + `user' is `false' the returned value is in `PostScript' + coordinates, otherwise it is in user coordinates. + + The function pair point(picture pic=currentpicture, pair dir, bool user=true); + is a convenient way of determining the point on the bounding box + of `pic' in the direction `dir' relative to its center, ignoring + the contributions from fixed-size objects (such as labels and + arrowheads). If `user' is `true' the returned value is in user + coordinates, otherwise it is in `PostScript' coordinates. + + The function pair truepoint(picture pic=currentpicture, pair dir, bool user=true); + is identical to `point', except that it also accounts for + fixed-size objects, using the scaling transform that picture `pic' + would have if currently fit to a frame using its default size + specification. If `user' is `true' the returned value is in user + coordinates, otherwise it is in `PostScript' coordinates. + + Sometimes it is useful to draw objects on separate pictures and + add one picture to another using the `add' function: void add(picture src, bool group=true, + filltype filltype=NoFill, bool above=true); + void add(picture dest, picture src, bool group=true, + filltype filltype=NoFill, bool above=true); + The first example adds `src' to `currentpicture'; the second one + adds `src' to `dest'. The `group' option specifies whether or not + the graphical user interface `xasy' should treat all of the + elements of `src' as a single entity (*note GUI::), `filltype' + requests optional background filling or clipping, and `above' + specifies whether to add `src' above or below existing objects. + + There are also routines to add a picture or frame `src' specified + in postscript coordinates to another picture `dest' (or + `currentpicture') about the user coordinate `position': void add(picture src, pair position, bool group=true, + filltype filltype=NoFill, bool above=true); + void add(picture dest, picture src, pair position, + bool group=true, filltype filltype=NoFill, bool above=true); + void add(picture dest=currentpicture, frame src, pair position=0, + bool group=true, filltype filltype=NoFill, bool above=true); + void add(picture dest=currentpicture, frame src, pair position, + pair align, bool group=true, filltype filltype=NoFill, + bool above=true); + + The optional `align' argument in the last form specifies a + direction to use for aligning the frame, in a manner analogous to + the `align' argument of `label' (*note label::). However, one key + difference is that when `align' is not specified, labels are + centered, whereas frames and pictures are aligned so that their + origin is at `position'. Illustrations of frame alignment can be + found in the examples *note errorbars:: and *note image::. If you + want to align three or more subpictures, group them two at a time: + + picture pic1; + real size=50; + size(pic1,size); + fill(pic1,(0,0)--(50,100)--(100,0)--cycle,red); + + picture pic2; + size(pic2,size); + fill(pic2,unitcircle,green); + + picture pic3; + size(pic3,size); + fill(pic3,unitsquare,blue); + + picture pic; + add(pic,pic1.fit(),(0,0),N); + add(pic,pic2.fit(),(0,0),10S); + + add(pic.fit(),(0,0),N); + add(pic3.fit(),(0,0),10S); + + + + Alternatively, one can use `attach' to automatically increase the + size of picture `dest' to accommodate adding a frame `src' about + the user coordinate `position': void attach(picture dest=currentpicture, frame src, + pair position=0, bool group=true, + filltype filltype=NoFill, bool above=true); + void attach(picture dest=currentpicture, frame src, + pair position, pair align, bool group=true, + filltype filltype=NoFill, bool above=true); + + To erase the contents of a picture (but not the size + specification), use the function void erase(picture pic=currentpicture); + + To save a snapshot of `currentpicture', `currentpen', and + `currentprojection', use the function `save()'. + + To restore a snapshot of `currentpicture', `currentpen', and + `currentprojection', use the function `restore()'. + + Many further examples of picture and frame operations are provided + in the base module `plain'. + + It is possible to insert verbatim `PostScript' commands in a + picture with one of the routines void postscript(picture pic=currentpicture, string s); + void postscript(picture pic=currentpicture, string s, pair min, + pair max) + Here `min' and `max' can be used to specify explicit bounds + associated with the resulting `PostScript' code. + + Verbatim TeX commands can be inserted in the intermediate `LaTeX' + output file with one of the functions void tex(picture pic=currentpicture, string s); + void tex(picture pic=currentpicture, string s, pair min, pair max) + Here `min' and `max' can be used to specify explicit bounds + associated with the resulting TeX code. + + To issue a global TeX command (such as a TeX macro definition) in + the TeX preamble (valid for the remainder of the top-level module) + use: void texpreamble(string s); + + The TeX environment can be reset to its initial state, clearing all + macro definitions, with the function void texreset(); + + The routine void usepackage(string s, string options=""); + provides a convenient abbreviation for texpreamble("\usepackage["+options+"]{"+s+"}"); + that can be used for importing `LaTeX' packages. + + + +File: asymptote.info, Node: Files, Next: Variable initializers, Prev: Frames and pictures, Up: Programming + +6.6 Files +========= + +`Asymptote' can read and write text files (including comma-separated +value) files and portable XDR (External Data Representation) binary +files. + + An input file must first be opened with +input(string name="", bool check=true, string comment="#", string mode=""); + reading is then done by assignment: +file fin=input("test.txt"); +real a=fin; + + If the optional boolean argument `check' is `false', no check will +be made that the file exists. If the file does not exist or is not +readable, the function `bool error(file)' will return `true'. The +first character of the string `comment' specifies a comment character. +If this character is encountered in a data file, the remainder of the +line is ignored. When reading strings, a comment character followed +immediately by another comment character is treated as a single literal +comment character. + + One can change the current working directory for read operations to +the contents of the string `s' with the function `string cd(string s)', +which returns the new working directory. If `string s' is empty, the +path is reset to the value it had at program startup. + + When reading pairs, the enclosing parenthesis are optional. Strings +are also read by assignment, by reading characters up to but not +including a newline. In addition, `Asymptote' provides the function +`string getc(file)' to read the next character (treating the comment +character as an ordinary character) and return it as a string. + + A file named `name' can be open for output with +file output(string name="", bool update=false, string comment="#", string mode=""); + If `update=false', any existing data in the file will be erased and +only write operations can be used on the file. If `update=true', any +existing data will be preserved, the position will be set to the +end-of-file, and both reading and writing operations will be enabled. +For security reasons, writing to files in directories other than the +current directory is allowed only if the `-globalwrite' (or `-nosafe') +command-line option is specified. The function `string mktemp(string +s)' may be used to create and return the name of a unique temporary +file in the current directory based on the string `s'. + + There are two special files: `stdin', which reads from the keyboard, +and `stdout', which writes to the terminal. The implicit initializer +for files is `null'. + + Data of a built-in type `T' can be written to an output file by +calling one of the functions +write(string s="", T x, suffix suffix=endl ... T[]); +write(file file, string s="", T x, suffix suffix=none ... T[]); +write(file file=stdout, string s="", explicit T[] x ... T[][]); +write(file file=stdout, T[][]); +write(file file=stdout, T[][][]); +write(suffix suffix=endl); +write(file file, suffix suffix=none); + If `file' is not specified, `stdout' is used and terminated by default +with a newline. If specified, the optional identifying string `s' is +written before the data `x'. An arbitrary number of data values may be +listed when writing scalars or one-dimensional arrays. The `suffix' may +be one of the following: `none' (do nothing), `flush' (output buffered +data), `endl' (terminate with a newline and flush), `newl' (terminate +with a newline), `DOSendl' (terminate with a DOS newline and flush), +`DOSnewl' (terminate with a DOS newline), `tab' (terminate with a tab), +or `comma' (terminate with a comma). Here are some simple examples of +data output: +file fout=output("test.txt"); +write(fout,1); // Writes "1" +write(fout); // Writes a new line +write(fout,"List: ",1,2,3); // Writes "List: 1 2 3" + A file may be opened with `mode="xdr"', to read or write double +precision (64-bit) reals and single precision (32-bit) integers in Sun +Microsystem's XDR (External Data Representation) portable binary format +(available on all `UNIX' platforms). Alternatively, a file may also be +opened with `mode="binary"' to read or write double precision reals and +single precision integers in the native (nonportable) machine binary +format. The virtual member functions `file singlereal(bool b=true)' +and `file singleint(bool b=true)' be used to change the precision of +real and integer I/O operations, respectively, for an XDR or binary +file `f'. Similarly, the function `file signedint(bool b=true)' can be +used to modify the signedness of integer reads and writes for an XDR or +binary file `f'. + + The virtual members `name', `mode', `singlereal', `singleint', and +`signedint' may be used to query the respective parameters for a given +file. + + One can test a file for end-of-file with the boolean function +`eof(file)', end-of-line with `eol(file)', and for I/O errors with +`error(file)'. One can flush the output buffers with `flush(file)', +clear a previous I/O error with `clear(file)', and close the file with +`close(file)'. The function `int precision(file file=stdout, int +digits=0)' sets the number of digits of output precision for `file' to +`digits', provided `digits' is nonzero, and returns the previous +precision setting. The function `int tell(file)' returns the current +position in a file relative to the beginning. The routine `seek(file +file, int pos)' can be used to change this position, where a negative +value for the position `pos' is interpreted as relative to the +end-of-file. For example, one can rewind a file `file' with the command +`seek(file,0)' and position to the final character in the file with +`seek(file,-1)'. The command `seekeof(file)' sets the position to the +end of the file. + + Assigning `settings.scroll=n' for a positive integer `n' requests a +pause after every `n' output lines to `stdout'. One may then press +`Enter' to continue to the next `n' output lines, `s' followed by +`Enter' to scroll without further interruption, or `q' followed by +`Enter' to quit the current output operation. If `n' is negative, the +output scrolls a page at a time (i.e. by one less than the current +number of display lines). The default value, `settings.scroll=0', +specifies continuous scrolling. + + The routines +string getstring(string name="", string default="", string prompt="", + bool store=true); +int getint(string name="", int default=0, string prompt="", + bool store=true); +real getreal(string name="", real default=0, string prompt="", + bool store=true); +pair getpair(string name="", pair default=0, string prompt="", + bool store=true); +triple gettriple(string name="", triple default=(0,0,0), string prompt="", + bool store=true); + defined in the module `plain' may be used to prompt for a value from +`stdin' using the GNU `readline' library. If `store=true', the history +of values for `name' is stored in the file `".asy_history_"+name' +(*note history::). The most recent value in the history will be used to +provide a default value for subsequent runs. The default value +(initially `default') is displayed after `prompt'. These functions are +based on the internal routines +string readline(string prompt="", string name="", bool tabcompletion=false); +void saveline(string name, string value, bool store=true); + Here, `readline' prompts the user with the default value formatted +according to `prompt', while `saveline' is used to save the string +`value' in a local history named `name', optionally storing the local +history in a file `".asy_history_"+name'. + + The routine `history(string name, int n=1)' can be used to look up +the `n' most recent values (or all values up to `historylines' if +`n=0') entered for string `name'. The routine `history(int n=0)' +returns the interactive history. For example, +write(output("transcript.asy"),history()); + outputs the interactive history to the file `transcript.asy'. + + The function `int delete(string s)' deletes the file named by the +string `s'. Unless the `-globalwrite' (or `-nosafe') option is enabled, +the file must reside in the current directory. The function `int +rename(string from, string to)' may be used to rename file `from' to +file `to'. Unless the `-globalwrite' (or `-nosafe') option is enabled, +this operation is restricted to the current directory. The functions +int convert(string args="", string file="", string format=""); +int animate(string args="", string file="", string format=""); + call the `ImageMagick' commands `convert' and `animate', respectively, +with the arguments `args' and the file name constructed from the +strings `file' and `format'. + + +File: asymptote.info, Node: Variable initializers, Next: Structures, Prev: Files, Up: Programming + +6.7 Variable initializers +========================= + +A variable can be assigned a value when it is declared, as in `int +x=3;' where the variable `x' is assigned the value `3'. As well as +literal constants such as `3', arbitary expressions can be used as +initializers, as in `real x=2*sin(pi/2);'. + + A variable is not added to the namespace until after the initializer +is evaluated, so for example, in +int x=2; +int x=5*x; + the `x' in the initializer on the second line refers to the variable +`x' declared on the first line. The second line, then, declares a +variable `x' shadowing the original `x' and initializes it to the value +`10'. + + Variables of most types can be declared without an explicit +initializer and they will be initialized by the default initializer of +that type: + + * Variables of the numeric types `int', `real', and `pair' are all + initialized to zero; variables of type `triple' are initialized to + `O=(0,0,0)'. + + * `boolean' variables are initialized to `false'. + + * `string' variables are initialized to the empty string. + + * `transform' variables are initialized to the identity + transformation. + + * `path' and `guide' variables are initialized to `nullpath'. + + * `pen' variables are initialized to the default pen. + + * `frame' and `picture' variables are initialized to empty frames + and pictures, respectively. + + * `file' variables are initialized to `null'. + + The default initializers for user-defined array, structure, and +function types are explained in their respective sections. Some types, +such as `code', do not have default initializers. When a variable of +such a type is introduced, the user must initialize it by explicitly +giving it a value. + + The default initializer for any type `T' can be redeclared by +defining the function `T operator init()'. For instance, `int' +variables are usually initialized to zero, but in +int operator init() { + return 3; +} +int y; + +the variable `y' is initialized to `3'. This example was given for +illustrative purposes; redeclaring the initializers of built-in types +is not recommended. Typically, `operator init' is used to define +sensible defaults for user-defined types. + + The special type `var' may be used to infer the type of a variable +from its initializer. If the initializer is an expression of a unique +type, then the variable will be defined with that type. For instance, +var x=5; +var y=4.3; +var reddash=red+dashed; + is equivalent to +int x=5; +real y=4.3; +pen reddash=red+dashed; + + `var' may also be used with the extended `for' loop syntax. + +int[] a = {1,2,3}; +for (var x : a) + write(x); + + +File: asymptote.info, Node: Structures, Next: Operators, Prev: Variable initializers, Up: Programming + +6.8 Structures +============== + +Users may also define their own data types as structures, along with +user-defined operators, much as in C++. By default, structure members +are `public' (may be read and modified anywhere in the code), but may be +optionally declared `restricted' (readable anywhere but writeable only +inside the structure where they are defined) or `private' (readable and +writable only inside the structure). In a structure definition, the +keyword `this' can be used as an expression to refer to the enclosing +structure. Any code at the top-level scope within the structure is +executed on initialization. + + Variables hold references to structures. That is, in the example: +struct T { + int x; +} + +T foo=new T; +T bar=foo; +bar.x=5; + + The variable `foo' holds a reference to an instance of the structure +`T'. When `bar' is assigned the value of `foo', it too now holds a +reference to the same instance as `foo' does. The assignment `bar.x=5' +changes the value of the field `x' in that instance, so that `foo.x' +will also be equal to `5'. + + The expression `new T' creates a new instance of the structure `T' +and returns a reference to that instance. In creating the new +instance, any code in the body of the record definition is executed. +For example: +int Tcount=0; +struct T { + int x; + ++Tcount; +} + +T foo=new T; + + Here, the expression `new T' will produce a new instance of the +class, but will also cause `Tcount' to be incremented, so that it keeps +track of the number of instances produced. + + The expression `null' can be cast to any structure type to yield a +null reference, a reference that does not actually refer to any +instance of the structure. Trying to use a field of a null reference +will cause an error. + + The function `bool alias(T,T)' checks to see if two structure +references refer to the same instance of the structure (or both to +`null'). For example, in the example code at the start of the section, +`alias(foo,bar)' would return true, but `alias(foo,new T)' would return +false, as `new T' creates a new instance of the structure `T'. The +boolean operators `==' and `!=' are by default equivalent to `alias' and +`!alias' respectively, but may be overwritten for a particular type +(for example, to do a deep comparison). + + After the definition of a structure `T', a variable of type `T' is +initialized to a new instance (`new T') by default. During the +definition of the structure, however, variables of type `T' are +initialized to `null' by default. This special behaviour is to avoid +infinite recursion of creating new instances in code such as +struct tree { + int value; + tree left; + tree right; +} + + Here is a simple example that illustrates the use of structures: +struct S { + real a=1; + real f(real a) {return a+this.a;} +} + +S s; // Initializes s with new S; + +write(s.f(2)); // Outputs 3 + +S operator + (S s1, S s2) +{ + S result; + result.a=s1.a+s2.a; + return result; +} + +write((s+s).f(0)); // Outputs 2 + + It is often convenient to have functions that construct new +instances of a structure. Say we have a `Person' structure: +struct Person { + string firstname; + string lastname; +} + +Person joe=new Person; +joe.firstname="Joe"; +joe.lastname="Jones"; + Creating a new Person is a chore; it takes three lines to create a new +instance and to initialize its fields (that's still considerably less +effort than creating a new person in real life, though). + + We can reduce the work by defining a constructor function +`Person(string,string)': +struct Person { + string firstname; + string lastname; + + static Person Person(string firstname, string lastname) { + Person p=new Person; + p.firstname=firstname; + p.lastname=lastname; + return p; + } +} + +Person joe=Person.Person("Joe", "Jones"); + + While it is now easier than before to create a new instance, we still +have to refer to the constructor by the qualified name `Person.Person'. +If we add the line +from Person unravel Person; + immediately after the structure definition, then the constructor can +be used without qualification: `Person joe=Person("Joe", "Jones");'. + + The constructor is now easy to use, but it is quite a hassle to +define. If you write a lot of constructors, you will find that you are +repeating a lot of code in each of them. Fortunately, your friendly +neighbourhood Asymptote developers have devised a way to automate much +of the process. + + If, in the body of a structure, Asymptote encounters the definition +of a function of the form `void operator init(ARGS)', it implicitly +defines a constructor function of the arguments `ARGS' that uses the +`void operator init' function to initialize a new instance of the +structure. That is, it essentially defines the following constructor +(assuming the structure is called `Foo'): + + static Foo Foo(ARGS) { + Foo instance=new Foo; + instance.operator init(ARGS); + return instance; + } + + This constructor is also implicitly copied to the enclosing scope +after the end of the structure definition, so that it can used +subsequently without qualifying it by the structure name. Our `Person' +example can thus be implemented as: +struct Person { + string firstname; + string lastname; + + void operator init(string firstname, string lastname) { + this.firstname=firstname; + this.lastname=lastname; + } +} + +Person joe=Person("Joe", "Jones"); + + The use of `operator init' to implicitly define constructors should +not be confused with its use to define default values for variables +(*note Variable initializers::). Indeed, in the first case, the return +type of the `operator init' must be `void' while in the second, it must +be the (non-`void') type of the variable. + + The function `cputime()' returns a structure `cputime' with +cumulative CPU times broken down into the fields `parent.user', +`parent.system', `child.user', and `child.system'. For convenience, the +incremental fields `change.user' and `change.system' indicate the +change in the corresponding total parent and child CPU times since the +last call to `cputime()'. The function +void write(file file=stdout, string s="", cputime c, + string format=cputimeformat, suffix suffix=none); + displays the incremental user cputime followed by "u", the incremental +system cputime followed by "s", the total user cputime followed by "U", +and the total system cputime followed by "S". + + Much like in C++, casting (*note Casts::) provides for an elegant +implementation of structure inheritance, including virtual functions: +struct parent { + real x; + void operator init(int x) {this.x=x;} + void virtual(int) {write(0);} + void f() {virtual(1);} +} + +void write(parent p) {write(p.x);} + +struct child { + parent parent; + real y=3; + void operator init(int x) {parent.operator init(x);} + void virtual(int x) {write(x);} + parent.virtual=virtual; + void f()=parent.f; +} + +parent operator cast(child child) {return child.parent;} + +parent p=parent(1); +child c=child(2); + +write(c); // Outputs 2; + +p.f(); // Outputs 0; +c.f(); // Outputs 1; + +write(c.parent.x); // Outputs 2; +write(c.y); // Outputs 3; + + For further examples of structures, see `Legend' and `picture' in +the `Asymptote' base module `plain'. + + +File: asymptote.info, Node: Operators, Next: Implicit scaling, Prev: Structures, Up: Programming + +6.9 Operators +============= + +* Menu: + +* Arithmetic & logical:: Basic mathematical operators +* Self & prefix operators:: Increment and decrement +* User-defined operators:: Overloading operators + + +File: asymptote.info, Node: Arithmetic & logical, Next: Self & prefix operators, Up: Operators + +6.9.1 Arithmetic & logical operators +------------------------------------ + +`Asymptote' uses the standard binary arithmetic operators. However, +when one integer is divided by another, both arguments are converted to +real values before dividing and a real quotient is returned (since this +is usually what is intended). The function `int quotient(int x, int y)' +returns the greatest integer less than or equal to `x/y'. In all other +cases both operands are promoted to the same type, which will also be +the type of the result: +`+' + addition + +`-' + subtraction + +`*' + multiplication + +`/' + division + +`%' + modulo; the result always has the same sign as the divisor. In + particular, this makes `q*quotient(p,q)+p%q == p' for all integers + `p' and nonzero integers `q'. + +`^' + power; if the exponent (second argument) is an int, recursive + multiplication is used; otherwise, logarithms and exponentials are + used (`**' is a synonym for `^'). + + + The usual boolean operators are also defined: +`==' + equals + +`!=' + not equals + +`<' + less than + +`<=' + less than or equals + +`>=' + greater than or equals + +`>' + greater than + +`&&' + and (with conditional evaluation of right-hand argument) + +`&' + and + +`||' + or (with conditional evaluation of right-hand argument) + +`|' + or + +`^' + xor + +`!' + not + + `Asymptote' also supports the C-like conditional syntax: +bool positive=(pi > 0) ? true : false; + + The function `T interp(T a, T b, real t)' returns `(1-t)*a+t*b' for +nonintegral built-in arithmetic types `T'. If `a' and `b' are pens, +they are first promoted to the same color space. + + `Asymptote' also defines bitwise functions `int AND(int,int)', `int +OR(int,int)', `int XOR(int,int)', `int NOT(int)', `int CLZ(int)' (count +leading zeros), and `int CTZ(int)' (count trailing zeros). + + +File: asymptote.info, Node: Self & prefix operators, Next: User-defined operators, Prev: Arithmetic & logical, Up: Operators + +6.9.2 Self & prefix operators +----------------------------- + +As in C, each of the arithmetic operators `+', `-', `*', `/', `%', and +`^' can be used as a self operator. The prefix operators `++' +(increment by one) and `--' (decrement by one) are also defined. For +example, +int i=1; +i += 2; +int j=++i; + +is equivalent to the code +int i=1; +i=i+2; +int j=i=i+1; + + However, postfix operators like `i++' and `i--' are not defined +(because of the inherent ambiguities that would arise with the `--' +path-joining operator). In the rare instances where `i++' and `i--' are +really needed, one can substitute the expressions `(++i-1)' and +`(--i+1)', respectively. + + +File: asymptote.info, Node: User-defined operators, Prev: Self & prefix operators, Up: Operators + +6.9.3 User-defined operators +---------------------------- + +The following symbols may be used with `operator' to define or redefine +operators on structures and built-in types: +- + * / % ^ ! < > == != <= >= & | ^^ .. :: -- --- ++ +<< >> $ $$ @ @@ + The operators on the second line have precedence one higher than the +boolean operators `<', `>', `<=', and `>='. + + Guide operators like `..' may be overloaded, say, to write a user +function that produces a new guide from a given guide: +guide dots(... guide[] g)=operator ..; + +guide operator ..(... guide[] g) { + guide G; + if(g.length > 0) { + write(g[0]); + G=g[0]; + } + for(int i=1; i < g.length; ++i) { + write(g[i]); + write(); + G=dots(G,g[i]); + } + return G; +} + +guide g=(0,0){up}..{SW}(100,100){NE}..{curl 3}(50,50)..(10,10); +write("g=",g); + + +File: asymptote.info, Node: Implicit scaling, Next: Functions, Prev: Operators, Up: Programming + +6.10 Implicit scaling +===================== + +If a numeric literal is in front of certain types of expressions, then +the two are multiplied: +int x=2; +real y=2.0; +real cm=72/2.540005; + +write(3x); +write(2.5x); +write(3y); +write(-1.602e-19 y); +write(0.5(x,y)); +write(2x^2); +write(3x+2y); +write(3(x+2y)); +write(3sin(x)); +write(3(sin(x))^2); +write(10cm); + + This produces the output +6 +5 +6 +-3.204e-19 +(1,1) +8 +10 +18 +2.72789228047704 +2.48046543129542 +283.464008929116 + + +File: asymptote.info, Node: Functions, Next: Arrays, Prev: Implicit scaling, Up: Programming + +6.11 Functions +============== + +`Asymptote' functions are treated as variables with a signature +(non-function variables have null signatures). Variables with the same +name are allowed, so long as they have distinct signatures. + + Functions arguments are passed by value. To pass an argument by +reference, simply enclose it in a structure (*note Structures::). + + Here are some significant features of `Asymptote' functions: + + 1. Variables with signatures (functions) and without signatures + (nonfunction variables) are distinct: int x, x(); + x=5; + x=new int() {return 17;}; + x=x(); // calls x() and puts the result, 17, in the scalar x + + 2. Traditional function definitions are allowed: int sqr(int x) + { + return x*x; + } + sqr=null; // but the function is still just a variable. + + 3. Casting can be used to resolve ambiguities: int a, a(), b, b(); // Valid: creates four variables. + a=b; // Invalid: assignment is ambiguous. + a=(int) b; // Valid: resolves ambiguity. + (int) (a=b); // Valid: resolves ambiguity. + (int) a=b; // Invalid: cast expressions cannot be L-values. + + int c(); + c=a; // Valid: only one possible assignment. + + 4. Anonymous (so-called "high-order") functions are also allowed: typedef int intop(int); + intop adder(int m) + { + return new int(int n) {return m+n;}; + } + intop addby7=adder(7); + write(addby7(1)); // Writes 8. + + 5. One may redefine a function `f', even for calls to `f' in + previously declared functions, by assigning another (anonymous or + named) function to it. However, if `f' is overloaded by a new + function definition, previous calls will still access the original + version of `f', as illustrated in this example: void f() { + write("hi"); + } + + void g() { + f(); + } + + g(); // writes "hi" + + f=new void() {write("bye");}; + + g(); // writes "bye" + + void f() {write("overloaded");}; + + f(); // writes "overloaded" + g(); // writes "bye" + + 6. Anonymous functions can be used to redefine a function variable + that has been declared (and implicitly initialized to the null + function) but not yet explicitly defined: void f(bool b); + + void g(bool b) { + if(b) f(b); + else write(b); + } + + f=new void(bool b) { + write(b); + g(false); + }; + + g(true); // Writes true, then writes false. + + + `Asymptote' is the only language we know of that treats functions as +variables, but allows overloading by distinguishing variables based on +their signatures. + + Functions are allowed to call themselves recursively. As in C++, +infinite nested recursion will generate a stack overflow (reported as a +segmentation fault, unless a fully working version of the GNU library +`libsigsegv' (e.g. 2.4 or later) is installed at configuration time). + +* Menu: + +* Default arguments:: Default values can appear anywhere +* Named arguments:: Assigning function arguments by keyword +* Rest arguments:: Functions with a variable number of arguments +* Mathematical functions:: Standard libm functions + + +File: asymptote.info, Node: Default arguments, Next: Named arguments, Up: Functions + +6.11.1 Default arguments +------------------------ + +`Asymptote' supports a more flexible mechanism for default function +arguments than C++: they may appear anywhere in the function prototype. +Because certain data types are implicitly cast to more sophisticated +types (*note Casts::) one can often avoid ambiguities by ordering +function arguments from the simplest to the most complicated. For +example, given +real f(int a=1, real b=0) {return a+b;} + then `f(1)' returns 1.0, but `f(1.0)' returns 2.0. + + The value of a default argument is determined by evaluating the +given `Asymptote' expression in the scope where the called function is +defined. + + +File: asymptote.info, Node: Named arguments, Next: Rest arguments, Prev: Default arguments, Up: Functions + +6.11.2 Named arguments +---------------------- + +It is sometimes difficult to remember the order in which arguments +appear in a function declaration. Named (keyword) arguments make calling +functions with multiple arguments easier. Unlike in the C and C++ +languages, an assignment in a function argument is interpreted as an +assignment to a parameter of the same name in the function signature, +_not within the local scope_. The command-line option `-d' may be used +to check `Asymptote' code for cases where a named argument may be +mistaken for a local assignment. + + When matching arguments to signatures, first all of the keywords are +matched, then the arguments without names are matched against the +unmatched formals as usual. For example, +int f(int x, int y) { + return 10x+y; +} +write(f(4,x=3)); + outputs 34, as `x' is already matched when we try to match the unnamed +argument `4', so it gets matched to the next item, `y'. + + For the rare occasions where it is desirable to assign a value to +local variable within a function argument (generally _not_ a good +programming practice), simply enclose the assignment in parentheses. +For example, given the definition of `f' in the previous example, +int x; +write(f(4,(x=3))); + is equivalent to the statements +int x; +x=3; +write(f(4,3)); + and outputs 43. + + Parameters can be specified as "keyword-only" by putting `keyword' +immediately before the parameter name, as in `int f(int keyword x)' or +`int f(int keyword x=77)'. This forces the caller of the function to +use a named argument to give a value for this parameter. That is, +`f(x=42)' is legal, but `f(25)' is not. Keyword-only parameters must +be listed after normal parameters in a function definition. + + As a technical detail, we point out that, since variables of the same +name but different signatures are allowed in the same scope, the code +int f(int x, int x()) { + return x+x(); +} +int seven() {return 7;} + is legal in `Asymptote', with `f(2,seven)' returning 9. A named +argument matches the first unmatched formal of the same name, so +`f(x=2,x=seven)' is an equivalent call, but `f(x=seven,2)' is not, as +the first argument is matched to the first formal, and `int ()' cannot +be implicitly cast to `int'. Default arguments do not affect which +formal a named argument is matched to, so if `f' were defined as +int f(int x=3, int x()) { + return x+x(); +} + then `f(x=seven)' would be illegal, even though `f(seven)' obviously +would be allowed. + + +File: asymptote.info, Node: Rest arguments, Next: Mathematical functions, Prev: Named arguments, Up: Functions + +6.11.3 Rest arguments +--------------------- + +Rest arguments allow one to write functions that take a variable number +of arguments: +// This function sums its arguments. +int sum(... int[] nums) { + int total=0; + for(int i=0; i < nums.length; ++i) + total += nums[i]; + return total; +} + +sum(1,2,3,4); // returns 10 +sum(); // returns 0 + +// This function subtracts subsequent arguments from the first. +int subtract(int start ... int[] subs) { + for(int i=0; i < subs.length; ++i) + start -= subs[i]; + return start; +} + +subtract(10,1,2); // returns 7 +subtract(10); // returns 10 +subtract(); // illegal + + Putting an argument into a rest array is called _packing_. One can +give an explicit list of arguments for the rest argument, so `subtract' +could alternatively be implemented as +int subtract(int start ... int[] subs) { + return start - sum(... subs); +} + + One can even combine normal arguments with rest arguments: +sum(1,2,3 ... new int[] {4,5,6}); // returns 21 + This builds a new six-element array that is passed to `sum' as `nums'. +The opposite operation, _unpacking_, is not allowed: +subtract(... new int[] {10, 1, 2}); + is illegal, as the start formal is not matched. + + If no arguments are packed, then a zero-length array (as opposed to +`null') is bound to the rest parameter. Note that default arguments are +ignored for rest formals and the rest argument is not bound to a +keyword. + + In some cases, keyword-only parameters are helpful to avoid +arguments intended for the rest parameter to be assigned to other +parameters. For example, here the use of `keyword' is to avoid +`pnorm(1.0,2.0,0.3)' matching `1.0' to `p'. +real pnorm(real keyword p=2.0 ... real[] v) +{ + return sum(v^p)^(1/p); +} + + The overloading resolution in `Asymptote' is similar to the function +matching rules used in C++. Every argument match is given a score. +Exact matches score better than matches with casting, and matches with +formals (regardless of casting) score better than packing an argument +into the rest array. A candidate is maximal if all of the arguments +score as well in it as with any other candidate. If there is one +unique maximal candidate, it is chosen; otherwise, there is an +ambiguity error. + +int f(path g); +int f(guide g); +f((0,0)--(100,100)); // matches the second; the argument is a guide + +int g(int x, real y); +int g(real x, int x); + +g(3,4); // ambiguous; the first candidate is better for the first argument, + // but the second candidate is better for the second argument + +int h(... int[] rest); +int h(real x ... int[] rest); + +h(1,2); // the second definition matches, even though there is a cast, + // because casting is preferred over packing + +int i(int x ... int[] rest); +int i(real x, real y ... int[] rest); + +i(3,4); // ambiguous; the first candidate is better for the first argument, + // but the second candidate is better for the second one + + +File: asymptote.info, Node: Mathematical functions, Prev: Rest arguments, Up: Functions + +6.11.4 Mathematical functions +----------------------------- + +`Asymptote' has built-in versions of the standard `libm' mathematical +real(real) functions `sin', `cos', `tan', `asin', `acos', `atan', +`exp', `log', `pow10', `log10', `sinh', `cosh', `tanh', `asinh', +`acosh', `atanh', `sqrt', `cbrt', `fabs', `expm1', `log1p', as well as +the identity function `identity'. `Asymptote' also defines the order +`n' Bessel functions of the first kind `Jn(int n, real)' and second kind +`Yn(int n, real)', as well as the gamma function `gamma', the error +function `erf', and the complementary error function `erfc'. The +standard real(real, real) functions `atan2', `hypot', `fmod', +`remainder' are also included. + + The functions `degrees(real radians)' and `radians(real degrees)' +can be used to convert between radians and degrees. The function +`Degrees(real radians)' returns the angle in degrees in the interval +[0,360). For convenience, `Asymptote' defines variants `Sin', `Cos', +`Tan', `aSin', `aCos', and `aTan' of the standard trigonometric +functions that use degrees rather than radians. We also define complex +versions of the `sqrt', `sin', `cos', `exp', `log', and `gamma' +functions. + + The functions `floor', `ceil', and `round' differ from their usual +definitions in that they all return an int value rather than a real +(since that is normally what one wants). The functions `Floor', +`Ceil', and `Round' are respectively similar, except that if the result +cannot be converted to a valid int, they return `intMax' for positive +arguments and `intMin' for negative arguments, rather than generating +an integer overflow. We also define a function `sgn', which returns +the sign of its real argument as an integer (-1, 0, or 1). + + There is an `abs(int)' function, as well as an `abs(real)' function +(equivalent to `fabs(real)'), an `abs(pair)' function (equivalent to +`length(pair)'). + + Random numbers can be seeded with `srand(int)' and generated with +the `int rand()' function, which returns a random integer between 0 and +the integer `randMax'. The `unitrand()' function returns a random +number uniformly distributed in the interval [0,1]. A Gaussian random +number generator `Gaussrand' and a collection of statistics routines, +including `histogram', are provided in the base file `stats.asy'. The +functions `factorial(int n)', which returns n!, and `choose(int n, int +k)', which returns n!/(k!(n-k)!), are also defined. + + When configured with the GNU Scientific Library (GSL), available from +`http://www.gnu.org/software/gsl/', `Asymptote' contains an internal +module `gsl' that defines the airy functions `Ai(real)', `Bi(real)', +`Ai_deriv(real)', `Bi_deriv(real)', `zero_Ai(int)', `zero_Bi(int)', +`zero_Ai_deriv(int)', `zero_Bi_deriv(int)', the Bessel functions +`I(int, real)', `K(int, real)', `j(int, real)', `y(int, real)', +`i_scaled(int, real)', `k_scaled(int, real)', `J(real, real)', `Y(real, +real)', `I(real, real)', `K(real, real)', `zero_J(real, int)', the +elliptic functions `F(real, real)', `E(real, real)', and `P(real, +real)', the Jacobi elliptic functions `real[] sndncn(real,real)', the +exponential/trigonometric integrals `Ei', `Si', and `Ci', the Legendre +polynomials `Pl(int, real)', and the Riemann zeta function +`zeta(real)'. For example, to compute the sine integral `Si' of 1.0: +import gsl; +write(Si(1.0)); + + `Asymptote' also provides a few general purpose numerical routines: + +``real newton(int iterations=100, real f(real), real fprime(real), real x, bool verbose=false);'' + Use Newton-Raphson iteration to solve for a root of a real-valued + differentiable function `f', given its derivative `fprime' and an + initial guess `x'. Diagnostics for each iteration are printed if + `verbose=true'. If the iteration fails after the maximum allowed + number of loops (`iterations'), `realMax' is returned. + +``real newton(int iterations=100, real f(real), real fprime(real), real x1, real x2, bool verbose=false);'' + Use bracketed Newton-Raphson bisection to solve for a root of a + real-valued differentiable function `f' within an interval + [`x1',`x2'] (on which the endpoint values of `f' have opposite + signs), given its derivative `fprime'. Diagnostics for each + iteration are printed if `verbose=true'. If the iteration fails + after the maximum allowed number of loops (`iterations'), + `realMax' is returned. + +``real simpson(real f(real), real a, real b, real acc=realEpsilon, real dxmax=b-a)'' + returns the integral of `f' from `a' to `b' using adaptive Simpson + integration. + + + +File: asymptote.info, Node: Arrays, Next: Casts, Prev: Functions, Up: Programming + +6.12 Arrays +=========== + +* Menu: + +* Slices:: Python-style array slices + + Appending `[]' to a built-in or user-defined type yields an array. +The array element `i' of an array `A' can be accessed as `A[i]'. By +default, attempts to access or assign to an array element using a +negative index generates an error. Reading an array element with an +index beyond the length of the array also generates an error; however, +assignment to an element beyond the length of the array causes the +array to be resized to accommodate the new element. One can also index +an array `A' with an integer array `B': the array `A[B]' is formed by +indexing array `A' with successive elements of array `B'. A convenient +Java-style shorthand exists for iterating over all elements of an +array; see *note array iteration::. + + The declaration +real[] A; + +initializes `A' to be an empty (zero-length) array. Empty arrays should +be distinguished from null arrays. If we say +real[] A=null; + +then `A' cannot be dereferenced at all (null arrays have no length and +cannot be read from or assigned to). + + Arrays can be explicitly initialized like this: +real[] A={0,1,2}; + + Array assignment in `Asymptote' does a shallow copy: only the +pointer is copied (if one copy if modified, the other will be too). +The `copy' function listed below provides a deep copy of an array. + + Every array `A' of type `T[]' has the virtual members + * `int length', + + * `int cyclic', + + * `int[] keys', + + * `T push(T x)', + + * `void append(T[] a)', + + * `T pop()', + + * `void insert(int i ... T[] x)', + + * `void delete(int i, int j=i)', + + * `void delete()', and + + * `bool initialized(int n)'. + + The member `A.length' evaluates to the length of the array. Setting +`A.cyclic=true' signifies that array indices should be reduced modulo +the current array length. Reading from or writing to a nonempty cyclic +array never leads to out-of-bounds errors or array resizing. + + The member `A.keys' evaluates to an array of integers containing the +indices of initialized entries in the array in ascending order. Hence, +for an array of length `n' with all entries initialized, `A.keys' +evaluates to `{0,1,...,n-1}'. A new keys array is produced each time +`A.keys' is evaluated. + + The functions `A.push' and `A.append' append their arguments onto +the end of the array, while `A.insert(int i ... T[] x)' inserts `x' +into the array at index `i'. For convenience `A.push' returns the +pushed item. The function `A.pop()' pops and returns the last element, +while `A.delete(int i, int j=i)' deletes elements with indices in the +range [`i',`j'], shifting the position of all higher-indexed elements +down. If no arguments are given, `A.delete()' provides a convenient way +of deleting all elements of `A'. The routine `A.initialized(int n)' can +be used to examine whether the element at index `n' is initialized. +Like all `Asymptote' functions, `push', `append', `pop', `insert', +`delete', and `initialized' can be "pulled off" of the array and used +on their own. For example, +int[] A={1}; +A.push(2); // A now contains {1,2}. +A.append(A); // A now contains {1,2,1,2}. +int f(int)=A.push; +f(3); // A now contains {1,2,1,2,3}. +int g()=A.pop; +write(g()); // Outputs 3. +A.delete(0); // A now contains {2,1,2}. +A.delete(0,1); // A now contains {2}. +A.insert(1,3); // A now contains {2,3}. +A.insert(1 ... A); // A now contains {2,2,3,3} +A.insert(2,4,5); // A now contains {2,2,4,5,3,3}. + + The `[]' suffix can also appear after the variable name; this is +sometimes convenient for declaring a list of variables and arrays of +the same type: +real a,A[]; + This declares `a' to be `real' and implicitly declares `A' to be of +type `real[]'. + + In the following list of built-in array functions, `T' represents a +generic type. Note that the internal functions `alias', `array', +`copy', `concat', `sequence', `map', and `transpose', which depend on +type `T[]', are defined only after the first declaration of a variable +of type `T[]'. + +`new T[]' + returns a new empty array of type `T[]'; + +`new T[] {list}' + returns a new array of type `T[]' initialized with `list' (a comma + delimited list of elements). + +`new T[n]' + returns a new array of `n' elements of type `T[]'. These `n' + array elements are not initialized unless they are arrays + themselves (in which case they are each initialized to empty + arrays). + +`T[] array(int n, T value, int depth=intMax)' + returns an array consisting of `n' copies of `value'. If `value' + is itself an array, a deep copy of `value' is made for each entry. + If `depth' is specified, this deep copying only recurses to the + specified number of levels. + +`int[] sequence(int n)' + if `n >= 1' returns the array `{0,1,...,n-1}' (otherwise returns a + null array); + +`int[] sequence(int n, int m)' + if `m >= n' returns an array `{n,n+1,...,m}' (otherwise returns a + null array); + +`T[] sequence(T f(int), int n)' + if `n >= 1' returns the sequence `{f_i :i=0,1,...n-1}' given a + function `T f(int)' and integer `int n' (otherwise returns a null + array); + +`T[] map(T f(T), T[] a)' + returns the array obtained by applying the function `f' to each + element of the array `a'. This is equivalent to `sequence(new + T(int i) {return f(a[i]);},a.length)'. + +`int[] reverse(int n)' + if `n >= 1' returns the array `{n-1,n-2,...,0}' (otherwise returns + a null array); + +`int[] complement(int[] a, int n)' + returns the complement of the integer array `a' in + `{0,1,2,...,n-1}', so that `b[complement(a,b.length)]' yields the + complement of `b[a]'. + +`real[] uniform(real a, real b, int n)' + if `n >= 1' returns a uniform partition of `[a,b]' into `n' + subintervals (otherwise returns a null array); + +`int find(bool[], int n=1)' + returns the index of the `n'th `true' value or -1 if not found. + If `n' is negative, search backwards from the end of the array for + the `-n'th value; + +`int search(T[] a, T key)' + For built-in ordered types `T', searches a sorted array `a' of `n' + elements for k, returning the index `i' if `a[i] <= key < a[i+1]', + `-1' if `key' is less than all elements of `a', or `n-1' if `key' + is greater than or equal to the last element of `a'. + +`int search(T[] a, T key, bool less(T i, T j))' + searches an array `a' sorted in ascending order such that element + `i' precedes element `j' if `less(i,j)' is true; + +`T[] copy(T[] a)' + returns a deep copy of the array `a'; + +`T[] concat(... T[][] a)' + returns a new array formed by concatenating the given + one-dimensional arrays given as arguments; + +`bool alias(T[] a, T[] b)' + returns `true' if the arrays `a' and `b' are identical; + +`T[] sort(T[] a)' + For built-in ordered types `T', returns a copy of `a' sorted in + ascending order; + +`T[][] sort(T[][] a)' + For built-in ordered types `T', returns a copy of `a' with the rows + sorted by the first column, breaking ties with successively higher + columns. For example: string[][] a={{"bob","9"},{"alice","5"},{"pete","7"}, + {"alice","4"}}; + // Row sort (by column 0, using column 1 to break ties): + write(sort(a)); + + produces alice 4 + alice 5 + bob 9 + pete 7 + +`T[] sort(T[] a, bool less(T i, T j))' + returns a copy of `a' stably sorted in ascending order such that + element `i' precedes element `j' if `less(i,j)' is true. + +`T[][] transpose(T[][] a)' + returns the transpose of `a'. + +`T[][][] transpose(T[][][] a, int[] perm)' + returns the 3D transpose of `a' obtained by applying the + permutation `perm' of `new int[]{0,1,2}' to the indices of each + entry. + +`T sum(T[] a)' + For arithmetic types `T', returns the sum of `a'. In the case + where `T' is `bool', the number of true elements in `a' is + returned. + +`T min(T[] a)' + +`T min(T[][] a)' + +`T min(T[][][] a)' + For built-in ordered types `T', returns the minimum element of `a'. + +`T max(T[] a)' + +`T max(T[][] a)' + +`T max(T[][][] a)' + For built-in ordered types `T', returns the maximum element of `a'. + +`T[] min(T[] a, T[] b)' + For built-in ordered types `T', and arrays `a' and `b' of the same + length, returns an array composed of the minimum of the + corresponding elements of `a' and `b'. + +`T[] max(T[] a, T[] b)' + For built-in ordered types `T', and arrays `a' and `b' of the same + length, returns an array composed of the maximum of the + corresponding elements of `a' and `b'. + +`pair[] pairs(real[] x, real[] y);' + For arrays `x' and `y' of the same length, returns the pair array + `sequence(new pair(int i) {return (x[i],y[i]);},x.length)'. + +`pair[] fft(pair[] a, int sign=1)' + returns the Fast Fourier Transform of `a' (if the optional `FFTW' + package is installed), using the given `sign'. Here is a simple + example: int n=4; + pair[] f=sequence(n); + write(f); + pair[] g=fft(f,-1); + write(); + write(g); + f=fft(g,1); + write(); + write(f/n); + +`real dot(real[] a, real[] b)' + returns the dot product of the vectors `a' and `b'. + +`pair dot(pair[] a, pair[] b)' + returns the complex dot product `sum(a*conj(b))' of the vectors + `a' and `b'. + +`real[] tridiagonal(real[] a, real[] b, real[] c, real[] f);' + Solve the periodic tridiagonal problem L`x'=`f' and return the + solution `x', where `f' is an n vector and L is the n \times n + matrix [ b[0] c[0] a[0] ] + [ a[1] b[1] c[1] ] + [ a[2] b[2] c[2] ] + [ ... ] + [ c[n-1] a[n-1] b[n-1] ] + For Dirichlet boundary conditions (denoted here by `u[-1]' and + `u[n]'), replace `f[0]' by `f[0]-a[0]u[-1]' and + `f[n-1]-c[n-1]u[n]'; then set `a[0]=c[n-1]=0'. + +`real[] solve(real[][] a, real[] b, bool warn=true)' + Solve the linear equation `a'x=`b' by LU decomposition and return + the solution x, where `a' is an n \times n matrix and `b' is an + array of length n. For example: import math; + real[][] a={{1,-2,3,0},{4,-5,6,2},{-7,-8,10,5},{1,50,1,-2}}; + real[] b={7,19,33,3}; + real[] x=solve(a,b); + write(a); write(); + write(b); write(); + write(x); write(); + write(a*x); + If `a' is a singular matrix and `warn' is `false', return an + empty array. If the matrix `a' is tridiagonal, the routine + `tridiagonal' provides a more efficient algorithm (*note + tridiagonal::). + +`real[][] solve(real[][] a, real[][] b, bool warn=true)' + Solve the linear equation `a'x=`b' and return the solution x, + where `a' is an n \times n matrix and `b' is an n \times m matrix. + If `a' is a singular matrix and `warn' is `false', return an empty + matrix. + +`real[][] identity(int n);' + returns the n \times n identity matrix. + +`real[][] diagonal(... real[] a)' + returns the diagonal matrix with diagonal entries given by a. + +`real[][] inverse(real[][] a)' + returns the inverse of a square matrix `a'. + +``real[] quadraticroots(real a, real b, real c);'' + This numerically robust solver returns the real roots of the + quadratic equation ax^2+bx+c=0, in ascending order. Multiple roots + are listed separately. + +``pair[] quadraticroots(explicit pair a, explicit pair b, explicit pair c);'' + This numerically robust solver returns the complex roots of the + quadratic equation ax^2+bx+c=0. + +``real[] cubicroots(real a, real b, real c, real d);'' + This numerically robust solver returns the real roots of the cubic + equation ax^3+bx^2+cx+d=0. Multiple roots are listed separately. + + + `Asymptote' includes a full set of vectorized array instructions for +arithmetic (including self) and logical operations. These +element-by-element instructions are implemented in C++ code for speed. +Given +real[] a={1,2}; +real[] b={3,2}; + then `a == b' and `a >= 2' both evaluate to the vector `{false, true}'. To +test whether all components of `a' and `b' agree, use the boolean +function `all(a == b)'. One can also use conditionals like `(a >= 2) ? +a : b', which returns the array `{3,2}', or `write((a >= 2) ? a : +null', which returns the array `{2}'. + + All of the standard built-in `libm' functions of signature +`real(real)' also take a real array as an argument, effectively like an +implicit call to `map'. + + As with other built-in types, arrays of the basic data types can be +read in by assignment. In this example, the code +file fin=input("test.txt"); +real[] A=fin; + +reads real values into `A' until the end-of-file is reached (or an I/O +error occurs). + + The virtual members `dimension', `line', `csv', `word', and `read' +of a file are useful for reading arrays. For example, if line mode is +set with `file line(bool b=true)', then reading will stop once the end +of the line is reached instead +file fin=input("test.txt"); +real[] A=fin.line(); + + Since string reads by default read up to the end of line anyway, +line mode normally has no effect on string array reads. However, there +is a white-space delimiter mode for reading strings, `file word(bool +b=true)', which causes string reads to respect white-space delimiters, +instead of the default end-of-line delimiter: +file fin=input("test.txt").line().word(); +real[] A=fin; + + Another useful mode is comma-separated-value mode, `file csv(bool +b=true)', which causes reads to respect comma delimiters: +file fin=csv(input("test.txt")); +real[] A=fin; + + To restrict the number of values read, use the `file dimension(int)' +function: +file fin=input("test.txt"); +real[] A=dimension(fin,10); + + This reads 10 values into A, unless end-of-file (or end-of-line in +line mode) occurs first. Attempting to read beyond the end of the file +will produce a runtime error message. Specifying a value of 0 for the +integer limit is equivalent to the previous example of reading until +end-of-file (or end-of-line in line mode) is encountered. + + Two- and three-dimensional arrays of the basic data types can be read +in like this: +file fin=input("test.txt"); +real[][] A=fin.dimension(2,3); +real[][][] B=fin.dimension(2,3,4); + Again, an integer limit of zero means no restriction. + + Sometimes the array dimensions are stored with the data as integer +fields at the beginning of an array. Such 1, 2, or 3 dimensional arrays +can be read in with the virtual member functions `read(1)', `read(2)', +or `read(3)', respectively: +file fin=input("test.txt"); +real[] A=fin.read(1); +real[][] B=fin.read(2); +real[][][] C=fin.read(3); + + One, two, and three-dimensional arrays of the basic data types can be +output with the functions `write(file,T[])', `write(file,T[][])', +`write(file,T[][][])', respectively. + + +File: asymptote.info, Node: Slices, Up: Arrays + +6.12.1 Slices +------------- + +Asymptote allows a section of an array to be addressed as a slice using +a Python-like syntax. If `A' is an array, the expression `A[m:n]' +returns a new array consisting of the elements of `A' with indices from +`m' up to but not including `n'. For example, +int[] x={0,1,2,3,4,5,6,7,8,9}; +int[] y=x[2:6]; // y={2,3,4,5}; +int[] z=x[5:10]; // z={5,6,7,8,9}; + + If the left index is omitted, it is taken be `0'. If the right +index is omitted it is taken to be the length of the array. If both +are omitted, the slice then goes from the start of the array to the +end, producing a non-cyclic deep copy of the array. For example: +int[] x={0,1,2,3,4,5,6,7,8,9}; +int[] y=x[:4]; // y={0,1,2,3} +int[] z=x[5:]; // z={5,6,7,8,9} +int[] w=x[:]; // w={0,1,2,3,4,5,6,7,8,9}, distinct from array x. + + If A is a non-cyclic array, it is illegal to use negative values for +either of the indices. If the indices exceed the length of the array, +however, they are politely truncated to that length. + + For cyclic arrays, the slice `A[m:n]' still consists of the cells +with indices in the set [`m',`n'), but now negative values and values +beyond the length of the array are allowed. The indices simply wrap +around. For example: + +int[] x={0,1,2,3,4,5,6,7,8,9}; +x.cyclic=true; +int[] y=x[8:15]; // y={8,9,0,1,2,3,4}. +int[] z=x[-5:5]; // z={5,6,7,8,9,0,1,2,3,4} +int[] w=x[-3:17]; // w={7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6} + + Notice that with cyclic arrays, it is possible to include the same +element of the original array multiple times within a slice. +Regardless of the original array, arrays produced by slices are always +non-cyclic. + + If the left and right indices of a slice are the same, the result is +an empty array. If the array being sliced is empty, the result is an +empty array. Any slice with a left index greater than its right index +will yield an error. + + Slices can also be assigned to, changing the value of the original +array. If the array being assigned to the slice has a different length +than the slice itself, elements will be inserted or removed from the +array to accommodate it. For instance: +string[] toppings={"mayo", "salt", "ham", "lettuce"}; +toppings[0:2]=new string[] {"mustard", "pepper"}; + // Now toppings={"mustard", "pepper", "ham", "lettuce"} +toppings[2:3]=new string[] {"turkey", "bacon" }; + // Now toppings={"mustard", "pepper", "turkey", "bacon", "lettuce"} +toppings[0:3]=new string[] {"tomato"}; + // Now toppings={"tomato", "bacon", "lettuce"} + + If an array is assigned to a slice of itself, a copy of the original +array is assigned to the slice. That is, code such as `x[m:n]=x' is +equivalent to `x[m:n]=copy(x)'. One can use the shorthand `x[m:m]=y' +to insert the contents of the array `y' into the array `x' starting at +the location just before `x[m]'. + + For a cyclic array, a slice is bridging if it addresses cells up to +the end of the array and then continues on to address cells at the +start of the array. For instance, if `A' is a cyclic array of length +10, `A[8:12]', `A[-3:1]', and `A[5:25]' are bridging slices whereas +`A[3:7]', `A[7:10]', `A[-3:0]' and `A[103:107]' are not. Bridging +slices can only be assigned to if the number of elements in the slice +is exactly equal to the number of elements we are assigning to it. +Otherwise, there is no clear way to decide which of the new entries +should be `A[0]' and an error is reported. Non-bridging slices may be +assigned an array of any length. + + For a cyclic array `A' an expression of the form +`A[A.length:A.length]' is equivalent to the expression `A[0:0]' and so +assigning to this slice will insert values at the start of the array. +`A.append()' can be used to insert values at the end of the array. + + It is illegal to assign to a slice of a cyclic array that repeats +any of the cells. + + +File: asymptote.info, Node: Casts, Next: Import, Prev: Arrays, Up: Programming + +6.13 Casts +========== + +`Asymptote' implicitly casts `int' to `real', `int' to `pair', `real' +to `pair', `pair' to `path', `pair' to `guide', `path' to `guide', +`guide' to `path', `real' to `pen', `pair[]' to `guide[]', `pair[]' to +`path[]', `path' to `path[]', and `guide' to `path[]', along with +various three-dimensional casts defined in `three.asy'. Implicit casts +are automatically attempted on assignment and when trying to match +function calls with possible function signatures. Implicit casting can +be inhibited by declaring individual arguments `explicit' in the +function signature, say to avoid an ambiguous function call in the +following example, which outputs 0: +int f(pair a) {return 0;} +int f(explicit real x) {return 1;} + +write(f(0)); + + Other conversions, say `real' to `int' or `real' to `string', +require an explicit cast: +int i=(int) 2.5; +string s=(string) 2.5; + +real[] a={2.5,-3.5}; +int[] b=(int []) a; +write(stdout,b); // Outputs 2,-3 + + Casting to user-defined types is also possible using `operator cast': +struct rpair { + real radius; + real angle; +} + +pair operator cast(rpair x) { + return (x.radius*cos(x.angle),x.radius*sin(x.angle)); +} + +rpair x; +x.radius=1; +x.angle=pi/6; + +write(x); // Outputs (0.866025403784439,0.5) + + One must use care when defining new cast operators. Suppose that in +some code one wants all integers to represent multiples of 100. To +convert them to reals, one would first want to multiply them by 100. +However, the straightforward implementation +real operator cast(int x) {return x*100;} + is equivalent to an infinite recursion, since the result `x*100' needs +itself to be cast from an integer to a real. Instead, we want to use +the standard conversion of int to real: +real convert(int x) {return x*100;} +real operator cast(int x)=convert; + + Explicit casts are implemented similarly, with `operator ecast'. + + +File: asymptote.info, Node: Import, Next: Static, Prev: Casts, Up: Programming + +6.14 Import +=========== + +While `Asymptote' provides many features by default, some applications +require specialized features contained in external `Asymptote' modules. +For instance, the lines +access graph; +graph.axes(); + draw x and y axes on a two-dimensional graph. Here, the command looks +up the module under the name `graph' in a global dictionary of modules +and puts it in a new variable named `graph'. The module is a +structure, and we can refer to its fields as we usually would with a +structure. + + Often, one wants to use module functions without having to specify +the module name. The code +from graph access axes; + adds the `axes' field of `graph' into the local name space, so that +subsequently, one can just write `axes()'. If the given name is +overloaded, all types and variables of that name are added. To add +more than one name, just use a comma-separated list: +from graph access axes, xaxis, yaxis; + Wild card notation can be used to add all non-private fields and types +of a module to the local name space: + +from graph access *; + + Similarly, one can add the non-private fields and types of a +structure to the local environment with the `unravel' keyword: +struct matrix { + real a,b,c,d; +} + +real det(matrix m) { + unravel m; + return a*d-b*c; +} + Alternatively, one can unravel selective fields: +real det(matrix m) { + from m unravel a,b,c as C,d; + return a*d-b*C; +} + + The command +import graph; + is a convenient abbreviation for the commands +access graph; +unravel graph; + That is, `import graph' first loads a module into a structure called +`graph' and then adds its non-private fields and types to the local +environment. This way, if a member variable (or function) is +overwritten with a local variable (or function of the same signature), +the original one can still be accessed by qualifying it with the module +name. + + Wild card importing will work fine in most cases, but one does not +usually know all of the internal types and variables of a module, which +can also change as the module writer adds or changes features of the +module. As such, it is prudent to add `import' commands at the start +of an `Asymptote' file, so that imported names won't shadow locally +defined functions. Still, imported names may shadow other imported +names, depending on the order in which they were imported, and imported +functions may cause overloading resolution problems if they have the +same name as local functions defined later. + + To rename modules or fields when adding them to the local +environment, use `as': +access graph as graph2d; +from graph access xaxis as xline, yaxis as yline; + + The command +import graph as graph2d; + is a convenient abbreviation for the commands +access graph as graph2d; +unravel graph2d; + + Except for a few built-in modules, such as `settings', all modules +are implemented as `Asymptote' files. When looking up a module that +has not yet been loaded, `Asymptote' searches the standard search paths +(*note Search paths::) for the matching file. The file corresponding +to that name is read and the code within it is interpreted as the body +of a structure defining the module. + + If the file name contains nonalphanumeric characters, enclose it +with quotation marks: + +`access "/usr/local/share/asymptote/graph.asy" as graph;' + +`from "/usr/local/share/asymptote/graph.asy" access axes;' + +`import "/usr/local/share/asymptote/graph.asy" as graph;' + + It is an error if modules import themselves (or each other in a +cycle). The module name to be imported must be known at compile time. + + However, you can import an `Asymptote' module determined by the +string `s' at runtime like this: +eval("import "+s,true); + + To conditionally execute an array of asy files, use +void asy(string format, bool overwrite ... string[] s); + The file will only be processed, using output format `format', if +overwrite is `true' or the output file is missing. + + One can evaluate an `Asymptote' expression (without any return +value, however) contained in the string `s' with: +void eval(string s, bool embedded=false); + It is not necessary to terminate the string `s' with a semicolon. If +`embedded' is `true', the string will be evaluated at the top level of +the current environment. If `embedded' is `false' (the default), the +string will be evaluated in an independent environment, sharing the same +`settings' module (*note settings::). + + One can evaluate arbitrary `Asymptote' code (which may contain +unescaped quotation marks) with the command +void eval(code s, bool embedded=false); + Here `code' is a special type used with `quote {}' to enclose +`Asymptote code' like this: +real a=1; +code s=quote { + write(a); +}; +eval(s,true); // Outputs 1 + + To include the contents of an existing file `graph' verbatim (as if +the contents of the file were inserted at that point), use one of the +forms: +include graph; + +`include "/usr/local/share/asymptote/graph.asy";' + + To list all global functions and variables defined in a module named +by the contents of the string `s', use the function +void list(string s, bool imports=false); + Imported global functions and variables are also listed if `imports' +is `true'. + + +File: asymptote.info, Node: Static, Prev: Import, Up: Programming + +6.15 Static +=========== + +Static qualifiers allocate the memory address of a variable in a higher +enclosing level. + + For a function body, the variable is allocated in the block where the +function is defined; so in the code +struct s { + int count() { + static int c=0; + ++c; + return c; + } +} + +there is one instance of the variable `c' for each object `s' (as +opposed to each call of `count'). + + Similarly, in +int factorial(int n) { + int helper(int k) { + static int x=1; + x *= k; + return k == 1 ? x : helper(k-1); + } + return helper(n); +} + +there is one instance of `x' for every call to `factorial' (and not for +every call to `helper'), so this is a correct, but ugly, implementation +of factorial. + + Similarly, a static variable declared within a structure is +allocated in the block where the structure is defined. Thus, +struct A { + struct B { + static pair z; + } +} + +creates one object `z' for each object of type `A' created. + + In this example, +int pow(int n, int k) { + struct A { + static int x=1; + void helper() { + x *= n; + } + } + for(int i=0; i < k; ++i) { + A a; + a.helper(); + } + return A.x; +} + +there is one instance of `x' for each call to `pow', so this is an ugly +implementation of exponentiation. + + Loop constructs allocate a new frame in every iteration. This is so +that higher-order functions can refer to variables of a specific +iteration of a loop: +void f(); +for(int i=0; i < 10; ++i) { + int x=i; + if(x==5) { + f=new void () { write(x); } + } +} +f(); + + Here, every iteration of the loop has its own variable `x', so `f()' +will write `5'. If a variable in a loop is declared static, it will be +allocated where the enclosing function or structure was defined (just +as if it were declared static outside of the loop). For instance, in: +void f() { + static int x; + for(int i=0; i < 10; ++i) { + static int y; + } +} + both `x' and `y' will be allocated in the same place, which is also +where `f' is also allocated. + + Statements may also be declared static, in which case they are run +at the place where the enclosing function or structure is defined. +Declarations or statements not enclosed in a function or structure +definition are already at the top level, so static modifiers are +meaningless. A warning is given in such a case. + + Since structures can have static fields, it is not always clear for +a qualified name whether the qualifier is a variable or a type. For +instance, in: + +struct A { + static int x; +} +pair A; + +int y=A.x; + does the `A' in `A.x' refer to the structure or to the pair variable. +It is the convention in Asymptote that, if there is a non-function +variable with the same name as the qualifier, the qualifier refers to +that variable, and not to the type. This is regardless of what fields +the variable actually possesses. + + +File: asymptote.info, Node: LaTeX usage, Next: Base modules, Prev: Programming, Up: Top + +7 `LaTeX' usage +*************** + +`Asymptote' comes with a convenient `LaTeX' style file `asymptote.sty' +that makes `LaTeX' `Asymptote'-aware. Entering `Asymptote' code +directly into the `LaTeX' source file, at the point where it is needed, +keeps figures organized and avoids the need to invent new file names +for each figure. Simply add the line `\usepackage{asymptote}' at the +beginning of your file and enclose your `Asymptote' code within a +`\begin{asy}...\end{asy}' environment. As with the `LaTeX' `comment' +environment, the `\end{asy}' command must appear on a line by itself, +with no trailing commands/comments. A blank line is not allowed after +`\begin{asy}'. + + The sample `LaTeX' file below, named `latexusage.tex', can be run as +follows: +latex latexusage +asy latexusage-*.asy +latex latexusage + +or +pdflatex latexusage +asy latexusage-*.asy +pdflatex latexusage + To switch between using inline Asymptote code with `latex' and +`pdflatex' you may first need to remove the files `latexusage-*.tex'. + + An even better method for processing a `LaTeX' file with embedded +`Asymptote' code is to use the `latexmk' utility from + + `http://www.ctan.org/tex-archive/support/latexmk/' + after putting the contents of +`http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc' +in a file `latexmkrc' in the same directory. The command +latexmk -pdf latexusage + will then call `Asymptote' automatically, recompiling only the figures +that have changed. Since each figure is compiled in a separate system +process, this method also tends to use less memory. To store the +figures in a separate directory named `asy', one can define +\def\asydir{asy} + in `latexusage.tex' and put the contents of +`http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/doc/latexmkrc_asydir' +in a file `latexmkrc' in the same directory. External `Asymptote' code +in `filename.asy' should be included with +\asyinclude[<options>]{<filename.asy>} + so that `latexmk' will recognize when the code is changed. Note that +`latemk' requires `perl', available from `http://www.perl.org/'. + + One can specify `width', `height', `keepAspect', `viewportwidth', +`viewportheight', `attach', and `inline'. `keyval'-style options to +the `asy' and `asyinclude' environments. Three-dimensional PRC files +may either be embedded within the page (the default) or attached as +annotated (but printable) attachments, using the `attach' option and +the `attachfile2' (or older `attachfile') `LaTeX' package. The +`inline' option generates inline `LaTeX' code instead of EPS or PDF +files. This makes 2D LaTeX symbols visible to the +`\begin{asy}...\end{asy}' environment. In this mode, Asymptote +correctly aligns 2D LaTeX symbols defined outside of +`\begin{asy}...\end{asy}', but treats their size as zero; an optional +second string can be given to `Label' to provide an estimate of the +unknown label size. + + Note that if the `latex' TeX engine is used with the `inline' +option, labels might not show up in DVI viewers that cannot handle raw +`PostScript' code. One can use `dvips'/`dvipdf' to produce +`PostScript'/PDF output (we recommend using the modified version of +`dvipdf' in the `Asymptote' patches directory, which accepts the `dvips +-z' hyperdvi option). + + Here now is `latexusage.tex': + +\documentclass[12pt]{article} + +% Use this form to include EPS (latex) or PDF (pdflatex) files: +\usepackage{asymptote} + +% Use this form with latex or pdflatex to include inline LaTeX code by default: +%\usepackage[inline]{asymptote} + +% Use this form with latex or pdflatex to create PDF attachments by default: +%\usepackage[attach]{asymptote} + +% Enable this line to support the attach option: +%\usepackage[dvips]{attachfile2} + +\begin{document} + +% Optional subdirectory for asy files (no spaces): +\def\asydir{} + +\begin{asydef} +// Global Asymptote definitions can be put here. +import three; +usepackage("bm"); +texpreamble("\def\V#1{\bm{#1}}"); +// One can globally override the default toolbar settings here: +// settings.toolbar=true; +\end{asydef} + +Here is a venn diagram produced with Asymptote, drawn to width 4cm: + +\def\A{A} +\def\B{\V{B}} + +%\begin{figure} +\begin{center} +\begin{asy} +size(4cm,0); +pen colour1=red; +pen colour2=green; + +pair z0=(0,0); +pair z1=(-1,0); +pair z2=(1,0); +real r=1.5; +path c1=circle(z1,r); +path c2=circle(z2,r); +fill(c1,colour1); +fill(c2,colour2); + +picture intersection=new picture; +fill(intersection,c1,colour1+colour2); +clip(intersection,c2); + +add(intersection); + +draw(c1); +draw(c2); + +//draw("$\A$",box,z1); // Requires [inline] package option. +//draw(Label("$\B$","$B$"),box,z2); // Requires [inline] package option. +draw("$A$",box,z1); +draw("$\V{B}$",box,z2); + +pair z=(0,-2); +real m=3; +margin BigMargin=Margin(0,m*dot(unit(z1-z),unit(z0-z))); + +draw(Label("$A\cap B$",0),conj(z)--z0,Arrow,BigMargin); +draw(Label("$A\cup B$",0),z--z0,Arrow,BigMargin); +draw(z--z1,Arrow,Margin(0,m)); +draw(z--z2,Arrow,Margin(0,m)); + +shipout(bbox(0.25cm)); +\end{asy} +%\caption{Venn diagram}\label{venn} +\end{center} +%\end{figure} + +Each graph is drawn in its own environment. One can specify the width +and height to \LaTeX\ explicitly. This 3D example can be viewed +interactively either with Adobe Reader or Asymptote's fast OpenGL-based +renderer. To support {\tt latexmk}, 3D figures should specify +\verb+inline=true+. It is sometimes desirable to embed 3D files as annotated +attachments; this requires the \verb+attach=true+ option as well as the +\verb+attachfile2+ \LaTeX\ package. +\begin{center} +\begin{asy}[height=4cm,inline=true,attach=false,viewportwidth=\linewidth] +currentprojection=orthographic(5,4,2); +draw(unitcube,blue); +label("$V-E+F=2$",(0,1,0.5),3Y,blue+fontsize(17pt)); +\end{asy} +\end{center} + +One can also scale the figure to the full line width: +\begin{center} +\begin{asy}[width=\the\linewidth,inline=true] +pair z0=(0,0); +pair z1=(2,0); +pair z2=(5,0); +pair zf=z1+0.75*(z2-z1); + +draw(z1--z2); +dot(z1,red+0.15cm); +dot(z2,darkgreen+0.3cm); +label("$m$",z1,1.2N,red); +label("$M$",z2,1.5N,darkgreen); +label("$\hat{\ }$",zf,0.2*S,fontsize(24pt)+blue); + +pair s=-0.2*I; +draw("$x$",z0+s--z1+s,N,red,Arrows,Bars,PenMargins); +s=-0.5*I; +draw("$\bar{x}$",z0+s--zf+s,blue,Arrows,Bars,PenMargins); +s=-0.95*I; +draw("$X$",z0+s--z2+s,darkgreen,Arrows,Bars,PenMargins); +\end{asy} +\end{center} +\end{document} + + +File: asymptote.info, Node: Base modules, Next: Options, Prev: LaTeX usage, Up: Top + +8 Base modules +************** + +`Asymptote' currently ships with the following base modules: + +* Menu: + +* plain:: Default `Asymptote' base file +* simplex:: Linear programming: simplex method +* math:: Extend `Asymptote''s math capabilities +* interpolate:: Interpolation routines +* geometry:: Geometry routines +* trembling:: Wavy lines +* stats:: Statistics routines and histograms +* patterns:: Custom fill and draw patterns +* markers:: Custom path marker routines +* tree:: Dynamic binary search tree +* binarytree:: Binary tree drawing module +* drawtree:: Tree drawing module +* syzygy:: Syzygy and braid drawing module +* feynman:: Feynman diagrams +* roundedpath:: Round the sharp corners of paths +* animation:: Embedded PDF and MPEG movies +* embed:: Embedding movies, sounds, and 3D objects +* slide:: Making presentations with `Asymptote' +* MetaPost:: `MetaPost' compatibility routines +* unicode:: Accept `unicode' (UTF-8) characters +* latin1:: Accept `ISO 8859-1' characters +* babel:: Interface to `LaTeX' `babel' package +* labelpath:: Drawing curved labels +* labelpath3:: Drawing curved labels in 3D +* annotate:: Annotate your PDF files +* CAD:: 2D CAD pen and measurement functions (DIN 15) +* graph:: 2D linear & logarithmic graphs +* palette:: Color density images and palettes +* three:: 3D vector graphics +* obj:: 3D obj files +* graph3:: 3D linear & logarithmic graphs +* grid3:: 3D grids +* solids:: 3D solid geometry +* tube:: 3D rotation minimizing tubes +* flowchart:: Flowchart drawing routines +* contour:: Contour lines +* contour3:: Contour surfaces +* slopefield:: Slope fields +* ode:: Ordinary differential equations + + +File: asymptote.info, Node: plain, Next: simplex, Up: Base modules + +8.1 `plain' +=========== + +This is the default `Asymptote' base file, which defines key parts of +the drawing language (such as the `picture' structure). + + By default, an implicit `private import plain;' occurs before +translating a file and before the first command given in interactive +mode. This also applies when translating files for module definitions +(except when translating `plain', of course). This means that the +types and functions defined in `plain' are accessible in almost all +`Asymptote' code. Use the `-noautoplain' command-line option to disable +this feature. + + +File: asymptote.info, Node: simplex, Next: math, Prev: plain, Up: Base modules + +8.2 `simplex' +============= + +This package solves the two-variable linear programming problem using +the simplex method. It is used by the module `plain' for automatic +sizing of pictures. + + +File: asymptote.info, Node: math, Next: interpolate, Prev: simplex, Up: Base modules + +8.3 `math' +========== + +This package extends `Asymptote''s mathematical capabilities with +useful functions such as + +`void drawline(picture pic=currentpicture, pair P, pair Q, pen p=currentpen);' + draw the visible portion of the (infinite) line going through `P' + and `Q', without altering the size of picture `pic', using pen `p'. + +`real intersect(triple P, triple Q, triple n, triple Z);' + returns the intersection time of the extension of the line segment + `PQ' with the plane perpendicular to `n' and passing through `Z'. + +`triple intersectionpoint(triple n0, triple P0, triple n1, triple P1);' + Return any point on the intersection of the two planes with normals + `n0' and `n1' passing through points `P0' and `P1', respectively. + If the planes are parallel, return `(infinity,infinity,infinity)'. + +`pair[] quarticroots(real a, real b, real c, real d, real e);' + returns the four complex roots of the quartic equation + ax^4+bx^3+cx^2+dx+e=0. + +`pair[][] fft(pair[][] a, int sign=1)' + returns the two-dimensional Fourier transform of a using the given + `sign'. + +`real time(path g, real x, int n=0)' + returns the `n'th intersection time of path `g' with the vertical + line through x. + +`real time(path g, explicit pair z, int n=0)' + returns the `n'th intersection time of path `g' with the horizontal + line through `(0,z.y)'. + +`real value(path g, real x, int n=0)' + returns the `n'th `y' value of `g' at `x'. + +`real value(path g, real x, int n=0)' + returns the `n'th `x' value of `g' at `y=z.y'. + +`real slope(path g, real x, int n=0)' + returns the `n'th slope of `g' at `x'. + +`real slope(path g, explicit pair z, int n=0)' + returns the `n'th slope of `g' at `y=z.y'. + + int[][] segment(bool[] b) returns the indices of consecutive + true-element segments of bool[] `b'. + +`real[] partialsum(real[] a)' + returns the partial sums of a real array `a'. + +`real[] partialsum(real[] a, real[] dx)' + returns the partial `dx'-weighted sums of a real array `a'. + +`bool increasing(real[] a, bool strict=false)' + returns, if `strict=false', whether `i > j' implies `a[i] >= + a[j]', or if `strict=true', whether `i > j' implies implies `a[i] + > a[j]'. + +`int unique(real[] a, real x)' + if the sorted array `a' does not contain `x', insert it + sequentially, returning the index of `x' in the resulting array. + +`bool lexorder(pair a, pair b)' + returns the strict lexicographical partial order of `a' and `b'. + +`bool lexorder(triple a, triple b)' + returns the strict lexicographical partial order of `a' and `b'. + + +File: asymptote.info, Node: interpolate, Next: geometry, Prev: math, Up: Base modules + +8.4 `interpolate' +================= + +This module implements Lagrange, Hermite, and standard cubic spline +interpolation in `Asymptote', as illustrated in the example +`interpolate1.asy'. + + +File: asymptote.info, Node: geometry, Next: trembling, Prev: interpolate, Up: Base modules + +8.5 `geometry' +============== + +This module, written by Philippe Ivaldi, provides an extensive set of +geometry routines, including `perpendicular' symbols and a `triangle' +structure. Link to the documentation for the `geometry' module are +posted here: `http://asymptote.sourceforge.net/links.html', including +an extensive set of examples, +`http://www.piprime.fr/files/asymptote/geometry/', and an index: + + `http://www.piprime.fr/files/asymptote/geometry/modules/geometry.asy.index.type.html' + + +File: asymptote.info, Node: trembling, Next: stats, Prev: geometry, Up: Base modules + +8.6 `trembling' +=============== + +This module, written by Philippe Ivaldi and illustrated in the example +`floatingdisk.asy', allows one to draw wavy lines, as if drawn by hand. +Further examples are posted at +`http://www.piprime.fr/files/asymptote/trembling/' + + +File: asymptote.info, Node: stats, Next: patterns, Prev: trembling, Up: Base modules + +8.7 `stats' +=========== + +This package implements a Gaussian random number generator and a +collection of statistics routines, including `histogram' and +`leastsquares'. + + +File: asymptote.info, Node: patterns, Next: markers, Prev: stats, Up: Base modules + +8.8 `patterns' +============== + +This package implements `Postscript' tiling patterns and includes +several convenient pattern generation routines. + + +File: asymptote.info, Node: markers, Next: tree, Prev: patterns, Up: Base modules + +8.9 `markers' +============= + +This package implements specialized routines for marking paths and +angles. The principal mark routine provided by this package is +markroutine markinterval(int n=1, frame f, bool rotated=false); + which centers `n' copies of frame `f' within uniformly space intervals +in arclength along the path, optionally rotated by the angle of the +local tangent. + + The `marker' (*note marker::) routine can be used to construct new +markers from these predefined frames: + +frame stickframe(int n=1, real size=0, pair space=0, real angle=0, + pair offset=0, pen p=currentpen); + +frame circlebarframe(int n=1, real barsize=0, + real radius=0,real angle=0, + pair offset=0, pen p=currentpen, + filltype filltype=NoFill, bool above=false); + +frame crossframe(int n=3, real size=0, pair space=0, + real angle=0, pair offset=0, pen p=currentpen); + +frame tildeframe(int n=1, real size=0, pair space=0, + real angle=0, pair offset=0, pen p=currentpen); + + For convenience, this module also constructs the markers +`StickIntervalMarker', `CrossIntervalMarker', +`CircleBarIntervalMarker', and `TildeIntervalMarker' from the above +frames. The example `markers1.asy' illustrates the use of these markers: + + + + +This package also provides a routine for marking an angle AOB: +void markangle(picture pic=currentpicture, Label L="", + int n=1, real radius=0, real space=0, + pair A, pair O, pair B, arrowbar arrow=None, + pen p=currentpen, margin margin=NoMargin, + marker marker=nomarker); + as illustrated in the example `markers2.asy'. + + + + + +File: asymptote.info, Node: tree, Next: binarytree, Prev: markers, Up: Base modules + +8.10 `tree' +=========== + +This package implements an example of a dynamic binary search tree. + + +File: asymptote.info, Node: binarytree, Next: drawtree, Prev: tree, Up: Base modules + +8.11 `binarytree' +================= + +This module can be used to draw an arbitrary binary tree and includes an +input routine for the special case of a binary search tree, as +illustrated in the example `binarytreetest.asy': + +import binarytree; + +picture pic,pic2; + +binarytree bt=binarytree(1,2,4,nil,5,nil,nil,0,nil,nil,3,6,nil,nil,7); +draw(pic,bt); + +binarytree st=searchtree(10,5,2,1,3,4,7,6,8,9,15,13,12,11,14,17,16,18,19); +draw(pic2,st,blue); + +add(pic.fit(),(0,0),10N); +add(pic2.fit(),(0,0),10S); + + + + +File: asymptote.info, Node: drawtree, Next: syzygy, Prev: binarytree, Up: Base modules + +8.12 `drawtree' +=============== + +This is a simple tree drawing module used by the example `treetest.asy'. + + +File: asymptote.info, Node: syzygy, Next: feynman, Prev: drawtree, Up: Base modules + +8.13 `syzygy' +============= + +This module automates the drawing of braids, relations, and syzygies, +along with the corresponding equations, as illustrated in the example +`knots.asy'. + + +File: asymptote.info, Node: feynman, Next: roundedpath, Prev: syzygy, Up: Base modules + +8.14 `feynman' +============== + +This package, contributed by Martin Wiebusch, is useful for drawing +Feynman diagrams, as illustrated by the examples `eetomumu.asy' and +`fermi.asy'. + + +File: asymptote.info, Node: roundedpath, Next: animation, Prev: feynman, Up: Base modules + +8.15 `roundedpath' +================== + +This package, contributed by Stefan Knorr, is useful for rounding the +sharp corners of paths, as illustrated in the example file +`roundpath.asy'. + + +File: asymptote.info, Node: animation, Next: embed, Prev: roundedpath, Up: Base modules + +8.16 `animation' +================ + +This module allows one to generate animations, as illustrated by the +files `wheel.asy', `wavepacket.asy', and `cube.asy' in the `animations' +subdirectory of the examples directory. These animations use the +`ImageMagick' `convert' program to merge multiple images into a GIF or +MPEG movie. + + The related `animate' module, derived from the `animation' module, +generates higher-quality portable clickable PDF movies, with optional +controls. This requires installing the package + + `http://www.ctan.org/tex-archive/macros/latex/contrib/animate/animate.sty' + (version 2007/11/30 or later) in a new directory `animate' in the +local `LaTeX' directory (for example, in +`/usr/local/share/texmf/tex/latex/animate'). On `UNIX' systems, one +must then execute the command `texhash'. + + The example `pdfmovie.asy' in the `animations' directory, along with +the slide presentations `slidemovies.asy' and `intro.asy', illustrate +the use of embedded PDF movies. The examples `inlinemovie.tex' and +`inlinemovie3.tex' show how to generate and embed PDF movies directly +within a `LaTeX' file (*note LaTeX usage::). The member function +string pdf(fit fit=NoBox, real delay=animationdelay, string options="", + bool keep=settings.keep, bool multipage=true); + of the `animate' structure accepts any of the `animate.sty' options, +as described here: + + `http://www.ctan.org/tex-archive/macros/latex/contrib/animate/doc/animate.pdf' + + +File: asymptote.info, Node: embed, Next: slide, Prev: animation, Up: Base modules + +8.17 `embed' +============ + +This module provides an interface to the `LaTeX' package (included with +`MikTeX') + + `http://www.ctan.org/tex-archive/macros/latex/contrib/movie15' + for embedding movies, sounds, and 3D objects into a PDF document. However, +`XeLaTeX' users need to rename the modified version +`movie15_dvipdfmx.sty' from + + `http://asymptote.svn.sourceforge.net/viewvc/asymptote/trunk/asymptote/patches/' + to `movie15.sty' and place it in their `LaTeX' path. + + The latest version of the `movie15' package requires both `pdflatex' +version 1.20 or later and the file + + `http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek/ifdraft.dtx' + which can be installed by placing it in a directory `ifdraft' in the +local `LaTeX' directory (e.g. +`/usr/local/share/texmf/tex/latex/ifdraft') and executing in that +directory the commands: +tex ifdraft.dtx +texhash + + A more portable method for embedding movie files, which should work +on any platform and does not require the `movie15' or `ifdraft' +packages, is provided by using the `external' module instead of +`embed'. An example of these interfaces is provided in the file +`embeddedmovie.asy' and `externalmovie.asy' in the `animations' +subdirectory of the examples directory. For a higher quality movie +generated directly by `Asymptote', use the `animate' module along with +the `animate.sty' package to embed a portable PDF animation (*note +animate::). + + An example of embedding `U3D' code is provided in the file +`embeddedu3d.asy'. + + +File: asymptote.info, Node: slide, Next: MetaPost, Prev: embed, Up: Base modules + +8.18 `slide' +============ + +This package provides a simple yet high-quality facility for making +presentation slides, including portable embedded PDF animations (see +the file `slidemovies.asy'). A simple example is provided in the file +`slidedemo.asy'. + + +File: asymptote.info, Node: MetaPost, Next: unicode, Prev: slide, Up: Base modules + +8.19 `MetaPost' +=============== + +This package provides some useful routines to help `MetaPost' users +migrate old `MetaPost' code to `Asymptote'. Further contributions here +are welcome. + + Unlike `MetaPost', `Asymptote' does not implicitly solve linear +equations and therefore does not have the notion of a `whatever' +unknown. The routine `extension' (*note extension::) provides a useful +replacement for a common use of `whatever': finding the intersection +point of the lines through `P', `Q' and `p', `q'. For less common +occurrences of `whatever', one can use the built-in explicit linear +equation solver `solve' instead. + + +File: asymptote.info, Node: unicode, Next: latin1, Prev: MetaPost, Up: Base modules + +8.20 `unicode' +============== + +Import this package at the beginning of the file to instruct `LaTeX' to +accept `unicode' (UTF-8) standardized international characters. To use +Cyrillic fonts, you will need to change the font encoding: +import unicode; +texpreamble("\usepackage{mathtext}\usepackage[russian]{babel}"); +defaultpen(font("T2A","cmr","m","n")); + Support for Chinese, Japanese, and Korean fonts is provided by the CJK +package: + + `http://www.ctan.org/tex-archive/languages/chinese/CJK/' + The following commands enable the CJK song family (within a label, +you can also temporarily switch to another family, say kai, by +prepending `"\CJKfamily{kai}"' to the label string): +texpreamble("\usepackage{CJK} +\AtBeginDocument{\begin{CJK*}{GBK}{song}} +\AtEndDocument{\clearpage\end{CJK*}}"); + + +File: asymptote.info, Node: latin1, Next: babel, Prev: unicode, Up: Base modules + +8.21 `latin1' +============= + +If you don't have `LaTeX' support for `unicode' installed, you can +enable support for Western European languages (ISO 8859-1) by importing +the module `latin1'. This module can be used as a template for +providing support for other ISO 8859 alphabets. + + +File: asymptote.info, Node: babel, Next: labelpath, Prev: latin1, Up: Base modules + +8.22 `babel' +============ + +This module implements the `LaTeX' `babel' package in `Asymptote'. For +example: +import babel; +babel("german"); + + +File: asymptote.info, Node: labelpath, Next: labelpath3, Prev: babel, Up: Base modules + +8.23 `labelpath' +================ + +This module uses the `PSTricks' `pstextpath' macro to fit labels along +a path (properly kerned, as illustrated in the example file +`curvedlabel.asy'), using the command +void labelpath(picture pic=currentpicture, Label L, path g, + string justify=Centered, pen p=currentpen); + Here `justify' is one of `LeftJustified', `Centered', or +`RightJustified'. The x component of a shift transform applied to the +Label is interpreted as a shift along the curve, whereas the y +component is interpreted as a shift away from the curve. All other +Label transforms are ignored. This package requires the `latex' tex +engine and inherits the limitations of the `PSTricks' `\pstextpath' +macro. + + +File: asymptote.info, Node: labelpath3, Next: annotate, Prev: labelpath, Up: Base modules + +8.24 `labelpath3' +================= + +This module, contributed by Jens Schwaiger, implements a 3D version of +`labelpath' that does not require the `PSTricks' package. An example +is provided in `curvedlabel3.asy'. + + +File: asymptote.info, Node: annotate, Next: CAD, Prev: labelpath3, Up: Base modules + +8.25 `annotate' +=============== + +This module supports PDF annotations for viewing with `Adobe Reader', +via the function +void annotate(picture pic=currentpicture, string title, string text, + pair position); + Annotations are illustrated in the example file `annotation.asy'. +Currently, annotations are only implemented for the `latex' (default) +and `tex' TeX engines. + + +File: asymptote.info, Node: CAD, Next: graph, Prev: annotate, Up: Base modules + +8.26 `CAD' +========== + +This package, contributed by Mark Henning, provides basic pen +definitions and measurement functions for simple 2D CAD drawings +according to DIN 15. It is documented separately, in the file `CAD.pdf'. + + +File: asymptote.info, Node: graph, Next: palette, Prev: CAD, Up: Base modules + +8.27 `graph' +============ + +This package implements two-dimensional linear and logarithmic graphs, +including automatic scale and tick selection (with the ability to +override manually). A graph is a `guide' (that can be drawn with the +draw command, with an optional legend) constructed with one of the +following routines: + + * guide graph(picture pic=currentpicture, real f(real), real a, real b, + int n=ngraph, real T(real)=identity, + interpolate join=operator --); + guide[] graph(picture pic=currentpicture, real f(real), real a, real b, + int n=ngraph, real T(real)=identity, bool3 cond(real), + interpolate join=operator --); + + Returns a graph using the scaling information for picture `pic' + (*note automatic scaling::) of the function `f' on the interval + [`T'(`a'),`T'(`b')], sampling at `n' points evenly spaced in + [`a',`b'], optionally restricted by the bool3 function `cond' on + [`a',`b']. If `cond' is: + * `true', the point is added to the existing guide; + + * `default', the point is added to a new guide; + + * `false', the point is omitted and a new guide is begun. + The points are connected using the interpolation specified by + `join': + * `operator --' (linear interpolation; the abbreviation + `Straight' is also accepted); + + * `operator ..' (piecewise Bezier cubic spline interpolation; + the abbreviation `Spline' is also accepted); + + * `Hermite' (standard cubic spline interpolation using boundary + condition `notaknot', `natural', `periodic', `clamped(real + slopea, real slopeb)'), or `monotonic'. The abbreviation + `Hermite' is equivalent to `Hermite(notaknot)' for + nonperiodic data and `Hermite(periodic)' for periodic data). + + + * guide graph(picture pic=currentpicture, real x(real), real y(real), + real a, real b, int n=ngraph, real T(real)=identity, + interpolate join=operator --); + guide[] graph(picture pic=currentpicture, real x(real), real y(real), + real a, real b, int n=ngraph, real T(real)=identity, + bool3 cond(real), interpolate join=operator --); + + Returns a graph using the scaling information for picture `pic' of + the parametrized function (`x'(t),`y'(t)) for t in the interval + [`T'(`a'),`T'(`b')], sampling at `n' points evenly spaced in + [`a',`b'], optionally restricted by the bool3 function `cond' on + [`a',`b'], using the given interpolation type. + + * guide graph(picture pic=currentpicture, pair z(real), real a, real b, + int n=ngraph, real T(real)=identity, + interpolate join=operator --); + guide[] graph(picture pic=currentpicture, pair z(real), real a, real b, + int n=ngraph, real T(real)=identity, bool3 cond(real), + interpolate join=operator --); + + Returns a graph using the scaling information for picture `pic' of + the parametrized function `z'(t) for t in the interval + [`T'(`a'),`T'(`b')], sampling at `n' points evenly spaced in + [`a',`b'], optionally restricted by the bool3 function `cond' on + [`a',`b'], using the given interpolation type. + + * guide graph(picture pic=currentpicture, pair[] z, + interpolate join=operator --); + guide[] graph(picture pic=currentpicture, pair[] z, bool3[] cond, + interpolate join=operator --); + + Returns a graph using the scaling information for picture `pic' of + the elements of the array `z', optionally restricted to those + indices for which the elements of the boolean array `cond' are + `true', using the given interpolation type. + + * guide graph(picture pic=currentpicture, real[] x, real[] y, + interpolate join=operator --); + guide[] graph(picture pic=currentpicture, real[] x, real[] y, + bool3[] cond, interpolate join=operator --); + + Returns a graph using the scaling information for picture `pic' of + the elements of the arrays (`x',`y'), optionally restricted to + those indices for which the elements of the boolean array `cond' + are `true', using the given interpolation type. + + * guide polargraph(picture pic=currentpicture, real f(real), real a, + real b, int n=ngraph, interpolate join=operator --); + + Returns a polar-coordinate graph using the scaling information for + picture `pic' of the function `f' on the interval [`a',`b'], + sampling at `n' evenly spaced points, with the given interpolation + type. + + * guide polargraph(picture pic=currentpicture, real[] r, real[] theta, + interpolate join=operator--); + Returns a polar-coordinate graph using the scaling information for + picture `pic' of the elements of the arrays (`r',`theta'), using + the given interpolation type. + + + + + An axis can be drawn on a picture with one of the following commands: + + * void xaxis(picture pic=currentpicture, Label L="", axis axis=YZero, + real xmin=-infinity, real xmax=infinity, pen p=currentpen, + ticks ticks=NoTicks, arrowbar arrow=None, bool above=false); + + Draw an x axis on picture `pic' from x=`xmin' to x=`xmax' using + pen `p', optionally labelling it with Label `L'. The relative + label location along the axis (a real number from [0,1]) defaults + to 1 (*note Label::), so that the label is drawn at the end of the + axis. An infinite value of `xmin' or `xmax' specifies that the + corresponding axis limit will be automatically determined from the + picture limits. The optional `arrow' argument takes the same + values as in the `draw' command (*note arrows::). The axis is + drawn before any existing objects in `pic' unless `above=true'. + The axis placement is determined by one of the following `axis' + types: + + `YZero(bool extend=true)' + Request an x axis at y=0 (or y=1 on a logarithmic axis) + extending to the full dimensions of the picture, unless + `extend'=false. + + `YEquals(real Y, bool extend=true)' + Request an x axis at y=`Y' extending to the full dimensions + of the picture, unless `extend'=false. + + `Bottom(bool extend=false)' + Request a bottom axis. + + `Top(bool extend=false)' + Request a top axis. + + `BottomTop(bool extend=false)' + Request a bottom and top axis. + + + Custom axis types can be created by following the examples in + `graph.asy'. One can easily override the default values for the + standard axis types: import graph; + + YZero=new axis(bool extend=true) { + return new void(picture pic, axisT axis) { + real y=pic.scale.x.scale.logarithmic ? 1 : 0; + axis.value=I*pic.scale.y.T(y); + axis.position=1; + axis.side=right; + axis.align=2.5E; + axis.value2=Infinity; + axis.extend=extend; + }; + }; + YZero=YZero(); + + The default tick option is `NoTicks'. The options `LeftTicks', + `RightTicks', or `Ticks' can be used to draw ticks on the left, + right, or both sides of the path, relative to the direction in + which the path is drawn. These tick routines accept a number of + optional arguments: ticks LeftTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, + int N=0, int n=0, real Step=0, real step=0, + bool begin=true, bool end=true, tickmodifier modify=None, + real Size=0, real size=0, bool extend=false, + pen pTick=nullpen, pen ptick=nullpen); + + If any of these parameters are omitted, reasonable defaults will + be chosen: + `Label format' + override the default tick label format (`defaultformat', + initially "$%.4g$"), rotation, pen, and alignment (for + example, `LeftSide', `Center', or `RightSide') relative to + the axis. To enable `LaTeX' math mode fonts, the format + string should begin and end with `$' *note format::. If the + format string is `trailingzero', trailing zeros will be added + to the tick labels; if the format string is `"%"', the tick + label will be suppressed; + + `ticklabel' + is a function `string(real x)' returning the label (by + default, format(format.s,x)) for each major tick value `x'; + + `bool beginlabel' + include the first label; + + `bool endlabel' + include the last label; + + `int N' + when automatic scaling is enabled (the default; *note + automatic scaling::), divide a linear axis evenly into this + many intervals, separated by major ticks; for a logarithmic + axis, this is the number of decades between labelled ticks; + + `int n' + divide each interval into this many subintervals, separated + by minor ticks; + + `real Step' + the tick value spacing between major ticks (if `N'=`0'); + + `real step' + the tick value spacing between minor ticks (if `n'=`0'); + + `bool begin' + include the first major tick; + + `bool end' + include the last major tick; + + `tickmodifier modify;' + an optional function that takes and returns a `tickvalue' + structure having real[] members `major' and `minor' + consisting of the tick values (to allow modification of the + automatically generated tick values); + + `real Size' + the size of the major ticks (in `PostScript' coordinates); + + `real size' + the size of the minor ticks (in `PostScript' coordinates); + + `bool extend;' + extend the ticks between two axes (useful for drawing a grid + on the graph); + + `pen pTick' + an optional pen used to draw the major ticks; + + `pen ptick' + an optional pen used to draw the minor ticks. + + + For convenience, the predefined tickmodifiers `OmitTick(... real[] + x)', `OmitTickInterval(real a, real b)', and + `OmitTickIntervals(real[] a, real[] b)' can be used to remove + specific auto-generated ticks and their labels. The + `OmitFormat(string s=defaultformat ... real[] x)' ticklabel can be + used to remove specific tick labels but not the corresponding + ticks. The tickmodifier `NoZero' is an abbreviation for + `OmitTick(0)' and the ticklabel `NoZeroFormat' is an abbrevation + for `OmitFormat(0)'. + + It is also possible to specify custom tick locations with + `LeftTicks', `RightTicks', and `Ticks' by passing explicit real + arrays `Ticks' and (optionally) `ticks' containing the locations + of the major and minor ticks, respectively: ticks LeftTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, + real[] Ticks, real[] ticks=new real[], + real Size=0, real size=0, bool extend=false, + pen pTick=nullpen, pen ptick=nullpen) + + * void yaxis(picture pic=currentpicture, Label L="", axis axis=XZero, + real ymin=-infinity, real ymax=infinity, pen p=currentpen, + ticks ticks=NoTicks, arrowbar arrow=None, bool above=false, + bool autorotate=true); + + Draw a y axis on picture `pic' from y=`ymin' to y=`ymax' using pen + `p', optionally labelling it with a Label `L' that is autorotated + unless `autorotate=false'. The relative location of the label (a + real number from [0,1]) defaults to 1 (*note Label::). An infinite + value of `ymin' or `ymax' specifies that the corresponding axis + limit will be automatically determined from the picture limits. + The optional `arrow' argument takes the same values as in the + `draw' command (*note arrows::). The axis is drawn before any + existing objects in `pic' unless `above=true'. The tick type is + specified by `ticks' and the axis placement is determined by one + of the following `axis' types: + + `XZero(bool extend=true)' + Request a y axis at x=0 (or x=1 on a logarithmic axis) + extending to the full dimensions of the picture, unless + `extend'=false. + + `XEquals(real X, bool extend=true)' + Request a y axis at x=`X' extending to the full dimensions of + the picture, unless `extend'=false. + + `Left(bool extend=false)' + Request a left axis. + + `Right(bool extend=false)' + Request a right axis. + + `LeftRight(bool extend=false)' + Request a left and right axis. + + + * For convenience, the functions void xequals(picture pic=currentpicture, Label L="", real x, + bool extend=false, real ymin=-infinity, real ymax=infinity, + pen p=currentpen, ticks ticks=NoTicks, bool above=true, + arrowbar arrow=None); + and void yequals(picture pic=currentpicture, Label L="", real y, + bool extend=false, real xmin=-infinity, real xmax=infinity, + pen p=currentpen, ticks ticks=NoTicks, bool above=true, + arrowbar arrow=None); + can be respectively used to call `yaxis' and `xaxis' with the + appropriate axis types `XEquals(x,extend)' and + `YEquals(y,extend)'. This is the recommended way of drawing + vertical or horizontal lines and axes at arbitrary locations. + + * void axes(picture pic=currentpicture, Label xlabel="", Label ylabel="", + pair min=(-infinity,-infinity), pair max=(infinity,infinity), + pen p=currentpen, arrowbar arrow=None, bool above=false); + This convenience routine draws both x and y axes on picture `pic' + from `min' to `max', with optional labels `xlabel' and `ylabel' + and any arrows specified by `arrow'. The axes are drawn on top of + existing objects in `pic' only if `above=true'. + + * void axis(picture pic=currentpicture, Label L="", path g, + pen p=currentpen, ticks ticks, ticklocate locate, + arrowbar arrow=None, int[] divisor=new int[], + bool above=false, bool opposite=false); + + This routine can be used to draw on picture `pic' a general axis + based on an arbitrary path `g', using pen `p'. One can optionally + label the axis with Label `L' and add an arrow `arrow'. The tick + type is given by `ticks'. The optional integer array `divisor' + specifies what tick divisors to try in the attempt to produce + uncrowded tick labels. A `true' value for the flag `opposite' + identifies an unlabelled secondary axis (typically drawn opposite + a primary axis). The axis is drawn before any existing objects in + `pic' unless `above=true'. The tick locator `ticklocate' is + constructed by the routine ticklocate ticklocate(real a, real b, autoscaleT S=defaultS, + real tickmin=-infinity, real tickmax=infinity, + real time(real)=null, pair dir(real)=zero); + where `a' and `b' specify the respective tick values at + `point(g,0)' and `point(g,length(g))', `S' specifies the + autoscaling transformation, the function `real time(real v)' + returns the time corresponding to the value `v', and `pair + dir(real t)' returns the absolute tick direction as a function of + `t' (zero means draw the tick perpendicular to the axis). + + * These routines are useful for manually putting ticks and labels on + axes (if the variable `Label' is given as the `Label' argument, + the `format' argument will be used to format a string based on the + tick location): void xtick(picture pic=currentpicture, Label L="", explicit pair z, + pair dir=N, string format="", + real size=Ticksize, pen p=currentpen); + void xtick(picture pic=currentpicture, Label L="", real x, + pair dir=N, string format="", + real size=Ticksize, pen p=currentpen); + void ytick(picture pic=currentpicture, Label L="", explicit pair z, + pair dir=E, string format="", + real size=Ticksize, pen p=currentpen); + void ytick(picture pic=currentpicture, Label L="", real y, + pair dir=E, string format="", + real size=Ticksize, pen p=currentpen); + void tick(picture pic=currentpicture, pair z, + pair dir, real size=Ticksize, pen p=currentpen); + void labelx(picture pic=currentpicture, Label L="", explicit pair z, + align align=S, string format="", pen p=currentpen); + void labelx(picture pic=currentpicture, Label L="", real x, + align align=S, string format="", pen p=currentpen); + void labelx(picture pic=currentpicture, Label L, + string format="", explicit pen p=currentpen); + void labely(picture pic=currentpicture, Label L="", explicit pair z, + align align=W, string format="", pen p=currentpen); + void labely(picture pic=currentpicture, Label L="", real y, + align align=W, string format="", pen p=currentpen); + void labely(picture pic=currentpicture, Label L, + string format="", explicit pen p=currentpen); + + Here are some simple examples of two-dimensional graphs: + + 1. This example draws a textbook-style graph of y= exp(x), with the y + axis starting at y=0: import graph; + size(150,0); + + real f(real x) {return exp(x);} + pair F(real x) {return (x,f(x));} + + xaxis("$x$"); + yaxis("$y$",0); + + draw(graph(f,-4,2,operator ..),red); + + labely(1,E); + label("$e^x$",F(1),SE); + + + + 2. The next example draws a scientific-style graph with a legend. + The position of the legend can be adjusted either explicitly or by + using the graphical user interface `xasy' (*note GUI::). If an + `UnFill(real xmargin=0, real ymargin=xmargin)' or `Fill(pen)' + option is specified to `add', the legend will obscure any + underlying objects. Here we illustrate how to clip the portion of + the picture covered by a label: + + import graph; + + size(400,200,IgnoreAspect); + + real Sin(real t) {return sin(2pi*t);} + real Cos(real t) {return cos(2pi*t);} + + draw(graph(Sin,0,1),red,"$\sin(2\pi x)$"); + draw(graph(Cos,0,1),blue,"$\cos(2\pi x)$"); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks(trailingzero)); + + label("LABEL",point(0),UnFill(1mm)); + + add(legend(),point(E),20E,UnFill); + + + + To specify a fixed size for the graph proper, use `attach': import graph; + + size(250,200,IgnoreAspect); + + real Sin(real t) {return sin(2pi*t);} + real Cos(real t) {return cos(2pi*t);} + + draw(graph(Sin,0,1),red,"$\sin(2\pi x)$"); + draw(graph(Cos,0,1),blue,"$\cos(2\pi x)$"); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks(trailingzero)); + + label("LABEL",point(0),UnFill(1mm)); + + attach(legend(),truepoint(E),20E,UnFill); + A legend can have multiple entries per line: import graph; + size(8cm,6cm,IgnoreAspect); + + typedef real realfcn(real); + realfcn F(real p) { + return new real(real x) {return sin(p*x);}; + }; + + for(int i=1; i < 5; ++i) + draw(graph(F(i*pi),0,1),Pen(i), + "$\sin("+(i == 1 ? "" : (string) i)+"\pi x)$"); + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks(trailingzero)); + + attach(legend(2),(point(S).x,truepoint(S).y),10S,UnFill); + + + + 3. This example draws a graph of one array versus another (both of + the same size) using custom tick locations and a smaller font size + for the tick labels on the y axis. import graph; + + size(200,150,IgnoreAspect); + + real[] x={0,1,2,3}; + real[] y=x^2; + + draw(graph(x,y),red); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight, + RightTicks(Label(fontsize(8pt)),new real[]{0,4,9})); + + + + 4. This example shows how to graph columns of data read from a file. import graph; + + size(200,150,IgnoreAspect); + + file in=input("filegraph.dat").line(); + real[][] a=in.dimension(0,0); + a=transpose(a); + + real[] x=a[0]; + real[] y=a[1]; + + draw(graph(x,y),red); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks); + + + + 5. The next example draws two graphs of an array of coordinate pairs, + using frame alignment and data markers. In the left-hand graph, the + markers, constructed with marker marker(path g, markroutine markroutine=marknodes, + pen p=currentpen, filltype filltype=NoFill, + bool above=true); + using the path `unitcircle' (*note filltype::), are drawn below + each node. Any frame can be converted to a marker, using marker marker(frame f, markroutine markroutine=marknodes, + bool above=true); + In the right-hand graph, the unit n-sided regular polygon + `polygon(int n)' and the unit n-point cyclic cross `cross(int n, + bool round=true, real r=0)' (where `r' is an optional "inner" + radius) are used to build a custom marker frame. Here + `markuniform(bool centered=false, int n, bool rotated=false)' adds + this frame at `n' uniformly spaced points along the arclength of + the path, optionally rotated by the angle of the local tangent to + the path (if centered is true, the frames will be centered within + `n' evenly spaced arclength intervals). Alternatively, one can use + markroutine `marknodes' to request that the marks be placed at each + Bezier node of the path, or markroutine `markuniform(pair z(real + t), real a, real b, int n)' to place marks at points `z(t)' for n + evenly spaced values of `t' in `[a,b]'. + + These markers are predefined: marker[] Mark={ + marker(scale(circlescale)*unitcircle), + marker(polygon(3)),marker(polygon(4)), + marker(polygon(5)),marker(invert*polygon(3)), + marker(cross(4)),marker(cross(6)) + }; + + marker[] MarkFill={ + marker(scale(circlescale)*unitcircle,Fill),marker(polygon(3),Fill), + marker(polygon(4),Fill),marker(polygon(5),Fill), + marker(invert*polygon(3),Fill) + }; + + The example also illustrates the `errorbar' routines: + + void errorbars(picture pic=currentpicture, pair[] z, pair[] dp, + pair[] dm={}, bool[] cond={}, pen p=currentpen, + real size=0); + + void errorbars(picture pic=currentpicture, real[] x, real[] y, + real[] dpx, real[] dpy, real[] dmx={}, real[] dmy={}, + bool[] cond={}, pen p=currentpen, real size=0); + + Here, the positive and negative extents of the error are given by + the absolute values of the elements of the pair array `dp' and the + optional pair array `dm'. If `dm' is not specified, the positive + and negative extents of the error are assumed to be equal. import graph; + + picture pic; + real xsize=200, ysize=140; + size(pic,xsize,ysize,IgnoreAspect); + + pair[] f={(5,5),(50,20),(90,90)}; + pair[] df={(0,0),(5,7),(0,5)}; + + errorbars(pic,f,df,red); + draw(pic,graph(pic,f),"legend", + marker(scale(0.8mm)*unitcircle,red,FillDraw(blue),above=false)); + + scale(pic,true); + + xaxis(pic,"$x$",BottomTop,LeftTicks); + yaxis(pic,"$y$",LeftRight,RightTicks); + add(pic,legend(pic),point(pic,NW),20SE,UnFill); + + picture pic2; + size(pic2,xsize,ysize,IgnoreAspect); + + frame mark; + filldraw(mark,scale(0.8mm)*polygon(6),green,green); + draw(mark,scale(0.8mm)*cross(6),blue); + + draw(pic2,graph(pic2,f),marker(mark,markuniform(5))); + + scale(pic2,true); + + xaxis(pic2,"$x$",BottomTop,LeftTicks); + yaxis(pic2,"$y$",LeftRight,RightTicks); + + yequals(pic2,55.0,red+Dotted); + xequals(pic2,70.0,red+Dotted); + + // Fit pic to W of origin: + add(pic.fit(),(0,0),W); + + // Fit pic2 to E of (5mm,0): + add(pic2.fit(),(5mm,0),E); + + + + 6. A custom mark routine can be also be specified: import graph; + + size(200,100,IgnoreAspect); + + markroutine marks() { + return new void(picture pic=currentpicture, frame f, path g) { + path p=scale(1mm)*unitcircle; + for(int i=0; i <= length(g); ++i) { + pair z=point(g,i); + frame f; + if(i % 4 == 0) { + fill(f,p); + add(pic,f,z); + } else { + if(z.y > 50) { + pic.add(new void(frame F, transform t) { + path q=shift(t*z)*p; + unfill(F,q); + draw(F,q); + }); + } else { + draw(f,p); + add(pic,f,z); + } + } + } + }; + } + + pair[] f={(5,5),(40,20),(55,51),(90,30)}; + + draw(graph(f),marker(marks())); + + scale(true); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks); + + + + 7. This example shows how to label an axis with arbitrary strings. import graph; + + size(400,150,IgnoreAspect); + + real[] x=sequence(12); + real[] y=sin(2pi*x/12); + + scale(false); + + string[] month={"Jan","Feb","Mar","Apr","May","Jun", + "Jul","Aug","Sep","Oct","Nov","Dec"}; + + draw(graph(x,y),red,MarkFill[0]); + + xaxis(BottomTop,LeftTicks(new string(real x) { + return month[round(x % 12)];})); + yaxis("$y$",LeftRight,RightTicks(4)); + + + + 8. The next example draws a graph of a parametrized curve. The calls + to xlimits(picture pic=currentpicture, real min=-infinity, + real max=infinity, bool crop=NoCrop); + and the analogous function `ylimits' can be uncommented to set + the respective axes limits for picture `pic' to the specified + `min' and `max' values. Alternatively, the function void limits(picture pic=currentpicture, pair min, pair max, bool crop=NoCrop); + can be used to limit the axes to the box having opposite vertices + at the given pairs). Existing objects in picture `pic' will be + cropped to lie within the given limits if `crop'=`Crop'. The + function `crop(picture pic)' can be used to crop a graph to the + current graph limits. import graph; + + size(0,200); + + real x(real t) {return cos(2pi*t);} + real y(real t) {return sin(2pi*t);} + + draw(graph(x,y,0,1)); + + //xlimits(0,1,Crop); + //ylimits(-1,0,Crop); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks(trailingzero)); + + + + The next example illustrates how one can extract a common axis + scaling factor. import graph; + + axiscoverage=0.9; + size(200,IgnoreAspect); + + real[] x={-1e-11,1e-11}; + real[] y={0,1e6}; + + real xscale=round(log10(max(x))); + real yscale=round(log10(max(y)))-1; + + draw(graph(x*10^(-xscale),y*10^(-yscale)),red); + + xaxis("$x/10^{"+(string) xscale+"}$",BottomTop,LeftTicks); + yaxis("$y/10^{"+(string) yscale+"}$",LeftRight,RightTicks(trailingzero)); + + + + Axis scaling can be requested and/or automatic selection of the + axis limits can be inhibited with one of these `scale' routines: void scale(picture pic=currentpicture, scaleT x, scaleT y); + + void scale(picture pic=currentpicture, bool xautoscale=true, + bool yautoscale=xautoscale, bool zautoscale=yautoscale); + + This sets the scalings for picture `pic'. The `graph' routines + accept an optional `picture' argument for determining the + appropriate scalings to use; if none is given, it uses those set + for `currentpicture'. + + Two frequently used scaling routines `Linear' and `Log' are + predefined in `graph'. + + All picture coordinates (including those in paths and those given + to the `label' and `limits' functions) are always treated as linear + (post-scaled) coordinates. Use pair Scale(picture pic=currentpicture, pair z); + to convert a graph coordinate into a scaled picture coordinate. + + The x and y components can be individually scaled using the + analogous routines real ScaleX(picture pic=currentpicture, real x); + real ScaleY(picture pic=currentpicture, real y); + + The predefined scaling routines can be given two optional boolean + arguments: `automin=false' and `automax=automin'. These default to + `false' but can be respectively set to `true' to enable automatic + selection of "nice" axis minimum and maximum values. The `Linear' + scaling can also take as optional final arguments a multiplicative + scaling factor and intercept (e.g. for a depth axis, `Linear(-1)' + requests axis reversal). + + For example, to draw a log/log graph of a function, use + `scale(Log,Log)': import graph; + + size(200,200,IgnoreAspect); + + real f(real t) {return 1/t;} + + scale(Log,Log); + + draw(graph(f,0.1,10)); + + //xlimits(1,10,Crop); + //ylimits(0.1,1,Crop); + + dot(Label("(3,5)",align=S),Scale((3,5))); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$y$",LeftRight,RightTicks); + + + + By extending the ticks, one can easily produce a logarithmic grid: import graph; + size(200,200,IgnoreAspect); + + real f(real t) {return 1/t;} + + scale(Log,Log); + draw(graph(f,0.1,10),red); + pen thin=linewidth(0.5*linewidth()); + xaxis("$x$",BottomTop,LeftTicks(begin=false,end=false,extend=true, + ptick=thin)); + yaxis("$y$",LeftRight,RightTicks(begin=false,end=false,extend=true, + ptick=thin)); + + + + One can also specify custom tick locations and formats for + logarithmic axes: import graph; + + size(300,175,IgnoreAspect); + scale(Log,Log); + draw(graph(identity,5,20)); + xlimits(5,20); + ylimits(1,100); + xaxis("$M/M_\odot$",BottomTop,LeftTicks(DefaultFormat, + new real[] {6,10,12,14,16,18})); + yaxis("$\nu_{\rm upp}$ [Hz]",LeftRight,RightTicks(DefaultFormat)); + + + + It is easy to draw logarithmic graphs with respect to other bases: import graph; + size(200,IgnoreAspect); + + // Base-2 logarithmic scale on y-axis: + + real log2(real x) {static real log2=log(2); return log(x)/log2;} + real pow2(real x) {return 2^x;} + + scaleT yscale=scaleT(log2,pow2,logarithmic=true); + scale(Linear,yscale); + + real f(real x) {return 1+x^2;} + + draw(graph(f,-4,4)); + + yaxis("$y$",ymin=1,ymax=f(5),RightTicks(Label(Fill(white))),EndArrow); + xaxis("$x$",xmin=-5,xmax=5,LeftTicks,EndArrow); + + + + Here is an example of "broken" linear x and logarithmic y axes + that omit the segments [3,8] and [100,1000], respectively. In the + case of a logarithmic axis, the break endpoints are automatically + rounded to the nearest integral power of the base. import graph; + + size(200,150,IgnoreAspect); + + // Break the x axis at 3; restart at 8: + real a=3, b=8; + + // Break the y axis at 100; restart at 1000: + real c=100, d=1000; + + scale(Broken(a,b),BrokenLog(c,d)); + + real[] x={1,2,4,6,10}; + real[] y=x^4; + + draw(graph(x,y),red,MarkFill[0]); + + xaxis("$x$",BottomTop,LeftTicks(Break(a,b))); + yaxis("$y$",LeftRight,RightTicks(Break(c,d))); + + label(rotate(90)*Break,(a,point(S).y)); + label(rotate(90)*Break,(a,point(N).y)); + label(Break,(point(W).x,ScaleY(c))); + label(Break,(point(E).x,ScaleY(c))); + + + + 9. `Asymptote' can draw secondary axes with the routines picture secondaryX(picture primary=currentpicture, void f(picture)); + picture secondaryY(picture primary=currentpicture, void f(picture)); + + In this example, `secondaryY' is used to draw a secondary linear y + axis against a primary logarithmic y axis: import graph; + texpreamble("\def\Arg{\mathop {\rm Arg}\nolimits}"); + + size(10cm,5cm,IgnoreAspect); + + real ampl(real x) {return 2.5/(1+x^2);} + real phas(real x) {return -atan(x)/pi;} + + scale(Log,Log); + draw(graph(ampl,0.01,10)); + ylimits(0.001,100); + + xaxis("$\omega\tau_0$",BottomTop,LeftTicks); + yaxis("$|G(\omega\tau_0)|$",Left,RightTicks); + + picture q=secondaryY(new void(picture pic) { + scale(pic,Log,Linear); + draw(pic,graph(pic,phas,0.01,10),red); + ylimits(pic,-1.0,1.5); + yaxis(pic,"$\Arg G/\pi$",Right,red, + LeftTicks("$% #.1f$", + begin=false,end=false)); + yequals(pic,1,Dotted); + }); + label(q,"(1,0)",Scale(q,(1,0)),red); + add(q); + + + + A secondary logarithmic y axis can be drawn like this: import graph; + + size(9cm,6cm,IgnoreAspect); + string data="secondaryaxis.csv"; + + file in=input(data).line().csv(); + + string[] titlelabel=in; + string[] columnlabel=in; + + real[][] a=in.dimension(0,0); + a=transpose(a); + real[] t=a[0], susceptible=a[1], infectious=a[2], dead=a[3], larvae=a[4]; + real[] susceptibleM=a[5], exposed=a[6],infectiousM=a[7]; + + scale(true); + + draw(graph(t,susceptible,t >= 10 & t <= 15)); + draw(graph(t,dead,t >= 10 & t <= 15),dashed); + + xaxis("Time ($\tau$)",BottomTop,LeftTicks); + yaxis(Left,RightTicks); + + picture secondary=secondaryY(new void(picture pic) { + scale(pic,Linear(true),Log(true)); + draw(pic,graph(pic,t,infectious,t >= 10 & t <= 15),red); + yaxis(pic,Right,red,LeftTicks(begin=false,end=false)); + }); + + add(secondary); + label(shift(5mm*N)*"Proportion of crows",point(NW),E); + + + + 10. Here is a histogram example, which uses the `stats' module. import graph; + import stats; + + size(400,200,IgnoreAspect); + + int n=10000; + real[] a=new real[n]; + for(int i=0; i < n; ++i) a[i]=Gaussrand(); + + draw(graph(Gaussian,min(a),max(a)),blue); + + // Optionally calculate "optimal" number of bins a la Shimazaki and Shinomoto. + int N=bins(a); + + histogram(a,min(a),max(a),N,normalize=true,low=0,lightred,black,bars=false); + + xaxis("$x$",BottomTop,LeftTicks); + yaxis("$dP/dx$",LeftRight,RightTicks(trailingzero)); + + + + 11. Here is an example of reading column data in from a file and a + least-squares fit, using the `stats' module. size(400,200,IgnoreAspect); + + import graph; + import stats; + + file fin=input("leastsquares.dat").line(); + + real[][] a=fin.dimension(0,0); + a=transpose(a); + + real[] t=a[0], rho=a[1]; + + // Read in parameters from the keyboard: + //real first=getreal("first"); + //real step=getreal("step"); + //real last=getreal("last"); + + real first=100; + real step=50; + real last=700; + + // Remove negative or zero values of rho: + t=rho > 0 ? t : null; + rho=rho > 0 ? rho : null; + + scale(Log(true),Linear(true)); + + int n=step > 0 ? ceil((last-first)/step) : 0; + + real[] T,xi,dxi; + + for(int i=0; i <= n; ++i) { + real first=first+i*step; + real[] logrho=(t >= first & t <= last) ? log(rho) : null; + real[] logt=(t >= first & t <= last) ? -log(t) : null; + + if(logt.length < 2) break; + + // Fit to the line logt=L.m*logrho+L.b: + linefit L=leastsquares(logt,logrho); + + T.push(first); + xi.push(L.m); + dxi.push(L.dm); + } + + draw(graph(T,xi),blue); + errorbars(T,xi,dxi,red); + + crop(); + + ylimits(0); + + xaxis("$T$",BottomTop,LeftTicks); + yaxis("$\xi$",LeftRight,RightTicks); + + + + 12. Here is an example that illustrates the general `axis' routine. import graph; + size(0,100); + + path g=ellipse((0,0),1,2); + + scale(true); + + axis(Label("C",align=10W),g,LeftTicks(endlabel=false,8,end=false), + ticklocate(0,360,new real(real v) { + path h=(0,0)--max(abs(max(g)),abs(min(g)))*dir(v); + return intersect(g,h)[0];})); + + + + 13. To draw a vector field of `n' arrows evenly spaced along the + arclength of a path, use the routine picture vectorfield(path vector(real), path g, int n, bool truesize=false, + pen p=currentpen, arrowbar arrow=Arrow); + as illustrated in this simple example of a flow field: import graph; + defaultpen(1.0); + + size(0,150,IgnoreAspect); + + real arrowsize=4mm; + real arrowlength=2arrowsize; + + typedef path vector(real); + + // Return a vector interpolated linearly between a and b. + vector vector(pair a, pair b) { + return new path(real x) { + return (0,0)--arrowlength*interp(a,b,x); + }; + } + + real f(real x) {return 1/x;} + + real epsilon=0.5; + path g=graph(f,epsilon,1/epsilon); + + int n=3; + draw(g); + xaxis("$x$"); + yaxis("$y$"); + + add(vectorfield(vector(W,W),g,n,true)); + add(vectorfield(vector(NE,NW),(0,0)--(point(E).x,0),n,true)); + add(vectorfield(vector(NE,NE),(0,0)--(0,point(N).y),n,true)); + + + + 14. To draw a vector field of `nx'\times`ny' arrows in `box(a,b)', use + the routine picture vectorfield(path vector(pair), pair a, pair b, + int nx=nmesh, int ny=nx, bool truesize=false, + real maxlength=truesize ? 0 : maxlength(a,b,nx,ny), + bool cond(pair z)=null, pen p=currentpen, + arrowbar arrow=Arrow, margin margin=PenMargin) + as illustrated in this example: import graph; + size(100); + + pair a=(0,0); + pair b=(2pi,2pi); + + path vector(pair z) {return (0,0)--(sin(z.x),cos(z.y));} + + add(vectorfield(vector,a,b)); + + + + 15. The following scientific graphs, which illustrate many features of + `Asymptote''s graphics routines, were generated from the examples + `diatom.asy' and `westnile.asy', using the comma-separated data in + `diatom.csv' and `westnile.csv'. + + + +File: asymptote.info, Node: palette, Next: three, Prev: graph, Up: Base modules + +8.28 `palette' +============== + +`Asymptote' can also generate color density images and palettes. The +following palettes are predefined in `palette.asy': + +`pen[] Grayscale(int NColors=256)' + a grayscale palette; + +`pen[] Rainbow(int NColors=32766)' + a rainbow spectrum; + +`pen[] BWRainbow(int NColors=32761)' + a rainbow spectrum tapering off to black/white at the ends; + +`pen[] BWRainbow2(int NColors=32761)' + a double rainbow palette tapering off to black/white at the ends, + with a linearly scaled intensity. + +`pen[] Wheel(int NColors=32766)' + a full color wheel palette; + +`pen[] Gradient(int NColors=256 ... pen[] p)' + a palette varying linearly over the specified array of pens, using + NColors in each interpolation interval; + + + The function `cmyk(pen[] Palette)' may be used to convert any of +these palettes to the CMYK colorspace. + + A color density plot using palette `palette' can be generated from a +function `f'(x,y) and added to a picture `pic': +bounds image(picture pic=currentpicture, real f(real, real), + range range=Full, pair initial, pair final, + int nx=ngraph, int ny=nx, pen[] palette, bool antialias=false) + The function `f' will be sampled at `nx' and `ny' evenly spaced points +over a rectangle defined by the points `initial' and `final', +respecting the current graphical scaling of `pic'. The color space is +scaled according to the z axis scaling (*note automatic scaling::). A +bounds structure for the function values is returned: +struct bounds { + real min; + real max; + // Possible tick intervals: + int[] divisor; +} + This information can be used for generating an optional palette bar. +The palette color space corresponds to a range of values specified by +the argument `range', which can be `Full', `Automatic', or an explicit +range `Range(real min, real max)'. Here `Full' specifies a range +varying from the minimum to maximum values of the function over the +sampling interval, while `Automatic' selects "nice" limits. The +example `imagecontour.asy' illustrates how level sets (contour lines) +can be drawn on a color density plot (*note contour::). + + A color density plot can also be generated from an explicit real[][] +array `data': +bounds image(picture pic=currentpicture, real[][] f, range range=Full, + pair initial, pair final, pen[] palette, + bool transpose=(initial.x < final.x && initial.y < final.y), + bool copy=true, bool antialias=false); + If the initial point is to the left and below the final point, by +default the array indices are interpreted according to the Cartesian +convention (first index: x, second index: y) rather than the usual +matrix convention (first index: -y, second index: x). + + To construct an image from an array of irregularly spaced points and +an array of values `f' at these points, use one of the routines +bounds image(picture pic=currentpicture, pair[] z, real[] f, + range range=Full, pen[] palette) +bounds image(picture pic=currentpicture, real[] x, real[] y, real[] f, + range range=Full, pen[] palette) + + An optionally labelled palette bar may be generated with the routine +void palette(picture pic=currentpicture, Label L="", bounds bounds, + pair initial, pair final, axis axis=Right, pen[] palette, + pen p=currentpen, paletteticks ticks=PaletteTicks, + bool copy=true, bool antialias=false); + The color space of `palette' is taken to be over bounds `bounds' with +scaling given by the z scaling of `pic'. The palette orientation is +specified by `axis', which may be one of `Right', `Left', `Top', or +`Bottom'. The bar is drawn over the rectangle from `initial' to +`final'. The argument `paletteticks' is a special tick type (*note +ticks::) that takes the following arguments: +paletteticks PaletteTicks(Label format="", ticklabel ticklabel=null, + bool beginlabel=true, bool endlabel=true, + int N=0, int n=0, real Step=0, real step=0, + pen pTick=nullpen, pen ptick=nullpen); + + The image and palette bar can be fit to a frame and added and +optionally aligned to a picture at the desired location: + +size(12cm,12cm); + +import graph; +import palette; + +int n=256; +real ninv=2pi/n; +real[][] v=new real[n][n]; + +for(int i=0; i < n; ++i) + for(int j=0; j < n; ++j) + v[i][j]=sin(i*ninv)*cos(j*ninv); + +pen[] Palette=BWRainbow(); + +picture bar; + +bounds range=image(v,(0,0),(1,1),Palette); +palette(bar,"$A$",range,(0,0),(0.5cm,8cm),Right,Palette, + PaletteTicks("$%+#.1f$")); +add(bar.fit(),point(E),30E); + + + +Here is an example that uses logarithmic scaling of the function values: + +import graph; +import palette; + +size(10cm,10cm,IgnoreAspect); + +real f(real x, real y) { + return 0.9*pow10(2*sin(x/5+2*y^0.25)) + 0.1*(1+cos(10*log(y))); +} + +scale(Linear,Log,Log); + +pen[] Palette=BWRainbow(); + +bounds range=image(f,Automatic,(0,1),(100,100),nx=200,Palette); + +xaxis("$x$",BottomTop,LeftTicks,above=true); +yaxis("$y$",LeftRight,RightTicks,above=true); + +palette("$f(x,y)$",range,(0,200),(100,250),Top,Palette, + PaletteTicks(ptick=linewidth(0.5*linewidth()))); + + + +One can also draw an image directly from a two-dimensional pen array or +a function `pen f(int, int)': +void image(picture pic=currentpicture, pen[][] data, + pair initial, pair final, + bool transpose=(initial.x < final.x && initial.y < final.y), + bool copy=true, bool antialias=false); +void image(picture pic=currentpicture, pen f(int, int), int width, int height, + pair initial, pair final, + bool transpose=(initial.x < final.x && initial.y < final.y), + bool antialias=false); + as illustrated in the following examples: + +size(200); + +import palette; + +int n=256; +real ninv=2pi/n; +pen[][] v=new pen[n][n]; + +for(int i=0; i < n; ++i) + for(int j=0; j < n; ++j) + v[i][j]=rgb(0.5*(1+sin(i*ninv)),0.5*(1+cos(j*ninv)),0); + +image(v,(0,0),(1,1)); + + + +import palette; + +size(200); + +real fracpart(real x) {return (x-floor(x));} + +pair pws(pair z) { + pair w=(z+exp(pi*I/5)/0.9)/(1+z/0.9*exp(-pi*I/5)); + return exp(w)*(w^3-0.5*I); +} + +int N=512; + +pair a=(-1,-1); +pair b=(0.5,0.5); +real dx=(b-a).x/N; +real dy=(b-a).y/N; + +pen f(int u, int v) { + pair z=a+(u*dx,v*dy); + pair w=pws(z); + real phase=degrees(w,warn=false); + real modulus=w == 0 ? 0: fracpart(log(abs(w))); + return hsv(phase,1,sqrt(modulus)); +} + +image(f,N,N,(0,0),(300,300),antialias=true); + + + +For convenience, the module `palette' also defines functions that may +be used to construct a pen array from a given function and palette: +pen[] palette(real[] f, pen[] palette); +pen[][] palette(real[][] f, pen[] palette); + + +File: asymptote.info, Node: three, Next: obj, Prev: palette, Up: Base modules + +8.29 `three' +============ + +This module fully extends the notion of guides and paths in `Asymptote' +to three dimensions. It introduces the new types guide3, path3, and +surface. Guides in three dimensions are specified with the same syntax +as in two dimensions except that triples `(x,y,z)' are used in place of +pairs `(x,y)' for the nodes and direction specifiers. This +generalization of John Hobby's spline algorithm is shape-invariant under +three-dimensional rotation, scaling, and shifting, and reduces in the +planar case to the two-dimensional algorithm used in `Asymptote', +`MetaPost', and `MetaFont' [cf. J. C. Bowman, Proceedings in Applied +Mathematics and Mechanics, 7:1, 2010021-2010022 (2007)]. + + For example, a unit circle in the XY plane may be filled and drawn +like this: + +import three; + +size(100); + +path3 g=(1,0,0)..(0,1,0)..(-1,0,0)..(0,-1,0)..cycle; +draw(g); +draw(O--Z,red+dashed,Arrow3); +draw(((-1,-1,0)--(1,-1,0)--(1,1,0)--(-1,1,0)--cycle)); +dot(g,red); + + +and then distorted into a saddle: + +import three; + +size(100,0); +path3 g=(1,0,0)..(0,1,1)..(-1,0,0)..(0,-1,1)..cycle; +draw(g); +draw(((-1,-1,0)--(1,-1,0)--(1,1,0)--(-1,1,0)--cycle)); +dot(g,red); + + +Module `three' provides constructors for converting two-dimensional +paths to three-dimensional ones, and vice-versa: +path3 path3(path p, triple plane(pair)=XYplane); +path path(path3 p, pair P(triple)=xypart); + + A Bezier surface, the natural two-dimensional generalization of +Bezier curves, is defined in `three_surface.asy' as a structure +containing an array of Bezier patches. Surfaces may drawn with one of +the routines +void draw(picture pic=currentpicture, surface s, int nu=1, int nv=1, + material surfacepen=currentpen, pen meshpen=nullpen, + light light=currentlight, light meshlight=light, string name="", + render render=defaultrender); +void draw(picture pic=currentpicture, surface s, int nu=1, int nv=1, + material[] surfacepen, pen meshpen, + light light=currentlight, light meshlight=light, string name="", + render render=defaultrender); +void draw(picture pic=currentpicture, surface s, int nu=1, int nv=1, + material[] surfacepen, pen[] meshpen=nullpens, + light light=currentlight, light meshlight=light, string name="", + render render=defaultrender); + + The parameters `nu' and `nv' specify the number of subdivisions for +drawing optional mesh lines for each Bezier patch. The optional `name' +parameter is used as a prefix for naming the surface patches in the PRC +model tree. Here material is a structure defined in `three_light.asy': +struct material { + pen[] p; // diffusepen,ambientpen,emissivepen,specularpen + real opacity; + real shininess; +... +} + These material properties are used to implement `OpenGL'-style +lighting, based on the Phong-Blinn specular model. Sample Bezier +surfaces are contained in the example files `BezierSurface.asy', +`teapot.asy', and `parametricsurface.asy'. The structure `render' +contains specialized rendering options documented at the beginning of +module `three.asy'. + + The examples `elevation.asy' and `sphericalharmonic.asy' illustrate +how to draw a surface with patch-dependent colors. The examples +`vertexshading' and `smoothelevation' illustrate vertex-dependent +colors, which is supported for both `Asymptote''s native `OpenGL' +renderer and two-dimensional projections. Since the PRC output format +does not currently support vertex shading of Bezier surfaces, PRC +patches are shaded with the mean of the four vertex colors. + + A surface can be constructed from a cyclic `path3' with the +constructor +surface surface(path3 external, triple[] internal=new triple[], + triple[] normals=new triple[], pen[] colors=new pen[], + bool3 planar=default); + and then filled: +draw(surface(path3(polygon(5))),red,nolight); +draw(surface(unitcircle3),red,nolight); +draw(surface(unitcircle3,new pen[] {red,green,blue,black}),nolight); + The last example constructs a patch with vertex-specific colors. A +three-dimensional planar surface in the plane `plane' can be +constructed from a two-dimensional cyclic path `g' with the constructor +surface surface(path p, triple plane(pair)=XYplane); + and then filled: +draw(surface((0,0)--E+2N--2E--E+N..0.2E..cycle),red); + Planar Bezier surfaces patches are constructed using Orest Shardt's +`bezulate' routine, which decomposes (possibly nonsimply connected) +regions bounded (according to the `zerowinding' fill rule) by simple +cyclic paths (intersecting only at the endpoints) into subregions +bounded by cyclic paths of length `4' or less. + + Arbitrary thick three-dimensional curves and line caps (which the +`OpenGL' standard does not require implementations to provide) are +constructed with +tube tube(path3 p, real width, render render=defaultrender); + this returns a tube structure representing a tube of diameter `width' +centered approximately on `g'. The tube structure consists of a surface +`s' and the actual tube center, path3 `center'. Drawing thick lines as +tubes can be slow to render, especially with the `Adobe Reader' +renderer. The setting `thick=false' can be used to disable this feature +and force all lines to be drawn with `linewidth(0)' (one pixel wide, +regardless of the resolution). By default, mesh and contour lines in +three-dimensions are always drawn thin, unless an explicit line width +is given in the pen parameter or the setting `thin' is set to `false'. +The pens `thin()' and `thick()' defined in plain_pens.asy can also be +used to override these defaults for specific draw commands. + +There are four choices for viewing 3D `Asymptote' output: + 1. Use the native `Asymptote' adaptive `OpenGL'-based renderer (with + the command-line option `-V' and the default settings + `outformat=""' and `render=-1'). If you encounter warnings from + your graphics card driver, try specifying `-glOptions=-indirect' + on the command line. On `UNIX' systems with graphics support for + multisampling, we recommend installing the latest SVN (antialiased) + version of the `freeglut' library (*note multisampling::); the + sample width can be controlled with the setting `multisample'. An + initial screen position can be specified with the pair setting + `position', where negative values are interpreted as relative to + the corresponding maximum screen dimension. The default settings import settings; + leftbutton=new string[] {"rotate","zoom","shift","pan"}; + middlebutton=new string[] {"menu"}; + rightbutton=new string[] {"zoom/menu","rotateX","rotateY","rotateZ"}; + wheelup=new string[] {"zoomin"}; + wheeldown=new string[] {"zoomout"}; + bind the mouse buttons as follows: + * Left: rotate + + * Shift Left: zoom + + * Ctrl Left: shift viewport + + * Alt Left: pan + + * Middle: menu (must be unmodified; ignores Shift, Ctrl, and + Alt) + + * Wheel Up: zoom in + + * Wheel Down: zoom out + + * Right: zoom/menu (must be unmodified) + + * Right double click: menu + + * Shift Right: rotate about the X axis + + * Ctrl Right: rotate about the Y axis + + * Alt Right: rotate about the Z axis + + The keyboard shortcuts are: + * h: home + + * f: toggle fitscreen + + * x: spin about the X axis + + * y: spin about the Y axis + + * z: spin about the Z axis + + * s: stop spinning + + * m: rendering mode (solid/mesh/patch) + + * e: export + + * c: show camera parameters + + * p: play animation + + * r: reverse animation + + * : step animation + + * +: expand + + * =: expand + + * >: expand + + * -: shrink + + * _: shrink + + * <: shrink + + * q: exit + + * Ctrl-q: exit + + 2. Render the scene to a specified rasterized format `outformat' at + the resolution of `n' pixels per `bp', as specified by the setting + `render=n'. A negative value of `n' is interpreted as `|2n|' for + EPS and PDF formats and `|n|' for other formats. The default value + of `render' is -1. By default, the scene is internally rendered + at twice the specified resolution; this can be disabled by setting + `antialias=1'. High resolution rendering is done by tiling the + image. If your graphics card allows it, the rendering can be made + more efficient by increasing the maximum tile size `maxtile' to + your screen dimensions (indicated by `maxtile=(0,0)'. If your + video card generates unwanted black stripes in the output, try + setting the horizontal and vertical components of `maxtiles' to + something less than your screen dimensions. The tile size is also + limited by the setting `maxviewport', which restricts the maximum + width and height of the viewport. On `UNIX' systems some graphics + drivers support batch mode (`-noV') rendering in an iconified + window; this can be enabled with the setting `iconify=true'. Some + (broken) `UNIX' graphics drivers may require the command line + setting `-glOptions=-indirect', which requests (slower) indirect + rendering. + + 3. Embed the 3D PRC format in a PDF file and view the resulting PDF + file with version `9.0' or later of `Adobe Reader'. In addition + to the default `settings.prc=true', this requires + `settings.outformat="pdf"', which can be specified by the command + line option `-f pdf', put in the `Asymptote' configuration file + (*note configuration file::), or specified in the script before + `three.asy' (or `graph3.asy') is imported. Version 2008/10/08 or + later of the `movie15' package is also required (*note embed::). + The example `pdb.asy' illustrates how one can generate a list of + predefined views (see `100d.views'). A stationary preview image + with a resolution of `n' pixels per `bp' can be embedded with the + setting `render=n'; this allows the file to be viewed with other + `PDF' viewers. Alternatively, the file `externalprc.tex' + illustrates how the resulting PRC and rendered image files can be + extracted and processed in a separate `LaTeX' file. However, see + *note LaTeX usage:: for an easier way to embed three-dimensional + `Asymptote' pictures within `LaTeX'. The open-source PRC + specification is available from + `http://livedocs.adobe.com/acrobat_sdk/9/Acrobat9_HTMLHelp/API_References/PRCReference/PRC_Format_Specification/'. + + 4. Project the scene to a two-dimensional vector (EPS or PDF) format + with `render=0'. Only limited hidden surface removal facilities + are currently available with this approach (*note PostScript3D::). + + + Automatic picture sizing in three dimensions is accomplished with +double deferred drawing. The maximal desired dimensions of the scene in +each of the three dimensions can optionally be specified with the +routine +void size3(picture pic=currentpicture, real x, real y=x, real z=y, + bool keepAspect=pic.keepAspect); + The resulting simplex linear programming problem is then solved to +produce a 3D version of a frame (actually implemented as a 3D picture). +The result is then fit with another application of deferred drawing to +the viewport dimensions corresponding to the usual two-dimensional +picture `size' parameters. The global pair `viewportmargin' may be used +to add horizontal and vertical margins to the viewport dimensions. +Alternatively, a minimum `viewportsize' may be specified. A 3D picture +`pic' can be explicitly fit to a 3D frame by calling +frame pic.fit3(projection P=currentprojection); + and then added to picture `dest' about `position' with +void add(picture dest=currentpicture, frame src, triple position=(0,0,0)); + + For convenience, the `three' module defines `O=(0,0,0)', +`X=(1,0,0)', `Y=(0,1,0)', and `Z=(0,0,1)', along with a unitcircle in +the XY plane: +path3 unitcircle3=X..Y..-X..-Y..cycle; + + A general (approximate) circle can be drawn perpendicular to the +direction `normal' with the routine +path3 circle(triple c, real r, triple normal=Z); + + A circular arc centered at `c' with radius `r' from +`c+r*dir(theta1,phi1)' to `c+r*dir(theta2,phi2)', drawing +counterclockwise relative to the normal vector +`cross(dir(theta1,phi1),dir(theta2,phi2))' if `theta2 > theta1' or if +`theta2 == theta1' and `phi2 >= phi1', can be constructed with +path3 arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, + triple normal=O); + The normal must be explicitly specified if `c' and the endpoints are +colinear. If `r' < 0, the complementary arc of radius `|r|' is +constructed. For convenience, an arc centered at `c' from triple `v1' +to `v2' (assuming `|v2-c|=|v1-c|') in the direction CCW +(counter-clockwise) or CW (clockwise) may also be constructed with +path3 arc(triple c, triple v1, triple v2, triple normal=O, + bool direction=CCW); + When high accuracy is needed, the routines `Circle' and `Arc' defined +in `graph3' may be used instead. See *note GaussianSurface:: for an +example of a three-dimensional circular arc. + + The representation `O--O+u--O+u+v--O+v--cycle' of the plane passing +through point `O' with normal `cross(u,v)' is returned by +path3 plane(triple u, triple v, triple O=O); + A three-dimensional box with opposite vertices at triples `v1' and +`v2' may be drawn with the function +path3[] box(triple v1, triple v2); + For example, a unit box is predefined as +path3[] unitbox=box(O,(1,1,1)); + `Asymptote' also provides optimized definitions for the +three-dimensional paths `unitsquare3' and `unitcircle3', along with the +surfaces `unitdisk', `unitplane', `unitcube', `unitcylinder', +`unitcone', `unitsolidcone', `unitfrustum(real t1, real t2)', +`unitsphere', and `unithemisphere'. + +These projections to two dimensions are predefined: +`oblique' + +`oblique(real angle)' + The point `(x,y,z)' is projected to `(x-0.5z,y-0.5z)'. If an + optional real argument is given, the negative z axis is drawn at + this angle in degrees. The projection `obliqueZ' is a synonym for + `oblique'. + +`obliqueX' + +`obliqueX(real angle)' + The point `(x,y,z)' is projected to `(y-0.5x,z-0.5x)'. If an + optional real argument is given, the negative x axis is drawn at + this angle in degrees. + +`obliqueY' + +`obliqueY(real angle)' + The point `(x,y,z)' is projected to `(x+0.5y,z+0.5y)'. If an + optional real argument is given, the positive y axis is drawn at + this angle in degrees. + +`orthographic(triple camera, triple up=Z, triple target=O, + real zoom=1, pair viewportshift=0, bool showtarget=true, + bool center=false)' + This projects from three to two dimensions using the view as seen + at a point infinitely far away in the direction `unit(camera)', + orienting the camera so that, if possible, the vector `up' points + upwards. Parallel lines are projected to parallel lines. The + bounding volume is expanded to include `target' if + `showtarget=true'. If `center=true', the target will be adjusted + to the center of the bounding volume. + +`orthographic(real x, real y, real z, triple up=Z, triple target=O, + real zoom=1, pair viewportshift=0, bool showtarget=true, + bool center=false)' + This is equivalent to orthographic((x,y,z),up,target,zoom,viewportshift,showtarget,center) + + The routine triple camera(real alpha, real beta); + can be used to compute the camera position with the x axis below + the horizontal at angle `alpha', the y axis below the horizontal + at angle `beta', and the z axis up. + +`perspective(triple camera, triple up=Z, triple target=O, + real zoom=1, real angle=0, pair viewportshift=0, + bool showtarget=true, bool autoadjust=true, + bool center=autoadjust)' + This projects from three to two dimensions, taking account of + perspective, as seen from the location `camera' looking at + `target', orienting the camera so that, if possible, the vector + `up' points upwards. If `render=0', projection of + three-dimensional cubic Bezier splines is implemented by + approximating a two-dimensional nonuniform rational B-spline + (NURBS) with a two-dimensional Bezier curve containing additional + nodes and control points. If `autoadjust=true', the camera will + automatically be adjusted to lie outside the bounding volume for + all possible interactive rotations about `target'. If + `center=true', the target will be adjusted to the center of the + bounding volume. + +`perspective(real x, real y, real z, triple up=Z, triple target=O, + real zoom=1, real angle=0, pair viewportshift=0, + bool showtarget=true, bool autoadjust=true, + bool center=autoadjust)' + This is equivalent to perspective((x,y,z),up,target,zoom,angle,viewportshift,showtarget, + autoadjust,center) + +The default projection, `currentprojection', is initially set to +`perspective(5,4,2)'. + + We also define standard orthographic views used in technical drawing: +projection LeftView=orthographic(-X,showtarget=true); +projection RightView=orthographic(X,showtarget=true); +projection FrontView=orthographic(-Y,showtarget=true); +projection BackView=orthographic(Y,showtarget=true); +projection BottomView=orthographic(-Z,showtarget=true); +projection TopView=orthographic(Z,showtarget=true); + The function +void addViews(picture dest=currentpicture, picture src, + projection[][] views=SixViewsUS, + bool group=true, filltype filltype=NoFill); + adds to picture `dest' an array of views of picture `src' using the +layout projection[][] `views'. The default layout `SixViewsUS' aligns +the projection `FrontView' below `TopView' and above `BottomView', to +the right of `LeftView' and left of `RightView' and `BackView'. The +predefined layouts are: +projection[][] ThreeViewsUS={{TopView}, + {FrontView,RightView}}; + +projection[][] SixViewsUS={{null,TopView}, + {LeftView,FrontView,RightView,BackView}, + {null,BottomView}}; + +projection[][] ThreeViewsFR={{RightView,FrontView}, + {null,TopView}}; + +projection[][] SixViewsFR={{null,BottomView}, + {RightView,FrontView,LeftView,BackView}, + {null,TopView}}; + +projection[][] ThreeViews={{FrontView,TopView,RightView}}; + +projection[][] SixViews={{FrontView,TopView,RightView}, + {BackView,BottomView,LeftView}}; + + A triple or path3 can be projected to a pair or path, with +`project(triple, projection P=currentprojection)' or `project(path3, +projection P=currentprojection)'. + + It is occasionally useful to be able to invert a projection, sending +a pair `z' onto the plane perpendicular to `normal' and passing through +`point': +triple invert(pair z, triple normal, triple point, + projection P=currentprojection); + A pair `z' on the projection plane can be inverted to a triple with +the routine +triple invert(pair z, projection P=currentprojection); + A pair direction `dir' on the projection plane can be inverted to a +triple direction relative to a point `v' with the routine +triple invert(pair dir, triple v, projection P=currentprojection). + + Three-dimensional objects may be transformed with one of the +following built-in transform3 types (the identity transformation is +`identity4'): + +`shift(triple v)' + translates by the triple `v'; + +`xscale3(real x)' + scales by `x' in the x direction; + +`yscale3(real y)' + scales by `y' in the y direction; + +`zscale3(real z)' + scales by `z' in the z direction; + +`scale3(real s)' + scales by `s' in the x, y, and z directions; + +`scale(real x, real y, real z)' + scales by `x' in the x direction, by `y' in the y direction, and + by `z' in the z direction; + +`rotate(real angle, triple v)' + rotates by `angle' in degrees about an axis `v' through the origin; + +`rotate(real angle, triple u, triple v)' + rotates by `angle' in degrees about the axis `u--v'; + +`reflect(triple u, triple v, triple w)' + reflects about the plane through `u', `v', and `w'. + + When not multiplied on the left by a transform3, three-dimensional +TeX Labels are drawn as Bezier surfaces directly on the projection +plane: +void label(picture pic=currentpicture, Label L, triple position, + align align=NoAlign, pen p=currentpen, + light light=nolight, string name="", + render render=defaultrender, interaction interaction= + settings.autobillboard ? Billboard : Embedded) + The optional `name' parameter is used as a prefix for naming the label +patches in the PRC model tree. The default interaction is `Billboard', +which means that labels are rotated interactively so that they always +face the camera. The interaction `Embedded' means that the label +interacts as a normal `3D' surface, as illustrated in the example +`billboard.asy'. Alternatively, a label can be transformed from the +`XY' plane by an explicit transform3 or mapped to a specified +two-dimensional plane with the predefined transform3 types `XY', `YZ', +`ZX', `YX', `ZY', `ZX'. There are also modified versions of these +transforms that take an optional argument `projection +P=currentprojection' that rotate and/or flip the label so that it is +more readable from the initial viewpoint. + + A transform3 that projects in the direction `dir' onto the plane +with normal `n' through point `O' is returned by +transform3 planeproject(triple n, triple O=O, triple dir=n); + One can use +triple normal(path3 p); + to find the unit normal vector to a planar three-dimensional path `p'. +As illustrated in the example `planeproject.asy', a transform3 that +projects in the direction `dir' onto the plane defined by a planar path +`p' is returned by +transform3 planeproject(path3 p, triple dir=normal(p)); + + The functions +surface extrude(path p, triple axis=Z); +surface extrude(Label L, triple axis=Z); + return the surface obtained by extruding path `p' or Label `L' along +`axis'. + + Three-dimensional versions of the path functions `length', `size', +`point', `dir', `accel', `radius', `precontrol', `postcontrol', +`arclength', `arctime', `reverse', `subpath', `intersect', +`intersections', `intersectionpoint', `intersectionpoints', `min', +`max', `cyclic', and `straight' are also defined. + + The routine +real[][] intersections(path3 p, surface s, real fuzz=-1); + returns the intersection times of a path `p' with a surface `s' as a +sorted array of real arrays of length 2, and +triple[] intersectionpoints(path3 p, surface s, real fuzz=-1); + returns the corresponding intersection points. Here, the computations +are performed to the absolute error specified by `fuzz', or if `fuzz < +0', to machine precision. + + Here is an example showing all five guide3 connectors: + +import graph3; + +size(200); + +currentprojection=orthographic(500,-500,500); + +triple[] z=new triple[10]; + +z[0]=(0,100,0); z[1]=(50,0,0); z[2]=(180,0,0); + +for(int n=3; n <= 9; ++n) + z[n]=z[n-3]+(200,0,0); + +path3 p=z[0]..z[1]---z[2]::{Y}z[3] +&z[3]..z[4]--z[5]::{Y}z[6] +&z[6]::z[7]---z[8]..{Y}z[9]; + +draw(p,grey+linewidth(4mm),currentlight); + +xaxis3(Label(XY()*"$x$",align=-3Y),red,above=true); +yaxis3(Label(XY()*"$y$",align=-3X),red,above=true); + + + +Three-dimensional versions of bars or arrows can be drawn with one of +the specifiers `None', `Blank', `BeginBar3', `EndBar3' (or equivalently +`Bar3'), `Bars3', `BeginArrow3', `MidArrow3', `EndArrow3' (or +equivalently `Arrow3'), `Arrows3', `BeginArcArrow3', `EndArcArrow3' (or +equivalently `ArcArrow3'), `MidArcArrow3', and `ArcArrows3'. +Three-dimensional bars accept the optional arguments `(real size=0, +triple dir=O)'. If `size=O', the default bar length is used; if +`dir=O', the bar is drawn perpendicular to the path and the initial +viewing direction. The predefined three-dimensional arrowhead styles +are `DefaultHead3', `HookHead3', `TeXHead3'. Versions of the +two-dimensional arrowheads lifted to three-dimensional space and +aligned according to the initial viewpoint (or an optionally specified +`normal' vector) are also defined: `DefaultHead2(triple normal=O)', +`HookHead2(triple normal=O)', `TeXHead2(triple normal=O)'. These are +illustrated in the example `arrows3.asy'. + + Module `three' also defines the three-dimensional margins +`NoMargin3', `BeginMargin3', `EndMargin3', `Margin3', `Margins3', +`BeginPenMargin2', `EndPenMargin2', `PenMargin2', `PenMargins2', +`BeginPenMargin3', `EndPenMargin3', `PenMargin3', `PenMargins3', +`BeginDotMargin3', `EndDotMargin3', `DotMargin3', `DotMargins3', +`Margin3', and `TrueMargin3'. + + The routine +void pixel(picture pic=currentpicture, triple v, pen p=currentpen, + real width=1); + can be used to draw on picture `pic' a pixel of width `width' at +position `v' using pen `p'. + + Further three-dimensional examples are provided in the files +`near_earth.asy', `conicurv.asy', and (in the `animations' +subdirectory) `cube.asy'. + + Limited support for projected vector graphics (effectively +three-dimensional nonrendered `PostScript') is available with the +setting `render=0'. This currently only works for piecewise planar +surfaces, such as those produced by the parametric `surface' routines +in the `graph3' module. Surfaces produced by the `solids' package will +also be properly rendered if the parameter `nslices' is sufficiently +large. + + In the module `bsp', hidden surface removal of planar pictures is +implemented using a binary space partition and picture clipping. A +planar path is first converted to a structure `face' derived from +`picture'. A `face' may be given to a two-dimensional drawing routine +in place of any `picture' argument. An array of such faces may then be +drawn, removing hidden surfaces: +void add(picture pic=currentpicture, face[] faces, + projection P=currentprojection); + Labels may be projected to two dimensions, using projection `P', onto +the plane passing through point `O' with normal `cross(u,v)' by +multiplying it on the left by the transform +transform transform(triple u, triple v, triple O=O, + projection P=currentprojection); + + Here is an example that shows how a binary space partition may be +used to draw a two-dimensional vector graphics projection of three +orthogonal intersecting planes: + +size(6cm,0); +import bsp; + +real u=2.5; +real v=1; + +currentprojection=oblique; + +path3 y=plane((2u,0,0),(0,2v,0),(-u,-v,0)); +path3 l=rotate(90,Z)*rotate(90,Y)*y; +path3 g=rotate(90,X)*rotate(90,Y)*y; + +face[] faces; +filldraw(faces.push(y),project(y),yellow); +filldraw(faces.push(l),project(l),lightgrey); +filldraw(faces.push(g),project(g),green); + +add(faces); + + + + +File: asymptote.info, Node: obj, Next: graph3, Prev: three, Up: Base modules + +8.30 `obj' +========== + +This module allows one to construct surfaces from simple obj files, as +illustrated in the example files `galleon.asy' and `triceratops.asy'. + + +File: asymptote.info, Node: graph3, Next: grid3, Prev: obj, Up: Base modules + +8.31 `graph3' +============= + +This module implements three-dimensional versions of the functions in +`graph.asy'. To draw an x axis in three dimensions, use the routine +void xaxis3(picture pic=currentpicture, Label L="", axis axis=YZZero, + real xmin=-infinity, real xmax=infinity, pen p=currentpen, + ticks3 ticks=NoTicks3, arrowbar3 arrow=None, bool above=false); + Analogous routines `yaxis' and `zaxis' can be used to draw y and z +axes in three dimensions. There is also a routine for drawing all +three axis: +void axes3(picture pic=currentpicture, + Label xlabel="", Label ylabel="", Label zlabel="", + triple min=(-infinity,-infinity,-infinity), + triple max=(infinity,infinity,infinity), + pen p=currentpen, arrowbar3 arrow=None); + +The predefined three-dimensional axis types are +axis YZEquals(real y, real z, triple align=O, bool extend=false); +axis XZEquals(real x, real z, triple align=O, bool extend=false); +axis XYEquals(real x, real y, triple align=O, bool extend=false); +axis YZZero(triple align=O, bool extend=false); +axis XZZero(triple align=O, bool extend=false); +axis XYZero(triple align=O, bool extend=false); +axis Bounds(int type=Both, int type2=Both, triple align=O, bool extend=false); + The optional `align' parameter to these routines can be used to +specify the default axis and tick label alignments. The `Bounds' axis +accepts two type parameters, each of which must be one of `Min', `Max', +or `Both'. These parameters specify which of the four possible +three-dimensional bounding box edges should be drawn. + + The three-dimensional tick options are `NoTicks3', `InTicks', +`OutTicks', and `InOutTicks'. These specify the tick directions for the +`Bounds' axis type; other axis types inherit the direction that would +be used for the `Bounds(Min,Min)' axis. + + Here is an example of a helix and bounding box axes with ticks and +axis labels, using orthographic projection: + +import graph3; + +size(0,200); +size3(200,IgnoreAspect); + +currentprojection=orthographic(4,6,3); + +real x(real t) {return cos(2pi*t);} +real y(real t) {return sin(2pi*t);} +real z(real t) {return t;} + +path3 p=graph(x,y,z,0,2.7,operator ..); + +draw(p,Arrow3); + +scale(true); + +xaxis3(XZ()*"$x$",Bounds,red,InTicks(Label,2,2)); +yaxis3(YZ()*"$y$",Bounds,red,InTicks(beginlabel=false,Label,2,2)); +zaxis3(XZ()*"$z$",Bounds,red,InTicks); + + + +The next example illustrates three-dimensional x, y, and z axes, +without autoscaling of the axis limits: + +import graph3; + +size(0,200); +size3(200,IgnoreAspect); + +currentprojection=perspective(5,2,2); + +scale(Linear,Linear,Log); + +xaxis3("$x$",0,1,red,OutTicks(2,2)); +yaxis3("$y$",0,1,red,OutTicks(2,2)); +zaxis3("$z$",1,30,red,OutTicks(beginlabel=false)); + + + +One can also place ticks along a general three-dimensional axis: + +import graph3; + +size(0,100); + +path3 g=yscale3(2)*unitcircle3; +currentprojection=perspective(10,10,10); + +axis(Label("C",position=0,align=15X),g,InTicks(endlabel=false,8,end=false), + ticklocate(0,360,new real(real v) { + path3 h=O--max(abs(max(g)),abs(min(g)))*dir(90,v); + return intersect(g,h)[0];}, + new triple(real t) {return cross(dir(g,t),Z);})); + + + +Surface plots of matrices and functions over the region `box(a,b)' in +the XY plane are also implemented: +surface surface(real[][] f, pair a, pair b, bool[][] cond={}); +surface surface(real[][] f, pair a, pair b, splinetype xsplinetype, + splinetype ysplinetype=xsplinetype, bool[][] cond={}); +surface surface(real[][] f, real[] x, real[] y, + splinetype xsplinetype=null, splinetype ysplinetype=xsplinetype, + bool[][] cond={}) +surface surface(triple[][] f, bool[][] cond={}); +surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx, + bool cond(pair z)=null); +surface surface(real f(pair z), pair a, pair b, int nx=nmesh, int ny=nx, + splinetype xsplinetype, splinetype ysplinetype=xsplinetype, + bool cond(pair z)=null); +surface surface(triple f(pair z), real[] u, real[] v, + splinetype[] usplinetype, splinetype[] vsplinetype=Spline, + bool cond(pair z)=null); +surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu, + bool cond(pair z)=null); +surface surface(triple f(pair z), pair a, pair b, int nu=nmesh, int nv=nu, + splinetype[] usplinetype, splinetype[] vsplinetype=Spline, + bool cond(pair z)=null); + The final two versions draw parametric surfaces for a function f(u,v) +over the parameter space `box(a,b)', as illustrated in the example +`parametricsurface.asy'. An optional splinetype `Spline' may be +specified. The boolean array or function `cond' can be used to control +which surface mesh cells are actually drawn (by default all mesh cells +over `box(a,b)' are drawn). Surface lighting is illustrated in the +example files `parametricsurface.asy' and `sinc.asy'. Lighting can be +disabled by setting `light=nolight', as in this example of a Gaussian +surface: + +import graph3; + +size(200,0); + +currentprojection=perspective(10,8,4); + +real f(pair z) {return 0.5+exp(-abs(z)^2);} + +draw((-1,-1,0)--(1,-1,0)--(1,1,0)--(-1,1,0)--cycle); + +draw(arc(0.12Z,0.2,90,60,90,25),ArcArrow3); + +surface s=surface(f,(-1,-1),(1,1),nx=5,Spline); + +xaxis3(Label("$x$"),red,Arrow3); +yaxis3(Label("$y$"),red,Arrow3); +zaxis3(XYZero(extend=true),red,Arrow3); + +draw(s,lightgray,meshpen=black+thick(),nolight,render(merge=true)); + +label("$O$",O,-Z+Y,red); + + +A mesh can be drawn without surface filling by specifying `nullpen' for +the surfacepen. + + A vector field of `nu'\times`nv' arrows on a parametric surface `f' +over `box(a,b)' can be drawn with the routine +picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, + int nu=nmesh, int nv=nu, bool truesize=false, + real maxlength=truesize ? 0 : maxlength(f,a,b,nu,nv), + bool cond(pair z)=null, pen p=currentpen, + arrowbar3 arrow=Arrow3, margin3 margin=PenMargin3) + as illustrated in the examples `vectorfield3.asy' and +`vectorfieldsphere.asy'. + + +File: asymptote.info, Node: grid3, Next: solids, Prev: graph3, Up: Base modules + +8.32 `grid3' +============ + +This module, contributed by Philippe Ivaldi, can be used for drawing 3D +grids. Here is an example (further examples can be found in `grid3.asy' +and at `http://www.piprime.fr/files/asymptote/grid3/'): + +import grid3; + +size(8cm,0,IgnoreAspect); +currentprojection=orthographic(0.5,1,0.5); + +scale(Linear, Linear, Log); + +limits((-2,-2,1),(0,2,100)); + +grid3(XYZgrid); + +xaxis3(Label("$x$",position=EndPoint,align=S),Bounds(Min,Min), + OutTicks()); +yaxis3(Label("$y$",position=EndPoint,align=S),Bounds(Min,Min),OutTicks()); +zaxis3(Label("$z$",position=EndPoint,align=(-1,0.5)),Bounds(Min,Min), + OutTicks(beginlabel=false)); + + + + +File: asymptote.info, Node: solids, Next: tube, Prev: grid3, Up: Base modules + +8.33 `solids' +============= + +This solid geometry package defines a structure `revolution' that can +be used to fill and draw surfaces of revolution. The following example +uses it to display the outline of a circular cylinder of radius 1 with +axis `O--1.5unit(Y+Z)' with perspective projection: + +import solids; + +size(0,100); + +revolution r=cylinder(O,1,1.5,Y+Z); +draw(r,heavygreen); + + + +Further illustrations are provided in the example files `cylinder.asy', +`cones.asy', `hyperboloid.asy', and `torus.asy'. + + The structure `skeleton' contains the three-dimensional wireframe +used to visualize a volume of revolution: +struct skeleton { + struct curve { + path3[] front; + path3[] back; + } + // transverse skeleton (perpendicular to axis of revolution) + curve transverse; + // longitudinal skeleton (parallel to axis of revolution) + curve longitudinal; +} + + +File: asymptote.info, Node: tube, Next: flowchart, Prev: solids, Up: Base modules + +8.34 `tube' +=========== + +This package extends the `tube' surfaces constructed in +`three_arrows.asy' to arbitrary cross sections, colors, and spine +transformations. The routine +surface tube(path3 g, coloredpath section, + transform T(real)=new transform(real t) {return identity();}, + real corner=1, real relstep=0); + draws a tube along `g' with cross section `section', after applying +the transformation `T(t)' at `relpoint(g,t)'. The parameter `corner' +controls the number of elementary tubes at the angular points of `g'. A +nonzero value of `relstep' specifies a fixed relative time step (in the +sense of `relpoint(g,t)') to use in constructing elementary tubes along +`g'. The type `coloredpath' is a generalization of `path' to which a +`path' can be cast: +struct coloredpath +{ + path p; + pen[] pens(real); + int colortype=coloredSegments; +} + Here `p' defines the cross section and the method `pens(real t)' +returns an array of pens (interpreted as a cyclic array) used for +shading the tube patches at `relpoint(g,t)'. If +`colortype=coloredSegments', the tube patches are filled as if each +segment of the section was colored with the pen returned by `pens(t)', +whereas if `colortype=coloredNodes', the tube components are vertex +shaded as if the nodes of the section were colored. + + A `coloredpath' can be constructed with one of the routines: +coloredpath coloredpath(path p, pen[] pens(real), + int colortype=coloredSegments); +coloredpath coloredpath(path p, pen[] pens=new pen[] {currentpen}, + int colortype=coloredSegments); +coloredpath coloredpath(path p, pen pen(real)); + In the second case, the pens are independent of the relative time. In +the third case, the array of pens contains only one pen, which depends +of the relative time. + + The casting of `path' to `coloredpath' allows the use of a `path' +instead of a `coloredpath'; in this case the shading behaviour is the +default shading behavior for a surface. + + An example of `tube' is provided in the file `trefoilknot.asy'. +Further examples can be found at +`http://www.piprime.fr/files/asymptote/tube/'. + + +File: asymptote.info, Node: flowchart, Next: contour, Prev: tube, Up: Base modules + +8.35 `flowchart' +================ + +This package provides routines for drawing flowcharts. The primary +structure is a `block', which represents a single block on the +flowchart. The following eight functions return a position on the +appropriate edge of the block, given picture transform `t': + +pair block.top(transform t=identity()); +pair block.left(transform t=identity()); +pair block.right(transform t=identity()); +pair block.bottom(transform t=identity()); +pair block.topleft(transform t=identity()); +pair block.topright(transform t=identity()); +pair block.bottomleft(transform t=identity()); +pair block.bottomright(transform t=identity()); + + +To obtain an arbitrary position along the boundary of the block in user +coordinates, use: +pair block.position(real x, transform t=identity()); + + +The center of the block in user coordinates is stored in `block.center' +and the block size in `PostScript' coordinates is given by `block.size'. + +A frame containing the block is returned by +frame block.draw(pen p=currentpen); + + + The following block generation routines accept a Label, string, or +frame for their object argument: + +"rectangular block with an optional header (and padding `dx' around header and body):" + block rectangle(object header, object body, pair center=(0,0), + pen headerpen=mediumgray, pen bodypen=invisible, + pen drawpen=currentpen, + real dx=3, real minheaderwidth=minblockwidth, + real minheaderheight=minblockwidth, + real minbodywidth=minblockheight, + real minbodyheight=minblockheight); + block rectangle(object body, pair center=(0,0), + pen fillpen=invisible, pen drawpen=currentpen, + real dx=3, real minwidth=minblockwidth, + real minheight=minblockheight); + +"parallelogram block:" + block parallelogram(object body, pair center=(0,0), + pen fillpen=invisible, pen drawpen=currentpen, + real dx=3, real slope=2, + real minwidth=minblockwidth, + real minheight=minblockheight); + +"diamond-shaped block:" + block diamond(object body, pair center=(0,0), + pen fillpen=invisible, pen drawpen=currentpen, + real ds=5, real dw=1, + real height=20, real minwidth=minblockwidth, + real minheight=minblockheight); + +"circular block:" + block circle(object body, pair center=(0,0), pen fillpen=invisible, + pen drawpen=currentpen, real dr=3, + real mindiameter=mincirclediameter); + +"rectangular block with rounded corners:" + block roundrectangle(object body, pair center=(0,0), + pen fillpen=invisible, pen drawpen=currentpen, + real ds=5, real dw=0, real minwidth=minblockwidth, + real minheight=minblockheight); + +"rectangular block with beveled edges:" + block bevel(object body, pair center=(0,0), pen fillpen=invisible, + pen drawpen=currentpen, real dh=5, real dw=5, + real minwidth=minblockwidth, real minheight=minblockheight); + + + To draw paths joining the pairs in `point' with right-angled lines, +use the routine: +path path(pair point[] ... flowdir dir[]); + The entries in `dir' identify whether successive segments between the +pairs specified by `point' should be drawn in the `Horizontal' or +`Vertical' direction. + + Here is a simple flowchart example (see also the example +`controlsystem.asy'): + +size(0,300); + +import flowchart; + +block block1=rectangle(Label("Example",magenta), + pack(Label("Start:",heavygreen),"",Label("$A:=0$",blue), + "$B:=1$"),(-0.5,3),palegreen,paleblue,red); +block block2=diamond(Label("Choice?",blue),(0,2),palegreen,red); +block block3=roundrectangle("Do something",(-1,1)); +block block4=bevel("Don't do something",(1,1)); +block block5=circle("End",(0,0)); + +draw(block1); +draw(block2); +draw(block3); +draw(block4); +draw(block5); + +add(new void(picture pic, transform t) { + blockconnector operator --=blockconnector(pic,t); + // draw(pic,block1.right(t)--block2.top(t)); + block1--Right--Down--Arrow--block2; + block2--Label("Yes",0.5,NW)--Left--Down--Arrow--block3; + block2--Right--Label("No",0.5,NE)--Down--Arrow--block4; + block4--Down--Left--Arrow--block5; + block3--Down--Right--Arrow--block5; + }); + + + + +File: asymptote.info, Node: contour, Next: contour3, Prev: flowchart, Up: Base modules + +8.36 `contour' +============== + +This package draws contour lines. To construct contours corresponding +to the values in a real array `c' for a function `f' on `box(a,b)', use +the routine +guide[][] contour(real f(real, real), pair a, pair b, + real[] c, int nx=ngraph, int ny=nx, + interpolate join=operator --, int subsample=1); + The integers `nx' and `ny' define the resolution. The default +resolution, `ngraph x ngraph' (here `ngraph' defaults to `100') can be +increased for greater accuracy. The default interpolation operator is +`operator --' (linear). Spline interpolation (`operator ..') may +produce smoother contours but it can also lead to overshooting. The +`subsample' parameter indicates the number of interior points that +should be used to sample contours within each `1 x 1' box; the default +value of `1' is usually sufficient. + + To construct contours for an array of data values on a uniform +two-dimensional lattice on `box(a,b)', use +guide[][] contour(real[][] f, pair a, pair b, real[] c, + interpolate join=operator --, int subsample=1); + + To construct contours for an array of data values on a nonoverlapping +regular mesh specified by the two-dimensional array `z', +guide[][] contour(pair[][] z, real[][] f, real[] c, + interpolate join=operator --, int subsample=1); + + To construct contours for an array of values `f' specified at +irregularly positioned points `z', use the routine +guide[][] contour(pair[] z, real[] f, real[] c, + interpolate join=operator --, int subsample=1); + The contours themselves can be drawn with one of the routines +void draw(picture pic=currentpicture, Label[] L=new Label[], + guide[][] g, pen p=currentpen); + +void draw(picture pic=currentpicture, Label[] L=new Label[], + guide[][] g, pen[] p); + + The following simple example draws the contour at value `1' for the +function z=x^2+y^2, which is a unit circle: + +import contour; +size(75); + +real f(real a, real b) {return a^2+b^2;} +draw(contour(f,(-1,-1),(1,1),new real[] {1})); + + + +The next example draws and labels multiple contours for the function +z=x^2-y^2 with the resolution `100 x 100', using a dashed pen for +negative contours and a solid pen for positive (and zero) contours: + +import contour; + +size(200); + +real f(real x, real y) {return x^2-y^2;} +int n=10; +real[] c=new real[n]; +for(int i=0; i < n; ++i) c[i]=(i-n/2)/n; + +pen[] p=sequence(new pen(int i) { + return (c[i] >= 0 ? solid : dashed)+fontsize(6pt); + },c.length); + +Label[] Labels=sequence(new Label(int i) { + return Label(c[i] != 0 ? (string) c[i] : "",Relative(unitrand()),(0,0), + UnFill(1bp)); + },c.length); + +draw(Labels,contour(f,(-1,-1),(1,1),c),p); + + + +The next example illustrates how contour lines can be drawn on color +density images: + +import graph; +import palette; +import contour; + +size(10cm,10cm,IgnoreAspect); + +pair a=(0,0); +pair b=(2pi,2pi); + +real f(real x, real y) {return cos(x)*sin(y);} + +int N=200; +int Divs=10; +int divs=2; + +defaultpen(1bp); +pen Tickpen=black; +pen tickpen=gray+0.5*linewidth(currentpen); +pen[] Palette=BWRainbow(); + +bounds range=image(f,Automatic,a,b,N,Palette); + +// Major contours + +real[] Cvals=uniform(range.min,range.max,Divs); +draw(contour(f,a,b,Cvals,N,operator --),Tickpen); + +// Minor contours +real[] cvals; +for(int i=0; i < Cvals.length-1; ++i) + cvals.append(uniform(Cvals[i],Cvals[i+1],divs)[1:divs]); +draw(contour(f,a,b,cvals,N,operator --),tickpen); + +xaxis("$x$",BottomTop,LeftTicks,above=true); +yaxis("$y$",LeftRight,RightTicks,above=true); + +palette("$f(x,y)$",range,point(NW)+(0,0.5),point(NE)+(0,1),Top,Palette, + PaletteTicks(N=Divs,n=divs,Tickpen,tickpen)); + + + +Finally, here is an example that illustrates the construction of +contours from irregularly spaced data: + +import contour; + +size(200); + +int n=100; + +real f(real a, real b) {return a^2+b^2;} + +srand(1); + +real r() {return 1.1*(rand()/randMax*2-1);} + +pair[] points=new pair[n]; +real[] values=new real[n]; + +for(int i=0; i < n; ++i) { + points[i]=(r(),r()); + values[i]=f(points[i].x,points[i].y); +} + +draw(contour(points,values,new real[]{0.25,0.5,1},operator ..),blue); + + + +In the above example, the contours of irregularly spaced data are +constructed by first creating a triangular mesh from an array `z' of +pairs: + +int[][] triangulate(pair[] z); + +size(200); +int np=100; +pair[] points; + +real r() {return 1.2*(rand()/randMax*2-1);} + +for(int i=0; i < np; ++i) + points.push((r(),r())); + +int[][] trn=triangulate(points); + +for(int i=0; i < trn.length; ++i) { + draw(points[trn[i][0]]--points[trn[i][1]]); + draw(points[trn[i][1]]--points[trn[i][2]]); + draw(points[trn[i][2]]--points[trn[i][0]]); +} + +for(int i=0; i < np; ++i) + dot(points[i],red); + + + +The example `Gouraudcontour' illustrates how to produce color density +images over such irregular triangular meshes. `Asymptote' uses a +robust version of Paul Bourke's Delaunay triangulation algorithm based +on the public-domain exact arithmetic predicates written by Jonathan +Shewchuk. + + +File: asymptote.info, Node: contour3, Next: slopefield, Prev: contour, Up: Base modules + +8.37 `contour3' +=============== + +This package draws surfaces described as the null space of real-valued +functions of (x,y,z) or real[][][] matrices. Its usage is illustrated +in the example file `magnetic.asy'. + + +File: asymptote.info, Node: slopefield, Next: ode, Prev: contour3, Up: Base modules + +8.38 `slopefield' +================= + +To draw a slope field for the differential equation dy/dx=f(x,y) (or +dy/dx=f(x)), use: +picture slopefield(real f(real,real), pair a, pair b, + int nx=nmesh, int ny=nx, + real tickfactor=0.5, pen p=currentpen, + arrowbar arrow=None); + Here, the points `a' and `b' are the lower left and upper right +corners of the rectangle in which the slope field is to be drawn, `nx' +and `ny' are the respective number of ticks in the x and y directions, +`tickfactor' is the fraction of the minimum cell dimension to use for +drawing ticks, and `p' is the pen to use for drawing the slope fields. +The return value is a picture that can be added to `currentpicture' via +the `add(picture)' command. + + The function +path curve(pair c, real f(real,real), pair a, pair b); + takes a point (`c') and a slope field-defining function `f' and +returns, as a path, the curve passing through that point. The points +`a' and `b' represent the rectangular boundaries over which the curve +is interpolated. + + Both `slopefield' and `curve' alternatively accept a function `real +f(real)' that depends on x only, as seen in this example: + +import slopefield; + +size(200); + +real func(real x) {return 2x;} +add(slopefield(func,(-3,-3),(3,3),20,Arrow)); +draw(curve((0,0),func,(-3,-3),(3,3)),red); + + + + +File: asymptote.info, Node: ode, Prev: slopefield, Up: Base modules + +8.39 `ode' +========== + +The `ode' module, illustrated in the example `odetest.asy', implements +a number of explicit numerical integration schemes for ordinary +differential equations. + + +File: asymptote.info, Node: Options, Next: Interactive mode, Prev: Base modules, Up: Top + +9 Command-line options +********************** + +Type `asy -h' to see the full list of command-line options supported by +`Asymptote': + +Usage: ../asy [options] [file ...] + +Options (negate by replacing - with -no): + +-V,-View View output; command-line only +-a,-align C|B|T|Z Center, Bottom, Top, or Zero page alignment [C] +-antialias n Antialiasing width for rasterized output [2] +-arcballradius pixels Arcball radius [750] +-auto3D Automatically activate 3D scene [true] +-autobillboard 3D labels always face viewer by default [true] +-autoimport string Module to automatically import +-autoplain Enable automatic importing of plain [true] +-autoplay Autoplay 3D animations [false] +-autorotate Enable automatic PDF page rotation [false] +-batchMask Mask fpu exceptions in batch mode [false] +-batchView View output in batch mode [false] +-bw Convert all colors to black and white [false] +-cd directory Set current directory; command-line only +-cmyk Convert rgb colors to cmyk [false] +-c,-command string Command to autoexecute +-compact Conserve memory at the expense of speed [false] +-d,-debug Enable debugging messages [false] +-divisor n Garbage collect using purge(divisor=n) [2] +-doubleclick ms Emulated double-click timeout [200] +-embed Embed rendered preview image [true] +-exitonEOF Exit interactive mode on EOF [true] +-fitscreen Fit rendered image to screen [true] +-framedelay ms Additional frame delay [0] +-framerate frames/s Animation speed [30] +-globalwrite Allow write to other directory [false] +-gray Convert all colors to grayscale [false] +-h,-help Show summary of options; command-line only +-historylines n Retain n lines of history [1000] +-iconify Iconify rendering window [false] +-inlineimage Generate inline embedded image [false] +-inlinetex Generate inline TeX code [false] +-interactiveMask Mask fpu exceptions in interactive mode [true] +-interactiveView View output in interactive mode [true] +-interactiveWrite Write expressions entered at the prompt to stdout [true] +-k,-keep Keep intermediate files [false] +-keepaux Keep intermediate LaTeX .aux files [false] +-level n Postscript level [3] +-l,-listvariables List available global functions and variables [false] +-localhistory Use a local interactive history file [false] +-loop Loop 3D animations [false] +-m,-mask Mask fpu exceptions; command-line only +-maxtile pair Maximum rendering tile size [(1024,768)] +-maxviewport pair Maximum viewport size [(2048,2048)] +-multiline Input code over multiple lines at the prompt [false] +-multipleView View output from multiple batch-mode files [false] +-multisample n Multisampling width for screen images [4] +-offscreen Use offscreen rendering [false] +-O,-offset pair PostScript offset [(0,0)] +-f,-outformat format Convert each output file to specified format +-o,-outname name Alternative output directory/filename +-p,-parseonly Parse file [false] +-pdfreload Automatically reload document in pdfviewer [false] +-pdfreloaddelay usec Delay before attempting initial pdf reload [750000] +-position pair Initial 3D rendering screen position [(0,0)] +-prc Embed 3D PRC graphics in PDF output [true] +-prompt string Prompt [> ] +-prompt2 string Continuation prompt for multiline input [..] +-q,-quiet Suppress welcome message [false] +-render n Render 3D graphics using n pixels per bp (-1=auto) [-1] +-resizestep step Resize step [1.2] +-reverse reverse 3D animations [false] +-rgb Convert cmyk colors to rgb [false] +-safe Disable system call [true] +-scroll n Scroll standard output n lines at a time [0] +-spinstep deg/s Spin speed [60] +-svgemulation Emulate unimplemented SVG shading [false] +-tabcompletion Interactive prompt auto-completion [true] +-tex engine latex|pdflatex|xelatex|tex|pdftex|context|none [latex] +-thick Render thick 3D lines [true] +-thin Render thin 3D lines [true] +-threads Use POSIX threads for 3D rendering [true] +-toolbar Show 3D toolbar in PDF output [true] +-s,-translate Show translated virtual machine code [false] +-twice Run LaTeX twice (to resolve references) [false] +-twosided Use two-sided 3D lighting model for rendering [true] +-u,-user string General purpose user string +-v,-verbose Increase verbosity level (can specify multiple times) [0] +-version Show version; command-line only +-wait Wait for child processes to finish before exiting [false] +-warn string Enable warning; command-line only +-where Show where listed variables are declared [false] +-zoomfactor factor Zoom step factor [1.05] +-zoomstep step Mouse motion zoom step [0.1] + + All boolean options can be negated by prepending `no' to the option +name. + + If no arguments are given, `Asymptote' runs in interactive mode +(*note Interactive mode::). In this case, the default output file is +`out.eps'. + + If `-' is given as the file argument, `Asymptote' reads from +standard input. + + If multiple files are specified, they are treated as separate +`Asymptote' runs. + + If the string `autoimport' is nonempty, a module with this name is +automatically imported for each run as the final step in loading module +`plain'. + + Default option values may be entered as `Asymptote' code in a +configuration file named `config.asy' (or the file specified by the +environment variable `ASYMPTOTE_CONFIG' or `-config' option). +`Asymptote' will look for this file in its usual search path (*note +Search paths::). Typically the configuration file is placed in the +`.asy' directory in the user's home directory (`%USERPROFILE%\.asy' +under `MSDOS'). Configuration variables are accessed using the long +form of the option names: +import settings; +outformat="pdf"; +batchView=false; +interactiveView=true; +batchMask=false; +interactiveMask=true; + Command-line options override these defaults. Most configuration +variables may also be changed at runtime. The advanced configuration +variables `dvipsOptions', `hyperrefOptions', `convertOptions', +`gsOptions', `psviewerOptions', `pdfviewerOptions', and `glOptions' +allow specialized options to be passed as a string to the respective +applications or libraries. The default value of `hyperrefOptions' is +`setpagesize=false,unicode,pdfborder=0 0 0'. + + If you insert +import plain; +settings.autoplain=true; + at the beginning of the configuration file, it can contain arbitrary +`Asymptote' code. + + The default output format is EPS for the (default) `latex' and `tex' +tex engine and PDF for the `pdflatex', `xelatex', and `context' tex +engines. Alternative output formats may be produced using the `-f' +option (or `outformat' setting). To produce SVG output, first install +`dvisvgm' (version 0.8.7 or later) from +`http://dvisvgm.sourceforge.net/down.html' and be sure to use the +`latex' or `tex' tex engine. + + `Asymptote' can also produce any output format supported by the +`ImageMagick' `convert' program (version 6.3.5 or later recommended; an +`Invalid Parameter' error message indicates that the `MSDOS' utility +`convert' is being used instead of the one that comes with +`ImageMagick'). The optional setting `-render n' requests an output +resolution of `n' pixels per `bp'. Antialiasing is controlled by the +parameter `antialias', which by default specifies a sampling width of 2 +pixels. To give other options to `convert', use the `convertOptions' +setting or call convert manually. This example emulates how `Asymptote' +produces antialiased `tiff' output at one pixel per `bp': +asy -o - venn | convert -alpha Off -density 144x144 -geometry 50%x eps:- venn.tiff + + If the option `-nosafe' is given, `Asymptote' runs in unsafe mode. +This enables the `int system(string s)' and `int system(string[] s)' +calls, allowing one to execute arbitrary shell commands. The default +mode, `-safe', disables this call. + + A `PostScript' offset may be specified as a pair (in `bp' units) +with the `-O' option: +asy -O 0,0 file + The default offset is zero. The default value of the page alignment +setting `align' is `Center'. + + The `-c' (`command') option may be used to execute arbitrary +`Asymptote' code on the command line as a string. It is not necessary +to terminate the string with a semicolon. Multiple `-c' options are +executed in the order they are given. For example +asy -c 2+2 -c "sin(1)" -c "size(100); draw(unitsquare)" + produces the output +4 +0.841470984807897 + and draws a unitsquare of size `100'. + + The `-u' (`user') option may be used to specify arbitrary +`Asymptote' settings on the command line as a string. It is not +necessary to terminate the string with a semicolon. Multiple `-u' +options are executed in the order they are given. Command-line code like +`-u x=sqrt(2)' can be executed within a module like this: +real x; +usersetting(); +write(x); + + When the `-l' (`listvariables') option is used with file arguments, +only global functions and variables defined in the specified file(s) +are listed. + + Additional debugging output is produced with each additional `-v' +option: +`-v' + Display top-level module and final output file names. + +`-vv' + Also display imported and included module names and final `LaTeX' + and `dvips' processing information. + +`-vvv' + Also output `LaTeX' bidirectional pipe diagnostics. + +`-vvvv' + Also output knot guide solver diagnostics. + +`-vvvvv' + Also output `Asymptote' traceback diagnostics. + + +File: asymptote.info, Node: Interactive mode, Next: GUI, Prev: Options, Up: Top + +10 Interactive mode +******************* + +Interactive mode is entered by executing the command `asy' with no file +arguments. When the `-multiline' option is disabled (the default), each +line must be a complete `Asymptote' statement (unless explicitly +continued by a final backslash character `\'); it is not necessary to +terminate input lines with a semicolon. If one assigns +`settings.multiline=true', interactive code can be entered over +multiple lines; in this mode, the automatic termination of interactive +input lines by a semicolon is inhibited. Multiline mode is useful for +cutting and pasting `Asymptote' code directly into the interactive +input buffer. + + Interactive mode can be conveniently used as a calculator: +expressions entered at the interactive prompt (for which a +corresponding `write' function exists) are automatically evaluated and +written to `stdout'. If the expression is non-writable, its type +signature will be printed out instead. In either case, the expression +can be referred to using the symbol `%' in the next line input at the +prompt. For example: +> 2+3 +5 +> %*4 +20 +> 1/% +0.05 +> sin(%) +0.0499791692706783 +> currentpicture +<picture currentpicture> +> %.size(200,0) +> + + The `%' symbol, when used as a variable, is shorthand for the +identifier `operator answer', which is set by the prompt after each +written expression evaluation. + + The following special commands are supported only in interactive mode +and must be entered immediately after the prompt: + +`help' + view the manual; + +`erase' + erase `currentpicture'; + +`reset' + reset the `Asymptote' environment to its initial state, except for + changes to the settings module (*note settings::), the current + directory (*note cd::), and breakpoints (*note Debugger::); + +`input FILE' + does an interactive reset, followed by the command `include FILE'. + If the file name `FILE' contains nonalphanumeric characters, + enclose it with quotation marks. A trailing semi-colon followed + by optional `Asymptote' commands may be entered on the same line. + +`quit' + exit interactive mode (`exit' is a synonym; the abbreviation `q' + is also accepted unless there exists a top-level variable named + `q'). A history of the most recent 1000 (this number can be + changed with the `historylines' configuration variable) previous + commands will be retained in the file `.asy/history' in the user's + home directory (unless the command-line option `-localhistory' was + specified, in which case the history will be stored in the file + `.asy_history' in the current directory). + + + Typing `ctrl-C' interrupts the execution of `Asymptote' code and +returns control to the interactive prompt. + + Interactive mode is implemented with the GNU `readline' library, +with command history and auto-completion. To customize the key +bindings, see: +`http://cnswww.cns.cwru.edu/php/chet/readline/readline.html' + + The file `asymptote.py' in the `Asymptote' system directory provides +an alternative way of entering `Asymptote' commands interactively, +coupled with the full power of `Python'. Copy this file to your `Python +path' and then execute from within `Python' the commands +from asymptote import * +g=asy() +g.size(200) +g.draw("unitcircle") +g.send("draw(unitsquare)") +g.fill("unitsquare, blue") +g.clip("unitcircle") +g.label("\"$O$\", (0,0), SW") + + +File: asymptote.info, Node: GUI, Next: PostScript to Asymptote, Prev: Interactive mode, Up: Top + +11 Graphical User Interface +*************************** + +In the event that adjustments to the final figure are required, the +preliminary Graphical User Interface (GUI) `xasy' included with +`Asymptote' allows you to move graphical objects and draw new ones. +The modified figure can then be saved as a normal `Asymptote' file. + +* Menu: + +* GUI installation:: Installing `xasy' +* GUI usage:: + + +File: asymptote.info, Node: GUI installation, Next: GUI usage, Up: GUI + +11.1 GUI installation +===================== + +As `xasy' is written in the interactive scripting language `Python/TK', +it requires `Python' (`http://www.python.org'), the `Python Imaging +Library' (`http://www.pythonware.com/products/pil/'), and the `tkinter' +package (included with `Python' under `Microsoft Windows') be +installed. `Fedora Linux' users can either install `tkinter' with the +commands +yum install tkinter +yum install tk-devel + or manually install the `tkinter', `tix', `tk', and `tk-devel' +packages. + + Pictures are deconstructed into the PNG image format, which supports +full alpha channel transparency. Under `Microsoft Windows', this +requires `Python 2.7.3' and the `Python Imaging Library': + + `http://www.python.org/ftp/python/2.7.3/python-2.7.3.msi' + + `http://effbot.org/downloads/PIL-1.1.7.win32-py2.7.exe'. + On `UNIX' systems, place +`http://effbot.org/downloads/Imaging-1.1.7.tar.gz' in the `Asymptote' +source directory, and type (as the root user): +tar -zxf Imaging-1.1.7.tar.gz +cd Imaging-1.1.7 +python setup.py install + + +File: asymptote.info, Node: GUI usage, Prev: GUI installation, Up: GUI + +11.2 GUI usage +============== + +A wheel mouse is convenient for raising and lowering objects within +`xasy', to expose the object to be moved. If a wheel mouse is not +available, mouse `Button-2' can be used to repeatedly lower an object +instead. When run from the command line, `xasy' accepts a command line +option `-x n', which sets the initial magnification to `n'. + + Deconstruction of compound objects (such as arrows) can be prevented +by enclosing them within the commands +void begingroup(picture pic=currentpicture); +void endgroup(picture pic=currentpicture); + By default, the elements of a picture or frame will be grouped +together on adding them to a picture. However, the elements of a frame +added to another frame are not grouped together by default: their +elements will be individually deconstructed (*note add::). + + +File: asymptote.info, Node: PostScript to Asymptote, Next: Help, Prev: GUI, Up: Top + +12 `PostScript' to `Asymptote' +****************************** + +The excellent `PostScript' editor `pstoedit' (version 3.50 or later; +available from `http://sourceforge.net/projects/pstoedit/') includes an +`Asymptote' backend. Unlike virtually all other `pstoedit' backends, +this driver includes native clipping, even-odd fill rule, `PostScript' +subpath, and full image support. Here is an example: `asy -V +/usr/local/share/doc/asymptote/examples/venn.asy' +pstoedit -f asy venn.eps test.asy +asy -V test + +If the line widths aren't quite correct, try giving `pstoedit' the +`-dis' option. If the fonts aren't typeset correctly, try giving +`pstoedit' the `-dt' option. + + +File: asymptote.info, Node: Help, Next: Debugger, Prev: PostScript to Asymptote, Up: Top + +13 Help +******* + +A list of frequently asked questions (FAQ) is maintained at + + `http://asymptote.sourceforge.net/FAQ' + Questions on installing and using `Asymptote' that are not addressed +in the FAQ should be sent to the `Asymptote' forum: + + `http://sourceforge.net/projects/asymptote/forums/forum/409349' + Including an example that illustrates what you are trying to do will +help you get useful feedback. `LaTeX' problems can often be diagnosed +with the `-vv' or `-vvv' command-line options. Contributions in the +form of patches or `Asymptote' modules can be posted here: + + `http://sourceforge.net/tracker/?atid=685685&group_id=120000' + To receive announcements of upcoming releases, please subscribe to +`Asymptote' at + + `http://freshmeat.net/projects/asy' + If you find a bug in `Asymptote', please check (if possible) whether +the bug is still present in the latest `Subversion' developmental code +(*note Subversion::) before submitting a bug report. New bugs can be +submitted using the Bug Tracking System at + + `http://sourceforge.net/projects/asymptote' + To see if the bug has already been fixed, check bugs with Status +`Closed' and recent lines in + + `http://asymptote.sourceforge.net/ChangeLog' + `Asymptote' can be configured with the optional GNU library +`libsigsegv', available from `http://libsigsegv.sourceforge.net', which +allows one to distinguish user-generated `Asymptote' stack overflows +(*note stack overflow::) from true segmentation faults (due to internal +C++ programming errors; please submit the `Asymptote' code that +generates such segmentation faults along with your bug report). + + +File: asymptote.info, Node: Debugger, Next: Credits, Prev: Help, Up: Top + +14 Debugger +*********** + +Asymptote now includes a line-based (as opposed to code-based) debugger +that can assist the user in following flow control. To set a break +point in file `file' at line `line', use the command + +void stop(string file, int line, code s=quote{}); + The optional argument `s' may be used to conditionally set the variable +`ignore' in `plain_debugger.asy' to `true'. For example, the first 10 +instances of this breakpoint will be ignored (the variable `int +count=0' is defined in `plain_debugger.asy'): +stop("test",2,quote{ignore=(++count <= 10);}); + + To set a break point in file `file' at the first line containing the +string `text', use + +void stop(string file, string text, code s=quote{}); + To list all breakpoints, use: +void breakpoints(); + To clear a breakpoint, use: +void clear(string file, int line); + To clear all breakpoints, use: +void clear(); + + The following commands may be entered at the debugging prompt: + +``h'' + help; + +``c'' + continue execution; + +``i'' + step to the next instruction; + +``s'' + step to the next executable line; + +``n'' + step to the next executable line in the current file; + +``f'' + step to the next file; + +``r'' + return to the file associated with the most recent breakpoint; + +``t'' + toggle tracing (`-vvvvv') mode; + +``q'' + quit debugging and end execution; + +``x'' + exit the debugger and run to completion. + + Arbitrary `Asymptote' code may also be entered at the debugging +prompt; however, since the debugger is implemented with `eval', +currently only top-level (global) variables can be displayed or +modified. + + The debugging prompt may be entered manually with the call +void breakpoint(code s=quote{}); + + +File: asymptote.info, Node: Credits, Next: Index, Prev: Debugger, Up: Top + +15 Acknowledgments +****************** + +Financial support for the development of `Asymptote' was generously +provided by the Natural Sciences and Engineering Research Council of +Canada, the Pacific Institute for Mathematical Sciences, and the +University of Alberta Faculty of Science. + + We also would like to acknowledge the previous work of John D. Hobby, +author of the program `MetaPost' that inspired the development of +`Asymptote', and Donald E. Knuth, author of TeX and `MetaFont' (on +which `MetaPost' is based). + + The authors of `Asymptote' are Andy Hammerlindl, John Bowman, and +Tom Prince. Sean Healy designed the `Asymptote' logo. Other +contributors include Michail Vidiassov, Radoslav Marinov, Orest Shardt, +Chris Savage, Philippe Ivaldi, Olivier Guibe', Jacques Pienaar, Mark +Henning, Steve Melenchuk, Martin Wiebusch, and Stefan Knorr. + + +File: asymptote.info, Node: Index, Prev: Credits, Up: Top + +Index +***** + + +* Menu: + +* !: Arithmetic & logical. + (line 68) +* != <1>: Arithmetic & logical. + (line 38) +* !=: Structures. (line 52) +* % <1>: Interactive mode. (line 17) +* %: Arithmetic & logical. + (line 23) +* %=: Self & prefix operators. + (line 6) +* & <1>: Arithmetic & logical. + (line 56) +* &: Bezier curves. (line 83) +* &&: Arithmetic & logical. + (line 53) +* * <1>: Arithmetic & logical. + (line 17) +* *: Pens. (line 15) +* **: Arithmetic & logical. + (line 31) +* *=: Self & prefix operators. + (line 6) +* + <1>: Arithmetic & logical. + (line 13) +* +: Pens. (line 15) +* ++: Self & prefix operators. + (line 6) +* +=: Self & prefix operators. + (line 6) +* -: Arithmetic & logical. + (line 14) +* -- <1>: Self & prefix operators. + (line 6) +* --: Tutorial. (line 127) +* ---: Bezier curves. (line 83) +* -=: Self & prefix operators. + (line 6) +* -c: Options. (line 174) +* -l: Options. (line 193) +* -u: Options. (line 184) +* -V <1>: Tutorial. (line 19) +* -V: Configuring. (line 6) +* ..: Tutorial. (line 127) +* .asy: Search paths. (line 14) +* /: Arithmetic & logical. + (line 20) +* /=: Self & prefix operators. + (line 6) +* 2D graphs: graph. (line 6) +* 3D graphs: graph3. (line 6) +* 3D grids: grid3. (line 6) +* 3D PostScript: three. (line 581) +* 3D rendering: Compiling from UNIX source. + (line 16) +* :: Arithmetic & logical. + (line 73) +* ::: Bezier curves. (line 67) +* <: Arithmetic & logical. + (line 41) +* <=: Arithmetic & logical. + (line 44) +* == <1>: Arithmetic & logical. + (line 37) +* ==: Structures. (line 52) +* >: Arithmetic & logical. + (line 50) +* >=: Arithmetic & logical. + (line 47) +* ?: Arithmetic & logical. + (line 73) +* ^: Arithmetic & logical. + (line 28) +* ^=: Self & prefix operators. + (line 6) +* ^^: Tutorial. (line 134) +* a4: Configuring. (line 61) +* abort: Data types. (line 339) +* abs <1>: Mathematical functions. + (line 35) +* abs: Data types. (line 62) +* accel <1>: three. (line 507) +* accel: Paths and guides. (line 115) +* access: Import. (line 6) +* acknowledgments: Credits. (line 6) +* aCos: Mathematical functions. + (line 20) +* acos: Mathematical functions. + (line 6) +* acosh: Mathematical functions. + (line 6) +* add <1>: three. (line 271) +* add: Frames and pictures. (line 196) +* addViews: three. (line 393) +* adjust: Pens. (line 115) +* Ai: Mathematical functions. + (line 48) +* Ai_deriv: Mathematical functions. + (line 48) +* Airy: Mathematical functions. + (line 48) +* alias <1>: Arrays. (line 181) +* alias: Structures. (line 52) +* align: Options. (line 168) +* Align: label. (line 12) +* all: Arrays. (line 329) +* Allow: Pens. (line 327) +* AND: Arithmetic & logical. + (line 80) +* and: Bezier curves. (line 56) +* angle: Data types. (line 70) +* animate <1>: animation. (line 12) +* animate <2>: Files. (line 154) +* animate: Configuring. (line 67) +* animation: animation. (line 6) +* annotate: annotate. (line 6) +* antialias <1>: Options. (line 143) +* antialias: three. (line 210) +* antialiasing: Compiling from UNIX source. + (line 16) +* append <1>: Arrays. (line 39) +* append: Files. (line 36) +* arc: three. (line 283) +* Arc: Paths and guides. (line 32) +* arc: Paths and guides. (line 22) +* ArcArrow: draw. (line 26) +* ArcArrow3: three. (line 548) +* ArcArrows: draw. (line 26) +* ArcArrows3: three. (line 548) +* arclength <1>: three. (line 507) +* arclength: Paths and guides. (line 142) +* arcpoint: Paths and guides. (line 152) +* arctime <1>: three. (line 507) +* arctime: Paths and guides. (line 146) +* arguments: Default arguments. (line 6) +* arithmetic operators: Arithmetic & logical. + (line 6) +* array: Arrays. (line 122) +* array iteration: Programming. (line 33) +* arrays: Arrays. (line 6) +* arrow: label. (line 71) +* Arrow: draw. (line 26) +* arrow: Drawing commands. (line 31) +* arrow keys: Tutorial. (line 37) +* Arrow3: three. (line 548) +* Arrows: draw. (line 26) +* arrows: draw. (line 26) +* Arrows3: three. (line 548) +* as: Import. (line 68) +* ascii: Data types. (line 286) +* aSin: Mathematical functions. + (line 20) +* asin: Mathematical functions. + (line 6) +* asinh: Mathematical functions. + (line 6) +* Aspect: Frames and pictures. (line 54) +* assert: Data types. (line 344) +* assignment: Programming. (line 8) +* asy <1>: Import. (line 102) +* asy: Data types. (line 334) +* asy-mode: Editing modes. (line 6) +* asy.vim: Editing modes. (line 33) +* asyinclude: LaTeX usage. (line 46) +* asymptote.sty: LaTeX usage. (line 6) +* asymptote.xml: Editing modes. (line 49) +* ASYMPTOTE_CONFIG: Options. (line 115) +* aTan: Mathematical functions. + (line 20) +* atan: Mathematical functions. + (line 6) +* atan2: Mathematical functions. + (line 6) +* atanh: Mathematical functions. + (line 6) +* atleast: Bezier curves. (line 56) +* attach <1>: graph. (line 415) +* attach: LaTeX usage. (line 51) +* autoadjust: three. (line 359) +* autoimport: Options. (line 111) +* automatic scaling: graph. (line 682) +* axialshade: fill. (line 43) +* axis <1>: graph3. (line 66) +* axis: graph. (line 880) +* azimuth: Data types. (line 126) +* babel: babel. (line 6) +* background color: Frames and pictures. (line 168) +* BackView: three. (line 386) +* Bar: draw. (line 19) +* Bar3: three. (line 548) +* Bars: draw. (line 19) +* Bars3: three. (line 548) +* barsize: draw. (line 19) +* base modules: Base modules. (line 6) +* basealign: Pens. (line 168) +* baseline: label. (line 91) +* batch mode: Tutorial. (line 6) +* beep: Data types. (line 357) +* BeginArcArrow: draw. (line 26) +* BeginArcArrow3: three. (line 548) +* BeginArrow: draw. (line 26) +* BeginArrow3: three. (line 548) +* BeginBar: draw. (line 19) +* BeginBar3: three. (line 548) +* BeginDotMargin: draw. (line 42) +* BeginDotMargin3: three. (line 564) +* BeginMargin: draw. (line 42) +* BeginMargin3: three. (line 564) +* BeginPenMargin: draw. (line 42) +* BeginPenMargin2: three. (line 564) +* BeginPenMargin3: three. (line 564) +* BeginPoint: label. (line 56) +* Bessel: Mathematical functions. + (line 48) +* bevel: flowchart. (line 75) +* beveljoin: Pens. (line 138) +* Bezier curves: Bezier curves. (line 6) +* bezulate: three. (line 104) +* Bi: Mathematical functions. + (line 48) +* Bi_deriv: Mathematical functions. + (line 48) +* Billboard: three. (line 477) +* binary: Files. (line 75) +* binary format: Files. (line 75) +* binary operators: Arithmetic & logical. + (line 6) +* binarytree: binarytree. (line 6) +* black stripes: three. (line 210) +* Blank: draw. (line 26) +* block.bottom: flowchart. (line 19) +* block.bottomleft: flowchart. (line 19) +* block.bottomright: flowchart. (line 19) +* block.center: flowchart. (line 26) +* block.draw: flowchart. (line 31) +* block.left: flowchart. (line 19) +* block.position: flowchart. (line 24) +* block.right: flowchart. (line 19) +* block.top: flowchart. (line 19) +* block.topleft: flowchart. (line 19) +* block.topright: flowchart. (line 19) +* bool: Data types. (line 14) +* bool3: Data types. (line 23) +* boolean operators: Arithmetic & logical. + (line 6) +* Bottom: graph. (line 134) +* BottomTop: graph. (line 140) +* BottomView: three. (line 386) +* bounding box: Frames and pictures. (line 168) +* Bounds: graph3. (line 20) +* box <1>: three. (line 305) +* box: Frames and pictures. (line 22) +* bp: Tutorial. (line 26) +* break: Programming. (line 29) +* breakpoints: Debugger. (line 21) +* brick: Pens. (line 251) +* broken axis: graph. (line 783) +* bug reports: Help. (line 23) +* buildcycle: Paths and guides. (line 258) +* Button-1: GUI. (line 6) +* Button-2: GUI. (line 6) +* BWRainbow: palette. (line 15) +* BWRainbow2: palette. (line 18) +* C string: Data types. (line 191) +* CAD: CAD. (line 6) +* calculateTransform: Frames and pictures. (line 107) +* camera: three. (line 354) +* casts: Casts. (line 6) +* cbrt: Mathematical functions. + (line 6) +* cd: Files. (line 25) +* ceil: Mathematical functions. + (line 26) +* center: three. (line 338) +* Center: label. (line 61) +* checker: Pens. (line 251) +* Chinese: unicode. (line 12) +* choose: Mathematical functions. + (line 39) +* Ci: Mathematical functions. + (line 48) +* circle <1>: flowchart. (line 64) +* circle: three. (line 279) +* Circle: Paths and guides. (line 17) +* circle: Paths and guides. (line 10) +* circlebarframe: markers. (line 18) +* CJK: unicode. (line 12) +* clamped: graph. (line 37) +* clear <1>: Debugger. (line 23) +* clear: Files. (line 92) +* clip: fill. (line 111) +* CLZ: Arithmetic & logical. + (line 80) +* cm: Tutorial. (line 63) +* cmd: Configuring. (line 34) +* cmyk: Pens. (line 34) +* colatitude: Data types. (line 131) +* color: Pens. (line 23) +* coloredNodes: tube. (line 25) +* coloredpath: tube. (line 18) +* coloredSegments: tube. (line 25) +* colorless: Pens. (line 54) +* colors: Pens. (line 51) +* comma: Files. (line 61) +* comma-separated-value mode: Arrays. (line 362) +* command-line options <1>: Options. (line 6) +* command-line options: Configuring. (line 83) +* comment character: Files. (line 16) +* compass directions: Tutorial. (line 106) +* Compiling from UNIX source: Compiling from UNIX source. + (line 6) +* complement: Arrays. (line 150) +* concat: Arrays. (line 177) +* conditional <1>: Arithmetic & logical. + (line 73) +* conditional: Programming. (line 8) +* config: Options. (line 115) +* configuration file <1>: Options. (line 115) +* configuration file: Configuring. (line 23) +* configuring: Configuring. (line 6) +* conj: Data types. (line 59) +* constructors: Structures. (line 91) +* context: Options. (line 143) +* continue <1>: Debugger. (line 31) +* continue: Programming. (line 29) +* contour: contour. (line 9) +* contour3: contour3. (line 6) +* controls <1>: three. (line 6) +* controls: Bezier curves. (line 45) +* controlSpecifier: Paths and guides. (line 382) +* convert <1>: Options. (line 143) +* convert <2>: animation. (line 6) +* convert <3>: Files. (line 154) +* convert: Configuring. (line 67) +* convertOptions: Options. (line 130) +* Coons shading: fill. (line 74) +* copy: Arrays. (line 174) +* Cos: Mathematical functions. + (line 20) +* cos: Mathematical functions. + (line 6) +* cosh: Mathematical functions. + (line 6) +* cputime: Structures. (line 169) +* crop: graph. (line 636) +* cropping graphs: graph. (line 636) +* cross <1>: graph. (line 484) +* cross: Data types. (line 169) +* crossframe: markers. (line 23) +* crosshatch: Pens. (line 267) +* csv: Arrays. (line 362) +* CTZ: Arithmetic & logical. + (line 80) +* cubicroots: Arrays. (line 318) +* curl <1>: three. (line 6) +* curl: Bezier curves. (line 63) +* curlSpecifier: Paths and guides. (line 394) +* currentpen: Pens. (line 6) +* currentprojection: three. (line 383) +* curve: slopefield. (line 20) +* custom axis types: graph. (line 144) +* custom mark routine: graph. (line 576) +* custom tick locations: graph. (line 249) +* cut: Paths and guides. (line 240) +* cycle <1>: three. (line 6) +* cycle: Tutorial. (line 75) +* cyclic <1>: three. (line 507) +* cyclic <2>: Arrays. (line 39) +* cyclic: Paths and guides. (line 74) +* Cyrillic: unicode. (line 7) +* dashdotted: Pens. (line 95) +* dashed: Pens. (line 95) +* data types: Data types. (line 6) +* date: Data types. (line 298) +* Debian: UNIX binary distributions. + (line 19) +* debugger: Debugger. (line 6) +* declaration: Programming. (line 8) +* deconstruct: GUI usage. (line 6) +* default arguments: Default arguments. (line 6) +* defaultformat: graph. (line 175) +* DefaultHead: draw. (line 26) +* DefaultHead3: three. (line 548) +* defaultpen: Pens. (line 46) +* defaultrender: three. (line 47) +* deferred drawing: simplex. (line 6) +* Degrees: Mathematical functions. + (line 17) +* degrees <1>: Mathematical functions. + (line 17) +* degrees: Data types. (line 75) +* delete <1>: Arrays. (line 39) +* delete: Files. (line 149) +* description: Description. (line 6) +* diagonal: Arrays. (line 303) +* diamond: flowchart. (line 57) +* dimension: Arrays. (line 367) +* dir <1>: three. (line 507) +* dir <2>: Paths and guides. (line 98) +* dir <3>: Data types. (line 87) +* dir: Search paths. (line 10) +* direction specifier: Bezier curves. (line 6) +* directory: Files. (line 25) +* dirSpecifier: Paths and guides. (line 376) +* dirtime: Paths and guides. (line 155) +* display: Configuring. (line 67) +* do: Programming. (line 29) +* DOSendl: Files. (line 61) +* DOSnewl: Files. (line 61) +* dot <1>: Arrays. (line 259) +* dot <2>: Data types. (line 100) +* dot: draw. (line 83) +* DotMargin: draw. (line 42) +* DotMargin3: three. (line 564) +* DotMargins: draw. (line 42) +* DotMargins3: three. (line 564) +* dotted: Pens. (line 95) +* double deferred drawing: three. (line 256) +* double precision: Files. (line 75) +* Draw: Frames and pictures. (line 147) +* draw: draw. (line 110) +* Draw: draw. (line 26) +* draw: Drawing commands. (line 31) +* drawing commands: Drawing commands. (line 6) +* drawline: math. (line 9) +* drawtree: drawtree. (line 9) +* dvips: Configuring. (line 67) +* dvipsOptions: Options. (line 130) +* dvisvgm: Configuring. (line 67) +* E <1>: Mathematical functions. + (line 48) +* E: Tutorial. (line 106) +* Editing modes: Editing modes. (line 6) +* Ei: Mathematical functions. + (line 48) +* ellipse <1>: Frames and pictures. (line 22) +* ellipse: Paths and guides. (line 39) +* elliptic functions: Mathematical functions. + (line 48) +* else: Programming. (line 8) +* emacs: Editing modes. (line 6) +* embed: embed. (line 6) +* Embedded: three. (line 477) +* empty: Frames and pictures. (line 7) +* EndArcArrow: draw. (line 26) +* EndArcArrow3: three. (line 548) +* EndArrow: draw. (line 26) +* EndArrow3: three. (line 548) +* EndBar: draw. (line 19) +* EndBar3: three. (line 548) +* EndDotMargin: draw. (line 42) +* EndDotMargin3: three. (line 564) +* endl: Files. (line 61) +* EndMargin: draw. (line 42) +* EndMargin3: three. (line 564) +* EndPenMargin: draw. (line 42) +* EndPenMargin2: three. (line 564) +* EndPenMargin3: three. (line 564) +* EndPoint: label. (line 56) +* envelope: Frames and pictures. (line 22) +* environment variables: Configuring. (line 87) +* eof <1>: Arrays. (line 344) +* eof: Files. (line 92) +* eol <1>: Arrays. (line 344) +* eol: Files. (line 92) +* EPS <1>: Options. (line 143) +* EPS: label. (line 79) +* erase <1>: Frames and pictures. (line 7) +* erase <2>: Data types. (line 241) +* erase: Tutorial. (line 37) +* erf: Mathematical functions. + (line 6) +* erfc: Mathematical functions. + (line 6) +* error: Files. (line 16) +* error bars: graph. (line 532) +* errorbars: graph. (line 484) +* eval: Import. (line 98) +* evenodd <1>: Pens. (line 152) +* evenodd: Tutorial. (line 148) +* exit <1>: Debugger. (line 57) +* exit <2>: Interactive mode. (line 59) +* exit: Data types. (line 348) +* exp: Mathematical functions. + (line 6) +* expi: Data types. (line 83) +* explicit: Casts. (line 6) +* explicit casts: Casts. (line 21) +* expm1: Mathematical functions. + (line 6) +* exponential integral: Mathematical functions. + (line 48) +* extendcap: Pens. (line 129) +* extension <1>: MetaPost. (line 10) +* extension: Paths and guides. (line 235) +* external: embed. (line 28) +* extrude: three. (line 501) +* F: Mathematical functions. + (line 48) +* fabs: Mathematical functions. + (line 6) +* face: three. (line 589) +* factorial: Mathematical functions. + (line 39) +* Fedora: UNIX binary distributions. + (line 15) +* feynman: feynman. (line 6) +* fft <1>: math. (line 26) +* fft: Arrays. (line 246) +* FFTW: Compiling from UNIX source. + (line 58) +* file <1>: Debugger. (line 45) +* file: Files. (line 6) +* Fill: Frames and pictures. (line 133) +* fill <1>: fill. (line 17) +* fill: draw. (line 116) +* Fill: draw. (line 26) +* FillDraw: Frames and pictures. (line 123) +* filldraw: fill. (line 11) +* FillDraw: draw. (line 26) +* filloutside: fill. (line 27) +* fillrule: Pens. (line 152) +* find <1>: Arrays. (line 159) +* find: Data types. (line 226) +* firstcut: Paths and guides. (line 250) +* fit: Frames and pictures. (line 103) +* fit3: three. (line 269) +* fixedscaling: Frames and pictures. (line 74) +* floor: Mathematical functions. + (line 26) +* flowchart: flowchart. (line 6) +* flush: Files. (line 61) +* fmod: Mathematical functions. + (line 6) +* font: Pens. (line 192) +* font command: Pens. (line 192) +* fontcommand: Pens. (line 207) +* fontsize: Pens. (line 178) +* for: Programming. (line 8) +* format <1>: Options. (line 143) +* format: Data types. (line 269) +* forum: Help. (line 6) +* frame: Frames and pictures. (line 7) +* freeglut: Compiling from UNIX source. + (line 16) +* from: Import. (line 17) +* FrontView: three. (line 386) +* function declarations: Functions. (line 67) +* function shading: fill. (line 96) +* Function shading: fill. (line 96) +* functions <1>: Mathematical functions. + (line 6) +* functions: Functions. (line 6) +* functionshade: fill. (line 96) +* gamma: Mathematical functions. + (line 6) +* Gaussrand: Mathematical functions. + (line 39) +* geometry: geometry. (line 6) +* getc: Files. (line 30) +* getpair: Files. (line 117) +* getreal: Files. (line 117) +* getstring: Files. (line 117) +* gettriple: Files. (line 117) +* glOptions <1>: Options. (line 130) +* glOptions: three. (line 210) +* GNU Scientific Library: Mathematical functions. + (line 48) +* gouraudshade: fill. (line 58) +* Gradient: palette. (line 25) +* gradient shading: fill. (line 32) +* graph: graph. (line 6) +* graph3: graph3. (line 6) +* graphic: label. (line 79) +* graphical user interface: GUI. (line 6) +* gray: Pens. (line 25) +* Grayscale: palette. (line 9) +* grayscale: Pens. (line 25) +* grid <1>: graph. (line 734) +* grid: Pens. (line 251) +* grid3: grid3. (line 6) +* gs: Configuring. (line 6) +* gsl: Mathematical functions. + (line 48) +* GSL: Compiling from UNIX source. + (line 58) +* gsOptions: Options. (line 130) +* GUI: GUI. (line 6) +* GUI installation: GUI installation. (line 6) +* GUI usage: GUI usage. (line 6) +* guide: Paths and guides. (line 303) +* guide3: three. (line 6) +* hatch: Pens. (line 267) +* height: LaTeX usage. (line 51) +* help <1>: Debugger. (line 30) +* help <2>: Help. (line 6) +* help: Interactive mode. (line 44) +* Hermite: graph. (line 37) +* Hermite(splinetype splinetype: graph. (line 37) +* hex <1>: Pens. (line 60) +* hex: Data types. (line 283) +* hexidecimal <1>: Pens. (line 59) +* hexidecimal: Data types. (line 283) +* hidden surface removal: three. (line 589) +* histogram: Mathematical functions. + (line 39) +* history <1>: Interactive mode. (line 59) +* history: Files. (line 142) +* historylines: Interactive mode. (line 64) +* HookHead: draw. (line 26) +* HookHead3: three. (line 548) +* Horizontal: flowchart. (line 81) +* hyperrefOptions: Options. (line 130) +* hypot: Mathematical functions. + (line 6) +* I: Mathematical functions. + (line 48) +* i_scaled: Mathematical functions. + (line 48) +* iconic: three. (line 210) +* identity <1>: Arrays. (line 300) +* identity <2>: Mathematical functions. + (line 6) +* identity: Transforms. (line 24) +* identity4: three. (line 437) +* if: Programming. (line 8) +* IgnoreAspect: Frames and pictures. (line 58) +* image: palette. (line 34) +* ImageMagick <1>: Options. (line 143) +* ImageMagick <2>: animation. (line 6) +* ImageMagick: Configuring. (line 67) +* images: palette. (line 6) +* implicit casts: Casts. (line 6) +* implicit linear solver: MetaPost. (line 10) +* implicit scaling: Implicit scaling. (line 6) +* import: Import. (line 46) +* inches: Tutorial. (line 63) +* include: Import. (line 127) +* including images: label. (line 79) +* increasing: math. (line 59) +* inf: Data types. (line 33) +* inheritance: Structures. (line 181) +* initialized: Arrays. (line 39) +* initializers: Variable initializers. + (line 6) +* inline: LaTeX usage. (line 51) +* InOutTicks: graph3. (line 34) +* input <1>: Interactive mode. (line 48) +* input: Files. (line 10) +* insert <1>: Arrays. (line 39) +* insert: Data types. (line 237) +* inside: Paths and guides. (line 282) +* inst: Debugger. (line 36) +* installation: Installation. (line 6) +* int: Data types. (line 28) +* integer division: Arithmetic & logical. + (line 6) +* interactive mode: Interactive mode. (line 6) +* interior: Paths and guides. (line 278) +* international characters: unicode. (line 6) +* interp: Arithmetic & logical. + (line 76) +* interpolate: interpolate. (line 6) +* intersect <1>: three. (line 507) +* intersect <2>: math. (line 13) +* intersect: Paths and guides. (line 184) +* intersectionpoint <1>: three. (line 507) +* intersectionpoint <2>: math. (line 17) +* intersectionpoint: Paths and guides. (line 227) +* intersectionpoints <1>: three. (line 507) +* intersectionpoints: Paths and guides. (line 231) +* intersections <1>: three. (line 507) +* intersections: Paths and guides. (line 195) +* InTicks: graph3. (line 34) +* intMax: Data types. (line 28) +* intMin: Data types. (line 28) +* inverse <1>: Arrays. (line 306) +* inverse: Transforms. (line 16) +* invert: three. (line 427) +* invisible: Pens. (line 39) +* isnan: Data types. (line 33) +* J: Mathematical functions. + (line 6) +* Japanese: unicode. (line 12) +* K: Mathematical functions. + (line 48) +* k_scaled: Mathematical functions. + (line 48) +* Kate: Editing modes. (line 49) +* KDE editor: Editing modes. (line 49) +* keepAspect <1>: LaTeX usage. (line 51) +* keepAspect: Frames and pictures. (line 54) +* keyboard bindings:: three. (line 169) +* keys: Arrays. (line 39) +* keyword: Named arguments. (line 37) +* keyword-only: Named arguments. (line 37) +* keywords: Named arguments. (line 6) +* Korean: unicode. (line 12) +* label: three. (line 471) +* Label <1>: graph. (line 342) +* Label: label. (line 14) +* label: clip. (line 16) +* Label: draw. (line 98) +* labelpath: labelpath. (line 6) +* labelpath3: labelpath3. (line 6) +* labelx: graph. (line 342) +* labely: graph. (line 342) +* Landscape: Frames and pictures. (line 95) +* lastcut: Paths and guides. (line 254) +* lasy-mode: Editing modes. (line 6) +* latex: Options. (line 143) +* LaTeX fonts: Pens. (line 192) +* LaTeX usage: LaTeX usage. (line 6) +* latexmk: LaTeX usage. (line 30) +* latin1: latin1. (line 6) +* latitude: Data types. (line 136) +* latticeshade: fill. (line 32) +* layer: Drawing commands. (line 16) +* leastsquares <1>: graph. (line 902) +* leastsquares: stats. (line 6) +* Left: graph. (line 284) +* LeftRight: graph. (line 290) +* LeftSide: label. (line 61) +* LeftTicks: graph. (line 161) +* LeftView: three. (line 386) +* legend <1>: graph. (line 431) +* legend <2>: draw. (line 64) +* legend: Drawing commands. (line 31) +* Legendre: Mathematical functions. + (line 48) +* length <1>: three. (line 507) +* length <2>: Arrays. (line 39) +* length <3>: Paths and guides. (line 65) +* length: Data types. (line 62) +* letter: Configuring. (line 61) +* lexorder: math. (line 68) +* libm routines: Mathematical functions. + (line 6) +* libsigsegv <1>: Help. (line 33) +* libsigsegv: Functions. (line 88) +* limits: graph. (line 636) +* line: Arrays. (line 344) +* line mode: Arrays. (line 344) +* Linear: graph. (line 682) +* linecap: Pens. (line 129) +* linejoin: Pens. (line 138) +* lineskip: Pens. (line 178) +* linetype: Pens. (line 115) +* linewidth: Pens. (line 119) +* locale: Data types. (line 293) +* Log: graph. (line 682) +* log: Mathematical functions. + (line 6) +* log-log graph: graph. (line 713) +* log10: Mathematical functions. + (line 6) +* log1p: Mathematical functions. + (line 6) +* log2 graph: graph. (line 763) +* logarithmic graph: graph. (line 713) +* logical operators: Arithmetic & logical. + (line 6) +* longdashdotted: Pens. (line 95) +* longdashed: Pens. (line 95) +* longitude: Data types. (line 141) +* loop: Programming. (line 8) +* MacOS X binary distributions: MacOS X binary distributions. + (line 6) +* makepen: Pens. (line 300) +* map: Arrays. (line 141) +* Margin: draw. (line 42) +* Margin3: three. (line 564) +* margins: three. (line 262) +* Margins: draw. (line 42) +* Margins3: three. (line 564) +* mark: graph. (line 484) +* markangle: markers. (line 38) +* marker: graph. (line 484) +* markers: markers. (line 6) +* marknodes: graph. (line 484) +* markuniform: graph. (line 484) +* mask: Data types. (line 33) +* math: math. (line 6) +* mathematical functions: Mathematical functions. + (line 6) +* max <1>: three. (line 507) +* max <2>: Arrays. (line 225) +* max <3>: Frames and pictures. (line 7) +* max: Paths and guides. (line 267) +* maxbound: Data types. (line 106) +* maxtile: three. (line 210) +* maxtimes: Paths and guides. (line 222) +* maxviewport: three. (line 210) +* MetaPost: MetaPost. (line 6) +* MetaPost ... : Bezier curves. (line 67) +* MetaPost cutafter: Paths and guides. (line 255) +* MetaPost cutbefore: Paths and guides. (line 251) +* MetaPost pickup: Pens. (line 6) +* MetaPost whatever: MetaPost. (line 10) +* Microsoft Windows: Microsoft Windows. (line 6) +* MidArcArrow: draw. (line 26) +* MidArcArrow3: three. (line 548) +* MidArrow: draw. (line 26) +* MidArrow3: three. (line 548) +* midpoint: Paths and guides. (line 169) +* MidPoint: label. (line 56) +* min <1>: three. (line 507) +* min <2>: Arrays. (line 218) +* min <3>: Frames and pictures. (line 7) +* min: Paths and guides. (line 263) +* minbound: Data types. (line 103) +* minipage: label. (line 118) +* mintimes: Paths and guides. (line 217) +* miterjoin: Pens. (line 138) +* miterlimit: Pens. (line 147) +* mktemp: Files. (line 44) +* mm: Tutorial. (line 63) +* mode: Files. (line 75) +* monotonic: graph. (line 37) +* mouse: GUI. (line 6) +* mouse bindings: three. (line 137) +* Move: Pens. (line 339) +* MoveQuiet: Pens. (line 345) +* multisample: three. (line 127) +* multisampling: Compiling from UNIX source. + (line 16) +* N: Tutorial. (line 106) +* name: Files. (line 88) +* named arguments: Named arguments. (line 6) +* natural: graph. (line 37) +* new <1>: Arrays. (line 109) +* new: Structures. (line 6) +* newframe: Frames and pictures. (line 7) +* newl: Files. (line 61) +* newton: Mathematical functions. + (line 66) +* next: Debugger. (line 42) +* NFSS: Pens. (line 192) +* nobasealign: Pens. (line 168) +* NoFill <1>: Frames and pictures. (line 141) +* NoFill: draw. (line 26) +* NoMargin: draw. (line 42) +* NoMargin3: three. (line 564) +* none: Files. (line 61) +* None: draw. (line 19) +* normal: three. (line 493) +* nosafe: Options. (line 163) +* NOT: Arithmetic & logical. + (line 80) +* notaknot: graph. (line 37) +* NoTicks: graph. (line 161) +* NoTicks3: graph3. (line 34) +* null: Structures. (line 6) +* nullpen <1>: Frames and pictures. (line 127) +* nullpen: label. (line 14) +* NURBS: three. (line 363) +* O: three. (line 274) +* obj: obj. (line 9) +* oblique: three. (line 319) +* obliqueX: three. (line 327) +* obliqueY: three. (line 334) +* obliqueZ: three. (line 319) +* ode: ode. (line 9) +* offset <1>: Options. (line 168) +* offset: Pens. (line 115) +* OmitTick: graph. (line 239) +* OmitTickInterval: graph. (line 239) +* OmitTickIntervals: graph. (line 239) +* opacity: Pens. (line 222) +* open: Files. (line 12) +* OpenGL: three. (line 127) +* operator: User-defined operators. + (line 6) +* operator --: graph. (line 31) +* operator ..: graph. (line 34) +* operator answer: Interactive mode. (line 37) +* operator cast: Casts. (line 30) +* operator ecast: Casts. (line 57) +* operator init <1>: Structures. (line 134) +* operator init: Variable initializers. + (line 6) +* operators: Operators. (line 6) +* options: Options. (line 6) +* OR: Arithmetic & logical. + (line 80) +* orientation: Frames and pictures. (line 95) +* orthographic: three. (line 338) +* outformat: three. (line 127) +* outprefix: Frames and pictures. (line 83) +* output <1>: Options. (line 143) +* output: Files. (line 36) +* OutTicks: graph3. (line 34) +* overloading functions: Functions. (line 44) +* overwrite: Pens. (line 324) +* P: Mathematical functions. + (line 48) +* pack: label. (line 101) +* packing: Rest arguments. (line 30) +* pair <1>: Data types. (line 43) +* pair: Tutorial. (line 51) +* pairs: Arrays. (line 242) +* paperheight: Configuring. (line 61) +* papertype: Configuring. (line 61) +* paperwidth: Configuring. (line 61) +* parallelogram: flowchart. (line 50) +* parametric surface: graph3. (line 100) +* parametrized curve: graph. (line 636) +* partialsum: math. (line 53) +* patch-dependent colors: three. (line 81) +* path <1>: flowchart. (line 81) +* path <2>: three. (line 43) +* path: Paths and guides. (line 7) +* path markers: graph. (line 484) +* path3: three. (line 6) +* path[]: Tutorial. (line 134) +* patterns <1>: patterns. (line 6) +* patterns: Pens. (line 238) +* PDF: Options. (line 143) +* pdflatex: Options. (line 143) +* pdfviewer: Configuring. (line 6) +* pdfviewerOptions: Options. (line 130) +* pen: Pens. (line 6) +* PenMargin: draw. (line 42) +* PenMargin2: three. (line 564) +* PenMargin3: three. (line 564) +* PenMargins: draw. (line 42) +* PenMargins2: three. (line 564) +* PenMargins3: three. (line 564) +* periodic: graph. (line 37) +* perl: LaTeX usage. (line 30) +* perpendicular: geometry. (line 6) +* perspective: three. (line 363) +* picture: Frames and pictures. (line 35) +* picture alignment: Frames and pictures. (line 209) +* piecewisestraight: Paths and guides. (line 81) +* pixel: three. (line 571) +* Pl: Mathematical functions. + (line 48) +* plain: plain. (line 6) +* planar: three. (line 89) +* plane: three. (line 301) +* planeproject: three. (line 490) +* point <1>: three. (line 507) +* point: Paths and guides. (line 84) +* polar: Data types. (line 121) +* polargraph: graph. (line 90) +* polygon: graph. (line 484) +* pop: Arrays. (line 39) +* Portrait: Frames and pictures. (line 95) +* postcontrol <1>: three. (line 507) +* postcontrol: Paths and guides. (line 135) +* postfix operators: Self & prefix operators. + (line 19) +* postscript: Frames and pictures. (line 271) +* PostScript fonts: Pens. (line 210) +* PostScript subpath: Tutorial. (line 134) +* pow10: Mathematical functions. + (line 6) +* prc: three. (line 231) +* precision: Files. (line 92) +* precontrol <1>: three. (line 507) +* precontrol: Paths and guides. (line 128) +* prefix operators: Self & prefix operators. + (line 6) +* private: Structures. (line 6) +* programming: Programming. (line 6) +* pstoedit: PostScript to Asymptote. + (line 6) +* psview: Microsoft Windows. (line 16) +* psviewer: Configuring. (line 6) +* psviewerOptions: Options. (line 130) +* pt: Tutorial. (line 63) +* public: Structures. (line 6) +* push: Arrays. (line 39) +* Python usage: Interactive mode. (line 80) +* quadraticroots: Arrays. (line 309) +* quarticroots: math. (line 22) +* quick reference: Description. (line 80) +* quit <1>: Debugger. (line 54) +* quit <2>: Interactive mode. (line 59) +* quit: Tutorial. (line 37) +* quote: Import. (line 116) +* quotient: Arithmetic & logical. + (line 6) +* RadialShade: Frames and pictures. (line 159) +* radialshade: fill. (line 49) +* RadialShadeDraw: Frames and pictures. (line 163) +* radians: Mathematical functions. + (line 17) +* radius <1>: three. (line 507) +* radius: Paths and guides. (line 124) +* Rainbow: palette. (line 12) +* rand: Mathematical functions. + (line 39) +* randMax: Mathematical functions. + (line 39) +* read: Arrays. (line 385) +* reading: Files. (line 12) +* reading string arrays: Arrays. (line 354) +* readline: Files. (line 134) +* real: Data types. (line 33) +* realDigits: Data types. (line 33) +* realEpsilon: Data types. (line 33) +* realMax: Data types. (line 33) +* realMin: Data types. (line 33) +* realmult: Data types. (line 97) +* rectangle: flowchart. (line 37) +* recursion: Functions. (line 88) +* reference: Description. (line 80) +* reflect: Transforms. (line 51) +* Relative: label. (line 51) +* relpoint: Paths and guides. (line 165) +* reltime: Paths and guides. (line 161) +* remainder: Mathematical functions. + (line 6) +* rename: Files. (line 151) +* render <1>: Options. (line 143) +* render: three. (line 47) +* replace: Data types. (line 254) +* resetdefaultpen: Pens. (line 353) +* rest arguments: Rest arguments. (line 6) +* restore: Frames and pictures. (line 265) +* restricted: Structures. (line 6) +* return: Debugger. (line 48) +* reverse <1>: three. (line 507) +* reverse <2>: Arrays. (line 146) +* reverse <3>: Paths and guides. (line 172) +* reverse: Data types. (line 250) +* rewind: Files. (line 92) +* rfind: Data types. (line 231) +* rgb: Pens. (line 30) +* Riemann zeta function: Mathematical functions. + (line 48) +* Right: graph. (line 287) +* RightSide: label. (line 61) +* RightTicks: graph. (line 161) +* RightView: three. (line 386) +* rotate: three. (line 458) +* Rotate: label. (line 36) +* Rotate(pair z): label. (line 39) +* round: Mathematical functions. + (line 26) +* roundcap: Pens. (line 129) +* roundedpath: roundedpath. (line 6) +* roundjoin: Pens. (line 138) +* roundrectangle: flowchart. (line 69) +* RPM: UNIX binary distributions. + (line 6) +* runtime imports: Import. (line 98) +* Russian: unicode. (line 7) +* S: Tutorial. (line 106) +* safe: Options. (line 163) +* save: Frames and pictures. (line 262) +* saveline: Files. (line 134) +* scale: three. (line 457) +* Scale: graph. (line 698) +* scale <1>: graph. (line 682) +* scale <2>: Transforms. (line 39) +* scale: Pens. (line 115) +* Scale: label. (line 45) +* scale3: three. (line 454) +* scaled graph: graph. (line 663) +* scientific graph: graph. (line 396) +* scroll: Files. (line 108) +* search: Arrays. (line 164) +* search paths: Search paths. (line 6) +* Seascape: Frames and pictures. (line 100) +* secondary axis: graph. (line 813) +* secondaryX: graph. (line 813) +* secondaryY: graph. (line 813) +* seconds: Data types. (line 306) +* seek: Files. (line 92) +* seekeof: Files. (line 92) +* segment: math. (line 50) +* segmentation fault: Help. (line 33) +* self operators: Self & prefix operators. + (line 6) +* sequence: Arrays. (line 128) +* settings <1>: Options. (line 115) +* settings: Configuring. (line 23) +* sgn: Mathematical functions. + (line 26) +* shading: fill. (line 32) +* shift <1>: three. (line 442) +* shift: Transforms. (line 27) +* Shift: label. (line 33) +* shiftless: Transforms. (line 53) +* shipout: Frames and pictures. (line 83) +* showtarget: three. (line 338) +* Si: Mathematical functions. + (line 48) +* signedint: Files. (line 75) +* SimpleHead: draw. (line 26) +* simplex: simplex. (line 6) +* simpson: Mathematical functions. + (line 82) +* Sin: Mathematical functions. + (line 20) +* sin: Mathematical functions. + (line 6) +* single precision: Files. (line 75) +* singleint: Files. (line 75) +* singlereal: Files. (line 75) +* sinh: Mathematical functions. + (line 6) +* SixViews: three. (line 401) +* SixViewsFR: three. (line 401) +* SixViewsUS: three. (line 401) +* size <1>: Options. (line 143) +* size <2>: three. (line 507) +* size <3>: Frames and pictures. (line 43) +* size: Paths and guides. (line 70) +* size3: three. (line 259) +* slant: Transforms. (line 45) +* Slant: label. (line 42) +* sleep: Data types. (line 351) +* slice: Paths and guides. (line 240) +* slices: Slices. (line 6) +* slide: slide. (line 6) +* slope: math. (line 44) +* slopefield: slopefield. (line 6) +* sndncn: Mathematical functions. + (line 48) +* solid: Pens. (line 95) +* solids: solids. (line 9) +* solve: Arrays. (line 278) +* sort: Arrays. (line 184) +* Spline <1>: graph3. (line 100) +* Spline: graph. (line 34) +* split: Data types. (line 263) +* sqrt: Mathematical functions. + (line 6) +* squarecap: Pens. (line 129) +* srand: Mathematical functions. + (line 39) +* stack overflow <1>: Help. (line 33) +* stack overflow: Functions. (line 88) +* static: Static. (line 6) +* stats: stats. (line 6) +* stdin: Files. (line 48) +* stdout: Files. (line 48) +* step: Debugger. (line 39) +* stickframe: markers. (line 16) +* stop: Debugger. (line 10) +* straight: three. (line 507) +* Straight: graph. (line 31) +* straight: Paths and guides. (line 77) +* strftime: Data types. (line 298) +* string: Data types. (line 181) +* stroke: fill. (line 36) +* strokepath: Paths and guides. (line 297) +* strptime: Data types. (line 306) +* struct: Structures. (line 6) +* structures: Structures. (line 6) +* subpath <1>: three. (line 507) +* subpath: Paths and guides. (line 175) +* subpictures: Frames and pictures. (line 103) +* substr: Data types. (line 246) +* Subversion: Subversion. (line 6) +* sum: Arrays. (line 213) +* superpath: Tutorial. (line 134) +* Suppress: Pens. (line 331) +* SuppressQuiet: Pens. (line 335) +* surface <1>: graph3. (line 100) +* surface: three. (line 47) +* SVG: Options. (line 143) +* SVN: Subversion. (line 6) +* system <1>: Options. (line 163) +* system: Data types. (line 328) +* syzygy: syzygy. (line 6) +* tab: Files. (line 61) +* tab completion: Tutorial. (line 37) +* Tan: Mathematical functions. + (line 20) +* tan: Mathematical functions. + (line 6) +* tanh: Mathematical functions. + (line 6) +* target: three. (line 338) +* tell: Files. (line 92) +* tension <1>: three. (line 6) +* tension: Bezier curves. (line 56) +* tensionSpecifier: Paths and guides. (line 388) +* tensor product shading: fill. (line 74) +* tensorshade: fill. (line 74) +* tex <1>: Options. (line 143) +* tex: Frames and pictures. (line 278) +* TeX fonts: Pens. (line 201) +* TeX string: Data types. (line 181) +* texcommand: Configuring. (line 67) +* TeXHead: draw. (line 26) +* TeXHead3: three. (line 548) +* texpath <1>: label. (line 115) +* texpath: Configuring. (line 67) +* texpreamble: Frames and pictures. (line 286) +* texreset: Frames and pictures. (line 289) +* textbook graph: graph. (line 371) +* tgz: UNIX binary distributions. + (line 6) +* thick: three. (line 110) +* thin: three. (line 110) +* this: Structures. (line 6) +* three: three. (line 6) +* ThreeViews: three. (line 401) +* ThreeViewsFR: three. (line 401) +* ThreeViewsUS: three. (line 401) +* tick: graph. (line 342) +* Ticks: graph. (line 161) +* ticks: graph. (line 161) +* tildeframe: markers. (line 26) +* tile: Pens. (line 251) +* tilings: Pens. (line 238) +* time <1>: math. (line 30) +* time: Data types. (line 298) +* times: Paths and guides. (line 209) +* Top: graph. (line 137) +* TopView: three. (line 386) +* trace: Debugger. (line 51) +* trailingzero: graph. (line 175) +* transform <1>: three. (line 482) +* transform: Transforms. (line 6) +* transform3: three. (line 437) +* transparency: Pens. (line 222) +* transpose: Arrays. (line 205) +* tree: tree. (line 9) +* trembling: trembling. (line 6) +* triangle: geometry. (line 6) +* triangulate: contour. (line 157) +* tridiagonal: Arrays. (line 266) +* trigonometric integrals: Mathematical functions. + (line 48) +* triple: Data types. (line 110) +* TrueMargin: draw. (line 42) +* TrueMargin3: three. (line 564) +* tube <1>: tube. (line 6) +* tube: three. (line 110) +* tutorial: Tutorial. (line 6) +* type1cm: Pens. (line 178) +* typedef <1>: Functions. (line 36) +* typedef: Data types. (line 361) +* U3D: embed. (line 38) +* undefined: Paths and guides. (line 271) +* UnFill: Frames and pictures. (line 152) +* unfill: fill. (line 106) +* UnFill: draw. (line 26) +* unicode: unicode. (line 6) +* uniform: Arrays. (line 155) +* Uninstall: Uninstall. (line 6) +* unique: math. (line 64) +* unit: Data types. (line 80) +* unitbox <1>: three. (line 307) +* unitbox: Tutorial. (line 155) +* unitcircle <1>: three. (line 274) +* unitcircle: Tutorial. (line 128) +* unitrand: Mathematical functions. + (line 39) +* unitsize <1>: Frames and pictures. (line 64) +* unitsize: Tutorial. (line 86) +* UNIX binary distributions: UNIX binary distributions. + (line 6) +* unpacking: Rest arguments. (line 39) +* unravel: Import. (line 30) +* up: three. (line 338) +* update: Files. (line 36) +* UpsideDown: Frames and pictures. (line 95) +* usepackage: Frames and pictures. (line 291) +* user coordinates: Tutorial. (line 86) +* user-defined operators: User-defined operators. + (line 6) +* usleep: Data types. (line 354) +* value: math. (line 38) +* var: Variable initializers. + (line 63) +* variable initializers: Variable initializers. + (line 6) +* vectorfield: graph. (line 975) +* vectorfield3: graph3. (line 159) +* vectorization: Arrays. (line 323) +* verbatim: Frames and pictures. (line 271) +* vertex-dependent colors: three. (line 81) +* Vertical: flowchart. (line 81) +* viewportheight: LaTeX usage. (line 51) +* viewportmargin: three. (line 262) +* viewportsize: three. (line 262) +* viewportwidth: LaTeX usage. (line 51) +* views: three. (line 231) +* vim: Editing modes. (line 33) +* virtual functions: Structures. (line 181) +* void: Data types. (line 10) +* W: Tutorial. (line 106) +* whatever: Paths and guides. (line 235) +* Wheel: palette. (line 22) +* wheel mouse: GUI. (line 6) +* while: Programming. (line 29) +* white-space string delimiter mode: Arrays. (line 354) +* width: LaTeX usage. (line 51) +* windingnumber: Paths and guides. (line 271) +* word: Arrays. (line 354) +* write <1>: Arrays. (line 394) +* write: Files. (line 53) +* X: three. (line 274) +* xasy: GUI. (line 6) +* xaxis3: graph3. (line 7) +* xdr: Files. (line 75) +* xelatex <1>: Options. (line 143) +* xelatex: embed. (line 10) +* xequals: graph. (line 294) +* XEquals: graph. (line 280) +* xlimits: graph. (line 636) +* XOR: Arithmetic & logical. + (line 80) +* xpart: Data types. (line 91) +* xscale: Transforms. (line 33) +* xscale3: three. (line 445) +* xtick: graph. (line 342) +* XY: three. (line 467) +* XYEquals: graph3. (line 20) +* XYZero: graph3. (line 20) +* XZEquals: graph3. (line 20) +* XZero: graph. (line 275) +* XZZero: graph3. (line 20) +* Y <1>: three. (line 274) +* Y: Mathematical functions. + (line 6) +* yaxis3: graph3. (line 7) +* yequals: graph. (line 294) +* YEquals: graph. (line 130) +* ylimits: graph. (line 636) +* ypart: Data types. (line 94) +* yscale: Transforms. (line 36) +* yscale3: three. (line 448) +* ytick: graph. (line 342) +* YX: three. (line 482) +* YZ: three. (line 482) +* YZEquals: graph3. (line 20) +* YZero: graph. (line 125) +* YZZero: graph3. (line 20) +* Z: three. (line 274) +* zaxis3: graph3. (line 7) +* zero_Ai: Mathematical functions. + (line 48) +* zero_Ai_deriv: Mathematical functions. + (line 48) +* zero_Bi: Mathematical functions. + (line 48) +* zero_Bi_deriv: Mathematical functions. + (line 48) +* zero_J: Mathematical functions. + (line 48) +* zerowinding: Pens. (line 152) +* zeta: Mathematical functions. + (line 48) +* zpart: Data types. (line 163) +* zscale3: three. (line 451) +* ZX: three. (line 482) +* ZY: three. (line 482) +* |: Arithmetic & logical. + (line 62) +* ||: Arithmetic & logical. + (line 59) + + + +Tag Table: +Node: Top575 +Node: Description6834 +Node: Installation10450 +Node: UNIX binary distributions11503 +Node: MacOS X binary distributions12609 +Node: Microsoft Windows13493 +Ref: psview14203 +Node: Configuring15135 +Node: Search paths19349 +Node: Compiling from UNIX source20191 +Ref: multisampling20781 +Node: Editing modes23176 +Node: Subversion25608 +Node: Uninstall26071 +Node: Tutorial26421 +Ref: unitcircle30719 +Node: Drawing commands32655 +Node: draw34366 +Ref: arrows35514 +Node: fill40757 +Ref: gradient shading41801 +Node: clip46029 +Node: label46621 +Ref: Label47219 +Node: Bezier curves53022 +Node: Programming56599 +Ref: array iteration57413 +Node: Data types58494 +Ref: format67691 +Node: Paths and guides71944 +Ref: circle72198 +Ref: extension81622 +Node: Pens88305 +Ref: fillrule95673 +Ref: basealign96570 +Ref: transparency99396 +Ref: makepen102839 +Ref: overwrite103677 +Node: Transforms104887 +Node: Frames and pictures106678 +Ref: envelope107819 +Ref: size108902 +Ref: unitsize109889 +Ref: shipout110949 +Ref: filltype113282 +Ref: add116419 +Ref: add about117365 +Ref: tex120303 +Node: Files121177 +Ref: cd122160 +Ref: scroll126834 +Node: Variable initializers129749 +Node: Structures132474 +Node: Operators139918 +Node: Arithmetic & logical140232 +Node: Self & prefix operators142205 +Node: User-defined operators142993 +Node: Implicit scaling143904 +Node: Functions144467 +Ref: stack overflow147220 +Node: Default arguments147784 +Node: Named arguments148523 +Node: Rest arguments151094 +Node: Mathematical functions154215 +Node: Arrays158880 +Ref: sort165869 +Ref: tridiagonal168273 +Ref: solve169501 +Node: Slices173694 +Node: Casts177584 +Node: Import179549 +Node: Static184786 +Node: LaTeX usage187680 +Node: Base modules194092 +Node: plain196592 +Node: simplex197244 +Node: math197517 +Node: interpolate200222 +Node: geometry200501 +Node: trembling201095 +Node: stats201446 +Node: patterns201706 +Node: markers201942 +Node: tree203725 +Node: binarytree203913 +Node: drawtree204502 +Node: syzygy204706 +Node: feynman204980 +Node: roundedpath205255 +Node: animation205538 +Ref: animate205958 +Node: embed207097 +Node: slide208700 +Node: MetaPost209040 +Node: unicode209756 +Node: latin1210644 +Node: babel211012 +Node: labelpath211241 +Node: labelpath3212061 +Node: annotate212372 +Node: CAD212843 +Node: graph213153 +Ref: ticks220282 +Ref: pathmarkers233576 +Ref: marker234041 +Ref: markuniform234392 +Ref: errorbars236183 +Ref: automatic scaling240239 +Node: palette250885 +Ref: images251003 +Ref: image255175 +Ref: logimage255653 +Ref: penimage256714 +Ref: penfunctionimage256935 +Node: three257659 +Ref: PostScript3D282639 +Node: obj284331 +Node: graph3284583 +Ref: GaussianSurface289708 +Node: grid3290812 +Node: solids291552 +Node: tube292500 +Node: flowchart294735 +Node: contour299304 +Node: contour3304429 +Node: slopefield304736 +Node: ode306173 +Node: Options306433 +Ref: configuration file312421 +Ref: settings312421 +Ref: convert313622 +Node: Interactive mode316589 +Ref: history318742 +Node: GUI320047 +Node: GUI installation320550 +Node: GUI usage321680 +Node: PostScript to Asymptote322583 +Node: Help323339 +Node: Debugger325075 +Node: Credits326860 +Node: Index327792 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/dir b/Master/texmf-dist/doc/info/dir new file mode 100644 index 00000000000..9132b9981a3 --- /dev/null +++ b/Master/texmf-dist/doc/info/dir @@ -0,0 +1,69 @@ +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: + +Science +* Asymptote: (asymptote). Vector graphics language. +* Asymptote FAQ: (asy-faq). FAQ for Asymptote. + +TeX +* Dvipng: (dvipng). DVI to Portable Network Graphics (PNG). +* Dvips: (dvips). Translating TeX DVI files to PostScript. +* Eplain: (eplain). Expanding on plain TeX. +* EpsPDF: (epspdf). Portable GUI&cmdline EPS/PS/PDF conversion. +* Kpathsea: (kpathsea). File lookup along search paths. +* LaTeX2e: (latex2e). LaTeX2e unofficial reference manual. +* LaTeX2e-es: (latex2e-es). Spanish translation of LaTeX2e. +* Mf2pt1: (mf2pt1). Make PostScript Type 1 fonts from Metafont. +* 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. + +Individual utilities +* afm2tfm: (dvips)Invoking afm2tfm. Adobe to TeX font metrics. +* bibtex: (web2c)bibtex invocation. Managing 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. +* kpsewhich: (kpathsea)Invoking kpsewhich. TeX file searching. +* latex2man: (latex2man)Top. Convert man pages in LaTeX. +* 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-dist/doc/info/dvipng.info b/Master/texmf-dist/doc/info/dvipng.info new file mode 100644 index 00000000000..62d070278ad --- /dev/null +++ b/Master/texmf-dist/doc/info/dvipng.info @@ -0,0 +1,1211 @@ +This is dvipng.info, produced by makeinfo version 4.13 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.14 + + 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 +* Graphics:: Including PostScript and/or bitmaps +* Color:: Using color with dvipng +* Diagnosing problems:: Problems? +* Credits:: People who have contributed +* Copying:: GNU Lesser General Public License +* 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://www.gnu.org/software/auctex/preview-latex.html'. + + 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'. + + A more recent addition to the dvipng-using applications out there is +MediaWiki, the software behind Wikipedia and many other wikis out +there. Dvipng is used to render mathematical formulae from version +1.8.0 of MediaWiki, see `http://www.mediawiki.org'. + + 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, which + makes it 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 + end-of-file 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, subfonts + (i.e., as used in CJK-LaTeX), color specials, and inclusion of + PostScript, PNG, JPEG or GIF images. + + * 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. + + * The font-rendering library FreeType 2 + + While not strictly necessary, a recent FreeType 2 is recommended + since dvipng currently will produce better-quality images when + this library is available. To take advantage of this, you should + have at least FreeType 2.1.9. + + FreeType 2 will enable direct support for PostScript and TrueType + fonts, so that dvipng will not need to generate bitmapped variants + on disk of the TeX fonts since modern TeX distributions include + PostScript versions of them. Then, you can render images at + different (and unusual) resolutions without cluttering the disk + with lots of bitmapped fonts. + + Finally, it will enable subfont support in dvipng. That is, if you + want to render CJK-LaTeX characters, you must have FreeType 2 + installed. + + * The font-rendering library T1lib + + An alternative to FreeType 2 is T1lib, but this will enable only + PostScript fonts in dvipng and will not include subfont support. + Also here, 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.) + + 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' and `MANPATH' variables 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, dvipng +will use bitmapped (PK) fonts, and if you use PK 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: Graphics, 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.14 Copyright 2002-2010 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 + -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 + -T c Image size (also accepts '-T bbox' and '-T tight') + -v* Verbose operation + - 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) + -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* Wait for data at end-of-file + --freetype* FreeType font rendering (preferred, default on) + --gamma # Control color interpolation + --gif Output GIF images (dvigif default) + --height* Output the image height on stdout + --nogs* Don't use ghostscript for PostScript specials + --nogssafer* Don't use -dSAFER in ghostscript calls + --norawps* Don't convert raw PostScript specials + --palette* Force palette output + --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) + --width* Output the image width on stdout + -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' + This option only has an effect when using bitmapped (PK) fonts. The + option sets 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 with the + `active' option. 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*' + Wait for data at end-of-file. 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 end-of-file 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 (PK) 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. GIF images are palette + images (see the `--palette' option) and does not support true alpha + channels (see the `--bg' option). 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 with the + `active' option. 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 `--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' + This option only has an effect when using bitmapped (PK) fonts. 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*' + This option only has an effect when using bitmapped (PK) fonts. It + turns off automatic PK font generation (`mktexpk'). + +`--nogs*' + This switch prohibits the internal call to GhostScript for + displaying PostScript specials. `--nogs0' 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. + +`--norawps*' + Some packages generate raw PostScript specials, even non-rendering + such specials. This switch turns off the internal call to + GhostScript intended to display these raw PostScript specials. + `--norawps0' turns the call back on. + +`-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. + +`--palette*' + When an external image is included, `dvipng' will automatically + switch to truecolor mode, to avoid unnecessary delay and quality + reduction, and enable the EPS translator to draw on a transparent + background and outside of the boundingbox. This switch will force + palette (256-color) output and make `dvipng' revert to opaque + clipped image inclusion. This will also override the `--truecolor' + switch if present. + +`--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 bitmapped fonts (PK) and fonts rendered using T1lib, to + be NUM*NUM+1. The default value is 4 which gives 17 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. + +`--strict*' + The program exits 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. See the + `--picky' option above for a list of when warnings occur. + +`-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. + +`--t1lib*' + Enable 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*' + This will make `dvipng' generate truecolor output. Note that + truecolor output is automatic if you include an external image in + your DVI, e.g., via a PostScript special (i.e., the `graphics' or + `graphicx' package). This switch is overridden by the `--palette' + switch. + +`-v*' + Enable verbose operation. This will currently indicate what fonts + is used, in addition to the usual output. + +`--width*' + Report the width of the image. See also `--height' and `--depth'. + +`-x NUM' + This option is deprecated; it should not be used. It is much + better to select the output resolution directly with the `-D' + option. This option sets the magnification ratio to NUM/1000 and + 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: Graphics, Next: Color, Prev: Command-line options, Up: Top + +5 Graphics +********** + +`dvipng' attempts to handle graphics as included by the `graphicx' and +`graphics' packages, without the need of specifying a driver to these +packages. This means that it recognizes the encapsulated postscript +inclusion meant for `dvips', but is also able (from version 1.8) to +include bitmapped graphics. It also tries to handle some of the raw +PostScript that is output from various packages. Some of the +possibilities and problems are mentioned below. + +* Menu: + +* Encapsulated PostScript:: An internal call to GhostScript +* Bitmapped graphics:: PNG, JPEG and GIF +* Raw PostScript:: Ignore or give to GhostScript + + +File: dvipng.info, Node: Encapsulated PostScript, Next: Bitmapped graphics, Up: Graphics + +5.1 Encapsulated PostScript +=========================== + +When an EPS file is included, a call to GhostScript is performed to +produce a bitmapped image that can be included. The default is to +produce an image with transparent background, at the same size as the +DVI page currently being converted to PNG, and include that as +foreground on the PNG. Of course, if the image is to be cropped, that +is done. The included image will be a truecolor image, so for maximum +performance the output PNG will be in truecolor mode as well. + + This conversion needs the `pngalpha' output device to be present in +your copy of GhostScript. If that device is not present, or you use the +`--palette' switch or request GIF output, the fallback is to use the +`png16m' device to produce a cropped opaque image for inclusion. Other +relevant switches are `--noghostscript' and `--nogssafer'. *Note Option +details::. + + 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 adjusted boundingbox +can be specified in the `\includegraphics' call, as in this example +(using `graphicx'): + + \includegraphics[bb=10 20 100 200]{imagename.eps} + + +File: dvipng.info, Node: Bitmapped graphics, Next: Raw PostScript, Prev: Encapsulated PostScript, Up: Graphics + +5.2 Bitmapped graphics +====================== + +dvipng can include PNG, JPEG and GIF graphics. When including such +images via `\includegraphics' you need to specify the bounding box +since TeX itself cannot read them from the files in question. The +bounding box size should be given as `0 0 w h' in pixels, e.g., if the +file `imagename.png' is 300x400 pixels, the inclusion would read + + \includegraphics[bb=0 0 300 400]{imagename.png} + + The default size is the image size in bp ("big points" in TeX +nomenclature or PostScript points as other people have it, 72 per inch). +That is, default resolution will be 72 dpi for included bitmaps, which +is the default size in the few other bitmap-capable drivers that are +known to me (dvipdfm and PDFLaTeX). + + If you want 100 dpi you need to specify the width accordingly. You +just divide your image width by 100: a 135 pixel wide image at 100 dpi +will take up 1.35 inches. If you want 200 dpi you divide by 200, and so +on. Simple, eh? The example above at 200 dpi would be 1.5 inches wide: + + \includegraphics[bb=0 0 300 400,witdh=1.5in]{imagename.png} + + +File: dvipng.info, Node: Raw PostScript, Prev: Bitmapped graphics, Up: Graphics + +5.3 Raw PostScript +================== + +dvipng attempts to handle raw PostScript. Rendering raw PostScript +specials is done on top of the page by including a transparent image +generated by the `pngalpha' device in GhostScript (automatically +selecting `truecolor' mode in dvipng). + + Included PostScript headers are respected, and if the header +`tex.pro' is included, dvipng also throws in `color.pro' and +`special.pro'. The package `xcolor' includes its own headers with color +names, and this is not only kept as a PostScript header, but is also +read and interpreted by dvipng itself. An attempt is also made to +respect the PGF header. The non-rendering specials from `hyperref' are +handled via some heuristics and do not give an error. + + Really rendering and moving things with raw PostScript specials is +more troublesome. The \rotatebox macro serves as a good example. The +dvips driver of the graphicx package surrounds DVI glyphs with +PostScript code so that after conversion by dvips, the glyphs (now +themselves in PostScript) will be rotated in the desired way. dvipng +does not handle this, at present. An attempt has been made to handle +the rendering specials output by PGF (tikz), and also PSTricks. Some +things work, but others do not. This is especially clear when mixing +PostScript and DVI rendering commands such as glyphs. dvipng cannot at +present detect if PostScript code moves `currentpoint' or rotates the +frame since GhostScript does not return such information. A +recommendation would be to produce images from these packages as EPS +files and include them into your document in the standard manner. + + Another way to handle this would be to use a slower fallback (with +dvips and gs, for example). If you want to disable raw PostScript +handling in dvipng, use the switch `--norawps'. This switch turns off +the internal call to GhostScript intended to display these raw +PostScript specials. Further, when dvipng encounters raw PostScript and +the gs call is turned off, it gives a warning. It is now possible to +use the switch `--picky' to disable page rendering of pages with +warnings, and use the slower fallback for these pages. + + +File: dvipng.info, Node: Color, Next: Diagnosing problems, Prev: Graphics, Up: Top + +6 Color +******* + +To support color, dvipng recognizes a certain set of specials as +generated by the `color' and `xcolor' style files. 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 model 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). See the `xcolor' documentation for a list of names and the +corresponding colors. + + On the command-line, the name `Transparent' can also be used 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 form 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: Diagnosing problems, Next: Credits, Prev: Color, Up: Top + +7 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. + +* Menu: + +* Contact information:: Who to ask. +* Debug options:: Getting diagnostics. + + +File: dvipng.info, Node: Contact information, Next: Debug options, Up: Diagnosing problems + +7.1 Contact information +======================= + +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. + + +File: dvipng.info, Node: Debug options, Prev: Contact information, Up: Diagnosing problems + +7.2 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: Credits, Next: Copying, Prev: Diagnosing problems, Up: Top + +8 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), Karl Berry and Peter Breitenlohner (TeX Live), David Harvey +(hinting in Freetype), Neal Harmon, 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, Jason Riedy, Wolfram Krause, Reinhard +Kotucha, Takeshi Abe, and Waldeck Schutzer. + + Use of the `gd' library requires inclusion of the following +copyright notice, which applies to the `gd' library: + + Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under + Grant P41-RR02188 by the National Institutes of Health. + + Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004 by Boutell.Com, Inc. + + Portions relating to GD2 format copyright 1999, 2000, 2001, 2002, + 2003, 2004 Philip Warner. + + Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003, + 2004 Greg Roelofs. + + Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002, + 2003, 2004 John Ellson (ellson@graphviz.org). + + Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 John + Ellson (ellson@graphviz.org). + + Portions relating to JPEG and to color quantization copyright + 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) 1994, + 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Thomas + G. Lane. This software is based in part on the work of the + Independent JPEG Group. See the file README-JPEG.TXT for more + information. + + Portions relating to GIF compression copyright 1989 by Jef + Poskanzer and David Rowley, with modifications for thread safety + by Thomas Boutell. + + Portions relating to GIF decompression copyright 1990, 1991, 1993 + by David Koblas, with modifications for thread safety by Thomas + Boutell. + + Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004 + Maurice Szmurlo and Johan Van den Brande. + + Portions relating to GIF animations copyright 2004 Jaakko + Hyva"dtti (jaakko.hyvatti@iki.fi) + + Permission has been granted to copy, distribute and modify gd in + any context without fee, including a commercial application, + provided that this notice is present in user-accessible supporting + documentation. + + This does not affect your ownership of the derived work itself, + and the intent is to assure proper credit for the authors of gd, + not to interfere with your productive use of gd. If you have + questions, ask. "Derived works" includes all programs that utilize + the library. Credit must be given in user-accessible documentation. + + This software is provided "AS IS." The copyright holders disclaim + all warranties, either express or implied, including but not + limited to implied warranties of merchantability and fitness for a + particular purpose, with respect to this code and accompanying + documentation. + + Although their code does not appear in the current release, the + authors also wish to thank Hutchison Avenue Software Corporation + for their prior contributions. + + +File: dvipng.info, Node: Copying, Next: Index, Prev: Credits, Up: Top + +9 Copying +********* + +This program is free software: you can redistribute it and/or modify it +under the terms of the GNU Lesser General Public License as published +by the Free Software Foundation, either version 3 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 Lesser +General Public License for more details. + + You should have received a copy of the GNU Lesser General Public +License along with this program. If not, see +<http://www.gnu.org/licenses/>. + + + +Copyright (C) 2002-2010 Jan-AAke Larsson + + +File: dvipng.info, Node: Index, Prev: Copying, Up: Top + +Index +***** + + +* Menu: + +* -dSAFER: Option details. (line 168) +* absolute page number, and -l: Option details. (line 142) +* absolute page number, and -p: Option details. (line 195) +* antialiasing levels, number of: Option details. (line 248) +* background color (option): Option details. (line 42) +* base resolution, setting: Option details. (line 35) +* baseline reporting: Option details. (line 78) +* color specifications: Color specifications. + (line 6) +* command-line options: Command-line options. + (line 6) +* compilation: Installation. (line 6) +* compression: Option details. (line 314) +* configuration, of dvipng: Installation. (line 6) +* dark fonts: Option details. (line 121) +* debugging <1>: Diagnosing problems. (line 6) +* debugging: Option details. (line 56) +* depth reporting: Option details. (line 78) +* exit on erroneous images: Option details. (line 259) +* first page printed: Option details. (line 195) +* follow mode: Option details. (line 99) +* font generation, avoiding: Option details. (line 160) +* forcing palette output: Option details. (line 204) +* foreground color (option): Option details. (line 93) +* FreeType font rendering: Option details. (line 107) +* fuzzy images: Option details. (line 121) +* gamma: Option details. (line 121) +* GhostScript and -dSAFER: Option details. (line 168) +* GhostScript, turning off: Option details. (line 164) +* GIF image format: Option details. (line 127) +* height reporting: Option details. (line 134) +* installation, of dvipng: Installation. (line 6) +* invoking dvipng: Basic usage. (line 6) +* last page printed: Option details. (line 142) +* light fonts: Option details. (line 121) +* magnification, overriding DVI: Option details. (line 304) +* Metafont mode, specifying: Option details. (line 151) +* mktexpk, avoiding: Option details. (line 160) +* mode name, specifying: Option details. (line 151) +* no erroneous images: Option details. (line 213) +* offset pages: Option details. (line 189) +* option, details of: Option details. (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 62) +* output, redirecting: Option details. (line 182) +* page range: Option details. (line 226) +* page, first printed: Option details. (line 195) +* page, last printed: Option details. (line 142) +* physical page number, and -l: Option details. (line 142) +* physical page number, and -p: Option details. (line 195) +* PNG image format: Option details. (line 222) +* PostScript inclusion problems: Encapsulated PostScript. + (line 21) +* PostScript, turning off raw PostScript specials: Option details. + (line 176) +* problems: Diagnosing problems. (line 6) +* quality: Option details. (line 248) +* quiet operation: Option details. (line 244) +* reverse pagination: Option details. (line 255) +* silent operation: Option details. (line 244) +* standard input, reading options from: Option details. (line 11) +* standard output, output to: Option details. (line 182) +* T1lib font rendering: Option details. (line 276) +* 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 290) +* warnings, suppressing: Option details. (line 244) +* width reporting: Option details. (line 301) + + + +Tag Table: +Node: Top297 +Node: Introduction1192 +Node: Installation3431 +Node: Prerequisites3778 +Node: Configure6268 +Node: Build/install8307 +Node: Installation outside the texmf tree8775 +Node: Advice for non-privileged users9482 +Node: Basic usage10490 +Node: Command-line options11662 +Node: Option summary12086 +Node: Option details14512 +Node: Graphics30430 +Node: Encapsulated PostScript31182 +Node: Bitmapped graphics32525 +Node: Raw PostScript33748 +Node: Color35987 +Node: Color specifications36375 +Node: Color specials37474 +Node: Diagnosing problems38886 +Node: Contact information39369 +Node: Debug options40110 +Node: Credits41145 +Node: Copying45146 +Node: Index45926 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/dvips.info b/Master/texmf-dist/doc/info/dvips.info new file mode 100644 index 00000000000..fd8b2fac5ee --- /dev/null +++ b/Master/texmf-dist/doc/info/dvips.info @@ -0,0 +1,4802 @@ +This is ../../../texk/dvipsk/dvips.info, produced by makeinfo version +4.13 from ../../../texk/dvipsk/dvips.texi. + +This manual documents Dvips version 5.992 (May 2012), a program to +translate a DVI file into PostScript. You may freely use, modify +and/or distribute this file. + +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.992 (May 2012), a program to +translate a DVI file into PostScript. You may freely use, modify +and/or distribute this file. + +* 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 +************** + +Installing Dvips is mostly the same as installing any Kpathsea-using +program. Therefore, for the basic steps involved, *note Installation: +(kpathsea)Installation. + + 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 +configuration 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. (Public domain.) + + % 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@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 + + % To include another configuration file here. + %c FILENAME + + % 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. + + A good first debugging operation is to set the environment variable +`DVIPSDEBUG', which will display any configuration and map files read +by Dvips. This way you can be sure it's finding the files and settings +you expect. + +* 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, +specify 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'. + + You can also set the environment variable `KPATHSEA_DEBUG' instead +of using `-d'. 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 + (omitted) + +256 + config files + +512 + Kpathsea `stat' calls + +1024 + Kpathsea hash table lookups + +2048 + Kpathsea path element expansion + +4096 + 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. The +default output is to a corresponding file `foo.ps'; Dvips may also have +been locally configured to output directly to a printer by default. + + 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] +Convert DVI input files to PostScript. +See http://tug.org/dvips/ for the full manual and other information. + +Options: +-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 +-noptex Disable pTeX 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 was useful to work around bugs in old versions of + Adobe's PDF reader. It's more likely to cause problems nowadays. + +`-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' + Disable the use of Omega extensions when interpreting DVI files. + By default, the additional opcodes `129' and `134' are recognized + by Dvips as Omega or pTeX extensions and interpreted as requests + to set 2-byte characters. + +`-noptex' + Disable the use of pTeX extensions when interpreting DVI files. By + default, the additional opcodes `130' and `135' are recognized by + Dvips as Omega extensions and interpreted as requests to set + 3-byte characters, and `255' as request to change the typesetting + direction. + + The only drawback is that the virtual font array will (at least + temporarily) require 65536 or more positions instead of the default + 256 positions, i.e., the memory requirements of Dvips will be + somewhat larger. If you find this unacceptable or encounter + another problem with the Omega or pTeX extensions, you can switch + off the pTeX extension by using `-noptex', or both 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 + (i.e., it is the last thing on the command line), 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. `-R2' disables both 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 or `..'-relative + filenames. `-R1', the default, forbids shell escapes but allows + absolute filenames. `-R0' allows both. + +`-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'. + + - In general, you should not use any `-t' option when using a + `papersize' special, which some LaTeX packages (e.g., + `hyperref') insert. + + - One exception is when using a nonstandard paper size that is + not already defined in `config.ps'; in this case, you need to + specify `-t unknown'. + + - Another exception is when producing multi-page files for + further processing; use `-t nopaper' to omit any paper size + information in the output. (If you just have a single page + document, you can use `-E' to get pure EPSF output.) + +`-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. Be careful, as + the paper size will stick to a predefined size if there is one + close enough. To disable this behavior, use `-tunknown'. + +`-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. + +`DVIPSDEBUG' + Write the absolute path names of any configuration or map files to + standard output, for debugging. This isn't done by default because + these files are read even before the banner is printed. For + voluminous additional debugging, set the environment variable + `KPATHSEA_DEBUG' to `-1' (*note Debugging: (kpathsea)Debugging.). + (If `KPATHSEA_DEBUG' is set to any value, it automatically turns + on `DVIPSDEBUG'.) + +`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::. + +`c FILENAME' + Include FILENAME as an additional configuration file, read + immediately. + +`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::. + +`G*' + Shift low-numbered characters; obsolete. Same as `-G', *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 `-R' is specified on the command line, that takes + precedence. + + + +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 local +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 in these cases 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. + + When using the `papersize' special, you generally should not also +specify `-t' on the command line (*note Option details::). The +exception is when using a nonstandard paper size that isn't predefined; +in this case, use `-t unknown'. + + The `papersize' special must occur somewhere on the first page of +the document. Some packages, notably `hyperref', insert this special. + + +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 best match found (from the paper +size information in the configuration file) is used. The dimensions +must match within 5bp. + + If nothing matches, a warning is printed and the first paper size +with zero dimensions is used; this should be the `unknown' paper size +definition mentioned below, resulting in the actual dimensions being +used. + + 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. 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. So paper size entries should typically specify both. + + When using a paper size that is not already defined in `config.ps', +you probably want to say `-t unknown' on the command line; the +`unknown' paper size definition in `config.ps' has the requisite +PostScript incantation to set the PostScript page size, as just +described. + + If you want no paper size information in the output at all, use +`-t nopaper'. This is useful with multi-page output that will be +processed further. If you just have a single page document, you can +use `-E' to get pure EPSF output. + + The Perl 5 script `contrib/configs/mkdvipspapers' in the +distribution directory may help in determining appropriate paper size +definitions. + + Notwithstanding the above, the default `letter' and `a4' paper size +definitions in `config.ps' execute the `setpagedevice' operator if it +exists (it was defined in PostScript Level 2), or the `letter' or `a4' +operator if they exist (they are nonstandard and thus perhaps cause +failures on certain (unknown) printers). Not executing any page size +definition at all confuses PostScript conversion programs such as +`ps2pdf', so we want to execute one if we can. + + The `letterSize' and `A4Size' paper size definitions are now +synonyms for `letter' and `a4'. + + +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, as a percentage (default 100). + +`vscale' + The vertical scaling factor, as a percentage (default 100). + +`angle' + The rotation, in degrees (default 0). + +`clip' + Enable clipping to the bounding box (default disabled). + +`llx, lly, urx, ury' + Bounding box of the included image, just as in a `%%BoundingBox' + comment. Values are in big points, and may be fractional. + +`rhi, rwi' + Desired width and height of the resulting figure in the output, in + tenths of big points (720 to the inch); may be fractional. + + If both `rwi' and `rhi' are nonzero, the picture is scaled, + possibly losing aspect ratio. If only one of `rwi' and `rhi' is + nonzero, the picture is scaled, preserving aspect ratio. + + + The offsets and sizes are given in PostScript units (big points). +Thus, for example: + + \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} + \special{ps::[nobreak]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]'. + + Literal PostScript instructions after `ps::[nobreak]' are _not_ +broken into lines. This feature may be used to include PostScript +comments, for example. + + 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 +the Fontname distribution (`http://tug.org/fontname') 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' +option 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' (just as if it were a +header file, *note Header files::) if the DVI file (or a virtual font, +*note Virtual fonts::) references the TFM file `rpstrn'. The +PostScript `/FontName' of the font defined inside the `pfb' file should +be `StoneInformal'. + + 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::). + + If the `j' config file or command-line option is enabled (as it is +by default), `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::. + + 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 + + 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 either a DVI file or a virtual font file can refer to. If + there is a second name, it is used as the PostScript name and + should match what is defined in the downloaded file; 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 233) +* " 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 198) +* %%Page, removing: Option details. (line 154) +* %%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 109) +* -: Option details. (line 11) +* - as output filename: Option details. (line 233) +* --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 122) +* -i: Option details. (line 127) +* -j for partial font downloading: Option details. (line 140) +* -K: Option details. (line 154) +* -k for cropmarks: Option details. (line 146) +* -l [=]NUM: Option details. (line 163) +* -M: Option details. (line 184) +* -m: Option details. (line 172) +* -mode: Option details. (line 175) +* -mode MODE: Option details. (line 175) +* -N: Option details. (line 198) +* -n NUM: Option details. (line 195) +* -noomega: Option details. (line 206) +* -noptex: Option details. (line 212) +* -O: Afm2tfm options. (line 41) +* -o NAME: Option details. (line 228) +* -O X-OFFSET,Y-OFFSET: Option details. (line 245) +* -p [=]NUM: Option details. (line 263) +* -P PRINTER: Option details. (line 277) +* -p PS-ENC <1>: Afm2tfm options. (line 46) +* -p PS-ENC: Changing PostScript encodings. + (line 6) +* -pp FIRST-LAST: Option details. (line 272) +* -pp RANGE: Option details. (line 272) +* -PPRINTER, and config file searching: Configuration file searching. + (line 27) +* -q: Option details. (line 296) +* -R: Option details. (line 303) +* -r: Option details. (line 300) +* -s: Option details. (line 311) +* -S NUM: Option details. (line 318) +* -s SLANT: Afm2tfm options. (line 51) +* -T ENC-FILE: Changing both encodings. + (line 6) +* -T HSIZE,VSIZE: Option details. (line 347) +* -t PAPERTYPE: Option details. (line 323) +* -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 362) +* -u PSMAPFILE: Option details. (line 354) +* -V: Option details. (line 373) +* -v: Option details. (line 370) +* -V VPL-FILE: Afm2tfm options. (line 74) +* -v VPL-FILE: Afm2tfm options. (line 71) +* -X NUM: Option details. (line 390) +* -x NUM: Option details. (line 382) +* -Y NUM: Option details. (line 397) +* -z: Hypertext. (line 6) +* -Z for compressing bitmap fonts: Option details. (line 406) +* -z for recognizing hyperdvi: Option details. (line 400) +* ..-relative filenames: Option details. (line 303) +* .afm Adobe metric files: Metric files. (line 26) +* .dvipsrc, searched for: Configuration file searching. + (line 14) +* .enc extension for encoding vectors: psfonts.map. (line 42) +* .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 46) +* .pfa printer font ascii files: Glyph files. (line 25) +* .pfb extension required for partial downloading: psfonts.map. + (line 46) +* .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 31) +* 8r.enc: Encodings. (line 35) +* < font downloading: psfonts.map. (line 11) +* << whole font downloading: psfonts.map. (line 60) +* <[ encoding vector downloading: psfonts.map. (line 36) +* =: 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 323) +* a4 paper size: Config file paper sizes. + (line 84) +* a4 papertype: Option details. (line 323) +* A4size paper size: Config file paper sizes. + (line 92) +* absolute filenames, disabling: Option details. (line 303) +* absolute page number, and -l: Option details. (line 163) +* absolute page number, and -p: Option details. (line 263) +* 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) +* angle (psfile special option): psfile special. (line 36) +* 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 31) +* 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 <2>: EPSF scaling. (line 75) +* bop-hook: Paper trays. (line 6) +* bop-hook, and offset pages: Option details. (line 258) +* 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) +* c include additional config file: Configuration file commands. + (line 27) +* 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) +* clip (psfile special option): psfile special. (line 39) +* 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 154) +* compilation: Installation. (line 6) +* compressed PostScript: Dynamic creation of graphics. + (line 6) +* compressing bitmap fonts: Option details. (line 406) +* 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 277) +* config.ps installation: config.ps installation. + (line 6) +* config.ps paper sizes: Config file paper sizes. + (line 84) +* 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 56) +* 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 146) +* cropmarks: Option details. (line 146) +* current font, in PostScript: PostScript typesetting. + (line 35) +* D config command (dpi): Configuration file commands. + (line 31) +* dated output: PostScript hooks. (line 16) +* datestamp, in output: Configuration file commands. + (line 37) +* debugging <1>: Option details. (line 52) +* debugging: Diagnosing problems. (line 6) +* debugging options: Debug options. (line 6) +* default resolutions: Configuration file commands. + (line 131) +* default_texsizes Make variable: Configuration file commands. + (line 147) +* Deutsch, Peter: Ghostscript installation. + (line 6) +* device dependency, and virtual fonts: Configuration file commands. + (line 170) +* 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 400) +* 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 55) +* 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) +* DVIPSDEBUG: Environment variables. + (line 17) +* DVIPSFONTS: Environment variables. + (line 26) +* DVIPSHEADERS: Environment variables. + (line 31) +* DVIPSHEADERS, overrides H: Configuration file commands. + (line 55) +* DVIPSMAKEPK: Environment variables. + (line 35) +* DVIPSRC: Environment variables. + (line 41) +* DVIPSSIZES: Environment variables. + (line 46) +* DVIPSSIZES, overrides R: Configuration file commands. + (line 144) +* dynamic creation of graphics: Dynamic creation of graphics. + (line 6) +* e config command (maxdrift): Configuration file commands. + (line 34) +* E config command (shell escape): Configuration file commands. + (line 37) +* 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 19) +* 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 45) +* f config command (filter): Configuration file commands. + (line 45) +* 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 131) +* 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 263) +* font concepts: Font concepts. (line 6) +* font generation, avoiding: Option details. (line 184) +* 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) +* G character shifting config command: Configuration file commands. + (line 48) +* 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 118) +* 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 374) +* h header downloading config command: Configuration file commands. + (line 52) +* H header path config command: Configuration file commands. + (line 55) +* Hafner, Jim: Color. (line 6) +* header file, downloading: Option details. (line 122) +* header files, defined: Header files. (line 6) +* header path, defining: Configuration file commands. + (line 55) +* 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) +* hoffset (psfile special option): psfile special. (line 18) +* 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) +* hscale (psfile special option): psfile special. (line 30) +* hsize (psfile special option): psfile special. (line 24) +* html specials: Hypertext. (line 6) +* html specials, and -z: Option details. (line 400) +* 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 400) +* 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 59) +* 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 63) +* Java DVI reader: Hypertext. (line 21) +* Jeffrey, Alan: Invoking afm2tfm. (line 13) +* K config command (comment-removal): Configuration file commands. + (line 67) +* kerning, defined: Metric files. (line 15) +* KPATHSEA_DEBUG: Environment variables. + (line 18) +* landscape orientation, defined: Paper size and landscape. + (line 11) +* landscape papertype: Option details. (line 323) +* landscape, as \special: papersize special. (line 16) +* last page printed: Option details. (line 163) +* last-resort font scaling, with DVIPSSIZES: Environment variables. + (line 47) +* last-resort scaling, with R: Configuration file commands. + (line 131) +* ledger papertype: Option details. (line 323) +* legal papertype: Option details. (line 323) +* letter paper size: Config file paper sizes. + (line 84) +* letter papertype: Option details. (line 323) +* letterhead tray: Paper trays. (line 10) +* letterSize paper size: Config file paper sizes. + (line 92) +* 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) +* llx (psfile special option): psfile special. (line 42) +* lly (psfile special option): psfile special. (line 42) +* long documents not printing: Long documents fail. (line 6) +* low characters, shifting: Option details. (line 117) +* lpr spooler, MS-DOS emulation: Option details. (line 233) +* Lucida, installing: PostScript font installation. + (line 10) +* m config command (available memory): Configuration file commands. + (line 71) +* M config command (mf mode): Configuration file commands. + (line 90) +* 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 382) +* magnification, vertical: Option details. (line 393) +* mailcap and hypertext: Hypertext specials. (line 53) +* manual feed: Option details. (line 172) +* maxdrift: Option details. (line 71) +* maximum pages printed: Option details. (line 195) +* media: Option details. (line 323) +* memory available: Configuration file commands. + (line 71) +* 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 175) +* Metafont source files: Glyph files. (line 30) +* metric files: Metric files. (line 6) +* Minion typeface family: psfonts.map. (line 60) +* missfont.log: Option details. (line 184) +* MISSFONT_LOG: Option details. (line 187) +* Mitsubishi Shinko CHC-S446i printer: No output. (line 14) +* mkdvipspapers: Config file paper sizes. + (line 80) +* mktexpk, avoiding: Option details. (line 184) +* mktexpk, changing name: Environment variables. + (line 36) +* mode name, specifying: Option details. (line 175) +* Monotype fonts: PostScript font installation. + (line 10) +* Monotype fonts, installing: PostScript font installation. + (line 19) +* mtpk: Option details. (line 374) +* multiple master fonts: psfonts.map. (line 60) +* multiple output files: Option details. (line 127) +* multiple paper trays: Paper trays. (line 6) +* Murphy, Tim: Hypertext specials. (line 20) +* N EPS-disabling config command: Configuration file commands. + (line 93) +* name: Hypertext specials. (line 41) +* narrow fonts: psfonts.map. (line 19) +* no output at all: No output. (line 6) +* non-printing characters, shifting: Option details. (line 117) +* non-resident fonts: psfonts.map. (line 6) +* nopaper, paper format for -t: Config file paper sizes. + (line 75) +* O config command (offset): Configuration file commands. + (line 106) +* o config command (output file): Configuration file commands. + (line 98) +* 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 245) +* Omega extensions: Option details. (line 206) +* 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 98) +* output files, multiple: Option details. (line 127) +* output, inverted: Small or inverted. (line 6) +* output, none: No output. (line 6) +* output, redirecting: Option details. (line 228) +* output, too small: Small or inverted. (line 6) +* p config command (font aliases): Configuration file commands. + (line 109) +* P config command (PK path): Configuration file commands. + (line 118) +* page range: Option details. (line 272) +* page, first printed: Option details. (line 263) +* page, last printed: Option details. (line 163) +* pages, maximum printed: Option details. (line 195) +* 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 323) +* papersize special: papersize special. (line 6) +* papersize special, and no -t: Option details. (line 323) +* partial font downloading: psfonts.map. (line 55) +* 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 400) +* pdfmark: Hypertext. (line 6) +* pfa files: Glyph files. (line 25) +* pfb files: Glyph files. (line 25) +* pfb files, automatically unpacked: psfonts.map. (line 49) +* 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 163) +* physical page number, and -p: Option details. (line 263) +* 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 118) +* plotfile, ps subspecial: ps special. (line 30) +* pltotf: Metric files. (line 39) +* popen for output: Option details. (line 233) +* portrait orientation, defined: Paper size and landscape. + (line 11) +* 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 109) +* PostScript font alias file: Option details. (line 354) +* 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 50) +* 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 71) +* printer memory exhausted: Printer errors. (line 14) +* printer offset: Option details. (line 245) +* 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 374) +* pTeX extensions: Option details. (line 206) +* Q config command (quiet): Configuration file commands. + (line 125) +* q config command (quiet): Configuration file commands. + (line 125) +* quiet operation: Option details. (line 296) +* r config command (page reversal): Configuration file commands. + (line 128) +* R fallback resolution config command: Configuration file commands. + (line 131) +* reencode/*.enc: Encodings. (line 35) +* reencoding: Reencoding with Afm2tfm. + (line 6) +* reencoding PostScript fonts: psfonts.map. (line 24) +* 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 109) +* resident fonts, different in different printers: Option details. + (line 354) +* resolution: Option details. (line 390) +* resolution, setting: Option details. (line 58) +* reverse pagination: Option details. (line 300) +* rhi (psfile special option): psfile special. (line 46) +* Rokicki, Tomas: Why Dvips. (line 68) +* rotate.tex: ps special. (line 34) +* rwi (psfile special option): psfile special. (line 46) +* S config command (pict path): Configuration file commands. + (line 156) +* s config command (save/restore): Configuration file commands. + (line 153) +* 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 311) +* scaleunit: psfile special. (line 67) +* 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 67) +* 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 127) +* security: Option details. (line 303) +* shell command execution, disabling: Option details. (line 303) +* shell escape, in config file: Configuration file commands. + (line 37) +* Shinko CHC-S446i printer: No output. (line 14) +* show PostScript operator: PostScript typesetting. + (line 23) +* silent operation: Option details. (line 296) +* 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 233) +* standard I/O: Option details. (line 98) +* standard input, reading options from: Option details. (line 11) +* standard output, output to: Option details. (line 228) +* standard PostScript, required by Ghostview: Ghostscript installation. + (line 17) +* start-hook: PostScript hooks. (line 11) +* structured comments: Option details. (line 198) +* system in config file: Configuration file commands. + (line 37) +* T config command (TFM path): Configuration file commands. + (line 161) +* Tektronix Phaser printer, used for color calibration: Color device configuration. + (line 18) +* testpage.tex: Option details. (line 252) +* TeX encoding, changing: Changing TeX encodings. + (line 6) +* TeX, including headers in: Including headers from TeX. + (line 6) +* TEXCONFIG: Environment variables. + (line 55) +* TEXFONTS, overrides P: Configuration file commands. + (line 118) +* TEXFONTS, overrides T: Configuration file commands. + (line 161) +* TEXINPUTS, overrides S: Configuration file commands. + (line 156) +* texmext.enc: Encodings. (line 35) +* TEXMFOUTPUT: Option details. (line 187) +* texmital.enc: Encodings. (line 35) +* texmsym.enc <1>: Changing TeX encodings. + (line 16) +* texmsym.enc: Encodings. (line 35) +* TEXPICTS: Environment variables. + (line 62) +* TEXPICTS, overrides S: Configuration file commands. + (line 156) +* TEXPKS, overrides P: Configuration file commands. + (line 118) +* TEXSIZES, overrides R: Configuration file commands. + (line 144) +* text in figures, chopped off: EPSF clipping. (line 6) +* tfm files: Metric files. (line 31) +* TFMFONTS, overrides T: Configuration file commands. + (line 161) +* 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 198) +* transforming downloaded fonts: psfonts.map. (line 19) +* 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 166) +* uncollated copies: Option details. (line 41) +* uncompressing PostScript: Dynamic creation of graphics. + (line 6) +* uniform resource locator: Hypertext specials. (line 20) +* unknown, paper format for -t <1>: Config file paper sizes. + (line 69) +* unknown, paper format for -t: papersize special. (line 29) +* URL, definition: Hypertext specials. (line 27) +* URL, extended for TeX: Hypertext specials. (line 20) +* urx (psfile special option): psfile special. (line 42) +* ury (psfile special option): psfile special. (line 42) +* usage, basic: Basic usage. (line 6) +* user-definable colors: User-definable colors. + (line 6) +* userdict, and dictionary files: Header files. (line 21) +* userdict, used for header files: Option details. (line 122) +* V config command (vf path): Configuration file commands. + (line 170) +* 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 170) +* 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) +* voffset (psfile special option): psfile special. (line 21) +* vpl files: Virtual fonts. (line 16) +* vptovf: Making a font available. + (line 52) +* vscale (psfile special option): psfile special. (line 33) +* vsize (psfile special option): psfile special. (line 27) +* W config command (warning): Configuration file commands. + (line 175) +* warning messages, defining: Configuration file commands. + (line 175) +* warnings, suppressing: Option details. (line 296) +* whole font downloading: psfonts.map. (line 60) +* wide fonts: psfonts.map. (line 19) +* X config command (horizontal resolution): Configuration file commands. + (line 182) +* Xerox 4045: Option details. (line 362) +* Y config command (vertical resolution): Configuration file commands. + (line 185) +* Y&Y fonts, installing: PostScript font installation. + (line 19) +* Z config command (compression): Configuration file commands. + (line 188) +* z config command (secure mode): Configuration file commands. + (line 191) +* | starting output filename: Option details. (line 233) + + + +Tag Table: +Node: Top559 +Node: Why Dvips1303 +Node: Installation4751 +Node: config.ps installation5772 +Node: PostScript font installation8396 +Node: Ghostscript installation11270 +Node: Diagnosing problems12367 +Node: Debug options13462 +Node: No output14488 +Node: Small or inverted15956 +Node: Printer errors16675 +Node: Long documents fail18007 +Node: Including graphics fails18348 +Node: Invoking Dvips19586 +Node: Basic usage20177 +Node: Command-line options21205 +Node: Option summary21654 +Node: Option details23850 +Node: Environment variables43214 +Node: Config files46173 +Node: Configuration file searching46856 +Node: Configuration file commands50156 +Node: Paper size and landscape57365 +Node: papersize special58963 +Node: Config file paper sizes60372 +Node: Paper trays64527 +Node: Interaction with PostScript65861 +Node: PostScript figures66514 +Node: Bounding box67240 +Node: \includegraphics70611 +Node: EPSF macros72902 +Node: EPSF scaling74872 +Node: EPSF clipping77442 +Node: psfile special78084 +Node: Dynamic creation of graphics80477 +Node: Fonts in figures81795 +Node: Header files83455 +Node: Including headers from TeX84661 +Node: Including headers from the command line86695 +Node: Headers and memory usage87795 +Node: Literal PS88505 +Node: " special89087 +Node: ps special89828 +Node: Literal headers91326 +Node: PostScript hooks92041 +Node: Literal examples94131 +Node: Hypertext95583 +Node: Hypertext caveats97141 +Node: Hypertext specials101538 +Node: PostScript fonts104172 +Node: Font concepts105288 +Node: Metric files106455 +Node: Glyph files109281 +Node: Virtual fonts111637 +Node: Encodings113527 +Node: PostScript typesetting115930 +Node: Making a font available119012 +Node: Invoking afm2tfm124042 +Node: Changing font encodings125012 +Node: Changing TeX encodings125802 +Node: Changing PostScript encodings126902 +Node: Changing both encodings128246 +Node: Reencoding with Afm2tfm128919 +Node: Encoding file format132023 +Node: Special font effects136226 +Node: Afm2tfm options138489 +Node: psfonts.map141474 +Node: Color146206 +Node: Color macro files147250 +Node: User-definable colors150448 +Node: Color subtleties151723 +Node: Ted Turner153374 +Node: Color device configuration154599 +Node: Color support details157041 +Node: Color specifications157419 +Node: Color specials158822 +Node: Index160951 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/eplain.info b/Master/texmf-dist/doc/info/eplain.info new file mode 100644 index 00000000000..5b27ad3c3ae --- /dev/null +++ b/Master/texmf-dist/doc/info/eplain.info @@ -0,0 +1,8187 @@ +This is eplain.info, produced by texi2any version 4.13.96+dev from +eplain.texi. + +This manual documents the Eplain macros, version 3.5, February 2013. +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 originally 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. Adam Lewenberg has made +additions and corrections. Oleg Katsitadze wrote the section on LaTeX +packages and the chapter on hyperlinks, and updates throughout. +INFO-DIR-SECTION TeX +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.5, February 2013. +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 originally 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. Adam Lewenberg +has made additions and corrections. Oleg Katsitadze wrote the section +on LaTeX packages and the chapter on hyperlinks, and updates throughout. + + The Eplain home page is <http://tug.org/eplain>. + +* 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. +* Demo files:: Sample documents demonstrating Eplain. +* 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. +* Loading LaTeX packages:: Support for LaTeX packages under plain TeX. + +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. + +Contents + +* Writing the .toc file:: +* Reading the .toc file:: +* Changing the .toc file's root name:: +* Alternative contents files:: + +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. +* Index entries with special characters:: +* Proofing index terms:: Noting index entries in the margins. + +Loading LaTeX packages + +* 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. + +Hyperlinks + +* Introduction to hyperlinks:: +* Explicit hyperlinks:: +* Implicit hyperlinks:: +* Hyperlink drivers:: +* Setting hyperlink types and options:: +* Turning hyperlinks on/off:: + +Implicit hyperlinks + +* General hyperlinks:: hrefint, hrefext +* 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 driver hypertex:: +* Hyperlink drivers pdftex and dvipdfm:: +* Hyperlink driver nolinks:: + +Hyperlink driver hypertex:: + +* Destination types for hypertex:: +* Destination options for hypertex:: +* Link types for hypertex:: +* Link options for hypertex:: + +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' and 'while' 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:: +* \ifempty:: +* \ifinteger and \isinteger:: +* \futurenonspacelet:: + +Demo files + +* Hyperlinks (xhyper.tex):: +* Highlighting TeX comments in listings (lscommnt.tex):: + + +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. Its home on the web is <http://tug.org/eplain>. + + 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 + +or visit <http://tug.org/mailman/listinfo/tex-eplain>. + + David Walden had reported his experience with Eplain as a new user. +The article is available online at +<http://tug.org/pracjourn/2005-4/walden>. An introductory article +(written for TUGboat) is also available online at +<http://tug.org/eplain/misc/tb84katsi.pdf>. + + +File: eplain.info, Node: Installation, Next: Invoking Eplain, Prev: Introduction, Up: Top + +2 Installation +************** + +Your TeX installation should already contain a version of Eplain +('eplain.tex') in its main 'texmf' tree (usually under +'/usr/share/texmf/tex/eplain/' on Unix systems). To install a newer +version of Eplain, put the new 'eplain.tex' (included in Eplain +distributions) in the 'tex/eplain/' subdirectory of your local 'texmf' +tree. The newer version you install in the local tree should override +the older one in the main tree. + + The location of the local 'texmf' tree obviously depends on your +operating system and TeX installation. On Unix systems the usual +location is '/usr/local/share/texmf/'. If you don't have write +permissions for '/usr/local/share/texmf/', many installations read the +'texmf' tree in the user's home directory; 'eplain.tex' then should go +under '~/texmf/tex/eplain/'. For more information about TeX directory +structure, please see +<http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds>. + + If you prefer to install 'eplain.tex' in a non-standard place, set an +environment variable ('TEXINPUTS' for the Web2C port of TeX to Unix) to +tell TeX how to find it. + + 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 your local +'texmf' tree or set an environment variable to tell TeX how to find it. +For the Web2C port of TeX to Unix, format files are usually installed +under '/usr/local/share/texmf/web2c/' or '/var/lib/texmf/web2c/'; the +environment variable is 'TEXFORMATS'. + + +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. The original sources can be found in Eplain source +zip archive in your TeX distribution, on CTAN or on Eplain's home page +at <http://tug.org/eplain>. + + 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 conveniently, 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'. + + On the other hand, if your document's bibliography is very simple, +you may prefer to create the '.bbl' file yourself, by hand, instead of +using BibTeX. An annotated example of this approach is also given +below. + + 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 above '\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::). + + For simple documents you might choose to write the '.bbl' file +yourself, instead of running BibTeX. For this scenario, the following +commands should suffice: + + $ tex citex (read citex.bbl, produces undefined citation messages) + $ tex citex (one more time, to resolve the references) + + 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. +* Commands from LaTeX:: LaTeX commands defined by 'btxmac'. + + +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, Next: Commands from LaTeX, 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. + +'\biblabelprecontents' +'\biblabelpostcontents' + Macros expanded before and after '\biblabelcontents', respectively. + For example, to get left-justified numeric labels (they are + right-justified by default): + + \def\biblabelprecontents{\relax} + \def\biblabelpostcontents{\hss} + +'\bblrm' + The default font used for printing the bibliography. + +'\bblem' + The font used for printing the titles and other "emphasized" + material. + +'\bblemph' + Typesets its argument using '\bblem', then inserts an italic + correction. + +'\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 desperate, of course you can also hand-edit the .bbl file +that BibTeX produces to do anything you wish. + + +File: eplain.info, Node: Commands from LaTeX, Prev: Formatting bibliographies, Up: Citations + +4.3.3 Commands from LaTeX +------------------------- + +Because of the historical connection between BibTeX and LaTeX, in +practice many bibliography styles and bibliographies use LaTeX commmands +that are not part of bibliography handling, per se. + + To support this, 'btxmac.tex' (and thus Eplain) define the following. +In all cases, an existing definition (e.g., from 'miniltx.tex', *note +Loading LaTeX packages: Loading LaTeX packages.) will not be +overwritten. Here is the list: + +'\newcommand' +'\renewcommand' +'\providecommand' + Defining new commands in various ways. The Eplain versions do not + support the *-form of these; use 'miniltx' for that. + +'\em' +'\emph' +'\sc' +'\textbf' + Selecting fonts. + +'\mbox' + A horizontal box. + +'\newblock' + Starts elements of a bibliography entry. + + For full information about these, see the LaTeX manual and sources. + + +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'. + + Eplain defines '\eqnum' and '\eqalignnum' which can be set up to +produce either left-aligned or right-aligned equation numbers. +'\lefteqnumbers' ('\righteqnumbers') will define '\eqnum' to expand to +'\eqno' ('\leqno'), and '\eqalignnum' to expand to '\eqalignno' +('\leqalignno'). Default is '\righteqnumbers' (right-aligned equation +numbers). + +* 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). + + '\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. + + Normally, the '\listing' command will add a final empty line at the +end of the output, even if the file does not end in a newline. To +suppress this final line, you can say '\let\setuplistinghook = +\nolastlinelisting'. This also works with line numbers (say +'\def\setuplistinghook{\linenumberedlisting \nolastlinelisting}'), but +only if '\printlistinglineno' consists exclusively of boxes at the top +level (i.e., any '\kern's or glue should be wrapped up in a box). + + You can use the form feed control character (ASCII code 12, typed as +'CTRL-L') in the file to force a page break in the output. + + 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'. + + To reset the category code of all special characters to 12 ("other"), +'\verbatim' uses '\uncatcodespecials' (*note Category codes::). If you +make additional characters "special", you should extend '\dospecials' to +include those characters, lest they be given special treatment inside +verbatim environments. For example, + + \catcode`\A=\active + % Try commenting out the following line. + \expandafter\def\expandafter\dospecials\expandafter{\dospecials\do\A} + \verbatimA#$%_^|endverbatim + + 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. + +* Menu: + +* Writing the .toc file:: +* Reading the .toc file:: +* Changing the .toc file's root name:: +* Alternative contents files:: + + +File: eplain.info, Node: Writing the .toc file, Next: Reading the .toc file, Up: Contents + +4.8.1 Writing the .toc file +--------------------------- + +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}' (unless PART is an integer, see +below). 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} + + A variation on '\writenumberedtocentry' is '\writenumberedtocline', +differing only in the order of the parameters it takes and writes for +the '\tocPARTentry' control sequences. To continue the previous example: + + \writenumberedtocline{chapter}{\the\chapno}{A $\sin$ wave} + +writes the following to the .toc file: + + \tocchapterentry{3}{A $\sin$ wave}{8} + +Such ordering of the parameters allows the '\tocPARTentry' macros to +typeset the text of the entry without actually reading it as an +argument. This is required for entries which need to change character +catcodes, e.g., to produce verbatim text (*note Verbatim listing::). + + Each of '\writetocentry', '\writenumberedtocentry' and +'\writenumberedtocline' processes a numeric PART argument specially. If +you pass PART expanding to an integer, these macros write into the .toc +file an entry that starts with '\tocentry{PART}'. Thus, you can define a +single '\tocentry' macro which formats all entries for a table of +contents. To continue the previous examples: + + \writenumberedtocentry{1}{A $\sin$ wave}{\the\chapno} + \writenumberedtocline{1}{\the\chapno}{A $\sin$ wave} + \writetocentry{2}{A section title} + +writes the following to the .toc file: + + \tocentry{1}{A $\sin$ wave}{3}{8} + \tocentry{1}{3}{A $\sin$ wave}{8} + \tocentry{2}{A section title}{9} + + +File: eplain.info, Node: Reading the .toc file, Next: Changing the .toc file's root name, Prev: Writing the .toc file, Up: Contents + +4.8.2 Reading the .toc file +--------------------------- + +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', '\writenumberedtocentry' and +'\writenumberedtocline' 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'. + + +File: eplain.info, Node: Changing the .toc file's root name, Next: Alternative contents files, Prev: Reading the .toc file, Up: Contents + +4.8.3 Changing the .toc file's root name +---------------------------------------- + +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'. + + Note that '\writetocentry', '\writenumberedtocentry' and +'\writenumberedtocline' will open the contents file for writing only at +the first call, using the value of '\tocfilebasename' at that time. +Changing the value of '\tocfilebasename' afterwards will not affect +which file gets _written_, although it will affect which file gets +_read_ by '\readcontentsfile'. In case you need to write several +contents files from a single TeX job, use '\definecontentsfile' (*note +Alternative contents files::). + + +File: eplain.info, Node: Alternative contents files, Prev: Changing the .toc file's root name, Up: Contents + +4.8.4 Alternative contents files +-------------------------------- + +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 '\eqnum' command + (*note Displays::). (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 '\eqnum' 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 +want 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. + + As another example, consider the following requirement: we want to +include chapter number in all equation references, and additionally we +want to include the part number when referencing an equation from any +part other than the one where the equation appears. For example, +references to the third equation in chapter 2 of part 1 should be +typeset as '(2.3)' throughout part 1, but as '(I.2.3)' in any other +part. Let's assume we have the current chapter and part numbers in count +registers '\chapnum' and '\partnum', respectively. + + The idea is to have '\eqconstruct' store the part number of the +equation (that is, the part number _at the time of definition_), so that +later '\eqprint' can compare the stored number with the current part +number (that is, the part number _at the time of reference_). The +complicating factor is that internally, the result of '\eqconstruct' is +both expanded and written out to the '.aux' file, _and_ used to typeset +the equation number, so the commands that store the part number should +behave correctly in both situations. This is difficult to achieve with +expandable commands; therefore, to avoid expansion problems, we are +going to use only TeX primitives, which are non-expandable: + + \newcount\eqpartnum + + \def\eqconstruct#1{% + \global\eqpartnum=\the\partnum\relax + \number\chapnum.#1% + } + + \def\eqprint#1{% + \setbox0=\hbox{#1}% + (\ifnum\partnum=\eqpartnum \else + \uppercase\expandafter{\romannumeral\eqpartnum}.% + \fi + \box0)% + }% + +In '\eqconstruct', besides constructing the base equation number (e.g., +'1.2'), we also store the part number of the equation in the count +register '\eqpartnum' ('\the\partnum' is expanded when the equation +number is written to the '.aux' file, so the equation label definition +in the '.aux' file will contain the actual part number). In '\eqprint', +we need to know the equation's part number before we typeset the base +equation number, therefore we first put the argument in a box, thus +causing '\eqpartnum' to be set. + + +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. + + Note that MakeIndex does not use the above naming scheme for multiple +indexes. Unless instructed otherwise, MakeIndex always writes its output +to a file with extension '.ind'. For example, if you define an +additional index with the command '\defineindex{j}', you'll need to run +MakeIndex like this: + + $ makeindex book.jdx -o book.jnd + + For each index defined with '\defineindex{N}', Eplain provides a +switch '\ifNdx' which controls whether indexing commands write index +entries to the corresponding index file. However, even when index term +writing is disabled, indexing commands still do all other processing of +their arguments, including typesetting of proof index terms (*note +Proofing index terms::. + + For example, if you write '\idxfalse' near the beginning of a +document 'foo.tex' (before the first indexing command), Eplain will not +open the default index file ('foo.idx') and the corresponding indexing +commands ('\idx', '\sidx', etc.) will not write index entries there. +This may be useful for draft compilations of a manuscript, e.g., to +avoid the overhead of index file input/output. + +* 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. +* Index entries with special characters:: +* 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: Index entries with special characters, 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. The normal index entries + have to be created separately--'seealso' does _not_ contribute a + page number to the index entry. For example, if you have indexed a + term on pages 75, 97 and 114, and then add a 'seealso' entry for + the term: + + \sidx[seealso]{archetypal criticism}[elements of]{dichotomies} + + the index will contain + + 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: Index entries with special characters, Next: Proofing index terms, Prev: Modifying index entries, Up: Indexing terms + +4.12.1.3 Index entries with special characters +.............................................. + +Indexing terms with special characters can become quite cumbersome +because you have to keep both TeX and MakeIndex happy at the same time. +For example, while '!' has no special meaning for TeX, it is a subentry +separator for MakeIndex, therefore you'd have to escape occurrences of +literal '!' in index terms. Things get even more interesting with +characters which are special in both TeX and MakeIndex. + + This in turn has some implications for the non-silent forms of the +indexing commands (*note Indexing terms::), since TeX and MakeIndex use +different conventions for escaping characters. For example, this will +not typeset the exclamation point correctly within the text, while it +will come out right inside the index, after MakeIndex strips the quoting +character ('"'): + + \idx{"!} + +This would have to be rewritten using the silent command: + + !\sidx{"!} + +In general, it is a good idea to eschew the non-silent commands whenever +index term contains anything unusual. + + To understand this keep in mind that indexing commands read the terms +verbatim so that the terms can embed almost any character, and that's +what gets written into the '.idx' file. The non-silent forms then +typeset the term by rescanning the verbatim copy, hence for the +non-silent commands the term, besides being a valid MakeIndex input, +must also represent a valid TeX input. The silent commands don't have +this restriction--their terms only need to become valid TeX input +_after_ MakeIndex processes the '.idx' file and writes the '.ind' file. +This is what makes the non-silent commands less powerful and more +troublesome when dealing with special characters. + + Here's an example showing that terms for the silent commands can +contain almost any character: + + \sidx[see]{comments}[with %@with \verbatim %"|endverbatim] + {commenting with \verbatim %"|endverbatim} + +We didn't have to escape '%' in the sort string for MakeIndex, while we +had to put it inside the verbatim environment (*note Verbatim listing::) +in the part which MakeIndex will pass back to TeX. Also, we had to +escape the '|' character because it is special for MakeIndex. If you +have trouble understanding the reasons for the different types of +escaping used, it is best to examine the '.idx' and '.ind' files +resulting from processing the above input. + + As was mentioned, index terms can embed "almost any character", so +now we'll describe the exceptions. + + The following characters are reset to their usual meanings because +they are not useful verbatim: multiple consequent spaces are converted +into a single space; ASCII tab characters are treated as spaces; ASCII +return is treated as end-of-line (this means, among other things, that +long terms can be broken across several lines). + + You have to be careful with the begin- and end-group characters ('{' +and '}' by default). If they are matched, you don't have to do anything +special. For example: + + \sidx {braces {, }@braces + \verbatim {"|endverbatim, \verbatim }"|endverbatim} + +However, if they are not matched you have two problems on hand. The +first one is TeX--you have to instruct TeX to use something else as +begin- and/or end-group characters. Eplain provides an easy way to do +this: just define '\idxargopen' and/or '\idxargclose' to the begin- and +end-group characters you are going to use with indexing macros, and use +braces inside index terms without any restrictions. Here's an example: + + \def\idxargopen{`\<} + \def\idxargclose{`\>} + \sidx <left brace "{@left brace \verbatim "{"|endverbatim> + +In this example we've also dealt with the second problem--braces are +MakeIndex's grouping characters as well (by default), so we have escaped +unmatched braces with '"'. + + And the final note: if you need a subentry containing brackets ('[' +and ']'), avoid the optional argument of '\sidx' and friends, and use +instead MakeIndex's subentry separator to create the subentry with the +brackets in it: + + \sidx{entry!subentry with a bracket [} + + +File: eplain.info, Node: Proofing index terms, Prev: Index entries with special characters, Up: Indexing terms + +4.12.1.4 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 +contained in 'trimsee' distributed with Eplain in the 'util' 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 LaTeX styles and macro +packages tackle more difficult applications. The 'autorows' feature of +the Memoir package provides similar functionality to this. + + 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 an unbreakable space of (essentially) size '\@normalvsize' minus +'\pagetotal' (where '\@normalvsize' is 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 space (during the column splitting operation when the whole page is +output). Bugs are easily possible, unfortunately. + + 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 '\AMSLaTeX', '\AMSTeX', '\BibTeX' '\eTeX', '\ExTeX', +'\LAMSTeX', '\LaTeX', '\MF', '\SLiTeX', '\XeLaTeX', and '\XeTeX' to +produce their respective logos. (Sorry, the logos are not shown here.) +Some spelling variants of these are also supported. + + Most of 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:: Packages supported with Eplain. +* 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 a concept 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. + + Both the 'miniltx.tex' file used by Eplain and some LaTeX packages +redefine TeX's primitive '\input' to be a macro. Under plain TeX, users +probably expect the primitive '\input'. Therefore, at the beginning of +the '\beginpackages...\endpackages' block Eplain saves the meaning of +'\input' as '\eplaininput' and restores the original '\input' at the end +of the block. This usually means that the primitive '\input' is +restored, unless you (or some other macro package you've loaded +directly) have redefined it before calling '\beginpackages'. In case you +need to access the package-provided '\input', Eplain saves it as +'\packageinput'. + + Along the same lines, Eplain restores the catcode of '@' at +'\endpackages' to whatever it was before (using '\resetatcatcode', as +defined by 'miniltx.tex'). This is needed because 'miniltx.tex', read by +'\beginpackages', does not restore the catcode of '@', but leaves it as +11 (letter). + + Sometimes you may encounter packages which make conflicting +redefinitions of '\input'. Common symptoms are TeX spewing +incomprehensible error messages or hanging in a loop at a call to +'\input'. This sometimes cna be cured by restoring '\input' to +'\eplaininput' before loading each package. For example: + + \beginpackages + \usepackage{pack1} + \let\input\eplaininput + \usepackage{pack2} + \endpackages + + +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/misc/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. + + *Warning 1:* If you encounter problems loading one of these + packages under pdfTeX (more specifically, when pdfTeX reads + 'supp-mis.tex'), the cause may be an outdated 'supp-mis.tex' (part + of ConTeXt, a typesetting system for TeX) installed on your system. + The problem was fixed in 'supp-mis.tex' version 2004.10.26. You can + obtain up-to-date versions of 'supp-mis.tex' and the accompanying + 'supp-pdf.tex' from + <http://www.ctan.org/tex-archive/macros/pdftex/graphics>. To + convince TeX to use the new files, you have the following options + in the decreasing order of preference: + + 1. put the new files in the same directory with your document; + + 2. overwrite the outdated files installed by your TeX + distribution; + + 3. install the new 'supp-mis.tex' and 'supp-pdf.tex' files in the + relevant subdirectory of your local 'texmf' tree (for info on + TeX directory structure see + <http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds>); + + 4. upgrade your ConTeXt installation. + + Note that option 1 is the safest but provides the fix only for your + current document. Options 2 and 3 will usually suffice for Eplain + but may break ConTeXt. Option 4 is the most general but is more + complicated than the first three. Be sure to backup any files you + overwrite. Also keep in mind that upgrading your TeX distribution + may overwrite files you install in the system 'texmf' tree. + *End of warning 1.* + + *Warning 2:* If you encounter problems using the '\pagecolor' + command from the 'color.sty' package under pdfTeX, the cause may be + an outdated pdfTeX color and graphics driver 'pdftex.def'. The + problem was fixed in 'pdftex.def' version 0.03p. You can obtain an + up-to-date version from + <http://www.ctan.org/tex-archive/graphics/pdftex/pdftex.def>. + *End of warning 2.* + + The 'graphics'/'graphicx' packages have the option 'draft' which + instructs '\includegraphics' not to include the graphics but + instead typeset a box with the dimensions of the graphics and the + name of the graphics file in typewriter type at the center of the + box. These packages expect the LaTeX-provided command '\ttfamily' + to switch to the typewrite type. This command is not defined by + 'miniltx.tex', therefore Eplain defines it and makes it equivalent + to plain TeX's '\tt'. + + *Note Hyperlinks (xhyper.tex)::, for the demonstration of text + rotation and graphics inclusion using the 'graphicx' package, and + using the 'color' package to colorize hypertext links. + + Klaus Ho"ppner has written a nice introduction to the LaTeX + graphics packages and different graphics formats. You can download + it from + <http://www.tug.org/pracjourn/2005-3/hoeppner> + +epstopdf ('2009/07/16 v2.2 Conversion with epstopdf on the fly (HO)') + <http://www.ctan.org/tex-archive/macros/latex/contrib/oberdiek> + + This package does on-the-fly conversion of Encapsulated PostScript + (EPS) graphics into Portable Document Format (PDF) graphics for + inclusion with the '\includegraphics' command from the + 'graphics'/'graphicx' packages, so that you do not have to + explicitly call the 'epstopdf' script. + +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. + +soul ('2003/11/17 v2.4 letterspacing/underlining (mf)') + <http://www.ctan.org/tex-archive/macros/latex/contrib/soul> + + This package provides hyphenatable letterspacing (spacing out), + underlining, and some derivatives. The package is optimized for + LaTeX, but works with plain TeX--you don't actually need to load it + with the '\usepackage' command, just say '\input soul.sty'. If you + intend to use the highlighting macros of 'soul', don't forget to + load the 'color' package. + +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::). + + Be sure to get a version dated at least 2005/06/27, as older + versions have problems in plain TeX. + + +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: + +hyperref + <http://www.ctan.org/tex-archive/macros/latex/contrib/hyperref> + + This package depends heavily on LaTeX, so that it is mostly + unusable outside of LaTeX. Eplain provides its own macros for + creating hyperlinks, see *note Hyperlinks::. + +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 (a.k.a. +hypertext links). 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 three drivers: 'hypertex' (implementation of the HyperTeX +standard, see <http://arxiv.org/hypertex>), and 'pdftex' and 'dvipdfm' +(named after the programs which process the hyperlink commands, pdfTeX +and dvipdfm). Therefore, Eplain can only produce HyperTeX commands and +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 'hypertex' 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 or the HyperTeX +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::). + + The LABEL argument of both '\hldest' and '\hlstart' can contain +special characters (such as '#', '%', '&', '~', etc.) without any +escaping. This is especially important for URL links supported by some +drivers (*note Hyperlink drivers::). + + 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. + + *Note Hyperlinks (xhyper.tex)::, for a demonstration of the usage of +explicit hyperlinks. + + +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: + + hrefint, hrefext, url, cite, ref, xref, eq, idx, foot, footback. + + And here are the destgroups: + + bib, li, definexref, xrdef, eq, idx, foot, footback. + + *Note Hyperlinks (xhyper.tex)::, for a demonstration of the usage of +implicit hyperlinks. + + The following subsections describe each of the linkgroups and +destgroups and the hyperlink support provided. + +* Menu: + +* General hyperlinks:: hrefint, hrefext +* 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: General hyperlinks, Next: URL hyperlinks, Up: Implicit hyperlinks + +5.3.1 General hyperlinks: hrefint, hrefext +------------------------------------------ + +'\href{URL}{TEXT}' typesets TEXT as a link to URL. It basically does +what the explicit hyperlink macros do (*note Explicit hyperlinks::), but +is more convenient (at the expense of flexibility). + + If URL starts with '#', the rest of URL is assumed to be a local +hyperlink destination name (destination within the same document). +Parameters for these links can be set by customizing the 'hrefint' +linkgroup. For example: + + See \href{#intro}{Introduction} + +will make 'Introduction' into an internal link, which might have been +created, e.g., with '\xrdef{intro}'. + + If URL does not start with '#', it is assumed to be a URL link. +Parameters for these links can be set by customizing the 'hrefext' +linkgroup. The special characters (such as '#' and '~') in the URL don't +need to be escaped. For example: + + \href{http://tug.org/eplain/doc/eplain.html#Hyperlinks}{Hyperlinks + in Eplain} + \href{mailto:tex-eplain@tug.org}{Eplain mailing list} + +*Note URL hyperlinks::, for another way to create URL hyperlinks. + + The TEXT argument of '\href' can contain verbatim text (*note +Verbatim listing::) or other macros which manipulate character catcodes. +For example: + + \href{#WeirdChars}{The weird chars \verbatim #&%$~|endverbatim} + + '\href' does not currently handle other link types, such as 'file:' +and 'run:' links. + + +File: eplain.info, Node: URL hyperlinks, Next: Citation hyperlinks, Prev: General hyperlinks, Up: Implicit hyperlinks + +5.3.2 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::). + + By default, URL (and other types of) links are boxed, so that they +are visually marked even if you do not load the LaTeX 'color' package +(*note Loading LaTeX packages::) and therefore link text is not colored. +You can see the effect by compiling the following code snippet (be sure +to get a modern 'url.sty', older versions do not work in plain TeX; +*note Packages known to work::): + + \input eplain + \beginpackages + \usepackage{url} + \endpackages + + \enablehyperlinks + + \url{http://foo/bar} + + \url{mailto:foobar@example.org} + + \bye + + If the hyperlink driver you use supports the link option 'bwidth' +(*note Hyperlink drivers::), you can produce colored links with no +border around them. Try this: + + \input eplain + \beginpackages + \usepackage{url} + \usepackage{color} + \endpackages + + \enablehyperlinks + \hlopts{bwidth=0} + + \url{http://foo/bar} + + \url{mailto:foobar@example.org} + + \bye + +The command '\hlopts{bwidth=0}' sets border width to zero as the default +for all links, and loading the 'color' package automatically colors +links using the default color (*note Options supported by all +drivers::). If you want the border width setting to apply to URL links +only, say '\hlopts[url]{bwidth=0}' (*note Setting hyperlink types and +options::). + + +File: eplain.info, Node: Citation hyperlinks, Next: List hyperlinks, Prev: URL hyperlinks, Up: Implicit hyperlinks + +5.3.3 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.4 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.5 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.6 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.7 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.8 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.8.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.8.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.8.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.8.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.8.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.9 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. + + Generally, footnote hyperlinks are not of much use, because the +footnotes are usually placed on the same page as the footnote mark. +Therefore, footnote hyperlinks are disabled by default. Here is how you +can turn them on selectively, without affecting the other kinds of +hyperlinks (*note Turning hyperlinks on/off for a group::): + + \hldeston[foot,footback] + \hlon[foot,footback] + + +File: eplain.info, Node: Contents hyperlinks, Prev: Footnote hyperlinks, Up: Implicit hyperlinks + +5.3.10 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 driver hypertex:: +* Hyperlink drivers pdftex and dvipdfm:: +* Hyperlink driver nolinks:: + + +File: eplain.info, Node: Options supported by all drivers, Next: Hyperlink driver hypertex, 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 driver hypertex, Next: Hyperlink drivers pdftex and dvipdfm, Prev: Options supported by all drivers, Up: Hyperlink drivers + +5.4.2 Hyperlink driver 'hypertex' +--------------------------------- + +HyperTeX is a standard for inclusion of hyperlink information in TeX +(and LaTeX) documents (see <http://arxiv.org/hypertex>). This standard +defines a set of hyperlink tags implemented as '\special' commands +written into the DVI file. The major advantage of such standard is that +a single '.dvi' file containing HyperTeX commands can be viewed by any +HyperTeX-enabled viewer (e.g., any more or less modern version of +'xdvi') or converted to other file formats (e.g., PDF) by any +HyperTeX-enabled DVI converter (e.g., 'dvipdfmx' or 'dvips' with +Ghostscript's 'ps2pdf' script). + + The downside to the standard is that it is by design "the common +factor" of other formats supporting hyperlinks, so many features of a +particular file format cannot be supported by HyperTeX. Therefore, if +you need to use special features of a particular format, HyperTeX is not +a good choice. For the PDF file format, Eplain provides the 'pdftex' and +'dvipdfm' drivers which provide fine control over the PDF options (*note +Hyperlink drivers pdftex and dvipdfm::). + + For more information on programs which support the HyperTeX standard, +please see + + <http://arxiv.org/hypertex> + <http://www.tug.org/tex-archive/support/hypertex/hypertex> + +For convenience, we list a few HyperTeX-enabled converters: + +'dvips' + Note that you need to pass the '-z' option to 'dvips' to tell it to + preserve the information about the hyperlinks. To generate a '.pdf' + file with hyperlinks, you can use the 'ps2pdf' script of + Ghostscript. For example, if 'foo.tex' is a TeX file using HyperTeX + commands, then + + prompt$ tex foo.tex + prompt$ dvips -z foo.dvi -o + prompt$ ps2pdf foo.ps + + will produce 'foo.pdf' with hyperlinks. + +'dvipdfm' +'dvipdfmx' + No special command line arguments are required, these programs + automatically detect the HyperTeX commands. + + One more note is in place: support for the HyperTeX commands varies +from one previewer/converter to another, so you might need to experiment +to see if what you need is supported by the program(s) you intend to +use. For example, dvips(k) as of version 5.92b converts all internal +hyperlinks into page links pointing to a page containing the +destination, so that "exact" linking to destinations is not possible +(this was confirmed to be a bug and most probably has already been fixed +in later versions of dvips(k)); dvipdfm as of version 0.13.2c and +dvipdfmx as of version 20040411 do not correctly parse links to external +local files, and produce a URL link instead of a file link. + +* Menu: + +* Destination types for hypertex:: +* Destination options for hypertex:: +* Link types for hypertex:: +* Link options for hypertex:: + + +File: eplain.info, Node: Destination types for hypertex, Next: Destination options for hypertex, Up: Hyperlink driver hypertex + +5.4.2.1 Destination types for 'hypertex' +........................................ + +'xyz' + "Current position". This is the default type. + + Example: '\hldest{xyz}{}{dest123}' + +'raw' + The destination specification (in the form of a HyperTeX + '\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 in a direct call to + '\hldest'--you can just call the raw command. + + Example: + + \makeatletter + \def\mydest{\special{html:<a name="\@hllabel">}% + \special{html:</a>}} + \resetatcatcode + \indent\hldest{raw}{cmd=mydest}{SpecialDest} + Special destination. + + +File: eplain.info, Node: Destination options for hypertex, Next: Link types for hypertex, Prev: Destination types for hypertex, Up: Hyperlink driver hypertex + +5.4.2.2 Destination options for 'hypertex' +.......................................... + +'cmd' + Name of the macro (without the leading '\') containing a HyperTeX + '\special' for the 'raw' destination. + + *Note Destination types for hypertex::, the description of the + 'raw' destination, for an example. + + +File: eplain.info, Node: Link types for hypertex, Next: Link options for hypertex, Prev: Destination options for hypertex, Up: Hyperlink driver hypertex + +5.4.2.3 Link types for 'hypertex' +................................. + +'name' + Go to a "named destination". The label is the destination name. All + destinations in HyperTeX are named destinations. This is the + default type. + + Example: '\hlstart{name}{}{dest123}Link to dest123\hlend' + +'url' + Go to a URL. The label is the URL. + + Example: + + \hlstart{url}{}{http://tug.org/eplain/}Eplain home\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. + The file name extension can be specified separately by the 'ext' + option. The idea is to set the 'ext' option globally at the + beginning of the document to avoid hard-coding the extension + together with the file name within each link--HyperTeX is not + restricted to any single output format, it can be DVI, PDF, + possibly other formats. + + Example: + + \hlopts{ext=.pdf} + \hlstart{filename}{file=book}{dest123} + Link to dest123 in file `book.pdf'\hlend + +'raw' + The link specification (in the form of a HyperTeX '\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. Use the predefined command '\hlhash' to + insert the '#' characters. This option is intended to be used with + linkgroups (*note Setting hyperlink types and options::), as it + does not make sense in a direct call to '\hlstart'--you can just + call the raw command. + + Example: + + \makeatletter + \def\mylink{\special{html:<a href="\hlhash\@hllabel">}} + \resetatcatcode + \hlstart{raw}{cmd=mylink}{SpecialDest} + Link to the special destination.\hlend + + +File: eplain.info, Node: Link options for hypertex, Prev: Link types for hypertex, Up: Hyperlink driver hypertex + +5.4.2.4 Link options for 'hypertex' +................................... + +'cmd' + Name of the macro (without the leading '\') containing a HyperTeX + '\special' for the 'raw' link. + + *Note Link types for hypertex::, the description of the 'raw' link, + for an example. + +'file' + File name for the 'filename' link type. See also the 'ext' option. + + *Note Link types for hypertex::, the description of the 'filename' + link, for an example. + +'ext' + File name extension for the 'filename' link type. The idea is to + set the 'ext' option globally at the beginning of the document to + avoid hard-coding the extension together with the file name within + each link--HyperTeX is not restricted to any single output format, + it can be DVI, PDF, possibly other formats. + + *Note Link types for hypertex::, the description of the 'filename' + link, for an example. + + +File: eplain.info, Node: Hyperlink drivers pdftex and dvipdfm, Next: Hyperlink driver nolinks, Prev: Hyperlink driver hypertex, Up: Hyperlink drivers + +5.4.3 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.3.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 in a direct call to + '\hldest'--you can just call the raw command. + + Example for 'pdftex': + + \makeatletter + \def\mydest{\pdfdest name{\@hllabel} xyz} + \resetatcatcode + \hldesttype{raw} + \hldestopts{cmd=mydest} + + Example for 'dvipdfm': + + \makeatletter + \def\mydest{\special{pdf: dest (\@hllabel) + [@thispage /XYZ @xpos @ypos 0]}} + \resetatcatcode + \hldesttype{raw} + \hldestopts{cmd=mydest} + + +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.3.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. + + *Note Destination types for pdftex and dvipdfm::, the description + of the 'raw' destination, for an example. + +'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.3.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 (*note + Explicit hyperlinks::). This is the default type. + + Example: '\hlstart{name}{}{dest123}Link to dest123\hlend' + +'url' + Go to a URL. The label is the URL. + + Example: '\hlstart{url}{}{http://tug.org/eplain/}Eplain home\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 + +'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. In the definition + of '\CS', use '\@hllabel' to refer to the hyperlink label. This + option is intended to be used with linkgroups (*note Setting + hyperlink types and options::), as it does not make sense 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.3.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. + + *Note Link types for pdftex and dvipdfm::, the description of the + 'raw' link, for an example. + +'file' + File name for the 'filename' and 'filepage' link types. + + *Note Link types for pdftex and dvipdfm::, the descriptions of the + 'filename' and 'filepage' links, for an example. + +'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. + + *Note Link types for pdftex and dvipdfm::, the descriptions of the + 'filename' and 'filepage' links, for an example. + +'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. + + *Note Link types for pdftex and dvipdfm::, the descriptions of the + 'page' and 'filepage' links, for an example. + +'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.4 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. + + So, if you are planning to produce versions of your PDF document both +with and without hyperlinks, here is the recommended way to enable the +hyperlinks under pdfTeX: + + \ifpdf + \enablehyperlinks + \else + \enablehyperlinks[nolinks]% + \fi + + +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. + + Many people regard the default boxed links as not aesthetic and +intruding on page layout. The reason why boxed links are the default is +that the links are not colored until you load the LaTeX 'color' package +(*note Loading LaTeX packages::) or use other means to define the +'\color' command; therefore, not producing any kind of link border may +result in the links not being marked in any way. However, when the links +are actually colored, there is no need to produce the link boxes +anymore; to avoid the boxes, you can set the default border width to +zero (if the driver you use supports the link option 'bwidth'; *note +Hyperlink drivers::): + + \hlopts{bwidth=0} + + +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: Demo files, 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' and 'while' 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. +For notes on the usage, *note Verbatim listing::. + + 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. To strip +leading spaces off the items, use '\For': + + \For\name:= + karl, + kathy\do{% + \message{\name}% + }% + +Note that trailing spaces are still _not_ ignored. + + Both '\for' and '\For' expand the first token of the item list fully, +so this is equivalent to the above: + + \def\namelist{karl,kathy}% + \for\name:=\namelist\do ... + +However, this won't work, either with '\for' or with '\For': + + \def\namelist{karl,kathy}% + \For\name:= \namelist\do ... + +because '\for' and '\For' expand the first token after ':=' which is +space, not '\namelist'. + + Eplain provides another kind of loops, which is an extension of plain +TeX's '\loop'. If you say: + + \loop + LOOP-TEXT + \if CONDITION + IF-TEXT + \repeat + +then LOOP-TEXT will be repeated as long as CONDITION is satisfied ('\if' +can be any of the TeX's conditional commands, without the matching +'\fi'). Eplain extends this with the optional else clause: + + \loop + LOOP-TEXT + \if CONDITION + IF-TEXT + \else + ELSE-TEXT + \repeat + +Here, LOOP-TEXT will be repeated as long as CONDITION is _not_ +satisfied. This extension is from Victor Eijkhout's TeX by Topic +(page 104). + + +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 + } + + It's possible to define macros that appear to accept optional +arguments intermixed with mandatory arguments in any imaginable way. For +example: + + \makeatletter + % \mo{m}[o] + \def\mo#1{\def\mo@arg{#1}\@getoptionalarg\fin@mo} + \def\fin@mo{\vskip1pc + ARG: \mo@arg \par + OPTARG: \@optionalarg \par + } + % \mom{m}[o]{m} + \def\mom#1{\def\mom@arg{#1}\@getoptionalarg\fin@mom} + \def\fin@mom#1{\vskip1pc + ARG1: \mom@arg \par + OPTARG: \@optionalarg \par + ARG2: #1\par + } + % \omo[o]{m}[o] + \def\omo{\@getoptionalarg\fin@omo} + \def\fin@omo#1{\let\omo@optarg\@optionalarg + \def\omo@arg{#1}\@getoptionalarg\@fin@omo} + \def\@fin@omo{\vskip1pc + OPTARG1: \omo@optarg \par + ARG: \omo@arg \par + OPTARG2: \@optionalarg \par + } + \makeatother + + 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:: +* \ifempty:: +* \ifinteger and \isinteger:: +* \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: \ifempty, 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: \ifempty, Next: \ifinteger and \isinteger, Prev: \ifundefined, Up: Expansion + +7.6.7 '\ifempty' +---------------- + +'\ifempty{ARG} T \else F \fi' expands the T text if ARG is the empty +string, and the F text otherwise. This macro is useful when you need to +test for empty arguments to your macros, for example: + + \def\foo#1{\ifempty{#1} T \else F \fi} + + Since '\ifempty' 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. + + Note that the following code + + \def\empty{} + \ifempty\empty\message{empty}\else\message{not empty}\fi + +will produce the message 'not empty'. + + +File: eplain.info, Node: \ifinteger and \isinteger, Next: \futurenonspacelet, Prev: \ifempty, Up: Expansion + +7.6.8 '\ifinteger' and '\isinteger' +----------------------------------- + +'\ifinteger{ARG} T \else F \fi' expands the T text if ARG is an integer, +and the F text otherwise. This macro can detect positive and negative +integers. + + Since '\ifinteger' 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. For +such situations Eplain provides '\isinteger', which can be used as +follows: + + \if\isinteger{ARG} T \else F \fi + + Although '\ifinteger' and '\isinteger' work well with regular input, +they are not bullet-proof. For example, the following code + + \ifinteger{12_ab}integer\else not integer\fi + +will expand to 'ab_integer' (and thus would not even compile outside +math mode). + + These macros come from TeX Frequently Asked Question +(<http://www.tex.ac.uk/cgi-bin/texfaq2html>). + + +File: eplain.info, Node: \futurenonspacelet, Prev: \ifinteger and \isinteger, Up: Expansion + +7.6.9 '\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: Demo files, Next: Macro index, Prev: Programming definitions, Up: Top + +8 Demo files +************ + +This chapter contains listings of source files, along with the output +they produce (where appropriate), which illustrate various aspects of +Eplain. The files can be found in the 'demo' subdirectory of Eplain +distribution. These demos, both the sources and the compiled PDF and PS +files, are also available from <http://tug.org/eplain/demo>. + +* Menu: + +* Hyperlinks (xhyper.tex):: +* Highlighting TeX comments in listings (lscommnt.tex):: + + +File: eplain.info, Node: Hyperlinks (xhyper.tex), Next: Highlighting TeX comments in listings (lscommnt.tex), Up: Demo files + +8.1 Hyperlinks ('xhyper.tex') +============================= + + + +% (This file is public domain.) +% +% This file demonstrates the following features of Eplain: +% +% - explicit and implicit hyperlinks; +% - symbolic cross-references; +% - inserting external graphics using |\includegraphics| from +% the \LaTeX\ package |graphicx.sty|. +% - rotating text using |\rotatebox| from |graphicx.sty|. +% +% The compiled demo can be downloaded from +% +% http://tug.org/eplain/demo +% +% In order to compile this file yourself, you will need the CTAN lion +% drawing by Duane Bibby from +% +% ftp://tug.ctan.org/ftpmaint/CTAN_lion/ctan_lion_350x350.png +% +% (thanks, |www.ctan.org|). Place the image file in the same +% directory with this file, and change to that directory. Now, to +% produce a PDF, run twice the command +% +% pdftex xhyper.tex +% +% During the first run, Eplain will write the information about the +% cross-references into |xhyper.aux|, and during the second run this +% information will be read by Eplain to typeset the references. +% +% Demo case: +% +% Suppose you are using pdf\TeX, have a figure you want to insert +% scaled to $200\,pt$ horizontally, and you want this figure to +% completely fill the PDF viewer's window whenever the reader +% selects a link pointing to this figure. Additionally, you want to +% typeset some text as live hyperlinks, clicking on which will start +% a Web browser and open a URL. + +\input eplain + +% Load \LaTeX\ packages. +\beginpackages + % |url.sty| provides the |\url| command which we will use to typeset + % a URL. We request that |url.sty| be the version from June~27, + % 2005, or later, because earlier versions had problems interacting + % with plain \TeX. + \usepackage{url}[2005/06/27] + % |color.sty| provides support for colored text; all hyperlinks are + % automatically colored by Eplain when this package is loaded. We give + % the |dvipsnames| option because we want to use named colors from the + % |dvips| graphics driver. + \usepackage[dvipsnames]{color} + % Finally, we load |graphicx.sty|, for the macros |\includegraphics| + % and |\rotatebox|. + \usepackage{graphicx} +\endpackages + +% Remember that hyperlinks are off by default. Therefore, we need to +% enable them. +\enablehyperlinks + +% Customize some hyperlink options. First, we set border width to~$0$ +% for all links to get rid of the default boxes around links (we +% prefer colored links over the boxed links). Next, we say that all +% links created by the |url| hyperlink group (which means the |\url| +% command from |url.sty|) must be colored using the named color +% |BlueViolet|. +\hlopts{bwidth=0} +\hlopts[url]{colormodel=named,color=BlueViolet} + +% Inhibit page numbering (we have only one page). +\nopagenumbers + +% Define a class word for the cross-reference class |figure|. This +% word, when defined, will be automatically prepended by Eplain to the +% reference created by |\ref| (read on to see its use). +\def\figureword{fig.} + +% Allocate a count register for the figure's number, and a box +% register which we'll use to measure dimensions of the image. +\newcount\fignumber +\newbox\imgbox + +% Now comes the fun part--constructing the figure for the image of the +% \CTAN\ lion. We define a macro +% +% \fig{LABEL}{FILENAME}{CAPTION}{WIDTH} +% +% which creates a figure using LABEL for the cross-reference and +% hyperlink label, reading the image from file FILENAME, using CAPTION +% to name the figure, and WIDTH to scale the image horizontally. +\def\fig#1#2#3#4{% + % Leave some space above the figure. This will also ensure that we + % are in the vertical mode before we produce a |\vbox|. + \medskip + % Advance the figure number. |\global| ensures that the change to + % the count register is global, even when |\fig| is buried inside a + % group. + \global\advance\fignumber by 1 + % We use |\includegraphics| (from |graphicx.sty|) to load the image, + % scaled to the specified width, into our ``measuring'' box + % |\imgbox|. + \setbox\imgbox = \hbox{\includegraphics[width=#4]{#2}}% + % To make the demo even more exciting, let's put the figure's + % caption to the left of the image into the |\indent| space of the + % new paragraph, and rotate the caption~$90^\circ$. + \textindent{% + \rotatebox{90}{F{\sc IGURE}~\the\fignumber. #3}% + }% + % Continue the paragraph by constructing a |\vbox| with the image of + % the lion. We use |\definexref| to define the cross-reference + % label. + \vbox{% + % In addition to the cross-reference label, |\definexref| will + % create a hyperlink destination with the same label. Therefore, + % we customize this destination to do what we need. We say that + % destination type for the hyperlink group |definexref| (to which + % |\definexref| belongs) should be |fitr|. This destination type + % will magnify the rectangle specified by the options |width|, + % |height| and |depth| to the PDF viewer's window. Therefore, we + % set those options accordingly with |\hldestopts| (notice the use + % of |depth| instead of |height|---we will want the rectangle to + % extend {\it downward}, to cover the image which will come + % next). Notice that these settings will be isolated within the + % current group (i.e., the |\vbox| we're constructing). + \hldesttype[definexref]{fitr}% + \hldestopts[definexref]{width=\wd\imgbox,height=0pt,depth=\ht\imgbox}% + % We define a symbolic label so that we can later refer + % to the figure with |\ref|. The command |\definexref| does + % exactly that. The last argument to |\definexref| specifies + % class of the label, which determines the word used by |\ref| in + % front of the reference text (remember that we've defined + % |\figureword| above). + \definexref{#1}{\the\fignumber}{figure}% + % Finally, produce the image which we've been stashing in the box + % register |\imgbox|. + \box\imgbox + }% + \medskip +} + +% Create the figure. +\fig{CTANlion}{ctan_lion_350x350}{Lion in the archives}{200pt} + +% Finished with the fun part, we can relax and typeset some +% hyperlinks. The easiest way to do that is to use the |\ref| +% cross-reference command. We can even pass an optional argument +% (|the lion in|), which will be placed before the class word (|fig.|) +% and become part of the link (to make sure the reader does not have +% to aim too hard). +Show me \ref[the lion in]{CTANlion}. + +% If you are the restless kind, here's another way to create a +% hyperlink to the image: we create a link explicitly by using +% |\hlstart ... \hlend|. We don't specify the link type, therefore +% the default type |name| will be used (these are ``named links'', +% i.e., links pointing to destinations identified by labels). In the +% options argument, we specify that the border of the link should be +% inverted when the user clicks the link (|hlight=O|), and also set +% special color for this link, overriding the default dark-red. The +% label for the destination is the same as the cross-reference label, +% |CTANlion|. +Show me +\hlstart{}{hlight=O,colormodel=named,color=OliveGreen}{CTANlion} + the CTAN lion\hlend. + +% Let's now point somewhere outside our document. Eplain homepage is +% a good target. In the similar spirit, let's consider two +% approaches. The easy one is to use the |\url| command from +% |url.sty|. Remember that we have customized the color of |url| +% hyperlinks, so this one will show up with a different color than the +% default dark-red. +Take me to \url{http://tug.org/eplain}. + +% The second approach is to create an explicit URL link. We specify +% yet another border highlighting mode, |P|, which means that the +% region underneath the bounding box of the link will be drawn inset +% into the page. Also, let's set the color of the hyperlink to an RGB +% color |0.4,0.1,0.4|. Since we cannot use commas to separate the +% color elements inside the options parameter to |\hlstart| (commas +% there separate options), we have to first create a user-defined +% color with |\definecolor| from |color.sty|, and use that in +% |\hlstart|. +\definecolor{mycolor}{rgb}{0.4,0.1,0.4} + +Take me to +\hlstart{url}{hlight=P,colormodel=,color=mycolor}{http://tug.org/eplain} + Eplain homepage\hlend. + +\bye + + +File: eplain.info, Node: Highlighting TeX comments in listings (lscommnt.tex), Prev: Hyperlinks (xhyper.tex), Up: Demo files + +8.2 Highlighting TeX comments in listings ('lscommnt.tex') +========================================================== + + + +% (This file is public domain.) +% Demonstrate how Eplain can be used to include a TeX source file +% verbatim, typesetting comments in colored italic typewriter type. + +% Load Eplain and LaTeX's color.sty package. +\input eplain +\beginpackages \usepackage{color} \endpackages +\nopagenumbers % Disable page numbers. +\font\commentfont = cmitt10 % Font for the comments (italic \tt). +% We'll define some `protected' macros with `@' in their names. +\makeatletter +% Define an equivalent of Eplain's \letreturn, to be able to assign +% various actions to the (active) percent character. +\begingroup \makeactive\% + \gdef\letpercent{\let%} +\endgroup +% The listing hook to be called in \setuplistinghook, see below. It +% makes `%' active and assigns it a `start comment' action. +\def\hlightcommentslisting{\makeactive\% \letpercent\start@comment}% +% This is what `%' is aliased to before a comment is started. +\def\start@comment{% + \leavevmode % Needed in the very first line of the input to process + % the new par (possibly inserting line number) before we + % kick in with the color and stuff. + \begingroup % Isolate color and font changes and the redefinitions. + \commentfont + \color[cmyk]{0.28,1,1,0.35}% + \percentchar % Produce the actual `%' and + \letpercent\percentchar % make all following `%'s do the same. + \letreturn\end@comment % Call \end@comment at end-of-line. +} +% \end@comment (alias for ^^M inside a comment) will end the comment +% started by \start@comment. We make ^^M active temporarily so that +% the active version of ^^M gets "frozen" into \end@comment. +\begingroup \makeactive\^^M % Avoid ^^M's from here on. + \gdef\end@comment{\endgroup ^^M}% +\endgroup +\resetatcatcode % Make `@' again inaccessible for use in macro names. + +% Define \setuplistinghook to setup comments highlighting, line +% numbering and omitting the last (empty) line of input. +\def\setuplistinghook{\hlightcommentslisting \linenumberedlisting + \nolastlinelisting} +% Isn't this fun? This file typesets itself, with the extra bonus of +% the pretty-printed comments and numbered source lines! +\listing{lscommnt} +\bye + + +File: eplain.info, Node: Macro index, Next: Concept index, Prev: Demo files, Up: Top + +Macro index +*********** + + +* Menu: + +* @hllabel: Destination types for hypertex. + (line 14) +* @hllabel <1>: Link types for hypertex. + (line 39) +* @hllabel <2>: Destination types for pdftex and dvipdfm. + (line 84) +* @hllabel <3>: Link types for pdftex and dvipdfm. + (line 67) +* @indexproof insertion class: Proofing index terms. + (line 28) +* abovecolumnskip: Multiple columns. (line 33) +* abovecolumnspenalty: Tables. (line 30) +* abovelistpenalty: Formatting lists. (line 29) +* abovelistskip: Formatting lists. (line 29) +* abovelistskipamount: Formatting lists. (line 10) +* adjarrow: Arrows and morphisms. + (line 113) +* adjmapdown: Arrows and morphisms. + (line 91) +* adjmapleft: Arrows and morphisms. + (line 66) +* adjmapright: Arrows and morphisms. + (line 63) +* adjmapup: Arrows and morphisms. + (line 94) +* advancebottommargin: Margins. (line 26) +* advanceleftmargin: Margins. (line 26) +* advancerightmargin: Margins. (line 26) +* advancetopmargin: Margins. (line 26) +* afterindexterm: Customizing indexing. + (line 6) +* afterindexterm hook: Indexing commands. (line 62) +* AMSLaTeX: Logos. (line 10) +* AMSTeX: Logos. (line 10) +* arrow: Arrows and morphisms. + (line 20) +* arrow <1>: Arrows and morphisms. + (line 104) +* bblem: Formatting bibliographies. + (line 41) +* bblemph: Formatting bibliographies. + (line 45) +* bblfilebasename: Citations. (line 30) +* bblhook: Formatting bibliographies. + (line 67) +* bblnewblock: Formatting bibliographies. + (line 53) +* bblrm: Formatting bibliographies. + (line 38) +* bblsc: Formatting bibliographies. + (line 49) +* bcolor (hyperlink option): Link options for pdftex and dvipdfm. + (line 13) +* bdash (hyperlink option): Link options for pdftex and dvipdfm. + (line 19) +* bdash (hyperlink option) <1>: Link options for pdftex and dvipdfm. + (line 32) +* begin for index entries: Modifying index entries. + (line 22) +* beginindex hook: Typesetting an index. + (line 30) +* beginlist: Formatting lists. (line 50) +* 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 34) +* belowfootnoterulespace: Footnotes. (line 46) +* belowlistskip: Formatting lists. (line 30) +* belowlistskipamount: Formatting lists. (line 10) +* biarrow: Arrows and morphisms. + (line 110) +* biblabelcontents: Formatting bibliographies. + (line 23) +* biblabelextraspace: Formatting bibliographies. + (line 61) +* biblabelpostcontents: Formatting bibliographies. + (line 30) +* biblabelprecontents: Formatting bibliographies. + (line 30) +* biblabelprint: Formatting bibliographies. + (line 17) +* biblabelwidth: Formatting bibliographies. + (line 11) +* bibliography: Citations. (line 61) +* bibliography (hyperlinks): Citation hyperlinks. (line 11) +* bibliographystyle: Citations. (line 68) +* BibTeX: Logos. (line 10) +* bihline: Arrows and morphisms. + (line 69) +* bimapdown: Arrows and morphisms. + (line 85) +* bimapleft: Arrows and morphisms. + (line 60) +* bimapright: Arrows and morphisms. + (line 57) +* bimapup: Arrows and morphisms. + (line 88) +* bisline: Arrows and morphisms. + (line 116) +* bivline: Arrows and morphisms. + (line 97) +* blackbox: Boxes. (line 7) +* blanklineskipamount in justified text: Justification. (line 23) +* blanklineskipamount in obeyed text: Obeying spaces. (line 16) +* bottom (destination option): Destination types for pdftex and dvipdfm. + (line 65) +* bottom (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 56) +* bottommargin: Margins. (line 17) +* boxit: Boxes. (line 28) +* boxitspace: Boxes. (line 30) +* bstyle (hyperlink option): Link options for pdftex and dvipdfm. + (line 25) +* bwidth (hyperlink option): Link options for pdftex and dvipdfm. + (line 49) +* catcode: Category codes. (line 13) +* center: Justification. (line 7) +* centereddisplays: Displays. (line 13) +* channelwidth: Arrows and morphisms. + (line 119) +* channelwidth <1>: Commutative diagram parameters. + (line 36) +* cite: Citations. (line 42) +* cite (hyperlinks): Citation hyperlinks. (line 6) +* cmd (destination option): Destination types for hypertex. + (line 14) +* cmd (destination option) <1>: Destination options for hypertex. + (line 7) +* cmd (destination option) <2>: Destination types for pdftex and dvipdfm. + (line 83) +* cmd (destination option) <3>: Destination options for pdftex and dvipdfm. + (line 14) +* cmd (hyperlink option): Link types for hypertex. + (line 39) +* cmd (hyperlink option) <1>: Link options for hypertex. + (line 7) +* cmd (hyperlink option) <2>: Link types for pdftex and dvipdfm. + (line 66) +* cmd (hyperlink option) <3>: Link options for pdftex and dvipdfm. + (line 56) +* color (hyperlink option): Options supported by all drivers. + (line 37) +* colormodel (hyperlink option): Options supported by all drivers. + (line 37) +* columnfill: Multiple columns. (line 14) +* commdiag: Construction of commutative diagrams. + (line 9) +* commdiagbaselines: Construction of commutative diagrams. + (line 64) +* commdiagbaselines <1>: Commutative diagram parameters. + (line 43) +* csn: \csn and \ece. (line 6) +* definecolor: Hyperlinks (xhyper.tex). + (line 7) +* definecontentsfile: Alternative contents files. + (line 6) +* defineindex: Indexing. (line 36) +* definexref: Defining generic references. + (line 6) +* definexref <1>: Hyperlinks (xhyper.tex). + (line 7) +* definexref (hyperlinks): Cross-reference hyperlinks. + (line 6) +* depth (destination option): Destination types for pdftex and dvipdfm. + (line 61) +* depth (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 34) +* depth (hyperlink option): Link options for pdftex and dvipdfm. + (line 122) +* discretionaries: Paths. (line 20) +* displaylines: Displays. (line 18) +* dospecials: Verbatim listing. (line 57) +* doublecolumns: Multiple columns. (line 7) +* drawline: Slanted lines and vectors. + (line 6) +* drawvector: Slanted lines and vectors. + (line 6) +* dvipdfm (hyperlink driver): Hyperlink drivers pdftex and dvipdfm. + (line 6) +* eattoken: Macro arguments. (line 23) +* ece: \csn and \ece. (line 10) +* edefappend: \edefappend. (line 6) +* ehrule: Rules. (line 17) +* em: Commands from LaTeX. (line 25) +* emph: Commands from LaTeX. (line 25) +* enablehyperlinks: Introduction to hyperlinks. + (line 42) +* enablehyperlinks <1>: Choosing destination placement. + (line 7) +* enablehyperlinks <2>: Hyperlink driver nolinks. + (line 48) +* end for index entries: Modifying index entries. + (line 22) +* endlist: Formatting lists. (line 52) +* endnumberedlist: Lists. (line 13) +* endorderedlist: Lists. (line 13) +* endpackages: Environment for loading packages. + (line 6) +* endunorderedlist: Lists. (line 20) +* end{picture}: Packages known to work. + (line 14) +* end{theindex}: Typesetting an index. + (line 17) +* eplain: Invoking Eplain. (line 30) +* eplaininput: Environment for loading packages. + (line 24) +* eqalignno: Displays. (line 18) +* eqalignno <1>: Displays. (line 23) +* eqalignnum: Displays. (line 23) +* 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) +* eqno: Displays. (line 23) +* eqnum: Displays. (line 23) +* eqnum <1>: Equation references. (line 15) +* eqnum <2>: Equation references. (line 38) +* eqnumber: Equation references. (line 8) +* eqprint: Formatting equation references. + (line 12) +* eqref: Equation references. (line 46) +* eqref <1>: Equation reference hyperlinks. + (line 20) +* eqrefn: Equation references. (line 51) +* eqrefn <1>: Equation reference hyperlinks. + (line 20) +* 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) +* eTeX: Logos. (line 10) +* everyfootnote: Footnotes. (line 35) +* evrule: Rules. (line 18) +* expandonce: \expandonce. (line 6) +* ext (hyperlink option): Link types for hypertex. + (line 23) +* ext (hyperlink option) <1>: Link options for hypertex. + (line 20) +* ExTeX: Logos. (line 10) +* file (hyperlink option): Link types for hypertex. + (line 22) +* file (hyperlink option) <1>: Link options for hypertex. + (line 14) +* file (hyperlink option) <2>: Link types for pdftex and dvipdfm. + (line 40) +* file (hyperlink option) <3>: Link types for pdftex and dvipdfm. + (line 52) +* file (hyperlink option) <4>: Link options for pdftex and dvipdfm. + (line 63) +* fileexists (conditional): Auxiliary files. (line 10) +* filename (hyperlink type): Link types for hypertex. + (line 21) +* filename (hyperlink type) <1>: Link types for pdftex and dvipdfm. + (line 39) +* filepage (hyperlink type): Link types for pdftex and dvipdfm. + (line 51) +* 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 50) +* footnote (hyperlinks): Footnote hyperlinks. (line 7) +* footnotemarkseparation: Footnotes. (line 25) +* footnoteruleheight: Footnotes. (line 44) +* footnoterulewidth: Footnotes. (line 44) +* for: Iteration. (line 6) +* For: Iteration. (line 15) +* frac: Fractions. (line 6) +* fullmonthname: Time of day. (line 13) +* futurenonspacelet: \futurenonspacelet. (line 6) +* getproperty: Properties. (line 18) +* gloggingall: Diagnostics. (line 22) +* gobble: Macro arguments. (line 7) +* gobbletwo: Macro arguments. (line 7) +* gridcommdiag: Construction of commutative diagrams. + (line 88) +* gtracingall: Diagnostics. (line 22) +* gutter: Multiple columns. (line 23) +* gutterbox: Multiple columns. (line 24) +* hangindent for index entries: Typesetting an index. + (line 45) +* harrowlength: Arrows and morphisms. + (line 27) +* harrowlength <1>: Commutative diagram parameters. + (line 11) +* hchannel: Commutative diagram parameters. + (line 39) +* height (destination option): Destination types for pdftex and dvipdfm. + (line 60) +* height (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 37) +* height (hyperlink option): Link options for pdftex and dvipdfm. + (line 125) +* hgrid: Construction of commutative diagrams. + (line 108) +* hgrid <1>: Commutative diagram parameters. + (line 47) +* hldest: Explicit hyperlinks. (line 6) +* hldest <1>: Destination types for hypertex. + (line 17) +* hldest <2>: Destination types for pdftex and dvipdfm. + (line 86) +* hldest <3>: Setting hyperlink types and options. + (line 7) +* hldestoff: Hyperlink driver nolinks. + (line 10) +* hldestoff <1>: Turning low-level commands on/off. + (line 6) +* hldeston: Turning low-level commands on/off. + (line 6) +* hldestopts: Setting default types and options. + (line 15) +* hldestopts <1>: Setting group options. + (line 10) +* hldestopts <2>: Hyperlinks (xhyper.tex). + (line 7) +* hldesttype: Setting default types and options. + (line 6) +* hldesttype <1>: Setting group types. (line 6) +* hldesttype <2>: Hyperlinks (xhyper.tex). + (line 7) +* hlend: Explicit hyperlinks. (line 25) +* hlend <1>: Hyperlinks (xhyper.tex). + (line 7) +* hlfootbacklabel: Footnote hyperlinks. (line 12) +* hlfootlabel: Footnote hyperlinks. (line 12) +* hlfootlabelnumber: Footnote hyperlinks. (line 15) +* hlhash: Link types for hypertex. + (line 40) +* 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) +* hlightcommentslisting: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* hline: Arrows and morphisms. + (line 54) +* hloff: Hyperlink driver nolinks. + (line 10) +* hloff <1>: Turning low-level commands on/off. + (line 6) +* hlon: Turning low-level commands on/off. + (line 6) +* hlopts: Setting default types and options. + (line 15) +* hlopts <1>: Setting group options. + (line 10) +* hlopts <2>: Hyperlinks (xhyper.tex). + (line 7) +* hlstart: Explicit hyperlinks. (line 25) +* hlstart <1>: Link types for hypertex. + (line 43) +* hlstart <2>: Link types for pdftex and dvipdfm. + (line 70) +* hlstart <3>: Setting hyperlink types and options. + (line 7) +* hlstart <4>: Hyperlinks (xhyper.tex). + (line 7) +* hltype: Setting default types and options. + (line 6) +* hltype <1>: Setting group types. (line 6) +* hmorphposn: Arrows and morphisms. + (line 32) +* hmorphposn <1>: Commutative diagram parameters. + (line 20) +* hmorphposndn: Arrows and morphisms. + (line 38) +* hmorphposndn <1>: Commutative diagram parameters. + (line 22) +* hmorphposnlft: Arrows and morphisms. + (line 39) +* hmorphposnlft <1>: Commutative diagram parameters. + (line 23) +* hmorphposnrt: Arrows and morphisms. + (line 39) +* hmorphposnrt <1>: Commutative diagram parameters. + (line 22) +* hmorphposnup: Arrows and morphisms. + (line 38) +* hmorphposnup <1>: Commutative diagram parameters. + (line 22) +* hoffset: Proofing index terms. + (line 21) +* hookaction: Hooks. (line 14) +* hookactiononce: Hooks. (line 21) +* hookappend: Hooks. (line 15) +* hookprepend: Hooks. (line 16) +* hookrun: Hooks. (line 37) +* href: General hyperlinks. (line 6) +* hruledefaultdepth: Rules. (line 9) +* hruledefaultheight: Rules. (line 9) +* hsize: Margins. (line 32) +* hypertex (hyperlink driver): Hyperlink driver hypertex. + (line 6) +* hyphenpenalty for index entries: Typesetting an index. + (line 45) +* identity: Macro arguments. (line 28) +* idx: Indexing commands. (line 8) +* idx (hyperlinks): Index hyperlinks. (line 6) +* idxargclose: Index entries with special characters. + (line 73) +* idxargopen: Index entries with special characters. + (line 73) +* idxbeginrangemark: Customizing indexing. + (line 41) +* idxencapoperator: Customizing indexing. + (line 38) +* idxendrangemark: Customizing indexing. + (line 44) +* 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 49) +* idxpagerangedelimiter: Page list and page range parsers. + (line 23) +* idxpagerangedelimiter <1>: Page list and page range parsers. + (line 30) +* 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 35) +* idxsubmarked: Indexing commands. (line 40) +* idxsubmarked (hyperlinks): Index hyperlinks. (line 6) +* ifempty: \ifempty. (line 6) +* iffileexists: Auxiliary files. (line 10) +* ifidx: Indexing. (line 54) +* ifindexproofing: Proofing index terms. + (line 12) +* ifinteger: \ifinteger and \isinteger. + (line 6) +* ifpdf: Checking for PDF output. + (line 10) +* ifpdf <1>: Introduction to hyperlinks. + (line 51) +* ifrewritetocfile: Reading the .toc file. + (line 26) +* ifundefined: \ifundefined. (line 6) +* includegraphics: Hyperlinks (xhyper.tex). + (line 7) +* 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) +* indexproofingfalse: Proofing index terms. + (line 12) +* indexproofingtrue: Proofing index terms. + (line 12) +* indexproofterm: Proofing index terms. + (line 12) +* indexproofunbox: Proofing index terms. + (line 28) +* indexsee: Customizing indexing. + (line 53) +* indexsee <1>: Hyperlinks in see and see also entries. + (line 8) +* indexseealso: Customizing indexing. + (line 53) +* indexseealso <1>: Hyperlinks in see and see also entries. + (line 8) +* indexseealsowords: Customizing indexing. + (line 53) +* indexseeword: Customizing indexing. + (line 53) +* indexsetmargins: Proofing index terms. + (line 21) +* indexspace: Typesetting an index. + (line 54) +* innerdef: Allocation macros. (line 28) +* innerinnerdef: Allocation macros. (line 39) +* innernewbox: Allocation macros. (line 21) +* innernewcount: Allocation macros. (line 21) +* innernewdimen: Allocation macros. (line 21) +* innernewfam: Allocation macros. (line 22) +* innernewhelp: Allocation macros. (line 22) +* innernewif: Allocation macros. (line 22) +* innernewinsert: Allocation macros. (line 22) +* innernewlanguage: Allocation macros. (line 23) +* innernewread: Allocation macros. (line 24) +* innernewskip: Allocation macros. (line 24) +* innernewtoks: Allocation macros. (line 24) +* innernewwrite: Allocation macros. (line 24) +* input: Environment for loading packages. + (line 24) +* insidemargin: Proofing index terms. + (line 21) +* interfootnoteskip: Footnotes. (line 29) +* interitemskip: Formatting lists. (line 30) +* interitemskipamount: Formatting lists. (line 14) +* isinteger: \ifinteger and \isinteger. + (line 13) +* 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: Citations. (line 17) +* jobname <1>: Typesetting an index. + (line 11) +* jobname <2>: Auxiliary files. (line 9) +* LAMSTeX: Logos. (line 11) +* LaTeX: Logos. (line 11) +* lbracechar: Category codes. (line 57) +* left (destination option): Destination types for pdftex and dvipdfm. + (line 11) +* left (destination option) <1>: Destination types for pdftex and dvipdfm. + (line 33) +* left (destination option) <2>: Destination types for pdftex and dvipdfm. + (line 54) +* left (destination option) <3>: Destination types for pdftex and dvipdfm. + (line 65) +* left (destination option) <4>: Destination options for pdftex and dvipdfm. + (line 60) +* leftdisplayindent: Displays. (line 11) +* leftdisplays: Displays. (line 9) +* leftdisplaysetup: Formatting displays. (line 8) +* lefteqnumbers: Displays. (line 23) +* leftmargin: Margins. (line 17) +* leqalignno: Displays. (line 19) +* leqalignno <1>: Displays. (line 23) +* leqno: Displays. (line 23) +* letreturn: Category codes. (line 40) +* letter: Category codes. (line 10) +* lft: Arrows and morphisms. + (line 15) +* li: Lists. (line 27) +* li (hyperlinks): List hyperlinks. (line 6) +* linenumberedlisting: Verbatim listing. (line 17) +* linenumberedlisting <1>: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* listcompact: Lists. (line 38) +* listing: Verbatim listing. (line 7) +* listing <1>: Highlighting TeX comments in listings (lscommnt.tex). + (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 11) +* loop: Iteration. (line 40) +* makeactive: Category codes. (line 13) +* makeatletter: Category codes. (line 22) +* makeatother: Category codes. (line 31) +* makeblankbox: Boxes. (line 12) +* makecolumns: Tables. (line 6) +* makeheadline: Proofing index terms. + (line 28) +* mapdown: Arrows and morphisms. + (line 13) +* mapdown <1>: Arrows and morphisms. + (line 76) +* mapleft: Arrows and morphisms. + (line 6) +* mapleft <1>: Arrows and morphisms. + (line 51) +* mapright: Arrows and morphisms. + (line 6) +* mapright <1>: Arrows and morphisms. + (line 48) +* mapup: Arrows and morphisms. + (line 13) +* mapup <1>: Arrows and morphisms. + (line 79) +* matrix: Construction of commutative diagrams. + (line 10) +* mbox: Commands from LaTeX. (line 28) +* MF: Logos. (line 11) +* monthname: Time of day. (line 10) +* morphdist: Arrows and morphisms. + (line 33) +* morphdist <1>: Commutative diagram parameters. + (line 32) +* name (hyperlink type): Link types for hypertex. + (line 7) +* name (hyperlink type) <1>: Link types for pdftex and dvipdfm. + (line 18) +* new...: Allocation macros. (line 8) +* newblock: Commands from LaTeX. (line 31) +* newcommand: Commands from LaTeX. (line 18) +* newwin (hyperlink option): Link types for pdftex and dvipdfm. + (line 41) +* newwin (hyperlink option) <1>: Link types for pdftex and dvipdfm. + (line 53) +* newwin (hyperlink option) <2>: Link options for pdftex and dvipdfm. + (line 90) +* noarrow: Invoking Eplain. (line 84) +* noauxfile: Invoking Eplain. (line 89) +* nobibtex: Invoking Eplain. (line 73) +* nocite: Citations. (line 58) +* nolastlinelisting: Verbatim listing. (line 25) +* nolastlinelisting <1>: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* nolinks (hyperlink driver): Hyperlink driver nolinks. + (line 6) +* normalbaselineskip: Options supported by all drivers. + (line 19) +* num (hyperlink type): Link types for pdftex and dvipdfm. + (line 91) +* numberedfootnote: Footnotes. (line 7) +* numberedfootnote (hyperlinks): Footnote hyperlinks. (line 6) +* numberedlist: Lists. (line 13) +* numberedlistdepth: Formatting lists. (line 41) +* numberedmarker: Formatting lists. (line 37) +* numbername: Writing out numbers. (line 6) +* obeywhitespace: Obeying spaces. (line 6) +* orderedlist: Lists. (line 13) +* 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 30) +* pagefit (hyperlink option): Link types for pdftex and dvipdfm. + (line 31) +* pagefit (hyperlink option) <1>: Link types for pdftex and dvipdfm. + (line 41) +* pagefit (hyperlink option) <2>: Link types for pdftex and dvipdfm. + (line 53) +* pagefit (hyperlink option) <3>: Link options for pdftex and dvipdfm. + (line 107) +* pageno: Proofing index terms. + (line 21) +* pagetotal: Multiple columns. (line 14) +* paperheight: Margins. (line 43) +* paperwidth: Margins. (line 46) +* parindent in indexes: Typesetting an index. + (line 24) +* path: Paths. (line 13) +* pdfoutput: Checking for PDF output. + (line 20) +* pdftex (hyperlink driver): Hyperlink drivers pdftex and dvipdfm. + (line 6) +* percentchar: Category codes. (line 54) +* phantomeqlabel: Equation reference hyperlinks. + (line 14) +* phantomeqnumber: Equation reference hyperlinks. + (line 14) +* previouseverydisplay: Formatting displays. (line 14) +* printbetweencitations: Formatting citations. + (line 20) +* printcitefinish: Formatting citations. + (line 15) +* printcitenote: Formatting citations. + (line 26) +* printcitestart: Formatting citations. + (line 15) +* printitem: Formatting lists. (line 51) +* printlistinglineno: Verbatim listing. (line 19) +* printlistinglineno <1>: Verbatim listing. (line 27) +* providecommand: Commands from LaTeX. (line 18) +* quadcolumns: Multiple columns. (line 7) +* raggedright for index entries: Typesetting an index. + (line 45) +* raise (hyperlink option): Options supported by all drivers. + (line 13) +* raise (hyperlink option) <1>: Setting group options. + (line 33) +* raw (destination type): Destination types for hypertex. + (line 12) +* raw (destination type) <1>: Destination types for pdftex and dvipdfm. + (line 81) +* raw (hyperlink type): Link types for hypertex. + (line 37) +* raw (hyperlink type) <1>: Link types for pdftex and dvipdfm. + (line 64) +* rbracechar: Category codes. (line 58) +* readindexfile: Typesetting an index. + (line 6) +* readindexfile (hyperlinks): Index hyperlinks. (line 9) +* readtocfile: Reading the .toc file. + (line 6) +* ref: Using generic references. + (line 16) +* ref <1>: Hyperlinks (xhyper.tex). + (line 7) +* 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 22) +* refs (hyperlinks): Cross-reference hyperlinks. + (line 26) +* refspace: Cross-reference hyperlinks. + (line 24) +* refspace <1>: Page reference hyperlinks. + (line 10) +* reftie: Cross-reference hyperlinks. + (line 16) +* reftie <1>: Cross-reference hyperlinks. + (line 23) +* reftie <2>: Equation reference hyperlinks. + (line 20) +* renewcommand: Commands from LaTeX. (line 18) +* repeat: Iteration. (line 42) +* resetatcatcode: Environment for loading packages. + (line 35) +* resetatcatcode <1>: Category codes. (line 23) +* rewritetocfile (conditional): Reading the .toc file. + (line 26) +* right (destination option): Destination types for pdftex and dvipdfm. + (line 66) +* right (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 64) +* righteqnumbers: Displays. (line 23) +* rightmargin: Margins. (line 17) +* rotatebox: Hyperlinks (xhyper.tex). + (line 7) +* rt: Arrows and morphisms. + (line 14) +* sanitize: Converting to characters. + (line 22) +* sarrowlength: Arrows and morphisms. + (line 28) +* sarrowlength <1>: Commutative diagram parameters. + (line 17) +* sc: Commands from LaTeX. (line 25) +* see for index entries: Modifying index entries. + (line 36) +* see for index entries <1>: Customizing indexing. + (line 62) +* seealso for index entries: Modifying index entries. + (line 49) +* seevariant: Customizing indexing. + (line 53) +* 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) +* setuplistinghook <1>: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* 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) +* sline <1>: Arrows and morphisms. + (line 107) +* SLiTeX: Logos. (line 11) +* special: Introduction to hyperlinks. + (line 9) +* specialpathdelimiters (conditional): Paths. (line 28) +* 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) +* textbf: Commands from LaTeX. (line 25) +* timestamp: Time of day. (line 18) +* timestring: Time of day. (line 16) +* toc...entry: Writing the .toc file. + (line 9) +* toc...entry <1>: Writing the .toc file. + (line 54) +* tocfilebasename: Changing the .toc file's root name. + (line 10) +* today: Time of day. (line 21) +* top (destination option): Destination types for pdftex and dvipdfm. + (line 11) +* top (destination option) <1>: Destination types for pdftex and dvipdfm. + (line 25) +* top (destination option) <2>: Destination types for pdftex and dvipdfm. + (line 46) +* top (destination option) <3>: Destination types for pdftex and dvipdfm. + (line 66) +* top (destination option) <4>: Destination options for pdftex and dvipdfm. + (line 68) +* topmargin: Margins. (line 17) +* tracingall: Diagnostics. (line 8) +* tracingboxes: Diagnostics. (line 16) +* tracingoff: Diagnostics. (line 18) +* triplecolumns: Multiple columns. (line 7) +* tt: Packages known to work. + (line 77) +* ttfamily: Packages known to work. + (line 73) +* uncatcodespecials: Verbatim listing. (line 57) +* uncatcodespecials <1>: Category codes. (line 49) +* unorderedlist: Lists. (line 20) +* unorderedlistdepth: Formatting lists. (line 41) +* unorderedmarker: Formatting lists. (line 37) +* url: Hyperlinks (xhyper.tex). + (line 7) +* url (hyperlink type): Link types for hypertex. + (line 14) +* url (hyperlink type) <1>: Link types for pdftex and dvipdfm. + (line 25) +* url (hyperlinks): URL hyperlinks. (line 6) +* usepackage: The \usepackage command. + (line 6) +* varrowlength: Arrows and morphisms. + (line 28) +* varrowlength <1>: Commutative diagram parameters. + (line 14) +* vchannel: Commutative diagram parameters. + (line 39) +* verbatim: Verbatim listing. (line 34) +* verbatimescapechar: Verbatim listing. (line 47) +* vgrid: Construction of commutative diagrams. + (line 108) +* vgrid <1>: Commutative diagram parameters. + (line 51) +* vline: Arrows and morphisms. + (line 82) +* vmorphposn: Arrows and morphisms. + (line 33) +* vmorphposn <1>: Commutative diagram parameters. + (line 26) +* vmorphposndn: Arrows and morphisms. + (line 38) +* vmorphposndn <1>: Commutative diagram parameters. + (line 28) +* vmorphposnlft: Arrows and morphisms. + (line 40) +* vmorphposnlft <1>: Commutative diagram parameters. + (line 29) +* vmorphposnrt: Arrows and morphisms. + (line 39) +* vmorphposnrt <1>: Commutative diagram parameters. + (line 28) +* vmorphposnup: Arrows and morphisms. + (line 38) +* vmorphposnup <1>: Commutative diagram parameters. + (line 28) +* vpenalty: Mode-specific penalties. + (line 9) +* vruledefaultwidth: Rules. (line 10) +* width (destination option): Destination types for pdftex and dvipdfm. + (line 60) +* width (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 40) +* width (hyperlink option): Link options for pdftex and dvipdfm. + (line 128) +* writenumberedtocentry: Writing the .toc file. + (line 13) +* writenumberedtocline: Writing the .toc file. + (line 36) +* writetocentry: Writing the .toc file. + (line 7) +* XeLaTeX: Logos. (line 11) +* XeTeX: Logos. (line 11) +* 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: Page references. (line 18) +* xrefpageword <1>: Page reference hyperlinks. + (line 10) +* xrefwarning conditional: Using generic references. + (line 14) +* xrefwarningfalse: Citations. (line 78) +* xrlabel: Converting to characters. + (line 6) +* xyz (destination type): Destination types for hypertex. + (line 7) +* xyz (destination type) <1>: Destination types for pdftex and dvipdfm. + (line 7) +* zoom (destination option): Destination types for pdftex and dvipdfm. + (line 7) +* zoom (destination option) <1>: Destination options for pdftex and dvipdfm. + (line 21) + + +File: eplain.info, Node: Concept index, Prev: Macro index, Up: Top + +Concept index +************* + + +* Menu: + +* *-form of LaTeX commands: Commands from LaTeX. (line 18) +* .aux file: Citations. (line 17) +* .aux file <1>: Cross-references. (line 11) +* .bbl file: Citations. (line 21) +* .bib file: Citations. (line 20) +* .bst files: Citations. (line 70) +* .cls files: Loading LaTeX packages. + (line 6) +* .eps files: Packages known to work. + (line 91) +* .eps files <1>: Packages known to work. + (line 100) +* .fmt file: Installation. (line 27) +* .fmt file <1>: Invoking Eplain. (line 14) +* .idx files: Indexing. (line 23) +* .idx files <1>: Index hyperlinks. (line 14) +* .ind files: Indexing. (line 27) +* .ind files <1>: Index hyperlinks. (line 25) +* .pdf files: Checking for PDF output. + (line 6) +* .pdf files <1>: Packages known to work. + (line 91) +* .pdf files <2>: Introduction to hyperlinks. + (line 13) +* .ps files: Introduction to hyperlinks. + (line 13) +* .sty files: Loading LaTeX packages. + (line 6) +* .toc file: Contents. (line 10) +* 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 128) +* AMSLaTeX: Logos. (line 10) +* amsppt.sty: Invoking Eplain. (line 92) +* AMSTeX: Logos. (line 10) +* AMSTeX conflicts: Invoking Eplain. (line 92) +* arguments, ignoring: Macro arguments. (line 6) +* arrows: Arrows and morphisms. + (line 6) +* atom: Properties. (line 6) +* autopict.sty: Packages known to work. + (line 12) +* avoiding boxed links: URL hyperlinks. (line 17) +* avoiding boxed links <1>: Setting default types and options. + (line 25) +* 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 30) +* beveled hyperlink border: Link options for pdftex and dvipdfm. + (line 25) +* bibliographies: Citations. (line 6) +* bibliography fonts: Formatting bibliographies. + (line 38) +* bibliography items, extra space between: Formatting bibliographies. + (line 67) +* bibliography, formatting the: Formatting bibliographies. + (line 6) +* bibliography, hyperlinks: Citation hyperlinks. (line 11) +* bibtex: Invoking Eplain. (line 103) +* BibTeX: Citations. (line 9) +* BibTeX <1>: Logos. (line 10) +* black boxes: Boxes. (line 6) +* Borceux, Francis: Construction of commutative diagrams. + (line 79) +* border color, hyperlink: Link options for pdftex and dvipdfm. + (line 13) +* border style, hyperlink: Link options for pdftex and dvipdfm. + (line 19) +* border style, hyperlink <1>: Link options for pdftex and dvipdfm. + (line 25) +* border width, hyperlink: Link options for pdftex and dvipdfm. + (line 49) +* Bott, Raoul: Construction of commutative diagrams. + (line 13) +* boxed links, avoiding: URL hyperlinks. (line 17) +* boxed links, avoiding <1>: Setting default types and options. + (line 25) +* boxes, open: Boxes. (line 12) +* braces, inside index entries: Index entries with special characters. + (line 63) +* brackets, inside index entries: Index entries with special characters. + (line 85) +* Brockett, Roger W.: Construction of commutative diagrams. + (line 38) +* Butterfly Lemma: Construction of commutative diagrams. + (line 121) +* Carlisle, David: Loading LaTeX packages. + (line 14) +* catcode of '@': Environment for loading packages. + (line 35) +* category codes: Category codes. (line 6) +* centering: Justification. (line 6) +* characters, converting to: Converting to characters. + (line 6) +* characters, special: Verbatim listing. (line 57) +* citations: Citations. (line 6) +* citations, formatting: Formatting citations. + (line 6) +* citations, hyperlinks: Citation hyperlinks. (line 6) +* citations, undefined: Citations. (line 48) +* cmtt8: Proofing index terms. + (line 12) +* color: Packages known to work. + (line 25) +* color, demo: Hyperlinks (xhyper.tex). + (line 7) +* color, hyperlink border: Link options for pdftex and dvipdfm. + (line 13) +* color, hyperlinks: URL hyperlinks. (line 17) +* color, hyperlinks <1>: Options supported by all drivers. + (line 37) +* color, hyperlinks <2>: Setting default types and options. + (line 25) +* color, problems with pdfTeX: Packages known to work. + (line 29) +* color.sty: Packages known to work. + (line 21) +* color.sty <1>: URL hyperlinks. (line 18) +* color.sty <2>: Hyperlink driver nolinks. + (line 34) +* color.sty <3>: Setting default types and options. + (line 27) +* color.sty <4>: Hyperlinks (xhyper.tex). + (line 7) +* colored links: URL hyperlinks. (line 17) +* colored links <1>: Options supported by all drivers. + (line 37) +* colored links <2>: Setting default types and options. + (line 25) +* 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 62) +* comments, highlighting in listings: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* commutative diagrams: Commutative diagrams. + (line 6) +* contents: Contents. (line 6) +* contents, and verbatim text: Writing the .toc file. + (line 49) +* contents, hyperlinks: Contents hyperlinks. (line 6) +* ConTeXt: Packages known to work. + (line 29) +* 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: Defining generic references. + (line 6) +* cross-references, defining general <1>: Using generic references. + (line 6) +* cross-references, demo: Hyperlinks (xhyper.tex). + (line 7) +* cross-references, hyperlinks: Cross-reference hyperlinks. + (line 6) +* cross-referencing index entries: Modifying index entries. + (line 36) +* cross-referencing index entries <1>: Customizing indexing. + (line 62) +* 'CTRL-L', and verbatim listing: Verbatim listing. (line 30) +* cube: Construction of commutative diagrams. + (line 89) +* customizing indexing: Customizing indexing. + (line 6) +* dashed hyperlink border: Link options for pdftex and dvipdfm. + (line 19) +* dashed hyperlink border <1>: Link options for pdftex and dvipdfm. + (line 25) +* date: Time of day. (line 6) +* default hyperlink options: Setting hyperlink types and options. + (line 6) +* default hyperlink options <1>: Setting group types. (line 17) +* default hyperlink type: Setting hyperlink types and options. + (line 6) +* default hyperlink type <1>: Setting group types. (line 17) +* defining general references: Defining generic references. + (line 6) +* defining general references <1>: Using generic references. + (line 6) +* definitions, global: Category codes. (line 37) +* demo files: Demo files. (line 6) +* destgroup: Implicit hyperlinks. (line 10) +* destgroup options: Setting hyperlink types and options. + (line 12) +* destgroup options <1>: Setting group options. + (line 6) +* destgroup options, demo: Hyperlinks (xhyper.tex). + (line 7) +* destgroup type: Setting hyperlink types and options. + (line 12) +* destgroup type <1>: Setting group types. (line 6) +* destgroup type, demo: Hyperlinks (xhyper.tex). + (line 7) +* 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) +* destination group: Implicit hyperlinks. (line 10) +* destination options: Introduction to hyperlinks. + (line 105) +* destination options, common: Options supported by all drivers. + (line 12) +* destination options, 'dvipdfm': Destination options for pdftex and dvipdfm. + (line 6) +* destination options, 'hypertex': Destination options for hypertex. + (line 6) +* destination options, 'pdftex': Destination options for pdftex and dvipdfm. + (line 6) +* destination type: Introduction to hyperlinks. + (line 88) +* destination types, 'dvipdfm': Destination types for pdftex and dvipdfm. + (line 6) +* destination types, 'hypertex': Destination types for hypertex. + (line 6) +* destination types, 'pdftex': Destination types for pdftex and dvipdfm. + (line 6) +* destinations, default options: Setting hyperlink types and options. + (line 6) +* destinations, default options <1>: Setting group types. (line 17) +* destinations, default type: Setting hyperlink types and options. + (line 6) +* destinations, default type <1>: Setting group types. (line 17) +* destinations, dimensions: Destination options for pdftex and dvipdfm. + (line 34) +* destinations, dimensions <1>: Destination options for pdftex and dvipdfm. + (line 37) +* destinations, dimensions <2>: Destination options for pdftex and dvipdfm. + (line 40) +* destinations, dimensions <3>: Destination options for pdftex and dvipdfm. + (line 56) +* destinations, dimensions <4>: Destination options for pdftex and dvipdfm. + (line 60) +* destinations, dimensions <5>: Destination options for pdftex and dvipdfm. + (line 64) +* destinations, dimensions <6>: Destination options for pdftex and dvipdfm. + (line 68) +* destinations, disabling: Hyperlink driver nolinks. + (line 6) +* destinations, disabling <1>: Turning hyperlinks on/off. + (line 6) +* destinations, group options: Setting hyperlink types and options. + (line 12) +* destinations, group options <1>: Setting group options. + (line 6) +* destinations, group options, demo: Hyperlinks (xhyper.tex). + (line 7) +* destinations, group type: Setting hyperlink types and options. + (line 12) +* destinations, group type <1>: Setting group types. (line 6) +* destinations, group type, demo: Hyperlinks (xhyper.tex). + (line 7) +* destinations, in another file: Link types for hypertex. + (line 21) +* destinations, in another file <1>: Link types for pdftex and dvipdfm. + (line 39) +* destinations, in another file <2>: Link types for pdftex and dvipdfm. + (line 51) +* destinations, large operators: Options supported by all drivers. + (line 27) +* destinations, large operators <1>: Setting group options. + (line 33) +* destinations, magnification: Destination options for pdftex and dvipdfm. + (line 21) +* destinations, named: Link types for hypertex. + (line 7) +* destinations, named <1>: Link types for pdftex and dvipdfm. + (line 18) +* destinations, numbered: Link types for pdftex and dvipdfm. + (line 91) +* destinations, page: Link types for pdftex and dvipdfm. + (line 30) +* destinations, raising: Options supported by all drivers. + (line 13) +* destinations, URL: Link types for hypertex. + (line 14) +* destinations, URL <1>: Link types for pdftex and dvipdfm. + (line 25) +* detecting numbers: \ifinteger and \isinteger. + (line 6) +* diagnostics: Diagnostics. (line 6) +* Diagram, macros for LaTeX: Construction of commutative diagrams. + (line 79) +* dimensions, hyperlink: Link options for pdftex and dvipdfm. + (line 122) +* dimensions, hyperlink <1>: Link options for pdftex and dvipdfm. + (line 125) +* dimensions, hyperlink <2>: Link options for pdftex and dvipdfm. + (line 128) +* dimensions, hyperlink destination: Destination options for pdftex and dvipdfm. + (line 34) +* dimensions, hyperlink destination <1>: Destination options for pdftex and dvipdfm. + (line 37) +* dimensions, hyperlink destination <2>: Destination options for pdftex and dvipdfm. + (line 40) +* dimensions, hyperlink destination <3>: Destination options for pdftex and dvipdfm. + (line 56) +* dimensions, hyperlink destination <4>: Destination options for pdftex and dvipdfm. + (line 60) +* dimensions, hyperlink destination <5>: Destination options for pdftex and dvipdfm. + (line 64) +* dimensions, hyperlink destination <6>: Destination options for pdftex and dvipdfm. + (line 68) +* disabling hyperlinks: Hyperlink driver nolinks. + (line 6) +* disabling hyperlinks <1>: Turning hyperlinks on/off. + (line 6) +* disabling indexes: Indexing. (line 54) +* displayed math and hyperlinks: Options supported by all drivers. + (line 27) +* displayed math and hyperlinks <1>: Setting group options. + (line 33) +* displays, left-justifying: Displays. (line 6) +* do...while loops: Iteration. (line 6) +* double column output: Multiple columns. (line 6) +* double columns in indexes: Typesetting an index. + (line 24) +* 'draft', option for 'graphics.sty': Packages known to work. + (line 69) +* driver 'dvipdfm': Hyperlink drivers pdftex and dvipdfm. + (line 6) +* driver 'hypertex': Hyperlink driver hypertex. + (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: Introduction to hyperlinks. + (line 36) +* dvipdfm <1>: Hyperlink driver hypertex. + (line 13) +* dvipdfm <2>: Hyperlink driver hypertex. + (line 47) +* '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) +* dvips: Hyperlink driver hypertex. + (line 13) +* dvips <1>: Hyperlink driver hypertex. + (line 32) +* Eijkhout, Victor: Iteration. (line 61) +* eject in multicolumns: Multiple columns. (line 14) +* electronic mail addresses, breaking: Paths. (line 6) +* electronic mail addresses, breaking <1>: Packages known to work. + (line 121) +* empty argument, checking for: \ifempty. (line 6) +* empty equation labels: Equation references. (line 22) +* empty equation labels, referring to: Equation references. (line 27) +* empty string, checking for: \ifempty. (line 6) +* Encapsulated PostScript: Packages known to work. + (line 91) +* Encapsulated PostScript <1>: Packages known to work. + (line 100) +* 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) +* Eplain, upgrading: Installation. (line 6) +* eplain.aux: Installation. (line 40) +* eplain.fmt: Installation. (line 27) +* EPS: Packages known to work. + (line 91) +* EPS <1>: Packages known to work. + (line 100) +* epstopdf: Packages known to work. + (line 91) +* epstopdf.sty: Packages known to work. + (line 89) +* equation labels, characters valid in: Equation references. (line 54) +* equation numbers, formatting of: Formatting equation references. + (line 6) +* equation numbers, left-alignment: Displays. (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 24) +* error on '\input': Environment for loading packages. + (line 41) +* escape character, changing verbatim: Verbatim listing. (line 47) +* eTeX: Logos. (line 10) +* exact index hyperlinks: Exact destinations for index terms. + (line 28) +* expansion, one-level: \expandonce. (line 6) +* explicit hyperlinks: Explicit hyperlinks. (line 6) +* explicit hyperlinks, demo: Hyperlinks (xhyper.tex). + (line 7) +* ExTeX: Logos. (line 10) +* file, hyperlink to: Link types for hypertex. + (line 21) +* file, hyperlink to <1>: Link types for pdftex and dvipdfm. + (line 39) +* file, hyperlink to <2>: Link types for pdftex and dvipdfm. + (line 51) +* 'file:' links: General hyperlinks. (line 37) +* filenames, breaking: Paths. (line 6) +* filenames, breaking <1>: Packages known to work. + (line 121) +* files, verbatim listing of: Verbatim listing. (line 6) +* files, verbatim listing of, demo: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* 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) +* form feed character, and verbatim listing: Verbatim listing. + (line 30) +* format file: Installation. (line 27) +* formatting index entries: Typesetting an index. + (line 35) +* fractions: Fractions. (line 6) +* Ghostscript: Hyperlink driver hypertex. + (line 13) +* Ghostscript <1>: Hyperlink driver hypertex. + (line 35) +* gobbling arguments: Macro arguments. (line 6) +* golden mean: Construction of commutative diagrams. + (line 59) +* golden mean <1>: Construction of commutative diagrams. + (line 59) +* Graham, Ronald L.: Citations. (line 91) +* graphics collection, LaTeX: Loading LaTeX packages. + (line 14) +* graphics collection, LaTeX <1>: Packages known to work. + (line 25) +* graphics collection, LaTeX <2>: Hyperlink driver nolinks. + (line 34) +* graphics collection, LaTeX, demo: Hyperlinks (xhyper.tex). + (line 7) +* graphics, omitting typesetting of: Packages known to work. + (line 69) +* graphics, problems with pdfTeX: Packages known to work. + (line 29) +* graphics.sty: Packages known to work. + (line 22) +* graphicx.sty: Packages known to work. + (line 23) +* graphicx.sty <1>: Hyperlinks (xhyper.tex). + (line 7) +* grid: Construction of commutative diagrams. + (line 79) +* group option list: Setting group options. + (line 48) +* group options, hyperlink: Setting hyperlink types and options. + (line 12) +* group options, hyperlink <1>: Setting group options. + (line 6) +* group options, hyperlink, demo: Hyperlinks (xhyper.tex). + (line 7) +* group type, hyperlink: Setting hyperlink types and options. + (line 12) +* group type, hyperlink <1>: Setting group types. (line 6) +* group type, hyperlink, demo: Hyperlinks (xhyper.tex). + (line 7) +* 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': Equation reference hyperlinks. + (line 6) +* group 'eq' <1>: Equation reference hyperlinks. + (line 20) +* group 'eq' <2>: Setting group options. + (line 34) +* group 'foot': Footnote hyperlinks. (line 6) +* group 'footback': Footnote hyperlinks. (line 6) +* group 'hrefext': General hyperlinks. (line 21) +* group 'hrefint': General hyperlinks. (line 12) +* 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, destination: Implicit hyperlinks. (line 10) +* group, disabling hyperlinks: Turning hyperlinks on/off for a group. + (line 6) +* group, link: Implicit hyperlinks. (line 10) +* group, preserving option list: Setting group options. + (line 21) +* groups, specifying all: Setting group types. (line 26) +* hanging on '\input': Environment for loading packages. + (line 41) +* help messages: Diagnostics. (line 24) +* highlight modes, hyperlink: Link options for pdftex and dvipdfm. + (line 69) +* highlighting: Packages known to work. + (line 111) +* highlighting, in listings: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* Ho"ppner, Klaus: Packages known to work. + (line 83) +* hooks: Hooks. (line 6) +* hyperlink border color: Link options for pdftex and dvipdfm. + (line 13) +* hyperlink color: URL hyperlinks. (line 17) +* hyperlink color <1>: Options supported by all drivers. + (line 37) +* hyperlink color <2>: Setting default types and options. + (line 25) +* hyperlink destination, dimensions: Destination options for pdftex and dvipdfm. + (line 34) +* hyperlink destination, dimensions <1>: Destination options for pdftex and dvipdfm. + (line 37) +* hyperlink destination, dimensions <2>: Destination options for pdftex and dvipdfm. + (line 40) +* hyperlink destination, dimensions <3>: Destination options for pdftex and dvipdfm. + (line 56) +* hyperlink destination, dimensions <4>: Destination options for pdftex and dvipdfm. + (line 60) +* hyperlink destination, dimensions <5>: Destination options for pdftex and dvipdfm. + (line 64) +* hyperlink destination, dimensions <6>: Destination options for pdftex and dvipdfm. + (line 68) +* hyperlink destination, magnification: Destination options for pdftex and dvipdfm. + (line 21) +* hyperlink destination, named: Link types for hypertex. + (line 7) +* hyperlink destination, named <1>: Link types for pdftex and dvipdfm. + (line 18) +* hyperlink destination, numbered: Link types for pdftex and dvipdfm. + (line 91) +* hyperlink destination, page: Link types for pdftex and dvipdfm. + (line 30) +* hyperlink destination, raising: Options supported by all drivers. + (line 13) +* hyperlink dimensions: Link options for pdftex and dvipdfm. + (line 122) +* hyperlink dimensions <1>: Link options for pdftex and dvipdfm. + (line 125) +* hyperlink dimensions <2>: Link options for pdftex and dvipdfm. + (line 128) +* hyperlink driver 'dvipdfm': Hyperlink drivers pdftex and dvipdfm. + (line 6) +* hyperlink driver 'hypertex': Hyperlink driver hypertex. + (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 21) +* 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 19) +* hyperlinks, border style <1>: Link options for pdftex and dvipdfm. + (line 25) +* hyperlinks, border width: Link options for pdftex and dvipdfm. + (line 49) +* hyperlinks, citations: Citation hyperlinks. (line 6) +* hyperlinks, cross-references: Cross-reference hyperlinks. + (line 6) +* hyperlinks, default options: Setting hyperlink types and options. + (line 6) +* hyperlinks, default options <1>: Setting group types. (line 17) +* hyperlinks, default type: Setting hyperlink types and options. + (line 6) +* hyperlinks, default type <1>: Setting group types. (line 17) +* hyperlinks, demo: Hyperlinks (xhyper.tex). + (line 7) +* hyperlinks, disabling: Hyperlink driver nolinks. + (line 6) +* hyperlinks, disabling <1>: Turning hyperlinks on/off. + (line 6) +* hyperlinks, equations: Equation reference hyperlinks. + (line 6) +* hyperlinks, explicit: Explicit hyperlinks. (line 6) +* hyperlinks, explicit, demo: Hyperlinks (xhyper.tex). + (line 7) +* 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 48) +* hyperlinks, group options: Setting hyperlink types and options. + (line 12) +* hyperlinks, group options <1>: Setting group options. + (line 6) +* hyperlinks, group options, demo: Hyperlinks (xhyper.tex). + (line 7) +* hyperlinks, group type: Setting hyperlink types and options. + (line 12) +* hyperlinks, group type <1>: Setting group types. (line 6) +* hyperlinks, highlight mode: Link options for pdftex and dvipdfm. + (line 69) +* hyperlinks, implicit: Implicit hyperlinks. (line 6) +* hyperlinks, implicit, demo: Hyperlinks (xhyper.tex). + (line 7) +* 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: Options supported by all drivers. + (line 27) +* hyperlinks, large operators <1>: Setting group options. + (line 33) +* 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 hypertex. + (line 21) +* hyperlinks, to another file <1>: Link types for pdftex and dvipdfm. + (line 39) +* hyperlinks, to another file <2>: Link types for pdftex and dvipdfm. + (line 51) +* hyperlinks, URL: General hyperlinks. (line 20) +* hyperlinks, URL <1>: URL hyperlinks. (line 6) +* hyperlinks, URL <2>: Link types for hypertex. + (line 14) +* hyperlinks, URL <3>: Link types for pdftex and dvipdfm. + (line 25) +* hyperref.sty: Packages known not to work. + (line 9) +* 'hypertex', destination options: Destination options for hypertex. + (line 6) +* 'hypertex', destination types: Destination types for hypertex. + (line 6) +* 'hypertex', hyperlink driver: Hyperlink driver hypertex. + (line 6) +* 'hypertex', link options: Link options for hypertex. + (line 6) +* 'hypertex', link types: Link types for hypertex. + (line 6) +* hypertext links: Hyperlinks. (line 6) +* identifying numbers: \ifinteger and \isinteger. + (line 6) +* idxuniq: Exact destinations for index terms. + (line 33) +* ignoring arguments: Macro arguments. (line 6) +* implicit hyperlinks: Implicit hyperlinks. (line 6) +* implicit hyperlinks, demo: Hyperlinks (xhyper.tex). + (line 7) +* inaccessible macros: Category codes. (line 19) +* index entries and ranges: Modifying index entries. + (line 22) +* index entries containing braces: Index entries with special characters. + (line 63) +* index entries containing brackets: Index entries with special characters. + (line 85) +* index entries with special characters: Index entries with special characters. + (line 6) +* index entries' page numbers, modifying: Modifying index entries. + (line 6) +* index entries, and cross-referencing: Modifying index entries. + (line 36) +* index entries, and cross-referencing <1>: Customizing indexing. + (line 62) +* index entries, proofing: Proofing index terms. + (line 6) +* index entries, with verbatim text: Index entries with special characters. + (line 40) +* index entry continuations: Typesetting an index. + (line 35) +* index entry formatting: Typesetting an index. + (line 35) +* index entry general sorting: Indexing commands. (line 50) +* index fonts: Typesetting an index. + (line 24) +* index groupings: Typesetting an index. + (line 54) +* index hyperlink: Index hyperlinks. (line 6) +* index typesetting: Typesetting an index. + (line 6) +* index, and verbatim text: Index entries with special characters. + (line 40) +* 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, disabling: Indexing. (line 54) +* indexes, multiple: Indexing. (line 36) +* 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 38) +* inset hyperlink border: Link options for pdftex and dvipdfm. + (line 25) +* installation: Installation. (line 6) +* integers, detecting: \ifinteger and \isinteger. + (line 6) +* italic correction: Formatting bibliographies. + (line 45) +* item labels, changing: Formatting lists. (line 53) +* iteration: Iteration. (line 6) +* justification: Justification. (line 6) +* Knuth, Donald Ervin: Citations. (line 91) +* Knuth, Donald Ervin <1>: Category codes. (line 7) +* labels on items, changing: Formatting lists. (line 53) +* 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 15) +* LAMSTeX: Logos. (line 11) +* Lang, Serge: Arrows and morphisms. + (line 126) +* Lang, Serge <1>: Construction of commutative diagrams. + (line 121) +* large operators and hyperlinks: Options supported by all drivers. + (line 27) +* large operators and hyperlinks <1>: Setting group options. + (line 33) +* LaTeX: Introduction. (line 15) +* LaTeX <1>: Citations. (line 10) +* LaTeX <2>: Logos. (line 11) +* LaTeX <3>: Slanted lines and vectors. + (line 7) +* LaTeX commands, in 'btxmac.tex': Commands from LaTeX. (line 6) +* LaTeX graphics collection: Loading LaTeX packages. + (line 14) +* LaTeX graphics collection <1>: Packages known to work. + (line 25) +* LaTeX graphics collection <2>: Hyperlink driver nolinks. + (line 34) +* LaTeX graphics collection, demo: Hyperlinks (xhyper.tex). + (line 7) +* LaTeX packages: Loading LaTeX packages. + (line 6) +* LaTeX packages <1>: Packages known to work. + (line 6) +* LaTeX packages <2>: Packages known not to work. + (line 6) +* LaTeX packages, restoring '\input': Environment for loading packages. + (line 24) +* left-alignment of equation numbers: Displays. (line 6) +* left-justification: Justification. (line 6) +* left-justification of displays: Displays. (line 6) +* letterspacing: Packages known to work. + (line 111) +* 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 105) +* link options, common: Options supported by all drivers. + (line 35) +* link options, 'dvipdfm': Link options for pdftex and dvipdfm. + (line 6) +* link options, 'hypertex': Link options for hypertex. + (line 6) +* link options, 'pdftex': Link options for pdftex and dvipdfm. + (line 6) +* link type: Introduction to hyperlinks. + (line 88) +* link types, 'dvipdfm': Link types for pdftex and dvipdfm. + (line 6) +* link types, 'hypertex': Link types for hypertex. + (line 6) +* link types, 'pdftex': Link types for pdftex and dvipdfm. + (line 6) +* link, group options: Setting hyperlink types and options. + (line 12) +* link, group options <1>: Setting group options. + (line 6) +* link, group options, demo: Hyperlinks (xhyper.tex). + (line 7) +* link, group type: Setting hyperlink types and options. + (line 12) +* link, group type <1>: Setting group types. (line 6) +* linkgroup: Implicit hyperlinks. (line 10) +* linkgroup options: Setting hyperlink types and options. + (line 12) +* linkgroup options <1>: Setting group options. + (line 6) +* linkgroup options, demo: Hyperlinks (xhyper.tex). + (line 7) +* linkgroup type: Setting hyperlink types and options. + (line 12) +* linkgroup type <1>: Setting group types. (line 6) +* linkgroup 'cite': Citation hyperlinks. (line 6) +* linkgroup 'eq': Equation reference hyperlinks. + (line 20) +* linkgroup 'eq' <1>: Setting group options. + (line 34) +* linkgroup 'foot': Footnote hyperlinks. (line 6) +* linkgroup 'footback': Footnote hyperlinks. (line 6) +* linkgroup 'hrefext': General hyperlinks. (line 21) +* linkgroup 'hrefint': General hyperlinks. (line 12) +* 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) +* links, hypertext: Hyperlinks. (line 6) +* list of figures: Alternative contents files. + (line 6) +* list of tables: Alternative contents files. + (line 6) +* listing files: Verbatim listing. (line 6) +* listing files, demo: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* lists: Lists. (line 6) +* lists, formatting: Formatting lists. (line 6) +* lists, hyperlinks: List hyperlinks. (line 6) +* loading packages, environment for: Environment for loading packages. + (line 6) +* logos: Logos. (line 6) +* lookahead without spaces: \futurenonspacelet. (line 6) +* loops: Iteration. (line 6) +* lscommnt.tex: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* magnification, hyperlink destination: Destination options for pdftex and dvipdfm. + (line 21) +* makeindex: Invoking Eplain. (line 103) +* makeindex <1>: Indexing. (line 14) +* makeindex <2>: Index hyperlinks. (line 12) +* margins, changing: Margins. (line 6) +* margins, index terms in: Proofing index terms. + (line 6) +* mathematics displays, formatting: Displays. (line 6) +* mathematics displays, hyperlinks: Options supported by all drivers. + (line 27) +* mathematics displays, hyperlinks <1>: Setting group options. + (line 33) +* Metafont: Logos. (line 11) +* miniltx.tex: Loading LaTeX packages. + (line 14) +* 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 36) +* named destination: Link types for hypertex. + (line 7) +* named destination <1>: 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 26) +* newlines, obeying: Obeying spaces. (line 6) +* 'nolinks', hyperlink driver: Hyperlink driver nolinks. + (line 6) +* numbered destination: Link types for pdftex and dvipdfm. + (line 91) +* numbered lists: Lists. (line 6) +* numbered references: Citations. (line 91) +* numbers, detecting: \ifinteger and \isinteger. + (line 6) +* numbers, written form of: Writing out numbers. (line 6) +* Oberdiek, Heiko: Checking for PDF output. + (line 24) +* omitting hyperlinks: Hyperlink driver nolinks. + (line 6) +* omitting hyperlinks <1>: Turning hyperlinks on/off. + (line 6) +* omitting typesetting of graphics: Packages known to work. + (line 69) +* open boxes: Boxes. (line 12) +* option list, group: Setting group options. + (line 48) +* option list, preserving for group: Setting group options. + (line 21) +* options, destination, common: Options supported by all drivers. + (line 12) +* options, destination, 'dvipdfm': Destination options for pdftex and dvipdfm. + (line 6) +* options, destination, 'hypertex': Destination options for hypertex. + (line 6) +* options, destination, 'pdftex': Destination options for pdftex and dvipdfm. + (line 6) +* options, link and destination: Introduction to hyperlinks. + (line 105) +* options, link, common: Options supported by all drivers. + (line 35) +* options, link, 'dvipdfm': Link options for pdftex and dvipdfm. + (line 6) +* options, link, 'hypertex': Link options for hypertex. + (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) +* overstriking: Packages known to work. + (line 111) +* packages, LaTeX: Loading LaTeX packages. + (line 6) +* packages, LaTeX <1>: Packages known to work. + (line 6) +* packages, LaTeX <2>: Packages known not to work. + (line 6) +* page destination: Link types for pdftex and dvipdfm. + (line 30) +* 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: Paths. (line 6) +* pathnames, breaking <1>: Packages known to work. + (line 121) +* PDF: Packages known to work. + (line 91) +* PDF output: Checking for PDF output. + (line 6) +* pdftex: Invoking Eplain. (line 114) +* pdftex <1>: Checking for PDF output. + (line 6) +* pdftex <2>: Introduction to hyperlinks. + (line 35) +* '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) +* pdfTeX, problems using color and graphics: Packages known to work. + (line 29) +* pdfTeX, problems with 'supp-mis.tex': Packages known to work. + (line 29) +* pict2e.sty: Packages known not to work. + (line 16) +* picture mode: Packages known to work. + (line 14) +* picture mode <1>: Slanted lines and vectors. + (line 7) +* Portable Document Format: Packages known to work. + (line 91) +* PostScript point: Destination types for pdftex and dvipdfm. + (line 66) +* PostScript point <1>: Destination options for pdftex and dvipdfm. + (line 50) +* PostScript point <2>: Link options for pdftex and dvipdfm. + (line 49) +* proofing index terms: Proofing index terms. + (line 6) +* properties: Properties. (line 6) +* ps2pdf: Hyperlink driver hypertex. + (line 14) +* ps2pdf <1>: Hyperlink driver hypertex. + (line 35) +* psfrag.sty: Packages known to work. + (line 98) +* quadruple column output: Multiple columns. (line 6) +* Rahtz, Sebastian: Loading LaTeX packages. + (line 14) +* raising hyperlink destinations: Options supported by all drivers. + (line 13) +* raising hyperlink destinations <1>: Setting group options. + (line 33) +* ranges and index entry: Modifying index entries. + (line 22) +* recognizing numbers: \ifinteger and \isinteger. + (line 6) +* rectangles: Boxes. (line 6) +* references, alphanumeric: Citations. (line 128) +* references, defining general: Defining generic references. + (line 6) +* references, defining general <1>: Using generic references. + (line 6) +* references, numbered: Citations. (line 91) +* register allocation: Allocation macros. (line 6) +* restoring '\input', LaTeX packages: Environment for loading packages. + (line 24) +* return character: Category codes. (line 40) +* right-justification: Justification. (line 6) +* rms: Introduction. (line 16) +* rotation: Packages known to work. + (line 25) +* rotation, demo: Hyperlinks (xhyper.tex). + (line 7) +* rule thickness: Rules. (line 7) +* 'run:' links: General hyperlinks. (line 38) +* scaling: Packages known to work. + (line 25) +* scaling, demo: Hyperlinks (xhyper.tex). + (line 7) +* sed: Customizing indexing. + (line 64) +* see also index entries and hyperlinks: Hyperlinks in see and see also entries. + (line 6) +* see also index entries and sorting: Customizing indexing. + (line 49) +* see, and index entries: Modifying index entries. + (line 36) +* see, and index entries <1>: Customizing indexing. + (line 62) +* 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) +* skipping tokens <1>: \ifempty. (line 12) +* SLiTeX: Logos. (line 11) +* Snake Lemma: Arrows and morphisms. + (line 130) +* solid hyperlink border: Link options for pdftex and dvipdfm. + (line 25) +* sorting an index: Indexing. (line 6) +* sorting of index entries: Indexing commands. (line 50) +* soul.sty: Packages known to work. + (line 109) +* 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 out: Packages known to work. + (line 111) +* spacing, preserving with hyperlinks: Hyperlink driver nolinks. + (line 6) +* special characters: Verbatim listing. (line 57) +* special characters, in index entries: Index entries with special characters. + (line 6) +* special characters, in table of contents: Writing the .toc file. + (line 49) +* Stallman, Richard: Introduction. (line 16) +* striking out: Packages known to work. + (line 111) +* style, hyperlink border: Link options for pdftex and dvipdfm. + (line 25) +* subequations, referring to: Subequation references. + (line 6) +* subterm in indexing: Indexing terms. (line 13) +* supp-mis.tex, problems with pdfTeX: Packages known to work. + (line 29) +* supp-pdf.tex: Packages known to work. + (line 29) +* table of contents: Contents. (line 6) +* table of contents, and verbatim text: Writing the .toc file. + (line 49) +* table of contents, hyperlinks: Contents hyperlinks. (line 6) +* table of contents, short: Reading the .toc file. + (line 19) +* table of contents, short <1>: Macro arguments. (line 10) +* tables: Tables. (line 6) +* tabs: Obeying spaces. (line 22) +* TeX by Topic: Iteration. (line 61) +* TeX Frequently Asked Question: \ifinteger and \isinteger. + (line 26) +* TEXFORMATS: Installation. (line 43) +* texi2dvi: Invoking Eplain. (line 103) +* texi2dvi <1>: Citations. (line 102) +* texi2dvi <2>: Indexing. (line 33) +* Texinfo: Introduction. (line 15) +* TEXINPUTS: Installation. (line 23) +* time of day: Time of day. (line 6) +* 'toc' files, writing several: Changing the .toc file's root name. + (line 12) +* tracing: Diagnostics. (line 6) +* trailing spaces and indexing commands: Indexing terms. (line 20) +* trimsee: Customizing indexing. + (line 65) +* triple column output: Multiple columns. (line 6) +* Tu, Loring W.: Construction of commutative diagrams. + (line 13) +* TUGboat: Introduction. (line 64) +* type, link and destination: Introduction to hyperlinks. + (line 88) +* types, destination, 'dvipdfm': Destination types for pdftex and dvipdfm. + (line 6) +* types, destination, 'hypertex': Destination types for hypertex. + (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, 'hypertex': Link types for hypertex. + (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 40) +* underline hyperlink border: Link options for pdftex and dvipdfm. + (line 25) +* underlining: Packages known to work. + (line 111) +* 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) +* upgrading: Installation. (line 6) +* URL for 'ifpdf.sty': Checking for PDF output. + (line 24) +* URL for MakeIndex: Indexing. (line 14) +* URL for 'path.sty': Paths. (line 33) +* URL for pdfTeX: Checking for PDF output. + (line 6) +* URL for 'texnames.sty': Logos. (line 15) +* URL hyperlink: General hyperlinks. (line 20) +* URL hyperlink <1>: URL hyperlinks. (line 6) +* URL hyperlink <2>: Link types for hypertex. + (line 14) +* URL hyperlink <3>: Link types for pdftex and dvipdfm. + (line 25) +* url.sty: Packages known to work. + (line 119) +* url.sty <1>: URL hyperlinks. (line 6) +* url.sty <2>: Hyperlinks (xhyper.tex). + (line 7) +* user-inaccessible macros: Category codes. (line 19) +* vectors: Slanted lines and vectors. + (line 15) +* verbatim listing: Verbatim listing. (line 6) +* verbatim listing, demo: Highlighting TeX comments in listings (lscommnt.tex). + (line 7) +* verbatim text, in index: Index entries with special characters. + (line 40) +* verbatim text, in table of contents: Writing the .toc file. + (line 49) +* version number: Introduction. (line 50) +* Walden, David: Introduction. (line 61) +* Warner, Frank W.: Construction of commutative diagrams. + (line 25) +* whatsits made by hyperlinks: Hyperlink driver nolinks. + (line 25) +* whatsits made by index entries: Indexing commands. (line 62) +* while loops: Iteration. (line 6) +* whitespace: Obeying spaces. (line 6) +* width, hyperlink border: Link options for pdftex and dvipdfm. + (line 49) +* writing several 'toc' files: Changing the .toc file's root name. + (line 12) +* xcolor.sty: Packages known not to work. + (line 19) +* xdvi: Hyperlink driver hypertex. + (line 11) +* XeLaTeX: Logos. (line 11) +* xeplain.tex: Introduction. (line 6) +* XeTeX: Logos. (line 11) +* xhyper.tex: Hyperlinks (xhyper.tex). + (line 7) +* Zassenhaus, Hans: Construction of commutative diagrams. + (line 121) +* zooming, hyperlink destination: Destination options for pdftex and dvipdfm. + (line 21) + + + +Tag Table: +Node: Top809 +Node: Introduction8254 +Node: Installation11274 +Node: Invoking Eplain13326 +Node: User definitions17923 +Node: Diagnostics19750 +Node: Rules21315 +Node: Citations22146 +Node: Formatting citations28574 +Node: Formatting bibliographies30111 +Node: Commands from LaTeX33347 +Node: Displays34321 +Node: Formatting displays35708 +Node: Time of day36341 +Node: Lists37100 +Node: Formatting lists39240 +Node: Verbatim listing41523 +Node: Contents44743 +Node: Writing the .toc file45412 +Node: Reading the .toc file48274 +Node: Changing the .toc file's root name49677 +Node: Alternative contents files50693 +Node: Cross-references51257 +Node: Defining generic references52743 +Node: Using generic references53619 +Node: Page references54903 +Node: Equation references55722 +Node: Formatting equation references58487 +Node: Subequation references62837 +Node: Indexing64753 +Node: Indexing terms67861 +Node: Indexing commands68973 +Node: Modifying index entries71992 +Node: Index entries with special characters74962 +Node: Proofing index terms79204 +Node: Typesetting an index81017 +Node: Customizing indexing83483 +Node: Justification87179 +Node: Tables88849 +Node: Margins91340 +Node: Multiple columns93493 +Node: Footnotes95530 +Node: Fractions98105 +Node: Paths98888 +Node: Logos100490 +Node: Boxes101220 +Node: Checking for PDF output103006 +Node: Loading LaTeX packages104094 +Node: The \usepackage command105451 +Node: Environment for loading packages106537 +Node: Packages known to work108877 +Node: Packages known not to work115252 +Node: Hyperlinks116013 +Node: Introduction to hyperlinks116594 +Node: Explicit hyperlinks122130 +Node: Implicit hyperlinks124415 +Node: General hyperlinks126236 +Node: URL hyperlinks127758 +Node: Citation hyperlinks129858 +Node: List hyperlinks130585 +Node: Cross-reference hyperlinks130976 +Node: Page reference hyperlinks132347 +Node: Equation reference hyperlinks133008 +Node: Index hyperlinks134398 +Node: Exact destinations for index terms136156 +Node: Page destinations for index terms138323 +Node: Choosing destination placement140941 +Node: Index page list and page range parsers141730 +Node: Hyperlinks in see and see also entries142282 +Node: Footnote hyperlinks143080 +Node: Contents hyperlinks144274 +Node: Hyperlink drivers144657 +Node: Options supported by all drivers145291 +Node: Hyperlink driver hypertex148087 +Node: Destination types for hypertex151031 +Node: Destination options for hypertex152065 +Node: Link types for hypertex152547 +Node: Link options for hypertex154554 +Node: Hyperlink drivers pdftex and dvipdfm155576 +Node: Destination types for pdftex and dvipdfm156221 +Node: Destination options for pdftex and dvipdfm159700 +Node: Link types for pdftex and dvipdfm162151 +Node: Link options for pdftex and dvipdfm165665 +Node: Hyperlink driver nolinks169303 +Node: Setting hyperlink types and options171706 +Node: Setting default types and options172707 +Node: Setting group types174133 +Node: Setting group options175322 +Node: Turning hyperlinks on/off177803 +Node: Turning low-level commands on/off178441 +Node: Turning hyperlinks on/off for a group178954 +Node: Arrow theoretic diagrams180107 +Node: Slanted lines and vectors180485 +Node: Commutative diagrams182558 +Node: Arrows and morphisms183167 +Node: Construction of commutative diagrams187623 +Node: Commutative diagram parameters194779 +Node: Programming definitions196595 +Node: Category codes197601 +Node: Allocation macros200246 +Node: Iteration202381 +Node: Macro arguments204033 +Node: Converting to characters207400 +Node: Expansion208785 +Node: \csn and \ece209408 +Node: \edefappend209973 +Node: Hooks210520 +Node: Properties212694 +Node: \expandonce213773 +Node: \ifundefined214221 +Node: \ifempty214785 +Node: \ifinteger and \isinteger215527 +Node: \futurenonspacelet216562 +Node: Obeying spaces217157 +Node: Writing out numbers218181 +Node: Mode-specific penalties218504 +Node: Auxiliary files219233 +Node: User-defined environments220152 +Node: Page list and page range parsers221365 +Node: Demo files223497 +Node: Hyperlinks (xhyper.tex)224063 +Node: Highlighting TeX comments in listings (lscommnt.tex)232412 +Node: Macro index234868 +Node: Concept index302707 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/epspdf.info b/Master/texmf-dist/doc/info/epspdf.info Binary files differnew file mode 100644 index 00000000000..0ede27f4058 --- /dev/null +++ b/Master/texmf-dist/doc/info/epspdf.info diff --git a/Master/texmf-dist/doc/info/fontname.info b/Master/texmf-dist/doc/info/fontname.info new file mode 100644 index 00000000000..13a167eb1b1 --- /dev/null +++ b/Master/texmf-dist/doc/info/fontname.info @@ -0,0 +1,16120 @@ +This is fontname.info, produced by makeinfo version 4.13 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 the Fontname document, a naming scheme for (the base part of) +external TeX font filenames. Last update 5 July 2009. + +* 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. +* 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. +* dvips:: Dvips. +* ec:: EC (aka Cork, TeX Latin 1, tex256). +* 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 + (`http://tug.org/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 Fontinst distribution (`http://tug.org/applications/fontinst' + supports quite general creation of virtual fonts, named according + to the scheme given here. + + * The Dvips translator (`http://tug.org/dvips') supports resident + and downloadable PostScript fonts. Dvips was the first place where + Fontname became widely known. Dvips also includes Afm2tfm, another + program that can create virtual fonts. + + * The Dviljk processor (included in TeX Live) 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 +********************* + +In this scheme, names may consist of only the letters (monocase a-z), +numerals (0-9), and underscore. Having two names which differ only in +case is undesirable, since it results in clashes on common Windows +filesystems. + + Here is the basic scheme (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. In my opinion, the + increased range does not make up for the unreadability of the + common sizes (e.g., 10pt fonts would have a suffix `a' (in hex), + or `j' (in base 36)). + + + We used to try to limit font names to eight characters. This was +never completely possible, and since DOS filesystems have become rare, +it's no longer an issue. + + 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) + q texgyre TeX Gyre fonts from GUST Typefoundry + r - raw (for [obsolete] use with virtual fonts) + s sun Storm Type + t paragrap ParaGraph + u urw URW + v sil SIL + w wolfram Wolfram + y arkandis Arkandis Digital Foundry + 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. + +@c @mapfile{ +@c email = "tex-fonts@tug.org", +@c date = "18jul10", +@c url = "http://tug.org/fontname/typeface.map", +@c supported = "yes", +@c docstring = "Typeface abbreviations for the TeX Fontname scheme.", +@c license = "public domain", +@c } +@c +@c +a0 arnopro ArnoPro +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 @r{Adobe Caslon} +ad agaramon AGaramond @r{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 +cj charis SILCharis TeXChariot +ck caslonbe CaslonBookBE +cl cloister Cloister +cm cm @r{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 +dg dogma Dogma +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 y:Electrum +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 +fv futurans FuturaNoStarchPress +fx felixttl FelixTitling +fy flyer Flyer +g0 gando Gando +g1 gothic13 GothicThirteen +g2 giddyup Giddyup +g3 garamon3 GaramondThree b:AmericanGaramondBT @r{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 +gn gentium Gentium +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 +i4 inconsol Inconsolata +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 +ir Irianis IrianisADF +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 +k0 calibri Calibri +k1 cambria Cambria +k2 candara Candara +k3 consolas Consolas +k4 constant Constantia +k5 corbel Corbel +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 +lm lmodern LatinModern +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 @r{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 +ny nyala Nyala +nz neuzeits NeuzeitS +o0 oldreadf OldDreadfulNo7 +o1 oranda Oranda +o2 orbitb OrbitB +o3 colonna Colonna +o4 oceansan OceanSans +o5 comic Comic +o6 colombine Colombine l:ColombineLT +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 u:Classico +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 @r{pi fonts---see text and @file{*.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 +rd romande RomandeADF +re requiem Requiem +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 +s9 segoescr SegoeScript +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 @r{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 +ts thesansm TheSansMono +tu doulos SILDoulos TeXToulouse +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 +v1 venturissans VenturisSansADF +v2 venturis2 VenturisADFNo2 +v3 venturissans2 VenturisSansADFNo2 +va activa Activa +vc vectora Vectora +vd vandijck VanDijck +ve veraseri VeraSerif +vg visigoth Visigoth +vi victoria Victoria +vj veljovic Veljovic +vl versaill Versailles +vm veramono VeraSansMono +vn verdana Verdana +vo venturisold VenturisOldADF +vr vagrnd VAGRounded +vs verasans VeraSans +vt venturis VenturisADF +vv viva Viva +w0 weddingt WeddingT +w1 wiesbswi WiesbadenSwing +w9 wastrel Wastrel +wb walbaum Walbaum +wc snowcap SnowCap +wd weideman Weidemann +wg wlklgth WilhelmKlingsporGotisch +wh wendy Wendy +wi wingding Wingdings +wk wilke Wilke +wn windsor Windsor +wp warnockp WarnockPro +wr wittenbe WitternbergerFrakt +ws weiss Weiss +wt watertit WatersTitling +ww willow Willow +xc eccentri Eccentric +xl linuxlib LinuxLibertine +xp exponto ExPonto +yg centuryg CenturyGothic +yh strayhor Strayhorn +ym stymie Stymie +ys goudysan GoudySans +za zantiqua ZAntiqua l:ZapfRenaisSH l:ZapfRenaisSB l:ZapfRenSwaSH +zc zapfchan ZapfChancery m:ZapfChanceryPS u:URWChanceryL +zd zapfding ZapfDingbats m:ZapfDingbatsPS u:Dingbats +zf zapfino Zapfino l:LinotypeZapfino-{One,Two,Three,Four,Ligature,Ornaments} +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 @r{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 + 2 proportional digits, not tabular + obsolete [3=>7f] Fraction + obsolete [4 fax; now typeface `lx', Lucida Fax] + 5 escape for (presently) phonetic encodings + 6 escape for (mostly) 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 lc only, or 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 underline or unslanted italic + v MathExtension + w Script Handwritten Swash Calligraphy Cursive Tango Ligature + 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 + 6g LGR Greek font 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 + 8g groff + 8i TS0 Intersection of TS1/Adobe Standard + 8m Macintosh standard encoding + 8n LM1 Textures + 8q encqxoosix QX, from GUST + 8r TeXBase1Encoding (*note 8r::) + 8t ECEncoding CorkEncoding (*note ec::), aka tex256.enc + 8u XT2Encoding cmtt + Latin 2, see `xl2.enc' + 8v TeXVietnamese T5 + 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 + semiextended, 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 Semicondensed + 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 + y Semiexpanded + + +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 to 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: General index, 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'. + + A tutorial on character code issues in general is available at +`http://www.cs.tut.fi/~jkorpela/chars.html'. + + 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: + +* 6w:: CP-1251 (Cyrillic). +* 8a:: Adobe standard. +* 8r:: TeX base. +* dvips:: Dvips. +* ec:: EC (aka COrk, TeX Latin 1, tex256). +* groff:: 8g. +* 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: 6w, Next: 8a, Up: Encodings + +B.1 `6w.enc': Cyrillic CP-1251 +============================== + +% @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: 8a, Next: 8r, Prev: 6w, Up: Encodings + +B.2 `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: dvips, Prev: 8a, Up: Encodings + +B.3 `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 = "27nov06", +% 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 +% 0xB0 + /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: dvips, Next: ec, Prev: 8r, 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: ec, Next: groff, Prev: dvips, Up: Encodings + +B.5 `ec.enc': Cork encoding +=========================== + +% @@psencodingfile@{ +% date = "24feb10", +% filename = "ec.enc", +% email = "tex-fonts@@tug.org", +% docstring = "This is the EC (aka Cork aka T1) encoding vector +% for 8-bit fonts to be used with TeX." +% @} +% +% The original paper can be found on +% https://www.tug.org/TUGboat/Articles/tb11-4/tb30ferguson.pdf +% +% Names of the glyphs try to comply with: +% Adobe Glyph List For New Fonts, ver. 1.6, 30 Januaury 2006 +% http://partners.adobe.com/public/developer/en/opentype/aglfn13.txt +% but some exceptions are listed below. +% +% The following characters are not present in Unicode: +% - /perthousandzero = used to compose /perthousand, /pertenthousand, ... out of /percent + this character +% - Germandbls = now there is a related character in Unicode, +% U+1E9E - LATIN CAPITAL LETTER SHARP S +% but probably /S_S ligature name should be used instead +% +% The following two characters have different Unicode mappings than on the AGL: +% - /tcedilla = U+0163 - LATIN SMALL LETTER T WITH CEDILLA +% according to AGL it should be /tcommaaccent +% - /Tcedilla = U+0162 - LATIN CAPITAL LETTER T WITH CEDILLA +% according to AGL it should be /Tcommaaccent +% But having /scedilla and /tcommaaccent mixed is even more ugly. +% +% The following characters are not present on the AGL: +% - /dotlessj = U+0237 - LATIN SMALL LETTER DOTLESS J +% - /cwm = U+200B - ZERO WIDTH SPACE +% - /visiblespace = U+2423 - OPEN BOX +% and should probably better be labeled with uniXXXX notation +% (though hardly any font has those glyphs anyway). +% +% The following ligatures are deprecated by recent AGL: +% - /ff, /fi, /fl, /ffi, /ffl = /f_i and similar should have been used instead +% +% Hyphen character: +% There are two character named "hyphen". The original article explains +% the background of this decision (if one wanted to use a different +% hyphenation character and still be able to use the dash). So the first +% character should serve as "hyphen char" and the other one as "dash" in +% compound words. The character 0x2D is supposed to be the hyphen char, +% but since there used to be two characters of the same name in this +% file for some time, the tools like afmtotfm have been confused and +% remapped the hyphen char to 0x7F automatically. After the second +% character's name was changed, hyphenation characters in existing +% tfm fonts (generated with the old ec.enc) have disappeared, so the +% second character has been renamed back to "hyphen". Anyone generating +% tfm fonts is strongly encouraged to make a copy of this file, rename +% it and change glyph names as required for their font. +% +% Other remarks: +% - /Eth = U+00D0 - LATIN CAPITAL LETTER ETH +% must also be used as /Dcroat +% U+0110 - LATIN CAPITAL LETTER D WITH STROKE +% +% Misleading names and shapes of letters (that lead to different names in past) +% - /lcaron = U+013E - LATIN SMALL LETTER L WITH CARON +% /lquoteright +% - /Lcaron = U+013D - LATIN CAPITAL LETTER L WITH CARON +% /Lquoteright +% - /dcaron = U+010F - LATIN SMALL LETTER D WITH CARON +% /dquoteright +% - /tcaron = U+0165 - LATIN SMALL LETTER T WITH CARON +% /tquoteright +% - /dcroat = U+0111 - LATIN SMALL LETTER D WITH STROKE +% /dbar, /dmacron +% +% - /cwm - /bom, /zerowidthnobreakspace +% - /underscore - /underline +% - /hyphen.alt - /sfthyphen, /hyphen, /dash +% +% +% Turkish & Romanian +% -------------------- +% EC encoding has been defined to include /tcedilla and /scedilla. +% For Turkish one needs /scedilla, while for Romanian one would need +% "t with comma below" (/tcommaaccent) and "s with comma below" (/scommaaccent). +% "t with cedilla" in not used in any language except in inferior +% Romanian typography that can use cedillas instead of commas below. +% AGL has a strange mapping as well. +% +% Without adding an additional character, it is impossible to support both +% languages at the same time, so EC is not really best choice for Romanians, +% even though it can be "misused" if one replaces both /scedilla and /tcedilla +% with /scommaaccent and /tcommaaccent. +% +% Characters that have been renamed in July 2008: +% 0x18 /zeroinferior -> /perthousandzero +% 0x20 U+2423 /visualspace -> /visiblespace (if font doesn't have it, use /space) +% 0x8D U+014A /Ng -> /Eng +% 0x9E U+0111 /dbar -> /dcroat +% 0xAD U+014B /ng -> /eng +% 0xB4 U+0165 /tquoteright -> /tcaron +% +% Although these ligatures and kerns are somewhat questionable to have +% in an encoding file, they've been here forever, and they are +% traditional in the TeX world, so we preserve them. +% +% 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 blow away 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 ; +% +/ECEncoding [ % now 256 chars follow +/grave % 0x00 U+0060 +/acute % 0x01 U+00B4 +/circumflex % 0x02 U+02C6 +/tilde % 0x03 U+02DC +/dieresis % 0x04 U+00A8 +/hungarumlaut % 0x05 U+02DD +/ring % 0x06 U+02DA +/caron % 0x07 U+02C7 +/breve % 0x08 U+02D8 +/macron % 0x09 U+00AF +/dotaccent % 0x0A U+02D9 +/cedilla % 0x0B U+00B8 +/ogonek % 0x0C U+02DB +/quotesinglbase % 0x0D U+201A +/guilsinglleft % 0x0E U+2039 +/guilsinglright % 0x0F U+203A +/quotedblleft % 0x10 U+201C +/quotedblright % 0x11 U+201D +/quotedblbase % 0x12 U+201E +/guillemotleft % 0x13 U+00AB +/guillemotright % 0x14 U+00BB +/endash % 0x15 U+2013 +/emdash % 0x16 U+2014 +/cwm % 0x17 U+200B +/perthousandzero % 0x18 ______ +/dotlessi % 0x19 U+0131 +/dotlessj % 0x1A U+0237 +/ff % 0x1B U+FB00 +/fi % 0x1C U+FB01 +/fl % 0x1D U+FB02 +/ffi % 0x1E U+FB03 +/ffl % 0x1F U+FB04 +/visiblespace % 0x20 U+2423 +/exclam % 0x21 +/quotedbl % 0x22 +/numbersign % 0x23 +/dollar % 0x24 +/percent % 0x25 +/ampersand % 0x26 +/quoteright % 0x27 U+2019 +/parenleft % 0x28 +/parenright % 0x29 +/asterisk % 0x2A +/plus % 0x2B +/comma % 0x2C +/hyphen % 0x2D +/period % 0x2E +/slash % 0x2F +/zero % 0x30 +/one % 0x31 +/two % 0x32 +/three % 0x33 +/four % 0x34 +/five % 0x35 +/six % 0x36 +/seven % 0x37 +/eight % 0x38 +/nine % 0x39 +/colon % 0x3A +/semicolon % 0x3B +/less % 0x3C +/equal % 0x3D +/greater % 0x3E +/question % 0x3F +/at % 0x40 +/A % 0x41 +/B % 0x42 +/C % 0x43 +/D % 0x44 +/E % 0x45 +/F % 0x46 +/G % 0x47 +/H % 0x48 +/I % 0x49 +/J % 0x4A +/K % 0x4B +/L % 0x4C +/M % 0x4D +/N % 0x4E +/O % 0x4F +/P % 0x50 +/Q % 0x51 +/R % 0x52 +/S % 0x53 +/T % 0x54 +/U % 0x55 +/V % 0x56 +/W % 0x57 +/X % 0x58 +/Y % 0x59 +/Z % 0x5A +/bracketleft % 0x5B +/backslash % 0x5C +/bracketright % 0x5D +/asciicircum % 0x5E +/underscore % 0x5F +/quoteleft % 0x60 U+2018 +/a % 0x61 +/b % 0x62 +/c % 0x63 +/d % 0x64 +/e % 0x65 +/f % 0x66 +/g % 0x67 +/h % 0x68 +/i % 0x69 +/j % 0x6A +/k % 0x6B +/l % 0x6C +/m % 0x6D +/n % 0x6E +/o % 0x6F +/p % 0x70 +/q % 0x71 +/r % 0x72 +/s % 0x73 +/t % 0x74 +/u % 0x75 +/v % 0x76 +/w % 0x77 +/x % 0x78 +/y % 0x79 +/z % 0x7A +/braceleft % 0x7B +/bar % 0x7C +/braceright % 0x7D +/asciitilde % 0x7E +/hyphen % 0x7F U+002D (explicit "hyphen char") +/Abreve % 0x80 U+0102 +/Aogonek % 0x81 U+0104 +/Cacute % 0x82 U+0106 +/Ccaron % 0x83 U+010C +/Dcaron % 0x84 U+010E +/Ecaron % 0x85 U+011A +/Eogonek % 0x86 U+0118 +/Gbreve % 0x87 U+011E +/Lacute % 0x88 U+0139 +/Lcaron % 0x89 U+013D +/Lslash % 0x8A U+0141 +/Nacute % 0x8B U+0143 +/Ncaron % 0x8C U+0147 +/Eng % 0x8D U+014A +/Ohungarumlaut % 0x8E U+0150 +/Racute % 0x8F U+0154 +/Rcaron % 0x90 U+0158 +/Sacute % 0x91 U+015A +/Scaron % 0x92 U+0160 +/Scedilla % 0x93 U+015E +/Tcaron % 0x94 U+0164 +/Tcedilla % 0x95 U+0162 +/Uhungarumlaut % 0x96 U+0170 +/Uring % 0x97 U+016E +/Ydieresis % 0x98 U+0178 +/Zacute % 0x99 U+0179 +/Zcaron % 0x9A U+017D +/Zdotaccent % 0x9B U+017B +/IJ % 0x9C U+0132 +/Idotaccent % 0x9D U+0130 +/dcroat % 0x9E U+0111 +/section % 0x9F U+00A7 +/abreve % 0xA0 U+0103 +/aogonek % 0xA1 U+0105 +/cacute % 0xA2 U+0107 +/ccaron % 0xA3 U+010D +/dcaron % 0xA4 U+010F +/ecaron % 0xA5 U+011B +/eogonek % 0xA6 U+0119 +/gbreve % 0xA7 U+011F +/lacute % 0xA8 U+013A +/lcaron % 0xA9 U+013E +/lslash % 0xAA U+0142 +/nacute % 0xAB U+0144 +/ncaron % 0xAC U+0148 +/eng % 0xAD U+014B +/ohungarumlaut % 0xAE U+0151 +/racute % 0xAF U+0155 +/rcaron % 0xB0 U+0159 +/sacute % 0xB1 U+015B +/scaron % 0xB2 U+0161 +/scedilla % 0xB3 U+015F +/tcaron % 0xB4 U+0165 +/tcedilla % 0xB5 U+0163 +/uhungarumlaut % 0xB6 U+0171 +/uring % 0xB7 U+016F +/ydieresis % 0xB8 U+00FF +/zacute % 0xB9 U+017A +/zcaron % 0xBA U+017E +/zdotaccent % 0xBB U+017C +/ij % 0xBC U+0133 +/exclamdown % 0xBD U+00A1 +/questiondown % 0xBE U+00BF +/sterling % 0xBF U+00A3 +/Agrave % 0xC0 +/Aacute % 0xC1 +/Acircumflex % 0xC2 +/Atilde % 0xC3 +/Adieresis % 0xC4 +/Aring % 0xC5 +/AE % 0xC6 +/Ccedilla % 0xC7 +/Egrave % 0xC8 +/Eacute % 0xC9 +/Ecircumflex % 0xCA +/Edieresis % 0xCB +/Igrave % 0xCC +/Iacute % 0xCD +/Icircumflex % 0xCE +/Idieresis % 0xCF +/Eth % 0xD0 +/Ntilde % 0xD1 +/Ograve % 0xD2 +/Oacute % 0xD3 +/Ocircumflex % 0xD4 +/Otilde % 0xD5 +/Odieresis % 0xD6 +/OE % 0xD7 U+0152 +/Oslash % 0xD8 +/Ugrave % 0xD9 +/Uacute % 0xDA +/Ucircumflex % 0xDB +/Udieresis % 0xDC +/Yacute % 0xDD +/Thorn % 0xDE +/Germandbls % 0xDF (U+1E9E, /S_S) +/agrave % 0xE0 +/aacute % 0xE1 +/acircumflex % 0xE2 +/atilde % 0xE3 +/adieresis % 0xE4 +/aring % 0xE5 +/ae % 0xE6 +/ccedilla % 0xE7 +/egrave % 0xE8 +/eacute % 0xE9 +/ecircumflex % 0xEA +/edieresis % 0xEB +/igrave % 0xEC +/iacute % 0xED +/icircumflex % 0xEE +/idieresis % 0xEF +/eth % 0xF0 +/ntilde % 0xF1 +/ograve % 0xF2 +/oacute % 0xF3 +/ocircumflex % 0xF4 +/otilde % 0xF5 +/odieresis % 0xF6 +/oe % 0xF7 U+0153 +/oslash % 0xF8 +/ugrave % 0xF9 +/uacute % 0xFA +/ucircumflex % 0xFB +/udieresis % 0xFC +/yacute % 0xFD +/thorn % 0xFE +/germandbls % 0xFF U+00DF +] def + + +File: fontname.info, Node: groff, Next: t5, Prev: ec, Up: Encodings + +B.6 `groff.enc': groff encoding +=============================== + +%!PS-Adobe-3.0 Resource-Encoding +% +% @psencodingfile{ +% author = "Werner Lemberg, Michail Vidiassov", +% version = "1.0", +% date = "2006-Feb-03", +% filename = "groff.enc", +% license = "public domain", +% email = "groff@gnu.org", +% docstring = "Groff default text encoding. Used with MetaPost." +% } + +%%BeginResource: encoding groffEncoding +/groffEncoding [ +% 0x00 | 0 + /asciicircum /asciitilde /Scaron /Zcaron + /scaron /zcaron /Ydieresis /trademark + /quotesingle /Euro /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef +% 0x10 | 16 + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef + /.notdef /.notdef /.notdef /.notdef +% 0x20 | 32 + /space /exclam /quotedbl /numbersign + /dollar /percent /ampersand /quoteright + /parenleft /parenright /asterisk /plus + /comma /hyphen /period /slash +% 0x30 | 48 + /zero /one /two /three + /four /five /six /seven + /eight /nine /colon /semicolon + /less /equal /greater /question +% 0x40 | 64 + /at /A /B /C + /D /E /F /G + /H /I /J /K + /L /M /N /O +% 0x50 | 80 + /P /Q /R /S + /T /U /V /W + /X /Y /Z /bracketleft + /backslash /bracketright /circumflex /underscore +% 0x60 | 96 + /quoteleft /a /b /c + /d /e /f /g + /h /i /j /k + /l /m /n /o +% 0x70 | 112 + /p /q /r /s + /t /u /v /w + /x /y /z /braceleft + /bar /braceright /tilde /.notdef +% 0x80 | 128 + /quotesinglbase /guillemotleft /guillemotright /bullet + /florin /fraction /perthousand /dagger + /daggerdbl /endash /emdash /ff + /fi /fl /ffi /ffl +% 0x90 | 144 + /dotlessi /dotlessj /grave /hungarumlaut + /dotaccent /breve /caron /ring + /ogonek /quotedblleft /quotedblright /oe + /lslash /quotedblbase /OE /Lslash +% 0xA0 | 160 + /.notdef /exclamdown /cent /sterling + /currency /yen /brokenbar /section + /dieresis /copyright /ordfeminine /guilsinglleft + /logicalnot /minus /registered /macron +% 0xB0 | 176 + /degree /plusminus /twosuperior /threesuperior + /acute /mu /paragraph /periodcentered + /cedilla /onesuperior /ordmasculine /guilsinglright + /onequarter /onehalf /threequarters /questiondown +% 0xC0 | 192 + /Agrave /Aacute /Acircumflex /Atilde + /Adieresis /Aring /AE /Ccedilla + /Egrave /Eacute /Ecircumflex /Edieresis + /Igrave /Iacute /Icircumflex /Idieresis +% 0xD0 | 208 + /Eth /Ntilde /Ograve /Oacute + /Ocircumflex /Otilde /Odieresis /multiply + /Oslash /Ugrave /Uacute /Ucircumflex + /Udieresis /Yacute /Thorn /germandbls +% 0xE0 | 224 + /agrave /aacute /acircumflex /atilde + /adieresis /aring /ae /ccedilla + /egrave /eacute /ecircumflex /edieresis + /igrave /iacute /icircumflex /idieresis +% 0xF0 | 240 + /eth /ntilde /ograve /oacute + /ocircumflex /otilde /odieresis /divide + /oslash /ugrave /uacute /ucircumflex + /udieresis /yacute /thorn /ydieresis +] def +%%EndResource + +% eof + + +File: fontname.info, Node: t5, Next: qx, Prev: groff, Up: Encodings + +B.7 `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.8 `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.9 `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.10 `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.11 `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.12 `texnansi.enc' +=================== + +From Y&Y. + +% @psencodingfile{ +% date = "22apr09", +% filename = "texnansi.enc", +% email = "tex-fonts@tug.org", +% author = "Y&Y, Inc.", +% version = "1.1", +% codetable = "ISO/ASCII", +% docstring = "texnansi (aka LY1) encoding vector for Type 1 fonts to +% be used with TeX, following ASCII and Windows ANSI." +% } +% +% 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 2009 April 20 with doc changes only (Uni20AC -> uni20ac). +% Revised 2009 March 9 with doc changes only. +% 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. +% emacs-page +% +/TeXnANSIEncoding [ % now 256 chars follow +/.notdef % 0x00 0 +/Euro % 0x01 1 /uni20AC +/.notdef % 0x02 2 +/.notdef % 0x03 3 +/fraction % 0x04 4 +/dotaccent % 0x05 5 +/hungarumlaut % 0x06 6 +/ogonek % 0x07 7 +/fl % 0x08 8 +/.notdef % 0x09 9 /fraction at 4, backward compatibility only +/cwm % 0x0A 10 not used, except boundary char internally +/ff % 0x0B 11 +/fi % 0x0C 12 +/.notdef % 0x0D 13 /fl at 8, backward compatibility only +/ffi % 0x0E 14 +/ffl % 0x0F 15 +/dotlessi % 0x10 16 +/dotlessj % 0x11 17 +/grave % 0x12 18 +/acute % 0x13 19 +/caron % 0x14 20 +/breve % 0x15 21 +/macron % 0x16 22 +/ring % 0x17 23 +/cedilla % 0x18 24 +/germandbls % 0x19 25 +/ae % 0x1A 26 +/oe % 0x1B 27 +/oslash % 0x1C 28 +/AE % 0x1D 29 +/OE % 0x1E 30 +/Oslash % 0x1F 31 +/space % 0x20 32 /suppress in TeX text +/exclam % 0x21 33 +/quotedbl % 0x22 34 /quotedblright in TeX text +/numbersign % 0x23 35 +/dollar % 0x24 36 +/percent % 0x25 37 +/ampersand % 0x26 38 +/quoteright % 0x27 39 /quotesingle in ANSI +/parenleft % 0x28 40 +/parenright % 0x29 41 +/asterisk % 0x2A 42 +/plus % 0x2B 43 +/comma % 0x2C 44 +/hyphen % 0x2D 45 +/period % 0x2E 46 +/slash % 0x2F 47 +/zero % 0x30 48 +/one % 0x31 49 +/two % 0x32 50 +/three % 0x33 51 +/four % 0x34 52 +/five % 0x35 53 +/six % 0x36 54 +/seven % 0x37 55 +/eight % 0x38 56 +/nine % 0x39 57 +/colon % 0x3A 58 +/semicolon % 0x3B 59 +/less % 0x3C 60 /exclamdown in Tex text +/equal % 0x3D 61 +/greater % 0x3E 62 /questiondown in TeX text +/question % 0x3F 63 +/at % 0x40 64 +/A % 0x41 65 +/B % 0x42 66 +/C % 0x43 67 +/D % 0x44 68 +/E % 0x45 69 +/F % 0x46 70 +/G % 0x47 71 +/H % 0x48 72 +/I % 0x49 73 +/J % 0x4A 74 +/K % 0x4B 75 +/L % 0x4C 76 +/M % 0x4D 77 +/N % 0x4E 78 +/O % 0x4F 79 +/P % 0x50 80 +/Q % 0x51 81 +/R % 0x52 82 +/S % 0x53 83 +/T % 0x54 84 +/U % 0x55 85 +/V % 0x56 86 +/W % 0x57 87 +/X % 0x58 88 +/Y % 0x59 89 +/Z % 0x5A 90 +/bracketleft % 0x5B 91 +/backslash % 0x5C 92 /quotedblleft in TeX text +/bracketright % 0x5D 93 +/circumflex % 0x5E 94 /asciicircum in ASCII +/underscore % 0x5F 95 /dotaccent in TeX text +/quoteleft % 0x60 96 /grave accent in ANSI +/a % 0x61 97 +/b % 0x62 98 +/c % 0x63 99 +/d % 0x64 100 +/e % 0x65 101 +/f % 0x66 102 +/g % 0x67 103 +/h % 0x68 104 +/i % 0x69 105 +/j % 0x6A 106 +/k % 0x6B 107 +/l % 0x6C 108 +/m % 0x6D 109 +/n % 0x6E 110 +/o % 0x6F 111 +/p % 0x70 112 +/q % 0x71 113 +/r % 0x72 114 +/s % 0x73 115 +/t % 0x74 116 +/u % 0x75 117 +/v % 0x76 118 +/w % 0x77 119 +/x % 0x78 120 +/y % 0x79 121 +/z % 0x7A 122 +/braceleft % 0x7B 123 /endash in TeX text +/bar % 0x7C 124 /emdash in TeX test +/braceright % 0x7D 125 /hungarumlaut in TeX text +/tilde % 0x7E 126 /asciitilde in ASCII +/dieresis % 0x7F 127 also at 168 +/Lslash % 0x80 128 position is unfortunate, but too late to fix +/quotesingle % 0x81 129 +/quotesinglbase % 0x82 130 +/florin % 0x83 131 +/quotedblbase % 0x84 132 +/ellipsis % 0x85 133 +/dagger % 0x86 134 +/daggerdbl % 0x87 135 +/circumflex % 0x88 136 +/perthousand % 0x89 137 +/Scaron % 0x8A 138 +/guilsinglleft % 0x8B 139 +/OE % 0x8C 140 +/Zcaron % 0x8D 141 +/asciicircum % 0x8E 142 +/minus % 0x8F 143 +/lslash % 0x90 144 +/quoteleft % 0x91 145 +/quoteright % 0x92 146 +/quotedblleft % 0x93 147 +/quotedblright % 0x94 148 +/bullet % 0x95 149 +/endash % 0x96 150 +/emdash % 0x97 151 +/tilde % 0x98 152 +/trademark % 0x99 153 +/scaron % 0x9A 154 +/guilsinglright % 0x9B 155 +/oe % 0x9C 156 +/zcaron % 0x9D 157 +/asciitilde % 0x9E 158 +/Ydieresis % 0x9F 159 +/nbspace % 0xA0 160 no break space +/exclamdown % 0xA1 161 +/cent % 0xA2 162 +/sterling % 0xA3 163 +/currency % 0xA4 164 +/yen % 0xA5 165 +/brokenbar % 0xA6 166 +/section % 0xA7 167 +/dieresis % 0xA8 168 +/copyright % 0xA9 169 +/ordfeminine % 0xAA 170 +/guillemotleft % 0xAB 171 +/logicalnot % 0xAC 172 +/sfthyphen % 0xAD 173 /hyphen (hanging hyphen) +/registered % 0xAE 174 +/macron % 0xAF 175 +/degree % 0xB0 176 +/plusminus % 0xB1 177 +/twosuperior % 0xB2 178 +/threesuperior % 0xB3 179 +/acute % 0xB4 180 +/mu % 0xB5 181 +/paragraph % 0xB6 182 +/periodcentered % 0xB7 183 +/cedilla % 0xB8 184 +/onesuperior % 0xB9 185 +/ordmasculine % 0xBA 186 +/guillemotright % 0xBB 187 +/onequarter % 0xBC 188 +/onehalf % 0xBD 189 +/threequarters % 0xBE 190 +/questiondown % 0xBF 191 +/Agrave % 0xC0 192 +/Aacute % 0xC1 193 +/Acircumflex % 0xC2 194 +/Atilde % 0xC3 195 +/Adieresis % 0xC4 196 +/Aring % 0xC5 197 +/AE % 0xC6 198 +/Ccedilla % 0xC7 199 +/Egrave % 0xC8 200 +/Eacute % 0xC9 201 +/Ecircumflex % 0xCA 202 +/Edieresis % 0xCB 203 +/Igrave % 0xCC 204 +/Iacute % 0xCD 205 +/Icircumflex % 0xCE 206 +/Idieresis % 0xCF 207 +/Eth % 0xD0 208 +/Ntilde % 0xD1 209 +/Ograve % 0xD2 210 +/Oacute % 0xD3 211 +/Ocircumflex % 0xD4 212 +/Otilde % 0xD5 213 +/Odieresis % 0xD6 214 +/multiply % 0xD7 215 OE in T1 +/Oslash % 0xD8 216 +/Ugrave % 0xD9 217 +/Uacute % 0xDA 218 +/Ucircumflex % 0xDB 219 +/Udieresis % 0xDC 220 +/Yacute % 0xDD 221 +/Thorn % 0xDE 222 +/germandbls % 0xDF 223 +/agrave % 0xE0 224 +/aacute % 0xE1 225 +/acircumflex % 0xE2 226 +/atilde % 0xE3 227 +/adieresis % 0xE4 228 +/aring % 0xE5 229 +/ae % 0xE6 230 +/ccedilla % 0xE7 231 +/egrave % 0xE8 232 +/eacute % 0xE9 233 +/ecircumflex % 0xEA 234 +/edieresis % 0xEB 235 +/igrave % 0xEC 236 +/iacute % 0xED 237 +/icircumflex % 0xEE 238 +/idieresis % 0xEF 239 +/eth % 0xF0 240 +/ntilde % 0xF1 241 +/ograve % 0xF2 242 +/oacute % 0xF3 243 +/ocircumflex % 0xF4 244 +/otilde % 0xF5 245 +/odieresis % 0xF6 246 +/divide % 0xF7 247 oe in T1 +/oslash % 0xF8 248 +/ugrave % 0xF9 249 +/uacute % 0xFA 250 +/ucircumflex % 0xFB 251 +/udieresis % 0xFC 252 +/yacute % 0xFD 253 +/thorn % 0xFE 254 +/ydieresis % 0xFF 255 germandbls in T1 +] def + + +File: fontname.info, Node: texnansx, Next: xl2, Prev: texnansi, Up: Encodings + +B.13 `texnansx.enc' +=================== + +From Y&Y. `texnansi' without repeats. + +% @psencodingfile{ +% author = "Y&Y, Inc.", +% version = "1.3", +% date = "22apr09", +% filename = "texnansx.enc", +% email = "tex-fonts@tug.org", +% codetable = "ISO/ASCII", +% docstring = "Encoding for fonts in Adobe Type 1 format for use with TeX." +% } +% MODIFIED FOR AFM2TFM to avoid repeated encodings, namely these +% positions have become .notdef: +% +% 137/circumflex 141/OE 146/quoteleft 147/quoteright 153/tilde 157/oe +% 169/dieresis 176/macron 181/acute 185/cedilla 199/AE 217/Oslash +% 224/germandbls 231/ae 249/oslash +% +% 22apr09 document the precise differences from texnansi. +% 17aug08 change /Uni20AC (wrong capitalization of /Uni) to /Euro for +% consistency with other encodings. tex-live mail from Vasile Gaburici, +% 16 Aug 2008 20:44:08. +% +/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 +/.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.14 `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.15 `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: General index, Prev: Encodings, Up: Top + +General index +************* + + +* Menu: + +* 35 standard PostScript fonts: Standard PostScript fonts. + (line 6) +* 62.enc: 6w. (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) +* 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) +* character scaling, automatic: Widths. (line 13) +* compression: Widths. (line 6) +* contributors: History. (line 30) +* Cork encoding: ec. (line 6) +* CP-1251 encoding: 6w. (line 6) +* Cugley, Damian: History. (line 30) +* Cyrillic encoding: 6w. (line 6) +* Cyrillic encodings: Variants. (line 44) +* Cyrillic fonts: Variants. (line 86) +* design size specification: Filenames for fonts. (line 40) +* distribution: Introduction. (line 16) +* dtc.map: DTC fonts. (line 6) +* Dviljk translator: References. (line 26) +* Dvips encoding: dvips. (line 6) +* Dvips translator: References. (line 21) +* dvips.enc: dvips. (line 6) +* EC encoding: ec. (line 6) +* ec.enc: ec. (line 6) +* encoding files: Introduction. (line 16) +* encoding vectors: Encodings. (line 6) +* encoding, Dvips: dvips. (line 6) +* encoding, Groff: groff. (line 6) +* encoding, T5: t5. (line 6) +* encodings, Adobe standard: 8a. (line 6) +* encodings, Cork: ec. (line 6) +* encodings, Cyrillic CP-1251: 6w. (line 6) +* encodings, EC: ec. (line 6) +* encodings, qx: qx. (line 6) +* encodings, TeX base: 8r. (line 6) +* encodings, TeX Latin 1: ec. (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) +* 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 scaling: Filenames for fonts. (line 40) +* font_coding_scheme: Long naming scheme. (line 30) +* Fontinst distribution: References. (line 17) +* FontName: Typefaces. (line 49) +* fontname mapping file: Name mapping file. (line 6) +* Fontname version 2: History. (line 14) +* foundries: Suppliers. (line 6) +* Garamond, versions of: Typefaces. (line 16) +* Greek fonts: Variants. (line 86) +* Groff encoding: groff. (line 6) +* groff.enc: groff. (line 6) +* hexadecimal design size: Filenames for fonts. (line 40) +* history: History. (line 6) +* Horn, Berthol: History. (line 30) +* individual font designers: Suppliers. (line 19) +* informal variant: Variants. (line 102) +* introduction: Introduction. (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) +* letterspacing: Variants. (line 17) +* ligatures and encodings: Variants. (line 53) +* 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) +* 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) +* multiple variants: Variants. (line 9) +* nonstandard names, escape for: Suppliers. (line 31) +* phonetic encodings: Variants. (line 44) +* pi fonts: Typefaces. (line 42) +* PostScript encoding vectors: Encodings. (line 6) +* PostScript fonts, standard: Standard PostScript fonts. + (line 6) +* 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) +* reporting bugs: Introduction. (line 12) +* Rivlin, Jean: History. (line 30) +* Rokicki, Tom: History. (line 30) +* 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 29) +* standard PostScript fonts: Standard PostScript fonts. + (line 6) +* Stone Informal: Variants. (line 102) +* 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 29) +* TeX base encoding: 8r. (line 6) +* TeX Directory Structure standard: References. (line 8) +* TeX Latin 1 encoding: ec. (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) +* type foundries: Suppliers. (line 6) +* typeface.map: Typefaces. (line 49) +* typefaces: Typefaces. (line 6) +* typewriter variant: Variants. (line 117) +* unattributed fonts: Suppliers. (line 19) +* 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) +* 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: Top260 +Node: Introduction1969 +Node: History3036 +Node: References4851 +Node: Filenames for fonts6171 +Node: Suppliers7913 +Node: Typefaces10494 +Node: Weights31558 +Node: Variants32371 +Node: Widths42651 +Node: Long names44059 +Node: Name mapping file44618 +Node: Long naming scheme46199 +Node: Font name lists47955 +Node: Standard PostScript fonts48414 +Node: Adobe fonts49876 +Node: Apple fonts239856 +Node: Bitstream fonts240190 +Node: DTC fonts300954 +Node: ITC fonts301871 +Node: Linotype fonts347511 +Node: Monotype fonts603537 +Node: URW fonts690094 +Node: Encodings693293 +Node: 6w695351 +Node: 8a697836 +Node: 8r700346 +Node: dvips705330 +Node: ec709136 +Node: groff721911 +Node: t5726845 +Node: qx734796 +Node: texmext776268 +Node: texmsym780124 +Node: texmital783307 +Node: texnansi786041 +Node: texnansx798460 +Node: xl2803809 +Node: xt2808796 +Node: General index813423 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/kpathsea.info b/Master/texmf-dist/doc/info/kpathsea.info new file mode 100644 index 00000000000..54e179d0f3d --- /dev/null +++ b/Master/texmf-dist/doc/info/kpathsea.info @@ -0,0 +1,4763 @@ +This is ../../../../texk/kpathsea/doc/kpathsea.info, produced by +makeinfo version 4.13 from ../../../../texk/kpathsea/doc/kpathsea.texi. + +This file documents the Kpathsea library for path searching. + + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +2005, 2007, 2008, 2009, 2010, 2011, 2012 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 TeX Users Group. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* Kpathsea: (kpathsea). File lookup along search paths. +* kpsewhich: (kpathsea)Invoking kpsewhich. TeX file searching. +* mktexfmt: (kpathsea)mktex scripts. Format (fmt/base/mem) generation. +* 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. +END-INFO-DIR-ENTRY + + +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 6.1.0, released in +May 2012. + +* 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 6.1.0 of the Kpathsea library, +released in May 2012. + + 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 accompanying files 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, thanks!). 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. See `http://tug.org' for information. + +* 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. + + +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.) + + +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::). These are collectively +known as "`mktex' scripts", since most of them are named `mktex...'. + + For example, this is 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. +Building all fonts in advance is therefore impractical, if not +impossible. + + It is also useful for the TeX `.fmt' (and Metafont `.base' and +Metapost `.mem' files, *note Memory dumps: (Web2c)Memory dumps.), where +pre-generating every format consumes a lot of both time and space. + + 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: + +* config: mktex configuration. +* names: mktex script names. +* args: mktex script arguments. + + +File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts + +2.2.9.1 `mktex' configuration +............................. + +The list of file types and program names that can run an external +program to create missing files is listed in the next section. 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-mktexfmt-default + --without-mktexmf-default + --without-mktexocp-default + --without-mktexofm-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::). + + `mktexfmt' reads a file `fmtutil.cnf', typically located in +`texmf/web2c/' to glean its configuration information. The rest of the +files and features in this section are primarily intended for the font +generation scripts. + + 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 of +the file types which support runtime generation. + +`mktexfmt' + (`.fmt', `.base', `.mem') TeX/Metafont/MetaPost formats. This + script is also named `fmtutil', and reads `fmtutil.cnf' for + configuration information. + +`mktexmf' + (`.mf') Metafont input files. + +`mkocp' + (`.ocp') Omega compiled process files. + +`mkofm' + (`.ofm') Omega font metric files. + +`mktexpk' + (`pk') Glyph fonts. + +`mktextex' + (`.tex') TeX input files (disabled by default). + +`mktextfm' + (`.tfm') TFM files. + +These names can be 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 "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 13 June 2010. +Also available as `http://www.tug.org/unixtex.ftp'. Email +<tex-k@tug.org> with comments or questions. + + The principal free TeX distribution for Unix-like systems is TeX +Live, on the web at `http://tug.org/texlive'. The pages there describe +many ways to acquire TeX, over the Internet or on physical media, both +the sources and precompiled binaries for many systems, either +standalone or as part of various operating system distributions. + + Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a +separate packages. Their sources are now maintained as part of TeX +Live. + + The host ftp.cs.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 a +larger package. In any case, that ftp site is not the canonical source +for anything except what was created as part of Stanford TeX project, +so do not rely on the other files available there 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@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@tug.org>. + + 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. + + * 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@tug.org>. To join, email <tex-k-request@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 are looking for general TeX help, such as how to use LaTeX, +please use the mailing list <texhax@tug.org> mailing list +(`http://lists.tug.org/texhax') 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 instance variable `kpse->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. + + In addition to this Kpathsea-specific logging, `pdftex' provides an +option `-recorder' to write the names of all files accessed during a +run to the file `BASEFILE.fls'. + + Finally, most systems provide a general tool to output each system +call, thus including opening and closing files. It might be named +`strace', `truss', `struss', or something else. + + +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 +machines 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 might very +well 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 not 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 any read permission (for +example, a `lost+found' directory). 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'. + + If Kpathsea cannot find any `texmf.cnf' file, it reports a warning +including all the directories it checked. If you don't want to see +this warning, set the environment variable `KPATHSEA_WARNING' to the +single character `0' (zero, not oh). + + 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 `%', either at the beginning of a line or + preceded by whitespace, and continue to the end of the line. That + is, as with most shells, a `%' in the "middle" of a value does not + start a comment. Examples: + + % this is a comment + var = a%b % but the value of var will be "a%b". + + * 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,bat,cmd,...}'. Most + notably, this allows different flavors of TeX to have different + search paths. + + * 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 Windows. + + * 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 + + 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. +However, there seemed little advantage in 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. On Windows, +the environment variable `USERPROFILE' is checked instead of `HOME'. + + 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 instead 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'. + + +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 `ST_NLINK_TRICK' 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, in practice searching +each possible directory in typical TeX installations takes an +excessively long time. + + Therefore, Kpathsea can use an externally-built "filename 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. +* Specially-recognized files:: Default formats for texmf.cnf, etc. +* Auxiliary tasks:: Path and variable expansion. +* Standard options:: --help and --version. + + +File: kpathsea.info, Node: Path searching options, Next: Specially-recognized files, 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. + + Various options alter the path searching behavior: + +`--all' + Report all matches found, one per line. By default, if there is + more than one match, just one will be reported (chosen effectively + at random). + +`--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. + + In particular, since the memory dump files (`.fmt'/`.base'/`.mem') + are now stored in subdirectories named for the engine (`tex', + `pdftex', `xetex', etc.), you must specify an engine name in order + to find them. For example, `cont-en.fmt' typically exists for both + `pdftex' and `xetex'. With the default path settings, you can use + `--engine=/' to look for any dump file, regardless of engine; if a + dump file exists for more than one engine, it's indeterminate + which one is returned. (The `/' ends up specifying a normal + recursive search along the path where the dumps are stored, namely + `$TEXMF/web2c{/$engine,}'.) + +`--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. + + The strings in parentheses are abbreviations recognized only by + `kpsewhich' (not the underlying library calls). They are provided + when it would otherwise require an argument containing a space to + specify the format, to simplify quoting of calls from shells. + + gf: gf + pk: pk + bitmap font (bitmapfont): + tfm: .tfm + afm: .afm + base: .base + bib: .bib + bst: .bst + cnf: .cnf + ls-R: ls-R ls-r + fmt: .fmt + map: .map + mem: .mem + mf: .mf + mfpool: .pool + mft: .mft + mp: .mp + mppool: .pool + MetaPost support (mpsupport): + ocp: .ocp + ofm: .ofm .tfm + opl: .opl .pl + otp: .otp + ovf: .ovf .vf + ovp: .ovp .vpl + graphic/figure: .eps .epsi + tex: .tex .sty .cls .fd .aux .bbl .def .clo .ldf + TeX system documentation (doc): + texpool: .pool + TeX system sources (source): .dtx .ins + PostScript header: .pro + Troff fonts (trofffont): + type1 fonts: .pfa .pfb + vf: .vf + dvips config (dvipsconfig): + ist: .ist + truetype fonts: .ttf .ttc .TTF .TTC .dfont + type42 fonts: .t42 .T42 + web2c files (web2c): + other text files (othertext): + other binary files (otherbin): + misc fonts (miscfont): + web: .web .ch + cweb: .w .web .ch + enc files: .enc + cmap files (cmap): + subfont definition files: .sfd + opentype fonts: .otf + pdftex config (pdftexconfig): + lig files: .lig + texmfscripts: + lua: .luc .luctex .texluc .lua .luatex .texlua + font feature files: .fea + cid maps: .cid .cidmap + mlbib: .mlbib .bib + mlbst: .mlbst .bst + clua: .dll .so + ris: .ris + bltxml: .bltxml + + 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. Usual + values for FILETYPE are `pk', `mf', `tex', and `tfm'. By default, + all are off in Kpsewhich, even if they are enabled for TeX. This + option implies setting `--must-exist'. *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 and running the `mktex' scripts. 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' and `--show-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::). + +`--safe-in-name=NAME' +`--safe-out-name=NAME' + Exit successfully if NAME is safe to open for reading or writing, + respectively, else unsuccessfully. No output is written. These + tests take account of the related Kpathsea configuration settings + (*note Calling sequence::). + +`--subdir=STRING' + Report only those matches whose directory part _ends_ with STRING + (compared literally, except case is ignored on a case-insensitive + operating system). For example, suppose there are two matches for + a given name: + + kpsewhich foo.sty + => /some/where/foo.sty + /another/place/foo.sty + + Then we can narrow the result to what we are interested in with + `--subdir': + + kpsewhich --subdir=where foo.sty + => /some/where/foo.sty + + kpsewhich --subdir=place foo.sty + => /another/place/foo.sty + + The string to match must be at the end of the directory part of the + match, and it is taken literally, with no pattern matching: + + kpsewhich --subdir=another foo.sty + => + + The string to match may cross directory components: + + kpsewhich --subdir=some/where foo.sty + => /some/where/foo.sty + + `--subdir' implies `--all'; if there is more than one match, they + will all be reported (in our example, both `where' and `place' end + in `e'): + + kpsewhich --subdir=e + => /some/where/foo.sty + /another/place/foo.sty + + Because of the above rules, the presence of a leading `/' is + important, since it "anchors" the match to a full component name: + + kpsewhich --subdir=/lace foo.sty + => + + However, a trailing `/' is immaterial (and ignored), since the + match always takes place at the end of the directory part: + + kpsewhich --subdir=lace/ foo.sty + => /another/place/foo.sty + + The purpose of these rules is to make it convenient to find results + only within a particular area of the tree. For instance, a given + script named `foo.lua' might exist within both + `texmf-dist/scripts/pkg1/' and `texmf-dist/scripts/pkg2/'. By + specifying, say, `--subdir=/pkg1', you can be sure of getting the + one you are interested in. + + We only match at the end because a site might happen to install TeX + in `/some/coincidental/pkg1/path/', and we wouldn't want to match + `texmf-dist/scripts/pkg2/' that when searching for `/pkg1'. + + + +File: kpathsea.info, Node: Specially-recognized files, Next: Auxiliary tasks, Prev: Path searching options, Up: Invoking kpsewhich + +3.5.2 Specially-recognized files for `kpsewhich' +------------------------------------------------ + +`kpsewhich' recognizes a few special filenames on the command line and +defaults to using the `known' file formats for them, merely to save the +time and trouble of specifying the format. This is only a feature of +`kpsewhich'; when using the Kpathsea library itself, none of these +special filenames are recognized, and it's still up to the caller to +specify the desired format. + + Here is the list of special filenames to `kpsewhich', along with +their corresponding format: + +`config.ps' + `dvips config' + +`dvipdfmx.cfg' + `other text files' + +`fmtutil.cnf' + `web2c files' + +`glyphlist.txt' + `map' + +`mktex.cnf' + `web2c files' + +`pdfglyphlist.txt' + `map' + +`pdftex.cfg' + `pdftex config' (although `pdftex.cfg' is not used any more; look + for the file `pdftexconfig.tex' instead.) + +`texmf.cnf' + `cnf' + +`XDvi' + `other text files' + + + A user-specified format will override the above defaults. + + Another useful configuration file in this regard is `tcfmgr.map', +found in `texmf/texconfig/tcfmgr.map', which records various +information about the above configuration files (among others). + + +File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Specially-recognized files, Up: Invoking kpsewhich + +3.5.3 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' outputs the value of VARIABLE, expanding + `$' (*note Variable expansion:: and `~' (*note Tilde expansion::) + constructs, but not performing other expansions. + + * `--expand-braces=STRING' outputs the variable and brace expansion + of STRING. *Note Path expansion::. + + * `--expand-var=STRING' outputs the variable and tilde 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, + with each element separated by the usual path separator on the + current system (`;' on Windows, `:' otherwise). This may be + useful to construct a custom search path for a format not + otherwise supported. To retrieve the search path for a format + that is already supported, see `--show-path', next. + + 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.4 Standard options +---------------------- + +Kpsewhich accepts the standard GNU options: + + * `--help' prints a help message on standard output and exits + successfully. + + * `--version' prints the Kpathsea version number and exits + successfully. + + +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, *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'. + +`font cid map' + (CJK mapping) `FONTCIDMAPS' suffix `.cid'. + +`font feature files' + (primarily for OpenType font features) `FONTFEATURES' suffix + `.fea'. + +`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' + +`mlbib' + (MlBibTeX bibliography source) `MLBIBINPUTS', `BIBINPUTS', + `TEXBIB'; suffixes `.mlbib', `.mlbib'. + +`mlbst' + (MlBibTeX style) `MLBSTINPUTS', `BSTINPUTS'; suffixes `.mlbst', + `.bst'. + +`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 + trees) `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' and `.TTF', + `.ttc' and `.TTC', `.dfont'. + +`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. Example: given `foo.bar', look for + `foo.bar.tex'. + + 2. Search for NAME, and if necessary for alternative names found in + the fontmaps. Example: given `foo.bar', we also look for + `foo.bar'. + + 3. If the file format defines a program to invoke to create missing + files, run it (*note mktex scripts::). + + The order in which we search for "suffixed" name (item 1) or the +"as-is" name (item 2) is controlled by the `try_std_extension_first' +configuration value. The default set in `texmf.cnf' is true, since +common suffixes are already recognized: `babel.sty' will only look for +`babel.sty', not `babel.sty.tex', regardless of this setting. + + When the suffix is unknown (e.g., `foo.bar'), both names are always +tried; the difference is the order in which they are tried. + + `try_std_extension_first' only affects names being looked up which +*already* have an extension. A name without an extension (e.g., `tex +story') will always have an extension added first. + + This algorithm is implemented in the function `kpathsea_find_file' +in the source file `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 `kpathsea_find_glyph' 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 calling `kpathsea_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 that 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. + + When looking at these program sources, you should know that previous +versions of the library had a different programming interface, to +support re-entrancy. In that interface the library function names were +prefixed with `kpse_' instead of `kpathsea_', and they did not need an +instance variable as first argument. This change was made in 2009. +Some of the programs mentioned above may still be using the previous +interface. + + 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 `kpathsea_new' to create a new library instance. This variable + must be passed as the first argument to all the following library + functions. The rest of this manual will be using `kpse' as a + placeholder for the name of this variable. + + 2. Call `kpathsea_set_program_name' with `argv[0]' as the second + argument; the third argument is a string or `NULL'. The third + argument is used by Kpathsea as the program name for the + `.PROGRAM' feature of config files (*note Config files::). If the + third argument is `NULL', the value of the second argument is + used. This function must be called before any other use of the + Kpathsea library. + + `kpathsea_set_program_name' always sets the variables + `kpse->invocation_name' and `kpse->invocation_short_name'. These + variables are used in the error message macros defined in + `kpathsea/lib.h'. It sets the 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 environment 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. You can use `kpsewhich --expand-var=\$SELFAUTOLOC', + etc., to see the values. + + 3. Set debugging options. *Note Debugging::. If your program doesn't + have a debugging option already, you can define one and set + `kpse->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 `kpathsea_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 + `kpathsea_find_file'. You can call `kpathsea_find_file' after + doing only the first and second 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 routine is + `kpathsea_find_glyph', defined in `tex-glyph.h'. This returns 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 + `kpathsea_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. + + 9. 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'. Analogous security holes exist for many other + programs. 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'.) The function + `kpathsea_out_name_ok', with a filename as second argument, + returns `true' if that filename is acceptable to be opend for + output or `false' otherwise. + + 10. Similarly, the function `kpathsea_in_name_ok', with a filename as + second argument, returns `true' if that filename is acceptable to + be opend for input or `false' otherwise, depending on the value of + the configuration variable `openin_any' (with `a' as default). + + 11. To close the kpathsea library instance you are using, call + `kpathsea_finish'. This function closes any open log files and + frees the memory used by the instance. + + + 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 and +probably Automake for configuring and building your software if you use +Kpathsea; I strongly recommend using Autoconf and Automake regardless. +They are available from `ftp://ftp.gnu.og/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 formats, `kpse_program_text_format' and +`kpse_program_binary_format', 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 +`kpathsea_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 +`kpathsea_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 `kpathsea_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 `kpathsea_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) +* --all: Path searching options. + (line 12) +* --color=tty: ls-R. (line 21) +* --debug=NUM: Auxiliary tasks. (line 9) +* --disable-static: configure options. (line 31) +* --dpi=NUM: Path searching options. + (line 17) +* --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 22) +* --expand-braces=STRING: Auxiliary tasks. (line 16) +* --expand-path=STRING: Auxiliary tasks. (line 24) +* --expand-var=STRING: Auxiliary tasks. (line 19) +* --format=NAME: Path searching options. + (line 38) +* --help: Standard options. (line 8) +* --interactive: Path searching options. + (line 120) +* --mktex=FILETYPE: Path searching options. + (line 125) +* --mode=STRING: Path searching options. + (line 131) +* --must-exist: Path searching options. + (line 136) +* --no-mktex=FILETYPE: Path searching options. + (line 125) +* --path=STRING: Path searching options. + (line 141) +* --progname=NAME: Path searching options. + (line 150) +* --safe-in-name=NAME: Path searching options. + (line 156) +* --safe-out-name=NAME: Path searching options. + (line 156) +* --show-path=NAME: Auxiliary tasks. (line 41) +* --srcdir, for building multiple architectures: configure scenarios. + (line 18) +* --subdir=STRING: Path searching options. + (line 162) +* --var-value=VARIABLE: Auxiliary tasks. (line 12) +* --version: Standard options. (line 11) +* --with options: configure options. (line 16) +* --with-mktextex-default: mktex configuration. (line 12) +* --without-mktexfmt-default: mktex configuration. (line 12) +* --without-mktexmf-default: mktex configuration. (line 12) +* --without-mktexocp-default: mktex configuration. (line 12) +* --without-mktexofm-default: mktex configuration. (line 12) +* --without-mktexpk-default: mktex configuration. (line 12) +* --without-mktextfm-default: mktex configuration. (line 12) +* -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 17) +* -dynamic: ShellWidgetClass. (line 43) +* -g, compiling without: configure scenarios. (line 32) +* -L option to ls: ls-R. (line 38) +* -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) +* .cid: Supported file formats. + (line 58) +* .cmap: Supported file formats. + (line 36) +* .cnf: Supported file formats. + (line 39) +* .enc: Supported file formats. + (line 51) +* .eps: Supported file formats. + (line 69) +* .epsi: Supported file formats. + (line 69) +* .fea: Supported file formats. + (line 61) +* .fmt: Supported file formats. + (line 54) +* .ist: Supported file formats. + (line 74) +* .lig: Supported file formats. + (line 78) +* .map: Supported file formats. + (line 84) +* .mem: Supported file formats. + (line 87) +* .mf: Supported file formats. + (line 95) +* .mft: Supported file formats. + (line 103) +* .mlbib: Supported file formats. + (line 111) +* .mlbst: Supported file formats. + (line 115) +* .mp: Supported file formats. + (line 119) +* .ocp: Supported file formats. + (line 127) +* .ofm: Supported file formats. + (line 131) +* .opl: Supported file formats. + (line 138) +* .otp: Supported file formats. + (line 141) +* .ovf: Supported file formats. + (line 144) +* .ovp: Supported file formats. + (line 147) +* .pfa: Supported file formats. + (line 200) +* .pfb: Supported file formats. + (line 200) +* .pk: Supported file formats. + (line 154) +* .pool: Supported file formats. + (line 99) +* .pro: Supported file formats. + (line 160) +* .rhosts, writable by TeX: Security. (line 10) +* .sfd: Supported file formats. + (line 164) +* .tex: Supported file formats. + (line 167) +* .tex file, included in ls-R: ls-R. (line 33) +* .tfm: Supported file formats. + (line 187) +* .ttc: Supported file formats. + (line 196) +* .ttf: Supported file formats. + (line 196) +* .vf: Supported file formats. + (line 208) +* .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 19) +* //: 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 114) +* 2602gf: Unable to generate fonts. + (line 36) +* 8.3 filenames, using: mktex configuration. (line 69) +* : 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 37) +* \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) +* 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) +* all matches, finding: Path searching options. + (line 12) +* alphabetical order, not: Subdirectory expansion. + (line 6) +* Amiga support: Custom installation. (line 19) +* Andrew File System, installing with: Installing files. (line 32) +* announcement mailing list: Mailing lists. (line 6) +* ANSI C: TeX or Metafont failing. + (line 30) +* API, re-entrant: Programming overview. + (line 16) +* append-only directories and mktexpk: Security. (line 36) +* appendonlydir: mktex configuration. (line 61) +* 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 14) +* ash, losing with configure: configure shells. (line 19) +* autoconf, recommended: Calling sequence. (line 119) +* 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) +* backslash-newline: Config files. (line 37) +* 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) +* blank lines, in texmf.cnf: Config files. (line 35) +* 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 119) +* c-auto.h: Programming overview. + (line 33) +* 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) +* CFLAGS: configure environment. + (line 14) +* ChangeLog entry: Bug checklist. (line 55) +* 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 47) +* 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 86) +* 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 27) +* 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 25) +* 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 47) +* config files, programming with: Programming with config files. + (line 6) +* config.h: Programming overview. + (line 33) +* config.log: Bug checklist. (line 27) +* config.ps: Specially-recognized files. + (line 16) +* config.ps, search path for: Supported file formats. + (line 47) +* config.status: Bug checklist. (line 30) +* configuration: Installation. (line 6) +* configuration bugs: Bug checklist. (line 30) +* configuration compiler options: configure environment. + (line 23) +* configuration file, source for path: Path sources. (line 17) +* configuration files as shell scripts.: Config files. (line 79) +* 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 12) +* configure, running: Running configure. (line 6) +* context diff: Bug checklist. (line 55) +* continuation character: Config files. (line 37) +* core dumps, reporting: Bug checklist. (line 61) +* CPPFLAGS: configure environment. + (line 22) +* crashes, reporting: Bug checklist. (line 61) +* 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 61) +* debugging: Debugging. (line 6) +* debugging options, in Kpathsea-using program: Calling sequence. + (line 39) +* 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 62) +* 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) +* dlclose: dlopen. (line 6) +* dlopen: dlopen. (line 6) +* dlsym: dlopen. (line 6) +* dlsym.c: dlopen. (line 21) +* doc files: Supported file formats. + (line 173) +* DOS compatible names: mktex configuration. (line 69) +* DOS support: Custom installation. (line 19) +* dosnames: mktex configuration. (line 68) +* dot files: ls-R. (line 33) +* doubled colons: Default expansion. (line 6) +* dpiNNN directories: mktex configuration. (line 69) +* DVI drivers: Kpathsea application distributions. + (line 12) +* DVILJMAKEPK: mktex script names. (line 32) +* DVILJSIZES: Fallback font. (line 6) +* dvipdfmx.cfg: Specially-recognized files. + (line 19) +* DVIPSFONTS: Supported file formats. + (line 243) +* DVIPSHEADERS: Supported file formats. + (line 200) +* DVIPSMAKEPK: mktex script names. (line 32) +* 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) +* enabling mktex scripts: mktex configuration. (line 6) +* ENCFONTS: Supported file formats. + (line 51) +* engine name: Path searching options. + (line 22) +* 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 22) +* excessive startup time: Slow path searching. (line 6) +* expand.c: Brace expansion. (line 26) +* expanding symlinks: Calling sequence. (line 31) +* 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) +* extensions, filename: File lookup. (line 24) +* 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 35) +* 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 39) +* 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) +* fmtutil: mktex script names. (line 10) +* fmtutil.cnf: Specially-recognized files. + (line 22) +* fmtutils.cnf: mktex configuration. (line 24) +* 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) +* FONTCIDMAPS: Supported file formats. + (line 58) +* FONTFEATURES: Supported file formats. + (line 61) +* fontmap files: Fontmap. (line 6) +* fontmaps: mktex configuration. (line 87) +* fontname: mktex configuration. (line 88) +* fontnames, arbitrary length: Fontmap. (line 15) +* fonts, being created: Simple installation. (line 79) +* FOOINPUTS: Supported file formats. + (line 225) +* fopen, redefined: Debugging. (line 54) +* format of external database: Database format. (line 6) +* FreeBSD configure error: Empty Makefiles. (line 6) +* FreeBSD shells and configure: configure shells. (line 19) +* ftp.cs.stanford.edu: unixtex.ftp. (line 20) +* 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 61) +* generation of filename database: Filename database generation. + (line 6) +* get_applicationShellWidgetClass: ShellWidgetClass. (line 6) +* get_wmShellWidgetClass: ShellWidgetClass. (line 6) +* gf: Supported file formats. + (line 65) +* GFFONTS: Supported file formats. + (line 65) +* 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 65) +* glyphlist.txt: Specially-recognized files. + (line 25) +* 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 112) +* hash_summary_only variable for debugging: Debugging. (line 105) +* help, mailing list for general TeX: Mailing lists. (line 25) +* 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 47) +* illegal pointer combination warnings: Pointer combination warnings. + (line 6) +* include fontmap directive: Fontmap. (line 33) +* INDEXSTYLE: Supported file formats. + (line 74) +* info-tex@shsu.edu: Mailing lists. (line 25) +* input lines, reading: Calling sequence. (line 112) +* 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 120) +* 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: unixtex.ftp. (line 20) +* Korn shell, losing with configure: configure shells. (line 14) +* kpathsae_var_value: Programming with config files. + (line 10) +* Kpathsea config file, source for path: Path sources. (line 17) +* Kpathsea version number: Kpathsea application distributions. + (line 6) +* kpathsea.h: Programming overview. + (line 24) +* kpathsea/README.CONFIGURE: Running configure. (line 15) +* kpathsea_cnf_get: Programming with config files. + (line 23) +* KPATHSEA_DEBUG <1>: Calling sequence. (line 28) +* KPATHSEA_DEBUG: Debugging. (line 18) +* kpathsea_find_file <1>: Calling sequence. (line 62) +* kpathsea_find_file: File lookup. (line 37) +* kpathsea_find_glyph: Glyph lookup. (line 26) +* kpathsea_finish: Calling sequence. (line 107) +* kpathsea_in_name_ok: Calling sequence. (line 102) +* kpathsea_init_prog <1>: Calling sequence. (line 53) +* kpathsea_init_prog: Fallback font. (line 15) +* kpathsea_new: Calling sequence. (line 9) +* kpathsea_open_file: Calling sequence. (line 74) +* kpathsea_out_name_ok: Calling sequence. (line 82) +* kpathsea_set_program_name: Calling sequence. (line 14) +* KPATHSEA_WARNING: Config files. (line 18) +* kpse->debug: Debugging. (line 6) +* kpse->debug variable: Calling sequence. (line 39) +* kpse->format_info: Calling sequence. (line 47) +* kpse->invocation_name: Calling sequence. (line 22) +* kpse->invocation_short_name: Calling sequence. (line 22) +* kpse->program_name: Calling sequence. (line 22) +* KPSE_BITMAP_TOLERANCE: Basic glyph lookup. (line 15) +* 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_format_info_type: Debugging. (line 61) +* kpse_init_prog, and MAKETEX_MODE: Default path features. + (line 25) +* kpsewhich: Invoking kpsewhich. (line 6) +* Kpsewhich, and debugging: Debugging. (line 31) +* ksh, losing with configure: configure shells. (line 14) +* LaserJet drive: Kpathsea application distributions. + (line 13) +* last-resort font: Fallback font. (line 6) +* LaTeX help mailing list: Mailing lists. (line 25) +* 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 78) +* lines, reading arbitrary-length: Calling sequence. (line 112) +* Linux File System Standard: mktex configuration. (line 114) +* Linux shells and configure: configure shells. (line 19) +* 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 81) +* 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) +* 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 112) +* metafont driver files: mktex configuration. (line 94) +* 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 95) +* MFPOOL: Supported file formats. + (line 99) +* MFTINPUTS: Supported file formats. + (line 103) +* MISCFONTS: Supported file formats. + (line 107) +* mismatched checksum warnings: Suppressing warnings. + (line 17) +* missfont.log: mktex script names. (line 35) +* MISSFONT_LOG: mktex script names. (line 40) +* missing character warnings: Suppressing warnings. + (line 20) +* mkocp: mktex script names. (line 18) +* mkofm: mktex script names. (line 21) +* mktex script configuration: mktex configuration. (line 6) +* mktex script names: mktex script names. (line 6) +* mktex scripts: mktex scripts. (line 6) +* mktex.cnf <1>: Specially-recognized files. + (line 28) +* mktex.cnf: mktex configuration. (line 29) +* mktex.opt: mktex configuration. (line 29) +* mktexdir: mktex configuration. (line 62) +* mktexfmt: mktex script names. (line 10) +* mktexmf: mktex script names. (line 15) +* mktexpk: mktex script names. (line 24) +* mktexpk , initial runs: Simple installation. (line 79) +* mktexpk can't guess mode: Unable to generate fonts. + (line 12) +* mktextex: mktex script names. (line 27) +* mktextfm: mktex script names. (line 30) +* MLBIBINPUTS: Supported file formats. + (line 111) +* MLBSTINPUTS: Supported file formats. + (line 115) +* mode directory, omitting: mktex configuration. (line 99) +* Morgan, Tim: History. (line 12) +* mostlyclean Make target: Cleaning up. (line 10) +* MPINPUTS: Supported file formats. + (line 119) +* MPMEMS: Supported file formats. + (line 87) +* MPPOOL: Supported file formats. + (line 123) +* MPSUPPORT: Supported file formats. + (line 91) +* MT_FEATURES: mktex configuration. (line 40) +* 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 25) +* NeXT sed error: Empty Makefiles. (line 6) +* NeXT, lacking X11: Kpathsea application distributions. + (line 6) +* NFS and ls-R: ls-R. (line 40) +* nomfdrivers: mktex configuration. (line 93) +* nomode: mktex configuration. (line 98) +* 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 61) +* numeric debugging values: Debugging. (line 34) +* obtaining TeX: unixtex.ftp. (line 6) +* OCPINPUTS: Supported file formats. + (line 127) +* OFMFONTS: Supported file formats. + (line 131) +* online Metafont display, spurious: Unable to generate fonts. + (line 36) +* OPENTYPEFONTS: Supported file formats. + (line 135) +* 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) +* OTPINPUTS: Supported file formats. + (line 141) +* overview of path searching: Searching overview. (line 6) +* overview of programming with Kpathsea: Programming overview. + (line 6) +* OVFFONTS: Supported file formats. + (line 144) +* OVPFONTS: Supported file formats. + (line 147) +* 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 24) +* pc Pascal compiler: History. (line 12) +* PCL driver: Kpathsea application distributions. + (line 13) +* PDF generation: Kpathsea application distributions. + (line 16) +* pdfglyphlist.txt: Specially-recognized files. + (line 31) +* pdftex.cfg: Specially-recognized files. + (line 34) +* PDFTEXCONFIG: Supported file formats. + (line 151) +* pdftexconfig.tex: Specially-recognized files. + (line 34) +* permission denied: Searching overview. (line 56) +* permissions, directory: Security. (line 51) +* permissions, file: Security. (line 47) +* PKFONTS: Supported file formats. + (line 154) +* 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) +* 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 53) +* program-varying paths: Supported file formats. + (line 12) +* 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 160) +* pxp Pascal preprocessor: History. (line 12) +* quoting variable values: Variable expansion. (line 17) +* re-entrant API: Programming overview. + (line 16) +* readable: Suppressing warnings. + (line 26) +* reading arbitrary-length lines: Calling sequence. (line 112) +* README.CONFIGURE: Running configure. (line 15) +* 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 47) +* resolution, setting: Path searching options. + (line 17) +* resolutions, last-resort: Fallback font. (line 6) +* retrieving TeX: unixtex.ftp. (line 6) +* right-hand side of variable assignments: Config files. (line 56) +* Rokicki, Tom: History. (line 12) +* root user: Tilde expansion. (line 19) +* 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 31) +* SELFAUTOLOC: Calling sequence. (line 31) +* SELFAUTOPARENT: Calling sequence. (line 31) +* sending patches: Bug checklist. (line 55) +* setgid scripts: Security. (line 40) +* SFDFONTS: Supported file formats. + (line 164) +* sh5, ok with configure: configure shells. (line 25) +* shared library, making: Shared library. (line 6) +* shell scripts as configuration files: Config files. (line 79) +* 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 29) +* 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 176) +* sources for search paths: Path sources. (line 6) +* special: Suppressing warnings. + (line 30) +* st_nlink: Subdirectory expansion. + (line 26) +* ST_NLINK_TRICK: Subdirectory expansion. + (line 38) +* stack trace: Bug checklist. (line 61) +* 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 112) +* strip: mktex configuration. (line 108) +* stripsupplier: mktex configuration. (line 102) +* striptypeface: mktex configuration. (line 105) +* subdirectory searching: Subdirectory expansion. + (line 6) +* suffixes, filename: File lookup. (line 24) +* suggestions, making: Introduction. (line 27) +* Sun 2: History. (line 12) +* Sun OpenWin patches: ShellWidgetClass. (line 29) +* supplier directory, omitting: mktex configuration. (line 103) +* 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 31) +* 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 200) +* T1INPUTS: Supported file formats. + (line 200) +* T42FONTS: Supported file formats. + (line 205) +* tcfmgr.map: Specially-recognized files. + (line 47) +* TDS <1>: TeX directory structure. + (line 6) +* TDS: Default path features. + (line 41) +* testing, post-installation: Installation testing. + (line 6) +* tests, simple: Simple installation. (line 79) +* TeX directory structure <1>: TeX directory structure. + (line 6) +* TeX directory structure: Default path features. + (line 41) +* 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 25) +* TeX hierarchy, one: configure scenarios. (line 13) +* TeX support: TeX support. (line 6) +* TeX Users Group: Introduction. (line 39) +* tex-file.c: File lookup. (line 37) +* tex-file.h: Programming overview. + (line 24) +* tex-glyph.c: Glyph lookup. (line 26) +* tex-glyph.h: Programming overview. + (line 24) +* tex-k-request@tug.org: Mailing lists. (line 7) +* tex-k@tug.org (bug address): Reporting bugs. (line 8) +* tex.web: unixtex.ftp. (line 20) +* 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 173) +* TEXFONTMAPS: Supported file formats. + (line 84) +* TEXFONTS: Supported file formats. + (line 65) +* texfonts.map: Fontmap. (line 6) +* TEXFORMATS: Supported file formats. + (line 54) +* TEXINDEXSTYLE: Supported file formats. + (line 74) +* TEXINPUTS: Supported file formats. + (line 69) +* TEXMF: TeX directory structure. + (line 6) +* texmf.cnf: Specially-recognized files. + (line 38) +* texmf.cnf missing, warning about: Config files. (line 18) +* 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 81) +* TEXMFDBS: ls-R. (line 6) +* TEXMFINI: Supported file formats. + (line 24) +* TEXMFLOG: Logging. (line 10) +* TEXMFOUTPUT: mktex script names. (line 40) +* TEXMFSCRIPTS: Supported file formats. + (line 179) +* TEXMFVAR: mktex configuration. (line 124) +* texmfvar: mktex configuration. (line 123) +* TEXPICTS: Supported file formats. + (line 69) +* TEXPKS: Supported file formats. + (line 154) +* TEXPOOL: Supported file formats. + (line 183) +* TEXPSHEADERS: Supported file formats. + (line 160) +* TEXSIZES: Fallback font. (line 6) +* TEXSOURCES: Supported file formats. + (line 176) +* TFMFONTS: Supported file formats. + (line 187) +* tilde expansion: Tilde expansion. (line 6) +* tilde.c: Tilde expansion. (line 25) +* 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 19) +* trailing colons: Default expansion. (line 6) +* TRFONTS: Supported file formats. + (line 192) +* trick for detecting leaf directories: Subdirectory expansion. + (line 22) +* trojan horse attack: Security. (line 10) +* try_std_extension_first: File lookup. (line 24) +* TTFONTS: Supported file formats. + (line 196) +* tug.org: unixtex.ftp. (line 6) +* typeface directory, omitting: mktex configuration. (line 106) +* 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 20) +* universe, BSD vs. system V: Running make. (line 44) +* 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 129) +* USE_VARTEXFONTS: mktex configuration. (line 119) +* Usenet TeX newsgroup: Mailing lists. (line 25) +* USERPROFILE, as ~ expansion: Tilde expansion. (line 6) +* varfonts: mktex configuration. (line 113) +* variable expansion: Variable expansion. (line 6) +* variable.c: Variable expansion. (line 32) +* variable.h: Programming with config files. + (line 10) +* VARTEXFONTS: mktex configuration. (line 114) +* VAX 11/750: History. (line 12) +* version number, of Kpathsea: Kpathsea application distributions. + (line 6) +* version numbers, determining: Bug checklist. (line 15) +* VF files, not found: Searching overview. (line 31) +* VFFONTS: Supported file formats. + (line 208) +* VMS support: Custom installation. (line 19) +* Vojta, Paul: History. (line 30) +* Walsh, Norman: History. (line 57) +* warning about unusable ls-R: ls-R. (line 45) +* warning, about missing texmf.cnf: Config files. (line 18) +* 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 216) +* Weber, Olaf: History. (line 74) +* WEBINPUTS: Supported file formats. + (line 212) +* whitespace, in fontmap files: Fontmap. (line 28) +* whitespace, not ignored on continuation lines: Config files. + (line 37) +* 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) +* XDvi: Specially-recognized files. + (line 41) +* XDVIFONTS: Supported file formats. + (line 243) +* XDVIMAKEPK: mktex script names. (line 32) +* 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: Top1627 +Node: Introduction2269 +Node: History4090 +Node: Installation8182 +Node: Simple installation8972 +Node: Custom installation12555 +Node: Disk space13729 +Node: Kpathsea application distributions14613 +Node: Changing search paths15728 +Node: Default path features16910 +Node: Default path generation18993 +Node: Running configure20436 +Node: configure shells21487 +Node: configure options22539 +Node: configure environment24046 +Node: configure scenarios25848 +Node: Shared library27434 +Node: Running make28448 +Node: Installing files30495 +Node: Cleaning up32442 +Node: Filename database generation33490 +Node: mktex scripts34057 +Node: mktex configuration35334 +Node: mktex script names41153 +Node: mktex script arguments42544 +Node: Installation testing43430 +Node: Security43794 +Node: TeX directory structure46361 +Node: unixtex.ftp50783 +Node: Reporting bugs52117 +Node: Bug checklist52852 +Node: Mailing lists56549 +Node: Debugging57758 +Node: Logging62836 +Node: Common problems64706 +Node: Unable to find files65537 +Node: Slow path searching67948 +Node: Unable to generate fonts69325 +Node: TeX or Metafont failing71834 +Node: Empty Makefiles73713 +Node: XtStrings74950 +Node: dlopen75786 +Node: ShellWidgetClass76604 +Node: Pointer combination warnings78236 +Node: Path searching78625 +Node: Searching overview79272 +Node: Path sources82668 +Node: Config files83739 +Node: Path expansion87666 +Node: Default expansion88615 +Node: Variable expansion90685 +Node: Tilde expansion92088 +Node: Brace expansion93068 +Node: KPSE_DOT expansion93993 +Node: Subdirectory expansion94506 +Node: Filename database96857 +Node: ls-R97911 +Node: Filename aliases100805 +Node: Database format101983 +Node: Invoking kpsewhich102996 +Node: Path searching options103942 +Node: Specially-recognized files112159 +Node: Auxiliary tasks113515 +Node: Standard options115340 +Node: TeX support115696 +Node: Supported file formats116987 +Node: File lookup124541 +Node: Glyph lookup126290 +Node: Basic glyph lookup127414 +Node: Fontmap128293 +Node: Fallback font130910 +Node: Suppressing warnings131823 +Node: Programming132928 +Node: Programming overview133441 +Node: Calling sequence136135 +Node: Program-specific files142658 +Node: Programming with config files143681 +Node: Index144993 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/latex2e-es.info b/Master/texmf-dist/doc/info/latex2e-es.info new file mode 100644 index 00000000000..d6a5b3440d9 --- /dev/null +++ b/Master/texmf-dist/doc/info/latex2e-es.info @@ -0,0 +1,8019 @@ +This is latex2e-es.info, produced by makeinfo version 4.13 from +latex2e-es.texi. + +Este documento es un manual de referencia extraoficial para LaTeX, un +sistema de preparación de documentos, para la versión de Julio 2010. + + Esto se tradujo originalmente del archivo `LATEX.HLP' v1.0a de la +Biblioteca de Ayuda VMS. La versión pretraducción fue escrita por +George D. Greenwade de Sam Houston State University. La versión de +LaTeX 2.09 fue escrita por Stephen Gilmore. La versión de LaTeX2e fue +adaptada por Torsten Martinsen. Karl Berry hizo la actualización y +posteriores adiciones, y reconoce su agradecimiento a la utilización de +`Hypertext Help con LaTeX', por Sheldon Green, y el `LaTeX Command +Summary' (para LaTeX 2.09) por L. Botway y C. Biemesderfer (publicada +por el Grupo de Usuarios TeX como `TeXniques' número 10), como material +de referencia (no se copió texto directamente). + + Copyright © 2010 Nacho Pacheco —Traducción. +Copyright © 2007, 2008, 2009, 2010 Karl Berry. +Copyright © 1988, 1994, 2007 Stephen Gilmore. +Copyright © 1994, 1995, 1996 Torsten Martinsen. + + Se concede permiso para hacer y distribuir copias literales de este +manual siempre que el aviso de copyright y esta nota de permiso se +conserven en todas las copias. + + Se concede permiso para copiar y distribuir versiones modificadas de +este manual bajo las condiciones para una copia literal, a condición de +que todo el trabajo derivado resultante se distribuya bajo los términos +de una nota de permiso idéntica a ésta. + + Se concede permiso para copiar y distribuir traducciones de este +manual a otro idioma, con las condiciones anteriores para versiones +modificadas. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* LaTeX2e-es: (latex2e-es). Manual de extraoficial de LaTeX. +END-INFO-DIR-ENTRY + + +File: latex2e-es.info, Node: Top, Next: Descripción, Up: (dir) + +LaTeX2e +******* + +Este documento es un manual de referencia extraoficial para LaTeX, un +sistema de preparación de documentos, versión Julio 2010. Este se +pretende que cubra LaTeX2e, que ha sido la versión estándar de LaTeX por +muchos años. + + LaTeX está implementado como un paquete de macros por Donald E. +Knuth's para el programa de composición tipográfica TeX. LaTeX +originalmente fue creado por Leslie Lamport; este ahora es mantenido por +un grupo de voluntarios en (`http://latex-project.org'). La +documentación oficial escrita por el proyecto LaTeX está disponible +allÃ. Una vez más, el presente documento no es oficial y no ha sido +revisado por los responsables del proyecto LaTeX. + +* Menu: + +* Descripción:: ¿Qués es LaTeX? +* Iniciando y Finalizando:: El principio y final estándar de un documento. +* Clases de Documento:: Algunas de las diferentes clases disponibles. +* Tipos de Letra:: Y tipos de letra, como negrita, cursiva, etc. +* Diseño:: Controlando el diseño de la página. +* Seccionado:: Cómo seccionar adecuadamente. +* Referencias Cruzadas:: Referencias automáticas. +* Entornos:: Tal como enumerate e itemize. +* Saltos de LÃnea:: Influyendo en los saltos de lÃnea. +* Saltos de Página:: Influyendo en los saltos de página. +* Notas al Pie:: Cómo producir notas al pie. +* Definiciones:: Definiendo sus propias instrucciones, etc. +* Contadores:: Contadores internos utilizados por LaTeX. +* Longitudes:: Las instrucciones de longitud. +* Haciendo Párrafos:: Instrucciones de Párrafo. +* Fórmulas Matemáticas:: Cómo crear fórmulas matemáticas. +* Modos:: Modos Párrafo, Matemáticas o de Escritura de Izquierda a Derecha. +* Estilos de Página:: Varios estilos de diseño de página. +* Espacios:: Espacio horizontal y vertical. +* Cajas:: Haciendo cajas. +* Inserciones Especiales:: Insertando caracteres reservados y especiales. +* Dividiendo la Entrada:: Manejo de archivos de gran tamaño mediante su fraccionamiento. +* Asuntos de Portada/Contraportada:: Tablas de contenido, glosarios, Ãndices. +* Cartas:: La clase letter. +* Entrada/Salida a la Terminal:: Interacción del usuario. +* LÃnea de Órdenes:: Comportamiento independiente del sistema de la lÃnea de órdenes. +* Plantillas de Documento:: Principales plantillas para diversas clases de documento. +* Ãndice de Conceptos:: Ãndice general. +* Ãndice de Instrucciones:: Lista alfabética de instrucciones LaTeX. + + +File: latex2e-es.info, Node: Descripción, Next: Iniciando y Finalizando, Prev: Top, Up: Top + +1 Descripción de LaTeX +********************** + +Las instrucciones LaTeX componen tipográficamente un archivo de texto +usando el programa TeX y el “paquete de macros†LaTeX para TeX. Para +ser más especÃficos, este procesa un archivo de entrada que contiene el +texto de un documento con instrucciones intercaladas que describen cómo +se debe dar formato al texto. Este produce al menos tres archivos de +salida: + + 1. Un archivo de salida principal, que es uno de: + + 1. Si se invoca como `latex', un archivo “independiente del + dispositivo†(`.dvi'). Este contiene las instrucciones que se + pueden traducir en órdenes para una variedad de dispositivos + de salida. Usted puede ver estos archivos `.dvi' producidos + por LaTeX utilizando un programa como `xdvi' (visualización + directa) o `dvips' (los convierte a PostScript). + + 2. Si es invocado como `pdflatex', produce un archivo de + “Documento de Formato Portátil†(`.pdf'). Normalmente, este + es un archivo autocontenido, con todos los tipos de letra e + imágenes incrustadas. Este puede ser muy útil, pero hace que + produzca un archivo mucho más grande que el `.dvi' producido a + partir del mismo documento. + + Existen otras variantes menos comunes de LaTeX (y TeX), de modo que + puede producir HTML, XML y otras cosas. + + 2. Un archivo de“transcripción†o `.log' que contiene información + resumida y mensajes de diagnóstico para cualquier error descubierto + en el archivo de entrada. + + 3. Un archivo “auxiliar†o `.aux'. Este es usado por LaTeX mismo, para + diversas cosas como el seccionado. + + Una instrucción LaTeX comienza con el nombre de la instrucción, la +cual consiste de una `\' seguida por o bien (a) una cadena de letras o +(b) un único carácter no letra. Los argumentos que figuran entre +corchetes, `[]', son opcionales, mientras que los argumentos contenidos +entre llaves, `{}', son obligatorios. + + LaTeX es sensible a mayúsculas y minúsculas. Ingrese todas las +instrucciones en minúsculas a menos que explÃcitamente se diga otra +cosa. + + +File: latex2e-es.info, Node: Iniciando y Finalizando, Next: Clases de Documento, Prev: Descripción, Up: Top + +2 Iniciando y Finalizando +************************* + +Un archivo de entrada mÃnimo tiene el siguiente aspecto: + + \documentclass{clase} + \begin{document} + su texto + \end{document} + +donde clase es una clase de documento válida para LaTeX. *Note Clases +de Documento::, para detalles de varias clases de documento disponibles +localmente. + + Usted puede incluir otras instrucciones LaTeX entre las instrucciones +`\documentclass' y `\begin{document}' (esta área se llama el +"preámbulo"). + + +File: latex2e-es.info, Node: Clases de Documento, Next: Tipos de Letra, Prev: Iniciando y Finalizando, Up: Top + +3 Clases de Documento +********************* + +La clase de un determinado documento se define con la instrucción: + + \documentclass[opciones]{clase} + +La instrucción `\documentclass' debe ser la primer instrucción en un +archivo fuente LaTeX. + + Los nombres integrados de clases de documento LaTeX (muchas otras +clases de documento están disponibles como complementos; *note +Descripción::): + + article report book letter slides + + Las opciones estándar están descritas más adelante. + +* Menu: + +* Opciones de Clase de Documento:: Opciones globales. + + +File: latex2e-es.info, Node: Opciones de Clase de Documento, Up: Clases de Documento + +3.1 Opciones de Clase de Documento +================================== + +Usted puede especificar las asà llamadas "opciones globales" u "opciones +de clase" en la instrucción `\documentclass' encerrándolas entre +corchetes de la manera usual. Para especificar más de una opción, +deberá separarlas con una coma: + + \documentclass[opción1,opción2,...]{clase} + + Esta es la lista de las opciones de clase estándar. + + Todas las clases estándar salvo `slides' aceptan las siguientes +opciones para seleccionar el tamaño del tipo de letra (el predeterminado +es `10pt'): + + 10pt 11pt 12pt + + Todas las clases estándar aceptan estas opciones para seleccionar el +tamaño del papel (el predeterminado es `letterpaper'): + + a4paper a5paper b5paper executivepaper legalpaper letterpaper + + Otras opciones diversas: + +`draft, final' + marca/no marca el desbordamiento de cajas con una gran caja negra; + el predeterminado es `final'. + +`fleqn' + Coloca las fórmulas mostradas alineadas a la izquierda; el + predeterminado es centrado. + +`landscape' + Selecciona el formato apaisado; el predeterminado es vertical. + +`leqno' + Coloca los números de ecuación en el lado izquierdo de las + ecuaciones; el predeterminado es el lado derecho. + +`openbib' + Usa el formato de bibliografÃa “abiertoâ€. + +`titlepage, notitlepage' + Especifica si la página de tÃtulo es independiente; de manera + predeterminada depende de la clase. + + Estas opciones no están disponibles con la clase slides: + +`onecolumn' +`twocolumn' + Composición tipográfica en una o dos columnas; el predeterminado es + `onecolumn'. + +`oneside' +`twoside' + Selecciona el diseño de una o dos caras; el predeterminado es + `oneside', excepto para la clase `book'. + + El parámetro `\evensidemargin' (`\oddsidemargin' determina la + distancia en páginas par (impar) numeradas entre el lado izquierdo + de la página y el margen excedente del texto. Los valores + predeterminados varÃan con el tamaño del papel y si el diseño + seleccionado es de uno o dos lados. Para imprimir texto en un lado + es centrado, para dos lados, `\oddsidemargin' es 40% de la + diferencia entre `\paperwidth' y `\textwidth' con el resto de + `\evensidemargin'. + +`openright' +`openany' + Determina si un capÃtulo debe iniciar en una página del lado + derecho; para book, el predeterminado es `openright'. + + La clase `slides' ofrece la opción `clock' para imprimir la hora en +la parte inferior de cada nota. + + Los paquetes adicionales se cargan de la siguiente manera: + + \usepackage[opciones]{paquete} + + Para especificar más de un paquete, usted puede separarlos con una +coma, o utilizar múltiples instrucciones`\usepackage'. + + Cualquiera de las opciones que figuran en la instrucción +`\documentclass' que no son conocidas por la clase de documento +seleccionada son transmitidas a los paquetes cargados con `\usepackage'. + + +File: latex2e-es.info, Node: Tipos de Letra, Next: Diseño, Prev: Clases de Documento, Up: Top + +4 Tipos de Letra +**************** + +Dos aspectos importantes de la selección de un "tipo de letra" son la +especificación del tamaño y el estilo. Las instrucciones LaTeX para +hacer esto se describen a continuación. + +* Menu: + +* Estilos del Tipo de Letra:: Seleccionar romana, cursiva, etc. +* Tamaños del Tipo de Letra:: Seleccionando el tamaño del punto. +* Instrucciones de Bajo Nivel para el Tipo de Letra:: Seleccionando codificación, familia, series, apariencia. + + +File: latex2e-es.info, Node: Estilos del Tipo de Letra, Next: Tamaños del Tipo de Letra, Up: Tipos de Letra + +4.1 Estilos del Tipo de Letra +============================= + +Las siguientes instrucciones para el estilo del tipo de letra son +compatibles con LaTeX. + + Estas instrucciones se utilizan como `\textit{texto en cursiva}'. +Las instrucciones correspondientes entre paréntesis son la “forma +declarativaâ€, la cual no toma argumentos. El ámbito de aplicación de la +forma de declaración dura hasta la instrucción “end†del estilo del tipo +de letra o hasta el final del grupo actual. + + Las formas declarativas son acumulativas; es decir, usted puede decir +ya sea `\sffamily\bfseries' o `\bfseries\sffamily' para obtener sans +serif en negrita. + + También puede utilizar la forma de entorno de las formas +declarativas; por ejemplo, `\begin{ttfamily}...\end{ttfamily}'. + +`\textrm (\rmfamily)' + Romana. + +`\textit (\itshape)' + cursivas. + +`\emph' + Énfasis (cambia entre `\textit' y `\textrm'). + +`\textmd (\mdseries)' + Peso medio (predeterminado). + +`\textbf (\bfseries)' + Negrita. + +`\textup (\upshape)' + Vertical (predeterminado). Lo opuesto a inclinada. + +`\textsl (\slshape)' + Oblicua. + +`\textsf (\sffamily)' + Sans serif. + +`\textsc (\scshape)' + Versales. + +`\texttt (\ttfamily)' + Máquina de escribir. + +`\textnormal (\normalfont)' + Tipo de letra principal del documento. + +`\mathrm' + Romana, para usar en modo math. + +`\mathbf' + Negrita, para usarse en modo math. + +`\mathsf' + Sans serif, para usarse en modo math. + +`\mathtt' + Máquina de escribir, para usarse en modo math. + +`\mathit' +`(\mit)' + cursivas, para utilizarse en modo math. + +`\mathnormal' + Para usarse en modo math, por ejemplo dentro de otra declaración de + estilo de letra. + +`\mathcal' + Letras `caligráficas', para usarse en modo math. + + Además, la instrucción `\mathversion{bold}' se pude utilizar para +cambiar a letras y sÃmbolos en negrita dentro de fórmulas. +`\mathversion{normal}' restablece el valor predeterminado. + + LaTeX también proporciona estas instrucciones, que incondicionalmente +cambian a determinado estilo, es decir, _no_ son acumulativas. Estas se +utilizan de forma diferente que las instrucciones anteriores, también: +`{\instrucción ...}' en lugar de `\instrucción{...}'. Son dos cosas muy +distintas. + +`\bf' + Cambia a tipo de letra negrita. + +`\cal' + Cambia a letras caligráficas para math. + +`\em' + Énfasis (cursivas con romana, romana con cursivas). + +`\it' + cursivas. + +`\rm' + Romana. + +`\sc' + Versales. + +`\sf' + Sans serif. + +`\sl' + Oblicua (oblicua). + +`\tt' + Máquina de escribir (monoespacio, de ancho fijo). + + +File: latex2e-es.info, Node: Tamaños del Tipo de Letra, Next: Instrucciones de Bajo Nivel para el Tipo de Letra, Prev: Estilos del Tipo de Letra, Up: Tipos de Letra + +4.2 Tamaños del Tipo de Letra +============================= + +Las siguientes instrucciones para el tamaño del tipo de letra estándar +son compatibles con LaTeX. La tabla muestra el nombre de la instrucción +y el tamaño real (en puntos) del tipo de letra correspondiente utilizado +con las opciones de tamaño del documento `10pt', `11pt' y `12pt', +respectivamente (*note Opciones de Clase de Documento:: ). + +Instrucción `10pt' `11pt' `12pt' +--------------------------------------------------------- +`\tiny' 5 6 6 +`\scriptsize' 7 8 8 +`\footnotesize' 8 9 10 +`\small' 9 10 10.95 +`\normalsize' (predeterminado) 10 10.95 12 +`\large' 12 12 14.4 +`\Large' 14.4 14.4 17.28 +`\LARGE' 14.4 14.4 17.28 +`\huge' 20.74 20.74 24.88 +`\Huge' 24.88 24.88 24.88 + + Las instrucciones tal como están listadas aquà son “formas +declarativasâ€. El ámbito de aplicación de la forma declarativa dura +hasta la instrucción “end†del estilo del tipo de letra o hasta el final +del grupo actual. También puede utilizar la forma de entorno en estas +instrucciones; por ejemplo, `\begin{tiny}...\end{tiny}'. + + +File: latex2e-es.info, Node: Instrucciones de Bajo Nivel para el Tipo de Letra, Prev: Tamaños del Tipo de Letra, Up: Tipos de Letra + +4.3 Instrucciones de Bajo Nivel para el Tipo de Letra +===================================================== + +Estas instrucciones están destinadas principalmente para los escritores +de macros y paquetes. Las instrucciones listadas anteriormente son sólo +un subconjunto de las disponibles. + +`\fontencoding{codificación}' + Selecciona la codificación del tipo de letra. Las codificaciones + válidas incluyen a `OT1' y `T1'. + +`\fontfamily{familia}' + Selecciona la familia del tipo de letra. Las familias válidas + incluyen: + + • `cmr' para Romana de Computadora Moderna + + • `cmss' para Sans Serif de Computadora Moderna + + • `cmtt' para Máquina de Escribir de Computadora Moderna + + y muchas otras. + +`\fontseries{series}' + Selecciona las series del tipo de letra. Las series válidas + incluyen: + + • `m' Mediana (normal) + + • `b' Negrita + + • `c' Condensada + + • `bc' Negrita condensada + + • `bx' Negrita extendida + + y otras combinaciones diferentes. + +`\fontshape{forma}' + Selecciona la forma del tipo de letra. Las formas válidas son: + + • `n' Vertical (normal) + + • `it' Cursiva + + • `sl' Oblicua (oblicua) + + • `sc' Versales + + • `ui' Cursiva vertical + + • `ol' Esquema + + Las dos últimas formas no están disponibles para la mayorÃa de las + familias de tipos de letra. + +`\fontsize{tamaño}{espaciado}' + Establece el tamaño de letra. El primer parámetro es el tamaño a + cambiar el tipo de letra y el segundo es el espaciado de lÃnea a + usar; este se almacena en un parámetro denominado `\baselineskip'. + La unidad de ambos parámetros de manera predeterminada es pt. El + valor predeterminado de `\baselineskip' para el tipo de letra + Computadora Moderna es 1.2 veces `\fontsize'. + + El interlineado de espacio doble también es multiplicado por el + valor del parámetro `\baselinestretch' cuando cambia el tamaño del + tipo de letra; el predeterminado es 1. Sin embargo, la mejor + manera de hacer un documento con “doble espacioâ€, si tiene la + suficiente mala suerte de tener que producirlo, es usar el paquete + `setspace'; vea + `http://www.tex.ac.uk/cgi-bin/texfaq2html?label=linespace'. + +`\linespread{factor}' + Equivalente a `\renewcommand{\baselinestretch}{factor}', y por lo + tanto debe estar seguido por `\selectfont' para que tenga algún + efecto. Es mejor especificarlo en el preámbulo, o utilizar el + paquete `setspace', justo como se acaba de describir anteriormente. + + Las modificaciones introducidas por llamar a la fuente de las + instrucciones descritas anteriormente no entrará en vigor sino + hasta que se invoque a `\selectfont'. + +`\usefont{codificación}{familia}{series}{forma}' + Lo mismo que invocar a `\fontencoding', `\fontfamily', + `\fontseries' y `\fontshape' con los parámetros dados, seguida por + `\selectfont'. + + +File: latex2e-es.info, Node: Diseño, Next: Seccionado, Prev: Tipos de Letra, Up: Top + +5 Diseño +******** + +Varias instrucciones para controlar el diseño general de la página. + +* Menu: + +* \onecolumn:: Utiliza un diseño de una columna. +* \twocolumn:: Utiliza un diseño de dos columanas. +* \flushbottom:: Hace que todas las páginas del texto tengan la misma altura. +* \raggedbottom:: Permite que las páginas de texto tengan diferente altura. +* Parámetros para el Diseño de Página:: \headheight \footskip. + + +File: latex2e-es.info, Node: \onecolumn, Next: \twocolumn, Up: Diseño + +5.1 `\onecolumn' +================ + +La declaración `\onecolumn' comienza una nueva página y la produce con +una sola columna. Este es el valor predeterminado. + + +File: latex2e-es.info, Node: \twocolumn, Next: \flushbottom, Prev: \onecolumn, Up: Diseño + +5.2 `\twocolumn' +================ + +Sinopsis: + + \twocolumn[textocolumna1] + + La declaración `\twocolumn' comienza una nueva página y la produce +con dos columnas. Si el argumento opcional textocolumna1 está presente, +esta es compuesta en modo de una columna antes de comenzar la +composición de las dos columnas. + + Estos parámetros controlan la tipografÃa en la producción de dos +columnas: + +`\columnsep' + La distancia entre las columnas (de manera predeterminada a 35pt). + +`\columnseprule' + El ancho de la regla entre columnas; el predeterminado es 0pt, por + lo tanto no hay regla. + +`\columnwidth' + El ancho de la columna actual; este es igual a `\textwidth' en + texto de una sola columna. + + Estos parámetros controlan el comportamiento de la flotación de las +dos columnas producidas: + +`\dbltopfraction' + Máxima fracción en la parte superior de una página de dos columna + que pueden ocupar los flotantes. El predeterminado es `.7', puede + ser útil redefinirlo a (digamos) `.9' para evitar llegar tan pronto + a páginas flotantes. + +`\dblfloatpagefraction' + La mÃnima fracción de una página con flotantes que deben ocupar los + flotantes, para una página de dos columnas con flotantes. El + predeterminado es `.5'. + +`\dblfloatsep' + Distancia entre flotantes en la parte superior o inferior de una + página de dos columnas con flotantes. Predeterminado a `12pt + plus2pt minus2pt' para `10pt' y `11pt' para documentos, `14pt + plus2pt minus4pt' para `12pt'. + +`\dbltextfloatsep' + Distancia entre un flotante multicolumna en la parte superior o + inferior de una página y el texto principal. De manera + predeterminada es `20pt plus2pt minus4pt'. + + +File: latex2e-es.info, Node: \flushbottom, Next: \raggedbottom, Prev: \twocolumn, Up: Diseño + +5.3 `\flushbottom' +================== + +La declaración `\flushbottom' hace que todas las páginas tengan la misma +altura, añadiendo espacio vertical extra donde sea necesario para llenar +la página. + + Este es el predeterminado si se selecciona el modo `twocolumn' (*note +Opciones de Clase de Documento::). + + +File: latex2e-es.info, Node: \raggedbottom, Next: Parámetros para el Diseño de Página, Prev: \flushbottom, Up: Diseño + +5.4 `\raggedbottom' +=================== + +La declaración `\raggedbottom' hace que todas las páginas tengan la +altura natural del material en esa página. Sin longitudes flexibles que +se deban ajustar. + + +File: latex2e-es.info, Node: Parámetros para el Diseño de Página, Prev: \raggedbottom, Up: Diseño + +5.5 Parámetros para el Diseño de Página +======================================= + +`\headheight' + Altura de la caja que contiene el encabezado. El predeterminado es + `30pt', salvo en la clase `book', donde este varÃa con el tamaño de + letra. + +`\headsep' + Distancia vertical entre la lÃnea inferior de la cabecera y la + parte superior del texto principal. El predeterminado es `25pt', + salvo en la clase `book', donde este varÃa con el tamaño de letra. + +`\footskip' + Distancia desde la lÃnea base de la última lÃnea de texto a la + lÃnea base del pié de página. El predeterminado es `30pt', salvo + en la clase `book', donde este varÃa con el tamaño de letra. + +`\linewidth' + Ancho de la lÃnea actual; el predeterminado varÃa con el tamaño de + fuente, el ancho del papel, el modo two-column, etc. Para un + documento `article' en `10pt', este se establece a `345pt'; en modo + two-column, este cambia a `229.5pt'. + +`\textheight' + La altura vertical normal del cuerpo de la página; el + predeterminado varÃa con el tamaño de letra, clase de documento, + etc. Para un documento `article' o `report' en `10pt', este se + fija a `43\baselineskip'; para `book', es `41\baselineskip'. Para + `11pt', es `38\baselineskip' y para `12pt', `36\baselineskip'. + +`\textwidth' + El ancho horizontal normal del cuerpo de la página; el + predeterminado varÃa de la manera usual. Para un documento + `article' o `report', es `345pt' en `10pt', `360pt' en `11pt' y + `390pt' en `12pt'. Para un documento `book', es `4.5in' en `10pt' + y `5in' en `11pt' o `12pt'. + +`\topmargin' + Espacio entre la parte superior de la página TeX (de manera + predeterminada, una pulgada en la parte superior del papel) y en la + parte superior del encabezado. El predeterminado se calcula + basándose en muchos otros parámetros: `\paperheight − 2in − + \headheight − \headsep − \textheight − \footskip', y luego se + divide entre dos. + +`\topskip' + La distancia mÃnima entre la parte superior del cuerpo de la página + y la lÃnea base de la primer lÃnea de texto. Para clases estándar, + el predeterminado es el mismo que el tamaño de letra, por ejemplo, + `10pt' en `10pt'. + + +File: latex2e-es.info, Node: Seccionado, Next: Referencias Cruzadas, Prev: Diseño, Up: Top + +6 Seccionado +************ + +Las instrucciones de seccionado proporcionan los medios para estructurar +su texto en unidades: + +`\part' + +`\chapter' + (únicamente las clases report y book) + +`\section' + +`\subsection' + +`\subsubsection' + +`\paragraph' + +`\subparagraph' + + Todas las instrucciones de seccionado tienen la misma forma general, +por ejemplo, + + \chapter[tÃtulobreve]{tÃtulo} + + Además de proporcionar el encabezado tÃtulo en el texto principal, el +tÃtulo de la sección puede aparecer en otros dos lugares: + + 1. La tabla de contenido. + + 2. El tÃtulo breve en la parte superior de la página. + + Tal vez no quiera el mismo texto en estos lugares como en el texto +principal. Para controlar esto, las instrucciones de seccionado tienen +un argumento opcional, toctitle que, cuando se proporciona, especifica +el texto de esos otros lugares. + + Además, todas las instrucciones de seccionado tienen formas con `*' +que imprimen el tÃtulo de la manera usual, pero no incluyen un número y +no producen una entrada en la tabla de contenido. Por ejemplo: + + \section*{Preámbulo} + + La instrucción `\appendix' cambia la manera en que se numeran las +siguientes unidades de sección. La instrucción `\appendix' en sà misma +no genera texto y no afecta la númeración de las partes. El uso normal +de esta instrucción es algo asà como: + + \chapter{Un CapÃtulo} + … + \appendix + \chapter{El Primer Apéndice} + + El contador `secnumdepth' controla la impresión de los números de +sección. La configuración + + \setcounter{secnumdepth}{nivel} + +suprime los números en encabezados y cualquier profundidad > nivel, +donde `chapter' es el nivel cero. (*Note \setcounter::.) + + +File: latex2e-es.info, Node: Referencias Cruzadas, Next: Entornos, Prev: Seccionado, Up: Top + +7 Referencias Cruzadas +********************** + +Una razón para numerar cosas como figuras y ecuaciones es para referir +al lector a ellas, como en “Vea la Figura 3 para más detallesâ€. + +* Menu: + +* \label:: Asigna un nombre simbólico a una parte del texto. +* \pageref:: Referencia a un número de página. +* \ref:: Referencia a una sección, figura o similar. + + +File: latex2e-es.info, Node: \label, Next: \pageref, Up: Referencias Cruzadas + +7.1 `\label' +============ + +Sinopsis: + + \label{clave} + + Una instrucción `\label' que aparece en un texto normal asigna a +clave el número de la unidad de sección actual; que aparece dentro de un +entorno numerado asignando ese número a clave. + + Un nombre de clave puede consistir de cualquier secuencia de letras, +dÃgitos, o caracteres de puntuación. Distingue entre letras mayúsculas +y minúsculas. + + Para evitar la creación accidental de dos etiquetas con el mismo +nombre, es común el uso de etiquetas que consisten de un prefijo y un +sufijo, separados por una coma o un punto. Algunos prefijos utilizados +convencionalmente: + +`ch' + para capÃtulos + +`sec' + para instrucciones de seccionado de bajo nivel + +`fig' + para figuras + +`tab' + para tablas + +`eq' + para ecuaciones + + Por lo tanto, una etiqueta para una figura parecerÃa como `fig:snark' +o `fig.snark'. + + +File: latex2e-es.info, Node: \pageref, Next: \ref, Prev: \label, Up: Referencias Cruzadas + +7.2 `\pageref{clave}' +===================== + +Sinopsis: + + \pageref{clave} + + La instrucción `\pageref'{clave} produce el número de página del +lugar en el texto en donde aparece la instrucción `\label'{clave}. + + +File: latex2e-es.info, Node: \ref, Prev: \pageref, Up: Referencias Cruzadas + +7.3 `\ref{clave}' +================= + +Sinopsis: + + \ref{clave} + + La instrucción `\ref' produce el número de la unidad de sección de la +ecuación, pie de página, figura, …, de la instrucción `\label' +correspondiente (*note \label::). Esta no produce ningún texto, como +por ejemplo la palabra `Sección' o `figura', únicamente el número. + + +File: latex2e-es.info, Node: Entornos, Next: Saltos de LÃnea, Prev: Referencias Cruzadas, Up: Top + +8 Entornos +********** + +LaTeX proporciona muchos entornos para marcar cierto texto. Cada +entorno comienza y termina de la misma manera: + + \begin{nombreentorno} + ... + \end{nombreentorno} + +* Menu: + +* abstract:: Produce un resumen. +* array:: Matrices Matemáticas. +* center:: LÃneas centradas. +* description:: Listas etiquetadas. +* displaymath:: Fórmulas que aparecen en su propia lÃnea. +* document:: Encierra todo el documento. +* enumerate:: Listas numeradas. +* eqnarray:: Secuencias de ecuaciones alineadas. +* equation:: Ecuación mostrada. +* figure:: Figuras flotantes. +* flushleft:: LÃneas alineada a la izquierda. +* flushright:: LÃneas alineadas a la derecha. +* itemize:: Listas con viñetas. +* letter:: Cartas +* list:: Entorno lista genérica. +* math:: Matemáticas en lÃnea. +* minipage:: Página miniatura. +* picture:: Imagen con texto, flechas, lÃneas y cÃrculos. +* quotation:: Entorno con sangrÃa y párrafo con sangrÃa. +* quote:: Entorno con sangrÃa sin sangrÃa de párrafo. +* tabbing:: Alineación de texto de manera arbitraria. +* table:: Tablas flotantes. +* tabular:: Alinea texto en columnas. +* thebibliography:: BibliografÃa o lista de referencia. +* theorem:: Teoremas, lemas, etc. +* titlepage:: Para elaborar portadas a mano. +* verbatim:: Simulación de entrada con máquina de escribir. +* verse:: Para poesÃa y otras cosas. + + +File: latex2e-es.info, Node: abstract, Next: array, Up: Entornos + +8.1 `abstract' +============== + +Sinopsis: + \begin{abstract} + ... + \end{abstract} + + Entorno para producir un resumen, posiblemente de varios párrafos. + + +File: latex2e-es.info, Node: array, Next: center, Prev: abstract, Up: Entornos + +8.2 `array' +=========== + +Sinopsis: + + \begin{array}{plantilla} + texto col1&texto col1&coln}\\ + ... + \end{array} + + Las matrices matemáticas se producen con el entorno `array', +normalmente dentro de un entorno `equation' (*note equation::). Tiene +un único argumento plantilla obligatorio que describe el número de +columnas y la alineación dentro de ellas. Cada columna col se +especifica por una sola letra que indica el número de elementos y deben +tener el formato de la siguiente manera: + +`c' + centrada + +`l' + alineada a la izquierda + +`r' + alineada a la derecha + + La entradas de columna son separadas con `&'. Las entradas de +columna pueden incluir otras instrucciones LaTeX. Cada fila de la +matriz se termina con `\\'. + + En la plantilla, la construcción `@{texto}' coloca texto entre +columnas en cada fila. + + He aquà un ejemplo: + + \begin{equation} + \begin{array}{lrc} + izquierda1 & derecha1 & centrado1 \\ + izquierda2 & derecha2 & centrado2 \\ + \end{array} + \end{equation} + + El parámetro `\arraycolsep' define la mitad del ancho del espacio de +separación entre columnas; el predeterminado es `5pt'. *Note tabular::, +para otros parámetros que afectan el formato en entornos `array', a +saber `\arrayrulewidth' y `\arraystretch'. + + El entorno `array' únicamente se puede utilizar en modo math. + + +File: latex2e-es.info, Node: center, Next: description, Prev: array, Up: Entornos + +8.3 `center' +============ + +Sinopsis: + + \begin{center} + lÃnea1 \\ + lÃnea2 \\ + \end{center} + + El entorno `center' le permite crear un párrafo consistente de lÃneas +que están centradas respecto al margen izquierdo y derecho de la página +actual. Cada lÃnea es terminada con dobles barras inversas `\\'. + +* Menu: + +* \centering:: Forma declarativa para el entorno `center'. + + +File: latex2e-es.info, Node: \centering, Up: center + +8.3.1 `\centering' +------------------ + +La declaración `\centering' corresponde al entorno `center'. Esta +declaración se puede utilizar dentro de un entorno tal como `quote' o en +un `parbox'. Por lo tanto, el texto de una figura o una tabla se puede +centrar en la página poniendo una instrucción `\centering' al principio +de la figura o en el entorno table. + + A diferencia del entorno `center', la instrucción `\centering' no +comienza un nuevo párrafo; esta simplemente cambia el formato que LaTeX +aplica a las unidades de párrafo. Para afectar el formato de la unidad +de párrafo, el alcance de la declaración debe contener una lÃnea en +blanco o la instrucción `\end' (de un entorno tal como quote), que +finaliza la unidad de párrafo. + + He aquà un ejemplo: + + \begin{quote} + \centering + primer lÃnea \\ + segunda lÃnea \\ + \end{quote} + + +File: latex2e-es.info, Node: description, Next: displaymath, Prev: center, Up: Entornos + +8.4 `description' +================= + +Sinopsis: + + \begin{description} + \item [etiqueta1] elemento1 + \item [etiqueta2] elemento2 + ... + \end{description} + + El entorno `description' se utiliza para hacer listas etiquetadas. +Cada etiqueta es compuesta tipográficamente en negrita, alineada a la +derecha. El texto del elemento puede contener múltiples párrafos. + + Otra variación: debido a que el estilo negrita se aplica a las +etiquetas, si usted compone una etiqueta en máquina de escribir usando +`\texttt', obtendrá una máquina de escribir en negrita: +`\item[\texttt{máquina de escribir y negrita}]'. Esta también puede +estar en negrita, entre otras cuestiones. Para obtener sólo en máquina +de escribir, use `\tt', que restablece todas las variaciones de otros +estilos: `\item[{\tt máquina de escribir simple}]'. + + Para detalles acerca del espaciado en listas, vea *note itemize::. + + +File: latex2e-es.info, Node: displaymath, Next: document, Prev: description, Up: Entornos + +8.5 `displaymath' +================= + +Sinopsis: + + \begin{displaymath} + fórmula matemática + \end{displaymath} + +o + + \[math\] + + El entorno `displaymath' (`\[...\]' es un sinónimo) de composición +tipográfica de texto math en una lÃnea independiente, centrada de manera +predeterminada. La opción global `fleqn' produce ecuaciones alineadas a +la izquierda; vea *note Opciones de Clase de Documento::. + + No se añade un número de ecuación al texto de `displaymath'; Para +obtener un número de ecuación, utilice el entorno `equation' (*note +equation::). + + +File: latex2e-es.info, Node: document, Next: enumerate, Prev: displaymath, Up: Entornos + +8.6 `document' +============== + +El entorno `document' encierra el cuerpo de un documento. este es +obligatorio en cada documento LaTeX. *Note Iniciando y Finalizando::. + + +File: latex2e-es.info, Node: enumerate, Next: eqnarray, Prev: document, Up: Entornos + +8.7 `enumerate' +=============== + +Sinopsis: + + \begin{enumerate} + \item elemento1 + \item elemento2 + ... + \end{enumerate} + + El entorno `enumerate' produce una lista numerada. Las enumeraciones +se pueden anidar unas dentro de otras, hasta cuatro niveles de +profundidad. Estas también se pueden anidar en otros entornos de +párrafo, tal como `itemize' (*note itemize::) y `description' (*note +description::). + + Cada elemento de una lista enumerada comienza con una instrucción +`\item'. En el entorno por lo menos debe haber una instrucción `\item'. + + De manera predeterminada, la numeración de cada nivel se hace de la +siguiente manera: + + 1. 1., 2., … + + 2. (a), (b), … + + 3. i., ii., … + + 4. A., B., … + + El entorno `enumerate' usa los contadores `\enumi' hasta `\enumiv' +(*note Contadores::). Si se proporciona el argumento opcional a +`\item', el contador no se incrementa por cada elemento. + + El entorno `enumerate' utiliza las instrucciones desde `\labelenumi' +hasta `\labelenumiv' para producir la etiqueta predeterminada. Por lo +tanto, usted puede usar `\renewcommand' para cambiar las etiquetas +(*note \newcommand y \renewcommand::). Por ejemplo, para hacer que el +primer nivel use letras mayúsculas: + + \renewcommand{\labelenumi}{\Alph{enumi}} + + +File: latex2e-es.info, Node: eqnarray, Next: equation, Prev: enumerate, Up: Entornos + +8.8 `eqnarray' +============== + + \begin{eqnarray} (o `eqnarray*') + fórmula1 \\ + fórmula2 \\ + ... + \end{eqnarray} + + El entorno `eqnarray' se utiliza para mostrar una secuencia de +ecuaciones o desigualdades. Es muy parecido a un entorno `array' de +tres columnas, con filas consecutivas separadas por `\\' y elementos +consecutivos en una fila, separados por un `&'. + + también puede utilizar `\\*' para separar ecuaciones independientes, +con su propósito normal de no permitir saltos de página en esa lÃnea. + + Se coloca un número de ecuación en cada lÃnea a menos que la lÃnea +tenga una instrucción `\nonumber'. Alternativamente, la forma del +entorno con `*' (`\begin{eqnarray*} ... \end{eqnarray*}') debe omitir +por completo la numeración de la ecuación, al tiempo que el mismo +comienza con `eqnarray'. + + La instrucción `\lefteqn' se utiliza para dividir grandes fórmulas a +través de varias lÃneas. Su argumento de composición tipográfica en el +estilo de visualización alinea a la izquierda en una caja de ancho cero. + + +File: latex2e-es.info, Node: equation, Next: figure, Prev: eqnarray, Up: Entornos + +8.9 `equation' +============== + +Sinopsis: + + \begin{equation} + fórmula-matemática + \end{equation} + + El entorno `equation' comienza un entorno `displaymath' (*note +displaymath::), por ejemplo, centrando en la página el texto math, y +además colocando el número de ecuación en el margen derecho. + + +File: latex2e-es.info, Node: figure, Next: flushleft, Prev: equation, Up: Entornos + +8.10 `figure' +============= + + \begin{figure[*]}[úbicación] + figbody + \label{etiqueta} + \caption[tÃtulobreve]{texto} + \end{figure} + + Las figuras son objetos que no forman parte del texto normal, y en su +lugar son “flotados†a un lugar conveniente, como en la parte superior +de una página. Las figuras no se dividen entre dos páginas. + + Cuando se compone tipográficamente en columnas dobles, la forma +favorita produce un ancho completo (a través de las dos columnas). + + El argumento opcional `[ubicación]' determina donde debe tratar de +colocar LaTeX su figura. Hay cuatro lugares donde LaTeX, posiblemente, +pueda colocar un flotante: + +`t' + (Top)—en lo alto de una página de texto. + +`b' + (Bottom)—en la parte inferior de una página de texto. No obstante, + `b' no se permite para flotantes de ancho completo (`figure*') en + entornos con columnas dobles. Para mejorar esto, utilice el + paquete `stfloats' o `dblfloatfix', pero vea el debate de + advertencias en el FAQ: + `http://www.tex.ac.uk/cgi-bin/texfaq2html?label=2colfloat'. + +`h' + (Here)—aquÃ, en la posición donde aparece el entorno figure en el + texto. Sin embargo, este no está permitido por sà mismo, + automáticamente se añade `t'. Para forzar que una figura + absolutamente aparezca “aquÃâ€, utilice el paquete `float' y use la + letra de ubicación `H'. (Este paquete también ofrece otras + opciones). + +`p' + (Página de flotantes)—en una página de flotantes separada, misma + que es una página que no contiene texto, únicamente flotantes. + + Las clases estándar report y article utilizan la ubicación +predeterminada `tbp'. + + El cuerpo de la figura se compone de cualquier texto, instrucciones +LaTeX, etc., que desee. + + La instrucción `\caption' especifica el texto del tÃtulo de la +figura. El tÃtulo de manera predeterminada lleva el número. Si +loftitle está presente, esta se utiliza en la lista de figuras en lugar +del texto (*note Tablas de Contenido::). + + La fracción máxima de la página que se permite sea ocupada por + flotantes en la parte inferior; el predeterminado es `.3'. + +`\floatpagefraction' + La fracción mÃnima de una página flotante que deben ocupar los + flotantes; predeterminado a `.5'. + +`\floatsep' + Espacio entre flotantes en la parte superior o inferior de una + página; predeterminado a `12pt plus2pt minus2pt'. + +`\intextsep' + Espacio por encima y por debajo de un flotante en medio del texto + principal; predeterminado a `12pt plus2pt minus2pt' para estilos de + `10pt' y `11pt', `14pt plus4pt minus4pt' para `12pt'. + +`\textfloatsep' + Espacio entre el último/primero flotante en la parte + superior/inferior de una página; de manera predeterminada a `20pt + plus2pt minus4pt'. + +`\textfraction' + MÃnima fracción de una página que debe ser texto; si los flotantes + ocupan mucho espacio preserva tanto texto como sea posible, para + que los flotantes sean trasladados a una página diferente. El + predeterminado es `.2'. + +`\topfraction' + Máxima fracción en la parte superior de una página que se puede + ocupar antes de los flotantes; el predeterminado es `.7'. + + +File: latex2e-es.info, Node: flushleft, Next: flushright, Prev: figure, Up: Entornos + +8.11 `flushleft' +================ + + \begin{flushleft} + lÃnea1 \\ + lÃnea2 \\ + ... + \end{flushleft} + + El entorno `flushleft' le permite crear un párrafo consistente de +lÃneas que están alineadas en el margen de la mano izquierda y no están +justificadas a la derecha. Cada lÃnea se debe terminar con `\\'. + +* Menu: + +* \raggedright:: Forma declarativa del entorno `flushleft'. + + +File: latex2e-es.info, Node: \raggedright, Up: flushleft + +8.11.1 `\raggedright' +--------------------- + +La declaración `\raggedright' corresponde al entorno `flushleft'. Esta +declaración se puede utilizar dentro de un entorno tal como `quote' o en +un `parbox'. + + A diferencia del entorno `flushleft', la instrucción `\raggedright' +no comienza un nuevo párrafo; esta únicamente cambia como aplica LaTeX +el formato a las unidades de párrafo. Para afectar el formato de la +unidad párrafo, el alcance de la declaración debe contener una lÃnea en +blanco o la instrucción `\end' que termina la unidad de párrafo. + + +File: latex2e-es.info, Node: flushright, Next: itemize, Prev: flushleft, Up: Entornos + +8.12 `flushright' +================= + + \begin{flushright} + lÃnea1 \\ + lÃnea2 \\ + ... + \end{flushright} + + El entorno `flushright' le permite crear un párrafo consistente de +lÃneas que están alineadas en el margen a mano derecha e irregulares a +la izquierda. Cada lÃnea se debe terminar con `\\'. + +* Menu: + +* \raggedleft:: Forma declarativa del entorno `flushright'. + + +File: latex2e-es.info, Node: \raggedleft, Up: flushright + +8.12.1 `\raggedleft' +-------------------- + +La declaración `\raggedleft' corresponde al entorno `flushright'. Esta +declaración se puede utilizar dentro de un entorno tal como `quote' o en +un `parbox'. + + A diferencia del entorno `flushright', la instrucción `\raggedleft' +no comienza un nuevo párrafo; esta únicamente cambia como aplica LaTeX +el formato a las unidades de párrafo. Para afectar el formato de la +unidad párrafo, el alcance de la declaración debe contener una lÃnea en +blanco o la instrucción `\end' que termina la unidad de párrafo. + + +File: latex2e-es.info, Node: itemize, Next: letter, Prev: flushright, Up: Entornos + +8.13 `itemize' +============== + +Sinopsis: + + \begin{itemize} + \item elemento1 + \item elemento2 + ... + \end{itemize} + + El entorno `itemize' produce una lista “no ordenadaâ€, “con viñetasâ€. +Se pueden anidar entorno itemize dentro de otros, hasta cuatro niveles +de profundidad. También se pueden anidar en otros entornos que marcan +párrafos, tal como `enumerate' (*note enumerate::). + + Cada elemento de una lista `itemize' comienza con una instrucción +`\item'. En el entorno por lo menos debe haber una instrucción `\item'. + + De forma predeterminada, las marcas en cada nivel tienen esta +apariencia: + + 1. • (bala) + + 2. -- (guión en negrita) + + 3. * (asterisco) + + 4. . (punto centrado, aquà representado como un punto) + + El entorno `itemize' utiliza las instrucciones desde `\labelitemi' +hasta `\labelitemiv' para producir la etiqueta predeterminada. De modo +que, usted puede usar `\renewcommand' para cambiar las etiquetas. Por +ejemplo, para que en primer nivel utilice diamantes: + + \renewcommand{\labelitemi}{$\diamond$} + + Los parámetros desde `\leftmargini' hasta `\leftmarginvi' definen la +distancia entre el margen izquierdo del entorno envolvente y el margen +izquierdo de la lista. Por convención, `\leftmargin' se fija al +`\leftmarginN' adecuado cuando ingresa a un nuevo nivel de anidamiento. + + El predeterminado varÃa desde `.5em' (el nivel de anidamiento +superior) a `2.5em' (el primer nivel), y se reduce un poco en modo +two-column. En este ejemplo se reduce mucho el espacio del margen para +las listas anidadas: + + \setlength{\leftmargini}{1.25em} % predeterminado 2.5em + + Algunos parámetros que afectan el formato de la lista: + +`\itemindent' + Sangrado extra antes de cada elemento de una lista; predeterminado + a cero. + +`\labelsep' + Espacio entre la etiqueta y el texto de un elemento; predeterminado + a `.5em'. + +`\labelwidth' + Ancho de la etiqueta; predeterminado a `2em', o `1.5em' en modo + two-column. + +`\listparindent' + SangrÃa extra añadida al segundo y subsecuentes párrafos, dentro de + un elemento de la lista; predeterminado a `0pt'. + +`\rightmargin' + Distancia horizontal entre el margen derecho de la lista y el + entorno envolvente; de manera predeterminada `0pt', salbo en los + entornos `quote', `quotation' y `verse', donde se hace igual a + `\leftmargin'. + + Parámetros que afectan el espaciamiento vertical entre elementos de +la lista (más bien libre, de manera predeterminada). + +`\itemsep' + Espacio vertical entre elementos. El predeterminado es `2pt + plus1pt minus1pt' para `10pt' documentos, `3pt plus2pt minus1pt' + para `11pt' y `4.5pt plus2pt minus1pt' para `12pt'. + +`\parsep' + Espacio vertical extra entre párrafos dentro de un elemento de la + lista. Los predeterminados son los mismos que para `\itemsep'. + +`\topsep' + Espacio vertical entre el primer elemento y el párrafo anterior. + + Para listas de nivel superior, el predeterminado es `8pt plus2pt + minus4pt' para `10pt' documentos, `9pt plus3pt minus5pt' para + `11pt' y `10pt plus4pt minus6pt' para `12pt'. Estos se reducen en + listas anidadas. + +`\partopsep' + Espacio extra añadido a `\topsep' cuando el entorno lista comienza + un párrafo. El valor predeterminado es `2pt plus1pt minus1pt' para + `10pt' documentos, `3pt plus1pt minus1pt' para `11pt' y `3pt + plus2pt minus2pt' para `12pt'. + + Sobre todo para listas con elementos cortos, puede ser conveniente +eludir los espacios entre ellos. He aquà un ejemplo de una definición +del entorno `itemize*' sin espacio extra entre elementos o entre +párrafos dentro de un solo elemento (`\parskip' no es especÃfico de la +lista, *note \parskip::): + + \newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} + + +File: latex2e-es.info, Node: letter, Next: list, Prev: itemize, Up: Entornos + +8.14 Entorno `letter': Escribiendo Cartas +========================================= + +Este entorno se utiliza para crear cartas. *Note Cartas::. + + +File: latex2e-es.info, Node: list, Next: math, Prev: letter, Up: Entornos + +8.15 `list' +=========== + +El entorno `list' es un entorno genérico que se utiliza para definir +mucho de los entornos más especÃficos. Este rara vez se utiliza en +documentos, pero a muy menudo en las macros. + + \begin{list}{etiquetado}{espaciado} + \item elemento1 + \item elemento2 + ... + \end{list} + + El argumento obligatorio etiquetado especifica como se deben +etiquetar los elementos (a menos que se especifique el argumento +opcional `\item'). Este argumento es una pieza de texto que se inserta +en una caja para formar la etiqueta. Este se puede y suele contener +otras instrucciones LaTeX. + + El argumento obligatorio spacing contiene instrucciones para cambiar +los parámetros de espaciado para la lista. Este argumento por lo +regular está vacÃo, es decir, `{}', lo cual deja el espaciado +predeterminado. + + +File: latex2e-es.info, Node: math, Next: minipage, Prev: list, Up: Entornos + +8.16 `math' +=========== + +Sinopsis: + + \begin{math} + fórmula-matemática + \end{math} + + El entorno `math' inserta la fórmula math dada dentro del texto +actual. `\(...\))' y `$...$' son sinónimos. *Note Fórmulas +Matemáticas::. + + +File: latex2e-es.info, Node: minipage, Next: picture, Prev: math, Up: Entornos + +8.17 `minipage' +=============== + + \begin{minipage}[posición][alto][pos-interna]{ancho} + texto + \end{minipage} + + El entorno `minipage' compone tipográficamente su cuerpo de texto en +un bloque que no debe abarcar varias páginas. Este es similar a la +instrucción `\parbox' (*note \parbox::), pero a diferencia de `\parbox', +se pueden utilizar otros entornos de marcado de párrafos dentro de una +minipágina. + + Los argumentos son los mismos que para `\parbox' (*note \parbox::). + + De forma predeterminada, en el entorno `minipage' los párrafos no +tienen sangrÃa. Usted puede restablecer la sangrÃa con una instrucción +tal como `\setlength{\parindent}{1pc}'. + + La notas al pie en un entorno `minipage' son manipuladas de una +manera que es especialmente útil para poner notas en figuras o tablas. +Una instrucción `\footnote' o `\footnotetext' coloca la nota al pie en +la parte inferior de la minipágina en lugar de en la parte inferior de +la página, y esta utiliza el contador `\mpfootnote' en lugar del +contador normal `footnote' (*note Contadores::). + + No obstante, no ponga una minipágina dentro de otra si usted está +usando notas al pie; estas pueden terminar mal en la parte inferior de +la minipágina. + + +File: latex2e-es.info, Node: picture, Next: quotation, Prev: minipage, Up: Entornos + +8.18 `picture' +============== + + \begin{picture}(ancho,alto)(desplazamiento x,desplazamiento y) + … instrucciones de imagen … + \end{picture} + + El entorno `picture' le permite crear casi cualquier clase de imagen +que desee que contenga su texto, lineas, flechas y cÃrculos. Usted le +dice a LaTeX dónde colocar las cosas en la imagen especificando sus +coordenadas. Una coordenada es un número que puede tener un punto +decimal y un signo menos — un número como `5', `0.3' o `-3.1416'. Una +coordenada especifica una longitud en múltiplos de la unidad de longitud +`\unitlength', por lo que si `\unitlength' se ha establecido en `1cm', +entonces la coordenada 2.54 especifica una longitud de 2.54 centÃmetros. +Sólo debe cambiar el valor de `\unitlength', utilizando la instrucción +`\setlength', fuera del entorno `picture'. + + Una posición es un par de coordenadas, por ejemplo, `(2.4, -5)', que +especifican el punto con coordenada x `2.4' y coordenada y `-5'. Las +coordenadas se especifican en la forma habitual con respecto a un +origen, que normalmente está en la esquina inferior izquierda de la +imagen. Tenga en cuenta que cuando una posición se presenta como un +argumento, no se encierra entre llaves; los paréntesis sirven para +delimitar el argumento. + + El entorno `picture' tiene un argumento obligatorio, el cual es una +`posición'. este especifica el tamaño de la imagen. El entorno produce +una caja rectangular con la anchura y altura determinada por los +argumentos de las coordenadas x e y. + + El entorno `picture' también tiene un argumento opcional `posición', +seguido del argumento `tamaño', que puede cambiar el origen. (A +diferencia de los argumentos opcionales, este argumento no está +contenido entre corchetes). El argumento opcional proporciona las +coordenadas del punto en la esquina inferior izquierda de la imagen (con +el cual se determina el origen). Por ejemplo, si `\unitlength' se ha +fijado a `1mm', la instrucción + + \begin{picture}(100,200)(10,20) + +produce una imagen de 100 milÃmetros de ancho y 200 milÃmetros de +altura, cuya esquina inferior izquierda está en el punto (10,20) y cuya +esquina superior derecha está en el punto (110,220). La primera vez que +haga un dibujo, normalmente se omite el argumento opcional, dejando el +origen en el ángulo inferior izquierdo. Si a continuación desea +modificar su imagen, trasladando todo, basta con añadir el argumento +opcional apropiado. + + El argumento obligatorio del entorno determina el tamaño nominal de +la imagen. Esta no necesita tener ninguna relación con el tamaño de la +imagen real; Felizmente LaTeX le permitirá poner cosas fuera de la +imagen, o incluso fuera de la página. El tamaño nominal de la imagen lo +utiliza LaTeX para determinar cuánto espacio dejar para ello. + + Todo lo que aparece en una imagen es dibujado por la instrucción +`\put'. La instrucción + + \put (11.3,-.3){...} + +coloca el objeto especificado por `...' en la imagen, con su punto de +referencia en las coordenadas (11.3, -.3). Los puntos de referencia +para distintos objetos se describen a continuación. + + La instrucción `\put' crea una "caja LR". Puede poner cualquier cosa +que vaya en una `\mbox' (*note \mbox::) en el argumento texto de la +instrucción `\put'. Al hacer esto, el punto de referencia será la +esquina inferior izquierda de la caja. + + Las instrucciones para `picture' están descritas en las siguientes +secciones. + +* Menu: + +* \circle:: Dibuja un cÃrculo. +* \makebox (imagen):: Dibuja un cuadro del tamaño especificado. +* \framebox (imagen):: Dibuja una caja rodeada con un marco. +* \dashbox:: Dibuja un cuadro de lÃneas discontinuas. +* \frame:: Dibuja un marco alrededor de un objeto. +* \line:: Dibuja una lÃnea recta. +* \linethickness:: Ajusta el grosor de la lÃnea. +* \thicklines:: Una lÃnea de espesor más grueso. +* \thinlines:: El grosor de la lÃnea predeterminado. +* \multiput:: Dibuja varias instancias de un objeto. +* \oval:: Dibuja una elipse. +* \put:: Coloca un objeto en un determinado lugar. +* \shortstack:: Hace un montón de objetos. +* \vector:: Dibuja una lÃnea con una flecha. + + +File: latex2e-es.info, Node: \circle, Next: \makebox (imagen), Up: picture + +8.18.1 `\circle' +---------------- + + \circle[*]{diámetro} + + La instrucción `\circle' produce un cÃrculo con un diámetro lo más +cercano posible al especificado. La forma con `*' de la instrucción +dibuja un cÃrculo sólido. + + Se pueden dibujar cÃrculos de hasta 40 pt. + + +File: latex2e-es.info, Node: \makebox (imagen), Next: \framebox (imagen), Prev: \circle, Up: picture + +8.18.2 `\makebox' +----------------- + +`\makebox(ancho,alto)[posición]{...}' + + La instrucción `\makebox' para el entorno picture es similar a la +instrucción normal `\makebox' excepto que usted debe especificar el +`ancho' y `alto' en múltiplos de `\unitlength'. + + El argumento opcional, `[posición]', especifica el cuadrante en el +que debe aparecer el texto. Usted puede seleccionar hasta dos de los +siguientes: + +`t' + Mueve el elemento a la parte superior del rectángulo. + +`b' + Mueve el elemento a la parte inferior. + +`l' + Mueve el elemento a la izquierda. + +`r' + Mueve el elemento hacia la derecha. + + *Note \makebox::. + + +File: latex2e-es.info, Node: \framebox (imagen), Next: \dashbox, Prev: \makebox (imagen), Up: picture + +8.18.3 `\framebox' +------------------ + +Sinopsis: + + \framebox(ancho,alto)[posición]{...} + + La instrucción `\framebox' es como `\makebox' (vea la sección +anterior), excepto que esta coloca un marco en el exterior alrededor de +la caja que crea. + + La instrucción `\framebox' produce una regla de espesor `\fboxrule', +y deja un espacio `\fboxsep' entre la regla y el contenido de la caja. + + +File: latex2e-es.info, Node: \dashbox, Next: \frame, Prev: \framebox (imagen), Up: picture + +8.18.4 `\dashbox' +----------------- + +Dibuja un cuadro con una lÃnea discontinua. Sinopsis: + + \dashbox{dlargo}(rancho,ralto)[posición]{texto} + + `\dashbox' crea un rectángulo discontinuo alrededor del texto en un +entorno `picture'. Los guiones son de dlargo unidades de largo, y el +rectángulo tiene una anchura total de rancho y una altura de ralto. El +texto es posicionado en la posición opcional. + + Un cuadro de lÃneas discontinuas se ve mejor cuando `rancho' y +`ralto' son múltiplos de `dlargo'. + + +File: latex2e-es.info, Node: \frame, Next: \line, Prev: \dashbox, Up: picture + +8.18.5 `\frame' +--------------- + +Sinopsis: + + \frame{texto} + + La instrucción `\frame' coloca un marco rectangular alrededor de +texto. El punto de referencia es la esquina inferior izquierda del +marco. No añade espacio extra entre el marco y el objeto. + + +File: latex2e-es.info, Node: \line, Next: \linethickness, Prev: \frame, Up: picture + +8.18.6 `\line' +-------------- + +Sinopsis: + + \line(declivex,declivey){longitud} + + La instrucción `\line' dibuja una lÃnea con la longitud dada y +declive declivex/declivey. + + LaTeX estándar únicamente puede dibujar lÃneas con declive = x/y, +donde x y y tienen valores enteros desde −6 hasta 6. Para lÃneas de +cualquier declive, por no hablar de otras formas, vea el paquete +`curve2e' y muchos, muchos otros paquetes en CTAN. + + +File: latex2e-es.info, Node: \linethickness, Next: \thicklines, Prev: \line, Up: picture + +8.18.7 `\linethickness' +----------------------- + +La instrucción `\linethickness{espesor}' declara el grosor de las lÃneas +horizontales y verticales en un entorno picture para que sean de +espesor, el cual debe ser una longitud positiva. + + `\linethickness' no afecta el espesor de las lÃneas inclinadas, +cÃrculos o los cuartos de cÃrculo dibujados por `\oval'. + + +File: latex2e-es.info, Node: \thicklines, Next: \thinlines, Prev: \linethickness, Up: picture + +8.18.8 `\thicklines' +-------------------- + +La instrucción `\thicklines' es un espesor de lÃnea alternativo para +lÃneas horizontales y verticales en un entorno picture; compárese *note +\linethickness:: y *note \thinlines::. + + +File: latex2e-es.info, Node: \thinlines, Next: \multiput, Prev: \thicklines, Up: picture + +8.18.9 `\thinlines' +------------------- + +La instrucción `\thinlines' es el espesor de lÃnea predeterminado para +lÃneas horizontales y verticales en un entorno picture; compárese *note +\linethickness:: y *note \thicklines::. + + +File: latex2e-es.info, Node: \multiput, Next: \oval, Prev: \thinlines, Up: picture + +8.18.10 `\multiput' +------------------- + +Sinopsis: + \multiput(x,y)(delta_x,delta_y){n}{obj} + + La instrucción `\multiput' copia el objeto obj en un patrón regular +entre imágenes. primero se coloca obj en la posición (x,y), luego en la +posición (x+\delta x,y+\delta y) y asà sucesivamente, n veces. + + +File: latex2e-es.info, Node: \oval, Next: \put, Prev: \multiput, Up: picture + +8.18.11 `\oval' +--------------- + +Sinopsis: + + \oval(ancho,alto)[porción] + + La instrucción `\oval' produce un rectángulo con esquinas +redondeadas. El argumento opcional porción le permite seleccionar la +parte del óvalo vÃa las siguientes letras: + +`t' + selecciona la parte superior; + +`b' + selecciona la parte inferior; + +`r' + selecciona la parte derecha; + +`l' + selecciona la parte izquierda. + + Las “esquinas†del óvalo se hacen con cuartos de cÃrculo con un radio +máximo de 20pt, por lo tanto los “óvalos†grandes se parecen más a cajas +con esquinas redondeadas. + + +File: latex2e-es.info, Node: \put, Next: \shortstack, Prev: \oval, Up: picture + +8.18.12 `\put' +-------------- + +`\put(x coord,y coord){ ... }' + + La instrucción `\put' coloca el elemento especificado por el +argumento obligatorio en las coordenadas proporcionadas. + + +File: latex2e-es.info, Node: \shortstack, Next: \vector, Prev: \put, Up: picture + +8.18.13 `\shortstack' +--------------------- + +Sinopsis: + + \shortstack[posición]{...\\...\\...} + + La instrucción `\shortstack' produce un montón de objetos. Las +posiciones válidas son: + +`r' + Mueve los objetos a la derecha de la pila. + +`l' + Mueve los objetos a la izquierda de la pila + +`c' + Mueve los objetos hacia el centro de la pila (predeterminado) + + Los objetos son separados con `\\'. + + +File: latex2e-es.info, Node: \vector, Prev: \shortstack, Up: picture + +8.18.14 `\vector' +----------------- + +Sinopsis: + + \vector(declive-x,declive-y){longitud} + + La instrucción `\vector' dibuja una lÃnea con una flecha de la +longitud y declive especificados. Los valores x e y deben estar entre +−4 y +4 incluido. + + +File: latex2e-es.info, Node: quotation, Next: quote, Prev: picture, Up: Entornos + +8.19 `quotation' +================ + +Sinopsis: + + \begin{quotation} + texto + \end{quotation} + + A los márgenes del entorno `quotation' se les aplica una sangrÃa en +ambos lados izquierdo y derecho. El texto está justificado en ambos +márgenes. Dejar una lÃnea en blanco entre el texto produce un nuevo +párrafo. + + A diferencia del entorno `quote', cada párrafo normalmente tiene +sangrÃa. + + +File: latex2e-es.info, Node: quote, Next: tabbing, Prev: quotation, Up: Entornos + +8.20 `quote' +============ + +Sinopsis: + + \begin{quote} + texto + \end{quote} + + A los márgenes del entorno `quote' se les aplica una sangrÃa en ambos +lados izquierdo y derecho. El texto está justificado en ambos márgenes. +Dejar una lÃnea en blanco entre el texto produce un nuevo párrafo. + + A diferencia del entorno `quotation', a los párrafos no se les aplica +una sangrÃa. + + +File: latex2e-es.info, Node: tabbing, Next: table, Prev: quote, Up: Entornos + +8.21 `tabbing' +============== + +Sinopsis: + + \begin{tabbing} + fila1col1 \= fila1col2 \= fila1col3 \= fila1col4 \\ + fila2col1 \> \> fila2col3 \\ + ... + \end{tabbing} + + El entorno `tabbing' proporciona una manera de alinear el texto en +columnas. Funciona mediante el establecimiento de tabuladores y +tabulación tanto como si se hubiera hecho en una máquina de escribir +común. Es el más adecuado para los casos en que el ancho de cada +columna es constante y conocido de antemano. + + Este entorno se puede dividir en varias páginas, a diferencia del +entorno `tabular'. + + Las siguientes instrucciones se pueden utilizar dentro de un entorno +`tabbing': + +`\\ tabbing' + Final de lÃnea. + +`\= (tabbing)' + Establece una tabulación en la posición actual. + +`\> (tabbing)' + Avanza a la siguiente tabulación. + +`\<' + Coloca el siguiente texto a la izquierda del margen local (sin + necesidad de cambiar el margen). Sólo se puede usar al comienzo de + la lÃnea. + +`\+' + Mueve hacia la derecha el margen izquierdo del siguiente y todas + las subsecuentes instrucciones de tabulación, empezando la lÃnea de + tabulación, de ser necesario. + +`\-' + Mueve el margen izquierdo hacia la izquierda de la siguiente y + todas las subsecuentes instrucciones de tabulación, comenzando con + la lÃnea de tabulación si es necesario. + +`\' (tabbing)' + Mueve todo lo que ha escrito hasta ahora en la columna actual, es + decir, cualquier cosa desde la instrucción `\>', `\<', `\'', `\\' o + `\kill' más reciente, a la derecha de la columna anterior, a ras de + la tabulación de la columna actual. + +`\` (tabbing)' + Permite poner texto alineado a la derecha contra cualquier + tabulación, incluyendo la tabulación 0. Sin embargo, no puede + mover el texto a la derecha de la última columna porque allà no hay + tabulación. La instrucción `\`' mueve todo el texto que le sigue, + hasta la instrucción `\\' o `\end{tabbing}' que termina la lÃnea, + al margen derecho del entorno tabbing. No debe haber instrucción + `\>' o `\'' entre el `\`' y la instrucción que termina la lÃnea. + +`\a (tabbing)' + En un entorno `tabbing', las instrucciones `\=', `\'' y `\`' no + producen acentos en la manera usual (*note Acentos::). En su + lugar, se utilizan estas instrucciones `\a=', `\a'' y `\a`'. + +`\kill' + Fija una tabulación sin producir texto. Trabaja igual que `\\' + salvo que esta desecha la lÃnea actual en lugar de producir algo + útil. El efecto de cualquier instrucción `\=', `\+' o `\-' en esa + lÃnea seguirá en vigor. + +`\poptabs' + Restaura las posiciones de tabulación salvadas por la última + `\pushtabs'. + +`\pushtabs' + Guarda todas las posiciones de tabulación actuales. Útil para + cambiar temporalmente las posiciones de tabulación en medio de un + entorno `tabbing'. + +`\tabbingsep' + Distancia a la izquierda de la tabulación movida por `\''. + + En este ejemplo se compone tipográficamente una función de Pascal en +el formato tradicional: + + \begin{tabbing} + function \= fact(n : integer) : integer;\\ + \> begin \= \+ \\ + \> if \= n $>$ 1 then \+ \\ + fact := n * fact(n-1) \- \\ + else \+ \\ + fact := 1; \-\- \\ + end;\\ + \end{tabbing} + + +File: latex2e-es.info, Node: table, Next: tabular, Prev: tabbing, Up: Entornos + +8.22 `table' +============ + +Sinopsis: + + \begin{table}[ubicación] + + cuerpo de la tabla + + \caption{tÃtulo de la tabla} + \end{table} + + Las tablas son objetos que no forman parte del texto normal, y por lo +general “flotan†a un lugar conveniente, como la parte superior de una +página. Las tablas no se dividen en dos páginas. + + El argumento opcional `[ubicación]' determina dónde LaTeX trata de +colocar su tabla. Hay cuatro lugares donde LaTeX, posiblemente, pueda +colocar un flotante:; estos son los mismo que los utilizados con el +entorno `figure', y se describen allà (*note figure::). + + Las clases `report' y `article' estándar utilizan la ubicación +`[tbp]' predeterminada. + + El cuerpo de la tabla se compone de cualquier texto, instrucciones +LaTeX, etc., que usted desee. La instrucción `\caption' le permite +colocar un tÃtulo a su tabla. + + +File: latex2e-es.info, Node: tabular, Next: thebibliography, Prev: table, Up: Entornos + +8.23 `tabular' +============== + +Sinopsis: + + \begin{tabular}[ubicación]{columnas} + columna 1 entrada & columna 2 entrada ... & columna n entrada n \\ + ... + \end{tabular} + + o + + \begin{tabular*}{ancho}[posición]{columnas} + columna 1 entrada & columna 2 entrada ... & columna n entrada n \\ + ... + \end{tabular*} + + Estos entornos producen una caja consiste de una secuencia de filas +de elementos, alineadas verticalmente en columnas. + + Se debe utilizar `\\' para especificar el final de cada fila de la +tabla, salvo por la última, en que esta es opcional —a menos que le siga +una instrucción `\hline' (para colocar una raya bajo la tabla). + + Los argumentos obligatorios y opcionales consisten de: + +`ancho' + Especifica la anchura del entorno `tabular*'. Este debe tener + espacio entre las columnas que se puede estirar para llenar el + ancho especificado. + +`posición' + Especifica la posición vertical; de manera predeterminada alinea al + centro el entorno. + + `t' + alineado en la fila superior + + `b' + alineado en la fila inferior + +`columnas' + Especifica el formato de columna. Este consiste en una secuencia + de los siguientes especificadores, correspondientes a la secuencia + de columnas y el material intercolumna. + + `l' + Una columna de elementos alineados a la izquierda. + + `r' + Una columna de elementos alineados a la derecha. + + `' + Una columna de elementos centrados. + + `|' + Una lÃnea vertical que llena la altura y profundidad total del + entorno. + + `@{texto}' + Esta inserta texto en cada fila. Una @-expresión suprime el + espacio intercolumnas insertado normalmente entre columnas; + cualquier espacio deseado entre el texto insertado y los + elementos adyacentes se deberá incluir en texto. Una + instrucción `\extracolsep{ancho}' en una @-expresión provoca + que aparezca un espacio extra de ancho `ancho' a la izquierda + de todas las columnas subsecuentes, hasta que se anule por + otra instrucción `\extracolsep'. A diferencia del espacio + intercolumna ordinario, este espacio adicional no se suprime + por una @-expresión. Una instrucción `\extracolsep' + únicamente se pude utilizar en una @-expresión en el argumento + `columnas'. + + `p{ancho}' + Produce una columna con cada elemento compuesto + tipográficamente en una parbox de ancho ancho, como si fuera + el argumento de una instrucción `\parbox[t]{ancho}'. Sin + embargo, una `\\' en el elemento no puede, salvo en las + siguientes situaciones: + + 1. Dentro de un entorno como `minipage', `array' o + `tabular'. + + 2. Dentro de una `\parbox' explÃcita. + + 3. En el alcance de una declaración `\centering', + `\raggedright' o `\raggedleft'. La última declaración + debe aparecer dentro de llaves o un entorno cuando se + utiliza en un elemento `p'-columna. + + `*{número}{columnas}' + Equivalente a número de copias de columnas, donde número es un + entero positivo y columnas es cualquier lista de + especificadores de columna, la cual puede contener otra + `*-expresión'. + + Parámetros que controlan el formato: + +`\arrayrulewidth' + El espesor de la lÃnea creada por `|', `\hline' y `\vline' en los + entornos `tabular' y `array'; el predeterminado es `.4pt'. + +`\arraystretch' + El factor para escalar el espaciado entre hileras en los entornos + `tabular' y `array'; el predeterminado es `1', para no escalar. + +`\doublerulesep' + Distancia horizontal entre las lÃneas verticles producidas por `||' + en los entornos `tabular' y `array'; el predeterminado es `2pt'. + +`\tabcolsep' + La mitad de la anchura del espacio entre las columnas; el + predeterminado es `6pt'. + + Estas instrucciones se pueden utilizar en el interior de un entorno +`tabular': + +* Menu: + +* \multicolumn:: Hace que un elemento abarque varias columnas. +* \cline:: Dibuja una lÃnea horizontal que abarca algunas columnas. +* \hline:: Dibuja una lÃnea horizontal que abarca todas las columnas. +* \vline:: Dibuja una lÃnea vertical. + + +File: latex2e-es.info, Node: \multicolumn, Next: \cline, Up: tabular + +8.23.1 `\multicolumn' +--------------------- + +Sinopsis: + \multicolumn{columnas}{posición}{texto} + + La instrucción `\multicolumn' provoca que una entrada se extienda por +varias columnas. El primer argumento obligatorio, columnas, especifica +es el número de columnas por abarcar. El segundo argumento obligatorio, +posición, especifica el formato de la entrada; `c' para centrado, `l' +para alineado a la izquierda, `r' para alineado a la derecha. El tercer +argumento obligatorio, texto, especifica el texto a colocar en la +entrada. + + He aquà un ejemplo que muestra dos columnas separadas por un doble +guión; `\multicolumn' se utiliza para el encabezado: + + \begin{tabular}{r@{--}l} + \multicolumn{2}{c}{\bf Unicode}\cr + 0x80&0x7FF \cr + 0x800&0xFFFF \cr + 0x10000&0x1FFFF \cr + \end{tabular} + + +File: latex2e-es.info, Node: \cline, Next: \hline, Prev: \multicolumn, Up: tabular + +8.23.2 `\cline' +--------------- + +Sinopsis: + + \cline{i-j} + + La instrucción `\cline' dibuja un lÃnea horizontal a través de las +columnas especificadas, comenzando en la colúmna i y terminando en la +columna j, que son especificadas en el argumento obligatorio. + + +File: latex2e-es.info, Node: \hline, Next: \vline, Prev: \cline, Up: tabular + +8.23.3 `\hline' +--------------- + +La instrucción `\hline' dibuja una lÃnea horizontal del ancho del +entorno `tabular' o `array' especificado. Se utiliza comúnmente para +para dibujar una lÃnea en la parte superior, inferior y entre filas de +la tabla. + + +File: latex2e-es.info, Node: \vline, Prev: \hline, Up: tabular + +8.23.4 `\vline' +--------------- + +La instrucción `\vline' dibuja una lÃnea vertical extendida a la altura +y profundidad total de su fila. Una instrucción `\hfill' se puede +utilizar para mover la lÃnea hasta el borde de la columna. También se +puede utilizar en una @-expresión. + + +File: latex2e-es.info, Node: thebibliography, Next: theorem, Prev: tabular, Up: Entornos + +8.24 `thebibliography' +====================== + +Sinopsis: + + \begin{thebibliography}{etiqueta-más-amplia} + \bibitem[etiqueta]{clave-de-cita} + ... + \end{thebibliography} + + El entorno `thebibliography' produce una bibliografÃa o lista de +referencia. + + En las clase `article', esta lista de referencia es etiquetada como +“Referenciasâ€; en la clase `report', esta es etiquetada como +“BibliografÃaâ€. Usted puede cambiar la etiqueta (en las clases +estándar) redefiniendo la instrucción `\refname'. Por ejemplo, la +siguiente instrucción la elimina por completo: + + \renewcommand{\refname}{} + + El argumento obligatorio etiqueta-más-amplia es texto que, al momento +de componerla tipográficamente, es tan ancho como la etiqueta producida +por la instrucción `\bibitem'. Se suele dar como `9' para bibliografÃas +de menos de 10 referencias, `99' para las que tienen menos de 100, etc. + +* Menu: + +* \bibitem:: Especifica un elemento de la bibliografÃa. +* \cite:: Hace referencia a un elemento bibliográfico. +* \nocite:: Incluye un elemento en la bibliografÃa. +* Usando BibTeX:: Generando bibliografÃas automáticamente. + + +File: latex2e-es.info, Node: \bibitem, Next: \cite, Up: thebibliography + +8.24.1 `\bibitem' +----------------- + +Sinopsis: + \bibitem[etiqueta]{clave-de-cita} + + La instrucción `\bibitem' genera una entrada etiquetada por etiqueta. +Si se omite el argumento etiqueta, automáticamente se genera un número +utilizando el contador `enumi'. La clave-de-cita es cualquier secuencia +de letras, números y signos de puntuación que no contenga una coma. + + Esta instrucción escribe una entrada al archivo `.aux' que contiene +los elementos clave-de-cita y etiqueta. Cuando la instrucción +`\begin{document}' lee el archivo `.aux', los elementos `etiqueta' son +asociados con `clave-de-cita', produciendo referencias a clave-de-cita +con una instrucción `\cite' (vea la siguiente sección) para producir la +etiqueta asociada. + + +File: latex2e-es.info, Node: \cite, Next: \nocite, Prev: \bibitem, Up: thebibliography + +8.24.2 `\cite' +-------------- + +Sinopsis: + + \cite[subcita]{claves + + El argumento claves es una lista de una o más claves de cita, +separadas por comas. Esta instrucción genera una cita en el texto para +referencias asociadas con claves por medio de entradas en el archivo +`.aux'. + + El argumento de texti opcional subcita aparece después de la cita. +Por ejemplo, `\cite[p.~314]{knuth}' podrÃa producir `[Knuth, p. 314]'. + + +File: latex2e-es.info, Node: \nocite, Next: Usando BibTeX, Prev: \cite, Up: thebibliography + +8.24.3 `\nocite' +---------------- + +`\nocite{lista-de-claves}' + + La instrucción `\nocite' no produce texto, pero escribe en el archivo +`.aux' la `lista-de-claves', que es una lista de una o más etiquetas de +cita. + + +File: latex2e-es.info, Node: Usando BibTeX, Prev: \nocite, Up: thebibliography + +8.24.4 Usando BibTeX +-------------------- + +Si usted utiliza el programa BibTeX escrito por Oren Patashnik +(altamente recomendable si necesita una bibliografÃa de más de un par de +tÃtulos) para mantener su bibliografÃa, no utilice el entorno +`thebibliography' (*note thebibliography::). En su lugar, incluya las +lÃneas + + \bibliographystyle{estilo-de-bibliografÃa} + \bibliography{archivo-de-bibliografÃa-1,archivo-de-bibliografÃa-2} + + La instrucción `\bibliographystyle' por sà misma no produce salida +alguna. Por el contrario, define el estilo en que se producirá la +bibliografÃa: estilo-de-bibliografÃa se refiere a un archivo +`estilo-de-bibliografÃa.bst', en el que se define qué apariencia tendrán +las citas. Los nombres de estilo estándar distribuidos con BibTeX son: + +`alpha' + Ordenadas alfabéticamente. Las etiquetas están formadas por el + nombre del autor y año de publicación. + +`plain' + Ordenadas alfabéticamente. Las etiquetas son numéricas. + +`unsrt' + Al igual que `plain', pero las entradas están en el orden citado. + +`abbrv' + Igual que `plain', pero con etiquetas más compactas. + + Además, existen muchos otros archivos de estilo BibTeX adaptados a +las demandas de diversas publicaciones. Vea +`http://www.ctan.org/tex-archive/biblio/bibtex/contrib'. + + La instrucción `\bibliography' es la que realmente produce la +bibliografÃa. El argumento `\bibliography' se refiere a archivos con el +nombre `archivo-de-bibliografÃa.bib', el cual debe contener la base de +datos en formato BibTeX. Sólo las entradas referidas a través de +`\cite' y `\nocite' serán incluidas en la bibliografÃa. + + +File: latex2e-es.info, Node: theorem, Next: titlepage, Prev: thebibliography, Up: Entornos + +8.25 `theorem' +============== + +Sinopsis: + + \begin{theorem} + texto-del-teorema + \end{theorem} + + El entorno `theorem' produce “Teorema n†en negrita seguido por el +texto-del-teorema, donde las posibilidades de numeración para n se +describen bajo `\newtheorem' (*note \newtheorem::). + + +File: latex2e-es.info, Node: titlepage, Next: verbatim, Prev: theorem, Up: Entornos + +8.26 `titlepage' +================ + +Sinopsis: + + \begin{titlepage} + texto + \end{titlepage} + + El entorno `titlepage' crea una página de tÃtulo, es decir, una +página en la cual no se imprime el número de página ni el encabezado. +También provoca que la página siguiente sea numerada como la página uno. +El formato de la página del tÃtulo se deja bajo su responsabilidad. La +instrucción `\today' puede ser útil en las páginas de tÃtulo (*note +\today::). + + Usted puede utilizar la instrucción `\maketitle' (*note \maketitle::) +para producir una página de tÃtulo estándar sin un entorno `titlepage'. + + +File: latex2e-es.info, Node: verbatim, Next: verse, Prev: titlepage, Up: Entornos + +8.27 `verbatim' +=============== + +Sinopsis: + + \begin{verbatim} + texto-literal + \end{verbatim} + + El entorno `verbatim' es un entorno para crear párrafos en el cual +LaTeX produce exactamente lo que usted escriba en él; Por ejemplo el +carácter `\' produce una `\' impresa. Este cambia el modo en que LaTeX +imprime los que usted escriba con retornos de carro y espacios en blanco +con el mismo efecto que tendrÃa en una máquina de escribir. + + El entorno `verbatim' utiliza una composición tipográfica con tipo de +letra monoespacio (`\tt'). + +* Menu: + +* \verb:: La forma macro del entorno `verbatim'. + + +File: latex2e-es.info, Node: \verb, Up: verbatim + +8.27.1 `\verb' +-------------- + +Sinopsis: + + \verbcaráctertexto-literalcarácter + \verb*caráctertexto-literalcarácter + + La instrucción `\verb' compone tipográficamente el texto-literal como +este se ha ingresado incluyendo caracteres especiales y espacios, +utilizando el tipo de letra de máquina de escribir (`\tt'). No se +permiten espacios entre `\verb' o `\verb*' y el carácter delimitador, el +cual comienza y termina el texto literal. El delimitador no debe +aparecer en el texto-literal. + + La forma con `*' difiere únicamente en que los espacios son impresos +con un carácter de “espacio visibleâ€. + + +File: latex2e-es.info, Node: verse, Prev: verbatim, Up: Entornos + +8.28 `verse' +============ + +Sinopsis: + + \begin{verse} + lÃnea1 \\ + lÃnea2 \\ + ... + \end{verse} + + El entorno `verse' está diseñado para poesÃa, aunque es posible que +usted le encuentre alguna otra utilidad. + + Los márgenes tienen sangrÃa a la izquierda y derecha, a los párrafos +no se les aplica sangrÃa y el texto no está justificado. Separe las +lÃneas de cada estrofa con `\\' y use una o más lÃneas en blanco para +separar las estrofas. + + +File: latex2e-es.info, Node: Saltos de LÃnea, Next: Saltos de Página, Prev: Entornos, Up: Top + +9 Saltos de LÃnea +***************** + +Lo primero que hace LaTeX cuando procesa texto normal es traducir el +archivo de entrada en una secuencia de unidades gráficas y espacios. +Para producir un documento impreso, esta secuencia se debe partir en +lÃneas (y esas lÃnea se deben dividir en páginas). + + Normalmente LaTeX se encarga de los saltos de lÃnea (y página), pero +en algunos entornos, usted mismo determina los saltos de lÃneas con la +instrucción `\\', y siempre puede forzar los saltos de lÃnea +manualmente. + +* Menu: + +* \\:: Inicia una nueva lÃnea. +* \obeycr y \restorecr:: Provoca que cada lÃnea ingresada comience una nueva lÃnea. +* \newline:: Divide la lÃnea \- (hyphenation):: Inserta un guión en la sÃlaba explicita. +* \- (hyphenation):: +* \fussy:: Es quisquilloso con la separación de lÃnea. +* \sloppy:: Es descuidado en la separación de la lÃneas. +* \hyphenation:: Le dice a LaTeX cómo insertar un guión para separar una palabra. +* \linebreak y \nolinebreak:: Forzando y evitando saltos de lÃnea. + + +File: latex2e-es.info, Node: \\, Next: \obeycr y \restorecr, Up: Saltos de LÃnea + +9.1 `\\'[*][más-espacio] +======================== + +La instrucción `\\' le dice a LaTeX que comience una nueva lÃnea. Esta +tiene un argumento opcional, más-espacio, que especifica la cantidad de +espacio vertical extra que se debe insertar antes de la siguiente lÃnea. +Este puede ser una cantidad negativa. + + La instrucción `\\*' es la misma que la instrucción ordinaria `\\' +salvo que esta le dice a LaTeX que no comience una nueva página después +de la lÃnea. + + +File: latex2e-es.info, Node: \obeycr y \restorecr, Next: \newline, Prev: \\, Up: Saltos de LÃnea + +9.2 `\obeycr' y `\restorecr' +============================ + +La instrucción `\obeycr' genera un retorno de carro en el archivo de +entrada (`^^M', internamente) lo mismo que `\\' (seguido por `\relax'). +Por lo tanto, cada nueva lÃnea en la entrada también será una nueva +lÃnea en la salida. + + `\restorecr' restaura el comportamiento de saltos de lÃnea normal. + + +File: latex2e-es.info, Node: \newline, Next: \- (hyphenation), Prev: \obeycr y \restorecr, Up: Saltos de LÃnea + +9.3 `\newline' +============== + +La instrucción `\newline' rompe la lÃnea en el punto actual, sin +justificar el texto anterior. Sólo se puede utilizar en modo párrafo. + + +File: latex2e-es.info, Node: \- (hyphenation), Next: \fussy, Prev: \newline, Up: Saltos de LÃnea + +9.4 `\-' (división silábica discrecional) +========================================= + +La instrucción `\-' le dice a LaTeX que puede dividir la palabra con un +guión en ese punto. LaTeX cuenta con una muy buena separación silábica +con guión, y por lo general en la mayorÃa de los casos encuentra los +puntos correctos en la división de palabras, y casi nunca utiliza uno +incorrecto. La instrucción `\-' se utiliza para casos excepcionales. + + Cuando usted inserta la instrucción `\-' en una palabra, la palabra +únicamente se debe dividir con guión en esos puntos y en ninguno de los +puntos que LaTeX pudiera haber elegido de otro modo. + + +File: latex2e-es.info, Node: \fussy, Next: \sloppy, Prev: \- (hyphenation), Up: Saltos de LÃnea + +9.5 `\fussy' +============ + +La declaración `\fussy' (que es la predeterminada) provoca que TeX sea +quisquilloso con los saltos de lÃnea. Esto por lo general también evita +el espacio entre palabras, a costa de un ocasional desbordamiento de +caja. + + Esta instrucción cancela el efecto de una instrucción `\sloppy' +previa (*note \sloppy::. + + +File: latex2e-es.info, Node: \sloppy, Next: \hyphenation, Prev: \fussy, Up: Saltos de LÃnea + +9.6 `\sloppy' +============= + +La declaración `\sloppy' provoca que TeX sea menos cuidadoso con los +saltos de lÃnea. Esto evitará el desbordamiento de cajas, a costa de un +mayor espaciamiento entre palabras. + + Dura hasta que se utilice una instrucción `\fussy' (*note \fussy::). + + +File: latex2e-es.info, Node: \hyphenation, Next: \linebreak y \nolinebreak, Prev: \sloppy, Up: Saltos de LÃnea + +9.7 `\hyphenation' +================== + +Sinopsis: + + \hyphenation{palabra-uno palabra-dos} + + La instrucción `\hyphenation' declara los puntos dónde se permite la +división de palabras por medio de un carácter `-' en las palabras +proporcionadas. Las palabras están separadas por espacios. TeX +únicamente debe separar las palabras si la palabra coincide exactamente, +sin juzgar las inflexiones. Múltiples instrucciones `\hyphenation' son +acumulativas. Algunos ejemplos (los patrones de separación silábica de +TeX no se aplican a esas palabras): + + \hyphenation{ap-én-dice col-umnas hiper-fragilÃs-tico-espiali-doso} + + +File: latex2e-es.info, Node: \linebreak y \nolinebreak, Prev: \hyphenation, Up: Saltos de LÃnea + +9.8 `\linebreak' y `\nolinebreak' +================================= + +Sinopsis: + + \linebreak[prioridad] + \nolinebreak[prioridad] + + De manera predeterminada, la instrucción `\linebreak' +(`\nolinebreak') fuerza (previene) un salto de lÃnea en la posición +actual. Para `\linebreak', los espacios en la lÃnea se expanden hasta +el margen derecho de la manera normal. + + Con el argumento opcional prioridad, usted puede convertir la +instrucción de una petición a una demanda. La prioridad debe ser un +número desde 0 hasta 4. Cuanto mayor sea el número, es más insistente +la petición. + + +File: latex2e-es.info, Node: Saltos de Página, Next: Notas al Pie, Prev: Saltos de LÃnea, Up: Top + +10 Saltos de Página +******************* + +LaTeX inicia nuevas páginas asincronicamente, cuando ha acumulado +suficiente material para llenar una página. Por lo general, esto ocurre +automáticamente, pero a veces, posiblemente, usted quiera influir en los +saltos de página. + +* Menu: + +* \cleardoublepage:: Inicia una nueva página a mano derecha. +* \clearpage:: Inicia una nueva página. +* \newpage:: Inicia una nueva página. +* \enlargethispage:: AmplÃa un poco la página actual. +* \pagebreak y \nopagebreak:: Forzando y evitando saltos de página. + + +File: latex2e-es.info, Node: \cleardoublepage, Next: \clearpage, Up: Saltos de Página + +10.1 `\cleardoublepage' +======================= + +La instrucción `\cleardoublepage' termina la página actual y provoca que +se impriman todas las imágenes y tablas que han aparecido hasta el +momento en el texto. En un estilo de Impresión a doble cara, este +también hace que la siguiente página sea a mano derecha, página +(impares), produciendo una página en blanco si es necesario. + + +File: latex2e-es.info, Node: \clearpage, Next: \newpage, Prev: \cleardoublepage, Up: Saltos de Página + +10.2 `\clearpage' +================= + +La instrucción `\clearpage' termina la página actual y provoca que todas +la imágenes y tablas que han aparecido hasta ahora en la entrada sean +impresas. + + +File: latex2e-es.info, Node: \newpage, Next: \enlargethispage, Prev: \clearpage, Up: Saltos de Página + +10.3 `\newpage' +=============== + +La instrucción `\newpage' termina la página actual, pero no descarga +flotantes (vea `\clearpage' arriba). + + +File: latex2e-es.info, Node: \enlargethispage, Next: \pagebreak y \nopagebreak, Prev: \newpage, Up: Saltos de Página + +10.4 `\enlargethispage' +======================= + +`\enlargethispage{tamaño}' + + `\enlargethispage*{tamaño}' + + AmplÃa el `\textheight' para la página actual por la cantidad +especificada; por ejemplo `\enlargethispage{\baselineskip}' permitirá +una lÃnea adicional. + + La forma favorita trata de apretar el material en la página tanto +como sea posible. Esta normalmente se utiliza junto con un `\pagebreak' +explÃcito. + + +File: latex2e-es.info, Node: \pagebreak y \nopagebreak, Prev: \enlargethispage, Up: Saltos de Página + +10.5 `\pagebreak' y `\nopagebreak' +================================== + +Sinopsis: + + \pagebreak[prioridad] + \nopagebreak[prioridad] + + De forma predeterminada, la instrucción `\pagebreak' (`\nopagebreak') +fuerza (impide) un salto de página en la posición actual. Para +`\linebreak', el espacio vertical en la página se estira cuanto sea +posible de modo que se extienda hasta el margen inferior normal. + + Con el argumento opcional prioridad, puede convertir la instrucción +`\pagebreak' desde una petición a una demanda. El número debe ser un +número desde 0 hasta 4. Cuanto mayor sea el número, más insistente es +la petición. + + +File: latex2e-es.info, Node: Notas al Pie, Next: Definiciones, Prev: Saltos de Página, Up: Top + +11 Notas al Pie +*************** + +Las notas al pie se pueden producir en una de dos maneras. Se pueden +producir con una sola instrucción, la instrucción `\footnote'. También +se pueden producir con dos instrucciones, las instrucciones +`\footnotemark' y `\footnotetext'. + +* Menu: + +* \footnote:: Inserta una nota al pie. +* \footnotemark:: Solamente Inserta la marca de nota. +* \footnotetext:: Solamente Inserta el texto la nota. +* Notas al Pie Simbólicas:: Usando sÃmbolos en lugar de números para las notas. +* Parámetros para Footnote:: Parámetros para el formato de la nota al pie. + + +File: latex2e-es.info, Node: \footnote, Next: \footnotemark, Up: Notas al Pie + +11.1 `\footnote' +================ + +Sinopsis: + + \footnote[número]{texto} + + La instrucción `\footnote' coloca una nota numerada con el texto al +pie de la página actual. El argumento opcional número cambia el número +predeterminado de la nota. + + Esta instrucción sólo puede utilizarse fuera del modo párrafo; es +decir, no se puede utilizar en el instrucciones de seccionado tal como +`\chapter', en figuras, tablas o en un entorno `tabular'. (Vea las +siguientes secciones). + + +File: latex2e-es.info, Node: \footnotemark, Next: \footnotetext, Prev: \footnote, Up: Notas al Pie + +11.2 `\footnotemark' +==================== + +Sin argumento opcional, la instrucción `\footnotemark' coloca el número +de nota actual en el texto. Esta instrucción se puede utilizar en modo +párrafo. Usted proporciona el texto de la nota por separado, con la +instrucción `\footnotetext'. + + Esta instrucción se puede utilizar para producir varios marcadores de +nota consecutivos refiriéndose a la misma nota + + \footnotemark[\value{footnote}] + +después de la primer instrucción `\footnote'. + + +File: latex2e-es.info, Node: \footnotetext, Next: Notas al Pie Simbólicas, Prev: \footnotemark, Up: Notas al Pie + +11.3 `\footnotetext' +==================== + +Sinopsis: + + \footnotetext[número]{texto} + + La instrucción `\footnotetext' coloca el texto en la parte inferior +de la página como una nota al pie. Esta instrucción puede venir en +cualquier lugar después de la instrucción `\footnotemark'. La +instrucción `\footnotetext' debe aparecer en el exterior del modo +párrafo. + + El argumento opcional número cambia el número predeterminado de la +nota. + + +File: latex2e-es.info, Node: Notas al Pie Simbólicas, Next: Parámetros para Footnote, Prev: \footnotetext, Up: Notas al Pie + +11.4 Notas al Pie Simbólicas +============================ + +Si desea utilizar sÃmbolos para las notas al pie, en lugar de un número +creciente, redefina `\thefootnote' asÃ: + + \renewcommand{\thefootnote}{\fnsymbol{nota-al-pie}} + + La instrucción `\fnsymbol' produce a serie predefinida de sÃmbolos +(*note \alph \Alph \arabic \roman \Roman \fnsymbol::). Si desea +utilizar un sÃmbolo diferente como su marca de nota al pie, necesitará +redefinir `\fnsymbol'. + + +File: latex2e-es.info, Node: Parámetros para Footnote, Prev: Notas al Pie Simbólicas, Up: Notas al Pie + +11.5 Parámetros para Footnote +============================= + +`\footnoterule' + Produce la lÃnea que separa el texto principal en una página de las + notas al pie de la página. Dimensiones predeterminadas: `0.4pt' + espesor (o ancho), y longitud de `0.4\columnwidth' en las clases de + documento estándar (salvo en slides, donde esta no aparece). + +`\footnotesep' + La altura donde se coloca el puntal al comienzo de la nota al pie. + De forma predeterminada, se establece en el puntal del tipo de + letra normal `\footnotesize' (*note Tamaños del Tipo de Letra::, + por lo tanto no hay espacio extra entre las notas. Este es + `6.65pt' para `10pt', `7.7pt' para `11pt' y `8.4pt' para `12pt'. + + +File: latex2e-es.info, Node: Definiciones, Next: Contadores, Prev: Notas al Pie, Up: Top + +12 Definiciones +*************** + +LaTeX tiene la capacidad para crear nuevas instrucciones de muchos tipos +diferentes. + +* Menu: + +* \newcommand y \renewcommand:: (Re)define una nueva instrucción. +* \newcounter:: Define un nuevo contador. +* \newlength:: Define una nueva longitud. +* \newsavebox:: Define una nueva caja. +* \newenvironment y \renewenvironment:: Definen un nuevo entorno. +* \newtheorem:: Definen un nuevo entorno -como teorema. +* \newfont:: Define un nuevo nombre de tipo de letra. +* \protect:: Usando instrucciones astutas. + + +File: latex2e-es.info, Node: \newcommand y \renewcommand, Next: \newcounter, Up: Definiciones + +12.1 `\newcommand' y `\renewcommand' +==================================== + +`\newcommand' y `\renewcommand' define y redefine una instrucción, +respectivamente. + + Sinopsis: + + \newcommand{instrucción}[n-argumentos]{definición} + \renewcommand{instrucción}[n-argumentos]{definición} + \newcommand{instrucción}[n-argumentos][predeterminado]{definición} + \renewcommand{instrucción}[n-argumentos][predeterminado]{definición} + +instrucción + El nombre de la instrucción comenzando con `\'. Para + `\newcommand', este no se debe haber definido y no debe comenzar + con `\end'; para `\renewcommand', este ya tiene que estar definido. + +n-argumentos + Un entero opcional entre 1 y 9 especificando el número de + argumentos que debe tomar la instrucción. El valor predeterminado + es para que la instrucción no tome argumentos. + +predeterminado + Si este parámetro opcional está presente, significa que el primer + argumento del comando es opcional. Cuando se invoca a la nueva + instrucción, el valor predeterminado del argumento opcional (es + decir, si no se especifica en la llamada) es la cadena + `definición'. + +definición + El texto con el que se sustituirá cada aparición de `instrucción'; + una construcción de la forma `#n' en definición es reemplazada por + el texto del enésimo argumento. + + +File: latex2e-es.info, Node: \newcounter, Next: \newlength, Prev: \newcommand y \renewcommand, Up: Definiciones + +12.2 `\newcounter' +================== + +Sinopsis: + + \newcounter{contador}[nombre-contador] + + La instrucción `\newcounter' define un nuevo contador llamado +contador. El nuevo contador se inicializa a cero. + + Dado el argumento opcional `[nombre-contador]', (contador se +restablecerá cuando nombre-contador se incremente. + + *Note Contadores::, para mayor información. + + +File: latex2e-es.info, Node: \newlength, Next: \newsavebox, Prev: \newcounter, Up: Definiciones + +12.3 `\newlength' +================= + +Sinopsis: + + \newlength{\argumento} + + La instrucción `\newlength' define el argumento obligatorio como una +instrucción `length' con un valor de `0in'. El argumento debe ser una +secuencia de control, como en `\newlength{\foo}'. Ocurre un error si +`\foo' ya está definido. + + *Note Longitudes::, para saber cómo fijar la nueva longitud a un +valor distinto de cero, y para más información acerca de las longitudes +en general. + + +File: latex2e-es.info, Node: \newsavebox, Next: \newenvironment y \renewenvironment, Prev: \newlength, Up: Definiciones + +12.4 `\newsavebox' +================== + +Sinopsis: + + \newsavebox{instrucción} + + Define `\instrucción', el cual debe ser un nombre de instrucción que +no se haya definido, para referirse a una nueva bandeja para almacenar +cajas. + + +File: latex2e-es.info, Node: \newenvironment y \renewenvironment, Next: \newtheorem, Prev: \newsavebox, Up: Definiciones + +12.5 `\newenvironment' y `\renewenvironment' +============================================ + +Sinopsis: + + + \newenvironment{entorno}[n-argumentos]{antes-definición} + {después-definición} + \newenvironment{entorno}[n-argumentos][predeterminado] + {antes-definición}{después-definición} + \renewenvironment{entorno}[n-argumentos] + {antes-definición}{después-definición} + + Estas instrucciones definen o redefinen un entorno entorno, es decir, +`\begin{entorno} … \end{entorno}'. + +entorno + El nombre del entorno. Para `\newenvironment', entorno no debe ser + un entorno existente, y la instrucción `\entorno' debe ser una que + no se haya definido previamente. Para `\renewenvironment', entorno + debe ser el nombre de un entorno existente. + +n-argumentos + Un entero desde 1 a 9 denotando el número de argumentos del nuevo + entorno definido. El valor predeterminado es ningún argumento. + +predeterminado + Si se especifica, el primer argumento es opcional, y predeterminado + proporciona el valor predeterminado para ese argumento. + +antes-definición + El texto ampliado en cada aparición de `\begin{entorno}'; una + construcción en forma `#n' en antes-definición es sustituido por el + texto del enésimo argumento. + +después-definición + El texto ampliado de cada aparición de `\end{entorno}'. este no + debe contener ningún argumento para parámetros. + + +File: latex2e-es.info, Node: \newtheorem, Next: \newfont, Prev: \newenvironment y \renewenvironment, Up: Definiciones + +12.6 `\newtheorem' +================== + + \newtheorem{nuevo-entorno}{etiqueta}[con] + \newtheorem{nuevo-entorno}[numerado-como]{etiqueta} + + Esta instrucción define un entorno parecido a teorema. Argumentos: + +nuevoentorno + El nombre del nuevo entorno a definir; no debe ser el nombre de un + entorno existente o de lo contrario será redefinido. + +etiqueta + El texto a imprimir al inicio del entorno, antes del número. Por + ejemplo, `Teorema'. + +numerado_como + (Opcional). El nombre de un entorno ya definido tal como teorema; + + (Opcional). El nombre de un entorno ya definido tal como teorema + el nuevo entorno será numerado exactamente como numerado_como. + +con + (Opcional). El nombre de un contador definido previamente, una + unidad de seccionado. El nuevo contador de teorema será + restablecido al mismo tiempo que el contador con. + + Cuando menos uno de numerado_como y con se debe especificar, no +ambos. + + +File: latex2e-es.info, Node: \newfont, Next: \protect, Prev: \newtheorem, Up: Definiciones + +12.7 `\newfont' +=============== + +Sinopsis: + + \newfont{instrucción}{nombredetipo} + + Define una secuencia de control `\instrucción', misma que no se debe +haber definido, para hacer que nombredetipo sea el tipo de letra actual. +El archivo bloqueado en el sistema es llamado `nombredetipo.tfm'. + + Esta es una instrucción de bajo nivel para configurar el uso de un +tipo de letra individual. Comúnmente, los tipos de letra se definen a +través de familias de archivos `.fd'. + + +File: latex2e-es.info, Node: \protect, Prev: \newfont, Up: Definiciones + +12.8 `\protect' +=============== + +Pies de página, saltos de lÃnea, cualquier instrucción que tenga un +argumento opcional, y muchas más de las asà llamadas instrucciones +"frágiles". Cuando una instrucción frágil se utiliza en ciertos +contextos, llamados "argumentos móviles", estas se deben preceder con +`\protect'. Además, algunas instrucciones con argumentos frágiles deben +tener su propia `\protect'. + + Algunos ejemplos de argumentos móviles son `\caption' (*note +figure::), `\thanks' (*note \maketitle::) y @-expresiones en entornos +`tabular' y `array' (*note tabular::). + + Las instrucciones que no son frágiles se llaman "robustas". Estas no +se deben preceder con `\protect'. + + Vea también: + +`http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/teTeX/latex/latex2e-html/fragile.html' +`http://www.tex.ac.uk/cgi-bin/texfaq2html?label=protect' + + +File: latex2e-es.info, Node: Contadores, Next: Longitudes, Prev: Definiciones, Up: Top + +13 Contadores +************* + +Cualquier cosa numerada por LaTeX tiene un contador asociado a ella. El +nombre del contador es el mismo nombre que el nombre del entorno o +instrucción que produce el número, salvo las que no comienzan con `\'. +(`enumi'–`enumiv' se utilizan para entornos enumerados anidados). A +continuación hay una lista de los contadores utilizados en las clases de +documentos estándar de LaTeX para controlar la numeración. + + part paragraph figure enumi + chapter subparagraph table enumii + section page footnote enumiii + subsection equation mpfootnote enumiv + subsubsection + +* Menu: + +* \alph \Alph \arabic \roman \Roman \fnsymbol:: Imprimiendo el valor de un contador. +* \usecounter:: Utiliza un contador especificado en un entorno de lista. +* \value:: Utiliza el valor de un contador en una expresión. +* \setcounter:: Establece el valor de un contador. +* \addtocounter:: Añade un calificador a un contador. +* \refstepcounter:: Añade un contador, restableciendo los contadores subsidiarios. +* \stepcounter:: Añade un contador, restableciendo los contadores subsidiarios. +* \day \month \year:: Valores numéricos de fecha. + + +File: latex2e-es.info, Node: \alph \Alph \arabic \roman \Roman \fnsymbol, Next: \usecounter, Up: Contadores + +13.1 `\alph \Alph \arabic \roman \Roman \fnsymbol': Imprimiendo Contadores +========================================================================== + +Todas estas instrucciones toman como argumento un solo contador, por +ejemplo, `\alph{enumi}'. + +`\alph' + imprime contador usando letras minúsculas: `a', `b', ... + +`\Alph' + utiliza letras mayúsculas: `A', `B', ... + +`\arabic' + utiliza números Arábigos: `1', `2', ... + +`\roman' + utiliza números romanos en minúsculas: `i', `ii', ... + +`\roman' + utiliza números romanos en mayúsculas: `I', `II', ... + +`\fnsymbol' + imprime el valor de contador en una secuencia especÃfica de nueve + sÃmbolos (convencionalmente usada para etiquetar notas al pie de + página). El valor de contador debe estar entre 1 y 9 incluido. + + Los sÃmbolos no son compatibles en info principalmente, pero aquà + están los nombres: + + asterix(*) dagger ddagger section-sign paragraph-sign parallel + double-asterix(**) double-dagger double-ddagger + + +File: latex2e-es.info, Node: \usecounter, Next: \value, Prev: \alph \Alph \arabic \roman \Roman \fnsymbol, Up: Contadores + +13.2 `\usecounter{contador}' +============================ + +Sinopsis: + + \usecounter{contador} + + La instrucción `\usecounter' se utiliza en el segundo argumento del +entorno `list' para especificar el contador a utilizar para numerar los +elementos de la lista. + + +File: latex2e-es.info, Node: \value, Next: \setcounter, Prev: \usecounter, Up: Contadores + +13.3 `\value{contador}' +======================= + +Sinopsis: + + \value{contador} + + La instrucción `\value' produce el valor de contador. Esta se puede +utilizar en cualquier lugar en que LaTeX espera un número, por ejemplo: + + \setcounter{micontador}{3} + \addtocounter{micontador}{1} + \hspace{\value{micontador}\parindent} + + +File: latex2e-es.info, Node: \setcounter, Next: \addtocounter, Prev: \value, Up: Contadores + +13.4 `\setcounter{\contador}{valor}' +==================================== + +Sinopsis: + + \setcounter{\contador}{valor} + + La instrucción `\setcounter' fija el valor de \contador al argumento +valor. + + +File: latex2e-es.info, Node: \addtocounter, Next: \refstepcounter, Prev: \setcounter, Up: Contadores + +13.5 `\addtocounter{contador}{valor}' +===================================== + +La instrucción `\addtocounter' incrementa contador por la cantidad +especificada por el argumento valor, que puede ser un número negativo. + + +File: latex2e-es.info, Node: \refstepcounter, Next: \stepcounter, Prev: \addtocounter, Up: Contadores + +13.6 `\refstepcounter{contador}' +================================ + +La instrucción `\refstepcounter' trabaja de la misma manera que +`\stepcounter' *Note \stepcounter::, excepto que esta además define el +valor actual de `\ref' para que sea el resultado de `\thecounter'. + + +File: latex2e-es.info, Node: \stepcounter, Next: \day \month \year, Prev: \refstepcounter, Up: Contadores + +13.7 `\stepcounter{contador}' +============================= + +La instrucción `\stepcounter' añade uno al contador y restablece todos +los contadores subsidiarios. + + +File: latex2e-es.info, Node: \day \month \year, Prev: \stepcounter, Up: Contadores + +13.8 `\day \month \year': Contadores Predefinidos +================================================= + +LaTeX define contadores para el dÃa del mes (`\day', 1–31), mes del año +(`\month', 1–12), y año (`\year', Era Común). Al iniciar TeX, estas son +establecidas a los valores actuales en el sistema donde se está +ejecutando TeX. Estas no se actualizan conforme al progreso del +trabajo. + + La instrucción relacionada `\today' produce una cadena de texto que +representa el dÃa actual (*note \today::). + + +File: latex2e-es.info, Node: Longitudes, Next: Haciendo Párrafos, Prev: Contadores, Up: Top + +14 Longitudes +************* + +Una `longitud' es una medida de distancia. Muchas instrucciones LaTeX +toman una longitud como argumento. + +* Menu: + +* \setlength:: Establece el valor de longitud. +* \addtolength:: Añade una cantidad a longitud. +* \settodepth:: Establece una longitud a la profundidad de algo más. +* \settoheight:: Establece la longitud a la altura de algo más. +* \settowidth:: Establece la longitud a la anchura de alguna otra cosa. +* Longitudes Predeterminadas:: Longitudes que son, algo sà como, predefinidas. + + +File: latex2e-es.info, Node: \setlength, Next: \addtolength, Up: Longitudes + +14.1 `\setlength{\largo}{valor}' +================================ + +La instrucción `\setlength' fija el valor de \largo al argumento valor, +el cual se puede expresar en cualquier unidad que LaTeX entienda, es +decir, pulgadas (`in'), milÃmetros (`mm'), puntos (`pt'), puntos grandes +(`bp', etc. + + +File: latex2e-es.info, Node: \addtolength, Next: \settodepth, Prev: \setlength, Up: Longitudes + +14.2 \addtolength{\largo}{cantidad} +=================================== + +La instrucción `\addtolength' incrementa la “instrucción de longitud†+\largo por la cantidad especificada en el argumento cantidad, misma que +puede ser un valor negativo. + + +File: latex2e-es.info, Node: \settodepth, Next: \settoheight, Prev: \addtolength, Up: Longitudes + +14.3 `\settodepth' +================== + +`\settodepth{\gnat}{texto}' + + La instrucción `\settodepth' fija el valor de una instrucción de +`longitud' igual a la profundidad del argumento `texto'. + + +File: latex2e-es.info, Node: \settoheight, Next: \settowidth, Prev: \settodepth, Up: Longitudes + +14.4 `\settoheight' +=================== + +`\settoheight{\gnat}{texto}' + + La instrucción `\settoheight' fija el valor de la instrucción de +`longitud' igual a la altura del argumento `texto'. + + +File: latex2e-es.info, Node: \settowidth, Next: Longitudes Predeterminadas, Prev: \settoheight, Up: Longitudes + +14.5 `\settowidth{\largo}{texto}' +================================= + +La instrucción `\settowidth' establece el valor del la instrucción +\largo al valor del argumento texto. + + +File: latex2e-es.info, Node: Longitudes Predeterminadas, Prev: \settowidth, Up: Longitudes + +14.6 Longitudes Predeterminadas +=============================== + +`\width' + + `\height' + + `\depth' + + `\totalheight' + + Estos parámetros de longitud se pueden utilizar en los argumentos de +las instrucciones que dibujan cajas (*note Cajas::). Especifican el +ancho natural, etc., del texto en la caja. `\totalheight' es igual a +`\height' + `\depth'. Para hacer una caja con el texto extendido hasta +el doble del tamaño natural, por ejemplo, digamos + + `\makebox[ancho\2]{Consiga una camilla}' + + +File: latex2e-es.info, Node: Haciendo Párrafos, Next: Fórmulas Matemáticas, Prev: Longitudes, Up: Top + +15 Haciendo Párrafos +******************** + +Un párrafo se termina por medio de una o más lÃneas completamente en +blanco —lÃneas que no contienen incluso un `%'. Una lÃnea en blanco no +debe aparecer donde no se puede iniciar un nuevo párrafo, tal como en +modo math o en el argumento de una instrucción de seccionado. + +* Menu: + +* \indent:: Sangrando este párrafo. +* \noindent:: No sangra el siguiente párrafo. +* \parskip:: Añade un espacio antes de párrafos. +* Notas al Margen:: Coloca palabras en el margen. + + +File: latex2e-es.info, Node: \indent, Next: \noindent, Up: Haciendo Párrafos + +15.1 `\indent' +============== + +`\indent' produce un espacio horizontal donde el ancho es igual al ancho +de la longitud de `\parindent', la sangrÃa de un párrafo normal. Esta +se utiliza para añadir la sangrÃa de párrafos donde esta deberÃa +suprimirse en otro caso. + + El valor predeterminado para `\parindent' es `1em' en modo de dos +columnas, de lo contrario `15pt' para documentos de `10pt', `17pt' para +`11pt' y `1.5em' para `12pt'. + + +File: latex2e-es.info, Node: \noindent, Next: \parskip, Prev: \indent, Up: Haciendo Párrafos + +15.2 `\noindent' +================ + +Cuando se utiliza al principio de un párrafo, `\noindent' suprime +cualquier sangrÃa. Esta no tiene efecto cuando se utiliza en medio de +un párrafo. + + +File: latex2e-es.info, Node: \parskip, Next: Notas al Margen, Prev: \noindent, Up: Haciendo Párrafos + +15.3 `\parskip' +=============== + +`\parskip' es una instrucción que preserva la longitud definiendo +espacio vertical extra añadido antes de cada párrafo. El predeterminado +es `0pt más 1pt'. + + +File: latex2e-es.info, Node: Notas al Margen, Prev: \parskip, Up: Haciendo Párrafos + +15.4 Notas al Margen +==================== + +Sinopsis: + + \marginpar[izquierda]{derecha} + + La instrucción `\marginpar' crea una nota en el margen. La primera +lÃnea de una nota tiene que ser la misma lÃnea base que la lÃnea en el +texto donde ocurre el `\marginpar'. + + Cuando únicamente se especifica el argumento obligatorio right, el +texto se deberá colocar + + • en el margen derecho para diseños de un solo lado; + + • en el margen externo para diseños de dos caras; + + • en el margen más cercano en diseños de dos columnas. + + La instrucción `\reversemarginpar' coloca las subsecuentes notas al +margen en el margen (dentro) opuesto. `\normalmarginpar' las coloca en +la posición predeterminada. + + Cuando se especifican ambos argumentos, se utiliza left para el +margen izquierdo y se utiliza right para el margen derecho. + + La primer palabra normalmente no se debe separar con guiones; usted +puede habilitar la separación silábica con guiones comenzando la nota +con `\hspace{0pt}'. + + Los parámetros que afectan el formato de la nota son: + +`\marginparpush' + El espacio mÃnimo vertical entre notas; el predeterminado es `7pt' + para documentos de `12pt', de lo contrario `5pt'. + +`\marginparsep' + Espacio horizontal entre el texto vertical y la nota; + predeterminado `11pt' para `10pt' documentos, en otro caso `10pt'. + +`\marginparwidth' + El ancho de la nota en sà misma; el predeterminado para documentos + de un solo lado de `10pt' es `90pt', `83pt' para `11pt' y `68pt' + para `12pt'; `17pt' más en cada caso para documentos de dos caras. + En el modo de dos columnas, el predeterminado es `48pt'. + + +File: latex2e-es.info, Node: Fórmulas Matemáticas, Next: Modos, Prev: Haciendo Párrafos, Up: Top + +16 Fórmulas Matemáticas +*********************** + +Existen tres entornos que ponen a LaTeX en modo math: + +`math' + Para fórmulas que aparecerán directamente en el texto. + +`displaymath' + Para fórmulas que aparecerán en su propia lÃnea. + +`equation' + El mismo que el del entorno displaymath salvo que este añade un + número de ecuación en el margen derecho. + + El entorno `math' se pude utilizar tanto en párrafos como en modo LR, +pero los entornos `displaymath' y `equation' se pueden utilizar +únicamente en modo párrafo. Los entornos `math' y `displaymath' se +utilizan tan a menudo que tienen las siguientes formas abreviadas: + + \(...\) en lugar de \begin{math}...\end{math} + \[...\] en lugar de \begin{displaymath}...\end{displaymath} + + De hecho, el entorno `math' es como una instrucción que tiene incluso +una forma abreviada: + + $ ... $ en lugar de \(...\) + + La instrucción `\boldmath' cambia letras y sÃmbolos matemáticos en +tipo de letra en negrita. Este se utiliza _fuera_ del modo math. Por +el contrario, la instrucción `\unboldmath' cambia los glifos matemáticos +para estar en un tipo de letra normal; este también se utiliza _fuera_ +del modo math. + + La declaración `\displaystyle' presiona para que el tamaño y estilo +de la fórmula sea el de `displaymath', por ejemplo, con limites por +encima y debajo de sumatorias. Por ejemplo + $\displaystyle \sum_{n=0}^\infty x_n $ + +* Menu: + +* SubÃndices y SuperÃndices:: También conocido como exponente o Ãndice. +* SÃmbolos Matemáticos:: Varios garabatos matemáticos. +* Funciones Matemáticas:: Nombres de funciones Matemáticas como sin y exp. +* Acentos Matemáticos:: Acentos en Matemáticas. +* Espacios en Modo Math:: Espacios gruesos, medianos, delgados y negativos. +* Miscelánea Math:: Cosas que no encajan en ninguna otra categorÃa. + + +File: latex2e-es.info, Node: SubÃndices y SuperÃndices, Next: SÃmbolos Matemáticos, Up: Fórmulas Matemáticas + +16.1 SubÃndices y SuperÃndices +============================== + +Para hacer que una expresión exp aparezca como un subÃndice, escriba +`_{'exp`}'. Para hacer que exp aparezca como un exponente, escriba +`^{'exp`}'. LaTeX maneja superÃndices, subÃndices y todas esas cosas de +manera natural. Incluso hace lo correcto cuando algo tiene tanto un +subÃndice como un superÃndice. + + +File: latex2e-es.info, Node: SÃmbolos Matemáticos, Next: Funciones Matemáticas, Prev: SubÃndices y SuperÃndices, Up: Fórmulas Matemáticas + +16.2 SÃmbolos Matemáticos +========================= + +LaTeX proporciona casi cualquier sÃmbolo matemático que muy +probablemente necesite. Las instrucciones para generarlas se pueden +utilizar únicamente en modo math. Por ejemplo, si incluye `$\pi$' en su +archivo fuente, aparecerá el sÃmbolo de pi (\pi) en su salida. + +`\|' + \| + +`\aleph' + \aleph + +`\alpha' + \alpha + +`\amalg' + \amalg (operación binaria) + +`\angle' + \angle + +`\approx' + \approx (relación) + +`\ast' + \ast (operación binaria) + +`\asymp' + \asymp (relación) + +`\backslash' + \ (delimitador) + +`\beta' + \beta + +`\bigcap' + \bigcap + +`\bigcirc' + \bigcirc (operación binaria) + +`\bigcup' + \bigcup + +`\bigodot' + \bigodot + +`\bigoplus' + \bigoplus + +`\bigotimes' + \bigotimes + +`\bigtriangledown' + \bigtriangledown (operación binaria) + +`\bigtriangleup' + \bigtriangleup (operación binaria) + +`\bigsqcup' + \bigsqcup + +`\biguplus' + \biguplus + +`\bigcap' + \bigvee + +`\bigwedge' + \bigwedge + +`\bot' + \bot + +`\bowtie' + \bowtie (relación) + +`\Box' + (sÃmbolo de caja cuadrada abierta) + +`\bullet' + \bullet (operación binaria) + +`\cap' + \cap (operación binaria) + +`\cdot' + \cdot (operación binaria) + +`\chi' + \chi + +`\circ' + \circ (operación binaria) + +`\clubsuit' + \clubsuit + +`\cong' + \cong (relación) + +`\coprod' + \coprod + +`\cup' + \cup (operación binaria) + +`\dagger' + \dagger (operación binaria) + +`\dashv' + \dashv (relación) + +`\ddagger' + \dagger (operación binaria) + +`\Delta' + \Delta + +`\delta' + \delta + +`\Diamond' + \diamond más grande + +`\diamond' + \diamond (operación binaria) + +`\diamondsuit' + \diamondsuit + +`\div' + \div (operación binaria) + +`\doteq' + \doteq (relación) + +`\downarrow' + \downarrow (delimitador) + +`\Downarrow' + \Downarrow (delimitador) + +`\ell' + \ell + +`\emptyset' + \emptyset + +`\epsilon' + \epsilon + +`\equiv' + \equiv (relación) + +`\eta' + \eta + +`\exists' + \exists + +`\flat' + \flat + +`\forall' + \forall + +`\frown' + \frown (relacion) + +`\Gamma' + \Gamma + +`\gamma' + \gamma + +`\ge' + \ge + +`\geq' + \geq (relación) + +`\gets' + \gets + +`\gg' + \gg (relación) + +`\hbar' + \hbar + +`\heartsuit' + \heartsuit + +`\hookleftarrow' + \hookleftarrow + +`\hookrightarrow' + \hookrightarrow + +`\iff' + \iff + +`\Im' + \Im + +`\in' + \in (relación) + +`\infty' + \infty + +`\int' + \int + +`\iota' + \iota + +`\Join' + sÃmbolo de corbata de moño condensado (relación) + +`\kappa' + \kappa + +`\Lambda' + \Lambda + +`\lambda' + \lambda + +`\land' + \land + +`\langle' + \langle (delimitador) + +`\lbrace' + \lbrace (delimitador) + +`\lbrack' + \lbrack (delimitador) + +`\lceil' + \lceil (delimitador) + +`\le' + \le + +`\leadsto' + +`\Leftarrow' + \Leftarrow + +`\leftarrow' + \leftarrow + +`\leftharpoondown' + \leftharpoondown + +`\leftharpoonup' + \leftharpoonup + +`\Leftrightarrow' + \Leftrightarrow + +`\Leftrightarrow' + \Leftrightarrow + +`\leq' + \leq (relación) + +`\lfloor' + \lfloor (delimitador) + +`\lhd' + (flecha apuntando hacia arriba a la izquierda) + +`\ll' + \ll (relación) + +`\lnot' + \lnot + +`\longleftarrow' + \longleftarrow + +`\longleftrightarrow' + \longleftrightarrow + +`\longmapsto' + \longmapsto + +`\longrightarrow' + \longrightarrow + +`\lor' + \lor + +`\mapsto' + \mapsto + +`\mho' + +`\mid' + \mid (relación) + +`\models' + \models (relación) + +`\mp' + \mp (operación binaria) + +`\mu' + \mu + +`\nabla' + \nabla + +`\natural' + \natural + +`\ne' + \ne + +`\nearrow' + \nearrow + +`\neg' + \neg + +`\neq' + \neq (relación) + +`\ni' + \ni (relación) + +`\not' + Superpone una / al siguiente operador, tal como \not=. + +`\notin' + \ni + +`\nu' + \nu + +`\nwarrow' + \nwarrow + +`\odot' + \odot (operación binaria) + +`\oint' + \oint + +`\Omega' + \Omega + +`\omega' + \omega + +`\ominus' + \ominus (operación binaria) + +`\oplus' + \oplus (operación binaria) + +`\oslash' + \oslash (operación binaria) + +`\otimes' + \otimes (operación binaria) + +`\owns' + \owns + +`\parallel' + \parallel (relación) + +`\partial' + \partial + +`\perp' + \perp (relación) + +`\phi' + \phi + +`\Pi' + \Pi + +`\pi' + \pi + +`\pm' + \pm (operación binaria) + +`\prec' + \prec (relación) + +`\preceq' + \preceq (relación) + +`\prime' + \prime + +`\prod' + \prod + +`\propto' + \propto (relación) + +`\Psi' + \Psi + +`\psi' + \psi + +`\rangle' + \rangle (delimitador) + +`\rbrace' + \rbrace (delimitador) + +`\rbrack' + \rbrack (delimitador) + +`\rceil' + \rceil (delimitador) + +`\Re' + \Re + +`\rfloor' + \rfloor + +`\rhd' + (operación binaria) + +`\rho' + \rho + +`\Rightarrow' + \Rightarrow + +`\rightarrow' + \rightarrow + +`\rightharpoondown' + \rightharpoondown + +`\rightharpoonup' + \rightharpoonup + +`\rightleftharpoons' + \rightleftharpoons + +`\searrow' + \searrow + +`\setminus' + \setminus (operación binaria) + +`\sharp' + \sharp + +`\Sigma' + \Sigma + +`\sigma' + \sigma + +`\sim' + \sim (relación) + +`\simeq' + \simeq (relación) + +`\smallint' + \smallint + +`\smile' + \smile (relación) + +`\spadesuit' + \spadesuit + +`\sqcap' + \sqcap (operación binaria) + +`\sqcup' + \sqcup (operación binaria) + +`\sqsubset' + (relación) + +`\sqsubseteq' + \sqsubseteq (relación) + +`\sqsupset' + (relación) + +`\sqsupseteq' + \sqsupseteq (relación) + +`\star' + \star (operación binaria) + +`\subset' + \subset (relación) + +`\subseteq' + \subseteq (relación) + +`\succ' + \succ (relación) + +`\succeq' + \succeq (relación) + +`\sum' + \sum + +`\supset' + \supset (relación) + +`\supseteq' + \supseteq (relación) + +`\surd' + \surd + +`\swarrow' + \swarrow + +`\tau' + \tau + +`\theta' + \theta + +`\times' + \times (operación binaria) + +`\to' + \to + +`\top' + \top + +`\triangle' + \triangle + +`\triangleleft' + \triangleleft (operación binaria) + +`\triangleright' + \triangleright (operación binaria) + +`\unlhd' + punta de flecha apuntando hacia la izquierda con una lÃnea debajo + (operación binaria) + +`\unrhd' + punta de flecha apuntando hacia la derecha con lÃnea debajo + (operación binaria) + +`\Uparrow' + \Uparrow (delimitador) + +`\uparrow' + \uparrow (delimitador) + +`\Updownarrow' + \Updownarrow (delimitador) + +`\updownarrow' + \updownarrow (delimitador) + +`\uplus' + \uplus (operación binaria) + +`\Upsilon' + \Upsilon + +`\upsilon' + \upsilon + +`\varepsilon' + \varepsilon + +`\varphi' + \varphi + +`\varpi' + \varpi + +`\varrho' + \varrho + +`\varsigma' + \varsigma + +`\vartheta' + \vartheta + +`\vdash' + \vdash (relation) + +`\vee' + \vee (operación binaria) + +`\Vert' + \Vert (delimitador) + +`\vert' + \vert (delimitador) + +`\wedge' + \wedge (operación binaria) + +`\wp' + \wp + +`\wr' + \wr (operación binaria) + +`\Xi' + \Xi + +`\xi' + \xi + +`\zeta' + \zeta + + +File: latex2e-es.info, Node: Funciones Matemáticas, Next: Acentos Matemáticos, Prev: SÃmbolos Matemáticos, Up: Fórmulas Matemáticas + +16.3 Funciones Matemáticas +========================== + +Estas instrucciones producen nombres de función romanos en modo math con +el espaciado adecuado. + +`\arccos' + \arccos + +`\arcsin' + \arcsin + +`\arctan' + \arctan + +`\arg' + \arg + +`\bmod' + Operador residuo binario (x \bmod y) + +`\cos' + \cos + +`\cosh' + \cosh + +`\cot' + \cos + +`\coth' + \cosh + +`\csc' + \csc + +`\deg' + \deg + +`\det' + \deg + +`\dim' + \dim + +`\exp' + \exp + +`\gcd' + \gcd + +`\hom' + \hom + +`\inf' + \inf + +`\ker' + \ker + +`\lg' + \lg + +`\lim' + \lim + +`\liminf' + \liminf + +`\limsup' + \limsup + +`\ln' + \ln + +`\log' + \log + +`\max' + \max + +`\min' + \min + +`\pmod' + residuo entre paréntesis, como en (\pmod 2^n - 1) + +`\Pr' + \Pr + +`\sec' + \sec + +`\sin' + \sin + +`\sinh' + \sinh + +`\sup' + \sup + +`\tan' + \tan + +`\tanh' + \tanh + + +File: latex2e-es.info, Node: Acentos Matemáticos, Next: Espacios en Modo Math, Prev: Funciones Matemáticas, Up: Fórmulas Matemáticas + +16.4 Acentos Matemáticos +======================== + +LaTeX proporciona una variedad de instrucciones para producir letras +acentuadas en matemáticas. Son distintas de los acentos en un texto +normal (*note Acentos::). + +`\acute' + Acento agudo en modo Math: \acute{x}. + +`\bar' + Acento barra horizontal (macrón) en modo Math: \bar{x}. + +`\breve' + Acento breve en modo Math: \breve{x}. + +`\check' + Acento de verificación háÄek en modo Math: \check{x}. + +`\ddot' + Acento diéresis en modo Math: \ddot{x}. + +`\dot' + Acento punto superior en modo Math: \dot{x}. + +`\grave' + Acento grave en modo Math: \grave{x}. + +`\hat' + Acento circunflejo en modo Math: \hat{x}. + +`\imath' + i sin punto en modo Math. + +`\jmath' + j sin punto en modo Math. + +`\tilde' + Acento tilde en modo Math: \tilde{x}. + +`\vec' + SÃmbolo de vector en modo Math: \vec{x}. + +`\widehat' + Acento circunflejo amplio en modo Math: \widehat{x+y}. + +`\widetilde' + Acento tilde amplia en modo Math: \widetilde{x+y}. + + +File: latex2e-es.info, Node: Espacios en Modo Math, Next: Miscelánea Math, Prev: Acentos Matemáticos, Up: Fórmulas Matemáticas + +16.5 Espacios en Modo Math +========================== + +En un entorno `math', LaTeX ignora los espacios que usted escriba y +coloca espacios de acuerdo a las reglas normales para texto matemático. +Si desea un espaciado diferente, LaTeX proporciona las siguientes +instrucciones para su uso en modo matemático: + +`\;' + Un espacio de grosor (5\over18\,cuádruple). + +`\:' +`\>' + Ambos producen un espacio medio (2\over9\,cuádruple). + +`\,' + Un espacio fino (1\over6\,cuádruple); no se limita a modo + matemático. + +`\!' + Un espacio fino negativo (-{1\over6}\,cuádruple). + + +File: latex2e-es.info, Node: Miscelánea Math, Prev: Espacios en Modo Math, Up: Fórmulas Matemáticas + +16.6 Miscelánea Math +==================== + +`\*' + Un sÃmbolo de multiplicación “discrecionalâ€, en el que se permiten + saltos de lÃnea. + +`\cdots' + Puntos suspensivos horizontales con los puntos elevados al centro + de la lÃnea. + +`\ddots' + Puntos suspensivos en diagonal: \ddots. + +`\frac{num}{den}' + Produce la fracción `num' dividida entre `den'. + +`\left delimitador1 ... \right delimitador2' + Los dos delimitadores no necesitan coincidir; `.' actúa como un + delimitador nulo, sin producir salida. Los delimitadores son del + tamaño de acuerdo a las matemáticas en el medio. Ejemplo: `\left( + \sum_i=1^10 a_i \right]'. + +`\overbrace{texto}' + Genera un par de texto más. Por ejemplo, \overbrace{x+\cdots+x}^{k + \rm\;veces}. + +`\overline{texto}' + Genera una lÃnea horizontal sobre texo. Por ejemplo, + \overline{x+y}. + +`\sqrt[raÃz]{argumento}' + Produce la representación de la raÃz cuadrada de argumento. El + argumento opcional raÃz determina qué raÃz producir. Por ejemplo, + la raÃz cúbica de `x+y' se escribe como `$\sqrt[3]{x+y}$'. + +`\stackrel{texto}{relación}' + Coloca el texto sobre la relación. + + Por ejemplo, `\stackrel{f}{\longrightarrow}'. + +`\underbrace{matemáticas}' + Genera matemáticas con una llave por debajo. + +`\underline{text}' + Provoca que se subraye el texto, el cual bien puede estar en modo + math o no. La lÃnea siempre está por debajo del texto, teniendo en + cuenta los descendientes. + +`\vdots' + Produce puntos suspensivos verticales. + + +File: latex2e-es.info, Node: Modos, Next: Estilos de Página, Prev: Fórmulas Matemáticas, Up: Top + +17 Modos +******** + +Cuando LaTeX está procesando el texto fuente, este siempre está en uno +de tres modos: + + • Modo Párrafo + + • Modo Math + + • Modo de Izquierda a derecha (Left-to-Right), llamado modo LR para + abreviar + + LaTeX cambia el modo sólo cuando sube o baja una escala a un +diferente nivel, aunque no todos los cambios de nivel producen cambios +de modo. Los cambios de modo sólo se producen al entrar o salir de un +entorno, o cuando LaTeX está procesando el argumento de determinadas +instrucciones que producen texto. + + El “modo Párrafo†es el más común; es en el que LaTeX está cuando +procesa texto ordinario. En ese modo, LaTeX rompe el texto en lÃneas y +separa lÃneas en páginas. LaTeX está en “modo math†cuando está +generando fórmulas matemáticas. En “modo LRâ€, como en modo párrafo, +LaTeX considera que la salida que produce es una cadena de palabras con +espacios entre ellas. Sin embargo, a diferencia del modo párrafo, LaTeX +sigue yendo de izquierda a derecha; nunca inicia una nueva lÃnea en modo +LR. Incluso si usted pone un centenar de palabras en una `\mbox', LaTeX +mantendrá la composición de izquierda a derecha dentro de una caja +única, y luego se quejará porque la caja resultante fue demasiado grande +para caber en la lÃnea. + + LaTeX está en modo LR cuando comienza a hacer una caja con una +instrucción `\mbox'. Usted puede conseguir introducirse en un modo +diferente dentro de la caja —por ejemplo, usted puede hacerlo entrar en +el modo matemático para poner una fórmula en la caja. También hay +varias instrucciones productoras de texto y entornos para hacer una caja +que ponga a LaTeX en el modo de párrafo. La caja hecha por medio de una +de estas instrucciones o entornos se llama `parbox'. Cuando LaTeX está +en el modo de párrafo mientras que hace una caja, se dice que está en +“modo interno de párrafoâ€. Su modo de párrafo normal, que se inicia +fuera de él, se llama el “modo de párrafo externoâ€. + + +File: latex2e-es.info, Node: Estilos de Página, Next: Espacios, Prev: Modos, Up: Top + +18 Estilos de Página +******************** + +La instrucción `\documentclass' determina el tamaño y posición de las +cabeceras y pies de página. El estilo de página determina lo que sucede +en ellos. + +* Menu: + +* \maketitle:: Genera una página de tÃtulo. +* \pagenumbering:: Fija el estilo utilizado para los números de página. +* \pagestyle:: Cambia el estilo de las cabeceras/pies de página. +* \thispagestyle:: Cambiar el estilo de las cabeceras/pies de página para esa página. + + +File: latex2e-es.info, Node: \maketitle, Next: \pagenumbering, Up: Estilos de Página + +18.1 `\maketitle' +================= + +La instrucción `\maketitle' genera un tÃtulo en una página independiente +— excepto en la clase `article', donde se coloca el tÃtulo en la parte +superior de la primera página. La información utilizada para producir +el tÃtulo se obtiene de las siguientes declaraciones: + +`\author{nombre \and nombre2}' + La instrucción `\author' declara los autor(es) del documento, donde + el argumento es una lista de autores separados por instrucciones + `\and'. Use `\\' para separar lÃneas con una única entrada de + autor —por ejemplo, para proporcionar las entidades de autor o + dirección. + +`\date{texto}' + La instrucción `\date' declara el texto para ser la fecha del + documento. Sin la instrucción `\date', se utiliza la fecha actual + (*note \today::). + +`\thanks{texto}' + La instrucción `\thanks' produce un pie de página (`\footnote') + para el tÃtulo, normalmente utilizada para reconocimiento de + créditos. + +`\title{texto}' + La instrucción `\title' declara texto para ser el tÃtulo del + documento. Use `\\' para forzar un salto de lÃnea, de la manera + usual. + + +File: latex2e-es.info, Node: \pagenumbering, Next: \pagestyle, Prev: \maketitle, Up: Estilos de Página + +18.2 `\pagenumbering' +===================== + +Sinopsis: + + \pagenumbering{estilo} + + Especifica el estilo de los números de página, de acuerdo a estilo: + +`arabic' + números arábigos + +`roman' + números romanos en minúscula + +`Roman' + numeros romanos en mayúscula + +`alph' + letras en minúscula + +`Alph' + letras en mayúscula + + +File: latex2e-es.info, Node: \pagestyle, Next: \thispagestyle, Prev: \pagenumbering, Up: Estilos de Página + +18.3 `\pagestyle' +================= + +Sinopsis: + + \pagestyle{estilo} + + La instrucción `\pagestyle' especifica como se componen +tipográficamente las cabeceras y pies de página a partir de la página +actual. Valores para estilo: + +`plain' + Únicamente un número de página sencillo. + +`empty' + Cabeceras y pies de página vacÃos, por ejemplo, sin números de + página. + +`headings' + Coloca encabezados en cada página. El estilo de documento + especifica lo que sucede en las cabeceras. + +`myheadings' + Cabeceras personalizadas, especificadas via las instrucciones + `\markboth' o `\markright'. + + Aquà están las descripciones de `\markboth' y `\markright': + +`\markboth{izquierda}{derecha}' + Establece ambas cabeceras izquierda y derecha. Una “cabecera a + mano izquierda†(izquierda) es generada por la última instrucción + `\markboth' antes del final de la página, mientras que una + “cabecera a mano derecha†(derecha) es generada por la primera + `\markboth' o `\markright' que venga en la página si la hay, de + otra manera por la última antes de la página. + +`\markright{derecha}' + Establece la cabecera de la derecha, dejando la cabecera de la + izquierda sin cambios. + + +File: latex2e-es.info, Node: \thispagestyle, Prev: \pagestyle, Up: Estilos de Página + +18.4 `\thispagestyle{estilo}' +============================= + +La instrucción `\thispagestyle' trabaja de la misma manera que la +instrucción `\pagestyle' (vea la sección previa) excepto que esta +únicamente cambia el estilo de la página actual. + + +File: latex2e-es.info, Node: Espacios, Next: Cajas, Prev: Estilos de Página, Up: Top + +19 Espacios +*********** + +LaTeX tiene muchas formas de producir espacios en blanco (o llenos). + + Otra instrucción que produce espacios es `\' para producir un espacio +“fino†(por lo general 1/6cuadrático). Se puede utilizar en modo texto, +pero más a menudo es útil en modo matemático (*note Espacios en Modo +Math::). + +* Menu: + +Espacio horizontal +* \hspace:: Espacio horizontal fijo. +* \hfill:: Espacio horizontal extensible. +* \SPACE:: Espacio normal entre palabras. +* \AT:: Finalizando una frase. +* \thinspace:: Una sexta parte de una em. +* \/:: Corrección cursiva por caracteres. +* \hrulefill:: Regla horizontal extensible. +* \dotfill:: Puntos horizontales extensibles. + +Espacio Vertical +* \addvspace:: Añadiendo espacio vertical arbitrario si es necesario. +* \bigskip \medskip \smallskip:: Espacio vertical fijo. +* \vfill:: Espacio vertical infinitamente extensible. +* \vspace:: Añadiendo espacio vertical arbitrario. + + +File: latex2e-es.info, Node: \hspace, Next: \hfill, Up: Espacios + +19.1 `\hspace' +============== + +Sinopsis: + + \hspace[*]{longitud} + + La instrucción `\hspace' añade espacio horizontal. El argumento +length se puede expresar en cualquier término que LaTeX entienda: +puntos, pulgadas, etc. Esta es la longitud a preservar. Usted puede +agregar tanto espacios negativos como positivos con una instrucción +`\hspace'; agregar espacio negativo es como espacio hacia atrás. + + LaTeX normalmente elimina el espacio horizontal que viene al +principio o al final de una lÃnea. Para preservar este espacio, use la +forma opcional con `*'. + + +File: latex2e-es.info, Node: \hfill, Next: \SPACE, Prev: \hspace, Up: Espacios + +19.2 `\hfill' +============= + +La instrucción `\hfill' produce un “relleno de longitud†que no tiene +espacio natural sino que se puede extender o reducir en sentido +horizontal en la medida necesaria. + + El parámetro `\fill' es la misma longitud a rellenar (técnicamente, +el valor a agregar `0pt plus1fill'); es decir, `\hspace\fill' es +equivalente a `\hfill'. + + +File: latex2e-es.info, Node: \SPACE, Next: \AT, Prev: \hfill, Up: Espacios + +19.3 `\SPACE' +============= + +La instrucción `\ ' (space) produce un espacio entre palabras normal. +Es útil después de signos de puntuación que no deben terminar una +oración. Por ejemplo, `Knuth's article in Proc.\ Amer.\ Math\. Soc.\ es +fundamental'. Esta también se suele utilizar después de secuencias de +control, como en `\TeX\ es un sistema agradable'. + + En circunstancias normales, `\'<tab> y `\'<newline> son equivalentes +a `\ '. + + +File: latex2e-es.info, Node: \AT, Next: \thinspace, Prev: \SPACE, Up: Espacios + +19.4 `\@' +========= + +La instrucción `\@' hace que el siguiente carácter de puntuación final +una declaración incluso si normalmente no es asÃ. Esto se suele +utilizar después de una letra mayúscula. Aquà están lado a lado +ejemplos con y sin `\@': + + … en C\@. Pascal, aunque … + … en C. Pascal, aunque … + +produce + + … en C. Pascal, aunque … … en C. Pascal, aunque … + + +File: latex2e-es.info, Node: \thinspace, Next: \/, Prev: \AT, Up: Espacios + +19.5 `\thinspace' +================= + +`\thinspace' produce un espacio inviolable e inextensible que es de un +1/6 de em. Este es el espacio adecuado para su uso en citas anidadas, +como en 'â€. + + +File: latex2e-es.info, Node: \/, Next: \hrulefill, Prev: \thinspace, Up: Espacios + +19.6 `\/' +========= + +La instrucción `\/' produce una "corrección en cursiva". Este es un +pequeño espacio definido por el diseñador de tipografÃas para un +carácter determinado, para evitar chocar con el carácter que lo sigue. +El carácter en cursiva f tÃpicamente tiene un valor de corrección en +cursiva grande. + + Si el siguiente carácter es un punto o una coma, no es necesario +insertar una corrección en cursiva, dado que estos sÃmbolos tienen una +puntuación de muy poca altura. Sin embargo, con punto y coma o dos +puntos, asà como letras normales, puede ayudar. Compare f: f; (en la +salida TeX, las `f's están separadas correctamente) con f: f;. + + A pesar del nombre, los caracteres latinos también pueden tener una +corrección en cursiva. Compare pdfTeX (en la TeX salida, hay un pequeño +espacio después de la `f') con pdfTeX. + + +File: latex2e-es.info, Node: \hrulefill, Next: \dotfill, Prev: \/, Up: Espacios + +19.7 `\hrulefill' +================= + +La instrucción `\hrulefill' produce un “relleno de longitud†el cual se +puede estrechar o estirar horizontalmente. Este se llenará con una +regla horizontal. + + +File: latex2e-es.info, Node: \dotfill, Next: \addvspace, Prev: \hrulefill, Up: Espacios + +19.8 `\dotfill' +=============== + +La instrucción `\dotfill' produce un “relleno de longitud†la cual se +rellena con puntos en lugar de sólo espacios en blanco. + + +File: latex2e-es.info, Node: \addvspace, Next: \bigskip \medskip \smallskip, Prev: \dotfill, Up: Espacios + +19.9 `\addvspace' +================= + +`\addvspace{longitud}' + + La instrucción `\addvspace' normalmente añade un espacio vertical de +altura longitud. Sin embargo, si el espacio vertical ya se ha añadido +al mismo punto en la salida por medio de una instrucción `\addvspace' +anterior, esta instrucción no añade más espacio que el necesario para +hacer que la longitud natural del espacio vertical total equivalente a +`longitud'. + + +File: latex2e-es.info, Node: \bigskip \medskip \smallskip, Next: \vfill, Prev: \addvspace, Up: Espacios + +19.10 `\bigskip \medskip \smallskip' +==================================== + +Estas instrucciones producen una determinada cantidad de espacio. + +`\bigskip' + Al igual que `\vspace{bigskipamount}', normalmente alrededor de un + espacio de lÃnea (con estirar y encoger). + +`\medskip' + Al igual que `\vspace{medskipamount}', normalmente cerca de la + mitad del espacio de una lÃnea (con estirar y encoger). + +`\smallskip' + Al igual que `\vspace{smallskipamount}', normalmente alrededor de + un cuarto del espacio de una lÃnea (con estirar y encoger). + + Los parámetros `\...cantidad' están determinados por la clase de +documento. + + +File: latex2e-es.info, Node: \vfill, Next: \vspace, Prev: \bigskip \medskip \smallskip, Up: Espacios + +19.11 `\vfill' +============== + +La instrucción `\vfill' produce un relleno de longitud (pegado) el cual +se puede reducir y estirar verticalmente tanto como sea necesario. Este +es equivalente a `\vspace{\fill}' (*note \hfill::). + + +File: latex2e-es.info, Node: \vspace, Prev: \vfill, Up: Espacios + +19.12 `\vspace[*]{longitud}' +============================ + +Sinopsis: + + \vspace[*]{longitud} + + La instrucción `\vspace' añade el espacio vertical length, es decir, +un relleno de longitud. longitud puede ser positivo o negativo. + + Normalmente, LaTeX remueve el espacio vertical añadido por `\vspace' +en la parte superior o inferior de una página. Con el argumento +opcional `*', no se elimina el espacio. + + +File: latex2e-es.info, Node: Cajas, Next: Inserciones Especiales, Prev: Espacios, Up: Top + +20 Cajas +******** + +Todos los parámetros de longitud predeterminados (*note Longitudes +Predeterminadas::) se pueden utilizar en los argumentos de las +instrucciones que generan cajas. + +* Menu: + +* \mbox:: Cajas horizontales. +* \fbox y \framebox:: Coloca un marco alrededor de una caja. +* lrbox:: Un entorno como \sbox. +* \makebox:: Caja, de posición ajustable. +* \parbox:: Caja con texto en modo párrafo. +* \raisebox:: Sube o baja el texto. +* \savebox:: Al igual que \makebox, pero guarda el texto para utilizarlo posteriormente. +* \sbox:: Igual que \mbox, pero guarda el texto para utilizarlo posteriormente. +* \usebox:: Imprime texto guardado. + + +File: latex2e-es.info, Node: \mbox, Next: \fbox y \framebox, Up: Cajas + +20.1 `\mbox{texto}' +=================== + +La instrucción `\mbox' crea una caja lo suficientemente ancha para +contener el texto creado por sus argumentos. El texto no se separa en +lÃneas, por lo tanto este se puede utilizar para prevenir la separación +silábica. + + +File: latex2e-es.info, Node: \fbox y \framebox, Next: lrbox, Prev: \mbox, Up: Cajas + +20.2 `\fbox' y `\framebox' +========================== + +Sinopsis: + + \fbox{texto} + \framebox[ancho][posición]{texto} + + Las instrucciones `\fbox' y `\framebox' son como `\mbox', excepto que +estas ponen un marco al rededor del exterior de la caja que se está +creando. + + Además, la instrucción `\framebox' permite especificar explÃcitamente +la anchura de la caja con el argumento opcional width (una dimensión), y +la posiciona con el argumento opcional posición. + + Ambas instrucciones producen una regla de espesor `\fboxrule' +(predeterminado a `.4pt'), y dejan un espacio de `\fboxsep' +(predeterminado a `3pt') entre la regla y el contenido de la caja. + + *Note \framebox (imagen)::, para la instrucción `\framebox' en el +entorno `picture'. + + +File: latex2e-es.info, Node: lrbox, Next: \makebox, Prev: \fbox y \framebox, Up: Cajas + +20.3 `lrbox' +============ + +`\begin{lrbox}{instrucción} texto \end{lrbox}' + + Esta es la forma de entorno de `\sbox'. + + El texto dentro del entorno se guarda en la caja `instrucción', misma +que se debe haber declarado con `\newsavebox'. + + +File: latex2e-es.info, Node: \makebox, Next: \parbox, Prev: lrbox, Up: Cajas + +20.4 `\makebox' +=============== + +Sinopsis: + + \makebox[ancho][posición]{texto} + + La instrucción `\makebox' crea una caja lo suficientemente ancha para +contener el texto especificado. La anchura de la caja es especificada +por el argumento opcional ancho. La posición del texto dentro de la +caja está determinada por el argumento opcional posición, el cual puede +tomar los siguientes valores: + +`c' + Centrado (predeterminado). + +`l' + Alineado a la izquierda + +`r' + Alineado a la derecha + +`s' + Alineado (justificado) a través de ancho; texto debe contener + espacio elástico para que esto funcione. + + `\makebox' también se utiliza en el entorno picture *note \makebox +(imagen)::. + + +File: latex2e-es.info, Node: \parbox, Next: \raisebox, Prev: \makebox, Up: Cajas + +20.5 `\parbox' +============== + +Sinopsis: + + \parbox[posición][alto][pos-interna]{ancho}{texto} + + La instrucción `\parbox' produce una caja cuyo contenido es creado en +modo `paragraph'. Se debe utilizar para hacer una caja de pequeñas +piezas de texto, sin nada lujoso en el interior. En particular, no debe +utilizar ningún entorno que genere párrafos dentro de un argumento +`\parbox'. Para grandes piezas de texto, incluyendo aquellas que +contienen un entorno que genera párrafos, debe usar un entorno +`minipágina' (*note minipage::). + + `\parbox' tiene dos argumentos obligatorios: + +ancho + la anchura de parbox; + +texto + El texto que va dentro de la parbox. + + El argumento opcional posición le permite alinear la lÃnea en la +parte superior o inferior de parbox con la lÃnea base del texto que lo +rodea (de manera predeterminada es superior). + + El argumento opcional alto reemplaza la altura natural de la caja. + + Al argumento pos-interior controla la ubicación del texto dentro de +la caja de la siguiente manera; Si no se especifica, se utiliza +posición. + +`t' + El texto es colocado en la parte superior de la caja. + +`c' + El texto se coloca al centro de la caja. + +`b' + El texto se coloca en la parte inferior de la caja. + +`s' + Se extiende verticalmente; el texto debe contener espacio vertical + extensible para que esto funcione. + + +File: latex2e-es.info, Node: \raisebox, Next: \savebox, Prev: \parbox, Up: Cajas + +20.6 `\raisebox' +================ + +Sinopsis: + + \raisebox{distancia}[alto][profundidad]{texto} + + La instrucción `\raisebox' aumenta o disminuye el texto. El primer +argumento obligatorio especifica a qué altura se va a levantar (o bajar +si la cantidad es negativa) el texto. El texto mismo es procesado en +modo LR. + + Los argumentos opcionales alto y profundidad son dimensiones. Si se +especifican, LaTeX trata a texto como una ampliación de una distancia +determinada sobre la lÃnea base (alto) o bajo (profundidad), omitiendo +su altura y profundidad natural. + + +File: latex2e-es.info, Node: \savebox, Next: \sbox, Prev: \raisebox, Up: Cajas + +20.7 `\savebox' +=============== + +Sinopsis: + + \savebox{\instrucción-caja}[ancho][posición]{texto} + + Esta instrucción fija la tipografÃa de texto en una caja al igual que +`\makebox' (*note \makebox::), excepto que el lugar de imprimir la caja +resultante, esta la guarda en la caja etiquetada \instrucción-caja, que +se debe haber declarado con `\newsavebox' (*note \newsavebox::). + + +File: latex2e-es.info, Node: \sbox, Next: \usebox, Prev: \savebox, Up: Cajas + +20.8 `\sbox{\instrucción-caja}{texto}' +====================================== + +Sinopsis: + + \sbox{\instrucción-caja}{texto} + + `\sbox' escribe el texto en una caja tal como `\mbox' (*note \mbox::) +excepto que en lugar de incluir la caja resultante en la salida normal, +esta la guarda en la caja etiquetada \instrucción-caja. +\instrucción-caja se debió declarar previamente con `\newsavebox' (*note +\newsavebox::). + + +File: latex2e-es.info, Node: \usebox, Prev: \sbox, Up: Cajas + +20.9 `\usebox{\instrucción-caja}' +================================= + +Sinopsis: + + \usebox{\instrucción-caja} + + `\usebox' produce la caja guardada más recientemente en el depósito +\instrucción-caja por una instrucción `\savebox' (*note \savebox::). + + +File: latex2e-es.info, Node: Inserciones Especiales, Next: Dividiendo la Entrada, Prev: Cajas, Up: Top + +21 Inserciones Especiales +************************* + +LaTeX proporciona instrucciones para insertar caracteres que tienen un +significado especial que no corresponde a caracteres simples que usted +puede escribir. + +* Menu: + +* Caracteres Reservados:: Insertando # $ % & ~ _ ^ \ { } +* SÃmbolos de Texto:: Insertando en el texto otros sÃmbolos distintos a letras. +* Acentos:: Insertando acentos. +* Caracteres no Ingleses:: Insertando otros caracteres no Ingleses. +* \rule:: Insertando lÃneas y rectángulos. +* \today:: Insertando la fecha de hoy. + + +File: latex2e-es.info, Node: Caracteres Reservados, Next: SÃmbolos de Texto, Up: Inserciones Especiales + +21.1 Caracteres Reservados +========================== + +Los siguientes caracteres desempeñan un papel especial en LaTeX y se +llaman “caracteres reservados†o “caracteres especialesâ€. + + # $ % & ~ _ ^ \ { } + + Siempre que escriba en su archivo uno de estos caracteres, LaTeX debe +hacer algo especial. Si simplemente desea imprimir el carácter en sà +mismo, incluya un carácter `\' anteponiéndolo a este. Por ejemplo, `\$' +debe producir `$' en su salida. + + Una excepción a esta regla es la `\' misma, debido a que `\' tiene su +propio significado especial (dependiente del contexto). Una \ romana es +producida al escribir `$\backslash$' en su archivo, y una `\' de máquina +de escribir es producida usando `\' en una instrucción verbatim (*note +verbatim::). + + Además, `\~' y `\^' colocan acentos tilde y circunflejo sobre la +siguiente letra, como en õ y ô (*note Acentos::); Para obtener una `~' o +`^' independiente, usted puede utilizar una instrucción verbatim. + + Por último, puede acceder a cualquier carácter del tipo de letra +actual una vez que sepa su número utilizando la instrucción `\symbol'. +Por ejemplo, el carácter de espacio visibles utilizada en la instrucción +`\verb*' tiene el código decimal 32, por lo tanto se puede escribir como +`\symbol{32}'. + + También puede especificar números octales con `'' o números +hexadecimales con `"', por lo que el ejemplo anterior también se podrÃa +escribir como `\symbol{'40}' o `\symbol{"20}'. + + +File: latex2e-es.info, Node: SÃmbolos de Texto, Next: Acentos, Prev: Caracteres Reservados, Up: Inserciones Especiales + +21.2 SÃmbolos de Texto +====================== + +LaTeX proporciona instrucciones para generar una serie sÃmbolos +distintos de letras, en el texto. Algunos de estos, especialmente los +más oscuros, no están disponibles en OT1; posiblemente tenga que cargar +el paquete `textcomp'. + +`\copyright' +`\textcopyright' + El sÃmbolo de copyright, ©. + +`\dag' + El sÃmbolo daga (en texto). + +`\ddag' + El sÃmbolo doble daga (en texto). + +`\LaTeX' + El logotipo de LaTeX. + +`\guillemotleft («)' +`\guillemotright (»)' +`\guilsinglleft (‹)' +`\guilsinglright (›)' + Comillas tipográficas angulares dobles y simples, utilizadas + comúnmente en Francés: «, », ‹, ›. + +`\ldots' +`\dots' +`\textellipsis' + Puntos suspensivos (tres puntos en la lÃnea base): `…'. `\ldots' y + `\dots' también trabajan en modo math. + +`\lq' + Comilla izquierda (de apertura): `. + +`\P' +`\textparagraph' + Signo de párrafo (antÃgrafo). + +`\pounds' +`\textsterling' + Libras esterlinas en Inglés: £. + +`\quotedblbase („)' +`\quotesinglbase (‚)' + Simple y dobles comillas en la lÃnea base: „ y ‚. + +`\rq' + Comilla derecha (de cierre): '. + +`\S' + SÃmbolo de sección. + +`\TeX' + El logotipo de TeX. + +`\textasciicircum' + Circunflejo ASCII: ^. + +`\textasciitilde' + Tilde ASCII: ~. + +`\textasteriskcentered' + Asterisco centrado: *. + +`\textbackslash' + Barra inversa: \. + +`\textbar' + Barra Vertical: |. + +`\textbardbl' + Doble barra vertical. + +`\textbigcircle' + SÃmbolo cÃrculo grande. + +`\textbraceleft' + Llave izquierda: {. + +`\textbraceright' + Llave derecha: }. + +`\textbullet' + Bala: •. + +`\textcircled{letra}' + letra en un cÃrculo, como en ®. + +`\textcompwordmark' +`\textcapitalwordmark' +`\textascenderwordmark' + Marca de palabra compuesta (invisible). La forma `\textcapital...' + tiene la tapa del tipo de letra, mientras que la forma + `\textascender...' tiene el ascender superior. + +`\textdagger' + Daga: \dag. + +`\textdaggerdbl' + Daga doble: \ddag. + +`\textdollar (o `$')' + Signo de Dólar: $. + +`\textemdash (o `---')' + Em-dash: — (para puntuación). + +`\textendash (o `--')' + En-dash: — (para rangos). + +`\texteuro' + El SÃmbolo del Euro: €. + +`\textexclamdown (o `!`')' + Signo de exclamación inicial: ¡. + +`\textgreater' + Mayor que: >. + +`\textless' + Menor que: <. + +`\textleftarrow' + Flecha izquierda. + +`\textordfeminine' +`\textordmasculine' + SÃmbolos ordinales femenino y masculino: ª, º. + +`\textordfeminine' + SÃmbolo ordinal femenino: ª. + +`\textperiodcentered' + Punto centrado: \cdot. + +`\textquestiondown (o `?`')' + Signo de interrogación inicial: ¿. + +`\textquotedblleft (o ```')' + Comillas dobles de apertura: “. + +`\textquotedblright (o `'')' + Dobles comillas de cierre: â€. + +`\textquoteleft (o ``')' + Comilla de apertura simple: `. + +`\textquoteright (o `'')' + Comilla de cierre simple: '. + +`\textquotestraightbase' +`\textquotestraightdblbase' + LÃneas rectas simples y dobles en la lÃnea base. + +`\textregistered' + SÃmbolo de marca registrada: ®. + +`\textrightarrow' + Flecha hacia la derecha. + +`\textthreequartersemdash' + em-dash de “Tres cuartosâ€, entre en-dash y em-dash. + +`\texttrademark' + SÃmbolo de marca comercial: ^{\hbox{TM}}. + +`\texttwelveudash' + Xx 12u-. + +`\textunderscore' + Subrayado: _. + +`\textvisiblespace' + SÃmbolo de espacio visible. + + +File: latex2e-es.info, Node: Acentos, Next: Caracteres no Ingleses, Prev: SÃmbolos de Texto, Up: Inserciones Especiales + +21.3 Acentos +============ + +LaTeX tiene un amplio apoyo para muchos de los guiones de idiomas del +mundo, a través del paquete `babel' y de apoyo relacionados. Esta +sección no pretende abarcar todas con las que es compatible. Este +simplemente se limita a enumerar las principales instrucciones LaTeX +para crear caracteres acentuados. + + Las instrucciones `\capital...' producen formas alternativas para su +uso con letras mayúsculas. Estas no están disponibles con OT1. + +`\"' +`\capitaldieresis' + Produce una diéresis, como en ö. + +`\'' +`\capitalacute' + Produce un acento agudo, como en ó. En el entorno `tabbing', + empuja la columna actual a la derecha de la columna anterior (*note + tabbing::). + +`\.' + Produce un punto como acento sobre la siguiente, como en ȯ. + +`\=' +`\capitalmacron' + Produce un acento macrón (una barra) sobre el siguiente, como en Å. + +`\^' +`\capitalcircumflex' + Produce un acento circunflejo (sombrero) sobre la siguiente, como + en ô. + +`\`' +`\capitalgrave' + Produce un acento grave sobre la siguiente, como en ò. En el + entorno `tabbing', mueve el siguiente texto hacia el margen derecho + (*note tabbing::). + +`\~' +`\capitaltilde' + Produce una tilde como acento sobre la siguiente, como en ñ. + +`\b' + Produce una barra como acento sobre la siguiente, como en o̲. + +`\c' +`\capitalcedilla' + Produce una cedilla como acento sobre la siguiente, como en ç. + +`\d' +`\capitaldotaccent' + Produce un cÃrculo como acento sobre la siguiente, como en á». + +`\H' +`\capitalhungarumlaut' + Produce un acento diéresis húngaro sobre la siguiente, como en Å‘. + +`\i' + Produce una i sin punto, como en `ı'. + +`\j' + Produce una j sin punto, como en `j'. + +`\k' +`\capitalogonek' + Produce una letra con colita, como en `Ç«'. No disponible en la + codificación OT1. + +`\r' +`\capitalring' + Produce un anillo como acento, como en `oÌŠ'. + +`\t' +`\capitaltie' +`\newtie' +`\capitalnewtie' + Produce una atadura con el siguiente como acento, como en `oo['. + La forma `\newtie' está centrada en su caja. + +`\u' +`\capitalbreve' + Produce un acento breve, como en `Å'. + +`\underbar' + No es exactamente un acento, este produce una barra en el argumento + texto. El argumento siempre se procesa en modo horizontal. La + barra siempre está en una posición fija en la lÃnea base, por lo + que cruza a través de los trazos descendentes. Vea también + `\underline' en *note Miscelánea Math::. + +`\v' +`\capitalcaron' + Produce un acento háÄek (anticircunflejo, carón), como en `Ç’'. + + +File: latex2e-es.info, Node: Caracteres no Ingleses, Next: \rule, Prev: Acentos, Up: Inserciones Especiales + +21.4 Caracteres no Ingleses +=========================== + +Estas son las instrucciones LaTeX básicas para insertar los caracteres +más usados en idiomas distintos del Inglés. + +`\aa' +`\AA' + Ã¥ y Ã…. + +`\ae' +`\AE' + æ y Æ. + +`\dh' +`\DH' + Letra eth islandesa: ð y Ã. + +`\dj' +`\DJ' + xxxx + +`\ij' +`\IJ' + ij y IJ (salvo que un poco más juntas que como aparecen aquÃ). + +`\l' +`\L' + Å‚ y Å. + +`\ng' +`\NG' + xxxx + +`\o' +`\O' + ø y Ø. + +`\oe' +`\OE' + Å“ y Å’. + +`\ss' +`\SS' + ß y SS. + +`\th' +`\TH' + Letra espina Islandesa: þ y Þ. + + +File: latex2e-es.info, Node: \rule, Next: \today, Prev: Caracteres no Ingleses, Up: Inserciones Especiales + +21.5 `\rule' +============ + +Sinopsis: + + \rule[aumentar]{ancho}{espesor} + + La instrucción `\rule' produce "reglas", que son, lÃneas o +rectángulos. Los argumentos son: + +aumentar + Qué tanto aumentar la regla (opcional). + +ancho + La longitud de la regla (obligatorio). + +espesor + El espesor de la regla (obligatorio). + + +File: latex2e-es.info, Node: \today, Prev: \rule, Up: Inserciones Especiales + +21.6 `\today' +============= + +La instrucción `\today' produce la fecha de hoy, en formato `mes dd, +aaaa'; por ejemplo, `Julio 04 1976'. Utiliza los contadores +predefinidos `\day', `\month', y `\year' (*note \day \month \year::) +para hacerlo. No se actualiza cuando se ejecuta el programa. + + El paquete `datetime', entre otros, puede producir una amplia +variedad de formatos de fecha. + + +File: latex2e-es.info, Node: Dividiendo la Entrada, Next: Asuntos de Portada/Contraportada, Prev: Inserciones Especiales, Up: Top + +22 Dividiendo la Entrada +************************ + +Un documento de gran tamaño requiere una gran cantidad de insumos. En +lugar de poner toda la entrada en un único archivo de gran tamaño, es +más eficiente dividirlo en varios más pequeños. Independientemente del +número de archivos separados que utilice, hay uno que es el archivo +raÃz; este es cuyo nombre se escribe cuando se ejecuta LaTeX. + +* Menu: + +* \include:: Condicionalmente incluye un archivo. +* \includeonly:: Determina qué archivos serán incluidos. +* \input:: Incluiye incondicionalmente un archivo. + + +File: latex2e-es.info, Node: \include, Next: \includeonly, Up: Dividiendo la Entrada + +22.1 `\include' +=============== + +Sinopsis: + + \include{archivo} + + No hay presente una instrucción `\includeonly', la instrucción +`\include' executa `\clearpage' para iniciar una nueva página (*note +\clearpage::), entonces lee el archivo, y luego hace otro `\clearpage'. + + Dada una instrucción `\includeonly', las acciones `\include' +únicamente se ejecutan si archivo está listado como un argumento para +`\includeonly'. Consulte la siguiente sección. + + La instrucción `\include' no puede aparecer en el preámbulo o en un +archivo leÃdo por otra instrucción `\include'. + + +File: latex2e-es.info, Node: \includeonly, Next: \input, Prev: \include, Up: Dividiendo la Entrada + +22.2 \`includeonly' +=================== + +Sinopsis: + + \includeonly{archivo1,archivo2,...} + + La instrucción `\includeonly' controla cuales archivos se deben leer +en subsecuentes instrucciones `\include'. La lista de nombres de +archivo se separa con comas. Cada archivo debe coincidir exactamente con +un nombre de archivo especificado en una instrucción `\include' para una +selección eficaz. + + Esta instrucción únicamente puede aparecer en el preámbulo. + + +File: latex2e-es.info, Node: \input, Prev: \includeonly, Up: Dividiendo la Entrada + +22.3 \input +=========== + +Sinopsis: + + \input{archivo} + + La instrucción `\input' provoca que el archivo especificado sea leÃdo +y procesado, tal como si su contendido se hubiera insertado en ese punto +en el archivo actual. + + Si archivo no termina en `.tex ' (por ejemplo, `foo' o `foo.bar'), +primero se intenta con esa extensión (`foo.tex' o `foo.bar.tex'). Si no +se encuentra, el archivo original se intenta con (`foo' o `foo.bar'). + + +File: latex2e-es.info, Node: Asuntos de Portada/Contraportada, Next: Cartas, Prev: Dividiendo la Entrada, Up: Top + +23 Asuntos de Portada/Contraportada +*********************************** + +* Menu: + +* Tablas de Contenido:: +* Glosarios:: +* Ãndices:: + + +File: latex2e-es.info, Node: Tablas de Contenido, Next: Glosarios, Up: Asuntos de Portada/Contraportada + +23.1 Tablas de Contenido +======================== + +Se produce una tabla de contenido con la instrucción `\tableofcontents'. +Usted pone la instrucción adecuada donde desea que aparezca la tabla de +contenido; LaTeX hace el resto para usted. Una ejecución previa habrá +generado un archivo `.toc'. + + La instrucción `\tableofcontents' produce una sección, pero no inicia +una nueva página automáticamente. Si desea una nueva página después de +la tabla de contenido, escriba una instrucción código `\newpage' después +de la instrucción `\tableofcontents'. + + Las instrucciones análogas `\listoffigures' y `\listoftables' +producen una lists de figuras y una lista de tablas, respectivamente. +Cada una funciona exactamente igual que la tabla de contenido. + + La instrucción `\nofiles' reemplaza estas instrucciones, e _impide_ +que se genere cualquiera de estas listas. + +* Menu: + +* \addcontentsline:: Agrega una entrada a la tabla de contenido, etc. +* \addtocontents:: Añade texto directamente al archivo de la tabla de contenido, etc. + + +File: latex2e-es.info, Node: \addcontentsline, Next: \addtocontents, Up: Tablas de Contenido + +23.1.1 \addcontentsline +----------------------- + +La instrucción `\addcontentsline'{extensión}{undad}{texto} añade una +entrada a la lista o tabla donde: + +extensión + La extensión del archivo en el que se va a escribir la información, + por lo general una de: `toc' (tabla de contenido), `lof' (lista de + figuras) o `lot' (lista de tablas). + +unidad + El nombre de la unidad de sección a añadir, normalmente una de las + siguientes, coincidiendo con el valor del argumento extensión: + + `toc' + El nombre de la unidad de sección: `part', `chapter', + `section', `subsection', `subsubsection'. + + `lof' + Para la lista de figuras. + + `lot' + Para la lista de tablas. + +texto + El texto real de la entrada. + + La instrucción que realmente escribe al archivo `.extensión' es la +instrucción `\contentsline{undad}{nombre}'. + + +File: latex2e-es.info, Node: \addtocontents, Prev: \addcontentsline, Up: Tablas de Contenido + +23.1.2 \addtocontents +--------------------- + +La instrucción `\addtocontents'{extensión}{texto} añade texto (o +instrucciones de formato) directamente al archivo `.extensión' que +genera la tabla de contenido o listas de figuras o tablas. + +extensión + La extensión del archivo en el cual escribir la información: `toc' + (tabla de contenido), `lof' (lista de figuras) o `lot' (lista de + tablas). + +texto + El texto a escribir. + + +File: latex2e-es.info, Node: Glosarios, Next: Ãndices, Prev: Tablas de Contenido, Up: Asuntos de Portada/Contraportada + +23.2 Glosarios +============== + +La instrucción `\makeglossary' habilita la creación de glosarios. + + La instrucción `\glossary{texto}' escribe una entrada en el glosario +para texto a un archivo auxiliar con la extensión `.glo'. + + EspecÃficamente, la instrucción que escribe es +`\glossaryentry{texto}{no-de-página}', donde no-de-página es el valor de +`\thepage'. + + El paquete `glossary' en CTAN proporciona compatibilidad para +glosarios más sofisticados. + + +File: latex2e-es.info, Node: Ãndices, Prev: Glosarios, Up: Asuntos de Portada/Contraportada + +23.3 Ãndices +============ + +La instrucción `\makeindex' permite la creación de Ãndices. Coloquela +en el preámbulo. + + La instrucción `\index{texto}' escribe una entrada en el Ãndice para +texto en un archivo auxiliar con la extensión `.idx'. + + EspecÃficamente, la instrucción que escribe la entrada es +`\indexentry{texto}{no-de-página}', donde no-de-página es el valor +actual de `\thepage'. + + Para generar una entrada de Ãndice para `bar' que diga `Vea foo', +utilice una barra vertical: `\index{bar|see{foo}}'. Use `seealso' en +lugar de `see' para producir una entrada `Vea también'. + + El texto `Vea' está definido por la macro `\seename', y `Vea también' +por la macro `\alsoname'. Estas se pueden redefinir para otros idiomas. + + El archivo `.idx' generado luego es ordenado con una instrucción +externa, por lo general alguna instrucción `makeindex' +(`http://mirror.ctan.org/indexing/makeindex') o (la de múltiples +idiomas) `xindy' (`http://xindy.sourceforge.net'). Esto resulta en un +archivo `.ind', que se puede leer para componer tipográficamente el +Ãndice. + + El Ãndice normalmente se genera con la instrucción `\printindex'. +Esta instrucción está definida en el paquete `makeidx', por lo tanto +necesita colocar en el preámbulo la instrucción `\usepackage{makeidx}'. + + La longitud de relleno `\indexspace' se inserta antes de cada nueva +letra en el Ãndice impreso; letra en el Ãndice impreso su valor +predeterminado es `10pt plus5pt minus3pt'. + + El paquete `showidx' hace que cada entrada en el Ãndice se muestre en +el margen de la página donde aparece la entrada. Esto puede ayudar en +la preparación del Ãndice. + + El paquete `multind' es compatible con múltiples Ãndices. Vea +también la entrada de este tema en las preguntas frecuentes de TeX, en + + `http://www.tex.ac.uk/cgi-bin/texfaq2html?label=multind'. + + +File: latex2e-es.info, Node: Cartas, Next: Entrada/Salida a la Terminal, Prev: Asuntos de Portada/Contraportada, Up: Top + +24 Cartas +********* + +Usted puede utilizar LaTeX para componer tipográficamente cartas, para +ambas personales y de negocios. La clase de documento `letter' está +diseñada para hacer una serie de cartas a la vez, aunque se puede hacer +sólo una si asà lo desea. + + Su archivo fuente `.tex' tiene las mismas instrucciones mÃnimas de +clase que en cualquier otro documento, es decir, debe tener las +siguientes instrucciones como mÃnimo: + + \documentclass{letter} + \begin{document} + ... cartas ... + \end{document} + + Cada carta es un entorno `letter', cuyo argumento es el nombre y +dirección del destinatario. Por ejemplo, usted podrÃa tener: + + \begin{letter}{Sr. José Pérez\\ Calle Princesa N°2345. + \\ Edinburgo, EH1 1AA} + ... + \end{letter} + + La carta en sà comienza con la instrucción `\opening'. Siguiéndole +el texto de la carta. Este se escribe como una entrada de LaTeX +ordinaria. Las instrucciones que no tienen sentido en una carta, como +`\chapter', no funcionan. La carta se cierra con una instrucción +`\closing'. + + Después de `closing', usted puede colocar material adicional. La +instrucción `\cc' produce el usual “cc: …â€. También hay una instrucción +`\encl' similar para una lista de destinatarios. Con ambas +instrucciones, use `\\' para separar los elementos. + + Estas instrucciones se utilizan con la clase `letter'. + +* Menu: + +* \address:: La dirección del remitente. +* \cc:: La lista Cc (Con copia para). +* \closing:: Un mensaje de despedida. +* \encl:: Lista de material adjunto. +* \location:: La dirección de su organización. +* \makelabels:: Produce etiquetas de dirección. +* \name:: Su nombre, para la dirección de retorno. +* \opening:: Saludando. +* \ps:: Agrega una posdata. +* \signature:: Su firma. +* \startbreaks:: Permite saltos de página. +* \stopbreaks:: No permite saltos de página. +* \telephone:: Su número de teléfono. + + +File: latex2e-es.info, Node: \address, Next: \cc, Up: Cartas + +24.1 \address{dirección-del-remitente} +====================================== + +La instrucción `\address' especifica la dirección del remitente de la +carta, como deberÃa aparecer en la carta y el sobre. Separa las lÃneas +de la dirección que deben estar separadas por instrucciones `\\'. + + Si usted no proporciona una declaración `\address', entonces, se +aplicará a la carta el formato de copia en papel con el membrete +estándar de su organización. (*Note Descripción::, para obtener +detalles sobre la implementación local). Si usted proporciona una +declaración `\address', entonces, la carta será formateada como una +carta personal. + + +File: latex2e-es.info, Node: \cc, Next: \closing, Prev: \address, Up: Cartas + +24.2 `\cc' +========== + +Sinopsis: + + \cc{nombre\\nombre2} + + Produce una lista de nombres a quienes enviar copias de la carta. +Cada nombre se imprime en una lÃnea separada. + + +File: latex2e-es.info, Node: \closing, Next: \encl, Prev: \cc, Up: Cartas + +24.3 `\closing' +=============== + +Sinopsis: + + \closing{texto} + + Una carta se cierra con la instrucción `\closing', por ejemplo, + \closing{Muy Atentamente,} + + +File: latex2e-es.info, Node: \encl, Next: \location, Prev: \closing, Up: Cartas + +24.4 `\encl' +============ + +Sinopsis: + + \encl{lÃnea1\\lÃnea2} + + Declara una lista de más de un documento adjunto. + + +File: latex2e-es.info, Node: \location, Next: \makelabels, Prev: \encl, Up: Cartas + +24.5 `\location' +================ + +`\location{dirección}' + + Esta modifica la dirección estándar de su organización. Esto sólo +aparece si el estilo de página `firstpage' está seleccionado. + + +File: latex2e-es.info, Node: \makelabels, Next: \name, Prev: \location, Up: Cartas + +24.6 `\makelabels' +================== + +`\makelabels{número}' + + Si ejecuta esta instrucción en el preámbulo, LaTeX creará una hoja de +etiquetas con las direcciones. Esta hoja se emitirá antes que las +cartas. + + +File: latex2e-es.info, Node: \name, Next: \opening, Prev: \makelabels, Up: Cartas + +24.7 `\name' +============ + +`\name{June Davenport}' + + Su nombre, utilizado en la impresión del sobre junto con la dirección +del remitente. + + +File: latex2e-es.info, Node: \opening, Next: \ps, Prev: \name, Up: Cartas + +24.8 `\opening{texto}' +====================== + +Sinopsis: + + \opening{texto} + + Una carta comienza con la instrucción `\opening'. El argumento +obligatorio, texto, es el texto con el que desea iniciar su carta. Por +ejemplo: + + \opening{Estimado José,} + + +File: latex2e-es.info, Node: \ps, Next: \signature, Prev: \opening, Up: Cartas + +24.9 `\ps' +========== + +Use la instrucción `\ps' para iniciar una posdata en una carta, después +de `\closing'. + + +File: latex2e-es.info, Node: \signature, Next: \startbreaks, Prev: \ps, Up: Cartas + +24.10 `\signature{texto}' +========================= + +Su nombre, como debe aparecer al final de la carta debajo del espacio +para su firma. `\\' inicia una nueva lÃnea dentro de texto como de +costumbre. + + +File: latex2e-es.info, Node: \startbreaks, Next: \stopbreaks, Prev: \signature, Up: Cartas + +24.11 `\startbreaks' +==================== + +`\startbreaks' + + Se usa después de una instrucción `\stopbreaks' para permitir de +nuevo los saltos de página. + + +File: latex2e-es.info, Node: \stopbreaks, Next: \telephone, Prev: \startbreaks, Up: Cartas + +24.12 `\stopbreaks' +=================== + +`\stopbreaks' + + Inhibe saltos de página hasta que aparezca una instrucción +`\startbreaks'. + + +File: latex2e-es.info, Node: \telephone, Prev: \stopbreaks, Up: Cartas + +24.13 `\telephone' +================== + +`\telephone{número}' + + Este es su número de teléfono. Este sólo aparece si el estilo de +página `firstpage' está seleccionado. + + +File: latex2e-es.info, Node: Entrada/Salida a la Terminal, Next: LÃnea de Órdenes, Prev: Cartas, Up: Top + +25 Entrada/Salida a la Terminal +******************************* + +* Menu: + +* \typein:: Lee texto desde la terminal. +* \typeout:: Escribe texto en la terminal. + + +File: latex2e-es.info, Node: \typein, Next: \typeout, Up: Entrada/Salida a la Terminal + +25.1 `\typein[instrucción]{mensaje}' +==================================== + +Sinopsis: + + \typein[\instrucción]{mensaje} + + `\typein' imprime el mensaje en la terminal y provoca que LaTeX se +detenga y espere para que usted escriba una lÃnea de entrada, terminando +con “Introâ€. Si se omite el argumento opcional \instrucción, la entrada +escrita se procesa como si se hubiera incluido en el archivo de entrada +en lugar de la instrucción `\typein'. Si está presente el argumento +\instrucción, debe ser el nombre de una instrucción. Este nombre de +instrucción entonces define o redefine la entrada escrita. + + +File: latex2e-es.info, Node: \typeout, Prev: \typein, Up: Entrada/Salida a la Terminal + +25.2 `\typeout{mensaje}' +======================== + +Sinopsis: + + \typeout{mensaje} + + Imprime el `mensaje' en la terminal y en el archivo `log'. Las +instrucciones en el `mensaje' que están definidas con `\newcommand' o +`\renewcommand' (entre otras) se sustituyen por su definición antes de +ser impresas. + + Las reglas habituales de LaTeX para el tratamiento de varios espacios +como un espacio único e ignorando espacios después de un nombre de +instrucción también se aplican al `mensaje'. Una instrucción `\space' +en `mensaje' provoca la impresión de un espació sencillo, +independientemente de los espacios circundantes. Una `^^J' en `mensaje' +imprime una nueva lÃnea. + + +File: latex2e-es.info, Node: LÃnea de Órdenes, Next: Plantillas de Documento, Prev: Entrada/Salida a la Terminal, Up: Top + +26 LÃnea de Órdenes +******************* + +La especificación de archivo de entrada indica el archivo al cual +aplicar formato; TeX usa `.tex' como extensión predeterminada. Si se +omite el archivo de entrada completamente, TeX acepta entrada desde la +terminal. Usted especifica opciones de instrucción mediante el +suministro de una cadena como un parámetro para la instrucción; por +ejemplo, + + latex '\nonstopmode\input foo.tex' + +debe procesar `foo.tex' sin hacer una pausa después de cada error. + + Si LaTeX se detiene en medio del documento y le muestra un indicador +`*', está esperando por una entrada. Usted puede escribir `\stop' (e +Intro) y este terminará el documento prematuramente. + + +File: latex2e-es.info, Node: Plantillas de Documento, Next: Ãndice de Conceptos, Prev: LÃnea de Órdenes, Up: Top + +Appendix A Plantillas de Documento +********************************** + +Aunque no es material de referencia, tal vez estas plantillas de +documento serán de utilidad. + +* Menu: + +* Plantilla book:: +* Plantilla beamer:: +* Plantilla tugboat:: + + +File: latex2e-es.info, Node: Plantilla book, Next: Plantilla beamer, Up: Plantillas de Documento + +A.1 Plantilla `book' +==================== + +\documentclass{book} +\usepackage[spanish]{babel} % Para escribir en Español normal +\usepackage[utf8]{inputenc} % Codificación de caracteres +\title{Plantilla de Clase Book} +\author{Autor Alex} + +\begin{document} +\maketitle + +\chapter{Primero} +Algún texto. + +\chapter{Segundo} +Algún otro texto. + +\section{Un subtema} +El final. +\end{document} + + +File: latex2e-es.info, Node: Plantilla beamer, Next: Plantilla tugboat, Prev: Plantilla book, Up: Plantillas de Documento + +A.2 Plantilla `beamer' +====================== + +La clase `beamer' crea diapositivas de presentaciones. + +\documentclass{beamer} +\usepackage[spanish]{babel} % Para escribir en Español normal +\usepackage[utf8]{inputenc} % Codificación de caracteres + +\title{Plantilla de Clase Beamer} +\author{Autor Alex} +\date{Julio 31, 2010} + +\begin{document} + +\maketitle + +% sin [fragile], cualquier código {verbatim} provoca errores misteriosos. +\begin{frame}[fragile] + \frametitle{Primer Diapositiva} + +\begin{verbatim} + ¡Esto está en \verbatim! +\end{verbatim} + +\end{frame} + +\end{document} + + +File: latex2e-es.info, Node: Plantilla tugboat, Prev: Plantilla beamer, Up: Plantillas de Documento + +A.3 Plantilla `tugboat' +======================= + +`TUGboat' es el diario del Grupo de Usuarios de TeX, +`http://tug.org/TUGboat'. + +\documentclass{ltugboat} % para procedimientos ltugproc + +\usepackage[spanish]{babel} % Para escribir en Español normal +\usepackage[utf8]{inputenc} % Codificación de caracteres +\usepackage{graphicx} +\usepackage{ifpdf} +\ifpdf + \usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, + urlcolor=black]{hyperref} +\else + \usepackage{url} +\fi + +\begin{document} + +\title{Ejemplo de Articulo Regular \TUB\} + +% repetir información para cada autor. +\author{First Last} +\address{Street Address \\ Town, Postal \\ Country} +\netaddress{user (at) ejemplo dot org} +\personalURL{http://ejemplo.org/~user/} + +\maketitle + +% El resumen en ltugboat viene después de \maketitle. +\begin{abstract} +Este es un ejemplo del tema de un artÃculo \TUB{} ordinario. +\end{abstract} + +\section{Introducción} + +Este es un artÃculo de ejemplo para \TUB, de +\url{http://tug.org/TUGboat/location.html}. + +Recomendamos el paquete graphicx para inclusión de imágenes y el +paquete hyperref para urls activas (en la salida \acro{PDF}). \TUB\ se +produce utilizando archivos \acro{PDF} exclusivamente, en la actualidad. + +Las clases \texttt{ltug*} proporcionan estas abreviaturas, entre muchas +otras: + +{\small +\begin{verbatim} +\AllTeX \AMS \AmS \AmSLaTeX \AmSTeX \aw \AW +\BibTeX \CandT \CTAN \DTD \DVItoVDU \HTML +\ISBN \ISSN \JTeX \JoT \LAMSTeX \LaTeXe +\Mc \mf \MFB \mtex \pcMF \PCTeX \pcTeX \Pas +\PiC \PiCTeX \plain \POBox \PS +\SC \SGML \SliTeX \TANGLE \TB \TP \TUB \TUG +\tug \UG \UNIX \VAX \VorTeX \XeT \WEB \WEAVE + +\Dash \dash \vellipsis \bull \cents \Dag +\careof \thinskip + +\acro{FRED} -> {\sc fred} % ¡Por favor úselas! +\cs{fred} -> \fred +\env{fred} -> \begin{fred} +\meta{fred} -> <fred> +\nth{n} -> 1st, 2nd, ... +\sfrac{3/4} -> 3/4 +\booktitle{Libro de Fred} +\end{verbatim} +} + +Para mayor información, consulte el documento en ltubguid: +\url{http://mirror.ctan.org/macros/latex/contrib/tugboat} + +Correo electrónico \verb|tugboat@tug.org| si incurre en problemas o tiene +dudas. + + + +\bibliographystyle{plain} % recomendamos el estilo de bibliografÃa plain +\nocite{book-minimal} % solo hace que la bibliografÃa no esté vacÃa +\bibliography{xampl} % xampl.bib viene con BibTeX + + +\makesignature % no en ltugproc +\end{document} + + +File: latex2e-es.info, Node: Ãndice de Conceptos, Next: Ãndice de Instrucciones, Prev: Plantillas de Documento, Up: Top + +Ãndice de Conceptos +******************* + + +* Menu: + +* `*' apuntador: LÃnea de Órdenes. (line 16) +* `makeindex' programa: Ãndices. (line 22) +* `vea' y `vea también' entradas de Ãndice: Ãndices. (line 15) +* `xindy' programa: Ãndices. (line 22) +* `\include' anidada, no se permite: \include. (line 17) +* accediendo a cualquier carácter del tipo de letra: Caracteres Reservados. + (line 25) +* acento agudo: Acentos. (line 21) +* acento agudo, math: Acentos Matemáticos. (line 11) +* acento anticircunflejo: Acentos. (line 97) +* acento barra: Acentos. (line 48) +* acento barra encima: Acentos. (line 30) +* acento barra horizontal, math: Acentos Matemáticos. (line 14) +* acento barra sobre: Acentos. (line 30) +* acento breve, math: Acentos Matemáticos. (line 17) +* acento cedilla: Acentos. (line 52) +* acento circunflejo: Acentos. (line 34) +* acento circunflejo <1>: Acentos. (line 34) +* acento circunflejo amplio, math: Acentos Matemáticos. (line 47) +* acento circunflejo, math: Acentos Matemáticos. (line 32) +* acento circunflejo, math <1>: Acentos Matemáticos. (line 32) +* acento cÃrculo: Acentos. (line 56) +* acento de verificación, math: Acentos Matemáticos. (line 20) +* acento diéresis: Acentos. (line 17) +* acento diéresis <1>: Acentos. (line 17) +* acento diéresis húngara: Acentos. (line 60) +* acento diéresis, math: Acentos Matemáticos. (line 23) +* acento grave: Acentos. (line 39) +* acento grave, math: Acentos Matemáticos. (line 29) +* acento háÄek, math: Acentos Matemáticos. (line 20) +* acento macrón: Acentos. (line 30) +* acento macrón, math: Acentos Matemáticos. (line 14) +* acento punto: Acentos. (line 26) +* acento punto <1>: Acentos. (line 26) +* acento punto superior, math: Acentos Matemáticos. (line 26) +* acento tilde: Acentos. (line 45) +* acento tilde amplia, math: Acentos Matemáticos. (line 50) +* acento tilde, math: Acentos Matemáticos. (line 41) +* acentos: Acentos. (line 5) +* acentos matemáticos: Acentos Matemáticos. (line 5) +* acentos, matemáticas: Acentos Matemáticos. (line 5) +* alineando a través de tabulación: tabbing. (line 5) +* alineando Ecuaciones: eqnarray. (line 5) +* alineando texto en columnas con tabulaciones: tabbing. (line 5) +* alineando texto en tablas: tabular. (line 5) +* ampliando la página actual: \enlargethispage. (line 5) +* anillo acento: Acentos. (line 75) +* anticircunflejo acento: Acentos. (line 97) +* antÃgrafo o simplemente signo de párrafo: SÃmbolos de Texto. + (line 42) +* apuntador, `*': LÃnea de Órdenes. (line 16) +* apéndices, creando: Seccionado. (line 46) +* archivo de entrada: Dividiendo la Entrada. + (line 5) +* archivo `.glo': Glosarios. (line 7) +* archivo `.idx': Ãndices. (line 8) +* archivo `.ind': Ãndices. (line 22) +* argumentos móviles: \protect. (line 5) +* ascender superior: SÃmbolos de Texto. (line 97) +* ASCII circunflejo, en texto: SÃmbolos de Texto. (line 62) +* ash: Caracteres no Ingleses. + (line 11) +* asterisco centrado, en texto: SÃmbolos de Texto. (line 68) +* asterisco, centrado, en texto: SÃmbolos de Texto. (line 68) +* atadura con siguiente acento: Acentos. (line 81) +* autor, para titlepage: \maketitle. (line 12) +* bala, en texto: SÃmbolos de Texto. (line 89) +* bar, vertical, en texto: SÃmbolos de Texto. (line 74) +* barra inversa, en texto: SÃmbolos de Texto. (line 71) +* barra vertical, doble, en texto: SÃmbolos de Texto. (line 77) +* barra vertical, en texto: SÃmbolos de Texto. (line 74) +* barra, vertical doble, en texto: SÃmbolos de Texto. (line 77) +* bibliografÃa, creando (automáticamente): Usando BibTeX. (line 5) +* bibliografÃa, creando (manualmente): thebibliography. (line 5) +* bibTeX, usando: Usando BibTeX. (line 5) +* breve acento: Acentos. (line 86) +* cajas: Cajas. (line 5) +* caracteres especiales: Caracteres no Ingleses. + (line 5) +* caracteres no Ingleses: Caracteres no Ingleses. + (line 5) +* caracteres reservados: Caracteres Reservados. + (line 5) +* caracteres, acentuados: Acentos. (line 5) +* caracteres, no Ingleses: Caracteres no Ingleses. + (line 5) +* caracteres, reservados: Caracteres Reservados. + (line 5) +* cargando paquetes adicionales: Opciones de Clase de Documento. + (line 78) +* cartas: Cartas. (line 5) +* cartas, iniciando: \opening. (line 5) +* cartas, terminando: \closing. (line 5) +* carón acento: Acentos. (line 97) +* centrar texto, declaración para: \centering. (line 5) +* centrar texto, entorno para: center. (line 5) +* cerrando cartas: \closing. (line 5) +* circunflejo, ASCII, en texto: SÃmbolos de Texto. (line 62) +* clases de documento: Clases de Documento. (line 5) +* clases de documentos: Clases de Documento. (line 5) +* colita: Acentos. (line 70) +* comilla angular de apertura: SÃmbolos de Texto. (line 28) +* comilla angular de cierre: SÃmbolos de Texto. (line 28) +* comilla de apertura: SÃmbolos de Texto. (line 38) +* comilla de apertura simple: SÃmbolos de Texto. (line 151) +* comilla de cierre: SÃmbolos de Texto. (line 53) +* comilla de cierre simple: SÃmbolos de Texto. (line 154) +* comilla de cierre, simple: SÃmbolos de Texto. (line 154) +* comilla derecha: SÃmbolos de Texto. (line 53) +* comilla en lÃnea base, simple y doble: SÃmbolos de Texto. (line 50) +* comilla izquierda: SÃmbolos de Texto. (line 38) +* comilla izquierda, sola: SÃmbolos de Texto. (line 151) +* comilla simple en lÃnea base: SÃmbolos de Texto. (line 50) +* comilla, en la lÃnea base (coma): SÃmbolos de Texto. (line 158) +* comillas de cierre dobles: SÃmbolos de Texto. (line 148) +* comillas de cierre, dobles: SÃmbolos de Texto. (line 148) +* comillas dobles de apertura: SÃmbolos de Texto. (line 145) +* comillas dobles en lÃnea base: SÃmbolos de Texto. (line 50) +* comillas tipográficas angulares: SÃmbolos de Texto. (line 28) +* comillas tipográficas angulares simples: SÃmbolos de Texto. (line 28) +* comillas tipográficas Francesas: SÃmbolos de Texto. (line 28) +* comillas tipográficas simples: SÃmbolos de Texto. (line 28) +* comillas tipográficas, Francesas: SÃmbolos de Texto. (line 28) +* comillas tipográficas, latinas o angulares: SÃmbolos de Texto. + (line 28) +* comillastraight quote, base: SÃmbolos de Texto. (line 158) +* contadores, configurando: \setcounter. (line 5) +* contadores, consiguiendo el valor de: \value. (line 5) +* contadores, definiendo nuevos: \newcounter. (line 5) +* contadores, una lista de: Contadores. (line 5) +* creando cartas: Cartas. (line 5) +* creando imágenes: picture. (line 5) +* creando tablas: table. (line 5) +* créditos al pie de página: \maketitle. (line 24) +* código, composición tipográfica de: verbatim. (line 5) +* daga doble, en texto: SÃmbolos de Texto. (line 105) +* daga, doble, en texto: SÃmbolos de Texto. (line 105) +* daga, en texto: SÃmbolos de Texto. (line 16) +* daga, en texto <1>: SÃmbolos de Texto. (line 102) +* definiciones: Definiciones. (line 5) +* definición de nuevos tipos de letra: \newfont. (line 5) +* definiendo nuevos entornos: \newenvironment y \renewenvironment. + (line 5) +* definiendo nuevos teoremas: \newtheorem. (line 5) +* definiendo una nueva instrucción: \newcommand y \renewcommand. + (line 5) +* delimitador nulo: Miscelánea Math. (line 21) +* descargando flotantes e iniciando una página: \clearpage. (line 5) +* descripción de LaTeX: Descripción. (line 5) +* diseño, parámetros de página para: Parámetros para el Diseño de Página. + (line 5) +* dividiendo el archivo de entrada: Dividiendo la Entrada. + (line 5) +* dividiendo páginas: Saltos de Página. (line 5) +* divisas, euro: SÃmbolos de Texto. (line 117) +* división de sÃlabas con guión, definiendo: \hyphenation. (line 5) +* división silábica, forzando: \- (hyphenation). (line 5) +* división silábica, impidiendo: \mbox. (line 5) +* doble barra vertical, en texto: SÃmbolos de Texto. (line 77) +* doble daga, en texto: SÃmbolos de Texto. (line 19) +* e-dash: SÃmbolos de Texto. (line 114) +* ecuaciones, alineando: eqnarray. (line 5) +* ecuaciones, entornos para: equation. (line 5) +* ejecutando header y footer: Parámetros para el Diseño de Página. + (line 5) +* elementos numerados, especificando contador: \usecounter. (line 5) +* em-dash: SÃmbolos de Texto. (line 111) +* em-dash de tres cuartos: SÃmbolos de Texto. (line 167) +* em-dash, tres cuartos: SÃmbolos de Texto. (line 167) +* entornos: Entornos. (line 5) +* entornos, definiendo: \newenvironment y \renewenvironment. + (line 5) +* entrada/salida: Entrada/Salida a la Terminal. + (line 5) +* entrada/salida desde la terminal: Entrada/Salida a la Terminal. + (line 5) +* Equipo del Proyecto LaTeX: Top. (line 10) +* es-zet letra Alemana: Caracteres no Ingleses. + (line 47) +* espacio dentro del modo math: Espacios en Modo Math. + (line 5) +* espacio vertical: \addvspace. (line 5) +* espacio vertical antes de párrafos: \parskip. (line 5) +* espacio vertical, insertando: \addvspace. (line 5) +* espacio visible: \verb. (line 17) +* espacios: Espacios. (line 5) +* espina Islandesa: Caracteres no Ingleses. + (line 51) +* espina, letra Islandesa: Caracteres no Ingleses. + (line 51) +* estilo de encabezado: \pagestyle. (line 5) +* estilo de numeración de página: \pagenumbering. (line 5) +* estilo del pie de página: \pagestyle. (line 5) +* estilos de página: Estilos de Página. (line 5) +* estilos de texto: Estilos del Tipo de Letra. + (line 5) +* estilos de tipografÃa: Estilos del Tipo de Letra. + (line 5) +* estilos del tipo de letra: Estilos del Tipo de Letra. + (line 5) +* estilos, página: Estilos de Página. (line 5) +* eth, letra islandesa: Caracteres no Ingleses. + (line 19) +* etiquetas en máquina de escribir en listas: description. (line 17) +* exclamación, inicial: SÃmbolos de Texto. (line 120) +* exponente: SubÃndices y SuperÃndices. + (line 5) +* fecha, para la página de tÃtulo: \maketitle. (line 19) +* figuras, en notas al pie: minipage. (line 21) +* figuras, insertando: figure. (line 5) +* fijando contadores: \setcounter. (line 5) +* finalizando e iniciando: Iniciando y Finalizando. + (line 5) +* flecha derecha, en texto: SÃmbolos de Texto. (line 164) +* flecha hacia la derecha, en texto: SÃmbolos de Texto. (line 164) +* flecha hacia la izquierda, en texto: SÃmbolos de Texto. (line 129) +* flecha, izquierda, en texto: SÃmbolos de Texto. (line 129) +* footer, parámetros para: Parámetros para el Diseño de Página. + (line 5) +* forma con * de instrucciones de seccionado: Seccionado. (line 40) +* funciones matemáticas: Funciones Matemáticas. + (line 5) +* funciones, matemáticas: Funciones Matemáticas. + (line 5) +* fórmulas en lÃnea: math. (line 5) +* fórmulas matemáticas: Fórmulas Matemáticas. + (line 5) +* fórmulas, entornos para: equation. (line 5) +* fórmulas, matemáticas: Fórmulas Matemáticas. + (line 5) +* glosarios: Glosarios. (line 5) +* guión doble, lÃnea recta: SÃmbolos de Texto. (line 158) +* haciendo párrafos: Haciendo Párrafos. (line 5) +* haciendo una página de tÃtulo: titlepage. (line 5) +* header, parámetros para: Parámetros para el Diseño de Página. + (line 5) +* i sin punto: Acentos. (line 63) +* i sin punto, math: Acentos Matemáticos. (line 35) +* imágenes, creando: picture. (line 5) +* iniciando una nueva página: \newpage. (line 5) +* iniciando una nueva página y limpiando flotantes: \clearpage. + (line 5) +* iniciando una página a mano derecha: \cleardoublepage. (line 5) +* iniciando y finalizando: Iniciando y Finalizando. + (line 5) +* insertando figuras: figure. (line 5) +* Instrucciones de Bajo Nivel para el Tipo de Letra: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 5) +* instrucciones de diseño: Diseño. (line 5) +* instrucciones de tipo de letra, de bajo nivel: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 5) +* instrucciones frágiles: \protect. (line 5) +* instrucciones robustas: \protect. (line 16) +* instrucciones, definiendo nuevas: \newcommand y \renewcommand. + (line 5) +* interlineado doble: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 68) +* interrogación, inicial: SÃmbolos de Texto. (line 142) +* islandés eth: Caracteres no Ingleses. + (line 19) +* j sin punto: Acentos. (line 66) +* j sin punto, math: Acentos Matemáticos. (line 38) +* justificación, alineando a la derecha: \raggedright. (line 5) +* justificación, irregular a la izquierda: \raggedleft. (line 5) +* justificando texto a la izquierda: \raggedright. (line 5) +* justificar texto a la derecha, entorno para: flushright. (line 5) +* justificar texto a la izquierda, entornos para: flushleft. (line 5) +* Knuth, Donald E.: Top. (line 10) +* l Polaca: Caracteres no Ingleses. + (line 31) +* Lamport, Leslie: Top. (line 10) +* LaTeX, descripción: Descripción. (line 5) +* letra en cÃrculo, en texto: SÃmbolos de Texto. (line 92) +* letra ij, Neerlandés: Caracteres no Ingleses. + (line 27) +* letras caligráficas para math: Estilos del Tipo de Letra. + (line 92) +* letras griegas: SÃmbolos Matemáticos. + (line 5) +* letras S afiladas: Caracteres no Ingleses. + (line 47) +* letras script para math: Estilos del Tipo de Letra. + (line 92) +* letras, acentuadas: Acentos. (line 5) +* letras, no Inglesas: Caracteres no Ingleses. + (line 5) +* ligadura ae: Caracteres no Ingleses. + (line 15) +* lista de documentos adjuntos: \encl. (line 5) +* lista de elementos, especificando el contador: \usecounter. (line 5) +* lista de elementos, numerados: enumerate. (line 5) +* listas cc, en cartas: \cc. (line 5) +* listas con viñetas: itemize. (line 5) +* listas de descripción, creando: description. (line 5) +* listas de elementos: itemize. (line 5) +* listas de elementos, genéricas: list. (line 5) +* listas etiquetadas, creando: description. (line 5) +* listas no ordenadas: itemize. (line 5) +* llave de apertura, en texto: SÃmbolos de Texto. (line 83) +* llave derecha, en texto: SÃmbolos de Texto. (line 86) +* llave, derecha, en texto: SÃmbolos de Texto. (line 86) +* llave, izquierda, en texto: SÃmbolos de Texto. (line 83) +* Logotipo de LaTeX: SÃmbolos de Texto. (line 22) +* logotipo de TeX: SÃmbolos de Texto. (line 59) +* logotipo, LaTeX: SÃmbolos de Texto. (line 22) +* logotipo, TeX: SÃmbolos de Texto. (line 59) +* longitudes predeterminadas: Longitudes Predeterminadas. + (line 5) +* longitudes, añadiendo a: \addtolength. (line 5) +* longitudes, configurando: \setlength. (line 5) +* longitudes, definiendo nuevas: \newlength. (line 5) +* longitudes, definiendo y usando: Longitudes. (line 5) +* longitudes, predefinidas: Longitudes Predeterminadas. + (line 5) +* lÃnea de órdenes: LÃnea de Órdenes. (line 5) +* lÃnea recta de guión doble, base: SÃmbolos de Texto. (line 158) +* lÃnea, saltos de: Saltos de LÃnea. (line 5) +* lÃneas en tablas: tabular. (line 5) +* marca izquierda, doble: SÃmbolos de Texto. (line 145) +* marca palabra compuesta, en texto: SÃmbolos de Texto. (line 97) +* matrices, matemáticas: array. (line 5) +* minipage, creando una: minipage. (line 5) +* miscelánea math: Miscelánea Math. (line 5) +* modo izquierda-a-derecha: Modos. (line 5) +* modo lR: Modos. (line 5) +* modo math: Modos. (line 5) +* modo math mode, espaciado: Espacios en Modo Math. + (line 5) +* modo math, ingresando al: Fórmulas Matemáticas. + (line 5) +* modo párrafo: Modos. (line 5) +* modos: Modos. (line 5) +* moneda, dólar: SÃmbolos de Texto. (line 108) +* mostrando texto citado con sangrÃa de párrafo: quotation. (line 5) +* mostrando texto citado sin sangrÃa de párrafo: quote. (line 5) +* multiplicación discrecional: Miscelánea Math. (line 7) +* máquina de escribir en negrita, evitando: description. (line 17) +* notas al margen: Notas al Margen. (line 5) +* notas al pie en figuras: minipage. (line 21) +* notas al pie, creando: Notas al Pie. (line 5) +* notas al pie, sÃmbolos en lugar de números en: Notas al Pie Simbólicas. + (line 5) +* notas en el margen: Notas al Margen. (line 5) +* nueva lÃnea, comenzando: \\. (line 5) +* nueva lÃnea, comenzando (modo de párrafo): \newline. (line 5) +* nueva lÃnea, salida como entrada: \obeycr y \restorecr. + (line 5) +* nueva página, iniciando: \newpage. (line 5) +* nuevas instrucciones, definiendo: \newcommand y \renewcommand. + (line 5) +* número de ecuación, referencias cruzadas: \ref. (line 5) +* número de figura, referencias cruzadas: \ref. (line 5) +* número de pie de página, referencias cruzadas: \ref. (line 5) +* número de página, referencias cruzadas: \pageref. (line 5) +* número de sección, referencias cruzadas: \ref. (line 5) +* números de ecuación, omitiendo: eqnarray. (line 19) +* números de sección, imprimiendo: Seccionado. (line 56) +* observaciones en el margen: Notas al Margen. (line 5) +* oe ligadura: Caracteres no Ingleses. + (line 43) +* omitiendo, cajas negras: Opciones de Clase de Documento. + (line 29) +* opciones de clase: Opciones de Clase de Documento. + (line 5) +* opciones de clase de documento: Opciones de Clase de Documento. + (line 5) +* opciones globales: Opciones de Clase de Documento. + (line 5) +* opciones globales <1>: Opciones de Clase de Documento. + (line 85) +* opciones, clase de documento: Opciones de Clase de Documento. + (line 5) +* opciones, globales: Opciones de Clase de Documento. + (line 85) +* ordinales en español, femenino y masculino: SÃmbolos de Texto. + (line 133) +* ordinales, femenino y masculino: SÃmbolos de Texto. (line 133) +* oslash: Caracteres no Ingleses. + (line 39) +* paquete `datetime': \today. (line 10) +* paquete `float': figure. (line 35) +* paquete `makeidx': Ãndices. (line 29) +* paquete `multind': Ãndices. (line 41) +* paquete `setspace': Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 68) +* paquete `showidx': Ãndices. (line 37) +* paquetes, cargando: Opciones de Clase de Documento. + (line 78) +* parámetros de footnote: Parámetros para Footnote. + (line 5) +* parámetros para el diseño de página: Parámetros para el Diseño de Página. + (line 5) +* parámetros, diseño de página: Parámetros para el Diseño de Página. + (line 5) +* parámetros, para footnote: Parámetros para Footnote. + (line 5) +* plantillas de documentos: Plantillas de Documento. + (line 5) +* poesÃa, un entorno para: verse. (line 5) +* posdata, en cartas: \ps. (line 5) +* preámbulo, definido: Iniciando y Finalizando. + (line 16) +* produce dos columnas: \twocolumn. (line 5) +* produce una columna: \onecolumn. (line 5) +* programas de ordenador, composición tipográfica: verbatim. (line 5) +* punto centrado, en texto: SÃmbolos de Texto. (line 139) +* punto superior acento, math: Acentos Matemáticos. (line 26) +* punto, centrado, en texto: SÃmbolos de Texto. (line 139) +* puntos suspensivos: SÃmbolos de Texto. (line 34) +* página de tÃtulo, creando la: titlepage. (line 5) +* párrafos: Haciendo Párrafos. (line 5) +* redefiniendo entornos: \newenvironment y \renewenvironment. + (line 5) +* reducción, omitiendo vertical: \raggedbottom. (line 5) +* referencias cruzadas: Referencias Cruzadas. + (line 5) +* referencias cruzadas con número de página: \pageref. (line 5) +* referencias cruzadas, simbólicas: \ref. (line 5) +* resúmenes: abstract. (line 5) +* salto de página: Saltos de Página. (line 5) +* saltos de lÃnea: Saltos de LÃnea. (line 5) +* saltos de lÃnea, evitando: \linebreak y \nolinebreak. + (line 5) +* saltos de lÃnea, forzando: \linebreak y \nolinebreak. + (line 5) +* saltos de página, evitando: \pagebreak y \nopagebreak. + (line 5) +* saltos de página, forzando: \pagebreak y \nopagebreak. + (line 5) +* sangrÃa de párrafos, en minipage: minipage. (line 17) +* sangrÃa de párrafos, en minipage <1>: minipage. (line 17) +* sangrÃa, forzando la: \indent. (line 5) +* sangrÃa, suprimiendo la: \noindent. (line 5) +* sangrÃas de párrafo en texto citado: quotation. (line 5) +* sangrÃas de párrafo en texto citado, omitiendo: quote. (line 5) +* seccionado: Seccionado. (line 5) +* separación de lÃnea, forzando: \\. (line 5) +* signo de dólar: SÃmbolos de Texto. (line 108) +* siguiendo el estilo de encabezado y pie de página: \pagestyle. + (line 5) +* simulando texto escrito: verbatim. (line 5) +* subrayado: Acentos. (line 89) +* subrayado, en texto: SÃmbolos de Texto. (line 176) +* subÃndice: SubÃndices y SuperÃndices. + (line 5) +* superÃndice: SubÃndices y SuperÃndices. + (line 5) +* sÃmbolo bala: SÃmbolos Matemáticos. + (line 87) +* sÃmbolo cÃrculo grande, en texto: SÃmbolos de Texto. (line 80) +* sÃmbolo de copyright: SÃmbolos de Texto. (line 13) +* sÃmbolo de cÃrculo, grande, en texto: SÃmbolos de Texto. (line 80) +* sÃmbolo de espacio visible, en texto: SÃmbolos de Texto. (line 179) +* sÃmbolo de libra esterlina: SÃmbolos de Texto. (line 46) +* sÃmbolo de libra esterlina <1>: SÃmbolos de Texto. (line 46) +* sÃmbolo de marca comercial: SÃmbolos de Texto. (line 170) +* sÃmbolo de marca registrada: SÃmbolos de Texto. (line 161) +* sÃmbolo de multiplicación, con salto de lÃnea discrecional: Miscelánea Math. + (line 7) +* sÃmbolo de párrafo: SÃmbolos de Texto. (line 42) +* sÃmbolo de sección: SÃmbolos de Texto. (line 56) +* sÃmbolo de vector, math: Acentos Matemáticos. (line 44) +* sÃmbolo del euro: SÃmbolos de Texto. (line 117) +* sÃmbolo femenino ordinal: SÃmbolos de Texto. (line 136) +* sÃmbolo mayor que, en texto: SÃmbolos de Texto. (line 123) +* sÃmbolo menor que, en texto: SÃmbolos de Texto. (line 126) +* SÃmbolo ordinal femenino: SÃmbolos de Texto. (line 133) +* sÃmbolo ordinal masculino: SÃmbolos de Texto. (line 133) +* sÃmbolos de texto: SÃmbolos de Texto. (line 5) +* sÃmbolos matemáticos: SÃmbolos Matemáticos. + (line 5) +* sÃmbolos, matemáticos: SÃmbolos Matemáticos. + (line 5) +* tabla de contenido, agregando manualmente: \addcontentsline. + (line 5) +* tabla de contenido, creando: Tablas de Contenido. (line 5) +* tablas, creando: table. (line 5) +* tabulaciones, utilizando: tabbing. (line 5) +* tamaño del texto: Tamaños del Tipo de Letra. + (line 5) +* tamaños del tipo de letra: Tamaños del Tipo de Letra. + (line 5) +* tamaños del tipo de letra <1>: Tamaños del Tipo de Letra. + (line 5) +* tapa superior: SÃmbolos de Texto. (line 97) +* teoremas, composición tipográfica de: theorem. (line 5) +* teoremas, definiendo: \newtheorem. (line 5) +* texto citado con sangrÃa de párrafo, mostrando: quotation. (line 5) +* texto citado sin sangrÃa de párrafo, mostrando: quote. (line 5) +* texto escrito, simulando: verbatim. (line 5) +* texto irregular a la derecha: \raggedright. (line 5) +* texto irregular a la derecha, entorno para: flushleft. (line 5) +* texto irregular a la izquierda: \raggedleft. (line 5) +* texto irregular a la izquierda, entorno para: flushright. (line 5) +* texto justificado a la derecha: \raggedleft. (line 5) +* texto literal: verbatim. (line 5) +* texto literal, en lÃnea: \verb. (line 5) +* texto multicolumna: \twocolumn. (line 5) +* thanks, para titlepage: \maketitle. (line 24) +* tilde ASCII, en texto: SÃmbolos de Texto. (line 65) +* tilde, ASCII, en texto: SÃmbolos de Texto. (line 65) +* tipo de letra cursiva: Estilos del Tipo de Letra. + (line 98) +* tipo de letra de ancho fijo: Estilos del Tipo de Letra. + (line 113) +* tipo de letra de máquina de escribir: Estilos del Tipo de Letra. + (line 113) +* tipo de letra monoespacio: Estilos del Tipo de Letra. + (line 113) +* tipo de letra negrita: Estilos del Tipo de Letra. + (line 89) +* tipo de letra oblicua: Estilos del Tipo de Letra. + (line 110) +* tipo de letra oblicua <1>: Estilos del Tipo de Letra. + (line 110) +* tipo de letra romana: Estilos del Tipo de Letra. + (line 101) +* tipo de letra sans serif: Estilos del Tipo de Letra. + (line 107) +* tipo de letra versales: Estilos del Tipo de Letra. + (line 104) +* Tipos de Letra: Tipos de Letra. (line 5) +* tipos de letra: Tipos de Letra. (line 5) +* tipos de letra, nuevas instrucciones para: \newfont. (line 5) +* title, para titlepage: \maketitle. (line 29) +* tÃtulos, haciendo: \maketitle. (line 5) +* usando BibTeX: Usando BibTeX. (line 5) +* variables, una lista de: Contadores. (line 5) +* Énfasis: Estilos del Tipo de Letra. + (line 29) +* énfasis: Estilos del Tipo de Letra. + (line 95) +* Ãndices: Ãndices. (line 5) + + +File: latex2e-es.info, Node: Ãndice de Instrucciones, Prev: Ãndice de Conceptos, Up: Top + +Ãndice de Instrucciones +*********************** + + +* Menu: + +* $: Fórmulas Matemáticas. + (line 25) +* @{...}: array. (line 32) +* \" (acento diéresis): Acentos. (line 17) +* \#: Caracteres Reservados. + (line 10) +* \$: Caracteres Reservados. + (line 10) +* \%: Caracteres Reservados. + (line 10) +* \&: Caracteres Reservados. + (line 10) +* \' (acento agudo): Acentos. (line 21) +* \' (tabbing): tabbing. (line 50) +* \(: Fórmulas Matemáticas. + (line 17) +* \): Fórmulas Matemáticas. + (line 17) +* \*: Miscelánea Math. (line 6) +* \+: tabbing. (line 40) +* \,: Espacios en Modo Math. + (line 19) +* \-: tabbing. (line 45) +* \- (hyphenation): \- (hyphenation). (line 5) +* \. (acento punto encima): Acentos. (line 26) +* \/: \/. (line 5) +* \:: Espacios en Modo Math. + (line 16) +* \;: Espacios en Modo Math. + (line 12) +* \<: tabbing. (line 35) +* \= (acento macrón): Acentos. (line 30) +* \= (tabbing): tabbing. (line 29) +* \>: tabbing. (line 33) +* \> <1>: Espacios en Modo Math. + (line 16) +* \> (tabbing): tabbing. (line 32) +* \@: \AT. (line 5) +* \a (tabbing): tabbing. (line 65) +* \a' (acento agudo en tabulación): tabbing. (line 66) +* \a= (acento macrón en tabbing): tabbing. (line 66) +* \aa (Ã¥): Caracteres no Ingleses. + (line 11) +* \AA (Ã…): Caracteres no Ingleses. + (line 11) +* \acute: Acentos Matemáticos. (line 10) +* \addcontentsline{exto}{unidad}{texto}: \addcontentsline. (line 5) +* \address: \address. (line 5) +* \addtocontents{extra}{texto}: \addtocontents. (line 5) +* \addtocounter: \addtocounter. (line 5) +* \addtolength: \addtolength. (line 5) +* \addvspace: \addvspace. (line 5) +* \ae (æ): Caracteres no Ingleses. + (line 15) +* \AE (Æ): Caracteres no Ingleses. + (line 15) +* \aleph: SÃmbolos Matemáticos. + (line 14) +* \alph: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 9) +* \Alph: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 12) +* \alpha: SÃmbolos Matemáticos. + (line 17) +* \alsoname: Ãndices. (line 19) +* \amalg: SÃmbolos Matemáticos. + (line 20) +* \and para `\author': \maketitle. (line 12) +* \angle: SÃmbolos Matemáticos. + (line 23) +* \appendix: Seccionado. (line 46) +* \approx: SÃmbolos Matemáticos. + (line 26) +* \arabic: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 15) +* \arccos: Funciones Matemáticas. + (line 9) +* \arcsin: Funciones Matemáticas. + (line 12) +* \arctan: Funciones Matemáticas. + (line 15) +* \arg: Funciones Matemáticas. + (line 18) +* \arraycolsep: array. (line 44) +* \arrayrulewidth: tabular. (line 101) +* \arraystretch: tabular. (line 105) +* \ast: SÃmbolos Matemáticos. + (line 29) +* \asymp: SÃmbolos Matemáticos. + (line 32) +* \author{nombre \and nombre2}: \maketitle. (line 11) +* \a` (acento grave en tabulación): tabbing. (line 66) +* \b (acento barra): Acentos. (line 48) +* \backslash: SÃmbolos Matemáticos. + (line 35) +* \backslash <1>: Caracteres Reservados. + (line 15) +* \bar: Acentos Matemáticos. (line 13) +* \baselineskip: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 61) +* \baselinestretch: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 68) +* \begin: Entornos. (line 5) +* \beta: SÃmbolos Matemáticos. + (line 38) +* \bf: Estilos del Tipo de Letra. + (line 88) +* \bfseries: Estilos del Tipo de Letra. + (line 35) +* \bibitem: \bibitem. (line 5) +* \bibliography: Usando BibTeX. (line 5) +* \bibliographystyle: Usando BibTeX. (line 5) +* \bigcap: SÃmbolos Matemáticos. + (line 41) +* \bigcap <1>: SÃmbolos Matemáticos. + (line 71) +* \bigcirc: SÃmbolos Matemáticos. + (line 44) +* \bigcup: SÃmbolos Matemáticos. + (line 47) +* \bigodot: SÃmbolos Matemáticos. + (line 50) +* \bigoplus: SÃmbolos Matemáticos. + (line 53) +* \bigotimes: SÃmbolos Matemáticos. + (line 56) +* \bigskip: \bigskip \medskip \smallskip. + (line 9) +* \bigskipamount: \bigskip \medskip \smallskip. + (line 9) +* \bigsqcup: SÃmbolos Matemáticos. + (line 65) +* \bigtriangledown: SÃmbolos Matemáticos. + (line 59) +* \bigtriangleup: SÃmbolos Matemáticos. + (line 62) +* \biguplus: SÃmbolos Matemáticos. + (line 68) +* \bigwedge: SÃmbolos Matemáticos. + (line 74) +* \bmod: Funciones Matemáticas. + (line 21) +* \boldmath: Fórmulas Matemáticas. + (line 30) +* \bot: SÃmbolos Matemáticos. + (line 77) +* \bottomfraction: figure. (line 57) +* \bowtie: SÃmbolos Matemáticos. + (line 80) +* \Box: SÃmbolos Matemáticos. + (line 83) +* \breve: Acentos Matemáticos. (line 16) +* \bullet: SÃmbolos Matemáticos. + (line 86) +* \c (acento cedilla): Acentos. (line 52) +* \cal: Estilos del Tipo de Letra. + (line 91) +* \cap: SÃmbolos Matemáticos. + (line 89) +* \capitalacute: Acentos. (line 21) +* \capitalbreve: Acentos. (line 86) +* \capitalcaron: Acentos. (line 97) +* \capitalcedilla: Acentos. (line 52) +* \capitalcircumflex: Acentos. (line 34) +* \capitaldieresis: Acentos. (line 17) +* \capitaldotaccent: Acentos. (line 56) +* \capitalgrave: Acentos. (line 39) +* \capitalhungarumlaut: Acentos. (line 60) +* \capitalmacron: Acentos. (line 30) +* \capitalnewtie: Acentos. (line 81) +* \capitalogonek: Acentos. (line 70) +* \capitalring: Acentos. (line 75) +* \capitaltie: Acentos. (line 81) +* \capitaltilde: Acentos. (line 45) +* \caption: figure. (line 51) +* \cc: \cc. (line 5) +* \cdot: SÃmbolos Matemáticos. + (line 92) +* \cdots: Miscelánea Math. (line 10) +* \centering: \centering. (line 5) +* \chapter: Seccionado. (line 11) +* \check: Acentos Matemáticos. (line 19) +* \chi: SÃmbolos Matemáticos. + (line 95) +* \circ: SÃmbolos Matemáticos. + (line 98) +* \circle: \circle. (line 5) +* \cite: \cite. (line 5) +* \cleardoublepage: \cleardoublepage. (line 5) +* \clearpage: \clearpage. (line 5) +* \cline: \cline. (line 5) +* \closing: \closing. (line 5) +* \clubsuit: SÃmbolos Matemáticos. + (line 101) +* \columnsep: \twocolumn. (line 18) +* \columnseprule: \twocolumn. (line 21) +* \columnwidth: \twocolumn. (line 25) +* \cong: SÃmbolos Matemáticos. + (line 104) +* \contentsline: \addcontentsline. (line 30) +* \coprod: SÃmbolos Matemáticos. + (line 107) +* \copyright: SÃmbolos de Texto. (line 11) +* \cos: Funciones Matemáticas. + (line 24) +* \cosh: Funciones Matemáticas. + (line 27) +* \cot: Funciones Matemáticas. + (line 30) +* \coth: Funciones Matemáticas. + (line 33) +* \csc: Funciones Matemáticas. + (line 36) +* \cup: SÃmbolos Matemáticos. + (line 110) +* \d (acento cÃrculo): Acentos. (line 56) +* \dag: SÃmbolos de Texto. (line 15) +* \dagger: SÃmbolos Matemáticos. + (line 113) +* \dashbox: \dashbox. (line 5) +* \dashv: SÃmbolos Matemáticos. + (line 116) +* \date{texto}: \maketitle. (line 18) +* \day: \day \month \year. (line 5) +* \dblfloatpagefraction: \twocolumn. (line 38) +* \dblfloatsep: \twocolumn. (line 43) +* \dbltextfloatsep: \twocolumn. (line 49) +* \dbltopfraction: \twocolumn. (line 32) +* \ddag: SÃmbolos de Texto. (line 18) +* \ddagger: SÃmbolos Matemáticos. + (line 119) +* \ddot: Acentos Matemáticos. (line 22) +* \ddots: Miscelánea Math. (line 14) +* \deg: Funciones Matemáticas. + (line 39) +* \Delta: SÃmbolos Matemáticos. + (line 122) +* \delta: SÃmbolos Matemáticos. + (line 125) +* \depth: Longitudes Predeterminadas. + (line 10) +* \det: Funciones Matemáticas. + (line 42) +* \dh (æ): Caracteres no Ingleses. + (line 19) +* \DH (Æ): Caracteres no Ingleses. + (line 19) +* \Diamond: SÃmbolos Matemáticos. + (line 128) +* \diamond: SÃmbolos Matemáticos. + (line 131) +* \diamondsuit: SÃmbolos Matemáticos. + (line 134) +* \dim: Funciones Matemáticas. + (line 45) +* \displaystyle: Fórmulas Matemáticas. + (line 36) +* \div: SÃmbolos Matemáticos. + (line 137) +* \dj: Caracteres no Ingleses. + (line 23) +* \DJ: Caracteres no Ingleses. + (line 23) +* \documentclass: Clases de Documento. (line 5) +* \dot: Acentos Matemáticos. (line 25) +* \doteq: SÃmbolos Matemáticos. + (line 140) +* \dotfill: \dotfill. (line 5) +* \dots: SÃmbolos de Texto. (line 32) +* \doublerulesep: tabular. (line 109) +* \downarrow: SÃmbolos Matemáticos. + (line 143) +* \Downarrow: SÃmbolos Matemáticos. + (line 146) +* \ell: SÃmbolos Matemáticos. + (line 149) +* \em: Estilos del Tipo de Letra. + (line 94) +* \emph: Estilos del Tipo de Letra. + (line 29) +* \emptyset: SÃmbolos Matemáticos. + (line 152) +* \encl: \encl. (line 5) +* \end: Entornos. (line 5) +* \enlargethispage: \enlargethispage. (line 5) +* \enumi: enumerate. (line 33) +* \enumii: enumerate. (line 33) +* \enumiii: enumerate. (line 33) +* \enumiv: enumerate. (line 33) +* \epsilon: SÃmbolos Matemáticos. + (line 155) +* \equiv: SÃmbolos Matemáticos. + (line 158) +* \eta: SÃmbolos Matemáticos. + (line 161) +* \evensidemargin: Opciones de Clase de Documento. + (line 59) +* \exists: SÃmbolos Matemáticos. + (line 164) +* \exp: Funciones Matemáticas. + (line 48) +* \fbox: \fbox y \framebox. (line 5) +* \fboxrule: \framebox (imagen). (line 13) +* \fboxrule <1>: \fbox y \framebox. (line 18) +* \fboxsep: \framebox (imagen). (line 13) +* \fboxsep <1>: \fbox y \framebox. (line 18) +* \fill: \hfill. (line 9) +* \flat: SÃmbolos Matemáticos. + (line 167) +* \floatpagefraction: figure. (line 60) +* \floatsep: figure. (line 64) +* \flushbottom: \flushbottom. (line 5) +* \fnsymbol: Notas al Pie Simbólicas. + (line 10) +* \fnsymbol <1>: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 24) +* \fnsymbol, y notas al pie: Notas al Pie Simbólicas. + (line 10) +* \fontencoding: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 11) +* \fontfamily: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 15) +* \fontseries: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 27) +* \fontshape: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 43) +* \fontsize: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 61) +* \footnote: \footnote. (line 5) +* \footnotemark: \footnotemark. (line 5) +* \footnoterule: Parámetros para Footnote. + (line 6) +* \footnotesep: Parámetros para Footnote. + (line 12) +* \footnotesize: Tamaños del Tipo de Letra. + (line 11) +* \footnotetext: \footnotetext. (line 5) +* \footskip: Parámetros para el Diseño de Página. + (line 16) +* \forall: SÃmbolos Matemáticos. + (line 170) +* \frac: Miscelánea Math. (line 18) +* \frac{num}{den}: Miscelánea Math. (line 17) +* \frame: \frame. (line 5) +* \framebox: \framebox (imagen). (line 5) +* \framebox <1>: \fbox y \framebox. (line 5) +* \frown: SÃmbolos Matemáticos. + (line 173) +* \fussy: \fussy. (line 5) +* \Gamma: SÃmbolos Matemáticos. + (line 176) +* \gamma: SÃmbolos Matemáticos. + (line 179) +* \gcd: Funciones Matemáticas. + (line 51) +* \ge: SÃmbolos Matemáticos. + (line 182) +* \geq: SÃmbolos Matemáticos. + (line 185) +* \gets: SÃmbolos Matemáticos. + (line 188) +* \gg: SÃmbolos Matemáticos. + (line 191) +* \glossary: Glosarios. (line 7) +* \glossaryentry: Glosarios. (line 10) +* \grave: Acentos Matemáticos. (line 28) +* \guillemotleft («): SÃmbolos de Texto. (line 24) +* \guillemotright (»): SÃmbolos de Texto. (line 25) +* \guilsinglleft (‹): SÃmbolos de Texto. (line 26) +* \guilsinglright (›): SÃmbolos de Texto. (line 27) +* \H (acento diéresis Húngara): Acentos. (line 60) +* \hat: Acentos Matemáticos. (line 31) +* \hbar: SÃmbolos Matemáticos. + (line 194) +* \headheight: Parámetros para el Diseño de Página. + (line 6) +* \headsep: Parámetros para el Diseño de Página. + (line 11) +* \heartsuit: SÃmbolos Matemáticos. + (line 197) +* \height: Longitudes Predeterminadas. + (line 8) +* \hfill: \hfill. (line 5) +* \hline: \hline. (line 5) +* \hom: Funciones Matemáticas. + (line 54) +* \hookleftarrow: SÃmbolos Matemáticos. + (line 200) +* \hookrightarrow: SÃmbolos Matemáticos. + (line 203) +* \hrulefill: \hrulefill. (line 5) +* \hspace: \hspace. (line 5) +* \huge: Tamaños del Tipo de Letra. + (line 11) +* \Huge: Tamaños del Tipo de Letra. + (line 11) +* \hyphenation: \hyphenation. (line 5) +* \i (i sin punto): Acentos. (line 63) +* \iff: SÃmbolos Matemáticos. + (line 206) +* \ij (ij): Caracteres no Ingleses. + (line 27) +* \IJ (IJ): Caracteres no Ingleses. + (line 27) +* \Im: SÃmbolos Matemáticos. + (line 209) +* \imath: Acentos Matemáticos. (line 34) +* \in: SÃmbolos Matemáticos. + (line 212) +* \include: \include. (line 5) +* \includeonly: \includeonly. (line 5) +* \indent: \indent. (line 5) +* \index: Ãndices. (line 8) +* \indexentry: Ãndices. (line 11) +* \inf: Funciones Matemáticas. + (line 57) +* \infty: SÃmbolos Matemáticos. + (line 215) +* \input: \input. (line 5) +* \int: SÃmbolos Matemáticos. + (line 218) +* \intextsep: figure. (line 68) +* \iota: SÃmbolos Matemáticos. + (line 221) +* \it: Estilos del Tipo de Letra. + (line 97) +* \item: description. (line 13) +* \item <1>: enumerate. (line 19) +* \item <2>: itemize. (line 5) +* \itemindent: itemize. (line 54) +* \itemsep: itemize. (line 79) +* \itshape: Estilos del Tipo de Letra. + (line 26) +* \j (j sin punto): Acentos. (line 66) +* \jmath: Acentos Matemáticos. (line 37) +* \Join: SÃmbolos Matemáticos. + (line 224) +* \k (colita —ogonek en polaco): Acentos. (line 70) +* \kappa: SÃmbolos Matemáticos. + (line 227) +* \ker: Funciones Matemáticas. + (line 60) +* \kill: tabbing. (line 70) +* \l (Å‚): Caracteres no Ingleses. + (line 31) +* \L (Å): Caracteres no Ingleses. + (line 31) +* \label: \label. (line 5) +* \labelenumi: enumerate. (line 37) +* \labelenumii: enumerate. (line 37) +* \labelenumiii: enumerate. (line 37) +* \labelenumiv: enumerate. (line 37) +* \labelitemi: itemize. (line 32) +* \labelitemii: itemize. (line 32) +* \labelitemiii: itemize. (line 32) +* \labelitemiv: itemize. (line 32) +* \labelsep: itemize. (line 58) +* \labelwidth: itemize. (line 62) +* \Lambda: SÃmbolos Matemáticos. + (line 230) +* \lambda: SÃmbolos Matemáticos. + (line 233) +* \land: SÃmbolos Matemáticos. + (line 236) +* \langle: SÃmbolos Matemáticos. + (line 239) +* \large: Tamaños del Tipo de Letra. + (line 11) +* \Large: Tamaños del Tipo de Letra. + (line 11) +* \LARGE: Tamaños del Tipo de Letra. + (line 11) +* \LaTeX: SÃmbolos de Texto. (line 21) +* \lbrace: SÃmbolos Matemáticos. + (line 242) +* \lbrack: SÃmbolos Matemáticos. + (line 245) +* \lceil: SÃmbolos Matemáticos. + (line 248) +* \ldots: SÃmbolos de Texto. (line 31) +* \le: SÃmbolos Matemáticos. + (line 251) +* \leadsto: SÃmbolos Matemáticos. + (line 254) +* \left delimitador1 ... \right delimitador2: Miscelánea Math. + (line 20) +* \Leftarrow: SÃmbolos Matemáticos. + (line 256) +* \leftarrow: SÃmbolos Matemáticos. + (line 259) +* \lefteqn: eqnarray. (line 25) +* \leftharpoondown: SÃmbolos Matemáticos. + (line 262) +* \leftharpoonup: SÃmbolos Matemáticos. + (line 265) +* \leftmargin: itemize. (line 39) +* \leftmargini: itemize. (line 39) +* \leftmarginii: itemize. (line 39) +* \leftmarginiii: itemize. (line 39) +* \leftmarginiv: itemize. (line 39) +* \leftmarginv: itemize. (line 39) +* \leftmarginvi: itemize. (line 39) +* \Leftrightarrow: SÃmbolos Matemáticos. + (line 268) +* \Leftrightarrow <1>: SÃmbolos Matemáticos. + (line 271) +* \leq: SÃmbolos Matemáticos. + (line 274) +* \lfloor: SÃmbolos Matemáticos. + (line 277) +* \lg: Funciones Matemáticas. + (line 63) +* \lhd: SÃmbolos Matemáticos. + (line 280) +* \lim: Funciones Matemáticas. + (line 66) +* \liminf: Funciones Matemáticas. + (line 69) +* \limsup: Funciones Matemáticas. + (line 72) +* \line: \line. (line 5) +* \linebreak: \linebreak y \nolinebreak. + (line 5) +* \linespread: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 76) +* \linethickness: \linethickness. (line 5) +* \linewidth: Parámetros para el Diseño de Página. + (line 21) +* \listoffigures: Tablas de Contenido. (line 15) +* \listoftables: Tablas de Contenido. (line 15) +* \listparindent: itemize. (line 66) +* \ll: SÃmbolos Matemáticos. + (line 283) +* \ln: Funciones Matemáticas. + (line 75) +* \lnot: SÃmbolos Matemáticos. + (line 286) +* \location: \location. (line 5) +* \log: Funciones Matemáticas. + (line 78) +* \longleftarrow: SÃmbolos Matemáticos. + (line 289) +* \longleftrightarrow: SÃmbolos Matemáticos. + (line 292) +* \longmapsto: SÃmbolos Matemáticos. + (line 295) +* \longrightarrow: SÃmbolos Matemáticos. + (line 298) +* \lor: SÃmbolos Matemáticos. + (line 301) +* \lq: SÃmbolos de Texto. (line 37) +* \makebox: \makebox. (line 5) +* \makebox (imagen): \makebox (imagen). (line 5) +* \makeglossary: Glosarios. (line 5) +* \makeindex: Ãndices. (line 5) +* \makelabels: \makelabels. (line 5) +* \maketitle: \maketitle. (line 5) +* \mapsto: SÃmbolos Matemáticos. + (line 304) +* \marginpar: Notas al Margen. (line 5) +* \marginparpush: Notas al Margen. (line 36) +* \marginparsep: Notas al Margen. (line 40) +* \marginparwidth: Notas al Margen. (line 44) +* \markboth{izquierda}{derecha}: \pagestyle. (line 31) +* \markright{derecha}: \pagestyle. (line 39) +* \mathbf: Estilos del Tipo de Letra. + (line 59) +* \mathcal: Estilos del Tipo de Letra. + (line 76) +* \mathnormal: Estilos del Tipo de Letra. + (line 72) +* \mathrm: Estilos del Tipo de Letra. + (line 56) +* \mathsf: Estilos del Tipo de Letra. + (line 62) +* \mathtt: Estilos del Tipo de Letra. + (line 65) +* \mathversion: Estilos del Tipo de Letra. + (line 78) +* \max: Funciones Matemáticas. + (line 81) +* \mbox: \mbox. (line 5) +* \mdseries: Estilos del Tipo de Letra. + (line 32) +* \medskip: \bigskip \medskip \smallskip. + (line 13) +* \medskipamount: \bigskip \medskip \smallskip. + (line 13) +* \mho: SÃmbolos Matemáticos. + (line 307) +* \mid: SÃmbolos Matemáticos. + (line 309) +* \min: Funciones Matemáticas. + (line 84) +* \models: SÃmbolos Matemáticos. + (line 312) +* \month: \day \month \year. (line 5) +* \mp: SÃmbolos Matemáticos. + (line 315) +* \mu: SÃmbolos Matemáticos. + (line 318) +* \multicolumn: \multicolumn. (line 5) +* \multiput: \multiput. (line 5) +* \nabla: SÃmbolos Matemáticos. + (line 321) +* \name: \name. (line 5) +* \natural: SÃmbolos Matemáticos. + (line 324) +* \ne: SÃmbolos Matemáticos. + (line 327) +* \nearrow: SÃmbolos Matemáticos. + (line 330) +* \neg: SÃmbolos Matemáticos. + (line 333) +* \neq: SÃmbolos Matemáticos. + (line 336) +* \newcommand: \newcommand y \renewcommand. + (line 5) +* \newcounter: \newcounter. (line 5) +* \newenvironment: \newenvironment y \renewenvironment. + (line 5) +* \newfont: \newfont. (line 5) +* \newlength: \newlength. (line 5) +* \newline: \newline. (line 5) +* \NEWLINE: \SPACE. (line 5) +* \newpage: \newpage. (line 5) +* \newsavebox: \newsavebox. (line 5) +* \newtheorem: \newtheorem. (line 5) +* \newtie: Acentos. (line 81) +* \ng: Caracteres no Ingleses. + (line 35) +* \NG: Caracteres no Ingleses. + (line 35) +* \ni: SÃmbolos Matemáticos. + (line 339) +* \nocite: \nocite. (line 5) +* \nofiles: Tablas de Contenido. (line 19) +* \noindent: \noindent. (line 5) +* \nolinebreak: \linebreak y \nolinebreak. + (line 5) +* \nonumber: eqnarray. (line 19) +* \nopagebreak: \pagebreak y \nopagebreak. + (line 5) +* \normalfont: Estilos del Tipo de Letra. + (line 53) +* \normalmarginpar: Notas al Margen. (line 22) +* \normalsize: Tamaños del Tipo de Letra. + (line 11) +* \not: SÃmbolos Matemáticos. + (line 342) +* \notin: SÃmbolos Matemáticos. + (line 345) +* \nu: SÃmbolos Matemáticos. + (line 348) +* \nwarrow: SÃmbolos Matemáticos. + (line 351) +* \o (ø): Caracteres no Ingleses. + (line 39) +* \O (Ø): Caracteres no Ingleses. + (line 39) +* \obeycr: \obeycr y \restorecr. + (line 5) +* \oddsidemargin: Opciones de Clase de Documento. + (line 59) +* \odot: SÃmbolos Matemáticos. + (line 354) +* \oe (Å“): Caracteres no Ingleses. + (line 43) +* \OE (Å’): Caracteres no Ingleses. + (line 43) +* \oint: SÃmbolos Matemáticos. + (line 357) +* \Omega: SÃmbolos Matemáticos. + (line 360) +* \omega: SÃmbolos Matemáticos. + (line 363) +* \ominus: SÃmbolos Matemáticos. + (line 366) +* \onecolumn: \onecolumn. (line 5) +* \opening: \opening. (line 5) +* \oplus: SÃmbolos Matemáticos. + (line 369) +* \oslash: SÃmbolos Matemáticos. + (line 372) +* \otimes: SÃmbolos Matemáticos. + (line 375) +* \oval: \oval. (line 5) +* \overbrace{texto}: Miscelánea Math. (line 26) +* \overline{texto}: Miscelánea Math. (line 30) +* \owns: SÃmbolos Matemáticos. + (line 378) +* \P: SÃmbolos de Texto. (line 40) +* \pagebreak: \pagebreak y \nopagebreak. + (line 5) +* \pagenumbering: \pagenumbering. (line 5) +* \pageref: \pageref. (line 5) +* \pagestyle: \pagestyle. (line 5) +* \paragraph: Seccionado. (line 20) +* \parallel: SÃmbolos Matemáticos. + (line 381) +* \parbox: \parbox. (line 5) +* \parindent: minipage. (line 17) +* \parindent <1>: \indent. (line 5) +* \parsep: itemize. (line 84) +* \parskip: \parskip. (line 5) +* \part: Seccionado. (line 9) +* \partial: SÃmbolos Matemáticos. + (line 384) +* \partopsep: itemize. (line 96) +* \perp: SÃmbolos Matemáticos. + (line 387) +* \phi: SÃmbolos Matemáticos. + (line 390) +* \Pi: SÃmbolos Matemáticos. + (line 393) +* \pi: SÃmbolos Matemáticos. + (line 396) +* \pm: SÃmbolos Matemáticos. + (line 399) +* \pmod: Funciones Matemáticas. + (line 87) +* \poptabs: tabbing. (line 76) +* \poptabs <1>: tabbing. (line 77) +* \pounds: SÃmbolos de Texto. (line 44) +* \Pr: Funciones Matemáticas. + (line 90) +* \prec: SÃmbolos Matemáticos. + (line 402) +* \preceq: SÃmbolos Matemáticos. + (line 405) +* \prime: SÃmbolos Matemáticos. + (line 408) +* \prod: SÃmbolos Matemáticos. + (line 411) +* \propto: SÃmbolos Matemáticos. + (line 414) +* \protect: \protect. (line 5) +* \ps: \ps. (line 5) +* \Psi: SÃmbolos Matemáticos. + (line 417) +* \psi: SÃmbolos Matemáticos. + (line 420) +* \pushtabs: tabbing. (line 80) +* \put: \put. (line 5) +* \quotedblbase („): SÃmbolos de Texto. (line 48) +* \quotesinglbase (‚): SÃmbolos de Texto. (line 49) +* \r (acento anillo): Acentos. (line 75) +* \raggedbottom: \raggedbottom. (line 5) +* \raggedleft: \raggedleft. (line 5) +* \raggedright: \raggedright. (line 5) +* \raisebox: \raisebox. (line 5) +* \rangle: SÃmbolos Matemáticos. + (line 423) +* \rbrace: SÃmbolos Matemáticos. + (line 426) +* \rbrack: SÃmbolos Matemáticos. + (line 429) +* \rceil: SÃmbolos Matemáticos. + (line 432) +* \Re: SÃmbolos Matemáticos. + (line 435) +* \ref: \ref. (line 5) +* \refstepcounter: \refstepcounter. (line 5) +* \renewenvironment: \newenvironment y \renewenvironment. + (line 5) +* \restorecr: \obeycr y \restorecr. + (line 5) +* \reversemarginpar: Notas al Margen. (line 22) +* \rfloor: SÃmbolos Matemáticos. + (line 438) +* \rhd: SÃmbolos Matemáticos. + (line 441) +* \rho: SÃmbolos Matemáticos. + (line 444) +* \right: Miscelánea Math. (line 21) +* \Rightarrow: SÃmbolos Matemáticos. + (line 447) +* \rightarrow: SÃmbolos Matemáticos. + (line 450) +* \rightharpoondown: SÃmbolos Matemáticos. + (line 453) +* \rightharpoonup: SÃmbolos Matemáticos. + (line 456) +* \rightleftharpoons: SÃmbolos Matemáticos. + (line 459) +* \rightmargin: itemize. (line 70) +* \rm: Estilos del Tipo de Letra. + (line 100) +* \rmfamily: Estilos del Tipo de Letra. + (line 23) +* \roman: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 18) +* \roman <1>: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 21) +* \rq: SÃmbolos de Texto. (line 52) +* \rule: \rule. (line 5) +* \S: SÃmbolos de Texto. (line 55) +* \savebox: \savebox. (line 5) +* \sbox: \sbox. (line 5) +* \sc: Estilos del Tipo de Letra. + (line 103) +* \scriptsize: Tamaños del Tipo de Letra. + (line 11) +* \scshape: Estilos del Tipo de Letra. + (line 47) +* \searrow: SÃmbolos Matemáticos. + (line 462) +* \sec: Funciones Matemáticas. + (line 93) +* \section: Seccionado. (line 14) +* \seename: Ãndices. (line 19) +* \selectfont: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 82) +* \setcounter: \setcounter. (line 5) +* \setlength: \setlength. (line 5) +* \setminus: SÃmbolos Matemáticos. + (line 465) +* \settodepth: \settodepth. (line 5) +* \settoheight: \settoheight. (line 5) +* \settowidth: \settowidth. (line 5) +* \sf: Estilos del Tipo de Letra. + (line 106) +* \sffamily: Estilos del Tipo de Letra. + (line 44) +* \sharp: SÃmbolos Matemáticos. + (line 468) +* \shortstack: \shortstack. (line 5) +* \Sigma: SÃmbolos Matemáticos. + (line 471) +* \sigma: SÃmbolos Matemáticos. + (line 474) +* \signature: \signature. (line 5) +* \sim: SÃmbolos Matemáticos. + (line 477) +* \simeq: SÃmbolos Matemáticos. + (line 480) +* \sin: Funciones Matemáticas. + (line 96) +* \sinh: Funciones Matemáticas. + (line 99) +* \sl: Estilos del Tipo de Letra. + (line 109) +* \slshape: Estilos del Tipo de Letra. + (line 41) +* \small: Tamaños del Tipo de Letra. + (line 11) +* \smallint: SÃmbolos Matemáticos. + (line 483) +* \smallskip: \bigskip \medskip \smallskip. + (line 17) +* \smallskipamount: \bigskip \medskip \smallskip. + (line 17) +* \smile: SÃmbolos Matemáticos. + (line 486) +* \SPACE: \SPACE. (line 5) +* \spadesuit: SÃmbolos Matemáticos. + (line 489) +* \sqcap: SÃmbolos Matemáticos. + (line 492) +* \sqcup: SÃmbolos Matemáticos. + (line 495) +* \sqrt[raÃz]{argumento}: Miscelánea Math. (line 34) +* \sqsubset: SÃmbolos Matemáticos. + (line 498) +* \sqsubseteq: SÃmbolos Matemáticos. + (line 501) +* \sqsupset: SÃmbolos Matemáticos. + (line 504) +* \sqsupseteq: SÃmbolos Matemáticos. + (line 507) +* \ss (ß): Caracteres no Ingleses. + (line 47) +* \SS (SS): Caracteres no Ingleses. + (line 47) +* \stackrel{texto}{relación}: Miscelánea Math. (line 39) +* \star: SÃmbolos Matemáticos. + (line 510) +* \startbreaks: \startbreaks. (line 5) +* \stepcounter: \stepcounter. (line 5) +* \stop: LÃnea de Órdenes. (line 16) +* \stopbreaks: \stopbreaks. (line 5) +* \subparagraph: Seccionado. (line 22) +* \subsection: Seccionado. (line 16) +* \subset: SÃmbolos Matemáticos. + (line 513) +* \subseteq: SÃmbolos Matemáticos. + (line 516) +* \subsubsection: Seccionado. (line 18) +* \succ: SÃmbolos Matemáticos. + (line 519) +* \succeq: SÃmbolos Matemáticos. + (line 522) +* \sum: SÃmbolos Matemáticos. + (line 525) +* \sup: Funciones Matemáticas. + (line 102) +* \supset: SÃmbolos Matemáticos. + (line 528) +* \supseteq: SÃmbolos Matemáticos. + (line 531) +* \surd: SÃmbolos Matemáticos. + (line 534) +* \swarrow: SÃmbolos Matemáticos. + (line 537) +* \symbol: Caracteres Reservados. + (line 25) +* \t (acento atadura con siguiente): Acentos. (line 81) +* \TAB: \SPACE. (line 5) +* \tabbingsep: tabbing. (line 85) +* \tabcolsep: tabular. (line 113) +* \tableofcontents: Tablas de Contenido. (line 5) +* \tan: Funciones Matemáticas. + (line 105) +* \tanh: Funciones Matemáticas. + (line 108) +* \tau: SÃmbolos Matemáticos. + (line 540) +* \telephone: \telephone. (line 5) +* \TeX: SÃmbolos de Texto. (line 58) +* \textascenderwordmark: SÃmbolos de Texto. (line 96) +* \textasciicircum: SÃmbolos de Texto. (line 61) +* \textasciitilde: SÃmbolos de Texto. (line 64) +* \textasteriskcentered: SÃmbolos de Texto. (line 67) +* \textbackslash: SÃmbolos de Texto. (line 70) +* \textbar: SÃmbolos de Texto. (line 73) +* \textbardbl: SÃmbolos de Texto. (line 76) +* \textbf: Estilos del Tipo de Letra. + (line 35) +* \textbigcircle: SÃmbolos de Texto. (line 79) +* \textbraceleft: SÃmbolos de Texto. (line 82) +* \textbraceright: SÃmbolos de Texto. (line 85) +* \textbullet: SÃmbolos de Texto. (line 88) +* \textcapitalwordmark: SÃmbolos de Texto. (line 95) +* \textcircled{letra}: SÃmbolos de Texto. (line 91) +* \textcompwordmark: SÃmbolos de Texto. (line 94) +* \textcopyright: SÃmbolos de Texto. (line 12) +* \textdagger: SÃmbolos de Texto. (line 101) +* \textdaggerdbl: SÃmbolos de Texto. (line 104) +* \textdollar (o `$'): SÃmbolos de Texto. (line 107) +* \textellipsis: SÃmbolos de Texto. (line 33) +* \textemdash (o `---'): SÃmbolos de Texto. (line 110) +* \textendash (o `--'): SÃmbolos de Texto. (line 113) +* \texteuro: SÃmbolos de Texto. (line 116) +* \textexclamdown (o `!`'): SÃmbolos de Texto. (line 119) +* \textfloatsep: figure. (line 73) +* \textfraction: figure. (line 78) +* \textgreater: SÃmbolos de Texto. (line 122) +* \textheight: Parámetros para el Diseño de Página. + (line 27) +* \textit: Estilos del Tipo de Letra. + (line 26) +* \textleftarrow: SÃmbolos de Texto. (line 128) +* \textless: SÃmbolos de Texto. (line 125) +* \textmd: Estilos del Tipo de Letra. + (line 32) +* \textnormal: Estilos del Tipo de Letra. + (line 53) +* \textordfeminine: SÃmbolos de Texto. (line 131) +* \textordfeminine <1>: SÃmbolos de Texto. (line 135) +* \textordmasculine: SÃmbolos de Texto. (line 132) +* \textparagraph: SÃmbolos de Texto. (line 41) +* \textperiodcentered: SÃmbolos de Texto. (line 138) +* \textquestiondown (o `?`'): SÃmbolos de Texto. (line 141) +* \textquotedblleft (o ```'): SÃmbolos de Texto. (line 144) +* \textquotedblright (o `''): SÃmbolos de Texto. (line 147) +* \textquoteleft (o ``'): SÃmbolos de Texto. (line 150) +* \textquoteright (o `''): SÃmbolos de Texto. (line 153) +* \textquotestraightbase: SÃmbolos de Texto. (line 156) +* \textquotestraightdblbase: SÃmbolos de Texto. (line 157) +* \textregistered: SÃmbolos de Texto. (line 160) +* \textrightarrow: SÃmbolos de Texto. (line 163) +* \textrm: Estilos del Tipo de Letra. + (line 23) +* \textsc: Estilos del Tipo de Letra. + (line 47) +* \textsf: Estilos del Tipo de Letra. + (line 44) +* \textsl: Estilos del Tipo de Letra. + (line 41) +* \textsterling: SÃmbolos de Texto. (line 45) +* \textthreequartersemdash: SÃmbolos de Texto. (line 166) +* \texttrademark: SÃmbolos de Texto. (line 169) +* \texttt: Estilos del Tipo de Letra. + (line 50) +* \texttwelveudash: SÃmbolos de Texto. (line 172) +* \textunderscore: SÃmbolos de Texto. (line 175) +* \textup: Estilos del Tipo de Letra. + (line 38) +* \textvisiblespace: SÃmbolos de Texto. (line 178) +* \textwidth: Parámetros para el Diseño de Página. + (line 34) +* \th (þ): Caracteres no Ingleses. + (line 51) +* \TH (Þ): Caracteres no Ingleses. + (line 51) +* \thanks{texto}: \maketitle. (line 23) +* \theta: SÃmbolos Matemáticos. + (line 543) +* \thicklines: \thicklines. (line 5) +* \thinlines: \thinlines. (line 5) +* \thinspace: \thinspace. (line 5) +* \thispagestyle: \thispagestyle. (line 5) +* \tilde: Acentos Matemáticos. (line 40) +* \times: SÃmbolos Matemáticos. + (line 546) +* \tiny: Tamaños del Tipo de Letra. + (line 11) +* \title{texto}: \maketitle. (line 28) +* \to: SÃmbolos Matemáticos. + (line 549) +* \today: \today. (line 5) +* \top: SÃmbolos Matemáticos. + (line 552) +* \topfraction: figure. (line 84) +* \topmargin: Parámetros para el Diseño de Página. + (line 41) +* \topsep: itemize. (line 88) +* \topskip: Parámetros para el Diseño de Página. + (line 49) +* \totalheight: Longitudes Predeterminadas. + (line 12) +* \triangle: SÃmbolos Matemáticos. + (line 555) +* \triangleleft: SÃmbolos Matemáticos. + (line 558) +* \triangleright: SÃmbolos Matemáticos. + (line 561) +* \tt: Estilos del Tipo de Letra. + (line 112) +* \ttfamily: Estilos del Tipo de Letra. + (line 50) +* \twocolumn: \twocolumn. (line 5) +* \typein: \typein. (line 5) +* \typeout: \typeout. (line 5) +* \u (breve acento): Acentos. (line 86) +* \unboldmath: Fórmulas Matemáticas. + (line 30) +* \underbar: Acentos. (line 89) +* \underbrace{matemáticas}: Miscelánea Math. (line 44) +* \underline{text}: Miscelánea Math. (line 47) +* \unitlength: picture. (line 9) +* \unlhd: SÃmbolos Matemáticos. + (line 564) +* \unrhd: SÃmbolos Matemáticos. + (line 568) +* \Uparrow: SÃmbolos Matemáticos. + (line 572) +* \uparrow: SÃmbolos Matemáticos. + (line 575) +* \Updownarrow: SÃmbolos Matemáticos. + (line 578) +* \updownarrow: SÃmbolos Matemáticos. + (line 581) +* \uplus: SÃmbolos Matemáticos. + (line 584) +* \upshape: Estilos del Tipo de Letra. + (line 38) +* \Upsilon: SÃmbolos Matemáticos. + (line 587) +* \upsilon: SÃmbolos Matemáticos. + (line 590) +* \usebox: \usebox. (line 5) +* \usecounter: \usecounter. (line 5) +* \usefont: Instrucciones de Bajo Nivel para el Tipo de Letra. + (line 87) +* \usepackage: Opciones de Clase de Documento. + (line 78) +* \v (breve acento): Acentos. (line 97) +* \value: \value. (line 5) +* \varepsilon: SÃmbolos Matemáticos. + (line 593) +* \varphi: SÃmbolos Matemáticos. + (line 596) +* \varpi: SÃmbolos Matemáticos. + (line 599) +* \varrho: SÃmbolos Matemáticos. + (line 602) +* \varsigma: SÃmbolos Matemáticos. + (line 605) +* \vartheta: SÃmbolos Matemáticos. + (line 608) +* \vdash: SÃmbolos Matemáticos. + (line 611) +* \vdots: Miscelánea Math. (line 52) +* \vdots <1>: Miscelánea Math. (line 53) +* \vec: Acentos Matemáticos. (line 43) +* \vector: \vector. (line 5) +* \vee: SÃmbolos Matemáticos. + (line 614) +* \verb: \verb. (line 5) +* \Vert: SÃmbolos Matemáticos. + (line 617) +* \vert: SÃmbolos Matemáticos. + (line 620) +* \vfill: \vfill. (line 5) +* \vline: \vline. (line 5) +* \vspace: \vspace. (line 5) +* \wedge: SÃmbolos Matemáticos. + (line 623) +* \widehat: Acentos Matemáticos. (line 46) +* \widetilde: Acentos Matemáticos. (line 49) +* \width: Longitudes Predeterminadas. + (line 6) +* \wp: SÃmbolos Matemáticos. + (line 626) +* \wr: SÃmbolos Matemáticos. + (line 629) +* \Xi: SÃmbolos Matemáticos. + (line 632) +* \xi: SÃmbolos Matemáticos. + (line 635) +* \year: \day \month \year. (line 5) +* \zeta: SÃmbolos Matemáticos. + (line 638) +* \[: Fórmulas Matemáticas. + (line 17) +* \\ (para objetos `\shortstack'): \shortstack. (line 21) +* \\ (para `array'): array. (line 28) +* \\ (para `centrar'): center. (line 12) +* \\ (para `eqnarray'): eqnarray. (line 11) +* \\ (para `flushright'): flushright. (line 11) +* \\ forzar la separación de lÃnea: \\. (line 5) +* \\ para cartas: Cartas. (line 33) +* \\ para `flushleft': flushleft. (line 11) +* \\ para `tabular': tabular. (line 22) +* \\ para `verse': verse. (line 16) +* \\ para `\author': \maketitle. (line 12) +* \\ para `\title': \maketitle. (line 29) +* \\ tabbing: tabbing. (line 26) +* \\* (para `eqnarray'): eqnarray. (line 16) +* \]: Fórmulas Matemáticas. + (line 17) +* \^: Caracteres Reservados. + (line 21) +* \^ (acento circunflejo): Acentos. (line 34) +* \_: Caracteres Reservados. + (line 10) +* \` (acento grave): Acentos. (line 39) +* \` (tabbing): tabbing. (line 56) +* \{: Caracteres Reservados. + (line 10) +* \|: SÃmbolos Matemáticos. + (line 11) +* \}: Caracteres Reservados. + (line 10) +* \~: Caracteres Reservados. + (line 21) +* \~ (acento tilde): Acentos. (line 45) +* ^: SubÃndices y SuperÃndices. + (line 5) +* _: SubÃndices y SuperÃndices. + (line 5) +* array entorno: array. (line 5) +* caja lR: picture. (line 66) +* clase article: Clases de Documento. (line 12) +* clase book: Clases de Documento. (line 12) +* clase letter: Clases de Documento. (line 12) +* clase report: Clases de Documento. (line 12) +* clase slides: Clases de Documento. (line 12) +* contador secnumdepth: Seccionado. (line 56) +* ejemplo \Alph: enumerate. (line 43) +* ejemplo \parskip: itemize. (line 101) +* entorno flushleft: flushleft. (line 5) +* entorno itemize: itemize. (line 5) +* entorno abstract: abstract. (line 5) +* entorno center: center. (line 5) +* entorno description: description. (line 5) +* entorno displaymath: displaymath. (line 5) +* entorno displaymath <1>: Fórmulas Matemáticas. + (line 5) +* entorno document: document. (line 5) +* entorno enumerate: enumerate. (line 5) +* entorno eqnarray: eqnarray. (line 5) +* entorno equation: equation. (line 5) +* entorno equation <1>: Fórmulas Matemáticas. + (line 5) +* entorno flushright: flushright. (line 5) +* entorno math: math. (line 5) +* entorno math <1>: Fórmulas Matemáticas. + (line 5) +* entorno minipage: minipage. (line 5) +* entorno tabbing: tabbing. (line 5) +* entorno tabular: tabular. (line 5) +* entorno theorem: theorem. (line 5) +* entorno titlepage: titlepage. (line 5) +* entorno verbatim: verbatim. (line 5) +* entorno verse: verse. (line 5) +* figure: figure. (line 5) +* indexspace: Ãndices. (line 33) +* letter: letter. (line 5) +* list: list. (line 5) +* lrbox: lrbox. (line 5) +* opción 10pt: Opciones de Clase de Documento. + (line 14) +* opción 11pt: Opciones de Clase de Documento. + (line 14) +* opción 12pt: Opciones de Clase de Documento. + (line 14) +* opción a4paper: Opciones de Clase de Documento. + (line 20) +* opción a5paper: Opciones de Clase de Documento. + (line 20) +* opción b5paper: Opciones de Clase de Documento. + (line 20) +* opción draft: Opciones de Clase de Documento. + (line 25) +* opción executivepaper: Opciones de Clase de Documento. + (line 20) +* opción final: Opciones de Clase de Documento. + (line 25) +* opción fleqn: Opciones de Clase de Documento. + (line 25) +* opción landscape: Opciones de Clase de Documento. + (line 25) +* opción legalpaper: Opciones de Clase de Documento. + (line 20) +* opción leqno: Opciones de Clase de Documento. + (line 25) +* opción letterpaper: Opciones de Clase de Documento. + (line 20) +* opción notitlepage: Opciones de Clase de Documento. + (line 25) +* opción onecolumn: Opciones de Clase de Documento. + (line 51) +* opción oneside: Opciones de Clase de Documento. + (line 51) +* opción openany: Opciones de Clase de Documento. + (line 51) +* opción openbib: Opciones de Clase de Documento. + (line 25) +* opción openright: Opciones de Clase de Documento. + (line 51) +* opción titlepage: Opciones de Clase de Documento. + (line 25) +* opción twocolumn: Opciones de Clase de Documento. + (line 51) +* opción twoside: Opciones de Clase de Documento. + (line 51) +* paquete textcomp: SÃmbolos de Texto. (line 5) +* picture: picture. (line 5) +* printindex: Ãndices. (line 29) +* quotation: quotation. (line 5) +* quote: quote. (line 5) +* table: table. (line 5) +* thebibliography: thebibliography. (line 5) + + + +Tag Table: +Node: Top1813 +Node: Descripción4493 +Node: Iniciando y Finalizando6764 +Node: Clases de Documento7384 +Node: Opciones de Clase de Documento8066 +Node: Tipos de Letra11126 +Node: Estilos del Tipo de Letra11700 +Node: Tamaños del Tipo de Letra14437 +Node: Instrucciones de Bajo Nivel para el Tipo de Letra16017 +Node: Diseño19166 +Node: \onecolumn19735 +Node: \twocolumn19973 +Node: \flushbottom21812 +Node: \raggedbottom22223 +Node: Parámetros para el Diseño de Página22556 +Node: Seccionado24962 +Node: Referencias Cruzadas26773 +Node: \label27252 +Node: \pageref28233 +Node: \ref28548 +Node: Entornos28982 +Node: abstract30556 +Node: array30792 +Node: center32256 +Node: \centering32749 +Node: description33681 +Node: displaymath34696 +Node: document35370 +Node: enumerate35635 +Node: eqnarray37027 +Node: equation38185 +Node: figure38586 +Node: flushleft41936 +Node: \raggedright42438 +Node: flushright43064 +Node: \raggedleft43553 +Node: itemize44177 +Node: letter48221 +Node: list48451 +Node: math49369 +Node: minipage49697 +Node: picture51026 +Node: \circle55405 +Node: \makebox (imagen)55770 +Node: \framebox (imagen)56524 +Node: \dashbox57030 +Node: \frame57644 +Node: \line57991 +Node: \linethickness58522 +Node: \thicklines58985 +Node: \thinlines59314 +Node: \multiput59639 +Node: \oval60040 +Node: \put60728 +Node: \shortstack61001 +Node: \vector61503 +Node: quotation61831 +Node: quote62326 +Node: tabbing62809 +Node: table66346 +Node: tabular67319 +Node: \multicolumn71801 +Node: \cline72709 +Node: \hline73068 +Node: \vline73407 +Node: thebibliography73761 +Node: \bibitem75054 +Node: \cite75882 +Node: \nocite76407 +Node: Usando BibTeX76723 +Node: theorem78468 +Node: titlepage78867 +Node: verbatim79586 +Node: \verb80299 +Node: verse80978 +Node: Saltos de LÃnea81523 +Node: \\82733 +Node: \obeycr y \restorecr83294 +Node: \newline83765 +Node: \- (hyphenation)84056 +Node: \fussy84810 +Node: \sloppy85259 +Node: \hyphenation85643 +Node: \linebreak y \nolinebreak86398 +Node: Saltos de Página87103 +Node: \cleardoublepage87819 +Node: \clearpage88302 +Node: \newpage88606 +Node: \enlargethispage88858 +Node: \pagebreak y \nopagebreak89410 +Node: Notas al Pie90165 +Node: \footnote90882 +Node: \footnotemark91454 +Node: \footnotetext92061 +Node: Notas al Pie Simbólicas92636 +Node: Parámetros para Footnote93237 +Node: Definiciones94075 +Node: \newcommand y \renewcommand94868 +Node: \newcounter96345 +Node: \newlength96843 +Node: \newsavebox97421 +Node: \newenvironment y \renewenvironment97783 +Node: \newtheorem99403 +Node: \newfont100490 +Node: \protect101071 +Node: Contadores102016 +Node: \alph \Alph \arabic \roman \Roman \fnsymbol103420 +Node: \usecounter104565 +Node: \value104960 +Node: \setcounter105397 +Node: \addtocounter105699 +Node: \refstepcounter106025 +Node: \stepcounter106406 +Node: \day \month \year106683 +Node: Longitudes107283 +Node: \setlength107952 +Node: \addtolength108330 +Node: \settodepth108683 +Node: \settoheight108983 +Node: \settowidth109280 +Node: Longitudes Predeterminadas109574 +Node: Haciendo Párrafos110170 +Node: \indent110822 +Node: \noindent111350 +Node: \parskip111639 +Node: Notas al Margen111943 +Node: Fórmulas Matemáticas113701 +Node: SubÃndices y SuperÃndices115711 +Node: SÃmbolos Matemáticos116213 +Node: Funciones Matemáticas123360 +Node: Acentos Matemáticos124383 +Node: Espacios en Modo Math125546 +Node: Miscelánea Math126271 +Node: Modos127959 +Node: Estilos de Página130083 +Node: \maketitle130685 +Node: \pagenumbering131946 +Node: \pagestyle132407 +Node: \thispagestyle133775 +Node: Espacios134115 +Node: \hspace135299 +Node: \hfill135944 +Node: \SPACE136397 +Node: \AT136927 +Node: \thinspace137418 +Node: \/137694 +Node: \hrulefill138639 +Node: \dotfill138928 +Node: \addvspace139189 +Node: \bigskip \medskip \smallskip139737 +Node: \vfill140497 +Node: \vspace140835 +Node: Cajas141323 +Node: \mbox142158 +Node: \fbox y \framebox142501 +Node: lrbox143353 +Node: \makebox143689 +Node: \parbox144484 +Node: \raisebox145956 +Node: \savebox146617 +Node: \sbox147093 +Node: \usebox147601 +Node: Inserciones Especiales147928 +Node: Caracteres Reservados148643 +Node: SÃmbolos de Texto150240 +Node: Acentos153832 +Node: Caracteres no Ingleses156561 +Node: \rule157238 +Node: \today157687 +Node: Dividiendo la Entrada158159 +Node: \include158900 +Node: \includeonly159580 +Node: \input160153 +Node: Asuntos de Portada/Contraportada160686 +Node: Tablas de Contenido160941 +Node: \addcontentsline162108 +Node: \addtocontents163097 +Node: Glosarios163640 +Node: Ãndices164235 +Node: Cartas166205 +Node: \address168411 +Node: \cc169130 +Node: \closing169392 +Node: \encl169640 +Node: \location169850 +Node: \makelabels170139 +Node: \name170444 +Node: \opening170676 +Node: \ps171019 +Node: \signature171218 +Node: \startbreaks171512 +Node: \stopbreaks171769 +Node: \telephone172004 +Node: Entrada/Salida a la Terminal172256 +Node: \typein172552 +Node: \typeout173267 +Node: LÃnea de Órdenes174047 +Node: Plantillas de Documento174883 +Node: Plantilla book175245 +Node: Plantilla beamer175747 +Node: Plantilla tugboat176468 +Node: Ãndice de Conceptos178958 +Node: Ãndice de Instrucciones218090 + +End Tag Table + + +Local Variables: +coding: utf-8 +End: diff --git a/Master/texmf-dist/doc/info/latex2e.info b/Master/texmf-dist/doc/info/latex2e.info new file mode 100644 index 00000000000..c5d3a86f724 --- /dev/null +++ b/Master/texmf-dist/doc/info/latex2e.info @@ -0,0 +1,7503 @@ +This is latex2e.info, produced by texi2any version 4.13.90+dev from +latex2e.texi. + +This document is an unofficial reference manual for LaTeX, a document +preparation system, version of May 2012. + + This manual was originally 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. The LaTeX2e version was adapted from this +by Torsten Martinsen. Karl Berry made further updates and additions, +and gratefully acknowledges using 'Hypertext Help with LaTeX', by +Sheldon Green, and the 'LaTeX Command Summary' (for LaTeX 2.09) by +L. Botway and C. Biemesderfer (published by the TeX Users Group as +'TeXniques' number 10), as reference material (no text was directly +copied). + + Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Karl Berry. +Copyright (C) 1988, 1994, 2007 Stephen Gilmore. +Copyright (C) 1994, 1995, 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. +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* LaTeX2e: (latex2e). Unofficial LaTeX reference manual. +END-INFO-DIR-ENTRY + + +File: latex2e.info, Node: Top, Next: About this document, Up: (dir) + +LaTeX2e +******* + +This document is an unofficial reference manual for LaTeX, a document +preparation system, version as of May 2012. It is intended to cover +LaTeX2e, which has been the standard version of LaTeX for many years. + +* Menu: + +* About this document:: Bug reporting, etc. +* Overview:: What is LaTeX? +* Starting & ending:: The standard beginning and end of a document. +* Document classes:: Some of the various classes available. +* Typefaces:: And fonts, such as bold, italics etc. +* Layout:: Controlling the page layout. +* Sectioning:: How to section properly. +* Cross references:: Automatic referencing. +* Environments:: Such as enumerate & itemize. +* Line breaking:: Influencing line breaks. +* Page breaking:: Influencing page breaks. +* Footnotes:: How to produce footnotes. +* Definitions:: Define your own commands etc. +* Counters:: Internal counters used by LaTeX. +* Lengths:: The length commands. +* Making paragraphs:: Paragraph commands. +* Math formulas:: How to create mathematical formulas. +* Modes:: Paragraph, Math or LR modes. +* Page styles:: Various styles of page layout. +* Spaces:: Horizontal and vertical space. +* Boxes:: Making boxes. +* Special insertions:: Inserting reserved and special characters. +* Splitting the input:: Dealing with big files by splitting. +* Front/back matter:: Tables of contents, glossaries, indexes. +* Letters:: The letter class. +* Terminal input/output:: User interaction. +* Command line:: System-independent command-line behavior. +* Document templates:: Starter templates for various document classes. +* Concept Index:: General index. +* Command Index:: Alphabetical list of LaTeX commands. + + +File: latex2e.info, Node: About this document, Next: Overview, Prev: Top, Up: Top + +1 About this document +********************* + +The LaTeX document preparation system is implemented as a macro package +for Donald E. Knuth's TeX typesetting program. LaTeX was originally +created by Leslie Lamport; it is now maintained by a group of volunteers +('http://latex-project.org'). The official documentation written by the +LaTeX project is available from their web site. + + The present document is completely unofficial and has not been +reviewed by the LaTeX maintainers. Do not send bug reports or anything +else about this document to them. Instead, please send all comments to +<latexrefman-discuss@gna.org>. + + The home page for this document is 'http://home.gna.org/latexrefman'. +That page has links to the current output in various formats, sources, +mailing lists, and other infrastructure. + + Of course, there are many, many other sources of information about +LaTeX. Here are a few: + + Two pages of recommended references to LaTeX documentation. + + Writing your first document, with a bit of both text and math. + + The guide for document authors maintained as part of LaTeX; there + are several others. + + Introduction to the TeX system, including LaTeX. + + +File: latex2e.info, Node: Overview, Next: Starting & ending, Prev: About this document, Up: Top + +2 Overview of LaTeX +******************* + +What is LaTeX? + + LaTeX typesets a file of text using the TeX program and the LaTeX +"macro package" for TeX. That is, it processes an input file containing +the text of a document with interspersed commands that describe how the +text should be formatted. LaTeX files are plain text that can be +written in any reasonable editor. It produces at least three files as +output: + + 1. The main output file, which is one of: + + '.dvi' + If invoked as 'latex', a "Device Independent" ('.dvi') file is + produced. This contains commands that can be translated into + commands for virtually any output device. You can view such + '.dvi' output of LaTeX by using a program such as 'xdvi' + (display directly), 'dvips' (convert to PostScript), or + 'dvipdfmx' (convert to PDF). + + '.pdf' + If invoked as 'pdflatex', a "Portable Document Format" + ('.pdf') file. Typically, this is a self-contained file, with + all fonts and images embedded. This can be very useful, but + it does make the output much larger than the '.dvi' produced + from the same document. + + If invoked as 'lualatex', a '.pdf' file is created using the + LuaTeX engine ('http://luatex.org'). + + If invoked as 'xelatex', a '.pdf' file is created using the + XeTeX engine ('http://tug.org/xetex'). + + Many other less-common variants of LaTeX (and TeX) exist, which can + produce HTML, XML, and other things. + + 2. The "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 cross-references. + + An open-ended list of other files might be created. We won't try to +list them all. Xxx components? + + In the LaTeX input file, a command name starts with 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. + + LaTeX is case sensitive. Enter all commands in lower case unless +explicitly directed to do otherwise. + + +File: latex2e.info, Node: Starting & ending, Next: Document classes, Prev: Overview, Up: Top + +3 Starting & ending +******************* + +A minimal input file looks like the following: + + \documentclass{CLASS} + \begin{document} + YOUR TEXT + \end{document} + +where the CLASS is a valid document class for LaTeX. *Note Document +classes::, for details of the various document classes available +locally. + + You may include other LaTeX commands between the '\documentclass' and +the '\begin{document}' commands (this area is called the "preamble"). + + +File: latex2e.info, Node: Document classes, Next: Typefaces, Prev: Starting & ending, Up: Top + +4 Document classes +****************** + +The class of a given document is defined with the command: + + \documentclass[OPTIONS]{CLASS} + +The '\documentclass' command must be the first command in a LaTeX source +file. + + Built-in LaTeX document CLASS names are (many other document classes +are available as add-ons; *note Overview::): + + article report book letter slides + + Standard OPTIONS are described below. + +* Menu: + +* Document class options:: Global options. + + +File: latex2e.info, Node: Document class options, Up: Document classes + +4.1 Document class options +========================== + +You can specify so-called "global options" or "class options" to the +'\documentclass' command by enclosing them in square brackets as usual. +To specify more than one OPTION, separate them with a comma: + + \documentclass[OPTION1,OPTION2,...]{CLASS} + + Here is the list of the standard class options. + + All of the standard classes except 'slides' accept the following +options for selecting the typeface size (default is '10pt'): + + 10pt 11pt 12pt + + All of the standard classes accept these options for selecting the +paper size (default is 'letterpaper'): + + a4paper a5paper b5paper executivepaper legalpaper letterpaper + + Miscellaneous other options: + +'draft, final' + mark/do not mark overfull boxes with a big black box; default is + 'final'. +'fleqn' + Put displayed formulas flush left; default is centered. +'landscape' + Selects landscape format; default is portrait. +'leqno' + Put equation numbers on the left side of equations; default is the + right side. +'openbib' + Use "open" bibliography format. +'titlepage, notitlepage' + Specifies whether the title page is separate; default depends on + the class. + + These options are not available with the slides class: + +'onecolumn' +'twocolumn' + Typeset in one or two columns; default is 'onecolumn'. + +'oneside' +'twoside' + Selects one- or two-sided layout; default is 'oneside', except for + the 'book' class. + + The '\evensidemargin' ('\oddsidemargin' parameter determines the + distance on even (odd) numbered pages between the left side of the + page and the text's left margin. The defaults vary with the paper + size and whether one- or two-side layout is selected. For + one-sided printing the text is centered, for two-sided, + '\oddsidemargin' is 40% of the difference between '\paperwidth' and + '\textwidth', with '\evensidemargin' the remainder. + +'openright' +'openany' + Determines if a chapter should start on a right-hand page; default + is 'openright' for book. + + The 'slides' class offers the option 'clock' for printing the time at +the bottom of each note. + + Additional packages are loaded like this: + + \usepackage[OPTIONS]{PKG} + + To specify more than one PKG, you can separate them with a comma, or +use multiple '\usepackage' commands. + + 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: latex2e.info, Node: Typefaces, Next: Layout, Prev: Document classes, Up: Top + +5 Typefaces +*********** + +Two important aspects of selecting a "font" are specifying a size and a +style. The LaTeX commands for doing this are described here. + +* Menu: + +* Font styles:: Select roman, italics etc. +* Font sizes:: Select point size. +* Low-level font commands:: Select encoding, family, series, shape. + + +File: latex2e.info, Node: Font styles, Next: Font sizes, Up: Typefaces + +5.1 Font styles +=============== + +The following type style commands are supported by LaTeX. + + This first group of commands is typically used like '\textit{italic +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 either +'\sffamily\bfseries' or '\bfseries\sffamily' to get bold sans serif. + + You can alternatively use an environment form of the declarations; +for instance, '\begin{ttfamily}...\end{ttfamily}'. + + These commands automatically supply an italic correction if the +'\textrm (\rmfamily)' + Roman. + +'\textit (\itshape)' + Italics. + +'\emph' + Emphasis (switches between '\textit' and '\textrm'). + +'\textmd (\mdseries)' + Medium weight (default). + +'\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' +'(\mit)' + Italics, for use in math mode. + +'\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. + + LaTeX also provides these commands, which unconditionally switch to +the given style, that is, are _not_ cumulative. They are used +differently than the above commands, too: '{\CMD ...}' instead of +'\CMD{...}'. These are two very different things. + +'\bf' + Switch to bold face. + +'\cal' + Switch to calligraphic letters for math. + +'\em' + Emphasis (italics within roman, roman within italics). + +'\it' + Italics. + +'\rm' + Roman. + +'\sc' + Small caps. + +'\sf' + Sans serif. + +'\sl' + Slanted (oblique). + +'\tt' + Typewriter (monospace, fixed-width). + + +File: latex2e.info, Node: Font sizes, Next: Low-level font commands, Prev: Font styles, Up: Typefaces + +5.2 Font sizes +============== + +The following standard type size commands are supported by LaTeX. The +table shows the command name and the corresponding actual font size used +(in points) with the '10pt', '11pt', and '12pt' document size options, +respectively (*note Document class options::). + +Command '10pt' '11pt' '12pt' +-------------------------------------------------- +'\tiny' 5 6 6 +'\scriptsize' 7 8 8 +'\footnotesize' 8 9 10 +'\small' 9 10 10.95 +'\normalsize' (default) 10 10.95 12 +'\large' 12 12 14.4 +'\Large' 14.4 14.4 17.28 +'\LARGE' 17.28 17.28 20.74 +'\huge' 20.74 20.74 24.88 +'\Huge' 24.88 24.88 24.88 + + 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; for instance, '\begin{tiny}...\end{tiny}'. + + +File: latex2e.info, Node: Low-level font commands, Prev: Font sizes, Up: Typefaces + +5.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. + +'\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 + and the second is the line spacing to use; this is stored in a + parameter named '\baselineskip'. The unit of both parameters + defaults to pt. The default '\baselineskip' for the Computer + Modern typeface is 1.2 times the '\fontsize'. + + The line spacing is also multiplied by the value of the + '\baselinestretch' parameter when the type size changes; the + default is 1. However, the best way to "double space" a document, + if you should be unlucky enough to have to produce such, is to use + the 'setspace' package; see + 'http://www.tex.ac.uk/cgi-bin/texfaq2html?label=linespace'. + +'\linespread{FACTOR}' + Equivalent to '\renewcommand{\baselinestretch}{FACTOR}', and + therefore must be followed by '\selectfont' to have any effect. + Best specified in the preamble, or use the 'setspace' package, as + described just above. + + The changes made by calling the font commands described above do + not come into effect until '\selectfont' is called. + +'\usefont{enc}{family}{series}{shape}' + The same as invoking '\fontencoding', '\fontfamily', '\fontseries' + and '\fontshape' with the given parameters, followed by + '\selectfont'. + + +File: latex2e.info, Node: Layout, Next: Sectioning, Prev: Typefaces, Up: Top + +6 Layout +******** + +Miscellaneous commands for controlling the general layout of the page. + +* Menu: + +* \onecolumn:: Use one-column layout. +* \twocolumn:: Use two-column layout. +* \flushbottom:: Make all text pages the same height. +* \raggedbottom:: Allow text pages of differing height. +* Page layout parameters:: \headheight \footskip. + + +File: latex2e.info, Node: \onecolumn, Next: \twocolumn, Up: Layout + +6.1 '\onecolumn' +================ + +The '\onecolumn' declaration starts a new page and produces +single-column output. This is the default. + + +File: latex2e.info, Node: \twocolumn, Next: \flushbottom, Prev: \onecolumn, Up: Layout + +6.2 '\twocolumn' +================ + +Synopsis: + + \twocolumn[TEXT1COL] + + The '\twocolumn' declaration starts a new page and produces +two-column output. If the optional TEXT1COL argument is present, it is +typeset in one-column mode before the two-column typesetting starts. + + These parameters control typesetting in two-column output: + +'\columnsep' + The distance between columns (35pt by default). + +'\columnseprule' + The width of the rule between columns; the default is 0pt, so there + is no rule. + +'\columnwidth' + The width of the current column; this is equal to '\textwidth' in + single-column text. + + These parameters control float behavior in two-column output: + +'\dbltopfraction' + Maximum fraction at the top of a two-column page that may be + occupied by floats. Default '.7', can be usefully redefined to + (say) '.9' to avoid going to float pages so soon. + +'\dblfloatpagefraction' + The minimum fraction of a float page that must be occupied by + floats, for a two-column float page. Default '.5'. + +'\dblfloatsep' + Distance between floats at the top or bottom of a two-column float + page. Default '12pt plus2pt minus2pt' for '10pt' and '11pt' + documents, '14pt plus2pt minus4pt' for '12pt'. + +'\dbltextfloatsep' + Distance between a multi-column float at the top or bottom of a + page and the main text. Default '20pt plus2pt minus4pt'. + + +File: latex2e.info, Node: \flushbottom, Next: \raggedbottom, Prev: \twocolumn, Up: Layout + +6.3 '\flushbottom' +================== + +The '\flushbottom' declaration makes all text pages the same height, +adding extra vertical space where necessary to fill out the page. + + This is the default if 'twocolumn' mode is selected (*note Document +class options::). + + +File: latex2e.info, Node: \raggedbottom, Next: Page layout parameters, Prev: \flushbottom, Up: Layout + +6.4 '\raggedbottom' +=================== + +The '\raggedbottom' declaration makes all pages the natural height of +the material on that page. No rubber lengths will be stretched. + + +File: latex2e.info, Node: Page layout parameters, Prev: \raggedbottom, Up: Layout + +6.5 Page layout parameters +========================== + +'\headheight' + Height of the box that contains the running head. Default is + '30pt', except in the 'book' class, where it varies with the type + size. + +'\headsep' + Vertical distance between the bottom of the header line and the top + of the main text. Default is '25pt', except in the 'book' class, + where it varies with the type size. + +'\footskip' + Distance from the baseline of the last line of text to the baseline + of the page footer. Default is '30pt', except in the 'book' class, + where it varies with the type size. + +'\linewidth' + Width of the current line, decreased for each nested 'list' (*note + list::). Specifically, it is smaller than '\textwidth' by the sum + of '\leftmargin' and '\rightmargin' (*note itemize::). The default + varies with the font size, paper width, two-column mode, etc. For + an 'article' document in '10pt', it's set to '345pt'; in two-column + mode, that becomes '229.5pt'. + +'\textheight' + The normal vertical height of the page body; the default varies + with the font size, document class, etc. For an 'article' or + 'report' document in '10pt', it's set to '43\baselineskip'; for + 'book', it's '41\baselineskip'. For '11pt', it's '38\baselineskip' + and for '12pt', '36\baselineskip'. + +'\textwidth' + The full horizontal width of the entire page body; the default + varies as usual. For an 'article' or 'report' document, it's + '345pt' at '10pt', '360pt' at '11pt', and '390pt' at '12pt'. For a + 'book' document, it's '4.5in' at '10pt', and '5in' at '11pt' or + '12pt'. + + In multi-column output, '\textwidth' remains the width of the + entire page body, while '\columnwidth' is the width of one column + (*note \twocolumn::). + + In lists (*note list::), '\textwidth' remains the width of the + entire page body (and '\columnwidth' the width of the entire + column), while '\linewidth' may decrease for nested lists. + + Inside a minipage (*note minipage::) or '\parbox' (*note + \parbox::), all the width-related parameters are set to the + specified width, and revert to their normal values at the end of + the 'minipage' or '\parbox'. + + For completeness: '\hsize' is the TeX primitive parameter used when + text is broken into lines. It should not be used in normal LaTeX + documents. + +'\topmargin' + Space between the top of the TeX page (one inch from the top of the + paper, by default) and the top of the header. The default is + computed based on many other parameters: '\paperheight - 2in - + \headheight - \headsep - \textheight - \footskip', and then divided + by two. + +'\topskip' + Minimum distance between the top of the page body and the baseline + of the first line of text. For the standard clases, the default is + the same as the font size, e.g., '10pt' at '10pt'. + + +File: latex2e.info, Node: Sectioning, Next: Cross references, Prev: Layout, Up: Top + +7 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, e.g., + + \chapter[TOCTITLE]{TITLE} + + In addition to providing the heading TITLE in the main text, the +section title 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 text in these places as in the main text. +To handle this, the sectioning commands have an optional argument +TOCTITLE that, when given, specifies the text for these other places. + + Also, all sectioning commands have '*'-forms that print TITLE as +usual, but do not include a number and do not make an entry in the table +of contents. For instance: + + \section*{Preamble} + + The '\appendix' command changes the way following sectional units are +numbered. The '\appendix' command itself generates no text and does not +affect the numbering of parts. The normal use of this command is +something like + + \chapter{A Chapter} + ... + \appendix + \chapter{The First Appendix} + + The 'secnumdepth' counter controls printing of section numbers. The +setting + + \setcounter{secnumdepth}{LEVEL} + +suppresses heading numbers at any depth > LEVEL, where 'chapter' is +level zero. (*Note \setcounter::.) + + +File: latex2e.info, Node: Cross references, Next: Environments, Prev: Sectioning, Up: Top + +8 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: latex2e.info, Node: \label, Next: \pageref, Up: Cross references + +8.1 '\label' +============ + +Synopsis: + + \label{KEY} + + A '\label' command appearing in ordinary text assigns to KEY the +number of the current sectional unit; one appearing inside a numbered +environment assigns that number to KEY. + + A KEY name can consist of any sequence of letters, digits, or +punctuation characters. Upper and lowercase letters are distinguished. + + 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 or period. Some conventionally-used prefixes: + +'ch' + 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:snark' or +'fig.snark'. + + +File: latex2e.info, Node: \pageref, Next: \ref, Prev: \label, Up: Cross references + +8.2 '\pageref{KEY}' +=================== + +Synopsis: + + \pageref{KEY} + + The '\pageref'{KEY} command produces the page number of the place in +the text where the corresponding '\label'{KEY} command appears. + + +File: latex2e.info, Node: \ref, Prev: \pageref, Up: Cross references + +8.3 '\ref{KEY}' +=============== + +Synopsis: + + \ref{KEY} + + The '\ref' command produces the number of the sectional unit, +equation, footnote, figure, ..., of the corresponding '\label' command +(*note \label::). It does not produce any text, such as the word +'Section' or 'Figure', just the bare number itself. + + +File: latex2e.info, Node: Environments, Next: Line breaking, Prev: Cross references, Up: Top + +9 Environments +************** + +LaTeX provides many environments for marking off certain text. Each +environment begins and ends in the same manner: + + \begin{ENVNAME} + ... + \end{ENVNAME} + +* Menu: + +* abstract:: Produce an abstract. +* array:: Math arrays. +* center:: Centered lines. +* description:: Labelled lists. +* displaymath:: Formulas that appear on their own line. +* document:: Enclose the whole document. +* 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. +* math:: In-line math. +* 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: latex2e.info, Node: abstract, Next: array, Up: Environments + +9.1 'abstract' +============== + +Synopsis: + \begin{abstract} + ... + \end{abstract} + + Environment for producing an abstract, possibly of multiple +paragraphs. + + +File: latex2e.info, Node: array, Next: center, Prev: abstract, Up: Environments + +9.2 'array' +=========== + +Synopsis: + + \begin{array}{TEMPLATE} + COL1 TEXT&COL1 TEXT&COLN}\\ + ... + \end{array} + + Math arrays are produced with the 'array' environment, normally +within an 'equation' environment (*note equation::). It has a single +mandatory TEMPLATE argument describing the number of columns and the +alignment within them. Each column COL is specified by a single letter +that tells how items in that row should be formatted, as follows: + +'c' + centered +'l' + flush left +'r' + flush right + + Column entries are separated by '&'. Column entries may include +other LaTeX commands. Each row of the array is terminated with '\\'. + + In the template, the construct '@{TEXT}' puts TEXT between columns in +each row. + + Here's an example: + + \begin{equation} + \begin{array}{lrc} + left1 & right1 & centered1 \\ + left2 & right2 & centered2 \\ + \end{array} + \end{equation} + + The '\arraycolsep' parameter defines half the width of the space +separating columns; the default is '5pt'. *Note tabular::, for other +parameters which affect formatting in 'array' environments, namely +'\arrayrulewidth' and '\arraystretch'. + + The 'array' environment can only be used in math mode. + + +File: latex2e.info, Node: center, Next: description, Prev: array, Up: Environments + +9.3 'center' +============ + +Synopsis: + + \begin{center} + LINE1 \\ + LINE2 \\ + \end{center} + + The 'center' environment allows you to create a paragraph consisting +of lines that are centered within the left and right margins on the +current page. Each line is terminated with the string '\\'. + +* Menu: + +* \centering:: Declaration form of the 'center' environment. + + +File: latex2e.info, Node: \centering, Up: center + +9.3.1 '\centering' +------------------ + +The '\centering' declaration corresponds to the 'center' environment. +This declaration can be used inside an environment such as 'quote' or in +a 'parbox'. Thus, the text of a figure or table can be centered 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 such as quote) that ends the paragraph unit. + + Here's an example: + + \begin{quote} + \centering + first line \\ + second line \\ + \end{quote} + + +File: latex2e.info, Node: description, Next: displaymath, Prev: center, Up: Environments + +9.4 'description' +================= + +Synopsis: + + \begin{description} + \item [LABEL1] ITEM1 + \item [LABEL2] ITEM2 + ... + \end{description} + + The 'description' environment is used to make labelled lists. Each +LABEL is typeset in bold, flush right. The ITEM text may contain +multiple paragraphs. + + Another variation: since the bold style is applied to the labels, if +you typeset a label in typewriter using '\texttt', you'll get bold +typewriter: '\item[\texttt{bold and typewriter}]'. This may be too +bold, among other issues. To get just typewriter, use '\tt', which +resets all other style variations: '\item[{\tt plain typewriter}]'. + + For details about list spacing, see *note itemize::. + + +File: latex2e.info, Node: displaymath, Next: document, Prev: description, Up: Environments + +9.5 'displaymath' +================= + +Synopsis: + + \begin{displaymath} + MATH + \end{displaymath} + +or + + \[MATH\] + + The 'displaymath' environment ('\[...\]' is a synonym) typesets the +MATH text on its own line, centered by default. The global 'fleqn' +option makes equations flush left; see *note Document class options::. + + No equation number is added to 'displaymath' text; to get an equation +number, use the 'equation' environment (*note equation::). + + +File: latex2e.info, Node: document, Next: enumerate, Prev: displaymath, Up: Environments + +9.6 'document' +============== + +The 'document' environment encloses the body of a document. It is +required in every LaTeX document. *Note Starting & ending::. + + +File: latex2e.info, Node: enumerate, Next: eqnarray, Prev: document, Up: Environments + +9.7 'enumerate' +=============== + +Synopsis: + + \begin{enumerate} + \item ITEM1 + \item ITEM2 + ... + \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, such as 'itemize' +(*note itemize::) and 'description' (*note description::). + + Each item of an enumerated list begins with an '\item' command. +There must be at least one '\item' command within the environment. + + By default, the numbering at each level is done like this: + + 1. 1., 2., ... + 2. (a), (b), ... + 3. i., ii., ... + 4. A., B., ... + + The 'enumerate' environment uses the counters '\enumi' through +'\enumiv' counters (*note Counters::). If the optional argument to +'\item' is given, the counter is not incremented for that item. + + The 'enumerate' environment uses the commands '\labelenumi' through +'\labelenumiv' to produce the default label. So, you can use +'\renewcommand' to change the labels (*note \newcommand & +\renewcommand::). For instance, to have the first level use uppercase +letters: + + \renewcommand{\labelenumi}{\Alph{enumi}} + + +File: latex2e.info, Node: eqnarray, Next: equation, Prev: enumerate, Up: Environments + +9.8 'eqnarray' +============== + +First, a caveat: the 'eqnarray' environment has some infelicities which +cannot be overcome; the article "Avoid eqnarray!" by Lars Madsen +describes them in detail +('http://tug.org/TUGboat/tb33-1/tb103madsen.pdf'). The bottom line is +that it is better to use the 'align' environment (and others) from the +'amsmath' package. + + Nevertheless, here is a description of 'eqnarray': + + \begin{eqnarray} (or 'eqnarray*') + FORMULA1 \\ + FORMULA2 \\ + ... + \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 '&'. + + '\\*' can also be used to separate equations, with its normal meaning +of not allowing a page break at that line. + + An equation number is placed on every line unless that line has a +'\nonumber' command. Alternatively, The '*'-form of the environment +('\begin{eqnarray*} ... \end{eqnarray*}') will omit equation numbering +entirely, while otherwise being the same as 'eqnarray'. + + 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: latex2e.info, Node: equation, Next: figure, Prev: eqnarray, Up: Environments + +9.9 'equation' +============== + +Synopsis: + + \begin{equation} + MATH + \end{equation} + + The 'equation' environment starts a 'displaymath' environment (*note +displaymath::), e.g., centering the MATH text on the page, and also +places an equation number in the right margin. + + +File: latex2e.info, Node: figure, Next: flushleft, Prev: equation, Up: Environments + +9.10 'figure' +============= + + \begin{figure[*]}[PLACEMENT] + FIGBODY + \label{LABEL} + \caption[LOFTITLE]{TEXT} + \end{figure} + + Figures are objects that are not part of the normal text, and are +instead "floated" to a convenient place, such as the top of a page. +Figures will not be split between two pages. + + When typesetting in double-columns, the starred form produces a +full-width figure (across both columns). + + The optional argument '[placement]' determines where LaTeX will try +to place your figure. There are four places where LaTeX can possibly +put a float: + +'t' + (Top)--at the top of a text page. + +'b' + (Bottom)--at the bottom of a text page. However, 'b' is not + allowed for full-width floats ('figure*') with double-column + output. To ameliorate this, use the 'stfloats' or 'dblfloatfix' + package, but see the discussion at caveats in the FAQ: + 'http://www.tex.ac.uk/cgi-bin/texfaq2html?label=2colfloat'. + +'h' + (Here)--at the position in the text where the figure environment + appears. However, this is not allowed by itself; 't' is + automatically added. + + To absolutely force a figure to appear "here", you can + '\usepackage{float}' and use the 'H' specifier which it defines. + For further discussion, see the FAQ entry at + 'http://www.tex.ac.uk/cgi-bin/texfaq2html?label=figurehere'. + +'p' + (Page of floats)--on a separate float page, which is a page + containing no text, only floats. + +'!' + Used in addition to one of the above; for this float only, LaTeX + ignores the restrictions on both the number of floats that can + appear and the relative amounts of float and non-float text on the + page. The '!' specifier does _not_ mean "put the float here"; see + above. + + 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 specifies caption TEXT for the figure. The +caption is numbered by default. If LOFTITLE is present, it is used in +the list of figures instead of TEXT (*note Tables of contents::). + + Parameters relating to fractions of pages occupied by float and +non-float text: + + The maximum fraction of the page allowed to be occuped by floats at + the bottom; default '.3'. + +'\floatpagefraction' + The minimum fraction of a float page that must be occupied by + floats; default '.5'. + +'\textfraction' + Minimum fraction of a page that must be text; if floats take up too + much space to preserve this much text, floats will be moved to a + different page. The default is '.2'. + +'\topfraction' + Maximum fraction at the top of a page that may be occupied before + floats; default '.7'. + + Parameters relating to vertical space around floats: + +'\floatsep' + Space between floats at the top or bottom of a page; default '12pt + plus2pt minus2pt'. + +'\intextsep' + Space above and below a float in the middle of the main text; + default '12pt plus2pt minus2pt' for '10pt' and '11pt' styles, '14pt + plus4pt minus4pt' for '12pt'. + +'\textfloatsep' + Space between the last (first) float at the top (bottom) of a page; + default '20pt plus2pt minus4pt'. + + Parameters relating to the number of floats on a page: + +'\bottomnumber' + Maximum number of floats that can appear at the bottom of a text + page; default 1. + +'\topnumber' + Maximum number of floats that can appear at the top of a text page; + default 2. + +'\totalnumber' + Maximum number of floats that can appear on a text page; default 3. + + The principal TeX FAQ entry relating to floats: +'http://www.tex.ac.uk/cgi-bin/texfaq2html?label=floats'. + + +File: latex2e.info, Node: flushleft, Next: flushright, Prev: figure, Up: Environments + +9.11 'flushleft' +================ + + \begin{flushleft} + LINE1 \\ + LINE2 \\ + ... + \end{flushleft} + + The 'flushleft' environment allows you to create a paragraph +consisting of lines that are flush to the left-hand margin and ragged +right Each line must be terminated with the string '\\'. + +* Menu: + +* \raggedright:: Declaration form of the 'flushleft' environment. + + +File: latex2e.info, Node: \raggedright, Up: flushleft + +9.11.1 '\raggedright' +--------------------- + +The '\raggedright' 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 only 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 that ends the +paragraph unit. + + +File: latex2e.info, Node: flushright, Next: itemize, Prev: flushleft, Up: Environments + +9.12 'flushright' +================= + + \begin{flushright} + LINE1 \\ + LINE2 \\ + ... + \end{flushright} + + The 'flushright' environment allows you to create a paragraph +consisting of lines that are flush to the right-hand margin and ragged +left. Each line must be terminated with the string '\\'. + +* Menu: + +* \raggedleft:: Declaration form of the 'flushright' environment. + + +File: latex2e.info, Node: \raggedleft, Up: flushright + +9.12.1 '\raggedleft' +-------------------- + +The '\raggedleft' 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 only 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 that ends the +paragraph unit. + + +File: latex2e.info, Node: itemize, Next: letter, Prev: flushright, Up: Environments + +9.13 'itemize' +============== + +Synopsis: + + \begin{itemize} + \item ITEM1 + \item ITEM2 + ... + \end{itemize} + + The 'itemize' environment produces an "unordered", "bulleted" list. +Itemizations can be nested within one another, up to four levels deep. +They can also be nested within other paragraph-making environments, such +as 'enumerate' (*note enumerate::). + + Each item of an 'itemize' list begins with an '\item' command. There +must be at least one '\item' command within the environment. + + By default, the marks at each level look like this: + + 1. * (bullet) + 2. -- (bold en-dash) + 3. * (asterisk) + 4. . (centered dot, rendered here as a period) + + The 'itemize' environment uses the commands '\labelitemi' through +'\labelitemiv' to produce the default label. So, you can use +'\renewcommand' to change the labels. For instance, to have the first +level use diamonds: + + \renewcommand{\labelitemi}{$\diamond$} + + The '\leftmargini' through '\leftmarginvi' parameters define the +distance between the left margin of the enclosing environment and the +left margin of the list. By convention, '\leftmargin' is set to the +appropriate '\leftmarginN' when a new level of nesting is entered. + + The defaults vary from '.5em' (highest levels of nesting) to '2.5em' +(first level), and are a bit reduced in two-column mode. This example +greatly reduces the margin space for outermost lists: + + \setlength{\leftmargini}{1.25em} % default 2.5em + + Some parameters that affect list formatting: + +'\itemindent' + Extra indentation before each item in a list; default zero. + +'\labelsep' + Space between the label and text of an item; default '.5em'. + +'\labelwidth' + Width of the label; default '2em', or '1.5em' in two-column mode. + +'\listparindent' + Extra indentation added to second and subsequent paragraphs within + a list item; default '0pt'. + +'\rightmargin' + Horizontal distance between the right margin of the list and the + enclosing environment; default '0pt', except in the 'quote', + 'quotation', and 'verse' environments, where it is set equal to + '\leftmargin'. + + Parameters affecting vertical spacing between list items (rather +loose, by default). + +'\itemsep' + Vertical space between items. The default is '2pt plus1pt + minus1pt' for '10pt' documents, '3pt plus2pt minus1pt' for '11pt', + and '4.5pt plus2pt minus1pt' for '12pt'. + +'\parsep' + Extra vertical space between paragraphs within a list item. + Defaults are the same as '\itemsep'. + +'\topsep' + Vertical space between the first item and the preceding paragraph. + For top-level lists, the default is '8pt plus2pt minus4pt' for + '10pt' documents, '9pt plus3pt minus5pt' for '11pt', and '10pt + plus4pt minus6pt' for '12pt'. These are reduced for nested lists. + +'\partopsep' + Extra space added to '\topsep' when the list environment starts a + paragraph. The default is '2pt plus1pt minus1pt' for '10pt' + documents, '3pt plus1pt minus1pt' for '11pt', and '3pt plus2pt + minus2pt' for '12pt'. + + Especially for lists with short items, it may be desirable to elide +space between items. Here is an example defining an 'itemize*' +environment with no extra spacing between items, or between paragraphs +within a single item ('\parskip' is not list-specific, *note +\parskip::): + + \newenvironment{itemize*}% + {\begin{itemize}% + \setlength{\itemsep}{0pt}% + \setlength{\parsep}{0pt}}% + \setlength{\parskip}{0pt}}% + {\end{itemize}} + + +File: latex2e.info, Node: letter, Next: list, Prev: itemize, Up: Environments + +9.14 'letter' environment: writing letters +========================================== + +This environment is used for creating letters. *Note Letters::. + + +File: latex2e.info, Node: list, Next: math, Prev: letter, Up: Environments + +9.15 '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}{LABELING}{SPACING} + \item ITEM1 + \item ITEM2 + ... + \end{list} + + The mandatory LABELING argument specifies how items should be +labelled (unless the optional argument is supplied to '\item'). This +argument is a piece of text that is inserted in a box to form the label. +It can and usually does contain other LaTeX commands. + + The mandatory SPACING argument contains commands to change the +spacing parameters for the list. This argument will most often be +empty, i.e., '{}', which leaves the default spacing. + + The width used for typesetting the list items is specified by +'\linewidth' (*note Page layout parameters::). + + +File: latex2e.info, Node: math, Next: minipage, Prev: list, Up: Environments + +9.16 'math' +=========== + +Synopsis: + + \begin{math} + MATH + \end{math} + + The 'math' environment inserts the given MATH within the running +text. '\(...\))' and '$...$' are synonyms. *Note Math formulas::. + + +File: latex2e.info, Node: minipage, Next: picture, Prev: math, Up: Environments + +9.17 'minipage' +=============== + + \begin{minipage}[POSITION][HEIGHT][INNER-POS]{WIDTH} + TEXT + \end{minipage} + + The 'minipage' environment typesets its body TEXT in a block that +will not be broken across pages. This is similar to the '\parbox' +command (*note \parbox::), but unlike '\parbox', other paragraph-making +environments can be used inside a minipage. + + The arguments are the same as for '\parbox' (*note \parbox::). + + By default, paragraphs are not indented in the 'minipage' +environment. You can restore indentation with a command such as +'\setlength{\parindent}{1pc}' command. + + 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::). + + However, don't put one minipage inside another if you are using +footnotes; they may wind up at the bottom of the wrong minipage. + + +File: latex2e.info, Node: picture, Next: quotation, Prev: minipage, Up: Environments + +9.18 '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', '0.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 centimeters. You should only change the value of +'\unitlength', using the '\setlength' command, outside of a '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 millimeters and height 200 millimeters, +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 typically omit the optional argument, leaving the origin at the +lower-left corner. If you then want to modify your picture by shifting +everything, you can 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 that +can go in an '\mbox' (*note \mbox::) in the text argument of the '\put' +command. When you do this, the reference point will be the lower left +corner of the box. + + The 'picture' commands are described in the following sections. + +* Menu: + +* \circle:: Draw a circle. +* \makebox (picture):: Draw a box of the specified size. +* \framebox (picture):: Draw a box with a frame around it. +* \dashbox:: Draw a dashed box. +* \frame:: Draw a frame around an object. +* \line:: Draw a straight line. +* \linethickness:: Set the line thickness. +* \thicklines:: A heavier line thickness. +* \thinlines:: The default line thickness. +* \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: latex2e.info, Node: \circle, Next: \makebox (picture), Up: picture + +9.18.1 '\circle' +---------------- + + \circle[*]{DIAMETER} + + The '\circle' command produces a circle with a diameter as close to +the specified one as possible. The '*'-form of the command draws a +solid circle. + + Circles up to 40 pt can be drawn. + + +File: latex2e.info, Node: \makebox (picture), Next: \framebox (picture), Prev: \circle, Up: picture + +9.18.2 '\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: latex2e.info, Node: \framebox (picture), Next: \dashbox, Prev: \makebox (picture), Up: picture + +9.18.3 '\framebox' +------------------ + +Synopsis: + + \framebox(WIDTH,HEIGHT)[POS]{...} + + The '\framebox' command is like '\makebox' (see previous section), +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: latex2e.info, Node: \dashbox, Next: \frame, Prev: \framebox (picture), Up: picture + +9.18.4 '\dashbox' +----------------- + +Draws a box with a dashed line. Synopsis: + + \dashbox{DLEN}(RWIDTH,RHEIGHT)[POS]{TEXT} + + '\dashbox' creates a dashed rectangle around TEXT in a 'picture' +environment. Dashes are DLEN units long, and the rectangle has overall +width RWIDTH and height RHEIGHT. The TEXT is positioned at optional +POS. + + A dashed box looks best when the 'rwidth' and 'rheight' are multiples +of the 'dlen'. + + +File: latex2e.info, Node: \frame, Next: \line, Prev: \dashbox, Up: picture + +9.18.5 '\frame' +--------------- + +Synopsis: + + \frame{TEXT} + + The '\frame' command puts a rectangular frame around TEXT. The +reference point is the bottom left corner of the frame. No extra space +is put between the frame and the object. + + +File: latex2e.info, Node: \line, Next: \linethickness, Prev: \frame, Up: picture + +9.18.6 '\line' +-------------- + +Synopsis: + + \line(XSLOPE,YSLOPE){LENGTH} + + The '\line' command draws a line with the given LENGTH and slope +XSLOPE/YSLOPE. + + Standard LaTeX can only draw lines with SLOPE = x/y, where x and y +have integer values from -6 through 6. For lines of any slope, not to +mention other shapes, see the 'curve2e' and many many other packages on +CTAN. + + +File: latex2e.info, Node: \linethickness, Next: \thicklines, Prev: \line, Up: picture + +9.18.7 '\linethickness' +----------------------- + +The '\linethickness{DIM}' command declares the thickness of horizontal +and vertical lines in a picture environment to be DIM, which must be a +positive length. + + '\linethickness' does not affect the thickness of slanted lines, +circles, or the quarter circles drawn by '\oval'. + + +File: latex2e.info, Node: \thicklines, Next: \thinlines, Prev: \linethickness, Up: picture + +9.18.8 '\thicklines' +-------------------- + +The '\thicklines' command is an alternate line thickness for horizontal +and vertical lines in a picture environment; cf. *note \linethickness:: +and *note \thinlines::. + + +File: latex2e.info, Node: \thinlines, Next: \multiput, Prev: \thicklines, Up: picture + +9.18.9 '\thinlines' +------------------- + +The '\thinlines' command is the default line thickness for horizontal +and vertical lines in a picture environment; cf. *note \linethickness:: +and *note \thicklines::. + + +File: latex2e.info, Node: \multiput, Next: \oval, Prev: \thinlines, Up: picture + +9.18.10 '\multiput' +------------------- + +Synopsis: + \multiput(X,Y)(DELTA_X,DELTA_Y){N}{OBJ} + + The '\multiput' command copies the object OBJ in a regular pattern +across a picture. OBJ is first placed at position (x,y), then at +(x+\delta x,y+\delta y), and so on, N times. + + +File: latex2e.info, Node: \oval, Next: \put, Prev: \multiput, Up: picture + +9.18.11 '\oval' +--------------- + +Synopsis: + + \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 via the +following: + +'t' + selects the top portion; +'b' + selects the bottom portion; +'r' + selects the right portion; +'l' + selects the left portion. + + The "corners" of the oval are made with quarter circles with a +maximum radius of 20pt, so large "ovals" will look more like boxes with +rounded corners. + + +File: latex2e.info, Node: \put, Next: \shortstack, Prev: \oval, Up: picture + +9.18.12 '\put' +-------------- + +'\put(x coord,y coord){ ... }' + + The '\put' command places the item specified by the mandatory +argument at the given coordinates. + + +File: latex2e.info, Node: \shortstack, Next: \vector, Prev: \put, Up: picture + +9.18.13 '\shortstack' +--------------------- + +Synopsis: + + \shortstack[POSITION]{...\\...\\...} + + The '\shortstack' command produces a stack of objects. The valid +positions are: + +'r' + Move the objects to the right of the stack. +'l' + Move the objects to the left of the stack +'c' + Move the objects to the centre of the stack (default) + + Objects are separated with '\\'. + + +File: latex2e.info, Node: \vector, Prev: \shortstack, Up: picture + +9.18.14 '\vector' +----------------- + +Synopsis: + + \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: latex2e.info, Node: quotation, Next: quote, Prev: picture, Up: Environments + +9.19 'quotation' +================ + +Synopsis: + + \begin{quotation} + TEXT + \end{quotation} + + The margins of the 'quotation' environment are indented on both the +left and the right. The text is justified at both margins. Leaving a +blank line between text produces a new paragraph. + + Unlike the 'quote' environment, each paragraph is indented normally. + + +File: latex2e.info, Node: quote, Next: tabbing, Prev: quotation, Up: Environments + +9.20 'quote' +============ + +Snyopsis: + + \begin{quote} + TEXT + \end{quote} + + The margins of the 'quote' environment are indented on both the left +and the right. The text is justified at both margins. Leaving a blank +line between text produces a new paragraph. + + Unlike the 'quotation' environment, paragraphs are not indented. + + +File: latex2e.info, Node: tabbing, Next: table, Prev: quote, Up: Environments + +9.21 'tabbing' +============== + +Synopsis: + + \begin{tabbing} + ROW1COL1 \= ROW1COL2 \= ROW1COL3 \= ROW1COL4 \\ + ROW2COL1 \> \> ROW2COL3 \\ + ... + \end{tabbing} + + The 'tabbing' environment provides a way to align text in columns. +It works by setting tab stops and tabbing to them much as was done on 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: + +'\\ (tabbing)' + End a line. + +'\= (tabbing)' + Sets a tab stop at the current position. + +'\> (tabbing)' + Advances to the next tab stop. + +'\<' + Put following text 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, beginning tabbed line if necessary. + +'\-' + Moves the left margin of the next and all the following commands + one tab stop to the left, beginning tabbed line if necessary. + +'\' (tabbing)' + 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. + +'\` (tabbing)' + 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. + +'\a (tabbing)' + In a 'tabbing' environment, the commands '\=', '\'' and '\`' do not + produce accents as usual (*note Accents::). Instead, the commands + '\a=', '\a'' and '\a`' are used. + +'\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. + +'\poptabs' + Restores the tab stop positions saved by the last '\pushtabs'. + +'\pushtabs' + Saves all current tab stop positions. Useful for temporarily + changing tab stop positions in the middle of a 'tabbing' + environment. + +'\tabbingsep' + Distance to left of tab stop moved by '\''. + + 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: latex2e.info, Node: table, Next: tabular, Prev: tabbing, Up: Environments + +9.22 'table' +============ + +Synopsis: + + \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; these are the same as that used with the 'figure' environment, +and described there (*note figure::). + + 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: latex2e.info, Node: tabular, Next: thebibliography, Prev: table, Up: Environments + +9.23 'tabular' +============== + +Synopsis: + + \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. + + '\\' must be used to specify the end of each row of the table, except +for the last, where it is optional--unless an '\hline' command (to put a +rule below the table) follows. + + 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 centered 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 before the adjacent item must be included in + TEXT. + + To insert commands that are automatically executed before a + given column, you have to load the 'array' package and use the + '>{...}' specifier. + + 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 a positive + integer and COLS is any list of column-specifiers, which may + contain another '*-expression'. + + Parameters that control formatting: + +'\arrayrulewidth' + Thickness of the rule created by '|', '\hline', and '\vline' in the + 'tabular' and 'array' environments; the default is '.4pt'. + +'\arraystretch' + Scaling of spacing between rows in the 'tabular' and 'array' + environments; default is '1', for no scaling. + +'\doublerulesep' + Horizontal distance between the vertical rules produced by '||' in + the 'tabular' and 'array' environments; default is '2pt'. + +'\tabcolsep' + Half the width of the space between columns; default is '6pt'. + + The following commands can be used inside a 'tabular' environment: + +* Menu: + +* \multicolumn:: Make an item spanning several columns. +* \cline:: Draw a horizontal line spanning some columns. +* \hline:: Draw a horizontal line spanning all columns. +* \vline:: Draw a vertical line. + + +File: latex2e.info, Node: \multicolumn, Next: \cline, Up: tabular + +9.23.1 '\multicolumn' +--------------------- + +Synopsis: + \multicolumn{COLS}{POS}{TEXT} + + The '\multicolumn' command makes 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 centered, 'l' for flushleft, 'r' for flushright. The +third mandatory argument, TEXT, specifies what text to put in the entry. + + Here's an example showing two columns separated by an en-dash; +'\multicolumn' is used for the heading: + + \begin{tabular}{r@{--}l} + \multicolumn{2}{c}{\bf Unicode}\cr + 0x80&0x7FF \cr + 0x800&0xFFFF \cr + 0x10000&0x1FFFF \cr + \end{tabular} + + +File: latex2e.info, Node: \cline, Next: \hline, Prev: \multicolumn, Up: tabular + +9.23.2 '\cline' +--------------- + +Synopsis: + + \cline{I-J} + + The '\cline' command draws horizontal lines across the columns +specified, beginning in column I and ending in column J, which are +specified in the mandatory argument. + + +File: latex2e.info, Node: \hline, Next: \vline, Prev: \cline, Up: tabular + +9.23.3 '\hline' +--------------- + +The '\hline' command draws a horizontal line the width of the enclosing +'tabular' or 'array' environment. It's most commonly used to draw a +line at the top, bottom, and between the rows of a table. + + +File: latex2e.info, Node: \vline, Prev: \hline, Up: tabular + +9.23.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: latex2e.info, Node: thebibliography, Next: theorem, Prev: tabular, Up: Environments + +9.24 'thebibliography' +====================== + +Synopsis: + + \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". You can change +the label (in the standard classes) by redefining the command +'\refname'. For instance, this eliminates it entirely: + + \renewcommand{\refname}{} + + The mandatory WIDEST-LABEL argument is text that, when typeset, is as +wide as the widest item label produced by the '\bibitem' commands. It +is typically given as '9' for bibliographies with less than 10 +references, '99' for ones with less than 100, etc. + +* 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: latex2e.info, Node: \bibitem, Next: \cite, Up: thebibliography + +9.24.1 '\bibitem' +----------------- + +Synopsis: + \bibitem[LABEL]{CITE_KEY} + + The '\bibitem' command generates an entry labelled by LABEL. If the +LABEL argument is missing, a number is automatically generated 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 to the '.aux' file containing the item's +CITE_KEY and label. When the '.aux' file is read by the +'\begin{document}' command, the item's 'label' is associated with +'cite_key', causing references to CITE_KEY with a '\cite' command (see +next section) to produce the associated label. + + +File: latex2e.info, Node: \cite, Next: \nocite, Prev: \bibitem, Up: thebibliography + +9.24.2 '\cite' +-------------- + +Synopsis: + + \cite[SUBCITE]{KEYS + + The KEYS argument is a list of one or more citation keys, separated +by commas. This command generates an in-text citation to the references +associated with KEYS by entries in the '.aux' file. + + The text of the optional SUBCITE argument appears after the citation. +For example, '\cite[p.~314]{knuth}' might produce '[Knuth, p. 314]'. + + +File: latex2e.info, Node: \nocite, Next: Using BibTeX, Prev: \cite, Up: thebibliography + +9.24.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: latex2e.info, Node: Using BibTeX, Prev: \nocite, Up: thebibliography + +9.24.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 +(*note thebibliography::). Instead, you include the lines + + \bibliographystyle{BIBSTYLE} + \bibliography{BIBFILE1,BIBFILE2} + + The '\bibliographystyle' command does not produce any output of its +own. Rather, it defines the style in which the bibliography will be +produced: BIBSTYLE refers to a file BIBSTYLE'.bst', which defines how +your citations will look. The standard STYLE names 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. See +'http://www.ctan.org/tex-archive/biblio/bibtex/contrib'. + + The '\bibliography' command is what actually produces the +bibliography. The argument to '\bibliography' refers to files named +'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: latex2e.info, Node: theorem, Next: titlepage, Prev: thebibliography, Up: Environments + +9.25 'theorem' +============== + +Synopsis: + + \begin{theorem} + THEOREM-TEXT + \end{theorem} + + The 'theorem' environment produces "Theorem N" in boldface followed +by THEOREM-TEXT, where the numbering possibilities for N are described +under '\newtheorem' (*note \newtheorem::). + + +File: latex2e.info, Node: titlepage, Next: verbatim, Prev: theorem, Up: Environments + +9.26 'titlepage' +================ + +Synopsis: + + \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 may be useful on title pages (*note \today::). + + You can use the '\maketitle' command (*note \maketitle::) to produce +a standard title page without a 'titlepage' environment. + + +File: latex2e.info, Node: verbatim, Next: verse, Prev: titlepage, Up: Environments + +9.27 'verbatim' +=============== + +Synopsis: + + \begin{verbatim} + LITERAL-TEXT + \end{verbatim} + + The 'verbatim' environment is a paragraph-making environment in which +LaTeX produces exactly what you type in; for instance the '\' character +produces a printed '\'. It turns LaTeX into a typewriter with carriage +returns and blanks having the same effect that they would on a +typewriter. + + The 'verbatim' uses a monospaced typewriter-like font ('\tt'). + +* Menu: + +* \verb:: The macro form of the 'verbatim' environment. + + +File: latex2e.info, Node: \verb, Up: verbatim + +9.27.1 '\verb' +-------------- + +Synopsis: + + \verbCHARLITERAL-TEXTCHAR + \verb*CHARLITERAL-TEXTCHAR + + The '\verb' command typesets LITERAL-TEXT as it is input, including +special characters and spaces, using the typewriter ('\tt') font. No +spaces are allowed between '\verb' or '\verb*' and the delimiter CHAR, +which begins and ends the verbatim text. The delimiter must not appear +in LITERAL-TEXT. + + The '*'-form differs only in that spaces are printed with a "visible +space" character. + + +File: latex2e.info, Node: verse, Prev: verbatim, Up: Environments + +9.28 'verse' +============ + +Synopsis: + + \begin{verse} + LINE1 \\ + LINE2 \\ + ... + \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, paragraphs are +not indented, and the text is not justified. Separate the lines of each +stanza with '\\', and use one or more blank lines to separate the +stanzas. + + +File: latex2e.info, Node: Line breaking, Next: Page breaking, Prev: Environments, Up: Top + +10 Line breaking +**************** + +The first thing LaTeX does when processing ordinary text is to translate +your input file into a sequence of glyphs and spaces. To produce a +printed document, this sequence must be broken into lines (and these +lines must be broken into pages). + + LaTeX usually does the line (and page) breaking for you, but in some +environments, you do the line breaking yourself with the '\\' command, +and you can always manually force breaks. + +* Menu: + +* \\:: Start a new line. +* \obeycr & \restorecr:: Make each input line start a new output line. +* \newline:: Break the line +* \- (hyphenation):: Insert explicit hyphenation. +* \fussy:: Be fussy about line breaking. +* \sloppy:: Be sloppy about line breaking. +* \hyphenation:: Tell LaTeX how to hyphenate a word. +* \linebreak & \nolinebreak:: Forcing & avoiding line breaks. + + +File: latex2e.info, Node: \\, Next: \obeycr & \restorecr, Up: Line breaking + +10.1 '\\'[*][MORESPACE] +======================= + +The '\\' command tells LaTeX to start a new line. It has an optional +argument, MORESPACE, 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: latex2e.info, Node: \obeycr & \restorecr, Next: \newline, Prev: \\, Up: Line breaking + +10.2 '\obeycr' & '\restorecr' +============================= + +The '\obeycr' command makes a return in the input file ('^^M', +internally) the same as '\\' (followed by '\relax'). So each new line +in the input will also be a new line in the output. + + '\restorecr' restores normal line-breaking behavior. + + +File: latex2e.info, Node: \newline, Next: \- (hyphenation), Prev: \obeycr & \restorecr, Up: Line breaking + +10.3 '\newline' +=============== + +The '\newline' command breaks the line at the present point, with no +stretching of the text before it. It can only be used in paragraph +mode. + + +File: latex2e.info, Node: \- (hyphenation), Next: \fussy, Prev: \newline, Up: Line breaking + +10.4 '\-' (discretionary hyphen) +================================ + +The '\-' command tells LaTeX that it may hyphenate the word at that +point. LaTeX is very good at hyphenating, and it will usually find most +of the correct hyphenation points, and almost never use an incorrect +one. The '\-' command is used for the exceptional cases. + + 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: latex2e.info, Node: \fussy, Next: \sloppy, Prev: \- (hyphenation), Up: Line breaking + +10.5 '\fussy' +============= + +The declaration '\fussy' (which is the default) makes TeX picky about +line breaking. This usually avoids too much space between words, at the +cost of an occasional overfull box. + + This command cancels the effect of a previous '\sloppy' command +(*note \sloppy::. + + +File: latex2e.info, Node: \sloppy, Next: \hyphenation, Prev: \fussy, Up: Line breaking + +10.6 '\sloppy' +============== + +The declaration '\sloppy' makes TeX less fussy about line breaking. +This will avoid overfull boxes, at the cost of loose interword spacing. + + Lasts until a '\fussy' command is issued (*note \fussy::). + + +File: latex2e.info, Node: \hyphenation, Next: \linebreak & \nolinebreak, Prev: \sloppy, Up: Line breaking + +10.7 '\hyphenation' +=================== + +Synopsis: + + \hyphenation{WORD-ONE WORD-TWO} + + The '\hyphenation' command declares allowed hyphenation points with a +'-' character in the given words. The words are separated by spaces. +TeX will only hyphenate if the word matches exactly, no inflections are +tried. Multiple '\hyphenation' commands accumulate. Some examples (the +default TeX hyphenation patterns misses the hyphenations in these +words): + + \hyphenation{ap-pen-dix col-umns data-base data-bases} + + +File: latex2e.info, Node: \linebreak & \nolinebreak, Prev: \hyphenation, Up: Line breaking + +10.8 '\linebreak' & '\nolinebreak' +================================== + +Synopses: + + \linebreak[PRIORITY] + \nolinebreak[PRIORITY] + + By default, the '\linebreak' ('\nolinebreak') command forces +(prevents) a line break at the current position. For '\linebreak', the +spaces in the line are stretched out so that it extends to the right +margin as usual. + + With the optional argument PRIORITY, you can convert the command from +a demand to a request. The PRIORITY must be a number from 0 to 4. The +higher the number, the more insistent the request. + + +File: latex2e.info, Node: Page breaking, Next: Footnotes, Prev: Line breaking, Up: Top + +11 Page breaking +**************** + +LaTeX starts new pages asynchronously, when enough material has +accumulated to fill up a page. Usually this happens automatically, but +sometimes you may want to influence the breaks. + +* Menu: + +* \cleardoublepage:: Start a new right-hand page. +* \clearpage:: Start a new page. +* \newpage:: Start a new page. +* \enlargethispage:: Enlarge the current page a bit. +* \pagebreak & \nopagebreak:: Forcing & avoiding page breaks. + + +File: latex2e.info, Node: \cleardoublepage, Next: \clearpage, Up: Page breaking + +11.1 '\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: latex2e.info, Node: \clearpage, Next: \newpage, Prev: \cleardoublepage, Up: Page breaking + +11.2 '\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: latex2e.info, Node: \newpage, Next: \enlargethispage, Prev: \clearpage, Up: Page breaking + +11.3 '\newpage' +=============== + +The '\newpage' command ends the current page, but does not clear floats +(see '\clearpage' above). + + +File: latex2e.info, Node: \enlargethispage, Next: \pagebreak & \nopagebreak, Prev: \newpage, Up: Page breaking + +11.4 '\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: latex2e.info, Node: \pagebreak & \nopagebreak, Prev: \enlargethispage, Up: Page breaking + +11.5 '\pagebreak' & '\nopagebreak' +================================== + +Synopses: + + \pagebreak[PRIORITY] + \nopagebreak[PRIORITY] + + By default, the '\pagebreak' ('\nopagebreak') command forces +(prevents) a page break at the current position. With '\pagebreak', the +vertical space on the page is stretched out where possible so that it +extends to the normal bottom margin. + + With the optional argument PRIORITY, 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: latex2e.info, Node: Footnotes, Next: Definitions, Prev: Page breaking, Up: Top + +12 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. + +* Menu: + +* \footnote:: Insert a footnote. +* \footnotemark:: Insert footnote mark only. +* \footnotetext:: Insert footnote text only. +* Symbolic footnotes:: Using symbols instead of numbers for footnotes. +* Footnote parameters:: Parameters for footnote formatting. + + +File: latex2e.info, Node: \footnote, Next: \footnotemark, Up: Footnotes + +12.1 '\footnote' +================ + +Synopsis: + + \footnote[NUMBER]{TEXT} + + The '\footnote' command places the numbered footnote TEXT at the +bottom of the current page. The optional argument NUMBER changes 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. (See following sections.) + + +File: latex2e.info, Node: \footnotemark, Next: \footnotetext, Prev: \footnote, Up: Footnotes + +12.2 '\footnotemark' +==================== + +With no optional argument, the '\footnotemark' command puts the current +footnote number in the text. This command can be used in inner +paragraph mode. You give the text of the footnote separately, with the +'\footnotetext' command. + + This command can be used to produce several consecutive footnote +markers referring to the same footnote with + + \footnotemark[\value{footnote}] + +after the first '\footnote' command. + + +File: latex2e.info, Node: \footnotetext, Next: Symbolic footnotes, Prev: \footnotemark, Up: Footnotes + +12.3 '\footnotetext' +==================== + +Synopsis: + + \footnotetext[NUMBER]{TEXT} + + The '\footnotetext' command places TEXT at the bottom of the page as +a footnote. This command can come anywhere after the '\footnotemark' +command. The '\footnotetext' command must appear in outer paragraph +mode. + + The optional argument NUMBER changes the default footnote number. + + +File: latex2e.info, Node: Symbolic footnotes, Next: Footnote parameters, Prev: \footnotetext, Up: Footnotes + +12.4 Symbolic footnotes +======================= + +If you want to use symbols for footnotes, rather than increasing +numbers, redefine '\thefootnote' like this: + + \renewcommand{\thefootnote}{\fnsymbol{footnote}} + + The '\fnsymbol' command produces a predefined series of symbols +(*note \alph \Alph \arabic \roman \Roman \fnsymbol::). If you want to +use a different symbol as your footnote mark, you'll need to also +redefine '\@fnsymbol'. + + +File: latex2e.info, Node: Footnote parameters, Prev: Symbolic footnotes, Up: Footnotes + +12.5 Footnote parameters +======================== + +'\footnoterule' + Produces the rule separating the main text on a page from the + page's footnotes. Default dimensions: '0.4pt' thick (or wide), and + '0.4\columnwidth' long in the standard document classes (except + slides, where it does not appear). + +'\footnotesep' + The height of the strut placed at the beginning of the footnote. + By default, this is set to the normal strut for '\footnotesize' + fonts (*note Font sizes::), therefore there is no extra space + between footnotes. This is '6.65pt' for '10pt', '7.7pt' for + '11pt', and '8.4pt' for '12pt'. + + +File: latex2e.info, Node: Definitions, Next: Counters, Prev: Footnotes, Up: Top + +13 Definitions +************** + +LaTeX has support for making new commands of many different kinds. + +* Menu: + +* \newcommand & \renewcommand:: (Re)define a new command. +* \newcounter:: Define a new counter. +* \newlength:: Define a new length. +* \newsavebox:: Define a new box. +* \newenvironment & \renewenvironment:: Define a new environment. +* \newtheorem:: Define a new theorem-like environment. +* \newfont:: Define a new font name. +* \protect:: Using tricky commands. + + +File: latex2e.info, Node: \newcommand & \renewcommand, Next: \newcounter, Up: Definitions + +13.1 '\newcommand' & '\renewcommand' +==================================== + +'\newcommand' and '\renewcommand' define and redefine a command, +respectively. Synopses: + + \newcommand{CMD}[NARGS]{DEFN} + \renewcommand{CMD}[NARGS]{DEFN} + \newcommand{CMD}[NARGS][DEFAULT]{DEFN} + \renewcommand{CMD}[NARGS][DEFAULT]{DEFN} + +CMD + The command name beginning with '\'. For '\newcommand', it must + not be already defined and must not begin with '\end'; for + '\renewcommand', it must already be defined. + +NARGS + An optional integer from 1 to 9 specifying the number of arguments + that the command will take. The default is for the command to have + no arguments. + +DEFAULT + If this optional parameter is present, it means that the command's + first argument is optional. When the new command is called, the + default value of the optional argument (i.e., if it is not + specified in the call) is the string 'def'. + +DEFN + The text to be substituted for every occurrence of 'cmd'; a + construct of the form '#N' in DEFN is replaced by the text of the + Nth argument. + + +File: latex2e.info, Node: \newcounter, Next: \newlength, Prev: \newcommand & \renewcommand, Up: Definitions + +13.2 '\newcounter' +================== + +Synopsis: + + \newcounter{CNT}[COUNTERNAME] + + The '\newcounter' command defines a new counter named CNT. The new +counter is initialized to zero. + + Given the optional argument '[COUNTERNAME]', CNT will be reset +whenever COUNTERNAME is incremented. + + *Note Counters::, for more information about counters. + + +File: latex2e.info, Node: \newlength, Next: \newsavebox, Prev: \newcounter, Up: Definitions + +13.3 '\newlength' +================= + +Synopsis: + + \newlength{\ARG} + + The '\newlength' command defines the mandatory argument as a 'length' +command with a value of '0in'. The argument must be a control sequence, +as in '\newlength{\foo}'. An error occurs if '\foo' is already defined. + + *Note Lengths::, for how to set the new length to a nonzero value, +and for more information about lengths in general. + + +File: latex2e.info, Node: \newsavebox, Next: \newenvironment & \renewenvironment, Prev: \newlength, Up: Definitions + +13.4 '\newsavebox' +================== + +Synopsis: + + \newsavebox{CMD} + + Defines '\CMD', which must be a command name not already defined, to +refer to a new bin for storing boxes. + + +File: latex2e.info, Node: \newenvironment & \renewenvironment, Next: \newtheorem, Prev: \newsavebox, Up: Definitions + +13.5 '\newenvironment' & '\renewenvironment' +============================================ + +Synopses: + + \newenvironment{ENV}[NARGS]{BEGDEF}{ENDDEF} + \newenvironment{ENV}[NARGS][DEFAULT]{BEGDEF}{ENDDEF} + \renewenvironment{ENV}[NARGS]{BEGDEF}{ENDDEF} + + These commands define or redefine an environment ENV, that is, +'\begin{ENV} ... \end{ENV}'. + +ENV + The name of the environment. For '\newenvironment', ENV must not + be an existing environment, and the command '\ENV' must be + undefined. For '\renewenvironment', ENV must be the name of an + existing environment. + +NARGS + 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 expanded at every occurrence of '\begin{ENV}'; a construct + of the form '#N' in BEGDEF is replaced by the text of the Nth + argument. + +ENDDEF + The text expanded at every occurrence of '\end{ENV}'. It may not + contain any argument parameters. + + +File: latex2e.info, Node: \newtheorem, Next: \newfont, Prev: \newenvironment & \renewenvironment, Up: Definitions + +13.6 '\newtheorem' +================== + + \newtheorem{NEWENV}{LABEL}[WITHIN] + \newtheorem{NEWENV}[NUMBERED_LIKE]{LABEL} + + This command defines a theorem-like environment. Arguments: + +NEWENV + The name of the environment to be defined; must not be the name of + an existing environment or otherwise defined. + +LABEL + The text printed at the beginning of the environment, before the + number. For example, 'Theorem'. + +NUMBERED_LIKE + (Optional.) The name of an already defined theorem-like + environment; the new environment will be numbered just like + NUMBERED_LIKE. + +WITHIN + (Optional.) The name of an already defined counter, a sectional + unit. The new theorem counter will be reset at the same time as + the WITHIN counter. + + At most one of NUMBERED_LIKE and WITHIN can be specified, not both. + + +File: latex2e.info, Node: \newfont, Next: \protect, Prev: \newtheorem, Up: Definitions + +13.7 '\newfont' +=============== + +Synopsis: + + \newfont{CMD}{FONTNAME} + + Defines a control sequence '\CMD', which must not already be defined, +to make FONTNAME be the current font. The file looked for on the system +is named 'FONTNAME.tfm'. + + This is a low-level command for setting up to use an individual font. +More commonly, fonts are defined in families through '.fd' files. + + +File: latex2e.info, Node: \protect, Prev: \newfont, Up: Definitions + +13.8 '\protect' +=============== + +Footnotes, line breaks, any command that has an optional argument, and +many more are so-called "fragile" commands. When a fragile command is +used in certain contexts, called "moving arguments", it must be preceded +by '\protect'. In addition, any fragile commands within the arguments +must have their own '\protect'. + + Some examples of moving arguments are '\caption' (*note figure::), +'\thanks' (*note \maketitle::), and expressions in 'tabular' and 'array' +environments (*note tabular::). + + Commands which are not fragile are called "robust". They must not be +preceded by '\protect'. + + See also: + +'http://www-h.eng.cam.ac.uk/help/tpl/textprocessing/teTeX/latex/latex2e-html/fragile.html' +'http://www.tex.ac.uk/cgi-bin/texfaq2html?label=protect' + + +File: latex2e.info, Node: Counters, Next: Lengths, Prev: Definitions, Up: Top + +14 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: + +* \alph \Alph \arabic \roman \Roman \fnsymbol:: Print value of a counter. +* \usecounter:: Use a specified counter in a list environment. +* \value:: Use the value of a counter in an expression. +* \setcounter:: Set the value of a counter. +* \addtocounter:: Add a quantity to a counter. +* \refstepcounter:: Add to counter, resetting subsidiary counters. +* \stepcounter:: Add to counter, resetting subsidiary counters. +* \day \month \year:: Numeric date values. + + +File: latex2e.info, Node: \alph \Alph \arabic \roman \Roman \fnsymbol, Next: \usecounter, Up: Counters + +14.1 '\alph \Alph \arabic \roman \Roman \fnsymbol': Printing counters +===================================================================== + +All of these commands take a single counter as an argument, for +instance, '\alph{enumi}'. + +'\alph' + prints COUNTER using lowercase letters: 'a', 'b', ... + +'\Alph' + uses uppercase letters: 'A', 'B', ... + +'\arabic' + uses Arabic numbers: '1', '2', ... + +'\roman' + uses lowercase roman numerals: 'i', 'ii', ... + +'\roman' + uses uppercase roman numerals: 'I', 'II', ... + +'\fnsymbol' + prints the value of COUNTER in a specific sequence of nine symbols + (conventionally used for labeling footnotes). The value of COUNTER + must be between 1 and 9, inclusive. + + The symbols mostly aren't supported in Info, but here are the + names: + asterix(*) dagger ddagger section-sign paragraph-sign parallel + double-asterix(**) double-dagger double-ddagger + + +File: latex2e.info, Node: \usecounter, Next: \value, Prev: \alph \Alph \arabic \roman \Roman \fnsymbol, Up: Counters + +14.2 '\usecounter{COUNTER}' +=========================== + +Synopsis: + + \usecounter{COUNTER} + + The '\usecounter' command is used in the second argument of the +'list' environment to specify COUNTER to be used to number the list +items. + + +File: latex2e.info, Node: \value, Next: \setcounter, Prev: \usecounter, Up: Counters + +14.3 '\value{COUNTER}' +====================== + +Synopsis: + + \value{COUNTER} + + The '\value' command produces the value of COUNTER. It can be used +anywhere LaTeX expects a number, for example: + + \setcounter{myctr}{3} + \addtocounter{myctr}{1} + \hspace{\value{myctr}\parindent} + + +File: latex2e.info, Node: \setcounter, Next: \addtocounter, Prev: \value, Up: Counters + +14.4 '\setcounter{COUNTER}{VALUE}' +================================== + +Synopsis: + + \setcounter{\COUNTER}{VALUE} + + The '\setcounter' command sets the value of \COUNTER to the VALUE +argument. + + +File: latex2e.info, Node: \addtocounter, Next: \refstepcounter, Prev: \setcounter, Up: Counters + +14.5 '\addtocounter{COUNTER}{VALUE}' +==================================== + +The '\addtocounter' command increments COUNTER by the amount specified +by the VALUE argument, which may be negative. + + +File: latex2e.info, Node: \refstepcounter, Next: \stepcounter, Prev: \addtocounter, Up: Counters + +14.6 '\refstepcounter{COUNTER}' +=============================== + +The '\refstepcounter' command works in the same way as '\stepcounter' +*Note \stepcounter::, except it also defines the current '\ref' value to +be the result of '\thecounter'. + + +File: latex2e.info, Node: \stepcounter, Next: \day \month \year, Prev: \refstepcounter, Up: Counters + +14.7 '\stepcounter{COUNTER}' +============================ + +The '\stepcounter' command adds one to COUNTER and resets all subsidiary +counters. + + +File: latex2e.info, Node: \day \month \year, Prev: \stepcounter, Up: Counters + +14.8 '\day \month \year': Predefined counters +============================================= + +LaTeX defines counters for the day of the month ('\day', 1-31), month of +the year ('\month', 1-12), and year ('\year', Common Era). When TeX +starts up, they are set to the current values on the system where TeX is +running. They are not updated as the job progresses. + + The related command '\today' produces a string representing the +current day (*note \today::). + + +File: latex2e.info, Node: Lengths, Next: Making paragraphs, Prev: Counters, Up: Top + +15 Lengths +********** + +A 'length' is a measure of distance. Many LaTeX commands take a length +as an argument. + +* Menu: + +* \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: latex2e.info, Node: \setlength, Next: \addtolength, Up: Lengths + +15.1 '\setlength{\LEN}{VALUE}' +============================== + +The '\setlength' sets the value of \LEN to the VALUE argument, which can +be expressed in any units that LaTeX understands, i.e., inches ('in'), +millimeters ('mm'), points ('pt'), big points ('bp', etc. + + +File: latex2e.info, Node: \addtolength, Next: \settodepth, Prev: \setlength, Up: Lengths + +15.2 \addtolength{\LEN}{AMOUNT} +=============================== + +The '\addtolength' command increments a "length command" \LEN by the +amount specified in the AMOUNT argument, which may be negative. + + +File: latex2e.info, Node: \settodepth, Next: \settoheight, Prev: \addtolength, Up: Lengths + +15.3 '\settodepth' +================== + +'\settodepth{\gnat}{text}' + + The '\settodepth' command sets the value of a 'length' command equal +to the depth of the 'text' argument. + + +File: latex2e.info, Node: \settoheight, Next: \settowidth, Prev: \settodepth, Up: Lengths + +15.4 '\settoheight' +=================== + +'\settoheight{\gnat}{text}' + + The '\settoheight' command sets the value of a 'length' command equal +to the height of the 'text' argument. + + +File: latex2e.info, Node: \settowidth, Next: Predefined lengths, Prev: \settoheight, Up: Lengths + +15.5 '\settowidth{\LEN}{TEXT}' +============================== + +The '\settowidth' command sets the value of the command \LEN to the +width of the TEXT argument. + + +File: latex2e.info, Node: Predefined lengths, Prev: \settowidth, Up: Lengths + +15.6 Predefined lengths +======================= + +'\width' + + '\height' + + '\depth' + + '\totalheight' + + These length parameters can be used in the arguments of the +box-making commands (*note 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: latex2e.info, Node: Making paragraphs, Next: Math formulas, Prev: Lengths, Up: Top + +16 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. +* \parskip:: Space added before paragraphs. +* Marginal notes:: Putting remarks in the margin. + + +File: latex2e.info, Node: \indent, Next: \noindent, Up: Making paragraphs + +16.1 '\indent' +============== + +'\indent' produces a horizontal space whose width equals the width of +the '\parindent' length, the normal paragraph indentation. It is used +to add paragraph indentation where it would otherwise be suppressed. + + The default value for '\parindent' is '1em' in two-column mode, +otherwise '15pt' for '10pt' documents, '17pt' for '11pt', and '1.5em' +for '12pt'. + + +File: latex2e.info, Node: \noindent, Next: \parskip, Prev: \indent, Up: Making paragraphs + +16.2 '\noindent' +================ + +When used at the beginning of the paragraph, '\noindent' suppresses any +paragraph indentation. It has no effect when used in the middle of a +paragraph. + + +File: latex2e.info, Node: \parskip, Next: Marginal notes, Prev: \noindent, Up: Making paragraphs + +16.3 '\parskip' +=============== + +'\parskip' is a rubber length defining extra vertical space added before +each paragraph. The default is '0pt plus1pt'. + + +File: latex2e.info, Node: Marginal notes, Prev: \parskip, Up: Making paragraphs + +16.4 Marginal notes +=================== + +Synopsis: + + \marginpar[LEFT]{RIGHT} + + The '\marginpar' command creates a note in the margin. The first +line of the note will have the same baseline 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. + + The command '\reversemarginpar' places subsequent marginal notes in +the opposite (inside) margin. '\normalmarginpar' places them in the +default position. + + 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 there by beginning the node with '\hspace{0pt}'. + + These parameters affect the formatting of the note: + +'\marginparpush' + Minimum vertical space between notes; default '7pt' for '12pt' + documents, '5pt' else. + +'\marginparsep' + Horizontal space between the main text and the note; default '11pt' + for '10pt' documents, '10pt' else. + +'\marginparwidth' + Width of the note itself; default for a one-sided '10pt' document + is '90pt', '83pt' for '11pt', and '68pt' for '12pt'; '17pt' more in + each case for a two-sided document. In two column mode, the + default is '48pt'. + + The standard LaTeX routine for marginal notes does not prevent notes +from falling off the bottom of the page. + + +File: latex2e.info, Node: Math formulas, Next: Modes, Prev: Making paragraphs, Up: Top + +17 Math formulas +**************** + +There are three environments that put LaTeX in math mode: + +'math' + For formulas that appear right in the text. +'displaymath' + For formulas 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 \(...\) + + The '\boldmath' command changes math letters and symbols to be in a +bold font. It is used _outside_ of math mode. Conversely, the +'\unboldmath' command changes math glyphs to be in a normal font; it too +is used _outside_ of math mode. + + The '\displaystyle' declaration forces the size and style of the +formula to be that of 'displaymath', e.g., with limits above and below +summations. For example + $\displaystyle \sum_{n=0}^\infty x_n $ + +* Menu: + +* Subscripts & superscripts:: Also known as exponent or index. +* Math symbols:: Various mathematical squiggles. +* Math functions:: Math function names like sin and exp. +* Math accents:: Accents in math. +* Spacing in math mode:: Thick, medium, thin and negative spaces. +* Math miscellany:: Stuff that doesn't fit anywhere else. + + +File: latex2e.info, Node: Subscripts & superscripts, Next: Math symbols, Up: Math formulas + +17.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: latex2e.info, Node: Math symbols, Next: Math functions, Prev: Subscripts & superscripts, Up: Math formulas + +17.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 pi +symbol (\pi) in your output. + +'\|' + \| + +'\aleph' + \aleph + +'\alpha' + \alpha + +'\amalg' + \amalg (binary operation) + +'\angle' + \angle + +'\approx' + \approx (relation) + +'\ast' + \ast (binary operation) + +'\asymp' + \asymp (relation) + +'\backslash' + \ (delimiter) + +'\beta' + \beta + +'\bigcap' + \bigcap + +'\bigcirc' + \bigcirc (binary operation) + +'\bigcup' + \bigcup + +'\bigodot' + \bigodot + +'\bigoplus' + \bigoplus + +'\bigotimes' + \bigotimes + +'\bigtriangledown' + \bigtriangledown (binary operation) + +'\bigtriangleup' + \bigtriangleup (binary operation) + +'\bigsqcup' + \bigsqcup + +'\biguplus' + \biguplus + +'\bigcap' + \bigvee + +'\bigwedge' + \bigwedge + +'\bot' + \bot + +'\bowtie' + \bowtie (relation) + +'\Box' + (square open box symbol) + +'\bullet' + \bullet (binary operation) + +'\cap' + \cap (binary operation) + +'\cdot' + \cdot (binary operation) + +'\chi' + \chi + +'\circ' + \circ (binary operation) + +'\clubsuit' + \clubsuit + +'\cong' + \cong (relation) + +'\coprod' + \coprod + +'\cup' + \cup (binary operation) + +'\dagger' + \dagger (binary operation) + +'\dashv' + \dashv (relation) + +'\ddagger' + \dagger (binary operation) + +'\Delta' + \Delta + +'\delta' + \delta + +'\Diamond' + bigger \diamond + +'\diamond' + \diamond (binary operation) + +'\diamondsuit' + \diamondsuit + +'\div' + \div (binary operation) + +'\doteq' + \doteq (relation) + +'\downarrow' + \downarrow (delimiter) + +'\Downarrow' + \Downarrow (delimiter) + +'\ell' + \ell + +'\emptyset' + \emptyset + +'\epsilon' + \epsilon + +'\equiv' + \equiv (relation) + +'\eta' + \eta + +'\exists' + \exists + +'\flat' + \flat + +'\forall' + \forall + +'\frown' + \frown (relation) + +'\Gamma' + \Gamma + +'\gamma' + \gamma + +'\ge' + \ge + +'\geq' + \geq (relation) + +'\gets' + \gets + +'\gg' + \gg (relation) + +'\hbar' + \hbar + +'\heartsuit' + \heartsuit + +'\hookleftarrow' + \hookleftarrow + +'\hookrightarrow' + \hookrightarrow + +'\iff' + \iff + +'\Im' + \Im + +'\in' + \in (relation) + +'\infty' + \infty + +'\int' + \int + +'\iota' + \iota + +'\Join' + condensed bowtie symbol (relation) + +'\kappa' + \kappa + +'\Lambda' + \Lambda + +'\lambda' + \lambda + +'\land' + \land + +'\langle' + \langle (delimiter) + +'\lbrace' + \lbrace (delimiter) + +'\lbrack' + \lbrack (delimiter) + +'\lceil' + \lceil (delimiter) + +'\le' + \le + +'\leadsto' + +'\Leftarrow' + \Leftarrow + +'\leftarrow' + \leftarrow + +'\leftharpoondown' + \leftharpoondown + +'\leftharpoonup' + \leftharpoonup + +'\Leftrightarrow' + \Leftrightarrow + +'\leftrightarrow' + \leftrightarrow + +'\leq' + \leq (relation) + +'\lfloor' + \lfloor (delimiter) + +'\lhd' + (left-pointing arrow head) + +'\ll' + \ll (relation) + +'\lnot' + \lnot + +'\longleftarrow' + \longleftarrow + +'\longleftrightarrow' + \longleftrightarrow + +'\longmapsto' + \longmapsto + +'\longrightarrow' + \longrightarrow + +'\lor' + \lor + +'\mapsto' + \mapsto + +'\mho' + +'\mid' + \mid (relation) + +'\models' + \models (relation) + +'\mp' + \mp (binary operation) + +'\mu' + \mu + +'\nabla' + \nabla + +'\natural' + \natural + +'\ne' + \ne + +'\nearrow' + \nearrow + +'\neg' + \neg + +'\neq' + \neq (relation) + +'\ni' + \ni (relation) + +'\not' + Overstrike a following operator with a /, as in \not=. + +'\notin' + \ni + +'\nu' + \nu + +'\nwarrow' + \nwarrow + +'\odot' + \odot (binary operation) + +'\oint' + \oint + +'\Omega' + \Omega + +'\omega' + \omega + +'\ominus' + \ominus (binary operation) + +'\oplus' + \oplus (binary operation) + +'\oslash' + \oslash (binary operation) + +'\otimes' + \otimes (binary operation) + +'\owns' + \owns + +'\parallel' + \parallel (relation) + +'\partial' + \partial + +'\perp' + \perp (relation) + +'\phi' + \phi + +'\Pi' + \Pi + +'\pi' + \pi + +'\pm' + \pm (binary operation) + +'\prec' + \prec (relation) + +'\preceq' + \preceq (relation) + +'\prime' + \prime + +'\prod' + \prod + +'\propto' + \propto (relation) + +'\Psi' + \Psi + +'\psi' + \psi + +'\rangle' + \rangle (delimiter) + +'\rbrace' + \rbrace (delimiter) + +'\rbrack' + \rbrack (delimiter) + +'\rceil' + \rceil (delimiter) + +'\Re' + \Re + +'\rfloor' + \rfloor + +'\rhd' + (binary operation) + +'\rho' + \rho + +'\Rightarrow' + \Rightarrow + +'\rightarrow' + \rightarrow + +'\rightharpoondown' + \rightharpoondown + +'\rightharpoonup' + \rightharpoonup + +'\rightleftharpoons' + \rightleftharpoons + +'\searrow' + \searrow + +'\setminus' + \setminus (binary operation) + +'\sharp' + \sharp + +'\Sigma' + \Sigma + +'\sigma' + \sigma + +'\sim' + \sim (relation) + +'\simeq' + \simeq (relation) + +'\smallint' + \smallint + +'\smile' + \smile (relation) + +'\spadesuit' + \spadesuit + +'\sqcap' + \sqcap (binary operation) + +'\sqcup' + \sqcup (binary operation) + +'\sqsubset' + (relation) + +'\sqsubseteq' + \sqsubseteq (relation) + +'\sqsupset' + (relation) + +'\sqsupseteq' + \sqsupseteq (relation) + +'\star' + \star (binary operation) + +'\subset' + \subset (relation) + +'\subseteq' + \subseteq (relation) + +'\succ' + \succ (relation) + +'\succeq' + \succeq (relation) + +'\sum' + \sum + +'\supset' + \supset (relation) + +'\supseteq' + \supseteq (relation) + +'\surd' + \surd + +'\swarrow' + \swarrow + +'\tau' + \tau + +'\theta' + \theta + +'\times' + \times (binary operation) + +'\to' + \to + +'\top' + \top + +'\triangle' + \triangle + +'\triangleleft' + \triangleleft (binary operation) + +'\triangleright' + \triangleright (binary operation) + +'\unlhd' + left-pointing arrowhead with line under (binary operation) + +'\unrhd' + right-pointing arrowhead with line under (binary operation) + +'\Uparrow' + \Uparrow (delimiter) + +'\uparrow' + \uparrow (delimiter) + +'\Updownarrow' + \Updownarrow (delimiter) + +'\updownarrow' + \updownarrow (delimiter) + +'\uplus' + \uplus (binary operation) + +'\Upsilon' + \Upsilon + +'\upsilon' + \upsilon + +'\varepsilon' + \varepsilon + +'\varphi' + \varphi + +'\varpi' + \varpi + +'\varrho' + \varrho + +'\varsigma' + \varsigma + +'\vartheta' + \vartheta + +'\vdash' + \vdash (relation) + +'\vee' + \vee (binary operation) + +'\Vert' + \Vert (delimiter) + +'\vert' + \vert (delimiter) + +'\wedge' + \wedge (binary operation) + +'\wp' + \wp + +'\wr' + \wr (binary operation) + +'\Xi' + \Xi + +'\xi' + \xi + +'\zeta' + \zeta + + +File: latex2e.info, Node: Math functions, Next: Math accents, Prev: Math symbols, Up: Math formulas + +17.3 Math functions +=================== + +These commands produce roman function names in math mode with proper +spacing. + +'\arccos' + \arccos + +'\arcsin' + \arcsin + +'\arctan' + \arctan + +'\arg' + \arg + +'\bmod' + Binary modulo operator (x \bmod y) + +'\cos' + \cos + +'\cosh' + \cosh + +'\cot' + \cos + +'\coth' + \cosh + +'\csc' + \csc + +'\deg' + \deg + +'\det' + \deg + +'\dim' + \dim + +'\exp' + \exp + +'\gcd' + \gcd + +'\hom' + \hom + +'\inf' + \inf + +'\ker' + \ker + +'\lg' + \lg + +'\lim' + \lim + +'\liminf' + \liminf + +'\limsup' + \limsup + +'\ln' + \ln + +'\log' + \log + +'\max' + \max + +'\min' + \min + +'\pmod' + parenthesized modulus, as in (\pmod 2^n - 1) + +'\Pr' + \Pr + +'\sec' + \sec + +'\sin' + \sin + +'\sinh' + \sinh + +'\sup' + \sup + +'\tan' + \tan + +'\tanh' + \tanh + + +File: latex2e.info, Node: Math accents, Next: Spacing in math mode, Prev: Math functions, Up: Math formulas + +17.4 Math accents +================= + +LaTeX provides a variety of commands for producing accented letters in +math. These are different from accents in normal text (*note +Accents::). + +'\acute' + Math acute accent: \acute{x}. + +'\bar' + Math bar-over accent: \bar{x}. + +'\breve' + Math breve accent: \breve{x}. + +'\check' + Math ha'c<ek (check) accent: \check{x}. + +'\ddot' + Math dieresis accent: \ddot{x}. + +'\dot' + Math dot accent: \dot{x}. + +'\grave' + Math grave accent: \grave{x}. + +'\hat' + Math hat (circumflex) accent: \hat{x}. + +'\imath' + Math dotless i. + +'\jmath' + Math dotless j. + +'\mathring' + Math ring accent: x*. + +'\tilde' + Math tilde accent: \tilde{x}. + +'\vec' + Math vector symbol: \vec{x}. + +'\widehat' + Math wide hat accent: \widehat{x+y}. + +'\widehat' + Math wide tilde accent: \widetilde{x+y}. + + +File: latex2e.info, Node: Spacing in math mode, Next: Math miscellany, Prev: Math accents, Up: Math formulas + +17.5 Spacing in math mode +========================= + +In a 'math' environment, LaTeX ignores the spaces you type and puts in +the spacing according to the normal rules for mathematics texts. If you +want different spacing, LaTeX provides the following commands for use in +math mode: + +'\;' + A thick space (5\over18\,quad). +'\:' +'\>' + Both of these produce a medium space (2\over9\,quad). +'\,' + A thin space (1\over6\,quad); not restricted to math mode. +'\!' + A negative thin space (-{1\over6}\,quad). + + +File: latex2e.info, Node: Math miscellany, Prev: Spacing in math mode, Up: Math formulas + +17.6 Math miscellany +==================== + +'\*' + A "discretionary" multiplication symbol, at which a line break is + allowed. + +'\cdots' + A horizontal ellipsis with the dots raised to the center of the + line. + +'\ddots' + A diagonal ellipsis: \ddots. + +'\frac{num}{den}' + Produces the fraction 'num' divided by 'den'. + +'\left DELIM1 ... \right DELIM2' + The two delimiters need not match; '.' acts as a null delimiter, + producing no output. The delimiters are sized according to the + math in between. Example: '\left( \sum_i=1^10 a_i \right]'. + +'\overbrace{TEXT}' + Generates a brace over TEXT. For example, + \overbrace{x+\cdots+x}^{k \rm\;times}. + +'\overline{TEXT}' + Generates a horizontal line over TEX. For exampe, \overline{x+y}. + +'\sqrt[ROOT]{arg}' + Produces the representation of the square root of ARG. The + optional argument ROOT determines what root to produce. For + example, the cube root of 'x+y' would be typed as + '$\sqrt[3]{x+y}$'. + +'\stackrel{TEXT}{RELATION}' + Puts TEXT above RELATION. For example, + '\stackrel{f}{\longrightarrow}'. + +'\underbrace{math}' + Generates MATH with a brace underneath. + +'\underline{text}' + Causes TEXT, which may be either math mode or not, to be + underlined. The line is always below the text, taking account of + descenders. + +'\vdots' + Produces a vertical ellipsis. + + +File: latex2e.info, Node: Modes, Next: Page styles, Prev: Math formulas, Up: Top + +18 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: latex2e.info, Node: Page styles, Next: Spaces, Prev: Modes, Up: Top + +19 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: latex2e.info, Node: \maketitle, Next: \pagenumbering, Up: Page styles + +19.1 '\maketitle' +================= + +The '\maketitle' command generates a title on a separate title +page--except in the 'article' class, where the title is placed at the +top of the first page. Information used to produce the title is +obtained from the following declarations: + +'\author{NAME \and NAME2}' + The '\author' command declares the document author(s), where the + argument 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. + +'\date{TEXT}' + The '\date' command declares TEXT to be the document's date. With + no '\date' command, the current date (*note \today::) is used. + +'\thanks{TEXT}' + The '\thanks' command produces a '\footnote' to the title, usually + used for credit acknowledgements. + +'\title{TEXT}' + The '\title' command declares TEXT to be the title of the document. + Use '\\' to force a line break, as usual. + + +File: latex2e.info, Node: \pagenumbering, Next: \pagestyle, Prev: \maketitle, Up: Page styles + +19.2 '\pagenumbering' +===================== + +Synopsis: + + \pagenumbering{STYLE} + + Specifies the style of page numbers, according to STYLE: + +'arabic' + arabic numerals +'roman' + lowercase Roman numerals +'Roman' + uppercase Roman numerals +'alph' + lowercase letters +'Alph' + uppercase letters + + +File: latex2e.info, Node: \pagestyle, Next: \thispagestyle, Prev: \pagenumbering, Up: Page styles + +19.3 '\pagestyle' +================= + +Synopsis: + + \pagestyle{STYLE} + + The '\pagestyle' command specifies how the headers and footers are +typeset from the current page onwards. Values for STYLE: + +'plain' + Just a plain page number. + +'empty' + Empty headers and footers, e.g., no page numbers. + +'headings' + Put running headers on each page. The document style specifies + what goes in the headers. + +'myheadings' + Custom headers, specified via the '\markboth' or the '\markright' + commands. + + Here are the descriptions of '\markboth' and '\markright': + +'\markboth{LEFT}{RIGHT}' + Sets both the left and the right heading. A "left-hand heading" + (LEFT) is generated by the last '\markboth' command before the end + of the page, while a "right-hand heading" (RIGHT 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. + +'\markright{RIGHT}' + Sets the right heading, leaving the left heading unchanged. + + +File: latex2e.info, Node: \thispagestyle, Prev: \pagestyle, Up: Page styles + +19.4 '\thispagestyle{STYLE}' +============================ + +The '\thispagestyle' command works in the same manner as the +'\pagestyle' command (see previous section) except that it changes to +STYLE for the current page only. + + +File: latex2e.info, Node: Spaces, Next: Boxes, Prev: Page styles, Up: Top + +20 Spaces +********* + +LaTeX has many ways to produce white (or filled) space. + + Another space-producing command is '\,' to produce a "thin" space +(usually 1/6quad). It can be used in text mode, but is more often +useful in math mode (*note Spacing in math mode::). + +* Menu: + +Horizontal space +* \hspace:: Fixed horizontal space. +* \hfill:: Stretchable horizontal space. +* \SPACE:: Normal interword space. +* \AT:: Ending a sentence. +* \thinspace:: One-sixth of an em. +* \/:: Per-character italic correction. +* \hrulefill:: Stretchable horizontal rule. +* \dotfill:: Stretchable horizontal dots. + +Vertical space +* \addvspace:: Add arbitrary vertical space if needed. +* \bigskip \medskip \smallskip:: Fixed vertical spaces. +* \vfill:: Infinitely stretchable vertical space. +* \vspace:: Add arbitrary vertical space. + + +File: latex2e.info, Node: \hspace, Next: \hfill, Up: Spaces + +20.1 '\hspace' +============== + +Synopsis: + + \hspace[*]{LENGTH} + + The '\hspace' command adds horizontal space. The LENGTH argument can +be expressed in any terms that LaTeX understands: points, inches, etc. +It is a rubber length. You can add both negative and positive space +with an '\hspace' command; adding negative space is like backspacing. + + LaTeX normally removes horizontal space that comes at the beginning +or end of a line. To preserve this space, use the optional '*' form. + + +File: latex2e.info, Node: \hfill, Next: \SPACE, Prev: \hspace, Up: Spaces + +20.2 '\hfill' +============= + +The '\hfill' fill command produces a "rubber length" which has no +natural space but can stretch or shrink horizontally as far as needed. + + The '\fill' parameter is the rubber length itself (technically, the +glue value '0pt plus1fill'); thus, '\hspace\fill' is equivalent to +'\hfill'. + + +File: latex2e.info, Node: \SPACE, Next: \AT, Prev: \hfill, Up: Spaces + +20.3 '\SPACE' +============= + +The '\ ' (space) command produces a normal interword space. It's useful +after punctuation which shouldn't end a sentence. For example 'Knuth's +article in Proc.\ Amer.\ Math\. Soc.\ is fundamental'. It is also often +used after control sequences, as in '\TeX\ is a nice system.' + + In normal circumstances, '\'<tab> and '\'<newline> are equivalent to +'\ '. + + +File: latex2e.info, Node: \AT, Next: \thinspace, Prev: \SPACE, Up: Spaces + +20.4 '\@' +========= + +The '\@' command makes the following punctuation character end a +sentence even if it normally would not. This is typically used after a +capital letter. Here are side-by-side examples with and without '\@': + + ... in C\@. Pascal, though ... + ... in C. Pascal, though ... + +produces + + ... in C. Pascal, though ... ... in C. Pascal, though ... + + +File: latex2e.info, Node: \thinspace, Next: \/, Prev: \AT, Up: Spaces + +20.5 '\thinspace' +================= + +'\thinspace' produces an unbreakable and unstretchable space that is 1/6 +of an em. This is the proper space to use in nested quotes, as in '". + + +File: latex2e.info, Node: \/, Next: \hrulefill, Prev: \thinspace, Up: Spaces + +20.6 '\/' +========= + +The '\/' command produces an "italic correction". This is a small space +defined by the font designer for a given character, to avoid the +character colliding with whatever follows. The italic f character +typically has a large italic correction value. + + If the following character is a period or comma, it's not necessary +to insert an italic correction, since those punctuation symbols have a +very small height. However, with semicolons or colons, as well as +normal letters, it can help. Compare f: f; (in the TeX output, the 'f's +are nicely separated) with f: f;. + + Despite the name, roman characters can also have an italic +correction. Compare pdfTeX (in the TeX output, there is a small space +after the 'f') with pdfTeX. + + +File: latex2e.info, Node: \hrulefill, Next: \dotfill, Prev: \/, Up: Spaces + +20.7 '\hrulefill' +================= + +The '\hrulefill' fill command produces a "rubber length" which can +stretch or shrink horizontally. It will be filled with a horizontal +rule. + + +File: latex2e.info, Node: \dotfill, Next: \addvspace, Prev: \hrulefill, Up: Spaces + +20.8 '\dotfill' +=============== + +The '\dotfill' command produces a "rubber length" that fills with dots +instead of just white space. + + +File: latex2e.info, Node: \addvspace, Next: \bigskip \medskip \smallskip, Prev: \dotfill, Up: Spaces + +20.9 '\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: latex2e.info, Node: \bigskip \medskip \smallskip, Next: \vfill, Prev: \addvspace, Up: Spaces + +20.10 '\bigskip \medskip \smallskip' +==================================== + +These commands produce a given amount of space. + +'\bigskip' + The same as '\vspace{bigskipamount}', ordinarily about one line + space (with stretch and shrink). + +'\medskip' + The same as '\vspace{medskipamount}', ordinarily about half of a + line space (with stretch and shrink). + +'\smallskip' + The same as '\vspace{smallskipamount}', ordinarily about a quarter + of a line space (with stretch and shrink). + + The '\...amount' parameters are determined by the document class. + + +File: latex2e.info, Node: \vfill, Next: \vspace, Prev: \bigskip \medskip \smallskip, Up: Spaces + +20.11 '\vfill' +============== + +The '\vfill' fill command produces a rubber length (glue) which can +stretch or shrink vertically as far as needed. It's equivalent to +'\vspace{\fill}' (*note \hfill::). + + +File: latex2e.info, Node: \vspace, Prev: \vfill, Up: Spaces + +20.12 '\vspace[*]{LENGTH}' +========================== + +Synopsis: + + \vspace[*]{LENGTH} + + The '\vspace' command adds the vertical space LENGTH, i.e., a rubber +length. LENGTH can be negative or positive. + + Ordinarily, LaTeX removes vertical space added by '\vspace' at the +top or bottom of a page. With the optional '*' argument, the space is +not removed. + + +File: latex2e.info, Node: Boxes, Next: Special insertions, Prev: Spaces, Up: Top + +21 Boxes +******** + +All the predefined length parameters (*note Predefined lengths::) can be +used in the arguments of the box-making commands. + +* Menu: + +* \mbox:: Horizontal boxes. +* \fbox and \framebox:: Put a frame around a box. +* lrbox:: An environment like \sbox. +* \makebox:: Box, adjustable position. +* \parbox:: Box with text in paragraph mode. +* \raisebox:: Raise or lower text. +* \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: latex2e.info, Node: \mbox, Next: \fbox and \framebox, Up: Boxes + +21.1 '\mbox{TEXT}' +================== + +The '\mbox' command creates a box just wide enough to hold the text +created by its argument. The TEXT is not broken into lines, so it can +be used to prevent hyphenation. + + +File: latex2e.info, Node: \fbox and \framebox, Next: lrbox, Prev: \mbox, Up: Boxes + +21.2 '\fbox' and '\framebox' +============================ + +Synopses: + + \fbox{TEXT} + \framebox[WIDTH][POSITION]{TEXT} + + The '\fbox' and '\framebox' commands are like '\mbox', except that +they put a frame around the outside of the box being created. + + In addition, the '\framebox' command allows for explicit +specification of the box width with the optional WIDTH argument (a +dimension), and positioning with the optional POSITION argument. + + Both commands produce a rule of thickness '\fboxrule' (default +'.4pt'), and leave a space of '\fboxsep' (default '3pt') between the +rule and the contents of the box. + + *Note \framebox (picture)::, for the '\framebox' command in the +'picture' environment. + + +File: latex2e.info, Node: lrbox, Next: \makebox, Prev: \fbox and \framebox, Up: Boxes + +21.3 '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: latex2e.info, Node: \makebox, Next: \parbox, Prev: lrbox, Up: Boxes + +21.4 '\makebox' +=============== + +Synopsis: + + \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, which may take the following values: + +'c' + Centered (default). +'l' + Flush left. +'r' + Flush right. +'s' + Stretch (justify) across entire WIDTH; TEXT must contain + stretchable space for this to work. + + '\makebox' is also used within the picture environment *note \makebox +(picture)::. + + +File: latex2e.info, Node: \parbox, Next: \raisebox, Prev: \makebox, Up: Boxes + +21.5 '\parbox' +============== + +Synopsis: + + \parbox[POSITION][HEIGHT][INNER-POS]{WIDTH}{TEXT} + + The '\parbox' command produces a box whose contents are created in +'paragraph' mode. It should be used to make a box small pieces of text, +with nothing fancy inside. In particular, you shouldn't use any +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::). + + '\parbox' has two mandatory arguments: + +WIDTH + the width of the parbox; +TEXT + the text that goes inside the parbox. + + The optional POSITION argument allows you to align either the top or +bottom line in the parbox with the baseline of the surrounding text +(default is top). + + The optional HEIGHT argument overrides the natural height of the box. + + The INNER-POS argument controls the placement of the text inside the +box, as follows; if it is not specified, POSITION is used. + +'t' + text is placed at the top of the box. +'c' + text is centered 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. + + +File: latex2e.info, Node: \raisebox, Next: \savebox, Prev: \parbox, Up: Boxes + +21.6 '\raisebox' +================ + +Synopsis: + + \raisebox{distance}[HEIGHT][DEPTH]{text} + + The '\raisebox' command raises or lowers TEXT. The first mandatory +argument specifies how high TEXT is to be raised (or lowered if it is a +negative amount). TEXT itself is processed in LR mode. + + The optional arguments HEIGHT and DEPTH are dimensions. If they are +specified, LaTeX treats TEXT as extending a certain distance above the +baseline (height) or below (depth), ignoring its natural height and +depth. + + +File: latex2e.info, Node: \savebox, Next: \sbox, Prev: \raisebox, Up: Boxes + +21.7 '\savebox' +=============== + +Synopsis: + + \savebox{\BOXCMD}[WIDTH][POS]{TEXT} + + This command typeset TEXT in a box just as with '\makebox' (*note +\makebox::), except that instead of printing the resulting box, it saves +it in the box labeled \BOXCMD, which must have been declared with +'\newsavebox' (*note \newsavebox::). + + +File: latex2e.info, Node: \sbox, Next: \usebox, Prev: \savebox, Up: Boxes + +21.8 '\sbox{\BOXCMD}{TEXT}' +=========================== + +Synopsis: + + \sbox{\BOXCMD}{TEXT} + + '\sbox' types TEXT in a box just as with '\mbox' (*note \mbox::) +except that instead of the resulting box being included in the normal +output, it is saved in the box labeled \BOXCMD. \BOXCMD must have been +previously declared with '\newsavebox' (*note \newsavebox::). + + +File: latex2e.info, Node: \usebox, Prev: \sbox, Up: Boxes + +21.9 '\usebox{\BOXCMD' +====================== + +Synopsis: + + \usebox{\BOXCMD} + + '\usebox' producesthe box most recently saved in the bin \BOXCMD by a +'\savebox' command (*note \savebox::). + + +File: latex2e.info, Node: Special insertions, Next: Splitting the input, Prev: Boxes, Up: Top + +22 Special insertions +********************* + +LaTeX provides commands for inserting characters that have a special +meaning do not correspond to simple characters you can type. + +* Menu: + +* Reserved characters:: Inserting # $ % & ~ _ ^ \ { } +* Text symbols:: Inserting other non-letter symbols in text. +* Accents:: Inserting accents. +* Non-English characters:: Inserting other non-English characters. +* \rule:: Inserting lines and rectangles. +* \today:: Inserting today's date. + + +File: latex2e.info, Node: Reserved characters, Next: Text symbols, Up: Special insertions + +22.1 Reserved characters +======================== + +The following characters play a special role in LaTeX and are called +"reserved characters" or "special characters". + + # $ % & ~ _ ^ \ { } + + Whenever you write one of these characters into your file, LaTeX will +do something special. If you simply want the character to be printed as +itself, include a '\' in front of the character. For example, '\$' will +produce '$' in your output. + + One exception to this rule is '\' itself, because '\\' has its own +special (context-dependent) meaning. A roman \ is produced by typing +'$\backslash$' in your file, and a typewriter '\' is produced by using +'\' in a verbatim command (*note verbatim::). + + Also, '\~' and '\^' place tilde and circumflex accents over the +following letter, as in o~ and o^ (*note Accents::); to get a standalone +'~' or '^', you can again use a verbatim command. + + Finally, you can access any character of the current font once you +know its number by using the '\symbol' command. For example, the +visible space character used 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: latex2e.info, Node: Text symbols, Next: Accents, Prev: Reserved characters, Up: Special insertions + +22.2 Text symbols +================= + +LaTeX provides commands to generate a number of non-letter symbols in +running text. Some of these, especially the more obscure ones, are not +available in OT1; you may need to load the 'textcomp' package. + +'\copyright' +'\textcopyright' + The copyright symbol, (C). + +'\dag' + The dagger symbol (in text). + +'\ddag' + The double dagger symbol (in text). + +'\LaTeX' + The LaTeX logo. + +'\guillemotleft (<<)' +'\guillemotright (>>)' +'\guilsinglleft (<)' +'\guilsinglright (>)' + Double and single angle quotation marks, commonly used in French: + <<, >>, <, >. + +'\ldots' +'\dots' +'\textellipsis' + An ellipsis (three dots at the baseline): '...'. '\ldots' and + '\dots' also work in math mode. + +'\lq' + Left (opening) quote: '. + +'\P' +'\textparagraph' + Paragraph sign (pilcrow). + +'\pounds' +'\textsterling' + English pounds sterling: #. + +'\quotedblbase (,,)' +'\quotesinglbase (,)' + Double and single quotation marks on the baseline: ,, and ,. + +'\rq' + Right (closing) quote: '. + +'\S' + Section symbol. + +'\TeX' + The TeX logo. + +'\textasciicircum' + ASCII circumflex: ^. + +'\textasciitilde' + ASCII tilde: ~. + +'\textasteriskcentered' + Centered asterisk: *. + +'\textbackslash' + Backslash: \. + +'\textbar' + Vertical bar: |. + +'\textbardbl' + Double vertical bar. + +'\textbigcircle' + Big circle symbol. + +'\textbraceleft' + Left brace: {. + +'\textbraceright' + Right brace: }. + +'\textbullet' + Bullet: *. + +'\textcircled{LETTER}' + LETTER in a circle, as in (R). + +'\textcompwordmark' +'\textcapitalwordmark' +'\textascenderwordmark' + Composite word mark (invisible). The '\textcapital...' form has + the cap height of the font, while the '\textascender...' form has + the ascender height. + +'\textdagger' + Dagger: \dag. + +'\textdaggerdbl' + Double dagger: \ddag. + +'\textdollar (or '$')' + Dollar sign: $. + +'\textemdash (or '---')' + Em-dash: -- (for punctuation). + +'\textendash (or '--')' + En-dash: -- (for ranges). + +'\texteuro' + The Euro symbol: Euro. + +'\textexclamdown (or '!`')' + Upside down exclamation point: !. + +'\textgreater' + Greater than: >. + +'\textless' + Less than: <. + +'\textleftarrow' + Left arrow. + +'\textordfeminine' +'\textordmasculine' + Feminine and masculine ordinal symbols: a, o. + +'\textperiodcentered' + Centered period: \cdot. + +'\textquestiondown (or '?`')' + Upside down questionation point: ?. + +'\textquotedblleft (or '``')' + Double left quote: ". + +'\textquotedblright (or ''')' + Double right quote: ". + +'\textquoteleft (or '`')' + Single left quote: '. + +'\textquoteright (or ''')' + Single right quote: '. + +'\textquotestraightbase' +'\textquotestraightdblbase' + Single and double straight quotes on the baseline. + +'\textregistered' + Registered symbol: (R). + +'\textrightarrow' + Right arrow. + +'\textthreequartersemdash' + "Three-quarters" em-dash, between en-dash and em-dash. + +'\texttrademark' + Trademark symbol: ^{\hbox{TM}}. + +'\texttwelveudash' + "Two-thirds" em-dash, between en-dash and em-dash. + +'\textunderscore' + Underscore: _. + +'\textvisiblespace' + Visible space symbol. + + +File: latex2e.info, Node: Accents, Next: Non-English characters, Prev: Text symbols, Up: Special insertions + +22.3 Accents +============ + +LaTeX has wide support for many of the world's scripts and languages, +through the 'babel' package and related support. This section does not +attempt to cover all that support. It merely lists the core LaTeX +commands for creating accented characters. + + The '\capital...' commands produce alternative forms for use with +capital letters. These are not available with OT1. + +'\"' +'\capitaldieresis' + Produces an umlaut (dieresis), as in o". + +'\'' +'\capitalacute' + Produces an acute accent, as in o'. In the 'tabbing' environment, + pushes current column to the right of the previous column (*note + tabbing::). + +'\.' + Produces a dot accent over the following, as in o.. + +'\=' +'\capitalmacron' + Produces a macron (overbar) accent over the following, as in o=. + +'\^' +'\capitalcircumflex' + Produces a circumflex (hat) accent over the following, as in o^. + +'\`' +'\capitalgrave' + Produces a grave accent over the following, as in o`. In the + 'tabbing' environment, move following text to the right margin + (*note tabbing::). + +'\~' +'\capitaltilde' + Produces a tilde accent over the following, as in n~. + +'\b' + Produces a bar accent under the following, as in o_. + +'\c' +'\capitalcedilla' + Produces a cedilla accent under the following, as in c,. + +'\d' +'\capitaldotaccent' + Produces a dot accent under the following, as in .o. + +'\H' +'\capitalhungarumlaut' + Produces a long Hungarian umlaut accent over the following, as in + o''. + +'\i' + Produces a dotless i, as in 'i'. + +'\j' + Produces a dotless j, as in 'j'. + +'\k' +'\capitalogonek' + Produces a letter with ogonek, as in 'o;'. Not available in the + OT1 encoding. + +'\r' +'\capitalring' + Produces a ring accent, as in 'o*'. + +'\t' +'\capitaltie' +'\newtie' +'\capitalnewtie' + Produces a tie-after accent, as in 'oo['. The '\newtie' form is + centered in its box. + +'\u' +'\capitalbreve' + Produces a breve accent, as in 'o('. + +'\underbar' + Not exactly an accent, this produces a bar under the argument text. + The argument is always processed in horizontal mode. The bar is + always a fixed position under the baseline, thus crossing through + descenders. See also '\underline' in *note Math miscellany::. + +'\v' +'\capitalcaron' + Produces a ha'c<ek (check, caron) accent, as in 'o<'. + + +File: latex2e.info, Node: Non-English characters, Next: \rule, Prev: Accents, Up: Special insertions + +22.4 Non-English characters +=========================== + +Here are the basic LaTeX commands for inserting characters commonly used +in languages other than English. + +'\aa' +'\AA' + aa and AA. + +'\ae' +'\AE' + ae and AE. + +'\dh' +'\DH' + Icelandic letter eth: d and D. + +'\dj' +'\DJ' + xxxx + +'\ij' +'\IJ' + ij and IJ (except somewhat closer together than appears here). + +'\l' +'\L' + /l and /L. + +'\ng' +'\NG' + xxxx + +'\o' +'\O' + /o and /O. + +'\oe' +'\OE' + oe and OE. + +'\ss' +'\SS' + ss and SS. + +'\th' +'\TH' + Icelandic letter thorn: th and TH. + + +File: latex2e.info, Node: \rule, Next: \today, Prev: Non-English characters, Up: Special insertions + +22.5 '\rule' +============ + +Synopsis: + + \rule[RAISE]{WIDTH}{THICKNESS} + + The '\rule' command produces "rules", that is, lines or rectangles. +The arguments are: + +RAISE + How high to raise the rule (optional). + +WIDTH + The length of the rule (mandatory). + +THICKNESS + The thickness of the rule (mandatory). + + +File: latex2e.info, Node: \today, Prev: \rule, Up: Special insertions + +22.6 '\today' +============= + +The '\today' command produces today's date, in the format 'MONTH DD, +YYYY'; for example, 'July 4, 1976'. It uses the predefined counters +'\day', '\month', and '\year' (*note \day \month \year::) to do this. +It is not updated as the program runs. + + The 'datetime' package, among others, can produce a wide variety of +other date formats. + + +File: latex2e.info, Node: Splitting the input, Next: Front/back matter, Prev: Special insertions, Up: Top + +23 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: latex2e.info, Node: \include, Next: \includeonly, Up: Splitting the input + +23.1 '\include' +=============== + +Synopsis: + + \include{FILE} + + If no '\includeonly' command is present, the '\include' command +executes '\clearpage' to start a new page (*note \clearpage::), then +reads FILE, then does another '\clearpage'. + + Given an '\includeonly' command, the '\include' actions are only run +if FILE is listed as an argument to '\includeonly'. See the next +section. + + The '\include' command may not appear in the preamble or in a file +read by another '\include' command. + + +File: latex2e.info, Node: \includeonly, Next: \input, Prev: \include, Up: Splitting the input + +23.2 \'includeonly' +=================== + +Synopsis: + + \includeonly{FILE1,FILE2,...} + + The '\includeonly' command controls which files will be read by +subsequent '\include' commands. The list of filenames is +comma-separated. Each FILE must exactly match a filename specified in a +'\include' command for the selection to be effective. + + This command can only appear in the preamble. + + +File: latex2e.info, Node: \input, Prev: \includeonly, Up: Splitting the input + +23.3 \input +=========== + +Synopsis: + + \input{FILE} + + The '\input' command causes the specified FILE to be read and +processed, as if its contents had been inserted in the current file at +that point. + + If FILE does not end in '.tex' (e.g., 'foo' or 'foo.bar'), it is +first tried with that extension ('foo.tex' or 'foo.bar.tex'). If that +is not found, the original FILE is tried ('foo' or 'foo.bar'). + + +File: latex2e.info, Node: Front/back matter, Next: Letters, Prev: Splitting the input, Up: Top + +24 Front/back matter +******************** + +* Menu: + +* Tables of contents:: +* Glossaries:: +* Indexes:: + + +File: latex2e.info, Node: Tables of contents, Next: Glossaries, Up: Front/back matter + +24.1 Tables 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. A previous run must have generated a +'.toc' file. + + The '\tableofcontents' command produces a heading, but it does not +automatically start a new page. If you want a new page after the table +of contents, write a '\newpage' command after the '\tableofcontents' +command. + + The analogous commands '\listoffigures' and '\listoftables' produce a +list of figures and a list of tables, respectively. Everything works +exactly the same as for the table of contents. + + The command '\nofiles' overrides these commands, and _prevents_ any +of these lists from being generated. + +* Menu: + +* \addcontentsline:: Add an entry to table of contents etc. +* \addtocontents:: Add text directly to table of contents file etc. + + +File: latex2e.info, Node: \addcontentsline, Next: \addtocontents, Up: Tables of contents + +24.1.1 \addcontentsline +----------------------- + +The '\addcontentsline'{EXT}{UNIT}{TEXT} command adds an entry to the +specified list or table where: + +EXT + The extension of the file on which information is to be written, + typically one of: 'toc' (table of contents), 'lof' (list of + figures), or 'lot' (list of tables). + +UNIT + The name of the sectional unit being added, typically one of the + following, matching the value of the EXT argument: + + 'toc' + The name of the sectional unit: 'part', 'chapter', 'section', + 'subsection', 'subsubsection'. + 'lof' + For the list of figures. + 'lot' + For the list of tables. + +ENTRY + The actual text of the entry. + + What is written to the '.EXT' file is the command +'\contentsline{UNIT}{NAME}'. + + +File: latex2e.info, Node: \addtocontents, Prev: \addcontentsline, Up: Tables of contents + +24.1.2 \addtocontents +--------------------- + +The '\addtocontents'{EXT}{TEXT} command adds text (or formatting +commands) directly to the '.EXT' file that generates the table of +contents or lists of figures or tables. + +EXT + 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 + The text to be written. + + +File: latex2e.info, Node: Glossaries, Next: Indexes, Prev: Tables of contents, Up: Front/back matter + +24.2 Glossaries +=============== + +The command '\makeglossary' enables creating glossaries. + + The command '\glossary{TEXT}' writes a glossary entry for TEXT to an +auxiliary file with the '.glo' extension. + + Specifically, what gets written is the command +'\glossaryentry{TEXT}{PAGENO}', where PAGENO is the current '\thepage' +value. + + The 'glossary' package on CTAN provides support for fancier +glossaries. + + +File: latex2e.info, Node: Indexes, Prev: Glossaries, Up: Front/back matter + +24.3 Indexes +============ + +The command '\makeindex' enables creating indexes. Put this in the +preamble. + + The command '\index{TEXT}' writes an index entry for TEXT to an +auxiliary file with the '.idx' extension. + + Specifically, what gets written is the command +'\indexentry{TEXT}{PAGENO}', where PAGENO is the current '\thepage' +value. + + To generate a index entry for 'bar' that says 'See foo', use a +vertical bar: '\index{bar|see{foo}}'. Use 'seealso' instead of 'see' to +make a 'See also' entry. + + The text 'See' is defined by the macro '\seename', and 'See also' by +the macro '\alsoname'. These can be redefined for other languages. + + The generated '.idx' file is then sorted with an external command, +usually either 'makeindex' ('http://mirror.ctan.org/indexing/makeindex') +or (the multi-lingual) 'xindy' ('http://xindy.sourceforge.net'). This +results in a '.ind' file, which can then be read to typeset the index. + + The index is usually generated with the '\printindex' command. This +is defined in the 'makeidx' package, so '\usepackage{makeidx}' needs to +be in the preamble. + + The rubber length '\indexspace' is inserted before each new letter in +the printed index; its default value is '10pt plus5pt minus3pt'. + + The 'showidx' package causes each index entries to be shown in the +margin on the page where the entry appears. This can help in preparing +the index. + + The 'multind' package supports multiple indexes. See also the TeX +FAQ entry on this topic, +'http://www.tex.ac.uk/cgi-bin/texfaq2html?label=multind'. + + +File: latex2e.info, Node: Letters, Next: Terminal input/output, Prev: Front/back matter, Up: Top + +25 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: latex2e.info, Node: \address, Next: \cc, Up: Letters + +25.1 \address{RETURN-ADDRESS} +============================= + +The '\address' specifies the return address of a letter, 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: latex2e.info, Node: \cc, Next: \closing, Prev: \address, Up: Letters + +25.2 '\cc' +========== + +Synopsis: + + \cc{NAME1\\NAME2} + + Produce a list of NAMEs the letter was copied to. Each name is +printed on a separate line. + + +File: latex2e.info, Node: \closing, Next: \encl, Prev: \cc, Up: Letters + +25.3 '\closing' +=============== + +Synopsis: + + \closing{text} + + A letter closes with a '\closing' command, for example, + \closing{Best Regards,} + + +File: latex2e.info, Node: \encl, Next: \location, Prev: \closing, Up: Letters + +25.4 '\encl' +============ + +Synopsis: + + \encl{LINE1\\LINE2} + + Declare a list of one more enclosures. + + +File: latex2e.info, Node: \location, Next: \makelabels, Prev: \encl, Up: Letters + +25.5 '\location' +================ + +'\location{address}' + + This modifies your organisation's standard address. This only +appears if the 'firstpage' pagestyle is selected. + + +File: latex2e.info, Node: \makelabels, Next: \name, Prev: \location, Up: Letters + +25.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: latex2e.info, Node: \name, Next: \opening, Prev: \makelabels, Up: Letters + +25.7 '\name' +============ + +'\name{June Davenport}' + + Your name, used for printing on the envelope together with the return +address. + + +File: latex2e.info, Node: \opening, Next: \ps, Prev: \name, Up: Letters + +25.8 '\opening{TEXT}' +===================== + +Synopsis: + + \opening{TEXT} + + A letter begins with the '\opening' command. The mandatory argument, +TEXT, is whatever text you wish to start your letter. For instance: + + \opening{Dear Joe,} + + +File: latex2e.info, Node: \ps, Next: \signature, Prev: \opening, Up: Letters + +25.9 '\ps' +========== + +Use the '\ps' command to start a postscript in a letter, after +'\closing'. + + +File: latex2e.info, Node: \signature, Next: \startbreaks, Prev: \ps, Up: Letters + +25.10 '\signature{TEXT}' +======================== + +Your name, as it should appear at the end of the letter underneath the +space for your signature. '\\' starts a new line within TEXT as usual. + + +File: latex2e.info, Node: \startbreaks, Next: \stopbreaks, Prev: \signature, Up: Letters + +25.11 '\startbreaks' +==================== + +'\startbreaks' + + Used after a '\stopbreaks' command to allow page breaks again. + + +File: latex2e.info, Node: \stopbreaks, Next: \telephone, Prev: \startbreaks, Up: Letters + +25.12 '\stopbreaks' +=================== + +'\stopbreaks' + + Inhibit page breaks until a '\startbreaks' command occurs. + + +File: latex2e.info, Node: \telephone, Prev: \stopbreaks, Up: Letters + +25.13 '\telephone' +================== + +'\telephone{number}' + + This is your telephone number. This only appears if the 'firstpage' +pagestyle is selected. + + +File: latex2e.info, Node: Terminal input/output, Next: Command line, Prev: Letters, Up: Top + +26 Terminal input/output +************************ + +* Menu: + +* \typein:: Read text from the terminal. +* \typeout:: Write text to the terminal. + + +File: latex2e.info, Node: \typein, Next: \typeout, Up: Terminal input/output + +26.1 '\typein[CMD]{MSG}' +======================== + +Synopsis: + + \typein[\CMD]{MSG} + + '\typein' 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 +optional \CMD argument is omitted, 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: latex2e.info, Node: \typeout, Prev: \typein, Up: Terminal input/output + +26.2 '\typeout{MSG}' +==================== + +Synopsis: + + \typeout{MSG} + + Prints 'msg' on the terminal and in the 'log' file. Commands in +'msg' that are defined with '\newcommand' or '\renewcommand' (among +others) 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, independent of +surrounding spaces. A '^^J' in 'msg' prints a newline. + + +File: latex2e.info, Node: Command line, Next: Document templates, Prev: Terminal input/output, Up: Top + +27 Command line +*************** + +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 '\nonstopmode\input foo.tex' + +will process 'foo.tex' without pausing after every error. + + If LaTeX stops in the middle of the document and gives you a '*' +prompt, it is waiting for input. You can type '\stop' (and return) and +it will prematurely end the document. + + +File: latex2e.info, Node: Document templates, Next: Concept Index, Prev: Command line, Up: Top + +Appendix A Document templates +***************************** + +Although not reference material, perhaps these document templates will +be useful. Additional template resources are listed +'http://tug.org/interest.html#latextemplates'. + +* Menu: + +* book template:: +* beamer template:: +* tugboat template:: + + +File: latex2e.info, Node: book template, Next: beamer template, Up: Document templates + +A.1 'book' template +=================== + +\documentclass{book} +\title{Book Class Template} +\author{Alex Author} + +\begin{document} +\maketitle + +\chapter{First} +Some text. + +\chapter{Second} +Some other text. + +\section{A subtopic} +The end. +\end{document} + + +File: latex2e.info, Node: beamer template, Next: tugboat template, Prev: book template, Up: Document templates + +A.2 'beamer' template +===================== + +The 'beamer' class creates slides presentations. + +\documentclass{beamer} + +\title{Beamer Class template} +\author{Alex Author} +\date{July 31, 2007} + +\begin{document} + +\maketitle + +% without [fragile], any {verbatim} code gets mysterious errors. +\begin{frame}[fragile] + \frametitle{First Slide} + +\begin{verbatim} + This is \verbatim! +\end{verbatim} + +\end{frame} + +\end{document} + + + +File: latex2e.info, Node: tugboat template, Prev: beamer template, Up: Document templates + +A.3 'tugboat' template +====================== + +'TUGboat' is the journal of the TeX Users Group, +'http://tug.org/TUGboat'. + +\documentclass{ltugboat} +\usepackage{graphicx} +\usepackage{ifpdf} +\ifpdf +\usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black, + urlcolor=black]{hyperref} +\else +\usepackage{url} +\fi + +\title{Example \TUB\ article} + +% repeat info for each author. +\author{First Last} +\address{Street Address \\ Town, Postal \\ Country} +\netaddress{user (at) example dot org} +\personalURL{http://example.org/~user/} + +\begin{document} + +\maketitle + +\begin{abstract} +This is an example article for \TUB{}. +\end{abstract} + +\section{Introduction} + +This is an example article for \TUB, from +\url{http://tug.org/TUGboat/location.html}. + +We recommend the graphicx package for image inclusions, and the +hyperref package for active url's (in the \acro{PDF} output). +Nowadays \TUB\ is produced using \acro{PDF} files exclusively. + +The \texttt{ltugboat} class provides these abbreviations and many more: + +% verbatim blocks are often better in \small +\begin{verbatim}[\small] +\AllTeX \AMS \AmS \AmSLaTeX \AmSTeX \aw \AW +\BibTeX \CTAN \DTD \HTML +\ISBN \ISSN \LaTeXe +\Mc \mf \MFB \mtex \PCTeX \pcTeX +\PiC \PiCTeX \plain \POBox \PS +\SC \SGML \SliTeX \TANGLE \TB \TP +\TUB \TUG \tug +\UG \UNIX \VAX \XeT \WEB \WEAVE + +\Dash \dash \vellipsis \bull \cents \Dag +\careof \thinskip + +\acro{FRED} -> {\small[er] fred} % please use! +\cs{fred} -> \fred +\env{fred} -> \begin{fred} +\meta{fred} -> <fred> +\nth{n} -> 1st, 2nd, ... +\sfrac{3/4} -> 3/4 +\booktitle{Book of Fred} +\end{verbatim} + +For more information, see the ltubguid document at: +\url{http://mirror.ctan.org/macros/latex/contrib/tugboat} +(we recommend using \verb|mirror.ctan.org| for \CTAN\ references). + +Email \verb|tugboat@tug.org| if problems or questions. + +\bibliographystyle{plain} % we recommend the plain bibliography style +\nocite{book-minimal} % just making the bibliography non-empty +\bibliography{xampl} % xampl.bib comes with BibTeX + +\makesignature +\end{document} + + +File: latex2e.info, Node: Concept Index, Next: Command Index, Prev: Document templates, Up: Top + +Concept Index +************* + + +* Menu: + +* '*' prompt: Command line. (line 15) +* *-form of sectioning commands: Sectioning. (line 31) +* '.glo' file: Glossaries. (line 8) +* '.idx' file: Indexes. (line 9) +* '.ind' file: Indexes. (line 23) +* 'see' and 'see also' index entries: Indexes. (line 16) +* abstracts: abstract. (line 6) +* accents: Accents. (line 6) +* accents, mathematical: Math accents. (line 6) +* accessing any character of a font: Reserved characters. (line 25) +* acute accent: Accents. (line 20) +* acute accent, math: Math accents. (line 11) +* ae ligature: Non-English characters. + (line 15) +* align environment, from 'amsmath': eqnarray. (line 6) +* aligning equations: eqnarray. (line 6) +* alignment via tabbing: tabbing. (line 6) +* amsmath package, replacing 'eqnarray': eqnarray. (line 6) +* appendix, creating: Sectioning. (line 37) +* aring: Non-English characters. + (line 11) +* arrays, math: array. (line 6) +* arrow, left, in text: Text symbols. (line 128) +* arrow, right, in text: Text symbols. (line 160) +* ascender height: Text symbols. (line 96) +* ASCII circumflex, in text: Text symbols. (line 61) +* ASCII tilde, in text: Text symbols. (line 64) +* asterisk, centered, in text: Text symbols. (line 67) +* author, for titlepage: \maketitle. (line 12) +* auxiliary file: Overview. (line 45) +* backslash, in text: Text symbols. (line 70) +* bar, double vertical, in text: Text symbols. (line 76) +* bar, vertical, in text: Text symbols. (line 73) +* bar-over accent: Accents. (line 29) +* bar-over accent, math: Math accents. (line 14) +* bar-under accent: Accents. (line 46) +* basics of LaTeX: Overview. (line 8) +* bibliography, creating (automatically): Using BibTeX. (line 6) +* bibliography, creating (manually): thebibliography. (line 6) +* bibTeX, using: Using BibTeX. (line 6) +* big circle symbols, in text: Text symbols. (line 79) +* black boxes, omitting: Document class options. + (line 27) +* bold font: Font styles. (line 74) +* bold typewriter, avoiding: description. (line 18) +* boxes: Boxes. (line 6) +* brace, left, in text: Text symbols. (line 82) +* brace, right, in text: Text symbols. (line 85) +* breaking lines: Line breaking. (line 6) +* breaking pages: Page breaking. (line 6) +* breve accent: Accents. (line 85) +* breve accent, math: Math accents. (line 17) +* bug reporting: About this document. (line 13) +* bullet symbol: Math symbols. (line 87) +* bullet, in text: Text symbols. (line 88) +* bulleted lists: itemize. (line 6) +* calligraphic letters for math: Font styles. (line 77) +* cap height: Text symbols. (line 96) +* caron accent: Accents. (line 95) +* case sensitivity of LaTeX: Overview. (line 57) +* cc list, in letters: \cc. (line 6) +* cedilla accent: Accents. (line 50) +* centered asterisk, in text: Text symbols. (line 67) +* centered period, in text: Text symbols. (line 135) +* centering text, declaration for: \centering. (line 6) +* centering text, environment for: center. (line 6) +* characters, accented: Accents. (line 6) +* characters, non-English: Non-English characters. + (line 6) +* characters, reserved: Reserved characters. (line 6) +* check accent: Accents. (line 95) +* check accent, math: Math accents. (line 20) +* circle symbol, big, in text: Text symbols. (line 79) +* circled letter, in text: Text symbols. (line 91) +* circumflex accent: Accents. (line 33) +* circumflex accent, math: Math accents. (line 32) +* circumflex, ASCII, in text: Text symbols. (line 61) +* class options: Document class options. + (line 6) +* classes of documents: Document classes. (line 6) +* closing letters: \closing. (line 6) +* closing quote: Text symbols. (line 52) +* code, typesetting: verbatim. (line 6) +* command line: Command line. (line 6) +* commands, defining new ones: \newcommand & \renewcommand. + (line 6) +* composite word mark, in text: Text symbols. (line 96) +* computer programs, typesetting: verbatim. (line 6) +* copyright symbol: Text symbols. (line 12) +* counters, a list of: Counters. (line 6) +* counters, defining new: \newcounter. (line 6) +* counters, getting 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) +* credit footnote: \maketitle. (line 22) +* cross references: Cross references. (line 6) +* cross referencing with page number: \pageref. (line 6) +* cross referencing, symbolic: \ref. (line 6) +* currency, dollar: Text symbols. (line 107) +* currency, euro: Text symbols. (line 116) +* dagger, double, in text: Text symbols. (line 104) +* dagger, in text: Text symbols. (line 15) +* dagger, in text <1>: Text symbols. (line 101) +* date, for titlepage: \maketitle. (line 18) +* 'datetime' package: \today. (line 11) +* defining a new command: \newcommand & \renewcommand. + (line 6) +* defining new environments: \newenvironment & \renewenvironment. + (line 6) +* defining new fonts: \newfont. (line 6) +* defining new theorems: \newtheorem. (line 6) +* definitions: Definitions. (line 6) +* description lists, creating: description. (line 6) +* dieresis accent: Accents. (line 16) +* discretionary multiplication: Math miscellany. (line 7) +* displaying quoted text with paragraph indentation: quotation. + (line 6) +* displaying quoted text without paragraph indentation: quote. + (line 6) +* document class options: Document class options. + (line 6) +* document classes: Document classes. (line 6) +* document templates: Document templates. (line 6) +* dollar sign: Text symbols. (line 107) +* dot accent: Accents. (line 25) +* dot over accent, math: Math accents. (line 26) +* dot-over accent: Accents. (line 25) +* dot-under accent: Accents. (line 54) +* dotless i: Accents. (line 62) +* dotless i, math: Math accents. (line 35) +* dotless j: Accents. (line 65) +* dotless j, math: Math accents. (line 38) +* double angle quotation marks: Text symbols. (line 27) +* double dagger, in text: Text symbols. (line 18) +* double dagger, in text <1>: Text symbols. (line 104) +* double dot accent, math: Math accents. (line 23) +* double guillemets: Text symbols. (line 27) +* double left quote: Text symbols. (line 141) +* double low-9 quotation mark: Text symbols. (line 49) +* double quote, straight base: Text symbols. (line 154) +* double right quote: Text symbols. (line 144) +* double spacing: Low-level font commands. + (line 52) +* double vertical bar, in text: Text symbols. (line 76) +* e-dash: Text symbols. (line 113) +* ellipsis: Text symbols. (line 33) +* em-dash: Text symbols. (line 110) +* em-dash, three-quarters: Text symbols. (line 163) +* em-dash, two-thirds: Text symbols. (line 169) +* emphasis: Font styles. (line 27) +* emphasis <1>: Font styles. (line 80) +* enclosure list: \encl. (line 6) +* ending & starting: Starting & ending. (line 6) +* enlarge current page: \enlargethispage. (line 6) +* environments: Environments. (line 6) +* environments, defining: \newenvironment & \renewenvironment. + (line 6) +* equation number, cross referencing: \ref. (line 6) +* equation numbers, omitting: eqnarray. (line 29) +* equations, aligning: eqnarray. (line 6) +* equations, environment for: equation. (line 6) +* es-zet German letter: Non-English characters. + (line 47) +* eth, Icelandic letter: Non-English characters. + (line 19) +* euro symbol: Text symbols. (line 116) +* exclamation point, upside-down: Text symbols. (line 119) +* exponent: Subscripts & superscripts. + (line 6) +* feminine ordinal symbol: Text symbols. (line 132) +* figure number, cross referencing: \ref. (line 6) +* figures, footnotes in: minipage. (line 21) +* figures, inserting: figure. (line 6) +* fixed-width font: Font styles. (line 98) +* 'float' package: figure. (line 34) +* 'float' package <1>: figure. (line 38) +* flushing floats and starting a page: \clearpage. (line 6) +* font commands, low-level: Low-level font commands. + (line 6) +* font sizes: Font sizes. (line 6) +* font styles: Font styles. (line 6) +* fonts: Typefaces. (line 6) +* fonts, new commands for: \newfont. (line 6) +* footer style: \pagestyle. (line 6) +* footer, parameters for: Page layout parameters. + (line 6) +* footnote number, cross referencing: \ref. (line 6) +* footnote parameters: Footnote parameters. (line 6) +* footnotes in figures: minipage. (line 21) +* footnotes, creating: Footnotes. (line 6) +* footnotes, symbolic instead of numbered: Symbolic footnotes. + (line 6) +* formulas, environment for: equation. (line 6) +* formulas, math: Math formulas. (line 6) +* fragile commands: \protect. (line 6) +* French quotation marks: Text symbols. (line 27) +* functions, math: Math functions. (line 6) +* global options: Document class options. + (line 6) +* global options <1>: Document class options. + (line 76) +* glossaries: Glossaries. (line 6) +* grave accent: Accents. (line 37) +* grave accent, math: Math accents. (line 29) +* greater than symbol, in text: Text symbols. (line 122) +* greek letters: Math symbols. (line 6) +* ha'c<ek accent, math: Math accents. (line 20) +* hacek accent: Accents. (line 95) +* hat accent: Accents. (line 33) +* hat accent, math: Math accents. (line 32) +* header style: \pagestyle. (line 6) +* header, parameters for: Page layout parameters. + (line 6) +* here, putting floats: figure. (line 38) +* hungarian umlaut accent: Accents. (line 58) +* hyphenation, defining: \hyphenation. (line 6) +* hyphenation, forcing: \- (hyphenation). (line 6) +* hyphenation, preventing: \mbox. (line 6) +* Icelandic eth: Non-English characters. + (line 19) +* Icelandic thorn: Non-English characters. + (line 51) +* ij letter, Dutch: Non-English characters. + (line 27) +* in-line formulas: math. (line 6) +* indent, forcing: \indent. (line 6) +* indent, suppressing: \noindent. (line 6) +* indentation of paragraphs, in minipage: minipage. (line 17) +* indexes: Indexes. (line 6) +* input file: Splitting the input. (line 6) +* input/output: Terminal input/output. + (line 6) +* inserting figures: figure. (line 6) +* italic font: Font styles. (line 83) +* justification, ragged left: \raggedleft. (line 6) +* justification, ragged right: \raggedright. (line 6) +* Knuth, Donald E.: About this document. (line 6) +* labelled lists, creating: description. (line 6) +* Lamport, Leslie: About this document. (line 6) +* LaTeX logo: Text symbols. (line 21) +* LaTeX overview: Overview. (line 8) +* LaTeX Project team: About this document. (line 6) +* layout commands: Layout. (line 6) +* layout, page parameters for: Page layout parameters. + (line 6) +* left angle quotation marks: Text symbols. (line 27) +* left arrow, in text: Text symbols. (line 128) +* left brace, in text: Text symbols. (line 82) +* left quote: Text symbols. (line 37) +* left quote, double: Text symbols. (line 141) +* left quote, single: Text symbols. (line 147) +* 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 and using: Lengths. (line 6) +* lengths, defining new: \newlength. (line 6) +* lengths, predefined: Predefined lengths. (line 6) +* lengths, setting: \setlength. (line 6) +* less than symbol, in text: Text symbols. (line 125) +* letters: Letters. (line 6) +* letters, accented: Accents. (line 6) +* letters, ending: \closing. (line 6) +* letters, non-English: Non-English characters. + (line 6) +* letters, starting: \opening. (line 6) +* line break, forcing: \\. (line 6) +* line breaking: Line breaking. (line 6) +* line breaks, forcing: \linebreak & \nolinebreak. + (line 6) +* line breaks, preventing: \linebreak & \nolinebreak. + (line 6) +* lines in tables: tabular. (line 6) +* lining text up in tables: tabular. (line 6) +* lining text up using tab stops: tabbing. (line 6) +* list items, specifying counter: \usecounter. (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 class options. + (line 69) +* log file: Overview. (line 41) +* logo, LaTeX: Text symbols. (line 21) +* logo, TeX: Text symbols. (line 58) +* low-9 quotation marks, single and double: Text symbols. (line 49) +* low-level font commands: Low-level font commands. + (line 6) +* lR mode: Modes. (line 6) +* LuaTeX: Overview. (line 32) +* macron accent: Accents. (line 29) +* macron accent, math: Math accents. (line 14) +* Madsen, Lars: eqnarray. (line 6) +* 'makeidx' package: Indexes. (line 28) +* 'makeindex' program: Indexes. (line 23) +* making a title page: titlepage. (line 6) +* making paragraphs: Making paragraphs. (line 6) +* marginal notes: Marginal notes. (line 6) +* masculine ordinal symbol: Text symbols. (line 132) +* math accents: Math accents. (line 6) +* math formulas: Math formulas. (line 6) +* math functions: Math functions. (line 6) +* math miscellany: Math miscellany. (line 6) +* math mode: Modes. (line 6) +* math mode, entering: Math formulas. (line 6) +* math mode, spacing: Spacing in math mode. + (line 6) +* math symbols: Math symbols. (line 6) +* minipage, creating a: minipage. (line 6) +* modes: Modes. (line 6) +* monospace font: Font styles. (line 98) +* moving arguments: \protect. (line 6) +* multicolumn text: \twocolumn. (line 6) +* 'multind' package: Indexes. (line 39) +* multiplication symbol, discretionary line break: Math miscellany. + (line 7) +* nested '\include', not allowed: \include. (line 18) +* new commands, defining: \newcommand & \renewcommand. + (line 6) +* new line, output as input: \obeycr & \restorecr. + (line 6) +* new line, starting: \\. (line 6) +* new line, starting (paragraph mode): \newline. (line 6) +* new page, starting: \newpage. (line 6) +* non-English characters: Non-English characters. + (line 6) +* notes in the margin: Marginal notes. (line 6) +* null delimiter: Math miscellany. (line 21) +* numbered items, specifying counter: \usecounter. (line 6) +* oblique font: Font styles. (line 95) +* oe ligature: Non-English characters. + (line 43) +* ogonek: Accents. (line 69) +* one-column output: \onecolumn. (line 6) +* opening quote: Text symbols. (line 37) +* options, document class: Document class options. + (line 6) +* options, global: Document class options. + (line 76) +* ordinals, feminine and masculine: Text symbols. (line 132) +* oslash: Non-English characters. + (line 39) +* overbar accent: Accents. (line 29) +* overdot accent, math: Math accents. (line 26) +* overview of LaTeX: Overview. (line 8) +* packages, loading: Document class options. + (line 69) +* page break, forcing: \pagebreak & \nopagebreak. + (line 6) +* page break, preventing: \pagebreak & \nopagebreak. + (line 6) +* page breaking: Page breaking. (line 6) +* page layout parameters: Page layout parameters. + (line 6) +* page number, cross referencing: \pageref. (line 6) +* page numbering style: \pagenumbering. (line 6) +* page styles: Page styles. (line 6) +* paragraph indentation, in minipage: minipage. (line 17) +* paragraph indentations in quoted text: quotation. (line 6) +* paragraph indentations in quoted text, omitting: quote. (line 6) +* paragraph mode: Modes. (line 6) +* paragraph symbol: Text symbols. (line 41) +* paragraphs: Making paragraphs. (line 6) +* parameters, for footnotes: Footnote parameters. (line 6) +* parameters, page layout: Page layout parameters. + (line 6) +* pdfTeX: Overview. (line 26) +* period, centered, in text: Text symbols. (line 135) +* pictures, creating: picture. (line 6) +* pilcrow: Text symbols. (line 41) +* placement of floats: figure. (line 19) +* poetry, an environment for: verse. (line 6) +* polish l: Non-English characters. + (line 31) +* postscript, in letters: \ps. (line 6) +* pounds symbol: Text symbols. (line 45) +* preamble, defined: Starting & ending. (line 17) +* predefined lengths: Predefined lengths. (line 6) +* prompt, '*': Command line. (line 15) +* questionation point, upside-down: Text symbols. (line 138) +* quotation marks, French: Text symbols. (line 27) +* quote, straight base: Text symbols. (line 154) +* quoted text with paragraph indentation, displaying: quotation. + (line 6) +* quoted text without paragraph indentation, 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) +* redefining environments: \newenvironment & \renewenvironment. + (line 6) +* registered symbol: Text symbols. (line 157) +* remarks in the margin: Marginal notes. (line 6) +* reporting bugs: About this document. (line 13) +* reserved characters: Reserved characters. (line 6) +* right angle quotation marks: Text symbols. (line 27) +* right arrow, in text: Text symbols. (line 160) +* right brace, in text: Text symbols. (line 85) +* right quote: Text symbols. (line 52) +* right quote, double: Text symbols. (line 144) +* right quote, single: Text symbols. (line 150) +* right-justifying text: \raggedleft. (line 6) +* right-justifying text, environment for: flushright. (line 6) +* ring accent: Accents. (line 74) +* ring accent, math: Math accents. (line 41) +* robust commands: \protect. (line 16) +* roman font: Font styles. (line 86) +* running header and footer: Page layout parameters. + (line 6) +* running header and footer style: \pagestyle. (line 6) +* sans serif font: Font styles. (line 92) +* script letters for math: Font styles. (line 77) +* section number, cross referencing: \ref. (line 6) +* section numbers, printing: Sectioning. (line 47) +* section symbol: Text symbols. (line 55) +* sectioning: Sectioning. (line 6) +* 'setspace' package: Low-level font commands. + (line 52) +* setting counters: \setcounter. (line 6) +* sharp S letters: Non-English characters. + (line 47) +* 'showidx' package: Indexes. (line 35) +* simulating typed text: verbatim. (line 6) +* single angle quotation marks: Text symbols. (line 27) +* single guillemets: Text symbols. (line 27) +* single left quote: Text symbols. (line 147) +* single low-9 quotation mark: Text symbols. (line 49) +* single right quote: Text symbols. (line 150) +* sizes of text: Font sizes. (line 6) +* slanted font: Font styles. (line 95) +* small caps font: Font styles. (line 89) +* space, inserting vertical: \addvspace. (line 6) +* spaces: Spaces. (line 6) +* spacing within math mode: Spacing in math mode. + (line 6) +* Spanish ordinals, feminine and masculine: Text symbols. (line 132) +* special characters: Non-English characters. + (line 6) +* specifier, float placement: figure. (line 19) +* splitting the input file: Splitting the input. (line 6) +* starting & ending: Starting & ending. (line 6) +* starting a new page: \newpage. (line 6) +* starting a new page and clearing floats: \clearpage. (line 6) +* starting on a right-hand page: \cleardoublepage. (line 6) +* sterling symbol: Text symbols. (line 45) +* straight double quote, base: Text symbols. (line 154) +* straight quote, base: Text symbols. (line 154) +* stretch, omitting vertical: \raggedbottom. (line 6) +* styles of text: Font styles. (line 6) +* styles, page: Page styles. (line 6) +* subscript: Subscripts & superscripts. + (line 6) +* superscript: Subscripts & superscripts. + (line 6) +* symbols, math: Math symbols. (line 6) +* tab stops, using: tabbing. (line 6) +* table of contents entry, manually adding: \addcontentsline. (line 6) +* table of contents, creating: Tables of contents. (line 6) +* tables, creating: table. (line 6) +* terminal input/output: Terminal input/output. + (line 6) +* TeX logo: Text symbols. (line 58) +* text symbols: Text symbols. (line 6) +* thanks, for titlepage: \maketitle. (line 22) +* theorems, defining: \newtheorem. (line 6) +* theorems, typesetting: theorem. (line 6) +* thorn, Icelandic letter: Non-English characters. + (line 51) +* three-quarters em-dash: Text symbols. (line 163) +* tie-after accent: Accents. (line 80) +* tilde accent: Accents. (line 43) +* tilde accent, math: Math accents. (line 44) +* tilde, ASCII, in text: Text symbols. (line 64) +* title pages, creating: titlepage. (line 6) +* title, for titlepage: \maketitle. (line 26) +* titles, making: \maketitle. (line 6) +* trademark symbol: Text symbols. (line 166) +* transcript file: Overview. (line 41) +* two-column output: \twocolumn. (line 6) +* two-thirds em-dash: Text symbols. (line 169) +* typed text, simulating: verbatim. (line 6) +* typeface sizes: Font sizes. (line 6) +* typeface styles: Font styles. (line 6) +* typefaces: Typefaces. (line 6) +* typewriter font: Font styles. (line 98) +* typewriter labels in lists: description. (line 18) +* umlaut accent: Accents. (line 16) +* underbar: Accents. (line 88) +* underscore, in text: Text symbols. (line 172) +* unordered lists: itemize. (line 6) +* using BibTeX: Using BibTeX. (line 6) +* variables, a list of: Counters. (line 6) +* vector symbol, math: Math accents. (line 47) +* verbatim text: verbatim. (line 6) +* verbatim text, inline: \verb. (line 6) +* vertical bar, double, in text: Text symbols. (line 76) +* vertical bar, in text: Text symbols. (line 73) +* vertical space: \addvspace. (line 6) +* vertical space before paragraphs: \parskip. (line 6) +* visible space: \verb. (line 17) +* visible space symbol, in text: Text symbols. (line 175) +* wide hat accent, math: Math accents. (line 50) +* wide tile accent, math: Math accents. (line 53) +* XeTeX: Overview. (line 35) +* 'xindy' program: Indexes. (line 23) + + +File: latex2e.info, Node: Command Index, Prev: Concept Index, Up: Top + +Command Index +************* + + +* Menu: + +* $: Math formulas. (line 24) +* .aux file: Overview. (line 45) +* .dvi file: Overview. (line 18) +* .log file: Overview. (line 41) +* .pdf file: Overview. (line 26) +* .toc file: Tables of contents. (line 6) +* 10pt option: Document class options. + (line 14) +* 11pt option: Document class options. + (line 14) +* 12pt option: Document class options. + (line 14) +* @{...}: array. (line 29) +* [...] for optional arguments: Overview. (line 51) +* \ character starting commands: Overview. (line 51) +* \" (umlaut accent): Accents. (line 16) +* \#: Reserved characters. (line 11) +* \$: Reserved characters. (line 11) +* \%: Reserved characters. (line 11) +* \&: Reserved characters. (line 11) +* \' (acute accent): Accents. (line 20) +* \' (tabbing): tabbing. (line 45) +* \(: Math formulas. (line 16) +* \): Math formulas. (line 16) +* \*: Math miscellany. (line 6) +* \+: tabbing. (line 37) +* \,: Spacing in math mode. + (line 17) +* \-: tabbing. (line 41) +* \- (hyphenation): \- (hyphenation). (line 6) +* \. (dot-over accent): Accents. (line 25) +* \/: \/. (line 6) +* \:: Spacing in math mode. + (line 15) +* \;: Spacing in math mode. + (line 12) +* \<: tabbing. (line 33) +* \= (macron accent): Accents. (line 29) +* \= (tabbing): tabbing. (line 27) +* \>: tabbing. (line 31) +* \> <1>: Spacing in math mode. + (line 15) +* \> (tabbing): tabbing. (line 30) +* \@: \AT. (line 6) +* \@fnsymbol: Symbolic footnotes. (line 11) +* \a (tabbing): tabbing. (line 60) +* \a' (acute accent in tabbing): tabbing. (line 61) +* \a= (macron accent in tabbing): tabbing. (line 61) +* \aa (aa): Non-English characters. + (line 11) +* \AA (AA): Non-English characters. + (line 11) +* \acute: Math accents. (line 10) +* \addcontentsline{EXT}{UNIT}{TEXT}: \addcontentsline. (line 6) +* \address: \address. (line 6) +* \addtocontents{EXT}{TEXT}: \addtocontents. (line 6) +* \addtocounter: \addtocounter. (line 6) +* \addtolength: \addtolength. (line 6) +* \addvspace: \addvspace. (line 6) +* \ae (ae): Non-English characters. + (line 15) +* \AE (AE): Non-English characters. + (line 15) +* \aleph: Math symbols. (line 14) +* \alph: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 9) +* \Alph: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 12) +* \Alph example: enumerate. (line 39) +* \alpha: Math symbols. (line 17) +* \alsoname: Indexes. (line 20) +* \amalg: Math symbols. (line 20) +* \and for '\author': \maketitle. (line 12) +* \angle: Math symbols. (line 23) +* \appendix: Sectioning. (line 37) +* \approx: Math symbols. (line 26) +* \arabic: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 15) +* \arccos: Math functions. (line 9) +* \arcsin: Math functions. (line 12) +* \arctan: Math functions. (line 15) +* \arg: Math functions. (line 18) +* \arraycolsep: array. (line 41) +* \arrayrulewidth: tabular. (line 100) +* \arraystretch: tabular. (line 104) +* \ast: Math symbols. (line 29) +* \asymp: Math symbols. (line 32) +* \author{NAME \and NAME2}: \maketitle. (line 11) +* \a` (grave accent in tabbing): tabbing. (line 61) +* \b (bar-under accent): Accents. (line 46) +* \backslash: Math symbols. (line 35) +* \backslash <1>: Reserved characters. (line 16) +* \bar: Math accents. (line 13) +* \baselineskip: Low-level font commands. + (line 46) +* \baselinestretch: Low-level font commands. + (line 52) +* \begin: Environments. (line 6) +* \beta: Math symbols. (line 38) +* \bf: Font styles. (line 73) +* \bfseries: Font styles. (line 33) +* \bibitem: \bibitem. (line 6) +* \bibliography: Using BibTeX. (line 6) +* \bibliographystyle: Using BibTeX. (line 6) +* \bigcap: Math symbols. (line 41) +* \bigcap <1>: Math symbols. (line 71) +* \bigcirc: Math symbols. (line 44) +* \bigcup: Math symbols. (line 47) +* \bigodot: Math symbols. (line 50) +* \bigoplus: Math symbols. (line 53) +* \bigotimes: Math symbols. (line 56) +* \bigskip: \bigskip \medskip \smallskip. + (line 9) +* \bigskipamount: \bigskip \medskip \smallskip. + (line 9) +* \bigsqcup: Math symbols. (line 65) +* \bigtriangledown: Math symbols. (line 59) +* \bigtriangleup: Math symbols. (line 62) +* \biguplus: Math symbols. (line 68) +* \bigwedge: Math symbols. (line 74) +* \bmod: Math functions. (line 21) +* \boldmath: Math formulas. (line 29) +* \bot: Math symbols. (line 77) +* \bottomfraction: figure. (line 67) +* \bottomnumber: figure. (line 100) +* \bowtie: Math symbols. (line 80) +* \Box: Math symbols. (line 83) +* \breve: Math accents. (line 16) +* \bullet: Math symbols. (line 86) +* \c (cedilla accent): Accents. (line 50) +* \cal: Font styles. (line 76) +* \cap: Math symbols. (line 89) +* \capitalacute: Accents. (line 20) +* \capitalbreve: Accents. (line 85) +* \capitalcaron: Accents. (line 95) +* \capitalcedilla: Accents. (line 50) +* \capitalcircumflex: Accents. (line 33) +* \capitaldieresis: Accents. (line 16) +* \capitaldotaccent: Accents. (line 54) +* \capitalgrave: Accents. (line 37) +* \capitalhungarumlaut: Accents. (line 58) +* \capitalmacron: Accents. (line 29) +* \capitalnewtie: Accents. (line 80) +* \capitalogonek: Accents. (line 69) +* \capitalring: Accents. (line 74) +* \capitaltie: Accents. (line 80) +* \capitaltilde: Accents. (line 43) +* \caption: figure. (line 60) +* \cc: \cc. (line 6) +* \cdot: Math symbols. (line 92) +* \cdots: Math miscellany. (line 10) +* \centering: \centering. (line 6) +* \chapter: Sectioning. (line 9) +* \check: Math accents. (line 19) +* \chi: Math symbols. (line 95) +* \circ: Math symbols. (line 98) +* \circle: \circle. (line 6) +* \cite: \cite. (line 6) +* \cleardoublepage: \cleardoublepage. (line 6) +* \clearpage: \clearpage. (line 6) +* \cline: \cline. (line 6) +* \closing: \closing. (line 6) +* \clubsuit: Math symbols. (line 101) +* \columnsep: \twocolumn. (line 16) +* \columnseprule: \twocolumn. (line 19) +* \columnwidth: \twocolumn. (line 23) +* \cong: Math symbols. (line 104) +* \contentsline: \addcontentsline. (line 29) +* \coprod: Math symbols. (line 107) +* \copyright: Text symbols. (line 10) +* \cos: Math functions. (line 24) +* \cosh: Math functions. (line 27) +* \cot: Math functions. (line 30) +* \coth: Math functions. (line 33) +* \csc: Math functions. (line 36) +* \cup: Math symbols. (line 110) +* \d (dot-under accent): Accents. (line 54) +* \dag: Text symbols. (line 14) +* \dagger: Math symbols. (line 113) +* \dashbox: \dashbox. (line 6) +* \dashv: Math symbols. (line 116) +* \date{TEXT}: \maketitle. (line 17) +* \day: \day \month \year. (line 6) +* \dblfloatpagefraction: \twocolumn. (line 34) +* \dblfloatsep: \twocolumn. (line 38) +* \dbltextfloatsep: \twocolumn. (line 43) +* \dbltopfraction: \twocolumn. (line 29) +* \ddag: Text symbols. (line 17) +* \ddagger: Math symbols. (line 119) +* \ddot: Math accents. (line 22) +* \ddots: Math miscellany. (line 14) +* \deg: Math functions. (line 39) +* \Delta: Math symbols. (line 122) +* \delta: Math symbols. (line 125) +* \depth: Predefined lengths. (line 10) +* \det: Math functions. (line 42) +* \dh (ae): Non-English characters. + (line 19) +* \DH (AE): Non-English characters. + (line 19) +* \Diamond: Math symbols. (line 128) +* \diamond: Math symbols. (line 131) +* \diamondsuit: Math symbols. (line 134) +* \dim: Math functions. (line 45) +* \displaystyle: Math formulas. (line 34) +* \div: Math symbols. (line 137) +* \dj: Non-English characters. + (line 23) +* \DJ: Non-English characters. + (line 23) +* \documentclass: Document classes. (line 6) +* \dot: Math accents. (line 25) +* \doteq: Math symbols. (line 140) +* \dotfill: \dotfill. (line 6) +* \dots: Text symbols. (line 31) +* \doublerulesep: tabular. (line 108) +* \downarrow: Math symbols. (line 143) +* \Downarrow: Math symbols. (line 146) +* \ell: Math symbols. (line 149) +* \em: Font styles. (line 79) +* \emph: Font styles. (line 27) +* \emptyset: Math symbols. (line 152) +* \encl: \encl. (line 6) +* \end: Environments. (line 6) +* \enlargethispage: \enlargethispage. (line 6) +* \enumi: enumerate. (line 29) +* \enumii: enumerate. (line 29) +* \enumiii: enumerate. (line 29) +* \enumiv: enumerate. (line 29) +* \epsilon: Math symbols. (line 155) +* \equiv: Math symbols. (line 158) +* \eta: Math symbols. (line 161) +* \evensidemargin: Document class options. + (line 50) +* \exists: Math symbols. (line 164) +* \exp: Math functions. (line 48) +* \extracolsep: tabular. (line 71) +* \fbox: \fbox and \framebox. (line 6) +* \fboxrule: \framebox (picture). (line 14) +* \fboxrule <1>: \fbox and \framebox. (line 18) +* \fboxsep: \framebox (picture). (line 14) +* \fboxsep <1>: \fbox and \framebox. (line 18) +* \fill: \hfill. (line 9) +* \flat: Math symbols. (line 167) +* \floatpagefraction: figure. (line 70) +* \floatsep: figure. (line 85) +* \flushbottom: \flushbottom. (line 6) +* \fnsymbol: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 24) +* \fnsymbol, and footnotes: Symbolic footnotes. (line 11) +* \fontencoding: Low-level font commands. + (line 11) +* \fontfamily: Low-level font commands. + (line 14) +* \fontseries: Low-level font commands. + (line 23) +* \fontshape: Low-level font commands. + (line 34) +* \fontsize: Low-level font commands. + (line 46) +* \footnote: \footnote. (line 6) +* \footnotemark: \footnotemark. (line 6) +* \footnoterule: Footnote parameters. (line 6) +* \footnotesep: Footnote parameters. (line 12) +* \footnotesize: Font sizes. (line 11) +* \footnotetext: \footnotetext. (line 6) +* \footskip: Page layout parameters. + (line 16) +* \forall: Math symbols. (line 170) +* \frac: Math miscellany. (line 18) +* \frac{num}{den}: Math miscellany. (line 17) +* \frame: \frame. (line 6) +* \framebox: \framebox (picture). (line 6) +* \framebox <1>: \fbox and \framebox. (line 6) +* \frown: Math symbols. (line 173) +* \fussy: \fussy. (line 6) +* \Gamma: Math symbols. (line 176) +* \gamma: Math symbols. (line 179) +* \gcd: Math functions. (line 51) +* \ge: Math symbols. (line 182) +* \geq: Math symbols. (line 185) +* \gets: Math symbols. (line 188) +* \gg: Math symbols. (line 191) +* \glossary: Glossaries. (line 8) +* \glossaryentry: Glossaries. (line 11) +* \grave: Math accents. (line 28) +* \guillemotleft (<<): Text symbols. (line 23) +* \guillemotright (>>): Text symbols. (line 24) +* \guilsinglleft (<): Text symbols. (line 25) +* \guilsinglright (>): Text symbols. (line 26) +* \H (Hungarian umlaut accent): Accents. (line 58) +* \hat: Math accents. (line 31) +* \hbar: Math symbols. (line 194) +* \headheight: Page layout parameters. + (line 6) +* \headsep: Page layout parameters. + (line 11) +* \heartsuit: Math symbols. (line 197) +* \height: Predefined lengths. (line 8) +* \hfill: \hfill. (line 6) +* \hline: \hline. (line 6) +* \hom: Math functions. (line 54) +* \hookleftarrow: Math symbols. (line 200) +* \hookrightarrow: Math symbols. (line 203) +* \hrulefill: \hrulefill. (line 6) +* \hsize: Page layout parameters. + (line 56) +* \hspace: \hspace. (line 6) +* \huge: Font sizes. (line 11) +* \Huge: Font sizes. (line 11) +* \hyphenation: \hyphenation. (line 6) +* \i (dotless i): Accents. (line 62) +* \iff: Math symbols. (line 206) +* \ij (ij): Non-English characters. + (line 27) +* \IJ (IJ): Non-English characters. + (line 27) +* \Im: Math symbols. (line 209) +* \imath: Math accents. (line 34) +* \in: Math symbols. (line 212) +* \include: \include. (line 6) +* \includeonly: \includeonly. (line 6) +* \indent: \indent. (line 6) +* \index: Indexes. (line 9) +* \indexentry: Indexes. (line 12) +* \inf: Math functions. (line 57) +* \infty: Math symbols. (line 215) +* \input: \input. (line 6) +* \int: Math symbols. (line 218) +* \intextsep: figure. (line 89) +* \iota: Math symbols. (line 221) +* \it: Font styles. (line 82) +* \item: description. (line 14) +* \item <1>: enumerate. (line 19) +* \item <2>: itemize. (line 6) +* \itemindent: itemize. (line 49) +* \itemsep: itemize. (line 71) +* \itshape: Font styles. (line 24) +* \j (dotless j): Accents. (line 65) +* \jmath: Math accents. (line 37) +* \Join: Math symbols. (line 224) +* \k (ogonek): Accents. (line 69) +* \kappa: Math symbols. (line 227) +* \ker: Math functions. (line 60) +* \kill: tabbing. (line 65) +* \l (/l): Non-English characters. + (line 31) +* \L (/L): Non-English characters. + (line 31) +* \label: \label. (line 6) +* \labelenumi: enumerate. (line 33) +* \labelenumii: enumerate. (line 33) +* \labelenumiii: enumerate. (line 33) +* \labelenumiv: enumerate. (line 33) +* \labelitemi: itemize. (line 29) +* \labelitemii: itemize. (line 29) +* \labelitemiii: itemize. (line 29) +* \labelitemiv: itemize. (line 29) +* \labelsep: itemize. (line 52) +* \labelwidth: itemize. (line 55) +* \Lambda: Math symbols. (line 230) +* \lambda: Math symbols. (line 233) +* \land: Math symbols. (line 236) +* \langle: Math symbols. (line 239) +* \large: Font sizes. (line 11) +* \Large: Font sizes. (line 11) +* \LARGE: Font sizes. (line 11) +* \LaTeX: Text symbols. (line 20) +* \lbrace: Math symbols. (line 242) +* \lbrack: Math symbols. (line 245) +* \lceil: Math symbols. (line 248) +* \ldots: Text symbols. (line 30) +* \le: Math symbols. (line 251) +* \leadsto: Math symbols. (line 254) +* \left DELIM1 ... \right DELIM2: Math miscellany. (line 20) +* \Leftarrow: Math symbols. (line 256) +* \leftarrow: Math symbols. (line 259) +* \lefteqn: eqnarray. (line 34) +* \leftharpoondown: Math symbols. (line 262) +* \leftharpoonup: Math symbols. (line 265) +* \leftmargin: itemize. (line 36) +* \leftmargini: itemize. (line 36) +* \leftmarginii: itemize. (line 36) +* \leftmarginiii: itemize. (line 36) +* \leftmarginiv: itemize. (line 36) +* \leftmarginv: itemize. (line 36) +* \leftmarginvi: itemize. (line 36) +* \Leftrightarrow: Math symbols. (line 268) +* \leftrightarrow: Math symbols. (line 271) +* \leq: Math symbols. (line 274) +* \lfloor: Math symbols. (line 277) +* \lg: Math functions. (line 63) +* \lhd: Math symbols. (line 280) +* \lim: Math functions. (line 66) +* \liminf: Math functions. (line 69) +* \limsup: Math functions. (line 72) +* \line: \line. (line 6) +* \linebreak: \linebreak & \nolinebreak. + (line 6) +* \linespread: Low-level font commands. + (line 59) +* \linethickness: \linethickness. (line 6) +* \linewidth: Page layout parameters. + (line 21) +* \listoffigures: Tables of contents. (line 16) +* \listoftables: Tables of contents. (line 16) +* \listparindent: itemize. (line 58) +* \ll: Math symbols. (line 283) +* \ln: Math functions. (line 75) +* \lnot: Math symbols. (line 286) +* \location: \location. (line 6) +* \log: Math functions. (line 78) +* \longleftarrow: Math symbols. (line 289) +* \longleftrightarrow: Math symbols. (line 292) +* \longmapsto: Math symbols. (line 295) +* \longrightarrow: Math symbols. (line 298) +* \lor: Math symbols. (line 301) +* \lq: Text symbols. (line 36) +* \makebox: \makebox. (line 6) +* \makebox (picture): \makebox (picture). (line 6) +* \makeglossary: Glossaries. (line 6) +* \makeindex: Indexes. (line 6) +* \makelabels: \makelabels. (line 6) +* \maketitle: \maketitle. (line 6) +* \mapsto: Math symbols. (line 304) +* \marginpar: Marginal notes. (line 6) +* \marginparpush: Marginal notes. (line 33) +* \marginparsep: Marginal notes. (line 37) +* \marginparwidth: Marginal notes. (line 41) +* \markboth{LEFT}{RIGHT}: \pagestyle. (line 29) +* \markright{RIGHT}: \pagestyle. (line 36) +* \mathbf: Font styles. (line 49) +* \mathcal: Font styles. (line 62) +* \mathnormal: Font styles. (line 60) +* \mathring: Math accents. (line 40) +* \mathrm: Font styles. (line 47) +* \mathsf: Font styles. (line 51) +* \mathtt: Font styles. (line 53) +* \mathversion: Font styles. (line 64) +* \max: Math functions. (line 81) +* \mbox: \mbox. (line 6) +* \mdseries: Font styles. (line 30) +* \medskip: \bigskip \medskip \smallskip. + (line 13) +* \medskipamount: \bigskip \medskip \smallskip. + (line 13) +* \mho: Math symbols. (line 307) +* \mid: Math symbols. (line 309) +* \min: Math functions. (line 84) +* \models: Math symbols. (line 312) +* \month: \day \month \year. (line 6) +* \mp: Math symbols. (line 315) +* \mu: Math symbols. (line 318) +* \multicolumn: \multicolumn. (line 6) +* \multiput: \multiput. (line 6) +* \nabla: Math symbols. (line 321) +* \name: \name. (line 6) +* \natural: Math symbols. (line 324) +* \ne: Math symbols. (line 327) +* \nearrow: Math symbols. (line 330) +* \neg: Math symbols. (line 333) +* \neq: Math symbols. (line 336) +* \newcommand: \newcommand & \renewcommand. + (line 6) +* \newcounter: \newcounter. (line 6) +* \newenvironment: \newenvironment & \renewenvironment. + (line 6) +* \newfont: \newfont. (line 6) +* \newlength: \newlength. (line 6) +* \newline: \newline. (line 6) +* \NEWLINE: \SPACE. (line 6) +* \newpage: \newpage. (line 6) +* \newsavebox: \newsavebox. (line 6) +* \newtheorem: \newtheorem. (line 6) +* \newtie: Accents. (line 80) +* \ng: Non-English characters. + (line 35) +* \NG: Non-English characters. + (line 35) +* \ni: Math symbols. (line 339) +* \nocite: \nocite. (line 6) +* \nofiles: Tables of contents. (line 20) +* \noindent: \noindent. (line 6) +* \nolinebreak: \linebreak & \nolinebreak. + (line 6) +* \nonumber: eqnarray. (line 29) +* \nopagebreak: \pagebreak & \nopagebreak. + (line 6) +* \normalfont: Font styles. (line 45) +* \normalmarginpar: Marginal notes. (line 21) +* \normalsize: Font sizes. (line 11) +* \not: Math symbols. (line 342) +* \notin: Math symbols. (line 345) +* \nu: Math symbols. (line 348) +* \nwarrow: Math symbols. (line 351) +* \o (/o): Non-English characters. + (line 39) +* \O (/O): Non-English characters. + (line 39) +* \obeycr: \obeycr & \restorecr. + (line 6) +* \oddsidemargin: Document class options. + (line 50) +* \odot: Math symbols. (line 354) +* \oe (oe): Non-English characters. + (line 43) +* \OE (OE): Non-English characters. + (line 43) +* \oint: Math symbols. (line 357) +* \Omega: Math symbols. (line 360) +* \omega: Math symbols. (line 363) +* \ominus: Math symbols. (line 366) +* \onecolumn: \onecolumn. (line 6) +* \opening: \opening. (line 6) +* \oplus: Math symbols. (line 369) +* \oslash: Math symbols. (line 372) +* \otimes: Math symbols. (line 375) +* \oval: \oval. (line 6) +* \overbrace{TEXT}: Math miscellany. (line 25) +* \overline{TEXT}: Math miscellany. (line 29) +* \owns: Math symbols. (line 378) +* \P: Text symbols. (line 39) +* \pagebreak: \pagebreak & \nopagebreak. + (line 6) +* \pagenumbering: \pagenumbering. (line 6) +* \pageref: \pageref. (line 6) +* \pagestyle: \pagestyle. (line 6) +* \paragraph: Sectioning. (line 14) +* \parallel: Math symbols. (line 381) +* \parbox: \parbox. (line 6) +* \parindent: minipage. (line 17) +* \parindent <1>: \indent. (line 6) +* \parsep: itemize. (line 76) +* \parskip: \parskip. (line 6) +* \parskip example: itemize. (line 92) +* \part: Sectioning. (line 8) +* \partial: Math symbols. (line 384) +* \partopsep: itemize. (line 86) +* \perp: Math symbols. (line 387) +* \phi: Math symbols. (line 390) +* \Pi: Math symbols. (line 393) +* \pi: Math symbols. (line 396) +* \pm: Math symbols. (line 399) +* \pmod: Math functions. (line 87) +* \poptabs: tabbing. (line 71) +* \poptabs <1>: tabbing. (line 72) +* \pounds: Text symbols. (line 43) +* \Pr: Math functions. (line 90) +* \prec: Math symbols. (line 402) +* \preceq: Math symbols. (line 405) +* \prime: Math symbols. (line 408) +* \prod: Math symbols. (line 411) +* \propto: Math symbols. (line 414) +* \protect: \protect. (line 6) +* \ps: \ps. (line 6) +* \Psi: Math symbols. (line 417) +* \psi: Math symbols. (line 420) +* \pushtabs: tabbing. (line 74) +* \put: \put. (line 6) +* \quotedblbase (,,): Text symbols. (line 47) +* \quotesinglbase (,): Text symbols. (line 48) +* \r (ring accent): Accents. (line 74) +* \raggedbottom: \raggedbottom. (line 6) +* \raggedleft: \raggedleft. (line 6) +* \raggedright: \raggedright. (line 6) +* \raisebox: \raisebox. (line 6) +* \rangle: Math symbols. (line 423) +* \rbrace: Math symbols. (line 426) +* \rbrack: Math symbols. (line 429) +* \rceil: Math symbols. (line 432) +* \Re: Math symbols. (line 435) +* \ref: \ref. (line 6) +* \refstepcounter: \refstepcounter. (line 6) +* \renewenvironment: \newenvironment & \renewenvironment. + (line 6) +* \restorecr: \obeycr & \restorecr. + (line 6) +* \reversemarginpar: Marginal notes. (line 21) +* \rfloor: Math symbols. (line 438) +* \rhd: Math symbols. (line 441) +* \rho: Math symbols. (line 444) +* \right: Math miscellany. (line 21) +* \Rightarrow: Math symbols. (line 447) +* \rightarrow: Math symbols. (line 450) +* \rightharpoondown: Math symbols. (line 453) +* \rightharpoonup: Math symbols. (line 456) +* \rightleftharpoons: Math symbols. (line 459) +* \rightmargin: itemize. (line 62) +* \rm: Font styles. (line 85) +* \rmfamily: Font styles. (line 21) +* \roman: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 18) +* \roman <1>: \alph \Alph \arabic \roman \Roman \fnsymbol. + (line 21) +* \rq: Text symbols. (line 51) +* \rule: \rule. (line 6) +* \S: Text symbols. (line 54) +* \savebox: \savebox. (line 6) +* \sbox: \sbox. (line 6) +* \sc: Font styles. (line 88) +* \scriptsize: Font sizes. (line 11) +* \scshape: Font styles. (line 41) +* \searrow: Math symbols. (line 462) +* \sec: Math functions. (line 93) +* \section: Sectioning. (line 11) +* \seename: Indexes. (line 20) +* \selectfont: Low-level font commands. + (line 65) +* \setcounter: \setcounter. (line 6) +* \setlength: \setlength. (line 6) +* \setminus: Math symbols. (line 465) +* \settodepth: \settodepth. (line 6) +* \settoheight: \settoheight. (line 6) +* \settowidth: \settowidth. (line 6) +* \sf: Font styles. (line 91) +* \sffamily: Font styles. (line 39) +* \sharp: Math symbols. (line 468) +* \shortstack: \shortstack. (line 6) +* \Sigma: Math symbols. (line 471) +* \sigma: Math symbols. (line 474) +* \signature: \signature. (line 6) +* \sim: Math symbols. (line 477) +* \simeq: Math symbols. (line 480) +* \sin: Math functions. (line 96) +* \sinh: Math functions. (line 99) +* \sl: Font styles. (line 94) +* \slshape: Font styles. (line 37) +* \small: Font sizes. (line 11) +* \smallint: Math symbols. (line 483) +* \smallskip: \bigskip \medskip \smallskip. + (line 17) +* \smallskipamount: \bigskip \medskip \smallskip. + (line 17) +* \smile: Math symbols. (line 486) +* \SPACE: \SPACE. (line 6) +* \spadesuit: Math symbols. (line 489) +* \sqcap: Math symbols. (line 492) +* \sqcup: Math symbols. (line 495) +* \sqrt[ROOT]{arg}: Math miscellany. (line 32) +* \sqsubset: Math symbols. (line 498) +* \sqsubseteq: Math symbols. (line 501) +* \sqsupset: Math symbols. (line 504) +* \sqsupseteq: Math symbols. (line 507) +* \ss (ss): Non-English characters. + (line 47) +* \SS (SS): Non-English characters. + (line 47) +* \stackrel{TEXT}{RELATION}: Math miscellany. (line 38) +* \star: Math symbols. (line 510) +* \startbreaks: \startbreaks. (line 6) +* \stepcounter: \stepcounter. (line 6) +* \stop: Command line. (line 15) +* \stopbreaks: \stopbreaks. (line 6) +* \subparagraph: Sectioning. (line 15) +* \subsection: Sectioning. (line 12) +* \subset: Math symbols. (line 513) +* \subseteq: Math symbols. (line 516) +* \subsubsection: Sectioning. (line 13) +* \succ: Math symbols. (line 519) +* \succeq: Math symbols. (line 522) +* \sum: Math symbols. (line 525) +* \sup: Math functions. (line 102) +* \supset: Math symbols. (line 528) +* \supseteq: Math symbols. (line 531) +* \surd: Math symbols. (line 534) +* \swarrow: Math symbols. (line 537) +* \symbol: Reserved characters. (line 25) +* \t (tie-after accent): Accents. (line 80) +* \TAB: \SPACE. (line 6) +* \tabbingsep: tabbing. (line 79) +* \tabcolsep: tabular. (line 112) +* \tableofcontents: Tables of contents. (line 6) +* \tan: Math functions. (line 105) +* \tanh: Math functions. (line 108) +* \tau: Math symbols. (line 540) +* \telephone: \telephone. (line 6) +* \TeX: Text symbols. (line 57) +* \textascenderwordmark: Text symbols. (line 95) +* \textasciicircum: Text symbols. (line 60) +* \textasciitilde: Text symbols. (line 63) +* \textasteriskcentered: Text symbols. (line 66) +* \textbackslash: Text symbols. (line 69) +* \textbar: Text symbols. (line 72) +* \textbardbl: Text symbols. (line 75) +* \textbf: Font styles. (line 33) +* \textbigcircle: Text symbols. (line 78) +* \textbraceleft: Text symbols. (line 81) +* \textbraceright: Text symbols. (line 84) +* \textbullet: Text symbols. (line 87) +* \textcapitalwordmark: Text symbols. (line 94) +* \textcircled{LETTER}: Text symbols. (line 90) +* \textcompwordmark: Text symbols. (line 93) +* \textcopyright: Text symbols. (line 11) +* \textdagger: Text symbols. (line 100) +* \textdaggerdbl: Text symbols. (line 103) +* \textdollar (or '$'): Text symbols. (line 106) +* \textellipsis: Text symbols. (line 32) +* \textemdash (or '---'): Text symbols. (line 109) +* \textendash (or '--'): Text symbols. (line 112) +* \texteuro: Text symbols. (line 115) +* \textexclamdown (or '!`'): Text symbols. (line 118) +* \textfloatsep: figure. (line 94) +* \textfraction: figure. (line 74) +* \textgreater: Text symbols. (line 121) +* \textheight: Page layout parameters. + (line 29) +* \textit: Font styles. (line 24) +* \textleftarrow: Text symbols. (line 127) +* \textless: Text symbols. (line 124) +* \textmd: Font styles. (line 30) +* \textnormal: Font styles. (line 45) +* \textordfeminine: Text symbols. (line 130) +* \textordmasculine: Text symbols. (line 131) +* \textparagraph: Text symbols. (line 40) +* \textperiodcentered: Text symbols. (line 134) +* \textquestiondown (or '?`'): Text symbols. (line 137) +* \textquotedblleft (or '``'): Text symbols. (line 140) +* \textquotedblright (or '''): Text symbols. (line 143) +* \textquoteleft (or '`'): Text symbols. (line 146) +* \textquoteright (or '''): Text symbols. (line 149) +* \textquotestraightbase: Text symbols. (line 152) +* \textquotestraightdblbase: Text symbols. (line 153) +* \textregistered: Text symbols. (line 156) +* \textrightarrow: Text symbols. (line 159) +* \textrm: Font styles. (line 21) +* \textsc: Font styles. (line 41) +* \textsf: Font styles. (line 39) +* \textsl: Font styles. (line 37) +* \textsterling: Text symbols. (line 44) +* \textthreequartersemdash: Text symbols. (line 162) +* \texttrademark: Text symbols. (line 165) +* \texttt: Font styles. (line 43) +* \texttwelveudash: Text symbols. (line 168) +* \textunderscore: Text symbols. (line 171) +* \textup: Font styles. (line 35) +* \textvisiblespace: Text symbols. (line 174) +* \textwidth: Page layout parameters. + (line 36) +* \th (th): Non-English characters. + (line 51) +* \TH (TH): Non-English characters. + (line 51) +* \thanks{TEXT}: \maketitle. (line 21) +* \theta: Math symbols. (line 543) +* \thicklines: \thicklines. (line 6) +* \thinlines: \thinlines. (line 6) +* \thinspace: \thinspace. (line 6) +* \thispagestyle: \thispagestyle. (line 6) +* \tilde: Math accents. (line 43) +* \times: Math symbols. (line 546) +* \tiny: Font sizes. (line 11) +* \title{TEXT}: \maketitle. (line 25) +* \to: Math symbols. (line 549) +* \today: \today. (line 6) +* \top: Math symbols. (line 552) +* \topfraction: figure. (line 79) +* \topmargin: Page layout parameters. + (line 60) +* \topnumber: figure. (line 104) +* \topsep: itemize. (line 80) +* \topskip: Page layout parameters. + (line 67) +* \totalheight: Predefined lengths. (line 12) +* \totalnumber: figure. (line 108) +* \triangle: Math symbols. (line 555) +* \triangleleft: Math symbols. (line 558) +* \triangleright: Math symbols. (line 561) +* \tt: Font styles. (line 97) +* \ttfamily: Font styles. (line 43) +* \twocolumn: \twocolumn. (line 6) +* \typein: \typein. (line 6) +* \typeout: \typeout. (line 6) +* \u (breve accent): Accents. (line 85) +* \unboldmath: Math formulas. (line 29) +* \underbar: Accents. (line 88) +* \underbrace{math}: Math miscellany. (line 42) +* \underline{text}: Math miscellany. (line 45) +* \unitlength: picture. (line 10) +* \unlhd: Math symbols. (line 564) +* \unrhd: Math symbols. (line 567) +* \Uparrow: Math symbols. (line 570) +* \uparrow: Math symbols. (line 573) +* \Updownarrow: Math symbols. (line 576) +* \updownarrow: Math symbols. (line 579) +* \uplus: Math symbols. (line 582) +* \upshape: Font styles. (line 35) +* \Upsilon: Math symbols. (line 585) +* \upsilon: Math symbols. (line 588) +* \usebox: \usebox. (line 6) +* \usecounter: \usecounter. (line 6) +* \usefont: Low-level font commands. + (line 69) +* \usepackage: Document class options. + (line 69) +* \v (breve accent): Accents. (line 95) +* \value: \value. (line 6) +* \varepsilon: Math symbols. (line 591) +* \varphi: Math symbols. (line 594) +* \varpi: Math symbols. (line 597) +* \varrho: Math symbols. (line 600) +* \varsigma: Math symbols. (line 603) +* \vartheta: Math symbols. (line 606) +* \vdash: Math symbols. (line 609) +* \vdots: Math miscellany. (line 50) +* \vdots <1>: Math miscellany. (line 51) +* \vec: Math accents. (line 46) +* \vector: \vector. (line 6) +* \vee: Math symbols. (line 612) +* \verb: \verb. (line 6) +* \Vert: Math symbols. (line 615) +* \vert: Math symbols. (line 618) +* \vfill: \vfill. (line 6) +* \vline: \vline. (line 6) +* \vspace: \vspace. (line 6) +* \wedge: Math symbols. (line 621) +* \widehat: Math accents. (line 49) +* \widehat <1>: Math accents. (line 52) +* \width: Predefined lengths. (line 6) +* \wp: Math symbols. (line 624) +* \wr: Math symbols. (line 627) +* \Xi: Math symbols. (line 630) +* \xi: Math symbols. (line 633) +* \year: \day \month \year. (line 6) +* \zeta: Math symbols. (line 636) +* \[: Math formulas. (line 16) +* \\ (for 'array'): array. (line 26) +* \\ (for 'center'): center. (line 13) +* \\ (for 'eqnarray'): eqnarray. (line 21) +* \\ (for 'flushright'): flushright. (line 12) +* \\ (for '\shortstack' objects): \shortstack. (line 20) +* \\ (tabbing): tabbing. (line 24) +* \\ for 'flushleft': flushleft. (line 12) +* \\ for letters: Letters. (line 32) +* \\ for 'tabular': tabular. (line 23) +* \\ for 'verse': verse. (line 17) +* \\ for '\author': \maketitle. (line 12) +* \\ for '\title': \maketitle. (line 26) +* \\ force line break: \\. (line 6) +* \\* (for 'eqnarray'): eqnarray. (line 26) +* \]: Math formulas. (line 16) +* \^: Reserved characters. (line 21) +* \^ (circumflex accent): Accents. (line 33) +* \_: Reserved characters. (line 11) +* \` (grave accent): Accents. (line 37) +* \` (tabbing): tabbing. (line 51) +* \{: Reserved characters. (line 11) +* \|: Math symbols. (line 11) +* \}: Reserved characters. (line 11) +* \~: Reserved characters. (line 21) +* \~ (tilde accent): Accents. (line 43) +* ^: Subscripts & superscripts. + (line 6) +* _: Subscripts & superscripts. + (line 6) +* {...} for required arguments: Overview. (line 51) +* a4paper option: Document class options. + (line 19) +* a5paper option: Document class options. + (line 19) +* abstract environment: abstract. (line 6) +* array environment: array. (line 6) +* article class: Document classes. (line 13) +* b5paper option: Document class options. + (line 19) +* book class: Document classes. (line 13) +* center environment: center. (line 6) +* description environment: description. (line 6) +* displaymath environment: displaymath. (line 6) +* displaymath environment <1>: Math formulas. (line 6) +* document environment: document. (line 6) +* draft option: Document class options. + (line 24) +* enumerate environment: enumerate. (line 6) +* eqnarray environment: eqnarray. (line 6) +* equation environment: equation. (line 6) +* equation environment <1>: Math formulas. (line 6) +* executivepaper option: Document class options. + (line 19) +* figure: figure. (line 6) +* final option: Document class options. + (line 24) +* fleqn option: Document class options. + (line 24) +* flushleft environment: flushleft. (line 6) +* flushright environment: flushright. (line 6) +* indexspace: Indexes. (line 32) +* itemize environment: itemize. (line 6) +* landscape option: Document class options. + (line 24) +* latex command: Overview. (line 18) +* <latexrefman-discuss@gna.org> email address: About this document. + (line 13) +* legalpaper option: Document class options. + (line 19) +* leqno option: Document class options. + (line 24) +* letter: letter. (line 6) +* letter class: Document classes. (line 13) +* letterpaper option: Document class options. + (line 19) +* list: list. (line 6) +* lR box: picture. (line 64) +* lrbox: lrbox. (line 6) +* lualatex command: Overview. (line 32) +* math environment: math. (line 6) +* math environment <1>: Math formulas. (line 6) +* minipage environment: minipage. (line 6) +* notitlepage option: Document class options. + (line 24) +* onecolumn option: Document class options. + (line 44) +* oneside option: Document class options. + (line 44) +* openany option: Document class options. + (line 44) +* openbib option: Document class options. + (line 24) +* openright option: Document class options. + (line 44) +* pdflatex command: Overview. (line 26) +* picture: picture. (line 6) +* printindex: Indexes. (line 28) +* quotation: quotation. (line 6) +* quote: quote. (line 6) +* report class: Document classes. (line 13) +* secnumdepth counter: Sectioning. (line 47) +* slides class: Document classes. (line 13) +* tabbing environment: tabbing. (line 6) +* table: table. (line 6) +* tabular environment: tabular. (line 6) +* textcomp package: Text symbols. (line 6) +* thebibliography: thebibliography. (line 6) +* theorem environment: theorem. (line 6) +* titlepage environment: titlepage. (line 6) +* titlepage option: Document class options. + (line 24) +* twocolumn option: Document class options. + (line 44) +* twoside option: Document class options. + (line 44) +* verbatim environment: verbatim. (line 6) +* verse environment: verse. (line 6) +* xelatex command: Overview. (line 35) + + + +Tag Table: +Node: Top1688 +Node: About this document3542 +Node: Overview4822 +Node: Starting & ending7194 +Node: Document classes7756 +Node: Document class options8332 +Node: Typefaces10920 +Node: Font styles11362 +Node: Font sizes13773 +Node: Low-level font commands15008 +Node: Layout17462 +Node: \onecolumn17931 +Node: \twocolumn18144 +Node: \flushbottom19648 +Node: \raggedbottom20010 +Node: Page layout parameters20296 +Node: Sectioning23327 +Node: Cross references24868 +Node: \label25299 +Node: \pageref26161 +Node: \ref26460 +Node: Environments26850 +Node: abstract28306 +Node: array28547 +Node: center29876 +Node: \centering30353 +Node: description31193 +Node: displaymath32007 +Node: document32575 +Node: enumerate32832 +Node: eqnarray34121 +Node: equation35511 +Node: figure35884 +Node: flushleft39705 +Node: \raggedright40190 +Node: flushright40749 +Node: \raggedleft41237 +Node: itemize41794 +Node: letter45425 +Node: list45663 +Node: math46600 +Node: minipage46902 +Node: picture48094 +Node: \circle52093 +Node: \makebox (picture)52426 +Node: \framebox (picture)53121 +Node: \dashbox53611 +Node: \frame54140 +Node: \line54466 +Node: \linethickness54935 +Node: \thicklines55356 +Node: \thinlines55666 +Node: \multiput55968 +Node: \oval56334 +Node: \put56948 +Node: \shortstack57195 +Node: \vector57669 +Node: quotation57975 +Node: quote58431 +Node: tabbing58863 +Node: table62029 +Node: tabular62919 +Node: \multicolumn67008 +Node: \cline67805 +Node: \hline68125 +Node: \vline68439 +Node: thebibliography68752 +Node: \bibitem69894 +Node: \cite70625 +Node: \nocite71124 +Node: Using BibTeX71408 +Node: theorem72900 +Node: titlepage73286 +Node: verbatim73888 +Node: \verb74515 +Node: verse75065 +Node: Line breaking75559 +Node: \\76617 +Node: \obeycr & \restorecr77087 +Node: \newline77491 +Node: \- (hyphenation)77781 +Node: \fussy78391 +Node: \sloppy78784 +Node: \hyphenation79113 +Node: \linebreak & \nolinebreak79740 +Node: Page breaking80394 +Node: \cleardoublepage81002 +Node: \clearpage81409 +Node: \newpage81685 +Node: \enlargethispage81920 +Node: \pagebreak & \nopagebreak82447 +Node: Footnotes83141 +Node: \footnote83759 +Node: \footnotemark84277 +Node: \footnotetext84843 +Node: Symbolic footnotes85328 +Node: Footnote parameters85885 +Node: Definitions86620 +Node: \newcommand & \renewcommand87335 +Node: \newcounter88549 +Node: \newlength89017 +Node: \newsavebox89529 +Node: \newenvironment & \renewenvironment89836 +Node: \newtheorem91102 +Node: \newfont92068 +Node: \protect92548 +Node: Counters93411 +Node: \alph \Alph \arabic \roman \Roman \fnsymbol94655 +Node: \usecounter95699 +Node: \value96061 +Node: \setcounter96446 +Node: \addtocounter96737 +Node: \refstepcounter97033 +Node: \stepcounter97378 +Node: \day \month \year97629 +Node: Lengths98174 +Node: \setlength98743 +Node: \addtolength99085 +Node: \settodepth99380 +Node: \settoheight99655 +Node: \settowidth99934 +Node: Predefined lengths100198 +Node: Making paragraphs100713 +Node: \indent101285 +Node: \noindent101757 +Node: \parskip102043 +Node: Marginal notes102301 +Node: Math formulas103931 +Node: Subscripts & superscripts105713 +Node: Math symbols106180 +Node: Math functions112993 +Node: Math accents113936 +Node: Spacing in math mode114906 +Node: Math miscellany115537 +Node: Modes117035 +Node: Page styles118866 +Node: \maketitle119360 +Node: \pagenumbering120430 +Node: \pagestyle120843 +Node: \thispagestyle121983 +Node: Spaces122289 +Node: \hspace123348 +Node: \hfill123907 +Node: \SPACE124304 +Node: \AT124770 +Node: \thinspace125227 +Node: \/125486 +Node: \hrulefill126323 +Node: \dotfill126585 +Node: \addvspace126809 +Node: \bigskip \medskip \smallskip127301 +Node: \vfill127979 +Node: \vspace128284 +Node: Boxes128714 +Node: \mbox129433 +Node: \fbox and \framebox129720 +Node: lrbox130523 +Node: \makebox130840 +Node: \parbox131553 +Node: \raisebox132882 +Node: \savebox133479 +Node: \sbox133894 +Node: \usebox134343 +Node: Special insertions134601 +Node: Reserved characters135245 +Node: Text symbols136648 +Node: Accents139955 +Node: Non-English characters142428 +Node: \rule143099 +Node: \today143526 +Node: Splitting the input143971 +Node: \include144612 +Node: \includeonly145199 +Node: \input145691 +Node: Front/back matter146182 +Node: Tables of contents146387 +Node: \addcontentsline147415 +Node: \addtocontents148315 +Node: Glossaries148826 +Node: Indexes149345 +Node: Letters150972 +Node: \address152913 +Node: \cc153518 +Node: \closing153754 +Node: \encl153987 +Node: \location154179 +Node: \makelabels154441 +Node: \name154730 +Node: \opening154952 +Node: \ps155277 +Node: \signature155460 +Node: \startbreaks155743 +Node: \stopbreaks155965 +Node: \telephone156180 +Node: Terminal input/output156412 +Node: \typein156677 +Node: \typeout157258 +Node: Command line157881 +Node: Document templates158576 +Node: book template158980 +Node: beamer template159323 +Node: tugboat template159862 +Node: Concept Index162012 +Node: Command Index198773 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/latex2man.info b/Master/texmf-dist/doc/info/latex2man.info new file mode 100644 index 00000000000..20f024d7e05 --- /dev/null +++ b/Master/texmf-dist/doc/info/latex2man.info @@ -0,0 +1,1055 @@ +This is latex2man.info, produced by makeinfo version 4.13 from +latex2man.texi. + +INFO-DIR-SECTION Man-pages +START-INFO-DIR-ENTRY +* Latex2man: (latex2man). Its Man-Page +END-INFO-DIR-ENTRY + + +File: latex2man.info, Node: Top, Next: Description, Prev: (dir), Up: (dir) + +latex2man +********* + +Latex2man is a tool to translate UNIX manual pages written with +LaTeXinto a format understood by the UNIX man(1)-command. +Alternatively HTML, TexInfo, or LaTeX code can be produced too. Output +of parts of the text may be suppressed using the conditional text +feature (for this, LaTeX generation may be used). + +Synopsis +======== + +latex2man [ -tTRANSFILE ] [ -cCSSFILE ] [ -HMTL ] [ -h ] [ -V ] [ +-CNAME ] +[ -aCHAR ] INFILE OUTFILE + +* Menu: + +* Description:: +* Options:: +* Files:: +* See Also:: +* LaTeX commands:: +* Package Options:: +* Package Specific Environments:: +* Accepted LaTeX Environments:: +* Package Specific Macros:: +* Accepted Macros from the rcsinfo Package:: +* Accepted LaTeX Macros:: +* Conditional Text:: +* Translation of User Defined Macros:: +* Verbatim Environment:: +* Subsection works:: +* Subsubsection works:: +* Subsubsection still works:: +* General Remarks:: +* CSS classnames:: +* Some Bug Fix Tests:: +* Requirements:: +* Changes:: +* Version:: +* License and Copyright:: +* Author:: + + +File: latex2man.info, Node: Description, Next: Options, Prev: Top, Up: Top + +Description +=========== + +Latex2man reads the file INFILE and writes OUTFILE. The input must be +a LaTeX document using the latex2man LaTeXpackage. Latex2man +translates that document into the troff(1) format using the -man macro +package. + + Using the -H option, HTML code can be produced, instead of troff(1). +With this option you can, optionally, specify a CSSFILE as an argument. +CSS (Cascading Style Sheets) allows you to control the appearance of +the resulting HTML page. See below for the names of CSS classes that +are included in the HTML tags as attributes. + + Using the -T option, TexInfo code can be produced, instead of +troff(1). + + Using the -M option, troff(1) input is produced. + + Using the -L option, LaTeX ouput can be produced, instead of +troff(1). + + +File: latex2man.info, Node: Options, Next: Files, Prev: Description, Up: Top + +Options +======= + +`-tTRANSFILE' + Translation for user defined LaTeX macros. + +`-cCSSFILE' + If you use the -H you can also specify a file that contains CSS + style sheets. The link to the CSS file is inserted into the + generatedHTML output using the specified CSSFILE filename. + +`-M' + Produce output suitable for the man(1) command (default). + +`-H' + Instead of producing output suitable for the man(1) command, HTML + code is produced (despite the name of the command). + +`-T' + Instead of producing output suitable for the man(1) command, + TexInfo code is produced (despite the name of the command). The + generated `.texi'-file may be processed with makeinfo(1) (to + produce an `.info'-file) which in turn may be installed using + install-info(1). The Info tags @dircategory and @direntry are + provided. + +`-L' + The LaTeX source is written to the OUTFILE. This is useful in + conjunction with the -CNAME option. + +`-CNAME' + Output the conditional text for NAME. If more than one name + should be given use quotes: -C'NAME1 NAME2 ...' + The following names are defined automatically: + * -H defines HTML + + * -T defines TEXI + + * -M defines MAN + + * -L defines LATEX + +`-aCHAR' + Is used only in conjunction with -T. + Background: + TexInfo ignores all blanks before the first word on a new line. In + order to produce some additional space before that word (using + \SP) some character has to be printed before the additional space. + By default this is a . (dot). The CHAR specifies an alternative + for that first character. Giving a blank to -a supresses the + indentation of a line. + Note: only for the first \SP of a series that CHAR is printed. + +`-h' + Show a help text. + +`-V' + Show version information. + + +File: latex2man.info, Node: Files, Next: See Also, Prev: Options, Up: Top + +Files +===== + +``latex2man.tex'' + The LaTeX file containing this Man-page. + +``latex2man.sty'' + The LaTeX package defining the environments and commands. + +``latex2man.cfg'' + The configuration file for Latex2man LaTeX-package. + +``latex2man.css'' + File containing example CSS definitions. + +``latex2man.trans'' + File containing example translations of user defined LaTeX macros. + +``fancyheadings.sty'' + A LaTeX package used to typeset head- and foot lines. + +``fancyhdr.sty'' + A LaTeX package used to typeset head- and foot lines. + +``rcsinfo.sty'' + A LaTeX package used to extract and use RCS version control + information in LaTeX documents. + +``latex2man.pdf'' + The PDF version of this document. + + +File: latex2man.info, Node: See Also, Next: LaTeX commands, Prev: Files, Up: Top + +See Also +======== + +LaTeX,TexInfo, troff(1), groff(1), makeinfo(1). + + +File: latex2man.info, Node: LaTeX commands, Next: Package Options, Prev: See Also, Up: Top + +LaTeX commands +============== + +The LaTeX package latex2man is used to write the Man-pages with +LaTeX.Since we translate into other text formats, not all LaTeX stuff +can be translated. + + +File: latex2man.info, Node: Package Options, Next: Package Specific Environments, Prev: LaTeX commands, Up: Top + +Package Options +--------------- + +The latex2man package accepts the following options: + +`fancy' + use the LaTeX package fancyheadings. + +`fancyhdr' + use the LaTeX package fancyhdr. + +`nofancy' + neither the LaTeX package fancyheadings nor fancyhdr are used. + + The default option may be specified in the file latex2man.cfg. + + +File: latex2man.info, Node: Package Specific Environments, Next: Accepted LaTeX Environments, Prev: Package Options, Up: Top + +Package Specific Environments +----------------------------- + +The following environments are provided by the package: +`\begin{Name}{chapter}{name}{author}{info}{title}' + The Name environment takes five arguments: 1. the Man-page + chapter, 2. the name of the Man-page, 3. the author, 4. some + short information about the tool printed in the footline of the + Man-page, and 5. a text which is used as title, for HTML and + LaTeX (it's ignored for output of the Man-page or TeXinfo. The Name + environment must be the first environment in the document. + Processing starts with this environment. Any text before this is + ignored (exception: the setVersion and setDate commands). (Note: + all arguments of \begin{Name} must be written on one line). + +`\begin{Table}[width]{columns}' + The Table environment takes two arguments: the first optional one + specifies a width of the last column, the second one gives the + number of columns. For example: + + \begin{Table}[2cm]{3} + Here & am & I \\\hline + A 1 & A 2 & A 3 1 2 3 4 5 A 3 1 2 3 4 5 \\ + B 1 & B 2 & B 3 \\ + \end{Table} + + will be typeset as: + + Here am I + A 1 A 2 A 3 1 2 3 4 5 A 3 1 + 2 3 4 5 + B 1 B 2 B 3 + + If no optional _width_ argument is given, all entries are typeset + left justified. The _width_ is a length measured absolutly in + _cm_. Processing with LaTeX a p{width} column is typeset as last + column. The translation to troff(1) commands results in a lw(width) + column specification. Translating to HTML and TexInfo ignores the + _width_ parameter. + + \hline may be used. + + If the Man-page is formatted with troff(1) and tables are used, the + tbl(1) preprocessor should be called, usually by giving a -t to + the call of troff(1). When viewing the generated manula page + using man(1), tbl(1) is called automatically. + +`\begin{Description}' + is the same as \begin{description} + +`\begin{Description}[label]' + is similar to \begin{description}, but the item labels have at + minimum the size of the (optional) word _label_. The difference + is visible only in the DVI and PDF-output, not in the troff, + TexInfo or HTML output. + `a' + |a \begin{description} + + `ab' + |ab + + `abc' + |abc + + `a' + |a \begin{Description} + + `ab' + |ab + + `abc' + |abc + + `a' + |a \begin{Description}[aa] + + `ab' + |ab + + `abc' + |abc + + +File: latex2man.info, Node: Accepted LaTeX Environments, Next: Package Specific Macros, Prev: Package Specific Environments, Up: Top + +Accepted LaTeX Environments +--------------------------- + +The following environments are accepted: + * description + + * enumerate + + * itemize + + * verbatim + + * center + + They may be nested: + * Itemize and nested center: + + A centered line. + Another centered line. + + * Another item an nested enumerate + 1. a + + 2. b + + +File: latex2man.info, Node: Package Specific Macros, Next: Accepted Macros from the rcsinfo Package, Prev: Accepted LaTeX Environments, Up: Top + +Package Specific Macros +----------------------- + +The following commands are provided: +`\Opt{option}' + Option: \Opt{-o} will be typeset as -o. + +`\Arg{argument}' + Argument: \Arg{filename} will be typeset as FILENAME. + +`\OptArg{option}{argument}' + Option with Argument: + \OptArg{-o}{filename} will be typeset as -oFILENAME. + +`\OptoArg{option}{argument}' + Option with optional Argument: + \OptoArg{-o}{filename} will be typeset as -o[FILENAME]. + +`\oOpt{option}' + Optional option, e.g. \oOpt{-o} will be typeset as [ -o ]. + +`\oArg{argument}' + Optional argument, e.g. \oArg{filename} will be typeset as [ + FILENAME ]. + +`\oOptArg{option}{argument}' + Optional option with argument, e.g. + \oOptArg{-o}{filename} will be typeset as [ -oFILENAME ]. + +`\oOptoArg{option}{argument}' + Optional option with optional argument, e.g. + \oOptoArg{-o}{filename} will be typeset as [ -o[FILENAME] ]. + +`\File{filename}' + used to typeset filenames, e.g. \File{filename} will be typeset + as `filename'. + +`\Prog{prog}' + used to typeset program names, e.g. \Prog{latex2man} will be + typeset as latex2man. + +`\Cmd{command}{chapter}' + used to typeset references to other commands, e.g. + \Cmd{latex2man}{1} will be typeset as latex2man(1). + +`\Bar' + is typeset as |. + +`\Bs' + (BackSlash) is typeset as \. + +`\Tilde' + is typeset as a ~. + +`\Dots' + is typeset as ... + +`\Bullet' + us typeset as *. + +`\setVersion{..}' + set .. as version information. + +`\setVersionWord{..}' + set .. for the word _Version:_ in the footline. + The default is \setVersionWord{Version:}. + +`\Version' + returns the version information. + +`\setDate{..}' + sets .. as date information. + +`\Date' + returns the date information. + +`\Email{..}' + use to mark an Email address: + \Email{Juergen.Vollmer@informatik-vollmer.de} is typeset as: + <Juergen.Vollmer@informatik-vollmer.de>. + +`\URL{..}' + use to mark an URL: \URL{http://www.foo.de/\Tilde vollmer} is + typeset as + `http://www.foo.de/~vollmer'. + +`\LatexManEnd' + the input file is read and processed until reading end-of-file or + \LatexManEnd (at the beginning of a line). LaTeXignores this + command. + +`\Lbr, \Rbr' + is typeset as [ and ] (these variants are needed only somtimes + like in + \item[FooBar\LBr xx \Lbr]. Usually [ ] will work. + +`\LBr, \RBr' + is typeset as { and } (these variants are needed when using { or } + as arguments to macros. + +`\Circum' + is typeset as ^. + +`\Percent' + is typeset as %. + +`\TEXbr' + If processed with LaTeX causes a linebreak (i.e. is equivalent to + \\).In the output of latex2man this macro is ignored. + +`\TEXIbr' + If TexInfo output is generated, causes a linebreak (i.e. is + equivalent to \\),otherwise ignored. + +`\MANbr' + If Man-Page output is generated, causes a linebreak (i.e. is + equivalent to \\),otherwise ignored. + +`\HTMLbr' + If HTML output is generated, causes a linebreak (i.e. is + equivalent to \\),otherwise ignored. + +`\medskip' + An empty line. + +`\SP' + Produces some extra space, works also at the beginning of lines. + The code of the second line looks like: \SP abc \SP\SP xx\\: + abc xx + . abc xx + . . abc xx + + Note: Due to some "problems" with TexInfo, the lines starting with + \SP have a leading . (dot) in the TexInfo output, see -aCHAR. + + +File: latex2man.info, Node: Accepted Macros from the rcsinfo Package, Next: Accepted LaTeX Macros, Prev: Package Specific Macros, Up: Top + +Accepted Macros from the rcsinfo Package +---------------------------------------- + +`\rcsInfo $Id ...$' + if the LaTeX package `rcsinfo' is used, this command is used to + extract the date of the Man-page. + +`\rcsInfoLongDate' + if the LaTeX package `rcsinfo' is used, this command is used to + typeset the date coded in the $Id ..$ string. + + +File: latex2man.info, Node: Accepted LaTeX Macros, Next: Conditional Text, Prev: Accepted Macros from the rcsinfo Package, Up: Top + +Accepted LaTeX Macros +--------------------- + +The following standard LaTeX commands are accepted: +`\section{..}' + The section macro takes one argument: the name of the Man-page + section. Each Man-page consists of several sections. Usually + there are the following sections in a Man-page: _Name_ (special + handling as environment, c.f. above), _Synopsis_, _Description_, + _Options_, _Files_, _See Also_, _Diagnostics_, _Return Values_, + _Bugs_, _Author_, _version_, etc. + + _Synopsis_ must be the first section after the Name environment. + + Note: Do not use LaTeX-macrosin section names. + +`\subsection{..}' + works as well as + +`\subsubsection{..}' + those. + +`\emph{..}' + \emph{example} is typeset as _example_. + +`\textbf{..}' + \textbf{example} is typeset as *example*. + +`\texttt{..}' + \textt{example} is typeset as example. + +`\underline{..}' + \underline{example} is typeset as example of underline. + +`\date{..}' + uses .. as date. + +`\verb+..+' + but only + is allowed as delimiter. + +`$<$' + is typeset as <. + +`$>$' + is typeset as >. + +`$<=$' + is typeset as <=. + +`$>=$' + is typeset as >=. + +`$=$' + is typeset as =. + +`$<>$' + is typeset as <>. + +`$\ge$' + is typeset as $>=$. + +`$\le$' + is typeset as $<=$. + +`$\leftarrow$' + is typeset as $<-$. + +`$\Leftarrow$' + is typeset as $<==$. + +`$\rightarrow$' + is typeset as $->$. + +`$\Rightarrow$' + is typeset as $==>$. + +`\{' + is typeset as {. + +`\}' + is typeset as }. + +`\$' + is typeset as $. + +`\$' + is typeset as $,should be used inside macro arguments. + +`\_' + is typeset as _. + +`\&' + is typeset as &. + +`\#' + is typeset as #. + +`\%' + is typeset as %. + +`\,' + is typeset as smaller blank - - (between the two -) + +`\-' + is used to mark hyphenation in a word. + +`\\' + is typeset as a linebreak or marks the end of a column in the Table + environment. + +`\' + (a \ followed by a blank) is typeset as a blank, although it + cannot be used at the beginning of a line to make indentation (see + the \SP command). + +`~' + is typeset as a blank. + +`\copyright' + is typeset as (C). + +`\noindent' + +`\hline' + inside a Table environment. + +`\item' + inside a itemize, enumerate, or description environment. + +`\today' + 22 December 2010(see also the rcsinfo LaTeXpackage). + +`\ss,\"a, ...' + \ss = ss, \"a= a", \"o= o", \"u= u", \"A= A", \"O= O", \"U= U". It + is allowed to surround these macros in { and } in all places, even + inside other macros, e.g. + . \textbf{\"a\"o\"u\"A\"O\"U\ss} + . \textbf{\"a}{\"o}{\"u}{\"A}{\"O}{\"U}{\ss}} + . \textbf{äöüÄÖÜß} + *a"o"u"A"O"U"ss a"o"u"A"O"U"ss a"o"u"A"O"U"ss* + + If these letters are used in their LATIN-1 8-bit coding, they are + translated into the equivalent letter of the desired output format. + E.g. A" becomes Ä in HTML and @"A in texinfo. + + +File: latex2man.info, Node: Conditional Text, Next: Translation of User Defined Macros, Prev: Accepted LaTeX Macros, Up: Top + +Conditional Text +---------------- + +latex2man preprocesses the LaTeX input to allow text to be used +conditionally. A special sort of LaTeX comment is used for that purpose. + * %@% IF _condition_ %@% + + * %@% ELSE %@% + + * %@% END-IF %@% + + A line must contain only such a comment and nothing else. _condition_ +is a boolean expression containing "names" and operators. The names +given with the -CNAME option have the value "true", while all other +names occuring in the expression are assumed to be "false". If the +evaluation of the boolean expression results in the value "true", the +text in the "then"-part is used and the text in the optional +"else"-part is skipped (and vice versa). The IF/ELSE/END-IF may be +nested. As boolean operators the following are allowed: + +|| boolean or +&& boolean and +! negation + + ( and ) for grouping are allowed. + +For example: +%@% IF abc %@% +abc set +%@% IF xyz %@% +xyz set +%@% ELSE %@% +xyz NOT set +%@% END-IF %@% +%@% ELSE %@% +abc NOT set +%@% IF xyz || !XYZ %@% +xyz OR !XYZ set +%@% ELSE %@% +xyz OR !XYZ NOT set +%@% END-IF %@% +%@% END-IF %@% + +Run this manual page through latex2man with e.g. -C'ABC XYZ' and have +a look to the generated output. (If simply running the LaTeX-document +through LaTeX,all lines are shown in the .dvi file). +abc NOT set +xyz OR !XYZ set +To check the conditional text feature, when latex2man is called with +`-CHTML' + the lines 1a, 2b, 3b, and 4b; + +`-CTEXI' + the lines 1b, 2a, 3b, and 4b; + +`-CMAN' + the lines 1b, 2b, 3a, and 4b; + +`-CLATEX' + the lines 1b, 2b, 3b, and 4a; + +`calling LaTeX without preprocessing' + all lines + should be shown: + + 1b. The HTML conditional was not set. + + 2a. This text occurs only when viewing the TEXI output + + 3b. The MAN conditional was not set. + + 4b. The LATEX conditional was not set. + + +File: latex2man.info, Node: Translation of User Defined Macros, Next: Verbatim Environment, Prev: Conditional Text, Up: Top + +Translation of User Defined Macros +---------------------------------- + +The user macro translation file (given by the [ -tTRANSFILE ]) contains +Perl commands specifying the translation of LaTeX macros defined by the +user. These macros may have none, one or two arguments. The following +code is expected: + + * Comments start with a # up to the end of the line. + + * For a macro \foo with no arguments, the following code must be + specified: + `Translation to Man-Pages' + $manMacro{'foo'} = '...'; + + `Translation to HTML' + $htmlMacro{'foo'} = '...'; + + `Translation to TexInfo' + $texiMacro{'foo'} = '...'; + + where ... is the translation. + + * For a macro \foo{..} with one argument, the following code must be + specified: + `Translation to Man-Pages' + $manMacro1a{'foo'} = '...'; + $manMacro1b{'foo'} = '...'; + + `Translation to HTML' + $htmlMacro1a{'foo'} = '...'; + $htmlMacro1b{'foo'} = '...'; + + `Translation to TexInfo' + $texiMacro1a{'foo'} = '...'; + $texiMacro1b{'foo'} = '...'; + + where ... is the translation. The 1a code is used before the + argument, while 1b is typeset after the argument is set. + + * For a macro \foo{..}{..} with two arguments, the following code + must be specified: + `Translation to Man-Pages' + $manMacro2a{'foo'} = '...'; + $manMacro2b{'foo'} = '...'; + $manMacro2c{'foo'} = '...'; + + `Translation to HTML' + $htmlMacro2a{'foo'} = '...'; + $htmlMacro2b{'foo'} = '...'; + $htmlMacro2c{'foo'} = '...'; + + `Translation to TexInfo' + $texiMacro2a{'foo'} = '...'; + $texiMacro2b{'foo'} = '...'; + $texiMacro2c{'foo'} = '...'; + + where ... is the translation. The 2a code is used before the first + argument, 2b between the two arguments and 2c is typeset after the + second argument is set. + + * The file `latex2man.trans' contains some example code. + + +File: latex2man.info, Node: Verbatim Environment, Next: Subsection works, Prev: Translation of User Defined Macros, Up: Top + +Verbatim Environment +-------------------- + +.This +. {is} +. \texttt{a} +. $test$ +. _of_ +.verbatim +.<this is no HTML tag> and no @* TexInfo command + +File: latex2man.info, Node: Subsection works, Next: Subsubsection works, Prev: Verbatim Environment, Up: Top + +Subsection works +---------------- + +This is a \subsection. + + +File: latex2man.info, Node: Subsubsection works, Next: Subsubsection still works, Prev: Subsection works, Up: Top + +Subsubsection works +................... + +This is a \subsubsection. + + +File: latex2man.info, Node: Subsubsection still works, Next: General Remarks, Prev: Subsubsection works, Up: Top + +Subsubsection still works +......................... + +This is another \subsubsection. + + +File: latex2man.info, Node: General Remarks, Next: CSS classnames, Prev: Subsubsection still works, Up: Top + +General Remarks +--------------- + + 1. Empty lines are typeset as paragraph separators. + + 2. The arguments of the LaTeX commands must not be split over several + lines. + + 3. Do not nest calls to macros. + + 4. Except the mentioned environment and macros, the usage of other + LaTeX environments or macros are not translated. Their usage will + cause garbage in the output. + + 5. latex2man requires Perl version >= 5.0004_03. + + 6. If you want to install the system with the distributed `Makefile', + you need GNU-make. If you don't have it, you should execute the + steps shown in the `Makefile' manually. + + +File: latex2man.info, Node: CSS classnames, Next: Some Bug Fix Tests, Prev: General Remarks, Up: Top + +CSS classnames +============== + +The table below shows the names of CSS classes that will be included in +the HTML tags as attributes. You can specify the CSS style properties +in the CSSFILE for these classes: + + +*HTML tag* *Class* *Style applies to* +body the body of the HTML + page +h1 titlehead the title at the top + of the HTML page + specified as an + argument to the _Name_ + environment +h4 authorhead the author at the top + of the HTML page + specified as an + argument to the _Name_ + environment +h4 datehead the date at the top + of the HTML page +h4 versionhead the man page version + at the top of the + HTML page specified + as an argument to the + _setVersion_ macro +h2 sectionname a section title + specified as an + argument to the + _section_ macro +h4 subsectionname a subsection title + specified as an + argument to the + _subsection_ macro +h5 subsubsectionname a subsubsection title + specified as an + argument to the + _subsubsection_ macro +font progname a program name + specified as an + argument to the _Prog_ + macro +font filename a file name specified + as an argument to the + _File_ macro +font commandname a command name + specified as an + argument to the _Cmd_ + macro +font textstyle all text that is not + an argument to some + LaTeX or latex2man + macro +font optstyle a name of an option + specified as an + argument to the _Opt_, + _oOpt_, _OptArg_, + _oOptArg_ or + _oOptoArg_ macros +font argstyle a name of an argument + specified as an + argument to the _Arg_, + _oArg_, _OptArg_, + _oOptArg_ or + _oOptoArg_ macros +a, font urlstyle a URL specified as an + argument to the _URL_ + macro +a, font urlstyle.link subclass of urlstyle + class +a, font urlstyle.visited subclass of urlstyle + class +a, font urlstyle.hover subclass of urlstyle + class +a, font emailstyle an email specified as + an argument to the + _Email_ macro +a, font emailstyle.link subclass of + emailstyle class +a, font emailstyle.visited subclass of + emailstyle class +a, font emailstyle.hover subclass of + emailstyle class +table tablestyle a table specified as + a _Table_ environment +tr rowstyle a row of a table + specified as a _Table_ + environment +td cellstyle a cell of a table + specified as a _Table_ + environment + + +File: latex2man.info, Node: Some Bug Fix Tests, Next: Requirements, Prev: CSS classnames, Up: Top + +Some Bug Fix Tests +================== + +`Leading . and '' + Now leading . and ' in generation troff output should work + propperly, since a \& is added. Therfore the \Dot macro has been + deleted. + Thanks to <Frank.Schilder@Mathematik.Tu-Ilmenau.De>. + Testcase 1: + `'\n'' + ... + Testcase 2: + `.foobar' Testcase 3: + ... abc ...abc . efg ' 123 + +`% in verbatim' + A % in a \verb and verbatim-environment was not emitted correctly. + Thanks to Aleksey Nogin <nogin@cs.caltech.edu> for the bug report + and bug fix. + + % abc + + . % abc % + but ignore comments following this: + + + +File: latex2man.info, Node: Requirements, Next: Changes, Prev: Some Bug Fix Tests, Up: Top + +Requirements +============ + +`Perl' + latex2man requires Perl version >= 5.0004_03. + +`Make' + If you want to install the system with the distributed `Makefile', + you need GNU-make. If you don't have it, you should execute the + steps shown in the `Makefile' manually. + +`LaTeX' + LaTeX2e is required. + + +File: latex2man.info, Node: Changes, Next: Version, Prev: Requirements, Up: Top + +Changes +======= + +Please check the file `latex2man-CHANGES' for the list of changes and +acknowledgment to people contributing bugfixes or enhancements. + + +File: latex2man.info, Node: Version, Next: License and Copyright, Prev: Changes, Up: Top + +Version +======= + +Version: 1.24 of 2010/12/22. + + +File: latex2man.info, Node: License and Copyright, Next: Author, Prev: Version, Up: Top + +License and Copyright +===================== + +`Copyright' + (C)1998, Dr. Ju"rgen Vollmer, Viktoriastrasse 15, D-76133 + Karlsruhe, Germany, + <Juergen.Vollmer@informatik-vollmer.de> + + The actual version of Latex2man may be found on my homepage + `http://www.informatik-vollmer.de/software/latex2man.html'. + +`License' + This program can be redistributed and/or modified under the terms + of the LaTeX Project Public License Distributed from CTAN archives + in directory `macros/latex/base/lppl.txt'; either version 1 of the + License, or any later version. + +`Misc' + If you find this software useful, please send me a postcard from + the place where you are living. + + +File: latex2man.info, Node: Author, Prev: License and Copyright, Up: Top + +Author +====== + +Dr. Ju"rgen Vollmer +Viktoriastrasse 15 +D-76133 Karlsruhe +Email: <Juergen.Vollmer@informatik-vollmer.de> +WWW: `http://www.informatik-vollmer.de'. + + + +Tag Table: +Node: Top187 +Node: Description1287 +Node: Options2141 +Node: Files4057 +Node: See Also4868 +Node: LaTeX commands5024 +Node: Package Options5307 +Node: Package Specific Environments5759 +Node: Accepted LaTeX Environments8547 +Node: Package Specific Macros9079 +Node: Accepted Macros from the rcsinfo Package12665 +Node: Accepted LaTeX Macros13162 +Node: Conditional Text16231 +Node: Translation of User Defined Macros18269 +Node: Verbatim Environment20383 +Node: Subsection works20709 +Node: Subsubsection works20884 +Node: Subsubsection still works21073 +Node: General Remarks21279 +Node: CSS classnames22017 +Node: Some Bug Fix Tests27698 +Node: Requirements28436 +Node: Changes28850 +Node: Version29089 +Node: License and Copyright29232 +Node: Author30026 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/mf2pt1.info b/Master/texmf-dist/doc/info/mf2pt1.info new file mode 100644 index 00000000000..796a095453d --- /dev/null +++ b/Master/texmf-dist/doc/info/mf2pt1.info @@ -0,0 +1,714 @@ +This is mf2pt1.info, produced by makeinfo version 4.13 from mf2pt1.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* mf2pt1:: Produce PostScript Type 1 fonts from Metafont source +END-INFO-DIR-ENTRY + + *mf2pt1*: Produce PostScript Type 1 fonts from Metafont source + + Copyright 2012 Scott Pakin. + + +File: mf2pt1.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) + +mf2pt1 +****** + +`mf2pt1' is a tool that lets font designers design PostScript Type 1 +fonts using the Metafont language. The same source file can be used +to produce both Type 1 (`.pfb') and bitmap (`.pk') fonts. + +* Menu: + +* Introduction:: Introduction to mf2pt1 +* Usage:: How to use mf2pt1 +* Future Work:: Features I may one day add to mf2pt1 +* Acknowledgments:: People who helped with mf2pt1 + + +File: mf2pt1.info, Node: Introduction, Next: Usage, Prev: Top, Up: Top + +1 Introduction +************** + +Metafont is a high-level, mathematically oriented language for +producing fonts. The Metafont interpreter produces device-dependent +bitmaps, which render well at the target resolution on the target +device, but poorly at other resolutions or on other devices. Adobe's +PostScript Type 1 font format is the de facto font standard for +printers these days. It is a vector format, which implies that it +scales better than bitmaps, and it delegates the device- and +resolution-dependent tweaking from the font source to the target +device's PostScript renderer. However, Type 1 fonts are extremely +difficult to code by hand. Usually, one uses a WYSIWYG program to +design a Type 1 font. Metafont , with its font-specific programming +language, is an elegant alternative. A font designer can write +reusable subroutines for repeated features, such as serifs and accents. +He can define a font in terms of arbitrary parameters, such as +"boldness" or "italicness", making it trivial to produce entire +families of fonts from a single source (hence the "meta" in the name +"Metafont "). Ideally, we would like to design a font using the +Metafont language, but produce PostScript Type 1 output instead of +bitmaps. + +`mf2pt1' helps bridge the gap between Metafont and Type 1 fonts. +`mf2pt1' facilitates producing PostScript Type 1 fonts from a Metafont +source file. It is _not_, as the name may imply, an automatic +converter of arbitrary Metafont fonts to Type 1 format. `mf2pt1' +imposes a number of restrictions on the Metafont input. If these +restrictions are met, `mf2pt1' will produce valid Type 1 output. + +* Menu: + +* Requirements:: Pre-installation checklist +* Installation:: How to install mf2pt1 + + +File: mf2pt1.info, Node: Requirements, Next: Installation, Prev: Introduction, Up: Introduction + +1.1 Requirements +================ + +Before using `mf2pt1', you will need to install the following programs: + +Perl + `mf2pt1' is written in Perl. You will need a Perl interpreter to + run it. + +MetaPost + `mf2pt1' actually uses MetaPost, not Metafont , to produce + PostScript output. Specifically, you will need the `mpost' + executable and the `mfplain.mp' base file. + +Type 1 Utilities + Producing properly encoded Type 1 fonts is tricky. `mf2pt1' + delegates the effort to the Type 1 Utilities, specifically, to the + `t1asm' program within that suite. + +FontForge (optional) + FontForge is a WYSIWYG, but scriptable, Type 1 font-editing + program. Although FontForge is not strictly required for `mf2pt1' + to produce a Type 1 font, `mf2pt1' uses FontForge when available + to autohint the generated Type 1 font, thereby making it look + better especially at lower resolutions. + + Perl is available from the Comprehensive Perl Archive Network +(http://www.cpan.org); MetaPost and the Type 1 utilities are available +from the Comprehensive TeX Archive Network (http://www.ctan.org); and, +FontForge is available from `http://fontforge.sourceforge.net/'. In +addition, MetaPost's home page is +`http://cm.bell-labs.com/who/hobby/MetaPost.html', and the Type 1 +utilities' home page is `http://www.lcdf.org/type/'. + + Besides being useful for autohinting fonts, FontForge enables a font +designer to hint fonts manually for additional fine-tuning and to +convert among a variety of font formats, such as PostScript, TrueType, +and X Window fonts. FontForge is strongly recommended as a complement +to `mf2pt1'. + + +File: mf2pt1.info, Node: Installation, Prev: Requirements, Up: Introduction + +1.2 Installation +================ + +To install `mf2pt1', move the `mf2pt1' executable someplace where your +operating system can find it. If you're running Microsoft Windows, you +should rename the program to `mf2pt1.pl', so that Windows knows it's a +Perl script. (Alternatively, if you have `pl2bat', use that to produce +a `mf2pt1.bat' file, which you can run as simply `mf2pt1'.) + + The next step is to produce a `mf2pt1.mem' file from the supplied +`mf2pt1.mp'. The command to do this differs from system to system but +is usually something like the following: + + mpost -progname=mpost -ini mf2pt1 \\dump + + Move the resulting `mf2pt1.mem' file someplace where MetaPost can +find it. + + + The `mf2pt1' documentation (what you're reading now) is written in +Texinfo and can therefore easily be converted to a variety of formats: + +PDF (`mf2pt1.pdf') + texi2pdf mf2pt1.texi + +PostScript (`mf2pt1.ps') + texi2dvi mf2pt1.texi + dvips mf2pt1.dvi -o mf2pt1.ps + +HTML (`mf2pt1.html') + makeinfo --html mf2pt1.texi + +Info (`mf2pt1.info') + makeinfo mf2pt1.texi + +N.B. The `install-info' command is a convenient way to install +`mf2pt1.info' on your system. + + + On Unix, you may also want to generate an `mf2pt1' man page. The +man page is embedded within the `mf2pt1' Perl script and can be +extracted with `pod2man': + + pod2man --center="User Commands" --date="29 June 2012" \ + --release="v2.5" mf2pt1 > mf2pt1.1 + +You can then move `mf2pt1.1' into `/usr/man/man1' or any other man page +directory. Note that the `mf2pt1' man page is fairly rudimentary. It +is primarily a list of the command-line options (*note Font +information::) and a pointer to the document that you're reading now. + + +File: mf2pt1.info, Node: Usage, Next: Future Work, Prev: Introduction, Up: Top + +2 Usage +******* + +`mf2pt1' is fairly straightforward to use. To process a Metafont +source file, merely specify the filename: + + mf2pt1 myfont.mf + +That simple command automatically performs all of the following +operations: + + 1. Read `myfont.mf'. + + 2. Use `mpost' to convert each character to a separate Encapsulated + PostScript (EPS) file named `myfont.NUM'. + + 3. Process and merge the EPS files into a single "disassembled" + Type 1 font called `myfont.pt1'. + + 4. Run `t1asm' from the Type 1 Utilities to convert the disassembled + font into a true, binary Type 1 font called `myfont.pfb'. + + 5. Invoke `fontforge' to apply rendering hints to `myfont.pfb' and to + attempt to remove overlapping paths. + + The external programs launched by `mf2pt1'--`mpost', `t1asm', and +`fontforge'--can be overridden by setting the eponymous, uppercase +environment variable. For example, invoking FontForge's predecessor, +PfaEdit, instead of FontForge is simply a matter of setting the +`FONTFORGE' environment variable to `pfaedit' before invoking `mf2pt1'. +As a corollary, you can inhibit an `mf2pt1' external program from +running by setting the corresponding environment variable to the name +of a nonexistent program. + +* Menu: + +* Restrictions:: Restrictions imposed on the font source code +* Font information:: Specifying PostScript font characteristics +* Additional command-line options:: Options unrelated to font characteristics +* Custom font encodings:: Altering the mapping from character name to number +* Restoring mfplain defaults:: Using the original (un)filldraw and pencircle + + +File: mf2pt1.info, Node: Restrictions, Next: Font information, Prev: Usage, Up: Usage + +2.1 Restrictions +================ + +If `mf2pt1' sounds too good to be true, it is--somewhat. `mf2pt1' is +not a general-purpose Metafont -to-Type 1 converter. Rather, it can +convert only certain Metafont constructs. This is not a showstopper +for new fonts designed with `mf2pt1' in mind, but it is unlikely that +`mf2pt1' will work on an arbitrary Metafont source file. + + `mf2pt1''s biggest restriction is that each glyph must be drawn +entirely from closed paths, using Metafont 's *fill* and *unfill* +commands. (`mf2pt1' has limited support for *draw* and *undraw*, but +their use is currently discouraged. *filldraw* and *unfilldraw* issue a +warning message and invoke *draw* and *undraw*, respectively.) The +Type 1 format requires that these paths be nonoverlapping. The +following are some of the alternatives for removing path overlaps: + + 1. Install FontForge. As part of its final step in producing a + Type 1 font, `mf2pt1' instructs FontForge to replace overlapping + paths with nonoverlapping paths. + + 2. Remove overlaps using Metafont code within the font program + itself. A `.zip' file attachment to a 6 January 2005 article + (http://tug.org/mailman/htdig/metapost/2005-January/000080.html) by + Boguslaw Jackowski on the MetaPost mailing list (subject: "Re: all + intersections between two paths") includes a MetaPost library which + assists with that task. The library provides a *find_outlines* + command which can be used to define a path as the union of two + other paths. A number of MetaPost example programs are also + included in the `.zip' file. + + 3. Design your fonts from the beginning without using overlapping + paths. + + A secondary restriction is that `mf2pt1' redefines a number of Plain +Metafont commands, such as *beginchar*, *fill*, and *unfill*. Metafont +font programs which redefine or bypass these (using Metafont +primitives) will not be convertible with `mf2pt1'. + + A far less severe restriction is due to `mf2pt1''s utilizing +MetaPost's Metafont interface instead of Metafont itself. The +implication is that commands not defined by MetaPost's `mfplain.mp' +cannot be handled by `mf2pt1', either. Very few fonts will have a +problem with this restriction but see the MetaPost manual for more +information. + + +File: mf2pt1.info, Node: Font information, Next: Additional command-line options, Prev: Restrictions, Up: Usage + +2.2 Specifying font information +=============================== + +Metafont fonts normally specify a set of *fontdimen*s which provide +information about a particular font that cannot otherwise be inferred. +These include features such as the font's x-height, quad width, +interword stretchability and shrinkability, and other design +characteristics that TeX makes use of. PostScript fonts utilize a +largely different set of font parameters, such as the underline +position and thickness, font family name, and copyright notice. +`mf2pt1' provides Metafont commands to define the PostScript font +parameters in the generated Type 1 font. These parameters should +appear in the Metafont source file as follows: + + if known ps_output: + ... + fi + +`ps_output' is defined by `mf2pt1' but not by Plain Metafont . +Checking if it is known is the recommended way to determine if the font +is being built under `mf2pt1'. + +* Menu: + +* Parameters:: Font-information commands available to Metafont +* Command-line equivalents:: Specifying font features on the command line +* Default values:: Types and default values of each parameter +* Parameter example:: Metafont example which specifies all parameters + + +File: mf2pt1.info, Node: Parameters, Next: Command-line equivalents, Prev: Font information, Up: Font information + +2.2.1 Parameters +---------------- + + The following list presents all of the font-information commands +provided by `mf2pt1' and describes what each command means. Commands +marked with an asterisk are also defined by Plain Metafont and +therefore do not need to be enveloped within a test for `ps_output'. + +*font_coding_scheme* + The mapping between character numbers and PostScript names. If + this is the name of a file, `mf2pt1' expects it to contain + PostScript code defining a font-encoding vector. *Note Custom + font encodings::, for an example of such a file. If + *font_coding_scheme* is not the name of a file, `mf2pt1' expects + it to be one of the literal strings `standard' (Adobe standard + encoding), `isolatin1' (ISO Latin 1 encoding), `ot1' (TeX 7-bit + encoding), `t1' (TeX 8-bit encoding), or `asis' (encoding + integrated with the character programs using the *glyph_name* + command as described in *note Custom font encodings::). Anything + else will generate a warning message and cause `mf2pt1' to use + `standard' instead. + +*font_comment* + A textual comment that will appear within the generated font. + This is often used for copyright notices. + +*font_family* + The family that this font belongs to. For example, "Utopia Bold + Italic" belongs to the `Utopia' family. + +*font_fixed_pitch* + Whether the font is monospaced (if *true*) or or proportionally + spaced (if *false*). + +*font_identifier (*)* + The full name of the font, e.g., `Utopia Bold Italic'. + +*font_name* + The symbolic font name, used to load the font from a PostScript + document. Spaces are forbidden. Generally, the font name is of + the form `FAMILY-MODIFIERS'. For example, the font name of Utopia + Bold Italic would be `Utopia-BoldItalic'. + +*font_size (*)* + The font design size. This is specified in "sharped" units within + Metafont code or as a point size on the command line. + +*font_slant (*)* + When specified with *font_slant*, the amount of slant per point. + When specified with `--italicangle', the angle in counterclockwise + degrees from the vertical (i.e., zero for an upright font, + negative for a right-slanting italic font). + +*font_underline_position* + The vertical position at which an underline should lie, specified + in "sharped" units within Metafont code or as a number of points + on the command line. + +*font_underline_thickness* + The thickness of an underline, specified in "sharped" units within + Metafont code or as a number of points on the command line. + +*font_unique_id* + The unique ID for this font. The ID should be between 0 and + 16,777,215. If not specified, `mf2pt1' will choose an ID at + random from the "open" range, 4,000,000-4,999,999. All IDs not in + that range are allocated by contacting Adobe's UniqueID + Coordinator. (I don't believe a fee is involved, but I don't know + for sure.) + +*font_version* + The version number of the font. This should be of the form + `MMM.MMM', where MMM is the major version number and MMM is the + minor version number. + +*font_weight* + The font weight. For example, the font weight of Utopia Bold + Italic is `Bold'. + + +File: mf2pt1.info, Node: Command-line equivalents, Next: Default values, Prev: Parameters, Up: Font information + +2.2.2 Command-line equivalents +------------------------------ + + Each of the font-information commands listed in *note Parameters:: +has a command-line equivalent. Their use is discouraged but they are +listed here for completeness: + +*font_coding_scheme* `--encoding' +*font_comment* `--comment' +*font_family* `--family' +*font_fixed_pitch* `--fixedpitch' +*font_identifier* `--fullname' +*font_name* `--name' +*font_size* `--designsize' +*font_slant* `--italicangle' +*font_underline_position* `--underpos' +*font_underline_thickness* `--underthick' +*font_unique_id* `--uniqueid' +*font_version* `--fontversion' +*font_weight* `--weight' + + A special case is `--fixedpitch' which does not take an argument. +Rather, you should use `--fixedpitch' as the equivalent of +`font_fixed_pitch true' and `--nofixedpitch' as the equivalent of +`font_fixed_pitch false'. + + +File: mf2pt1.info, Node: Default values, Next: Parameter example, Prev: Command-line equivalents, Up: Font information + +2.2.3 Default values +-------------------- + + The next table lists the Metafont type and default value of each of +the parameters listed in *note Parameters::. + +*font_coding_scheme* *string* `"standard"' +*font_comment* *string* `"Font converted to Type 1 + by mf2pt1, written by + Scott Pakin."' +*font_family* *string* (The value of + *font_identifier*) +*font_fixed_pitch* *boolean* *false* +*font_identifier* *string* (The input filename, minus + `.mf') +*font_name* *string* (The value of + *font_family*, plus an + underscore, plus the + value of *font_weight*, + with all spaces removed) +*font_size* *numeric* (Must be specified or + `mf2pt1' will abort with + an error message) +*font_slant* *numeric* 0 +*font_underline_position* *numeric* -1 +*font_underline_thickness* *numeric* 0.5 +*font_unique_id* *string* (Randomly generated in the + range 4000000-4999999) +*font_version* *string* `"001.000"' +*font_weight* *string* `"Medium"' + + + +File: mf2pt1.info, Node: Parameter example, Prev: Default values, Up: Font information + +2.2.4 Parameter example +----------------------- + + As an example, the following Metafont code shows the usage of all +of the parameters that `mf2pt1' accepts: + +if known ps_output: + font_coding_scheme "ot1"; + font_comment "Copyright (C) 2012 Scott Pakin."; + font_family "Kerplotz"; + font_fixed_pitch false; + font_identifier "Kerplotz Light Oblique"; + font_name "Kerplotz-LightOblique"; + font_size 10pt#; % Important to include + this. + font_slant 1/6; + font_underline_position -1pt#; + font_underline_thickness 1/2pt#; + font_unique_id "4112233"; % Better to omit + this. + font_version "002.005"; + font_weight "Light"; + fi + +In the above, the *font_fixed_pitch* call could have been omitted, as +it defaults to *false*. Also, unless you've requested a unique ID from +Adobe, it's generally better not to assign *font_unique_id*; let +`mf2pt1' choose a random value itself. + + The same parameters can also be specified on the command line as +follows: + + mf2pt1 --encoding=ot1 --comment="Copyright (C) 2012 Scott Pakin." + --family=Kerplotz --nofixedpitch --fullname="Kerplotz Light Oblique" + --name=Kerplotz-LightOblique --designsize=10 --italicangle=-9.5 + --underpos=-100 --underthick=50 --uniqueid=4112233 --version=002.005 + --weight=Light kerplotz.mf + +Note that a Metafont font slant of 1/6 is equal to a PostScript italic +angle of approximately -9.5. The conversion formula is slant = +-tan(angle). In addition, the underline position and thickness must be +multiplied by 1000/*font_size* to convert from the Metafont units that +are used within the `.mf' file to the PostScript units that are used on +the command line. + + +File: mf2pt1.info, Node: Additional command-line options, Next: Custom font encodings, Prev: Font information, Up: Usage + +2.3 Additional command-line options +=================================== + +In addition to the command-line options for setting font parameters +that were presented in *note Parameters::, `mf2pt1' supports a +`--rounding' option. While `mf2pt1' normally rounds all font +coordinates to the nearest integer, `--rounding' increases coordinate +precision by instructing `mf2pt1' to round instead to the nearest +multiple of a given fractional number. For example, `--rounding=0.25' +rounds the coordinate (7.4, 10.3) to (7.5, 10.25) while it would +otherwise be rounded to the less-precise (7, 10). + + Large glyphs can be problematic in MetaPost and therefore in +`mf2pt1'. Unlike Metafont , MetaPost does not honor `mag' for +magnifying dimensions. Rather, the number of PostScript (a.k.a. "big") +points per pixel--`bpppix'--is hardwired to 0.02 and all other +dimensions (`mm', `in', `pt', etc.) are expressed in terms of that. +Consequently, glyphs that multiply a large number of font units by a +dimension are likely to exceed 4096, the largest value that MetaPost +can represent in its fixed-point format. If numerical overflow becomes +a problem you can use the `--bpppix' option to `mf2pt1' to change the +value of `bpppix'. For example, specifying `--bpppix=0.2' enables a +tenfold increase in maximum glyph size (with a corresponding decrease +in precision). + + After generating a Type 1 font, `mf2pt1' runs it through FontForge +to add hinting information, remove overlaps, and otherwise clean up the +generated font. The `--ffscript' option specifies the filename of a +FontForge script to use instead of the default script, which is listed +below: + + Open($1); + SelectAll(); + RemoveOverlap(); + AddExtrema(); + Simplify(0, 2); + CorrectDirection(); + Simplify(0, 2); + RoundToInt(); + AutoHint(); + Generate($1); + Quit(0); + +See the FontForge documentation for an explanation of each of those +commands and a description of other commands made available to +FontForge scripts. `mf2pt1' runs the script with one argument (`$1'), +which is the name of the generated `.pfb' file. + + `mf2pt1' also supports a `--help' option which summarizes all of the +program's command-line options. + + +File: mf2pt1.info, Node: Custom font encodings, Next: Restoring mfplain defaults, Prev: Additional command-line options, Up: Usage + +2.4 Custom font encodings +========================= + +*note Parameters::, lists the font encodings currently supported by +`mf2pt1' and mentions that an alternate encoding can be specified by +providing the name of an encoding file. To elaborate, the following +example represents the contents of an encoding file which defines +a--largely useless nowadays--EBCDIC font encoding: + + `% Sample encoding vector: EBCDIC + % The encoding vector must have a name and be defined as a + PostScript array. + /ebcdic_encoding [ + /_a0 /_a1 /_a2 /_a3 /_a4 /_a5 /_a6 /_a7 /_a8 /_a9 /_a10 /_a11 /_a12 + /_a13 /_a14 /_a15 /_a16 /_a17 /_a18 /_a19 /_a20 /_a21 /_a22 /_a23 + /_a24 /_a25 /_a26 /_a27 /_a28 /_a29 /_a30 /_a31 /_a32 /_a33 /_a34 + /_a35 /_a36 /_a37 /_a38 /_a39 /_a40 /_a41 /_a42 /_a43 /_a44 /_a45 + /_a46 /_a47 /_a48 /_a49 /_a50 /_a51 /_a52 /_a53 /_a54 /_a55 /_a56 + /_a57 /_a58 /_a59 /_a60 /_a61 /_a62 /_a63 /space /_a65 /_a66 /_a67 + /_a68 /_a69 /_a70 /_a71 /_a72 /_a73 /bracketleft /period /less + /parenleft /plus /exclam /ampersand /_a81 /_a82 /_a83 /_a84 /_a85 + /_a86 /_a87 /_a88 /_a89 /bracketright /dollar /asterisk /parenright + /semicolon /asciicircum /hyphen /slash /_a98 /_a99 /_a100 /_a101 + /_a102 /_a103 /_a104 /_a105 /bar /comma /percent /underscore + /greater /question /_a112 /_a113 /_a114 /_a115 /_a116 /_a117 + /_a118 /_a119 /_a120 /_a121 /colon /numbersign /at /quoteright + /equal /quotedbl /_a128 /a /b /c /d /e /f /g /h /i /_a138 /_a139 + /_a140 /_a141 /_a142 /_a143 /_a144 /j /k /l /m /n /o /p /q /r + /_a154 /_a155 /_a156 /_a157 /_a158 /_a159 /_a160 /asciitilde /s /t + /u /v /w /x /y /z /_a170 /_a171 /_a172 /_a173 /_a174 /_a175 /_a176 + /_a177 /_a178 /_a179 /_a180 /_a181 /_a182 /_a183 /_a184 /quoteleft + /_a186 /_a187 /_a188 /_a189 /_a190 /_a191 /braceleft /A /B /C /D + /E /F /G /H /I /_a202 /_a203 /_a204 /_a205 /_a206 /_a207 + /braceright /J /K /L /M /N /O /P /Q /R /_a218 /_a219 /_a220 /_a221 + /_a222 /_a223 /backslash /_a225 /S /T /U /V /W /X /Y /Z /_a234 + /_a235 /_a236 /_a237 /_a238 /_a239 /zero /one /two /three /four + /five /six /seven /eight /nine /_a250 /_a251 /_a252 /_a253 /_a254 + /_a255 + % Don't forget to end the array. + ] def' + +All entries in the encoding vector are PostScript "names" and therefore +must be prefixed with a slash. Unnamed characters such as control +characters are commonly named `_aNUMBER', where NUMBER is the decimal +offset into the character table. Undefined characters are indicated by +`.notdef'. In the EBCDIC example, the character at position 0 in the +font will be named `a0'; the character at position 1 will be named +`a1'; the character at position 74 will be named `bracketleft'; the +character at position 129 will be named `a'; and so forth. + + Individual characters can be mapped to an encoding either numerically +or by executing a *glyph_name* command within a character definition. +For example, the following code overrides the character position passed +to *beginchar* (i.e., 123) with whatever character position the current +encoding has designated for the `ohungarumlaut' glyph: + + beginchar (123, cap_height#-1/2pt#, cap_height#, 0); + if known ps_output: + glyph_name "ohungarumlaut"; + fi + ... + endchar; + + +File: mf2pt1.info, Node: Restoring mfplain defaults, Prev: Custom font encodings, Up: Usage + +2.5 Restoring `mfplain' defaults +================================ + +`mf2pt1' normally redefines *filldraw* as *fill* and *unfilldraw* and +*unfill* because Type 1 fonts don't allow overlapping curves. +Similarly, `mf2pt1' redefines *pencircle* as a 20-gon to coerce +MetaPost into drawing it using a filled instead of a stroked PostScript +path. + + If you know you'll be postprocessing your fonts using FontForge, +which can automatically convert overlapping paths to nonoverlapping +paths, then you can restore the original `mfplain.mp' definitions of +*filldraw*, *unfilldraw*, and *pencircle* as follows: + + if known ps_output: + pencircle := mfplain_pencircle; + let filldraw := mfplain_filldraw; + let unfilldraw := mfplain_unfilldraw; + fi + + +File: mf2pt1.info, Node: Future Work, Next: Acknowledgments, Prev: Usage, Up: Top + +3 Future Work +************* + +One avenue for future work is to enable the font designer to specify +Type 1 font hints directly in the Metafont font program. Hinting is a +way for a font designer to specify how a font should be rendered at low +resolutions, for example, at typical monitor resolutions. In Metafont +, this is done by controlling the way that points are mapped to pixel +locations, using commands such as *define_corrected_pixels*, +*define_blacker_pixels*, and *lowres_fix*. Type 1 fonts are hinted in +a completely different manner. Type 1 hints distinguish key character +features, such as stems and dots, from decorations which can be +discarded at low resolutions. The PostScript interpreter uses that +information to determine how to map points to pixels. Although +`mf2pt1' employs FontForge to autohint the fonts it generates, the +approach is mechanical and unlikely to hint as well as a human can do +manually. It would be convenient for `mf2pt1' one day to provide +Metafont commands for *hstem*, *vstem*, *dotsection*, and the other +Type 1 hints. That way, hints will no longer need to be re-added +manually every time `mf2pt1' regenerates a Type 1 font. + + Another future addition to `mf2pt1' is the addition of more font +encodings. The following are the encodings that `mf2pt1' will most +likely accept: + +`TeXMathItalicEncoding' + Upper- and lowercase Greek and Latin letters, old-style digits, + and a few symbols and accents. + +`TeXMathSymbolEncoding' + A variety of symbols, as well as calligraphic Latin majuscules. + +`TeXMathExtensionEncoding' + Variable-sized symbols, such as braces, integrals, and radicals. + +`AdobeExpert' + Small caps, currency symbols, old-style digits, and various + superior and inferior letters and digits. + + +File: mf2pt1.info, Node: Acknowledgments, Prev: Future Work, Up: Top + +Acknowledgments +*************** + +Many thanks are owed to Werner Lemberg for writing the code underlying +the `--rounding' option; for introducing the *glyph_name* command and +`asis' encoding vector; for providing the default FontForge script +listed in *note Additional command-line options::; for fixing some +code-generation bugs in `mf2pt1'; for finding a more robust way to dump +`mf2pt1.mem'; for directing me to the overlap-removal code mentioned in +*note Restrictions::; for supplying the _crossproduct_, _makeline_, and +_is_clockwise_ functions used by `mf2pt1.mp'; for proposing the +`--bpppix' command-line option; and, for suggesting various features and +improvements to `mf2pt1'. Thanks also go to Werner Lemberg and Boguslaw +Jackowski for updating the *is_clockwise* function in `mf2pt1.mp' to +work around a bug in MetaPost which relates to the *turningnumber* +command. Finally, thanks go to Ralf Stubner for providing the T1 +encoding vector and for pointing out a typo in the generated font +programs; to Michael Zedler for alerting me to problems with +`--encoding' and suggesting I modify that option to accept PostScript +`.enc' files; and to Michael Ummels for fixing a couple of bugs that +made character widths in the generated fonts slightly too large. + + + +Tag Table: +Node: Top301 +Node: Introduction840 +Node: Requirements2677 +Node: Installation4426 +Node: Usage6237 +Node: Restrictions7953 +Node: Font information10343 +Node: Parameters11703 +Node: Command-line equivalents15078 +Node: Default values16202 +Node: Parameter example17880 +Node: Additional command-line options19899 +Node: Custom font encodings22238 +Node: Restoring mfplain defaults25689 +Node: Future Work26548 +Node: Acknowledgments28415 + +End Tag Table diff --git a/Master/texmf-dist/doc/info/tds.info b/Master/texmf-dist/doc/info/tds.info new file mode 100644 index 00000000000..8b2418cd0a2 --- /dev/null +++ b/Master/texmf-dist/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-dist/doc/info/texdraw.info b/Master/texmf-dist/doc/info/texdraw.info new file mode 100644 index 00000000000..2458b4f3b33 --- /dev/null +++ b/Master/texmf-dist/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-dist/doc/info/web2c.info b/Master/texmf-dist/doc/info/web2c.info new file mode 100644 index 00000000000..1e5bf0428d3 --- /dev/null +++ b/Master/texmf-dist/doc/info/web2c.info @@ -0,0 +1,4515 @@ +This is ../../../../texk/web2c/doc/web2c.info, produced by makeinfo +version 4.13 from ../../../../texk/web2c/doc/web2c.texi. + +INFO-DIR-SECTION TeX +START-INFO-DIR-ENTRY +* Web2c: (web2c). TeX, Metafont, and companion programs. +END-INFO-DIR-ENTRY +INFO-DIR-SECTION Individual utilities +START-INFO-DIR-ENTRY +* bibtex: (web2c)bibtex invocation. Maintaining bibliographies. +* 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. +* 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. +* 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, +2005, 2007, 2008, 2009 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 2012, released in May 2012. + +* 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 2012 of Web2c, released in May 2012. + + "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) 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'. + +`-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. *Note Output file location::. + +`-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 Aleph, this option is always on, and the file has + extension `.ofl'. + + Ordinarily, the `.fls' file is written to the same location as the + `.log' file, for example, respecting `-output-directory' if it is + given (*note Output file location::). However, if TeX processing + is done on the command line (or in response to the `**' prompt), + the `.fls' might be written to the current directory, or include + an integer (the current pid), as in `texput1234.fls'. You can use + `-jobname' to explicitly set the basename. + +`-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. + + + +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 or environment variable value +`TEXMFOUTPUT' is set (it is not by default), output files are written +to the directory specified. + + `TEXMFOUTPUT' is also checked for input files, as TeX often +generates files that need to be subsequently read; for input, no +suffixes (such as `.tex') are added by default and no exhaustive path +searching is done, the input name is simply checked as given. + + +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 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 and Metafont programs each have two main variants, called +"initial" and "virgin". MetaPost no longer makes this distinction. + + The initial form is enabled if: + 1. the `-ini' option was specified; or + + 2. the program name is `initex' resp. `inimf'; 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 and Metafont 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::. + + 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' 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'. 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 does +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 input came from a file, and 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' on +Unix, and an invocation of the TeXworks editor on Windows. (See +`texmf.cnf' for the precise values.) + + 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. +* Shell escapes:: Running subprograms from TeX. +* 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 +and similar problems the functions `kpathsea_out_name_ok' and +`kpathsea_in_name_ok' from the Kpathse library (*note Calling sequence: +(kpathsea)Calling sequence.) are used to determine if a given filename +is acceptable to be opened for output or input, depending on the +setting of the configuration variables `openout_any' and `openin_any': +`a' (for "any", the default for `openin_any'), `r' (for "restricted"), +or `p' (for "paranoid", the default for `openout_any'). + + 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. + + 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. For + TeX proper, FILETYPE can only be `tex' and `tfm', but for pdfTeX + and luaTeX, it can also be `pk'. + +`-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' +`-shell-restricted' + Enable, or disable, or enable with restrictions the + `\write18{SHELL-COMMAND}' feature for external executing shell + commands. *Note Shell escapes::. + +`-enable-write18' +`-disable-write18' + Synonyms for `-shell-escape' and `-no-shell-escape', for + compatibility with MiKTeX. (MiKTeX also accepts both pairs of + options.) *Note Shell escapes::. + +`-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: Shell escapes, 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: Shell escapes, Next: IPC and TeX, Prev: Languages and hyphenation, Up: TeX + +4.5 Shell escapes +================= + +TeX can execute "shell escapes", that is, arbitrary shell commands. +Although tremendously useful, this also has obvious security +implications. Therefore, as of TeX Live 2009, a "restricted" mode for +shell escapes is the default mode of operation, which allows executing +only certain commands, as specified in the `texmf.cnf' configuration +file. + + * Unrestricted shell escapes are allowed if the option + `--shell-escape' is specified, or if the environment variable or + config file value `shell_escape' is set to `t' or `y' and `1'. + + * Restricted shell escapes are allowed if `shell_escape' is set to + `p'. This is the default. + + * Shell escapes are completely disabled if `--no-shell-escape' is + specified, or if `shell_escape' is set to anything else. + + When enabled, the TeX construct to execute a system command is +`\write18{SHELL-COMMAND}'; for example: + + \write18{echo "hello, world"} + + From TeX's point of view, this is a normal `\write' command, and is +therefore subject to the usual TeX expansions. Also, the system call +either happens during the `\output' routine or right away, according to +the absence or presence of the `\immediate' prefix, as usual for +`\write'. + + The SHELL-COMMAND string 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, or anywhere +but the terminal output. The exit status of the system call is also +not available to TeX. + + In unrestricted mode, the argument is simply passed straight to +`system' unaltered. + + In restricted mode, ASCII double quote characters (") should always +be used in the argument to `\write18' where quoting of arguments is +needed, as in the example above. This is to achieve some measure of +system independence. On Unix systems, these are replaced with single +quote (') characters to avoid insecure further expansion. Care is also +taken on Windows to avoid additional expansions (from, e.g., `...`). +Mismatched quotation marks in the command string result in a diagnostic +message in the log file; no execution is performed. + + After quotation processing, if the first word (delimited by a space +or tab) of the command is in the list specified by the +`shell_escape_commands' configuration value, the command is executed. +Otherwise it is not. In any case, a message is written to the log file. + + The `shell_escape_commands' value is a comma-separated list of +words. Whitespace is significant, and typically should not be present. +The default definition looks like this, but with more commands included: + + shell_escape_commands = bibtex,dvips,epstopdf,...,tex + + pdfTeX and luaTeX support reading (via `\input' and `\openin') and +writing (via `\openout') from pipes if the first character is `|'. The +following command is then treated exactly the same as the argument to +`\write18'. In these engines, the primitive variable `\pdfshellescape' +is set to 0 if shell escapes are disabled, 1 if they are enabled, and 2 +if they are enabled with restrictions. + + The purpose of this feature is to make it possible for TeX documents +to perform useful external actions in the common case of an individual +user running a known document on his or her own machine. In such +environments as CGI scripts or wikis where the input has to be +considered untrustworthy, shell escapes should be completely disabled. + + +File: web2c.info, Node: IPC and TeX, Next: TeX extensions, Prev: Shell escapes, Up: TeX + +4.6 IPC and TeX +=============== + +(If anyone uses this feature and needs documentation, write +<tex-k@tug.org>.) + + 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.7 TeX extensions +================== + +The base TeX program has been extended in many ways. Here's a partial +list. + +e-TeX + Adds many new primitives, including right-to-left typesetting and + more registers. Now frozen. + +Aleph + This adds Unicode support, right-to-left typesetting, and more. + Omega was the original program. Aleph is an updated version with + a variety of bug fixes, and includes e-TeX. Aleph is not actively + maintained. + +pdfTeX + Can produce PDF as well as DVI files. It also incorporates the + e-TeX extensions, new primitives for hypertext and + micro-typography, reading/writing from pipes, and much more. Home + page: `http://pdftex.org'. + +luaTeX + Based on pdfTeX, this also embeds the Lua programming language + (`http://lua.org') and opens up the TeX typesetting engine to + control from Lua. Home page: `http://luatex.org'. + +XeTeX + Combines support for Unicode input and OpenType- and system fonts + with the capabilities of pdfTeX. Home page: + `http://tug.org/xetex'. + + + +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@math.utah.edu> 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' + (`--enable-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' + (`--enable-hp2627win') HP2627a color graphics terminals. + +`mftalk' + (`--enable-mftalkwin') Generic window server (see + `web2c/window/mftalk.c'). + +`next' + (`--enable-next') NeXT window system. This requires a separate + program, called `DrawingServant', available separately. See the + `web2c/window/next.c'. + +`regis' + (`--enable-regiswin') Regis terminals. + +`sun' + (`--enable-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' + (`--enable-tektronixwin') Tektronix terminals. + +`uniterm' + (`--enable-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 + `--enable-tektronixwin' selects. + +`xterm' + `--with-x' 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-kf-x-toolkit=no'. + + Specify `--disable-mf-nowin' in order not to build a separate + non-windows-capable Metafont executable `mf-nowin' (or + `mf-nowin.exe'). + + 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, typically via commands like `slantfont slantlj4'. +There is no default slant font since no one printer is suitable as a +default. You can make your own by copying one of the existing files, +such as `.../fonts/source/public/misc/slantlj4.mf' and then running +`mf' on it. + + For testing purposes, you may it useful to run `mf-nowin rtest' (hit +RETURN when it stops) to get a `gf' file of a thorn glyph. Or use `mf' +instead of `mf-nowin' to have the glyph(s) displayed on the screen. +After that, `gftodvi rtest.2602gf' should produce `rtest.dvi', which +you process as usual. + + 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. +* dvitomp invocation:: DVI-to-MPX translation. + + +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' (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 + generates a MetaPost picture expression corresponding to TEX-INPUT. + + The construct + verbatimtex ... TEX-INPUT ... etex + simply passes the TEX-INPUT through 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'. + + 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). + + 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.). + + It is posible for pdfTeX to read MetaPost output directly; this is +in contrast to general EPSF files, which have to be converted for use +with PDF output. The easiest way is to name the MetaPost output files +with the `.mps' extension. Then the LaTeX `\includegraphics' command, +for example, will be able to read them, even when outputting PDF. + + 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'. + +`-tex=TEXPROGRAM' + When this option is given, the program TEXPROGRAM is used to + typeset the labels. + + + +File: web2c.info, Node: Initial MetaPost, Next: dvitomp invocation, Prev: mpost invocation, Up: MetaPost + +6.2 Initial MetaPost +==================== + +As of MetaPost 1.504 (TeX Live 2011), MetaPost no longer dumps `.mem' +files (*note Memory dumps::) and does not distinguish virgin and +initial forms (*note Initial and virgin::). Instead, the "initial" +file name is read in its source form--that is, `mpost.mp' when the +program is invoked as `mpost'. + + For a list of options and other information, see *note mpost +invocation::. + + MetaPost provides a format with all the features of plain Metafont, +called `mfplain'. You can use that in the same way; just run `mfplain' +instead of `mpost'. This 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::). + + +File: web2c.info, Node: dvitomp invocation, Prev: Initial MetaPost, Up: MetaPost + +6.3 DVItoMP: DVI to MPX conversion +================================== + +DVItoMP converts DVI files into low-level MetaPost commands in a +so-called MPX file. 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'. + + DVItoMP supports Dvips-style color specials, such as `color push +NAME' and `color pop', outputting them as `withcolor' MetaPost commands. + + The only options are `-help' and `-version' (*note Common options::). + + +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' is +devoted to this subject.) + + 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): `http://www.lcdf.org/type'. + + * 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. + `http://tug.org/TUGboat/tb08-1/tb17billawala.pdf'. + + 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. + `http://tug.org/metapost'. + + 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 Knuth:1988:ET. + + 22. [Knu90] Donald Knuth. Virtual Fonts: More Fun for Grand Wizards. + `TUGboat', 11(1):13-23, April 1990. + `http://tug.org/TUGboat/tb11-1/tb27knut.pdf'. + + 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. + `http://tug.org/docs/liang/liang-thesis.pdf'. + + 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 19) +* - 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) +* --disable-mf-nowin: Online Metafont graphics. + (line 65) +* --enable-epsfwin: Online Metafont graphics. + (line 20) +* --enable-hp2627win: Online Metafont graphics. + (line 28) +* --enable-ipc configure option: tex invocation. (line 95) +* --enable-mftalkwin: Online Metafont graphics. + (line 31) +* --enable-next: Online Metafont graphics. + (line 35) +* --enable-regiswin: Online Metafont graphics. + (line 40) +* --enable-suntoolswin: Online Metafont graphics. + (line 43) +* --enable-tektronixwin: Online Metafont graphics. + (line 48) +* --enable-unitermwin: Online Metafont graphics. + (line 51) +* --help common option: Common options. (line 11) +* --verbose common option: Common options. (line 15) +* --version common option: Common options. (line 18) +* --with-editor=CMD: Editor invocation. (line 10) +* --with-mf-x-toolkit=KIT: Online Metafont graphics. + (line 59) +* --with-x: Online Metafont graphics. + (line 57) +* -8bit: Common options. (line 105) +* -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) +* -disable-write18: tex invocation. (line 130) +* -dpi=REAL: dvitype invocation. (line 24) +* -enable-write18: tex invocation. (line 129) +* -enc: tex invocation. (line 89) +* -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 69) +* -halt-on-error: Common options. (line 41) +* -images: gftype invocation. (line 26) +* -ini <1>: Initial and virgin. (line 10) +* -ini: Common options. (line 45) +* -interaction=STRING: Common options. (line 50) +* -ipc: tex invocation. (line 95) +* -ipc-start: tex invocation. (line 95) +* -jobname=STRING: Common options. (line 55) +* -kpathsea-debug=NUMBER: Common options. (line 59) +* -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) +* -min-crossrefs=N: bibtex invocation. (line 31) +* -mixedcase: tangle invocation. (line 35) +* -mktex=FILETYPE <1>: mf invocation. (line 87) +* -mktex=FILETYPE: tex invocation. (line 105) +* -mltex: tex invocation. (line 110) +* -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 105) +* -no-parse-first-line: Common options. (line 72) +* -no-shell-escape: tex invocation. (line 123) +* -output-comment=STRING: tex invocation. (line 115) +* -output-directory <1>: Output file location. + (line 15) +* -output-directory: Common options. (line 66) +* -output-level=N: dvitype invocation. (line 36) +* -overflow-label-offset=POINTS: gftodvi invocation. (line 59) +* -page-start=PAGE-SPEC <1>: dvitype invocation. (line 50) +* -page-start=PAGE-SPEC: dvicopy invocation. (line 28) +* -parse-first-line: Common options. (line 71) +* -progname=STRING <1>: Determining the memory dump to use. + (line 17) +* -progname=STRING: Common options. (line 77) +* -recorder: Common options. (line 84) +* -shell-escape: tex invocation. (line 122) +* -shell-restricted: tex invocation. (line 124) +* -show-opcodes: dvitype invocation. (line 56) +* -strict: tangle invocation. (line 46) +* -style=MFTFILE: mft invocation. (line 68) +* -T: mpost invocation. (line 118) +* -terse: bibtex invocation. (line 28) +* -tex=TEXPROGRAM: mpost invocation. (line 121) +* -translate-file=TCXFILE: Common options. (line 98) +* -troff: mpost invocation. (line 118) +* -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) +* .mf: mf invocation. (line 24) +* .mp: mpost invocation. (line 31) +* .mps files and PDF: mpost invocation. (line 89) +* .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 98) +* .tex: tex invocation. (line 20) +* .tfm output <1>: mpost invocation. (line 37) +* .tfm output: mf invocation. (line 43) +* .Xdefaults: Online Metafont graphics. + (line 69) +* .Xresources: Online Metafont graphics. + (line 69) +* 2602gf: mf invocation. (line 48) +* 8 bit clean: Common options. (line 105) +* 8 bit clean output, specifying: Common options. (line 105) +* 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: Shell escapes. (line 6) +* \input filenames: \input filenames. (line 6) +* \input, and pipes: Shell escapes. (line 63) +* \mag <1>: dvitype invocation. (line 28) +* \mag: dvicopy invocation. (line 20) +* \openin, and pipes: Shell escapes. (line 63) +* \openout and security: tex invocation. (line 51) +* \openout, and pipes: Shell escapes. (line 63) +* \output routine, and \write: Shell escapes. (line 28) +* \pdfshellescape: Shell escapes. (line 63) +* \string: \input filenames. (line 60) +* \tracingcharsubdef and MLTeX: \tracingcharsubdef. (line 6) +* \tracinglostchars and MLTeX: \tracingcharsubdef. (line 11) +* \write18 shell escape extension: Shell escapes. (line 6) +* ^^ 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 50) +* acm.bst: Basic BibTeX style files. + (line 19) +* Ada, WEB for: WEB. (line 13) +* 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) +* Aleph: TeX extensions. (line 14) +* 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) +* 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 13) +* 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) +* Berry, Karl: Introduction. (line 40) +* 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 77) +* blank lines, in TCX files: TCX files. (line 67) +* boxes, memory for: Runtime options. (line 20) +* breakpoints, memory for: Runtime options. (line 20) +* Breitenlohner, Peter: Introduction. (line 8) +* BSTINPUTS, search path for bst files: bibtex invocation. (line 18) +* 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) +* 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 69) +* 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) +* color, in DVItoMP: dvitomp invocation. (line 15) +* 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) +* 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 68) +* 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 40) +* CWEB: WEB. (line 13) +* Cweb: WEB. (line 13) +* 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 59) +* 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 76) +* dot files, written by TeX programs: tex invocation. (line 51) +* downloading of fonts for MetaPost labels: mpost invocation. (line 73) +* DrawingServant: Online Metafont graphics. + (line 35) +* dump file: Common options. (line 34) +* dumping memory: Memory dumps. (line 6) +* DVI comment, specifying: tex invocation. (line 115) +* DVI files, converting to MPX: dvitomp invocation. (line 6) +* 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) +* 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 10) +* 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 for MetaPost labels: mpost invocation. (line 50) +* executables, shared initial and virgin: Initial and virgin. (line 6) +* exit status, of shell escape: Shell escapes. (line 34) +* 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 recorder: Common options. (line 84) +* 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 98) +* 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 73) +* 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 22) +* ftp.math.utah.edu: bibtex invocation. (line 54) +* generating source specials: tex invocation. (line 136) +* geometric designs: Metafont. (line 6) +* geometric font scaling: Font file formats. (line 22) +* geometry for Metafont: Online Metafont graphics. + (line 69) +* 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 22) +* Herberts, Mathias: Online Metafont graphics. + (line 20) +* hex character codes, in TCX files: TCX files. (line 78) +* history: Introduction. (line 40) +* Hobby, John: Introduction. (line 8) +* 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) +* hypertext: TeX extensions. (line 20) +* hyphenation and languages: Languages and hyphenation. + (line 6) +* hyphenation patterns, creating: patgen invocation. (line 6) +* ice cream: Introduction. (line 22) +* 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 21) +* initial TeX: Initial TeX. (line 6) +* initializations, lengthy: Initial and virgin. (line 21) +* 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 50) +* 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 55) +* 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 8) +* KPATHSEA_DEBUG: Common options. (line 59) +* KRN property: tftopl invocation. (line 102) +* label font: gftodvi invocation. (line 36) +* LABEL property: tftopl invocation. (line 102) +* 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 22) +* 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 77) +* links to binaries: Determining the memory dump to use. + (line 31) +* literate programming: WEB. (line 6) +* LittleEndian machines: Hardware and memory dumps. + (line 6) +* log file, BibTeX: bibtex invocation. (line 14) +* Lua: TeX extensions. (line 26) +* luaTeX: TeX extensions. (line 26) +* 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) +* Martin, Rick: Introduction. (line 50) +* Mathematical Reviews: Formats. (line 39) +* mathematical typesetting: TeX. (line 6) +* mem file, determining: Determining the memory dump to use. + (line 6) +* 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 69) +* 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 80) +* Metafont source, prettyprinting: mft invocation. (line 6) +* Metafont, compatibility in MetaPost: Initial MetaPost. (line 15) +* Metafont, initial: Initial Metafont. (line 6) +* Metafont, MetaPost, and TeX: Three programs. (line 6) +* MetaPost: MetaPost. (line 6) +* MetaPost and plain Metafont compatibility: Initial MetaPost. + (line 15) +* MetaPost input files: mpost invocation. (line 31) +* MetaPost invocation: mpost 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: Initial MetaPost. (line 15) +* 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) +* micro-typography: TeX extensions. (line 20) +* mktexmf, disabling: mf invocation. (line 24) +* mktextfM, disabling: tex invocation. (line 44) +* mltex: MLTeX. (line 6) +* MLTeX, enabling: tex invocation. (line 110) +* 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 40) +* Morris, Bob: Introduction. (line 50) +* 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) +* mpout: mpost invocation. (line 37) +* mproof.tex: mpost invocation. (line 73) +* mptrap Make target: Additional targets. (line 41) +* mptrap test: Triptrap. (line 6) +* mptrap.readme: Triptrap. (line 6) +* MPX files, converting from DVI files: dvitomp invocation. (line 6) +* Multi-lingual TeX: MLTeX. (line 6) +* N tilde: \charsubdef. (line 37) +* new graphics support for Metafont: Online Metafont graphics. + (line 80) +* 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) +* non-windows-capable Metafont: Online Metafont graphics. + (line 65) +* 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 59) +* 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 66) +* 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 115) +* overflow label offset: gftodvi invocation. (line 59) +* 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 72) +* 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 59) +* PDF: TeX extensions. (line 20) +* PDF, and .mps files: mpost invocation. (line 89) +* 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) +* pipes, reading and writing: Shell escapes. (line 63) +* 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 15) +* 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.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 68) +* 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) +* 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 10) +* printable characters, specifying: TCX files. (line 88) +* printer characteristics, for Metafont: Modes. (line 6) +* production use: Initial and virgin. (line 17) +* program name, determines memory dump: Determining the memory dump to use. + (line 31) +* program names, special <1>: tex invocation. (line 110) +* program names, special: Common options. (line 45) +* prologues: mpost invocation. (line 118) +* prologues, and EPSF output: mpost invocation. (line 83) +* 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 83) +* PXL files, explained: Font file formats. (line 40) +* pxtoch: Font utilities available elsewhere. + (line 23) +* Raichle, Bernd: MLTeX. (line 6) +* reading, additional: Introduction. (line 58) +* 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 115) +* repeated rows: pktype invocation. (line 76) +* representation of strings: pooltype invocation. (line 30) +* restricted shell escapes: Shell escapes. (line 6) +* right side bearing <1>: gftype invocation. (line 82) +* right side bearing: pktype invocation. (line 66) +* Rokicki, Tomas: Introduction. (line 40) +* 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: Shell escapes. (line 6) +* security, and write: mpost invocation. (line 95) +* shapes: Metafont. (line 6) +* sharing memory dumps: Hardware and memory dumps. + (line 6) +* shell commands in TeX: Shell escapes. (line 6) +* shell_escape enabling in TeX: Shell escapes. (line 6) +* shell_escape_commands: Shell escapes. (line 52) +* 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 13) +* Stallman, Richard: Introduction. (line 50) +* 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 16) +* 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: Shell escapes. (line 6) +* system command: Shell escapes. (line 6) +* 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: 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 8) +* 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 80) +* TEXMFOUTPUT, used for reading: Output file location. + (line 25) +* TEXMFOUTPUT, used if . unwritable: Output file location. + (line 19) +* texput: tex invocation. (line 35) +* 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 59) +* torture tests: Triptrap. (line 6) +* translation file for TeX, specifying: Common options. (line 98) +* translation from WEB to C: Introduction. (line 16) +* trap Make target: Additional targets. (line 41) +* trap test: Triptrap. (line 6) +* trapman.tex: Triptrap. (line 6) +* Trickey, Howard: Introduction. (line 40) +* 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, and MetaPost: mpost invocation. (line 68) +* Troff, WEB for: WEB. (line 13) +* 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 14) +* Unicode input: tex invocation. (line 89) +* uniterm: Online Metafont graphics. + (line 50) +* unsrt.bst: Basic BibTeX style files. + (line 39) +* UTF-8 input: tex invocation. (line 89) +* 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) +* 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 17) +* 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 environments, and security: Shell escapes. (line 70) +* 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 40) +* webmac.tex: weave invocation. (line 22) +* webman.tex: WEB. (line 13) +* 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 69) +* x offset: pktype invocation. (line 66) +* X resources: Online Metafont graphics. + (line 69) +* X toolkits and Metafont: Online Metafont graphics. + (line 59) +* xampl.bib: bibtex invocation. (line 51) +* xbfe, bitmap font editor: Font utilities available elsewhere. + (line 23) +* XeTeX: TeX extensions. (line 31) +* 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 59) +* Xt: Online Metafont graphics. + (line 56) +* Xt support: Online Metafont graphics. + (line 59) +* xterm: Online Metafont graphics. + (line 56) +* y offset: pktype invocation. (line 66) +* ~ expansion in filenames: \input filenames. (line 48) + + + +Tag Table: +Node: Top2812 +Node: Introduction3805 +Node: Installation6976 +Node: configure options9140 +Node: Compile-time options11222 +Node: Additional targets12348 +Node: Triptrap13629 +Node: Runtime options15158 +Node: Commonalities16930 +Node: Option conventions17535 +Node: Common options18759 +Node: Path searching23166 +Node: Output file location24188 +Node: Three programs25513 +Node: Initial and virgin26267 +Node: Memory dumps27206 +Node: Creating memory dumps27662 +Node: Determining the memory dump to use28873 +Node: Hardware and memory dumps30460 +Node: Editor invocation32918 +Node: \input filenames33784 +Node: TeX36777 +Node: tex invocation37929 +Node: Initial TeX44899 +Node: Formats46388 +Node: Languages and hyphenation49327 +Node: MLTeX49757 +Node: \charsubdef51252 +Node: \tracingcharsubdef53578 +Node: TCX files54153 +Node: patgen invocation59577 +Node: Shell escapes60294 +Node: IPC and TeX63858 +Node: TeX extensions64428 +Node: Metafont65560 +Node: mf invocation66848 +Node: Initial Metafont70731 +Node: Modes72484 +Node: Online Metafont graphics74740 +Node: gftodvi invocation78155 +Node: mft invocation80988 +Node: MetaPost85043 +Node: mpost invocation85805 +Node: Initial MetaPost91063 +Node: dvitomp invocation91985 +Node: BibTeX92650 +Node: bibtex invocation93011 +Node: Basic BibTeX style files95336 +Node: WEB96678 +Node: tangle invocation97886 +Node: weave invocation100009 +Node: pooltype invocation101417 +Node: DVI utilities102547 +Node: dvicopy invocation103491 +Node: dvitype invocation104789 +Node: dvitype output example107144 +Node: Font utilities110195 +Node: Font file formats111375 +Node: gftopk invocation114674 +Node: pktogf invocation115878 +Node: pktype invocation117057 +Node: gftype invocation119892 +Node: tftopl invocation124408 +Node: pltotf invocation129042 +Node: vftovp invocation130107 +Node: vptovf invocation132391 +Node: Font utilities available elsewhere133445 +Node: Legalisms135853 +Node: References138024 +Node: Index142596 + +End Tag Table |