123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991 |
- %
- % Intro
- % =====
- %
- % A glyph can be accessed with one of the three different kinds of
- % macros:
- %
- % command a macro without arguments, e.g., |\textdegree|;
- %
- % composite a macro taking one argument, producing a single glyph
- % from a font;
- %
- % accent a macro taking one argument, producing a glyph (the
- % argument) with another glyph (accent) superimposed.
- %
- % Accents can place an accent mark on any glyph, but typographically
- % this often doesn't look good. Therefore some fonts provide some
- % accented glyphs designed by a designer ("composites"). For example,
- % typing |\'a| will result in the acute accent (|\'|) being placed
- % over the glyph |a| in some encodings (e.g., in OT1), but will
- % produce a single glyph (|a| with acute) in others (e.g., T1).
- %
- % Note that a font may contain both composites (for some letters) and
- % accent marks. When a composite is not available in the font, the
- % accent can be used to typeset the desired glyph.
- %
- % Besides the visual advantages, composites are preferable for a
- % technical reason -- TeX does not hyphenate words which contain
- % accents.
- %
- % Glyph searching
- % ===============
- %
- % Glyph searching means identifying a font encoding which both
- % contains the glyph and is supported by the current font family.
- %
- % The simplest approach at glyph searching is to search through the
- % list of encodings in which the glyph exists to find the first one
- % supported by the current font family.
- %
- % This however can result in using unnecessarily large number of
- % fonts. In order to decrease the font usage we can provide hints to
- % the glyph searching mechanism as to which font encodings are the
- % most likely to contain glyphs under different circumstances.
- %
- % There is some relation between input encodings and font encodings,
- % although it is not necessarily a one-to-one (or a many-to-one)
- % mapping. Each input encoding defines a list of font encodings which
- % should be tried first (we call it "the current font encoding list",
- % |\cur@fenc@list|). These are encodings which cover the input
- % encoding completely. Only if we don't find an encoding in this list
- % which is both supported by the current font family and contains the
- % glyph, we start searching the glyph's encoding list.
- %
- % Searching for a glyph involves an ambiguity -- the same glyph be
- % typeset as either an accent over a letter, or as a single composite
- % glyph. Ideally a composite is preferable, but if an accent is
- % available without changing the current font, we might prefer the
- % accent.
- %
- % This is how we do the searching:
- %
- % 1) Check the current encoding + current font encoding list (set up
- % by |@documentencoding|) "breadth-first", i.e., preferring accents
- % in an earlier encoding over composites in later encodings. This
- % is to hopefully minimize the font usage, as we would find "the
- % earliest" usable font.
- %
- % 2) If the glyph was not found in step 1, search the glyph's encoding
- % list. We now prefer composites -- we'll consider an accent only
- % when none of the composite's encodings is supported by the
- % current font family. We now don't care about font usage and
- % search "the best" glyph, as this is a (supposedly rare) situation
- % when a "non-standard" font will get used anyway, e.g., when a
- % user requests a Cyrillic glyph while inside a Latin environment.
- %
- % Cache
- % =====
- %
- % After we've found the glyph we can cache it, i.e., arrange for the
- % the glyph's macro the next time to typeset the glyph without doing
- % the searching again.
- %
- % Such cache however must be aware of changes in settings which affect
- % glyph searching, which are:
- %
- % 1) the current font encoding (E);
- % 2) the current font encoding list, set up by |@documentencoding| (EL);
- % 3) font encoding list of the current font family (FEL).
- %
- % Therefore, the first thing we do is assign a unique index to every
- % combination of E+EL+FEL we encounter in the document. Whenever we
- % change E, EL or FEL we check if the new combination have already
- % been assigned an index; if not, we allocate next index for the new
- % combination (see |\update@enclist@index|). When we cache a glyph we
- % use this index to remember for which combination of E+EL+FEL this
- % cache entry is for.
- %
- % This is how glyph caching works. Let's say we have to typeset
- % |\'a|. |\'| (being a composite or an accent) calls a macro named
- % |\N\'-a| (single command sequence, N is the index of the current
- % E+EL+FEL combination) if it's defined; if it's not defined, |\'|
- % calls glyph searching macro. After the glyph searching macro finds
- % the glyph corresponding to |\'a|, it defines the macro named
- % |\N\'-a| to typeset that glyph (using either accent or composite,
- % whatever was found), so the next time we encounter |\'a| we won't
- % search for the glyph (unless the E+EL+FEL combination has changed
- % and |\'a| had not yet been cached for that combo).
- %
- % The drawback of this method is that TeX's memory gets filled with
- % many cache entries for every E+EL+FEL combo ever used in the
- % document. It's possible to construct the glyph cache in a way to
- % avoid this -- for example, to define only one cache macro for |\'a|,
- % and add to it a new branch for each new E+EL+FEL combination, but
- % naturally this will be slower.
- %
- % Internal macros ("variables")
- % =============================
- %
- % fenc@enc font encoding currently being defined.
- %
- % fenc@list/NAME list of encodings for the glyph NAME.
- %
- % cur@fenc@list "the current font encoding list" (see "Glyph
- % searching" above).
- %
- % ENC/NAME definition of glyph NAME in encoding ENC.
- %
- % @enc encoding of the glyph (set after finding the
- % glyph / retrieving the glyph from the cache).
- %
- % cache@enc@ENC macro that defines \@enc to be ENC.
- %
- % N\NAME cache entry for glyph \NAME under a combination of
- % E+EL+FEL number N.
- %
- %
- %
- % \fCmd{COMMAND}{TEXT}
- %
- % Define a command that does not take arguments. Call \f@restore@enc
- % inside TEXT if you need to restore the original encoding (remember,
- % before the command is called, the encoding is changed to the one for
- % which the command was defined, which can be different from the
- % current user's encoding).
- \def\fCmd#1#2{%
- \def#1{\f@search@command #1}%
- \f@def@enc@glyph#1%
- {\f@change@enc #2\f@enc@egroup}%
- }%
- %
- % \fSym{COMMAND}{SLOT}
- %
- % Define a font glyph in SLOT.
- \def\fSym#1#2{\fCmd{#1}{\char#2 }}%
- %
- % \fCmdd{COMMAND}{TEXT}
- %
- % Define a command that takes one argument. Call \f@restore@enc
- % inside TEXT before typesetting the argument, to restore the original
- % encoding (remember, before the command is called, the encoding is
- % changed to the one for which the command was defined, which can be
- % different from the current user's encoding).
- \def\fCmdd#1#2{%
- \def#1{\f@search@accent #1}% When searching, treat it as an accent.
- \f@def@enc@glyph#1%
- ##1{\f@change@enc #2\f@enc@egroup}%
- }%
- %
- % \fCmp{COMMAND}{ARG}{TEXT}
- %
- % Define a composite command. If there's a corresponding accent,
- % composite will override the accent when the argument is ARG.
- \def\fCmp#1#2#3{%
- \def#1{\f@search@composite #1}%
- \f@def@enc@glyph{#1-\string#2}%
- {\f@change@enc #3\f@enc@egroup}%
- }%
- %
- % \fCmpSym{COMMAND}{ARG}{SLOT}
- %
- % Same as \fCmp, but define a composite glyph in SLOT.
- \def\fCmpSym#1#2#3{\fCmp#1#2{\char#3}}%
- %
- % \fAcc{COMMAND}{SLOT}
- %
- % Define an accent in SLOT. If there are corresponding composite
- % commands for some arguments, they will override the accent for those
- % arguments.
- \def\fAcc#1#2{%
- \def#1{\f@search@accent #1}%
- \f@def@enc@glyph#1%
- {\f@do@accent{#2}}%
- }%
- %
- %
- %
- % \f@def@enc@glyph{NAME}{DEF}
- %
- % Define a glyph in the current encoding.
- \def\f@def@enc@glyph#1{%
- % Add the font encoding to the encoding list for the command.
- \expandafter\def\expandafter\temp\expandafter{%
- \csname fenc@list/\string#1\endcsname
- }%
- \expandafter\ifx\temp\relax
- \let\tempa\empty
- \else
- \edef\tempa{\temp}%
- \fi
- \expandafter\edef\temp{\fenc@enc\space\tempa}%
- % Start definition of the glyph command for the current encoding.
- \expandafter\def \csname\fenc@enc/\string#1\endcsname
- }%
- %
- % \f@change@enc
- %
- % Start a group with \f@enc@bgroup and change font encoding to \@enc,
- % if the current encoding is different. The original encoding is
- % saved, call \f@restore@enc inside the command's def to restore it.
- \def\f@change@enc{%
- \f@enc@bgroup
- % Save original encoding -- the glyph macro might need to restore
- % it, e.g., to typeset its argument.
- \let\f@orig@enc\f@encoding
- % Switch encoding, if needed. \@enc is set when the glyph is
- % found or retrieved from the cache.
- \ifx\f@encoding\@enc \else
- \setfontencoding{\@enc}\selectfont
- \fi
- }%
- %
- % \f@restore@enc
- %
- % Restore encoding saved by \f@change@enc.
- \def\f@restore@enc{%
- \ifx\f@orig@enc\f@encoding \else
- \setfontencoding{\f@orig@enc}\selectfont
- \fi
- }%
- %
- % These are used by glyphs to start and end a group isolating a font
- % encoding change. Accents turn these off to avoid any grouping
- % inside their argument, because grouping breaks accents.
- \let\f@enc@bgroup\bgroup
- \let\f@enc@egroup\egroup
- %
- % \f@do@accent{SLOT}{ARG}
- %
- % Typeset an accent in SLOT over the ARG.
- \def\f@do@accent#1#2{%
- \bgroup
- % Avoid starting any more groups -- they're not needed because we
- % already have one, and a group between the accent and the
- % accented letter will break the accent.
- \let\f@enc@bgroup\empty
- \let\f@enc@egroup\empty
- % Preload any fonts in advance, to prevent grouping (possible when
- % loading fonts) from messing with the accent. Also save the
- % space factor of the argument -- we'll need to restore it,
- % otherwise, e.g., \'A will have the factor of 1000 instead of 999.
- \setbox\z@\hbox{#2%
- \xdef\f@do@accent@spacefactor{\spacefactor\the\spacefactor}}%
- % Save the current font encoding and switch it.
- \f@change@enc
- % Start the accent.
- \accent#1
- % Turn off \fontnotify and \setleading, because their \message and
- % \setbox will break the accent. We don't turn off \fontwarn
- % because a warning would mean that the fonts are broken anyway,
- % and a warning might help diagnosing.
- \let\@fontnotify\gobble
- \let\@setleading\gobble
- % Restore the original encoding.
- \f@restore@enc
- % Typeset the argument.
- #2\f@do@accent@spacefactor % Restore the space factor.
- \egroup
- }%
- %
- %
- %
- % \f@search@command{COMMAND}
- %
- % Search for the glyph COMMAND and typeset it.
- \def\f@search@command#1{%
- % Check the cache of the current font encoding list.
- \expandafter\let \expandafter\temp
- \csname \the\enclist@curr\string#1\endcsname
- %
- \ifx\temp\relax
- % The glyph is not in the cache, search.
- %\message{^^J Glyph command `\string#1' is not
- % in the cache (idx \the\enclist@curr).}%
- \def\f@search@cmd{\string#1}%
- \let\f@search@arg\empty
- \let\f@accent@arg\empty
- \f@search@encodings
- \else
- % The glyph is in the cache.
- %\message{^^J Glyph command `\string#1' is
- % in the cache (idx \the\enclist@curr).}%
- \temp
- \fi
- }%
- %
- % \f@search@composite{COMMAND}{ARGUMENT}
- %
- % Search for the composite COMMAND + ARGUMENT and typeset it. If such
- % composite is not defined but an accent named COMMAND is, the accent
- % will be substituted.
- \def\f@search@composite#1#2{%
- % Check the cache with the current font encoding list. \empty after
- % #2 is for a situation like \'{} (empty ARGUMENT).
- \expandafter\let \expandafter\temp
- \csname \the\enclist@curr\string#1-\string#2\empty\endcsname
- %
- \ifx\temp\relax
- % The glyph is not in the cache, search.
- %\message{^^J Glyph composite `\string#1{\string#2\empty}' is not
- % in the cache (idx \the\enclist@curr).}%
- \def\f@search@arg{-\string#2\empty}%
- \def\f@search@cmd{\string#1}%
- \def\f@accent@arg{{#2}}%
- \f@search@encodings
- \else
- % The glyph is in the cache.
- %\message{^^J Glyph composite `\string#1{\string#2\empty}' is
- % in the cache (idx \the\enclist@curr).}%
- \temp
- \fi
- }%
- %
- % \f@search@accent{COMMAND}{ARGUMENT}
- %
- % Search for the accent COMMAND and typeset it over the ARGUMENT. If a
- % composite with the name COMMAND is defined with the ARGUMENT, it
- % might be used in preference to the accent.
- \let\f@search@accent\f@search@composite
- %
- %
- %
- % \f@search@encodings
- %
- % Search for a glyph (accent/composite/command), first in the current
- % encoding, then in the current font encoding list (set up by
- % @documentencoding), then in all encodings in which the glyph
- % appears. After the glyph is found, define the cache entry for the
- % glyph and typeset the glyph.
- \def\f@search@encodings{%
- \let\@enc\relax
- \let\f@cache@arg\f@search@arg
- % Check the current font encoding + the current font encoding list
- % breadth-first. We want to find a glyph as early in the list as
- % possible (to hopefully minimize number of fonts that get loaded),
- % therefore we prefer an accent in an earlier encoding over a
- % composite in a later encoding, hence the "breadth first" search.
- \edef\temp{\f@encoding\space\cur@fenc@list}%
- \f@search@breadthfirst \temp
- %
- \ifx\@enc\relax
- % Nothing found, so we try a different tactic. We check encoding
- % list of the glyph to find the first encoding which is supported
- % by the current font family. One complication is that a glyph
- % can appear as a command, a composite or an accent, so we need to
- % check all possibilities (but preferring composites over
- % accents).
- %
- % Check the composite. If \f@search@arg is \empty, this will check
- % encoding list of the command, which is exactly what we need.
- \expandafter\f@search@glyph
- \csname fenc@list/\f@search@cmd\f@search@arg\endcsname
- %
- \ifx\@enc\relax
- % Nothing found, check the font encoding list of the command / accent.
- \let\f@search@arg\empty % It's not a composite, so we don't need arg part.
- \expandafter\f@search@glyph
- \csname fenc@list/\f@search@cmd\endcsname
- %
- \ifx\@enc\relax
- % Still nothing found, which means the current family does not
- % support any of the composite's / command's / accent's encodings.
- \errmessage{^^JThe font family \f@family\space does not support
- the command `\f@search@cmd\f@cache@arg'}%
- \fi
- \else
- % We've found a composite (or a command), so we don't need the arg below.
- \let\f@accent@arg\empty
- \fi
- \fi
- % Make the cache entry.
- \edef\temp##1{%
- \expandafter\gdef\expandafter\noexpand
- \csname \the\enclist@curr\f@search@cmd\f@cache@arg\endcsname{%
- % Set \@enc to the encoding of the glyph.
- \expandafter\noexpand
- \csname cache@enc@\@enc\endcsname
- % Call the glyph's definition for the encoding we've found.
- \expandafter\noexpand
- \csname\@enc/\f@search@cmd\f@search@arg\endcsname ##1%
- }%
- }%
- \expandafter\temp\expandafter{\f@accent@arg}%
- % Typeset the glyph.
- \csname \the\enclist@curr\f@search@cmd\f@cache@arg\endcsname
- }%
- %
- % \f@search@breadthfirst \ENC-LIST
- %
- % Search (recursively) for a glyph in encodings from \ENC-LIST,
- % preferring an accent in an earlier encoding over a composite in a
- % later encoding. When the glyph is found, \@enc, \f@search@arg and
- % \f@accent@arg are set accordingly (see \f@search@encodings).
- \def\f@search@breadthfirst#1{%
- \let\next\@f@search@breadthfirst % \@f@search@breadthfirst needs this.
- \expandafter\@f@search@breadthfirst #1\finish
- }%
- %
- \def\@f@search@breadthfirst#1 #2\finish{%
- % See if this is the last encoding in the list.
- \def\temp{#2}%
- \ifx\temp\empty % Yes, gobble the list's sentinel.
- \let\next\gobble@to@finish
- \fi
- % See if this encoding is supported by the current family.
- \expandafter\ifx \csname fam@enc/\f@family/#1\endcsname \relax
- \else
- % See if the encoding contains the composite (or the command, when
- % \f@search@arg is \empty).
- \expandafter\ifx \csname #1/\f@search@cmd\f@search@arg\endcsname \relax
- % No, but maybe the encoding contains the accent. (This might
- % also check the second time for the command if it was not found
- % above.)
- \expandafter\ifx \csname #1/\f@search@cmd\endcsname \relax \else
- \let\f@search@arg\empty % \f@search@encodings needs this.
- \def\@enc{#1}%
- \let\next\gobble@to@finish % Gobble the rest of the list.
- \fi
- \else % Yes, this encoding contains the composite (or a command).
- \let\f@accent@arg\empty % \f@search@encodings needs this.
- \def\@enc{#1}%
- \let\next\gobble@to@finish % Gobble the rest of the list.
- \fi
- \fi
- %
- \next#2\finish
- }%
- %
- % \f@search@glyph \ENC-LIST
- %
- % Search (recursively) for a particular type of glyph
- % (command/composite/accent, determined by the combination of
- % \f@search@cmd and \f@search@arg) in encodings from \ENC-LIST.
- \def\f@search@glyph#1{%
- \ifx#1\relax \else
- \let\next\@f@search@glyph % \@f@search@glyph needs this.
- \expandafter\@f@search@glyph#1\finish
- \fi
- }%
- %
- \def\@f@search@glyph#1 #2\finish{%
- % See if this is the last encoding in the list.
- \def\temp{#2}%
- \ifx\temp\empty % Yes, gobble the list's sentinel.
- \let\next\gobble@to@finish
- \fi
- % See if this encoding is supported by the current family.
- \expandafter\ifx \csname fam@enc/\f@family/#1\endcsname \relax
- \else % Yes, see if the encoding contains the glyph.
- \expandafter\ifx \csname #1/\f@search@cmd\f@search@arg\endcsname \relax
- \else
- \def\@enc{#1}%
- \let\next\gobble@to@finish % Gobble the rest of the list.
- \fi
- \fi
- %
- \next#2\finish
- }%
- %
- %
- %
- % Font ("output") encodings. LaTeX's ltoutenc.dtx v1.99h has been
- % used as reference.
- %
- % Some commands common to several encodings.
- %
- \def\registeredsymbol{\leavevmode\raise.7ex\hbox{\textregistered}}
- \def\@euro{{\setfontfamily{Eurosym}\setfontencoding{T1}\selectfont\char101}}%
- \def\aa{\ringaccent a}%
- \def\AA{\ringaccent A}%
- \def\@cedilla#1#2{{\setbox\z@\hbox{\f@restore@enc #2}%
- \ifdim\ht\z@=1ex\accent#1 \f@restore@enc #2%
- \else\ooalign{\unhbox\z@\crcr\hidewidth\char#1\hidewidth}\fi}}%
- \def\@udotaccent#1{{\o@lign{\relax\f@restore@enc#1\crcr
- \hidewidth\sh@ft{-1ex}.\hidewidth}}}%
- \def\@ubaraccent#1#2{{\o@lign{\relax\f@restore@enc#2\crcr
- \hidewidth\sh@ft{-3ex}\vbox to.2ex{\hbox{\char#1}\vss}\hidewidth}}}%
- %
- % This defines encoding used when defining font glyph and commands.
- \def\fenc@begin#1{%
- \def\fenc@enc{#1}%
- \expandafter\def\csname cache@enc@#1\endcsname{\def\@enc{#1}}%
- }%
- %
- % OT1.
- \fenc@begin{OT1}
- \fSym\ptexi{16}
- \fSym\j{17}
- \fAcc\`{18}
- \fCmp\`i{\f@restore@enc\`\ptexi}
- \fAcc\'{19}
- \fCmp\'i{\f@restore@enc\'\ptexi}
- \fAcc\v{20}
- \fAcc\u{21}
- \fAcc\={22}
- \fAcc\ringaccent{23}
- \fCmp\ringaccent A{\leavevmode\setbox0\hbox{!}\dimen@\ht0\advance\dimen@-1ex%
- \rlap{\raise.67\dimen@\hbox{\char'27}}A}
- \fSym\ss{25}
- \fSym\ae{26}
- \fSym\oe{27}
- \fSym\o{28}
- \fSym\AE{29}
- \fSym\OE{30}
- \fSym\O{31}
- \fCmd\l{\char32l}
- \fCmd\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
- \fCmd\textquotedblright{`\"}
- \fCmd\textdollar{{\ifdim\fontdimen\@ne\font>\z@\slshape\else\upshape\fi\$}}
- \fCmd\textquoteright{`\'}
- \fCmd\exclamdown{!`}
- \fCmd\questiondown{?`}
- \fSym\textquotedblleft{92}
- \fAcc\^{94}
- \fCmp\^i{\f@restore@enc\^\ptexi}
- \fAcc\dotaccent{95}
- \fCmpSym\dotaccent i{`\i}
- \fCmpSym\dotaccent\i{`\i}
- \fCmd\textquoteleft{`\`}
- \fSym\textendash{123}
- \fSym\textemdash{124}
- \fAcc\H{125}
- \fAcc\~{126}
- \fAcc\"{127}
- \fCmp\"i{\f@restore@enc\"\ptexi}
- \fCmd\pounds{{\ifdim\fontdimen\@ne\font>\z@\itshape\else
- \setfontshape{ui}\selectfont\fi\$}}
- \fCmd\euro\@euro
- \fCmdd\,{\@cedilla{24}{#1}}
- \fCmdd\udotaccent{\@udotaccent{#1}}
- \fCmdd\ubaraccent{\@ubaraccent{22}{#1}}
- \fCmd\ordf{\leavevmode\raise1ex\hbox{\scalefont{727}\underbar{a}}}
- \fCmd\ordm{\leavevmode\raise1ex\hbox{\scalefont{727}\underbar{o}}}
- \fCmd\ij{\nobreak\hskip\z@skip i\kern-0.02em j\nobreak\hskip\z@skip}
- \fCmd\IJ{\nobreak\hskip\z@skip I\kern-0.02em J\nobreak\hskip\z@skip}
- \fCmd\textonesuperior{$^{\hbox{\scalefont{727}1}}$}
- \fCmd\texttwosuperior{$^{\hbox{\scalefont{727}2}}$}
- \fCmd\textthreesuperior{$^{\hbox{\scalefont{727}3}}$}
- \fCmd\textonequarter{$\hbox{\scalefont{727}1}\over\hbox{\scalefont{727}4}$}
- \fCmd\textonehalf{$\hbox{\scalefont{727}1}\over\hbox{\scalefont{727}2}$}
- \fCmd\textthreequarters{$\hbox{\scalefont{727}3}\over\hbox{\scalefont{727}4}$}
- % End of OT1.
- %
- % OML.
- \fenc@begin{OML}
- \fSym\textless{`\<}
- \fSym\textgreater{`\>}
- %\fSym\star{63}% FIXME this requires redefining \point.
- \fAcc\tieaccent{127}
- % End of OML.
- %
- % OMS.
- \fenc@begin{OMS}
- \fSym\minus0
- \fSym\textperiodcentered1
- \fSym\textmultiply2
- \fSym\texttimes2
- \fSym\textdivide4
- \fSym\textdiv4
- \fSym\textplusminus6
- \fSym\textpm6
- \fSym\bullet{15}
- \fCmd\textdegree{$^{\hbox{\char14}}$}%
- % FIXME @result, @expansion, @print, @equiv?
- \fSym\{{102}
- \fSym\}{103}
- \fSym\textbackslash{110}% FIXME name.
- \fSym\textsection{120}
- \fSym\textdagger{121}
- \fSym\textdaggerdbl{122}
- \fSym\textparagraph{123}
- \fSym\textbigcircle{13}
- \def\oms@textcircled#1{{\ooalign{%
- \hfil\raise.32ex\hbox{\f@restore@enc\scalefont{600}#1}\hfil\crcr
- \raise.35ex\hbox{\scalefont{780}\textbigcircle}}}}%
- \fCmdd\textcircled{\oms@textcircled{#1}}
- \fCmd\textregistered{\oms@textcircled{R}}
- \fCmd\copyright{\oms@textcircled{\kern-.05em C}}
- % End of OMS.
- %
- % Common glyphs of the T* encodings.
- \def\t@oenc@common{%
- \fAcc\`0
- \fAcc\'1
- \fAcc\^2
- \fAcc\~3
- \fAcc\"4
- \fAcc\H5
- \fAcc\ringaccent6
- \fAcc\v7
- \fAcc\u8
- \fAcc\=9
- \fAcc\dotaccent{10}
- \fCmpSym\dotaccent i{`\i}
- \fCmpSym\dotaccent\i{`\i}
- \fCmdd\,{\@cedilla{11}{##1}}
- \fCmdd\k{{\ooalign{\relax\f@restore@enc ##1\crcr\hidewidth\char12}}}
- \fCmdd\ogonekcentered{{\ooalign{\relax\f@restore@enc ##1\crcr\hidewidth\char12\hidewidth}}}
- \fCmp\k o{\f@restore@enc\ogonekcentered o}
- \fCmp\k O{\f@restore@enc\ogonekcentered O}
- \fSym\textquotedblleft{16}
- \fSym\textquotedblright{17}
- \fSym\textendash{21}
- \fSym\textemdash{22}
- \fCmd\textperthousand{\%\char 24 }
- \fCmd\textpertenthousand{\%\char 24\char 24 }
- \fSym\ptexi{25}
- \fSym\j{26}
- \fSym\textvisiblespace{32}
- \fCmd\textquotedbl{`\"}
- \fCmd\textdollar{`\$}
- \fSym\textquoteright{`\'}
- \fSym\textless{`\<}
- \fSym\textgreater{`\>}
- \fSym\textbackslash{92}% FIXME name.
- \fSym\textquoteleft{`\`}
- \fSym\{{123}
- \fSym\}{125}
- \fCmdd\udotaccent{\@udotaccent{##1}}
- \fCmdd\ubaraccent{\@ubaraccent{9}{##1}}
- }%
- % End of common glyphs of the T* encodings.
- %
- % T1.
- \fenc@begin{T1}
- \t@oenc@common % The common glyphs.
- \fSym\textquotesinglbase{13}% FIXME LaTeX calls it `\quotesinglbase'.
- \fSym\textguilsinglleft{14}% FIXME LaTeX calls it `\guilsinglleft'.
- \fSym\textguilsinglright{15}% FIXME LaTeX calls it `\guilsinglright'.
- \fSym\textquotedblbase{18}% FIXME LaTeX calls it `\quotedblbase'.
- \fSym\textguillemotleft{19}% FIXME LaTeX calls it `\guillemotleft'.
- \fSym\textguillemotright{20}% FIXME LaTeX calls it `\guillemotright'.
- \fCmpSym\u A{128}
- \fCmpSym\k A{129}
- \fCmpSym\'C{130}
- \fCmpSym\v C{131}
- \fCmpSym\v D{132}
- \fCmpSym\v E{133}
- \fCmpSym\k E{134}
- \fCmpSym\u G{135}
- \fCmpSym\'L{136}
- \fCmpSym\v L{137}
- \fSym\L{138}
- \fCmpSym\'N{139}
- \fCmpSym\v N{140}
- \fSym\NG{141}
- \fCmpSym\H O{142}
- \fCmpSym\'R{143}
- \fCmpSym\v R{144}
- \fCmpSym\'S{145}
- \fCmpSym\v S{146}
- \fCmpSym\,S{147}
- \fCmpSym\v T{148}
- \fCmpSym\,T{149}
- \fCmpSym\H U{150}
- \fCmpSym\ringaccent U{151}
- \fCmpSym\"Y{152}
- \fCmpSym\'Z{153}
- \fCmpSym\v Z{154}
- \fCmpSym\dotaccent Z{155}
- \fSym\IJ{156}
- \fCmpSym\dotaccent I{157}
- \fSym\dj{158}% FIXME AGL calls it dcroat.
- \fSym\textsection{159}
- \fCmpSym\u a{160}
- \fCmpSym\k a{161}
- \fCmpSym\'c{162}
- \fCmpSym\v c{163}
- \fCmpSym\v d{164}
- \fCmpSym\v e{165}
- \fCmpSym\k e{166}
- \fCmpSym\u g{167}
- \fCmpSym\'l{168}
- \fCmpSym\v l{169}
- \fSym\l{170}
- \fCmpSym\'n{171}
- \fCmpSym\v n{172}
- \fSym\ng{173}
- \fCmpSym\H o{174}
- \fCmpSym\'r{175}
- \fCmpSym\v r{176}
- \fCmpSym\'s{177}
- \fCmpSym\v s{178}
- \fCmpSym\,s{179}
- \fCmpSym\v t{180}
- \fCmpSym\,t{181}
- \fCmpSym\H u{182}
- \fCmpSym\ringaccent u{183}
- \fCmpSym\"y{184}
- \fCmpSym\'z{185}
- \fCmpSym\v z{186}
- \fCmpSym\dotaccent z{187}
- \fSym\ij{188}
- \fSym\exclamdown{189}
- \fSym\questiondown{190}
- \fSym\pounds{191}
- \fCmpSym\`A{192}
- \fCmpSym\'A{193}
- \fCmpSym\^A{194}
- \fCmpSym\~A{195}
- \fCmpSym\"A{196}
- \fCmpSym\ringaccent A{197}
- \fSym\AE{198}
- \fCmpSym\,C{199}
- \fCmpSym\`E{200}
- \fCmpSym\'E{201}
- \fCmpSym\^E{202}
- \fCmpSym\"E{203}
- \fCmpSym\`I{204}
- \fCmpSym\'I{205}
- \fCmpSym\^I{206}
- \fCmpSym\"I{207}
- \fSym\DH{208}% FIXME AGL calls it eth.
- \fSym\DJ{208}% FIXME AGL calls it dcroat.
- \fCmpSym\~N{209}
- \fCmpSym\`O{210}
- \fCmpSym\'O{211}
- \fCmpSym\^O{212}
- \fCmpSym\~O{213}
- \fCmpSym\"O{214}
- \fSym\OE{215}
- \fSym\O{216}
- \fCmpSym\`U{217}
- \fCmpSym\'U{218}
- \fCmpSym\^U{219}
- \fCmpSym\"U{220}
- \fCmpSym\'Y{221}
- \fSym\TH{222}% FIXME AGL calls it thorn.
- \fSym\SS{223}
- \fCmpSym\`a{224}
- \fCmpSym\'a{225}
- \fCmpSym\^a{226}
- \fCmpSym\~a{227}
- \fCmpSym\"a{228}
- \fCmpSym\ringaccent a{229}
- \fSym\ae{230}
- \fCmpSym\,c{231}
- \fCmpSym\`e{232}
- \fCmpSym\'e{233}
- \fCmpSym\^e{234}
- \fCmpSym\"e{235}
- \fCmpSym\`i{236}
- \fCmpSym\'i{237}
- \fCmpSym\^i{238}
- \fCmpSym\"i{239}
- \fSym\dh{240}% FIXME AGL calls it eth.
- \fCmpSym\~n{241}
- \fCmpSym\`o{242}
- \fCmpSym\'o{243}
- \fCmpSym\^o{244}
- \fCmpSym\~o{245}
- \fCmpSym\"o{246}
- \fSym\oe{247}
- \fSym\o{248}
- \fCmpSym\`u{249}
- \fCmpSym\'u{250}
- \fCmpSym\^u{251}
- \fCmpSym\"u{252}
- \fCmpSym\'y{253}
- \fSym\th{254}% FIXME AGL calls it thorn.
- \fSym\ss{255}
- % End of T1.
- %
- % T2A.
- \fenc@begin{T2A}
- \t@oenc@common % The common glyphs.
- \fSym\CYRpalochka{13}
- \fAcc\f{18}
- \fAcc\C{19}
- \fAcc\U{20}
- \fSym\textnumero{157}
- \fSym\textsection{158}
- \fSym\textquotedblbase{189}% FIXME LaTeX calls this \quotedblbase.
- \fSym\textguillemotleft{190}% FIXME LaTeX calls it `\guillemotleft'.
- \fSym\textguillemotright{191}% FIXME LaTeX calls it `\guillemotright'.
- \fSym\CYRA{192}
- \fSym\cyra{224}
- \fSym\CYRB{193}
- \fSym\cyrb{225}
- \fSym\CYRV{194}
- \fSym\cyrv{226}
- \fSym\CYRG{195}
- \fSym\cyrg{227}
- \fSym\CYRD{196}
- \fSym\cyrd{228}
- \fSym\CYRE{197}
- \fSym\cyre{229}
- \fSym\CYRZH{198}
- \fSym\cyrzh{230}
- \fSym\CYRZ{199}
- \fSym\cyrz{231}
- \fSym\CYRI{200}
- \fSym\cyri{232}
- \fSym\CYRISHRT{201}
- \fSym\cyrishrt{233}
- \fSym\CYRK{202}
- \fSym\cyrk{234}
- \fSym\CYRL{203}
- \fSym\cyrl{235}
- \fSym\CYRM{204}
- \fSym\cyrm{236}
- \fSym\CYRN{205}
- \fSym\cyrn{237}
- \fSym\CYRO{206}
- \fSym\cyro{238}
- \fSym\CYRP{207}
- \fSym\cyrp{239}
- \fSym\CYRR{208}
- \fSym\cyrr{240}
- \fSym\CYRS{209}
- \fSym\cyrs{241}
- \fSym\CYRT{210}
- \fSym\cyrt{242}
- \fSym\CYRU{211}
- \fSym\cyru{243}
- \fSym\CYRF{212}
- \fSym\cyrf{244}
- \fSym\CYRH{213}
- \fSym\cyrh{245}
- \fSym\CYRC{214}
- \fSym\cyrc{246}
- \fSym\CYRCH{215}
- \fSym\cyrch{247}
- \fSym\CYRSH{216}
- \fSym\cyrsh{248}
- \fSym\CYRSHCH{217}
- \fSym\cyrshch{249}
- \fSym\CYRHRDSN{218}
- \fSym\cyrhrdsn{250}
- \fSym\CYRERY{219}
- \fSym\cyrery{251}
- \fSym\CYRSFTSN{220}
- \fSym\cyrsftsn{252}
- \fSym\CYREREV{221}
- \fSym\cyrerev{253}
- \fSym\CYRYU{222}
- \fSym\cyryu{254}
- \fSym\CYRYA{223}
- \fSym\cyrya{255}
- \fSym\CYRGUP{128}
- \fSym\cyrgup{160}
- \fSym\CYRGHCRS{129}
- \fSym\cyrghcrs{161}
- \fSym\CYRDJE{130}
- \fSym\cyrdje{162}
- \fSym\CYRTSHE{131}
- \fSym\cyrtshe{163}
- \fSym\CYRSHHA{132}
- \fSym\cyrshha{164}
- \fSym\CYRZHDSC{133}
- \fSym\cyrzhdsc{165}
- \fSym\CYRZDSC{134}
- \fSym\cyrzdsc{166}
- \fSym\CYRLJE{135}
- \fSym\cyrlje{167}
- \fSym\CYRYI{136}
- \fSym\cyryi{168}
- \fSym\CYRKDSC{137}
- \fSym\cyrkdsc{169}
- \fSym\CYRKBEAK{138}
- \fSym\cyrkbeak{170}
- \fSym\CYRKVCRS{139}
- \fSym\cyrkvcrs{171}
- \fSym\CYRAE{140}
- \fSym\cyrae{172}
- \fSym\CYRNDSC{141}
- \fSym\cyrndsc{173}
- \fSym\CYRNG{142}
- \fSym\cyrng{174}
- \fSym\CYRDZE{143}
- \fSym\cyrdze{175}
- \fSym\CYROTLD{144}
- \fSym\cyrotld{176}
- \fSym\CYRSDSC{145}
- \fSym\cyrsdsc{177}
- \fSym\CYRUSHRT{146}
- \fSym\cyrushrt{178}
- \fSym\CYRY{147}
- \fSym\cyry{179}
- \fSym\CYRYHCRS{148}
- \fSym\cyryhcrs{180}
- \fSym\CYRHDSC{149}
- \fSym\cyrhdsc{181}
- \fSym\CYRDZHE{150}
- \fSym\cyrdzhe{182}
- \fSym\CYRCHVCRS{151}
- \fSym\cyrchvcrs{183}
- \fSym\CYRCHRDSC{152}
- \fSym\cyrchrdsc{184}
- \fSym\CYRIE{153}
- \fSym\cyrie{185}
- \fSym\CYRSCHWA{154}
- \fSym\cyrschwa{186}
- \fSym\CYRNJE{155}
- \fSym\cyrnje{187}
- \fSym\CYRYO{156}
- \fSym\cyryo{188}
- \fSym\CYRII{73}
- \fSym\cyrii{105}
- \fSym\CYRJE{74}
- \fSym\cyrje{106}
- \fSym\CYRQ{81}
- \fSym\cyrq{113}
- \fSym\CYRW{87}
- \fSym\cyrw{119}
- \fCmpSym\"\CYRE{156}
- \fCmpSym\"\cyre{188}
- \fCmpSym\U\CYRI{201}
- \fCmpSym\U\cyri{233}
- \fCmpSym\"\CYRII{136}
- \fCmpSym\"\cyrii{168}
- \fCmpSym\,\CYRZ{134}
- \fCmpSym\,\cyrz{166}
- \fCmpSym\k\CYRS{145}
- \fCmpSym\k\cyrs{177}
- \fCmpSym\U\CYRU{146}
- \fCmpSym\U\cyru{178}
- % End of T2A.
- %
- % TS1.
- \fenc@begin{TS1}
- \fAcc\tieaccent{26}
- \fCmd\textdollar{`\$}
- \fSym\textfractionsolidus{47}
- \fSym\minus{61}
- \fSym\textbigcircle{79}
- \fCmdd\textcircled{{\ooalign{\hfil\raise.34ex%
- \hbox{\f@restore@enc\scalefont{560}#1}\hfil\crcr\hbox{\textbigcircle}}}}
- %\fSym\star{98}% FIXME this requires redefining \point.
- \fSym\textdagger{132}
- \fSym\textdaggerdbl{133}
- \fSym\textperthousand{135}
- \fSym\bullet{136}
- \fSym\texttrademark{151}
- \fSym\textpertenthousand{152}
- \fSym\textnumero{155}
- \fSym\textcent{162}
- \fSym\pounds{163}
- \fSym\textcurrency{164}
- \fSym\textyen{165}
- \fSym\textbrokenbar{166}
- \fSym\textsection{167}
- \fSym\copyright{169}
- \fSym\ordf{170}
- \fSym\textlnot{172}% FIXME What about \lnot?
- \fSym\textregistered{174}
- \fSym\textdegree{176}
- \fSym\textplusminus{177}
- \fSym\textpm{177}
- \fSym\texttwosuperior{178}
- \fSym\textthreesuperior{179}
- \fSym\textmu{181}
- \fSym\textparagraph{182}
- \fSym\textperiodcentered{183}
- \fSym\textonesuperior{185}
- \fSym\ordm{186}
- \fSym\textonequarter{188}
- \fSym\textonehalf{189}
- \fSym\textthreequarters{190}
- \fSym\euro{191}
- \fSym\textmultiply{214}
- \fSym\texttimes{214}
- \fSym\textdivide{246}
- \fSym\textdiv{246}
- % End of TS1.
- %
- % Free the memory.
- \let\t@oenc@common\undefined
- %
- \endinput
|