1 % \iffalse meta-comment
4 % The LaTeX3 Project and any individual authors listed elsewhere
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 % http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
30 %%% From File: ltoutenc.dtx
31 %\NeedsTeXFormat{LaTeX2e}[2000/06/01]
32 %<OT1>\ProvidesFile{ot1enc.def}
33 %<T1>\ProvidesFile{t1enc.def}
34 %<OMS>\ProvidesFile{omsenc.def}
35 %<OML>\ProvidesFile{omlenc.def}
36 %<OT4>\ProvidesFile{ot4enc.def}
37 %<TS1>\ProvidesFile{ts1enc.def}[2001/06/05 v3.0e (jk/car/fm)
38 %<TU>\ProvidesFile{tuenc.def}
39 %<package>\ProvidesPackage{fontenc}
40 %<TS1sty>\ProvidesPackage{textcomp}
41 %<OT1|T1|OMS|OML|OT4|TU|package|TS1sty> [2016/12/11 v2.0a
42 %<OT1|T1|OMS|OML|OT4|TS1|TU> Standard LaTeX file]
43 %<package|TS1sty> Standard LaTeX package]
47 \ProvidesFile{ltoutenc.dtx}
48 [2016/12/11 v2.0a LaTeX Kernel (font encodings)]
50 \documentclass{ltxdoc}
51 \GetFileInfo{ltoutenc.dtx}
63 \MaintainedByLaTeXTeam{latex}
72 % \changes{v1.99e}{2004/02/13}{Documentation fixes: typos}
73 % \changes{v1.9k}{1998/01/12}{Added \cs{ProvidesPackage}
75 % \changes{v1.9i}{1997/12/19}{Documentation corrections.}
76 % \changes{v1.9h}{1997/12/17}{Documentation changes and additions.}
77 % \changes{v1.9h}{1997/12/17}{Added textcomp.sty.}
78 % \changes{v1.9f}{1997/08/29}{Added OT4 encoding,
79 % provided by Marcin Woli\'nski.}
80 % \changes{v1.7r}{1995/11/28}{doc fixes}
81 % \changes{v1.7h}{1995/04/21}{Added \cs{null} \cs{k} latex/1274}
82 % \changes{v1.7f}{1994/12/14}{Added braces to \cs{copyright} so it
83 % works unbraced in subscripts.}
84 % \changes{v1.7f}{1994/12/14}{Added check for math mode in
86 % \changes{v1.7f}{1994/12/14}{Commented out \cs{textasciicircum},
87 % \cs{textasciitilde}, \cs{textbackslash}, \cs{textbar},
88 % \cs{textgreater}, \cs{texthyphenchar}, \cs{texthyphen} and
89 % \cs{textless} to save memory.}
90 % \changes{v1.7e}{1994/12/10}{Added documentation for the OML encoding.}
91 % \changes{v1.7e}{1994/12/10}{Replaced width with \cs{@width} and
92 % ditto height in vrules.}
93 % \changes{v1.7d}{1994/12/08}{Added \cs{null} and \cs{sh@ft} to \cs{b}
95 % \changes{v1.7c}{1994/12/05}{Added braces to \cs{textcircled}.}
96 % \changes{v1.7b}{1994/12/02}{Fixed a bug with \cs{a}.}
97 % \changes{v1.7a}{1994/11/30}{Added new code for encoding-specific
98 % commands. These now expand in the mouth, which means that
99 % ligaturing and kerning can happen.}
100 % \changes{v1.6i}{1994/11/22}{Fixed empty accents. Again.}
101 % \changes{v1.6i}{1994/11/22}{Corrected \cs{dots} so that there's no
102 % kerning in monowidth fonts.}
103 % \changes{v1.6i}{1994/11/22}{Corrected typo with
104 % \cs{mathunderscore}.}
105 % \changes{v1.6h}{1994/11/17}{(DPC) \cs{@tempa} to \cs{reserved@a}}
106 % \changes{v1.6d}{1994/11/02}{Wrapped lines longer than 70 characters.}
107 % \changes{v1.6d}{1994/10/30}{Added math commands.}
108 % \changes{v1.6d}{1994/10/30}{Added OML encoding.}
109 % \changes{v1.6d}{1994/10/30}{Added \cs{textcircled}.}
110 % \changes{v1.6d}{1994/10/30}{Added \cs{DeclareTextCompositeCommand}.}
111 % \changes{v1.6c}{1994/10/29}{Renamed \cs{P}, \cs{S}, \cs{dag} and
112 % \cs{ddag} to \cs{textparagraph}, \cs{textsection},
113 % \cs{textdagger} and \cs{textdaggerdbl}.}
114 % \changes{v1.6b}{1994/10/27}{Removed the enc.def files}
115 % \changes{v1.6a}{1994/10/25}{Added \cs{ProvideTextCommand},
116 % \cs{UseTextSymbol},
117 % \cs{UseTextAccent},
118 % \cs{DeclareTextSymbolDefault},
119 % \cs{DeclareTextAccentDefault},
120 % \cs{DeclareTextCommandDefault}, and
121 % \cs{ProvideTextCommandDefault}.}
122 % \changes{v1.5m}{1994/10/18}{Added new definitions of \cs{patterns}
123 % and \cs{hyphenation}.}
124 % \changes{v1.5l}{1994/10/07}{Moved the ogonek accent.}
125 % \changes{v1.5k}{1994/05/18}{Removed braces from \cs{pounds} and
127 % \changes{v1.5k}{1994/05/18}{Replaced \cs{defaultencoding} with
128 % \cs{encodingdefault}.}
129 % \changes{v1.5k}{1994/05/18}{Made dotted-i produce `i'.}
130 % \changes{v1.5j}{1994/05/17}{Added braces to \cs{pounds} so it works
132 % \changes{v1.5i}{1994/05/16}{Fixed a bug with \cs{d}.}
133 % \changes{v1.5h}{1994/05/16}{Added \cs{NG}, \cs{ng}, \cs{TH},
134 % \cs{th}, \cs{DH}, \cs{dh}, \cs{DJ} and \cs{dj}.}
135 % \changes{v1.5h}{1994/05/16}{Added \cs{r} (ring accent) and \cs{k}
137 % \changes{v1.5h}{1994/05/16}{Removed \cs{P} from the OT1 definitions
139 % \changes{v1.5h}{1994/05/16}{Fixed a bug with \cs{pounds}.}
140 % \changes{v1.5g}{1994/05/16}{Made fontenc.sty use the new mixed-case
142 % \changes{v1.5f}{1994/05/16}{Revert code so that the encoding
143 % given is used in \cs{DeclareTextCommand} (FMi)}
144 % \changes{v1.5f}{1994/05/16}{enc files now have uc encoding name
146 % \changes{v1.5e}{1994/05/14}{Replaced \cs{ENC@cmd} by \cs{ENC-cmd}.}
147 % \changes{v1.5d}{1994/05/14}{Rewrote \cs{DeclareTextCommand} to define
148 % its argument to use the current encoding by default, rather than
149 % the encoding provided to \cs{DeclareTextCommand}.}
150 % \changes{v1.5d}{1994/05/14}{Tidied up the documentation.}
151 % \changes{v1.5c}{1994/05/14}{Added the fontenc package.}
152 % \changes{v1.5c}{1994/05/14}{Fixed a bug which caused an infinite loop
153 % if \cs{f@encoding} was incorrectly set.}
154 % \changes{v1.5c}{1994/05/14}{Moved fontsmpl to its own dtx file.}
155 % \changes{v1.5b}{1994/05/13}{Added \cmd\{, \cmd\} and \cmd\$.}
156 % \changes{v1.5b}{1994/05/13}
157 % {Replaces \cs{space} by `~' in \cs{csname}.}
158 % \changes{v1.5b}{1994/05/13}{Renamed \cs{DeclareProtectedCommand} to
159 % \cs{DeclareRobustCommand}.}
160 % \changes{v1.5a}{1994/05/11}{Renamed the commands again. Made the
161 % encoding part of the command syntax. Added the
162 % \cs{DeclareTextCommand} interface. Used
163 % \cs{DeclareProtectedCommand}.}
164 % \changes{v1.4a}{1994/05/01}{Renamed the commands, removed the
165 % \cs{EncodingSpecific} command. Turned all slots into decimal.
167 % \changes{v1.4a}{1994/05/01}{Removed Rokicki's encoding.}
168 % \changes{v1.3d}{1993/12/18}{Some T1 stuff had drifted into the OT1
170 % \changes{v1.3c}{1993/12/18}{A new syntax, separating
171 % accent-definitions from encoding-specific definitions, and
172 % allowing encoding-specific \cs{chardef}, \cs{let}, etc.}
173 % \changes{v1.3c}{1993/12/18}{Rewrote for the new syntax of
174 % \cs{EncodingSpecific}.}
175 % \changes{v1.3b}{1993/12/18}{Corrected typos.}
176 % \changes{v1.3b}{1993/12/18}{Replaced the missing last argument to
177 % \cs{DeclareFontEncoding}.}
178 % \changes{v1.3a}{1993/12/18}{Replaced OT3 by XXX}
179 % \changes{v1.3}{1993/12/17}{Added \cs{EncodingSpecificAccent},
180 % \cs{EncodingSpecificAccentedLetter} and
181 % \cs{EncodingSpecificCommand}.}
182 % \changes{v1.3}{1993/12/17}{Made Rokicki's encoding a proper encoding
183 % scheme rather than a variant of OT1.}
184 % \changes{v1.2b}{1993/12/13}{Corrected file name in driver code.}
185 % \changes{v1.2a}{1993/12/11}{Corrected for t1enc, math.}
186 % \changes{v1.2}{1993/12/10}{Added source code for t1enc.sty.}
187 % \changes{v1.1}{1993/12/07}{Made all character numbers decimal.}
188 % \changes{v1.1}{1993/12/07}{Removed a lot of equal signs and the
190 % \changes{v1.99m}{2015/02/21}
191 % {Removed autoload code}
194 % \section{Font encodings}
196 % This section of the kernel contains commands for declaring
198 % commands, such as accents. It also contains the code for some of
199 % the encoding files, including |omlenc.def|,
200 % |omsenc.def|, |t1enc.def| and |ot1enc.def| files, which define
202 % |OMS|, |T1| and |OT1| encodings, and the |fontenc| package
203 % for selecting encodings.
205 % The |fontenc| package has options for encodings, of which the
206 % last option is the default encoding. For example, to use the
207 % |OT2|, |OT3| and |T1| encodings, with |T1| as the default, you
210 % \usepackage[OT2,OT3,T1]{fontenc}
212 % The standard kernel set-up loads font encoding files and selects
213 % an encoding as follows.
215 % \input {omlenc.def}
217 % \input {ot1enc.def}
218 % \input {omsenc.def}
221 % Note that the files in the standard |inputenc| package depend on
222 % this behaviour of the kernel.
224 % The syntax for declaring encoding-specific commands is:
226 % |\DeclareTextCommand{|^^A
227 % \meta{command}|}{|^^A
228 % \meta{encoding}|}|\\\hspace*{\fill}|[|^^A
229 % \meta{number}|][|^^A
230 % \meta{default}|]{|^^A
233 % This command is like |\newcommand|, except that it defines a
234 % command which is specific to one encoding. The resulting command
235 % is always robust, even if its definition is fragile. For example,
236 % the definition of |\l| in the |OT1| encoding is:
238 % \DeclareTextCommand{\l}{OT1}{{\@xxxii l}}
240 % |\DeclareTextCommand| takes the same optional arguments as
243 % |\ProvideTextCommand{|^^A
244 % \meta{command}|}{|^^A
245 % \meta{encoding}|}|\\\hspace*{\fill}|[|^^A
246 % \meta{number}|][|^^A
247 % \meta{default}|]{|^^A
250 % This acts like |\DeclareTextCommand|, but does nothing if the
251 % command is already defined.
253 % |\DeclareTextSymbol{|^^A
254 % \meta{command}|}{|^^A
255 % \meta{encoding}|}{|^^A
258 % This command defines a text symbol, with a particular slot in that
259 % encoding. The commands:
260 % \changes{v1.9h}{1997/12/17}{Example corrected, braces removed.}
262 % \DeclareTextSymbol{\ss}{OT1}{25}
263 % \DeclareTextCommand{\ss}{OT1}{\char25 }
265 % have the same effect, but the |\DeclareTextSymbol| is faster.
267 % |\DeclareTextAccent{|^^A
268 % \meta{command}|}{|^^A
269 % \meta{encoding}|}{|^^A
272 % \changes{v1.8e}{1996/11/23}{Corrected description}
273 % \changes{v1.9k}{1997/12/31}{Further correction}
274 % This command declares a text accent. The commands:
276 % \DeclareTextAccent{\"}{OT1}{127}
277 % \DeclareTextCommand{\"}{OT1}{\add@accent {127}}
279 % have the same effect.
280 % \changes{v1.8c}{1996/10/27}
281 % {Corrected syntax descriptions}
283 % |\DeclareTextComposite{|^^A
284 % \meta{command}|}|\\\hspace*{\fill}|{|^^A
285 % \meta{encoding}|}{|^^A
286 % \meta{argument}|}{|^^A
289 % This command declares a composite letter, for example in the |T1|
290 % encoding |\'{a}| is slot 225, which is declared by:
292 % \DeclareTextComposite{\'}{T1}{a}{225}
294 % \changes{v1.8e}{1996/11/23}
295 % {Corrected description}
296 % The \emph{command} will normally have been declared with
297 % |\DeclareTextAccent|, or as a one-argument |\DeclareTextCommand|.
299 % |\DeclareTextComposite| is the most common example of using
300 % the more general declaration
301 % |\DeclareTextCompositeCommand|, which can define a composite
302 % to be an arbitrary piece of text.
304 % |\DeclareTextCompositeCommand{|^^A
305 % \meta{command}|}|\\\hspace*{\fill}|{|^^A
306 % \meta{encoding}|}{|^^A
307 % \meta{argument}|}{|^^A
310 % For example, in the OT1 encoding \r A has a hand-crafted
311 % definition this is declared as follows
313 % \DeclareTextCompositeCommand{\r}{OT1}{A}
314 % {\leavevmode\setbox\z@\hbox{!}\dimen@\ht\z@\advance\dimen@-1ex%
315 % \rlap{\raise.67\dimen@\hbox{\char23}}A}
317 % \changes{v1.8e}{1996/11/23}
318 % {Corrected description}
319 % The \emph{command} will normally have been declared with
320 % |\DeclareTextAccent|, or as a one-argument |\DeclareTextCommand|.
322 % The commands defined using the above declarations can be used in
324 % Normally they are used by just calling the command in the
325 % appropriate encoding, for example |\ss|. However, sometimes you
326 % may wish to use a command in an encoding where it is not defined.
327 % If the command has no arguments, then you can use it in another
328 % encoding by calling |\UseTextSymbol|:
330 % |\UseTextSymbol{|^^A
331 % \meta{encoding}|}{|^^A
335 % \task{?}{Document the problems of these commands, see pr/3160}
336 % \changes{v1.9e}{1997/08/05}{Corrected order of arguments in
337 % \cs{UseTextSymbol} example.}
338 % For example, |\UseTextSymbol{OT1}{\ss}| has the same effect as:
340 % {\fontencoding{OT1}\selectfont\ss}
342 % If the command has one argument then you can use it in another
343 % encoding by calling
346 % |\UseTextAccent{|^^A
347 % \meta{encoding}|}{|^^A
348 % \meta{command}|}{|^^A
351 % For example, if the current encoding is |OT2| then
352 % |\UseTextAccent{OT1}{\'}{a}| has the same effect as:
354 % {\fontencoding{OT1}\selectfont\'{\fontencoding{OT2}\selectfont a}}
356 % \changes{v1.8e}{1996/11/23}
357 % {Extended description}
358 % You can also declare a default definition for a text command, which
359 % will be used if the current encoding has no appropriate definition.
360 % Such use will also set the definition for this command in the
361 % current encoding to equal this default definition; this makes
362 % subsequent uses of the command much faster.
364 % |\DeclareTextCommandDefault{|^^A
365 % \meta{command}|}{|^^A
366 % \meta{definition}|}|
368 % For example, the default definition of the command
369 % |\textonequarter| (which produces the fraction $\frac14$) could be
370 % built using math mode:
372 % \DeclareTextCommandDefault{\textonequarter}{\ensuremath {\frac14}}
374 % There is a matching |\Provide| command which will not override an
375 % existing default definition:
377 % |\ProvideTextCommandDefault{|^^A
378 % \meta{command}|}{|^^A
379 % \meta{definition}|}|
381 % The most common use for these commands is to use symbols from
382 % other encodings, so there are some optimizations provided:
384 % |\DeclareTextSymbolDefault{|^^A
385 % \meta{command}|}|^^A
386 % \meta{encoding}|}|\\
387 % |\DeclareTextAccentDefault{|^^A
388 % \meta{command}|}|^^A
393 % |\DeclareTextCommandDefault{|^^A
394 % \meta{command}|}|\\\hspace*{\fill}^^A
395 % |{\UseTextSymbol{|^^A
396 % \meta{encoding}|}{|\meta{command}|}}| \\
397 % |\DeclareTextCommandDefault[1]{|^^A
398 % \meta{command}|}|\\\hspace*{\fill}^^A
399 % |{\UseTextAccent{|^^A
400 % \meta{encoding}|}{|\meta{command}|}{#1}}|
402 % For example, to make |OT1| the default encoding for |\ss| and
405 % \DeclareTextSymbolDefault{\ss}{OT1}
406 % \DeclareTextAccentDefault{\'}{OT1}
408 % Note that you can use these commands on any zero- or one-argument
409 % commands declared with |\DeclareText*| or |\ProvideText*|, not
410 % just those defined using |\DeclareTextSymbol| or
411 % |\DeclareTextAccent|.
413 % \subsection{Removing encoding-specific commands}
414 % \label{sec:removeencspec}
416 % \changes{v1.9o}{1998/03/20}{Documentation added for pr/2783}
418 % In some cases encoding definitions are given to provide some limited
419 % support since nothing better is available, for example, the definition
420 % for |\textdollar| in \texttt{OT1} is a hack since \$ and \pounds{}
421 % actually share the same slot in this encoding. Thus if such a glyph
422 % becomes available in a different encoding (e.g., \texttt{TS1}) one
423 % would like to get rid of the flacky one and make the default
424 % definition point to the new encoding. In such a case defining
426 % \DeclareTextSymbol{\textdollar}{TS1}{36}
427 % \DeclareTextSymbolDefault{\textdollar}{TS1}
429 % is not enough since if typesetting in \texttt{OT1} \LaTeX{} will
430 % still find the encoding specific-definition for \texttt{OT1} and
431 % therefore ignore the new default.
432 % Therefore to ensure that in this case the \texttt{TS1} version is
433 % used we have to remove the \texttt{OT1} declaration:
435 % \UndeclareTextCommand{\textdollar}{OT1}
438 % Since the \$ sign is a proper glyph in the \texttt{T1} encoding there
439 % is no point removing its definition and forcing \LaTeX{} to pick up
440 % the \texttt{TS1} version if typesetting in this encoding.
441 % However, assume you want to use the variant dollar sign,
442 % i.e., \textdollaroldstyle{}
443 % for your dollars. In that case you have to get rid of the \texttt{T1}
444 % declaration as well, e.g., the following would do that for you:
446 % \UndeclareTextCommand{\textdollar}{OT1}
447 % \UndeclareTextCommand{\textdollar} {T1}
448 % \DeclareTextCommandDefault{\textdollar}
449 % {\UseTextSymbol{TS1}\textdollaroldstyle}
452 % \subsection{The order of declarations}\label{sec:orderofdecls}
454 % \changes{v1.9o}{1998/03/20}{Documentation added about order of decls}
456 % If an encoding-specific command is defined for more than one encoding,
457 % then it will execute fastest in the encoding in which it was defined
458 % last since its top-level definition will be set up to execute in that
459 % encoding without any overhead.
461 % For this reason the file \texttt{fonttext.ltx} currently first loads
462 % the definitions for the \texttt{T1} encoding and then those for the
463 % \texttt{OT1} encoding so that typesetting in \texttt{OT1} is optimized
464 % since that is (still) the default. However, when \texttt{T1} is
465 % explicitly requested (via |\usepackage[T1]{fontenc}|) the
466 % top-level definitions are automatically changed to favour
467 % \texttt{T1} since its declarations are reloaded in the process.
469 % For the same reason default declarations should never come last since
470 % they are implemented as a special encoding themselves (with the
472 % Specifying them last would simply mean to make those encoding-specific
473 % commands equally inefficient in all encodings. Therefore the
474 % \texttt{textcomp} package, for example, first sets up all defaults
475 % to point to \texttt{TS1} and then declares the commands in the
476 % \texttt{TS1} encoding.
481 % \subsection{Docstrip modules}
483 % This |.dtx| file is be used to generate several related files
484 % containing font encoding definitions. The mutually exclusive
485 % docstrip options are listed here.
487 % \begin{tabular}{lp{10cm}}
488 % |T1| & generates |t1enc.def| for the Cork encoding. \\
489 % |TS1| & generates |ts1enc.def| for the Text Companion
491 % |TS1sty| & generates |textcomp.sty|, package that sets up use
492 % of the Text Companion encoding. \\
493 % |OT1| & generates |ot1enc.def| for Knuth's CM encoding. \\
494 % |OMS| & generates |omsenc.def| for Knuth's
495 % math symbol encoding. \\
496 % |OML| & generates |omlenc.def| for Knuth's
497 % math letters encoding. \\
498 % |OT4| & generates |ot4enc.def| for the Polish extension to
499 % the OT1 encoding, created by B.~Jackowski and
500 % M.~Ry\'cko for use with the Polish version of
501 % Computer Modern and Computer Concrete.\\
502 % |package| & generates |fontenc.sty| for
503 % selecting encodings. \\
504 % |2ekernel| & for the kernel commands.\\
507 % \changes{1.0d}{1993/07/17}{changed \cs{catcoding} @}
508 % \changes{1.0f}{1993/08/13}{Protected against active @ sign.}
509 % \changes{1.0g}{1993/08/16}{Needs space after \cs{string}}
510 % \changes{1.1}{1993/12/07}{Protected all special characters with
512 % \changes{1.3}{1993/12/17}{Removed the catcode hackery, since the file
513 % is only read as a package in the preamble, and removed all the
514 % messages on the screen, which just confuse users. Replaced them
515 % by the appropriate \cs{ProvidesPackage} commands. Added XXXenc.}
516 % \changes{1.3b}{1993/12/18}
517 % {Fixed typos with \cs{ProvidesPackage} lines.
518 % Added the \cs{NeedsTeXFormat} line. Added the last argument to
519 % \cs{DeclareEncoding}. Moved the use of the encodings to after their
521 % \changes{1.4a}{1994/04/29}{Removed Rokicki's OT1 variant encoding.
522 % Moved the driver to the top.}
523 % \changes{1.5a}{1994/05/11}{Made T1 and OT1 generate packages rather
524 % than def files. Renamed the `package' module to `teststy'.}
525 % \changes{1.5d}{1994/05/14}{Moved the driver to the top.}
527 % \subsection{Definitions for the kernel}
529 % \subsubsection{Declaration commands}
531 % \changes{1.3}{1993/12/17}{Added this section}
532 % \changes{1.3c}{1993/12/18}{Split \cs{EncodingSpecificAccent} up into
533 % \cs{EncodingSpecific} and \cs{DeclareAccent}.}
534 % \changes{1.4a}{1994/04/29}{Removed \cs{EncodingSpecific}. Renamed
535 % all the commands. Added \cs{DeclareTextGlyph} and
536 % \cs{UndeclareTextCommand}.}
537 % \changes{v1.5a}{1994/05/11}{Reimplemented \cs{DeclareTextCommand}
538 % using \cs{@changed@cmd} and \cs{DeclareProtectedCommand}.}
539 % \changes{v1.5c}{1994/05/14}{Fixed a bug which caused an infinite loop
540 % if \cs{f@encoding} was incorrectly set.}
541 % \changes{v1.5d}{1994/05/14}{Rewrote \cs{DeclareTextCommand} to define
542 % its argument to use the current encoding by default, rather than
543 % the encoding provided to \cs{DeclareTextCommand}.}
544 % \changes{v1.6a}{1994/10/25}{Added the \cs{Provide} commands,
545 % and the default definitions.}
547 % This section contains definitions for commands such as accents which
548 % depend on the current encoding. These commands will usually be kept
549 % in |.def| files, for example |ot1enc.def| contains the definitions
550 % for the |OT1| encoding.
553 \message{font encodings,}
556 % \changes{v1.5d}{1994/10/27}{Rewrote \cs{DeclareTextSymbol} to define
557 % its argument to use the current encoding by default, to fit with
558 % \cs{DeclareTextCommand}.}
560 % \changes{v1.7a}{1994/11/30}{Redefined \cs{@changed@cmd} to expand in
562 % \changes{v1.7a}{1994/11/30}{Removed \cs{@changed@x@mouth} since
563 % \cs{@changed@x} now expands in the mouth.}
565 % \changes{v1.7r}{1995/11/28}{Renamed \cs{@changed@x@err} to
566 % \cs{TextSymbolUnavailable}.}
567 % \changes{v1.7r}{1995/11/28}{Added math mode checks to text commands.}
568 % Far too many macros in one block here!
569 % \begin{macro}{\DeclareTextCommand}
570 % \begin{macro}{\ProvideTextCommand}
571 % \begin{macro}{\DeclareTextSymbol}
572 % \begin{macro}{\@dec@text@cmd}
573 % \begin{macro}{\chardef@text@cmd}
574 % \begin{macro}{\@changed@cmd}
575 % \begin{macro}{\@changed@x}
576 % \begin{macro}{\TextSymbolUnavailable}
577 % \begin{macro}{\@inmathwarn}
580 % \DeclareTextCommand{\foo}{T1}...
582 % then |\foo| is defined to be |\T1-cmd \foo \T1\foo|,
583 % where |\T1\foo| is \emph{one} control sequence, not two!
584 % We then call |\newcommand| to define |\T1\foo|.
586 \def\DeclareTextCommand{%
587 \@dec@text@cmd\newcommand}
591 \def\ProvideTextCommand{%
592 \@dec@text@cmd\providecommand}
596 \def\@dec@text@cmd#1#2#3{%
597 \expandafter\def\expandafter#2%
599 \csname#3-cmd\expandafter\endcsname
601 \csname#3\string#2\endcsname
603 \let\@ifdefinable\@rc@ifdefinable
604 \expandafter#1\csname#3\string#2\endcsname}
606 % \changes{v1.99d}{2004/02/06}{New command added to fix
607 % severe bug: pr/3563}
608 % This command was introduced to fix a major bug
609 % in |\@dec@text@cmd| without changing that command itself.
610 % This was thought to be necessary because it is defined
611 % in more than one package. (Perhaps the more serious bug is to put
612 % complex low-level commands like this in packages?)
614 % The problem it solves is that whereas both |\newcommand| and
615 % |\providecommand| (used just above) both handle the
616 % resetting of |\@ifdefinable| (following its disabling in
617 % |\@dec@text@cmd|), the primitive |\chardef| neither needs the
618 % disabling, nor does the resetting.
621 \def\chardef@text@cmd{%
622 \let\@ifdefinable\@@ifdefinable
625 \def\DeclareTextSymbol#1#2#3{%
626 \@dec@text@cmd\chardef@text@cmd#1{#2}#3\relax
630 % The declarations are only available before |\begin{document}|.
631 % \changes{v1.7h}{1995/05/21}{Added several \cs{@onlypreamble}}
632 % \changes{v1.7k}{1995/06/05}{Removed \cs{protected@cmd} and replaced
633 % with explicit \cs{noexpand}.}
635 \@onlypreamble\DeclareTextCommand
636 \@onlypreamble\DeclareTextSymbol
638 % The sneaky bit in all this is what |\T1-cmd \foo \T1\foo| does.
639 % There are five possibilities, depending on the current values of
640 % |\protect|, |\cf@encoding| and |\ifmmode|:
642 % \item If |\protect| is |\@typeset@protect| and |\cf@encoding| is
643 % |T1|, then we execute |\T1\foo|. This should be the normal
644 % behaviour, and is optimized for speed.
645 % \item If |\protect| is |\@typeset@protect|, |\cf@encoding| is
646 % (say) |OT1|, and |\OT1\foo| is defined, then we execute
648 % \item If |\protect| is |\@typeset@protect|, |\cf@encoding| is
649 % (say) |OT1|, we're in text mode,
650 % and |\OT1\foo| is undefined, then we define
651 % |\OT1\foo| to be the default value of |\foo|, and execute
653 % \item If |\protect| is |\@typeset@protect|, |\cf@encoding| is
654 % (say) |OT1|, we're in math mode,
655 % and |\OT1\foo| is undefined, then we execute the default value
656 % of |\foo|. (This is necessary so that things like
657 % |$X_\copyright$| work properly.)
658 % \item If |\protect| is not |\@typeset@protect| then we execute
659 % |\noexpand\foo|. For example, if we are writing to a file,
660 % then this results in |\foo| being written. If we are in a
661 % |\mark|, then |\foo| will be put in the mark---since |\foo| is
662 % robust, it will then survive all the things which may happen
663 % to it whilst it's a |\mark|.
665 % So after all that, we will either execute the appropriate
666 % definition of |\foo| for the current encoding, or we will execute
669 % The default value of |\foo| is |\?\foo| if it is defined, and an
670 % error message otherwise.
672 % When the encoding is changed from |T1| to |OT1|, |\T1-cmd| is
673 % defined to be |\@changed@cmd| and |\OT1-cmd| is defined to be
674 % |\@current@cmd|. This means that the test for what the current
675 % encoding is can be performed quickly.
677 \def\@current@cmd#1{%
678 \ifx\protect\@typeset@protect
681 \noexpand#1\expandafter\@gobble
686 \def\@changed@cmd#1#2{%
687 \ifx\protect\@typeset@protect
689 \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax
690 \expandafter\ifx\csname ?\string#1\endcsname\relax
691 \expandafter\def\csname ?\string#1\endcsname{%
692 \TextSymbolUnavailable#1%
695 \global\expandafter\let
696 \csname\cf@encoding \string#1\expandafter\endcsname
697 \csname ?\string#1\endcsname
699 \csname\cf@encoding\string#1%
700 \expandafter\endcsname
705 % \changes{v1.7m}{1995/10/09}{Autoload error}
706 % \changes{v1.7v}{1995/12/05}{Changed \cs{TextSymbolUnavailable} text}
708 \gdef\TextSymbolUnavailable#1{%
710 Command \protect#1 unavailable in encoding \cf@encoding%
713 % The command |\@inmathwarn| produces a warning message if we are
714 % currently in math mode. Note that since this command is used
715 % inside text commands, it can't call |\relax| before the
716 % |\ifmmode|. This means that it is possible for the warning to
717 % fail to be issued at the beginning of a row of an halign whose
718 % template enters math mode. This is probably a bad feature, but
719 % there's not much that can be done about it, since adding a |\relax|
720 % would break ligatures and kerning between text symbols.
722 % A more efficient solution would be to make |\@inmathwarn| and
723 % |\@inmatherr| equal to |\@empty| and |\relax| by default, and
725 % |\everymath| reset them to their usual definitions. This is left
726 % for future investigation (for example it may break some third
731 \@latex@warning{Command \protect#1 invalid in math mode}%
744 % \changes{v1.7k}{1995/06/05}{Allowed \cs{ProvideTextCommandDefault}
745 % after the preamble.}
747 % \begin{macro}{\DeclareTextCommandDefault}
748 % \begin{macro}{\ProvideTextCommandDefault}
749 % These define commands with encoding |?|.
751 % Note that |\DeclareTextCommandDefault| can only be used in the
752 % preamble, but that the |\Provide| version is allowed in inputenc
753 % |.def| files, so is allowed anywhere.
755 \def\DeclareTextCommandDefault#1{%
756 \DeclareTextCommand#1?}
760 \def\ProvideTextCommandDefault#1{%
761 \ProvideTextCommand#1?}
765 \@onlypreamble\DeclareTextCommandDefault
766 %\@onlypreamble\ProvideTextCommandDefault
768 % They require |\?-cmd| to be initialized as |\@changed@cmd|.
770 \expandafter\let\csname?-cmd\endcsname\@changed@cmd
775 % \begin{macro}{\DeclareTextAccent}
776 % \changes{v1.5a}{1994/05/11}
777 % {Reimplemented using \cs{DeclareTextCommand}.}
778 % \changes{v1.7z}{1996/05/23}
779 % {Reimplemented using \cs{add@accent} to save space latex/2133}
780 % This is just a disguise for defining a \TeX~|\accent| command.
782 \def\DeclareTextAccent#1#2#3{%
783 \DeclareTextCommand#1{#2}{\add@accent{#3}}}
787 \@onlypreamble\DeclareTextAccent
791 % \changes{v1.7a}{1994/11/30}{Rewrote \cs{@text@composite} so it
792 % allows an empty argument, or an argument containing lots of
795 % \begin{macro}{\add@accent}
796 % \changes{v1.7z}{1996/05/23}{macro added. latex/2133}
797 % \changes{v1.91}{2000/08/30}{Rearranged but no change to final code,
799 % To save space this code is shared between all text accents that are
800 % set using the |\accent| primitive.
801 % The argument is pre-set in a box so that any
802 % font loading that is needed is already done within the box.
803 % This is needed because font-loading involves grouping and that would
804 % prevent the accent mechanism from working so that the accent would
805 % not be positioned over the argument.
806 % Declarations that change the font should be allowed (only low-level
807 % ones are at present) inside the argument of an accent command,
808 % but not size changes, as they involve |\setbox| operations which
809 % also inhibit the mechanism of the |\accent| primitive.
811 % Note that the whole process is within a group.
812 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
814 % For a detailed discussion of this reimplementation and its
815 % deficiencies, see pr/3160.
816 % \task{?}{Improve this and document its problems, see pr/3160}
817 % \changes{v1.9z}{2000/01/30}{Macro reimplemented (pr/3160)}
819 \def\add@accent#1#2{\hmode@bgroup
821 % Turn off the group in |\UseTextSymbol| in case this is used
822 % inside the argument of |\add@accent|.
824 \let\hmode@start@before@group\@firstofone
825 \setbox\@tempboxa\hbox{#2%
827 % When presetting the argument in a box we record its |\spacefactor|
828 % for later use after the accent got typeset. This way something like
829 % |\`A| gets the spacefactor of |A| (i.e., 999) rather than the
830 % default value of 1000.
831 % \changes{v1.9q}{1998/06/12}
832 % {Explicitly set \cs{spacefactor} after \cs{accent} (pr/2877)}
834 \global\mathchardef\accent@spacefactor\spacefactor}%
835 \accent#1 #2\egroup\spacefactor\accent@spacefactor}
837 % Default definition for |\accent@spacefactor| prevents a horrible
838 % death of the above macro inside an unprotected |\edef|.
839 % \changes{v1.9w}{1999/10/28}{Give \cs{accent@spacefactor} a default
840 % definition (pr/3084)}
842 \let\accent@spacefactor\relax
846 % \begin{macro}{\hmode@bgroup}
847 % \changes{v1.9y}{2000/01/30}{Macro added}
849 \def\hmode@bgroup{\leavevmode\bgroup}
854 % \begin{macro}{\DeclareTextCompositeCommand}
855 % \changes{v1.7z}{1996/05/23}
856 % {Modified to cope with new \cs{add@accent} command: required
857 % removal of check for one argument-command}
858 % \begin{macro}{\DeclareTextComposite}
859 % \changes{v1.7l}{1995/06/09}{Rewrote \cs{DeclareTextComposite} to
860 % define the composite as a no-argument command rather than a
861 % two-argument command.}
862 % \begin{macro}{\@text@composite}
863 % \begin{macro}{\@text@composite@x}
864 % \begin{macro}{\@strip@args}
865 % \changes{v1.8c}{1996/10/27}
867 % Another amusing game to play with |\expandafter|, |\csname|, and
868 % |\string|. When you say
869 % |\DeclareTextCompositeCommand{\foo}{T1}{a}{bar}|, we look to see
870 % if the expansion of |\T1\foo| begins with |\@text@composite|, and
871 % if it doesn't, we redefine |\T1\foo| to be:
873 % #1 -> \@text@composite \T1\foo #1\@empty \@text@composite {...}
876 % previous definition of |\T1\foo|. Finally, we define |\\T1\foo-a|
877 % to expand to |bar|.
879 \def\DeclareTextCompositeCommand#1#2#3#4{%
880 \expandafter\let\expandafter\reserved@a\csname#2\string#1\endcsname
881 \expandafter\expandafter\expandafter\ifx
882 \expandafter\@car\reserved@a\relax\relax\@nil \@text@composite \else
883 \edef\reserved@b##1{%
884 \def\expandafter\noexpand
885 \csname#2\string#1\endcsname####1{%
886 \noexpand\@text@composite
887 \expandafter\noexpand\csname#2\string#1\endcsname
888 ####1\noexpand\@empty\noexpand\@text@composite
890 \expandafter\reserved@b\expandafter{\reserved@a{##1}}%
892 \expandafter\def\csname\expandafter\string\csname
893 #2\endcsname\string#1-\string#3\endcsname{#4}}
897 \@onlypreamble\DeclareTextCompositeCommand
899 % This all works because:
901 % \@text@composite \T1\foo A\@empty \@text@composite {...}
904 % |\\T1\foo-A| if |\\T1\foo-A| has been defined, and |{...}|
907 % Note that |\@text@composite| grabs the first token of the
908 % argument and puts just that in the
909 % csname. This is so that |\'{\textit{e}}| will work---it checks
910 % whether |\\T1\'-\textit| is defined (which presumably it isn't)
911 % and so expands to |{\accent 1 \textit{e}}|.
913 % This trick won't always work, for example |\'{{\itshape e}}| will
914 % expand to (with spaces added for clarity):
916 % \csname \string \T1\' - \string {\itshape e} \@empty \endcsname
918 % which will die pretty horribly. Unfortunately there's not much
919 % can be done about this if we're going to use |\csname| lookups as a
920 % fast way of accessing composites.
922 % This has an unfortunate `misfeature' though, which is that in
923 % the T1 encoding, |\'{aa}| produces \'a. This is not the expected
924 % behaviour, and should perhaps be fixed if the fix doesn't affect
925 % performance too badly.
927 % Finally, it's worth noting that the |\@empty| is used in
928 % |\@text@composite| so that accents will work even when the
929 % argument is empty. If you say |\'{}| then this looks up
930 % |\\T1\'-\@empty|, which ought to be |\relax|, and so all is well.
931 % If we didn't include the |\@empty|, then |\'{}| would expand to:
933 % \csname \string \T1\' - \string \endcsname
935 % so the |\endcsname| would be |\string|'ed and the whole of the
936 % rest of the document would be put inside the |\csname|. This
939 \def\@text@composite#1#2#3\@text@composite{%
940 \expandafter\@text@composite@x
941 \csname\string#1-\string#2\endcsname}
944 % \changes{v1.7z}{1996/05/23}
945 % {\cs{expandafter} added to match other changes for latex/2133}
946 % \changes{v1.9r}{1999/01/06}{New impl for latex/2930}
947 % \changes{v1.9s}{1999/01/13}{Simplified solution for latex/2930}
948 % Originally the |\@text@composite@x| macro had two arguments and if
949 % |#1| was not |\relax| it was executed, otherwise |#2| was executed.
950 % All this happened within the |\ifx| code so that neither |#1|
951 % nor |#2| could have picked up any additional arguments form
953 % This has now being changed using the typical |\@firstoftwo| /
954 % |\@secondoftwo| coding. This way the
955 % final expansion will happen without any |\else| or |\fi|
956 % intervening in the case that we need to get a further token
957 % from the input stream.
959 \def\@text@composite@x#1{%
961 \expandafter\@secondoftwo
963 \expandafter\@firstoftwo
967 % The command |\DeclareTextComposite| uses
968 % |\DeclareTextCompositeCommand| to declare a command which
969 % expands out to a single glyph.
970 % \changes{v1.8a}{1996/07/19}
971 % {Use char 0 not @ as carrier for \cs{lowercase} /2197}
977 \def\DeclareTextComposite#1#2#3#4{%
978 \def\reserved@a{\DeclareTextCompositeCommand#1{#2}{#3}}%
991 \@onlypreamble\DeclareTextComposite
999 % \begin{macro}{\UseTextAccent}
1000 % \begin{macro}{\UseTextSymbol}
1001 % \changes{v1.7p}{1995/11/17}{Support \cs{@wrong@font@char} latex/1676}
1002 % \changes{v1.7q}{1995/11/18}{Modify message slightly}
1003 % \begin{macro}{\@use@text@encoding}
1004 % \changes{v1.91}{2000/08/30}{Rearranged but no change to final code,
1006 % These fragile commands access glyphs from different encodings.
1007 % They use grotty low-level calls to the font selection scheme for
1008 % speed, and in order to make sure that |\UseTextSymbol| doesn't
1009 % do anything which you're not allowed to do between an |\accent|
1012 % For a detailed discussion of this reimplementation and its
1013 % deficiencies, see pr/3160.
1014 % \task{?}{Improve this and document its problems, see pr/3160}
1015 % \changes{v1.9z}{2000/01/30}{Macro reimplemented (pr/3160)}
1017 \def\UseTextAccent#1#2#3{%
1018 \hmode@start@before@group
1021 % Turn off the group in |\UseTextSymbol| in case this is used
1022 % inside the arguments of |\UseTextAccent|.
1024 \let\hmode@start@before@group\@firstofone
1025 \let\@curr@enc\cf@encoding
1026 \@use@text@encoding{#1}%
1027 #2{\@use@text@encoding\@curr@enc#3}%
1031 % \changes{v1.9z}{2000/01/30}{Macro reimplemented (pr/3160)}
1033 \def\UseTextSymbol#1#2{%
1034 \hmode@start@before@group
1036 \def\@wrong@font@char{\MessageBreak
1037 for \noexpand\symbol`\string#2'}%
1038 \@use@text@encoding{#1}%
1045 \def\@use@text@encoding#1{%
1046 \edef\f@encoding{#1}%
1048 \csname\curr@fontshape/\f@size\endcsname}%
1057 % \begin{macro}{\hmode@start@before@group}
1058 % The |\hmode@start@before@group| starts hmode and should be
1059 % immediately followed by an explicit |{...}|. Its purpose is to
1060 % ensure that hmode is started before this group is opened. Inside
1061 % |\add@accent| and |\UseTextAccent| it is redefined to remove this
1062 % group so that it doesn't conflict with the |\accent| primitive.
1064 % For a detailed discussion see pr/3160.
1065 % \changes{v1.9z}{2000/01/30}{Macro added (pr/3160)}
1067 \let\hmode@start@before@group\leavevmode
1071 % \begin{macro}{\DeclareTextSymbolDefault}
1072 % \begin{macro}{\DeclareTextAccentDefault}
1073 % Some syntactic sugar. Again, these should probably be optimized
1076 \def\DeclareTextSymbolDefault#1#2{%
1077 \DeclareTextCommandDefault#1{\UseTextSymbol{#2}#1}}
1081 \def\DeclareTextAccentDefault#1#2{%
1082 \DeclareTextCommandDefault#1{\UseTextAccent{#2}#1}}
1086 \@onlypreamble\DeclareTextSymbolDefault
1087 \@onlypreamble\DeclareTextAccentDefault
1093 % \begin{macro}{\UndeclareTextCommand}
1094 % This command safely removes and encoding specific declaration
1095 % for a given encoding. It is helpful if one intends to use the
1096 % default definition always and therefore wants to get rid of
1097 % a declaration for some specific encoding.
1098 % \changes{v1.9o}{1998/03/20}{Macro added for pr/2783}
1100 \def\UndeclareTextCommand#1#2{%
1102 % If there is no declaration for the current encoding do nothing.
1103 % (This makes a hash table entry but without e\TeX{} we can't do
1104 % anything about that).
1106 \expandafter\ifx\csname#2\string#1\endcsname\relax
1109 % Else: throw away that declaration.
1111 \global\expandafter\let\csname#2\string#1\endcsname
1114 % But this is unfortunately not enough, we have to take a look
1115 % at the top-level definition of the encoding specific command
1116 % which for a command |\foo| would look similar to
1117 % |\T1-cmd \foo \T1\foo| (three tokens).
1119 % Of course, instead of |T1| one could see a different encoding name;
1120 % which one depends the encoding for which |\foo| was declared
1123 % Now assume we have just removed the declaration for |\foo| in |T1|
1124 % and the top-level of |\foo| expands to the above. Then we better
1125 % change that pretty fast otherwise we do get an ``undefined csname
1126 % error'' when we try to typeset |\foo| within |T1| instead of
1127 % getting the default definition for |\foo|.
1128 % And what is the best way to change that top-level definition? Well,
1129 % the only ``encoding'' we know for sure will still be around is
1130 % the default encoding denoted by |?|.
1132 % Thus in case the last token of the top-level expansion
1133 % is now undefined we change the declaration to look like
1134 % |\?-cmd \foo \?\foo| which is done by the following
1137 \expandafter\expandafter\expandafter
1138 \ifx\expandafter\@thirdofthree#1\@undefined
1139 \expandafter\gdef\expandafter#1\expandafter
1140 {\csname ?-cmd\expandafter\endcsname\expandafter
1141 #1\csname?\string#1\endcsname}%
1148 \@onlypreamble\UndeclareTextCommand
1153 % \subsubsection{Hyphenation}
1155 % \changes{v1.5l}{1994/10/18}{Added new definitions of \cs{patterns}
1156 % and \cs{hyphenation}.}
1157 % \changes{v1.6g}{1994/11/05}{Added setting of \cs{@typeset@protect}
1158 % to \cs{patterns} and \cs{hyphenation}.}
1159 % \changes{v1.6g}{1994/11/30}{Removed new definitions of \cs{patterns}
1160 % and \cs{hyphenation}, since encoding-specific commands now expand
1163 % \begin{macro}{\patterns}
1164 % \begin{macro}{\@@patterns}
1165 % \begin{macro}{\hyphenation}
1166 % \begin{macro}{\@@hyphenation}
1167 % We redefine |\patterns| and |\hyphenation| to allow the use of
1168 % commands declared with |\DeclareText*| to be used inside them.
1170 %\let\@@patterns\patterns
1171 %\let\@@hyphenation\hyphenation
1174 % \let\protect\@empty
1175 % \let\@typeset@protect\@empty
1176 % \let\@changed@x\@changed@x@mouth
1177 % \afterassignment\egroup
1182 % \let\protect\@empty
1183 % \let\@typeset@protect\@empty
1184 % \let\@changed@x\@changed@x@mouth
1185 % \afterassignment\egroup
1194 % \subsubsection{Miscellania}
1196 % \changes{1.4a}{1994/05/01}{Added the \cs{a} command.}
1197 % \changes{1.7a}{1994/11/30}{Redefined \cs{a} for the new scheme.}
1198 % \changes{1.7b}{1994/12/02}{Redefined \cs{a} properly.}
1199 % \changes{1.7g}{1995/03/03}{Corrected an error in documentation
1200 % referring to the tabular rather than the tabbing
1202 % \changes{v1.7n}{1995/11/02}{Changed internal name \cs{a} to
1203 % \cs{@tabacckludge} to protect against redefinition by malicious
1207 % The |\a| command is used to access the accent commands even when
1208 % they have been redefined (for example by the |tabbing|
1209 % environment). Its internal name is |\@tabacckludge|.
1211 % The |\string| within the |\csname| guards against something
1212 % like |'| being active at the point of use.
1213 % \changes{v1.9r}{1998/09/19}{Added \cs{string} (pr/2878)}
1215 \def\@tabacckludge#1{\expandafter\@changed@cmd
1216 \csname\string#1\endcsname\relax}
1217 \let\a=\@tabacckludge
1221 % \changes{v1.6a}{1994/10/25}{Added the files OT1enc.def, T1enc.def and
1223 % \changes{v1.6b}{1994/10/27}{Removed the files OT1enc.def, T1enc.def
1226 % \subsubsection{Default encodings}
1228 % We define the default encodings for most commands to be either OT1,
1229 % OML or OMS. These defaults are in the kernel and therefore
1230 % fonts with these encodings must be available unless these
1231 % defaults are redefined elsewhere. Recall that the standard kernel
1232 % loads the encoding files for these encodings, and also that for
1235 % The naming conventions in the kernel are not what we would use if we
1236 % were starting from scratch\dots\
1237 % Those defined by DEK (like |\ae| and |\ss|) or by the \TeX{} Users
1238 % Group Technical Working Group on multi-lingual typesetting (like
1239 % |\th| and |\ng|) have short names. Those which were added to the
1240 % kernel in 1993 and early 1994 are named after their Adobe glyph
1241 % names (like |\guillemotleft| and |\quotedblbase|). Unfortunately,
1242 % this naming scheme won't work for all glyphs, since some names (like
1243 % |\space|) are already used, and some (like |\endash|) are very
1244 % likely to be defined by users. So we're now using the naming scheme
1245 % of |\text| followed by the Adobe name, (like |\textendash| and
1246 % |\textsterling|). Except that some glyphs don't have Adobe names,
1247 % so we're using the names used by fontinst for those (like
1248 % |\textcompwordmark|). Sigh.
1250 % \changes{v1.6a}{1994/10/25}{Added the defaults.}
1251 % \changes{v1.6b}{1994/10/27}{Added more defaults for OT1.}
1252 % \changes{v1.6c}{1994/10/29}{Added commands like \cs{dots} for use in
1255 % Some accents from OT1:
1257 \DeclareTextAccentDefault{\"}{OT1}
1258 \DeclareTextAccentDefault{\'}{OT1}
1259 \DeclareTextAccentDefault{\.}{OT1}
1260 \DeclareTextAccentDefault{\=}{OT1}
1261 \DeclareTextAccentDefault{\H}{OT1}
1262 \DeclareTextAccentDefault{\^}{OT1}
1263 \DeclareTextAccentDefault{\`}{OT1}
1264 \DeclareTextAccentDefault{\b}{OT1}
1265 \DeclareTextAccentDefault{\c}{OT1}
1266 \DeclareTextAccentDefault{\d}{OT1}
1267 \DeclareTextAccentDefault{\r}{OT1}
1268 \DeclareTextAccentDefault{\u}{OT1}
1269 \DeclareTextAccentDefault{\v}{OT1}
1270 \DeclareTextAccentDefault{\~}{OT1}
1272 % Some symbols from OT1:
1273 % \changes{v1.8c}{1996/10/27}
1274 % {Removed \cs{aa} and \cs{AA}}
1276 %\DeclareTextSymbolDefault{\AA}{OT1}
1277 \DeclareTextSymbolDefault{\AE}{OT1}
1278 \DeclareTextSymbolDefault{\L}{OT1}
1279 \DeclareTextSymbolDefault{\OE}{OT1}
1280 \DeclareTextSymbolDefault{\O}{OT1}
1281 %\DeclareTextSymbolDefault{\aa}{OT1}
1282 \DeclareTextSymbolDefault{\ae}{OT1}
1283 \DeclareTextSymbolDefault{\i}{OT1}
1284 \DeclareTextSymbolDefault{\j}{OT1}
1286 % \changes{v1.99h}{2005/11/08}
1287 % {Added \cs{ij} and \cs{IJ} from babel. (pr/3771)}
1289 \DeclareTextSymbolDefault{\ij}{OT1}
1290 \DeclareTextSymbolDefault{\IJ}{OT1}
1293 \DeclareTextSymbolDefault{\l}{OT1}
1294 \DeclareTextSymbolDefault{\oe}{OT1}
1295 \DeclareTextSymbolDefault{\o}{OT1}
1296 \DeclareTextSymbolDefault{\ss}{OT1}
1297 \DeclareTextSymbolDefault{\textdollar}{OT1}
1298 \DeclareTextSymbolDefault{\textemdash}{OT1}
1299 \DeclareTextSymbolDefault{\textendash}{OT1}
1300 \DeclareTextSymbolDefault{\textexclamdown}{OT1}
1301 %\DeclareTextSymbolDefault{\texthyphenchar}{OT1}
1302 %\DeclareTextSymbolDefault{\texthyphen}{OT1}
1303 \DeclareTextSymbolDefault{\textquestiondown}{OT1}
1304 \DeclareTextSymbolDefault{\textquotedblleft}{OT1}
1305 \DeclareTextSymbolDefault{\textquotedblright}{OT1}
1306 \DeclareTextSymbolDefault{\textquoteleft}{OT1}
1307 \DeclareTextSymbolDefault{\textquoteright}{OT1}
1308 \DeclareTextSymbolDefault{\textsterling}{OT1}
1310 % Some symbols from OMS:
1311 % \changes{v1.7t}{1995/11/29}{Added \cs{textbackslash} and
1313 % \changes{v1.8c}{1996/10/27}
1314 % {Added \cs{textasteriskcentered}}
1315 % \changes{v1.95}{2002/06/16}{Added default for \cs{textbardbl} (pr/3400)}
1317 \DeclareTextSymbolDefault{\textasteriskcentered}{OMS}
1318 \DeclareTextSymbolDefault{\textbackslash}{OMS}
1319 \DeclareTextSymbolDefault{\textbar}{OMS}
1320 \DeclareTextSymbolDefault{\textbardbl}{OMS}
1321 \DeclareTextSymbolDefault{\textbraceleft}{OMS}
1322 \DeclareTextSymbolDefault{\textbraceright}{OMS}
1323 \DeclareTextSymbolDefault{\textbullet}{OMS}
1324 \DeclareTextSymbolDefault{\textdaggerdbl}{OMS}
1325 \DeclareTextSymbolDefault{\textdagger}{OMS}
1326 \DeclareTextSymbolDefault{\textparagraph}{OMS}
1327 \DeclareTextSymbolDefault{\textperiodcentered}{OMS}
1328 \DeclareTextSymbolDefault{\textsection}{OMS}
1329 \DeclareTextAccentDefault{\textcircled}{OMS}
1332 % \changes{v1.6d}{1994/10/30}{Added OML encoding.}
1333 % \changes{v1.6d}{1994/10/30}{Made \cs{textless} and \cs{textgreater}
1335 % \changes{v1.6d}{1994/10/30}{Added \cs{t}.}
1336 % \changes{v1.7k}{1995/06/05}{Commented out \cs{textless} and
1337 % \cs{textgreater}.}
1339 % Some symbols from OML:
1340 % \changes{v1.7t}{1995/11/29}{Added \cs{textless} and
1341 % \cs{textgreater}.}
1343 \DeclareTextSymbolDefault{\textless}{OML}
1344 \DeclareTextSymbolDefault{\textgreater}{OML}
1345 \DeclareTextAccentDefault{\t}{OML}
1348 % \changes{v1.6d}{1994/10/30}{Added \cs{textcircled}.}
1349 % \changes{v1.6d}{1994/10/30}{Rewrote \cs{copyright} to use
1350 % \cs{textcircled}.}
1351 % \changes{v1.6d}{1994/10/30}{Removed \cs{textregistered}.}
1352 % \changes{v1.7k}{1995/06/05}{Save some tokens in
1353 % \cs{textvisiblespace} and \cs{textunderscore}.}
1354 % \changes{v1.7t}{1995/11/29}{Added \cs{textasciicircum},
1355 % \cs{textasciitilde}, \cs{textregistered} and \cs{texttrademark}.}
1356 % \changes{v1.7u}{1995/12/01}{Made \cs{SS} a Default, rather than
1357 % having the default point to the OT1 definition.}
1358 % \changes{v1.7w}{1995/12/11}{Modified \cs{copyright}}
1359 % \changes{v1.9a}{1997/04/30}{Introduced \cs{textcopyright} and modified
1362 % Some defaults we can fake.
1364 % The interface for defining |\copyright| changed, it used to
1365 % use |\expandafter| to add braces at the appropriate points.
1367 \DeclareTextCommandDefault{\textcopyright}{\textcircled{c}}
1368 % \expandafter\def\expandafter
1369 % \copyright\expandafter{\expandafter{\copyright}}
1372 % \changes{v1.9a}{1997/04/30}{Modified \cs{textunderscore}, removing
1373 % \cs{mathunderscore}}
1374 % \changes{v1.9b}{1997/04/30}{Added \cs{leavevmode} to
1375 % \cs{textunderscore}}
1376 % \changes{v1.9d}{1997/05/07}{Added \cs{leavevmode} to
1377 % \cs{textcompwordmark}}
1379 \DeclareTextCommandDefault{\textasciicircum}{\^{}}
1380 \DeclareTextCommandDefault{\textasciitilde}{\~{}}
1381 \DeclareTextCommandDefault{\textcompwordmark}{\leavevmode\kern\z@}
1382 \DeclareTextCommandDefault{\textunderscore}{%
1383 \leavevmode \kern.06em\vbox{\hrule\@width.3em}}
1387 \DeclareTextCommandDefault{\textvisiblespace}{%
1388 \mbox{\kern.06em\vrule \@height.3ex}%
1389 \vbox{\hrule \@width.3em}%
1390 \hbox{\vrule \@height.3ex}}
1393 % Using |\fontdimen3| in the next definition is some sort of a
1394 % kludge (since it is the interword stretch) but it makes the
1395 % ellipsis come out right in mono-spaced fonts too (since there it
1398 \DeclareTextCommandDefault{\textellipsis}{%
1399 .\kern\fontdimen3\font
1400 .\kern\fontdimen3\font
1401 .\kern\fontdimen3\font}
1404 % \changes{v1.9a}{1997/04/30}{Changed \cs{textsc} to \cs{scshape}}
1405 % \changes{v1.95}{2002/06/18}{Changed def for \cs{textregistered} to
1406 % avoid small caps (pr/3420)}
1408 %\DeclareTextCommandDefault{\textregistered}{\textcircled{\scshape r}}
1409 \DeclareTextCommandDefault{\textregistered}{\textcircled{%
1410 \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}
1411 \DeclareTextCommandDefault{\texttrademark}{\textsuperscript{TM}}
1412 \DeclareTextCommandDefault{\SS}{SS}
1415 % \changes{v1.9n}{1998/03/05}{Added masc/fem ords as in pr/2579}
1417 \DeclareTextCommandDefault{\textordfeminine}{\textsuperscript{a}}
1418 \DeclareTextCommandDefault{\textordmasculine}{\textsuperscript{o}}
1421 % \subsubsection{Math material}
1423 % Some commands can be used in both text and math mode:
1425 \DeclareRobustCommand{\$}{\ifmmode\mathdollar\else\textdollar\fi}
1426 \DeclareRobustCommand{\{}{\ifmmode\lbrace\else\textbraceleft\fi}
1427 \DeclareRobustCommand{\}}{\ifmmode\rbrace\else\textbraceright\fi}
1428 \DeclareRobustCommand{\P}{\ifmmode\mathparagraph\else\textparagraph\fi}
1429 \DeclareRobustCommand{\S}{\ifmmode\mathsection\else\textsection\fi}
1430 \DeclareRobustCommand{\dag}{\ifmmode{\dagger}\else\textdagger\fi}
1431 \DeclareRobustCommand{\ddag}{\ifmmode{\ddagger}\else\textdaggerdbl\fi}
1434 % For historical reasons |\copyright|
1435 % needs |{}| around the definition in maths.
1437 % \changes{v1.6f}{1994/11/04}{Added \cmd\_.}
1439 % \changes{v1.9a}{1997/04/30}{Modified \cs{underscore}, removing
1440 % \cs{mathunderscore}}
1441 % \changes{v1.9a}{1997/04/30}{Introduced \cs{textcopyright} and modify
1444 \DeclareRobustCommand{\_}{%
1445 \ifmmode\nfss@text{\textunderscore}\else\textunderscore\fi}
1446 \DeclareRobustCommand{\copyright}{%
1447 \ifmmode{\nfss@text{\textcopyright}}\else\textcopyright\fi}
1448 \DeclareRobustCommand{\pounds}{%
1449 \ifmmode\mathsterling\else\textsterling\fi}
1453 \DeclareRobustCommand{\dots}{%
1454 \ifmmode\mathellipsis\else\textellipsis\fi}
1460 % \changes{v1.99m}{2015/02/16}{Added \cs{textcommabelow} latex/4414}
1461 % Default definition of comma below.
1464 %<latexrelease>\IncludeInRelease{2015/10/01}{\textcommabelow}{comma accent}%
1465 %<*2ekernel|latexrelease>
1466 \DeclareTextCommandDefault\textcommabelow[1]
1467 {\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\raise-.31ex
1468 \hbox{\check@mathfonts\fontsize\ssf@size\z@
1469 \math@fontsfalse\selectfont,}\hidewidth}\egroup}
1470 %<latexrelease>\EndIncludeInRelease
1471 %</2ekernel|latexrelease>
1472 %<latexrelease>\IncludeInRelease{0000/00/00}{\textcommabelow}{comma accent}%
1473 %<latexrelease>\let\textcommabelow\@undefined
1474 %<latexrelease>\expandafter
1475 %<latexrelease> \let\csname\string\T1\string\c-G\endcsname\@undefined
1476 %<latexrelease>\expandafter
1477 %<latexrelease> \let\csname\string\T1\string\c-K\endcsname\@undefined
1478 %<latexrelease>\expandafter
1479 %<latexrelease> \let\csname\string\T1\string\c-k\endcsname\@undefined
1480 %<latexrelease>\expandafter
1481 %<latexrelease> \let\csname\string\T1\string\c-L\endcsname\@undefined
1482 %<latexrelease>\expandafter
1483 %<latexrelease> \let\csname\string\T1\string\c-l\endcsname\@undefined
1484 %<latexrelease>\expandafter
1485 %<latexrelease> \let\csname\string\T1\string\c-N\endcsname\@undefined
1486 %<latexrelease>\expandafter
1487 %<latexrelease> \let\csname\string\T1\string\c-n\endcsname\@undefined
1488 %<latexrelease>\expandafter
1489 %<latexrelease> \let\csname\string\T1\string\c-R\endcsname\@undefined
1490 %<latexrelease>\expandafter
1491 %<latexrelease> \let\csname\string\T1\string\c-r\endcsname\@undefined
1492 %<latexrelease>\EndIncludeInRelease
1495 % \changes{v1.99n}{2015/02/16}{Added \cs{textcommaabove}}
1496 % Default definition of comma above (E.G.).
1498 %<latexrelease>\IncludeInRelease{2016/02/01}{\textcommaabove}{comma above}%
1499 %<*2ekernel|latexrelease>
1500 \DeclareTextCommandDefault\textcommaabove[1]{%
1505 \check@mathfonts\fontsize\ssf@size\z@\math@fontsfalse\selectfont`%
1512 %<latexrelease>\EndIncludeInRelease
1513 %</2ekernel|latexrelease>
1514 %<latexrelease>\IncludeInRelease{0000/00/00}{\textcommaabove}{comma above}%
1515 %<latexrelease>\let\textcommaabove\@undefined
1516 %<latexrelease>\expandafter
1517 %<latexrelease> \let\csname\string\OT1\string\c-g\endcsname\@undefined
1518 %<latexrelease>\expandafter
1519 %<latexrelease> \let\csname\string\T1\string\c-g\endcsname\@undefined
1520 %<latexrelease>\EndIncludeInRelease
1523 % \changes{v1.6d}{1994/10/30}{Moved math commands here from ltmath.}
1524 % \changes{v1.6f}{1994/11/04}{Added \cs{mathunderscore}.}
1525 % \changes{v1.7k}{1995/06/05}{Moved math commands to fontdef.dtx.}
1528 % \changes{1.4a}{1994/05/01}{Added the \cs{SaveAtCatcode} and
1529 % \cs{RestoreAtCatcode} commands.}
1531 % \changes{1.5a}{1994/05/12}{Removed the \cs{SaveAtCatcode} and
1532 % \cs{RestoreAtCatcode} commands.}
1535 % \subsection{Definitions for the OT1 encoding}
1537 % \changes{1.3}{1993/12/17}{Removed all the hackery for use in
1538 % \cs{DeclareFontEncoding}, and redid everything using
1539 % \cs{DeclareTextFoo}.}
1540 % \changes{1.3b}{1993/12/18}{Replaced the missing last argument to
1541 % \cs{DeclareFontEncoding}.}
1542 % \changes{1.3c}{1993/12/18}{Rewrote for the new syntax of
1543 % \cs{EncodingSpecific}.}
1544 % \changes{1.4a}{1994/05/01}{Rewrote for the new syntax.}
1545 % \changes{1.5a}{1994/05/12}{Rewrote for the new syntax.}
1546 % \changes{1.5h}{1994/05/16}{\cs{pounds} was still using u rather than
1548 % \changes{1.6b}{1994/10/27}{Added:
1551 % \cs{textexclamdown}
1552 % \cs{texthyphenchar}
1554 % \cs{textquestiondown}
1555 % \cs{textquotedblleft}
1556 % \cs{textquotedblright}
1557 % \cs{textquoteleft}
1558 % \cs{textquoteright}
1561 % The definitions for the `\TeX{} text' (OT1) encoding.
1563 % Declare the encoding.
1566 \DeclareFontEncoding{OT1}{}{}
1568 % Declare the accents.
1570 \DeclareTextAccent{\"}{OT1}{127}
1571 \DeclareTextAccent{\'}{OT1}{19}
1572 \DeclareTextAccent{\.}{OT1}{95}
1573 \DeclareTextAccent{\=}{OT1}{22}
1574 \DeclareTextAccent{\^}{OT1}{94}
1575 \DeclareTextAccent{\`}{OT1}{18}
1576 \DeclareTextAccent{\~}{OT1}{126}
1577 \DeclareTextAccent{\H}{OT1}{125}
1578 \DeclareTextAccent{\u}{OT1}{21}
1579 \DeclareTextAccent{\v}{OT1}{20}
1580 \DeclareTextAccent{\r}{OT1}{23}
1582 % Some accents have to be built by hand:
1583 % Note that |\ooalign| and |\o@lign| must be inside a group.
1584 % \changes{v1.7j}{1995/05/21}{Updated some plain macros}
1585 % \changes{v1.7o}{1995/11/07}{Added \cs{leavevmode} at start of
1586 % \cs{c}, otherwise the output routine might be invoked within the
1588 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
1590 % \changes{v1.99g}{2005/09/27}{Replace \cs{sh@ft} by \cs{ltx@sh@ft}}
1591 % In these definitions we no longer use the helper function |\sh@ft|
1592 % from plain.tex since that now has two incompatible definitions.
1594 \DeclareTextCommand{\b}{OT1}[1]
1595 {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}%
1596 \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}\egroup}
1597 \DeclareTextCommand{\c}{OT1}[1]
1598 {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1%
1599 \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi}
1600 \DeclareTextCommand{\d}{OT1}[1]
1602 \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
1605 % Declare the text symbols.
1607 \DeclareTextSymbol{\AE}{OT1}{29}
1608 \DeclareTextSymbol{\OE}{OT1}{30}
1609 \DeclareTextSymbol{\O}{OT1}{31}
1610 \DeclareTextSymbol{\ae}{OT1}{26}
1611 \DeclareTextSymbol{\i}{OT1}{16}
1612 \DeclareTextSymbol{\j}{OT1}{17}
1613 \DeclareTextSymbol{\oe}{OT1}{27}
1614 \DeclareTextSymbol{\o}{OT1}{28}
1615 \DeclareTextSymbol{\ss}{OT1}{25}
1616 \DeclareTextSymbol{\textemdash}{OT1}{124}
1617 \DeclareTextSymbol{\textendash}{OT1}{123}
1619 % Using the ligatures helps with OT1 fonts that have
1620 % |\textexclamdown| and |\textquestiondown| in unusual positions.
1621 % \changes{v1.95}{2002/06/17}{Definition of \cs{textexclamdown} changed (pr/3368)}
1622 % \changes{v1.95}{2002/06/17}{Definition of \cs{textquestiondown} changed (pr/3368)}
1624 %\DeclareTextSymbol{\textexclamdown}{OT1}{60}
1625 %\DeclareTextSymbol{\textquestiondown}{OT1}{62}
1626 \DeclareTextCommand{\textexclamdown}{OT1}{!`}
1627 \DeclareTextCommand{\textquestiondown}{OT1}{?`}
1628 %\DeclareTextSymbol{\texthyphenchar}{OT1}{`\-}
1629 %\DeclareTextSymbol{\texthyphen}{OT1}{`\-}
1630 \DeclareTextSymbol{\textquotedblleft}{OT1}{92}
1631 \DeclareTextSymbol{\textquotedblright}{OT1}{`\"}
1632 \DeclareTextSymbol{\textquoteleft}{OT1}{`\`}
1633 \DeclareTextSymbol{\textquoteright}{OT1}{`\'}
1635 % Some symbols which are faked from others:
1636 % \changes{v1.7o}{1995/11/07}{Changed \cs{char}32 to \cs{@xxxii} (two
1638 % \changes{v1.7o}{1995/11/07}{Replaced octal number 27 by decimal
1639 % number 23 to protect against the quote character being active.}
1640 % \changes{v1.7o}{1995/11/07}{Replaced some 0's by \cs{z@} (faster).}
1641 % \changes{v1.8c}{1996/10/27}
1642 % {Removed \cs{aa} and \cs{AA}}
1643 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
1646 % \DeclareTextCommand{\aa}{OT1}
1648 \DeclareTextCommand{\L}{OT1}
1649 {\leavevmode\setbox\z@\hbox{L}\hb@xt@\wd\z@{\hss\@xxxii L}}
1650 \DeclareTextCommand{\l}{OT1}
1651 {\hmode@bgroup\@xxxii l\egroup}
1652 % \DeclareTextCommand{\AA}{OT1}
1653 % {\leavevmode\setbox\z@\hbox{h}\dimen@\ht\z@\advance\dimen@-1ex%
1654 % \rlap{\raise.67\dimen@\hbox{\char23}}A}
1656 % In the OT1 encoding \r A has a hand-crafted definition, so we
1657 % have here the first recorded explicit use of
1658 % |\DeclareTextCompositeCommand|.
1659 % \changes{v1.8c}{1996/10/27}
1661 % \changes{v1.96}{2002/10/28}{%
1662 % coding change, to follow bug fix by DEK in plain.tex (pr/3469)}
1664 \DeclareTextCompositeCommand{\r}{OT1}{A}
1665 {\leavevmode\setbox\z@\hbox{!}\dimen@\ht\z@\advance\dimen@-1ex%
1666 \rlap{\raise.67\dimen@\hbox{\char23}}A}
1668 % \changes{v1.99h}{2005/11/08}
1669 % {Added \cs{ij} and \cs{IJ} from babel. (pr/3771)}
1670 % The dutch language uses the letter `ij'. It is available in
1671 % \texttt{T1} encoded fonts, but not in the \texttt{OT1} encoded
1672 % fonts. Therefor we fake it for the \texttt{OT1} encoding.
1674 \DeclareTextCommand{\ij}{OT1}{%
1675 \nobreak\hskip\z@skip i\kern-0.02em j\nobreak\hskip\z@skip}
1676 \DeclareTextCommand{\IJ}{OT1}{%
1677 \nobreak\hskip\z@skip I\kern-0.02em J\nobreak\hskip\z@skip}
1679 % In the OT1 encoding, \pounds~and \$ share a slot.
1680 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
1683 \DeclareTextCommand{\textdollar}{OT1}{\hmode@bgroup
1684 \ifdim \fontdimen\@ne\font >\z@
1693 \DeclareTextCommand{\textsterling}{OT1}{\hmode@bgroup
1694 \ifdim \fontdimen\@ne\font >\z@
1697 \fontshape{ui}\selectfont
1702 % Here we are adding some more composite commands to the |OT1|
1703 % encoding. This makes the use of certain accents with |i|
1704 % compatible with their use with the |T1| encoding; this
1705 % enables them to become true \LaTeX{} internal representations.
1706 % However, it will make these accents work a little less fast since
1707 % a check will always be made for the existence of a composite.
1709 % \changes{v1.93}{2001/05/28}{Added composites for compatibility with
1711 % \changes{v1.94}{2001/06/05}{Text composite Commands need kludges for
1712 % `,' -- see tlb1903.lvt}
1714 \DeclareTextComposite{\.}{OT1}{i}{`\i}
1715 \DeclareTextComposite{\.}{OT1}{\i}{`\i}
1716 \DeclareTextCompositeCommand{\`}{OT1}{i}{\@tabacckludge`\i}
1717 \DeclareTextCompositeCommand{\'}{OT1}{i}{\@tabacckludge'\i}
1718 \DeclareTextCompositeCommand{\^}{OT1}{i}{\^\i}
1719 \DeclareTextCompositeCommand{\"}{OT1}{i}{\"\i}
1722 % T1 encoding is given more extensive set of overloads for \verb|\c|
1723 % But here we just adjust \verb|\c{g}|.
1724 % \changes{v1.99n}{2015/02/16}{Added composites for \cs{c}}
1725 % \changes{v1.99m}{2016/06/19}{OT1 definition (was duplicate T1 definition)}
1727 \ifx\textcommaabove\@undefined\else
1728 \DeclareTextCompositeCommand{\c}{OT1}{g}{\textcommaabove{g}}
1736 % \subsection{Definitions for the T1 encoding}
1738 % \changes{1.3}{1993/12/17}{Removed all the hackery for use in
1739 % \cs{DeclareFontEncoding}, and redid everything using
1740 % \cs{DeclareTextFoo}.}
1741 % \changes{1.3b}{1993/12/18}{Replaced the missing last argument to
1742 % \cs{DeclareFontEncoding}.}
1743 % \changes{1.3c}{1993/12/18}{Rewrote for the new syntax of
1744 % \cs{EncodingSpecific}.}
1745 % \changes{1.4a}{1994/05/01}{Rewrote for the new syntax.}
1746 % \changes{1.5a}{1994/05/12}{Rewrote for the new syntax.}
1747 % \changes{1.6a}{1994/10/25}{Added \cs{textdollar},
1748 % \cs{textlbrace}, \cs{textrbrace}, \cs{textsterling},
1749 % \cs{textunderline}.}
1750 % \changes{1.6a}{1994/10/25}{Removed
1751 % \cs{textlbrace}, \cs{textrbrace}, \cs{textunderline} to give them
1752 % their proper names.}
1753 % \changes{1.6b}{1994/10/27}{Added
1754 % \cs{textasciicircum}
1755 % \cs{textasciitilde}
1756 % \cs{textbackslash}
1758 % \cs{textbraceleft}
1759 % \cs{textbraceright}
1760 % \cs{textcompwordmark}
1763 % \cs{textexclamdown}
1765 % \cs{texthyphenchar}
1768 % \cs{textquestiondown}
1769 % \cs{textquotedblleft}
1770 % \cs{textquotedblright}
1772 % \cs{textquoteleft}
1773 % \cs{textquoteright}
1774 % \cs{textunderscore}
1775 % \cs{textvisiblespace}
1777 % \changes{v1.9h}{1997/12/17}
1778 % {Added \cs{textperthousand} and \cs{textpertenthousand}}
1780 % The definitions for the `Extended \TeX{} text' (T1) encoding.
1782 % Declare the encoding.
1785 \DeclareFontEncoding{T1}{}{}
1787 % Declare the accents.
1789 \DeclareTextAccent{\`}{T1}{0}
1790 \DeclareTextAccent{\'}{T1}{1}
1791 \DeclareTextAccent{\^}{T1}{2}
1792 \DeclareTextAccent{\~}{T1}{3}
1793 \DeclareTextAccent{\"}{T1}{4}
1794 \DeclareTextAccent{\H}{T1}{5}
1795 \DeclareTextAccent{\r}{T1}{6}
1796 \DeclareTextAccent{\v}{T1}{7}
1797 \DeclareTextAccent{\u}{T1}{8}
1798 \DeclareTextAccent{\=}{T1}{9}
1799 \DeclareTextAccent{\.}{T1}{10}
1801 % Some accents have to be built by hand.
1802 % Note that |\ooalign| and |\o@lign| must be inside a group.
1803 % \changes{v1.9h}{1997/12/17}{As in OT1, Added \cs{leavevmode} at
1804 % start of \cs{c}, otherwise the output routine might be invoked
1805 % within the macro.}
1806 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
1808 % \changes{v1.95}{2002/06/17}{Corrected \cs{c} for T1 (pr/3442)}
1809 % \changes{v1.99b}{2004/01/03}{Use \cs{ooalign} for \cs{k} (pr/3532)}
1810 % \changes{v1.99b}{2004/01/03}{Added \cs{textogonekcentered} (pr/3532)}
1811 % \changes{v1.99c}{2004/01/04}{More adjustments for ogonek (pr/3532)}
1812 % \changes{v1.99g}{2005/09/27}{Replace \cs{sh@ft} by \cs{ltx@sh@ft}}
1813 % In these definitions we no longer use the helper function |\sh@ft|
1814 % from plain.tex since that now has two incompatible definitions.
1816 \DeclareTextCommand{\b}{T1}[1]
1817 {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}%
1818 \vbox to.2ex{\hbox{\char9}\vss}\hidewidth}\egroup}
1819 \DeclareTextCommand{\c}{T1}[1]
1820 {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent11 #1%
1821 \else{\ooalign{\unhbox\z@\crcr
1822 \hidewidth\char11\hidewidth}}\fi}
1823 \DeclareTextCommand{\d}{T1}[1]
1825 \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
1826 \DeclareTextCommand{\k}{T1}[1]
1827 {\hmode@bgroup\ooalign{\null#1\crcr\hidewidth\char12}\egroup}
1828 \DeclareTextCommand{\textogonekcentered}{T1}[1]
1829 {\hmode@bgroup\ooalign{%
1830 \null#1\crcr\hidewidth\char12\hidewidth}\egroup}
1833 % Some symbols are constructed.
1835 % \changes{v1.9h}{1997/12/17}
1836 % {Added \cs{textperthousand} and \cs{textpertenthousand}}
1837 % Slot 24 contains a small circle intended for construction of
1841 \DeclareTextCommand{\textperthousand}{T1}
1842 {\%\char 24 } % space or `relax as delimiter?
1843 \DeclareTextCommand{\textpertenthousand}{T1}
1844 {\%\char 24\char 24 } % space or `relax as delimiter?
1847 % Declare the text symbols.
1848 % \changes{v1.7t}{1995/11/29}{Added \cs{textasciicircum},
1849 % \cs{textasciitilde}, \cs{textbackslash}, \cs{textbar},
1850 % \cs{textgreater} and \cs{textless}.}
1851 % \changes{v1.8c}{1996/10/27}
1852 % {Removed \cs{aa} and \cs{AA}}
1853 % \changes{v1.99h}{2005/11/08}
1854 % {Added \cs{ij} and \cs{IJ} from babel. (pr/3771)}
1857 %\DeclareTextSymbol{\AA}{T1}{197}
1858 \DeclareTextSymbol{\AE}{T1}{198}
1859 \DeclareTextSymbol{\DH}{T1}{208}
1860 \DeclareTextSymbol{\DJ}{T1}{208}
1861 \DeclareTextSymbol{\L}{T1}{138}
1862 \DeclareTextSymbol{\NG}{T1}{141}
1863 \DeclareTextSymbol{\OE}{T1}{215}
1864 \DeclareTextSymbol{\O}{T1}{216}
1865 \DeclareTextSymbol{\SS}{T1}{223}
1866 \DeclareTextSymbol{\TH}{T1}{222}
1867 %\DeclareTextSymbol{\aa}{T1}{229}
1868 \DeclareTextSymbol{\ae}{T1}{230}
1869 \DeclareTextSymbol{\dh}{T1}{240}
1870 \DeclareTextSymbol{\dj}{T1}{158}
1871 \DeclareTextSymbol{\guillemotleft}{T1}{19}
1872 \DeclareTextSymbol{\guillemotright}{T1}{20}
1873 \DeclareTextSymbol{\guilsinglleft}{T1}{14}
1874 \DeclareTextSymbol{\guilsinglright}{T1}{15}
1875 \DeclareTextSymbol{\i}{T1}{25}
1876 \DeclareTextSymbol{\j}{T1}{26}
1877 \DeclareTextSymbol{\ij}{T1}{188}
1878 \DeclareTextSymbol{\IJ}{T1}{156}
1879 \DeclareTextSymbol{\l}{T1}{170}
1880 \DeclareTextSymbol{\ng}{T1}{173}
1881 \DeclareTextSymbol{\oe}{T1}{247}
1882 \DeclareTextSymbol{\o}{T1}{248}
1883 \DeclareTextSymbol{\quotedblbase}{T1}{18}
1884 \DeclareTextSymbol{\quotesinglbase}{T1}{13}
1885 \DeclareTextSymbol{\ss}{T1}{255}
1886 \DeclareTextSymbol{\textasciicircum}{T1}{`\^}
1887 \DeclareTextSymbol{\textasciitilde}{T1}{`\~}
1888 \DeclareTextSymbol{\textbackslash}{T1}{`\\}
1889 \DeclareTextSymbol{\textbar}{T1}{`\|}
1890 \DeclareTextSymbol{\textbraceleft}{T1}{`\{}
1891 \DeclareTextSymbol{\textbraceright}{T1}{`\}}
1892 \DeclareTextSymbol{\textcompwordmark}{T1}{23}
1893 \DeclareTextSymbol{\textdollar}{T1}{`\$}
1894 \DeclareTextSymbol{\textemdash}{T1}{22}
1895 \DeclareTextSymbol{\textendash}{T1}{21}
1896 \DeclareTextSymbol{\textexclamdown}{T1}{189}
1897 \DeclareTextSymbol{\textgreater}{T1}{`\>}
1898 %\DeclareTextSymbol{\texthyphenchar}{T1}{127}
1899 %\DeclareTextSymbol{\texthyphen}{T1}{`\-}
1900 \DeclareTextSymbol{\textless}{T1}{`\<}
1901 \DeclareTextSymbol{\textquestiondown}{T1}{190}
1902 \DeclareTextSymbol{\textquotedblleft}{T1}{16}
1903 \DeclareTextSymbol{\textquotedblright}{T1}{17}
1904 \DeclareTextSymbol{\textquotedbl}{T1}{`\"}
1905 \DeclareTextSymbol{\textquoteleft}{T1}{`\`}
1906 \DeclareTextSymbol{\textquoteright}{T1}{`\'}
1907 \DeclareTextSymbol{\textsection}{T1}{159}
1908 \DeclareTextSymbol{\textsterling}{T1}{191}
1909 \DeclareTextSymbol{\textunderscore}{T1}{95}
1910 \DeclareTextSymbol{\textvisiblespace}{T1}{32}
1911 \DeclareTextSymbol{\th}{T1}{254}
1913 % Declare the composites.
1914 % \changes{v1.93}{2001/05/28}{Changed the effect of
1915 % \cs{.}\cs{i}, pr/3295}
1917 \DeclareTextComposite{\.}{T1}{i}{`\i}
1918 \DeclareTextComposite{\.}{T1}{\i}{`\i}
1920 % \changes{v1.9c}{1997/05/04}{Added `hex index tabs'}
1923 \DeclareTextComposite{\u}{T1}{A}{128}
1924 \DeclareTextComposite{\k}{T1}{A}{129}
1925 \DeclareTextComposite{\'}{T1}{C}{130}
1926 \DeclareTextComposite{\v}{T1}{C}{131}
1927 \DeclareTextComposite{\v}{T1}{D}{132}
1928 \DeclareTextComposite{\v}{T1}{E}{133}
1929 \DeclareTextComposite{\k}{T1}{E}{134}
1930 \DeclareTextComposite{\u}{T1}{G}{135}
1934 \DeclareTextComposite{\'}{T1}{L}{136}
1935 \DeclareTextComposite{\v}{T1}{L}{137}
1936 \DeclareTextComposite{\'}{T1}{N}{139}
1937 \DeclareTextComposite{\v}{T1}{N}{140}
1938 \DeclareTextComposite{\H}{T1}{O}{142}
1939 \DeclareTextComposite{\'}{T1}{R}{143}
1943 \DeclareTextComposite{\v}{T1}{R}{144}
1944 \DeclareTextComposite{\'}{T1}{S}{145}
1945 \DeclareTextComposite{\v}{T1}{S}{146}
1946 \DeclareTextComposite{\c}{T1}{S}{147}
1947 \DeclareTextComposite{\v}{T1}{T}{148}
1948 \DeclareTextComposite{\c}{T1}{T}{149}
1949 \DeclareTextComposite{\H}{T1}{U}{150}
1950 \DeclareTextComposite{\r}{T1}{U}{151}
1954 \DeclareTextComposite{\"}{T1}{Y}{152}
1955 \DeclareTextComposite{\'}{T1}{Z}{153}
1956 \DeclareTextComposite{\v}{T1}{Z}{154}
1957 \DeclareTextComposite{\.}{T1}{Z}{155}
1958 \DeclareTextComposite{\.}{T1}{I}{157}
1962 \DeclareTextComposite{\u}{T1}{a}{160}
1963 \DeclareTextComposite{\k}{T1}{a}{161}
1964 \DeclareTextComposite{\'}{T1}{c}{162}
1965 \DeclareTextComposite{\v}{T1}{c}{163}
1966 \DeclareTextComposite{\v}{T1}{d}{164}
1967 \DeclareTextComposite{\v}{T1}{e}{165}
1968 \DeclareTextComposite{\k}{T1}{e}{166}
1969 \DeclareTextComposite{\u}{T1}{g}{167}
1973 \DeclareTextComposite{\'}{T1}{l}{168}
1974 \DeclareTextComposite{\v}{T1}{l}{169}
1975 \DeclareTextComposite{\'}{T1}{n}{171}
1976 \DeclareTextComposite{\v}{T1}{n}{172}
1977 \DeclareTextComposite{\H}{T1}{o}{174}
1978 \DeclareTextComposite{\'}{T1}{r}{175}
1982 \DeclareTextComposite{\v}{T1}{r}{176}
1983 \DeclareTextComposite{\'}{T1}{s}{177}
1984 \DeclareTextComposite{\v}{T1}{s}{178}
1985 \DeclareTextComposite{\c}{T1}{s}{179}
1986 \DeclareTextComposite{\v}{T1}{t}{180}
1987 \DeclareTextComposite{\c}{T1}{t}{181}
1988 \DeclareTextComposite{\H}{T1}{u}{182}
1989 \DeclareTextComposite{\r}{T1}{u}{183}
1993 \DeclareTextComposite{\"}{T1}{y}{184}
1994 \DeclareTextComposite{\'}{T1}{z}{185}
1995 \DeclareTextComposite{\v}{T1}{z}{186}
1996 \DeclareTextComposite{\.}{T1}{z}{187}
2000 \DeclareTextComposite{\`}{T1}{A}{192}
2001 \DeclareTextComposite{\'}{T1}{A}{193}
2002 \DeclareTextComposite{\^}{T1}{A}{194}
2003 \DeclareTextComposite{\~}{T1}{A}{195}
2004 \DeclareTextComposite{\"}{T1}{A}{196}
2005 \DeclareTextComposite{\r}{T1}{A}{197}
2006 \DeclareTextComposite{\c}{T1}{C}{199}
2010 \DeclareTextComposite{\`}{T1}{E}{200}
2011 \DeclareTextComposite{\'}{T1}{E}{201}
2012 \DeclareTextComposite{\^}{T1}{E}{202}
2013 \DeclareTextComposite{\"}{T1}{E}{203}
2014 \DeclareTextComposite{\`}{T1}{I}{204}
2015 \DeclareTextComposite{\'}{T1}{I}{205}
2016 \DeclareTextComposite{\^}{T1}{I}{206}
2017 \DeclareTextComposite{\"}{T1}{I}{207}
2021 \DeclareTextComposite{\~}{T1}{N}{209}
2022 \DeclareTextComposite{\`}{T1}{O}{210}
2023 \DeclareTextComposite{\'}{T1}{O}{211}
2024 \DeclareTextComposite{\^}{T1}{O}{212}
2025 \DeclareTextComposite{\~}{T1}{O}{213}
2026 \DeclareTextComposite{\"}{T1}{O}{214}
2030 \DeclareTextComposite{\`}{T1}{U}{217}
2031 \DeclareTextComposite{\'}{T1}{U}{218}
2032 \DeclareTextComposite{\^}{T1}{U}{219}
2033 \DeclareTextComposite{\"}{T1}{U}{220}
2034 \DeclareTextComposite{\'}{T1}{Y}{221}
2038 \DeclareTextComposite{\`}{T1}{a}{224}
2039 \DeclareTextComposite{\'}{T1}{a}{225}
2040 \DeclareTextComposite{\^}{T1}{a}{226}
2041 \DeclareTextComposite{\~}{T1}{a}{227}
2042 \DeclareTextComposite{\"}{T1}{a}{228}
2043 \DeclareTextComposite{\r}{T1}{a}{229}
2044 \DeclareTextComposite{\c}{T1}{c}{231}
2048 \DeclareTextComposite{\`}{T1}{e}{232}
2049 \DeclareTextComposite{\'}{T1}{e}{233}
2050 \DeclareTextComposite{\^}{T1}{e}{234}
2051 \DeclareTextComposite{\"}{T1}{e}{235}
2052 \DeclareTextComposite{\`}{T1}{i}{236}
2053 \DeclareTextComposite{\`}{T1}{\i}{236}
2054 \DeclareTextComposite{\'}{T1}{i}{237}
2055 \DeclareTextComposite{\'}{T1}{\i}{237}
2056 \DeclareTextComposite{\^}{T1}{i}{238}
2057 \DeclareTextComposite{\^}{T1}{\i}{238}
2058 \DeclareTextComposite{\"}{T1}{i}{239}
2059 \DeclareTextComposite{\"}{T1}{\i}{239}
2063 \DeclareTextComposite{\~}{T1}{n}{241}
2064 \DeclareTextComposite{\`}{T1}{o}{242}
2065 \DeclareTextComposite{\'}{T1}{o}{243}
2066 \DeclareTextComposite{\^}{T1}{o}{244}
2067 \DeclareTextComposite{\~}{T1}{o}{245}
2068 \DeclareTextComposite{\"}{T1}{o}{246}
2072 \DeclareTextComposite{\`}{T1}{u}{249}
2073 \DeclareTextComposite{\'}{T1}{u}{250}
2074 \DeclareTextComposite{\^}{T1}{u}{251}
2075 \DeclareTextComposite{\"}{T1}{u}{252}
2076 \DeclareTextComposite{\'}{T1}{y}{253}
2078 % \changes{v1.99b}{2004/01/03}{Added composites for \cs{k} (pr/3532)}
2080 \DeclareTextCompositeCommand{\k}{T1}{o}{\textogonekcentered{o}}
2081 \DeclareTextCompositeCommand{\k}{T1}{O}{\textogonekcentered{O}}
2083 % \changes{v1.99n}{2015/02/16}{Added composites for \c{c}}
2085 \ifx\textcommaabove\@undefined\else
2086 \DeclareTextCompositeCommand{\c}{T1}{g}{\textcommaabove{g}}
2088 \ifx\textcommabelow\@undefined\else
2089 \DeclareTextCompositeCommand{\c}{T1}{G}{\textcommabelow{G}}
2090 \DeclareTextCompositeCommand{\c}{T1}{K}{\textcommabelow{K}}
2091 \DeclareTextCompositeCommand{\c}{T1}{k}{\textcommabelow{k}}
2092 \DeclareTextCompositeCommand{\c}{T1}{L}{\textcommabelow{L}}
2093 \DeclareTextCompositeCommand{\c}{T1}{l}{\textcommabelow{l}}
2094 \DeclareTextCompositeCommand{\c}{T1}{N}{\textcommabelow{N}}
2095 \DeclareTextCompositeCommand{\c}{T1}{n}{\textcommabelow{n}}
2096 \DeclareTextCompositeCommand{\c}{T1}{R}{\textcommabelow{R}}
2097 \DeclareTextCompositeCommand{\c}{T1}{r}{\textcommabelow{r}}
2105 % \changes{1.4a}{1994/05/01}{Removed the uc/lc table settings, since
2106 % the T1 uc/lc table is now the default.}
2108 % \subsection{Definitions for the OMS encoding}
2110 % \changes{v1.6a}{1994/10/25}{Added the OMS encoding.}
2111 % \changes{v1.6b}{1994/10/27}{Renamed \cs{textlbrace} to
2112 % \cs{textbraceleft} and \cs{textrbrace} to \cs{textbraceright}.}
2113 % \changes{v1.6b}{1994/10/27}{Added \cs{textbackslash}.}
2114 % \changes{v1.6d}{1994/10/30}{Added \cs{textcircled}.}
2116 % The definitions for the `\TeX{} math symbol' (OMS) encoding. Even
2117 % though this is meant to be a math font, it includes some of the
2118 % standard \LaTeX{} text symbols.
2120 % Declare the encoding.
2123 \DeclareFontEncoding{OMS}{}{}
2125 % Declare the symbols.
2126 % \changes{v1.7t}{1995/11/29}{Added \cs{textbackslash} and
2128 % \changes{v1.8c}{1996/10/27}
2129 % {Added \cs{textasteriskcentered}}
2130 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
2132 % \changes{v1.95}{2002/06/16}{Added \cs{textbardbl} (pr/3400)}
2134 % \changes{v1.99}{2004/02/02}{Added \cs{textbigcircle}}
2135 % Note that slot 13 has in places been named |\Orb|: please root
2136 % out and destroy this impolity wherever you find it!
2138 \DeclareTextSymbol{\textasteriskcentered}{OMS}{3} % "03
2139 \DeclareTextSymbol{\textbackslash}{OMS}{110} % "6E
2140 \DeclareTextSymbol{\textbar}{OMS}{106} % "6A
2141 \DeclareTextSymbol{\textbardbl}{OMS}{107} % "6B
2142 \DeclareTextSymbol{\textbraceleft}{OMS}{102} % "66
2143 \DeclareTextSymbol{\textbraceright}{OMS}{103} % "67
2144 \DeclareTextSymbol{\textbullet}{OMS}{15} % "0F
2145 \DeclareTextSymbol{\textdaggerdbl}{OMS}{122} % "7A
2146 \DeclareTextSymbol{\textdagger}{OMS}{121} % "79
2147 \DeclareTextSymbol{\textparagraph}{OMS}{123} % "7B
2148 \DeclareTextSymbol{\textperiodcentered}{OMS}{1} % "01
2149 \DeclareTextSymbol{\textsection}{OMS}{120} % "78
2150 \DeclareTextSymbol{\textbigcircle}{OMS}{13} % "0D
2151 \DeclareTextCommand{\textcircled}{OMS}[1]{\hmode@bgroup
2153 \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr
2160 % \subsection{Definitions for the OML encoding}
2162 % \changes{v1.6d}{1994/10/30}{Added the OML encoding.}
2164 % The definitions for the `\TeX{} math italic' (OML) encoding. Even
2165 % though this is meant to be a math font, it includes some of the
2166 % standard \LaTeX{} text symbols.
2168 % Declare the encoding.
2171 \DeclareFontEncoding{OML}{}{}
2173 % Declare the symbols.
2174 % \changes{v1.7t}{1995/11/29}{Added \cs{textless} and
2175 % \cs{textgreater}.}
2176 % \changes{v1.9h}{1997/12/17}{Changed to decimal codes.}
2177 % \changes{v1.9m}{1998/01/16}{fixed decimal codes. latex/2734}
2179 \DeclareTextSymbol{\textless}{OML}{`\<}
2180 \DeclareTextSymbol{\textgreater}{OML}{`\>}
2181 \DeclareTextAccent{\t}{OML}{127} % "7F
2185 % \subsection{Definitions for the OT4 encoding}
2187 % These definitions are for the Polish extension to the
2188 % `\TeX\ text' (OT1) encoding.
2189 % This encoding was created by B.~Jackowski and M.~Ry\'cko
2190 % for use with the Polish version of Computer Modern and Computer
2191 % Concrete. In positions 0--127 it is identical to OT1 but it
2192 % contains some additional characters in the upper half. The \LaTeX{}
2193 % support was developed by Mariusz Olko.
2195 % The PL fonts that use it are available as follows:\\
2197 % \texttt{ftp://ftp.gust.org.pl/TeX/language/polish/pl-mf.zip};
2200 % \texttt{ftp://ftp.gust.org.pl/TeX/language/polish/pl-tfm.zip}.
2202 % Declare the encoding.
2205 \DeclareFontEncoding{OT4}{}{}
2206 \DeclareFontSubstitution{OT4}{cmr}{m}{n}
2208 % Declare the accents.
2210 \DeclareTextAccent{\"}{OT4}{127}
2211 \DeclareTextAccent{\'}{OT4}{19}
2212 \DeclareTextAccent{\.}{OT4}{95}
2213 \DeclareTextAccent{\=}{OT4}{22}
2214 \DeclareTextAccent{\^}{OT4}{94}
2215 \DeclareTextAccent{\`}{OT4}{18}
2216 \DeclareTextAccent{\~}{OT4}{126}
2217 \DeclareTextAccent{\H}{OT4}{125}
2218 \DeclareTextAccent{\u}{OT4}{21}
2219 \DeclareTextAccent{\v}{OT4}{20}
2220 \DeclareTextAccent{\r}{OT4}{23}
2222 % The ogonek accent is available only under a e A \& E. But we
2223 % have to provide some definition for \cs{k}. Some other accents
2224 % have to be built by hand as in OT1:
2225 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
2228 \DeclareTextCommand{\k}{OT4}[1]{%
2229 \TextSymbolUnavailable{\k{#1}}#1}
2231 % In these definitions we no longer use the helper function |\sh@ft|
2232 % from plain.tex since that now has two incompatible definitions.
2233 % \changes{v1.99g}{2005/09/27}{Replace \cs{sh@ft} by \cs{ltx@sh@ft}}
2235 \DeclareTextCommand{\b}{OT4}[1]
2236 {\hmode@bgroup\o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-3ex}%
2237 \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}\egroup}
2238 \DeclareTextCommand{\c}{OT4}[1]
2239 {\leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1%
2240 \else{\ooalign{\unhbox\z@\crcr\hidewidth\char24\hidewidth}}\fi}
2241 \DeclareTextCommand{\d}{OT4}[1]
2243 \o@lign{\relax#1\crcr\hidewidth\ltx@sh@ft{-1ex}.\hidewidth}\egroup}
2245 % Declare the text symbols.
2247 \DeclareTextSymbol{\AE}{OT4}{29}
2248 \DeclareTextSymbol{\OE}{OT4}{30}
2249 \DeclareTextSymbol{\O}{OT4}{31}
2250 \DeclareTextSymbol{\L}{OT4}{138}
2251 \DeclareTextSymbol{\ae}{OT4}{26}
2252 \DeclareTextSymbol{\guillemotleft}{OT4}{174}
2253 \DeclareTextSymbol{\guillemotright}{OT4}{175}
2254 \DeclareTextSymbol{\i}{OT4}{16}
2255 \DeclareTextSymbol{\j}{OT4}{17}
2256 \DeclareTextSymbol{\l}{OT4}{170}
2257 \DeclareTextSymbol{\o}{OT4}{28}
2258 \DeclareTextSymbol{\oe}{OT4}{27}
2259 \DeclareTextSymbol{\quotedblbase}{OT4}{255}
2260 \DeclareTextSymbol{\ss}{OT4}{25}
2261 \DeclareTextSymbol{\textemdash}{OT4}{124}
2262 \DeclareTextSymbol{\textendash}{OT4}{123}
2263 \DeclareTextSymbol{\textexclamdown}{OT4}{60}
2264 %\DeclareTextSymbol{\texthyphenchar}{OT4}{`\-}
2265 %\DeclareTextSymbol{\texthyphen}{OT4}{`\-}
2266 \DeclareTextSymbol{\textquestiondown}{OT4}{62}
2267 \DeclareTextSymbol{\textquotedblleft}{OT4}{92}
2268 \DeclareTextSymbol{\textquotedblright}{OT4}{`\"}
2269 \DeclareTextSymbol{\textquoteleft}{OT4}{`\`}
2270 \DeclareTextSymbol{\textquoteright}{OT4}{`\'}
2272 % Definition for \r A as in OT1:
2273 % \changes{v1.96}{2002/10/28}{%
2274 % coding change, to follow bug fix by DEK in plain.tex (pr/3469)}
2276 \DeclareTextCompositeCommand{\r}{OT4}{A}
2277 {\leavevmode\setbox\z@\hbox{!}\dimen@\ht\z@\advance\dimen@-1ex%
2278 \rlap{\raise.67\dimen@\hbox{\char23}}A}
2280 % In the OT4 encoding, \pounds~and \$ share a slot.
2281 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
2284 \DeclareTextCommand{\textdollar}{OT4}{\hmode@bgroup
2285 \ifdim \fontdimen\@ne\font >\z@
2291 \DeclareTextCommand{\textsterling}{OT4}{\hmode@bgroup
2292 \ifdim \fontdimen\@ne\font >\z@
2295 \fontshape{ui}\selectfont
2299 % Declare the composites.
2301 \DeclareTextComposite{\k}{OT4}{A}{129}
2302 \DeclareTextComposite{\'}{OT4}{C}{130}
2303 \DeclareTextComposite{\k}{OT4}{E}{134}
2304 \DeclareTextComposite{\'}{OT4}{N}{139}
2305 \DeclareTextComposite{\'}{OT4}{S}{145}
2306 \DeclareTextComposite{\'}{OT4}{Z}{153}
2307 \DeclareTextComposite{\.}{OT4}{Z}{155}
2308 \DeclareTextComposite{\k}{OT4}{a}{161}
2309 \DeclareTextComposite{\'}{OT4}{c}{162}
2310 \DeclareTextComposite{\k}{OT4}{e}{166}
2311 \DeclareTextComposite{\'}{OT4}{n}{171}
2312 \DeclareTextComposite{\'}{OT4}{s}{177}
2313 \DeclareTextComposite{\'}{OT4}{z}{185}
2314 \DeclareTextComposite{\.}{OT4}{z}{187}
2315 \DeclareTextComposite{\'}{OT4}{O}{211}
2316 \DeclareTextComposite{\'}{OT4}{o}{243}
2321 % \subsection{Definitions for the TS1 encoding}
2323 % \changes{v1.9c}{1997/05/04}{Added TS1 encoding v2.2.beta}
2324 % \changes{v1.9g}{1997/11/23}
2325 % {Use \cs{textperthousand}, \cs{textpertenthousand} and
2326 % \cs{textfractionsolidus} not
2327 % \cs{textpermill}, \cs{textpertenmill} and \cs{textfraction}.
2329 % \changes{v1.9h}{1997/12/17}
2330 % {Removed default settings, see next section.}
2334 \DeclareFontEncoding{TS1}{}{}
2335 \DeclareFontSubstitution{TS1}{cmr}{m}{n}
2337 % Some accents have to be built by hand.
2338 % Note that |\ooalign| and |\o@lign| must be inside a group.
2339 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
2342 \DeclareTextCommand{\capitalcedilla}{TS1}[1]
2344 \ooalign{\null#1\crcr\hidewidth\char11\hidewidth}\egroup}
2345 \DeclareTextCommand{\capitalogonek}{TS1}[1]
2347 \ooalign{\null#1\crcr\hidewidth\char12\hidewidth}\egroup}
2350 % Accents for capital letters.
2352 % These commands can be used by the end user either directly or through
2353 % definitions of the type
2355 % \DeclareTextCompositeCommand{\'}{T1}{X}{\capitalacute X}
2357 % None of the latter definitions are provided by default, since they
2358 % are probably rarely used.
2362 \DeclareTextAccent{\capitalgrave}{TS1}{0}
2363 \DeclareTextAccent{\capitalacute}{TS1}{1}
2364 \DeclareTextAccent{\capitalcircumflex}{TS1}{2}
2365 \DeclareTextAccent{\capitaltilde}{TS1}{3}
2366 \DeclareTextAccent{\capitaldieresis}{TS1}{4}
2367 \DeclareTextAccent{\capitalhungarumlaut}{TS1}{5}
2368 \DeclareTextAccent{\capitalring}{TS1}{6}
2369 \DeclareTextAccent{\capitalcaron}{TS1}{7}
2373 \DeclareTextAccent{\capitalbreve}{TS1}{8}
2374 \DeclareTextAccent{\capitalmacron}{TS1}{9}
2375 \DeclareTextAccent{\capitaldotaccent}{TS1}{10}
2379 % The tie accent was borrowed from the |cmmi| font. The tc fonts
2380 % now provide four tie accents, the first two are done in the
2381 % classical way with assymetric glyphs hanging out of their boxes;
2382 % the new ties are centered in their boxes like all other accents.
2383 % They need a name: please tell us if you know what to call them.
2387 \DeclareTextAccent{\t}{TS1}{26}
2388 \DeclareTextAccent{\capitaltie}{TS1}{27}
2389 \DeclareTextAccent{\newtie}{TS1}{28}
2390 \DeclareTextAccent{\capitalnewtie}{TS1}{29}
2393 % Compund word marks.
2395 % The text companion fonts contain two compound word marks of
2396 % different heights, one has |cap_height|, the other |asc_height|.
2399 \DeclareTextSymbol{\textcapitalcompwordmark}{TS1}{23}
2400 \DeclareTextSymbol{\textascendercompwordmark}{TS1}{31}
2403 % The text companion symbols.
2406 \DeclareTextSymbol{\textquotestraightbase}{TS1}{13}
2410 \DeclareTextSymbol{\textquotestraightdblbase}{TS1}{18}
2411 \DeclareTextSymbol{\texttwelveudash}{TS1}{21}
2412 \DeclareTextSymbol{\textthreequartersemdash}{TS1}{22}
2416 \DeclareTextSymbol{\textleftarrow}{TS1}{24}
2417 \DeclareTextSymbol{\textrightarrow}{TS1}{25}
2421 \DeclareTextSymbol{\textblank}{TS1}{32}
2422 \DeclareTextSymbol{\textdollar}{TS1}{36}
2423 \DeclareTextSymbol{\textquotesingle}{TS1}{39}
2427 \DeclareTextSymbol{\textasteriskcentered}{TS1}{42}
2429 % Note that '054 is a comma and '056 is a full stop: these make
2430 % numbers using oldstyle digits easier to input.
2432 \DeclareTextSymbol{\textdblhyphen}{TS1}{45}
2433 \DeclareTextSymbol{\textfractionsolidus}{TS1}{47}
2440 \DeclareTextSymbol{\textzerooldstyle}{TS1}{48}
2441 \DeclareTextSymbol{\textoneoldstyle}{TS1}{49}
2442 \DeclareTextSymbol{\texttwooldstyle}{TS1}{50}
2443 \DeclareTextSymbol{\textthreeoldstyle}{TS1}{51}
2444 \DeclareTextSymbol{\textfouroldstyle}{TS1}{52}
2445 \DeclareTextSymbol{\textfiveoldstyle}{TS1}{53}
2446 \DeclareTextSymbol{\textsixoldstyle}{TS1}{54}
2447 \DeclareTextSymbol{\textsevenoldstyle}{TS1}{55}
2451 \DeclareTextSymbol{\texteightoldstyle}{TS1}{56}
2452 \DeclareTextSymbol{\textnineoldstyle}{TS1}{57}
2455 % More text companion symbols.
2458 \DeclareTextSymbol{\textlangle}{TS1}{60}
2459 \DeclareTextSymbol{\textminus}{TS1}{61}
2460 \DeclareTextSymbol{\textrangle}{TS1}{62}
2464 \DeclareTextSymbol{\textmho}{TS1}{77}
2467 % \changes{v1.9r}{1999/01/06}{Minor documentation fix.}
2468 % The big circle is here to define the command \cs{textcircled}.
2469 % Formerly it was taken from the |cmsy| font.
2470 % \changes{v1.9h}{1997/12/17}{Changed to decimal codes in \cs{ooalign}.}
2471 % \changes{v1.9k}{1998/01/12}{Adding missing braces and \cs{ushape}.}
2472 % \changes{v1.9y}{2000/01/30}{Use \cs{hmode@bgroup} where applicable
2475 \DeclareTextSymbol{\textbigcircle}{TS1}{79}
2476 \DeclareTextCommand{\textcircled}{TS1}[1]{\hmode@bgroup
2478 \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr
2479 \char 79 % '117 = "4F
2484 % More text companion symbols.
2488 \DeclareTextSymbol{\textohm}{TS1}{87}
2492 \DeclareTextSymbol{\textlbrackdbl}{TS1}{91}
2493 \DeclareTextSymbol{\textrbrackdbl}{TS1}{93}
2494 \DeclareTextSymbol{\textuparrow}{TS1}{94}
2495 \DeclareTextSymbol{\textdownarrow}{TS1}{95}
2499 \DeclareTextSymbol{\textasciigrave}{TS1}{96}
2500 \DeclareTextSymbol{\textborn}{TS1}{98}
2501 \DeclareTextSymbol{\textdivorced}{TS1}{99}
2502 \DeclareTextSymbol{\textdied}{TS1}{100}
2506 \DeclareTextSymbol{\textleaf}{TS1}{108}
2507 \DeclareTextSymbol{\textmarried}{TS1}{109}
2508 \DeclareTextSymbol{\textmusicalnote}{TS1}{110}
2512 \DeclareTextSymbol{\texttildelow}{TS1}{126}
2515 % This glyph, |\textdblhyphenchar| is hanging, like the hyphenchar of
2519 \DeclareTextSymbol{\textdblhyphenchar}{TS1}{127}
2523 \DeclareTextSymbol{\textasciibreve}{TS1}{128}
2524 \DeclareTextSymbol{\textasciicaron}{TS1}{129}
2527 % This next glyph is \emph{not} the same as |\textquotedbl|.
2529 % \changes{v1.9p}{1998/06/12}{Corrected 130 and 131, see pr/2834}
2531 \DeclareTextSymbol{\textacutedbl}{TS1}{130}
2532 \DeclareTextSymbol{\textgravedbl}{TS1}{131}
2533 \DeclareTextSymbol{\textdagger}{TS1}{132}
2534 \DeclareTextSymbol{\textdaggerdbl}{TS1}{133}
2535 \DeclareTextSymbol{\textbardbl}{TS1}{134}
2536 \DeclareTextSymbol{\textperthousand}{TS1}{135}
2540 \DeclareTextSymbol{\textbullet}{TS1}{136}
2541 \DeclareTextSymbol{\textcelsius}{TS1}{137}
2542 \DeclareTextSymbol{\textdollaroldstyle}{TS1}{138}
2543 \DeclareTextSymbol{\textcentoldstyle}{TS1}{139}
2544 \DeclareTextSymbol{\textflorin}{TS1}{140}
2545 \DeclareTextSymbol{\textcolonmonetary}{TS1}{141}
2546 \DeclareTextSymbol{\textwon}{TS1}{142}
2547 \DeclareTextSymbol{\textnaira}{TS1}{143}
2551 \DeclareTextSymbol{\textguarani}{TS1}{144}
2552 \DeclareTextSymbol{\textpeso}{TS1}{145}
2553 \DeclareTextSymbol{\textlira}{TS1}{146}
2554 \DeclareTextSymbol{\textrecipe}{TS1}{147}
2555 \DeclareTextSymbol{\textinterrobang}{TS1}{148}
2556 \DeclareTextSymbol{\textinterrobangdown}{TS1}{149}
2557 \DeclareTextSymbol{\textdong}{TS1}{150}
2558 \DeclareTextSymbol{\texttrademark}{TS1}{151}
2562 \DeclareTextSymbol{\textpertenthousand}{TS1}{152}
2563 \DeclareTextSymbol{\textpilcrow}{TS1}{153}
2564 \DeclareTextSymbol{\textbaht}{TS1}{154}
2565 \DeclareTextSymbol{\textnumero}{TS1}{155}
2567 % This next name may change.
2568 % For the following sign we know only a german name, which is
2569 % abz\"uglich. The meaning is something like ``commercial minus''.
2570 % An ASCII ersatz is ./. (dot slash dot).
2571 % The temporary English name is |\textdiscount|.
2573 \DeclareTextSymbol{\textdiscount}{TS1}{156}
2574 \DeclareTextSymbol{\textestimated}{TS1}{157}
2575 \DeclareTextSymbol{\textopenbullet}{TS1}{158}
2576 \DeclareTextSymbol{\textservicemark}{TS1}{159}
2580 \DeclareTextSymbol{\textlquill}{TS1}{160}
2581 \DeclareTextSymbol{\textrquill}{TS1}{161}
2582 \DeclareTextSymbol{\textcent}{TS1}{162}
2583 \DeclareTextSymbol{\textsterling}{TS1}{163}
2584 \DeclareTextSymbol{\textcurrency}{TS1}{164}
2585 \DeclareTextSymbol{\textyen}{TS1}{165}
2586 \DeclareTextSymbol{\textbrokenbar}{TS1}{166}
2587 \DeclareTextSymbol{\textsection}{TS1}{167}
2591 \DeclareTextSymbol{\textasciidieresis}{TS1}{168}
2592 \DeclareTextSymbol{\textcopyright}{TS1}{169}
2593 \DeclareTextSymbol{\textordfeminine}{TS1}{170}
2594 \DeclareTextSymbol{\textcopyleft}{TS1}{171}
2595 \DeclareTextSymbol{\textlnot}{TS1}{172}
2598 % The meaning of the circled-P is ``sound recording copyright''.
2600 % \changes{v1.9p}{1998/06/12}{Renamed \cs{textmacron} pr/2840}
2602 \DeclareTextSymbol{\textcircledP}{TS1}{173}
2603 \DeclareTextSymbol{\textregistered}{TS1}{174}
2604 \DeclareTextSymbol{\textasciimacron}{TS1}{175}
2608 \DeclareTextSymbol{\textdegree}{TS1}{176}
2609 \DeclareTextSymbol{\textpm}{TS1}{177}
2610 \DeclareTextSymbol{\texttwosuperior}{TS1}{178}
2611 \DeclareTextSymbol{\textthreesuperior}{TS1}{179}
2612 \DeclareTextSymbol{\textasciiacute}{TS1}{180}
2613 \DeclareTextSymbol{\textmu}{TS1}{181} % micro sign
2614 \DeclareTextSymbol{\textparagraph}{TS1}{182}
2615 \DeclareTextSymbol{\textperiodcentered}{TS1}{183}
2619 \DeclareTextSymbol{\textreferencemark}{TS1}{184}
2620 \DeclareTextSymbol{\textonesuperior}{TS1}{185}
2621 \DeclareTextSymbol{\textordmasculine}{TS1}{186}
2622 \DeclareTextSymbol{\textsurd}{TS1}{187}
2623 \DeclareTextSymbol{\textonequarter}{TS1}{188}
2624 \DeclareTextSymbol{\textonehalf}{TS1}{189}
2625 \DeclareTextSymbol{\textthreequarters}{TS1}{190}
2626 \DeclareTextSymbol{\texteuro}{TS1}{191}
2630 \DeclareTextSymbol{\texttimes}{TS1}{214}
2634 \DeclareTextSymbol{\textdiv}{TS1}{246}
2638 % \subsection{Definitions for the TU encoding}
2640 % \changes{v2.0a}{2016/12/11/04}{Added TU encoding}
2642 % The TU encoding was originally introduced in the contributed
2643 % \texttt{fontspec} package as a Unicode encoding fro XeTeX and
2646 % often with these engines data is added a UTF-8 encoded Unicode
2647 % characters and so there is less need for traditional encoding
2648 % specific commands, however it is often useful to have access to the
2649 % commands via traditional ASCII based markup, and the commands here
2650 % Cover the characters in the T1 and TS1 encodings, but specified in
2651 % Unicode position. Almost all the command names have been
2652 % mechanically extracted form the \texttt{inputenc} UTF-8 support,
2653 % which is essentially doing a reverse mapping from UTF-8 data to
2654 % \LaTeX\ LICR commands.
2656 % A few additional names for character which were supported in the
2657 % original \texttt{fontspec} version of this file have also been
2658 % added, even though they are not currently supported in the default
2659 % \texttt{inputenc} UTF-8 declarations.
2664 % As the Unicode encoding, TU, is only currently available with XeTeX
2665 % or LuaTeX, we detect these engines first, and make adjustments to
2666 % differing font loading syntax. For other engines, issue a warning
2667 % Then abort this file, switching back to T1 encoding.
2669 \begingroup\expandafter\expandafter\expandafter\endgroup
2670 \expandafter\ifx\csname XeTeXrevision\endcsname\relax
2674 \begingroup\expandafter\expandafter\expandafter\endgroup
2675 \expandafter\ifx\csname directlua\endcsname\relax
2678 % Not LuaTeX or XeTeX, abort with a warning.
2680 \PackageWarningNoLine{fontenc}
2681 {TU encoding is only available with XeTeX and LuaTeX}
2682 \def\encodingdefault{T1}
2683 \expandafter\expandafter\expandafter\endinput
2692 \def\UnicodeFontTeXLigatures{mapping=tex-text;}
2699 \def\UnicodeFontTeXLigatures{+tlig;} % "+trep;" no longer needed
2707 \def\UnicodeFontFile#1#2{"[#1]:#2"}
2708 \def\UnicodeFontName#1#2{"#1:#2"}
2711 % Declare the encoding
2713 \DeclareFontEncoding{TU}{}{}
2716 % Declare accent command to use a postpended combining character
2717 % rather than the TeX |\accent| primitive
2719 \def\add@unicode@accent#1#2{#2\char#1\relax}
2723 \def\DeclareUnicodeAccent#1#2#3{%
2724 \DeclareTextCommand{#1}{#2}{\add@unicode@accent{#3}}%
2729 \DeclareTextSymbol{\textexclamdown}{TU}{"00A1}
2730 \DeclareTextSymbol{\textcent}{TU}{"00A2}
2731 \DeclareTextSymbol{\textsterling}{TU}{"00A3}
2732 \DeclareTextSymbol{\textcurrency}{TU}{"00A4}
2733 \DeclareTextSymbol{\textyen}{TU}{"00A5}
2734 \DeclareTextSymbol{\textbrokenbar}{TU}{"00A6}
2735 \DeclareTextSymbol{\textsection}{TU}{"00A7}
2736 \DeclareTextSymbol{\textasciidieresis}{TU}{"00A8}
2737 \DeclareTextSymbol{\textcopyright}{TU}{"00A9}
2738 \DeclareTextSymbol{\textordfeminine}{TU}{"00AA}
2739 \DeclareTextSymbol{\guillemotleft}{TU}{"00AB}
2740 \DeclareTextSymbol{\textlnot}{TU}{"00AC}
2741 \DeclareTextSymbol{\textregistered}{TU}{"00AE}
2742 \DeclareTextSymbol{\textasciimacron}{TU}{"00AF}
2743 \DeclareTextSymbol{\textdegree}{TU}{"00B0}
2744 \DeclareTextSymbol{\textpm}{TU}{"00B1}
2745 \DeclareTextSymbol{\texttwosuperior}{TU}{"00B2}
2746 \DeclareTextSymbol{\textthreesuperior}{TU}{"00B3}
2747 \DeclareTextSymbol{\textasciiacute}{TU}{"00B4}
2748 \DeclareTextSymbol{\textmu}{TU}{"00B5}
2749 \DeclareTextSymbol{\textparagraph}{TU}{"00B6}
2750 \DeclareTextSymbol{\textperiodcentered}{TU}{"00B7}
2751 \DeclareTextSymbol{\textonesuperior}{TU}{"00B9}
2752 \DeclareTextSymbol{\textordmasculine}{TU}{"00BA}
2753 \DeclareTextSymbol{\guillemotright}{TU}{"00BB}
2754 \DeclareTextSymbol{\textonequarter}{TU}{"00BC}
2755 \DeclareTextSymbol{\textonehalf}{TU}{"00BD}
2756 \DeclareTextSymbol{\textthreequarters}{TU}{"00BE}
2757 \DeclareTextSymbol{\textquestiondown}{TU}{"00BF}
2758 \DeclareTextComposite{\`}{TU}{A}{"00C0}
2759 \DeclareTextComposite{\'}{TU}{A}{"00C1}
2760 \DeclareTextComposite{\^}{TU}{A}{"00C2}
2761 \DeclareTextComposite{\~}{TU}{A}{"00C3}
2762 \DeclareTextComposite{\"}{TU}{A}{"00C4}
2763 \DeclareTextComposite{\r}{TU}{A}{"00C5}
2764 \DeclareTextSymbol{\AE}{TU}{"00C6}
2765 \DeclareTextComposite{\c}{TU}{C}{"00C7}
2766 \DeclareTextComposite{\`}{TU}{E}{"00C8}
2767 \DeclareTextComposite{\'}{TU}{E}{"00C9}
2768 \DeclareTextComposite{\^}{TU}{E}{"00CA}
2769 \DeclareTextComposite{\"}{TU}{E}{"00CB}
2770 \DeclareTextComposite{\`}{TU}{I}{"00CC}
2771 \DeclareTextComposite{\'}{TU}{I}{"00CD}
2772 \DeclareTextComposite{\^}{TU}{I}{"00CE}
2773 \DeclareTextComposite{\"}{TU}{I}{"00CF}
2774 \DeclareTextSymbol{\DH}{TU}{"00D0}
2775 \DeclareTextComposite{\~}{TU}{N}{"00D1}
2776 \DeclareTextComposite{\`}{TU}{O}{"00D2}
2777 \DeclareTextComposite{\'}{TU}{O}{"00D3}
2778 \DeclareTextComposite{\^}{TU}{O}{"00D4}
2779 \DeclareTextComposite{\~}{TU}{O}{"00D5}
2780 \DeclareTextComposite{\"}{TU}{O}{"00D6}
2781 \DeclareTextSymbol{\texttimes}{TU}{"00D7}
2782 \DeclareTextSymbol{\O}{TU}{"00D8}
2783 \DeclareTextComposite{\`}{TU}{U}{"00D9}
2784 \DeclareTextComposite{\'}{TU}{U}{"00DA}
2785 \DeclareTextComposite{\^}{TU}{U}{"00DB}
2786 \DeclareTextComposite{\"}{TU}{U}{"00DC}
2787 \DeclareTextComposite{\'}{TU}{Y}{"00DD}
2788 \DeclareTextSymbol{\TH}{TU}{"00DE}
2789 \DeclareTextSymbol{\ss}{TU}{"00DF}
2790 \DeclareTextComposite{\`}{TU}{a}{"00E0}
2791 \DeclareTextComposite{\'}{TU}{a}{"00E1}
2792 \DeclareTextComposite{\^}{TU}{a}{"00E2}
2793 \DeclareTextComposite{\~}{TU}{a}{"00E3}
2794 \DeclareTextComposite{\"}{TU}{a}{"00E4}
2795 \DeclareTextComposite{\r}{TU}{a}{"00E5}
2796 \DeclareTextSymbol{\ae}{TU}{"00E6}
2797 \DeclareTextComposite{\c}{TU}{c}{"00E7}
2798 \DeclareTextComposite{\`}{TU}{e}{"00E8}
2799 \DeclareTextComposite{\'}{TU}{e}{"00E9}
2800 \DeclareTextComposite{\^}{TU}{e}{"00EA}
2801 \DeclareTextComposite{\"}{TU}{e}{"00EB}
2802 \DeclareTextComposite{\`}{TU}{\i}{"00EC}
2803 \DeclareTextComposite{\'}{TU}{\i}{"00ED}
2804 \DeclareTextComposite{\^}{TU}{\i}{"00EE}
2805 \DeclareTextComposite{\"}{TU}{\i}{"00EF}
2806 \DeclareTextSymbol{\dh}{TU}{"00F0}
2807 \DeclareTextComposite{\~}{TU}{n}{"00F1}
2808 \DeclareTextComposite{\`}{TU}{o}{"00F2}
2809 \DeclareTextComposite{\'}{TU}{o}{"00F3}
2810 \DeclareTextComposite{\^}{TU}{o}{"00F4}
2811 \DeclareTextComposite{\~}{TU}{o}{"00F5}
2812 \DeclareTextComposite{\"}{TU}{o}{"00F6}
2813 \DeclareTextSymbol{\textdiv}{TU}{"00F7}
2814 \DeclareTextSymbol{\o}{TU}{"00F8}
2815 \DeclareTextComposite{\`}{TU}{u}{"00F9}
2816 \DeclareTextComposite{\'}{TU}{u}{"00FA}
2817 \DeclareTextComposite{\^}{TU}{u}{"00FB}
2818 \DeclareTextComposite{\"}{TU}{u}{"00FC}
2819 \DeclareTextComposite{\'}{TU}{y}{"00FD}
2820 \DeclareTextSymbol{\th}{TU}{"00FE}
2821 \DeclareTextComposite{\"}{TU}{y}{"00FF}
2822 \DeclareTextComposite{\=}{TU}{A}{"0100}
2823 \DeclareTextComposite{\=}{TU}{a}{"0101}
2824 \DeclareTextComposite{\u}{TU}{A}{"0102}
2825 \DeclareTextComposite{\u}{TU}{a}{"0103}
2826 \DeclareTextComposite{\k}{TU}{A}{"0104}
2827 \DeclareTextComposite{\k}{TU}{a}{"0105}
2828 \DeclareTextComposite{\'}{TU}{C}{"0106}
2829 \DeclareTextComposite{\'}{TU}{c}{"0107}
2830 \DeclareTextComposite{\^}{TU}{C}{"0108}
2831 \DeclareTextComposite{\^}{TU}{c}{"0109}
2832 \DeclareTextComposite{\.}{TU}{C}{"010A}
2833 \DeclareTextComposite{\.}{TU}{c}{"010B}
2834 \DeclareTextComposite{\v}{TU}{C}{"010C}
2835 \DeclareTextComposite{\v}{TU}{c}{"010D}
2836 \DeclareTextComposite{\v}{TU}{D}{"010E}
2837 \DeclareTextComposite{\v}{TU}{d}{"010F}
2838 \DeclareTextSymbol{\DJ}{TU}{"0110}
2839 \DeclareTextSymbol{\dj}{TU}{"0111}
2840 \DeclareTextComposite{\=}{TU}{E}{"0112}
2841 \DeclareTextComposite{\=}{TU}{e}{"0113}
2842 \DeclareTextComposite{\u}{TU}{E}{"0114}
2843 \DeclareTextComposite{\u}{TU}{e}{"0115}
2844 \DeclareTextComposite{\.}{TU}{E}{"0116}
2845 \DeclareTextComposite{\.}{TU}{e}{"0117}
2846 \DeclareTextComposite{\k}{TU}{E}{"0118}
2847 \DeclareTextComposite{\k}{TU}{e}{"0119}
2848 \DeclareTextComposite{\v}{TU}{E}{"011A}
2849 \DeclareTextComposite{\v}{TU}{e}{"011B}
2850 \DeclareTextComposite{\^}{TU}{G}{"011C}
2851 \DeclareTextComposite{\^}{TU}{g}{"011D}
2852 \DeclareTextComposite{\u}{TU}{G}{"011E}
2853 \DeclareTextComposite{\u}{TU}{g}{"011F}
2854 \DeclareTextComposite{\.}{TU}{G}{"0120}
2855 \DeclareTextComposite{\.}{TU}{g}{"0121}
2856 \DeclareTextComposite{\c}{TU}{G}{"0122}
2857 \DeclareTextComposite{\c}{TU}{g}{"0123}
2858 \DeclareTextComposite{\^}{TU}{H}{"0124}
2859 \DeclareTextComposite{\^}{TU}{h}{"0125}
2860 \DeclareTextComposite{\~}{TU}{I}{"0128}
2861 \DeclareTextComposite{\~}{TU}{\i}{"0129}
2862 \DeclareTextComposite{\=}{TU}{I}{"012A}
2863 \DeclareTextComposite{\=}{TU}{\i}{"012B}
2864 \DeclareTextComposite{\u}{TU}{I}{"012C}
2865 \DeclareTextComposite{\u}{TU}{\i}{"012D}
2866 \DeclareTextComposite{\k}{TU}{I}{"012E}
2867 \DeclareTextComposite{\k}{TU}{\i}{"012F}
2868 \DeclareTextComposite{\.}{TU}{I}{"0130}
2869 \DeclareTextSymbol{\i}{TU}{"0131}
2870 \DeclareTextSymbol{\IJ}{TU}{"0132}
2871 \DeclareTextSymbol{\ij}{TU}{"0133}
2872 \DeclareTextComposite{\^}{TU}{J}{"0134}
2873 \DeclareTextComposite{\^}{TU}{\j}{"0135}
2874 \DeclareTextComposite{\c}{TU}{K}{"0136}
2875 \DeclareTextComposite{\c}{TU}{k}{"0137}
2876 \DeclareTextComposite{\'}{TU}{L}{"0139}
2877 \DeclareTextComposite{\'}{TU}{l}{"013A}
2878 \DeclareTextComposite{\c}{TU}{L}{"013B}
2879 \DeclareTextComposite{\c}{TU}{l}{"013C}
2880 \DeclareTextComposite{\v}{TU}{L}{"013D}
2881 \DeclareTextComposite{\v}{TU}{l}{"013E}
2882 \DeclareTextSymbol{\L}{TU}{"0141}
2883 \DeclareTextSymbol{\l}{TU}{"0142}
2884 \DeclareTextComposite{\'}{TU}{N}{"0143}
2885 \DeclareTextComposite{\'}{TU}{n}{"0144}
2886 \DeclareTextComposite{\c}{TU}{N}{"0145}
2887 \DeclareTextComposite{\c}{TU}{n}{"0146}
2888 \DeclareTextComposite{\v}{TU}{N}{"0147}
2889 \DeclareTextComposite{\v}{TU}{n}{"0148}
2890 \DeclareTextSymbol{\NG}{TU}{"014A}
2891 \DeclareTextSymbol{\ng}{TU}{"014B}
2892 \DeclareTextComposite{\=}{TU}{O}{"014C}
2893 \DeclareTextComposite{\=}{TU}{o}{"014D}
2894 \DeclareTextComposite{\u}{TU}{O}{"014E}
2895 \DeclareTextComposite{\u}{TU}{o}{"014F}
2896 \DeclareTextComposite{\H}{TU}{O}{"0150}
2897 \DeclareTextComposite{\H}{TU}{o}{"0151}
2898 \DeclareTextSymbol{\OE}{TU}{"0152}
2899 \DeclareTextSymbol{\oe}{TU}{"0153}
2900 \DeclareTextComposite{\'}{TU}{R}{"0154}
2901 \DeclareTextComposite{\'}{TU}{r}{"0155}
2902 \DeclareTextComposite{\c}{TU}{R}{"0156}
2903 \DeclareTextComposite{\c}{TU}{r}{"0157}
2904 \DeclareTextComposite{\v}{TU}{R}{"0158}
2905 \DeclareTextComposite{\v}{TU}{r}{"0159}
2906 \DeclareTextComposite{\'}{TU}{S}{"015A}
2907 \DeclareTextComposite{\'}{TU}{s}{"015B}
2908 \DeclareTextComposite{\^}{TU}{S}{"015C}
2909 \DeclareTextComposite{\^}{TU}{s}{"015D}
2910 \DeclareTextComposite{\c}{TU}{S}{"015E}
2911 \DeclareTextComposite{\c}{TU}{s}{"015F}
2912 \DeclareTextComposite{\v}{TU}{S}{"0160}
2913 \DeclareTextComposite{\v}{TU}{s}{"0161}
2914 \DeclareTextComposite{\c}{TU}{T}{"0162}
2915 \DeclareTextComposite{\c}{TU}{t}{"0163}
2916 \DeclareTextComposite{\v}{TU}{T}{"0164}
2917 \DeclareTextComposite{\v}{TU}{t}{"0165}
2918 \DeclareTextComposite{\~}{TU}{U}{"0168}
2919 \DeclareTextComposite{\~}{TU}{u}{"0169}
2920 \DeclareTextComposite{\=}{TU}{U}{"016A}
2921 \DeclareTextComposite{\=}{TU}{u}{"016B}
2922 \DeclareTextComposite{\u}{TU}{U}{"016C}
2923 \DeclareTextComposite{\u}{TU}{u}{"016D}
2924 \DeclareTextComposite{\r}{TU}{U}{"016E}
2925 \DeclareTextComposite{\r}{TU}{u}{"016F}
2926 \DeclareTextComposite{\H}{TU}{U}{"0170}
2927 \DeclareTextComposite{\H}{TU}{u}{"0171}
2928 \DeclareTextComposite{\k}{TU}{U}{"0172}
2929 \DeclareTextComposite{\k}{TU}{u}{"0173}
2930 \DeclareTextComposite{\^}{TU}{W}{"0174}
2931 \DeclareTextComposite{\^}{TU}{w}{"0175}
2932 \DeclareTextComposite{\^}{TU}{Y}{"0176}
2933 \DeclareTextComposite{\^}{TU}{y}{"0177}
2934 \DeclareTextComposite{\"}{TU}{Y}{"0178}
2935 \DeclareTextComposite{\'}{TU}{Z}{"0179}
2936 \DeclareTextComposite{\'}{TU}{z}{"017A}
2937 \DeclareTextComposite{\.}{TU}{Z}{"017B}
2938 \DeclareTextComposite{\.}{TU}{z}{"017C}
2939 \DeclareTextComposite{\v}{TU}{Z}{"017D}
2940 \DeclareTextComposite{\v}{TU}{z}{"017E}
2941 \DeclareTextSymbol{\textflorin}{TU}{"0192}
2942 \DeclareTextComposite{\v}{TU}{A}{"01CD}
2943 \DeclareTextComposite{\v}{TU}{a}{"01CE}
2944 \DeclareTextComposite{\v}{TU}{I}{"01CF}
2945 \DeclareTextComposite{\v}{TU}{\i}{"01D0}
2946 \DeclareTextComposite{\v}{TU}{O}{"01D1}
2947 \DeclareTextComposite{\v}{TU}{o}{"01D2}
2948 \DeclareTextComposite{\v}{TU}{U}{"01D3}
2949 \DeclareTextComposite{\v}{TU}{u}{"01D4}
2950 \DeclareTextComposite{\=}{TU}{\AE}{"01E2}
2951 \DeclareTextComposite{\=}{TU}{\ae}{"01E3}
2952 \DeclareTextComposite{\v}{TU}{G}{"01E6}
2953 \DeclareTextComposite{\v}{TU}{g}{"01E7}
2954 \DeclareTextComposite{\v}{TU}{K}{"01E8}
2955 \DeclareTextComposite{\v}{TU}{k}{"01E9}
2956 \DeclareTextComposite{\k}{TU}{O}{"01EA}
2957 \DeclareTextComposite{\k}{TU}{o}{"01EB}
2958 \DeclareTextComposite{\v}{TU}{\j}{"01F0}
2959 \DeclareTextComposite{\'}{TU}{G}{"01F4}
2960 \DeclareTextComposite{\'}{TU}{g}{"01F5}
2961 \DeclareTextComposite{\textcommabelow}{TU}{S}{"0218}
2962 \DeclareTextComposite{\textcommabelow}{TU}{s}{"0219}
2963 \DeclareTextComposite{\textcommabelow}{TU}{T}{"021A}
2964 \DeclareTextComposite{\textcommabelow}{TU}{t}{"021B}
2965 \DeclareTextSymbol{\j}{TU}{"0237}
2966 \DeclareTextSymbol{\textasciicircum}{TU}{"02C6}
2967 \DeclareTextSymbol{\textasciicaron}{TU}{"02C7}
2968 \DeclareTextSymbol{\textasciitilde}{TU}{"02DC}
2969 \DeclareTextSymbol{\textasciibreve}{TU}{"02D8}
2970 \DeclareTextSymbol{\textacutedbl}{TU}{"02DD}
2971 \DeclareTextSymbol{\textgravedbl}{TU}{"02F5}
2972 \DeclareTextSymbol{\texttildelow}{TU}{"02F7}
2973 \DeclareUnicodeAccent{\`}{TU}{"0300}
2974 \DeclareUnicodeAccent{\'}{TU}{"0301}
2975 \DeclareUnicodeAccent{\^}{TU}{"0302}
2976 \DeclareUnicodeAccent{\~}{TU}{"0303}
2977 \DeclareUnicodeAccent{\"}{TU}{"0308}
2978 \DeclareUnicodeAccent{\H}{TU}{"030B}
2979 \DeclareUnicodeAccent{\r}{TU}{"030A}
2980 \DeclareUnicodeAccent{\v}{TU}{"030C}
2981 \DeclareUnicodeAccent{\u}{TU}{"0306}
2982 \DeclareUnicodeAccent{\=}{TU}{"0304}
2983 \DeclareUnicodeAccent{\.}{TU}{"0307}
2984 \DeclareUnicodeAccent{\b}{TU}{"0332}
2985 \DeclareUnicodeAccent{\c}{TU}{"0327}
2986 \DeclareUnicodeAccent{\d}{TU}{"0323}
2987 \DeclareUnicodeAccent{\k}{TU}{"0328}
2988 \DeclareTextSymbol{\textbaht}{TU}{"0E3F}
2989 \DeclareTextComposite{\.}{TU}{B}{"1E02}
2990 \DeclareTextComposite{\.}{TU}{b}{"1E03}
2991 \DeclareTextSymbol{\SS}{TU}{"1E9E}
2992 \DeclareTextSymbol{\textcompwordmark}{TU}{"200C}
2993 \DeclareTextSymbol{\textendash}{TU}{"2012}
2994 \DeclareTextSymbol{\textendash}{TU}{"2013}
2995 \DeclareTextSymbol{\textemdash}{TU}{"2014}
2996 \DeclareTextSymbol{\textemdash}{TU}{"2015}
2997 \DeclareTextSymbol{\textbardbl}{TU}{"2016}
2998 \DeclareTextSymbol{\textquoteleft}{TU}{"2018}
2999 \DeclareTextSymbol{\textquoteright}{TU}{"2019}
3000 \DeclareTextSymbol{\quotesinglbase}{TU}{"201A}
3001 \DeclareTextSymbol{\textquotedblleft}{TU}{"201C}
3002 \DeclareTextSymbol{\textquotedblright}{TU}{"201D}
3003 \DeclareTextSymbol{\quotedblbase}{TU}{"201E}
3004 \DeclareTextSymbol{\textdagger}{TU}{"2020}
3005 \DeclareTextSymbol{\textdaggerdbl}{TU}{"2021}
3006 \DeclareTextSymbol{\textbullet}{TU}{"2022}
3007 \DeclareTextSymbol{\textellipsis}{TU}{"2026}
3008 \DeclareTextSymbol{\textperthousand}{TU}{"2030}
3009 \DeclareTextSymbol{\textpertenthousand}{TU}{"2031}
3010 \DeclareTextSymbol{\guilsinglleft}{TU}{"2039}
3011 \DeclareTextSymbol{\guilsinglright}{TU}{"203A}
3012 \DeclareTextSymbol{\textreferencemark}{TU}{"203B}
3013 \DeclareTextSymbol{\textinterrobang}{TU}{"203D}
3014 \DeclareTextSymbol{\textfractionsolidus}{TU}{"2044}
3015 \DeclareTextSymbol{\textlquill}{TU}{"2045}
3016 \DeclareTextSymbol{\textrquill}{TU}{"2046}
3017 \DeclareTextSymbol{\textasteriskcentered}{TU}{"204E}
3018 \DeclareTextSymbol{\textdiscount}{TU}{"2052}
3019 \DeclareTextSymbol{\textcolonmonetary}{TU}{"20A1}
3020 \DeclareTextSymbol{\textlira}{TU}{"20A4}
3021 \DeclareTextSymbol{\textnaira}{TU}{"20A6}
3022 \DeclareTextSymbol{\textwon}{TU}{"20A9}
3023 \DeclareTextSymbol{\textdong}{TU}{"20AB}
3024 \DeclareTextSymbol{\texteuro}{TU}{"20AC}
3025 \DeclareTextSymbol{\textpeso}{TU}{"20B1}
3026 \DeclareTextSymbol{\textcelsius}{TU}{"2103}
3027 \DeclareTextSymbol{\textnumero}{TU}{"2116}
3028 \DeclareTextSymbol{\textcircledP}{TU}{"2117}
3029 \DeclareTextSymbol{\textrecipe}{TU}{"211E}
3030 \DeclareTextSymbol{\textservicemark}{TU}{"2120}
3031 \DeclareTextSymbol{\texttrademark}{TU}{"2122}
3032 \DeclareTextSymbol{\textohm}{TU}{"2126}
3033 \DeclareTextSymbol{\textmho}{TU}{"2127}
3034 \DeclareTextSymbol{\textestimated}{TU}{"212E}
3035 \DeclareTextSymbol{\textleftarrow}{TU}{"2190}
3036 \DeclareTextSymbol{\textuparrow}{TU}{"2191}
3037 \DeclareTextSymbol{\textrightarrow}{TU}{"2192}
3038 \DeclareTextSymbol{\textdownarrow}{TU}{"2193}
3039 \DeclareTextSymbol{\textminus}{TU}{"2212}
3040 \DeclareTextSymbol{\textsurd}{TU}{"221A}
3041 \DeclareTextSymbol{\textlangle}{TU}{"2329}
3042 \DeclareTextSymbol{\textrangle}{TU}{"232A}
3043 \DeclareTextSymbol{\textblank}{TU}{"2422}
3044 \DeclareTextSymbol{\textvisiblespace}{TU}{"2423}
3045 \DeclareTextSymbol{\textopenbullet}{TU}{"25E6}
3046 \DeclareTextSymbol{\textbigcircle}{TU}{"25EF}
3047 \DeclareTextSymbol{\textmusicalnote}{TU}{"266A}
3048 \DeclareTextSymbol{\textmarried}{TU}{"26AD}
3049 \DeclareTextSymbol{\textdivorced}{TU}{"26AE}
3050 \DeclareTextSymbol{\textinterrobangdown}{TU}{"2E18}
3057 % \section{Package files}
3059 % \changes{v1.9h}{1997/12/17}{Added section.}
3060 % \changes{v1.9h}{1997/12/17}{Added code for textcomp.sty.}
3061 % This file now also contains some packages that provide access to
3062 % the more specialised encodings.
3064 % \subsection{The fontenc package}
3066 % \changes{v1.5c}{1994/05/14}{Added the fontenc package}
3067 % \changes{v1.5g}{1994/05/16}{Removed the lowercasing of the filename.}
3068 % \changes{v1.7a}{1994/11/30}{Always load the enc.def file, so that
3069 % the default encoding for the commands will change.}
3070 % \changes{v1.7x}{1996/05/18}{Produce error if encoding not found.
3072 % \changes{v1.7y}{1996/05/21}{Corrected error message (CAR)}
3073 % \changes{v1.8d}{1996/11/18}
3074 % {(DPC) lowercase external file names. internal/1044}%
3075 % This package allows authors to specify which encodings they will use.
3076 % For each encoding |FOO|, the package looks to see if the encoding
3077 % |FOO| has already been declared. If it has not, the file |fooenc.def|
3078 % is loaded. The default encoding is set to be |FOO|.
3080 % In addition the package at the moment contains extra code to extend
3081 % the |\@uclclist| (list of upper/lower case pairs) for encodings that
3082 % involve cyrillic characters. THIS IS A TEMPORARY SOLUTION and will not
3083 % stay this way forever (or so we hope) but right now we are missing a
3084 % proper interface for this and didn't wanted to rush it.
3085 % \changes{v1.9r}{1999/01/07}{Hackery to temp support cyrillic uc/lc}
3086 % \changes{v1.9t}{1999/02/24}{Corrected hackery cyrillic uc/lc list}
3087 % \changes{v1.9x}{1999/12/08}{Changed \cs{CYRRHOOK} and \cs{cyrrhook}
3088 % to\cs{CYRRHK} and \cs{cyrrhk} as name changed in the cyrillic
3089 % bundle for naming consistency with other ``hook'' glyphs.}
3094 % Here we define a macro that extends the |\@uclclist| if needed and
3095 % afterwards turns itself in a noop.
3097 \def\update@uclc@with@cyrillic{%
3098 \expandafter\def\expandafter\@uclclist\expandafter
3100 \cyra\CYRA\cyrabhch\CYRABHCH\cyrabhchdsc\CYRABHCHDSC\cyrabhdze
3101 \CYRABHDZE\cyrabhha\CYRABHHA\cyrae\CYRAE\cyrb\CYRB\cyrbyus
3102 \CYRBYUS\cyrc\CYRC\cyrch\CYRCH\cyrchldsc\CYRCHLDSC\cyrchrdsc
3103 \CYRCHRDSC\cyrchvcrs\CYRCHVCRS\cyrd\CYRD\cyrdelta\CYRDELTA
3104 \cyrdje\CYRDJE\cyrdze\CYRDZE\cyrdzhe\CYRDZHE\cyre\CYRE\cyreps
3105 \CYREPS\cyrerev\CYREREV\cyrery\CYRERY\cyrf\CYRF\cyrfita
3106 \CYRFITA\cyrg\CYRG\cyrgdsc\CYRGDSC\cyrgdschcrs\CYRGDSCHCRS
3107 \cyrghcrs\CYRGHCRS\cyrghk\CYRGHK\cyrgup\CYRGUP\cyrh\CYRH
3108 \cyrhdsc\CYRHDSC\cyrhhcrs\CYRHHCRS\cyrhhk\CYRHHK\cyrhrdsn
3109 \CYRHRDSN\cyri\CYRI\cyrie\CYRIE\cyrii\CYRII\cyrishrt\CYRISHRT
3110 \cyrishrtdsc\CYRISHRTDSC\cyrizh\CYRIZH\cyrje\CYRJE\cyrk\CYRK
3111 \cyrkbeak\CYRKBEAK\cyrkdsc\CYRKDSC\cyrkhcrs\CYRKHCRS\cyrkhk
3112 \CYRKHK\cyrkvcrs\CYRKVCRS\cyrl\CYRL\cyrldsc\CYRLDSC\cyrlhk
3113 \CYRLHK\cyrlje\CYRLJE\cyrm\CYRM\cyrmdsc\CYRMDSC\cyrmhk\CYRMHK
3114 \cyrn\CYRN\cyrndsc\CYRNDSC\cyrng\CYRNG\cyrnhk\CYRNHK\cyrnje
3115 \CYRNJE\cyrnlhk\CYRNLHK\cyro\CYRO\cyrotld\CYROTLD\cyrp\CYRP
3116 \cyrphk\CYRPHK\cyrq\CYRQ\cyrr\CYRR\cyrrdsc\CYRRDSC\cyrrhk
3117 \CYRRHK\cyrrtick\CYRRTICK\cyrs\CYRS\cyrsacrs\CYRSACRS
3118 \cyrschwa\CYRSCHWA\cyrsdsc\CYRSDSC\cyrsemisftsn\CYRSEMISFTSN
3119 \cyrsftsn\CYRSFTSN\cyrsh\CYRSH\cyrshch\CYRSHCH\cyrshha\CYRSHHA
3120 \cyrt\CYRT\cyrtdsc\CYRTDSC\cyrtetse\CYRTETSE\cyrtshe\CYRTSHE
3121 \cyru\CYRU\cyrushrt\CYRUSHRT\cyrv\CYRV\cyrw\CYRW\cyry\CYRY
3122 \cyrya\CYRYA\cyryat\CYRYAT\cyryhcrs\CYRYHCRS\cyryi\CYRYI\cyryo
3123 \CYRYO\cyryu\CYRYU\cyrz\CYRZ\cyrzdsc\CYRZDSC\cyrzh\CYRZH
3124 \cyrzhdsc\CYRZHDSC}%
3125 \let\update@uclc@with@cyrillic\relax
3129 % Here we process each option:
3132 \let\encodingdefault\CurrentOption
3134 \lowercase{\def\noexpand\reserved@f{\CurrentOption enc.def}}}%
3136 \InputIfFileExists\reserved@f
3137 {}{\PackageError{fontenc}%
3138 {Encoding file `\reserved@f' not found.%
3140 You might have misspelt the name of the encoding}%
3141 {Necessary code for this encoding was not
3142 loaded.\MessageBreak
3143 Thus calling the encoding later on will
3144 produce further error messages.}}%
3145 \let\reserved@f\relax
3148 % In case the current encoding is one of a list of known
3149 % cyrillic ones we extend the |\@uclclist|:
3151 \expandafter\in@\expandafter{\CurrentOption}%
3152 {T2A,T2B,T2C,X2,LCY,OT2}%
3156 % But only if it hasn't already been extended. This might happen if
3157 % there are several calls to fontenc loading one of the above
3158 % encodings. If we don't do this check the |\@uclclist| gets
3159 % unnecessarily big, slowing down the processing at runtime.
3160 % \changes{v1.9v}{1999/06/12}{Extend \cs{@uclclist} only once}
3162 \expandafter\in@\expandafter\cyra\expandafter
3166 \update@uclc@with@cyrillic
3177 \fontencoding\encodingdefault\selectfont
3180 % To save some space we get rid of the macro extending the
3181 % |\@uclclist| (might have happened already).
3183 \let\update@uclc@with@cyrillic\relax
3186 % Finally we pretend that the fontenc package wasn't read in. This
3187 % allows for using it several times, e.g., in a class file and in the
3188 % preamble (at the cost of not getting any version info).
3189 % That kind of hackery shows that using a general purpose
3190 % package just for loading an encoding is not the right kind
3191 % of interface for setting up encodings --- it will get replaced at
3192 % some point in the future.
3193 % \changes{v1.9r}{1999/01/07}{Hackery to allow using fontenc several
3195 % \changes{v1.9u}{1999/06/10}{Ensure that we also forget old options
3198 \global\expandafter\let\csname ver@fontenc.sty\endcsname\relax
3199 \global\expandafter\let\csname opt@fontenc.sty\endcsname\relax
3200 \global\let\@ifl@ter@@\@ifl@ter
3201 \def\@ifl@ter#1#2#3#4#5{\global\let\@ifl@ter\@ifl@ter@@}
3206 % \subsection{The textcomp package}
3208 % This one is for the |TS1| encoding which contains text symbols
3209 % for use with the |T1|-encoded text fonts. It therefore first
3210 % inputs the file |TS1enc.def| and then sets (or resets) the
3211 % defaults for the symbols it contains. The result of this is that
3212 % when one of these symbols is accessed and the current encoding
3213 % does not provide it, the symbol will be supplied by a silent,
3214 % local change to this encoding.
3219 % Since many PostScript fonts only implement a subset of |TS1| many
3220 % commands only produce black blobs of ink. To resolve the
3221 % resulting problems a number of options have been introduced and
3222 % some code has been developed to distinguish sub-encodings.
3224 % The sub-encodings have a numerical id and are defined as follows
3226 % \begin{description}
3228 % \item[\#5] those \texttt{TS1} symbols that are also in the ISO-Adobe
3229 % character set; without \verb=textcurrency=, which is often
3230 % misused for the Euro. Older Type1 fonts from the non-\TeX{}
3231 % world provide only this subset.
3233 % \item[\#4] = \#5 + \verb=\texteuro=. Most newer fonts provide this.
3235 % \item[\#3] = \#4 + \verb=\textomega=. Can also be described as
3236 % $\texttt{TS1} \cap (\texttt{ISO-Adobe} \cup
3237 % \texttt{MacRoman})$. (Except for the missing "currency".)
3240 % \item[\#2] = \#3 + \verb=\textestimated= + \verb=\textcurrency=. Can
3241 % also be described as $\texttt{TS1} \cap
3242 % \texttt{Adobe-Western-2}$. This may be relevant for OpenType
3243 % fonts, which usually show the Adobe-Western-2 character set.
3245 % \item[\#1] = \texttt{TS1} without \verb=\textcircled= and \verb=\t=.
3246 % These two glyphs are often not implemented and if their kernel
3247 % defaults are changed commands like \verb=\copyright=
3248 % unnecessarily fail.
3250 % \item[\#0] = full \texttt{TS1}
3253 % And here a summary to go in the transcript file:
3255 \PackageInfo{textcomp}{Sub-encoding information:\MessageBreak
3256 \space\space 5 = only ISO-Adobe without
3257 \string\textcurrency\MessageBreak
3258 \space\space 4 = 5 + \string\texteuro\MessageBreak
3259 \space\space 3 = 4 + \string\textohm\MessageBreak
3260 \space\space 2 = 3 + \noexpand\textestimated+
3261 \string\textcurrency\MessageBreak
3262 \space\space 1 = TS1 - \noexpand\textcircled-
3263 \string\t\MessageBreak
3264 \space\space 0 = TS1 (full)\MessageBreak
3265 Font families with sub-encoding setting implement\MessageBreak
3266 only a restricted character set as indicated.\MessageBreak
3267 Family '?' is the default used for unknown fonts.\MessageBreak
3268 See the documentation for details\@gobble}
3271 % \begin{macro}{\DeclareEncodingSubset}
3272 % An encoding subset to which a font family belongs is declared by
3273 % the command |\DeclareEncodingSubset| that takes the major encoding as the
3274 % first argument (e.g., |TS1|), the family name as the second
3275 % argument (e.g., |cmr|), and the subset encoding id as a third,
3276 % (e.g., |0| for |cmr|).
3278 % The default encoding subset to use when nothing is known about
3279 % the current font family is named |?|.
3281 \def\DeclareEncodingSubset#1#2#3{%
3282 \@ifundefined{#1:#2}%
3283 {\PackageInfo{textcomp}{Setting #2 sub-encoding to #1/#3}}%
3284 {\PackageInfo{textcomp}{Changing #2 sub-encoding to #1/#3}}%
3285 \@namedef{#1:#2}{#3}}
3286 \@onlypreamble\DeclareEncodingSubset
3291 % The options for the package are the following:
3292 % \begin{description}
3294 % for unknown font families enables only symbols that are also
3295 % in the ISO-Adobe character set; without "currency", which is
3296 % often misused for the Euro. Older Type1 fonts from the
3297 % non-TeX world provide only this subset.
3300 % enables the ``safe'' symbols plus the |\texteuro|
3301 % command. Most newer fonts provide this.
3303 % \item[full] enables all |TS1| commands; useful only with fonts
3304 % like EC or CM bright.
3307 % same as ``full'', except that |\textcircled|
3308 % and |\t| are \emph{not} redefined from their defaults to avoid
3309 % that commands like |\copyright| suddenly no longer work.
3312 % ignore all subset encoding definitions stored in the package
3313 % itself or in the configuration file and always use the default
3314 % subset as specified by one of the other options (seldom useful,
3318 % \begin{macro}{\iftc@forced}
3319 % Switch used to implement the \texttt{force} option
3321 \newif\iftc@forced \tc@forcedfalse
3325 % This is implemented by defining the default subset:
3327 \DeclareOption{full}{\DeclareEncodingSubset{TS1}{?}{0}}
3328 \DeclareOption{almostfull}{\DeclareEncodingSubset{TS1}{?}{1}}
3329 \DeclareOption{euro}{\DeclareEncodingSubset{TS1}{?}{4}}
3330 \DeclareOption{safe}{\DeclareEncodingSubset{TS1}{?}{5}}
3332 % The default is ``almostfull'' which means that old documents will
3333 % work except that |\textcircled| and |\t| will use the kernel
3334 % defaults (with the advantage that this also works if the current
3335 % font (as often the case) doesn't implement these glyphs.
3337 % The ``force'' option simply sets the switch to true.
3339 \DeclareOption{force}{\tc@forcedtrue}
3342 % The suggestions to user is to use the ``safe'' option always
3343 % unless that balks in which case they could switch to
3344 % ``almostfull'' but then better check their output manually.
3347 \def\tc@errorwarn{\PackageError}
3348 \DeclareOption{warn}{\gdef\tc@errorwarn#1#2#3{\PackageWarning{#1}{#2}}}
3352 \ExecuteOptions{almostfull}
3353 \ProcessOptions\relax
3356 % \begin{macro}{\CheckEncodingSubset}
3357 % The command |\CheckEncodingSubset| will check if the current font
3358 % family has the right encoding subset to typeset a certain
3359 % command. It takes five arguments as follows:
3360 % first argument is either |\UseTextSymbol|, |\UseTextAccent|
3361 % depending on whether or not the symbol is a text symbol or a text
3364 % The second argument is the encoding from which this symbol should
3367 % The third argument is either a fake accessor command or an error
3368 % message. the code in that argument (if ever executed) receives
3369 % two arguments: |#2| and |#5| of |\CheckEncodingSubset|.
3371 % Argument four is the subset encoding id to test against: if this
3372 % value is higher than the subset id of the current font family
3373 % then we typeset the symbol, i.e., execute |#1{#2}#5| otherwise
3374 % it runs |#3#5|, e.g., to produce an error message or fake the
3377 % Argument five is the symbol or accent command that is being
3380 % For usage examples see definitions below.
3384 % If the ``force'' option was given we always use the default for
3387 \def\CheckEncodingSubset#1#2#3#4#5{%
3389 0\csname #2:?\endcsname
3391 \expandafter\@firstoftwo
3393 \expandafter\@secondoftwo
3399 % In normal circumstances the test is a bit more complicated: first
3400 % check if there exists a macro
3401 % |\|\meta{arg2}|:|\meta{current-family} and if so use that value
3402 % to test against, otherwise use the default to test against.
3405 \def\CheckEncodingSubset#1#2#3#4#5{%
3407 \expandafter\ifx\csname #2:\f@family\endcsname\relax
3408 0\csname #2:?\endcsname
3410 \csname #2:\f@family\endcsname
3413 \expandafter\@firstoftwo
3415 \expandafter\@secondoftwo
3424 % \begin{macro}{tc@subst}
3427 \tc@errorwarn{textcomp}% % should be latex error if general
3428 {Symbol \string#1 not provided by\MessageBreak
3429 font family \f@family\space
3430 in TS1 encoding.\MessageBreak Default family used instead}\@eha
3431 \bgroup\fontfamily\textcompsubstdefault\selectfont#1\egroup
3436 % \begin{macro}{\textcompsubstdefault}
3438 \def\textcompsubstdefault{cmr}
3442 % \begin{macro}{\tc@error}
3443 % |\tc@error| is going to be used in arg |#3| of
3444 % |\CheckEncodingSubset| when a symbol is not available in a
3445 % certain font family. It gets pass the encoding it normally lives
3446 % in (arg one) and the name of the symbol or accent that has a
3450 % error commands take argument:
3451 % #1 symbol to be used
3453 \PackageError{textcomp}% % should be latex error if general
3454 {Accent \string#1 not provided by\MessageBreak
3455 font family \f@family\space
3456 in TS1 encoding}\@eha
3462 % \begin{macro}{\tc@fake@euro}
3463 % |\tc@fake@euro| is an example of a ``fake'' definition to use in arg |#3| of
3464 % |\CheckEncodingSubset| when a symbol is not available in a
3465 % certain font family. Here we produce an Euro symbol by combining
3466 % a ``C'' with a ``=''.
3468 \def\tc@fake@euro#1{%
3470 \PackageInfo{textcomp}{Faking \noexpand#1for font family
3471 \f@family\MessageBreak in TS1 encoding}%
3473 \vfil\hbox to 0.07em{\dimen@\f@size\p@
3475 \fontsize{.7\dimen@}\z@\selectfont=\hss}%
3483 % \begin{macro}{\tc@check@symbol}
3484 % \begin{macro}{\tc@check@accent}
3485 % These are two abbreviations that we use below to check symbols
3486 % and accents in TS1. Only there to save some space, e.g., we can
3489 %\DeclareTextCommandDefault{\textcurrency}{\tc@check@symbol3\textcurrency}
3491 % to ensure that |\textcurrency| is only typeset if the current
3492 % font has a \texttt{TS1} subset id of less than 3. Otherwise
3493 % |\tc@error| is called telling the user that for this font family
3494 % |\textcurreny| is not available.
3496 \def\tc@check@symbol{\CheckEncodingSubset\UseTextSymbol{TS1}\tc@subst}
3497 \def\tc@check@accent{\CheckEncodingSubset\UseTextAccent{TS1}\tc@error}
3502 % We start with the commands that are ``safe'' and which can be
3503 % unconditionally set up, first the accents\ldots
3505 \DeclareTextAccentDefault{\capitalcedilla}{TS1}
3506 \DeclareTextAccentDefault{\capitalogonek}{TS1}
3507 \DeclareTextAccentDefault{\capitalgrave}{TS1}
3508 \DeclareTextAccentDefault{\capitalacute}{TS1}
3509 \DeclareTextAccentDefault{\capitalcircumflex}{TS1}
3510 \DeclareTextAccentDefault{\capitaltilde}{TS1}
3511 \DeclareTextAccentDefault{\capitaldieresis}{TS1}
3512 \DeclareTextAccentDefault{\capitalhungarumlaut}{TS1}
3513 \DeclareTextAccentDefault{\capitalring}{TS1}
3514 \DeclareTextAccentDefault{\capitalcaron}{TS1}
3515 \DeclareTextAccentDefault{\capitalbreve}{TS1}
3516 \DeclareTextAccentDefault{\capitalmacron}{TS1}
3517 \DeclareTextAccentDefault{\capitaldotaccent}{TS1}
3519 % \ldots and then the other glyphs.
3520 % \changes{v1.9p}{1998/06/12}{Renamed \cs{textmacron} pr/2840}
3522 \DeclareTextSymbolDefault{\textcapitalcompwordmark}{TS1}
3523 \DeclareTextSymbolDefault{\textascendercompwordmark}{TS1}
3524 \DeclareTextSymbolDefault{\textquotestraightbase}{TS1}
3525 \DeclareTextSymbolDefault{\textquotestraightdblbase}{TS1}
3526 \DeclareTextSymbolDefault{\texttwelveudash}{TS1}
3527 \DeclareTextSymbolDefault{\textthreequartersemdash}{TS1}
3528 \DeclareTextSymbolDefault{\textdollar}{TS1}
3529 \DeclareTextSymbolDefault{\textquotesingle}{TS1}
3530 \DeclareTextSymbolDefault{\textasteriskcentered}{TS1}
3531 \DeclareTextSymbolDefault{\textfractionsolidus}{TS1}
3532 \DeclareTextSymbolDefault{\textminus}{TS1}
3533 \DeclareTextSymbolDefault{\textlbrackdbl}{TS1}
3534 \DeclareTextSymbolDefault{\textrbrackdbl}{TS1}
3535 \DeclareTextSymbolDefault{\textasciigrave}{TS1}
3536 \DeclareTextSymbolDefault{\texttildelow}{TS1}
3537 \DeclareTextSymbolDefault{\textasciibreve}{TS1}
3538 \DeclareTextSymbolDefault{\textasciicaron}{TS1}
3539 \DeclareTextSymbolDefault{\textgravedbl}{TS1}
3540 \DeclareTextSymbolDefault{\textacutedbl}{TS1}
3541 \DeclareTextSymbolDefault{\textdagger}{TS1}
3542 \DeclareTextSymbolDefault{\textdaggerdbl}{TS1}
3543 \DeclareTextSymbolDefault{\textbardbl}{TS1}
3544 \DeclareTextSymbolDefault{\textperthousand}{TS1}
3545 \DeclareTextSymbolDefault{\textbullet}{TS1}
3546 \DeclareTextSymbolDefault{\textcelsius}{TS1}
3547 \DeclareTextSymbolDefault{\textflorin}{TS1}
3548 \DeclareTextSymbolDefault{\texttrademark}{TS1}
3549 \DeclareTextSymbolDefault{\textcent}{TS1}
3550 \DeclareTextSymbolDefault{\textsterling}{TS1}
3551 \DeclareTextSymbolDefault{\textyen}{TS1}
3552 \DeclareTextSymbolDefault{\textbrokenbar}{TS1}
3553 \DeclareTextSymbolDefault{\textsection}{TS1}
3554 \DeclareTextSymbolDefault{\textasciidieresis}{TS1}
3555 \DeclareTextSymbolDefault{\textcopyright}{TS1}
3556 \DeclareTextSymbolDefault{\textordfeminine}{TS1}
3557 \DeclareTextSymbolDefault{\textlnot}{TS1}
3558 \DeclareTextSymbolDefault{\textregistered}{TS1}
3559 \DeclareTextSymbolDefault{\textasciimacron}{TS1}
3560 \DeclareTextSymbolDefault{\textdegree}{TS1}
3561 \DeclareTextSymbolDefault{\textpm}{TS1}
3562 \DeclareTextSymbolDefault{\texttwosuperior}{TS1}
3563 \DeclareTextSymbolDefault{\textthreesuperior}{TS1}
3564 \DeclareTextSymbolDefault{\textasciiacute}{TS1}
3565 \DeclareTextSymbolDefault{\textmu}{TS1}
3566 \DeclareTextSymbolDefault{\textparagraph}{TS1}
3567 \DeclareTextSymbolDefault{\textperiodcentered}{TS1}
3568 \DeclareTextSymbolDefault{\textonesuperior}{TS1}
3569 \DeclareTextSymbolDefault{\textordmasculine}{TS1}
3570 \DeclareTextSymbolDefault{\textonequarter}{TS1}
3571 \DeclareTextSymbolDefault{\textonehalf}{TS1}
3572 \DeclareTextSymbolDefault{\textthreequarters}{TS1}
3573 \DeclareTextSymbolDefault{\texttimes}{TS1}
3574 \DeclareTextSymbolDefault{\textdiv}{TS1}
3577 % The |\texteuro| is only available for subsets with id 4 or
3578 % less. Otherwise we fake the glyph using |\tc@fake@euro|
3580 \DeclareTextCommandDefault{\texteuro}
3581 {\CheckEncodingSubset\UseTextSymbol{TS1}\tc@fake@euro5\texteuro}
3584 % The |\textohm| is only available for subsets with id 3 or
3585 % less. Otherwise we produce an error.
3587 \DeclareTextCommandDefault{\textohm}{\tc@check@symbol4\textohm}
3589 % The |\textestimated| and |\textcurrency| are only provided for
3590 % fonts with subset encoding with id 2 or less.
3592 \DeclareTextCommandDefault{\textestimated}%
3593 {\tc@check@symbol3\textestimated}
3594 \DeclareTextCommandDefault{\textcurrency}%
3595 {\tc@check@symbol3\textcurrency}
3597 % Nearly all of the remaining glyphs are provided only with fonts
3598 % with id 1 or 0, i.e., are essentially complete.
3600 \DeclareTextCommandDefault{\capitaltie}%
3601 {\tc@check@accent2\capitaltie}
3602 \DeclareTextCommandDefault{\newtie}%
3603 {\tc@check@accent2\newtie}
3604 \DeclareTextCommandDefault{\capitalnewtie}%
3605 {\tc@check@accent2\capitalnewtie}
3606 \DeclareTextCommandDefault{\textleftarrow}%
3607 {\tc@check@symbol2\textleftarrow}
3608 \DeclareTextCommandDefault{\textrightarrow}%
3609 {\tc@check@symbol2\textrightarrow}
3610 \DeclareTextCommandDefault{\textblank}%
3611 {\tc@check@symbol2\textblank}
3612 \DeclareTextCommandDefault{\textdblhyphen}%
3613 {\tc@check@symbol2\textdblhyphen}
3614 \DeclareTextCommandDefault{\textzerooldstyle}%
3615 {\tc@check@symbol2\textzerooldstyle}
3616 \DeclareTextCommandDefault{\textoneoldstyle}%
3617 {\tc@check@symbol2\textoneoldstyle}
3618 \DeclareTextCommandDefault{\texttwooldstyle}%
3619 {\tc@check@symbol2\texttwooldstyle}
3620 \DeclareTextCommandDefault{\textthreeoldstyle}%
3621 {\tc@check@symbol2\textthreeoldstyle}
3622 \DeclareTextCommandDefault{\textfouroldstyle}%
3623 {\tc@check@symbol2\textfouroldstyle}
3624 \DeclareTextCommandDefault{\textfiveoldstyle}%
3625 {\tc@check@symbol2\textfiveoldstyle}
3626 \DeclareTextCommandDefault{\textsixoldstyle}%
3627 {\tc@check@symbol2\textsixoldstyle}
3628 \DeclareTextCommandDefault{\textsevenoldstyle}%
3629 {\tc@check@symbol2\textsevenoldstyle}
3630 \DeclareTextCommandDefault{\texteightoldstyle}%
3631 {\tc@check@symbol2\texteightoldstyle}
3632 \DeclareTextCommandDefault{\textnineoldstyle}%
3633 {\tc@check@symbol2\textnineoldstyle}
3634 \DeclareTextCommandDefault{\textlangle}%
3635 {\tc@check@symbol2\textlangle}
3636 \DeclareTextCommandDefault{\textrangle}%
3637 {\tc@check@symbol2\textrangle}
3638 \DeclareTextCommandDefault{\textmho}%
3639 {\tc@check@symbol2\textmho}
3640 \DeclareTextCommandDefault{\textbigcircle}%
3641 {\tc@check@symbol2\textbigcircle}
3642 \DeclareTextCommandDefault{\textuparrow}%
3643 {\tc@check@symbol2\textuparrow}
3644 \DeclareTextCommandDefault{\textdownarrow}%
3645 {\tc@check@symbol2\textdownarrow}
3646 \DeclareTextCommandDefault{\textborn}%
3647 {\tc@check@symbol2\textborn}
3648 \DeclareTextCommandDefault{\textdivorced}%
3649 {\tc@check@symbol2\textdivorced}
3650 \DeclareTextCommandDefault{\textdied}%
3651 {\tc@check@symbol2\textdied}
3652 \DeclareTextCommandDefault{\textleaf}%
3653 {\tc@check@symbol2\textleaf}
3654 \DeclareTextCommandDefault{\textmarried}%
3655 {\tc@check@symbol2\textmarried}
3656 \DeclareTextCommandDefault{\textmusicalnote}%
3657 {\tc@check@symbol2\textmusicalnote}
3658 \DeclareTextCommandDefault{\textdblhyphenchar}%
3659 {\tc@check@symbol2\textdblhyphenchar}
3660 \DeclareTextCommandDefault{\textdollaroldstyle}%
3661 {\tc@check@symbol2\textdollaroldstyle}
3662 \DeclareTextCommandDefault{\textcentoldstyle}%
3663 {\tc@check@symbol2\textcentoldstyle}
3664 \DeclareTextCommandDefault{\textcolonmonetary}%
3665 {\tc@check@symbol2\textcolonmonetary}
3666 \DeclareTextCommandDefault{\textwon}%
3667 {\tc@check@symbol2\textwon}
3668 \DeclareTextCommandDefault{\textnaira}%
3669 {\tc@check@symbol2\textnaira}
3670 \DeclareTextCommandDefault{\textguarani}%
3671 {\tc@check@symbol2\textguarani}
3672 \DeclareTextCommandDefault{\textpeso}%
3673 {\tc@check@symbol2\textpeso}
3674 \DeclareTextCommandDefault{\textlira}%
3675 {\tc@check@symbol2\textlira}
3676 \DeclareTextCommandDefault{\textrecipe}%
3677 {\tc@check@symbol2\textrecipe}
3678 \DeclareTextCommandDefault{\textinterrobang}%
3679 {\tc@check@symbol2\textinterrobang}
3680 \DeclareTextCommandDefault{\textinterrobangdown}%
3681 {\tc@check@symbol2\textinterrobangdown}
3682 \DeclareTextCommandDefault{\textdong}%
3683 {\tc@check@symbol2\textdong}
3684 \DeclareTextCommandDefault{\textpertenthousand}%
3685 {\tc@check@symbol2\textpertenthousand}
3686 \DeclareTextCommandDefault{\textpilcrow}%
3687 {\tc@check@symbol2\textpilcrow}
3688 \DeclareTextCommandDefault{\textbaht}%
3689 {\tc@check@symbol2\textbaht}
3690 \DeclareTextCommandDefault{\textnumero}%
3691 {\tc@check@symbol2\textnumero}
3692 \DeclareTextCommandDefault{\textdiscount}%
3693 {\tc@check@symbol2\textdiscount}
3694 \DeclareTextCommandDefault{\textopenbullet}%
3695 {\tc@check@symbol2\textopenbullet}
3696 \DeclareTextCommandDefault{\textservicemark}%
3697 {\tc@check@symbol2\textservicemark}
3698 \DeclareTextCommandDefault{\textlquill}%
3699 {\tc@check@symbol2\textlquill}
3700 \DeclareTextCommandDefault{\textrquill}%
3701 {\tc@check@symbol2\textrquill}
3702 \DeclareTextCommandDefault{\textcopyleft}%
3703 {\tc@check@symbol2\textcopyleft}
3704 \DeclareTextCommandDefault{\textcircledP}%
3705 {\tc@check@symbol2\textcircledP}
3706 \DeclareTextCommandDefault{\textreferencemark}%
3707 {\tc@check@symbol2\textreferencemark}
3708 \DeclareTextCommandDefault{\textsurd}%
3709 {\tc@check@symbol2\textsurd}
3711 % The |\textcircled| and |\t| are handled specially, unless the
3712 % current font has a subset id of 0 (i.e. full \texttt{TS1}) we
3713 % pick the symbols up from the the math font encodings, i.e., the
3714 % third argument to |\CheckEncodingSubset| uses |\UseTextAccent| to
3715 % get them from there.
3717 \DeclareTextCommandDefault{\textcircled}
3718 {\CheckEncodingSubset\UseTextAccent{TS1}%
3719 {\UseTextAccent{OMS}}1\textcircled}
3720 \DeclareTextCommandDefault{\t}
3721 {\CheckEncodingSubset\UseTextAccent{TS1}%
3722 {\UseTextAccent{OML}}1\t}
3727 % Finally input the encoding-specific definitions for
3728 % \texttt{TS1} thus making the top-level definitions
3729 % optimised for this encoding (and not for the default
3730 % encoding, see section~\ref{sec:orderofdecls}).
3731 % \changes{v1.9o}{1998/03/20}{Load decls after defaults for speed.}
3735 % Now having the new glyphs available we also want to make sure
3736 % that they are used. For most cases this will automatically happen
3737 % but for some glyphs there are inferior definitions already known
3738 % to \LaTeX{} which will prevent the usage of the \texttt{TS1}
3739 % versions (see section~\ref{sec:removeencspec} above). So we better
3741 % \changes{v1.9o}{1998/03/20}{Added various \cs{UndeclareTextCommand}
3742 % declarations for pr/2783}
3744 \UndeclareTextCommand{\textsterling}{OT1}
3745 \UndeclareTextCommand{\textdollar} {OT1}
3747 % Similar declarations should probably be made for other encodings
3748 % like \texttt{OT4} if they are in use.
3750 %\UndeclareTextCommand{\textsterling}{OT4}
3751 %\UndeclareTextCommand{\textdollar} {OT4}
3753 % From the \texttt{T1} encoding there are two candidates for removal:
3754 % \textperthousand{} and \textpertenthousand{} since these are both
3755 % constructed from \% followed by a tiny
3756 % `{\fontencoding{T1}\selectfont \char 24}'
3757 % rather than being a single glyph. The problem with this
3758 % approach is that in PostScript fonts this small zero is usually not
3759 % available resulting in \%\rule{3pt}{3pt} rather than
3760 % \textperthousand{} while the real glyph (at least for
3761 % |\textperthousand|) is available in the PostScript version of
3762 % \texttt{TS1}. So for the moment we compromise by removing the
3763 % \texttt{T1} declaration for |\textperthousand| but keeping the one
3764 % for |\textpertenthousand|. This will have the effect that with
3765 % Computer Modern fonts everything will come out (although
3766 % \textperthousand{} and \textpertenthousand{} are not taken from the
3767 % same physical font) and with PostScript fonts \textperthousand{}
3768 % will come out correctly while \textpertenthousand{} will most
3769 % likely look like \%\rule{6pt}{3pt} --- which is probably an
3770 % improvement over just getting a single `\rule{3pt}{3pt}' to
3771 % indicate a completely missing glyph, which would happen if we
3772 % also `undeclared' |\textpertenthousand|.
3774 \UndeclareTextCommand{\textperthousand}{T1}
3775 %\UndeclareTextCommand{\textpertenthousand}{T1}
3779 % \subsubsection{Supporting oldstyle digits}
3782 \DeclareRobustCommand\oldstylenums[1]{%
3785 \mathgroup\symletters #1%
3787 \CheckEncodingSubset\@use@text@encoding{TS1}%
3788 {\PackageWarning{textcomp}%
3789 {Oldstyle digits unavailable for
3790 family \f@family.\MessageBreak
3791 Lining digits used instead}}%
3798 % \subsubsection{Subset encoding defaults}
3800 % For many font families commonly used in the \TeX{} world we
3801 % provide the subset encoding data here. Users can add additional
3802 % font families in the file \texttt{textcomp.cfg} if they own other
3805 % However, if the option ``forced'' was given then all subset
3806 % encoding specifications are ignored, so there is no point in
3807 % setting any of them up:
3812 % Computer modern based fonts (e.g., CM, CM-Bright, Concrete):
3814 \DeclareEncodingSubset{TS1}{cmr} {0}
3815 \DeclareEncodingSubset{TS1}{cmss} {0}
3816 \DeclareEncodingSubset{TS1}{cmtt} {0}
3817 \DeclareEncodingSubset{TS1}{cmvtt} {0}
3818 \DeclareEncodingSubset{TS1}{cmbr} {0}
3819 \DeclareEncodingSubset{TS1}{cmtl} {0}
3820 \DeclareEncodingSubset{TS1}{ccr} {0}
3825 \DeclareEncodingSubset{TS1}{ptm} {4}
3826 \DeclareEncodingSubset{TS1}{pcr} {4}
3827 \DeclareEncodingSubset{TS1}{phv} {4}
3828 \DeclareEncodingSubset{TS1}{ppl} {3}
3829 \DeclareEncodingSubset{TS1}{pag} {4}
3830 \DeclareEncodingSubset{TS1}{pbk} {4}
3831 \DeclareEncodingSubset{TS1}{pnc} {4}
3832 \DeclareEncodingSubset{TS1}{pzc} {4}
3833 \DeclareEncodingSubset{TS1}{bch} {4}
3834 \DeclareEncodingSubset{TS1}{put} {5}
3837 % Other CTAN fonts (probably not complete):
3839 \DeclareEncodingSubset{TS1}{uag} {5}
3840 \DeclareEncodingSubset{TS1}{ugq} {5}
3841 \DeclareEncodingSubset{TS1}{ul8} {4}
3842 \DeclareEncodingSubset{TS1}{ul9} {4} % (LuxiSans, one day)
3843 \DeclareEncodingSubset{TS1}{augie} {5}
3844 \DeclareEncodingSubset{TS1}{dayrom} {3}
3845 \DeclareEncodingSubset{TS1}{dayroms} {3}
3846 \DeclareEncodingSubset{TS1}{pxr} {0}
3847 \DeclareEncodingSubset{TS1}{pxss} {0}
3848 \DeclareEncodingSubset{TS1}{pxtt} {0}
3849 \DeclareEncodingSubset{TS1}{txr} {0}
3850 \DeclareEncodingSubset{TS1}{txss} {0}
3851 \DeclareEncodingSubset{TS1}{txtt} {0}
3854 % Latin Modern and TeX Gyre:
3855 % \changes{v1.99k}{2009/10/28}{Added Latin Modern and TeX Gyre subsets}
3856 % \changes{v1.99l}{2009/11/04}{Added more Latin Modern and TeX Gyre subsets}
3857 % \changes{v1.99m}{2015/02/16}{Added lmtt (Heiko Oberdiek) latex/4415}
3859 \DeclareEncodingSubset{TS1}{lmr} {0}
3860 \DeclareEncodingSubset{TS1}{lmdh} {0}
3861 \DeclareEncodingSubset{TS1}{lmss} {0}
3862 \DeclareEncodingSubset{TS1}{lmssq} {0}
3863 \DeclareEncodingSubset{TS1}{lmvtt} {0}
3864 \DeclareEncodingSubset{TS1}{lmtt} {0}
3868 \DeclareEncodingSubset{TS1}{qhv} {0}
3869 \DeclareEncodingSubset{TS1}{qag} {0}
3870 \DeclareEncodingSubset{TS1}{qbk} {0}
3871 \DeclareEncodingSubset{TS1}{qcr} {0}
3872 \DeclareEncodingSubset{TS1}{qcs} {0}
3873 \DeclareEncodingSubset{TS1}{qpl} {0}
3874 \DeclareEncodingSubset{TS1}{qtm} {0}
3875 \DeclareEncodingSubset{TS1}{qzc} {0}
3876 \DeclareEncodingSubset{TS1}{qhvc} {0}
3879 % Fourier-GUTenberg:
3881 \DeclareEncodingSubset{TS1}{futs} {4}
3882 \DeclareEncodingSubset{TS1}{futx} {4}
3883 \DeclareEncodingSubset{TS1}{futj} {4}
3886 % Y\&Y's Lucida Bright
3888 \DeclareEncodingSubset{TS1}{hlh} {3}
3889 \DeclareEncodingSubset{TS1}{hls} {3}
3890 \DeclareEncodingSubset{TS1}{hlst} {3}
3892 % The remaining settings for Lucida are conservative: the following
3893 % fonts contain the |\textohm| character but not the |\texteuro|,
3894 % i.e., belong to neither subset~4 nor subset~3. If you want to
3895 % use the |\textohm| with these fonts copy these definition to
3896 % \texttt{textcomp.cfg} and change the subset to~3. However in that
3897 % case make sure that you do not use the |\texteuro|.
3899 \DeclareEncodingSubset{TS1}{hlct} {5}
3900 \DeclareEncodingSubset{TS1}{hlx} {5}
3901 \DeclareEncodingSubset{TS1}{hlce} {5}
3902 \DeclareEncodingSubset{TS1}{hlcn} {5}
3903 \DeclareEncodingSubset{TS1}{hlcw} {5}
3904 \DeclareEncodingSubset{TS1}{hlcf} {5}
3907 % Other commercial families\ldots
3909 \DeclareEncodingSubset{TS1}{pplx} {3}
3910 \DeclareEncodingSubset{TS1}{pplj} {3}
3911 \DeclareEncodingSubset{TS1}{ptmx} {4}
3912 \DeclareEncodingSubset{TS1}{ptmj} {4}
3915 % If the file \texttt{textcomp.cfg} exists it will be loaded at
3916 % this point. This allows to define further subset encodings for
3917 % font families not covered by default.
3920 \InputIfFileExists{textcomp.cfg}
3921 {\PackageInfo{textcomp}{Local configuration file used}}{}