Home
        Guide for pdflatex
         Contents
1.      version e g This is pdfeTeX  Version 3 141592 1 30 4 2 2  Web2C  7 5 5  kpathsea version 3 5 5  This is necessary because the string in  the Producer key in the info dictionary is rather short  e  g  pdfeTeX 1 30 4        Colophon   This manual is typeset in ConTEXt  One can generate an A4 version from the source code by typing   texexec   result pdftex a pdf pdftex t   Or in letter size   texexec    mode letter   result pdftex l pdf pdftex t   Given that the A4 version is typeset  one can generate an A5 booklet by typing     texexec   pdfarrange   paper a5a4   print up   addempty 1 2    result pdftex b pdf pdftex a    Odd and even page sets for non duplex printers can be generated using   pages odd and   pages even  options  which might require some disciplined shuffling of sheet      This also demonstrates that pdfT   X can be used for page imposition purposes  given that pdfTEX and the  fonts are set up properly      41    The pdfTgX user manual    GNU Free Documentation License    Version 1 2  November 2002  Copyright    2000  2001  2002  Free Software Foundation  Inc   59 Temple Place  Suite 330   Boston  MA 02111 1307 USA    Everyone is permitted to copy and distribute ver   batim copies of this license document  but chang   ing it is not allowed     Preamble    The purpose of this License is to make a manu   al  textbook  or other functional and useful doc   ument    free    in the sense of freedom  to assure  everyone the effective freedom to copy and re   distri
2.    If there is no precompiled binary of pdf IEX for your system  or the version coming with a distribution is not  the current one and you would like to try out a fresh pdfTEX immediately  you will need to build pdf IEX  from sources  read on  You should already have a working TEX system  e  g  teTEX  into which the freshly  compiled pdfTgX will be integrated  Note that the installation description in this manual is Web2c specific     Getting sources and binaries    The latest sources of pdf IX are currently distributed for compilation on Unix systems  including Linux    and Win32 systems  Windows 95  98  NT  2000  XP   The primary location where one can fetch the latest  released code is at the developers    homepage http    sarovar org projects pdftex   where you also  find bug tracking information  and the manual sources  Download the pdf IEX archive from there     The pdfTEX sources can also be found at their canonical place in the CTAN network  ctan  systems pdftex   Separate pdfTpx binaries for various systems might also be available  check out the subdirectories below  ctan systems     3 2    3 3    3 4    The pdfTEX user manual    Compiling  The compilation is expected to be easy on Unix like systems and can be described best by example  Assuming    that the file pdf tex  zip is downloaded to some working directory  e  g   HOME pdftex  on a Unix system  the following steps are needed to compile pdf IEX     cd  HOME pdftex   unzip pdftex 1 30 4 zip  cd pdftex 1 30 4   
3.   They contain  also information about re encoding arrays  partial downloading  and character transformation parameters   like SlantFont and ExtendFont   Those map files were first created for dvi postprocessors  But  as pdf IEX in  pdf output mode includes all pdf processing steps  it also needs to know about font mapping  and therefore  reads in one or more map files  Map files are not read in when pdf TEX is in dvi mode  Pixel fonts can be used  without being listed in the map file     By default  pdf IEX reads the map file pdftex map  In Web2c  map files are searched for using the  TEXFONTMAPS config file value and environment variable  By default  the current directory and various  system directories are searched     Within the map file  each font is listed on an individual line  The syntax of each line is upward compatible  with dvips map files and can contain the following fields  some are optional  explanations follow      tfmname basename fontflags special encodingfile fontfile    10    The pdfIgx user manual    It is mandatory that tfmname is the first field  If a basename is given  it must be the second field  Similarly if  fontflags is given it must be the third field  if basename is present  or the second field  if basename is left  out   It is possible to mix the positions of special  encodingfile  and fontfile  however the first three fields  must be given in fixed order     tfmname sets the name of the tfm file for a font     the name TEX sees  This name must 
4.   Think of an O  when geometrically  stretched  the vertical part of the glyph becomes thicker  and looks incompatible with an unscaled original   With a multiple master situation  one can stretch while keeping this thickness compatible      pdfadjustspacing  integer     This primitive provides a switch for enabling font expansion  By default   pdfadjustspacing is set to 0   then font expansion is disabled  so that the pdf IEX output is identical to that from the original TEX engine     Font expansion can be activated in two modes  When Npdfadjustspacing is set to 1  font expansion is  applied after TEX s normal paragraph breaking routines have broken the paragraph into lines  In this case   line breaks are identical to standard TEX behaviour     When set to 2  the width changes that are the result of stretching and shrinking are taken into account while  the paragraph is broken into lines  In this case  line breaks are likely to be different from those of standard  TEX  In fact  paragraphs may even become longer or shorter     Both alternatives require a collection of tfm files that are related to the  stretch  and  shrink  settings for the   pdffontexpand primitive  unless this is given with the autoexpand option      efcode  font   integer     We didn t yet tell the whole story  One can imagine that some glyphs are visually more sensitive to stretching   or shrinking than others  Then the  ef code primitive can be used to influence the expandability of individual   glyphs 
5.   myfont map  or   pdfmapfile  myfont map   as described below      pdfmapfile   foo map  puts the file foo map into the list of pending map items  When the file foo  map  is scanned  duplicate map entries are ignored and a warning is issued  This is compatible with the former  behaviour      pdfmapfile   foo map  puts the file foo map into the list of pending map items  When the file foo  map  is scanned  matching map entries in the database are replaced by new entries from foo map      pdfmapfile   foo map  puts the file foo map into the list of pending map items  When the file foo  map  is scanned  matching map entries are deleted from the database      pdfmapfile    clears the list of pending map items  It does not affect map entries already registered into  the database  This is compatible with the former behaviour  When this command is given at the beginning  of a pdfT   X run  the default map file pdftex map will not be read in  This may help with quick program  startup  if no fonts are required     If you want to use a base map file name other than pdftex map  or change its processing options through  a pdfTEX format  you can do this by appending the  pdfmapfile command to the  everyjob   token list  for the  ini run  e  g       every job expandafter  the everyjob pdfmapfile  myspecial map     dump     pdfmapline  map spec     Similar to  pdfmapfile  but here you can give a single map line  like the ones in map files  as an argument   The modifiers       have the same
6.  27    7 7    The pdfTEX user manual    because they are laid out on a separate layer  are positioned absolutely  and have dedicated housekeeping    pdfxform makes the box void  as  box does     When  attr spec  is given  the text will be written as additional attribute into the form XObject dictionary   The  resources spec  is similar  but the text will be added to the resources dictionary of the form XObject  The  text given by  attr spec  or  resources spec  is written before other entries of the form dictionary and or the  resources dictionary and takes priority over later ones      pdfrefxform  object number     The form XObject is kept in memory and will be written to the pdf output only when its object number is  referred to by  pdfrefxform or when  pdfxform is preceded by  immediate  Nothing is appended to the  list being built  The number of the most recently created form XObject is accessible via  pdflastxform     When issued   pdfrefxform appends a whatsit node to the list being built  When the whatsit node is  searched at shipout time  pdf IEX will write the form  object number  to the pdf output if it is not written yet      pdflastxform  read only integer   The object number of the most recently created form XObject is accessible via  pdf lastxform     As said  this feature can be used for reusing information  This mechanism also plays a role in typesetting  fill in forms  Such widgets sometimes depends on visuals that show up on user request  but are hidden  ot
7.  3 and allows only included pdf files with  versions numbers up to 1 3  The default for  pdfminorversion is 4  producing files with pdf version 1 4  If  specified  this primitive must appear before any data is to be written to the generated pdf file  so you should  put it at the very start of your files  The command has been introduced in pdf IEX 1 30 0 as a shortened  synonym of Npdfoptionpdfminorversion command  that is obsolete by now      pdfcompresslevel  integer     This integer parameter specifies the level of stream compression  text  in line graphics  and embedded png  images  only if they are un  and re compressed during the embedding process   all done by the z1ib library    Zero means no compression  1 means fastest  9 means best  2  8 means something in between  A value outside  this range will be adjusted to the nearest meaningful value  This parameter is read each time pdf IEX starts  a stream  Setting  pdf compresslevel O is great for pdf stream debugging      pdfdecimaldigits  integer     This integer parameter specifies the numeric accuracy of real coordinates as written to the pdf file  It gives  the maximal number of decimal digits after the decimal point  Valid values are in range 0  4  A higher value  means more precise output  but also results in a larger file size and more time to display or print  In most  cases the optimal value is 2  This parameter does not influence the precision of numbers used in raw pdf code   like that used in  pdfliteral and a
8.  As with pages described by PostScript  the pdf reference point is  in the lower left corner     Formerly  these dimensions and other pdfTEX parameters were read in from a configuration file named  pdftex cfg  which had a special  non TEX  format  at the start of processing  Nowadays such a file is  ignored by pdfTpx  Instead  the page dimensions and offsets  as well as many other parameters  can be set  by pdf IEX primitives during the pdfTEX format building process  so that the settings are dumped into the  fresh format and consequently will be used when pdf IEX is later called with that format  All settings from    The pdfTEX user manual    the format can still be overridden during a pdf IEX run by using the same primitives  This new configuration  concept is a more unified approach  as it avoids the configuration file with a special format     A list of pdf TEX primitives relevant for setting up the pdfTEX engine is given in table 2  All primitives are  described in detail within later sections  Figure 1 shows a recent configuration file  pdf texconf ig  tex  in  TEX format  using the primitives from table 2  which typically is read in during the format building process   It enables pdf output  sets paper dimensions and the default pixel density for pk font inclusion  The default  values are chosen so that pdfTEX often can be used  e  g  in  ini mode  even without setting any parameters           internal name type default comment   pdfoutput integer 0 dvi   pdfadjustspac
9.  Build    The binaries pdftex and pdfetex are then built in the subdirectory build texk web2c  In the same  directory also the corresponding pool files pdftex pool and pdfetex pool are generated  that are needed  for creating formats     Placing files    The next step is to put the freshly compiled binaries and pool files into their proper places within the  tds structure of the TEX system  Put the files pdftex and pdfetex into the directory  e g  for a typical  teTEX system   usr 1ocal teTeX bin i686 pc linux gnu  and the pool files into  usr local teTeX    share texmf  web2c     Don t forget to do a texconfig sys init afterwards  so that all formats are regenerated system wide with  the fresh binaries     Setting search paths    Web2c based programs  including pdf IEX  use the Web2c run time configuration file called texmf   cnf  The  location of this file is the appropriate position within the tds tree relative to the place of the pdf IEX binary  on  a teTEX system  file texmf   cnf typically is located either in directory texmf  web2c or texmf local web2c   The path to file texmf   cnf can also be set up by the environment variable TEXMFCNF     Next you might need to edit texmf   cnf so that pdfTEX can find all necessary files  but the texmf   cnf files  coming with the major TEX distributions should already be set up for normal use  You might check into the  file texmf   cnf to see where the various bits and pieces are going     pdf TEX uses the search path variables sho
10.  a unit of 65536  e  g   16980  This  primitive expands to a list of tokens  The primitive has been introduced in pdf TEX 1 30 0      pdfrandomseed  read only integer     You can use  the pdfrandomseed to query the current seed value  so you can e  g  write the value to the  log file  The initial value of the seed is derived from the system time  and is not more than 1 000 999 999    34    7 16    7 17    The pdfTEX user manual     this ensures that the value can be used with commands like  count   The primitive has been introduced in  pdfTEX 1 30 0      pdfsetrandomseed  number     This sets the random seed   pdfrandomseed  to a specific value  allowing you to re play sequences of  semi randoms at a later moment  The primitive has been introduced in pdf IEX 1 30 0     Files     pdffilemoddate  general text   expandable     Expands to the modification date of file  general text  in the same format as for  pdf creationdate  e g  it s  D 20051017182846 02   00    for the source of this manual  The primitive has been introduced in pdf IEX  1 30 0      pdffilesize  general text   expandable     Expands to the size of file  general text    e  g  it   s 191595 for the source of this manual  The primitive has  been introduced in pdf IEX 1 30 0      pdfmdf ivesum file  general text   expandable     Expands to the md5 of file  general text  in uppercase hexadecimal format  same as  pdfescapehex   e  g  it   s  39B9FA736576354E8A054344626D2C9B for the source of this manual  The primiti
11.  are drawn with extra pixels even  at very small text sizes  Typically  when characters are drawn at small sizes on very low resolution  devices such as display screens  features of bold characters may appear only one pixel wide  Because  this is the minimum feature width on a pixel based device  ordinary non bold characters also appear  with one pixel wide features  and thus cannot be distinguished from bold characters  If bit 19 is set   features of bold characters may be thickened at small text sizes     If the font flags are not given  pdf IEX treats it as being 4  a symbolic font  If you do not know the correct  value  it is best not to specify it at all  as specifying a bad value of font flags may cause troubles in viewers   On the other hand this option is not absolutely useless because it provides backward compatibility with  older map files  see the fontfile description below      special instructions can be used to manipulate fonts similar to the way dvips does  Currently only  the keywords SlantFont and ExtendFont are interpreted  other instructions  as ReEncodeFont with  parameters  see encoding below  are just ignored  The permitted SlantFont range is    1  1  for ExtendFont  it s    2  2  The block of special instruction must be enclosed by double quotes       encoding specifies the name of the file containing the external encoding vector to be used for the font  The  file name may be preceded by a  lt   but the effect is the same  The format of the encoding vec
12.  direct    text        Strings   pdfescapestring  general text     Starting from version 1 30 0  pdf IEX provides a mechanism for converting a general text into pdf string   Many characters that may be needed inside such a text  especially parenthesis   have a special meaning  inside a pdf string object and thus  can   t be used literally  The primitive replaces each special pdf character  by its literal representation by inserting a backslash before that character  Some characters  e  g space  are    33    7 14    7 15    The pdfTEX user manual    also converted into 3 digit octal number  In example   pdfescapestring Text  1   will be expanded to  TextN040N  1X   This ensures a literal interpretation of the text by the pdf viewer  The primitive has been  introduced in pdf TEX 1 30 0      pdfescapename  general text     In analogy to  pdfescapestring   pdfescapename replaces each special pdf character inside the general  text by its hexadecimal representation preceded by   character  This ensures the proper interpretation of the  text if used as a pdf name object  In example  Text  1  will be replaced by Text 20 281 29  The primitive  has been introduced in pdf IEX 1 30 0      pdfescapehex  general text     This command converts each character of  general text  into its hexadecimal representation  Each character  of the argument becomes a pair of hexadecimal digits  The primitive has been introduced in pdf IEX 1 30 0      pdfunescapehex  general text     This command treats e
13.  effect as with  pdfmapf ile  see also the description above  Example     25    7 4    The pdfTEX user manual     pdfmapline  ptmri8r Times Italic  lt 8r enc  lt ptmri8a pfb     This primitive  especially the  pdfmapline       variant  allows quick checks of a new font map entry   before writing it into a map file      pdfmapline    clears the list of pending map items a similar way as  pdfmapfile   does  The primitive  has been introduced in pdf IEX 1 20a      pdftracingfonts  integer     This integer parameter specifies the level of verbosity for info about expanded fonts given in the log  e  g   when  tracingoutput 1  If  pdftracingfonts 0  which is the default  the log shows the actual non zero  signed expansion value for each expanded letter within brackets  e  g          xivtt   20  t  If  pdftracingfonts 1  also the name of the tfm file is listed  together with the font size  e  g        xivtt  cmtt10 20014 0pt  t    Setting  pdftracingfonts to a value other than 0 or 1 is not recommended  to allow future extensions  The  primitive has been introduced in pdf IEX 1 30 0      pdfmovechars  integer     Since pdf TEX version 1 30 0 the primitive  pdfmovechars is obsolete  and its use merely leads to a warning    This primitive specified whether pdf IEX should try to move characters in range 0  31 to higher slots  its sole  purpose was to remedy certain bugs of early pdf viewers       pdfpkmode  tokens     The  pdfpkmode is a token register that sets the METAFONT mode for p
14.  full support for pdfT   X in its generalized hy   pertext features  Support for pdf IEX is implemented as a special driver  and is invoked by typing   setupoutput  pdftex  or feeding TpXexec with the   pdf option     e pdf from Texinfo documents can be created by running pdf IEX on the Texinfo file  instead of TEX  Alterna   tively  run the shell command texi2pdf instead of texi2dvi     e A small modification of webmac   tex  called pdfwebmac  tex  allows production of hyperlinked pdf  versions of the program code written in web     Some nice samples of pdfIpX output can be found at http   www pdftex org  http   www   pragma ade com  and http   www tug org texshowcase     Setting up fonts    pdf TEX can work with Type 1 and TrueType fonts  but a source must be available for all fonts used in the  document  except for the 14 standard fonts supplied by the pdf reader  Times  Helvetica  Courier  Symbol  and Dingbats   It is possible to use METRFONT generated fonts in pdf IEX     but it is strongly recommended  not to use these fonts if an equivalent is available in Type 1 or TrueType format  if only because bitmap Type 3  fonts render very poorly in  older versions of  Adobe Reader  Given the free availability of Type 1 versions of  all the Computer Modern fonts  and the ability to use standard PostScript fonts  there is rarely a need to use  bitmap fonts in pdf IEX     Map files    Font map files provide the connection between IEX tfm font files and the outline font file names
15.  integer   This primitive  when set to 1  enables gamma correction while embedding png images  taking the values  of the primitives  pdf gamma as well as the gamma value embedded in the png image into account  When     pdfimageapplygamma is set to 0  no gamma correction is performed  If specified  the parameter must  appear before any data is written to the pdf output  The primitive has been introduced in pdf IEX 1 30 0      pdfgamma  integer   This primitive defines the    device gamma    for pdf TEX  Values are in promilles  same as for  mag   The default  value of this primitive is 1000  defining a device gamma value of 1 0     When  pdf imageapplygamma is set to 1  then whenever a png image is included  pdfTEX applies a gamma  correction  This correction is based on the value of the  pdf gamma primitive and the    assumed device gamma     that is derived from the value embedded in the actual image  If no embedded value can be found in the png  image  then the value of  pdf imagegamma is used instead  If specified  the parameter must appear before  any data is written to the pdf output  The primitive has been introduced in pdfTpx 1 30 0      pdfimagegamma  integer     This primitive gives a default  assumed gamma  value for png images  Values are in promilles  same as for   pdfamma   The default value of this primitive is 2200  implying an assumed gamma value of 2 2     When pdf IEX is applying gamma corrections  images that do not have an embedded    assumed gamma     val
16.  number   h  v  m     pdfxform    xform attr spec     box number   h  v  m    pdfrefxform  object number   h  v  m     pdfximage    image attr spec     general text   h  v  m    pdfrefximage  object number   h  v  m     pdfannot  annot type spec   h  v  m     pdfstartlink    rule spec       attr spec     action spec   h  m    pdfendlink  h  m     pdfoutline  outline spec   h  v  m     pdfdest  dest spec   h  v  m     pdfthread  thread spec   h  v  m     pdfstartthread  thread spec   v  m    pdfendthread  v  m     pdfsavepos  h  v  m     pdfinfo  general text     pdfcatalog  general text     open action spec       16    The pdfTEX user manual     pdfnames  general text     pdfmapfile  map spec     pdfmapline  map spec     pdffontattr  font   general text    pdftrailer  general text     pdffontexpand  font   expand spec    vadjust    pre spec     filler     vertical mode material     h  m    pdfliteral  direct   general text   h  v  m    special  pdfspecial spec     pdfresettimer    pdfsetrandomseed  number    pdfnoligatures  font     General definitions and syntax rules     general text      1  balanced text      attr spec      attr  general text    resources spec      resources  general text    rule spec       width   height   depth   dimension     rule spec      object type spec      reserveobjnum      useobjnum  number       stream    attr spec       object contents    annot type spec      reserveobjnum     useobjnum  number       rule spec     general text    object conten
17.  original  documents  forming one section Entitled    His   tory     likewise combine any sections Entitled     Acknowledgements     and any sections Entitled     Dedications     You must delete all sections Enti   tled    Endorsements        COLLECTIONS OF DOCUMENTS    You may make a collection consisting of the Doc   ument and other documents released under this  License  and replace the individual copies of this  License in the various documents with a single  copy that is included in the collection  provided  that you follow the rules of this License for verba   tim copying of each of the documents in all other  respects     You may extract a single document from such  a collection  and distribute it individually under  this License  provided you insert a copy of this  License into the extracted document  and follow  this License in all other respects regarding verba   tim copying of that document     AGGREGATION WITH  INDEPENDENT WORKS    A compilation of the Document or its derivatives   with other separate and independent documents   or works  in or on a volume of a storage or dis   tribution medium  is called an    aggregate    if the   copyright resulting from the compilation is not   used to limit the legal rights of the compilation   s   users beyond what the individual works permit   When the Document is included in an aggregate   this License does not apply to the other works in   the aggregate which are not themselves deriva   tive works of the Document     If t
18.  several links with the same content      pdflinkmargin  dimension     This dimension parameter specifies the margin of the box representing a hyperlink and is read when a page  containing hyperlinks is shipped out      pdfdestmargin  dimension     Margin added to the dimensions of the rectangle around the destinations     Bookmarks     pdfoutline    attr spec     action spec    count  integer     general text     This primitive creates an outline  or bookmark  entry  The first parameter specifies the action to be taken  and  is the same as that allowed for  pdfstartlink  The  count  specifies the number of direct subentries under  this entry  specify 0 or omit it if this entry has no subentries  If the number is negative  then all subentries  will be closed and the absolute value of this number specifies the number of subentries  The  text  is what    32    7 11    7 12    7 13    The pdfT   X user manual    will be shown in the outline window  Note that this is limited to characters in the pdf Document Encoding  vector  The outline is written to the pdf output immediately     Article threads   pdfthread    rule spec       attr spec     id spec     Defines a bead within an article thread  Thread beads with same identifiers  spread across the document   will be joined together      pdftstarthread    rule spec       attr spec     id spec     This uses the same syntax as  pdfthread  apart that it must be followed by a  pdfendthread    pdfstartthread and the corresponding  pdfen
19.  to that later  Unless such  direct objects are part of something larger  they will end up as isolated entities  not doing any harm but not  doing any good either     When a viewer opens a pdf file  it first goes to the end of the file  There it finds the keyword startxref   the signal where to look for the so called    object cross reference table     This table provides fast access to the  objects that make up the file  The actual starting point of the file is defined after the trailer  The  Root  entry points to the catalog  In this catalog the viewer can find the page list  In our example we have only  one page  The trailer also holds an  Info entry  which tells a bit more about the document  Just follow the  thread      Root     object 7      Pages     object 5      Kids     object 2      Contents     object 3    As soon as we add annotations  a fancy word for hyperlinks and the like  some more entries are present in  the catalog  We invite users to take a look at the pdf code of this file to get an impression of that     The page content is a stream of drawing operations  Such a stream can be compressed  where the level of  compression can be set with  pdfcompresslevel  Let s take a closer look at this stream in object 3  Often  there is a transformation matrix  six numbers followed by cm  As in PostScript  the operator comes after the  operands  Between BT and ET comes the text  A font is selected by a Tf operator  which is given a resource  name  F    and the font siz
20.  to utilize these primitives      pdflastxpos  read only integer     This primitive returns an integer number representing the absolute x coordinate of the last point marked by   pdfsavepos  The unit is    scaled points     sp      35    The pdfTEX user manual     pdflastypos  read only integer   This primitive works similar to  pdflastxpos  only it returns the y coordinate    pdftexversion  read only integer     Returns the version of pdf TEX multiplied by 100  e  g  for pdf IEX version 1 30 4 used to produce this document   it returns 130      pdftexrevision  expandable     Returns the revision letter of pdf IEX  e  g  for pdf IEX version 1 30 4 used to produce this document  it returns  the letter 4      pdftexbanner  expandable     Returns the pdfIEX banner message  e g  for the version used here  This is pdfeTeX  Version  3 141592 1 30 4 2 2  Web2C 7 5 5  kpathsea version 3 5 5  The primitive has been introduced  in pdf TEX 1 20a      pdfcreationdate  expandable     Expands to the date string pdfIpxX uses in the info dictionary of the document  e g  for this file  D 20051017183841 02   00     The primitive has been introduced in pdf IEX 1 30 0      pdfshellescape  read only integer     This primitive is 1 if  write18 is enabled  0 otherwise   write18 was not enabled when this manual was  typeset  The primitive has been introduced in pdf IEX 1 30 0     Graphics and color    pdf IEX supports inclusion of pictures in png  jpeg  and pdf format  a few differences between thes
21.  wheat from the chaff and separate the sheep from  the goats     Protruding    We thrive in information thick worlds because of our marvelous and everyday capacity to select  edit  sin   gle out  structure  highlight  group  pair  merge  harmonize  synthesize  focus  organize  condense  reduce   boil down  choose  categorize  catalog  classify  list  abstract  scan  look into  idealize  isolate  discriminate   distinguish  screen  pigeonhole  pick over  sort  integrate  blend  inspect  filter  lump  skip  smooth  chunk   average  approximate  cluster  aggregate  outline  summarize  itemize  review  dip into  flip through  browse   glance into  leaf through  skim  refine  enumerate  glean  synopsize  winnow the wheat from the chaff and    separate the sheep from the goats     We thrive in information thick worlds because of  our marvelous and everyday capacity to select  ed   it  single out  structure  highlight  group  pair  merge   harmonize  synthesize  focus  organize  condense  re   duce  boil down  choose  categorize  catalog  clas   sify  list  abstract  scan  look into  idealize  isolate   discriminate  distinguish  screen  pigeonhole  pick    Both    over  sort  integrate  blend  inspect  filter  lump  skip   smooth  chunk  average  approximate  cluster  ag   gregate  outline  summarize  itemize  review  dip in   to  flip through  browse  glance into  leaf through   skim  refine  enumerate  glean  synopsize  winnow  the wheat from the chaff and separate the sheep  fro
22.  you     You accept the license if you copy  modify   or distribute the work in a way requiring permis   sion under copyright law     A    Modified Version    of the Document means   any work containing the Document or a portion   of it  either copied verbatim  or with modifica   tions and or translated into another language     A    Secondary Section    is a named appendix or  a front matter section of the Document that deals  exclusively with the relationship of the publishers    or authors of the Document to the Document s   overall subject  or to related matters  and con   tains nothing that could fall directly within that   overall subject   Thus  if the Document is in part   a textbook of mathematics  a Secondary Section   may not explain any mathematics   The relation   ship could be a matter of historical connection   with the subject or with related matters  or of le   gal  commercial  philosophical  ethical or political   position regarding them     The    Invariant Sections    are certain Secondary   Sections whose titles are designated  as being   those of Invariant Sections  in the notice that says   that the Document is released under this License   If a section does not fit the above definition of Sec   ondary then it is not allowed to be designated as   Invariant  The Document may contain zero Invari   ant Sections  If the Document does not identify   any Invariant Sections then there are none     The    Cover Texts    are certain short passages of  text that 
23. 00000000 65535  0000000342 00000  0000000228 00000  0000000015 00000  0000002296 00000  0000002384 00000  0000000410 00000  0000002441 00000  0000002490 00000  trailer    lt  lt   Size 9    Root 70 R   Info 80 R    ID   lt AA8E76D24E8056A065DC5D0A3435EE30 gt    lt AA8E76D24E8056A065DC5D0A3435EE30 gt    gt  gt   startxref   2694   EOF    B 555 PPB BH    The pdf TEX user manual    The pdf TEX user manual    H  n Th   Th  nh  Sebastian Rahtz   Hans Hagen  Hartmut Henkel  Pawel Jackowski    October 17  2005  Rev  1 622    The title page of this manual  represents the plain TEX coded  text    Welcome to pdf TEX         pdfoutput 1    pdf compresslevel 0   font tenrm ptmr8r   tenrm   Welcome to pdf TeX    bye    1 1    The pdfTEX user manual    Contents   1 Introduction nn  1 9 Character translation                   37  2  About PDF uU ee as 2 10 Limitations of PDFIEX                  38  3 Getting started nnn 3   4 Macro packages supporting PDFIEX      9 Abbreviations              0 00  c ee eee en 38  5 Setting up fonts                   000  10 Examples of HZ and protruding             39  6 Formal syntax specification             14 Additional PDF keys nn  41  7  PDFTpX primitives                 06  18 Colophon  fo Mer nente ade de HON 41  8 Graphics and color                     36 GNU Free Documentation License           42  Introduction    The main purpose of the pdf IEX project is to create and maintain an extension of TEX that can produce  pdf directly from IEX source fi
24. APDF 1 4       3 0 obj         Length 156    gt  gt    stream   BT    F51 9 9626 Tf 91 9253 759 9271   Td   W  80  elcome   250  to   250  pdfT    TJ  67 8181  2 2416 Td  E  TJ 4 8418 2 2416  Ta  X   TJ 138 9241  654 7472 Td  1  TJ  ET   endstream   endobj   2 0 obj  lt  lt     Type  Page    Contents 30 R    Resources 1 O0 R    MediaBox  0 0 595 2756 841 8898    Parent 5 O R    gt  gt  endobj   1 0 obj  lt  lt     Font  lt  lt   F51 4 0 R  gt  gt     ProcSet    PDF  Text      gt  gt  endobj   6 0 obj  lt  lt     Type  Encoding   Differences 0  notdefi dotaccent   fi fl fraction hungarumlaut Lslash   1slash ogonek ring10  notdef11   breve minus13  notdef14 Zcaron   zcaron caron dotlessi dotlessj ff   ffi ffl notequal infinity lessequal   greaterequal partialdiff summation   product pi grave quotesingle 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 0 P Q R S T U V W X Y   Z bracketleft backslash bracketright   asciicircum underscore quoteleft   a b c d e t g h i j k 1 m   n o p q r s t u v w x y z   braceleft bar braceright asciitilde  127  notdef128 Euro integral   quotesinglbase florin quotedblbase   ellipsis dagger daggerdbl circumflex   perthousand Scaron guilsinglleft OE   Omega radical approxequal144  notdef  147 quotedblleft quotedblright bullet   en
25. ETAPOST graphic programming environment  vector output  MikTeX Win32 distribution   MLIEX MLIEX extension to TEX   mptopdf METAPOST to pdf conversion tool   MSDos Microsoft DOS platform  Intel    pdf Portable Document Format   pdfe TEX  amp  IpX extension producing pdf output   pdfLATEX TEX extension producing pdf output     TEX format loaded   pdf TEX TEX extension producing pdf output    38    The pdfTEX user manual    Perl Perl programming environment  pge pdf Glyph Container   pk Packed bitmap font   png Portable Network Graphics    PostScript PostScript  PStoPDF PostScript to pdf converter  on top of GhostScript     rgb Red Green Blue color specification   tex TEX Character Translation   tds TEX Directory Standard   teTEX TEX distribution for Unix  based on Web2c   TEX typographic language and program  TpXexec ConTEXt command line interface   Texinfo generate typeset documentation from info pages  TEX Live TEX Live distribution  multiple platform   TpXutil ConTgXt utility tool   tfm TEX Font Metrics   Unix Unix platform   url Uniform Resource Locator   web literate programming environment   Web2c official multi platform web environment  Win32 Microsoft Windows platform    Examples of HZ and protruding    In the following sections we will demonstrate pdfT   X   s protruding and hz features  using a text from  E  Tufte  This sample text has a lot of punctuation and often needs hyphenation  Former pdf IEX versions  had sometimes problems with combining these features  but f
26. ach character pair of  general text  as a hexadecimal number and returns an ascii  character of this code  The primitive has been introduced in pdf TEX 1 30 0      pdfmdf ivesum  general text   expandable     This command expands to the md5 of  general text in uppercase hexadecimal format  same as   pdfescapehex   The primitive has been introduced in pdf TEX 1 30 0     Timekeeping   pdfelapsedt ime  read only integer     The command expands to a number that represents the time elapsed from the moment of run start  The  elapsed time is returned in    scaled seconds     that means seconds divided by 65536  e  g  pdf IEX has run for  959623    scaled seconds    when this paragraph was typeset  Obviously  the command will never return a value  greater than the highest number available in TEX  if the time exceeds 32767 seconds  the constant value 2       1  will be returned  The primitive has been introduced in pdf TEX 1 30 0      pdfresettimer    The command resets the internal timer so that  pdfelapsedtime starts returning micro time from 0 again   The primitive has been introduced in pdf IEX 1 30 0     Random numbers     pdfuniformdeviate  number   expandable     The commands generates a uniformly distributed random integer value between 0  inclusive  and  num   ber   exclusive   This primitive expands to a list of tokens  The primitive has been introduced in pdf IEX  1 30 0      pdfnormaldeviate  expandable     The commands generates a random integer value with a mean of 0 and
27. al TEX with dvi output is to be modified for use with pdf IEX   it is very helpful to get some insight to what extent pdfTEX specific support is needed  This info can be  gathered e  g  by outputting the various  special commands as  message  Simply type     pdfoutput 1  let special message  or  if this leads to confusion    pdfoutput 1  def special i  write16 special   1      and see what happens  As soon as one    special    message turns up  one knows for sure that some kind of  pdf TEX specific support is needed  and often the message itself gives a indication of what is needed     5 1    The pdfTEX user manual    Currently all mainstream macro packages offer pdf IEX support  with automatic detection of pdf IFX as engine   So there is normally no need to turn on pdf IEX support explicitly     e For I TEX users  Sebastian Rahtz    and Heiko Oberdiek s hyperref package has substantial support for  pdf IEX and provides access to most of its features  In the simplest and most common case  the user merely  needs to load hyperref  and all cross references will be converted to pdf hypertext links  pdf output is  automatically selected  compression is turned on  and the page size is set up correctly  Bookmarks are  created to match the table of contents     e The standard    TEX graphics  graphicx  and color packages also have automatic pdf IEX support   which allow use of color  text rotation  and graphics inclusion commands     e The ConTEXt macro package by Hans Hagen has very
28. always be given     basename sets the base  PostScript  font name  The basename field is checked against the BaseName entry  of fonts coming with embedded pdf files  If there is a match  the font will be removed from the embedded file   and a local font is opened  which will contain the glyphs from the embedded file  This collecting mechanism  helps keeping the resulting pdf file size small  if many files with similar fonts are to be embedded  Therefore  it is recommended always to set the basename field     If a basename field is given  also a fontfile field must be there  unless the basename matches one of the  14 standard font names  then the fontfile field is optional  If the fontfile name is given  this font will be  embedded  depending on flags  see below   If the fontfile name for a standard font is missing  the font will  be quietly left out  which is fine  as pdf viewers will later render the text with their own versions of the font     fontflags specify some characteristics of the font  The following description of these flags is taken  with  slight modification  from the pdf Reference Manual  the section on font descriptor flags   Viewers can adapt  their rendering to these flags  especially when they substitute a replacements for not embedded fonts     The value of the flags key in a font descriptor is a 32 bit integer that contains a collection of boolean  attributes  These attributes are true if the corresponding bit is set to 1  Table 3 specifies the meanings  
29. and       stretch       number     shrink       number     step       number     prespec      pre    pdfspecial spec           pdfspecial id     pdfspecial modifier       balanced text       pdfspecialid      pdf    PDF     pdfspecial modifier      direct     A  general text  is expanded immediately  like Nspecial in traditional TEX  unless explicitly mentioned  otherwise     Some of the object and image related primitives can be prefixed by  immediate  More about that in the next  sections     PDFTEX primitives    Here follows a short description of the primitives added by pdf IEX to the original TEX engine  other extensions  by MLIEX and encT   X are not listed   One way to learn more about how to use these new primitives is to  have a look at the file samplepdf   tex in the pdfTEX distribution     Note that if the output is dvi then the pdf IEX specific dimension parameters are not used at all  Howev   er some pdfIEX integer parameters can affect the dvi as well as pdf output  currently  pdfoutput and   pdfadjustspacing      General warning  many of these new primitives  for example  pdfdest and  pdfoutline  write their  arguments directly to the pdf output file  when producing pdf   as pdf string constants  This means that you   or  more likely  the macros you write  must escape characters as necessary  namely       and    Otherwise   an invalid pdf file may result  The hyperref and Texinfo packages have code which may serve as a starting  point for implementing this  alt
30. and causes pdf IEX to treat the characters in  general text  as if they were used with  font   which  means that the corresponding glyphs will be embedded into the font resources in the pdf output  Nothing is  appended to the list being built      pdfuniqueresname  integer     When this primitive is assigned a positive number  pdf resource names will be made reasonably unique by  appending a random string consisting of six ascii characters      pdfmapfile  map spec     This primitive is used for managing font map files  to make them known to pdf IEX so that they can be read  in  If no  pdfmapfile primitive is given  the default map file pdftex map will be read in by pdf TEX     Normally there is no need for the pdfTgxX user to bother about the  pdfmapf ile primitive  as the main TEX  distributions provide nice helper tools that automatically assemble the default font map file  One prominent  tool example is the script updmap coming with te TEX     24    The pdfTEX user manual    The operation mode of the  pdfmapfile primitive is selected by a flag letter           or omitted   This  flag defines how a map file is going to be handled  and how a collision between an existing map entry and  a newer one is resolved  either ignoring a later entry  or replacing or deleting an existing entry  But in any  case  map entries of fonts already in use are kept untouched  The companion primitive  pdfmapline allows  something similar  only that a single map line for one font  instead of a m
31. ap file name  is given as argument   Here are two examples      pdfmapfile  myfont  map    pdfmapline  ptmri8r Times Italic  lt 8r enc  lt ptmri8a pfb     The general map handling function is that map items  which are either map file names or single font map  lines  in case of the  pdfmapline primitive  are put into an auxiliary list of pending map items  During the  next page shipout  this list is processed and all pending map items are sequentially scanned for their map  entries  and an internal map entry database is updated  using one of the modes described below  Then the  list of pending map items is cleared  All  pdfmapfile and  pdfmapline commands can also be given after  shipout of the first page     If your map file isn   t in the current directory  or a standard system directory   you will need to set the  TEXFONTMAPS variable  in Web2c  or give an explicit path so that it will be found      pdfmapfile foo map         flags omitted  clears the list of pending map items and starts a new list  with the only pending file foo map  When the file foo map is scanned  duplicate map entries are ignored  and a warning is issued  When this command is given at the beginning of a TEX run  the default map file  pdftex map will not be read in  This is compatible with the former behaviour     If you want to add support for a new font through an additional font map file while keeping all the existing  mappings  don   t use this version of command  but instead type either  pdfmapfile
32. are listed  as Front Cover Texts or Back   Cover Texts  in the notice that says that the Doc   ument is released under this License  A Front   Cover Text may be at most 5 words  and a Back   Cover Text may be at most 25 words     A    Transparent    copy of the Document means   a machine readable copy  represented in a format   whose specification is available to the general   public  that is suitable for revising the document   straightforwardly with generic text editors or  for   images composed of pixels  generic paint pro   grams or  for drawings  some widely available   drawing editor  and that is suitable for input to   text formatters or for automatic translation to a va   riety of formats suitable for input to text format   ters  A copy made in an otherwise Transparent   file format whose markup  or absence of markup   has been arranged to thwart or discourage subse   quent modification by readers is not Transparent   An image format is not Transparent if used for   any substantial amount of text  A copy that is not      Transparent    is called    Opaque        Examples of suitable formats for Transparent   copies include plain ASCII without markup  Tex   info input format  LaTeX input format  SGML   or XML using a publicly available DTD  and   standard conforming simple HTML  PostScript   or pdf designed for human modification  Exam   ples of transparent image formats include PNG   XCF and JPG  Opaque formats include propri   etary formats that can be read and edite
33. bute it  with or without modifying it  either  commercially or noncommercially  Secondarily   this License preserves for the author and publish   er a way to get credit for their work  while not  being considered responsible for modifications  made by others     This License is a kind of    copyleft     which means  that derivative works of the document must them   selves be free in the same sense  It complements  the GNU General Public License  which is a copy   left license designed for free software     We have designed this License in order to use it   for manuals for free software  because free soft   ware needs free documentation  a free program   should come with manuals providing the same   freedoms that the software does  But this License   is not limited to software manuals  it can be used   for any textual work  regardless of subject mat   ter or whether it is published as a printed book   We recommend this License principally for works   whose purpose is instruction or reference     APPLICABILITY AND  DEFINITIONS    This License applies to any manual or other work   in any medium  that contains a notice placed by   the copyright holder saying it can be distributed   under the terms of this License  Such a notice   grants a world wide  royalty free license  unlim   ited in duration  to use that work under the con   ditions stated herein  The    Document     below   refers to any such manual or work  Any member   of the public is a licensee  and is addressed as     
34. csr10  is described in one of the map files  then it will be treated as  scalable  As a result the font source for csr10 will be included only once for csr10 csr10 at 12pt etc  So  pdf TEX tries to do its best to avoid multiple downloading of identical font sources  Thus vector pgc fonts  should be specified as scalable Type 3 in map files like     csr10    It doesn   t hurt much if a scalable Type 3 font is not given in map files  except that the font source will be  downloaded multiple times for various sizes  which causes a much larger pdf output  On the other hand if  a font in the map files is defined as scalable Type 3 font and its pgc source is not scalable or not available   pdf IEX will use pk fonts instead  the pdf output is still valid but some fonts may look ugly because of the  scaled bitmap     To summarize this rather confusing story  we include a some example lines  First we use two fonts from the  14 standard fonts with font specific encoding  i  e  no external encoding is given  In the first line  the fontfile  is missing  so viewers will use their own font  The ZapfDingbats font is taken from the given font file     psyr Symbol  pzdr ZapfDingbats  lt pzdr pfb    Similarly  two standard fonts with an external encoding  The  lt  preceding the encoding file name may be left  out     ptmr8r Times Roman  lt 8r enc  ptmri8r Times Italic  lt 8r enc  lt ptmri8a pfb    A SlantFont is specified similarly as for dvips  The SlantFont or ExtendFont entries work only wit
35. d in their titles   Section numbers or the equivalent are not con   sidered part of the section titles    M  Delete any section Entitled    Endorsements      Such a section may not be included in the  Modified Version    N  Do not retitle any existing section to be Enti   tled    Endorsements    or to conflict in title with  any Invariant Section    O  Preserve any Warranty Disclaimers     If the Modified Version includes new front matter  sections or appendices that qualify as Secondary  Sections and contain no material copied from the  Document  you may at your option designate  some or all of these sections as invariant  To do  this  add their titles to the list of Invariant Sections  in the Modified Version   s license notice  These ti   tles must be distinct from any other section titles     You may add a section Entitled    Endorsements      provided it contains nothing but endorsements  of your Modified Version by various parties for  example  statements of peer review or that the  text has been approved by an organization as the  authoritative definition of a standard     You may add a passage of up to five words as  a Front Cover Text  and a passage of up to 25  words as a Back Cover Text  to the end of the  list of Cover Texts in the Modified Version  On   ly one passage of Front Cover Text and one of  Back Cover Text may be added by  or through    43    arrangements made by  any one entity  If the Doc   ument already includes a cover text for the same  cover  previ
36. d only by   proprietary word processors  SGML or XML for   which the DTD and or processing tools are not   generally available  and the machine generated   HTML  PostScript or pdf produced by some word   processors for output purposes only     The  Title Page  means  for a printed book  the    title page itself  plus such following pages as are  needed to hold  legibly  the material this License    42    requires to appear in the title page  For works in  formats which do not have any title page as such    Title Page  means the text near the most promi   nent appearance of the work s title  preceding the  beginning of the body of the text     A section    Entitled XYZ    means a named sub   unit of the Document whose title either is precise   ly XYZ or contains XYZ in parentheses follow   ing text that translates XYZ in another language    Here XYZ stands for a specific section name   mentioned below  such as    Acknowledgements         Dedications        Endorsements     or  History      To    Preserve the Title    of such a section when   you modify the Document means that it remains   a section    Entitled XYZ    according to this defini   tion     The Document may include Warranty Dis   claimers next to the notice which states that this   License applies to the Document  These Warran   ty Disclaimers are considered to be included by   reference in this License  but only as regards dis   claiming warranties  any other implication that   these Warranty Disclaimers may have 
37. dash emdash tilde trademark scaron   guilsinglright oe Delta lozenge   Ydieresis160  notdef161 exclamdown   cent sterling currency yen brokenbar   section dieresis copyright ordfeminine   guillemotleft logicalnot hyphen   registered macron degree plusminus   twosuperior threesuperior acute     mu paragraph periodcentered cedilla   onesuperior ordmasculine guillemotright   onequarter onehalf threequarters   questiondown Agrave Aacute Acircumflex   Atilde Adieresis Aring AE Ccedilla   Egrave Eacute Ecircumflex Edieresis   Igrave Iacute Icircumflex Idieresis   Eth Ntilde Ograve Oacute Ocircumflex   Otilde Odieresis multiply Oslash   Ugrave Uacute Ucircumflex Udieresis   Yacute Thorn germandbls agrave aacute   acircumflex atilde adieresis aring ae     ccedilla egrave eacute ecircumflex   edieresis igrave iacute icircumflex   idieresis eth ntilde ograve oacute   ocircumflex otilde odieresis divide   oslash ugrave uacute ucircumflex   udieresis yacute thorn ydieresis    gt  gt endobj   4 0 obj  lt  lt     Type  Font    Subtype  Typel    Encoding 6 0 R    BaseFont  Times Roman    gt  gt  endobj   5 0 obj  lt  lt     Type  Pages    Count 1    Kids  2 0 R     gt  gt  endobj   T 0 obj  lt  lt     Type  Catalog    Pages 50 R    gt  gt  endobj   8 0 obj  lt  lt     Producer  pdfeTeX 1 30 4     Creator  TeX     CreationDate  D 20051017140613 02   00       PTEX Fullbanner  This is pdfeTeX  Version  3 141592 1 30 4 2 2  Web2C 7 5 5  kpathsea  version 3 5 5    gt  gt  endobj   xref   09   00
38. dfT   X ships out a page  The  contents are added to the attributes of the current page      pdfpageref  page number   expandable     This primitive expands to the number of the page object that contains the dictionary for page  page number     If the page  page number  does not exist  a warning will be issued  a fresh unused pdf object will be generated   and  pdfpageref will expand to that object number     E  g   if the dictionary for page 5 of the TEX document is contained in pdf object no  18   pdfpageref 5  expands to the number 18     Form XObjects    The next three primitives support a pdf feature called    object reuse    in pdfIEX  The idea is first to create  a    form XObject    in pdf  The content of this object corresponds to the content of a TEX box  it can contain  pictures and references to other form XObjects as well  After creation  the form XObject can be used multiple  times by simply referring to its object number  This feature can be useful for large documents with many  similar elements  as it can reduce the duplication of identical objects     These commands behave similarly to  pdfobj   pdfrefobj and  pdflastobj  but instead of taking raw  pdf code  they handle text typeset by IEX      pdfxform    attr spec       resources spec     box number     This command creates a form XObject corresponding to the contents of the box  box number    The box  can contain other raw objects  form XObjects  or images as well  It can however not contain annotations   
39. dthread must end up in vboxes with the same nest   ing level  all vboxes between them will be added into the thread  Note that during output runtime if  there are other newly created boxes which have the same nesting level as the vbox vboxes containing   pdfstartthread and  pdfendthread  they will be also added into the thread  which is probably not what  you want  To avoid such unconsidered behaviour  it   s often enough to wrap boxes that shouldn   t belong to  the thread by a box to change their box nesting level      pdfendthread  This ends an article thread started before by  pdfstartthread    pdfthreadmargin  dimension     Specifies a margin to be added to the dimensions of a bead within an article thread     Literals and specials   pdfliteral  direct   general text     Like  special in normal TEX  this command inserts raw pdf code into the output  This allows support of  color and text transformation  This primitive is heavily used in the METAPOST inclusion macros  Normally  pdf TEX ends a text section in the pdf output and resets the transformation matrix before inserting  general  text   however this can be turned off by giving the optional keyword direct   This command appends  a whatsit node to the list being built   general text  is expanded when the whatsit node is created and not  when it is shipped out  as with  special      special  pdf   text      This is equivalent to  pdfliteral    text       special  pdf direct   text      This is equivalent to  pdfliteral
40. e     TERMINATION    You may not copy  modify  sublicense  or dis   tribute the Document except as expressly provid   ed for under this License  Any other attempt to  copy  modify  sublicense or distribute the Docu   ment is void  and will automatically terminate  your rights under this License  However  parties    44    who have received copies  or rights  from you  under this License will not have their licenses  terminated so long as such parties remain in full  compliance     FUTURE REVISIONS OF THIS  LICENSE    The Free Software Foundation may publish new   revised versions of the GNU Free Documentation  License from time to time  Such new versions  will be similar in spirit to the present version  but  may differ in detail to address new problems or  concerns  See http    www gnu org copyleft      Each version of the License is given a distinguish   ing version number  If the Document specifies  thata particular numbered version of this License     or any later version  applies to it  you have the  option of following the terms and conditions ei   ther of that specified version or of any later ver   sion that has been published  not as a draft  by  the Free Software Foundation  If the Document  does not specify a version number of this License   you may choose any version ever published  not  as a draft  by the Free Software Foundation     
41. e  Mentioning a character code as the only number on a line has the  sole purpose to flag this code    printable     remember that character within the range 32  126 are    printable     anyway    The characters output into the pdf file  e  g  by  pdfliteral or  special primitives  are not subject to tcx  output remapping     Beware  Character translation interferes with the encTpX primitives  to avoid surprises  don t use encTgX and  tcx mapping at the same time  Further details about tcx file loading can be found in the te TEX manual     10    Limitations of PDFTEX  pdfTEX currently lacks a colorstack  This can be overcome by the pdfcolmk package     Abbreviations   In this document we used a few abbreviations  For convenience we mention their meaning here   afm  Adobe Font Metrics   ascii American Standard Code for Information Interchange  CMacTEX Macintosh Web2c distribution   Con IEXt general purpose macro package   dvi native IEX Device Independent file format   encTpx encTEX extension to TEX   eps Encapsulated PostScript   epstopdf eps to pdf conversion tool       TEX an extension to TEX   exif Exchangeable Image File format  JPEG file variant    fp IEX Win32 Web2c distribution   Ghostscript ps and pdf language interpreter   hz Hermann Zapf optimization   jpeg Joint Photographic Expert Group   ETEX general purpose macro package   MacOS X Macintosh operating system version 10   md5 MD5 message digest algorithm   METRFONT graphic programming environment  bitmap output  M
42. e  The actual text goes into    bracket pairs so that it creates a PostScript string   The numbers inbetween bracket pairs provide fine glyph positioning  kerning   When one analyzes a file  produced by a less sophisticated typesetting engine  whole sequences of words can be recognized  In pdf    3 1    The pdfTEX user manual    files generated by pdf IEX however  the words comes out rather fragmented  mainly because a lot of kerning  takes place  pdf viewers in search mode simply ignore the kerning information in these text streams  When  a document is searched  the search engine reconstructs the text from these  string  snippets     This one page example uses an Adobe Times Roman font  This is one of the 14 so called standard fonts that  are always present in the viewer application  and therefore need not be embedded in the pdf file  However   when we use for instance Computer Modern Roman  we have to make sure that this font is available  and the  best way to do this is to embed it  Just let your eyes follow the object thread and see how a font is described   The only thing removed from this example is the  partially  embedded glyph description file  which for the  14 standard fonts is not needed     In this simple file  we don   t specify in what way the file should be opened  for instance full screen or clipped   A closer look at the page object no  2   Type  Page  shows that a mediabox   MediaBox  is part of the page  description  A mediabox acts like the  high resoluti
43. e 1 font     verdana8r Verdana  lt 8r enc  lt verdana ttf    TrueType fonts    As mentioned above  pdf IEX can work with TrueType fonts  Defining TrueType fonts is similar to Type 1   The only extra thing to do with TrueType is to create a tfm file  There is a program called ttf2afm in the  pdf TEX distribution which can be used to extract afm from TrueType fonts  another conversion program is  ttf2pti   Usage of ttf2afm is simple     ttf2afm  e   encoding vector   o  lt afm outputfile gt    ttf input file gt     A TrueType file can be recognized by its suffix ttf  The optional encoding specifies the encoding  which is  the same as the encoding vector used in map files for pdf IEX and dvips  If the encoding is not given  all the  glyphs of the afm output will be mapped to    notdef  ttf2afm writes the output afm to standard output   If we need to know which glyphs are available in the font  we can run ttf2afm without encoding to get all  glyph names  The resulting afm file can be used to generate a tfm one by applying afm2t fm     To use a new TrueType font the minimal steps may look like below  We suppose that test  map is used     ttf2afm  e 8r enc  o times afm times ttf  afm2tfm times afm  T 8r enc  echo  times TimesNewRomanPSMT   8r enc   times ttf   gt  gt test map    There are a few limitations with TrueType fonts in comparison with Type 1 fonts     a  The special effects SlantFont ExtendFont cannot be used    b  To subset a TrueType font  the font must be specified as 
44. e are  discussed below  The most common technique with TEX    the inclusion of eps figures    is replaced by  pdf inclusion  eps files can be converted to pdf by Ghostscript  Adobe Distiller or other PostScript to pdf  converters     The pdf format is currently the most versatile source format for graphics embedding  pdf IEX allows to insert  arbitrary pages from pdf files with their own fonts  graphics  and pixel images into a document  The cover  page of this manual is an example of such an insert  being a one page document generated by pdf IEX     By default pdfIgX takes the BoundingBox of a pdf file from its CropBox if available  otherwise from its  MediaBox  This can be influenced by the  pdf box spec  option to the  pdfximage primitive  or by setting  the  pdfforcepagebox primitive to a value corresponding to the wanted box type     To get the right BoundingBox from a eps file  before converting to pdf  it is necessary to transform the eps  file so that the start point is at the  0 0  coordinate and the page size is set exactly corresponding to the  BoundingBox  A Perl script  epstopdf  for this purpose has been written  The TEXutil utility script and the  PStoPDF program that comes with Ghostscript can so a similar job   Concerning this conversion  they can  handle complete directories  remove some garbage from files  takes precautions against duplicate conversion   etc      The lossless compressing png format is great for embedding crisp pixel graphics  e  g  line sca
45. e form shown in  the Addendum below    G  Preserve in that license notice the full lists of  Invariant Sections and required Cover Texts  given in the Document   s license notice    H  Include an unaltered copy of this License    L Preserve the section Entitled    History     Pre   serve its Title  and add to it an item stating at  least the title  year  new authors  and publish   er of the Modified Version as given on the Title  Page  If there is no section Entitled    History     in the Document  create one stating the title   year  authors  and publisher of the Document  as given on its Title Page  then add an item  describing the Modified Version as stated in  the previous sentence    J  Preserve the network location  if any  given  in the Document for public access to a Trans   parent copy of the Document  and likewise  the network locations given in the Document  for previous versions it was based on  These  may be placed in the    History    section  You  may omit a network location for a work that  was published at least four years before the  Document itself  or if the original publisher of  the version it refers to gives permission    K  For any section Entitled    Acknowledge   ments    or    Dedications     Preserve the Title  of the section  and preserve in the section all  the substance and tone of each of the contrib   utor acknowledgements and or dedications  given therein    L  Preserve all the Invariant Sections of the Docu   ment  unaltered in their text an
46. ec  allows to decide which page of the document is to be included   Starting from pdf IEX 1 11 one may also decide which pdf page box of the image is to be treated as a final  bounding box  If  pdf box spec  is present  overrides default behaviour specified by  pdfforcepagebox  parameter  Both options are irrelevant for non pdf inclusions     Starting from pdfTpx 1 21   pdfximage command supports colorspace keyword followed by an object  number  user defined colorspace for the image being included   This feature works for jpeg images only   pngs are rgb palettes and pdf images have always self contained color space information      pdfrefximage  integer     The image is kept in memory and will be written to the pdf output only when its number is referred to by   pdfrefximage or Npdfximage is preceded by  immediate  Nothing is appended to the list being built      pdfrefximage appends a whatsit node to the list being built  When the whatsit node is searched at shipout  time  pdf IEX will write the image with number  integer  to the pdf output if it has not been written yet      pdflastximage  read only integer   The number of the most recently created XObject image is accessible via  pdflastximage    pdflastximagepages  read only integer     This read only register returns the highest page number from a file previously accessed via the  pdfximage  command  This is useful only for pdf files  it always returns 1 for png or jpeg files      pdfimageresolution  integer     The inte
47. ese outline  vector  fonts are to be  preferred over bitmap pk fonts  In most cases Type 1 fonts are used and this variable  tells pdf IEX where to find them    TTFFONTS Search path for TrueType font    ttf  files  Like Type 1 fonts  TrueType fonts are also  outlines    PKFONTS Search path for packed  bitmap  font    pk  files  Unfortunately bitmap fonts are still    displayed poorly by some pdf viewers  so when possible one should use outline fonts   When no outline is available  pdf IEX tries to locate a suitable pk font  or invoke a process  that generates it      The PDFTEX configuration    One has to keep in mind that  as opposed to TEX with its dvi output  the pdfIEX program does not require  a separate postprocessing stage to transform the TEX input into a pdf file  As a consequence  all data needed  for building a ready pdf page must be available during the pdfTEX run  in particular information on media  dimensions and offsets  graphics files for embedding  and font information  font files  encodings      When TEX builds a page  it places items relative to the top left page corner  the dvi reference point   Separate  dvi postprocessors allow specifying the paper size  e  g     A4    or    letter      so that this reference point is moved  to the correct position on the paper  and the text ends up at the right place     In pdf  the paper dimensions are part of the page definition  and pdf IEX therefore requires that they be  defined at the beginning of the pdf IEX run 
48. ext     This primitive inserts the  general text  to the  Font dictionary  The text must conform to the specifications  as laid down in the pdf Reference Manual  otherwise the document can be invalid      pdffontname  font   expandable     In pdf files produced by pdf TEX one can recognize a font resource by the prefix  F followed by a number  for  instance  F12 or  F54  For a given TEX  font    this primitive expands to the number from the corresponding  font resource name  E  g   if  F12 corresponds to some TEX font  foo  the  pdffontname foo expands to  the number 12     In the current implementation  when  pdfuniqueresname  see below  is set to a positive value  the   pdffontname still returns only the number from the font resource name  but not the appended random  string      pdffontobjnum  font   expandable     This command is similar to  pdffontname  but it returns the pdf object number of the font dictionary  instead of the number from the font resource name  E  g   if the font dictionary   Type  Font  in pdf object 3  corresponds to some TEX font  foo  the  pdffontobjnum foo gives the number 3     Use of  pdffontname and  pdffontobjnum allows users full access to all the font resources used in the  document      pdffontsize  font   expandable     This primitive expands to the font size of the given font  with unit pt  E  g   when using the plain TEX macro  package  the call  pdffontsize tenrm expands to 10  Opt      pdfincludechars  font   general text     This comm
49. f then you can add something like    pool_size 500000    e I can   t find the format file    pdftex fmt      I can   t find the format file    pdflatex fmt        The format file is not created  see above how to do that  or is not properly placed  Make sure that  TEXFORMATS in texmf   cnf contains the path to pdftex fmt or pdflatex  fmt     The pdfTEX user manual    e      xx fmt was written by tex  Fatal format file error  I   m stymied    This appears e  g  if you forgot to regenerate the   fmt files after installing a new version of the pdf IEX  binary and pdftex pool  The first line tells by which engine the offending format was generated     e TEX POOL doesn   t match  TANGLE me again   TEX POOL doesn t match  TANGLE me again  or fix the path      This might appear if you forgot to install the proper pdftex pool when installing a new version of the  pdfTpx binary  E  g  under teTEX then run texconfig sys init     e   I can   t find file     pdftex ini       lt   gt   pdftex ini    This typically appears when you try to generate an extended format with the pdf IEX engine  it does not  know about the special asterisk   notation   Use the pdfe IEX engine instead     e pdfIgX cannot find one or more map files      map   encoding vectors      enc   virtual fonts  Type 1 fonts   TrueType fonts or some image file     Make sure that the required file exists and the corresponding variable in texmf   cnf contains a path to  the file  See above which variables pdf IEX needs apart f
50. g is going badly  you may stretch the glyphs in this  font as much as 3  or shrink them by 2      Because pdfTgxX uses internal data structures with fixed widths   each additional width also means an additional font  For practical reasons pdfTEX uses discrete steps  in this  example  1   This means that for font somet fm up to 6 differently scaled alternatives may be used  When no  step is specified  0 5   steps are used     Roughly spoken  the trick is as follows  Consider a text typeset in triple column mode  When TEX cannot  break a line in the appropriate way  the unbreakable parts of the word will stick into the margin  When  pdf TEX notes this  it will try to scale  shrink  the glyphs in that line using fixed steps  until the line fits  When  lines are too spacy  the opposite happens  pdf TEX starts scaling  stretching  the glyphs until the white space  gaps is acceptable  This glyph stretching and shrinking is called font expansion     21    The pdfTEX user manual    The additional expanded fonts get artificial names by adding the font expansion value to the tfmname of the  base font  e  g  sometfm 10 for 1   stretch or sometfm 15 for 1 5  shrink  If the autoexpand option is not  given  tfm files with these names and appropriate dimensions must be available  So  each expanded variant  of a font must have its own tfm file  Expanded tfm names like sometfm 10 must not be mentioned in the  map file  but the tfm name of the base font without expansion must be there   When n
51. g the installation    When everything is set up  you can test the installation  In the distribution there is a plain TEX test file  example  tex  Process this file by typing     pdftex example    If the installation is ok  this run should produce a file called example pdf  The file example tex is also  a good place to look for how to use pdfTgx   s primitives     Common problems    The most common problem with installations is that pdf IEX complains that something cannot be found  In  such cases make sure that TEXMFCNF is set correctly  so pdf IEX can find texmf   cnf  The next best place  to look edit is the file texmf   cnf  When still in deep trouble  set KPATHSEA_DEBUG 255 before running  pdf TEX or run pdf IEX with option  k 255  This will cause pdf IEX to write a lot of debugging information  that can be useful to trace problems  More options can be found in the Web2c documentation     Variables in texmf   cnf can be overwritten by environment variables  Here are some of the most common  problems you can encounter when getting started     e I can t read pdftex pool  bad path     TEXMFCNF is not set correctly and so pdf TEX cannot find texmf   cnf  or TEXPOOL in texmf   cnf doesn t  contain a path to the pool file pdftex pool or pdfetex pool when you use pdfeTEX     e You have to increase POOLSIZE     pdfIgX cannot find texmf   cnf  or the value of pool  size specified in texmf   cnf is not large enough  and must be increased  If pool  size is not specified in texmf   cn
52. ger  pdf imageresolution parameter  unit  dots per inch  dpi  is a last resort value  used only for  bitmap  jpeg  png  images  but not for pdfs  The priorities are as follows  Often one image dimension  width  or height  is stated explicitely in the TEX file  Then the image is properly scaled so that the aspect ratio is  kept  If both image dimensions are given  the image will be stretched accordingly  whereby the aspect ratio  might get distorted  Only if no image dimension is given in the TEX file  the image size will be calculated from  its width and height in pixels  using the x and y resolution values normally contained in the image file  If one  of these resolution values is missing or weird  either  lt  0 or  gt  65535   the  pdf imageresolution value will  be used for both x and y resolution  when calculating the image size  And if the  pdfimageresolution is  zero  finally a default resolution of 72 dpi would be taken  The  pdf imageresolution is read when pdf IEX  creates an image via  pdfximage  The given value is clipped to the range 0  65535  dpi      Currently this parameter is used particularily for calculating the dimensions of jpeg images in exif format   unless at least one dimension is stated explicitely   the resolution values coming with exif files are currently  ignored     pdfforcepagebox  integer     When pdf files are included  the command  pdfximage allows the selection of which pdf page box to use in  the optional field  image attr spec   The intege
53. h  embedded font files     psyro   167 SlantFont    usyr pfb  pcrr8rn Courier   85 ExtendFont    8r enc  lt pcrr8a pfb    Partially download a font without re encoding   pgsr8a GillSans   pgsr8a pfb  Download a font entirely without re encoding   pgsr8a GillSans     pgsr8a pfb  Partially download a font with re encoding   pgsr8r GillSans  lt 8r enc   pgsr8a pfb  Entirely download a font with re encoding     pgsr8r GillSans  lt 8r enc  lt  lt pgsr8a pfb         This is a text file containing a pdf Type 3 font  created by METAPOST using some utilities by Hans Hagen  In general pgc files can  contain whatever is allowed in a pdf page description  which may be used to support fonts that are not available in METRFONT  pgc  fonts are not widely useful  as vector Type 3 fonts are not displayed very well in older versions of Acrobat Reader  but may be more  useful when better Type 3 font handling is more common     13    5 2    The pdfTEX user manual    Sometimes we do not want to include a font  but need to extract parameters from the font file and re encode  the font as well  This only works for fonts with Adobe Standard Encoding  The font flags specify how such  a font looks like  so e  g  the Adobe Reader can generate a similar instance if the font resource is not available  on the target system     pgsr8r GillSans 32   8r enc pgsr8a pfb   Do not embed the font     only extract the font parameters   pgsr8a GillSans pgsr8a pfb   A TrueType font can be used in the same way as a Typ
54. he Cover Text requirement of section 3 is appli   cable to these copies of the Document  then if the   Document is less than one half of the entire aggre   gate  the Document s Cover Texts may be placed   on covers that bracket the Document within the   aggregate  or the electronic equivalent of covers   if the Document is in electronic form  Otherwise   they must appear on printed covers that bracket   the whole aggregate     TRANSLATION    Translation is considered a kind of modification   so you may distribute translations of the Docu     The pdfTgX user manual    ment under the terms of section 4  Replacing   Invariant Sections with translations requires spe   cial permission from their copyright holders  but   you may include translations of some or all Invari   ant Sections in addition to the original versions of   these Invariant Sections  You may include a trans   lation of this License  and all the license notices   in the Document  and any Warranty Disclaimers   provided that you also include the original En   glish version of this License and the original ver   sions of those notices and disclaimers  In case   of a disagreement between the translation and   the original version of this License or a notice or   disclaimer  the original version will prevail     If a section in the Document is Entitled  Acknowl   edgements    Dedications   or  History   the re   quirement  section 4  to Preserve its Title  sec   tion 1  will typically require changing the actual  titl
55. herwise      pdfxformname  object number   expandable     In pdf files produced by pdfTEX one can recognize a form Xobject by the prefix  Fm followed by a number   for instance  Fm2  For a given form XObject number  this primitive expands to the number in the corre   sponding form XObject name  E  g   if  Fm2 corresponds to some form XObject with object number 7  the    pdfxformname7 expands to the number 2  The primitive has been introduced in pdfTgX 1 30 0     Graphics inclusion    pdf provides a mechanism for embedding graphic and textual objects  form XObjects  In pdf IEX this  mechanism is accessed by means of  pdfxform  Npdflastxform and Npdfrefxform  A special kind of  XObjects are bitmap graphics and for manipulating them similar commands are provided      pdfximage    rule spec       attr spec       page spec       colorspace spec       pdf box spec     general text     This command creates an image object  The dimensions of the image can be controlled via  rule spec   The  default values are zero for depth and    running    for height and width  If all of them are given  the image will  be scaled to fit the specified values  If some  but not all  are given  the rest will be set to a value corresponding  to the remaining ones so as to make the image size to yield the same proportion of width    height   depth  as  the original image size  where depth is treated as zero  If none are given then the image will take its natural  size     An image inserted at its natural 
56. hotos  it s not recommended  for crisp images from synthetic sources with a limited amount of colors     Other options for graphics in pdf TEX are     L   TgX picture mode Since this is implemented simply in terms of font characters  it works in exactly the  same way as usual     Xy pic If the PostScript back end is not requested  Xy pic uses its own Type 1 fonts  and needs no special  attention     tpic The    tpic     special commands  used in some macro packages  can be redefined to produce literal pdf   using some macros written by Hans Hagen     METRPOST Although the output of METRPOST is PostScript  it is in a highly simplified form  and a METR   POST to pdf conversion  mptopdf  written by Hans Hagen and Tanmoy Bhattacharya  is implemented as  a set of macros which reads METAPOST output and supports all of its features     For new work  the METAPOST route is highly recommended  For the future  Adobe has announced that they  will define a specification for    encapsulated pdf        The inclusion of raw PostScript commands    a technique utilized by for instance the pstricks package     cannot directly be supported  Although pdf is direct a descendant of PostScript  it lacks any programming  language commands  and cannot deal with arbitrary PostScript     Character translation    Characters that are input to pdf IEX are subject to optional TEX character translation  tcx  under control of  a tcx file  The tcx maps the input character codes  e  g  from  input or  read  to 
57. hough it will certainly need to be adapted to any particular situation     Document setup   pdfoutput  integer     This parameter specifies whether the output format should be dvi or pdf  A positive value means pdf output   otherwise  default 0  one gets dvi output  This primitive is the only one that must be set to produce pdf  output  unless the commandline option  output format pdf is used   all other primitives are optional   This parameter cannot be specified after shipping out the first page  In other words  if we want pdf output   we have to set  pdfoutput before pdfTEX ships out the first page     When pdf IEX starts complaining about specials  one can be rather sure that a macro package is not aware of  the pdf mode  A simple way of making macros aware of pdfTEX in pdf or dvi mode is      ifx pdfoutput undefined  csname newcount endcsname pdfoutput  fi   ifcase pdfoutput DVI CODE  else PDF CODE  fi    18    The pdfTEX user manual    Using the ifpdf sty file  which works with both IZTEX and plain TEX  is a cleaner way of doing this   Historically  the simple test  ifx pdfoutput undefined was defined  but nowadays  the pdfTEX engine is  used in distributions also for non pdf formats  e  g  TEX   so  pdf output may be defined even when the  output format is dvi      pdfminorversion  integer     This primitive sets the pdf version of the generated file and the latest allowed pdf version of included pdfs   E  g    pdfminorversion 3 tells pdfTEX to set the pdf version to 1
58. how the primitive  pdfoutput is used to override the output mode set by file  pdftexconfig tex  The corresponding pdf TEX calls for format generation are     pdfetex  ini  etex ini  pdftex  ini pdflatex ini    These calls produce format files etex fmt and pdflatex fmt as the default format file name is taken from  the input file name  You can overrule this with the  jobname option  The asterisk   in the first example  line tells the pdfeTEX engine to go into extended  ini mode  otherwise it stays in non extended mode  The  pdfTEX engine can t be brought into extended mode at all  it interprets an asterisk   in front of a file name  as part of the file name  So  if you want a pdfl  TEX format with pdf output and e IEX extensions available   format file pdfelatex fmt   you would need to type e  g      pdfetex  ini  jobname pdfelatex  pdflatex ini    3 7    3 8    The pdfTEX user manual    In ConTgxXt the generation depends on the interface used  A format using the English user interface is  generated with    pdfetex  ini cont en    When properly set up  one can also use the ConTEXt command line interface TgXexec to generate one or more  formats  like     texexec   make en   for an English format  or  texexec   make en de   for an English and German one  Most users will simply say   texexec   make   all    alone     and so generate the TEX and METAPOST related formats that ConTgXt needs  Whatever macro package used   the formats should be placed in the TEXFORMATS path     Testin
59. imension     This dimension parameter specifies the page width of the pdf output  the screen  the paper  etc    pdf IEX  reads this parameter when it starts shipping out a page  After magnification has been changed by the  mag  primitive  check that this parameter reflects the wished true page width     If the value is set to zero  the page width is calculated as Wix being shipped out   2 X  horigin    hoffset   When  part of the page falls off the paper or screen  you can be rather sure that this parameter is set wrong      pdfpageheight  dimension     Similar to the previous item  this dimension parameter specifies the page height of the pdf output  If set to  zero  the page height will be calculated analogously to the above  After magnification has been changed by  the  mag primitive  check that this parameter reflects the wished true page height     The document info and catalog     pdfinfo  general text     This primitive allows the user to add information to the document info section  if this information is provided   it can be extracted  e  g  by the pdfinfo program  or by the Adobe Reader  version 7 0  menu option File      Document Properties   The  general text  is a collection of key value pairs  The key names are preceded  by a    and the values  being strings  are given between parentheses  All keys are optional  Possible keys  are  Author   CreationDate  defaults to current date including time zone info    ModDate   Creator   defaults to TeX    Producer  default
60. ing integer 0 off   pdfcompresslevel integer 9 best   pdfdecimaldigits integer 4 max    pdf imageresolution integer 72 dpi   pdfpkresolution integer 0 72dpi   pdf pkmode token reg  empty mode set in mktex  cnf   pdfuniqueresname integer 0    pdfprotrudechars integer 0    pdfminorversion integer 4 pdf 1 4   pdfforcepagebox integer 0   pdfinclusionerrorlevel integer 0    pdfhorigin dimension 1in    pdfvorigin dimension 1in    pdf pagewidth dimension Opt    pdfpageheight dimension Opt    pdflinkmargin dimension 0 pt    pdfdestmargin dimension 0 pt    pdfthreadmargin dimension 0 pt    pdfmapfile text pdftex map not dumped       Table 2 The set of pdf IEX configuration parameters          Set pdfTeX parameters for pdf mode  replacing pdftex cfg file      Thomas Esser  2004  public domain     pdfoutput 1    pdfpagewidth 210 true mm    pdfpageheight 297 true mm    pdfpkresolution 600    endinput             Figure 1 A typical configuration file  pdftexconfig tex      Independent of whether such a configuration file is read or not  the first action in a pdfTgx run is that the  program reads the global Web2c configuration file  texmf   cnf   which is common to all programs in the  web2C system  This file mainly defines file search paths  the memory layout  e  g  pool and hash size   and  other general parameters     3 6 Creating format files    The pdfTEX user manual         Thomas Esser  1998  2004  public domain    ifx pdfoutput undefined   else    ifx pdfoutput relax    else    inp
61. is void and   has no effect on the meaning of this License     VERBATIM COPYING    You may copy and distribute the Document in   any medium  either commercially or noncommer   cially  provided that this License  the copyright   notices  and the license notice saying this License   applies to the Document are reproduced in all   copies  and that you add no other conditions   whatsoever to those of this License  You may   not use technical measures to obstruct or control   the reading or further copying of the copies you   make or distribute  However  you may accept   compensation in exchange for copies  If you dis   tribute a large enough number of copies you must   also follow the conditions in section 3     You may also lend copies  under the same condi   tions stated above  and you may publicly display  copies     COPYING IN QUANTITY    If you publish printed copies  or copies in me   dia that commonly have printed covers  of the  Document  numbering more than 100  and the  Document s license notice requires Cover Texts   you must enclose the copies in covers that carry   clearly and legibly  all these Cover Texts  Front   Cover Texts on the front cover  and Back Cover  Texts on the back cover  Both covers must also  clearly and legibly identify you as the publisher  of these copies  The front cover must present the  full title with all words of the title equally promi   nent and visible  You may add other material on  the covers in addition  Copying with changes  limited t
62. ixel font generation  The contents  of this register is dumped into the format  so one can  optionally  preset it e  g  in pdftexconfig  tex  The  primitive has been introduced in pdf IEX 1 30 0      pdfnoligatures  font   This diables all ligatures in the loaded font  font    The primitive has been introduced in pdf TEX 1 30 0     PDF objects     pdfobj  object type spec     This command creates a raw pdf object that is written to the pdf fileas 1 O obj     endobj  The object is  written to pdf output as provided by the user  When  object type spec  is not given  pdf IEX does not any  longer create a dictionary object with contents  general text    as it was in the past     When however  object type spec  is given as  attr spec  stream   the object will be created as a stream with  contents  general text  and additional attributes in  attr spec      When  object type spec  is given as  attr spec  file  then the  general text  will be treated as a file name  and its contents will be copied into the stream contents     When  object type spec  is given as reserveobjnum  just a new object number is reserved  The num   ber of the reserved object is accessible via  pdflastobj  The object can later be filled with contents by   pdfobj useobjnum  number     balanced text     But the reserved object number can already be be  used before by other objects  which provides a forward referencing mechanism     26    7 5    7 6    The pdfTEX user manual    The object is kept in memory and wi
63. ke TEX magnification  i e  1000 is the normal page view  When zoom  integer  is given   the zoom factor changes to 0 001 of the  integer  value  otherwise the current zoom factor is kept unchanged     The destination is written out only if the corresponding whatsit node is searched at shipout time     31     gt     7 10    The pdfTEX user manual     pdfstartlink    rule spec       attr spec     action spec     This primitive is used along with  pdfendl ink and appends a whatsit node corresponding to the start of a hy   perlink  The whatsit node representing the end of the hyperlink is created by  pdfendlink  The dimensions   of the link are handled in the similar way as in  pdfannot  Both  pdfstartlink and  pdfendlink must   be in the same level of box nesting  A hyperlink with running width can be multi line or even multi page   in which case all horizontal boxes with the same nesting level as the boxes containing  pdfstartlink and    pdfendlink will be treated as part of the hyperlink  The hyperlink is written out only if the corresponding   whatsit node is searched at shipout time     Additional attributes  which are explained in great detail in the pdf Reference Manual  can be given via  attr  spec   Typically  the attributes specify the color and thickness of any border around the link  Thus  C  0 9  0 0   Border  0 0 2  specifies a color  in rgb  of dark red  and a border thickness of 2 points     While all graphics and text in a pdf document have relative positions  an
64. l pdf file generated by pdf IEX  with the corresponding source  file on the next page  Unless compression is enabled  such a pdf file is rather verbose and readable  The  first line specifies the version used  currently pdf IEX produces level 1 4 output by default  pdf viewers are  supposed to silently skip over all elements they cannot handle     A pdf file consist of objects  These objects can be recognized by their number and keywords   7 0 obj  lt  lt   Type  Catalog  Pages 5 O R  gt  gt  endobj    Here 7 0 obj     endobj is the object capsule  The first number is the object number  Later we will see  that pdf TEX gives access to this number  One can for instance create an object by using  pdfobj after which   pdflastobj returns the number  So     pdfobj  Type  Catalog  Pages 5 O R     inserts an object into the file  while  pdflastobj returns the number pdfTEX assigned to this object  The  sequence 5 0 Ris an object reference  a pointer to another object  no  5   The second number  here a zero   is currently not used in pdf TRX  it is the version number of the object  It is for instance used by pdf editors   when they replace objects by new ones  The version numbers permit a roll back   An example of a graphic  editor that uses pdf as storage format is the Adobe Illustrator      In general this rather direct way of pushing objects in the files is not very useful  and only makes sense when  implementing  say  fill in field support or annotation content reuse  We will come
65. les and improve  enhance the result of TEX typesetting with the help of pdf   When pdf output is not selected  pdf IEX produces normal dvi output  otherwise it generates pdf output that  looks identical to the dvi output  An important aspect of this project is to investigate alternative justification  algorithms  e  g  a font expansion algorithm akin to the hz micro typography algorithm by Prof  Hermann  Zapf   optionally making use of multiple master fonts     pdf TEX is based on the original TEX sources and Web2c  and has been successfully compiled on Unix  Win32  and MSDos systems  It is under active development  with new features trickling in  Great care is taken to  keep new pdfTEX versions backward compatible with earlier ones     For some years there has been a    moderate    successor to TEX available  called  amp  TgX  Because mainstream  macro packages such as IEX have started supporting this welcome extension  pdf IEX also is available as  pdfeTpX  Although in this document we will speak of pdf TEX  we advise users to use pdfe TEX when available   That way they get the best of all worlds and are ready for the future  Starting with TEX Live 2004  that future  has arrived  pdfeTEX is now the primary TEX engine     Other extensions to pdf IEX are MLTRX and encTpX  recent pdf IEX engines have these often included     pdflIpX is maintained by H  n Th   Th  nh  Martin Schr  der  Hans Hagen  Hartmut Henkel  and others   The pdfTEX homepage is http     www pdftex org  Plea
66. ll be written to the pdf output only when its number is referred to by   pdfrefobj or when  pdfobj is preceded by  immediate  Nothing is appended to the list being built  The  number of the most recently created object is accessible via  pdflastobj     pdflastobj  read only integer    This command returns the object number of the last object created by  pdfobj     pdfrefobj  object number     This command appends a whatsit node to the list being built  When the whatsit node is searched at shipout  time  pdf IEX will write the object  object number  to the pdf output if it has not been written yet     Page and pages objects   pdfpagesattr  tokens     pdf IEX expands this token list when it finishes the pdf output and adds the resulting character stream to the  root Pages object  When defined  these are applied to all pages in the document  Some examples of attributes  are  MediaBox  the rectangle specifying the natural size of the page   CropBox  the rectangle specifying the  region of the page being displayed and printed  and  Rotate  the number of degrees  in multiples of 90  the  page should be rotated clockwise when it is displayed or printed      pdfpagesattr     Rotate 90   rotate all pages by 90 degrees   CropBox  0 0 612 792      the crop size of all pages  in bp      pdfpageattr  tokens     This is similar to  pdfpagesattr  but has priority over it  It can be used to override any attribute given  by  pdfpagesattr for individual pages  The token list is expanded when p
67. m the chaff and separate the sheep  discriminate  distinguish  screen  pigeonhole  pick from the goats     39    The pdfTEX user manual    HZ    We thrive in information thick worlds because of our marvelous and everyday capacity to select  edit   single out  structure  highlight  group  pair  merge  harmonize  synthesize  focus  organize  condense  reduce   boil down  choose  categorize  catalog  classify  list  abstract  scan  look into  idealize  isolate  discriminate   distinguish  screen  pigeonhole  pick over  sort  integrate  blend  inspect  filter  lump  skip  smooth  chunk   average  approximate  cluster  aggregate  outline  summarize  itemize  review  dip into  flip through  browse   glance into  leaf through  skim  refine  enumerate  glean  synopsize  winnow the wheat from the chaff and  separate the sheep from the goats     We thrive in information thick worlds because of over  sort  integrate  blend  inspect  filter  lump  skip     our marvelous and everyday capacity to select  edit   single out  structure  highlight  group  pair  merge   harmonize  synthesize  focus  organize  condense   reduce  boil down  choose  categorize  catalog  clas   sify  list  abstract  scan  look into  idealize  isolate   discriminate  distinguish  screen  pigeonhole  pick    smooth  chunk  average  approximate  cluster  ag   gregate  outline  summarize  itemize  review  dip  into  flip through  browse  glance into  leaf through   skim  refine  enumerate  glean  synopsize  winnow  the
68. m the goats     We thrive in information thick worlds because of our marvelous and everyday capacity to select  edit   single out  structure  highlight  group  pair  merge  harmonize  synthesize  focus  organize  condense  reduce   boil down  choose  categorize  catalog  classify  list  abstract  scan  look into  idealize  isolate  discriminate   distinguish  screen  pigeonhole  pick over  sort  integrate  blend  inspect  filter  lump  skip  smooth  chunk   average  approximate  cluster  aggregate  outline  summarize  itemize  review  dip into  flip through  browse   glance into  leaf through  skim  refine  enumerate  glean  synopsize  winnow the wheat from the chaff and  separate the sheep from the goats     We thrive in information thick worlds because of  our marvelous and everyday capacity to select  edit   single out  structure  highlight  group  pair  merge   harmonize  synthesize  focus  organize  condense   reduce  boil down  choose  categorize  catalog  clas     40    sify  list  abstract  scan  look into  idealize  isolate   discriminate  distinguish  screen  pigeonhole  pick  over  sort  integrate  blend  inspect  filter  lump  skip   smooth  chunk  average  approximate  cluster  ag   gregate  outline  summarize  itemize  review  dip    The pdfTEX user manual    into  flip through  browse  glance into  leaf through  the wheat from the chaff and separate the sheep from  skim  refine  enumerate  glean  synopsize  winnow the goats     Additional PDF keys    This secti
69. mode  tokens     Expandable commands     pdftexrevision  expandable     pdftexbanner  expandable     pdfcreationdate  expandable     pdfpageref  page number   expandable    pdfxformname  object number   expandable    pdffontname  font   expandable     pdffontobjnum  font   expandable     pdffontsize  font   expandable    pdfincludechars  font   general text   expandable     15    The pdfTEX user manual     leftmarginkern  box number   expandable    rightmarginkern  box number   expandable    pdfescapestring  general text   expandable    pdfescapename  general text   expandable    pdfescapehex  general text   expandable    pdfunescapehex  general text   expandable    pdfuniformdeviate  number   expandable    pdfnormaldeviate  expandable    pdfmdfivesum  file   general text   expandable    pdffilemoddate  general text   expandable    pdffilesize  general text   expandable    pdffiledump  offset  number     length  number     general text   expandable     Read only integers     pdftexversion  read only integer    pdflastobj  read only integer    pdflastxform  read only integer    pdflastximage  read only integer    pdflastximagepages  read only integer    pdflastannot  read only integer    pdflastxpos  read only integer    pdflastypos  read only integer    pdflastdemerits  read only integer    pdfelapsedtime  read only integer    pdfrandomseed  read only integer    pdfshellescape  read only integer     General commands     pdfobj  object type spec   h  v  m     pdfrefobj  object
70. nnotation action specifications  also multiplication items  e  g  scaling  factors  are not affected and are always output with best precision  This parameter is read when pdf IEX  writes a real number to the pdf output     When including huge METAPOST images using supp pdf   tex  one can limit the accuracy to two digits by  typing   twodigitMPoutput      pdfhorigin  dimension     This parameter can be used to set the horizontal offset the output box from the top left corner of the page   A value of 1 inch corresponds to the normal TEX offset  This parameter is read when pdf IEX starts shipping  out a page to the pdf output     For standard purposes  this parameter should always be kept at 1 true inch  If you want to shift text on the  page  use TEX s own  hoffset primitive  To avoid surprises  after global magnification has been changed by  the  mag primitive  the  pdfhorigin parameter should still be 1 true inch  e  g  by typing  pdfhorigin 1  true in after issuing the  mag command  Or  you can preadjust the  pdfhorigin value before typing  mag   so that its value after the  mag command ends up at 1 true inch again      pdfvorigin  dimension     This parameter is the vertical companion of  pdfhorigin  and the notes above regarding  mag and true  dimensions apply  Also keep in mind that the TEX coordinate system starts in the top left corner  downward    while pdf coordinates start at the bottom left corner  upward      19    7 2    The pdfTEX user manual     pdfpagewidth  d
71. notations have internally hard   coded absolute positions  Again this is for the sake of speed optimization  The main disadvantage is that  these annotations do not obey transformations issued by  pdfliteral   s     The  action spec  specifies the action that should be performed when the hyperlink is activated while  the  user action spec  performs a user defined action  A typical use of the latter is to specify a url  like  S   URI  URI  http   www tug org   ora named action like  S  Named  N  NextPage     A  goto action spec  performs a GoTo action  Here  numid  and  nameid  specify the destination identifier   see below   The  page spec  specifies the page number of the destination  in this case the zoom factor is  given by  general text   A destination can be performed in another pdf file by specifying  file spec   in which  case  newwindow spec  specifies whether the file should be opened in a new window  A  file spec  can  be either a  string  ora dictionary  The default behaviour of the  newwindow spec  depends on the  browser setting     A  thread action spec  performs an article thread reading  The thread identifier is similar to the destination  identifier  A thread can be performed in another pdf file by specifying a  file spec       pdfendlink    This primitive ends a link started with  pdfstartlink  All text between  pdfstartlink and  pdfendlink  will be treated as part of this link  pdfTEX may break the result across lines  or pages   in which case it will  make
72. ns  screen shots    Since pdf TEX 1 30 0 also the alpha channel of png images is processed if available  this allows embedding  of images with simple transparency  The png format does not support the CMYK color model  which is  sometimes required for print media  this often can be replaced by four component jpeg in high quality or    36    The pdfTEX user manual    lossless compression mode   Photos in png format have a rather weak compression  here the jpeg format is  preferable     Embedding png images in the general case requires pdf TEX to uncompress the pixel array and to re compress  it to the pdf requirements  this process often takes a noticeable amount of time  Since pdf IEX 1 30 0 there is  now a fast png embedding mode that goes without uncompressing  the image data are directly copied into  the pdf stream  resulting in a much higher embedding speed  However this mode is only activated  if the  image array structure of the png file is compatible with the pdf image structure  e  g  an interlaced png image  requires uncompressing to re arrange the image lines   Luckily it seems that the most common png files  also allow fast copying  The use of gamma correction disables fast copying  as it requires calculations with  individual pixels  Whether the fast copy mode is used for a png image can be seen from the log file  which  then shows the string     PNG copy     after the png file name     The jpeg format is normally used in lossy mode  then it s ideal for embedding p
73. o generate the so called font descriptor  which is used by the pdf reader to  simulate the font if needed  This option is useful only when you do not want to embed the font  i  e  to  reduce the output size   but wish to use the font metrics and let the pdf reader generate instances that  look close to the used font in case the font resource is not installed on the system where the pdf output  will be viewed or printed  To use this feature the font flags must be specified  and it must have the bit 6  set on  which means that only fonts with the Adobe Standard Roman Character Set can be simulated  The  only exception is the case of a Symbolic font  which is not very useful     When one suffers from invalid lookups  for instance when pdf IEX tries to open a   pfa file instead of a  pfb  one  one can add the suffix to the filename  In this respect  pdfIEX completely relies on the kpathsea  libraries     12    The pdfTEX user manual    If a used font is not present in the map files  first pdf IEX will look for a source with suffix  pgc  which is a so   called pgc source  pdf Glyph Container    If no pgc source is available  pdf IX will try to use pk fonts as dvi  drivers do  creating pk fonts on the fly if needed     Lines containing nothing apart from tfmname stand for scalable Type 3 fonts  For scalable fonts as Type 1   TrueType and scalable Type 3 font  all the fonts loaded from a tfm at various sizes will be included only once  in the pdf output  Thus if a font  let   s say 
74. o tfm file can be found   pdf IEX will try to generate it by executing the script nktextfm  where available and supported     The font expansion is greatly simplified  if the autoexpand option is there  Then no expanded tfm file  versions are needed  instead  pdf IEX generates expanded copies of the unexpanded tfm data structures and  keeps them in its memory     pdf TEX requires only unexpanded Type 1 font files for font expansion  from which all expanded font versions  are internally generated and included  subsetted  into the pdf output file  To enable font expansion  don   t  forget to set  pdfadjustspacing to a value greater than zero     The font expansion mechanism is inspired by an optimization first introduced by Prof  Hermann Zapf  which  in itself goes back to optimizations used in the early days of typesetting  use different glyphs to optimize the  grayness of a page  So  there are many  slightly different a   s  e s  etc  For practical reasons pdf TEX does not  use such huge glyph collections  it uses horizontal scaling instead  This is sub optimal  and for many fonts   possibly offensive to the design  But  when using pdf  it s not illogical  pdf viewers use so called Multiple  Master fonts when no fonts are embedded and or can be found on the target system  Such fonts are designed  to adapt their design to the different scaling parameters  It is up to the user to determine to what extent  mixing slightly remastered fonts can be used without violating the design
75. o the covers  as long as they preserve  the title of the Document and satisfy these condi     tions  can be treated as verbatim copying in other  respects     If the required texts for either cover are too volu   minous to fit legibly  you should put the first ones  listed  as many as fit reasonably  on the actual  cover  and continue the rest onto adjacent pages     If you publish or distribute Opaque copies of the   Document numbering more than 100  you must   either include a machine readable Transparent   copy along with each Opaque copy  or state in or   with each Opaque copy a computer network loca   tion from which the general network using pub   lic has access to download using public standard   network protocols a complete Transparent copy   of the Document  free of added material  If you   use the latter option  you must take reasonably   prudent steps  when you begin distribution of   Opaque copies in quantity  to ensure that this   Transparent copy will remain thus accessible at   the stated location until at least one year after the   last time you distribute an Opaque copy  directly   or through your agents or retailers  of that edition   to the public     It is requested  but not required  that you con   tact the authors of the Document well before re   distributing any large number of copies  to give  them a chance to provide you with an updated  version of the Document     MODIFICATIONS    You may copy and distribute a Modified Version  of the Document under 
76. of the bits  with bit 1 being the least significant  Reserved bits must be set to zero        bit position semantics       1 Fixed width font  2 Serif font  3 Symbolic font  4 Script font  5 Reserved  6 Uses the Adobe Standard Roman Character Set  7 Italic  8 16 Reserved  17 All cap font  18 Small cap font  19 Force bold at small text sizes    20 32 Reserved       Table3 The meaning of flags in the font descriptor     All characters in a fixed width font have the same width  while characters in a proportional font  have different widths  Characters in a serif font have short strokes drawn at an angle on the top and  bottom of character stems  while sans serif fonts do not have such strokes  A symbolic font contains  symbols rather than letters and numbers  Characters in a script font resemble cursive handwriting   An all cap font  which is typically used for display purposes such as titles or headlines  contains no  lowercase letters  It differs from a small cap font in that characters in the latter  while also capital  letters  have been sized and their proportions adjusted so that they have the same size and stroke  weight as lowercase characters in the same typeface family     11    The pdfTEX user manual    Bit 6 in the flags field indicates that the font   s character set conforms to the Adobe Standard Roman  Character Set  or a subset of that  and that it uses the standard names for those characters     Finally  bit 19 is used to determine whether or not bold characters
77. on  bounding box in a PostScript file  pdf TEX users can  add dictionary stuff to page objects by the  pdfpageattr primitive     Although in most cases macro packages will shield users from these internals  pdf IEX provides access to  many of the entries described here  either automatically by translating the TEX data structures into pdf  ones  or manually by pushing entries to the catalog  page  info or self created objects  Those who  after this  introduction  feel unsure how to proceed  are advised to read on but skip section 7  Before we come to that  section  we will describe how to get started with pdf IEX     Getting started    This section describes the steps needed to get pdf TEX running on a system where pdf IEX is not yet installed   Nowadays virtually all TEX distributions have pdfTEX as a component  such as TEX Live  te IEX  fp TEX   MikTeX  and CMacTEX  The ready to run TEX Live distribution comes with pdf IEX versions for many Unix   Win32  and Mac OS X systems  more information can be found at http   www  tug org tex live   teTEX  by Thomas Esser is a source distribution with an automated compilation process for Unix systems  see http        www  tug  org teTeX   For Win32 systems there are also two separate distributions that contain pdf IEX   both in ctan systems win32  fpTEX by Fabrice Popineau and MikTeX by Christian Schenk  So when you  use any of these distributions  you don t need to bother with the pdf TEX installation procedure in the next  sections  
78. on is based on the manual on keys written by Martin Schr  der  one of the maintainers of pdf IEX     A pdf document should contain only the structures and attributes defined in the pdf specification  However   the specification allows applications to insert additional keys  provided they follow certain rules     The most important rule is that developers have to register with Adobe prefixes for the keys they want to  insert  Hans Hagen has registered the prefix PTEX for pdfTpx     pdf IEX generates an XObject for every included pdf  The dictionary of this object contains these additional  keys           key type meaning   PTEX  FileName string The name of the included file as seen by pdf IEX    PTEX InfoDict dictionary The document information dictionary of the included pdf  an indirect ob   ject      PTEX PageNumber integer The page number of the included file        The pdf reference manual says     Although viewer applications can store custom metadata in the document  information dictionary  it is inappropriate to store private content or structural information there  such  information should be stored in the document catalog instead        Although it would seem more natural to put this infomation in the document information dictionary  we  have to obey the rules laid down in the pdf reference  The following key ends up in the document catalog        key type meaning       PTEX Fullbanner string The full version of the binary that produced the file as displayed by pdftex
79. ously added by you or by arrange   ment made by the same entity you are acting on  behalf of  you may not add another  but you may  replace the old one  on explicit permission from  the previous publisher that added the old one     The author s  and publisher s  of the Document  do not by this License give permission to use  their names for publicity for or to assert or imply  endorsement of any Modified Version     COMBINING DOCUMENTS    You may combine the Document with other doc   uments released under this License  under the  terms defined in section 4 above for modified  versions  provided that you include in the com   bination all of the Invariant Sections of all of the  original documents  unmodified  and list them all  as Invariant Sections of your combined work in  its license notice  and that you preserve all their  Warranty Disclaimers     The combined work need only contain one copy  of this License  and multiple identical Invariant  Sections may be replaced with a single copy  If  there are multiple Invariant Sections with the  same name but different contents  make the ti   tle of each such section unique by adding at the  end of it  in parentheses  the name of the original  author or publisher of that section if known  or  else a unique number  Make the same adjustment  to the section titles in the list of Invariant Sections  in the license notice of the combined work     In the combination  you must combine any sec   tions Entitled    History    in the various
80. r primitive  pdfforcepagebox allows to globally override  this choice by giving them one of the following values   1  media box   2  crop box   3  bleed box   4  trim box     29    7 8    The pdfTEX user manual    and  5  artbox  The command is available starting from pdfTgx 1 30 0  as a shortened synonym of obsolete   pdfoptionalwaysusepdfpagebox instruction      pdfinclusionerrorlevel  integer     This controls the behaviour of pdfTEX when a pdf file is included that has a newer version than  the one specified by this primitive  If it is set to 0  pdfTEX gives only a warning  if it   s 1  pdf IEX  raises an error  The command has been introduced in pdfIEX 1 30 0 as a shortened synonym of   pdfoptionpdfinclusionerrorlevel  that is now obsolete      pdfimagehicolor  integer     This primitive  when set to 1  enables embedding of png images with 16 bit wide color channels at their  full color resolution  As such an embedding mode is defined only from pdf version 1 5 onwards  the   pdfimagehicolor functionality is automatically disabled in pdf IEX if  pdfminorversion  lt  5  then each  16 bit color channel is reduced to a width of 8 bit by stripping the lower 8 bits before embedding  The same  stripping happens when  pdfimagehicolor is set to 0  For  pdfminorversion  gt  5 the default value of   pdfimagehicolor is 1  If specified  the parameter must appear before any data is written to the pdf output   The primitive has been introduced in pdf IEX 1 30 0      pdfimageapplygamma 
81. re encoded  therefore an encoding vector must  be given    c  TrueType fonts coming with embedded pdf files are kept untouched  they are not replaced by local ones     Formal syntax specification    This section formally specifies the pdf IEX specific extensions to the TEX macro programming language   All primitives are prefixed by pdf except for  efcode   lpcode   rpcode   leftmarginkern  and   rightmarginkern  The general definitions and syntax rules follow after the list of primitives     Integer registers     pdfoutput  integer    pdfminorversion  integer    pdfcompresslevel  integer     14    The pdfTEX user manual     pdfdecimaldigits  integer    pdfimageresolution  integer    pdfpkresolution  integer    pdftracingfonts  integer    pdfuniqueresname  integer    pdfadjustspacing  integer    pdfprotrudechars  integer     efcode  font   8 bit number   integer    lpcode  font   8 bit number   integer    rpcode  font   8 bit number   integer    pdfforcepagebox  integer    pdfoptionalwaysusepdfpagebox  integer    pdfinclusionerrorlevel  integer    pdfoptionpdfinclusionerrorlevel  integer    pdfimagehicolor  integer    pdfimageapplygamma  integer     pdfgamma  integer     pdfimagegamma  integer     Dimen registers     pdfhorigin  dimen    pdfvorigin  dimen    pdfpagewidth  dimen    pdfpageheight  dimen    pdflinkmargin  dimen    pdfdestmargin  dimen    pdfthreadmargin  dimen     Token registers     pdfpagesattr  tokens    pdfpageattr  tokens    pdfpageresources  tokens    pdfpk
82. rn exists for the right margin  The primitive has been introduced in pdf IEX 1 30 0     These are auxiliary primitives to make character protrusion more versatile  When using the TEX primitive   unhbox or  unhcopy  the margin kerns at either end of the unpackaged hbox will be removed  e  g  to  avoid weird effects if several hboxes are unpackaged behind each other into the same horizontal list   These   unhbox or  unhcopy are often used together with  vsplit for dis  and re assembling of paragraphs  e  g   to add line numbers  Paragraphs treated like this do not show character protrusion by default  as the margin  kerns have been removed during the unpackaging process     The  leftmarginkern and  rightmarginkern primitives allow to access the margin kerns and store them  away before unpackaging the hbox  E g  the following code snipplet restores margin kerning of a horizontal  list stored in  box testline  resulting in a hbox with proper margin kerning  which is then done by  ordinary kerns      23    The pdfTEX user manual     dimen0  leftmarginkern testline   dimen1  rightmarginkern testline   hbox to hsize  kern dimen0 unhcopy testline kern dimen1      rightmarginkern  box number   expandable     The  rightmarginkern  box number  primitive expands to the width of the margin kern at the right side  of the horizontal list stored in  box  box number    See  leftmarginkern for more details  The primitive  has been introduced in pdf IEX 1 30 0      pdffontattr  font   general t
83. rom the ones TEX uses     When you have installed new fonts  and your pdf viewer complains about missing fonts  you should take  a look at the log file produced by pdf TEX  Missing fonts  map files  encoding vectors as well as missing  characters  glyphs  are reported there     Normally the page content takes one object  This means that one seldom finds more than a few hundred  objects in a simple file  This document for instance uses about 900 objects  In demanding applications this  number can grow quite rapidly  especially when one uses a lot of widget annotations  shared annotations  or other shared things  In these situations in texmf   cnf one can enlarge pdf IEX   s internal object table by  adding a line in texmf   cnf  for instance     obj  tab  size 400000    Macro packages supporting PDFTEX    As pdfTEX generates the final pdf output without help of a postprocessor  macro packages that take care of  these pdf features have to be set up properly  Typical tasks are handling color  graphics  hyperlink support   threading  font inclusion  as well as page imposition and manipulation  All these pdf specific tasks can be  commanded by pdf IEX    s own primitives  a few also by a pdfTEX specific  special pdf       primitive    Any other  special   commands  like the ones defined for various dvi postprocessors  are simply ignored  by pdfIEX when in pdf output mode  a warning is given only for non empty  special   commands     When a macro package already written for classic
84. rom version 1 21a on it should be ok  If you  still encounter problems  please try to prepare a small test file that demonstrates the problem and send it to  one of the maintainers     Normal    We thrive in information thick worlds because of our marvelous and everyday capacity to select  edit  single  out  structure  highlight  group  pair  merge  harmonize  synthesize  focus  organize  condense  reduce  boil  down  choose  categorize  catalog  classify  list  abstract  scan  look into  idealize  isolate  discriminate  dis   tinguish  screen  pigeonhole  pick over  sort  integrate  blend  inspect  filter  lump  skip  smooth  chunk  av   erage  approximate  cluster  aggregate  outline  summarize  itemize  review  dip into  flip through  browse   glance into  leaf through  skim  refine  enumerate  glean  synopsize  winnow the wheat from the chaff and  separate the sheep from the goats     We thrive in information thick worlds because of over  sort  integrate  blend  inspect  filter  lump   our marvelous and everyday capacity to select  edit  skip  smooth  chunk  average  approximate  cluster   single out  structure  highlight  group  pair  merge  aggregate  outline  summarize  itemize  review  dip  harmonize  synthesize  focus  organize  condense  into  flip through  browse  glance into  leaf through   reduce  boil down  choose  categorize  catalog  clas  skim  refine  enumerate  glean  synopsize  winnow  sify  list  abstract  scan  look into  idealize  isolate  the wheat fro
85. s to pdfTeX 1 30 4 or pdfeTeX 1 30 4    Title   Subject  and   Keywords      CreationDate and  ModDate are expressed in the form D  YYYYMMDDhhmmssTZ     where YYYY is the year   MM is the month  DD is the day  hh is the hour  mm is the minutes  ss is the seconds  and TZ    is an optional  string denoting the time zone  An example of this format is shown below  For details please refer to the pdf  Reference     Multiple appearances of  pdf info will be concatenated  In general  if a key is given more than once  one  may expect that the first appearance will be used  Be aware however  that this behaviour is viewer dependent   Except expansion  pdf IEX does not perform any further operations on  general text  provided by the user     An example of the use of  pdfinfo is      pdfinfo     Title  example  pdf     Creator  TeX    Producer  pdfeTeX 1 30 4    Author  Tom and Jerry    CreationDate  D 20050428154343 01   00       ModDate  D  20050428155343 01   00        Subject  Example    Keywords  mouse  cat        pdfcatalog  general text     open action spec       Similar to the document info section is the document catalog  where keys are  URI  which provides the  base url of the document  and  PageMode  which determines how the pdf viewer displays the document on  startup  The possibilities for the latter are explained in Table 4     20    7 3    The pdfTEX user manual       value meaning        UseNone neither outline nor thumbnails visible   UseOutlines outline visible    UseTh
86. se send pdfTEX comments and bug reports to the  mailing list pdftex tug org     We thank all readers who send us corrections and suggestions  We also wish to express the hope that pdf IEX  will be of as much use to you as it is to us  Since pdfTpx is still being improved and extended  we suggest  you to keep track of updates     About this manual    This manual revision  1 622  tries to keep track with the recent pdf IEX development up to version 1 30 4   Main text updates were done regarding the new configuration scheme  font mapping  and new or updated  primitives  The primary repository for the manual and its sources is at http    sarovar org projects   pdftex   Copies in pdf format can also be found at the CTAN network in directory ctan  systems   pdftex     Thanks to Karl Berry for proof reading and submitting a long changes list  New errors might have slipped in  afterwards by the editor  Please send questions or suggestions by email to pdftex tug org     1 2    The pdfIgX user manual    Legal Notice    Copyright    1996 2005 H  n Th   Th  nh  Permission is granted to copy  distribute and or modify this  document under the terms of the GNU Free Documentation License  Version 1 2 or any later version published  by the Free Software Foundation  with no Invariant Sections  no Front Cover Texts  and no Back Cover Texts   A copy of the license is included in the section entitled  GNU Free Documentation License      About PDF    The cover of this manual lists an almost minima
87. size often has a resolution of  pdf imageresolution  see below  given in  dots per inch in the output file  but some images may contain data specifying the image resolution  and in  such a case the image will be scaled to the correct resolution  The dimensions of an image can be accessed by  enclosing the  pdfrefximage command to a box and checking the dimensions of the box      setbox0  hbox  pdfximage somefile png  pdfrefximage pdflastximage     Now we can use Wd0 and  ht0 to question the natural size of the image as determined by pdfTEX  When  dimensions are specified before the  somefile  png   the graphic is scaled to fit these  Note that  unlike the  e g   input primitive  the filename is supplied between braces     28    The pdfTEX user manual    The image type is specified by the extension of the given file name    png stands for png image    jpg for jpeg   and  pdf for pdf file  But once pdf IEX has opened the file  it checks the file type first by looking to the magic  number at the file start  which gets precedence over the file name extension  This gives a certain degree of  fault tolerance  if the file name extension is stated wrongly     Similarly to  pdfxform  the optional text given by  attr spec  will be written as additional attributes of the  image before other keys of the image dictionary  One should be aware  that slightly different type of PDF  object is created while including png or jpeg bitmaps and pdf images     While working with pdf image   page sp
88. th character  for which protrusion is activated      rpcode  font   integer     The amount that a character from a given font may shift into the right margin     character protrusion     is set  by the primitive  rpcode  The protrusion distance is the integer value given to  rpcode  multiplied with  0 001 em from the current font  The given integer value is clipped to the range    1000  1000  corresponding to  a usable protrusion range of    1em  1em  Example      rpcode somef ont       200   rpcode somef ont      150    Here the comma may shift by 0 2 em into the margin and the hyphen by 0 15 em  All these small bits and  pieces will help pdf IEX to give you better paragraphs  use  rpcode judiciously  don   t overdo it      Remark  old versions of pdf TEX use the character width as measure  This was changed to a proportion of the  em width after Han Th   Thanh finished his master   s thesis      lpcode  font   integer     This is similar to  rpcode  but affects the amount by which characters may protrude into the left margin   Also here the given integer value is clipped to the range    1000  1000      leftmarginkern  box number   expandable     The  leftmarginkern  box number  primitive expands to the width of the margin kern at the left side of  the horizontal list stored in  box  box number    The expansion string includes the unit pt  E  g   when the  left margin kern of  box0 amounts to    10 pt   leftmarginkern0 will expand to  10pt  A similar primitive   rightmarginke
89. the character codes as seen  by pdf IEX  This mapping takes place before the characters enter pdfTEX s    mouth     If no tcx file is read  the  input characters enter pdf IEX directly  no mapping is done     tcx files consist of lines each containing one or two integer numbers in the range 0  255  either in decimal or  hex notation  A comment sign   in a tcx line starts a comment until the end of line  The first number in each  line is for matching the input character code  the second  optional number is the corresponding TEX character  code  If a line contains only one number  characters with this code enter pdf TEX unchanged  no mapping is  done     tex mapping also influences pdf TEX output streams for  message and  write  Without tcx mapping  only  characters that are within the range 32  126 are flagged as  printable   meaning that these characters are  output directly by  message and Write primitives  Characters outside the range 32  126 are instead output    37    The pdfTEX user manual    in escaped form  e  g  as    A for a character with code 0x01  When a character code is mentioned in the 2nd  column of the tcx file  or as the only value in a line  it is flagged as    printable     During  message and  write   output characters are mapped in reverse direction  they are looked up in the 2nd column of the tcx file and  the corresponding values from the 1st column are output  Again  if a pdf IEX character code is found as the  only number in a line  no mapping is don
90. the conditions of sections  2 and 3 above  provided that you release the Mod   ified Version under precisely this License  with  the Modified Version filling the role of the Doc   ument  thus licensing distribution and modifica   tion of the Modified Version to whoever possess   es a copy of it  In addition  you must do these  things in the Modified Version     A  Use in the Title Page  and on the covers  if  any  a title distinct from that of the Document   and from those of previous versions  which  should  if there were any  be listed in the Histo   ry section of the Document   You may use the  same title as a previous version if the original  publisher of that version gives permission    B  List on the Title Page  as authors  one or more  persons or entities responsible for authorship  of the modifications in the Modified Version   together with at least five of the principal au   thors of the Document  all of its principal au   thors  if it has fewer than five   unless they  release you from this requirement    C  State on the Title page the name of the publish   er of the Modified Version  as the publisher    D  Preserve all the copyright notices of the Docu   ment    E  Add an appropriate copyright notice for your  modifications adjacent to the other copyright  notices    F  Include  immediately after the copyright no   tices  a license notice giving the public permis     The pdfTgX user manual    sion to use the Modified Version under the  terms of this License  in th
91. time      pdflastannot  read only integer     This primitive returns the object number of the last annotation created by  pdfannot  These two primitives  allow users to create any annotation that cannot be created by  pdfstartlink  see below      Destinations and links    The first type of annotation  mentioned above  is implemented by three primitives  The first one is used to  define a specific location as being referred to  This location is tied to the page  not the exact location on the  page  The main reason for this is that pdf maintains a dedicated list of these annotations    and some more  when optimized    for the sole purpose of speed      pdfdest  dest spec     This primitive appends a whatsit node which establishes a destination for links and bookmark outlines  the  link is identified by either a number or a symbolic name  and the way the viewer is to display the page must  be specified in  dest type   which must be one of those mentioned in table 5        keyword meaning       fit fit the page in the window   fith fit the width of the page   fitv fit the height of the page   fitb fit the    Bounding Box    of the page    fitbh fit the width of    Bounding Box    of the page  fitbv fit the height of    Bounding Box    of the page  XYZ goto the current position  see below        Table 5 Options for display  of outline and destinations     The specification xyz can optionally be followed by zoom  integer  to provide a fixed zoom in  The  inte   ger  is processed li
92. tor is identical  to that used by dvips  If no encoding is specified  the font s built in default encoding is used  It may be  omitted if you are sure that the font resource has the correct built in encoding  In general this option is  highly preferred and is required when subsetting a TrueType font     fontfile sets the name of the font source file  This must be a Type 1 or TrueType font file  The font file name  can be preceded by one or two special characters  which says how the font file should be handled     e Ifthe font file name is preceded by a  lt  the font file will be partially downloaded  meaning that only used  glyphs  characters  are embedded to the font  This is the most common use and is strongly recommended  for any font  as it ensures the portability and reduces the size of the pdf output  Partial fonts are included  in such a way that name and cache clashes are minimized     e Ifthe font file name is preceded by a double  lt  lt   the font file will be included entirely     all glyphs of the  font are embedded  including the ones that are not used in the document  Apart from causing large size  pdf output  this option may cause troubles with TrueType fonts  so it is not recommended  It might be  useful in case the font is atypical and can not be subsetted well by pdf IEX  Beware  some font vendors  forbid full font inclusion     e If nothing precedes the font file name  the font file is read but nothing is embedded  only the font  parameters are extracted t
93. ts       file spec     general text    xform attr spec         attr spec       resources spec      image attr spec         rule spec       attr spec       page spec       colorspace spec       pdf box spec      outline spec         attr spec     action spec    count  number     general text    action spec      user  user action spec    goto  goto action spec     thread  thread action spec    user action spec       general text    goto action spec       numid        file spec     nameid        file spec       page spec     general text      file spec   nameid   newwindow spec      file spec     page spec     general text   newwindow spec    thread action spec         file spec     numid       file spec     nameid    open action spec      openaction  action spec    colorspace spec      colorspace  number    pdf box spec      mediabox   cropbox   bleedbox   trimbox   artbox   map spec           map modifier     balanced text      map modifier   gt              numid      num  number    nameid      name  general text    newwindow spec      newwindow   nonewwindow   dest spec       numid   dest type     nameid   dest type     17    7 1    The pdfTEX user manual     dest type      xyz  zoom  number      fitr  rule spec     fitbh   fitbv   fitb   fith   fitv   fit    thread spec         rule spec       attr spec     id spec     id spec       numid     nameid     file spec      file  general text     page spec      page  number     expand spec       stretch   shrink   step    autoexp
94. ue are assumed to have been created for a device with a gamma of 2 2  Experiments show that this default  setting is correct for a large number of images  however  if your images come out too dark  you probably  want to set  pdf imagegamma to a lower value  like 1000  If specified  the parameter must appear before any  data is written to the pdf output  The primitive has been introduced in pdf TEX 1 30 0     Annotations  pdf 1 4 provides four basic kinds of annotations     e hyperlinks  general navigation  e text clips  notes     30    7 9    The pdfTEX user manual    e movies  e sound fragments    The first type differs from the other three in that there is a designated area involved on which one can click   or when moved over some action occurs  pdfTgx is able to calculate this area  as we will see later  All  annotations can be supported using the next two general annotation primitives      pdfannot  annot type spec     This command appends a whatsit node corresponding to an annotation to the list being built  The dimensions  of the annotation can be controlled via the  rule spec    The default values are running for all width  height  and depth  When an annotation is written out  running dimensions will take the corresponding values from  the box containing the whatsit node representing the annotation  The  general text  is inserted as raw pdf  code to the contents of annotation  The annotation is written out only if the corresponding whatsit node is  searched at shipout 
95. umbs thumbnails visible    FullScreen full screen mode       Table 4 Supported  PageMode values     In full screen mode  there is no menu bar  window controls  nor any other window present  The default  setting is  UseNone     The  openaction  is the action provided when opening the document and is specified in the same way as  internal links  see section 7 9  Instead of using this method  one can also write the open action directly into  the catalog      pdfnames  general text     This primitive inserts the  general text  to the  Names array  The text must conform to the specifications as  laid down in the pdf Reference Manual  otherwise the document can be invalid      pdftrailer  general text     This command puts its argument text verbatim into the file trailer dictionary  The primitive has been  introduced in pdf TeX 1 11a     Fonts   pdfpkresolution  integer     This integer parameter specifies the default resolution of embedded pk fonts and is read when pdf IEX  downloads a pk font during finishing the pdf output  As bitmap fonts are still rendered poorly by some pdf  viewers  it is best to use Type 1 fonts when available      pdffontexpand  font   stretch   shrink   step    autoexpand      This extension to TEX s font definitions controls a pdfTEX automatism called font expansion  We describe this  by an example      font somefont sometfm at 10pt   pdffontexpand somefont 30 20 10 autoexpand   pdfadjustspacing 2    The 30 20 10 means this     hey TEX  when line breakin
96. ut pdftexconfig    pdf out put 0   fi   fi   input etex src   dump   endinput       Figure 2 File etex ini for e IEX format with dvi output         ifx pdfoutput undef ined   else   ifx pdfoutput relax   else   input pdftexconfig   pdfoutput 1   fi   fi   scrollmode   input latex 1tx   endinput             Figure 3 File pdflatex ini for I TEX format with pdf output     Both pdfIEX and pdfeTEX engines allow building formats for dvi and pdf output in the same way as the  classical TEX engine does for dvi  Format generation is enabled by the  ini option  The default mode  dvi  or pdf  can be chosen either on the command line by setting the option  output format to dvi or pdf  or  by setting the  pdf output parameter  The format file then inherits this setting  so that a later call to pdf IEX  with this format starts in the preselected mode  which still can be overrun then   A format file can be read in  only by the engine that has generated it  a format incompatible with an engine leads to a fatal error  Often the  pdf IEX program is a mere link to the pdfe TEX engine  then also a pdf IEX call generates an extended format     It is customary to package the configuration and macro file input into a  ini file  E  g   the file etex  ini  in figure 2 is for generating an e TEX format with dvi output  it contains a few comparisons to be safe also  for TEX engines   A similar file pdflatex ini can be used for generating a    TEX format with pdf output   refer to figure 3  One can see 
97. ve has been introduced  in pdf IEX 1 30 0      pdffiledump  offset  number     length  number     general text   expandable     Expands to the dump of the file  general text  in uppercase hexadecimal format  same as  pdfescapehex    starting at offset  number  or 0 with length  number    if given  The first ten bytes of the source of this manual  are 2520696E746572666163  The primitive has been introduced in pdf IEX 1 30 0     Miscellaneous     vadjust    pre spec     filler     vertical mode material       The  vadjust implementation of pdf IEX adds an optional qualifier  pre spec   which is the string pre  to  the original TEX primitive with the same name  As long as there is no pre given   vad just behaves exactly as  the original  see the TEXbook  p  281   it appends an adjustment item created from  vertical mode material  to  the current list after the line in which  vadjust appears  However with the qualifier pre  the adjustment  item is put before the line in which  vadjust pre appears      pdfsavepos    This primitive marks the current absolute  x  y  position on the media  with the reference point in the lower  left corner  It is active only during page shipout  when the page is finally assembled  The position coordinates  can then be retrieved by the  pdflastxpos and  pdflastypos primitives  and e  g  written out to some  auxiliary file  The coordinates can be used only after the current  shipout has been finalized  therefore  normally two pdfT   X runs are required
98. within a given font  as a factor to the expansion setting from the  pdffontexpand primitive  The   syntax is similar to  sf code  but with the  font  required   and it defaults to 1000  meaning 100   expand   ability  The given integer value is clipped to the range 0  1000  corresponding to a usable expandability range   of 0  100    Example      ef codeNsomefont     A 2800   ef code somef ont   020    22    The pdfIgx user manual    Here an A may stretch or shrink only by 80   of the current expansion value for that font  and expansion for  the O is disabled  The actual expansion is still bound to the steps as defined by  pdffontexpand primitive   otherwise one would end up with more possible font inclusions than would be comfortable      pdfprotrudechars  integer     Yet another way of optimizing paragraph breaking is to let certain characters move into the margin     character  protrusion      When  pdfprotrudechars 1  the glyphs qualified as such will make this move when applica   ble  without changing the line breaking  When  pdfprotrudechars 2  or greater   character protrusion will  be taken into account while considering breakpoints  so line breaking might be changed  This qualification  and the amount of shift are set by the primitives  rpcode and  lpcode  Character protrusion is disabled  when  pdfprotrudechars 0  or negative      If you want to protrude some item other than a character  e  g  a  hbox   you can do so by padding the item  with an invisible zero   wid
99. wn in table 1           used for texmf cnf  output files TEXMFOUTPUT  input files  images TEXINPUTS  format files TEXFORMATS  text pool files TEXPOOL  encoding files ENCFONTS  font map files TEXFONTMAPS  tfm files TFMFONTS  virtual fonts VFFONTS  typel fonts T1FONTS  TrueType fonts TTFONTS  pixel fonts PKFONTS       Table 1 The Web2c variables     3 5    The pdfTEX user manual    TEXMFOUTPUT Normally  pdf IEX puts its output files in the current directory  If any output file cannot  be opened there  it tries to open it in the directory specified in the environment variable  TEXMFOUTPUT  There is no default value for that variable  For example  if you type  pdfetex paper and the current directory is not writable  if TEXMFOUTPUT has the value   tmp  pdf IEX attempts to create  tmp paper  log  and  tmp paper   pdf  if any output  is produced     TEXINPUTS This variable specifies where pdf IEX finds its input files  Image files are considered input  files and searched for along this path    TEXFORMATS Search path for format    fmt  files    TEXPOOL Search path for pool    pool  files    ENCFONTS Search path for encoding     enc  files    TEXFONTMAPS Search path for font map   map  files    TFMFONTS Search path for font metric    tfm  files    VFFONTS Search path for virtual font    vf  files  Virtual fonts are fonts made up of other fonts   Because pdf IEX produces the final output code  it must consult those files    T1FONTS Search path for Type 1 font files    pfa and  pfb   Th
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
  Journal Municipal ELEAK n°09 (Septembre  Capa_Manual ADIP-IVS80X  IBM Tivoli Storage Area Network Manager: Benutzerhandbuch    取扱説明書『補足説明』      Magazine n° 36    Copyright © All rights reserved. 
   Failed to retrieve file