OpenSuSE Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
x SuSE Linux 13.1-RELEASE x
x SuSE Linux 13.1-RELEASEx
OTFTOTFM(1)                 General Commands Manual                OTFTOTFM(1)

NAME
       otftotfm - create TeX font metrics from OpenType fonts

SYNOPSIS
       otftotfm [-a] [options] fontfile [texname]

DESCRIPTION
       Otftotfm  creates the font metric and encoding files required to use an
       OpenType font with TeX.  You supply an OpenType ".otf" or  ".ttf"  font
       file,  a base ".enc" encoding, and a TeX name "texname" for the result-
       ing font, and say which OpenType features should be  turned  on.   Then
       otftotfm  generates  and  installs the corresponding TeX-related metric
       files (".tfm" TeX font metrics, ".vf" virtual fonts, and ".enc"  encod-
       ing files).  It works on both PostScript-flavored and TrueType-flavored
       OpenType fonts, although TrueType-flavor support will only work  easily
       with pdftex.

       The  easiest  way  to use otftotfm is with the -a option; see Automatic
       Mode below.  Without -a, otftotfm writes all its output  files  to  the
       current directory.

       After  running  "otftotfm  fontfile texname" and installing the results
       (manually or with -a), you can use the OpenType font in plain TeX  with
       a command like this:

           \font\myfont=texname at 10pt
           {\myfont This text uses the OpenType font.}

       LaTeX  users  will  generally  make a ".fd" input file so that commands
       like "\renewcommand{\rmdefault}{TeXName}" work correctly.  See the  EX-
       AMPLE  section  for  more;  check  the DIAGNOSTICS and FREQUENTLY ASKED
       QUESTIONS sections if you have trouble.

   OpenType Features
       OpenType fonts support optional features that change their  appearance.
       Use  the -f option to turn on selected features.  For example, "-fsmcp"
       replaces lower-case letters with the corresponding small  capitals,  in
       fonts that support this.

       You'll  generally  provide  at least the "-fkern" and "-fliga" options,
       which activate pair kerns and f-ligatures.  Other interesting  features
       include  "-fcpsp",  for  capital  spacing; "-fdlig", for optional liga-
       tures; "-flnum", "-fonum", "-fpnum", and  "-ftnum",  to  control  digit
       glyphs; "-fsmcp", for small capitals; "-fswsh", for swash variants; and
       "-fcswh", for contextual swash.  See the FEATURE DIRECTORY section  be-
       low for more.  The otfinfo(1) program will report which features a font
       supports; run "otfinfo -f fontfile".

       Feature options can also apply a feature to a subset of  characters  in
       the  font.   For  example, "--lf smcp" only replaces letters with small
       capitals, whereas "-fsmcp" might additionally replace digits and  punc-
       tuation marks with small-capital versions.

   Automatic Mode
       Automatic  mode,  triggered by the -a/--automatic option, installs font
       metrics and encoding files where TeX can find  them,  and  additionally
       installs  a  Type 1 font and mapping for dvips(1).  This requires a TeX
       installation  that  follows  the  TeX  Directory   Structure   standard
       (http://www.tug.org/tds/), such as most Unix TeX installations.

       Automatic mode should run seamlessly out of the box.  Otftotfm will in-
       stall metrics files, encodings,  map  files,  and  Type  1  fonts  into
       $HOME/.texmf-var  or  any  other  writable TEXMF directory, and run up-
       dmap(1) to update the global lists of installed fonts.  (On older teTeX
       installations,  you may first need to copy the system's updmap.cfg file
       to $HOME/texmf/web2c and run mktexlsr(1).  On newer  TeXLive  installa-
       tions, you may need to set the TEXMFVAR environment variable.)  You can
       then run "otftotfm -a fontfile texname" and immediately  refer  to  the
       font  in  TeX  using the texname you supplied.  Again, you will have to
       write ".fd" files and/or typescripts to make the font conveniently  ac-
       cessible  from  LaTeX  or  ConTeXt.  See the DIAGNOSTICS section if you
       have problems with these instructions.

       In automatic mode, otftotfm searches your $TEXMFVAR or $TEXMF path  for
       a  writable directory, then installs files under that directory tree as
       follows:

       File type   Directory                          Filename
       TFM         TEXMF/fonts/tfm/vendor/typeface/   texname[--base].tfm
       VF          TEXMF/fonts/vf/vendor/typeface/    texname.vf
       PL          TEXMF/fonts/pl/vendor/typeface/    texname[--base].pl
       VPL         TEXMF/fonts/vpl/vendor/typeface/   texname.vpl
       encoding    TEXMF/fonts/enc/dvips/vendor/      a_signature.enc
                   or TEXMF/dvips/vendor/
       font map    TEXMF/fonts/map/dvips/vendor/      vendor.map
                   or TEXMF/dvips/vendor/

       "TEXMF" stands for the writable TEXMF directory.  Texname is  the  font
       name  supplied  as otftotfm's second argument.  The vendor and typeface
       strings are required by TDS; they default to "lcdftools" and the font's
       family name, respectively, but see the --vendor and --typeface options.
       Signature is an opaque 6-character encoding signature.

       Otftotfm also installs a font file suitable for printing.   PostScript-
       flavored  OpenType  fonts are translated to Type 1 format and installed
       as PFB fonts.  TrueType-flavored fonts are normally  installed  as  is,
       since  pdftex  and pdflatex can read TrueType directly; but if you pro-
       vide the --type42 option, otftotfm will  translate  TrueType  fonts  to
       Type  42  format, which dvips understands.  Otftotfm does not overwrite
       existing font files.

       The installation paths are as follows, where PSname is the font's Post-
       Script name.

       PFB        TEXMF/fonts/type1/vendor/typeface/      PSname.pfb
       TrueType   TEXMF/fonts/truetype/vendor/typeface/   fontfile
       Type 42    TEXMF/fonts/type42/vendor/typeface/     PSname.t42

       You  can  override these directories with environment variables and op-
       tions as follows.  Options take precedence over environment variables.

       File type   Environment variable   Option
       TFM         TFMDESTDIR             --tfm-directory
       VF          VFDESTDIR              --vf-directory
       PL          PLDESTDIR              --pl-directory
       VPL         VPLDESTDIR             --vpl-directory
       encoding    ENCODINGDESTDIR        --encoding-directory
       PFB         T1DESTDIR              --type1-directory
       TrueType    TRUETYPEDESTDIR        --truetype-directory
       Type 42     T42DESTDIR             --type42-directory
       font map    -                      --map-file

       Otftotfm will update the TEXMF/ls-R file when  installing  files  under
       TEXMF.   It  will  also  run the updmap(1) program after changing a map
       file, unless the --no-updmap option was supplied.  However, if an  exe-
       cutable  file  called  TEXMF/dvips/updmap exists, this file is executed
       (from the TEXMF/dvips directory) rather than the global  updmap.   This
       is so you can write a fast, customized version of updmap if desired.

EXAMPLE
       This  section  uses MinionPro to show one way to install OpenType fonts
       for LaTeX.  We begin with six fonts: "MinionPro-Regular.otf",  "Minion-
       Pro-It.otf",    "MinionPro-Semibold.otf",   "MinionPro-SemiboldIt.otf",
       "MinionPro-Bold.otf", and "MinionPro-BoldIt.otf".

       Our first task is to decide how to encode  the  fonts.   The  "encoding
       scheme"  is  used  by  TeX to decide how to typeset accents and symbols
       like "$".  The "LY1" encoding scheme has reasonable accent support  and
       is a good choice for many OpenType fonts.  LY1 corresponds to the "tex-
       nansx.enc" encoding file, so we will supply otftotfm with the "-e  tex-
       nansx" option.

              Expert  note:  Strictly  speaking,  LY1 corresponds to the "tex-
              nansi.enc" encoding  file.   Since  the  "texnansx.enc"  version
              omits  duplicate  characters, it has more room for font-specific
              glyphs and is generally a better choice; but if you plan to type
              characters  like "ae" directly into your editor, rather than us-
              ing TeX commands like \ae, you should use "texnansi.enc".

       Next, we decide on a naming scheme for the font  metric  files.   Let's
       use  the  OpenType font names as a base.  (There's generally no need to
       follow the six-character "Karl Berry" naming scheme.)  Just in case  we
       come  back  later  and  add  a different encoding scheme, we'll prepend
       "LY1--" to each name.

       We're now ready to run otftotfm for the first set of fonts.   Note  the
       "-fkern  -fliga"  options,  which access pair kerns and the default "f"
       ligatures.

           otftotfm -a -e texnansx MinionPro-Regular.otf \
                   -fkern -fliga LY1--MinionPro-Regular
           otftotfm -a -e texnansx MinionPro-It.otf \
                   -fkern -fliga LY1--MinionPro-It
           otftotfm -a -e texnansx MinionPro-Semibold.otf \
                   -fkern -fliga LY1--MinionPro-Semibold
           otftotfm -a -e texnansx MinionPro-SemiboldIt.otf \
                   -fkern -fliga LY1--MinionPro-SemiboldIt
           otftotfm -a -e texnansx MinionPro-Bold.otf \
                   -fkern -fliga LY1--MinionPro-Bold
           otftotfm -a -e texnansx MinionPro-BoldIt.otf \
                   -fkern -fliga LY1--MinionPro-BoldIt

       The small-caps fonts are generated with an additional "-fsmcp"  option.
       We  append  "--fsmcp" to the font metric names as well, differentiating
       them from the regular fonts.  Although MinionPro's italic fonts support
       small-caps,  the  LaTeX font selection scheme can't access them easily,
       so we've left them off.

           otftotfm -a -e texnansx MinionPro-Regular.otf \
                   -fkern -fliga -fsmcp LY1--MinionPro-Regular--fsmcp
           otftotfm -a -e texnansx MinionPro-Semibold.otf \
                   -fkern -fliga -fsmcp LY1--MinionPro-Semibold--fsmcp
           otftotfm -a -e texnansx MinionPro-Bold.otf \
                   -fkern -fliga -fsmcp LY1--MinionPro-Bold--fsmcp

       To get old-style numerals, just add the "-fonum" option to each invoca-
       tion  --  and, to reduce confusion, append "--fonum" to the font metric
       names.

       At this point, all our font metric files are installed,  and  it's  fi-
       nally  time  to create the ".fd" file.  (The ".fd" format is documented
       in The LaTeX Companion.)  Let's call the LaTeX font family "MinionPro".
       Then the ".fd" file is "LY1MinionPro.fd", and it contains:

           \DeclareFontFamily{LY1}{MinionPro}{}
           \DeclareFontShape{LY1}{MinionPro}{m}{n}%
                   { <-> LY1--MinionPro-Regular }{}
           \DeclareFontShape{LY1}{MinionPro}{m}{it}{ <-> LY1--MinionPro-It }{}
           \DeclareFontShape{LY1}{MinionPro}{m}{sc}%
                   { <-> LY1--MinionPro-Regular--fsmcp }{}
           \DeclareFontShape{LY1}{MinionPro}{sb}{n}%
                   { <-> LY1--MinionPro-Semibold }{}
           \DeclareFontShape{LY1}{MinionPro}{sb}{it}%
                   { <-> LY1--MinionPro-SemiboldIt }{}
           \DeclareFontShape{LY1}{MinionPro}{sb}{sc}%
                   { <-> LY1--MinionPro-Semibold--fsmcp }{}
           \DeclareFontShape{LY1}{MinionPro}{b}{n}{ <-> LY1--MinionPro-Bold }{}
           \DeclareFontShape{LY1}{MinionPro}{b}{it}%
                   { <-> LY1--MinionPro-BoldIt }{}
           \DeclareFontShape{LY1}{MinionPro}{b}{sc}%
                   { <-> LY1--MinionPro-Bold--fsmcp }{}
           \DeclareFontShape{LY1}{MinionPro}{bx}{n}%
                   { <-> ssub * MinionPro/b/n }{}
           \DeclareFontShape{LY1}{MinionPro}{bx}{it}%
                   { <-> ssub * MinionPro/b/it }{}
           \DeclareFontShape{LY1}{MinionPro}{bx}{sc}%
                   { <-> ssub * MinionPro/b/sc }{}

       We're  now ready to use MinionPro in LaTeX, with lines like this in the
       document preamble:

           \usepackage[LY1]{fontenc}
           \renewcommand{\rmdefault}{MinionPro}
           \renewcommand{\bfdefault}{b}

       Of course, we're free at any time to add more MinionPro  variants  with
       otftotfm;  they'll  become  accessible  to LaTeX as soon as we edit the
       "MinionPro.fd" file.

OPTIONS
       With long options, you need type only as many characters as  will  make
       the option unique.

   Font Feature and Transformation Options
       -s script[.lang], --script=script[.lang]
            Apply  features  suitable to the script system script and language
            system lang.  Scripts and language systems are  two-to-four-letter
            names  assigned  by  Microsoft and Adobe.  Examples include "latn"
            (Latin script), "grek" (Greek script),  and  "yi.YIC"  (Yi  script
            with classic characters).  If lang is not specified, otftotfm will
            use the default language system for that  script.   You  can  give
            this option multiple times.  Run "otfinfo -s font" to see the list
            of scripts and languages a font supports.  Defaults to "latn".

       -f feature, --feature=feature
            Activate the feature  named  feature.   Features  are  four-letter
            names  assigned  by  Microsoft and Adobe; they are meant to corre-
            spond to font behaviors, such as kerning or small-capitals.  Exam-
            ples  include  "liga"  (default  ligatures), "dlig" (discretionary
            ligatures), "kern" (kerning), and "c2sc" (replacing capitals  with
            small  capitals).  Give this option multiple times to apply multi-
            ple features.  Run "otfinfo -f [--script option] font" to see  the
            list of features a font supports for a specified script.  Defaults
            to any features required by the selected scripts.

       --lf feature, --letter-feature=feature
            Activate the feature named feature, but only for letters.  For in-
            stance,  the "-f smcp" option will apply the small-caps feature to
            all characters in the encoding; this  may  result  in  changes  to
            punctuation  and  numbers as well as letters.  The "--lf smcp" op-
            tion will apply the small-caps feature only  to  letters,  meaning
            characters with the "Letter" Unicode property.

       --subs-filter pattern
       --include-subs pattern
       --exclude-subs pattern
       --clear-subs
            Limit  the characters that otftotfm will substitute.  Substitution
            is allowed on an input character if it matches at least one of the
            --include patterns, and none of the --exclude patterns.  Each pat-
            tern applies to all following features, except  that  the  --clear
            option clears any accumulated patterns.  The --subs-filter pattern
            option acts like --clear-subs followed by --include-subs  pattern.
            For pattern syntax, see GLYPH PATTERNS, below.

            In  the  command line below, the '<Number>' pattern will force the
            "onum" feature to substitute only numbers (and not,  for  example,
            punctuation).  The "salt" feature can still substitute any charac-
            ter.
                otftotfm -fsalt --include-subs="<Number>" -fonum ...

       -E fac, --extend=fac
            Widen, or extend, the font by a factor of fac.  Like  afm2tfm(1)'s
            -e option.

       -S amt, --slant=amt
            Oblique, or slant, the font by amt.  Like afm2tfm(1)'s -s option.

       -L amt, --letterspacing=amt
            Letterspace  each  character by amt units, where 1000 units equals
            one em.  The width of each character increases by amt,  with  half
            the  space  distributed  to  each sidebearing.  Boundary-character
            kerns are added to maintain alignment at the ends of lines.

       --math-spacing[=skewchar]
            Ignore the font's claimed character  widths,  deriving  horizontal
            metrics  from  bounding  boxes  instead.   This results in similar
            spacing as the Computer Modern Math Italic  font,  with  increased
            sidebearings for letters like f and j.

            If  you  provide  skewchar, a number between 0 and 255 or a single
            character, then otftotfm adds heuristically-derived kerns  to  the
            font  that  may improve accent positions in math mode.  To get the
            benefits, you must tell TeX about the skewchar with a command like
            "\skewchar\font=skewchar".

       -k N, --min-kern=N
            Only  output  kerning  pairs  whose absolute value is N or larger.
            Larger minimum kerns make kerning less  precise,  but  shrink  the
            output TFM file.  The default minimum kern is 2.0, or 0.002 em.

       --space-factor=fac
            Scale the width of the inter-word space by a factor of fac.

       --design-size=size
            Set  the output font's design size to size, a value in TeX points.
            This value is mostly just documentation, since  LaTeX  essentially
            ignores  fonts'  design  sizes, but plain TeX may occasionally use
            the design size to decide how large a font should be.  (Loading  a
            font  in TeX "at" a particular size effectively ignores the design
            size; loading a font plain or "scaled" by a given factor uses  the
            design  size.)  The default is taken from the input font's optical
            size feature, or 10pt if it has no such feature.

       --fixed-width
            Set the font to fixed-width (its  space  character  will  have  no
            stretch or shrink).  Normally you won't need this option; the font
            will tell otftotfm whether it is fixed  width.   The  opposite  of
            --fixed-width is --proportional-width.

       --italic-angle=angle
            Set  the  output font's default italic angle to angle, a number of
            degrees.  This value is used by TeX to position accents.  Normally
            you won't need this option; the font will tell otftotfm its italic
            angle.

       --x-height=val
            Set the output font's x-height to val.  This value is used by  TeX
            to position accents. Normally you won't need this option.  Val may
            be a number expressed in font units; `x', which uses the height of
            the  font's lowercase x; or `font', which uses the font's declared
            x-height metric.

   Encoding Options
       -e encoding, --encoding=encoding
            Select the output metrics's base dvips(1) encoding.  Otftotfm will
            search  for  encoding[.enc]  the same way that dvips would, so you
            may not need to give a full pathname.  Say -e - to start with  the
            font's  default encoding.  See ENCODINGS, below, for more informa-
            tion.

       --boundary-char=char
            Set the font's boundary character to char, which should either  be
            a  single non-digit character, or a number between -1 and 255. The
            default is taken from the encoding.

       --altselector-char=char
            Set the font's alternate selector character to char, which  should
            either be a single non-digit character, or a number between -1 and
            255.  Alternate selectors let TeX authors  explicitly  choose  be-
            tween  versions  of  a  character.  For instance, the '--altselec-
            tor-char="*"' option turns the "*" character into a special switch
            that  cycles  between alternates.  For instance, the TeX input "A"
            would produce the normal version of  the  "A"  Unicode  character,
            "A*"  would  produce  the first alternate, "A**" would produce the
            second alternate, and so forth.  Furthermore, "s*t" will  activate
            any discretionary "s_t" ligature in the font.

            The  --altselector-char  mechanism  uses the features specified by
            --altselector-feature options.

            The alternate-selector character may also be specified in the  en-
            coding; see ENCODINGS, below.  See Sivan Toledo's article cited in
            the SEE ALSO section for more information.

       --altselector-feature=feature
            Activate the feature  named  feature  for  the  --altselector-char
            mechanism.   Give  this option multiple times to activate multiple
            features.  This option activates features only for use with --alt-
            selector-char; use the --feature option to activate features glob-
            ally.  Defaults to the salt and dlig features.

       --alternates-filter=pattern
       --include-alternates=pattern
       --exclude-alternates=pattern
       --clear-alternates
            Limit the alternate characters that otftotfm will select.  An  al-
            ternate  is  used if it matches at least one of the --include pat-
            terns, and none of the --exclude patterns.  Each  pattern  applies
            to  all  following features, except that the --clear option clears
            any accumulated patterns.  The --alternates-filter pattern  option
            acts like --clear-alternates followed by --include-alternates pat-
            tern.  For pattern syntax, see GLYPH PATTERNS, below.

            OpenType fonts can have many alternates  per  character,  most  of
            which  aren't  interesting.   For  example,  the  character "a" in
            WarnockPro-Regular has five alternates,  "ordfeminine",  "Asmall",
            "asuperior",  "a.end",  and "orn.013".  The --altselector-char op-
            tion lets you cycle through these alternates, but it's  better  to
            leave  out  the  ones you don't want, to avoid overfull encodings.
            Thus, if you were only interested in ".end"  variants,  you  might
            supply an '--include-alternates="*.end"' option.

            In  the  command  line  below,  the  '*.end' pattern will apply to
            "aalt" alternates, but not to "salt" alternates.
                otftotfm -fsalt --include-alternates="*.end" -faalt ...

       --ligkern=command
            Add a LIGKERN command to the encoding.  For example, '--ligkern "T
            {L}  h"'  suppresses any T_h ligature in the font.  You can supply
            multiple --ligkern options.  See ENCODINGS, below.

       --position=command
            Add a POSITION command to the encoding.  For example,  '--position
            "T  10  0  20"'  adds ten units of space to either side of the "T"
            character.  You can supply multiple --position options.   See  EN-
            CODINGS, below.

       --unicoding=command
            Add  a UNICODING command to the encoding.  For example, '--unicod-
            ing "pi1 =: uni03D6"' tells otftotfm to encode  "/pi1"  as  U+03D6
            GREEK  PI  SYMBOL.   You  can supply multiple --unicoding options.
            See ENCODINGS, below.

       --no-encoding-commands
            Ignore any LIGKERN and/or UNICODING commands in the encoding file.

       --no-default-ligkern
            Don't include otftotfm's default LIGKERN commands.

       --coding-scheme=scheme
            Add a CODINGSCHEME to the encoding.  See ENCODINGS, below.

       --warn-missing
            Warn about encoded characters not supported by the font.  See  the
            WARNMISSING command in ENCODINGS, below.

       --literal-encoding=encoding
            Select  the dvips(1) encoding used for the font.  No glyph substi-
            tutions will be permitted, so the output encoding will  equal  the
            input  encoding  (and  otftotfm will not generate an output encod-
            ing).

       --base-encodings=file
            Experts only.  Allow the output font to refer to  existing  "base"
            fonts.  This can greatly reduce the number of base fonts generated
            by otftotfm.  Each line in the file argument contains a  TeX  font
            name (as for --name) and a corresponding literal encoding file (as
            for --literal-encoding); for example:
                WarnoProReg--eka eka
                WarnoProReg--exp1 exp1
            The named fonts must have been created by prior runs  of  otftotfm
            on  the  same  input  OpenType  font,  with  the same --extend and
            --slant options as the current run.  The current output font  will
            refer  to  glyphs from the named base fonts when possible.  If the
            base fonts cover all glyphs required by the output font,  otftotfm
            won't generate any new base fonts at all.  The file can also refer
            to dotless-J fonts using the following syntax:
                WarnoProReg--lcdfj - dotlessj

   Automatic Mode Options
       -a, --automatic
            Select automatic mode.

       -v vendor, --vendor=vendor
            Set the font vendor name, which is used to locate files within the
            TDS.  Defaults to "lcdftools".

            In  automatic  mode,  TeX and friends will generally find required
            font files independently of the vendor you select.

       --typeface=typeface
            Set the font typeface name, which is used to locate  files  within
            the  TDS.   Defaults  to  the  current font's family name with un-
            suiable characters removed.

       --no-type1
            Do not use cfftot1(1) to create Type 1 fonts corresponding to  the
            OpenType input fonts.

       --no-dotlessj
            Do  not  use t1dotlessj(1) to create a special dotless-j font when
            the input font doesn't have dotless-j.

       --no-truetype
            Do not install TrueType-flavored fonts.

       --type42
            Install TrueType-flavored fonts in translated Type 42 format.

       --no-updmap
            Do not run an updmap(1) program.  This can be useful if you're in-
            stalling  a  bunch of fonts; it is much faster to run updmap once,
            at the end, than to run it once per font.

   Output Options
       -n texname, --name=texname
            Set the TeX name of the output font, which is  used  in  font  map
            files  and,  in  automatic  mode, to generate the output filename.
            The default is derived from the OpenType font's name and the  fea-
            tures you selected.

       -p, --pl
            Output  human-readable  PL  and VPL metrics, not binary TFM and VF
            metrics.  Note: Otftotfm's PL and VPL output files are legal,  but
            the  fontinst program may not accept them (it has a picky parser).
            Make sure to supply a --coding-scheme; if that doesn't  help,  run
            the TFM output through tftopl(1).

       --no-virtual
            Do  not generate virtual fonts (VFs and VPLs).  Otftotfm will warn
            if the selected font features cannot be implemented  without  vir-
            tual fonts.

       --no-encoding
            Do not generate an encoding file.

       --output-encoding[=file]
            Only  generate an encoding file; do not generate any other output.
            The encoding file is written to file, or to standard output if  no
            file argument is supplied.

       --no-map
            Do not generate a font map line for the font.

   File Location Options
       --tfm-directory=dir
       --pl-directory=dir
       --vf-directory=dir
       --vpl-directory=dir
       --encoding-directory=dir
       --type1-directory=dir
       --truetype-directory=dir
       --type42-directory=dir
       --directory=dir
            Set  the  directory used for various output types.  Each directory
            may be set by an environment variable, and defaults to a  TDS  di-
            rectory in automatic mode, or to "." otherwise.  Environment vari-
            able names and default TDS locations are described  in  the  Auto-
            matic Mode section above.  The --directory option sets the default
            directory for all output types.

       --map-file=filename
            Set file in which otftotfm will write a  font  map  line  for  the
            font.   The  default  is  the  standard output in manual mode, and
            "TEXMF/fonts/map/dvips/vendor/vendor.map"  (or   "TEXMF/dvips/ven-
            dor/vendor.map" on older installations) in automatic mode.

   Miscellaneous Options
       --glyphlist=file
            Use  file as a Adobe glyph list, which helps translate glyph names
            to Unicode code points.  Give multiple options to include multiple
            files.  See ENCODINGS, below, for more information.

       -V, --verbose
            Write progress messages to standard error.

       --no-create
            Do  not create or modify any files.  Instead, write messages about
            the program's hypothetical progress to standard error.

       --force
            Generate all files, even if it looks like versions are already in-
            stalled.

       -q, --quiet
            Do not generate any error messages.

       --kpathsea-debug=flags
            Set  path  searching debugging flags.  See the Kpathsea manual for
            details.

       -h, --help
            Print usage information and exit.

       --version
            Print the version number and some short  non-warranty  information
            and exit.

ENCODINGS
       Otftotfm interprets encoding files as Unicode.  For example, say an in-
       put encoding has "/dotlessi" at position 10.  Otftotfm detects that po-
       sition  10  should  contain Unicode character U+0131 LATIN SMALL LETTER
       DOTLESS I, and uses the font's glyph for that character (possibly modi-
       fied  by  any  active features).  The selected glyph might not be named
       "dotlessi"; only the Unicode value matters.

       Otftotfm assigns Unicode values to glyph names using a table  published
       by Adobe (SEE ALSO has a reference), with extensions for TeX.  For more
       fine-grained control, add UNICODING  commands  to  the  input  encoding
       file.  These commands have the following format:
           % UNICODING glyph =: choice1 [choice2 ...] ;
       This  tells  otftotfm  that  the  glyph named glyph translates into the
       first Unicode value in the choice list that  has  a  character  in  the
       font.   Glyph  and  the choices are PostScript glyph names; the initial
       "%" sign is required; and each UNICODING line can contain multiple com-
       mands, separated by spaced semicolons.  For example,
           % UNICODING pi1 =: uni03D6 ;
       encodes the character "/pi1" as U+03D6 GREEK PI SYMBOL, and
           % UNICODING Delta =: uni0394 uni2206 ;
       makes  U+0394  GREEK CAPITAL LETTER DELTA preferred to U+2206 INCREMENT
       as an encoding for "/Delta".  You can also supply glyph names:
           % UNICODING Delta =: Deltagreek Delta ;
       A mapping with no Unicode values removes that glyph from the input  en-
       coding.   For  instance, this erases any f-ligature characters from the
       encoding:
           % UNICODING ff =: ; fi =: ; fl =: ; ffi =: ; ffl =: ;
       The slots are available for otftfm's own use,  for  example  for  other
       characters  required  by  the font.  (If the f-ligatures themselves are
       required by the font, for instance by a 'liga' feature, then they  will
       be stored into their old slots when possible.)  Map a glyph to 'emptys-
       lot' if you don't want otftotfm to use the  slot.   For  example,  this
       will leave the 'ff' slot unused if the font has no 'ff' glyph:
           % UNICODING ff =: ff emptyslot ;
       (Note that most OpenType fonts provide a visible representation for un-
       used encoding slots, namely a box with an X inside.)

       LIGKERN comments in the encoding can add ligatures and  inhibit  kerns,
       as in afm2tfm(1).  To add a ligature, say:
           % LIGKERN glyph1 glyph2 =: result ;
       The  "=:"  operator  indicates  a normal ligature, where both the input
       glyphs are removed and replaced by result.  To preserve  the  left-hand
       glyph,  for  an effect like "glyph1 glyph2 =: glyph1 result", use "|=:"
       instead; to preserve the right-hand glyph, use "=:|".   To  remove  all
       kerns between two characters, say:
           % LIGKERN glyph1 {} glyph2 ;
       A "*" matches any character, so
           % LIGKERN a {} * ;
       removes all kerns with "a" as the left-hand character, and
           % LIGKERN * {} * ;
       removes all kerns.

       Otftotfm  also supports extended syntax for setting kern values and in-
       hibiting ligatures.  To add an n-unit kern between two glyphs, say:
           % LIGKERNX glyph1 {n} glyph2 ;
       where n is an integer.  This:
           % LIGKERNX glyph1 {L} glyph2 ;
       inhibits any ligature between glyph1 and glyph2.  "{LK}" and "{KL}" in-
       hibit both ligatures and kerns.

       You can set the --boundary-char and --altselector-char from an encoding
       file with commands like this:
           % LIGKERN || = boundarychar ;
           % LIGKERNX ^^ = altselectorchar ;
       As with UNICODING, each LIGKERN or LIGKERNX line can  contain  multiple
       commands, separated by spaced semicolons.

       Otftotfm has a default set of eight ligatures, namely:
           space l =: lslash ; space L =: Lslash ;
           question quoteleft =: questiondown ; exclam quoteleft =: exclamdown ;
           hyphen hyphen =: endash ; endash hyphen =: emdash ;
           quoteleft quoteleft =: quotedblleft ;
           quoteright quoteright =: quotedblright
       LIGKERN  commands  in the encoding file and --ligkern options can over-
       ride these defaults, or supply the --no-default-ligkern option to  turn
       them off.

       The  POSITION command shifts a glyph within its bounding box.  The syn-
       tax is
           % POSITION glyph pdx pdy adx ;
       This will add pdx units of space to glyph's left edge; raise it  up  by
       pdy  units;  and  add  adx  units to its width.  For example, to add 10
       units of space to either side of the "T" glyph, supply
           % POSITION T 10 0 20
       To move the "degree" symbol up by 20 units, supply
           % POSITION degree 0 20 0

       The CODINGSCHEME command specifies the coding scheme  for  fonts  using
       this encoding.  This is a string, less than 40 characters long and con-
       taining no parentheses, that classifies the  encoding  for  TeX's  pur-
       poses.   Sample  coding  schemes include "TEX TEXT", "TEX MATH ITALIC",
       and "EXTENDED TEX FONT ENCODING - LATIN".  For example:
           % CODINGSCHEME EXTENDED TEX FONT ENCODING - LATIN
       Most  tools  ignore  the  coding  scheme;  fontinst  is  an  exception.
       Otftotfm  uses  the  encoding's  PostScript name for the default coding
       scheme.

       Finally, the WARNMISSING command makes any glyphs not supported by  the
       input  font  appear  as  black boxes.  The dvips(1) processor will also
       print a warning when encountering these glyphs.  For example:
           % WARNMISSING yes

       The   --unicoding,   --ligkern,   --position,   --coding-scheme,    and
       --warn-missing  options add UNICODING, LIGKERN/LIGKERNX, POSITION, COD-
       INGSCHEME, and WARNMISSING commands to an encoding,  and  can  override
       commands  in the encoding itself.  Some common encoding files have com-
       mands that are inappropriate for OpenType fonts; for example,  "t1.enc"
       hard-codes  f-ligatures, which can cause problems with small-cap fonts.
       Supply the --no-encoding-commands option to ignore  all  commands  from
       the  encoding file.  Commands from options like --ligkern are processed
       in any case.

   New Glyphs
       New glyphs, such as ligatures and contextual substitutions,  are  added
       to  the  encoding  in  any empty spaces, using their original locations
       when possible.  If the encoding doesn't have enough space for  all  new
       glyphs,  shorter  ligatures  composed  of unaccented letters get prece-
       dence.

   Synthetic Glyphs
       Otftotfm can synthesize some glyphs using virtual  font  manipulations,
       if  a  required glyph is not available in the input font. Specifically,
       it will synthesize:

       cwm                   TeX's compound word mark  (a  zero-width  "strut"
                             rule with height equal to the font's x-height)
       ascendercompwordmark  "cwm" with height equal to the font's ascenders
       capitalcompwordmark   "cwm" with height equal to the font's capitals
       visualspace           A square cup used to represent spaces
       dotlessj              A dotless "j", synthesized with t1dotlessj(1)
       dblbracketleft        Kerned version of "[["
       dblbracketright       Kerned version of "]]"
       bardbl                The parallel symbol "||"
       asteriskmath          Vertically-centered "*"
       ringfitted            Ring accent centered on the width of "A"
       twelveudash           2/3-em-wide dash
       threequartersemdash   3/4-em-wide dash
       centigrade            "(degrees)C"
       interrobang           Combined "?!" symbol
       interrobangdown       Inverted interrobang
       pertenthousand        Per-ten-thousand sign (% with two extra 0s)
       IJ                    "IJ" ligature
       ij                    "ij" ligature
       Germandbls            "SS" (a capital sharp-s)
       SSsmall               Small-capital version of "SS"
       FFsmall               Small-capital version of "FF"
       FIsmall               Small-capital version of "FI"
       FLsmall               Small-capital version of "FL"
       FFIsmall              Small-capital version of "FFI"
       FFLsmall              Small-capital version of "FFL"

GLYPH PATTERNS
       The  --include-subs  and  --include-alternates options, and their --ex-
       clude and --*-filter variants, accept the following types of pattern.

       o  Glyph names.  Example: "Aacute".  For PostScript-flavored fonts, use
          otfinfo(1)'s  -g  option  to  see a font's glyph names, and "cfftot1
          font.otf | t1testpage" to generate a PostScript  file  showing  each
          glyph.

       o  Glyph  name  patterns using the shell-style glob-matching rules: "*"
          matches any number of characters, "?" matches any single  character,
          and "[...]"  matches any character in a set.  Example: "*.end".

       o  Unicode  category  properties  in  angle brackets.  Examples: "<Let-
          ter>", "<UppercaseLetter>", "<Lu>".  The complete list of both short
          and  long  names:  Letter/L, UppercaseLetter/Lu, LowercaseLetter/Ll,
          TitlecaseLetter/Lt,  ModifierLetter/Lm,  OtherLetter/Lo;   Number/N,
          DecimalNumber/Nd,  LetterNumber/Nl,  OtherNumber/No;  Punctuation/P,
          ConnectorPunctuation/Pc,   DashPunctuation/Pd,   OpenPunctuation/Ps,
          ClosePunctuation/Pe,   InitialPunctuation/Pi,   FinalPunctuation/Pf,
          OtherPunctuation/Po;  Symbol/S,  MathSymbol/Sm,   CurrencySymbol/Sc,
          ModifierSymbol/Sk,  OtherSymbol/So;  Mark/M, SpacingMark/Mc, Enclos-
          ingMark/Me, NonspacingMark/Mn; Separator/Z, SpaceSeparator/Zs, Line-
          Separator/Zl,  ParagraphSeparator/Zp;  Other/C,  Surrogate/Cs,  For-
          mat/Cf, Control/Cc, PrivateUse/Co, Unassigned/Cn.   Category  values
          current as of Unicode 4.0.

       o  Unicode ranges.  Example: "U+007f-U+008C".

       The  "!"  prefix  negates a pattern, and you can separate multiple pat-
       terns by spaces.

FEATURE DIRECTORY
       This section lists features common to Western OpenType  fonts  and  de-
       scribes  how  otftotfm  handles them for common fonts.  Please send the
       author mail if otftotfm does not handle a feature you need, or you  be-
       lieve it handles some feature incorrectly.

       aalt, Access All Alternates
            Lets  the  user choose between all available alternate forms for a
            character.  This includes things like  superscript  and  subscript
            variants,  different  styles  (swash, for example), and even orna-
            ments.  The --altselector-feature=aalt option can help an --altse-
            lector-char provide useful access to alternates, but the aalt fea-
            ture isn't usually useful on its own.  Try the salt and calt  fea-
            tures instead.
       c2sc, Small Capitals From Capitals
            Replaces  capital  letters with small capitals: a sort of converse
            of the more conventional smcp feature, which  replaces  lower-case
            letters with small capitals.  Supported.
       calt, Contextual Alternates
            Lets  the  user choose between context-appropriate swash forms for
            each character.  For example, given the word "DREW" in  a  cursive
            typeface, the "R E W" might be translated to calmer forms than the
            initial "D".  There may be more than one choice for a  given  let-
            ter,  in  which case the user should be able to select among them.
            TeX can't support complex contextual alternates, or alternate  se-
            lection,  but  otftotfm supports some fonts quite well.  The input
            encoding should have lots of empty  space  for  variants,  and  it
            should specify a boundary character.  See also cswh.
       case, Case-Sensitive Forms
            Shifts  punctuation  marks  up  to a position that works well with
            all-capital-letter sequences.  For example, the hyphen  character,
            which  generally  centers vertically on the x-height, is raised up
            to center vertically on a capital letter.  Also replaces text fig-
            ures  with lining figures, and accent marks with forms more appro-
            priate for capitals.  Supported.
       cpsp, Capital Spacing
            Adds a bit of space on either side of each capital  letter.   Sup-
            ported.  (However, the OpenType tag registry suggests that cpsp be
            on by default, but applying to all-caps text only; TeX cannot eas-
            ily implement that contextual intelligence.)
       cswh, Contextual Swash
            Lets  the  user choose between context-appropriate swash forms for
            each character.  For example, in the words "Ab AC", the first  "A"
            might  be  translated to a swash form, while the second might not.
            There may be more than one choice for a  given  letter,  in  which
            case  the user should be able to select among them.  Otftotfm sup-
            ports some fonts quite well.  The input encoding should have  lots
            of  empty space for swash variants, and it should specify a bound-
            ary character.  See also calt and swsh.
       dlig, Discretionary Ligatures
            Activates uncommon ligatures, such as  "c_t",  "s_p",  and  "s_t".
            Supported.
       dnom, Denominators
            Replaces digits and some punctuation marks with smaller forms sit-
            ting on the baseline, intended for  fraction  denominators.   Sup-
            ported.
       fina, Terminal Forms
            Substitutes appropriate forms for letters occurring at the ends of
            words.  This feature doesn't select swash variants; it's  intended
            for  normal use, and the specification recommends that it be on by
            default.  Partially supported: TeX will only treat spaces  as  the
            ends  of  words, where a correct implementation would probably in-
            clude punctuation too.  See cswh for selecting swash variants  ac-
            tive at the ends of words.
       frac, Fractions
            Replaces  simple sequences like "1/2" with nice-looking fractions.
            Supported, but beware: many fonts will translate "11/32" into  "1"
            + "1/3" + "2".
       hist, Historical Forms
            Replaces characters with historical variants.  Usually, this means
            at least translating regular "s" to long "s".  Supported.
       kern, Kerning
            Adjusts the space between characters  (pair  kerning).   Generally
            supported, and you should probably turn it on.  As a special case,
            "-fkern" can also read kerning information from the  "kern"  table
            in conventional TrueType fonts.
       liga, Standard Ligatures
            Activates common ligatures, such as "f_f", "f_i", "f_f_j", and (in
            some Adobe fonts) "T_h".   Generally  supported,  and  you  should
            probably turn it on.
       lnum, Lining Figures
            Uses  lining figures, the set of digits that are all about as high
            as capital letters.  Supported.  Compare onum; see also  pnum  and
            tnum.
       numr, Numerators
            Replaces  digits  and  some punctuation marks with smaller, raised
            forms intended for fraction numerators.  Supported, but  not  usu-
            ally useful.
       onum, Oldstyle Figures
            Uses  old-style  figures, also known as text figures.  This is the
            set of digits that have ascenders and descenders  like  lower-case
            letters.  Supported.  Compare lnum; see also pnum and tnum.
       ordn, Ordinals
            Designed  for  Spanish and French.  Replaces ordinal numbers, such
            as "2.o", with forms where the "o" is raised, and replaces the se-
            quence "No" with an integrated glyph.  Supported.
       ornm, Ornaments
            Replaces  some  alphabetic  characters in the font with ornaments,
            and links the bullet character to a set of all  bullet-like  orna-
            ments,  from  which the user can choose.  Partially supported: TeX
            can handle alphabetic substitutions, but not bullet choice.
       pnum, Proportional Figures
            Digits will have different widths.  Supported.  Compare tnum;  see
            also lnum and onum.
       salt, Stylistic Alternates
            Lets the user choose between stylistic alternate forms for a char-
            acter.  The --altselector-char mechanism provides useful access to
            this  feature.   If  you turn on salt globally, otftotfm takes the
            first alternate form whenever there's more than one  choice.   See
            also  aalt  and  ss01; salt is generally more useful than aalt for
            TeX, since it refers exclusively to stylistic alternates.
       sinf, Scientific Inferiors
            Replaces digits and some punctuation marks with  smaller,  lowered
            forms intended for subscripts.  Supported.  Compare subs.
       size, Optical Size
            This  feature  stores information about the range of optical sizes
            for which the font was intended.  There is no point  in  selecting
            it with otftotfm, since it should not change the font's appearance
            in any way.
       smcp, Small Capitals
            Replaces lower-case letters with small capitals.  Supported.  Com-
            pare c2sc.
       ss01-ss20, Stylistic Sets 1-20
            Replaces  characters  with  a uniform set of stylistic alternates.
            Differs from features like salt in that a Stylistic  Set  is  uni-
            form: an ssXX feature should never involve selection from a set of
            possible alternate characters.  Supported.
       subs, Subscript
            Replaces characters with smaller, lowered forms intended for  sub-
            scripts.   Supported.   Compare  sinf; some fonts support sinf but
            not subs.
       sups, Superscript
            Replaces digits, some punctuation marks, and some lower-case  let-
            ters  with  smaller, raised forms intended for superscripts.  Sup-
            ported.
       swsh, Swash
            Activates all swash forms for each character. There  may  be  more
            than  one  swash  form, in which case otftotfm will pick the first
            one listed.  Supported, except that swash variants other than  the
            first  are inaccessible.  Note that some fonts with swash variants
            support the cswh feature exclusively.
       tnum, Tabular Figures
            All digits will have the same width, so that tables and  the  like
            will  align visually.  Supported.  Compare pnum; see also lnum and
            onum.
       zero, Slashed Zero
            Replaces the zero character with a slashed zero.  Supported.

DIAGNOSTICS AND TROUBLESHOOTING
       no writable directory found in $TEXMF
            Otftotfm could not find a writable directory in your $TEXMFVAR  or
            $TEXMF path.  Did you create a $HOME/.texmf-var or $HOME/texmf di-
            rectory?    If   so,   run   the    command    "kpsewhich    --ex-
            pand-path='$TEXMF'"  to  verify that directory is not being found.
            You  may  need  to  set  your  TEXMF  environment   variable,   to
            '{!!'"$HOME"'/texmf,!!$TEXMFMAIN}', for instance (note the differ-
            ent  kinds  of  quotes;   on   my   machine,   this   expands   to
            '{!!/home/kohler/texmf,!!$TEXMFMAIN}').

       'char' has no encoding, ignoring kern removal
       (or ligature removal, lig/kern removal, or ligature)
            These  messages indicate a slight problem with your encoding file:
            one of the LIGKERN commands referred to a character not present in
            the  encoding.   This might be due to a misspelling in the LIGKERN
            command or the encoding file, or it might be an oversight.  Either
            fix the encoding file or ignore the warning.

       can't map 'char' to Unicode
            Another  encoding  file problem: One of the glyph names in an UNI-
            CODING block could not be converted to Unicode.  This is  problem-
            atic  since  UNICODING exists wholly to translate glyph names into
            Unicode.  Fix the encoding file or ignore the warning.

       not enough room in encoding, ignoring N glyph(s) ...
            There wasn't space in the encoding for all the glyphs referred  to
            by  the  features  you  selected.  For example, maybe the font had
            more ligatures than there were empty slots in the  encoding.   Fix
            this  warning by selecting fewer features, or by using an encoding
            with more empty slots, such as  the  7t.enc  encoding  distributed
            with otftotfm.

       The '-a' option did not install my font correctly.
            Try  again  with  the '--verbose' option, which causes otftotfm to
            explain its behavior.  Note that by default, otftotfm will not re-
            install  files  already  present in your system's TeX search paths
            (in the current directory, for instance).  Use '--force' to  over-
            ride this behavior.

FREQUENTLY ASKED QUESTIONS
       How can I get a small-caps "SS" in place of the German sharp-S?
            Supply the option '--unicoding "germandbls =: SSsmall"'.

       How can I prevent f-ligatures from forming in a small-caps font?
            This  should  happen  automatically, but some overzealous encoding
            files add f-ligatures even when the  font  doesn't  request  them.
            Try  the  "--no-encoding-commands" option if this is a problem for
            you.

       Otftotfm seems to take a long time.
            Use the -V option to see what it's doing.  Often  the  culprit  is
            the updmap(1) program; if you're planning to run otftotfm multiple
            times, give it the --no-updmap option and run updmap manually when
            you're done.

       How can I refer to the different forms of phi?
            Otftotfm  follows TeX practice and widely-distributed TeX encoding
            vectors, so "/phi" in an input encoding vector  should  map  to  a
            "straight" phi and "/phi1" should map to a "loopy" phi.  Note that
            TeX practice differs from the PostScript standard  naming  conven-
            tions,  in which "/phi" is "loopy" and "/phi1" is "straight"; this
            means that otftotfm may map "/phi" in an input encoding vector  to
            a  font's  "/phi1"  glyph, and vice versa.  Perhaps most unambigu-
            ously,  you  can  use  "/uni03D5"  for  the  "straight"  form  and
            "/uni03C6" for the "loopy" form.

       How  can I get lining figures (that is, normal line-height digits) with
       small caps ('-fsmcp')?
            Many fonts use old-style figures by default with small caps. Since
            the  default  is  not  specified,  it's  wise to explicitly supply
            '-flnum' or '-fonum'.

BUGS
       See the documentation for --pl  above  if  you  have  problems  running
       otftotfm's output through fontinst.

SEE ALSO
       pltotf(1),  tftopl(1),  vptovf(1),  afm2tfm(1),  dvips(1),  cfftot1(1),
       otfinfo(1), t1dotlessj(1), t1testpage(1), ttftotype42(1), kpsewhich(1),
       updmap(1)

       Adobe Type 1 Font Format

       Adobe Technical Notes #5176, The Compact Font Format Specification, and
       #5177, The Type 2 Charstring Format

       OpenType Specification, Version 1.4

       A Directory Structure for TeX Files, http://www.tug.org/tds/

       Kpathsea: A library for path searching, http://www.tug.org/kpathsea/

       Sivan   Toledo,   Exploiting   Rich   Fonts,   TUGboat   21(2),   2000,
       http://www.tug.org/TUGboat/Articles/tb21-2/tb67tole.pdf

       Michel  Goossens,  Frank  Mittelbach,  and Alexander Samarin, The LaTeX
       Companion (for information on the .fd file format)

       Adobe Systems, "Unicode and Glyph Names".  Refers to the  glyphlist.txt
       file   used   to   translate   glyph  names  to  Unicode  code  points.
       http://partners.adobe.com/public/developer/opentype/index_glyph.html

AUTHOR
       Eddie Kohler (ekohler@gmail.com)

       Thanks to Karl Berry, Marco  Kuhlmann,  Adam  Lindsay,  Bruce  D'Arcus,
       Thomas  Esser, Claire Connelly, Nelson H.F. Beebe, and Ryuji Suzuki for
       suggestions, bug reports, and help.  Particular thanks to Achim Blumen-
       sath  and  Michael Zedler for suggestions and patches, some of them ex-
       tensive.

Version 2.108                   LCDF Typetools                     OTFTOTFM(1)

Want to link to this manual page? Use this URL:
<
https://star2.abcm.com/cgi-bin/bsdi-man?query=otftotfm&sektion=1&manpath=>

home | help