summaryrefslogtreecommitdiff
path: root/Master/texmf/doc/man/man1/cmap2enc.1
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-04-11 00:17:48 +0000
committerKarl Berry <karl@freefriends.org>2009-04-11 00:17:48 +0000
commitd66c210746dff5ad39284b6793dd0333a6df6f9d (patch)
treea78765bd842841e09589aa45ec01c2f4e6f55873 /Master/texmf/doc/man/man1/cmap2enc.1
parent454868a5f2b777edfb9823ae5a2f2f93d029b95c (diff)
install fontools utilities (10apr09)
git-svn-id: svn://tug.org/texlive/trunk@12687 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf/doc/man/man1/cmap2enc.1')
-rw-r--r--Master/texmf/doc/man/man1/cmap2enc.1450
1 files changed, 450 insertions, 0 deletions
diff --git a/Master/texmf/doc/man/man1/cmap2enc.1 b/Master/texmf/doc/man/man1/cmap2enc.1
new file mode 100644
index 00000000000..b57fc021fd1
--- /dev/null
+++ b/Master/texmf/doc/man/man1/cmap2enc.1
@@ -0,0 +1,450 @@
+.\" Automatically generated by Pod::Man version 1.15
+.\" Thu Feb 8 11:04:39 2007
+.\"
+.\" Standard preamble:
+.\" ======================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Ip \" List item
+.br
+.ie \\n(.$>=3 .ne \\$3
+.el .ne 3
+.IP "\\$1" \\$2
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. | will give a
+.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used
+.\" to do unbreakable dashes and therefore won't be available. \*(C` and
+.\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
+.tr \(*W-|\(bv\*(Tr
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr
+.\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
+.\" index entries marked with X<> in POD. Of course, you'll have to process
+.\" the output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it
+.\" makes way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+.bd B 3
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ======================================================================
+.\"
+.IX Title "CMAP2ENC 1"
+.TH CMAP2ENC 1 "fontools" "2007-02-08" "fontools"
+.UC
+.SH "NAME"
+cmap2enc \- convert glyph indices in a TrueType-flavored OpenType font to
+Adobe glyph names
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+cmap2enc [options] \fIfontfile\fR \fIencoding\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+Many TrueType-flavored OpenType fonts contain no glyph names.
+When creating an \fIafm\fR file with \fIttf2afm\fR, this causes all glyphs to be
+named something
+like \f(CW\*(C`index0x01E7\*(C'\fR, which makes the \fIafm\fR file almost useless for use with
+\&\fIfontinst\fR or \fIafm2tfm\fR.
+.PP
+\&\fBcmap2enc\fR uses the font's `cmap' table to map glyph indices to
+Unicode values, and Adobe's \fIglyphlist.txt\fR file to map these to glyph names.
+.PP
+\&\fBcmap2enc\fR creates a new encoding file (for downloading with the font file)
+and a \fImtx\fR file (for use with \fIfontinst\fR). The encoding file contains the
+same glyphs as the original one, but has all glyph names replaced with
+the corresponding glyph indices; the \fImtx\fR file maps these glyph indices back
+to the original glyph names (it consists of many commands of the form
+\&\f(CW\*(C`\erenameGlyph{index0x01E7}{Euro}\*(C'\fR, plus a definition of that
+\&\f(CW\*(C`\erenameGlyph\*(C'\fR command).
+.PP
+Some of the glyph substitution features of OpenType fonts are supported;
+e.g. when the `smcp' (Small Caps) feature is specified, the glyph names
+of the lowercase glyphs will be mapped to the glyph indices of the
+small capitals.
+.PP
+A list of features supported by the font can be generated using the \fB\-p\fR
+option, see below.
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+\&\s-1NOTE:\s0 the \fIexamples/\fR subdirectory in the \fIfontools\fR distribution contains
+several complete examples of the use of \fBcmap2enc\fR and other tools from
+the \fIfontools\fR collection.
+.Ip "\fB-\fR" 2
+.IX Item "-"
+To display all scripts, languages and features supported by Linotype Palatino:
+.Sp
+.Vb 1
+\& cmap2enc -p pala.ttf
+.Ve
+.Ip "\fB-\fR" 2
+.IX Item "-"
+To install Linotype Palatino in T1 encoding, with oldstyle figures:
+.RS 2
+.Ip "\fB1.\fR" 3
+.IX Item "1."
+Generate an encoding file \fIt1\-tosf-pala.enc\fR and a metrics file
+\&\fIresetpala-t1\-osf.mtx\fR:
+.Sp
+.Vb 1
+\& cmap2enc -f onum pala.ttf t1.enc
+.Ve
+.Ip "\fB2.\fR" 3
+.IX Item "2."
+Create an \fIafm\fR file for the font; this is done best using \fIfont2afm\fR
+(also in the \fIfontools\fR collection):
+.Sp
+.Vb 1
+\& font2afm pala.ttf
+.Ve
+.Ip "\fB3.\fR" 3
+.IX Item "3."
+Reencode the \fIafm\fR file using the \fIt1\-tosf-pala.enc\fR encoding to create
+a `raw' font \fIrlplrj9d\fR, with either \fIafm2afm\fR (also in the \fIfontools\fR
+collection) or \fIfontinst\fR (but be warned that \fIfontinst\fR might take a long
+time, and can even crash if the \fIafm\fR is really big):
+.Sp
+.Vb 1
+\& afm2afm -e t1-tosf-pala.enc -o rlplrj9d.afm pala.afm
+.Ve
+or
+.Sp
+.Vb 1
+\& \etransformfont{rlplrj9d}{\ereencodefont{t1-tosf-pala}{\efromafm{pala}}}
+.Ve
+.Ip "\fB4.\fR" 3
+.IX Item "4."
+Create a `value-added' \fIvpl\fR file from this raw font by adding
+ligatures, faking missing glyphs etc. with \fIfontinst\fR:
+.Sp
+.Vb 2
+\& \einstallfont{lplrj9d}{rlplrj9d,resetpala-t1-tosf,newlatin}
+\& {t1}{T1}{lplj}{m}{n}{}
+.Ve
+.RE
+.RS 2
+.RE
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+\&\fBcmap2enc\fR supports the following command-line options:
+.Ip "\fB\-p\fR" 4
+.IX Item "-p"
+Print some info about the font, plus a list of all scripts, languages and
+features contained in this font's \s-1GSUB\s0 table; then exit. (When using
+this option, the \fIencoding\fR need not be specified.)
+.Ip "\fB\-f\fR \fIfeature\fR[,\fIfeature\fR]*" 4
+.IX Item "-f feature[,feature]*"
+Use the specified features when matching glyph indices to glyph names.
+Multiple features can be specified as a comma-separated list,
+\&\fBwithout\fR spaces between the items.
+.Ip "\fB\-x\fR \fIextra\fR" 4
+.IX Item "-x extra"
+Use the user-specified substitutions from \fIextra\fR (see below).
+.Ip "\fB\-l\fR \fIlanguage\fR" 4
+.IX Item "-l language"
+Select the specified language. The default is `\s-1DFLT\s0' (surprise!).
+.Ip "\fB\-s\fR \fIscript\fR" 4
+.IX Item "-s script"
+Select the specified script. The default is `latn'.
+.SH "FILES"
+.IX Header "FILES"
+All input files are searched using \fBkpsewhich\fR or \fBfindtexmf\fR when these
+commands are available; otherwise only the current working directory
+is searched.
+.Ip "\fIfontfile\fR" 4
+.IX Item "fontfile"
+The font file can be any OpenType font, though \fBcmap2enc\fR is probably only
+useful for the TrueType-flavored variant (PostScript-flavored ones always
+contain glyph names in the `\s-1CFF\s0' table).
+.Ip "\fIencoding\fR" 4
+.IX Item "encoding"
+The encoding files read and written by \fBcmap2enc\fR are in standard \fIdvips\fR
+format. The name of the output encoding file is
+\&\f(CW\*(C`<encoding>\-<suffix>\-<font>.enc\*(C'\fR,
+.Sp
+where
+.RS 4
+.Ip "\fBencoding\fR" 10
+.IX Item "encoding"
+is the name of the input encoding file (without the extension `.enc');
+.Ip "\fBsuffix\fR" 10
+.IX Item "suffix"
+names the OpenType features you specified:
+.RS 10
+.Ip "\fItlf\fR" 10
+.IX Item "tlf"
+for tabular lining figures (when neither the `onum' nor the `pnum' features
+have been chosen)
+.Ip "\fIlf\fR" 10
+.IX Item "lf"
+for proportional width lining figures (when you've specified `pnum',
+but not `onum')
+.Ip "\fItosf\fR" 10
+.IX Item "tosf"
+for tabular oldstyle figures (when you've specified `onum', but not `pnum')
+.Ip "\fIosf\fR" 10
+.IX Item "osf"
+for proportional width oldstyle figures (when both `onum' and `pnum' have been
+chosen)
+.Ip "\fIsc\fR" 10
+.IX Item "sc"
+for small caps (`smcp' feature)
+.Ip "\fIswash\fR" 10
+.IX Item "swash"
+for swash (`swsh' feature)
+.Ip "\fItitling\fR" 10
+.IX Item "titling"
+for a titling font (`titl' feature)
+.Ip "\fIsup\fR" 10
+.IX Item "sup"
+for superior figures and (some) letters (`sups' feature)
+.Ip "\fIorn\fR" 10
+.IX Item "orn"
+for ornaments (`ornm' feature)
+.RE
+.RS 10
+.Sp
+When several features have been specified, the \fBsuffix\fR is a combination
+of the appropriate items; e.g., when you specify \-f onum,pnum,swsh (for a
+swash font with proportional oldstyle figures) the \fBsuffix\fR is
+\&\f(CW\*(C`osf\-swash\*(C'\fR.
+.RE
+.Ip "\fBfont\fR" 10
+.IX Item "font"
+is the name of the input font file, without the `.ttf' or `.otf' extension.
+.RE
+.RS 4
+.RE
+.Ip "\fImtx\fR" 4
+.IX Item "mtx"
+The output \fImtx\fR file is in standard \fIfontinst\fR format. The name of this file
+is \f(CW\*(C`reset<font>\-<encoding>\-<suffix>.mtx\*(C'\fR,
+.Sp
+where \fIfont\fR, \fIencoding\fR and \fIsuffix\fR have the same meaning as above.
+.Ip "\fIextra\fR" 4
+.IX Item "extra"
+The option \fB\-x\fR can be used to name a file containing extra substitutions
+that complement or override the ones specified by the selected features.
+It consists of one substitution per line; each is either of the form
+\&\f(CW\*(C`<from>;<to>\*(C'\fR, where \fIfrom\fR and \fIto\fR are both glyph indices
+(specified as four hexadecimal digits), or of the form
+\&\f(CW\*(C`<glyph name>;<glyph index>\*(C'\fR, where \fIglyph name\fR is any glyph name
+and \fIglyph index\fR the glyph index (again, four hex digits) that is to be
+mapped to the specified glyph name. The \fIexamples/\fR subdirectory in the
+\&\fIfontools\fR distribution contains some examples of user-defined
+substitution files.
+.SH "CAVEATS"
+.IX Header "CAVEATS"
+.Ip "\fB-\fR" 2
+.IX Item "-"
+Most OpenType fonts contain several tables in the `cmap' table,
+for different platforms and different encodings.
+\&\fBcmap2enc\fR only reads the first table that implements Unicode, that is,
+the first table with either platformID = 0 and encodingID = 3 or 4
+or platformID = 3 and encodingID = 1 or 10.
+At least one of those will probably always be present, and (afaik) it doesn't
+matter which of these is used.
+.Sp
+The fact that only tableFormat = 4 is supported might be more of a restriction,
+though I haven't yet found any font that used a different tableFormat.
+.Ip "\fB-\fR" 2
+.IX Item "-"
+OpenType fonts implement features using so-called `Lookup Tables'.
+\&\fBcmap2enc\fR supports only features from the `\s-1GSUB\s0' table that have
+LookupType = 1 (single substitution).
+.Sp
+Some features are implemented as a combination of lookups from both
+the `\s-1GSUB\s0' and the `\s-1GPOS\s0' tables; these features are (currently?)
+not supported. An example of this are the `sinf' (Scientific Inferiors) and
+\&'subs' (Subscripts) features of Linotype Palatino; these are implemented
+by first replacing the standard numerals with smaller ones and then
+adjusting their position.
+.Ip "\fB-\fR" 2
+.IX Item "-"
+Some of the font's features may yield surprising results. E.g., Linotype
+Palatino doesn't have small-caps forms of dotlessi, germandbls and the
+standard f-ligatures, so it will give you the lowercase forms of these glyphs
+even when the `smcp' feature is specified.
+(The \fIexamples/palatinox\fR subdirectory contains a file \fIunsetSCaps.mtx\fR
+that deletes these lowercase forms; \fIfontinst\fR's \fInewlatin.mtx\fR file
+will then create fake small-caps forms of these glyphs.)
+.Ip "\fB-\fR" 2
+.IX Item "-"
+If the user-defined substitution file substitutes glyph1 with glyph2,
+\&\fBcmap2enc\fR will also substitute glyph2 with glyph2; this may seem silly,
+but it means that any selected feature that would substitute glyph2 with glyph3
+gets overridden.
+.Ip "\fB-\fR" 2
+.IX Item "-"
+The glyph names are independent of the features selected, e.g., when using
+features like `smcp' or `onum', glyph names still come out as `a' and `zero'
+rather than `Asmall' and `zerooldstyle'. When installing the font with
+\&\fIfontinst\fR, you should therefore always use \fIt1.etx\fR rather than \fIt1c.etx\fR
+or \fIt1j.etx\fR.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+The other programs in the \fIfontools\fR bundle: \fIafm2afm\fR, \fIautoinst\fR,
+\&\fIfont2afm\fR, \fIot2kpx\fR, \fIpfm2kpx\fR, \fIshowglyphs\fR.
+.PP
+A good free (as in beer) Perl-implementation for Windows (and Linux)
+is ActivePerl, available from \fIhttp://www.activestate.com\fR.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Marc Penninga <marc@penninga.info>
+.PP
+If you're sending a bug report, please give as much information as possible.
+Also be sure to mention the name \fIfontools\fR somewhere in the subject line,
+or risk being caught by my spam filter.
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright (c) 2005, 2006 Marc Penninga.
+.SH "LICENSE"
+.IX Header "LICENSE"
+This program is free software; you can redistribute it and/or modify
+it under the terms of version 2 of the \s-1GNU\s0 General Public License
+as published by the Free Software Foundation.
+.PP
+A copy of the \s-1GNU\s0 General Public License is included with the \fIfontools\fR
+collection; see the file \fIGPLv2.txt\fR.
+.SH "DISCLAIMER"
+.IX Header "DISCLAIMER"
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the
+\&\s-1GNU\s0 General Public License for more details.
+.SH "HISTORY"
+.IX Header "HISTORY"
+.Ip "\fI2006\-01\-17\fR" 12
+.IX Item "2006-01-17"
+Changed the names of the generated output files; extended the documentation.
+.Ip "\fI2005\-08\-01\fR" 12
+.IX Item "2005-08-01"
+Removed some warning messages that didn't convey any useful information;
+added contents of \fIglyphlist.txt\fR to the program itself and removed
+the file from the \fIfontools\fR collection;
+expanded the example in the documentation
+.Ip "\fI2005\-04\-29\fR" 12
+.IX Item "2005-04-29"
+Improved the documentation
+.Ip "\fI2005\-03\-21\fR" 12
+.IX Item "2005-03-21"
+Fixed somed bugs; added `titl' feature
+.Ip "\fI2005\-03\-15\fR" 12
+.IX Item "2005-03-15"
+Input files searched using \fBkpsewhich\fR or \fBfindtexmf\fR
+.Ip "\fI2005\-03\-08\fR" 12
+.IX Item "2005-03-08"
+Input files searched via \fBkpsewhich\fR (where available)
+.Ip "\fI2005\-02\-18\fR" 12
+.IX Item "2005-02-18"
+Rewrote some of the code, fixed a few bugs
+.Ip "\fI2005\-01\-10\fR" 12
+.IX Item "2005-01-10"
+First version