diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/hyperref |
Initial commit
Diffstat (limited to 'macros/latex/contrib/hyperref')
30 files changed, 46430 insertions, 0 deletions
diff --git a/macros/latex/contrib/hyperref/ChangeLog.txt b/macros/latex/contrib/hyperref/ChangeLog.txt new file mode 100644 index 0000000000..e828778718 --- /dev/null +++ b/macros/latex/contrib/hyperref/ChangeLog.txt @@ -0,0 +1,3066 @@ +2019-06-12 6.88h Ulrike Fischer + * added code to allow \Hy@DisableOption to escape groups + https://github.com/ho-tex/hyperref/issues/97 + +2019-04-27 6.88g Ulrike Fischer + * added \mu to psdextra.def + https://github.com/ho-tex/hyperref/pull/90 + * removed setting of /Producer from all drivers + https://github.com/ho-tex/hyperref/issues/91 + + +2018-12-24 6.88f Ulrike Fischer + * gobble \thanks in pdftitle + https://github.com/ho-tex/hyperref/issues/81 + +2018-11-30 6.88e Ulrike Fischer + * added ignorespaces to footnotetext to address + https://github.com/ho-tex/oberdiek/issues/50 + +2018-11-27 6.88d Ulrike Fischer + * removed wrong producer warning for xetex and (x)dvipdfm(x) + (issue 76) + +2018-11-22 6.88c Ulrike Fischer + * Added support for pdflinkmargin for xetex (issue 15) + +2018-11-17 6.88b David Carlisle + * Ensure Producer field in PDF shows LuaTeX version with two digits (Ulrike Fischer) + +2018-09-30 6.88a David Carlisle + * Reorganise README and ChangeLog moving most of README into the manual + and maintaining README.md as markdown and ChangeLog.txt as text + * Document NoHyper in the manual (copied from hyperref.dtx) for github issue 55 + * hyperref.dtx: Add \protected@file@percent for github issue 70 + * Adjust default pdfcreator and add addtopdfcreator key for githb issue 53 + * Use \scdefault not always sc as font shape for frenchlinks, github issue 64. + * Greek Autoref support, issue #52 + +2018-04-02 6.87a David Carlisle + * 6.87a + * Silence babel messages in pdfstringdef issue #59 + +2018-02-06 6.86b David Carlisle + * 6.86b + * Fix packaging of luatex.dtx (reported on tex.sx) + * Don't include test directory on ctan (still on github) + +2017-09-29 6.86a David Carlisle + * 6.86a + * bump version and fix documentation markup + * fixes to xsl and other minor build adjustments + * send driver message just to log, issue #9 + * add \and to the list of commands locally made safe in pdf title info, issue #44 + * for issue #50 add pdf source zip from texmf-dist/doc/latex/hyperref-docsrc + +2017-09-29 6.85a David Carlisle + * 6.85a + * Make driver auto detect info not message (so just log not terminal) issue #9 + * Make \and locally "; " while making pdf info string issue #44 + +2017-09-29 6.85a Ulrike Fischer + * 6.85a + * don't define \noboundary as text command / issue 37 (#45) + * changed default pdfversion from 2 to 5, along the default settings in the current tex systems + * change with pdfa version to 4 only if the current version is smaller, see issue #38 + * removed \noboundary from puarenc.def, see issue #37 + * Issue #38: change version to 1.4 with pdfa only if it is smaller (#43) + * changed default pdfversion from 2 to 5, along the default settings in the current tex systems + * change with pdfa version to 4 only if the current version is smaller, see issue #38 + * issue #25, added \HyPsd@EscapeTeX#1% to correctly escape non-ascii in heading (#42) + * code to amend issue #40 (missing pdfhighlight option for xetex/dvipdfmx) (#41) + * corrected typo in hpdftex.def + * exchanged code for pdfhighlight by \Hy@setpdfhighlight in hpdftex.def + * exchanged code for pdfhighlight by \Hy@setpdfhighlight in hluatex.def + * added \Hy@setpdfhighlight to hdvipdfm/hxetex.def + +2017-03-14 6.85a David Carlisle + * 6.85a + * Declare \newtie in PU encoding (composites with \newtie are + already declared). Declaring composites with an undeclared accent does + not work and will be flagged as an error in the next LaTeX release. + * Modify the regex in pdfremotestartview for github issue 28 + https://github.com/ho-tex/hyperref/issues/28 + +2017-01-26 6.84a David Carlisle + * 6.84a + * Fix driver check to allow luatex as well as pdftex in pdf mode. + * Documentation improvements + +2016-06-24 6.83q David Carlisle + * 6.83q + * cleveref support + +2016-05-21 6.83p David Carlisle + * 6.83p, nameref 2.44, backref 1.39 + * document github support + * escape Field values (issue #5, thanks to Ulrike Fischer for fix). + * fix to checkbox/Radio code (issue #6, thanks to Ulrike Fischer for fix). + * Fix for links in amsmath \text (issue #13) + * Fix white space at end of line before a theorem (issue #11) + +2016-05-18 6.83o David Carlisle + * 6.83o + * merge pull request from H. Yamashita pass driver options to color package. + * replace call to luatex85 package by new luatex back end option + * Catalan autoref translation contributed in issue #4 + +2016-05-05 6.83n David Carlisle + * 6.83n + * Load luatex85 package for luatex compatibility + +2012-11-06 6.83m Heiko Oberdiek + * 6.83m + * Option `pdflang': Default is `\relax' that suppresses + the entry in the PDF catalogue. An empty value (undetermined + language) is written to the PDF catalogue. + * Option `pdflang': Checks for well-formedness added + (if \pdfmatch is available). + * Option `hyperindex': The latest encapsulating command is repeated + for the close range entries, if it is not already given. That improves + compatibility to `xindy'. (Formatting commands remain unsupported.) + +2012-10-31 6.83l Heiko Oberdiek + * 6.83l + * Workaround for bug in `frenchb.ldf' 2010/08/21 v2.5a added that + destroys `\pdfstringdefDisableCommands' in `\AtBeginDocument'. + * nameref 2.43: + * Support for theorem names in class `beamer'. + * Some support for `description' labels in class `beamer', if + `\label' is inside the optional argument of `\item'. + +2012-10-15 6.83k Heiko Oberdiek + * 6.83k + * If `hyperref' is loaded in the document class and `htlatex' is used, + then `hyperref' passes options for `tex4ht' found in \@documentclasshook + to `tex4ht'. + * \hyper@link@ suppresses links with empty target. + +2012-10-13 6.83j Heiko Oberdiek + * 6.83j + * PDF forms/hpdftex.def: Field option `calculatesortkey' added + (pdfTeX/LuateX only) to specify the calculation order for + calculated fields. + * Option `pdflinkmargin' implemented for pdfmark drivers. + +2012-10-12 6.83i Heiko Oberdiek + * 6.83i + * PDF forms: /CO (calculation order) is set for fields with + calculations. Only document order is supported currently. + * pdfmark.def: /Fields is set like in the other PDF form drivers. + +2012-10-11 6.83h Heiko Oberdiek + * 6.83h + * If `hyperref' is loaded in the document class, then it misses + the detection of package `tex4ht' of `htlatex' because it is + loaded after the documentclass. Therefore another test for + `\HCode' is added that is defined by `htlatex'. + * The setting of additional information entries is done globally + like the other standard options (pdfauthor, pdftitle, ...) + for the information dictionary. (Bug report: + http://tex.stackexchange.com/q/75684/16967) + +2012-09-27 6.83g Heiko Oberdiek + * 6.83g + * Fix for \hyper@link@. + +2012-09-26 6.83f Heiko Oberdiek + * 6.83f + * Option `customdriver' added. + +2012-09-24 6.83e Heiko Oberdiek + * 6.83e + * Fix for \hyper@link@. + +2012-09-23 6.83d Heiko Oberdiek + * 6.83d + * Table of contents: If the page number is empty, then the + link is suppressed to avoid tiny link boxes. + * puenc.def/psdextra.def: Wrong names \(text)capricorn + renamed to \(text)capricornus (wasysym). + * hyperref.sty: \hyper@link@ recoded. + * hpdftex.def: Fix for option `ocgcolorlinks' to prevent removing + other page resources. + * LuaTeX: Workaround for LuaTeX bug 773 added that can be triggered + by \pdfstringdef. + +2012-08-21 6.83c Heiko Oberdiek + * 6.83c + * Package `parskip': The changes of \@starttoc of package `parskip' + 2001/04/09 are supported (setting \parskip to zero). + * Optional page object references added to field annotations. + (hpdftex.def: only if package `zref-abspage' is loaded.) + * Bug fix for bug in bug fix of 6.82w. The active `Q' was redefined + and not restored after usage (breaks package `flexisym'). + (Thanks Dominic J\"anichen and Ulrike Fischer.) + +2012-08-18 6.83b Heiko Oberdiek + * 6.83b + * pd1enc.def: \ij and \IJ fixed, now they expand to `ij' and `IJ' + (these glyphs are not available in PDFDocEncoding). + * Shorthands of babel deactivated in \hyper@makecurrent (destination names) + and the destination name of \contentsline. + * \XeTeXLinkBox with \XeTeXLinkMargin added for XeTeX if the link + does not contain character glyphs. + +2012-08-13 6.83a Heiko Oberdiek + * 6.83a + * Syntax fixes in additions for puenc.def. + (Thanks Yury Donskoy for bug report.) + * Fix for option `psdextra'. + * puenc.def: further additions. + +2012-08-11 6.82z Heiko Oberdiek + * 6.82z + * Fix in parent counter lookup, meaning of \@elt is restored + after usage. (Thanks Victor Ivrii for bug report.) + * puenc.def: fixes and additions. + +2012-08-03 6.82y Heiko Oberdiek + * 6.82y + * Unique destination names: Lookup for parent counters added + for counters that are defined before hyperref is loaded and + \theH<counter> is not provided. + * Fixes: File `psdextra.def` was loaded always with option `unicode', + restriction of set option `psdextra' was missing. Also the + catcode was not explicitely set to `letter', when the file is loaded. + (Thanks Daniel Halperin for bug report.) + +2012-07-31 6.82x Heiko Oberdiek + * 6.82x + * nameref 2.42: Definition for \strip@period provided. + It was removed in 2.41, but it is needed by package `subfig'. + +2012-07-30 6.82w Heiko Oberdiek + * 6.82w + * Bug fix in \pdfstringdef: Active characters defined with + \protected are catched and converted to characters with + catcode 12 (other). + * hpdftex.def: Before setting the version number it is checked, + whether objects are already written. Also \pdfobjcompresslevel + is disabled for versions < 5. + * puenc.def: Hebrew letters added. + +2012-07-29 6.82v Heiko Oberdiek + * 6.82v + * Bug fix (introduced in 6.82r): Information entries did not + get written in some drivers (xetex, dvipdfm, ...). + +2012-07-28 6.82u Heiko Oberdiek + * 6.82u + * Option `destlabel' and \HyperDestRename added. + * nameref 2.41: + * The hook \label@hook is added to \label. + * \strip@period is fixed (unnecessary addition of \relax) + and renamed to \NR@strip@period. + +2012-07-26 6.82t Heiko Oberdiek + * 6.82t + * Some fixes in PU encoding, especially \textbackslash. + +2012-07-25 6.82s Heiko Oberdiek + * 6.82s + * \pdfstringdef: \ensuremath added to avoid warnings + about "removing `math shift'". + * backref 1.38: Explicit package dependency for `ltxcmds' added. + +2012-07-24 6.82r Heiko Oberdiek + * 6.82r + * Package pifont: \ding in Unicode bookmarks supported. + * puenc.def: lots of symbols added. + * New experimental option `psdextra' that loads file `psdextra.def' + with defines the original short character names (mostly math) + to the names with prefix `text' because of NFSS. + * puarenc.def: \noboundary fixed. + * Definitions of \theH<counter> made global (GL). + * Bug fix in hpdftex.def for links across the first and second page: + \Hy@FixNotFirstPage is disabled for package `atbegshi' >= 2011/10/05. + * backref 1.37: + * \backrefsetup added. + * Options `enable' and `disable' added. + +2012-05-13 6.82q Heiko Oberdiek + * 6.82q + * \HyNew@float@makebox added for package `caption' + (feature request from Axel Sommerfeldt). + +2012-02-28 6.82p Heiko Oberdiek + * 6.82p + * pdfmark: Missing border color setting for \Acrobatmenu added. + * dvipdfmx/xetex: Fix for \Acrobatmenu if \@menubordercolor is \relax. + * Some warnings for entries of the information dictionary added, + if the driver does not support them. + * Test file testinfo.tex added that sets all entries of + the information dictionary. + +2012-02-06 6.82o Heiko Oberdiek + * 6.82o + * At the begin and end of an equation an \hbox might be + present that affects math spacing (for example, if the + equation starts with an unary minus). By putting \hbox + in \mathopen/\mathclose, now only a math punctuation at + the end of the equation will add some space afterwords. + Environment eqnarray is fixed in a similar way, also + its anchor position is fixed. + +2011-12-06 6.82n Heiko Oberdiek + * 6.82n + * Redefinition of \theHchapter/\theHsection in \appendix + uses \Hy@AlphNoErr instead of \Alph to provide values + for the cases unsupported in \Alph. + +2011-12-04 6.82m Heiko Oberdiek + * 6.82m + * \...footnotetext commands might contain unbalanced conditionals. + +2011-11-21 6.82l Heiko Oberdiek + * 6.82l + * Bug fix in page labels (bug introduced in 6.82a). + * Field/borderwidth: Also a dimen can be given + instead of a number with default unit bp. + (Feature request of GL.) + * Fix for \TextField and \TextCheckField: + \leavevmode is inserted before the formular field + to avoid the error that \pdfstartlink cannot be + used in vertical mode. (Bug reported by GL.) + +2011-11-19 6.82k Heiko Oberdiek + * 6.82k + * The macros \theH<counter> are defined using + \providecommmand to allow previous definitions + (feature request from Axel Sommerfeldt). + +2011-10-01 6.82j Heiko Oberdiek + * 6.82j + * Patch of \TX@endtabularx modified in order to support + biblatex's patching (reported by Marc Baudoin). + +2011-09-28 6.82i Heiko Oberdiek + * 6.82i + * Internal boolean switches renamed if the boolean switch differs from + its option. This simplifies the implementation of \Hy@boolkey, + \IfHyperBooleanExists and \IfHyperBoolean. + * Package tabularx: Footnote linking is only disabled inside + environment tabularx. + +2011-08-19 6.82h Heiko Oberdiek + * 6.82h + * dvipdfm/xetex: pdfpagetransition, pdfpageduration, pdfpagehidden + implemented. + * \IfHyperBooleanExists and \IfHyperBoolean added. + * The label form of \hyperref[...]{...} does not set + a broken link if the reference is not defined. + +2011-04-17 6.82g Heiko Oberdiek + * 6.82g + * Make use of package `hobsub-hyperref'. + * Patch for package `ltxcmds' removed by requiring the fixed version + (see v6.81t). + * Drivers dvipdfm/xetex: missing \leavevmode added for links. + +2011-04-09 6.82f Heiko Oberdiek + * 6.82f + * Definition of \Hy@xspace@end moved to an earlier place. + +2011-04-07 6.82e Heiko Oberdiek + * 6.82e + * \xspace without space at end of links and anchors. + +2011-03-09 6.82d Heiko Oberdiek + * 6.82d + * dvipdfm/xetex: missing launch actions added for \href. + +2011-02-28 6.82c Heiko Oberdiek + * 6.82c + * Fix for references with dvips/breaklinks=true in math mode. + (Bug found by Gady Kozma). + +2011-02-07 6.82b Heiko Oberdiek + * 6.82b + * Fix for class `slides' with option `pageanchors' + and anchor name shortened if page is not used. + +2011-02-05 6.82a Heiko Oberdiek + * 6.82a + * Options `hidelinks', `allcolors' and `allbordercolors' added. + * \pdfstringdef: \begin, \end, \foreignlanguage catched. + * Options `pdfpagelabels' and `pageanchor': some support + for class with its page counters (slide/overlay/note/page) added. + * Option `pageanchor': Double string escaping removed + for default setting hypertexnames=true, plainpages=false. + +2010-12-16 6.81z Heiko Oberdiek + * 6.81z + * Fix for bug #135 `amsclass: wrong formatting of theorems' + (thanks to Dan Luecking for his analysis). + +2010-12-15 6.81y Heiko Oberdiek + * 6.81y + * Allowing driver tex4ht if XeTeX is running (htxelatex). + +2010-12-14 6.81x Heiko Oberdiek + * 6.81x + * Destination names (\hyper@makecurrent) now use + the original definition of \@arabic to avoid + trouble with redefined \@arabic (polyglossia/arabic). + +2010-12-03 6.81w Heiko Oberdiek + * 6.81w + * Fix for draftmode, because .out file wasn't written. + +2010-11-26 6.81v Heiko Oberdiek + * 6.81v + * Fix for driver hpdftex.def (undefined \pdf@draftmode). + +2010-11-22 6.81u Heiko Oberdiek + * 6.81u + * Driver hpdftex.def: Use of \pdfdraftmode. + * Driver pdfmark.def: Math mode respected in links. + * Some unnecessary code removed in \LT@p@ftntext (GL). + +2010-10-30 6.81t Heiko Oberdiek + * 6.81t + * Radio buttons: small fix, escaping values and adding /DV. + * Temporary fix for \ltx@LocalAppendToMacro until next bundle update. + +2010-10-19 6.81s Heiko Oberdiek + * 6.81s + * Version check added for driver files. + * Field options `altname' and `mappingname' added. + +2010-09-25 6.81r Heiko Oberdiek + * 6.81r + * \SpecialDvipdfmxOutlineOpen is set in case of XeTeX. + +2010-09-17 6.81q Heiko Oberdiek + * 6.81q + * Broken error messages because of broken \Hy@Error fixed. + +2010-09-17 6.81p Heiko Oberdiek + * 6.81p + * Sanitizing (babel shorthands) of anchor names in + \hyper@anchor and \hyper@anchorstart. + +2010-09-16 6.81o Heiko Oberdiek + * 6.81o + * Broken option `pdfborder' fixed (since 6.81n). + +2010-09-13 6.81n Heiko Oberdiek + * 6.81n + * New option `driverfallback'. It takes a driver option for + the case that a driver is not given and cannot be autodetected. + (Feature request by Markus Kohm.) + * Unused option `hyperref' removed. + * Driver options are now `void' options that do not accept any values. + +2010-09-11 6.81m Heiko Oberdiek + * 6.81m + * New option `pdfremotestartview'. + * \href with new optional argument with + keys `page' and `pdfremotestartview', `pdfnewwindow', `ismap', + `nextactionraw'. + * Fix for urls in \href: Prefix 'file:' is not added. + +2010-09-11 6.81l Heiko Oberdiek + * 6.81l + * Fix spacefactor corrections of 6.81i for math mode. + * Fixing GoToR actions if \href contains `file:///' or + `file://localhost/'. + +2010-09-10 6.81k Heiko Oberdiek + * 6.81k + * PDF forms: Missing JavaScript actions added for check boxes, + push, submit and reset buttons. + * PDF forms: Warnings are given, if HTML field options are used. + +2010-09-04 6.81j Heiko Oberdiek + * 6.81j + * \Hy@EveryPageAnchor fixed to avoid Overfull \hbox warnings + with some drivers. + +2010-09-04 6.81i Heiko Oberdiek + * 6.81i + * Various drivers: Destinations made transparent for \spacefactor. + * Various drivers: Links made transparent for \spacefactor. + * Various drivers: Fixes for option `raiselinks' without color. + +2010-09-01 6.81h Heiko Oberdiek + * 6.81h + * Fix for clash with package `varioref', that redefines + \refstepcounter with loss of hyperref's additions. + * Additions for README. + +2010-08-30 Heiko Oberdiek + * backref 1.36: Typo in warning fixed. + +2010-06-18 6.81g Heiko Oberdiek + * 6.81g + * pdfmark: Disabling of \escapechar is removed during reading + the .out file. With package xkeyval the \pdfmark causes + lots of character `2' in the output. + * kvsetkeys: \setkeys is replaced by \kvsetkeys. + +2010-06-04 6.81f Heiko Oberdiek + * 6.81f + * Beautifying error text of utf8x.def of \utf@viii@undeferr. + * pdfmark.def: Avoid \leavevmode and \hbox of \pdf@rect + for destinations with empty target area. It fixes spacing + in situations like "\section{A}\hypertarget{foobar}{}\section{B}". + (Bug detected by Thomas Beuthe.) + +2010-05-13 6.81e Heiko Oberdiek + * 6.81e + * Real epsilon for \eTeX and \LaTeXe in Unicode bookmarks. + +2010-05-12 6.81d Heiko Oberdiek + * 6.81d + * Fix for russian. (Bug found by Victor Kozyakin.) + +2010-05-11 6.81c Heiko Oberdiek + * 6.81c + * Fix for funny \@alph and \@Alph definitions for use + in anchor names. + * \@fnsymbol uses replacement in anchor names. + +2010-05-10 6.81b Heiko Oberdiek + * 6.81b + * Bookmarks: memoir's \booknumberline supported. + +2010-05-04 6.81a Heiko Oberdiek + * 6.81a + * Patch for longtable takes package arydshln into account. + +2010-05-01 6.80z Heiko Oberdiek + * 6.80z + * Language definitions for \autoref are provided automatically + without global or package language options if babel is loaded + before. + +2010-04-30 6.80y Heiko Oberdiek + * 6.80y + * pdfencoding=auto: Escape TeX characters in .out file after + successful conversion to PDFDocEncoding (or subset). + * nameref 2.40: Support of environment `description'. + +2010-04-17 6.80x Heiko Oberdiek + * 6.80x + * Define \@currentHref as "Doc-Start" right at the beginning + for a better support of \label lost in the preamble. + * nameref 2.39: \@currentHref and \@currentlabelname are not overwritten. + +2010-04-16 6.80w Heiko Oberdiek + * 6.80w + * nameref fix for memoir disabled. + * nameref 2.38: Support for theorems. + +2010-04-15 6.80v Heiko Oberdiek + * 6.80v + * Support for star form of \nameref added in hyperref. + * nameref 2.37 + * Support for forgotten star form \part* added. + * Support for memoir fixed: non-star forms of \section, \chapter. + +2010-03-30 6.80u Heiko Oberdiek + * 6.80u + * \pdfstringdef: Fix for unexpandable shorthand `"-' + of `russianb.ldf'. (Bug found by Uladzimir Pylinski.) + +2010-03-29 6.80t Heiko Oberdiek + * 6.80t + * Support for package `amsthm' fixed. + (Bug found by Dana Lahat.) + +2010-03-28 6.80s Heiko Oberdiek + * 6.80s + * \@currentHlabel is no longer used. + * \HyperGlobalCurrentHref and \HyperLocalCurrentHref added. + (Not yet supported in footnotes.) + * Fix in bookmarks/.out file: some special characters protected. + * \href: detection of file links fixed if the file base name + contains dots (bug found by Uladzimir Pylinski). + * Some changes to allow `hyperref' to be loaded via + \AtBeginDocument (experimental). + +2010-03-19 6.80r Heiko Oberdiek + * 6.80r + * Experimental boolean option `localanchorname' added. + * Warning text corrected for empty anchor. + * Some \@ifundefined replaced by \ltx@IfUndefined + (avoids definition of macros like \thechapter as \relax). + +2010-03-18 6.80q Heiko Oberdiek + * 6.80q + * hpdftex.def, option `verbose': end of links are + recorded in the .log file at shipout time. + This helps to find the link in case of the pdfTeX error + `\pdfendlink ended up in different nesting level ...' + +2010-03-16 6.80p Heiko Oberdiek + * 6.80p + * Bookmark output for \CJKnumber fixed. + * Bookmark implementation of \CJKnumber changed. + \CJK@one is suppressed before \CJK@ten, if the + number starts with this. + +2010-03-13 6.80o Heiko Oberdiek + * 6.80o + * Typo fixed in CJK bookmark code (Jinsong Zhao). + +2010-03-11 6.80n Heiko Oberdiek + * 6.80n: \undefined relaced by \@undefined. + * backref 1.35: \undefined replaced by \@undefined. + +2010-03-10 6.80m Heiko Oberdiek + * 6.80m + * If package `ucs' is loaded \PrerenderUnicode is called + for information entries. + +2010-03-09 6.80l Heiko Oberdiek + * 6.80l + * Support of CJKnumb.sty's \CJKnumber and \CJKdigits in bookmarks, + if encoding is Unicode. + +2010-03-04 6.80k Heiko Oberdiek + * 6.80k + * \pdfstringdef: generic font commands (\selectfont, + \usefont, \fontencoding, ...) disabled. + +2010-03-03 6.80j Heiko Oberdiek + * 6.80j + * pdfmark.def: better support of hyphenation if breaklinks=false. + +2010-03-01 6.80i Heiko Oberdiek + * 6.80i + * hpdftex.def: form fields array collects field references + via .aux file to avoid recording field references of field + inside canceled boxes. + * README updated. + +2010-02-25 6.80h Heiko Oberdiek + * 6.80h + * Compatibility for KOMA-Script's \footref. + +2010-02-24 6.80g Heiko Oberdiek + * 6.80g + * Option `verbose': anchors and internal links are recorded in + the .log file for all drivers. + +2010-02-21 6.80f Heiko Oberdiek + * 6.80f + * Unicode support is loaded only if unicode is set to true. + Previously the option regardless of setting triggered + the loading of unicode support (or an error, if after + \begin{document}). + +2010-02-08 6.80e Heiko Oberdiek + * 6.80e + * \ref and \pageref robust again before \begin{document}. + (Bug report by Gerrit Schmitz.) + * Project/repository moved to Puszcza + (https://puszcza.gnu.org.ua/projects/hyperref). + +2010-01-25 6.80d Heiko Oberdiek + * 6.80d + * License update to LPPL 1.3+ + * nameref 2.36, backref 1.34: LPPL 1.3+ + +2010-01-16 6.80c Heiko Oberdiek + * 6.80c + * Problem with package `titlesec' fixed (reported by GL in comp.text.tex). + * backref 1.33: + * \backrefentrycount added. + * Internal calculations for \backrefalt and \backrefentrycount + are disabled, if these features are not used. + +2010-01-11 6.80b Heiko Oberdiek + * 6.80b + * Options `pdfinfo' and `pdftrapped' added. + +2010-01-09 Heiko Oberdiek + * backref 1.32: + * Brazilian Portuguese added (Rog\'erio Brito). + * Some language aliases added. + +2010-01-08 6.80a Heiko Oberdiek + * 6.80a + * Missing \expandafter added for fix in 6.79z. + `\.' now works again for other languages than Spanish + in bookmarks. + +2009-12-28 6.79z Heiko Oberdiek + * 6.79z + * \pdfstringdef/spanish.ldf: \. breaks \pdfstringdef, + therefore it is restored as dot accent (\es@save@dot). + \... is not supported. Use \texorpdfstring{\...}{\dots} instead. + +2009-12-23 6.79y Heiko Oberdiek + * 6.79y + * Global papersize options (a4paper, ...) ignored. + +2009-12-22 6.79x Heiko Oberdiek + * 6.79x + * Checking \@outlinefile before writing (workaround for + beamer bug in beamerbasecompatibility 1.63). + +2009-12-18 6.79w Heiko Oberdiek + * 6.79w + * Again anchor setting in unnumbered sections fixed. + \@currentHref gets overwritten by float objects right + after inline section commands like \paragraph, \subparagraph. + Reported by Lev Bishop. + Now the reference name (\@currentHref) is passed by value + (expanded) to the anchor setting code. + * nameref 2.35: Required date for package `gettitlestring' updated. + +2009-12-17 6.79v Heiko Oberdiek + * 6.79v + * Fix for `pdfencoding=auto', the code accidently got + deleted for the other drivers than XeTeX. + * `pdfencoding=auto' for XeTeX now adds a method to suppress the + warning "Failed to convert input string to UTF16...", see README. + +2009-12-16 6.79u Heiko Oberdiek + * 6.79u + * Babel patch of 6.77o rewritten that babel can be loaded + after hyperref. + +2009-12-15 6.79t Heiko Oberdiek + * 6.79t + * hxetex: Using encoding `ascii-print' for + `pdfencoding=auto'. + +2009-12-15 6.79s Heiko Oberdiek + * 6.79s + * Removed paper options of 6.79o now generate a warning + instead of an error. + +2009-12-15 6.79r Heiko Oberdiek + * 6.79r + * hxetex: default is now `pdfencoding=auto' because of + bug of AR7/Linux regarding page labels. + +2009-12-15 6.79p Heiko Oberdiek + * 6.79p + * hxetex: PDFDocEncoding is not supported, only + option `unicode', `pdfencoding=unicode' or `pdfencoding=auto'. + In the latter case, PDFDocEncoding is only used, if the + string is an ascii string (7-bit characters). + No idea, how to get rid of the warning + "Failed to convert input string to UTF16...". + The strings are already in UTF16, thus an additional conversion + have to fail. + * Missing package dependency added: intcalc (Vladimir Volovich). + +2009-12-14 6.79o Heiko Oberdiek + * 6.79o + * Paper options `a4paper', `a5paper' are ignored. + Setting the page size is done by using \paperwidth + and \paperheight. Or in case of memoir \stockwidth and + \stockheight are used. Evaluation time for setting the page size + is at begin of document or first page (driver dependant). + * XeTeX has its own driver file `hxetex.def' (based on hdvipdfm.def). + * hxetex.def uses pdfTeX's \pdfpagewidth and \pagepageheight + for setting the media size. + +2009-12-10 6.79n Heiko Oberdiek + * 6.79n + * Use of package `rerunfilecheck'. + * backref 1.31: Use of package `rerunfilecheck'. + +2009-12-09 6.79m Heiko Oberdiek + * 6.79m + * \clear@document (REVTeX} is not used in favor of \AtVeryEndDocument + (Arthur Ogawa). + * backref 1.30: Use of package `atveryend'. + +2009-12-08 6.79l Heiko Oberdiek + * 6.79l + * \Hy@SectionAnchor disabled in bookmarks. + * \clearpage is not added in \AtEndDocument any more by using + package `atveryend' instead to prevent problems with column + balancing in revtex (reported by Arthur Ogawa). + * \@caption uses \NR@gettitle from package `nameref' if available. + * nameref 2.34: + * Redefinition of \@caption is restricted to + the case if hyperref 6.79l or later is not loaded. + * Use of package `gettitlestring' for postprocessing + the title strings. + +2009-11-27 Heiko Oberdiek + * nameref 2.33: \phantomsection and \addcontentsline are disabled during + title string expansion. + +2009-11-27 6.79k Heiko Oberdiek + * 6.79k + * Fix of anchor setting: The anchor setting is filtered out + for title extracting classes and packages (memoir, titleref, + zref-titleref, nameref 2.32. + * nameref 2.32: the title string is expanded to filter out + unwanted stuff (same way as memoir, titleref, zref-titleref). + +2009-11-27 6.79j Heiko Oberdiek + * 6.79j + * Fix of anchor setting for section titles in 6.79h is made + a little more robust. + +2009-11-26 6.79i Heiko Oberdiek + * 6.79i + * Support for empty category parameter fixed for \hyperref and \hyperdef. + * \hyperdef fixed (.aux file entry). + +2009-11-25 6.79h Heiko Oberdiek + * 6.79h + * Fix of anchor setting for section titles. + * chapters, parts (Markus Kohm), + * unnumbered sections. + Now the workarounds with \phantomsection like + \cleardoublepage\phantomsection\printindex + should not be necessary any longer. + * nohyperref: star from \ref and \pageref ignored (Henrik Tidefelt). + +2009-11-20 6.79g Heiko Oberdiek + * 6.79g + * \pdfstringdef: Support for unicode characters added + for XeTeX and LuaTeX. + +2009-11-15 6.79f Heiko Oberdiek + * 6.79f + * Forms: Bug in \HyField@PDFChoices fixed, wrong order of + export and display value (Donald P. Story). + +2009-11-14 6.79e Heiko Oberdiek + * 6.79e + * Rerun warning added for bookmarks, based on MD5 sum and file size. + (This feature requires pdfTeX or LuaTeX.) + * backref 1.29: + * Rerun warning added, based on MD5 sum and file size. + (This feature requires pdfTeX or LuaTeX.) + +2009-10-31 6.79d Heiko Oberdiek + * 6.79d + * Full support of makeindex's encap feature (e.g. \index{alpha|textbf}). + \hyperpage and the formatting command are cascaded via + \hyperindexformat. Internally \index{alpha|textbf} is transferred + to \index{alpha|hyperindexformat{\textbf}}. \hyperindexformat calls + the formatting command in its first argument with the page range + as argument that is put into \hyperpage. The formatting command + may call \hyperpage itself, it will be disabled automatically + to prevent nested \hyperpage commands. + +2009-10-28 6.79c Heiko Oberdiek + * 6.79c + * Fix for a wrong byte "0xA0", accidently introduced in 6.79b. + * Adding bookmark sequence numbers in comments to the bookmark + auxiliary file (Vladimier Volovich). + * Manual fix: pdfpicktrackbypdfsize -> pdfpicktraybypdfsize + (Gregor Zimmermann). + +2009-10-19 6.79b Heiko Oberdiek + * 6.79b + * Respect \stockwidth and \stockheight for drivers `dvips' + and `dvipdfm'. + +2009-10-09 6.79a Heiko Oberdiek + * 6.79a + * Field option `radiosymbol' added. + * Both `checkboxsymbol' and `radiosymbol' support \ding + (see package `pifont' from bundle `psnfss2e'). + +2009-10-02 6.78w Heiko Oberdiek + * 6.78w + * Recognize `amsmidx' as multiple index package (David M. Jones). + * Manual fixes (Herbert Voss). + +2009-09-22 6.78v Heiko Oberdiek + * 6.78v + * PDF objects needed for formulars are only allocated if + environment `Form' is used (hpdftex, hdvipdfm). + +2009-09-10 6.78u Heiko Oberdiek + * 6.78u + * Support for open outlines is turned on for XeTeX >= 0.9995. + Thus option `dvipdfmx-outline-open' is not necessary in this case. + I don't know about older versions of XeTeX. + * Additions to the manual (aliascnt, bookmarks). + +2009-08-04 6.78t Heiko Oberdiek + * 6.78t + * Fix: Option `bookmarksdepth' with name value now also works + as package option. + +2009-05-23 6.78s Heiko Oberdiek + * 6.78s + * Fix: "\let\textlatin\@firstofone from \addcontentsline. + +2009-05-01 6.78r Heiko Oberdiek + * 6.78r + * \pdfstringdef: + * Typo in definition of \new@ifnextchar fixed (Ulrike Fischer), + * and \kernel@ifnextchar disabled (Dan Luecking). + * dvipdfm(x)/xetex: This driver family does not support nested + annotations. Therefore annotations inside annotations are + disabled automatically. + +2009-04-04 6.78q Heiko Oberdiek + * 6.78q + * Better error message for \MakeUppercase and \MakeLowercase + in \pdfstringdef (bookmarks). + * Expandable simulation of \ignorespaces in bookmarks. + * The values of boolean options are now expanded (\Hy@boolkey). + * Warnings added for links with empty destination name. + +2009-02-22 6.78p Heiko Oberdiek + * 6.78p + * hpdftex.def: Problem fixed, if a link is broken across the + first and the next page. + +2009-02-02 6.78o Heiko Oberdiek + * 6.78o + * Workaround for package `linguex' added (it redefines the + accent macros \b, \c, \d). + +2008-12-26 6.78n Heiko Oberdiek + * 6.78n + * Support of active `&' and \& in \href (\hyper@normalise). + +2008-11-18 6.78m Heiko Oberdiek + * 6.78m + * The fix for fancyvrb in hyperef 1998-03-21 is not compatible with + and necessary for fancyvrb 1998-05-20 or later. Therefore the + fix is disabled for these versions. + * Option `ocgcolorlinks': Fix for driver `dvipdfm'. + * Improved anchor setting for package `amsthm' (Daniel M\"ullner). + +2008-09-29 6.78l Heiko Oberdiek + * 6.78l + * Bookmarks: `--' and `---' are automatically replaced by \textendash + and \textemdash in bookmark strings. However older AR versions + (until AR5/Linux) might miss these glyphs. + * Encoding name in warnings `Token not allowed' fixed. + +2008-09-27 6.78k Heiko Oberdiek + * 6.78k + * Fix for `slovak' and other babel languages that make `^' and other + characters active. This disturbs loading of package `color' and + perhaps `nameref' that are loaded later at begin document. + +2008-09-13 6.78j Heiko Oberdiek + * 6.78j + * Forms/hpdftex.def: Missing /Fields entry is set in the same way + as it is done by the other drivers. + +2008-09-12 6.78i Heiko Oberdiek + * 6.78i + * \pdfstringdef: accent support of encoding PU reimplemented + in a cleaner way. + +2008-09-11 6.78h Heiko Oberdiek + * 6.78h + * \pdfstringdef: + * Warning in case of unsupported composite characters fixed. + * Unknown composite characters use Unicode combining accents + if possible. + * Supported range in PU encoding improved, especially + extended latin sets, cyrillic, and standard LICRs. + * Various fixes in encodig files (pd1enc.def, puenc.def). + +2008-08-20 6.78g Heiko Oberdiek + * 6.78g + * Patch for \pdfstringdef of Manuel P\'egouri\'e-Gonnard + for package `xargs'. + * Option pdfversion accepts versions until 1.9. + +2008-08-14 6.78f Heiko Oberdiek + * 6.78f + * \nohyperref added to support custom entries in style files + of MakeIndex (delim_r, suffix_*), see README. + +2008-07-23 6.78e Heiko Oberdiek + * 6.78e + * Driver hdvipdfm.def: Missing code for option `setpagesize' added. + * README: Entry for package geometry/dvipdfm added. + +2008-07-17 6.78d Heiko Oberdiek + * 6.78d + * Bug fix in disabled onclick field for PDF/A (Radhakrishnan CV). + +2008-07-16 6.78c Heiko Oberdiek + * 6.78c + * \HyperDestNameFilter added. + (Feature request by Matthias Franz.) + * htex4ht.cfg: \MP corrected. + +2008-07-15 6.78b Heiko Oberdiek + * 6.78b + * Option `colorlinks': border properties are not cleared immediately, + but at evaluation time in \AtBeginDocument. This allows a setting + of colorlinks in hyperref.cfg and using colorlinks=false in the + document without getting lost of the link borders. + (Problem reported by Axel Berger.) + +2008-07-12 6.78a Heiko Oberdiek + * 6.78a + * Driver options: Algorithm for finding the driver is changed: + * Code for detecting the driver is more robust + (not confused by \newcount\pdfoutput, solves a problem with beamer). + * Driver hpdftex.def is used/forced if and only if pdfTeX is running + in PDF mode. Thus hyperref now behaves like the other packages that + do not change PDF mode. + * Also some other driver options are checked. + * Driver hpdftex.def: + * Setting of \pdfcompresslevel is removed. + * \PassOptionsToPackage{pdftex}{color} is removed. + * Option dvipdf with driver hdvipdf.def is removed. + (Nobody missed it since 2006-08-01 v6.75a.) + +2008-07-05 6.77v Heiko Oberdiek + * 6.77v + * Fix: Use normal meaning of babel's shorthand characters in + markup text of links. (Bug found by Ign\'acio Fernandez Galv\'an.) + +2008-04-24 6.77u Heiko Oberdiek + * 6.77u + * Fix in action code for PDF/A, introduced in 6.77p (e.g. \PushButton). + +2008-04-22 6.77t Heiko Oberdiek + * 6.77t + * Fix: \nameref in bookmarks. + * Fix for dvipsone: unknown `?pdfmark'. + +2008-04-20 6.77s Heiko Oberdiek + * 6.77s + * Additions to PU encoding: \textzerosuperior, ..., \textninesuperior, + \textzeroinferior, ..., \textnineinferior + +2008-04-19 6.77r Heiko Oberdiek + * 6.77r + * Option pdfa: pdf version is set to 1.4. + * Experimental option `ocgcolorlinks': Same as `colorlinks', + but prints without color. Optional Color Groups of PDF 1.5 + are used. Main disadvantage: the links cannot be wrapped + across lines, because they are put in an \hbox. Currently + only drivers `pdftex' and `dvipdfm' are supported. + +2008-04-17 6.77q Heiko Oberdiek + * 6.77q + * Fix for small problem with XeLaTeX (\string^^f4). + +2008-04-16 6.77p Heiko Oberdiek + * 6.77p + * Patch for missing anchor settings with amsmath (multline) by + Ross Moore. + * New option `pdfa' to improve compatibility with PDF/A, + see README. + +2008-04-15 6.77o Heiko Oberdiek + * 6.77o + * Babel 2008/03/16 v3.8j disables shorthands for bookmarks. + This reduces the probability of warnings, but at the cost + of ugly bookmarks. Therefore hyperref tries to undo this. + See LaTeX bug-report `babel/4017'. + * Fix for bulgarian.ldf's \@Alph and \@alph for \hyper@makecurrent. + * Patch for missing anchor settings with amsmath (multline) by + Ross Moore. + +2008-04-13 6.77n Heiko Oberdiek + * 6.77n + * New option `linktoc' added, see README. + +2008-04-12 6.77m Heiko Oberdiek + * 6.77m + * Surrogate support for bookmarks (utf8.def, including utf8 + sequences starting with ^^f4). + * Fix: unicode disabled for pdfmoddate and pdfcreationdate. + * Fix for footnote support of fancyvrb (Manuel P\'egouri\'e-Gonnard). + * Fix for anchor name settings inside numbered lists. + * Russian update with comments (Olga Lapko). + +2008-04-05 6.77l Heiko Oberdiek + * 6.77l + * \CheckSum fixed. + * hyperref-tds.zip renamed to hyperref.tds.zip. + +2008-04-02 6.77k Heiko Oberdiek + * 6.77k + * Macro \SliTeX supported by \pdfstringdef. + +2008-02-06 6.77j Heiko Oberdiek + * 6.77j + * Bug (typo) in \PushButton fixed (inserted in 6.77a). + * Bug (typo) in hdviwindo.def fixed (Fran\c cois Charette). + +2008-01-09 6.77i Heiko Oberdiek + * 6.77i + * Russian names for \autoref added (Olga Lapko). + +2007-12-16 6.77h Heiko Oberdiek + * 6.77h + * \Hy@pstringdef(baseurl, ...) with \edef~{\string~} + +2007-11-20 6.77g Heiko Oberdiek + * 6.77g + * Forms: /MK suppressed if empty. + +2007-11-17 6.77f Heiko Oberdiek + * 6.77f + * Bug fix for dviwindo: misspelled \Hy@DisableOption (Philip Ratcliffe). + +2007-11-12 6.77e Heiko Oberdiek + * 6.77e + * LuaTeX: Package `pdftexcmds' for \pdfescapestring. + * Default producer setting recognices XeTeX and LuaTeX. + +2007-11-08 6.77d Heiko Oberdiek + * 6.77d + * If `pdfstartpage' or `pdfstartview' is empty, + the catalog key /OpenAction is omitted. + +2007-11-05 6.77c Heiko Oberdiek + * 6.77c + * Fix for memoir: \stockwith -> \stockwidth. + +2007-10-30 6.77b Heiko Oberdiek + * 6.77b + * Option `pdfnewwindow': setting to `true' or `false' sets the + entry /NewWindow in the action object. The entry is absent, + if the `pdfnewwindow' is not used or its value is empty + (then the user preference is used). + +2007-10-29 6.77a Heiko Oberdiek + * 6.77a + * New PDF form field options for flag setting, see README. + * The ugly hooking in \@begindvi is removed in favor of + using package `atbegshi'. + * \@hyperfixhead don't exist anymore. + * Patch of fancybox is obsolete. + * \AtBeginDvi replaced by \AtBeginShipoutFirst + * Obscure \HYPERPAGEANCHOR is removed. + * If \paperwidth and \paperheight contain invalid values, then + \special{papersize=...} is suppressed and a warning is given. + * revtex4/driver pdftex: pdfpagelabels uses \clear@document as hook + instead of LaTeX's \AtEndDocument. This avoids \clearpage that + confuses revtex4's balancing of the last page. + * revtex4: Fix for setting label `LastPage'. + * Fix for package float's \restylefloat* by Axel Sommerfeldt. + * Bug fix (debian 351260) in 6.75a breaks `hypertexnames=false'. + Fixed (Axel Sommerfeldt). + * Bug fix: The scope of \HyperRaiseLinkLength is limited to + \HyperRaiseLinkHook. + * Bug fix: broken \autoref if option `draft' is given. + * Bug fix: longtable + hypertexnames=false (bug found by Axel Sommerfeldt). + * \pdfstringdef: \@mkboth disabled. + * Definition of \pagenumbering removed. + * Fix of problem with babel's shorthands in bibliography. + * Hungarian names for \autoref added (Miglinszki P\'eter). + * Fix for form field's multiline (old bug, introduced in v6.73h): + The default height for multiline entries was calculated before + the option was evaluated. The default height of multiline entries + can be configured by \DefaultHeightofTextMultiline. + Default is 4\baselineskip. + * \nolinkurl supports escaped characters the same way as \url + (Joseph Wright). + * backref 1.28: Avoids duplicate \newwrite calls. + +2007-06-14 6.76i Heiko Oberdiek + * 6.76i + * `pdfencoding=auto' a little more efficient. + +2007-06-12 6.76h Heiko Oberdiek + * 6.76h + * Fix for default of \theHequation (class `foils' + do not know counter `section'). + * New option `pdfencoding' added (uses package `stringenc'). + +2007-05-29 6.76g Heiko Oberdiek + * 6.76g + * The color of launch annotations are set by options + `runcolor' and `runbordercolor'. (Previously `filecolor' + was used.) + * Support for package `showkeys' added for \autoref. + * Fix for line breaks right after \url or \href. + * nameref 2.31: Support for caption of package `listings'. + * nameref 2.31: Some fixes in \NR@@vpageref. + +2007-05-09 6.76f Heiko Oberdiek + * 6.76f + * Use of package `etexcmds' for \unexpanded. + +2007-05-03 6.76e Heiko Oberdiek + * 6.76e + * hyperref: ConTeXt's base/syst-gen.tex redefines e-TeX's \unexpanded. + * Some support for amsmath's environment `subequations'. + * nameref 2.30: \label is supported after longtable's \caption. + +2007-04-25 6.76d Heiko Oberdiek + * 6.76d + * Option dvipdfmx-outline-open/\SpecialDvipdfmxOutlineOpen + adjusted to new CVS version of dvipdfmx. + +2007-04-18 6.76c Heiko Oberdiek + * 6.76c + * Fix for star forms of \ref commands. + * Fixes for \autopageref. + +2007-04-11 6.76b Heiko Oberdiek + * 6.76b + * Line end cleanup, removal of spaces. + * Minor fixes in form part. + +2007-04-09 6.76a Heiko Oberdiek + * 6.76a + * Color options implemented by package `hycolor'. + * pdfborder: Patch for ghostscript added to remove resolution + dependency. Unclear is the behaviour of Acrobat Distiller, + dvipsone, and textures. + The values for pdfborder should be specified in the way + they should appear in the PDF file. Default: pdborder={0 0 1} + * \autopageref added. + * New field option `rotation' added. + * Field options bordercolor and backgroundcolor: + * An empty value is permitted. + * If the value does not start with a number ('0', '1', '.'), + then it is processed as xcolor specification. + * Fix for drivers dvipdfm/pdfmark: launch annotation now uses + `runbordercolor' instead of `filebordercolor'. + * PD1 encoding: Replacements for older AR versions removed: + \l, \L, \v z, \v Z, \i, \textfractionmark, \textfi, \textfl + * \pdfstringdef: a little faster. + * \href followed by `%' and line break works now. + * Option dvipdfmx-outline-open or \chardef\SpecialDvipdfmxOutlineOpen=1 + enables support for open outline entries + (dvipdfmx, since cvs version 2007-03-29). + Caution: this feature is experimental and can change. + * Italian translation of \autoref names added (Cristian Battaglia). + * Support for \greeknumeral and \Greeknumeral in Bookmarks + (with option unicode). + * Replacement for \greeknumeral and \Greeknumeral in anchor names. + * pdfmark: Destinations without rectangle (D.P.Story) + * Fixes for fancybox. + * Fixes for chapterbib (Donald Arsenau). + * Some support for Spanish shorthands in bookmarks added. + * varioref (hyperref + nameref): + * Support for \Ref and \Vref. + * \vref puts the whole reference text in a link. + * Fix for babel shorthand characters. + * Small fixes for undefined references. + * tex4ht: \hyperlinkfileprefix{} added (Eitan Gurari). + * Some support for hypcap added (idea of Axel Sommerfeldt). + * Unused form field option `fillcolor' removed. + * Unused option `pagecolor' removed. + * Practically unused option `pagebordercolor' removed. + * \PDFPage removed, because it's undocumented, is not + free from errors and is not supported by all drivers. + * nameref 2.29: beamer support added. + +2007-02-27 6.75t Heiko Oberdiek + * 6.75t + * Suppressing links with empty link area. + (Avoids invalid PDF files in case of pdfmark drivers, + bug found by Thorsten Schwander.) + +2007-02-16 6.75s Heiko Oberdiek + * 6.75s + * Fix for \autoref in bookmarks that was broken since the + star form support of 6.75g. (Bug found by Matthias Franz.) + +2007-02-07 6.75r Heiko Oberdiek + * 6.75r + * dvipdfm, option pdfview: Parameters of XYZ fixed (Jin-Hwan Cho). + * dvipdfm, option pdfview: The implementation was very poor. + Now XYZ, Fit{,B,H,BH,V,BV} are supported. FitR and parameters + remain unsupported. + +2007-01-25 6.75q Heiko Oberdiek + * 6.75q + * If colorlinks is set to true, pdfborder is set to suppress + the border. Now also pdfborderstyle is cleared. + +2007-01-23 6.75p Heiko Oberdiek + * 6.75p + * Bug fix: disable pdfpagelabels if \thepage is undefined. + * Forms: color specifications can also be given by color names, + if package xcolor is loaded. + +2007-01-18 6.75o Heiko Oberdiek + * 6.75o + * XeTeX: new option added and default driver detection extended. + +2007-01-17 6.75n Heiko Oberdiek + * 6.75n + * ChoiceMenu fix: parameter value is now used if given. + +2007-01-14 6.75m Heiko Oberdiek + * 6.75m + * \autoref uses the name for appendix if it references sections + that follow \appendix in classes without \chapter. + * Support for beyond-BMP characters in unicode bookmarks + (Dohyun Kim <nomosnomos@gmail.com>) + +2007-01-06 6.75l Heiko Oberdiek + * 6.75l + * Updated default value of option pdfproducer for pdfTeX 1.40.0. + +2006-12-30 6.75k Heiko Oberdiek + * 6.75k + * puarenc.def: Additions to PU encoding for Arabi by Youssef Jabri. + * New option arabic that loads puarenc.def. + +2006-12-27 Heiko Oberdiek + * nameref 2.28: \protected@edef isn't robust enough for removing + \label in name strings. Now \label is disabled during referencing. + +2006-12-21 6.75j Heiko Oberdiek + * 6.75j + * Fix for bug in \Hy@safe@actives..., introduced in 6.75g. + * nameref 2.27: now \label uses \protected@edef for the nameref + to remove \label commands while writing into the .aux file. + +2006-12-21 6.75i Heiko Oberdiek + * 6.75i + * Fix: \unichar in bookmarks with Unicode encoding. + +2006-11-30 6.75h Heiko Oberdiek + * New options for pdf viewer preferences: + pdfdirection, pdfviewarea, pdfviewclip, + pdfprintarea, pdfprintclip, pdfduplex, pdfpicktraybypdfsize, + pdfprintpagerange, pdfnumcopies. + New option for pdf catalog: + pdflang (except VTeX) + * Internal change: \pdf@pagelayout renamed to \@pdfpagelayout. + * Internal change: \@pdfpagemode without slash. + +2006-11-15 6.75g Heiko Oberdiek + * New option pdfprintscaling. + * Star version of \autoref* analogous to \ref*. + * Support of memoir: package memhfixc is automatically loaded. + +2006-10-06 Heiko Oberdiek + * backref 1.27: fix for \backrefspanish. + +2006-09-12 6.75f Heiko Oberdiek + * 6.75f + * Documentation fix: options pdfdisplaydoctitle and + pdfnonfullscreenpagemode + +2006-09-06 6.75e Heiko Oberdiek + * 6.75e + * dvipdfm: \leavevmode for links added. + * dvipdfm: option dvipdfmx added (alias for dvipdfm). + * pdfmark.def: Bug fix, clash with \Hy@temp. + +2006-08-29 6.75d Heiko Oberdiek + * 6.75d + * Fix: If option unicode option is given, page anchors + are wrong. Fixed by disabling unicode for page anchor names. + * Listing(s) support: \providecommand instead of \def. + +2006-08-16 6.75c Heiko Oberdiek + * 6.75c + * Supporting both options "vietnamese" and "vietnam". + +2006-08-15 6.75b Heiko Oberdiek + * 6.75b + * VnTeX support by Han The Thanh. New option: vietam. + * Fix for bug with varioref, introduced in 6.75a. + * Entry "algorithm" updated in README. + * nameref 2.26: required date added for package refcount. + +2006-08-01 6.75a Heiko Oberdiek + * 6.75a + * hyperref-tds.zip provided with files sorted in a TDS tree. + * New option defaults: + * plainpages=false + * pdfpagelabels=true + * Package kvoptions defines \ProcessOptionsWithKV under + the name \ProcessKeyvalOptions. It replaces + hyperref's macro \ProcessOptionsWithKV. + * Some code for extracting reference information is put + into package refcount that is now loaded by nameref + and hyperref. + * Option bookmarksdepth: The depth of the outline entries + can now set separatly from counter "tocdepth", + see README. + * New option: pdfescapeform, see README. + * \hyper@normalise for action attribute in forms. + * \ProcessOptionsWithKV: \let\CurrentOption\@empty added. + * "bordercolor" options now support package xcolor (>=1.11). + * "color" options also support the optional argument (color + model) of \color. + * New option "pdfborderstyle" that allows the setting of the + border style dictionary. (Be aware that the support of this + feature by PDF viewers is limited.) + Example: underlined links can be obtained by + pdfborderstyle={/S/U} + * Direct low level bookmark support for \usepackage[utf8]{inputenc} + and "uftf8x" of package "ucs". Byte sequences until three + bytes are supported and e-TeX is required. + (No support for surrogates). + * Fix in \addcontentsline, if option verbose is set. + * Better bookmark support for FrenchPro package + by use of \if@mid@expandable (Bernard Gaulle <gaulle@idris.fr>). + * Options "pdfcreationdate" and "pdfmoddate" added. + * README: Section "Limitations" added with "Broken Link Support". + * Default driver setting: added missed code of corresponding + options (Thanks for Arnaud Giersch <arnauld.giersch at free.fr>). + * \penalty10000 added in \Hy@raisedlink to cancel the + effect of \smash in preventing hyphenation, e.g. a footnote + after a word. + * \@classoptionslist can be \relax (see psnfss/3773). + * \new@ifnextchar also disabled for bookmarks and + constructs such as \let\if...\if{true,false} are catched, + see latex/3662. + * Bug fix: The case "\part without number by counter secnumdepth" + was forgotten for the bookmarks (thanks to Rachel Elizabeth Dillon). + * Bug fix: \vpageref defines undefined references with + empty anchor name that breaks \autoref. + * Fix: Wrong message about setting of draft fixed, + if option final is used. + * Pdfmark driver: better removal of pdfmark stuff, + especially generated by forms, if the postscript + application does not define pdfmark, e.g. because the + output is not pdf (gs >= 8.0). + * New version numbering scheme of pdfTeX >= 1.30. + * Fix for \hyper@normalise, if & is used inside \href + in tabular environments. + * Fix: Setting pdfproducer in \usepackage's option part + did'nt have an effect, because it was overwritten by + the default setting. + * Fix: pageanchor=false disabled \@hyperfixhead and thus + many other features unrelated to pageanchor itself. + (Thanks to Hendri Adriaens for report and analysis.) + Now pageanchor can be changed during the document, too. + * Protection of strings that are written as PS/PDF strings. + * Hook \Hy@setouterhbox for package setouterhbox. + * Option plainpages: \thepage is run through \pdfstringdef. + Helps in the case of spanish roman numbers. + * Deprecate warning for option 'dvipdf'. + * \ding replaced by its code for dropping the dependency on + package pifont and a compatibility problem with package + pinyin (Werner Lemberg). + * \hyper@normalise: "\\" is escape for "\" (\href, ...). + * Bug fix (debian 351260) in float support by Braun Gabor. + * Fix: Write register for bookmarks is only allocated if needed. + * Empty Unicode strings without Unicode header bytes. + * Fix for pdfmark+unicode+pdfpagelabels. + * Bug fix for empty destination names of pdfmark based drivers. + * Documentation: option hyperfootnotes added. + * French texts (\HyLang@french) provided by Marc-Antoine Parent. + * README: compatibility entries for packages ellipsis, verse. + * \hyper@normalize: support of active dollar. + * puenc.def: some fixes, reported by Ralf Stubner. + * Makefile no longer provided. + * nameref 2.25, backref 1.26: Documenation fix: \HyperrefOverview + is undefined if bmhydoc.sty is not loaded. + * nameref 2.24: Patch for ifthen moved from hyperref to nameref. + * nameref 2.24: Definitions of \filedate and \fileversion removed. + * nameref 2.23: Support for captions added. + * nameref 2.22: + Fix: \@safe@activestrue limited to label name. + * backref 1.25: New feature \ifbackrefparscan/\backrefprint + * backref 1.25: Definitions of \filedate and \fileversion removed. + * backref 1.24: [#1] --> [{#1}] + * Documentation: README.pdf and ChangeLog.pdf added. + +2003-12-03 Heiko Oberdiek + * nameref 2.21 + * \ref and \pageref are defined at any case, if hyperref + is not loaded. + +2003-11-30 6.74m Heiko Oberdiek + * 6.74m + * \textcolor disabled in bookmarks. + +2003-11-15 6.74l Heiko Oberdiek + * 6.74l + * Typo fixed by Werner Lemberg: s/CJK@punktcharx/CJK@punctcharx/ + +2003-10-30 Heiko Oberdiek + * nameref 2.20: titlesec support added. + +2003-10-12 6.74k Heiko Oberdiek + * 6.74k + * Fix for more than one footnote in longtable's + columns of type "p". + +2003-10-06 6.74j Heiko Oberdiek + * 6.74j + * Bug fix: automatic link type detection failed for + url field in references (eg. imported labels by xr-hyper). + +2003-09-15 6.74i Heiko Oberdiek + * 6.74i + * Bug fix (\if-commands after \ifx of 6.74h's "fleqn" detection). + +2003-07-27 6.74h Heiko Oberdiek + * 6.74h + * The lost source for the manual is rewritten by Steve Peter + and updated by Karl Berry. + * Bug fix of 6.74f does not work for amsmath's option "fleqn", + the \label does not detect the equation number, therefore + the fix is disabled, if "fleqn" is detected. + +2003-07-22 6.74g Heiko Oberdiek + * 6.74g + * Bug fixed in pdfmark.def: definition of \strip@pt@and@otherjunk + moved before \endinput by implicit=false. + +2003-07-10 6.74f Heiko Oberdiek + * 6.74f + * Fix for wrong vertical spacing between amsmath's + equation environments (Dmitri Chubarov <chubarik@gorodok.net>). + +2003-06-01 6.74e Heiko Oberdiek + * 6.74e + * README: Hint for hypcap added. + * pdfmark.def: "cvn" added for named GoToR destination + (Reinhard Jahraus). + +2003-05-12 6.74d Heiko Oberdiek + * 6.74d + * An empty dictionary /ViewerPreferences is now suppressed. + +2003-05-12 6.74c Heiko Oberdiek + * 6.74c + * \@addtoreset: \edef replaced by \xdef. + +2003-04-28 6.74b Heiko Oberdiek + * 6.74b + * Patch for float.sty compatibility (Anselm Lingnau/Marco Kuhlmann). + * Tried better anchor setting for floats that are controlled + by float.sty. Several captions inside one float are not supported. + +2003-04-27 6.74a Heiko Oberdiek + * 6.74a + * \newcounter{foo}[bar]: using \theHbar, if available. + +2003-04-14 6.73z Heiko Oberdiek + * 6.73z + * New option "pdfdisplaydoctitle" (PDF 1.4). + * New option "pdfnonfullscreenpagemode". + +2003-03-31 6.73y Heiko Oberdiek + * 6.73y + * Also the KOMA-Script classes redefine \LT@array, therefore + longtable fix extended. + +2003-03-25 6.73x Heiko Oberdiek + * 6.73x + * Behaviour of warning "bookmark level for unknown ..." changed: + * The missing \toclevel@... command is globally defined + to avoid further warnings. + * If this entry is not used for the bookmarks, the + warning is changed into a \PackageInfo. + * Language support for Afrikaans added. + +2003-03-21 6.73w Heiko Oberdiek + * 6.73w + * Errors corrected in documentation part. + +2003-03-21 6.73v Heiko Oberdiek + * 6.73v + * \hyperpage now ignores spaces and empty arguments. + +2003-03-21 6.73u Heiko Oberdiek + * 6.73u + * Option "encap", other encap character for use with hyperindex + can be given. + +2003-03-20 6.73t Heiko Oberdiek + * 6.73t + * hyperref now uses the same method for language support as + backref 1.23. + * Change from \captions<lang> to \extras<lang>. + * backref 1.23 + Babel support for language strings added + (suggestion of Danie Els). + +2003-03-20 6.73s Heiko Oberdiek + * 6.73s + * Default for \itemautorefname added. + * backref 1.22 + Bug fixes and additions of Danie Els <dnjels@sun.ac.za>: + * Typo fixed in \backreflastsep. + * Package natbib support, if hyperref is not loaded. + * Language Afrikaans added. + * hyperref.ins: + hyperref.drv and hycheck.tex are put outside the scope + of \usedir. + +2003-03-19 6.73r Heiko Oberdiek + * 6.73r + * \hyper@link@: \@safe@activestrue used for internal name + * backref 1.21: + * Continued with inserting of \@safe@activestrue. + * \backrefxxxdupe added for comparision and detection + of dupes. + * \backrefalt added with more powerful interface with macros + \backrefsep, \backreftwosep, and \backreflastsep. + * Language options added. + * More documentation. + +2003-03-18 6.73q Heiko Oberdiek + * 6.73q + * Suppressing /URI entry if \@baseurl is empty (hpdftex, hdvipsone). + * /URI moved to Cataloge (hdvipsone). + * Some locations of "file:" replaced by \Hy@linkfileprefix. + +2003-03-18 6.73p Heiko Oberdiek + * 6.73p + * Patch for longtable added (problem reported by Thomas Beuthe). + +2003-02-11 6.73o Heiko Oberdiek + * 6.73o + * Support for babel's shorthands in \autoref fixed. + * Support for \autoref in bookmarks added. + * Option final added similar to graphics.sty, article.cls, ... + * \hyperref[#1] does now use babel's \@safe@activestrue. + +2003-01-22 6.73n Heiko Oberdiek + * 6.73n + * Unsafe key value pair: Action=<<...#2...#3...>> + replaced by: Action={<<...#2...#3...>>} + because it breaks, if #2 or #3 contain a comma. + +2003-01-22 6.73m Heiko Oberdiek + * 6.73m + * Support for \@makecaption of class IEEEtran with + three arguments removed, because version V1.6b uses + the standard LaTeX interface with two arguments. + +2003-01-20 6.73l Heiko Oberdiek + * 6.73l + * Footnote fix: Initialization of \Hy@footnote@currentHref + added (Thorsten Schwander <schwander@horse.lanl.gov>). + +2003-01-17 6.73k Heiko Oberdiek + * 6.73k + * Footnote fix: \label commands inside \footnote do + not need nameref support (\@currentlabelname). + +2003-01-17 6.73j Heiko Oberdiek + * 6.73j + * Fix for footnote code: a \label after \footnote + commands refers to the previous section or similar + and not to the footnote. + +2002-12-15 6.73i Heiko Oberdiek + * 6.73i + * \texteuro fixed for PU encoding, + Maksym Polyakov <polyama@myrealbox.com>. + +2002-12-10 6.73h Heiko Oberdiek + * 6.73h + * Bugreport of Michael W Daniels <daniels@ling.ohio-state.edu>: + height in \TextField is not respected, if multiline is set. + * Fixed by moving the height setting code in the default + section. + * Also "4\DefaultHeightofText" replaced by a more robust + construct. + +2002-12-05 6.73g Heiko Oberdiek + * 6.73g + * \edef instead of \def for comparison with value of option + bookmarkstype (in \@@writetorep), the following should + work: bookmarkstype=lof + +2002-12-03 6.73f Heiko Oberdiek + * 6.73f + * Option "setpagesize" added also for VTeX's \mediawidth/height. + * VTeX: \mediawidth/height is only set with positive dimen values. + +2002-11-29 6.73e Heiko Oberdiek + * 6.73e + * Option "setpagesize" added. + +2002-11-14 6.73d Heiko Oberdiek + * 6.73d + * Support for \@addtoreset added, similar to + \numberwithin (idea of Markus Kohm in + de.comp.text.tex). + +2002-11-07 6.73c Heiko Oberdiek + * 6.73c + * Added "hyperpage" also after "closing range" + (\index{...|)hyperpage}), because it is allowed + for makeindex and necessary for XIndy. + +2002-11-01 6.73b Heiko Oberdiek + * 6.73b + * \Hy@raisedlink for caption without option nesting. + * Support for \@makecaption of class IEEEtran that + uses three arguments. + +2002-10-24 6.73a Heiko Oberdiek + * 6.73a + * vtexpdfmark: pdfborder={0 0 1} (Walter Schmidt). + +2002-10-22 6.72z Heiko Oberdiek + * 6.72z + * A small remainder of option 4 removed. + * options.tex: option pdfpagelabels added, + option 4 removed. + +2002-09-12 6.72y Heiko Oberdiek + * 6.72y + * Addition to \hyper@normalise: \_, \textunderscore, + \textasciitilde. + +2002-09-04 6.72x Heiko Oberdiek + * 6.72x + * \ReadBookmarks is disabled if bookmarks=false is given. + * \Hy@raisedlink introduced into \hyper@natanchorstart + (Thanks to Macro Kuhlmann <mk@mcqm.net>). + +2002-08-24 6.72w Heiko Oberdiek + * 6.72w + * "\let\pdfoutput\@undefined" removed. + * Bug fix: option bookmarksnumbered is now respected, + if package slidesec is used. + +2002-08-04 6.72v Heiko Oberdiek + * 6.72v + * Koma classes: optional argument for \maketitle. + +2002-08-03 6.72u Heiko Oberdiek + * 6.72u + * \appendix: \Hy@org@appendix moved to the end + and renamed to \HyOrg@appendix. + +2002-07-25 6.72t Heiko Oberdiek + * 6.72t + * Support for footnotes in p-columns of longtables. + +2002-06-06 6.72s Heiko Oberdiek + * 6.72s + * \Hy@defaultdriver used, so that "hypertex" can + be redefined in hyperref.cfg (eg. "dvips"). + +2002-06-05 Heiko Oberdiek + * backref 1.20 + * Babel's \@safe@activestrue inserted to bibitem commands. + But problems with \cite remains (frenchb.ldf). + +2002-05-27 6.72r Heiko Oberdiek + * 6.72r + * Problem with varioref's \vref@pagenum fixed + (Thanks to Felix Neubauer <felix.neubauer@gmx.net>). + +2002-05-10 6.72q Heiko Oberdiek + * 6.72q + * Some spaces in PDF output of driver pdftex removed. + +2002-05-09 6.72p Heiko Oberdiek + * 6.72p + * Option `pdfusetitle' now correctly disabled. + +2002-04-20 6.72o Heiko Oberdiek + * 6.72o + * Bug fix of 6.72n is wrong: + Octal escape sequences (\000) are not detected by the method + with \meaning. Now another method, based on \dospecials, is + used to protect active characters while reading the .out file. + +2002-04-19 6.72n Heiko Oberdiek + * 6.72n + * Bug fixed in \ReadBookmarks of driver vtex: + the text arguments in the .out file are + now protected. + +2002-04-15 6.72m Heiko Oberdiek + * 6.72m + * Adaption to subfigure 2002/03/26 v2.1.2. It uses + \AtBeginDocument{...\newcommand{\toclevel@subfigure}...}. + +2002-04-12 6.72l Heiko Oberdiek + * 6.72l + * Fix from Werner Lemberg <wl@gnu.org> for + bookmarks with Big5 encoded strings, + preprocessed by package cjk. + +2002-04-09 6.72k Heiko Oberdiek + * 6.72k + * \protected@edef instead of \edef in \hyper@link@. + +2002-03-27 6.72j Heiko Oberdiek + * 6.72j + * Tried to fix the problem that links to + bibliography points to baseline if pdfTeX is + used by inserting \Hy@raisedlink. + * \Hy@raisedlink disabled for pdfmark drivers, + because they use a PostScript method. + +2002-03-15 6.72i Heiko Oberdiek + * 6.72i + * \toclevel@subfigure and \toclevel@subtable fixed. + +2002-03-15 6.72h Heiko Oberdiek + * 6.72h + * New structure on tug server. + * Makefile: target "distrib" removed. + * Textures update by Ross Moore <ross@maths.mq.edu.au>. + +2002-03-14 6.72g Heiko Oberdiek + * 6.72g + * Added fix for subfigure 2002/02/14 v2.1. + Loading order: nameref, subfigure, hyperref. + +2002-03-08 6.72f Heiko Oberdiek + * 6.72f + * dvipdfm: pdfstartpage and pdfstartview fixed + (Akira Kakuto <kakuto@fuk.kindai.ac.jp>). + +2002-02-16 6.72e Heiko Oberdiek + * 6.72e + * \pdfstringdef: \cyr disabled for russian.ldf + * \pdfstringdef: shorthands for macedonian.ldf + * VTeX 7.54: pdfnewwindow supported in \hyper@linkfile. + +2002-01-14 6.72d Heiko Oberdiek + * 6.72d + * Bug fix: \Hy@title, \Hy@author. + +2002-01-08 6.72c Heiko Oberdiek + * 6.72c + * pdfmark.def: /URI moved from /DOCVIEW to {Catalog}. + * pdfmark.def: Unused \@dobaseurl removed. + +2002-01-07 6.72b Heiko Oberdiek + * 6.72b + * Support of \stockwidth and \stockheight (memoir class). + +2002-01-06 6.72a Heiko Oberdiek + * 6.72a + * Annotation's additinal-actions dictionary for form fields: + Supported: keystroke (/K), validate (/V), format (/F) + and now added: onfocus (/Fo), onblur (/Bl), + onmousedown (/D), onmouseup (/U), + onenter (/E), onexit(/X) + * Additional-actions dictionary added in \PDFForm@List and + \PDFForm@Radio. + * \PDFForm@Text: "/Ff 1" added, if only \ifFld@readonly is set. + +2001-12-23 6.71z Heiko Oberdiek + * 6.71z + * Some \providecommand replaced by \providecommand*. + * Babel's \@number of file lrbabel.def inserts + unexpandable tokens into the expansion of \arabic. + At some places dummy for \@number inserted, where + anchor and link names are expanded. + +2001-12-21 6.71y Heiko Oberdiek + * 6.71y + * Support for chapterbib added, provided by + Julian Gilbey <J.D.Gilbey@qmul.ac.uk>. + +2001-12-06 6.71x Heiko Oberdiek + * 6.71x + * Added fix by Denis Girou for pst-key.tex (1998, + derived from old keyval.dtx). Any initial brace group + in the value field is removed. + +2001-11-14 6.71w Heiko Oberdiek + * 6.71w + * Added suggestion of Didier Verna <didier@lrde.epita.fr>: + The fix for multind is also applied for package index. + +2001-11-12 6.71v Heiko Oberdiek + * 6.71v + * The feature of 6.71r with automatic detection of + title and author can be enabled by option + pdfusetitle. The default is disabled. + * If pdfusetitle is enabled, an optional argument + is detected for \title and \author (amsart class). + +2001-11-05 6.71u Heiko Oberdiek + * 6.71u + * \literalps@out for dviwindo (D.P. Story). + +2001-11-04 6.71t Heiko Oberdiek + * 6.71t + * The patch for harvard is delayed by \AtBeginDocument + to solve a problem with the package load order, if + html.sty is present (Command \harvarditem already + defined). + * The fix for the Adobe bug introduced in 6.71n + is changed completely, because Adobe's suggestion + generates an extra empty page at the end. + (\literalps@out for dviwindo is currently only a dummy.) + +2001-10-30 6.71s Heiko Oberdiek + * 6.71s + * If "\\" or "\newline" are used in \title or + \author and reused for the pdf information + entries, then they are replaced by a space + or a comma and space, see hyperref.dtx. + +2001-10-11 6.71r Heiko Oberdiek + * 6.71r + * Detection of \author and \title added for + defaults of pdf information entries. + +2001-09-20 6.71q Heiko Oberdiek + * 6.71q + * Fix for Adobe bug of 6.71n: + * VTeX in PS mode with GeX: \immediate\special{!=...} + +2001-09-18 6.71p Heiko Oberdiek + * 6.71p + * Fix for Adobe bug of 6.71n improved: + * Support for dviwindo added (D.P. Story). + * Check for product added (product is level 2). + +2001-09-18 6.71o Heiko Oberdiek + * 6.71o + * Warning, if \hypercalcbp is used without + package calc or e-TeX. + * Use of \hypercalcbp removed to avoid the above warning. + * \usepackage{calc} added in testams.tex. + +2001-09-18 6.71n Heiko Oberdiek + * 6.71n + * If package tex4ht is loaded, option tex4ht + is added to hyperref's option list + (Eitan Gurari <gurari@cis.ohio-state.edu>). + * Bug fix added for Adobe Distiller 5 + (Adobe bug number 466320, thanks to + D.P. Story and M. Vulis). + * testams.tex fixed. + +2001-08-19 6.71m Heiko Oberdiek + * 6.71m + * VTeX's \OpMode=3 is accepted the same way as 1 and 2. + +2001-08-19 6.71l Heiko Oberdiek + * 6.71l + * OS part in VTeX's /Producer default corrected. + +2001-08-19 6.71k Heiko Oberdiek + * 6.71k + * Default of /Producer string: + * updated for pdfTeX >= 1.00a, + * pdfeTeX detection added, + * \VTeXOS added for VTeX >= 7.45. + +2001-08-16 6.71j Heiko Oberdiek + * 6.71j + * Translation of \autoref names to brazil/portuges by + Willie Dresler Leiva <dreslerleiva@hotmail.com>. + * test/test0.dvi removed. + * test/test7.tex: \usepackage{times} to get smaller test7.pdf. + * Makefile: targets clean and distrib updated, $(RM) introduced. + +2001-08-10 6.71i Heiko Oberdiek + * 6.71i + * Compatibility problem with xypic, introduced by + version 6.71g, fixed. + +2001-07-03 Heiko Oberdiek + * Two small fixes of Makefile, provided by + Martin Maechler <maechler@stat.math.ethz.ch>. + +2001-06-18 6.71h Heiko Oberdiek + * 6.71h + * Option pdfpagemode with empty argument sets + default behaviour (an alternative would be "UseNone") + in order to avoid the wrong name "/". + +2001-05-26 6.71g Heiko Oberdiek + * 6.71g + * Contributions by Ross Moore <ross@ics.mq.edu.au> and + Daniel Steffen: + a. patch to htexture.def that adjusts the PDF@SetupDoc + so that it includes the setup information from pdfmark.def + as well as the tokens needed by Textures itself. + b. changes to the \AtBeginDocument usage to implement + compatibility with the ldump.sty package. + * Bug fix in multind support (forgotten backslash). + * Fix for driver pdftex: \pdfpagewidth and \pdfpageheight + are not set, if \paperwidth or \paperheight are zero, + because it is likely that the settings of pdftex.cfg + are better than the heuristics of pdfTeX, if the dimen + lengths are zero. + +2001-04-13 6.71f Heiko Oberdiek + * 6.71f + * Feature request of Jens-Uwe Morawski <morawski@gmx.net>: + \thispdfpagelabel introduced. + +2001-04-05 6.71e Heiko Oberdiek + * 6.71e + * \@begindvi changed: + * \Hy@begindvi for hyperref stuff in \@begindvi introduced, + * small bug fix (first page with options + pdfpagelabels + pageanchor=false). + +2001-04-05 6.71d Heiko Oberdiek + * 6.71d + * Fix for \@@Radio in hdvipdfm.def for AR5, provided + by D. P. Story <story@uakron.edu>. + * Spell error corrected (\Hy@captionsspanish). + * The fix of 6.71b for VTeX paper size was introduced + to solve problem with prosper, but because of new problem + with pdfscreen, the fix is redone. + +2001-02-20 6.71c Heiko Oberdiek + * 6.71c + * Bug fix, introduced in 6.71b. + +2001-02-20 6.71b Heiko Oberdiek + * 6.71b + * Fixes by Markus Kohm: + * Applying the \@addchap hack for scrreprt. + * Disabling the \@addchap hack for komascript + versions since 2001/01/01, because these + versions contain hyperref support. + * The \@ssect, \@schapter, ... hacks are also applied + to driver hypertex. + * Fixes by Alex (VTeX): + * Correction of paper size setting. + * /Replace transition supported. + +2001-01-27 Heiko Oberdiek + * nameref 2.19: + option final of showkeys now detected. + +2000-11-05 6.71a Heiko Oberdiek + * 6.71a + * Two errorneous garbage lines removed, they cause + an infinite loop with \autoref{<equation|footnote>}. + +2000-10-04 6.71 Sebastian Rahtz + * 6.71 CTAN release + +2000-09-29 6.70y Heiko Oberdiek + * 6.70y + * Check of empty /Dest and /DestAnchor values + improved (\pdfmark). + +2000-09-22 6.70x Heiko Oberdiek + * 6.70x + * Next typo fixed (option american). + +2000-09-22 6.70w Heiko Oberdiek + * 6.70w + * \DeclareRobustCommand: \href, \url, \hyperimage, + \hyperref + * Typo fixed (option american). + +2000-09-07 6.70v Heiko Oberdiek + * 6.70v + * Fix for option CJKbookmarks. + +2000-09-06 6.70u Heiko Oberdiek + * 6.70u + * Fix of \pdf@rect and \@hyperfixhead for seminar + * Default for \special@paper with values for + packages typearea or geometry. + * Fix for seminar: true values for \pdf{h,v}origin + and \pdfpage{width,height} (Thanks to + Stephan Lehmke). + * File `test/seminar.con' replaced by environment + `filecontents' in file `testslide.tex'. + +2000-09-05 6.70t Heiko Oberdiek + * 6.70t + * Fixes for packages listings and listing. + * Some \setbox...=\hbox replaced by color safer + constructs. + * Patch for bookmarks with package cjk, enabled + with option `CJKbookmarks'. + +2000-08-31 6.70s Heiko Oberdiek + * 6.70s + * URLs, broken by bibTeX, work now: + \url{% + http://www.% + dante.de/% + } + ("%^^M" are detected and removed, thanks + Stefan Ulrich <ulrich@cis.uni-muenchen.de> + for his suggestion.) + * Checks added to hycheck.tex + * \caption checks whether \@captype is defined. + +2000-08-30 6.70r Heiko Oberdiek + * 6.70r + * Shorter PostScript names (/H.X) for drivers of dvips type. + * Bug fix (hvpdfmark.def): /pdf@voff + * New test file `hycheck.tex'. + * Bug fix: latex/2318 fix added to \@caption. + * Bug fix: \numberwithin + +2000-07-30 6.70q Heiko Oberdiek + * 6.70q + * VTeX: further fixes. + +2000-07-17 6.70p Heiko Oberdiek + * 6.70p + * \test@reftype fixed (used for \autoref). + * autorefnames: german fixed, spanish added. + * VTeX: additions and fixes from Alex Kostin. + +2000-07-04 6.70o Heiko Oberdiek + * 6.70o + * Test files testbm{oe,sc,zc,yi,l}.tex merged to testbma.tex. + * Added correct \@hyper@launch for hvtex.def (Alex Kostin). + +2000-07-03 6.70n Heiko Oberdiek + * 6.70n + * Default for \Hy@pageheight changed from A4 to + setting via \hypercalcbp and \paperheight. + +2000-07-02 6.70m Heiko Oberdiek + * 6.70m + * Feature added: \hypercalcbp (see hyperref.dtx). + +2000-07-02 6.70l Heiko Oberdiek + * 6.70l + * Bugfix in onopen of 6.70k undoned. It will + be fixed in VTeX itself. + +2000-07-01 6.70k Heiko Oberdiek + * 6.70k + * Own section for vtexpdfmark driver and + PostScript code fixed. + * Bug in hvtex.def fixed: missing space in onopen special. + +2000-07-01 6.70j Heiko Oberdiek + * 6.70j + * hyperref.ins for vtexpdfmark corrected. + +2000-07-01 6.70i Heiko Oberdiek + * 6.70i + * Start of new VTeX driver that support pdfmark specials. + Option `vtexpdfmark', file `vtexmrk.def' + (contributed by Michael Vulis). + * hyperref.ins: hvtexmrk.def added. + +2000-06-30 6.70h Heiko Oberdiek + * 6.70h + * nohyperref: \hyperpage disabled. + * Defaults for \autoref's names only define \...autorefname. + * Problem with \hyper@hash fixed. + * \nolinkurl added (variant of \url, that does not make + a link, eg. for use in the second argument of \href). + * Problem fixed, that warning ``Label(s) may have changed.'' + always appears with `babel' and `\bibcite'. + * Update of htextures.def by Ross Moore <ross@ics.mq.edu.au>: + * the blue rectangles no longer appear with `colorlinks', + * pdfmark support, + * the built-in support for hypertex specials is + utilised. + * Update of hvtex.def by Michael Vulis + <support@micropress-inc.com>: + * Bug in \Acrobatmenu fixed. + * Transition effects added (written by Alex Kostin). + * pdfmark.def: Character slash `/' now works + in destination names (eg: "cite.OMG:formal/98-12-01"). + +2000-05-08 6.70g Heiko Oberdiek + * 6.70g + * \autoref names: To solve the uppercase problem, + first the names \...autorefname are used in \autoref. + Language options added for english and german languages. + +2000-05-08 6.70f Heiko Oberdiek + * 6.70f, nameref: 2.18 + * Anchor of foonotes raised. + * showkey support (nameref.dtx: \label, \ref, \pageref, \nameref, + not checked and tested is \cite). + * \@xfootnotetext calls \H@@mpfootnotetext, if called in minipage. + * Bug \href{foo.pdf#bar} fixed, introduced in 6.70c. + * Bug harvard/backref fixed ({\thepage}{\current@label}). + +2000-04-12 6.70e Heiko Oberdiek + * 6.70e + * Empty reference causes crash of distiller, therefore + empty references replaced by UNDEFINED + (pdftex, pdfmark, dvips, vtex, dvipdfm). + +2000-04-11 6.70d Heiko Oberdiek + * 6.70d + * hvtexhtm detected as default driver. + * Bug fix (undefined \pageref within \ifthenelse). + +2000-03-31 6.70c Heiko Oberdiek + * 6.70c + * \hyper@normalise: %, \%, #, \# expands to catcode `other' + characters, \url{http://foo.bar/%2e_~#hash} should work. + * \pdfBorderAttrs removed and replaced by + "/Border [\@pdfborder]". + If option colorlinks is set, the border is set to zero + immediately, not \AtBeginDocument (for people who + want to have both borders and colored links). + +2000-03-31 6.70b Heiko Oberdiek + * 6.70b + * Definition of \x remains unchanged (bug introduced in 6.67g). + * Packages titlesec and titletoc support by Javier Bezos + <jbezos@arrakis.es>. + * \MP added (\pdfbookmarkstring, htex4ht.cfg). + * All files of hyperref.dtx now identify themselves + by \Provides{File,Package}. + * Start with nohyperref.sty (SR), toc-level addtions by HO. + * Updated: testbm{gl,u}.tex + +2000-03-23 6.70a Heiko Oberdiek + * 6.70a + * New option: pdfpageduration for the /Dur key + in the pdf page object, the value is empty or + contains the length in seconds (real). + Supported drivers: pdftex, pdfmark. + * New option: pdfpagehidden for the /Hid key + in the pdf page object, the value is a boolean. + Supported drivers: pdftex, pdfmark. + +2000-03-22 6.70 Sebastian Rahtz + * 6.70 CTAN release (TeX Live 5) + +2000-03-22 6.69f Heiko Oberdiek + * 6.69f + * \@ifundefined{thechapter} changed to \@ifundefined{chapter} + because of compatibility with french.sty. + * xr-hyper.sty: \xdef changed to \protected@xdef + (Stephan Lehmke <Stephan.Lehmke@cs.uni-dortmund.de>). + * hvtex.def: default for pdfview changed to xyz. + +2000-03-07 6.69e Heiko Oberdiek + * 6.69e + * Fix for babel/3174 (\@save@activestrue in \hyper@normalise). + +2000-03-02 6.69d Heiko Oberdiek + * 6.69d + * Fix for \texttilde with babel's spanish, estonian, galician + * Expandable versions without link of \ref and \pageref: + \hypergetref and \hypergetpageref. + * \ifthenelse: \ref and \pageref use the \hyperget... variants. + * \hyper@chars added in \hyper@anchor of drivers + hypertex, vtexhtml, and vtex. + * Forms: checkboxsymbol introduced (Michael Wiedmann + <michael.wiedmann@detewe.de>). + * Redefinitions in \appendix are made globally + (Tim J Harding <Tim.Harding@quadstone.com>). + * If \chapter is undefined, it remains now undefined. + +2000-01-22 6.69c Heiko Oberdiek + * 6.69c + * D. P. Story <story@uakron.edu> has adapted forms + part of pdfTeX to dvipdfm. + +2000-01-21 6.69b Heiko Oberdiek + * 6.69b + * \@writetorep: destination and level check added. + * \addcontentsline: \phantomsection added, if no destination. + +2000-01-19 6.69a Heiko Oberdiek + * 6.69a + * Bug fixed: tabularx+\maketitle+\footnote. + * LPPL 1.2, manifest.txt updated. + +2000-01-18 6.69 Sebastian Rahtz + * 6.69 CTAN release + * Missing test files added. + +2000-01-17 6.68a Heiko Oberdiek + * 6.68a + * pdfpagescrop works now with dvipdfm (D. P. Story + <story@uakron.edu>). + +2000-01-13 6.68 Sebastian Rahtz + * 6.68 CTAN release + +2000-01-11 6.67h Heiko Oberdiek + * 6.67h + * pdfpagemode: /None corrected to /UseNone. + * \pdfstringdef: \halign disabled (because of errors by #). + * Option draft: bookmarks are disabled (thanks to Michael Vulis). + * Outdated bookmark documentation removed. + * hvtex.def: \media{width,height} supported. + * Space after \@pdfhighlight inserted (hpdftex.def). + * Bug fixed in redefinition of \@chapter. + * Small bug fixed in \Hy@boolkey. + +1999-12-01 6.67g Heiko Oberdiek + * 6.67g + * test/phys332-{1,2}.jpg renamed to test/phys{1,2}.jpg + * Improved \catcode check and settings at the beginning + of hyperref.sty. + * [#1]-Bug fixed by [{#1}] in the definition of \htmlref + and \@newctr and in many uses of \pdfmark. + +1999-11-24 6.67f Heiko Oberdiek + * 6.67f + * Test files checked by Sebastian Rahtz. + * Unwanted spaces removed (dviwindo, outline). + * Redone: \def\texorpdfstring to \newcommand* + * Other implementation of \HyPSD@tocsection by Michael Downes. + * ps2pdf: Default for pdfborder: 0 0 1 + * \belowpdfbookmark added (setting bookmark below current + level without changing it). + * \@ChoiceMenu: coiled "{\if}\fi" cleared to "{\if\fi}". + * Fix for \citeN and \shortciteN of package chicago. + +1999-11-09 6.67e Heiko Oberdiek + * 6.67e + * Detection of VTeX PS mode (OpMode=2). + * Added \tocsection fix for AMS classes + (thanks to Michael Downes/Tom Kacvinsky). + * Changed \newcommand*{\texorpdfstring} to \def\texorpdfstring + (a wish of Tom Kacvinsky). + * INSTALLDIRVAR added to makefile (default: TEXMFMAIN). + +1999-11-09 6.67d Heiko Oberdiek + * 6.67d + * Unwanted space removed in \hyper@linkstart (hvtex.def). + * <hvtex,hvtexhtml> renamed to <vtex,vtexhtml> + * If no driver is given, VTeX in PDF mode is now detected. + +1999-11-08 6.67c Heiko Oberdiek + * 6.67c + * hog.{eps,pdf} added for test0.tex + * Bug in \Acrobatmenu of hvtex.def fixed. + +1999-11-04 6.67b Heiko Oberdiek + * 6.67b + * New feature: With option `pdfpagelabels' the + /PageLabels entry in the /Catalog object of PDF 1.3 + is supported. + With `pdftex' and `vtex' one TeX run suffices, + other pdf driver, that work via \special, need + two TeX runs. + * Option `4' removed, because it is not used. + +1999-10-23 6.67a Heiko Oberdiek + * 6.67a + * \Hy@boolkey with optional argument for option name, if it + is different. + * hpdftex.def: \pdfrefform\OBJ@acroform, ... added. + +1999-10-18 6.67 Heiko Oberdiek + * 6.67 public release on CTAN + +1999-10-14 6.66m Heiko Oberdiek + * 6.66m + * makefile fixes. + +1999-10-13 6.66l Heiko Oberdiek + * 6.66l + * dvipdfm driver updated by Sebastian Rahtz. + * LPPL 1.1, manifest.txt added. + * \hyperlinkfileprefix for Ross Moore. + * Option baseurl disabled after first use. + * Option debug = verbose. + * Used global options are removed from the unused option list. + * \pdfstringdef: \leavevmode disabled, + \guill@spacing (frenchb.ldf) properly defined. + * Directory structure: test/ and doc/ + * Slides and paper of Heiko's talk at EuroTeX'99 added in doc/. + +1999-10-07 6.66k Heiko Oberdiek + * 6.66k + * hyperref.ins: eight times faster by \generate (docstrip 2.4) + (Suggestion by Werner Lemberg <wl@gnu.org>). + * backref.dtx 1.19: + * \backcite ignores entries that are already present. + * Some cosmetic clean up. + * nameref.dtx 2.17: Some cosmetic clean up. + * \Hy@boolkey with error checking. + * Code for options backref and pagebackref rewritten. + * Options are disabled after use. + +1999-10-05 6.66j Heiko Oberdiek + * 6.66j + * foiltex: \ext@table, \ext@figure defined. + +1999-10-05 6.66i Heiko Oberdiek + * 6.66i + * \pdfstringdef: support of shorthands of some babel + languages added. + * \ij, \IJ added in PD1 and PU encoding for Dutch. + +1999-10-05 6.66h Heiko Oberdiek + * 6.66h + * Making destination for \addcontentsline in + \@chapter, if \c@secnumdepth<0, \frontmatter, or \backmatter. + * `(' and `)' added to \Hy@{Set,Restore}Catcodes. + +1999-10-01 6.66g Heiko Oberdiek + * 6.66g + * \index{test|(} supported. + +1999-09-28 6.66f Heiko Oberdiek + * 6.66f + * options.tex with bookmarkstype + * Bug in \autoref fixed: chapter/appendix detection + * \\ and \newline produces a warning in \pdfstringdef + * draft=false should work. + +1999-09-14 6.66e Heiko Oberdiek + * 6.66e + * Unwanted space in \HyPsd@LetUnexpandableSpace removed. + +1999-09-13 6.66d Heiko Oberdiek + * 6.66d + * \@footnotemark is also disabled, if package + tabularx is loaded. + +1999-09-10 6.66c Heiko Oberdiek + * 6.66c + * Bug fix: Definition of \Hy@SaveLastSkip is moved before \MaybeStopEarly. + +1999-09-10 6.66b Heiko Oberdiek + * 6.66b + * Starting with option warnings, if the option is + set at a wrong place. + * Support for package multind. + * \textnumero added to testbmu.tex. + +1999-09-08 6.66a Heiko Oberdiek + * 6.66a + * Catcodes are set at begin of package and restored at the end. + (Bug fix: ltxdoc.cls makes '|' active...) + +1999-09-08 6.66 Sebastian Rahtz + * Release 6.66 + +1999-09-01 6.65e Heiko Oberdiek + * 6.65e + * Test for \XR@addURL instead of the package name, because + they exist different versions of xr and xr-hyper. + +1999-08-31 6.65d Heiko Oberdiek + * 6.65d + * Bug fixed (use of \renewcommand in \pdfstringdefDisableCommands) + * Weak support for \ref and \pageref in bookmarks added. + * Made bookmark code less slow (testbmu.tex compiles 20% faster): + \HyPsd@ConvertToUnicode rewritten, \HyPsd@string introduced, ... + * Bug detected by Ian Bruce: hyperref has a different spacing + with theorem environments. + Cause: The \lastskip value is destroyd by the specials that + set the anchor. + Fix: Saving the \lastskip value before the specials, and after + setting \nobreak\{h,v}skip-\lastskip\{h,v}skip\lastskip. + See \Hy@SaveLastskip - \Hy@RestoreLastskip. + (most drivers: \hyper@anchor, \hyper@anchorstart - \hyper@anchorend; + pdftex: \new@pdflink; dvipdfm: \@pdfm@dest) + * \CYRCHDSC and \cyrchdsc corrected to \CYRCHRDSC and \cyrchrdsc + (Thanks to Vladimir Volovich <vvv@vvv.vsu.ru>) + * Bug fixed: \HAR@checkcitations redefined to add \hyper@@link. + Without this the "Changed labels" warning would always appear. + +1999-08-24 6.65c Heiko Oberdiek + * 6.65c + * Unicode bookmark support 0x0000..0x04FF. + * testbmu.tex: detailed test file for Unicode bookmarks. + * Default setting of \@pdfborder with \providecommand, + so package option `pdfborder' does work now. + * \hv@pdf@char: support of octal codes with VTeX + versions greater or equal 6.50. + * Typo in option 'vtex' corrected. + * Again backref 1.18. + * Various drivers (dviwindo, hypertex, ...): \leavevmode in + \hyper@linkurl, \hyper@linkfile, ... added where missing. + * testform2.tex renamed to testfor2.tex (8+3 file name). + +1999-08-17 6.65b Heiko Oberdiek + * 6.65b + * Unicode bookmark support, starting with Cyrillic. + +1999-08-14 6.65a Heiko Oberdiek + * 6.65a + * Module pdfstringdef: bug (\space) and typo fixed. + +1999-08-12 6.65 Sebastian Rahtz + * RELEASE 6.65 + +1999-08-10 6.64h Sebastian Rahtz + * 6.64h + * Moved some sections to before \MaybeStopEarly. Otherwise + implicit=false mode never saw some important stuff. + * hyperref.dtx: added \href to list of ignored commands in + bookmarks. cleaned up VTEX stuff as per diagnosis by Heiko + +1999-08-06 6.64g Sebastian Rahtz + * 6.64g + * hyperref.dtx: typos and little fixes from Heiko + * added another special thing for typexml + +1999-07-29 Sebastian Rahtz + * version 6.64c. hyperref.dtx: some typos corrected, and form + primitives of pdftex + +1999-07-28 Sebastian Rahtz + * cut out any footnote work if tabularx is + loaded. add some form stuff from D P Story + +1999-07-28 Sebastian Rahtz + * version 6.64b + * hyperref.dtx: + Changes from Heiko: + Module pdfstringdef: + * Small bug in \HyPsd@ProtectSpaces/HyPsd@RemoveMask fixed. + * \@ifnextchar because of \futurelet disabled. + * Disabling of \@ifstar removed, because it calls \@ifnextchar. + * \@protected@testopt disabled to show the problematic macro in + the warning message (commands with an optional argument). + * \pdfstringdefWarn#1 prints a warning message with token #1, + it can be used in code that disables macros by the user. + * \pdfstringdefDisableCommands#1 is a easier interface for + the hook \pdfstringdefPreHook. It appends its argument to the + meaning of \pdfstringdefPreHook. The character @ can be used + in command names. + * \penalty is removed silently. + * \kern and \hskip are detected with a warning: + * At the beginning or, if the value is less than 1ex, + they are removed. + * Else they are replaced by a space. + + Fix for \pdfpage(s)attr: + * Setting the /CropBox with \pdfpagesattr: + The old meaning of \pdfpagesattr is appended. + * Initial value of \@pdfpagestransition is \relax + to differentiate between a unused or empty option. + * \hyper@pagetransition (hpdftex): + * The old entry /Trans is removed from \pdfpageattr. + * The remaining old meaning retains and + * the new /Trans is appended. + * \hyper@pagetransition (pdfmark): + * \if-switch for \relax added to get the old behaviour. + ? (1) Need to delete an old entry? + ? If 1=yes, how to delete? + +1999-07-21 Sebastian Rahtz + * version 6.64a, corrected typos in VTEX stuff + +1999-07-19 6.64 Sebastian Rahtz + * RELEASE 6.64 + * hyperref.dtx: support pdftex > 0.14 with new primitive names + * hyperref.dtx: bookmark patches from Stephan Haller, to allow + local changes of open status + * hyperref.dtx: small patche for \seteqlabel. obscure problem in + amstex compatibility mode, found by Michael Downes. + * hyperref.dtx: patches to VTEX bookmark processing, from Taco + Hoekwater, following patches by Denis Girou. + +1999-07-08 6.63 Sebastian Rahtz + * RELEASE 6.63 + * hyperref.dtx: added "typexml" option for typexml package + * Some cleanups from Heiko + +1999-06-29 6.62 Sebastian Rahtz + * RELEASE 6.62 + * hyperref.dtx: (from Heiko), gobble \discretionary in bookmarks + +1999-06-27 6.61 Sebastian Rahtz + * RELEASE 6.61 + * hyperref.dtx: for Babel compatibility, use its \@safe@actives + switch in cross-refs (also in nameref.dtx), plus be nicer about + * in \pdfstringdef (from Heiko). Move \phantomsection to main package. + +1999-06-11 6.60 Sebastian Rahtz + * RELEASE 6.60 + * nameref.dtx: changed \Sectionformat to a \providecommand, as it + now comes \AtBeginDocument + +1999-06-10 Sebastian Rahtz + * hyperref.dtx: * Increment of version letter to 6.58f + * hyperref.dtx: add \phantomsection, to make a section-like anchor + Missing {} after \@ifpackageloaded{subfigure} + * nameref.dtx define \section@level for pdfscreen + From Heiko: + * lastpage fix (added page anchor name, ...). + * documentation for lastpage support added. + * \pdfstringdef: \Generic{Error,Warn,Info} disabled while + expanding. + * \pdfstringdef: french fix changed to get rid of hard coded + numbers for the guillemets. + +1999-06-09 Sebastian Rahtz + * hyperref.dtx: * Increment of version letter to 6.58b + Loads of cleanups by Heiko: + * \def\@pdfpagecrop{} removed, because it isn't used further + * Loading of \Hy@driver part replaced (see previous email) + * Old name \Hy@PDFDef found, replaced by \pdfstringdef + * Module \pdfstringdef: Use of prefix "\HyPsd@" (it's shorter + and easier to read than "\Hy@psd@". + * \let\add@accent\HyPsd@add@accent instead of the definition + in \pdfstringdef (saving run time). + * Corrected to \begin{macro}{\HyPsd@ITALCORR}. + * old ifbookmark replaced by texorpdfstring in description. + * Missing lines added in pd1enc.def (\",\r,\v,\.,\c) + * Bugs in \define@key{Field}{maxlen}{\Fld@maxlen=#1} + and \define@key{Field}{menulength}{% + * Changed \orig@appendix to \Hy@orig@appendix. + \orig@maketitle to \Hy@orig@maketitle. + * Replaced \global\def --> \gdef + * Replaced \global\edef --> \xdef + * Starting with identing (length 2) and checking the line length. + +1999-06-08 Sebastian Rahtz + * hyperref.dtx. make "subfigure" force hypertexnames=false; remove + exactdef option (obsolete), and set default of 0 for bookmark + level of unknown objects (\toclevel@...) + * a lot of cleaning up of code layout, requested by Heiko, and bug + fixing related to \addcontentsline + +1999-05-30 Sebastian Rahtz + * backref.dtx: added debugging/verbose output + * hyperref.dtx: considerable reworking of \addcontentsline, with + wide-reaching effects + * Some more PD1 fixes from Heiko. Stop using \@foo, too common a + choice by others + * Some fixes for TeX4ht, from Eitan Gurari + +1999-05-19 6.57 Sebastian Rahtz + * RELEASE 6.57 + * hyperref.dtx: a good many missing or extra spaces in and around + line endings were found by Heiko and corrected. + +1999-05-18 Sebastian Rahtz + * hyperref.dtx: fixes to \textLF etc from Heiko + +1999-05-17 Sebastian Rahtz + * hyperref.dtx: Raise equation anchors by \baselineskip; + dangerous, but its the only hope for XYZ views + * Some fixes for tex4ht from Eitan Gurari + * stop defaulting papersize \special + * make bookmarks use tocdepth not secnumdepth + * Some fixes for AMS equations, will probably break something! + * some characters changed, and some added, in PD1 + encoding, to allow for silly behaviour of Acrobat, and to help + Poles (via Wojciech A. Myszka <W.Myszka@immt.pwr.wroc.pl>) + + * backref.dtx: added support for chicago.sty (requested by Alan Reese) + +1999-05-14 Sebastian Rahtz + * hyperref.dtx: added new option hypertexnames. if it is *false*, + unique arbitrary names are given for anchors and links, to avoid + any conflict caused by counters being redefined etc. Long overdue. + * Guillemet fix from Heiko. + +1999-04-13 6.56 Sebastian Rahtz + * RELEASE 6.56 + * hyperref.dtx: missed a \if@filesw (Heiko spotted), and removed + the <repere> section + +1999-04-12 6.55 Sebastian Rahtz + * RELEASE 6.55 + * hyperref.dtx: when the run: type of URL is used, a \relax creeps + into the output with pdfmark drivers. corrected. + * Add some missing \if@filesw code (from Heiko) + * Proper dummy initialisation of \pdfbookmark + * Correct serious error over detecting whether seminar is being used + (added new test, and defined \ifhy@seminarslides) + * If implicit=false is used, ensure that \PDF@FinishDoc (to add + DOCINFO stuff) is still done, \AtBeginDocument (it was tied to the + redefinition of \@thehead) + +1999-03-31 6.54 Sebastian Rahtz + * RELEASE 6.54 + * hyperref.dtx: fixes from Heiko in pdf doc encoding stuff + +1999-03-30 6.53 Sebastian Rahtz + * RELEASE 6.53 + * hyperref.dtx: complete replacement of Heiko's part by nicely + documented dtx.... + + Name changes: + \newif\ifPDFbookmark ==> \newif\ifHy@pdfstring (internal name) + \ifbookmark ==> \texorpdfstring (user command) + \Hy@PDFDef ==> \pdfstringdef (user or package command) + + Heiko summarizes the features of this \Hy@PDFDef: + * PD1 encoding + * Unknown glyphs don't cause an infinite error loop now (see + bug report few weeks ago in pdftex@tug.org). + * Grouping characters can be used, they are removed silently, + so things like "\TeX{}" can be written. + * With this version of \Hy@PDFDef the option exactdef can be + removed now because of the warning messages. + * All non-expandible commands like unknown glyphs or stomach + commands are catched by this version: a comprehensive + warning message is produced and the tokens are removed. + * xspace support. + * Support for unbalanced parentheses, hyparen.sty is now obsolete. + +1999-03-26 6.52 Sebastian Rahtz + * RELEASE 6.52 + * hyperref.dtx: Wherever "naturalnames" is used, disable + \textlatin (from Babel 3.6k). Thanks to Felix Neubauer + <Felix.Neubauer@gmx.net> + * Fixes for seminar (Denis Girou <denis.girou@idris.fr>) + +1999-03-12 6.51 Sebastian Rahtz + * RELEASE 6.51 (unreleased) + * hyperref.dtx: yet more bookmark magic from Heiko Oberdiek! + +1999-02-21 Sebastian Rahtz + * hyperref.dtx: trap a URL type of "run:" and attempt to use it to + launch an application. In dvips, dvipdfm and pdftex drivers; it + seems to work in Windows. By default it translates to file: + +1999-02-17 Sebastian Rahtz + * Changed the copyright notice + * hyperref.dtx: some (more) corrections from Heiko + +1999-02-16 6.50 Sebastian Rahtz + * RELEASE 6.50 + * hyperref.dtx: some corrections from Heiko + +1999-02-14 6.49 Sebastian Rahtz + * RELEASE 6.49 + * hyperref.dtx: remove grouping around PDF@SetupDoc, allowing + \pdfpagesttr in pdftex to work properly (ie CropBox) + move PD@FinishDoc to happen at start of dvi (in page header); + this allows for documents ending in \clearpage in which case the + stuff never happened. sigh. + +1999-02-06 6.48 Sebastian Rahtz + * RELEASE 6.48 + * hyperref.dtx: add option "naturalnames", which makes hyperref use + eg \thesection instead of \theHsection. may help some people. + * Add option "verbose" to provide a debugging hook. + * Set some more commands to no-op in bookmarks. + * Remove all pdfinfo from PDF@SetupDoc, and transfer to new + PDF@FinishDoc, which happens \AtEndDocument. This allows + \maketitle to do \hypersetup{pdftitle=\@title} etc + * Rearranged some lines of code. + +1999-02-01 6.47 Sebastian Rahtz + * RELEASE 6.47 + * hyperref.dtx: removed code from dvipdfm by mistake. restored. + +1999-01-27 6.46 Sebastian Rahtz + * RELEASE 6.46 + * hyperref.dtx: add support for colorlinks to dvipdfm driver + (missed out by mistake before), and \AcrobatMenu + +1999-01-20 Sebastian Rahtz + * hyperref.dtx: changed \texttilde to \textasciitilde; removed + \textbeta + +1998-12-17 6.45 Sebastian Rahtz + * RELEASE 6.45 + * hyperref.dtx: make \footnotemark and \footnotetext use original + non-hyper definitions. from pzezza@facec.cce.unifi.it. + +1998-12-07 6.44 Sebastian Rahtz + * RELEASE 6.44 + * hyperref.dtx: corrected bookmark writing errors. again... + removed some spurious \makeat s. removed a spurious { in tex4ht + +1998-12-01 6.43 Sebastian Rahtz + * RELEASE 6.43 + * hyperref.dtx: fixes for \addcontentsline from + kevin@rodin.wustl.edu (Kevin Ruland) + - make \EndOfPackage things happen \AtBeginDocument instead, for + consistency + - fixes to hy@temp from Heiko + - added optional first parameter to \BOOKMARK in order to provide + dvipdfm with what it wants + +1998-11-27 Sebastian Rahtz + * hyperref.dtx: added dvipdfm driver from + Mark Wicks <mwicks@kettering.edu>. + cleaned up more bookmark code (from Heiko) + +1998-11-11 6.42 Sebastian Rahtz + * RELEASE 6.42 + * hyperref.dtx: replaced bookmark and docinfo writing with new code + from Heiko Oberdiek which seems to do a better job + * Support for lastpage package. + +1998-11-03 6.41 Sebastian Rahtz + * RELEASE 6.41 + * hyperref.dtx: cleaned up test for existence of pdftex again, to + avoid trampling on other packages. Thomas Esser and David Carlisle + pointed out the mess. + +1998-11-01 6.40 Sebastian Rahtz + * RELEASE 6.40 + * hyperref.dtx: checked various drivers, and had to introduce mew + docstrip guards to add some pdfmark to dviwindo. dvipdf broken, so + removed from hyperref.ins. Thanks to Thomas Esser for testing so + quickly. + +1998-10-30 6.39 Sebastian Rahtz + * RELEASE 6.39 + * hyperref.dtx: serious error in where colorlinks and frenchlinks + were checked. now all at EndOfPackage, after driver load. + +1998-10-23 6.38 Sebastian Rahtz + * RELEASE 6.38 + * hyperref.dtx: rework handling of driver options so that driver + is only loaded at the end, with whatever is the latest name given + in config file, document etc. (Thanks to Thomas Esser for suggestion) + +1998-10-17 6.37 Sebastian Rahtz + * RELEASE 6.37 + * hyperref.dtx: back out change of link to use Action dictionary, + it seems to break some Distiller setups, and Ghostscript + +1998-10-06 Sebastian Rahtz + * hyperref.dtx: make all eqnarray stop being an anchor, as it may + break over pages. + * Whoops. PDF@SetupDoc was after \MayBeStopEarly... + +1998-09-24 6.36 Sebastian Rahtz + * RELEASE 6.36 + * hyperref.dtx: even if bookmark writing disable, \pdfbookmark still + needs to make anchors + +1998-09-22 Sebastian Rahtz + * hyperref.dtx: xdef not edef in \@writetorep (thanks to Christian + Kumpf <kumpf@igd.fhg.de>) + +1998-09-12 Sebastian Rahtz + * hyperref.dtx: added option pdfnumberbookmarks to include section + numbers in PDF bookmarks + +1998-09-07 6.35 Sebastian Rahtz + * RELEASE 6.35 + * hyperref.dtx: added DOCVIEW stuff to dviwindo driver + better check for playing in head, means no more overfull hbox + messages + +1998-09-04 Sebastian Rahtz + * hyperref.dtx: added DOCVIEW stuff to dvipsone driver (pointed + out by D P Story) + +1998-09-03 Sebastian Rahtz + * hyperref.dtx: + a) added new option linktocpage to make TOC have links on page + numbers + b) rewrote or checked all uses of \colorlink, so that they + have a corresponding \hy@endcolorlink (was \hyper@resetcolor), + and so are in a \begingroup ... \endgroup group (requested by + Patrick Daly, for consistency if nothing else). Renamed + \colorlink to \hy@colorlink + +1998-09-02 6.34 Sebastian Rahtz + * RELEASE 6.34 + * hyperref.dtx: chivvied around pdfview so that it worked, and did + not override hyperref.cfg. concept of \@pdfviewparam for size + parameters + +1998-08-11 6.33 Sebastian Rahtz + * RELEASE 6.33 + * hyperref.dtx: fix up some forms problems for Laurent Guillope + +1998-08-08 Sebastian Rahtz + * hyperref.dtx: add option `implicit' to allow (with value of + false) for no redefinition of LaTeX internals. Re-ordered some + code sections to allow for this. + +1998-08-02 Sebastian Rahtz + * hyperref.dtx: corrected some typos and mistakes in form support + +1998-07-20 Sebastian Rahtz + * hyperref.dtx: change check of empty head (from test by Denis + Roegel) + +1998-07-06 6.32 Sebastian Rahtz + * RELEASE 6.32 + * backref.dtx: better test for natbib-like styles + * hyperref.dtx: add natbib link break macro + * dvipsone: use same pdfsetup as dviwindo + +1998-06-27 6.31 Sebastian Rahtz + * RELEASE 6.31 + * hyperref.dtx: correct order of part and writetorep + * hyperref.dtx: more fixes from MicroPress for their driver. zero + width hidden fields -> width of 1sp. Piet van Oostrum's additions + to bookmark writing code. + * add support for "pdfstartview={}", to get `default' + magnification. hyper@linkfile for pdftex always does a user action + now + * Patrick Daly's addition of \ifvmode\nobreak\fi in pdftex start + anchor fixes his section problems, but is not entirely general. + +1998-06-25 Sebastian Rahtz + * hyperref.dtx: fix NoHyper bug *properly* this time. + +1998-06-25 6.30 Sebastian Rahtz + * RELEASE 6.30 + * hyperref.dtx: zero width hidden fields. support pdfstartview of + {}. allow NewWindow false with pdfnewwindow option. correct bug in + default value of centerwindow and fitwindow. fix bug in NoHyper. + fix bug in \pageref*. + * Add \autoref macro to generate tagged references. + +1998-06-24 6.29 Sebastian Rahtz + * RELEASE 6.29 + * hyperref.dtx: add \ref* and \pageref* to produce unlinked + references, and fix bug in label@hyperref. + add page transitions for pdftex driver + +1998-06-23 Sebastian Rahtz + * hyperref.dtx: add support for page transitions in pdfmark driver + * hyperref.dtx: add key pdfpagelayout + * hyperref.dtx: revise form lists, now support Display=Value syntax + * hyperref.dtx: change test for whether natbib-like code is + present (if NAT@parse is defined), since things like aguplus dont + load natbib per se, but use the same code. + +1998-06-21 Sebastian Rahtz + * hyperref.dtx: if form list value starts with a [, its assumed to + be an array of two strings, display and use values. + * hyperref.dtx: add `readonly' key for pdf forms, and hidden for + HTML + * hyperref.dtx: restructure form drivers to isolate common code + for pdftex and pdfmark. + +1998-06-20 Sebastian Rahtz + * hyperref.dtx: add `hidden' key for forms + +1998-06-19 6.28 Sebastian Rahtz + * RELEASE 6.28 + * hyperref.dtx: use pdftex version and revision numbers + * hyperref.dtx: corrected stupid error which meant that the + bookmark file was not being opened. + +1998-06-16 6.27 Sebastian Rahtz + * RELEASE 6.27 + * hyperref.dtx: finished pdftex forms, and reworked several + aspects of forms in general. + +1998-06-15 Sebastian Rahtz + * hyperref.dtx: use \filename@parse to decide whether a file: URL + is a local open or a URL. makes ../../xxx work. + * VTEX drivers driven by single `vtex' option which checks + \OpMode + +1998-06-13 Sebastian Rahtz + * hyperref.dtx: merge in material from MicroPress to provide support + for VTEX's two new modes of operation, PDF and HTML. Drivers hvtex + and hvtexhtml. + +1998-06-12 6.26 Sebastian Rahtz + * (private) RELEASE 6.26 + addition from DPC to provide better support for encoding in + .out files (must use inputenc) + * (private) RELEASE 6.25 + * hyperref.dtx: + removed quotes from names in dviwindo (DP Story) + comma after file destination in dviwindo (DP Story) + rejig parsing of file: to cope with ../foo/bar, at the + cost of files having to be at least two characters long. ../.. + doesn't work either :-} + +1998-06-05 6.24 Sebastian Rahtz + * (private) RELEASE 6.24 + * hyperref.dtx: unset \@tempa at start of ProcessKVOptions (David + Carlisle) + * hyperref.dtx: pdftex base url syntax wrong; and if baseurl + provided, need to strip file: from URL (corrections by + daly@linpwd.mpae.gwdg.de (P.W.Daly, MPAe, Lindau, Germany) + +1998-05-27 6.23 Sebastian Rahtz + * (private) RELEASE 6.23 + * hyperref.dtx: remove spurious space in pdfview in pdftex driver + +1998-05-16 6.22 Sebastian Rahtz + * (private) RELEASE 6.22 + * hyperref.dtx: in draft mode, need fifth and secondoffive to be + really secondoffive + +1998-05-08 6.21 Sebastian Rahtz + * (private) RELEASE 6.21 + * hyperref.dtx: added new key "pdfhighlight" to set Acrobat + behaviour when a link is pressed. Make destinations use the Action + dictionary. Added first cut at forms support. + +1998-03-25 6.20 Sebastian Rahtz + * (private) RELEASE 6.20 + * RELEASE 6.19 + * pdftex seems to have changed, added goto page for openaction + * hyperref.dtx: put / in front of pdfstartview + still changing textures driver + +1998-03-22 6.18 Sebastian Rahtz + * RELEASE 6.18 + +1998-03-21 Sebastian Rahtz + * hyperref.dtx: add conditional code for fancyvrb, to stop + links being made to fancyvrb lines. + * experimental textures driver + * pdftex as 0.12 the default; use guard pdftexold to select 0.11 + behaviour + +1998-03-07 6.17 Sebastian Rahtz + * RELEASE 6.17 + * hyperref.dtx: patches from Piotr Krysiuk + <pkrysiuk@mimuw.edu.pl> to make it run under LaTeX 209 + compatibility mode + +1998-03-05 Sebastian Rahtz + * hyperref.dtx: put braces around URL in pdfmark driver, to stop + keyval splitting at an = sign within the URL (bug report from Ahmed + Hindawi <hindawi@ephouse.com>) + +1998-03-03 Sebastian Rahtz + * hyperref.dtx: add first cut at tex4ht driver + * hyperref.dtx: changes for pdftex 0.12 driver (syntax changes) + +1998-02-28 6.16 Sebastian Rahtz + * (private) RELEASE 6.16 + * hyperref.dtx: AMSLaTeX does everything twice; pdftex actually + *executes* the hyper code twice, so that destinations are defined + twice. Make use of \ifmeasuring@ to avoid this. + +1998-02-25 6.15 Sebastian Rahtz + * RELEASE 6.15 + * Sigh. Messed up counters again. Fixed. It had better be right + this time. + * RELEASE 6.14 + * hyperref.dtx: added key bookmarksopen to dictate whether or not + the bookmark tree is expanded (from Brian Ripley) + * cleaned up the *horrible* mess created by me over items, which + mean that I had turned off the incrementing.... + * typo in \pdfbookmark corrected + +1998-02-23 6.13 Sebastian Rahtz + * RELEASE 6.13 + * changes to \item had totally wrecked natbib :-} + * added keys for PDF creator and producer + * re-fix \@footnotemark in \maketitle + * reverse parameters of \htmladdnormallink + +1998-02-20 6.12 Sebastian Rahtz + * RELEASE 6.12 + * RELEASE 6.11 + * hyperref.dtx: play around with items again for Tanmoy. ugh, all + sorts of changes to stop bibitems getting 3 destinations defined. + +1998-01-26 Sebastian Rahtz + * hyperref.dtx: define \@makefnmark instead of \@footnotemark, to + take advantage of white space and hyphenation fudges (from DPC) + * backref.dtx: remove white space in for loop of \backcite + +1998-01-22 6.10 Sebastian Rahtz + * RELEASE 6.10 + * more dealing with \url, allowing for _ + +1998-01-21 6.9 Sebastian Rahtz + * release 6.9 + * fixed some small bugs (though more remain) and added + \Acrobatmenu command. + +1997-12-11 Sebastian Rahtz + * hyperref.dtx: altered algorithm of tocdepth for pdf bookmarks; + rewrote nesting again. still concerned about global allocation + of `current' tokens, and lack of nesting in PS file. + +1997-12-09 Sebastian Rahtz + * hyperref.dtx: rewrote handling of (non) nesting. the innards of + an anchor are now processing inside {\stop@hyper...} which + hopefully makes all hyper commands no-ops. ripley@stats.ox.ac.uk + (Prof Brian Ripley) found several things which forced me to do + *something* (ie a \cite inside a \caption gave the destination of + the cite to the caption) + * Daniel T. Cobra <cobra@gyron.acate.com.br> gave me a new + incompatibility with ps2pdf + +1997-11-24 6.7 Sebastian Rahtz + * RELEASE 6.7 + * started hyperref ChangeLog. cleanup of copyright for Debian inclusion diff --git a/macros/latex/contrib/hyperref/README.md b/macros/latex/contrib/hyperref/README.md new file mode 100644 index 0000000000..36a9643c82 --- /dev/null +++ b/macros/latex/contrib/hyperref/README.md @@ -0,0 +1,182 @@ +# README for hyperref bundle +2019-06-12 + + +## INTRODUCTION + + +This package is used to emend cross-referencing commands in LaTeX to +produce some sort of \special commands; there are backends for the +\special set defined for HyperTeX dvi processors, for embedded pdfmark +commands for processing by Acrobat Distiller (dvips and dvipsone), for +dviwindo, for pdfTeX, for dvipdfm, for TeX4ht, and for VTEX's pdf and HTML +backends. + +Included are: + + 1. `hyperef' The main hyperlinking functionality. + 2. `backref' a package by David Carlisle to provide links back from + bibliography to the main text; these are hypertext links after using + hyperref. + 3. nameref' a package to allow reference to the *names* of sections rather + than their numbers. + +## DOWNLOAD + + +`hyperref' is available on CTAN: + CTAN:macros/latex/contrib/hyperref/ + +Also a ZIP file is provided that contains the files, already sorted +in a TDS tree: + CTAN:install/macros/latex/contrib/hyperref.tds.zip + +"CTAN:" means one of the `Comprehensive TeX Archive Network' +nodes or one of its mirrors. This is explained in + https://texfaq.org/FAQ-archives + +The main repository of hyperref is located at github + https://github.com/ho-tex/hyperref + + +## INSTALLATION + + +### Installation with ZIP file in TDS format + +The ZIP file `hyperref.tds.zip' contains the files sorted +in a TDS tree. Thus you can directly unpack the ZIP file +inside a TDS tree. (See CTAN:tds.zip for an explanation of TDS.) +Example: +``` + cd /...somewhere.../texmf + unzip /...downloadpath.../hyperref.tds.zip +``` +Do not forget to refresh the file name database of this TDS tree, +Example: +``` + texhash /...somewhere.../texmf +``` + +### Manual installation + + 1. Download the hyperref files from CTAN or the TUG server. + If necessary, unpack them. + 2. If directory `beta' exists, replace the files by the counterparts + in this directory, if you want to use the latest versions. + 3. Generate the package and driver files: + tex hyperref.ins + 4. Install the files `*.sty', `*.def', and `*.cfg' in your TDS tree: + cp *.sty *.def *.cfg TDS:tex/latex/hyperref/ + Replace `TDS:' by the prefix of your TDS tree (texmf directory). + The exception is bmhydoc.sty, it belongs to the source files + (TDS:source/latex/hyperref/). + 5. Copy the documentation files to "TDS:doc/latex/hyperref/": + manual.pdf, README.md, ChangeLog.txt, + slides.pdf, paper.pdf, options.pdf, hyperref.pdf, backref.pdf, + nameref.pdf (Also the HTML version of the manual can be put there.) + 6. Update the databases if necessary, eg. for teTeX: + mktexlsr .../texmf + +## AUTHORS/MAINTAINERS + + + * Sebastian Rahtz (died 2016) + * Heiko Oberdiek + * David Carlisle (via GitHub ho-tex origanisation) + + +## BUG REPORTS + + +A bug report should contain: + + * Comprehensive problem description. This includes error or + warning messages. + * \errorcontextlines=\maxdimen can be added in the TeX code + to get more informations in TeX error messages. + * Minimal test file that shows the problem, but does not + contain any unnecessary packages and code. + * Used drivers/programs. + * Version information about used packages and programs. + * If you are using LaTeX, then add "\listfiles". Then + a list of version informations is printed at the end + of the LaTeX run. + * Please no other files than the minimal test file. + The other files .log, .dvi, .ps, .pdf are seldom necessary, + so send them only on request. + +## Bug address + +A bug tracker is available at github: + https://github.com/ho-tex/oberdiek/issues + +Alternatively bug reports can be send to the support group public email list: + <ho-tex [at] tug [dot] org> + +## Vietnamese part + +Responsible for the Vietnamese translations of the +\autoref names and puvnenc.def are: + Han The Thanh <hanthethanh [at] gmail [dot] com> + Reinhard Kotucha <reinhard [dot] kotucha at web [dot] de> + +## Arabic part + +Responsible for the additions to PU encoding for Arabi is + Youssef Jabri <yjabri [at] ensa [dot] univ-oujda [dot] ac [dot] ma> + + +## KNOWN PROBLEMS + + + * (half-done) hyper images (link from thumbnail in text) + * Relative links are not sorted out or documented well. + For PDF generation: + * With baseurl: all links are considered relative to this URL. + * Without baseurl: a relative link without "file:" can be + achieved by: + ``` + \begingroup + \hypersetup{linkfileprefix={}}% + \href{../foo/bar.html}{bar.html} + \endgroup + ``` + * ... + + +## TODO + + * modules + * bookmark organisation + * documentation + * PDF threads + * more for PDF forms + * per object setting + * vary gap between text and box + * PostScript driver: the current implementation doesn't relly support + nested links. The start positions should be remembered in a stack, + but there are complications with page breaks. + * ... + + +## VERSIONS IN TEX DISTRIBUTIONS + +| TeX Live | hyperref | comment | +| -------- | -------- | ------- | +| TL 2016 | 2016/05/05 v6.83n | (at time of first release) | +| TL 2011 | 2011/04/17 v6.82g | (at time of first release) | +| TL 2010 | 2010/06/18 v6.81g | (at time of first release) | +| TL 2009 | 2009/10/09 v6.79a | (at time of first release) | +| TL 2008 | 2008/08/14 v6.78f | (at time of first release) | +| TL 2007 | 2007/02/07 v6.75r | | +| TL 2005 | 2003/11/30 v6.74m | | +| TL 2004 | 2003/11/30 v6.74m | | +| TL 2003 | 2003/09/15 v6.74i | | +| TL 7 (2002) | 2002/05/27 v6.72r | | +| TL 6b (2001) | 2001/05/26 v6.71g | | +| TL 5d (2000) | 2000/07/02 v6.70m | | +| TL 5c (2000) | 2000/05/08 v6.70f | | +| TL 4 (1999) | 1999/04/13 v6.56 | | +| TL 3 (1998) | 1998/03/25 v6.19 | | + diff --git a/macros/latex/contrib/hyperref/backref.dtx b/macros/latex/contrib/hyperref/backref.dtx new file mode 100644 index 0000000000..dd31e66d71 --- /dev/null +++ b/macros/latex/contrib/hyperref/backref.dtx @@ -0,0 +1,947 @@ +% \iffalse +%% File: backref.dtx +%% Copyright (C) 1995-2000 David Carlisle, Sebastian Rahtz, Heiko Oberdiek +%% 2001-2012 Heiko Oberdiek +%% 2016 Oberdiek Package Suport Group +%% https://github.com/ho-tex/hyperref/issues +%% +%% This file is part of the `Hyperref Bundle'. +%% ------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Heiko Oberdiek. +%% +%% The list of all files belonging to the `Hyperref Bundle' is +%% given in the file `manifest.txt'. +% +%<*dtx> +\ProvidesFile{backref.dtx} +%</dtx> +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{backref} +%<driver>\ProvidesFile{backref.drv} +% \fi +% \ProvidesFile{backref.dtx} + [2016/05/21 v1.39 Bibliographical back referencing]% +% +% \CheckSum{768} +% +% \iffalse +%<*driver> +\documentclass{ltxdoc} +\usepackage[numbered]{hypdoc} +\usepackage{bmhydoc} +\usepackage{backref} +\EnableCrossrefs +\CodelineIndex +\begin{document} + \GetFileInfo{backref.sty}% + \title{% + Back referencing from bibliographical citations% + \thanks{% + This file has version number \fileversion, % + last revised \filedate.% + }% + }% + \author{David Carlisle and Sebastian Rahtz (deceased)}% + \date{\filedate}% + \maketitle + \makeatletter + \@ifundefined{HyperrefOverview}{}{% + \HyperrefOverview*% + }% + \tableofcontents + \DocInput{backref.dtx}% + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \MakeShortVerb{|} +% +% \section{Introduction} +% +% \section{Usage} +% +% \subsection{Options} +% +% The supported options are given as package options. +% Few options (e.g. |verbose|, |enable|, |disable|) +% can be changed after the package is loaded by +% the macro \cs{backrefsetup}, e.g.: +% \begin{quote} +%\begin{verbatim} +%\usepackage[verbose]{backref} +%\backrefsetup{verbose=false} +%\end{verbatim} +% \end{quote} +% This macro is available since version 2012/07/24 v1.37. +% +% \subsubsection{Options for type of back references} +% +% In short the following options set the type of back +% references. Default is option |pageref|. +% \begin{quote} +% \begin{tabular}{@{}ll@{}} +% |ref| & section number\\ +% |pageref| & page number\\ +% |hyperref| & section number as hyper link\\ +% |hyperpageref| & page number as hyper link +% \end{tabular} +% \end{quote} +% The options that start with |hyper| are intended for +% the use with package |hyperref|. In this case package +% |backref| will be loaded automatically if the |hyperref| +% options |backref| or |pagebackref| are given. Package +% |hyperref| then loads package |backref| with the appropriate +% option: +% \begin{quote} +% \begin{tabular}{@{}ll@{}} +% |hyperref| option & |backref| option set by |hyperref|\\ +% \hline +% |backref| & |hyperref|\\ +% |backref=section| & |hyperref|\\ +% |backref=slide| & |hyperref|\\ +% |backref=page| & |hyperpageref|\\ +% |pagebackref| & |hyperpageref| +% \end{tabular} +% \end{quote} +% +% \subsubsection{Language options} +% +% Currently supported options are |english| (|american|, |australian|, +% |british|, |canadian|, |newzealand|, |UKenglish|, |USenglish|), +% |german| (|ngerman|, |austrian|, |naustrian|), +% |french| (|acadian|, |canadien|, |frenchb|, |francais|), +% |spanish|, and |brazil| (|brazilian|). +% Default is |english|. +% +% \subsubsection{Other options} +% +% \begin{description} +% \item[|verbose|:] +% A message is written into the |.aux| file for each +% reference that is found for back citing. +% \item[|enable|, |disable|:] +% If a citation should not be back cited, then +% the recording can be turned off by option |disable| +% and enabled again afterwards, e.g.: +% \begin{quote} +%\begin{verbatim} +%\bookmarksetup{disable}\cite{...}\bookmarksetup{enable} +%\end{verbatim} +% \end{quote} +% Both options are added in version 2012/07/24 v1.37. +% \end{description} +% +% \subsection{Detecting the end of a bibliography entry} +% +% Package |backref| has to be able to detect the end of an entry +% in the bibliography, therefore each \cmd{\bibitem} entry must +% be ended by an empty line (or a |\par| token). +% \nopagebreak +% +% Example: +%\begin{quote} +%\begin{verbatim} +%\begin{thebibliography}{9} +%\bibitem[bib:abc] First entry. +% +%\bibitem[bib:foo] Second entry. +% +%\end{thebibliography} +%\end{verbatim} +%\end{quote} +% Then package |backref| can automatically add hooks +% for the back references list at the end of the entries. +% +% \DescribeMacro{\backrefparscanfalse} +% \DescribeMacro{\backrefparscantrue} +% Sometimes it is not appropriate if the entry is read as +% argument. For example, catcode changes for verbatim stuff +% do not have the desired effect. Therefore the scan for +% the \cs{par} token can be disabled by \cs{backrefparscanfalse} +% before \cs{bibitem} and enabled by \cs{backrefparscantrue} +% afterwards. +% +% \DescribeMacro{\backrefprint} +% If the scan for the end of the entry is disabled, then package +% |backref| does not know where to put the back references +% list. The list is printed by the macro \cs{backrefprint}, thus +% just call it at the right place. Example: +%\begin{quote} +%\begin{verbatim} +%\backrefparscanfalse % disable scan for entry ending +%\bibitem[...]{...} +% ... \verb|...| ... % potentially dangerous stuff +% ... \url{...} ... +% \backrefprint % print back reference list here +%\backrefparscantrue % enable scan again +%\end{verbatim} +%\end{quote} +% +% \subsection{Formatting of the back references list} +% +% The back references list is separated from the entry +% by \cmd{\newblock}, +% if the used bibliography package supports this. The package options +% control the kind of back references (page numbers, sections numbers), +% whereas the hooks control the formatting. +% +% There are two hooks \cmd{\backref} and a new hook \cmd{\backrefalt}, +% available since version 1.21 of package |backref|. The former one +% is enabled by default. +% +% \subsubsection{Formatting hook \cs{backref}} +% +% Macro \cmd{\backref} has a a comma separated +% list of backref references as first and only argument. +% With hyperref options only this list will be printed. Without +% hyperref there is an introductionary text, controlled by +% macros \cmd{\backrefpagesname} or \cmd{\backrefsectionsname}. +% +% \subsubsection{Formatting hook \cs{backrefalt}} +% +% \cmd{\backrefalt} is a new interface since version 1.21 of package +% |backref|. It takes four arguments: +% \begin{enumerate} +% \item Number of citations without dupes. +% \item Back references list without dupes. +% \item Number of all citations (with dupes). +% \item Back reference list with all entries (with dupes). +% \end{enumerate} +% The latter options consider equal entries as one entry. +% Now \cmd{\backrefalt} can easily be defined with text that +% depends on the number of citations, for example: +%\begin{quote} +%\begin{verbatim} +%\usepackage[backref]{backref} +%\renewcommand*{\backref}[1]{}% for backref < 1.33 necessary +%\renewcommand*{\backrefalt}[4]{% +% \ifcase #1 % +% No citations.% +% \or +% One citation in section #2.% +% \else +% #1 citations in sections #2.% +% \fi +%} +%\end{verbatim} +%\end{quote} +% The separation between the list entries are controlled by +% the following macros: +% \begin{itemize} +% \item \cmd{\backrefsep}: inserted between entries except for the +% next cases, default is ``\verb*|, |''. +% \item \cmd{\backreftwosep}: inserted between entries in +% a list of two entries, default is ``\verb*| and~|''. +% \item \cmd{\backreflastsep}: inserted between the last two +% entries of a list with more than two entries, default is +% ``\verb*|, and~|''. +% \end{itemize} +% Examples: +% \begin{quote} +% \meta{entry1}\\ +% \meta{entry1} \cmd{\backreftwosep} \meta{entry2}\\ +% \meta{entry1} \cmd{\backrefsep} \meta{entry2} +% \cmd{\backreflastsep} \meta{entry3} +% \end{quote} +% Since version 1.33 it is not necessary to redefine +% \backref, it is automatically disabled if \backrefalt +% is redefined. +% +% \subsubsection{Refinement \cs{backrefentrycount}} +% +% Since version 1.33 the entries of the distinct list of +% interface \cs{backrefalt} are wrapped in +% \cs{backrefentrycount}. The macro is called with two +% arguments. The first is the backref entry and the second +% one the citation count of this entry. As default the +% macro passes the first argument through and ignores the +% count argument. But it can be redefined, e.g. +%\begin{quote} +%\begin{verbatim} +%\renewcommand*{\backrefalt}[4]{...}% see above +%\renewcommand*{\backrefentrycount}[2]{% +% #1% +% \ifnum#2>1 % +% ~(#2)% +% \fi +%} +%\end{verbatim} +%\end{quote} +% In case of duplicates, the distinct entry is +% appended by the number of citations in parentheses. +% +% \StopEventually{} +% +% \section{The macros} +% Internal command names of this package start with |\BR@|, +% commands, that store the original meaning of commands, which +% will be redefined, are prefixed with |\BRorg@|. +% +% \subsection{Package identification} +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \subsection{Options} +% +% \begin{macrocode} +\RequirePackage{kvoptions}[2011/06/30] +\RequirePackage{kvsetkeys}[2009/07/30] +\RequirePackage{ltxcmds}[2009/12/12] +\SetupKeyvalOptions{% + family=backref,% + prefix=BR@,% +} +% \end{macrocode} +% \begin{macro}{\backrefsetup} +% \begin{macrocode} +\newcommand*{\backrefsetup}{\kvsetkeys{backref}} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Option verbose} +% If package hyperref is loaded, then its setting is used as +% default for the verbose switch. +% \begin{macrocode} +\DeclareBoolOption[% + \ltx@ifundefined{ifHy@verbose}{% + false% + }{% + \ifx\ifHy@verbose\iftrue true\else false\fi + }% +]{verbose} +% \end{macrocode} +% +% \subsubsection{Options for way of working} +% +% What is printed depends on how the 3 available items of +% information are used (page number, section number, label). +% \begin{macrocode} +\long\def\page@backref#1#2#3{#1} +\long\def\section@backref#1#2#3{#2} +\long\def\hyper@section@backref#1#2#3{\hyperlink{#3}{#2}} +\long\def\hyper@page@backref#1#2#3{\hyperlink{page.#1}{#1}} +% \end{macrocode} +% Now the options follows, that can be used without +% package hyperref. +% \begin{macrocode} +\DeclareVoidOption{pageref}{% + \def\backref{\backrefpagesname\ }% + \let\backrefxxx\page@backref +} +\DeclareVoidOption{ref}{% + \def\backref{\backrefsectionsname\ }% + \let\backrefxxx\section@backref +} +% \end{macrocode} +% Set up back-referencing to be hyper links, by page or section. +% \begin{macrocode} +\DeclareVoidOption{hyperref}{% + \def\backref{}\let\backrefxxx\hyper@section@backref +} +\DeclareVoidOption{hyperpageref}{% + \def\backref{}\let\backrefxxx\hyper@page@backref +} +% \end{macrocode} +% Recording the back references in the auxiliary file can +% be enabled and disabled by the following options. +% \begin{macrocode} +\DeclareBoolOption[true]{enable} +\DeclareComplementaryOption{disable}{enable} +% \end{macrocode} +% +% \subsubsection{Language options} +% +% \begin{macrocode} +\def\backrefenglish{% + \def\backrefpagesname{pages}% + \def\backrefsectionsname{sections}% + \def\backrefsep{, }% + \def\backreftwosep{ and~}% + \def\backreflastsep{, and~}% +} +\def\backrefgerman{% + \def\backrefpagesname{Seiten}% + \def\backrefsectionsname{Abschnitte}% + \def\backrefsep{, }% + \def\backreftwosep{ und~}% + \def\backreflastsep{ und~}% +} +\def\backreffrench{% + \def\backrefpagesname{pages}% + \def\backrefsectionsname{sections}% + \def\backrefsep{, }% + \def\backreftwosep{ et~}% + \def\backreflastsep{ et~}% +} +\def\backrefspanish{% + \def\backrefpagesname{p\'aginas}% + \def\backrefsectionsname{secciones}% + \def\backrefsep{, }% + \def\backreftwosep{ y~}% + \def\backreflastsep{ y~}% +} +\def\backrefbrazil{% + \def\backrefpagesname{p\'aginas}% + \def\backrefsectionsname{se\c c\~oes}% + \def\backrefsep{, }% + \def\backreftwosep{ e~}% + \def\backreflastsep{ e~}% +} +\def\backrefafrikaans{% + \def\backrefpagesname{bladsye}% + \def\backrefsectionsname{afdelings}% + \def\backrefsep{, }% + \def\backreftwosep{ en~}% + \def\backreflastsep{ en~}% +}% +% \end{macrocode} +% Instead of package babel's definition of \cmd{\addto} the +% implementation of package varioref is used. Additionally +% argument |#1| is checked for \cmd{\relax}. +% \begin{macrocode} +\def\BR@addto#1#2{% + #2% + \@temptokena{#2}% + \ifx#1\relax + \let#1\@empty + \fi + \ifx#1\@undefined + \edef#1{\the\@temptokena}% + \else + \toks@\expandafter{#1}% + \edef#1{\the\toks@\the\@temptokena}% + \fi + \@temptokena{}\toks@\@temptokena +} +% \end{macrocode} +% \begin{macrocode} +\def\BR@DeclareLang#1#2{% + \begingroup + \edef\x##1##2{% + \noexpand\ifx##2\relax + \errmessage{No definitions for language `#2' found!}% + \noexpand\fi + \endgroup + \noexpand\DeclareVoidOption{#1}{% + \noexpand\BR@addto{\noexpand##1}{\noexpand##2}% + }% + }% + \expandafter\x\csname extras#1\expandafter\endcsname + \csname backref#2\expandafter\endcsname +} +\BR@DeclareLang{english}{english} +\BR@DeclareLang{american}{english} +\BR@DeclareLang{australian}{english} +\BR@DeclareLang{british}{english} +\BR@DeclareLang{canadian}{english} +\BR@DeclareLang{newzealand}{english} +\BR@DeclareLang{UKenglish}{english} +\BR@DeclareLang{USenglish}{english} +\BR@DeclareLang{german}{german} +\BR@DeclareLang{ngerman}{german} +\BR@DeclareLang{austrian}{german} +\BR@DeclareLang{naustrian}{german} +\BR@DeclareLang{french}{french} +\BR@DeclareLang{acadian}{french} +\BR@DeclareLang{canadien}{french} +\BR@DeclareLang{frenchb}{french} +\BR@DeclareLang{francais}{french} +\BR@DeclareLang{spanish}{spanish} +\BR@DeclareLang{brazil}{brazil} +\BR@DeclareLang{brazilian}{brazil} +\BR@DeclareLang{afrikaans}{afrikaans} +% \end{macrocode} +% Default is the english version: +% \begin{macrocode} +\backrefenglish +% \end{macrocode} +% +% \subsubsection{Process options} +% +% \begin{macrocode} +\backrefsetup{pageref} +\ProcessKeyvalOptions* +% \end{macrocode} +% +% \begin{macro}{\BR@DisableOption} +% \begin{macrocode} +\def\BR@DisableOption#1{% + \DisableKeyvalOption[% + action=warning,% + package=backref,% + ]{backref}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\BR@DisableOption{ref} +\BR@DisableOption{pageref} +\BR@DisableOption{hyperref} +\BR@DisableOption{hyperpageref} +% \end{macrocode} +% +% \subsection{The bibliography} +% +% \begin{macro}{\ifbackrefparscan} +% \begin{macrocode} +\newif\ifbackrefparscan +\backrefparscantrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifBR@BackrefAlt} +% \begin{macrocode} +\newif\ifBR@BackrefAlt +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\BR@bibitem} +% \begin{macrocode} +\def\BR@bibitem{% + \ifbackrefparscan + \expandafter\@ifnextchar\expandafter[\expandafter + \BR@@lbibitem\expandafter\BR@@bibitem + \else + \expandafter\@ifnextchar\expandafter[\expandafter + \BR@@@lbibitem\expandafter\BR@@@bibitem + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\def\BR@@lbibitem[#1]#2#3\par{% + \let\backrefprint\BR@backrefprint + \BRorg@bibitem[{#1}]{#2}#3% + \BR@backref{#2}% +}% +\def\BR@@bibitem#1#2\par{% + \let\backrefprint\BR@backrefprint + \BRorg@bibitem{#1}#2% + \BR@backref{#1}% +} +\def\BR@@@lbibitem[#1]#2{% + \def\backrefprint{\BR@backref{#2}}% + \BRorg@bibitem[{#1}]{#2}% +} +\def\BR@@@bibitem#1{% + \def\backrefprint{\BR@backref{#1}}% + \BRorg@bibitem{#1}% +} +\def\BR@backrefprint{% + \PackageError{backref}{% + \string\backrefprint\space is only available after \string\bibitem + \MessageBreak + with setting \string\backrefparscanfalse + }\@ehc +} +\let\backrefprint\BR@backrefprint +\def\BR@backref#1{% + \newblock + \begingroup + \csname @safe@activestrue\endcsname + \expandafter\providecommand\csname brc@#1\endcsname{0}% + \expandafter\providecommand\csname brcd@#1\endcsname{0}% + \csname @safe@activesfalse\expandafter\endcsname + \ifBR@BackrefAlt + \ifx\backrefentrycount\BR@BackrefEntryCountUnused + \else + \BR@PopulateEntryCount{#1}% + \fi + \expandafter\backrefalt\csname brc@#1\expandafter\endcsname + \csname brl@#1\expandafter\endcsname + \csname brcd@#1\expandafter\endcsname + \csname brld@#1\endcsname + \else + \expandafter\backref\csname br@#1\expandafter\endcsname + \fi + \endgroup + \par +} +\@ifundefined{newblock}{\def\newblock{\par}}{} +\let\BR@Unused\@empty +\def\BR@BackrefAltUnused#1#2#3#4{\BR@Unused} +\@ifundefined{backrefalt}{% + \let\backrefalt\BR@BackrefAltUnused +}{} +\def\BR@BackrefEntryCountUnused#1#2{\BR@Unused#1} +\@ifundefined{backrefentrycount}{% + \let\backrefentrycount\BR@BackrefEntryCountUnused +}{} +% \end{macrocode} +% +% \subsection{Reading .brf file} +% +% \begin{macro}{\backcite} +% The file |\jobname.brf| collects the back cite informations +% as calls of \cmd{\backcite} with the informations +% in the arguments. +% +% The first argument of macro \cmd{\backcite} is the citation +% label, the second parameter contains the page number +% (\cmd{\thepage}), the current label of the citation +% (\cmd{\@currentlabel}), and the current anchor name +% (\cmd{\@currentHref}). Example for a citation at the +% first page in second section: +%\begin{verbatim} +%\backcite {bib:abc}{{1}{2}{section.2}} +%\end{verbatim} +% +% While the file |\jobname.brf| is read, the informations are +% collected and stored in macros whose names are build by the +% citation label \meta{label}: +% \begin{quote} +% \begin{tabular}{@{}ll@{}} +% |\br@|\meta{label} & list, entries separated by comma without dupes\\ +% |\brc@|\meta{label} & number of citations without dupes\\ +% |\brl@|\meta{label} & backref list without dupes\\ +% |\brcd@|\meta{label} & number of all citations (with dupes)\\ +% |\brld@|\meta{label} & backref list with all entries (with dupes) +% \end{tabular} +% \end{quote} +% What are ``dupes''? An instance: you have three references to +% an entry in the bibliography on the first page: +%\begin{verbatim} +%\backcite {bib:abc}{{1}{1}{section.1}} +%\backcite {bib:abc}{{1}{1}{section.1}} +%\backcite {bib:abc}{{1}{2}{section.2}} +%\end{verbatim} +% Then the whole backref list with option |pageref| would print, e.g.: +% \begin{quote} +% Entry for |bib:abc|. Cited on pages 1, 1, 1. +% \end{quote} +% Without dupes the entries with the same page number would be removed, +% e.g.: +% \begin{quote} +% Entry for |bib:abc|. Cited on page 1. +% \end{quote} +% Also the third entry is removed, because it has the same page number. +% For the comparison only these pieces of information are considered +% that will be used later by \cmd{\backrefxxx}. With option +% |pageref| macro \cmd{\backrefxxx} becomes \cmd{\page@backref} that +% throws away the second and third argument and only uses the first +% argument with the page number. To be more precise, the first +% expansion of \cmd{\backrefxxx} is used in comparison. If some +% arguments are used here, but later omitted, then this will not +% be detected. +% +% \begin{macro}{\backrefxxxdupe} +% With option |hyperref| you will get two entries +% in the following example because the second entry differs in the +% link information, so the result will be the same section number, +% but as different links. +%\begin{verbatim} +%\backref {bib:abc}{{1}{1}{section.1}} +%\backref {bib:abc}{{1}{1}{equation.1}} +%\end{verbatim} +% Macro \cmd{\backrefxxxdupe} will be used +% in the comparison test if it is defined. Thus you can provide a +% definition in this case as follows: +%\begin{verbatim} +%\newcommand*{\backrefxxxdupe}[3]{#2} +%\end{verbatim} +% Then only the section number is interpreted, but not the anchor name. +% \end{macro} +% +% To avoid same entries, it is checked before, whether the entry +% already exists. Only the information needed by \cmd{\backrefxxx} +% is compared. +% \begin{macrocode} +\def\backcite#1#2{% + \@for\x:=#1\do{% + \begingroup + \csname @safe@activestrue\endcsname + \edef\x{\endgroup + \def\noexpand\x{\expandafter\@firstofone\x\@empty}% + }% + \x +% \end{macrocode} +% Now macro \cmd{\x} contains the citation label name. +% \begin{macrocode} + \expandafter\ifx\csname br@\x\endcsname\relax +% \end{macrocode} +% Initialization, fill in the first entry. +% \begin{macrocode} + \expandafter\protected@xdef\csname br@\x\endcsname{% + \protect\backrefxxx#2% + }% + \ifBR@BackrefAlt + \global\expandafter\let\csname brl@\x\expandafter\endcsname + \csname br@\x\endcsname + \global\expandafter\let\csname brld@\x\expandafter\endcsname + \csname br@\x\endcsname + \expandafter\gdef\csname brc@\x\endcsname{1}% + \expandafter\gdef\csname brcd@\x\endcsname{1}% + \fi + \else +% \end{macrocode} +% Fill in further entry. But check for dupe first. +% \begin{macrocode} + \begingroup + \@ifundefined{backrefxxxdupe}{}{\let\backrefxxx\backrefxxxdupe}% + \expandafter\def\expandafter\reserved@a\expandafter{% + \backrefxxx#2% + }% + \let\BRorg@backrefxxx\backrefxxx + \global\let\BR@found=N% + \long\def\backrefxxx##1##2##3{% + \expandafter\def\expandafter\reserved@b\expandafter{% + \BRorg@backrefxxx{##1}{##2}{##3}% + }% + \ifx\reserved@a\reserved@b + \global\let\BR@found=Y% + \fi + }% + \setbox\@tempboxa\hbox{\csname br@\x\endcsname}% + \endgroup + \let\backrefsep\relax + \def\backreftwosep{\backrefsep}% + \def\backreflastsep{\backrefsep}% + \if N\BR@found + \expandafter\protected@xdef\csname br@\x\endcsname{% + \csname br@\x\endcsname, % + \protect\backrefxxx#2% + }% + \ifBR@BackrefAlt + \expandafter\protected@xdef\csname brl@\x\endcsname{% + \csname brl@\x\endcsname + \ifnum\@nameuse{brc@\x}=1 % + \noexpand\backreftwosep + \else + \noexpand\backreflastsep + \fi + \protect\backrefxxx#2% + }% + \count@=\@nameuse{brc@\x}\relax + \advance\count@ by 1 % + \expandafter\xdef\csname brc@\x\endcsname{\the\count@}% + \fi + \fi + \ifBR@BackrefAlt + \expandafter\protected@xdef\csname brld@\x\endcsname{% + \csname brld@\x\endcsname + \ifnum\@nameuse{brcd@\x}=1 % + \noexpand\backreftwosep + \else + \noexpand\backreflastsep + \fi + \protect\backrefxxx#2% + }% + \count@=\@nameuse{brcd@\x}\relax + \advance\count@ by 1 % + \expandafter\xdef\csname brcd@\x\endcsname{\the\count@}% + \fi + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\BR@PopulateEntryCount} +% \begin{macrocode} +\def\BR@PopulateEntryCount#1{% + \begingroup + \toks@{}% + \def\backrefsep{% + \toks@\expandafter{\the\toks@\backrefsep}% + }% + \def\backreftwosep{% + \toks@\expandafter{\the\toks@\backreftwosep}% + }% + \def\backreflastsep{% + \toks@\expandafter{\the\toks@\backreflastsep}% + }% + \def\protect{}% + \let\BR@backrefxxx\backrefxxx + \let\backrefxxx\BR@PopulateBackrefxxx + \def\BR@name{#1}% + \csname brl@#1\endcsname + \expandafter\xdef\csname brl@#1\endcsname{\the\toks@}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\BR@PopulateBackrefxxx} +% \begin{macrocode} +\def\BR@PopulateBackrefxxx#1#2#3{% + \expandafter\def\expandafter\BR@tempa\expandafter{% + \BR@backrefxxx{#1}{#2}{#3}% + }% + \begingroup + \count@=\z@ + \def\backrefsep{}% + \def\backreftwosep{}% + \def\backreflastsep{}% + \let\backrefxxx\BR@@PopulateBackrefxxx + \csname brld@\BR@name\endcsname + \toks\tw@={\backrefxxx{#1}{#2}{#3}}% + \edef\x{\endgroup + \toks@{% + \the\toks@ + \noexpand\backrefentrycount{% + \the\toks\tw@ + }{\the\count@}% + }% + }% + \x +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\BR@@PopulateBackrefxxx} +% \begin{macrocode} +\def\BR@@PopulateBackrefxxx#1#2#3{% + \expandafter\def\expandafter\BR@tempb\expandafter{% + \BR@backrefxxx{#1}{#2}{#3}% + }% + \ifx\BR@tempa\BR@tempb + \advance\count@\@ne + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Initialization} +% +% \begin{macrocode} +\def\@currentHref{} +\AtBeginDocument{% + \let\BRorg@bibitem\bibitem + \let\bibitem\BR@bibitem + \let\BRorg@thebibliography\thebibliography + \def\thebibliography{% + \BR@starttoc + \BRorg@thebibliography + }% + \@ifundefined{NAT@parse}{% + \global\let\BRorg@citex\@citex + \global\let\@citex\BR@citex + }{% + \@ifpackageloaded{hyperref}{}{% + \def\hyper@natlinkstart#1{\Hy@backout{#1}}% + }% + \PackageInfo{backref}{** backref set up for natbib **}% + }% +} +% \end{macrocode} +% \begin{macro}{\BR@starttoc} +% \begin{macrocode} +\def\BR@starttoc{% + \ifx\backrefalt\BR@BackrefAltUnused + \global\BR@BackrefAltfalse + \else + \global\BR@BackrefAlttrue + \fi + \begingroup + \makeatletter + \@input{\jobname.brf}% + \if@filesw + \@ifundefined{tf@brf}{% + \expandafter\newwrite\csname tf@brf\endcsname + }{}% + \@ifundefined{tf@brf@open}{% + \BR@RerunFileCheck + \immediate\openout\csname tf@brf\endcsname\jobname.brf\relax + \gdef\tf@brf@open{}% + }{}% + \fi + \@nobreakfalse + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Collecting back cite informations} +% +% \begin{macro}{\BR@citex} +% \begin{macrocode} +\def\BR@citex[#1]#2{% + \BRorg@citex[{#1}]{#2}% + \Hy@backout{#2}% +} +% \end{macrocode} +% \end{macro} +% +% Grr. for chicago.sty +% \begin{macrocode} +\@ifpackageloaded{chicago}{% + \let\BRorg@citedatax\@citedatax + \def\@citedatax[#1]#2{% + \BRorg@citedatax[{#1}]{#2}% + \Hy@backout{#2}% + }% +}{} +% \end{macrocode} +% \begin{macro}{\Hy@backout} +% \begin{macrocode} +\def\Hy@backout#1{% + \@bsphack + \ifBR@enable + \ifBR@verbose + \PackageInfo{backref}{Back cite \string`#1\string'}% + \fi + \ifx\@empty\@currentlabel + \protected@write\@auxout{}{% + \string\@writefile{brf}{% + \string\backcite{#1}{{\thepage}{(document)}{Doc-Start}}% + }% + }% + \else + \protected@write\@auxout{}{% + \string\@writefile{brf}{% + \string\backcite{#1}{{\thepage}{\@currentlabel}{\@currentHref}}% + }% + }% + \fi + \else + \ifBR@verbose + \PackageInfo{backref}{Disabled back cite \string`#1\string'}% + \fi + \fi + \@esphack +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Rerun warning} +% +% \begin{macro}{\BR@RerunFileCheck} +% The following code computes a MD5 sum and the file size of the +% |.brf| file at the begin and the end of the document and compares +% them. A rerun warning is given, if they do not match. +% This method requires pdf\TeX\ or Lua\TeX. The method fails, +% if the MD5 sum and the file size are the same for +% a changed |.brf| file (it's probably very seldom). +% \begin{macrocode} +\RequirePackage{rerunfilecheck}[2009/12/10] +\def\BR@RerunFileCheck{% + \RerunFileCheck{\jobname.brf}{% + \@ifundefined{tf@brf@open}{% + }{% + \immediate\closeout\tf@brf + }% + }{% + Rerun to get bibliographical references right% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/macros/latex/contrib/hyperref/backref.pdf b/macros/latex/contrib/hyperref/backref.pdf Binary files differnew file mode 100644 index 0000000000..828f753f3c --- /dev/null +++ b/macros/latex/contrib/hyperref/backref.pdf diff --git a/macros/latex/contrib/hyperref/bmhydoc.sty b/macros/latex/contrib/hyperref/bmhydoc.sty new file mode 100644 index 0000000000..e6491796ca --- /dev/null +++ b/macros/latex/contrib/hyperref/bmhydoc.sty @@ -0,0 +1,115 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bmhydoc} + [2019/01/08 Bookmark section with hyperref documentation (HO)] + +% This package adds bookmark entries that are added at the end +% and lists and links the PDF files of the hyperref documentation. +% Only pdfTeX in PDF mode is supported by this package. +% +% History +% +% 2005/08/27 +% * First version +% 2006/02/08 +% * Comments added +% * \HyperrefOverview +% 2007/03/19 +% * Use package bookmark that also support other drivers +% than pdfTeX. +% 2009/11/22 +% * Bug fix: correction of "this file". + +\RequirePackage{pifont} +\RequirePackage[atend]{bookmark}[2007/04/04] + +\BookmarkAtEnd{% + \bookmarksetup{% + startatroot,% + open,% + openlevel=2% + }% +} + +\newcommand*{\@bmhydoc}[4][]{% + \BookmarkAtEnd{% + \bookmark[% + gotor={#3},% + color={[rgb]{0,0,1}},% + level={#2},% + view={XYZ null null null},% + #1,% + ]{#4}% + }% +} +\AtEndDocument{% + \@bmhydoc[open=false]{0}{manual.pdf}{Hyperref manual} +% \@bmhydoc{1}{README.pdf}{README} +% \@bmhydoc{1}{ChangeLog.pdf}{ChangeLog} + \@bmhydoc{1}{options.pdf}{Options} + \@bmhydoc{1}{slides.pdf}{Bookmark talk, slides} + \@bmhydoc{2}{paper.pdf}{Bookmark talk, paper} + \@bmhydoc{1}{hyperref.pdf}{Sources: hyperref.dtx} + \@bmhydoc{2}{backref.pdf}{backref.dtx} + \@bmhydoc{2}{nameref.pdf}{nameref.dtx} +} + +\newcommand*{\HyperrefOverview}{% + \def\bmhydoc@title{Documentation overview for \texttt{hyperref}}% + \@ifstar{% + % \phantomsection + % \addcontentsline{toc}{section}{\bmhydoc@title}% + \section*{\bmhydoc@title}% + \@HyperrefOverview + }{% + \section{\bmhydoc@title}% + \@HyperrefOverview + }% +} +\def\@HyperrefOverview{% + The documentation for package \texttt{hyperref} consists + of several files: + \begingroup + \newcommand*{\entry}[2]{% + \item[\href{file:##1}{##2}]% + \ignorespaces + }% + \begin{description} + \entry{manual.pdf}{\textbf{Manual}} + The \textbf{USER MANUAL} (also available as HTML). + \entry{ChangeLog.txt}{ChangeLog} + This file records the version history + (also available as text file). + \entry{options.pdf}{Options} + This file provides a short option summary. + \entry{slides.pdf}{Bookmark talk, slides} + Slides for the talk ``PDF information and navigation elements with + hyperref, pdfTeX and thumbpdf'' at Euro\TeX~1999. + \entry{paper.pdf}{Bookmark talk, paper} + The paper version of the talk. + \end{description} + Source code documentation: + \begin{description} + \entry{hyperref.pdf}{hyperref.dtx} + This is the source code documentation for hyperref% + \@thisfile{hyperref}. + \entry{backref.pdf}{backref.dtx} + ``Back referencing from bibliographical citations''% + \@thisfile{backref} + \entry{nameref.pdf}{nameref.dtx} + ``Section name references in \LaTeX''% + \@thisfile{nameref}% + \end{description} + \endgroup +} +\edef\@jobname{\jobname} +\def\@thisfile#1{% + \begingroup + \edef\x{#1}% + \@onelevel@sanitize\x + \ifx\x\@jobname + \marginpar{\hfill\ding{43}}% + \space(this file)% + \fi + \endgroup +} +\endinput diff --git a/macros/latex/contrib/hyperref/doc/cmmi10-22.gif b/macros/latex/contrib/hyperref/doc/cmmi10-22.gif Binary files differnew file mode 100644 index 0000000000..ab41b85ae2 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/cmmi10-22.gif diff --git a/macros/latex/contrib/hyperref/doc/cmsy10-21.gif b/macros/latex/contrib/hyperref/doc/cmsy10-21.gif Binary files differnew file mode 100644 index 0000000000..dd190e44e9 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/cmsy10-21.gif diff --git a/macros/latex/contrib/hyperref/doc/manual.css b/macros/latex/contrib/hyperref/doc/manual.css new file mode 100644 index 0000000000..0943cab494 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual.css @@ -0,0 +1,248 @@ + +/* start css.sty */ +.ec-lmr-17{font-size:170%;} +.ec-lmss-17{font-size:170%; font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmss-17{ font-family: sans-serif;} +.ec-lmr-12{font-size:120%;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.ec-lmvtt-10{ font-family: monospace;} +.lmsy7-{font-size:70%;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmri-10{ font-style:italic;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmss-10{ font-family: sans-serif;} +.ec-lmr-9{font-size:90%;} +.ec-lmr-8{font-size:80%;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmbx-10{ font-weight: bold;} +.ec-lmss-8{font-size:80%; font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmss-8{ font-family: sans-serif;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtk-10{ font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +.ec-lmvtto-10{ font-style: oblique; font-family: monospace;} +p.noindent { text-indent: 0em } +td p.noindent { text-indent: 0em; margin-top:0em; } +p.nopar { text-indent: 0em; } +p.indent{ text-indent: 1.5em } +@media print {div.crosslinks {visibility:hidden;}} +a img { border-top: 0; border-left: 0; border-right: 0; } +center { margin-top:1em; margin-bottom:1em; } +td center { margin-top:0em; margin-bottom:0em; } +.Canvas { position:relative; } +img.math{vertical-align:middle;} +li p.indent { text-indent: 0em } +li p:first-child{ margin-top:0em; } +li p:last-child, li div:last-child { margin-bottom:0.5em; } +li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } +.enumerate1 {list-style-type:decimal;} +.enumerate2 {list-style-type:lower-alpha;} +.enumerate3 {list-style-type:lower-roman;} +.enumerate4 {list-style-type:upper-alpha;} +div.newtheorem { margin-bottom: 2em; margin-top: 2em;} +.obeylines-h,.obeylines-v {white-space: nowrap; } +div.obeylines-v p { margin-top:0; margin-bottom:0; } +.overline{ text-decoration:overline; } +.overline img{ border-top: 1px solid black; } +td.displaylines {text-align:center; white-space:nowrap;} +.centerline {text-align:center;} +.rightline {text-align:right;} +div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } +.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.fbox {display:table} +div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +div.minipage{width:100%;} +div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;} +div.center div {text-align: left;} +div.flushright, div.flushright div.flushright {text-align: right;} +div.flushright div {text-align: left;} +div.flushleft {text-align: left;} +.underline{ text-decoration:underline; } +.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; } +.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } +.framebox-c {text-align:center;} +.framebox-l {text-align:left;} +.framebox-r {text-align:right;} +span.thank-mark{ vertical-align: super } +span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +.tabbing-right {text-align:right;} +span.TEX {letter-spacing: -0.125em; } +span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;} +a span.TEX span.E {text-decoration: none; } +span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;} +span.LATEX span.TEX{ position:relative; left: -0.4em; } +div.float, div.figure {margin-left: auto; margin-right: auto;} +div.float img {text-align:center;} +div.figure img {text-align:center;} +.marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} +.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;} +.reversemarginpar{float:left;} +table.equation {width:100%;} +.equation td{text-align:center; } +td.equation { margin-top:1em; margin-bottom:1em; } +td.equation-label { width:5%; text-align:center; } +td.eqnarray4 { width:5%; white-space: normal; } +td.eqnarray2 { width:5%; } +table.eqnarray-star, table.eqnarray {width:100%;} +div.eqnarray{text-align:center;} +div.array {text-align:center;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.pmatrix img{vertical-align:middle;} +div.pmatrix {text-align:center;} +table.pmatrix {width:100%;} +span.bar-css {text-decoration:overline;} +img.cdots{vertical-align:middle;} +.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} +.index-item, .index-subitem, .index-subsubitem {display:block} +div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} +div.caption span.id{font-weight: bold; white-space: nowrap; } +h1.partHead{text-align: center} +p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } +.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} +.subparagraphHead, .likesubparagraphHead { font-weight: bold;} +.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;} +.verse{white-space:nowrap; margin-left:2em} +div.maketitle {text-align:center;} +h2.titleHead{text-align:center;} +div.maketitle{ margin-bottom: 2em; } +div.author, div.date {text-align:center;} +div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } +div.author{white-space: nowrap;} +.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } +.abstract p {margin-left:5%; margin-right:5%;} +div.abstract {width:100%;} +div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } +table.tabular td p{margin-top:0em;} +table.tabular {margin-left: auto; margin-right: auto;} +td p:first-child{ margin-top:0em; } +td p:last-child{ margin-bottom:0em; } +div.td00{ margin-left:0pt; margin-right:0pt; } +div.td01{ margin-left:0pt; margin-right:5pt; } +div.td10{ margin-left:5pt; margin-right:0pt; } +div.td11{ margin-left:5pt; margin-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +td.td00{ padding-left:0pt; padding-right:0pt; } +td.td01{ padding-left:0pt; padding-right:5pt; } +td.td10{ padding-left:5pt; padding-right:0pt; } +td.td11{ padding-left:5pt; padding-right:5pt; } +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +.hline hr, .cline hr{ height : 1px; margin:0px; } +div.array {text-align:center;} +table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } +div.longtable{text-align:center;} +table.longtable{margin-left:auto; margin-right: auto;} +span.HoLogo-LaTeX span.HoLogo-a{position:relative;top:-.5ex;margin-left:-.36em;margin-right:-.15em;font-size:85%;} +span.HoLogo-TeX span.HoLogo-e{position:relative;top:.5ex;margin-left:-.1667em;margin-right:-.125em;} +a span.HoLogo-TeX span.HoLogo-e{text-decoration:none;} +span.HoLogo-XeTeX span.HoLogo-TeX{margin-left:-.15em;} +span.HoLogo-Xe span.HoLogo-e{position:relative;top:.5ex;left-margin:-.1em;} +span.HoLogo-LaTeX2e span.HoLogo-2{padding-left:.15em;} +span.HoLogo-LaTeX2e span.HoLogo-e{position:relative;top:.35ex;text-decoration:none;} +/* end css.sty */ + diff --git a/macros/latex/contrib/hyperref/doc/manual.html b/macros/latex/contrib/hyperref/doc/manual.html new file mode 100644 index 0000000000..cff0ea5bcc --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual.html @@ -0,0 +1,7437 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title>Hypertext marks in LATEX: a manual for hyperref</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> + <div class="maketitle"> + + + + + +<h2 class="titleHead">Hypertext marks in <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>: a manual for hyperref</h2> + <div class="author" ><span +class="ec-lmr-12">Sebastian Rahtz </span><br class="and" /><span +class="ec-lmr-12">Heiko Oberdiek</span></div><br /> +<div class="date" ><span +class="ec-lmr-12">September 2018</span></div> + </div> + <h3 class="likesectionHead"><a + id="x1-1000"></a>Contents</h3> + <div class="tableofcontents"> + <span class="sectionToc" >1 <a +href="#x1-20001" id="QQ2-1-2">Introduction</a></span> +<br /> <span class="sectionToc" >2 <a +href="#x1-30002" id="QQ2-1-3">Implicit behavior</a></span> +<br /> <span class="sectionToc" >3 <a +href="#x1-40003" id="QQ2-1-4">Package options</a></span> +<br />  <span class="subsectionToc" >3.1 <a +href="#x1-50003.1" id="QQ2-1-5">General options</a></span> +<br />  <span class="subsectionToc" >3.2 <a +href="#x1-60003.2" id="QQ2-1-6">Options for destination names</a></span> +<br />  <span class="subsectionToc" >3.3 <a +href="#x1-70003.3" id="QQ2-1-7">Configuration options</a></span> +<br />  <span class="subsectionToc" >3.4 <a +href="#x1-80003.4" id="QQ2-1-8">Backend drivers</a></span> +<br />  <span class="subsectionToc" >3.5 <a +href="#x1-90003.5" id="QQ2-1-9">Extension options</a></span> +<br />  <span class="subsectionToc" >3.6 <a +href="#x1-100003.6" id="QQ2-1-10">PDF-specific display options</a></span> +<br />  <span class="subsectionToc" >3.7 <a +href="#x1-110003.7" id="QQ2-1-11">PDF display and information options</a></span> +<br />  <span class="subsectionToc" >3.8 <a +href="#x1-120003.8" id="QQ2-1-12">Option <span +class="ec-lmvtt-10">pdfinfo</span></a></span> +<br />  <span class="subsectionToc" >3.9 <a +href="#x1-130003.9" id="QQ2-1-13">Big alphabetical list</a></span> +<br /> <span class="sectionToc" >4 <a +href="#x1-140004" id="QQ2-1-14">Additional user macros</a></span> +<br />  <span class="subsectionToc" >4.1 <a +href="#x1-150004.1" id="QQ2-1-15">Bookmark macros</a></span> +<br />   <span class="subsubsectionToc" >4.1.1 <a +href="#x1-160004.1.1" id="QQ2-1-16">Setting bookmarks</a></span> +<br />   <span class="subsubsectionToc" >4.1.2 <a +href="#x1-170004.1.2" id="QQ2-1-17">Replacement macros</a></span> +<br />  <span class="subsectionToc" >4.2 <a +href="#x1-180004.2" id="QQ2-1-18">Utility macros</a></span> +<br /> <span class="sectionToc" >5 <a +href="#x1-190005" id="QQ2-1-19">New Features</a></span> +<br />  <span class="subsectionToc" >5.1 <a +href="#x1-200005.1" id="QQ2-1-20">Option ‘pdflinkmargin’</a></span> +<br />  <span class="subsectionToc" >5.2 <a +href="#x1-210005.2" id="QQ2-1-21">Field option ‘calculatesortkey’</a></span> +<br />  <span class="subsectionToc" >5.3 <a +href="#x1-220005.3" id="QQ2-1-22">Option ‘localanchorname’</a></span> +<br />  <span class="subsectionToc" >5.4 <a +href="#x1-230005.4" id="QQ2-1-23">Option ‘customdriver’</a></span> +<br />  <span class="subsectionToc" >5.5 <a +href="#x1-240005.5" id="QQ2-1-24">Option ‘psdextra’</a></span> +<br />  <span class="subsectionToc" >5.6 <a +href="#x1-250005.6" id="QQ2-1-25">\XeTeXLinkBox</a></span> +<br />  <span class="subsectionToc" >5.7 <a +href="#x1-260005.7" id="QQ2-1-26">\IfHyperBooleanExists and \IfHyperBoolean</a></span> +<br />  <span class="subsectionToc" >5.8 <a +href="#x1-270005.8" id="QQ2-1-27">\unichar</a></span> +<br />  <span class="subsectionToc" >5.9 <a +href="#x1-280005.9" id="QQ2-1-28">\ifpdfstringunicode</a></span> +<br />  <span class="subsectionToc" >5.10 <a +href="#x1-290005.10" id="QQ2-1-29">Customizing index style file with \nohyperpage</a></span> +<br />  <span class="subsectionToc" >5.11 <a +href="#x1-300005.11" id="QQ2-1-30">Experimental option ‘ocgcolorlinks’</a></span> +<br />  <span class="subsectionToc" >5.12 <a +href="#x1-310005.12" id="QQ2-1-31">Option ‘pdfa’</a></span> +<br />  <span class="subsectionToc" >5.13 <a +href="#x1-320005.13" id="QQ2-1-32">Option ‘linktoc’ added</a></span> + +<br />  <span class="subsectionToc" >5.14 <a +href="#x1-330005.14" id="QQ2-1-33">Option ‘pdfnewwindow’ changed</a></span> +<br />  <span class="subsectionToc" >5.15 <a +href="#x1-340005.15" id="QQ2-1-34">Flag options for PDF forms</a></span> +<br />  <span class="subsectionToc" >5.16 <a +href="#x1-350005.16" id="QQ2-1-35">Option ‘pdfversion’</a></span> +<br />  <span class="subsectionToc" >5.17 <a +href="#x1-360005.17" id="QQ2-1-36">Field option ‘name’</a></span> +<br />  <span class="subsectionToc" >5.18 <a +href="#x1-370005.18" id="QQ2-1-37">Option ‘pdfencoding’</a></span> +<br />  <span class="subsectionToc" >5.19 <a +href="#x1-380005.19" id="QQ2-1-38">Color options/package hycolor</a></span> +<br />  <span class="subsectionToc" >5.20 <a +href="#x1-390005.20" id="QQ2-1-39">Option pdfusetitle</a></span> +<br />  <span class="subsectionToc" >5.21 <a +href="#x1-400005.21" id="QQ2-1-40">Starred form of \autoref</a></span> +<br />  <span class="subsectionToc" >5.22 <a +href="#x1-410005.22" id="QQ2-1-41">Link border style</a></span> +<br />  <span class="subsectionToc" >5.23 <a +href="#x1-420005.23" id="QQ2-1-42">Option "bookmarksdepth"</a></span> +<br />  <span class="subsectionToc" >5.24 <a +href="#x1-430005.24" id="QQ2-1-43">Option "pdfescapeform"</a></span> +<br />  <span class="subsectionToc" >5.25 <a +href="#x1-440005.25" id="QQ2-1-44">Default driver setting</a></span> +<br />  <span class="subsectionToc" >5.26 <a +href="#x1-450005.26" id="QQ2-1-45">Backref entries</a></span> +<br />  <span class="subsectionToc" >5.27 <a +href="#x1-460005.27" id="QQ2-1-46">\phantomsection</a></span> +<br /> <span class="sectionToc" >6 <a +href="#x1-470006" id="QQ2-1-47">Acrobat-specific behavior</a></span> +<br /> <span class="sectionToc" >7 <a +href="#x1-480007" id="QQ2-1-48">PDF and HTML forms</a></span> +<br />  <span class="subsectionToc" >7.1 <a +href="#x1-490007.1" id="QQ2-1-49">Forms environment parameters</a></span> +<br />  <span class="subsectionToc" >7.2 <a +href="#x1-500007.2" id="QQ2-1-50">Forms optional parameters</a></span> +<br /> <span class="sectionToc" >8 <a +href="#x1-510008" id="QQ2-1-51">Defining a new driver</a></span> +<br /> <span class="sectionToc" >9 <a +href="#x1-520009" id="QQ2-1-52">Special support for other packages</a></span> +<br />  <span class="subsectionToc" >9.1 <a +href="#x1-530009.1" id="QQ2-1-53">Package Compatibility</a></span> +<br />   <span class="subsubsectionToc" >9.1.1 <a +href="#x1-540009.1.1" id="QQ2-1-54">algorithm</a></span> +<br />   <span class="subsubsectionToc" >9.1.2 <a +href="#x1-550009.1.2" id="QQ2-1-55">amsmath</a></span> +<br />   <span class="subsubsectionToc" >9.1.3 <a +href="#x1-560009.1.3" id="QQ2-1-56">amsrefs</a></span> +<br />   <span class="subsubsectionToc" >9.1.4 <a +href="#x1-570009.1.4" id="QQ2-1-57">arydshln, longtable</a></span> +<br />   <span class="subsubsectionToc" >9.1.5 <a +href="#x1-580009.1.5" id="QQ2-1-58">babel/magyar.ldf</a></span> +<br />   <span class="subsubsectionToc" >9.1.6 <a +href="#x1-590009.1.6" id="QQ2-1-59">babel/spanish.ldf</a></span> +<br />   <span class="subsubsectionToc" >9.1.7 <a +href="#x1-600009.1.7" id="QQ2-1-60">bibentry</a></span> +<br />   <span class="subsubsectionToc" >9.1.8 <a +href="#x1-610009.1.8" id="QQ2-1-61">bigfoot</a></span> +<br />   <span class="subsubsectionToc" >9.1.9 <a +href="#x1-620009.1.9" id="QQ2-1-62">chappg</a></span> +<br />   <span class="subsubsectionToc" >9.1.10 <a +href="#x1-630009.1.10" id="QQ2-1-63">cite</a></span> +<br />   <span class="subsubsectionToc" >9.1.11 <a +href="#x1-640009.1.11" id="QQ2-1-64">count1to</a></span> +<br />   <span class="subsubsectionToc" >9.1.12 <a +href="#x1-650009.1.12" id="QQ2-1-65">dblaccnt</a></span> +<br />   <span class="subsubsectionToc" >9.1.13 <a +href="#x1-660009.1.13" id="QQ2-1-66">easyeqn</a></span> +<br />   <span class="subsubsectionToc" >9.1.14 <a +href="#x1-670009.1.14" id="QQ2-1-67">ellipsis</a></span> +<br />   <span class="subsubsectionToc" >9.1.15 <a +href="#x1-680009.1.15" id="QQ2-1-68">float</a></span> +<br />   <span class="subsubsectionToc" >9.1.16 <a +href="#x1-690009.1.16" id="QQ2-1-69">endnotes</a></span> +<br />   <span class="subsubsectionToc" >9.1.17 <a +href="#x1-700009.1.17" id="QQ2-1-70">foiltex</a></span> +<br />   <span class="subsubsectionToc" >9.1.18 <a +href="#x1-710009.1.18" id="QQ2-1-71">footnote</a></span> +<br />   <span class="subsubsectionToc" >9.1.19 <a +href="#x1-720009.1.19" id="QQ2-1-72">geometry</a></span> +<br />   <span class="subsubsectionToc" >9.1.20 <a +href="#x1-730009.1.20" id="QQ2-1-73">IEEEtran.cls</a></span> +<br />   <span class="subsubsectionToc" >9.1.21 <a +href="#x1-740009.1.21" id="QQ2-1-74">index</a></span> +<br />   <span class="subsubsectionToc" >9.1.22 <a +href="#x1-750009.1.22" id="QQ2-1-75">lastpage</a></span> +<br />   <span class="subsubsectionToc" >9.1.23 <a +href="#x1-760009.1.23" id="QQ2-1-76">linguex</a></span> +<br />   <span class="subsubsectionToc" >9.1.24 <a +href="#x1-770009.1.24" id="QQ2-1-77">ltabptch</a></span> +<br />   <span class="subsubsectionToc" >9.1.25 <a +href="#x1-780009.1.25" id="QQ2-1-78">mathenv</a></span> +<br />   <span class="subsubsectionToc" >9.1.26 <a +href="#x1-790009.1.26" id="QQ2-1-79">minitoc-hyper</a></span> +<br />   <span class="subsubsectionToc" >9.1.27 <a +href="#x1-800009.1.27" id="QQ2-1-80">multind</a></span> +<br />   <span class="subsubsectionToc" >9.1.28 <a +href="#x1-810009.1.28" id="QQ2-1-81">natbib</a></span> +<br />   <span class="subsubsectionToc" >9.1.29 <a +href="#x1-820009.1.29" id="QQ2-1-82">nomencl</a></span> +<br />   <span class="subsubsectionToc" >9.1.30 <a +href="#x1-830009.1.30" id="QQ2-1-83">parskip</a></span> +<br />   <span class="subsubsectionToc" >9.1.31 <a +href="#x1-840009.1.31" id="QQ2-1-84">prettyref</a></span> + +<br />   <span class="subsubsectionToc" >9.1.32 <a +href="#x1-850009.1.32" id="QQ2-1-85">ntheorem</a></span> +<br />   <span class="subsubsectionToc" >9.1.33 <a +href="#x1-860009.1.33" id="QQ2-1-86">setspace</a></span> +<br />   <span class="subsubsectionToc" >9.1.34 <a +href="#x1-870009.1.34" id="QQ2-1-87">sidecap</a></span> +<br />   <span class="subsubsectionToc" >9.1.35 <a +href="#x1-880009.1.35" id="QQ2-1-88">subfigure</a></span> +<br />   <span class="subsubsectionToc" >9.1.36 <a +href="#x1-890009.1.36" id="QQ2-1-89">titleref</a></span> +<br />   <span class="subsubsectionToc" >9.1.37 <a +href="#x1-900009.1.37" id="QQ2-1-90">tabularx</a></span> +<br />   <span class="subsubsectionToc" >9.1.38 <a +href="#x1-910009.1.38" id="QQ2-1-91">titlesec</a></span> +<br />   <span class="subsubsectionToc" >9.1.39 <a +href="#x1-920009.1.39" id="QQ2-1-92">ucs/utf8x.def</a></span> +<br />   <span class="subsubsectionToc" >9.1.40 <a +href="#x1-930009.1.40" id="QQ2-1-93">varioref</a></span> +<br />   <span class="subsubsectionToc" >9.1.41 <a +href="#x1-940009.1.41" id="QQ2-1-94">verse</a></span> +<br />   <span class="subsubsectionToc" >9.1.42 <a +href="#x1-950009.1.42" id="QQ2-1-95">vietnam</a></span> +<br />   <span class="subsubsectionToc" >9.1.43 <a +href="#x1-960009.1.43" id="QQ2-1-96">XeTeX</a></span> +<br /> <span class="sectionToc" >10 <a +href="#x1-9700010" id="QQ2-1-97">Limitations</a></span> +<br />  <span class="subsectionToc" >10.1 <a +href="#x1-9800010.1" id="QQ2-1-98">Wrapped/broken link support</a></span> +<br />  <span class="subsectionToc" >10.2 <a +href="#x1-9900010.2" id="QQ2-1-99">Links across pages</a></span> +<br />  <span class="subsectionToc" >10.3 <a +href="#x1-10000010.3" id="QQ2-1-100">Footnotes</a></span> +<br /> <span class="sectionToc" >11 <a +href="#x1-10100011" id="QQ2-1-101">Hints</a></span> +<br />  <span class="subsectionToc" >11.1 <a +href="#x1-10200011.1" id="QQ2-1-102">Spaces in option values</a></span> +<br />  <span class="subsectionToc" >11.2 <a +href="#x1-10300011.2" id="QQ2-1-103">Index with makeindex</a></span> +<br />  <span class="subsectionToc" >11.3 <a +href="#x1-10400011.3" id="QQ2-1-104">Warning "bookmark level for unknown <foobar> defaults to 0"</a></span> +<br />  <span class="subsectionToc" >11.4 <a +href="#x1-10500011.4" id="QQ2-1-105">Link anchors in figures</a></span> +<br />  <span class="subsectionToc" >11.5 <a +href="#x1-10600011.5" id="QQ2-1-106">Additional unicode characters in bookmarks and pdf information entries:</a></span> +<br />  <span class="subsectionToc" >11.6 <a +href="#x1-10700011.6" id="QQ2-1-107">Footnotes</a></span> +<br />  <span class="subsectionToc" >11.7 <a +href="#x1-10800011.7" id="QQ2-1-108">Subordinate counters</a></span> +<br /> <span class="sectionToc" >12 <a +href="#x1-10900012" id="QQ2-1-109">History and acknowledgments</a></span> +<br /> <span class="sectionToc" >13 <a +href="#x1-11000013" id="QQ2-1-110">GNU Free Documentation License</a></span> +<br />  <span class="subsectionToc" >13.1 <a +href="#x1-11200013.1" id="QQ2-1-112">Applicability and definitions</a></span> +<br />  <span class="subsectionToc" >13.2 <a +href="#x1-11300013.2" id="QQ2-1-113">Verbatim copying</a></span> +<br />  <span class="subsectionToc" >13.3 <a +href="#x1-11400013.3" id="QQ2-1-114">Copying in quantity</a></span> +<br />  <span class="subsectionToc" >13.4 <a +href="#x1-11500013.4" id="QQ2-1-115">Modifications</a></span> +<br />  <span class="subsectionToc" >13.5 <a +href="#x1-11600013.5" id="QQ2-1-116">Combining documents</a></span> +<br />  <span class="subsectionToc" >13.6 <a +href="#x1-11700013.6" id="QQ2-1-117">Collections of documents</a></span> +<br />  <span class="subsectionToc" >13.7 <a +href="#x1-11800013.7" id="QQ2-1-118">Aggregation with independent works</a></span> +<br />  <span class="subsectionToc" >13.8 <a +href="#x1-11900013.8" id="QQ2-1-119">Translation</a></span> +<br />  <span class="subsectionToc" >13.9 <a +href="#x1-12000013.9" id="QQ2-1-120">Termination</a></span> +<br />  <span class="subsectionToc" >13.10 <a +href="#x1-12100013.10" id="QQ2-1-121">Future revisions of this license</a></span> + </div> +<!--l. 187--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">1 </span> <a + id="x1-20001"></a>Introduction</h3> +<!--l. 189--><p class="noindent" >The package derives from, and builds on, the work of the Hyper<span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span> project, described at +<a +href="http://xxx.lanl.gov/hypertex/" class="url" ><span +class="ec-lmvtt-10">http://xxx.lanl.gov/hypertex/</span></a>. It extends the functionality of all the <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span> cross-referencing +commands (including the table of contents, bibliographies etc) to produce <span +class="ec-lmvtt-10">\special </span>commands which a +driver can turn into hypertext links; it also provides new commands to allow the user to write <span +class="ec-lmri-10">ad hoc</span> +hypertext links, including those to external documents and URLs. +<!--l. 197--><p class="indent" > This manual provides a brief overview of the <span +class="ec-lmss-10">hyperref </span>package. For more details, you should read the +additional documentation distributed with the package, as well as the complete documentation by +processing <span +class="ec-lmvtt-10">hyperref.dtx</span>. You should also read the chapter on <span +class="ec-lmss-10">hyperref </span>in <span +class="ec-lmri-10">The </span><span class="HoLogo-LaTeX"><span +class="ec-lmri-10">L</span><span class="HoLogo-a"><span +class="ec-lmri-10">A</span></span><span class="HoLogo-TeX"><span +class="ec-lmri-10">T</span><span class="HoLogo-e"><span +class="ec-lmri-10">E</span></span><span +class="ec-lmri-10">X</span></span></span> <span +class="ec-lmri-10">Web Companion</span>, +where you will find additional examples. + + +<!--l. 204--><p class="indent" > The Hyper<span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span> specification<span class="footnote-mark"><a +href="manual2.html#fn1x0"><sup class="textsuperscript">1</sup></a></span><a + id="x1-2001f1"></a> +says that conformant viewers/translators must recognize the following set of <span +class="ec-lmvtt-10">\special </span>constructs: + <dl class="description"><dt class="description"> +<span +class="ec-lmbx-10">href:</span> </dt><dd +class="description"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">html:<a</span><span +class="ec-lmvtt-10"> href</span><span +class="ec-lmvtt-10"> =</span><span +class="ec-lmvtt-10"> "href_string"></span></span></span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">name:</span> </dt><dd +class="description"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">html:<a</span><span +class="ec-lmvtt-10"> name</span><span +class="ec-lmvtt-10"> =</span><span +class="ec-lmvtt-10"> "name_string"></span></span></span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">end:</span> </dt><dd +class="description"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">html:</a></span></span></span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">image:</span> </dt><dd +class="description"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">html:<img</span><span +class="ec-lmvtt-10"> src</span><span +class="ec-lmvtt-10"> =</span><span +class="ec-lmvtt-10"> "href_string"></span></span></span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">base_name:</span> </dt><dd +class="description"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">html:<base</span><span +class="ec-lmvtt-10"> href</span><span +class="ec-lmvtt-10"> =</span><span +class="ec-lmvtt-10"> "href_string"></span></span></span></dd></dl> +<!--l. 216--><p class="indent" > The <span +class="ec-lmri-10">href</span>, <span +class="ec-lmri-10">name </span>and <span +class="ec-lmri-10">end </span>commands are used to do the basic hypertext operations of establishing links +between sections of documents. The <span +class="ec-lmri-10">image </span>command is intended (as with current HTML +viewers) to place an image of arbitrary graphical format on the page in the current location. +The <span +class="ec-lmri-10">base_name </span>command is be used to communicate to the DVI viewer the full (URL) +location of the current document so that files specified by relative URLs may be retrieved +correctly. +<!--l. 225--><p class="indent" > The <span +class="ec-lmri-10">href </span>and <span +class="ec-lmri-10">name </span>commands must be paired with an <span +class="ec-lmri-10">end </span>command later in the <span class="TEX">T<span +class="E">E</span>X</span> file—the +<span class="TEX">T<span +class="E">E</span>X</span> commands between the two ends of a pair form an <span +class="ec-lmri-10">anchor </span>in the document. In the case of an <span +class="ec-lmri-10">href</span> +command, the <span +class="ec-lmri-10">anchor </span>is to be highlighted in the <span +class="ec-lmri-10">DVI viewer</span>, and when clicked on will cause the scene to +shift to the destination specified by <span +class="ec-lmri-10">href_string</span>. The <span +class="ec-lmri-10">anchor </span>associated with a name command represents +a possible location to which other hypertext links may refer, either as local references (of +the form <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">href="#name_string"</span></span></span> with the <span +class="ec-lmri-10">name_string </span>identical to the one in the name +command) or as part of a URL (of the form <span +class="ec-lmri-10">URL#name_string</span>). Here <span +class="ec-lmri-10">href_string </span>is a valid URL +or local identifier, while <span +class="ec-lmri-10">name_string </span>could be any string at all: the only caveat is that ‘<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">"</span></span></span>’ +characters should be escaped with a backslash (<span +class="lmsy-10">\</span>), and if it looks like a URL name it may cause +problems. +<!--l. 241--><p class="indent" > However, the drivers intended to produce <span +class="ec-lmri-10">only </span>PDF use literal PostScript or PDF <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> +commands. The commands are defined in configuration files for different drivers, selected by package +options; at present, the following drivers are supported: + <dl class="description"><dt class="description"> +<span +class="ec-lmbx-10">hypertex</span> </dt><dd +class="description">DVI processors conforming to the Hyper<span class="TEX">T<span +class="E">E</span>X</span> guidelines (i.e. <span +class="ec-lmss-10">xdvi</span>, <span +class="ec-lmss-10">dvips </span>(with the <span +class="ec-lmss-10">-z</span> + option), <span +class="ec-lmss-10">Oz</span><span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span>, and <span +class="ec-lmss-10">Textures</span>) + </dd><dt class="description"> +<span +class="ec-lmbx-10">dvips</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands tailored for <span +class="ec-lmss-10">dvips</span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">dvipsone</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands tailored for <span +class="ec-lmss-10">dvipsone</span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">ps2pdf</span> </dt><dd +class="description">a special case of output suitable for processing by earlier versions of Ghostscript’s PDF + writer; this is basically the same as that for <span +class="ec-lmss-10">dvips</span>, but a few variations remained before + version 5.21 + + + </dd><dt class="description"> +<span +class="ec-lmbx-10">tex4ht</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands for use with <span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span><span +class="ec-lmss-10">4ht</span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">pdftex</span> </dt><dd +class="description">pdf<span class="TEX">T<span +class="E">E</span>X</span>, Hàn Thê´ Thành’s <span class="TEX">T<span +class="E">E</span>X</span> variant that writes PDF directly + </dd><dt class="description"> +<span +class="ec-lmbx-10">luatex</span> </dt><dd +class="description">lua<span class="TEX">T<span +class="E">E</span>X</span>, Unicode <span class="TEX">T<span +class="E">E</span>X</span> variant that writes PDF directly + </dd><dt class="description"> +<span +class="ec-lmbx-10">dvipdfm</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands for Mark Wicks’ DVI to PDF driver <span +class="ec-lmss-10">dvipdfm</span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">dvipdfmx</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands for driver <span +class="ec-lmss-10">dvipdfmx</span>, a successor of <span +class="ec-lmss-10">dvipdfm</span> + </dd><dt class="description"> +<span +class="ec-lmbx-10">dviwindo</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands that Y&Y’s Windows previewer interprets as hypertext + jumps within the previewer + </dd><dt class="description"> +<span +class="ec-lmbx-10">vtex</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands that MicroPress’ HTML and PDF-producing <span class="TEX">T<span +class="E">E</span>X</span> variants + interpret as hypertext jumps within the previewer + </dd><dt class="description"> +<span +class="ec-lmbx-10">textures</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands that <span +class="ec-lmss-10">Textures </span>interprets as hypertext jumps within the + previewer + </dd><dt class="description"> +<span +class="ec-lmbx-10">xetex</span> </dt><dd +class="description">produces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands for Xe<span class="TEX">T<span +class="E">E</span>X</span></dd></dl> +<!--l. 267--><p class="indent" > Output from <span +class="ec-lmss-10">dvips </span>or <span +class="ec-lmss-10">dvipsone </span>must be processed using Acrobat Distiller to obtain a PDF +file.<span class="footnote-mark"><a +href="manual3.html#fn2x0"><sup class="textsuperscript">2</sup></a></span><a + id="x1-2002f2"></a> +The result is generally preferable to that produced by using the <span +class="ec-lmss-10">hypertex </span>driver, and then +processing with <span +class="ec-lmss-10">dvips -z</span>, but the DVI file is not portable. The main advantage of using the +Hyper<span class="TEX">T<span +class="E">E</span>X</span> <span +class="ec-lmvtt-10">\special </span>commands is that you can also use the document in hypertext DVI viewers, such as +<span +class="ec-lmss-10">xdvi</span>. + <dl class="description"><dt class="description"> +<span +class="ec-lmbx-10">driverfallback</span> </dt><dd +class="description">If a driver is not given and cannot be autodetected, then use the driver option, given as + value to this option <span +class="ec-lmss-10">driverfallback</span>. Example: + <div class="quote"> + <!--l. 283--><p class="noindent" ><span +class="ec-lmvtt-10">driverfallback=dvipdfm</span></div> + <!--l. 285--><p class="noindent" >Autodetected drivers (<span +class="ec-lmss-10">pdftex</span>, <span +class="ec-lmss-10">xetex</span>, <span +class="ec-lmss-10">vtex</span>, <span +class="ec-lmss-10">vtexpdfmark</span>) are recognized from within <span class="TEX">T<span +class="E">E</span>X</span> and + therefore cannot be given as value to option <span +class="ec-lmss-10">driverfallback</span>. However a DVI driver program is run + after the <span class="TEX">T<span +class="E">E</span>X</span> run is finished. Thus it cannot be detected at <span class="TEX">T<span +class="E">E</span>X</span> macro level. Then package + <span +class="ec-lmss-10">hyperref </span>uses the driver, given by <span +class="ec-lmss-10">driverfallback</span>. If the driver is already specified or can be + autodetected, then option <span +class="ec-lmss-10">driverfallback </span>is ignored.</dd></dl> + + + <h3 class="sectionHead"><span class="titlemark">2 </span> <a + id="x1-30002"></a>Implicit behavior</h3> +<!--l. 298--><p class="noindent" >This package can be used with more or less any normal <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> document by specifying in the +document preamble + + + <div class="verbatim" id="verbatim-1"> +\usepackage{hyperref} +</div> +<!--l. 303--><p class="nopar" > +<!--l. 305--><p class="indent" > Make sure it comes <span +class="ec-lmri-10">last </span>of your loaded packages, to give it a fighting chance of not being over-written, +since its job is to redefine many <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> commands. Hopefully you will find that all cross-references +work correctly as hypertext. For example, <span +class="ec-lmvtt-10">\section </span>commands will produce a bookmark and a link, +whereas <span +class="ec-lmvtt-10">\section* </span>commands will only show links when paired with a corresponding <span +class="ec-lmvtt-10">\addcontentsline</span> +command. +<!--l. 313--><p class="indent" > In addition, the <span +class="ec-lmvtt-10">hyperindex </span>option (see below) attempts to make items in the index by hyperlinked +back to the text, and the option <span +class="ec-lmvtt-10">backref </span>inserts extra ‘back’ links into the bibliography for each entry. +Other options control the appearance of links, and give extra control over PDF output. For example, +<span +class="ec-lmvtt-10">colorlinks</span>, as its name well implies, colors the links instead of using boxes; this is the option used in this +document. +<!--l. 322--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">3 </span> <a + id="x1-40003"></a>Package options</h3> +<!--l. 324--><p class="noindent" >All user-configurable aspects of <span +class="ec-lmss-10">hyperref </span>are set using a single ‘key=value’ scheme (using the <span +class="ec-lmss-10">keyval</span> +package) with the key <span +class="ec-lmvtt-10">Hyp</span>. The options can be set either in the optional argument to the +<span +class="ec-lmvtt-10">\usepackage </span>command, or using the <span +class="ec-lmvtt-10">\hypersetup </span>macro. When the package is loaded, a file +<span +class="ec-lmvtt-10">hyperref.cfg </span>is read if it can be found, and this is a convenient place to set options on a site-wide +basis. +<!--l. 332--><p class="indent" > Note however that some options (for example <span +class="ec-lmvtt-10">unicode</span>) can only be used as packge options, and not +in <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypersetup</span></span></span> as the option settings are processed as the package is read. +<!--l. 336--><p class="indent" > As an example, the behavior of a particular file could be controlled by: + <ul class="itemize1"> + <li class="itemize">a site-wide <span +class="ec-lmvtt-10">hyperref.cfg </span>setting up the look of links, adding backreferencing, and setting a + PDF display default: + + + <div class="verbatim" id="verbatim-2"> + \hypersetup{backref, +  <br />pdfpagemode=FullScreen, +  <br />colorlinks=true} +</div> + <!--l. 346--><p class="nopar" > + </li> + <li class="itemize">A global option in the file, which is passed down to <span +class="ec-lmss-10">hyperref</span>: + + + <div class="verbatim" id="verbatim-3"> + \documentclass[dvips]{article} +</div> + <!--l. 353--><p class="nopar" > + </li> + <li class="itemize">File-specific options in the <span +class="ec-lmvtt-10">\usepackage </span>commands, which override the ones set in + <span +class="ec-lmvtt-10">hyperref.cfg</span>: + + + <div class="verbatim" id="verbatim-4"> + \usepackage[colorlinks=false]{hyperref} +  <br />\hypersetup{pdftitle={A Perfect Day}} +</div> + <!--l. 361--><p class="nopar" ></li></ul> +<!--l. 364--><p class="indent" > As seen in the previous example, information entries (pdftitle, pdfauthor, …) should be set after the +package is loaded. Otherwise <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> expands the values of these options prematurely. Also +<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> strips spaces in options. Especially option ‘pdfborder’ requires some care. Curly braces protect +the value, if given as package option. They are not necessary in <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypersetup</span></span></span>. + + + <div class="verbatim" id="verbatim-5"> +\usepackage[pdfborder={0 0 0}]{hyperref} + <br />\hypersetup{pdfborder=0 0 0} +</div> +<!--l. 374--><p class="nopar" > +<!--l. 376--><p class="indent" > Package ‘kvoptions-patch’ patches <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> to make it aware of key value options and to prevent +premature value expansions. +<!--l. 379--><p class="indent" > Some options can be given at any time, but many are restricted: before <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\begin{document}</span></span></span>, only in +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\usepackage[...]{hyperref}</span></span></span>, before first use, etc. +<!--l. 383--><p class="indent" > In the key descriptions that follow, many options do not need a value, as they default to the value +true if used. These are the ones classed as ‘boolean’. The values true and false can always be specified, +however. +<!--l. 387--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.1 </span> <a + id="x1-50003.1"></a>General options</h4> +<!--l. 389--><p class="noindent" >Firstly, the options to specify general behavior and page size. +<!--l. 392--><p class="noindent" > +<a + id="x1-5001r1"></a> <!--l. 393--><div class="longtable"> <table id="TBL-2" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-2-1g"><col +id="TBL-2-1"><col +id="TBL-2-2"><col +id="TBL-2-3"><col +id="TBL-2-4"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1" +class="td11"> <span +class="ec-lmvtt-10">draft </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-4" +class="td11"> all hypertext options are turned off </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1" +class="td11"> <span +class="ec-lmvtt-10">final </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-4" +class="td11"> all hypertext options are turned on </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1" +class="td11"> <span +class="ec-lmvtt-10">debug </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-4" +class="td11"> extra diagnostic messages are printed in </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-4" +class="td11"> the log file </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-1" +class="td11"> <span +class="ec-lmvtt-10">verbose </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-4" +class="td11"> same as debug </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-1" +class="td11"> <span +class="ec-lmvtt-10">implicit </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-4" +class="td11"> redefines <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> internals </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-7-1" +class="td11"> <span +class="ec-lmvtt-10">setpagesize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-7-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-7-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-7-4" +class="td11"> sets page size by special driver commands </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-8-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-9-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-10-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-2-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-11-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-11-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-11-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-11-4" +class="td11"></td></tr> + </table></div> +<!--l. 402--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a + id="x1-60003.2"></a>Options for destination names</h4> +<!--l. 404--><p class="noindent" >Destinations names (also anchor, target or link names) are internal names that identify a position on a +page in the document. They are used in link targets for inner document links or the bookmarks, for +example. +<!--l. 409--><p class="indent" > Usually anchor are set, if <span +class="ec-lmvtt-10">\refstepcounter </span>is called. Thus there is a counter name and value. Both are +used to construct the destination name. By default the counter value follows the counter name separated +by a dot. Example for the fourth chapter: + <div class="quote"> + <!--l. 415--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">chapter.4</span></span></span></div> +<!--l. 417--><p class="noindent" >This scheme is used by: + <dl class="description"><dt class="description"> +<span +class="ec-lmvtk-10">\autoref</span> </dt><dd +class="description">displays the description label for the reference depending on the counter name. + + </dd><dt class="description"> +<span +class="ec-lmvtk-10">\hyperpage</span> </dt><dd +class="description">is used by the index to get page links. Page anchor setting (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pageanchor</span></span></span>) must not + be turned off.</dd></dl> +<!--l. 426--><p class="indent" > It is very important that the destination names are unique, because two destinations must not share +the same name. The counter value <span +class="ec-lmvtt-10">\the<counter> </span>is not always unique for the counter. For example, +table and figures can be numbered inside the chapter without having the chapter number in their +number. Therefore <span +class="ec-lmss-10">hyperref </span>has introduced <span +class="ec-lmvtt-10">\theH<counter> </span>that allows a unique counter value without +messing up with the appearance of the counter number. For example, the number of the +second table in the third chapter might be printed as <span +class="ec-lmvtt-10">2</span>, the result of <span +class="ec-lmvtt-10">\thetable</span>. But the +destination name <span +class="ec-lmvtt-10">table.2.4 </span>is unique because it has used <span +class="ec-lmvtt-10">\theHtable </span>that gives <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">2.4</span></span></span> in this +case. +<!--l. 439--><p class="indent" > Often the user do not need to set <span +class="ec-lmvtt-10">\theH<counter></span>. Defaults for standard cases (chapter, …) are +provided. And after <span +class="ec-lmss-10">hyperref </span>is loaded, new counters with parent counters also define <span +class="ec-lmvtt-10">\theH<counter></span> +automatically, if <span +class="ec-lmvtt-10">\newcounter</span>, <span +class="ec-lmvtt-10">\@addtoreset </span>or <span +class="ec-lmvtt-10">\numberwithin </span>of package <span +class="ec-lmss-10">amsmath </span>are +used. +<!--l. 445--><p class="indent" > Usually problems with duplicate destination names can be solved by an appropriate definition of +<span +class="ec-lmvtt-10">\theH<counter></span>. If option <span +class="ec-lmvtt-10">hypertexnames </span>is disabled, then a unique artificial number is used instead of +the counter value. In case of page anchors the absolute page anchor is used. With option <span +class="ec-lmvtt-10">plainpages </span>the +page anchors use the arabic form. In both latter cases <span +class="ec-lmvtt-10">\hyperpage </span>for index links is affected and might +not work properly. +<!--l. 453--><p class="indent" > If an unnumbered entity gets an anchor (starred forms of chapters, sections, …) or <span +class="ec-lmvtt-10">\phantomsection </span>is +used, then the dummy counter name <span +class="ec-lmvtt-10">section* </span>and an artificial unique number is used. +<!--l. 458--><p class="indent" > If the final PDF file is going to be merged with another file, than the destination names might clash, +because both documents might contain <span +class="ec-lmvtt-10">chapter.1 </span>or <span +class="ec-lmvtt-10">page.1</span>. Also <span +class="ec-lmss-10">hyperref </span>sets anchor with name +<span +class="ec-lmvtt-10">Doc-Start </span>at the begin of the document. This can be resolved by redefining <span +class="ec-lmvtt-10">\HyperDestNameFilter</span>. +Package <span +class="ec-lmss-10">hyperref </span>calls this macro each time, it uses a destination name. The macro must be expandable +and expects the destination name as only argument. As example, the macro is redefined to add a prefix +to all destination names: + <div class="quote"> + + + <div class="verbatim" id="verbatim-6"> +\renewcommand*{\HyperDestNameFilter}[1]{\jobname-#1} +</div> + <!--l. 471--><p class="nopar" ></div> +<!--l. 473--><p class="noindent" >In document <span +class="ec-lmvtt-10">docA </span>the destination name <span +class="ec-lmvtt-10">chapter.2 </span>becomes <span +class="ec-lmvtt-10">docA-chapter.2</span>. +<!--l. 476--><p class="indent" > Destination names can also be used from the outside in URIs(, if the driver has not removed or +changed them), for example: + <div class="quote"> + + + <div class="verbatim" id="verbatim-7"> +http://somewhere/path/file.pdf#nameddest=chapter.4 +</div> + <!--l. 481--><p class="nopar" ></div> +<!--l. 483--><p class="noindent" >However using a number seems unhappy. If another chapter is added before, the number changes. But it is +very difficult to pass a new name for the destination to the anchor setting process that is usually +deep hidden in the internals. The first name of <span +class="ec-lmvtt-10">\label </span>after the anchor setting seems a good +approximation: + <div class="quote"> + + + <div class="verbatim" id="verbatim-8"> +  \section{Introduction} + <br />  \label{intro} +</div> + <!--l. 492--><p class="nopar" ></div> +<!--l. 494--><p class="noindent" >Option <span +class="ec-lmvtt-10">destlabel </span>checks for each <span +class="ec-lmvtt-10">\label</span>, if there is a new destination name active and replaces the +destination name by the label name. Because the destination name is already in use because of the +anchor setting, the new name is recorded in the <span +class="ec-lmvtt-10">.aux </span>file and used in the subsequent <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span> +run. The renaming is done by a redefinition of <span +class="ec-lmvtt-10">\HyperDestNameFilter</span>. That leaves the old +destination names intact (e.g., they are needed for <span +class="ec-lmvtt-10">\autoref</span>). This redefinition is also available as +<span +class="ec-lmvtt-10">\HyperDestLabelReplace</span>, thus that an own redefinition can use it. The following example also adds a +prefix for <span +class="ec-lmri-10">all </span>destination names: + <div class="quote"> + + + <div class="verbatim" id="verbatim-9"> +\renewcommand*{\HyperDestNameFilter}[1]{% + <br />  \jobname-\HyperDestLabelReplace{#1}% + <br />} +</div> + <!--l. 509--><p class="nopar" ></div> +<!--l. 511--><p class="noindent" >The other case that only files prefixed that do not have a corresponding <span +class="ec-lmvtt-10">\label </span>is more complicate, because +<span +class="ec-lmvtt-10">\HyperDestLabelReplace </span>needs the unmodified destination name as argument. This is solved by an +expandable string test (<span +class="ec-lmvtt-10">\pdfstrcmp </span>of pdf<span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span> or <span +class="ec-lmvtt-10">\strcmp </span>of <span class="HoLogo-XeTeX"><span class="HoLogo-Xe">X<span class="HoLogo-e">Ǝ</span></span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>, package <span +class="ec-lmss-10">pdftexcmds </span>also supports +Lua<span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span>): + <div class="quote"> + + + <div class="verbatim" id="verbatim-10"> +\usepackage{pdftexcmds} + <br />\makeatletter + <br />\renewcommand*{\HyperDestNameFilter}[1]{% + <br />  \ifcase\pdf@strcmp{#1}{\HyperDestLabelReplace{#1}} % + <br />    \jobname-#1% + <br />  \else + <br />    \HyperDestLabelReplace{#1}% + <br />  \fi + <br />} + <br />\makeatother +</div> + <!--l. 529--><p class="nopar" ></div> +<!--l. 532--><p class="indent" > With option <span +class="ec-lmvtt-10">destlabel </span>destinations can also named manually, if the destination is not yet +renamed: + <div class="quote"> + <!--l. 535--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\HyperDestRename{</span></span></span><span +class="lmsy-10">⟨</span><span +class="ec-lmvtto-10">destination</span><span +class="lmsy-10">⟩</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="lmsy-10">⟨</span><span +class="ec-lmvtto-10">newname</span><span +class="lmsy-10">⟩</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span></div> +<!--l. 538--><p class="indent" > Hint: Anchors can also be named and set by <span +class="ec-lmvtt-10">\hypertarget</span>. +<!--l. 541--><p class="noindent" > +<a + id="x1-6001r2"></a> <!--l. 542--><div class="longtable"> <table id="TBL-3" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-3-1g"><col +id="TBL-3-1"><col +id="TBL-3-2"><col +id="TBL-3-3"><col +id="TBL-3-4"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1" +class="td11"> <span +class="ec-lmvtt-10">destlabel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-4" +class="td11"> destinations are named by first <span +class="ec-lmvtt-10">\label </span></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-4" +class="td11"> after anchor creation </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1" +class="td11"> <span +class="ec-lmvtt-10">hypertexnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-4" +class="td11"> use guessable names for links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1" +class="td11"> <span +class="ec-lmvtt-10">naturalnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-4" +class="td11"> use <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span>-computed names for links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-1" +class="td11"> <span +class="ec-lmvtt-10">plainpages </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-4" +class="td11"> Forces page anchors to be named by the Arabic form </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-4" +class="td11"> of the page number, rather than the formatted form. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-7-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-8-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-9-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-10-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-3-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-11-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-11-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-11-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-11-4" +class="td11"></td></tr> + </table></div> +<!--l. 550--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.3 </span> <a + id="x1-70003.3"></a>Configuration options</h4> +<!--l. 552--><p class="noindent" > +<a + id="x1-7001r3"></a> <!--l. 553--><div class="longtable"> <table id="TBL-4" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-4-1g"><col +id="TBL-4-1"><col +id="TBL-4-2"><col +id="TBL-4-3"><col +id="TBL-4-4"></colgroup> + + +<tr + style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1" +class="td11"> <span +class="ec-lmvtt-10">raiselinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-4-1-4" +class="td11"> + <!--l. 553--><p class="noindent" >In the hypertex driver, the height of links is + normally calculated by the driver as simply + the base line of contained text; this options + forces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> commands to reflect the real + height of the link (which could contain a + graphic) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1" +class="td11"> <span +class="ec-lmvtt-10">breaklinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-4-2-4" +class="td11"> + <!--l. 556--><p class="noindent" >Allows link text to break across lines; since + this cannot be accommodated in PDF, it is + only set true by default if the pdftex driver is + used. This makes links on multiple lines into + different PDF links to the same target. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1" +class="td11"> <span +class="ec-lmvtt-10">pageanchor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-4-3-4" +class="td11"> + <!--l. 559--><p class="noindent" >Determines whether every page is given an + implicit anchor at the top left corner. If this is + turned off, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\printindex</span></span></span> will not contain valid + hyperlinks. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-1" +class="td11"> <span +class="ec-lmvtt-10">nesting </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-4-4-4" +class="td11"> + <!--l. 562--><p class="noindent" >Allows links to be nested; no drivers currently + support this. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-7-1" +class="td11"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-4-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-8-1" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-8-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-8-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-4-8-4" +class="td11"></td></tr> + </table></div> +<!--l. 565--><p class="indent" > Note for option <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">breaklinks</span></span></span>: The correct value is automatically set according to the driver features. It +can be overwritten for drivers that do not support broken links. However, at any case, the link area will +be wrong and displaced. +<!--l. 570--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.4 </span> <a + id="x1-80003.4"></a>Backend drivers</h4> +<!--l. 572--><p class="noindent" >If no driver is specified, the package tries to find a driver in the following order: + <ol class="enumerate1" > + <li + class="enumerate" id="x1-8002x1">Autodetection, some <span class="TEX">T<span +class="E">E</span>X</span> processors can be detected at <span class="TEX">T<span +class="E">E</span>X</span> macro level (pdf<span class="TEX">T<span +class="E">E</span>X</span>, + Xe<span class="TEX">T<span +class="E">E</span>X</span>, V<span class="TEX">T<span +class="E">E</span>X</span>). + </li> + <li + class="enumerate" id="x1-8004x2">Option <span +class="ec-lmss-10">driverfallback</span>. If this option is set, its value is taken as driver option. + </li> + <li + class="enumerate" id="x1-8006x3">Macro <span +class="ec-lmvtt-10">\Hy@defaultdriver</span>. The macro takes a driver file name (without file extension). + </li> + <li + class="enumerate" id="x1-8008x4">Package default is <span +class="ec-lmss-10">hypertex</span>.</li></ol> +<!--l. 583--><p class="noindent" >Many distributions are using a driver file <span +class="ec-lmvtt-10">hypertex.cfg </span>that define <span +class="ec-lmvtt-10">\Hy@defaultdriver </span>with <span +class="ec-lmvtt-10">hdvips</span>. This +is recommended because driver <span +class="ec-lmss-10">dvips </span>provides much more features than <span +class="ec-lmss-10">hypertex </span>for PDF +generation. +<a + id="x1-8009r4"></a> <!--l. 589--><div class="longtable"> <table id="TBL-5" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-5-1g"><col +id="TBL-5-1"><col +id="TBL-5-2"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1" +class="td01"><span +class="ec-lmvtt-10">driverfallback </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-1-2" +class="td10"> + <!--l. 589--><p class="noindent" >Its value is used as driver option </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-5-2-2" +class="td10"> + <!--l. 590--><p class="noindent" >if the driver is not given or autodetected. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-1" +class="td01"><span +class="ec-lmvtt-10">dvipdfm </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-3-2" +class="td10"> + <!--l. 591--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the <span +class="ec-lmss-10">dvipdfm </span>driver. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-1" +class="td01"><span +class="ec-lmvtt-10">dvipdfmx </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-4-2" +class="td10"> + <!--l. 592--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the <span +class="ec-lmss-10">dvipdfmx </span>driver. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-1" +class="td01"><span +class="ec-lmvtt-10">dvips </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-5-2" +class="td10"> + <!--l. 593--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the <span +class="ec-lmss-10">dvips </span>driver. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-6-1" +class="td01"><span +class="ec-lmvtt-10">dvipsone </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-6-2" +class="td10"> + <!--l. 594--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the <span +class="ec-lmss-10">dvipsone </span>driver. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-7-1" +class="td01"><span +class="ec-lmvtt-10">dviwindo </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-7-2" +class="td10"> + <!--l. 595--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the <span +class="ec-lmss-10">dviwindo </span>Windows previewer. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-8-1" +class="td01"><span +class="ec-lmvtt-10">hypertex </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-8-2" +class="td10"> + <!--l. 596--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the Hyper<span class="TEX">T<span +class="E">E</span>X</span>-compliant drivers. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-9-1" +class="td01"><span +class="ec-lmvtt-10">latex2html </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-9-2" +class="td10"> + <!--l. 597--><p class="noindent" >Redefines a few macros for compatibility with <span +class="ec-lmss-10">latex2html</span>. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-10-1" +class="td01"><span +class="ec-lmvtt-10">nativepdf </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-10-2" +class="td10"> + <!--l. 598--><p class="noindent" >An alias for <span +class="ec-lmss-10">dvips</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-11-1" +class="td01"><span +class="ec-lmvtt-10">pdfmark </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-11-2" +class="td10"> + <!--l. 599--><p class="noindent" >An alias for <span +class="ec-lmss-10">dvips</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-12-1" +class="td01"><span +class="ec-lmvtt-10">pdftex </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-12-2" +class="td10"> + <!--l. 600--><p class="noindent" >Sets up <span +class="ec-lmss-10">hyperref </span>for use with the <span +class="ec-lmss-10">pdftex </span>program. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-13-1" +class="td01"><span +class="ec-lmvtt-10">ps2pdf </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-13-2" +class="td10"> + <!--l. 601--><p class="noindent" >Redefines a few macros for compatibility with Ghostscript’s PDF writer, + otherwise identical to <span +class="ec-lmss-10">dvips</span>. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-14-1" +class="td01"><span +class="ec-lmvtt-10">tex4ht </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-14-2" +class="td10"> + <!--l. 604--><p class="noindent" >For use with <span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span><span +class="ec-lmss-10">4ht</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-15-1" +class="td01"><span +class="ec-lmvtt-10">textures </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-15-2" +class="td10"> + <!--l. 605--><p class="noindent" >For use with <span +class="ec-lmss-10">Textures</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-16-1" +class="td01"><span +class="ec-lmvtt-10">vtex </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-16-2" +class="td10"> + <!--l. 606--><p class="noindent" >For use with MicroPress’ <span +class="ec-lmss-10">VTeX</span>; the PDF and HTML backends are detected + automatically. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-17-1" +class="td01"><span +class="ec-lmvtt-10">vtexpdfmark </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-17-2" +class="td10"> + <!--l. 608--><p class="noindent" >For use with <span +class="ec-lmss-10">VTeX</span>’s PostScript backend. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-18-1" +class="td01"><span +class="ec-lmvtt-10">xetex </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-18-2" +class="td10"> + <!--l. 609--><p class="noindent" >For use with Xe<span class="TEX">T<span +class="E">E</span>X</span>(using backend for dvipdfm). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-19-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-20-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-21-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-5-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-22-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-5-22-2" +class="td10"></td></tr> + </table></div> +<!--l. 613--><p class="indent" > If you use <span +class="ec-lmss-10">dviwindo</span>, you may need to redefine the macro <span +class="ec-lmvtt-10">\wwwbrowser </span>(the default is +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">C:\netscape\netscape</span></span></span>) to tell <span +class="ec-lmss-10">dviwindo </span>what program to launch. Thus, users of Internet Explorer might +add something like this to hyperref.cfg: + + + <div class="verbatim" id="verbatim-11"> +\renewcommand{\wwwbrowser}{C:\string\Program\space + <br />  Files\string\Plus!\string\Microsoft\space + <br />  Internet\string\iexplore.exe} +</div> +<!--l. 622--><p class="nopar" > +<!--l. 624--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.5 </span> <a + id="x1-90003.5"></a>Extension options</h4> +<a + id="x1-9001r5"></a> <!--l. 626--><div class="longtable"> <table id="TBL-6" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-6-1g"><col +id="TBL-6-1"><col +id="TBL-6-2"><col +id="TBL-6-3"><col +id="TBL-6-4"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1" +class="td01"><span +class="ec-lmvtt-10">extension </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2" +class="td11"> text </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-1-4" +class="td10"> + <!--l. 626--><p class="noindent" >Set the file extension (e.g. <span +class="ec-lmss-10">dvi</span>) + which will be appended to file links + created if you use the <span +class="ec-lmss-10">xr </span>package. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1" +class="td01"><span +class="ec-lmvtt-10">hyperfigures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-2-4" +class="td10"> + <!--l. 629--><p class="noindent" > </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1" +class="td01"><span +class="ec-lmvtt-10">backref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-2" +class="td11"> text </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-3-4" +class="td10"> + <!--l. 629--><p class="noindent" >Adds ‘backlink’ text to the end + of each item in the bibliography, + as a list of section numbers. This + can only work properly <span +class="ec-lmri-10">if </span>there is + a blank line after each <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\bibitem</span></span></span>. + Supported values are <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">section</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">slide</span></span></span>, + <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">page</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">none</span></span></span>, or <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">false</span></span></span>. If no value is + given, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">section</span></span></span> is taken as default. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1" +class="td01"><span +class="ec-lmvtt-10">pagebackref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-4-4" +class="td10"> + <!--l. 633--><p class="noindent" >Adds ‘backlink’ text to the end of + each item in the bibliography, as a + list of page numbers. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1" +class="td01"><span +class="ec-lmvtt-10">hyperindex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-5-4" +class="td10"> + <!--l. 635--><p class="noindent" >Makes the page numbers of index + entries into hyperlinks. Relays on + unique page anchors (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pageanchor</span></span></span>, + …) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-6-1" +class="td01"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pageanchors</span></span></span> <span +class="ec-lmvtt-10">and </span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">plainpages=false</span></span></span><span +class="ec-lmvtt-10">. </span></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-7-1" +class="td01"><span +class="ec-lmvtt-10">hyperfootnotes </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-7-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-7-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-7-4" +class="td10"> + <!--l. 638--><p class="noindent" >Makes the footnote marks into + hyperlinks to the footnote text. + Easily broken … </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-8-1" +class="td01"><span +class="ec-lmvtt-10">encap </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-8-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-8-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-8-4" +class="td10"> + <!--l. 640--><p class="noindent" >Sets encap character for hyperindex</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-9-1" +class="td01"><span +class="ec-lmvtt-10">linktoc </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-9-2" +class="td11"> text </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-9-3" +class="td11"> <span +class="ec-lmri-10">section </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-9-4" +class="td10"> + <!--l. 641--><p class="noindent" >make text (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">section</span></span></span>), page number + (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">page</span></span></span>), both (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">all</span></span></span>) or nothing (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">none</span></span></span>) + be link on TOC, LOF and LOT </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-10-1" +class="td01"><span +class="ec-lmvtt-10">linktocpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-10-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-10-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-10-4" +class="td10"> + <!--l. 642--><p class="noindent" >make page number, not text, be link + on TOC, LOF and LOT </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-6-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-11-1" +class="td01"><span +class="ec-lmvtt-10">breaklinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-11-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-11-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-11-4" +class="td10"> + <!--l. 643--><p class="noindent" >allow links to break over lines by + making links over multiple lines into + PDF links to the same target </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-12-1" +class="td01"><span +class="ec-lmvtt-10">colorlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-12-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-12-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-12-4" +class="td10"> + <!--l. 645--><p class="noindent" >Colors the text of links and anchors. + The colors chosen depend on the + the type of link. At present the + only types of link distinguished are + citations, page references, URLs, + local file references, and other links. + Unlike colored boxes, the colored + text remains when printing. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-13-1" +class="td01"><span +class="ec-lmvtt-10">linkcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-13-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-13-3" +class="td11"> <span +class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-13-4" +class="td10"> + <!--l. 650--><p class="noindent" >Color for normal internal links. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-14-1" +class="td01"><span +class="ec-lmvtt-10">anchorcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-14-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-14-3" +class="td11"> <span +class="ec-lmri-10">black </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-14-4" +class="td10"> + <!--l. 651--><p class="noindent" >Color for anchor text. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-15-1" +class="td01"><span +class="ec-lmvtt-10">citecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-15-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-15-3" +class="td11"> <span +class="ec-lmri-10">green </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-15-4" +class="td10"> + <!--l. 652--><p class="noindent" >Color for bibliographical citations in + text. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-16-1" +class="td01"><span +class="ec-lmvtt-10">filecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-16-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-16-3" +class="td11"> <span +class="ec-lmri-10">cyan </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-16-4" +class="td10"> + <!--l. 653--><p class="noindent" >Color for URLs which open local + files. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-17-1" +class="td01"><span +class="ec-lmvtt-10">menucolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-17-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-17-3" +class="td11"> <span +class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-17-4" +class="td10"> + <!--l. 654--><p class="noindent" >Color for Acrobat menu items. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-18-1" +class="td01"><span +class="ec-lmvtt-10">runcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-18-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-18-3" +class="td11"> <span +class="ec-lmri-10">filecolor </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-18-4" +class="td10"> + <!--l. 655--><p class="noindent" >Color for run links (launch + annotations). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-19-1" +class="td01"><span +class="ec-lmvtt-10">urlcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-19-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-19-3" +class="td11"> <span +class="ec-lmri-10">magenta </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-19-4" +class="td10"> + <!--l. 656--><p class="noindent" >Color for linked URLs. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-20-1" +class="td01"><span +class="ec-lmvtt-10">allcolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-20-2" +class="td11"> color </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-20-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-20-4" +class="td10"> + <!--l. 657--><p class="noindent" >Set all color options (without border + and field options). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-21-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-21-4" +class="td10"></td></tr> +<tr + style="vertical-align:baseline;" id="TBL-6-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-1" +class="td01"><span +class="ec-lmvtt-10">frenchlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-22-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-22-4" +class="td10"> + <!--l. 658--><p class="noindent" >Use small caps instead of color for + links. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-23-1" +class="td01"><span +class="ec-lmvtt-10">hidelinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-23-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-23-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-6-23-4" +class="td10"> + <!--l. 659--><p class="noindent" >Hide links (removing color and + border). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-24-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-25-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-26-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-27-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-6-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-28-1" +class="td01"> </td></tr> + </table></div> +<!--l. 662--><p class="noindent" >Note that all color names must be defined before use, following the normal system of the standard +<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> <span +class="ec-lmss-10">color </span>package. +<!--l. 665--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.6 </span> <a + id="x1-100003.6"></a>PDF-specific display options</h4> +<a + id="x1-10001r6"></a> <!--l. 667--><div class="longtable"> <table id="TBL-7" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-7-1g"><col +id="TBL-7-1"><col +id="TBL-7-2"><col +id="TBL-7-3"><col +id="TBL-7-4"></colgroup> + + +<tr + style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1" +class="td01"><span +class="ec-lmvtt-10">bookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-1-4" +class="td10"> + <!--l. 667--><p class="noindent" >A set of Acrobat bookmarks are written, in a + manner similar to the table of contents, requiring + two passes of <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span>. Some postprocessing of + the bookmark file (file extension <span +class="ec-lmvtt-10">.out</span>) may + be needed to translate <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> codes, since + bookmarks must be written in PDFEncoding. To + aid this process, the <span +class="ec-lmvtt-10">.out </span>file is not rewritten + by <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> if it is edited to contain a line + <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\let\WriteBookmarks\relax</span></span></span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1" +class="td01"><span +class="ec-lmvtt-10">bookmarksopen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-2-4" +class="td10"> + <!--l. 673--><p class="noindent" >If Acrobat bookmarks are requested, show them + with all the subtrees expanded. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1" +class="td01"><span +class="ec-lmvtt-10">bookmarksopenlevel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-2" +class="td11"> parameter </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-7-3-4" +class="td10"> + <!--l. 675--><p class="noindent" >level (<span +class="ec-lmvtt-10">\maxdimen</span>) to which bookmarks are open</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1" +class="td01"><span +class="ec-lmvtt-10">bookmarksnumbered </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-4-4" +class="td10"> + <!--l. 676--><p class="noindent" >If Acrobat bookmarks are requested, include + section numbers. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1" +class="td01"><span +class="ec-lmvtt-10">bookmarkstype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-2" +class="td11"> text </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-3" +class="td11"> <span +class="ec-lmri-10">toc </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-5-4" +class="td10"> + <!--l. 677--><p class="noindent" >to specify which ‘toc’ file to mimic </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-1" +class="td01"><span +class="ec-lmvtt-10">CJKbookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-6-4" +class="td10"> + <!--l. 679--><p class="noindent" >This option should be used to produce CJK + bookmarks. Package <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">hyperref</span></span></span> supports both + normal and preprocessed mode of the <span +class="ec-lmss-10">CJK</span> + package; during the creation of bookmarks, + it simply replaces CJK’s macros with special + versions which expand to the corresponding + character codes. Note that without the ‘unicode’ + option of hyperref you get PDF files which + actually violate the PDF specification because + non-Unicode character codes are used – some + PDF readers localized for CJK languages (most + notably Acroread itself) support this. Also note + that option ‘CJKbookmarks’ cannot be used + together with option ‘unicode’. + <!--l. 691--><p class="noindent" >No mechanism is provided to + translate non-Unicode bookmarks to Unicode; for + portable PDF documents only Unicode encoding + should be used. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-7-1" +class="td01"><span +class="ec-lmvtt-10">pdfhighlight </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-7-2" +class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-7-3" +class="td11"> <span +class="ec-lmri-10">/I </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-7-4" +class="td10"> + <!--l. 694--><p class="noindent" >How link buttons behave when selected; /I is + for inverse (the default); the other possibilities + are /N (no effect), /O (outline), and /P (inset + highlighting). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-8-1" +class="td01"><span +class="ec-lmvtt-10">citebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-8-2" +class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-8-3" +class="td11"> <span +class="ec-lmri-10">0 1 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-8-4" +class="td10"> + <!--l. 697--><p class="noindent" >The color of the box around citations </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-9-1" +class="td01"><span +class="ec-lmvtt-10">filebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-9-2" +class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-9-3" +class="td11"> <span +class="ec-lmri-10">0 .5 .5 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-9-4" +class="td10"> + <!--l. 698--><p class="noindent" >The color of the box around links to files </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-10-1" +class="td01"><span +class="ec-lmvtt-10">linkbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-10-2" +class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-10-3" +class="td11"> <span +class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-10-4" +class="td10"> + <!--l. 699--><p class="noindent" >The color of the box around normal links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-11-1" +class="td01"><span +class="ec-lmvtt-10">menubordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-11-2" +class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-11-3" +class="td11"> <span +class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-11-4" +class="td10"> + <!--l. 700--><p class="noindent" >The color of the box around Acrobat menu links</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-12-1" +class="td01"><span +class="ec-lmvtt-10">urlbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-12-2" +class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-12-3" +class="td11"> <span +class="ec-lmri-10">0 1 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-12-4" +class="td10"> + <!--l. 701--><p class="noindent" >The color of the box around links to URLs </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-13-1" +class="td01"><span +class="ec-lmvtt-10">runbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-13-2" +class="td11"> RGB color </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-13-3" +class="td11"> <span +class="ec-lmri-10">0 .7 .7 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-13-4" +class="td10"> + <!--l. 702--><p class="noindent" >Color of border around ‘run’ links </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-7-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-14-1" +class="td01"><span +class="ec-lmvtt-10">allbordercolors </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-14-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-14-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-7-14-4" +class="td10"> + <!--l. 703--><p class="noindent" >Set all border color options </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-15-1" +class="td01"><span +class="ec-lmvtt-10">pdfborder </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-15-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-15-3" +class="td11"> <span +class="ec-lmri-10">0 0 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-15-4" +class="td10"> + <!--l. 704--><p class="noindent" >The style of box around links; defaults to a box + with lines of 1pt thickness, but the colorlinks + option resets it to produce no border. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-16-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-17-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-18-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-7-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-19-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-19-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-19-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-7-19-4" +class="td10"></td></tr> + </table></div> +<!--l. 708--><p class="noindent" >Note that the color of link borders can be specified <span +class="ec-lmri-10">only </span>as 3 numbers in the range 0..1, giving an RGB +color. You cannot use colors defined in <span class="TEX">T<span +class="E">E</span>X</span>. Since version 6.76a this is no longer true. Especially with +the help of package <span +class="ec-lmss-10">xcolor </span>the usual color specifications of package <span +class="ec-lmss-10">(x)color </span>can be used. For further +information see description of package <span +class="ec-lmss-10">hycolor</span>. +<!--l. 715--><p class="indent" > The bookmark commands are stored in a file called <span +class="ec-lmri-10">jobname</span><span +class="ec-lmvtt-10">.out</span>. The files is not processed by +<span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> so any markup is passed through. You can postprocess this file as needed; as an aid +for this, the <span +class="ec-lmvtt-10">.out </span>file is not overwritten on the next <span class="TEX">T<span +class="E">E</span>X</span> run if it is edited to contain the +line + + + <div class="verbatim" id="verbatim-12"> +\let\WriteBookmarks\relax +</div> +<!--l. 722--><p class="nopar" > +<!--l. 724--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.7 </span> <a + id="x1-110003.7"></a>PDF display and information options</h4> +<a + id="x1-11001r7"></a> <!--l. 726--><div class="longtable"> <table id="TBL-8" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-8-1g"><col +id="TBL-8-1"><col +id="TBL-8-2"><col +id="TBL-8-3"><col +id="TBL-8-4"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-1" +class="td01"><span +class="ec-lmvtt-10">baseurl </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-1-2" +class="td11"> + <!--l. 726--><p class="noindent" >URL </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-1-4" +class="td10"> + <!--l. 726--><p class="noindent" >Sets the base URL of the PDF document </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagemode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-2-2" +class="td11"> + <!--l. 727--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-2-4" +class="td10"> + <!--l. 727--><p class="noindent" >Determines how the file is opening in + Acrobat; the possibilities are <span +class="ec-lmvtt-10">UseNone</span>, + <span +class="ec-lmvtt-10">UseThumbs </span>(show thumbnails), <span +class="ec-lmvtt-10">UseOutlines</span> + (show bookmarks), <span +class="ec-lmvtt-10">FullScreen</span>, <span +class="ec-lmvtt-10">UseOC </span>(PDF + 1.5), and <span +class="ec-lmvtt-10">UseAttachments </span>(PDF 1.6). If no + mode if explicitly chosen, but the bookmarks + option is set, <span +class="ec-lmvtt-10">UseOutlines </span>is used. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-1" +class="td01"><span +class="ec-lmvtt-10">pdftitle </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-3-2" +class="td11"> + <!--l. 732--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-3-4" +class="td10"> + <!--l. 732--><p class="noindent" >Sets the document information Title field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-1" +class="td01"><span +class="ec-lmvtt-10">pdfauthor </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-4-2" +class="td11"> + <!--l. 733--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-4-4" +class="td10"> + <!--l. 733--><p class="noindent" >Sets the document information Author field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-1" +class="td01"><span +class="ec-lmvtt-10">pdfsubject </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-5-2" +class="td11"> + <!--l. 734--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-5-4" +class="td10"> + <!--l. 734--><p class="noindent" >Sets the document information Subject field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-1" +class="td01"><span +class="ec-lmvtt-10">pdfcreator </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-6-2" +class="td11"> + <!--l. 735--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-6-4" +class="td10"> + <!--l. 735--><p class="noindent" >Sets the document information Creator field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-7-1" +class="td01"><span +class="ec-lmvtt-10">addtopdfproducer </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-7-2" +class="td11"> + <!--l. 736--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-7-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-7-4" +class="td10"> + <!--l. 736--><p class="noindent" >Adds additional text to the document + information Producer field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-8-1" +class="td01"><span +class="ec-lmvtt-10">pdfkeywords </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-8-2" +class="td11"> + <!--l. 737--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-8-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-8-4" +class="td10"> + <!--l. 737--><p class="noindent" >Sets the document information Keywords field</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-9-1" +class="td01"><span +class="ec-lmvtt-10">pdftrapped </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-9-2" +class="td11"> + <!--l. 738--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-9-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-9-4" +class="td10"> + <!--l. 738--><p class="noindent" >Sets the document information Trapped entry.</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-10-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-10-2" +class="td11"> + <!--l. 739--><p class="noindent" > </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-10-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-10-4" +class="td10"> + <!--l. 739--><p class="noindent" >Possible values are <span +class="ec-lmvtt-10">True</span>, <span +class="ec-lmvtt-10">False </span>and <span +class="ec-lmvtt-10">Unknown</span>.</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-11-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-11-2" +class="td11"> + <!--l. 740--><p class="noindent" > </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-11-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-11-4" +class="td10"> + <!--l. 740--><p class="noindent" >An empty value means, the entry is not set. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-12-1" +class="td01"><span +class="ec-lmvtt-10">pdfinfo </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-12-2" +class="td11"> + <!--l. 741--><p class="noindent" >key + value + list </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-12-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-12-4" +class="td10"> + <!--l. 741--><p class="noindent" >Alternative interface for setting the document + information. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-13-1" +class="td01"><span +class="ec-lmvtt-10">pdfview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-13-2" +class="td11"> + <!--l. 743--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-13-3" +class="td11"> <span +class="ec-lmri-10">XYZ </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-13-4" +class="td10"> + <!--l. 743--><p class="noindent" >Sets the default PDF ‘view’ for each link </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-14-1" +class="td01"><span +class="ec-lmvtt-10">pdfstartpage </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-14-2" +class="td11"> + <!--l. 744--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-14-3" +class="td11"> <span +class="ec-lmri-10">1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-14-4" +class="td10"> + <!--l. 744--><p class="noindent" >Determines on which page the PDF file is + opened. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-15-1" +class="td01"><span +class="ec-lmvtt-10">pdfstartview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-15-2" +class="td11"> + <!--l. 745--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-15-3" +class="td11"> <span +class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-15-4" +class="td10"> + <!--l. 745--><p class="noindent" >Set the startup page view </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-16-1" +class="td01"><span +class="ec-lmvtt-10">pdfremotestartview </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-16-2" +class="td11"> + <!--l. 746--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-16-3" +class="td11"> <span +class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-16-4" +class="td10"> + <!--l. 746--><p class="noindent" >Set the startup page view of remote PDF files</td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-8-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-17-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagescrop </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-17-2" +class="td11"> + <!--l. 747--><p class="noindent" >n + n + n + n </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-17-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-17-4" +class="td10"> + <!--l. 747--><p class="noindent" >Sets the default PDF crop box for pages. This + should be a set of four numbers </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-18-1" +class="td01"><span +class="ec-lmvtt-10">pdfcenterwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-18-2" +class="td11"> + <!--l. 748--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-18-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-18-4" +class="td10"> + <!--l. 748--><p class="noindent" >position the document window in the center + of the screen </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-19-1" +class="td01"><span +class="ec-lmvtt-10">pdfdirection </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-19-2" +class="td11"> + <!--l. 749--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-19-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-19-4" +class="td10"> + <!--l. 749--><p class="noindent" >direction setting </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-20-1" +class="td01"><span +class="ec-lmvtt-10">pdfdisplaydoctitle </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-20-2" +class="td11"> + <!--l. 750--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-20-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-20-4" +class="td10"> + <!--l. 750--><p class="noindent" >display document title instead of file name in + title bar </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-21-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-21-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-21-3" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-8-21-4" +class="td10"></td></tr> +<tr + style="vertical-align:baseline;" id="TBL-8-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-22-1" +class="td01"><span +class="ec-lmvtt-10">pdfduplex </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-22-2" +class="td11"> + <!--l. 752--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-22-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-22-4" +class="td10"> + <!--l. 752--><p class="noindent" >paper handling option for print dialog </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-23-1" +class="td01"><span +class="ec-lmvtt-10">pdffitwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-23-2" +class="td11"> + <!--l. 753--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-23-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-23-4" +class="td10"> + <!--l. 753--><p class="noindent" >resize document window to fit document size </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-24-1" +class="td01"><span +class="ec-lmvtt-10">pdflang </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-24-2" +class="td11"> + <!--l. 754--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-24-3" +class="td11"> <span +class="ec-lmri-10">relax </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-24-4" +class="td10"> + <!--l. 754--><p class="noindent" >PDF language identifier (RFC 3066) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-25-1" +class="td01"><span +class="ec-lmvtt-10">pdfmenubar </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-25-2" +class="td11"> + <!--l. 755--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-25-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-25-4" +class="td10"> + <!--l. 755--><p class="noindent" >make PDF viewer’s menu bar visible </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-26-1" +class="td01"><span +class="ec-lmvtt-10">pdfnewwindow </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-26-2" +class="td11"> + <!--l. 756--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-26-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-26-4" +class="td10"> + <!--l. 756--><p class="noindent" >make links that open another PDF file start a + new window </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-27-1" +class="td01"><span +class="ec-lmvtt-10">pdfnonfullscreenpagemode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-27-2" +class="td11"> + <!--l. 758--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-27-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-27-4" +class="td10"> + <!--l. 758--><p class="noindent" >page mode setting on exiting full-screen mode</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-28-1" +class="td01"><span +class="ec-lmvtt-10">pdfnumcopies </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-28-2" +class="td11"> + <!--l. 760--><p class="noindent" >integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-28-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-28-4" +class="td10"> + <!--l. 760--><p class="noindent" >number of printed copies </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-29-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagelayout </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-29-2" +class="td11"> + <!--l. 761--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-29-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-29-4" +class="td10"> + <!--l. 761--><p class="noindent" >set layout of PDF pages </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-30-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagelabels </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-30-2" +class="td11"> + <!--l. 762--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-30-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-30-4" +class="td10"> + <!--l. 762--><p class="noindent" >set PDF page labels </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-31-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagetransition </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-31-2" +class="td11"> + <!--l. 763--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-31-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-31-4" +class="td10"> + <!--l. 763--><p class="noindent" >set PDF page transition style </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-32-1" +class="td01"><span +class="ec-lmvtt-10">pdfpicktraybypdfsize </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-32-2" +class="td11"> + <!--l. 764--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-32-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-32-4" +class="td10"> + <!--l. 764--><p class="noindent" >set option for print dialog </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-33-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintarea </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-33-2" +class="td11"> + <!--l. 765--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-33-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-33-4" +class="td10"> + <!--l. 765--><p class="noindent" >set /PrintArea of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-34-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintclip </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-34-2" +class="td11"> + <!--l. 766--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-34-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-34-4" +class="td10"> + <!--l. 766--><p class="noindent" >set /PrintClip of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-35-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintpagerange </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-35-2" +class="td11"> + <!--l. 767--><p class="noindent" >n + n + (n + n)* </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-35-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-35-4" +class="td10"> + <!--l. 768--><p class="noindent" >set /PrintPageRange of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-36-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintscaling </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-36-2" +class="td11"> + <!--l. 770--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-36-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-36-4" +class="td10"> + <!--l. 770--><p class="noindent" >page scaling option for print dialog (option + /PrintScaling of viewer preferences, PDF 1.6); + valid values are <span +class="ec-lmvtt-10">None </span>and <span +class="ec-lmvtt-10">AppDefault</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-37-1" +class="td01"><span +class="ec-lmvtt-10">pdftoolbar </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-37-2" +class="td11"> + <!--l. 775--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-37-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-37-4" +class="td10"> + <!--l. 775--><p class="noindent" >make PDF toolbar visible </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-38-1" +class="td01"><span +class="ec-lmvtt-10">pdfviewarea </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-38-2" +class="td11"> + <!--l. 776--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-38-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-38-4" +class="td10"> + <!--l. 776--><p class="noindent" >set /ViewArea of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-39-1" +class="td01"><span +class="ec-lmvtt-10">pdfviewclip </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-39-2" +class="td11"> + <!--l. 777--><p class="noindent" >text </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-39-3" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-39-4" +class="td10"> + <!--l. 777--><p class="noindent" >set /ViewClip of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-40-1" +class="td01"><span +class="ec-lmvtt-10">pdfwindowui </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-40-2" +class="td11"> + <!--l. 778--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-40-3" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-40-4" +class="td10"> + <!--l. 778--><p class="noindent" >make PDF user interface elements visible </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-41-1" +class="td01"><span +class="ec-lmvtt-10">unicode </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-41-2" +class="td11"> + <!--l. 779--><p class="noindent" >boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-41-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-41-4" +class="td10"> + <!--l. 779--><p class="noindent" >Unicode encoded PDF strings </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-8-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-42-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-43-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-44-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-8-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-45-1" +class="td01"> </td></tr> + </table></div> +<!--l. 782--><p class="noindent" >Each link in Acrobat carries its own magnification level, which is set using PDF coordinate space, which +is not the same as <span class="TEX">T<span +class="E">E</span>X</span>’s. The unit is bp and the origin is in the lower left corner. See also <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypercalcbp</span></span></span> +that is explained on page <a +href="#x1-180004.2">46<!--tex4ht:ref: hypercalcbp --></a>. pdf<span class="TEX">T<span +class="E">E</span>X</span> works by supplying default values for <span +class="ec-lmvtt-10">XYZ </span>(horizontal <span +class="lmsy-10">×</span> +vertical <span +class="lmsy-10">× </span>zoom) and <span +class="ec-lmvtt-10">FitBH</span>. However, drivers using <span +class="ec-lmvtt-10">pdfmark </span>do not supply defaults, so +<span +class="ec-lmss-10">hyperref </span>passes in a value of -32768, which causes Acrobat to set (usually) sensible defaults. +The following are possible values for the <span +class="ec-lmvtt-10">pdfview</span>, <span +class="ec-lmvtt-10">pdfstartview </span>and <span +class="ec-lmvtt-10">pdfremotestartview</span> +parameters. +<a + id="x1-11002r8"></a> <!--l. 795--><div class="longtable"> <table id="TBL-9" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-9-1g"><col +id="TBL-9-1"><col +id="TBL-9-2"><col +id="TBL-9-3"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-1" +class="td01"><span +class="ec-lmvtt-10">XYZ </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-2" +class="td11"> <span +class="ec-lmri-10">left top zoom </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-1-3" +class="td10"> + <!--l. 795--><p class="noindent" >Sets a coordinate and a zoom factor. If any one + is null, the source link value is used. <span +class="ec-lmri-10">null null</span> + <span +class="ec-lmri-10">null </span>will give the same values as the current + page. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-1" +class="td01"><span +class="ec-lmvtt-10">Fit </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-9-2-3" +class="td10"> + <!--l. 797--><p class="noindent" >Fits the page to the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-1" +class="td01"><span +class="ec-lmvtt-10">FitH </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-2" +class="td11"> <span +class="ec-lmri-10">top </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-3-3" +class="td10"> + <!--l. 798--><p class="noindent" >Fits the width of the page to the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-1" +class="td01"><span +class="ec-lmvtt-10">FitV </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-2" +class="td11"> <span +class="ec-lmri-10">left </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-4-3" +class="td10"> + <!--l. 799--><p class="noindent" >Fits the height of the page to the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-1" +class="td01"><span +class="ec-lmvtt-10">FitR </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-2" +class="td11"> <span +class="ec-lmri-10">left bottom right top </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-5-3" +class="td10"> + <!--l. 800--><p class="noindent" >Fits the rectangle specified by the four + coordinates to the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-1" +class="td01"><span +class="ec-lmvtt-10">FitB </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-9-6-3" +class="td10"> + <!--l. 801--><p class="noindent" >Fits the page bounding box to the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-7-1" +class="td01"><span +class="ec-lmvtt-10">FitBH </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-7-2" +class="td11"> <span +class="ec-lmri-10">top </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-7-3" +class="td10"> + <!--l. 802--><p class="noindent" >Fits the width of the page bounding box to + the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-8-1" +class="td01"><span +class="ec-lmvtt-10">FitBV </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-8-2" +class="td11"> <span +class="ec-lmri-10">left </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-8-3" +class="td10"> + <!--l. 803--><p class="noindent" >Fits the height of the page bounding box to + the window. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-9-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-10-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-11-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-12-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-9-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-13-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-13-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-9-13-3" +class="td10"></td></tr> + </table></div> +<!--l. 806--><p class="indent" > The <span +class="ec-lmvtt-10">pdfpagelayout </span>can be one of the following values. +<a + id="x1-11003r9"></a> <!--l. 809--><div class="longtable"> <table id="TBL-10" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-10-1g"><col +id="TBL-10-1"><col +id="TBL-10-2"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-1" +class="td01"><span +class="ec-lmvtt-10">SinglePage </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-1-2" +class="td10"> + <!--l. 809--><p class="noindent" >Displays a single page; advancing flips the page </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-1" +class="td01"><span +class="ec-lmvtt-10">OneColumn </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-2-2" +class="td10"> + <!--l. 810--><p class="noindent" >Displays the document in one column; continuous scrolling. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-1" +class="td01"><span +class="ec-lmvtt-10">TwoColumnLeft </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-3-2" +class="td10"> + <!--l. 811--><p class="noindent" >Displays the document in two columns, odd-numbered pages to + the left. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-1" +class="td01"><span +class="ec-lmvtt-10">TwoColumnRight </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-4-2" +class="td10"> + <!--l. 812--><p class="noindent" >Displays the document in two columns, odd-numbered pages to + the right. </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-1" +class="td01"><span +class="ec-lmvtt-10">TwoPageLeft </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-5-2" +class="td10"> + <!--l. 813--><p class="noindent" >Displays two pages, odd-numbered pages to the left (since PDF + 1.5). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-6-1" +class="td01"><span +class="ec-lmvtt-10">TwoPageRight </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-6-2" +class="td10"> + <!--l. 814--><p class="noindent" >Displays two pages, odd-numbered pages to the right (since PDF + 1.5). </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-7-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-8-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-9-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-10-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-10-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-10-10-2" +class="td10"></td></tr> + </table></div> +<!--l. 817--><p class="indent" > Finally, the <span +class="ec-lmvtt-10">pdfpagetransition </span>can be one of the following values, where <span +class="ec-lmri-10">/Di </span>stands for direction of +motion in degrees, generally in 90<sup><span +class="lmsy7-">∘</span></sup> steps, <span +class="ec-lmri-10">/Dm </span>is a horizontal (<span +class="ec-lmvtt-10">/H</span>) or vertical (<span +class="ec-lmvtt-10">/V</span>) dimension +(e.g. <span +class="ec-lmvtt-10">Blinds /Dm /V</span>), and <span +class="ec-lmri-10">/M </span>is for motion, either in (<span +class="ec-lmvtt-10">/I</span>) or out (<span +class="ec-lmvtt-10">/O</span>). +<a + id="x1-11004r10"></a> <!--l. 825--><div class="longtable"> <table id="TBL-11" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-11-1g"><col +id="TBL-11-1"><col +id="TBL-11-2"><col +id="TBL-11-3"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-1" +class="td01"><span +class="ec-lmvtt-10">Blinds </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-2" +class="td11"> /Dm </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-3" +class="td10"> + <!--l. 825--><p class="noindent" >Multiple lines distributed evenly across the screen sweep + in the same direction to reveal the new page. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-1" +class="td01"><span +class="ec-lmvtt-10">Box </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-2" +class="td11"> /M </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-3" +class="td10"> + <!--l. 827--><p class="noindent" >A box sweeps in or out. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-1" +class="td01"><span +class="ec-lmvtt-10">Dissolve </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-11-3-3" +class="td10"> + <!--l. 828--><p class="noindent" >The page image dissolves in a piecemeal fashion to reveal + the new page. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-1" +class="td01"><span +class="ec-lmvtt-10">Glitter </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-2" +class="td11"> /Di </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-3" +class="td10"> + <!--l. 829--><p class="noindent" >Similar to Dissolve, except the effect sweeps across the + screen. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-1" +class="td01"><span +class="ec-lmvtt-10">Split </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-2" +class="td11"> /Dm /M </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-3" +class="td10"> + <!--l. 830--><p class="noindent" >Two lines sweep across the screen to reveal the new page.</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-6-1" +class="td01"><span +class="ec-lmvtt-10">Wipe </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-6-2" +class="td11"> /Di </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-3" +class="td10"> + <!--l. 831--><p class="noindent" >A single line sweeps across the screen to reveal the new + page. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-7-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-8-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-9-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-11-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-10-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-10-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-11-10-3" +class="td10"></td></tr> + </table></div> +<!--l. 834--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.8 </span> <a + id="x1-120003.8"></a>Option <span +class="ec-lmvtt-10">pdfinfo</span></h4> +<!--l. 836--><p class="noindent" >The information entries can be set using <span +class="ec-lmvtt-10">pdftitle</span>, <span +class="ec-lmvtt-10">pdfsubject</span>, …. Option <span +class="ec-lmvtt-10">pdfinfo </span>provides an alternative +interface. It takes a key value list. The key names are the names that appear in the PDF information +dictionary directly. Known keys such as <span +class="ec-lmvtt-10">Title</span>, <span +class="ec-lmvtt-10">Subject</span>, <span +class="ec-lmvtt-10">Trapped </span>and other are mapped to options +<span +class="ec-lmvtt-10">pdftitle</span>, <span +class="ec-lmvtt-10">subject</span>, <span +class="ec-lmvtt-10">trapped</span>, …Unknown keys are added to the information dictionary. Their values are text +strings (see PDF specification). Example: + <div class="quote"> + + + <div class="verbatim" id="verbatim-13"> +\hypersetup{ + <br />  pdfinfo={ + <br />    Title={My Title}, + <br />    Subject={My Subject}, + <br />    NewKey={Foobar}, + <br />    % ... + <br />  } + <br />} +</div> + <!--l. 855--><p class="nopar" ></div> +<!--l. 858--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">3.9 </span> <a + id="x1-130003.9"></a>Big alphabetical list</h4> +<!--l. 860--><p class="noindent" >The following is a complete listing of available options for <span +class="ec-lmss-10">hyperref</span>, arranged alphabetically. +<a + id="x1-13001r11"></a> <!--l. 864--><div class="longtable"> <table id="TBL-12" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-12-1g"><col +id="TBL-12-1"><col +id="TBL-12-2"><col +id="TBL-12-3"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-1" +class="td01"><span +class="ec-lmvtt-10">anchorcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-2" +class="td11"> <span +class="ec-lmri-10">black </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-1-3" +class="td10"> + <!--l. 864--><p class="noindent" >set color of anchors </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-1" +class="td01"><span +class="ec-lmvtt-10">backref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-2-3" +class="td10"> + <!--l. 865--><p class="noindent" >do bibliographical back references </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-1" +class="td01"><span +class="ec-lmvtt-10">baseurl </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-3" +class="td10"> + <!--l. 866--><p class="noindent" >set base URL for document </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-1" +class="td01"><span +class="ec-lmvtt-10">bookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-4-3" +class="td10"> + <!--l. 867--><p class="noindent" >make bookmarks </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-1" +class="td01"><span +class="ec-lmvtt-10">bookmarksnumbered </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-5-3" +class="td10"> + <!--l. 868--><p class="noindent" >put section numbers in bookmarks </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-1" +class="td01"><span +class="ec-lmvtt-10">bookmarksopen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-6-3" +class="td10"> + <!--l. 869--><p class="noindent" >open up bookmark tree </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-7-1" +class="td01"><span +class="ec-lmvtt-10">bookmarksopenlevel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-7-2" +class="td11"> <span +class="ec-lmvtt-10">\maxdimen </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-7-3" +class="td10"> + <!--l. 870--><p class="noindent" >level to which bookmarks are open </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-8-1" +class="td01"><span +class="ec-lmvtt-10">bookmarkstype </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-8-2" +class="td11"> <span +class="ec-lmri-10">toc </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-8-3" +class="td10"> + <!--l. 871--><p class="noindent" >to specify which ‘toc’ file to mimic </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-9-1" +class="td01"><span +class="ec-lmvtt-10">breaklinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-9-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-9-3" +class="td10"> + <!--l. 872--><p class="noindent" >allow links to break over lines </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-10-1" +class="td01"><span +class="ec-lmvtt-10">CJKbookmarks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-10-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-10-3" +class="td10"> + <!--l. 873--><p class="noindent" >to produce CJK bookmarks </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-11-1" +class="td01"><span +class="ec-lmvtt-10">citebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-11-2" +class="td11"> <span +class="ec-lmri-10">0 1 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-11-3" +class="td10"> + <!--l. 874--><p class="noindent" >color of border around cites </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-12-1" +class="td01"><span +class="ec-lmvtt-10">citecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-12-2" +class="td11"> <span +class="ec-lmri-10">green </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-12-3" +class="td10"> + <!--l. 875--><p class="noindent" >color of citation links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-13-1" +class="td01"><span +class="ec-lmvtt-10">colorlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-13-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-13-3" +class="td10"> + <!--l. 876--><p class="noindent" >color links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-14-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-14-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-14-3" +class="td10"> + <!--l. 877--><p class="noindent" >(<span +class="ec-lmss-10">tex4ht</span>, <span +class="ec-lmss-10">dviwindo</span>) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-15-1" +class="td01"><span +class="ec-lmvtt-10">debug </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-15-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-15-3" +class="td10"> + <!--l. 878--><p class="noindent" >provide details of anchors defined; same as + verbose </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-16-1" +class="td01"><span +class="ec-lmvtt-10">destlabel </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-16-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-16-3" +class="td10"> + <!--l. 879--><p class="noindent" >destinations are named by the first <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\label</span></span></span> + after the anchor creation </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-17-1" +class="td01"><span +class="ec-lmvtt-10">draft </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-17-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-17-3" +class="td10"> + <!--l. 880--><p class="noindent" >do not do any hyperlinking </td> + +</tr><tr + style="vertical-align:baseline;" id="TBL-12-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-18-1" +class="td01"><span +class="ec-lmvtt-10">dvipdfm </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-18-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-18-3" +class="td10"> + <!--l. 881--><p class="noindent" >use <span +class="ec-lmss-10">dvipdfm </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-19-1" +class="td01"><span +class="ec-lmvtt-10">dvipdfmx </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-19-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-19-3" +class="td10"> + <!--l. 882--><p class="noindent" >use <span +class="ec-lmss-10">dvipdfmx </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-20-1" +class="td01"><span +class="ec-lmvtt-10">dvips </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-20-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-20-3" +class="td10"> + <!--l. 883--><p class="noindent" >use <span +class="ec-lmss-10">dvips </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-21-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-21-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-21-3" +class="td10"></td></tr> +<tr + style="vertical-align:baseline;" id="TBL-12-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-22-1" +class="td01"><span +class="ec-lmvtt-10">dvipsone </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-22-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-22-3" +class="td10"> + <!--l. 884--><p class="noindent" >use <span +class="ec-lmss-10">dvipsone </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-23-1" +class="td01"><span +class="ec-lmvtt-10">dviwindo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-23-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-23-3" +class="td10"> + <!--l. 885--><p class="noindent" >use <span +class="ec-lmss-10">dviwindo </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-24-1" +class="td01"><span +class="ec-lmvtt-10">encap </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-24-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-24-3" +class="td10"> + <!--l. 886--><p class="noindent" >to set encap character for hyperindex </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-25-1" +class="td01"><span +class="ec-lmvtt-10">extension </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-25-2" +class="td11"> <span +class="ec-lmri-10">dvi </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-25-3" +class="td10"> + <!--l. 887--><p class="noindent" >suffix of linked files </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-26-1" +class="td01"><span +class="ec-lmvtt-10">filebordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-26-2" +class="td11"> <span +class="ec-lmri-10">0 .5 .5 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-26-3" +class="td10"> + <!--l. 888--><p class="noindent" >color of border around file links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-27-1" +class="td01"><span +class="ec-lmvtt-10">filecolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-27-2" +class="td11"> <span +class="ec-lmri-10">cyan </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-27-3" +class="td10"> + <!--l. 889--><p class="noindent" >color of file links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-28-1" +class="td01"><span +class="ec-lmvtt-10">final </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-28-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-28-3" +class="td10"> + <!--l. 890--><p class="noindent" >opposite of option draft </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-29-1" +class="td01"><span +class="ec-lmvtt-10">frenchlinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-29-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-29-3" +class="td10"> + <!--l. 891--><p class="noindent" >use small caps instead of color for links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-30-1" +class="td01"><span +class="ec-lmvtt-10">hyperfigures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-30-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-30-3" +class="td10"> + <!--l. 892--><p class="noindent" >make figures hyper links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-31-1" +class="td01"><span +class="ec-lmvtt-10">hyperfootnotes </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-31-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-31-3" +class="td10"> + <!--l. 893--><p class="noindent" >set up hyperlinked footnotes </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-32-1" +class="td01"><span +class="ec-lmvtt-10">hyperindex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-32-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-32-3" +class="td10"> + <!--l. 894--><p class="noindent" >set up hyperlinked indices </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-33-1" +class="td01"><span +class="ec-lmvtt-10">hypertex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-33-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-33-3" +class="td10"> + <!--l. 895--><p class="noindent" >use <span +class="ec-lmss-10">Hyper</span><span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span> backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-34-1" +class="td01"><span +class="ec-lmvtt-10">hypertexnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-34-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-34-3" +class="td10"> + <!--l. 896--><p class="noindent" >use guessable names for links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-35-1" +class="td01"><span +class="ec-lmvtt-10">implicit </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-35-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-35-3" +class="td10"> + <!--l. 897--><p class="noindent" >redefine <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> internals </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-36-1" +class="td01"><span +class="ec-lmvtt-10">latex2html </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-36-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-36-3" +class="td10"> + <!--l. 898--><p class="noindent" >use <span class="LATEX"><span +class="ec-lmss-10">L</span><span class="A"><span +class="ec-lmss-10">A</span></span><span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span></span><span +class="ec-lmss-10">2HTML </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-37-1" +class="td01"><span +class="ec-lmvtt-10">linkbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-37-2" +class="td11"> <span +class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-37-3" +class="td10"> + <!--l. 899--><p class="noindent" >color of border around links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-38-1" +class="td01"><span +class="ec-lmvtt-10">linkcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-38-2" +class="td11"> <span +class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-38-3" +class="td10"> + <!--l. 900--><p class="noindent" >color of links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-39-1" +class="td01"><span +class="ec-lmvtt-10">linktoc </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-39-2" +class="td11"> <span +class="ec-lmri-10">section </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-39-3" +class="td10"> + <!--l. 901--><p class="noindent" >make text be link on TOC, LOF and LOT </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-40-1" +class="td01"><span +class="ec-lmvtt-10">linktocpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-40-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-40-3" +class="td10"> + <!--l. 902--><p class="noindent" >make page number, not text, be link on TOC, + LOF and LOT </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-41-1" +class="td01"><span +class="ec-lmvtt-10">menubordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-41-2" +class="td11"> <span +class="ec-lmri-10">1 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-41-3" +class="td10"> + <!--l. 903--><p class="noindent" >color of border around menu links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-42-1" +class="td01"> </td></tr> +<tr + style="vertical-align:baseline;" id="TBL-12-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-43-1" +class="td01"><span +class="ec-lmvtt-10">menucolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-43-2" +class="td11"> <span +class="ec-lmri-10">red </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-43-3" +class="td10"> + <!--l. 904--><p class="noindent" >color for menu links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-44-1" +class="td01"><span +class="ec-lmvtt-10">nativepdf </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-44-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-44-3" +class="td10"> + <!--l. 905--><p class="noindent" >an alias for <span +class="ec-lmss-10">dvips</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-45-1" +class="td01"><span +class="ec-lmvtt-10">naturalnames </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-45-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-45-3" +class="td10"> + <!--l. 906--><p class="noindent" >use <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span>-computed names for links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-46-1" +class="td01"><span +class="ec-lmvtt-10">nesting </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-46-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-46-3" +class="td10"> + <!--l. 907--><p class="noindent" >allow nesting of links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-47-1" +class="td01"><span +class="ec-lmvtt-10">pageanchor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-47-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-47-3" +class="td10"> + <!--l. 908--><p class="noindent" >put an anchor on every page </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-48-1" +class="td01"><span +class="ec-lmvtt-10">pagebackref </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-48-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-48-3" +class="td10"> + <!--l. 909--><p class="noindent" >backreference by page number </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-49-1" +class="td01"><span +class="ec-lmvtt-10">pdfauthor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-49-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-49-3" +class="td10"> + <!--l. 910--><p class="noindent" >text for PDF Author field </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-12-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-50-1" +class="td01"><span +class="ec-lmvtt-10">pdfborder </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-50-2" +class="td11"> <span +class="ec-lmri-10">0 0 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-50-3" +class="td10"> + <!--l. 911--><p class="noindent" >width of PDF link border </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-51-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-51-2" +class="td11"> <span +class="ec-lmri-10">0 0 0 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-51-3" +class="td10"> + <!--l. 912--><p class="noindent" >(<span +class="ec-lmvtt-10">colorlinks)</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-52-1" +class="td01"><span +class="ec-lmvtt-10">pdfcenterwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-52-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-52-3" +class="td10"> + <!--l. 913--><p class="noindent" >position the document window in the center + of the screen </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-53-1" +class="td01"><span +class="ec-lmvtt-10">pdfcreator </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-53-2" +class="td11"> <span +class="ec-lmri-10">LaTeX with </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-53-3" +class="td10"> + <!--l. 914--><p class="noindent" >text for PDF Creator field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-54-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-54-2" +class="td11"> <span +class="ec-lmri-10">hyperref </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-54-3" +class="td10"> + <!--l. 916--><p class="noindent" > </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-55-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-55-1" +class="td01"><span +class="ec-lmvtt-10">pdfdirection </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-55-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-55-3" +class="td10"> + <!--l. 916--><p class="noindent" >direction setting </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-56-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-56-1" +class="td01"><span +class="ec-lmvtt-10">pdfdisplaydoctitle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-56-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-56-3" +class="td10"> + <!--l. 917--><p class="noindent" >display document title instead of file name in + title bar </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-57-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-57-1" +class="td01"><span +class="ec-lmvtt-10">pdfduplex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-57-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-57-3" +class="td10"> + <!--l. 919--><p class="noindent" >paper handling option for print dialog </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-58-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-58-1" +class="td01"><span +class="ec-lmvtt-10">pdffitwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-58-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-58-3" +class="td10"> + <!--l. 921--><p class="noindent" >resize document window to fit document size </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-59-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-59-1" +class="td01"><span +class="ec-lmvtt-10">pdfhighlight </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-59-2" +class="td11"> <span +class="ec-lmri-10">/I </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-59-3" +class="td10"> + <!--l. 922--><p class="noindent" >set highlighting of PDF links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-60-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-60-1" +class="td01"><span +class="ec-lmvtt-10">pdfinfo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-60-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-60-3" +class="td10"> + <!--l. 923--><p class="noindent" >alternative interface for setting document + information </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-61-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-61-1" +class="td01"><span +class="ec-lmvtt-10">pdfkeywords </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-61-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-61-3" +class="td10"> + <!--l. 924--><p class="noindent" >text for PDF Keywords field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-62-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-62-1" +class="td01"><span +class="ec-lmvtt-10">pdflang </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-62-2" +class="td11"> <span +class="ec-lmri-10">relax </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-62-3" +class="td10"> + <!--l. 925--><p class="noindent" >PDF language identifier (RFC 3066) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-63-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-63-1" +class="td01"> </td></tr> +<tr + style="vertical-align:baseline;" id="TBL-12-64-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-64-1" +class="td01"><span +class="ec-lmvtt-10">pdfmark </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-64-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-64-3" +class="td10"> + <!--l. 926--><p class="noindent" >an alias for <span +class="ec-lmss-10">dvips</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-65-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-65-1" +class="td01"><span +class="ec-lmvtt-10">pdfmenubar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-65-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-65-3" +class="td10"> + <!--l. 927--><p class="noindent" >make PDF viewer’s menu bar visible </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-66-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-66-1" +class="td01"><span +class="ec-lmvtt-10">pdfnewwindow </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-66-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-66-3" +class="td10"> + <!--l. 928--><p class="noindent" >make links that open another PDF </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-67-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-67-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-67-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-67-3" +class="td10"> + <!--l. 929--><p class="noindent" >file start a new window </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-68-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-68-1" +class="td01"><span +class="ec-lmvtt-10">pdfnonfullscreenpagemode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-68-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-68-3" +class="td10"> + <!--l. 931--><p class="noindent" >page mode setting on exiting full-screen mode</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-69-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-69-1" +class="td01"><span +class="ec-lmvtt-10">pdfnumcopies </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-69-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-69-3" +class="td10"> + <!--l. 933--><p class="noindent" >number of printed copies </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-70-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-70-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagelayout </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-70-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-70-3" +class="td10"> + <!--l. 934--><p class="noindent" >set layout of PDF pages </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-71-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-71-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagemode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-71-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-71-3" +class="td10"> + <!--l. 935--><p class="noindent" >set default mode of PDF display </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-72-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-72-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagelabels </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-72-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-72-3" +class="td10"> + <!--l. 936--><p class="noindent" >set PDF page labels </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-73-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-73-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagescrop </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-73-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-73-3" +class="td10"> + <!--l. 937--><p class="noindent" >set crop size of PDF document </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-74-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-74-1" +class="td01"><span +class="ec-lmvtt-10">pdfpagetransition </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-74-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-74-3" +class="td10"> + <!--l. 938--><p class="noindent" >set PDF page transition style </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-75-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-75-1" +class="td01"><span +class="ec-lmvtt-10">pdfpicktraybypdfsize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-75-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-75-3" +class="td10"> + <!--l. 940--><p class="noindent" >set option for print dialog </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-76-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-76-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintarea </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-76-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-76-3" +class="td10"> + <!--l. 941--><p class="noindent" >set /PrintArea of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-77-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-77-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintclip </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-77-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-77-3" +class="td10"> + <!--l. 942--><p class="noindent" >set /PrintClip of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-78-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-78-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintpagerange </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-78-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-78-3" +class="td10"> + <!--l. 943--><p class="noindent" >set /PrintPageRange of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-79-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-79-1" +class="td01"><span +class="ec-lmvtt-10">pdfprintscaling </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-79-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-79-3" +class="td10"> + <!--l. 944--><p class="noindent" >page scaling option for print dialog </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-12-80-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-80-1" +class="td01"><span +class="ec-lmvtt-10">pdfproducer </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-80-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-80-3" +class="td10"> + <!--l. 945--><p class="noindent" >text for PDF Producer field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-81-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-81-1" +class="td01"><span +class="ec-lmvtt-10">pdfremotestartview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-81-2" +class="td11"> <span +class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-81-3" +class="td10"> + <!--l. 946--><p class="noindent" >starting view of remote PDF documents </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-82-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-82-1" +class="td01"><span +class="ec-lmvtt-10">pdfstartpage </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-82-2" +class="td11"> <span +class="ec-lmri-10">1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-82-3" +class="td10"> + <!--l. 947--><p class="noindent" >page at which PDF document opens </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-83-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-83-1" +class="td01"><span +class="ec-lmvtt-10">pdfstartview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-83-2" +class="td11"> <span +class="ec-lmri-10">Fit </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-83-3" +class="td10"> + <!--l. 948--><p class="noindent" >starting view of PDF document </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-84-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-84-1" +class="td01"> </td></tr> +<tr + style="vertical-align:baseline;" id="TBL-12-85-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-85-1" +class="td01"><span +class="ec-lmvtt-10">pdfsubject </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-85-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-85-3" +class="td10"> + <!--l. 949--><p class="noindent" >text for PDF Subject field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-86-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-86-1" +class="td01"><span +class="ec-lmvtt-10">pdftex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-86-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-86-3" +class="td10"> + <!--l. 950--><p class="noindent" >use <span +class="ec-lmss-10">pdf</span><span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span> backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-87-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-87-1" +class="td01"><span +class="ec-lmvtt-10">pdftitle </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-87-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-87-3" +class="td10"> + <!--l. 951--><p class="noindent" >text for PDF Title field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-88-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-88-1" +class="td01"><span +class="ec-lmvtt-10">pdftoolbar </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-88-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-88-3" +class="td10"> + <!--l. 952--><p class="noindent" >make PDF toolbar visible </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-89-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-89-1" +class="td01"><span +class="ec-lmvtt-10">pdftrapped </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-89-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-89-3" +class="td10"> + <!--l. 953--><p class="noindent" >Sets the document information Trapped entry. + Possible values are <span +class="ec-lmvtt-10">True</span>, <span +class="ec-lmvtt-10">False </span>and <span +class="ec-lmvtt-10">Unknown</span>. + An empty value means, the entry is not set. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-90-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-90-1" +class="td01"><span +class="ec-lmvtt-10">pdfview </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-90-2" +class="td11"> <span +class="ec-lmri-10">XYZ </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-90-3" +class="td10"> + <!--l. 956--><p class="noindent" >PDF ‘view’ when on link traversal </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-91-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-91-1" +class="td01"><span +class="ec-lmvtt-10">pdfviewarea </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-91-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-91-3" +class="td10"> + <!--l. 957--><p class="noindent" >set /ViewArea of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-92-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-92-1" +class="td01"><span +class="ec-lmvtt-10">pdfviewclip </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-92-2" +class="td11"> <span +class="ec-lmri-10">empty </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-92-3" +class="td10"> + <!--l. 958--><p class="noindent" >set /ViewClip of viewer preferences </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-93-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-93-1" +class="td01"><span +class="ec-lmvtt-10">pdfwindowui </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-93-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-93-3" +class="td10"> + <!--l. 959--><p class="noindent" >make PDF user interface elements visible </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-94-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-94-1" +class="td01"><span +class="ec-lmvtt-10">plainpages </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-94-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-94-3" +class="td10"> + <!--l. 960--><p class="noindent" >do page number anchors as plain Arabic </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-95-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-95-1" +class="td01"><span +class="ec-lmvtt-10">ps2pdf </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-95-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-95-3" +class="td10"> + <!--l. 961--><p class="noindent" >use <span +class="ec-lmss-10">ps2pdf </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-96-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-96-1" +class="td01"><span +class="ec-lmvtt-10">raiselinks </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-96-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-96-3" +class="td10"> + <!--l. 962--><p class="noindent" >raise up links (for <span +class="ec-lmss-10">Hyper</span><span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span> backend) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-97-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-97-1" +class="td01"><span +class="ec-lmvtt-10">runbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-97-2" +class="td11"> <span +class="ec-lmri-10">0 .7 .7 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-97-3" +class="td10"> + <!--l. 963--><p class="noindent" >color of border around ‘run’ links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-98-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-98-1" +class="td01"><span +class="ec-lmvtt-10">runcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-98-2" +class="td11"> <span +class="ec-lmri-10">filecolor </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-98-3" +class="td10"> + <!--l. 964--><p class="noindent" >color of ‘run’ links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-99-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-99-1" +class="td01"><span +class="ec-lmvtt-10">setpagesize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-99-2" +class="td11"> <span +class="ec-lmri-10">true </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-99-3" +class="td10"> + <!--l. 965--><p class="noindent" >set page size by special driver commands </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-100-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-100-1" +class="td01"><span +class="ec-lmvtt-10">tex4ht </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-100-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-100-3" +class="td10"> + <!--l. 966--><p class="noindent" >use <span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span><span +class="ec-lmss-10">4ht </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-101-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-101-1" +class="td01"><span +class="ec-lmvtt-10">textures </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-101-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-101-3" +class="td10"> + <!--l. 967--><p class="noindent" >use <span +class="ec-lmss-10">Textures </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-102-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-102-1" +class="td01"><span +class="ec-lmvtt-10">unicode </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-102-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-102-3" +class="td10"> + <!--l. 968--><p class="noindent" >Unicode encoded pdf strings </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-103-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-103-1" +class="td01"><span +class="ec-lmvtt-10">urlbordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-103-2" +class="td11"> <span +class="ec-lmri-10">0 1 1 </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-103-3" +class="td10"> + <!--l. 969--><p class="noindent" >color of border around URL links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-104-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-104-1" +class="td01"><span +class="ec-lmvtt-10">urlcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-104-2" +class="td11"> <span +class="ec-lmri-10">magenta </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-104-3" +class="td10"> + <!--l. 970--><p class="noindent" >color of URL links </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-105-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-105-1" +class="td01"> </td></tr> +<tr + style="vertical-align:baseline;" id="TBL-12-106-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-106-1" +class="td01"><span +class="ec-lmvtt-10">verbose </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-106-2" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:normal; text-align:left;" id="TBL-12-106-3" +class="td10"> + <!--l. 971--><p class="noindent" >be chatty </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-107-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-107-1" +class="td01"><span +class="ec-lmvtt-10">vtex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-107-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-107-3" +class="td10"> + <!--l. 972--><p class="noindent" >use <span +class="ec-lmss-10">VTeX </span>backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-108-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-108-1" +class="td01"><span +class="ec-lmvtt-10">xetex </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-108-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-12-108-3" +class="td10"> + <!--l. 973--><p class="noindent" >use <span +class="ec-lmss-10">Xe</span><span class="TEX"><span +class="ec-lmss-10">T</span><span +class="E"><span +class="ec-lmss-10">E</span></span><span +class="ec-lmss-10">X</span></span> backend </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-109-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-109-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-110-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-110-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-111-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-111-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-112-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-112-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-12-113-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-113-1" +class="td01"> </td></tr> + </table></div> + +<!--l. 976--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">4 </span> <a + id="x1-140004"></a>Additional user macros</h3> +<!--l. 978--><p class="noindent" >If you need to make references to URLs, or write explicit links, the following low-level user macros are +provided: +<!--l. 981--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-13" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-13-1g"><col +id="TBL-13-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-1" +class="td11"> <span +class="ec-lmvtt-10">\href</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">options</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]</span></span></span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 985--><p class="noindent" >The <span +class="ec-lmri-10">text </span>is made a hyperlink to the <span +class="ec-lmri-10">URL</span>; this must be a full URL (relative to the base URL, if that is +defined). The special characters # and ˜ do <span +class="ec-lmri-10">not </span>need to be escaped in any way (unless the command is +used in the argument of another command). +<!--l. 990--><p class="indent" > The optional argument <span +class="ec-lmri-10">options </span>recognizes the hyperref options <span +class="ec-lmvtt-10">pdfremotestartview</span>, <span +class="ec-lmvtt-10">pdfnewwindow</span> +and the following key value options: + <dl class="description"><dt class="description"> +<span +class="ec-lmvtk-10">page</span><span +class="ec-lmbx-10">:</span> </dt><dd +class="description">Specifies the start page number of remote PDF documents. First page is <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">1</span></span></span>. + </dd><dt class="description"> +<span +class="ec-lmvtk-10">ismap</span><span +class="ec-lmbx-10">:</span> </dt><dd +class="description">Boolean key, if set to <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">true</span></span></span>, the URL should appended by the coordinates as query + parameters by the PDF viewer. + </dd><dt class="description"> +<span +class="ec-lmvtk-10">nextactionraw</span><span +class="ec-lmbx-10">:</span> </dt><dd +class="description">The value of key <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">/Next</span></span></span> of action dictionaries, see PDF specification.</dd></dl> +<!--l. 1003--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-14" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-14-1g"><col +id="TBL-14-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-1" +class="td11"> <span +class="ec-lmvtt-10">\url</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td></tr></table> </div></span> +<!--l. 1007--><p class="noindent" >Similar to <span +class="ec-lmvtt-10">\href</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmvtt-10">\nolinkurl</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}}</span></span></span>. Depending on the driver <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\href</span></span></span> also tries to detect the link +type. Thus the result can be a url link, file link, … +<!--l. 1012--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-15" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-15-1g"><col +id="TBL-15-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-1" +class="td11"> <span +class="ec-lmvtt-10">\nolinkurl</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td></tr></table> </div></span> +<!--l. 1016--><p class="noindent" >Write <span +class="ec-lmri-10">URL </span>in the same way as <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\url</span></span></span>, without creating a hyperlink. +<!--l. 1019--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-16" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-16-1g"><col +id="TBL-16-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hyperbaseurl</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1023--><p class="noindent" >A base <span +class="ec-lmri-10">URL </span>is established, which is prepended to other specified URLs, to make it easier to write +portable documents. +<!--l. 1026--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-17" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-17-1g"><col +id="TBL-17-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-17-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hyperimage</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">imageURL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1030--><p class="noindent" >The link to the image referenced by the URL is inserted, using <span +class="ec-lmri-10">text </span>as the anchor. +<!--l. 1033--><p class="indent" > For drivers that produce HTML, the image itself is inserted by the browser, with the <span +class="ec-lmri-10">text </span>being +ignored completely. + + +<!--l. 1036--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-18" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-18-1g"><col +id="TBL-18-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hyperdef</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">category</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1040--><p class="noindent" >A target area of the document (the <span +class="ec-lmri-10">text</span>) is marked, and given the name <span +class="ec-lmri-10">category.name</span> +<!--l. 1043--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-19" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-19-1g"><col +id="TBL-19-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hyperref</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">URL</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">category</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1047--><p class="noindent" ><span +class="ec-lmri-10">text </span>is made into a link to <span +class="ec-lmri-10">URL#category.name</span> +<!--l. 1049--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-20" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-20-1g"><col +id="TBL-20-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-20-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hyperref</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1053--><p class="noindent" ><span +class="ec-lmri-10">text </span>is made into a link to the same place as <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ref{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> would be linked. +<!--l. 1057--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-21" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-21-1g"><col +id="TBL-21-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-21-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hyperlink</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1060--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-22" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-22-1g"><col +id="TBL-22-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-22-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hypertarget</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1064--><p class="noindent" >A simple internal link is created with <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypertarget</span></span></span>, with two parameters of an anchor <span +class="ec-lmri-10">name</span>, and anchor +<span +class="ec-lmri-10">text</span>. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperlink</span></span></span> has two arguments, the name of a hypertext object defined somewhere by <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypertarget</span></span></span>, +and the <span +class="ec-lmri-10">text </span>which be used as the link on the page. +<!--l. 1070--><p class="indent" > Note that in HTML parlance, the <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperlink</span></span></span> command inserts a notional # in front of each link, +making it relative to the current testdocument; <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\href</span></span></span> expects a full URL. +<!--l. 1074--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-23" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-23-1g"><col +id="TBL-23-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-23-1-1" +class="td11"> <span +class="ec-lmvtt-10">\phantomsection </span></td> + </tr></table> </div></span> +<!--l. 1078--><p class="noindent" >This sets an anchor at this location. It works similar to <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypertarget{}{}</span></span></span> with an automatically chosen +anchor name. Often it is used in conjunction with <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\addcontentsline</span></span></span> for sectionlike things (index, +bibliography, preface). <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\addcontentsline</span></span></span> refers to the latest previous location where an anchor is set. +Example: + <div class="quote"> + + + <div class="verbatim" id="verbatim-14"> +\cleardoublepage + <br />\phantomsection + <br />\addcontentsline{toc}{chapter}{\indexname} + <br />\printindex +</div> + <!--l. 1091--><p class="nopar" ></div> +<!--l. 1093--><p class="noindent" >Now the entry in the table of contents (and bookmarks) for the index points to the start of the index page, +not to a location before this page. +<!--l. 1097--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-24" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-24-1g"><col +id="TBL-24-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-24-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-24-1-1" +class="td11"> <span +class="ec-lmvtt-10">\autoref</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td></tr></table> </div></span> +<!--l. 1101--><p class="noindent" >This is a replacement for the usual <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ref</span></span></span> command that places a contextual label in front of the reference. +This gives your users a bigger target to click for hyperlinks (e.g. ‘section 2’ instead of merely the number +‘2’). +<!--l. 1107--><p class="indent" > The label is worked out from the context of the original <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\label</span></span></span> command by <span +class="ec-lmss-10">hyperref </span>by using the +macros listed below (shown with their default values). The macros can be (re)defined in documents using +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\(re)newcommand</span></span></span>; note that some of these macros are already defined in the standard document +classes. The mixture of lowercase and uppercase initial letters is deliberate and corresponds to the +author’s practice. +<!--l. 1115--><p class="indent" > For each macro below, <span +class="ec-lmss-10">hyperref </span>checks <span +class="ec-lmvtt-10">\*autorefname </span>before <span +class="ec-lmvtt-10">\*name</span>. For instance, it looks for +<span +class="ec-lmvtt-10">\figureautorefname </span>before <span +class="ec-lmvtt-10">\figurename</span>. +<a + id="x1-14001r12"></a> <!--l. 1120--><div class="longtable"> <table id="TBL-25" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-25-1g"><col +id="TBL-25-1"><col +id="TBL-25-2"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-25-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-1-1" +class="td01"><span +class="ec-lmri-10">Macro </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-1-2" +class="td10"> + <!--l. 1120--><p class="noindent" ><span +class="ec-lmri-10">Default</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-2-1" +class="td01"><span +class="ec-lmvtt-10">\figurename </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-2-2" +class="td10"> + <!--l. 1121--><p class="noindent" >Figure </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-3-1" +class="td01"><span +class="ec-lmvtt-10">\tablename </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-3-2" +class="td10"> + <!--l. 1122--><p class="noindent" >Table </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-4-1" +class="td01"><span +class="ec-lmvtt-10">\partname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-4-2" +class="td10"> + <!--l. 1123--><p class="noindent" >Part </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-5-1" +class="td01"><span +class="ec-lmvtt-10">\appendixname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-5-2" +class="td10"> + <!--l. 1124--><p class="noindent" >Appendix </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-6-1" +class="td01"><span +class="ec-lmvtt-10">\equationname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-6-2" +class="td10"> + <!--l. 1125--><p class="noindent" >Equation </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-7-1" +class="td01"><span +class="ec-lmvtt-10">\Itemname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-7-2" +class="td10"> + <!--l. 1126--><p class="noindent" >item </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-8-1" +class="td01"><span +class="ec-lmvtt-10">\chaptername </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-8-2" +class="td10"> + <!--l. 1127--><p class="noindent" >chapter </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-9-1" +class="td01"><span +class="ec-lmvtt-10">\sectionname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-9-2" +class="td10"> + <!--l. 1128--><p class="noindent" >section </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-10-1" +class="td01"><span +class="ec-lmvtt-10">\subsectionname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-10-2" +class="td10"> + <!--l. 1129--><p class="noindent" >subsection </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-11-1" +class="td01"><span +class="ec-lmvtt-10">\subsubsectionname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-11-2" +class="td10"> + <!--l. 1130--><p class="noindent" >subsubsection </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-12-1" +class="td01"><span +class="ec-lmvtt-10">\paragraphname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-12-2" +class="td10"> + <!--l. 1131--><p class="noindent" >paragraph </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-13-1" +class="td01"><span +class="ec-lmvtt-10">\Hfootnotename </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-13-2" +class="td10"> + <!--l. 1132--><p class="noindent" >footnote </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-25-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-14-1" +class="td01"><span +class="ec-lmvtt-10">\AMSname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-14-2" +class="td10"> + <!--l. 1133--><p class="noindent" >Equation </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-15-1" +class="td01"><span +class="ec-lmvtt-10">\theoremname </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-15-2" +class="td10"> + <!--l. 1134--><p class="noindent" >Theorem </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-16-1" +class="td01"><span +class="ec-lmvtt-10">\page </span></td><td style="white-space:normal; text-align:left;" id="TBL-25-16-2" +class="td10"> + <!--l. 1135--><p class="noindent" >page </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-17-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-18-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-19-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-20-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-25-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-21-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-25-21-2" +class="td10"></td></tr> + </table></div> +<!--l. 1138--><p class="indent" > Example for a redefinition if <span +class="ec-lmss-10">babel </span>is used: + <div class="quote"> + + + <div class="verbatim" id="verbatim-15"> +\usepackage[ngerman]{babel} + <br />\addto\extrasngerman{% + <br />  \def\subsectionautorefname{Unterkapitel}% + <br />} +</div> + <!--l. 1145--><p class="nopar" ></div> +<!--l. 1148--><p class="indent" > Hint: <span +class="ec-lmvtt-10">\autoref </span>works via the counter name that the reference is based on. Sometimes <span +class="ec-lmvtt-10">\autoref</span> +chooses the wrong name, if the counter is used for different things. For example, it happens with +<span +class="ec-lmvtt-10">\newtheorem </span>if a lemma shares a counter with theorems. Then package <span +class="ec-lmss-10">aliascnt </span>provides a method to +generate a simulated second counter that allows the differentiation between theorems and +lemmas: + <div class="quote"> + + + <div class="verbatim" id="verbatim-16"> +\documentclass{article} + <br /> + <br />\usepackage{aliascnt} + <br />\usepackage{hyperref} + <br /> + <br />\newtheorem{theorem}{Theorem} + <br /> + <br />\newaliascnt{lemma}{theorem} + <br />\newtheorem{lemma}[lemma]{Lemma} + <br />\aliascntresetthe{lemma} + <br /> + <br />\providecommand*{\lemmaautorefname}{Lemma} + <br /> + <br />\begin{document} + <br /> + <br />We will use \autoref{a} to prove \autoref{b}. + <br /> + <br />\begin{lemma}\label{a} + <br />  Nobody knows. + <br />\end{lemma} + <br /> + <br />\begin{theorem}\label{b} + <br />  Nobody is right. + <br />\end{theorem}. + <br /> + <br />\end{document} +</div> + <!--l. 1183--><p class="nopar" ></div> +<!--l. 1186--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-26" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-26-1g"><col +id="TBL-26-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-26-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-1-1" +class="td11"> <span +class="ec-lmvtt-10">\autopageref</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1190--><p class="noindent" >It replaces <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pageref</span></span></span> and adds the name for page in front of the page reference. First <span +class="ec-lmvtt-10">\pageautorefname</span> +is checked before <span +class="ec-lmvtt-10">\pagename</span>. +<!--l. 1195--><p class="indent" > For instances where you want a reference to use the correct counter, but not to create a link, there +are starred forms: +<!--l. 1198--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-27" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-27-1g"><col +id="TBL-27-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-27-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-27-1-1" +class="td11"> <span +class="ec-lmvtt-10">\ref*</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td></tr></table> </div></span> +<!--l. 1202--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-28" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-28-1g"><col +id="TBL-28-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-28-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-28-1-1" +class="td11"> <span +class="ec-lmvtt-10">\pageref*</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1206--><p class="noindent" > + + +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-29" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-29-1g"><col +id="TBL-29-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-29-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-29-1-1" +class="td11"> <span +class="ec-lmvtt-10">\autoref*</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td></tr></table> </div></span> +<!--l. 1210--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-30" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-30-1g"><col +id="TBL-30-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-30-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-30-1-1" +class="td11"> <span +class="ec-lmvtt-10">\autopageref*</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1214--><p class="indent" > A typical use would be to write + + + <div class="verbatim" id="verbatim-17"> +\hyperref[other]{that nice section (\ref*{other}) we read before} +</div> +<!--l. 1217--><p class="nopar" > +<!--l. 1219--><p class="indent" > We want <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ref*{other}</span></span></span> to generate the correct number, but not to form a link, since we do this +ourselves with <span +class="ec-lmvtt-10">\hyperref</span>. +<!--l. 1222--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-31" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-31-1g"><col +id="TBL-31-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-31-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-31-1-1" +class="td11"> <span +class="ec-lmvtt-10">\pdfstringdef</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">macroname</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span class="TEX"><span +class="ec-lmri-10">T</span><span +class="E"><span +class="ec-lmri-10">E</span></span><span +class="ec-lmri-10">X</span></span><span +class="ec-lmri-10">string</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1226--><p class="indent" > <span +class="ec-lmvtt-10">\pdfstringdef </span>returns a macro containing the PDF string. (Currently this is done globally, but do not +rely on it.) All the following tasks, definitions and redefinitions are made in a group to keep them +local: + <ul class="itemize1"> + <li class="itemize">Switching to PD1 or PU encoding + </li> + <li class="itemize">Defining the “octal sequence commands” (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\345</span></span></span>): <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\edef\3{\string\3}</span></span></span> + </li> + <li class="itemize">Special glyphs of <span class="TEX">T<span +class="E">E</span>X</span>: <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\{</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\%</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\&</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\space</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\dots</span></span></span>, etc. + </li> + <li class="itemize">National glyphs (<span +class="ec-lmss-10">german.sty</span>, <span +class="ec-lmss-10">french.sty</span>, etc.) + </li> + <li class="itemize">Logos: <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\TeX</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\eTeX</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\MF</span></span></span>, etc. + </li> + <li class="itemize">Disabling commands that do not provide useful functionality in bookmarks: <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\label</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\index</span></span></span>, + <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\glossary</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\discretionary</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\def</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\let</span></span></span>, etc. + </li> + <li class="itemize"><span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span>’s font commands like <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\textbf</span></span></span>, etc. + </li> + <li class="itemize">Support for <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\xspace</span></span></span> provided by the <span +class="ec-lmss-10">xspace </span>package</li></ul> +<!--l. 1242--><p class="indent" > In addition, parentheses are protected to avoid the danger of unsafe unbalanced parentheses in +the PDF string. For further details, see Heiko Oberdiek’s Euro<span class="TEX">T<span +class="E">E</span>X</span> paper distributed with +<span +class="ec-lmss-10">hyperref</span>. +<!--l. 1246--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-32" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-32-1g"><col +id="TBL-32-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-32-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-32-1-1" +class="td11"> <span +class="ec-lmvtt-10">\begin</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{NoHyper}</span></span></span>…<span +class="ec-lmvtt-10">\end</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{NoHyper}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1249--><p class="indent" > Sometimes we just don’t want the wretched package interfering with us. Define an environment we +can put in manually, or include in a style file, which stops the hypertext functions doing anything. +This is used, for instance, in the Elsevier classes, to stop <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">hyperref</span></span></span> playing havoc in the front +matter. + + +<!--l. 1255--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a + id="x1-150004.1"></a>Bookmark macros</h4> +<!--l. 1257--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">4.1.1 </span> <a + id="x1-160004.1.1"></a>Setting bookmarks</h5> +<!--l. 1259--><p class="noindent" >Usually <span +class="ec-lmss-10">hyperref </span>automatically adds bookmarks for <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\section</span></span></span> and similar macros. But they can also set +manually. +<!--l. 1262--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-33" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-33-1g"><col +id="TBL-33-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-33-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-33-1-1" +class="td11"> <span +class="ec-lmvtt-10">\pdfbookmark</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">level</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span>text<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1265--><p class="indent" > creates a bookmark with the specified text and at the given level (default is 0). As name for the +internal anchor name is used (in conjunction with level). Therefore the name must be unique (similar to +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\label</span></span></span>). +<!--l. 1269--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-34" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-34-1g"><col +id="TBL-34-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-34-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-34-1-1" +class="td11"> <span +class="ec-lmvtt-10">\currentpdfbookmark</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1272--><p class="indent" > creates a bookmark at the current level. +<!--l. 1274--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-35" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-35-1g"><col +id="TBL-35-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-35-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-35-1-1" +class="td11"> <span +class="ec-lmvtt-10">\subpdfbookmark</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1277--><p class="indent" > creates a bookmark one step down in the bookmark hierarchy. Internally the current level is increased +by one. +<!--l. 1280--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-36" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-36-1g"><col +id="TBL-36-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-36-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-36-1-1" +class="td11"> <span +class="ec-lmvtt-10">\belowpdfbookmark</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">name</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1283--><p class="indent" > creates a bookmark below the current bookmark level. However after the command the current +bookmark level has not changed. +<!--l. 1286--><p class="noindent" ><span +class="ec-lmbx-10">Hint: </span>Package <span +class="ec-lmss-10">bookmark </span>replaces <span +class="ec-lmss-10">hyperref</span>’s bookmark organization by a new algorithm: + <ul class="itemize1"> + <li class="itemize">Usually only one <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> run is needed. + </li> + <li class="itemize">More control over the bookmark appearance (color, font). + </li> + <li class="itemize">Different bookmark actions are supported (external file links, URLs, …).</li></ul> +<!--l. 1294--><p class="noindent" >Therefore I recommend using this package. +<!--l. 1296--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">4.1.2 </span> <a + id="x1-170004.1.2"></a>Replacement macros</h5> +<!--l. 1298--><p class="noindent" ><span +class="ec-lmss-10">hyperref </span>takes the text for bookmarks from the arguments of commands like <span +class="ec-lmvtt-10">\section</span>, which can +contain things like math, colors, or font changes, none of which will display in bookmarks as +is. + + +<!--l. 1302--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-37" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-37-1g"><col +id="TBL-37-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-37-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-37-1-1" +class="td11"> <span +class="ec-lmvtt-10">\texorpdfstring</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span class="TEX"><span +class="ec-lmri-10">T</span><span +class="E"><span +class="ec-lmri-10">E</span></span><span +class="ec-lmri-10">X</span></span><span +class="ec-lmri-10">string</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">PDFstring</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1306--><p class="indent" > For example, + + + <div class="verbatim" id="verbatim-18"> +\section{Pythagoras: + <br />  \texorpdfstring{$ a^2 + b^2 = c^2 $}{% + <br />    a\texttwosuperior\ + b\texttwosuperior\ = + <br />    c\texttwosuperior + <br />  }% + <br />} + <br />\section{\texorpdfstring{\textcolor{red}}{}{Red} Mars} +</div> +<!--l. 1315--><p class="nopar" > +<!--l. 1317--><p class="indent" > <span +class="ec-lmvtt-10">\pdfstringdef </span>executes the hook before it expands the string. Therefore, you can use this hook to +perform additional tasks or to disable additional commands. + + + <div class="verbatim" id="verbatim-19"> +\expandafter\def\expandafter\pdfstringdefPreHook + <br />\expandafter{% + <br />  \pdfstringdefPreHook + <br />  \renewcommand{\mycommand}[1]{}% + <br />} +</div> +<!--l. 1327--><p class="nopar" > +<!--l. 1329--><p class="indent" > However, for disabling commands, an easier way is via <span +class="ec-lmvtt-10">\pdfstringdefDisableCommands</span>, which adds +its argument to the definition of <span +class="ec-lmvtt-10">\pdfstringdefPreHook </span>(‘@’ can here be used as letter in command +names): + + + <div class="verbatim" id="verbatim-20"> +\pdfstringdefDisableCommands{% + <br />  \let~\textasciitilde + <br />  \def\url{\pdfstringdefWarn\url}% + <br />  \let\textcolor\@gobble + <br />} +</div> +<!--l. 1340--><p class="nopar" > +<!--l. 1342--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a + id="x1-180004.2"></a>Utility macros</h4> +<!--l. 1345--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-38" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-38-1g"><col +id="TBL-38-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-38-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-38-1-1" +class="td11"> <span +class="ec-lmvtt-10">\hypercalcbp</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">dimen specification</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 1348--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypercalcbp</span></span></span> takes a <span class="TEX">T<span +class="E">E</span>X</span> dimen specification and converts it to bp and returns the number +without the unit. This is useful for options <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pdfview</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pdfstartview</span></span></span> and <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pdfremotestartview</span></span></span>. +Example: + <div class="quote"> + + + <div class="verbatim" id="verbatim-21"> +\hypersetup{ + <br />  pdfstartview={FitBH \hypercalcbp{\paperheight-\topmargin-1in + <br />    -\headheight-\headsep} + <br />} +</div> + <!--l. 1360--><p class="nopar" ></div> +<!--l. 1362--><p class="noindent" >The origin of the PDF coordinate system is the lower left corner. +<!--l. 1364--><p class="indent" > Note, for calculations you need either package <span +class="ec-lmss-10">calc </span>or <span +class="lmmi-10">ε</span>-<span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span>. Nowadays the latter should +automatically be enabled for <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span> formats. Users without <span +class="lmmi-10">ε</span>-<span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span>, please, look in the source +documentation <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">hyperref.dtx</span></span></span> for further limitations. +<!--l. 1370--><p class="indent" > Also <span +class="ec-lmvtt-10">\hypercalcbp </span>cannot be used in option specifications of <span +class="ec-lmvtt-10">\documentclass </span>and <span +class="ec-lmvtt-10">\usepackage</span>, +because <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span> expands the option lists of these commands. However package <span +class="ec-lmss-10">hyperref </span>is not yet loaded +and an undefined control sequence error would arise. +<!--l. 1377--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">5 </span> <a + id="x1-190005"></a>New Features<span class="footnote-mark"><a +href="manual4.html#fn3x0"><sup class="textsuperscript">3</sup></a></span><a + id="x1-19001f3"></a> </h3> + <h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a + id="x1-200005.1"></a>Option ‘pdflinkmargin’</h4> +<!--l. 1382--><p class="noindent" >Option ‘pdflinkmargin’ is an experimental option for specifying a link margin, if the driver supports this. +Default is 1 pt for supporting drivers. +<!--l. 1387--><p class="indent" > + <dl class="description"><dt class="description"> +<span +class="ec-lmbx-10">pdfTeX</span> </dt><dd +class="description"> + <ul class="itemize1"> + <li class="itemize">The link area also depends on the surrounding box. + </li> + <li class="itemize">Settings have local effect. + </li> + <li class="itemize">When a page is shipped out, pdfTeX uses the current setting of the link margin for all + links on the page.</li></ul> + </dd><dt class="description"> +<span +class="ec-lmbx-10">pdfmark</span> </dt><dd +class="description"> + <ul class="itemize1"> + <li class="itemize">Settings have global effect.</li></ul> + </dd><dt class="description"> +<span +class="ec-lmbx-10">xetex</span> </dt><dd +class="description"> + + + <ul class="itemize1"> + <li class="itemize">Settings must be done in the preamble or the first page and then have global effect. + The key inserts the new (x)dvipdfmx special <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special{dvipdfmx:config</span><span +class="ec-lmvtt-10"> g</span><span +class="ec-lmvtt-10"> #1}</span></span></span> (with + the unit removed).</li></ul> + </dd><dt class="description"> +<span +class="ec-lmbx-10">Other drivers</span> </dt><dd +class="description">Unsupported.</dd></dl> +<!--l. 1412--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.2 </span> <a + id="x1-210005.2"></a>Field option ‘calculatesortkey’</h4> +<!--l. 1414--><p class="noindent" >Fields with calculated values are calculated in document order by default. If calculated field values +depend on other calculated fields that appear later in the document, then the correct calculation order +can be specified with option ‘calculatesortkey’. Its value is used as key to lexicographically sort the +calculated fields. The sort key do not need to be unique. Fields that share the same key are sorted in +document order. +<!--l. 1424--><p class="indent" > Currently the field option ‘calculatesortkey’ is only supported by the driver for pdfTeX. +<!--l. 1428--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.3 </span> <a + id="x1-220005.3"></a>Option ‘localanchorname’</h4> +<!--l. 1430--><p class="noindent" >When an anchor is set (e.g. via <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\refstepcounter</span></span></span>, then the anchor name is globally set to the current +anchor name. +<!--l. 1434--><p class="indent" > For example: + + + <div class="verbatim" id="verbatim-22"> +    \section{Foobar} + <br />    \begin{equation}\end{equation} + <br />    \label{sec:foobar} +</div> +<!--l. 1439--><p class="nopar" > With the default global setting (localanchorname=false) a reference to ‘sec:foobar’ jumps to the +equation before. With option ‘localanchorname’ the anchor of the equation is forgotten after the +environment and the reference ‘sec:foobar’ jumps to the section title. +<!--l. 1447--><p class="indent" > Option ‘localanchorname’ is an experimental option, there might be situations, where the anchor +name is not available as expected. +<!--l. 1452--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.4 </span> <a + id="x1-230005.4"></a>Option ‘customdriver’</h4> +<!--l. 1454--><p class="noindent" >The value of option ‘customdriver’ is the name of an external driver file without extension ‘.def’. The file +must have <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ProvidesFile</span></span></span> with a version date and number that match the date and number of ‘hyperref’, +otherwise a warning is given. +<!--l. 1459--><p class="indent" > Because the interface, what needs to be defined in the driver, is not well defined and +quite messy, the option is mainly intended to ease developing, testing, debugging the driver +part. +<!--l. 1464--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.5 </span> <a + id="x1-240005.5"></a>Option ‘psdextra’</h4> +<!--l. 1466--><p class="noindent" >LaTeX’s NFSS is used to assist the conversion of arbitrary TeX strings to PDF strings (bookmarks, PDF +information entries). Many math command names (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\geq</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\notin</span></span></span>, ...) are not in control of NFSS, +therefore they are defined with prefix ‘text’ (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\textgeq</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\textnotin</span></span></span>, ...). They can be mapped to short +names during the processing to PDF strings. The disadvantage is that they are many hundreds macros +that need to be redefined for each PDF string conversion. Therefore this can be enabled or disabled +as option ‘psdextra’. On default the option is turned off (set to ‘false’). Turning the option +on means that the short names are available. Then <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\geq</span></span></span> can directly be used instead of +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\textgeq</span></span></span>. +<!--l. 1480--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.6 </span> <a + id="x1-250005.6"></a>\XeTeXLinkBox</h4> +<!--l. 1482--><p class="noindent" >When XeTeX generates a link annotation, it does not look at the boxes (as the other drivers), but only +at the character glyphs. If there are no glyphs (images, rules, ...), then it does not generate a link +annotation. Macro <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\XeTeXLinkBox</span></span></span> puts its argument in a box and adds spaces at the lower left and +upper right corners. An additional margin can be specified by setting it to the dimen register +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\XeTeXLinkMargin</span></span></span>. The default is 2pt. +<!--l. 1491--><p class="indent" > Example: + + + <div class="verbatim" id="verbatim-23"> +    % xelatex + <br />    \documentclass{article} + <br />    \usepackage{hyperref} + <br />    \setlength{\XeTeXLinkMargin}{1pt} + <br />    \begin{document} + <br />    \section{Hello World} + <br />    \newpage + <br />    \label{sec:hello} + <br />    \hyperref[sec:hello]{% + <br />      \XeTeXLinkBox{\rule{10mm}{10mm}}% + <br />    } + <br />    \end{document} +</div> +<!--l. 1507--><p class="nopar" > +<!--l. 1509--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.7 </span> <a + id="x1-260005.7"></a>\IfHyperBooleanExists and \IfHyperBoolean</h4> + + + <div class="verbatim" id="verbatim-24"> + \IfHyperBooleanExists{OPTION}{YES}{NO} +</div> +<!--l. 1512--><p class="nopar" > If a hyperref OPTION is a boolean, that means it takes values ‘true’ or ‘false’, then <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\IfHyperBooleanExists</span></span></span> +calls YES, otherwise NO. + + + <div class="verbatim" id="verbatim-25"> + \IfHyperBoolean{OPTION}{YES}{NO} +</div> +<!--l. 1519--><p class="nopar" > Macro <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\IfHyperBoolean</span></span></span> calls YES, if OPTION exists as boolean and is enabled. Otherwise NO is +executed. +<!--l. 1525--><p class="indent" > Both macros are expandable. Additionally option ‘stoppedearly’ is available. It is enabled if +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\MaybeStopEarly</span></span></span> or <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\MaybeStopNow</span></span></span> end hyperref prematurely. +<!--l. 1530--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.8 </span> <a + id="x1-270005.8"></a>\unichar</h4> +<!--l. 1532--><p class="noindent" >If a Unicode character is not supported by puenc.def, it can be given by using <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\unichar</span></span></span>. Its name +and syntax is inherited from package ‘ucs’. However it is defined independently for use in +hyperref’s <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfstringdef</span></span></span> (that converts arbitrary TeX code to PDF strings or tries to do +this). +<!--l. 1540--><p class="indent" > Macro <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\unichar</span></span></span> takes a TeX number as argument, examples for U+263A (WHITE SMILING +FACE): + + + <div class="verbatim" id="verbatim-26"> +    \unichar{"263A}% hexadecimal notation + <br />    \unichar{9786}% decimal notation +</div> +<!--l. 1545--><p class="nopar" > ‘"’ must not be a babel shorthand character or otherwise active. Otherwise prefix it with +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\string</span></span></span>: + + + <div class="verbatim" id="verbatim-27"> +    \unichar{\string"263A}% converts ‘"’ to ‘"’ with catcode 12 (other) +</div> +<!--l. 1550--><p class="nopar" > Users of (n)german packages or babel options may use <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\dq</span></span></span> instead: + + + <div class="verbatim" id="verbatim-28"> +    \unichar{\dq 263A}% \dq is double quote with catcode 12 (other) +</div> +<!--l. 1554--><p class="nopar" > +<!--l. 1557--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.9 </span> <a + id="x1-280005.9"></a>\ifpdfstringunicode</h4> +<!--l. 1559--><p class="noindent" >Some features of the PDF specification needs PDF strings. Examples are bookmarks or the entries in the +information dictionary. The PDF specification allows two encodings ‘PDFDocEncoding’ (8-bit encoding) +and ‘Unicode’ (UTF-16). The user can help using <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\texorpdfstring</span></span></span> to replace complicate TeX constructs +by a representation for the PDF string. However <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\texorpdfstring</span></span></span> does not distinguish the two encodings. +This gap closes <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ifpdfstringunicode</span></span></span>. It is only allowed in the second argument of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\texorpdfstring</span></span></span> and +takes two arguments, the first allows the full range of Unicode. The second is limited to the characters +available in PDFDocEncoding. +<!--l. 1573--><p class="indent" > As example we take a macro definition for the Vietnamese name of Han The Thanh. Correctly +written it needs some accented characters, one character even with a double accent. Class ‘tugboat.cls’ +defines a macro for the typesetted name: + + + <div class="verbatim" id="verbatim-29"> +    \def\Thanh{% + <br />      H\‘an~% + <br />      Th\^e\llap{\raise 0.5ex\hbox{\’{}}}% + <br />      ~Th\‘anh% + <br />    } +</div> +<!--l. 1583--><p class="nopar" > It’s not entirely correct, the second accent over the ‘e’ is not an acute, but a hook. However standard +LaTeX does not provide such an accent. +<!--l. 1588--><p class="indent" > Now we can extend the defintion to support hyperref. The first and the last word are already +supported automatically. Characters with two or more accents are a difficult business in LaTeX, because +the NFSS2 macros of the LaTeX kernel do not support more than one accent. Therefore also puenc.def +misses support for them. But we can provide it using <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\unichar</span></span></span>. The character in question +is: + + + <div class="verbatim" id="verbatim-30"> +    % U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE +</div> +<!--l. 1597--><p class="nopar" > Thus we can put this together: + + + <div class="verbatim" id="verbatim-31"> +    \def\Thanh{% + <br />      H\‘an~% + <br />      \texorpdfstring{Th\^e\llap{\raise 0.5ex\hbox{\’{}}}}% + <br />      {\ifpdfstringunicode{Th\unichar{"1EC3}}{Th\^e}}% + <br />      ~Th\‘anh% + <br />    } +</div> +<!--l. 1606--><p class="nopar" > For PDFDocEncoding (PD1) the variant above has dropped the second accent. Alternatively we could +provide a representation without accents instead of wrong accents: + + + <div class="verbatim" id="verbatim-32"> +    \def\Thanh{% + <br />      \texorpdfstring{% + <br />        H\‘an~% + <br />        Th\^e\llap{\raise 0.5ex\hbox{\’{}}}}% + <br />        ~Th\‘anh% + <br />      }{% + <br />        \ifpdfstringunicode{% + <br />          H\‘an Th\unichar{"1EC3} Th\‘anh% + <br />        }{% + <br />          Han The Thanh% + <br />        }% + <br />      }% + <br />    } +</div> +<!--l. 1624--><p class="nopar" > +<!--l. 1626--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.10 </span> <a + id="x1-290005.10"></a>Customizing index style file with \nohyperpage</h4> +<!--l. 1628--><p class="noindent" >Since version 2008/08/14 v6.78f. +<!--l. 1632--><p class="indent" > For hyperlink support in the index, hyperref inserts <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> into the index macros. After +processing with Makeindex, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> analyzes its argument to detect page ranges and page comma +lists. However, only the standard settings are supported directly: + + + <div class="verbatim" id="verbatim-33"> +    delim_r "--" + <br />    delim_n ", " +</div> +<!--l. 1639--><p class="nopar" > (See manual page/documentation of Makeindex that explains the keys that can be used in style files for +Makeindex.) Customized versions of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">delim_r,</span><span +class="ec-lmvtt-10"> delim_n,</span><span +class="ec-lmvtt-10"> suffix_2p,</span><span +class="ec-lmvtt-10"> suffix_3p,</span><span +class="ec-lmvtt-10"> suffix_mp</span></span></span> needs +markup that <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> can detect and knows that this stuff does not belong to a page number. Makro +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\nohyperpage</span></span></span> serves as this markup. Put the customized code for these keys inside <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\nohyperpage</span></span></span>, +e.g.: + + + <div class="verbatim" id="verbatim-34"> +    suffix_2p "\\nohyperpage{f.}" + <br />    suffix_3p "\\nohyperpage{ff.}" +</div> +<!--l. 1651--><p class="nopar" > (Depending on the typesetting tradition some space "<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\\</span></span></span>," or "<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">~</span></span></span>" should be put before the first f inside +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\nohyperpage</span></span></span>.) +<!--l. 1656--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.11 </span> <a + id="x1-300005.11"></a>Experimental option ‘ocgcolorlinks’</h4> +<!--l. 1658--><p class="noindent" >The idea are colored links, when viewed, but printed without colors. This new experimental option +‘ocgcolorlinks’ uses Optional Content Groups, a feature introduced in PDF 1.5. + <ul class="itemize1"> + <li class="itemize">The option must be given for package loading: <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\usepackage[ocgcolorlinks]{hyperref}</span></span></span> + </li> + <li class="itemize">Main disadvantage: Links cannot be broken across lines. PDF reference 1.7: 4.10.2 "Making + Graphical Content Optional": Graphics state operations, such as setting the color, ..., are + still applied. Therefore the link text is put in a box and set twice, with and without color. + </li> + <li class="itemize">The feature can be switched of by <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypersetup{ocgcolorlinks=false}</span></span></span> inside the document. + </li> + <li class="itemize">Supported drivers: pdftex, dvipdfm + </li> + <li class="itemize">The PDF version should be at least 1.5. It is automatically set for pdfTeX. Users of dvipdfmx + set the version on the command line: dvipdfmx -V 5</li></ul> +<!--l. 1678--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.12 </span> <a + id="x1-310005.12"></a>Option ‘pdfa’</h4> +<!--l. 1680--><p class="noindent" >The new option ‘pdfa’ tries to avoid violations of PDF/A in code generated by hyperref. However, the +result is usually not in PDF/A, because many features aren’t controlled by hyperref (XMP metadata, +fonts, colors, driver dependend low level stuff, ...). +<!--l. 1687--><p class="indent" > Currently, option ‘pdfa’ sets and disables the following items: + <ul class="itemize1"> + <li class="itemize">Enabled annotation flags: Print, NoZoom, NoRotate [PDF/A 6.5.3]. + </li> + <li class="itemize">Disabled annotation flags: Hidden, Invisible, NoView [PDF/A 6.5.3]. + </li> + <li class="itemize">Disabled: Launch action (<a +href="run:..." >[</a>PDF/A 6.6.1]. + </li> + <li class="itemize">Restricted: Named actions (NextPage, PrevPage, FirstPage, LastPage) [PDF/A 6.6.1]. + + + </li> + <li class="itemize">Many things are disabled in PDF formulars: + <ul class="itemize2"> + <li class="itemize">JavaScript actions [PDF/A 6.6.1] + </li> + <li class="itemize">Trigger events (additional actions) [PDF/A 6.6.2] + </li> + <li class="itemize">Push button (because of JavaScript) + </li> + <li class="itemize">Interactive Forms: Flag NeedAppearances is the default ‘false’ (Because of this, + hyperref’s implementation of Forms looks ugly). [PDF/A 6.9]</li></ul> + </li></ul> +<!--l. 1707--><p class="indent" > The default value of the new option ‘pdfa’ is ‘false’. It influences the loading of the package and +cannot be changed after hyperref is loaded (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\usepackage{hyperref}</span></span></span>). +<!--l. 1713--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.13 </span> <a + id="x1-320005.13"></a>Option ‘linktoc’ added</h4> +<!--l. 1715--><p class="noindent" >The new option ‘linktoc’ allows more control which part of an entry in the table of contents is made into +a link: + <ul class="itemize1"> + <li class="itemize">‘linktoc=none’ (no links) + </li> + <li class="itemize">‘linktoc=section’ (default behaviour, same as ‘linktocpage=false’) + </li> + <li class="itemize">‘linktoc=page’ (same as ‘linktocpage=true’) + </li> + <li class="itemize">‘linktoc=all’ (both the section and page part are links)</li></ul> +<!--l. 1724--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.14 </span> <a + id="x1-330005.14"></a>Option ‘pdfnewwindow’ changed</h4> +<!--l. 1726--><p class="noindent" >Before 6.77b: + <ul class="itemize1"> + <li class="itemize">pdfnewwindow=true –> /NewWindow true + </li> + <li class="itemize">pdfnewwindow=false –> (absent) + </li> + <li class="itemize">unused pdfnewwindow –> (absent)</li></ul> +<!--l. 1732--><p class="noindent" >Since 6.77b: + <ul class="itemize1"> + <li class="itemize">pdfnewwindow=true –> /NewWindow true + + </li> + <li class="itemize">pdfnewwindow=false –> /NewWindow false + </li> + <li class="itemize">pdfnewwindow= –> (absent) + </li> + <li class="itemize">unused pdfnewwindow –> (absent)</li></ul> +<!--l. 1742--><p class="indent" > Rationale: There is a difference between setting to ‘false’ and an absent entry. In the former case the +new document replaces the old one, in the latter case the PDF viewer application should respect the user +preference. +<!--l. 1748--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.15 </span> <a + id="x1-340005.15"></a>Flag options for PDF forms</h4> +<!--l. 1750--><p class="noindent" >PDF form field macros (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\TextField</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\CheckBox</span></span></span>, ...) support boolean flag options. The option name is +the lowercase version of the names in the PDF specification (1.7): +<!--l. 1754--><p class="indent" > <a +href="http://www.adobe.com/devnet/pdf/pdf_reference.html" class="url" ><span +class="ec-lmvtt-10">http://www.adobe.com/devnet/pdf/pdf_reference.html</span></a> +<!--l. 1756--><p class="indent" > <a +href="http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf" class="url" ><span +class="ec-lmvtt-10">http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf</span></a> +<!--l. 1758--><p class="indent" > Options (convert to lowercase) except flags in square brackets: + <ul class="itemize1"> + <li class="itemize">Table 8.16 Annotation flags (page 608): + <!--l. 1763--><p class="noindent" ><div class="obeylines-v"> + 1 Invisible + <br />2 Hidden (PDF 1.2) + <br />3 Print (PDF 1.2) + <br />4 NoZoom (PDF 1.3) + <br />5 NoRotate (PDF 1.3) + <br />6 NoView (PDF 1.3) + <br />[7 ReadOnly (PDF 1.3)] ignored for widget annotations, see table 8.70 + <br />8 Locked (PDF 1.4) + <br />9 ToggleNoView (PDF 1.5) + <br />10 LockedContents (PDF 1.7)</div> + </li> + <li class="itemize">Table 8.70 Field flags common to all field types (page 676): + <!--l. 1777--><p class="noindent" ><div class="obeylines-v"> + 1 ReadOnly + <br />2 Required + <br />3 NoExport</div> + </li> + <li class="itemize">Table 8.75 Field flags specific to button fields (page 686): + <!--l. 1784--><p class="noindent" ><div class="obeylines-v"> + 15 NoToggleToOff (Radio buttons only) + + <br />16 Radio (set: radio buttons, clear: check box, pushbutton: clear) + <br />17 Pushbutton + <br />26 RadiosInUniso (PDF 1.5)</div> + </li> + <li class="itemize">Table 8.77 Field flags specific to text fields (page 691): + <!--l. 1792--><p class="noindent" ><div class="obeylines-v"> + 13 Multiline + <br />14 Password + <br />21 FileSelect (PDF 1.4) + <br />23 DoNotSpellCheck (PDF 1.4) + <br />24 DoNotScroll (PDF 1.4) + <br />25 Comb (PDF 1.5) + <br />26 RichText (PDF 1.5)</div> + </li> + <li class="itemize">Table 8.79 Field flags specific to choice fields (page 693): + <!--l. 1803--><p class="noindent" ><div class="obeylines-v"> + 18 Combo (set: combo box, clear: list box) + <br />19 Edit (only useful if Combo is set) + <br />20 (Sort) for authoring tools, not PDF viewers + <br />22 MultiSelect (PDF 1.4) + <br />23 DoNotSpellCheck (PDF 1.4) (only useful if Combo and Edit are set) + <br />27 CommitOnSelChange (PDF 1.5)</div> + </li> + <li class="itemize">Table 8.86 Flags for submit-form actions (page 704): + <!--l. 1813--><p class="noindent" ><div class="obeylines-v"> + [1 Include/Exclude] unsupported, use ‘noexport’ (table 8.70) instead + <br />2 IncludeNoValueFields + <br />[3 ExportFormat] handled by option ‘export’ + <br />4 GetMethod + <br />5 SubmitCoordinates + <br />[6 XFDF (PDF 1.4)] handled by option ‘export’ + <br />7 IncludeAppendSaves (PDF 1.4) + <br />8 IncludeAnnotations (PDF 1.4) + <br />[9 SubmitPDF (PDF 1.4)] handled by option ‘export’ + <br />10 CanonicalFormat (PDF 1.4) + <br />11 ExclNonUserAnnots (PDF 1.4) + <br />12 ExclFKey (PDF 1.4) + <br />14 EmbedForm (PDF 1.5)</div> + </li></ul> + + +<!--l. 1830--><p class="indent" > New option ‘export’ sets the export format of a submit action. Valid values are (upper- or +lowercase): + <ul class="itemize1"> + <li class="itemize">FDF + </li> + <li class="itemize">HTML + </li> + <li class="itemize">XFDF + </li> + <li class="itemize">PDF (not supported by Acrobat Reader)</li></ul> +<!--l. 1839--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.16 </span> <a + id="x1-350005.16"></a>Option ‘pdfversion’</h4> +<!--l. 1841--><p class="noindent" >This is an experimental option. It notifies ‘hyperref’ about the intended PDF version. Currently this is +used in code for PDF forms (implementation notes 116 and 122 of PDF spec 1.7). +<!--l. 1847--><p class="indent" > Values: 1.2, 1.3, 1.4, 1.5, 1.6, 1.7. Values below 1.2 are not supported, because most drivers expect +higher PDF versions. +<!--l. 1852--><p class="indent" > The option must be used early, not after <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\usepackage{hyperref}</span></span></span>. +<!--l. 1855--><p class="indent" > In theory this option should also set the PDF version, but this is not generally supported. + <ul class="itemize1"> + <li class="itemize">pdfTeX below 1.10a: + unsupported. pdfTeX >= 1.10a and < 1.30: <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfoptionpdfminorversion</span></span></span> pdfTeX >= 1.30: + <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfminorversion</span></span></span> + </li> + <li class="itemize">dvipdfm: configuration file, example: TeX Live 2007, texmf/dvipdfm/config/config, entry ‘V + 2’. + </li> + <li class="itemize">dvipdfmx: configuration file, example: TeX Live 2007, texmf/dvipdfm/dvipdfmx.cfg, entry + ‘V 4’. + </li> + <li class="itemize">Ghostscript: option -dCompatibilityLevel (this is set in ‘ps2pdf12’, ‘ps2pdf13’, ‘ps2pdf14’).</li></ul> +<!--l. 1870--><p class="indent" > The current PDF version is used as default if this version can be detected (only pdfTeX >= 1.10a). +Otherwise the lowest version 1.2 is assumed. Thus ‘hyperref’ tries to avoid PDF code that breaks this +version, but is free to use ignorable higher PDF features. +<!--l. 1877--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.17 </span> <a + id="x1-360005.17"></a>Field option ‘name’</h4> +<!--l. 1879--><p class="noindent" >Many form objects uses the label argument for several purposes: + <ul class="itemize1"> + <li class="itemize">Layouted label. + </li> + <li class="itemize">As name in HTML structures.</li></ul> + +<!--l. 1885--><p class="noindent" >Code that is suitable for layouting with TeX can break in the structures of the output format. If option +‘name’ is given, then its value is used as name in the different output structures. Thus the value should +consist of letters only. +<!--l. 1892--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.18 </span> <a + id="x1-370005.18"></a>Option ‘pdfencoding’</h4> +<!--l. 1894--><p class="noindent" >The PDF format allows two encodings for bookmarks and entries in the information dictionary: +PDFDocEncoding and Unicode as UTF-16BE. Option "pdfencoding" selects between these +encodings: + <ul class="itemize1"> + <li class="itemize">"pdfdoc" uses PDFDocEncoding. It uses just one byte per character, but the supported + characters are limited (244 in PDF-1.7). + </li> + <li class="itemize">"unicode" sets Unicode. It is encoded as UTF-16BE. Two bytes are used for most characters, + surrogates need four bytes. + </li> + <li class="itemize">"auto" PDFDocEncoding if the string does not contain characters outside the encoding and + Unicode otherwise.</li></ul> +<!--l. 1906--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.19 </span> <a + id="x1-380005.19"></a>Color options/package hycolor</h4> +<!--l. 1908--><p class="noindent" >See documentation of package ‘hycolor’. +<!--l. 1911--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.20 </span> <a + id="x1-390005.20"></a>Option pdfusetitle</h4> +<!--l. 1913--><p class="noindent" >If option pdfusetitle is set then hyperref tries to derive the values for pdftitle and pdfauthor +from <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\title</span></span></span> and <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\author</span></span></span>. An optional argument for <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\title</span></span></span> and <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\author</span></span></span> is supported (class +amsart). +<!--l. 1919--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.21 </span> <a + id="x1-400005.21"></a>Starred form of \autoref</h4> +<!--l. 1921--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\autoref*</span></span></span> generates a reference without link as <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ref*</span></span></span> or <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pageref*</span></span></span>. +<!--l. 1924--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.22 </span> <a + id="x1-410005.22"></a>Link border style</h4> +<!--l. 1926--><p class="noindent" >Links can be underlined instead of the default rectangle or options "colorlinks", "frenchlinks". This is +done by option <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">pdfborderstyle={/S/U/W</span><span +class="ec-lmvtt-10"> 1}</span></span></span> +<!--l. 1930--><p class="indent" > Some remarks: + <ul class="itemize1"> + <li class="itemize">AR7/Linux seems to have a bug, that don’t use the default value "1" for the width, but zero, + thus that the underline is not visible without "/W 1". The same applies for dashed boxes, + eg.: pdfborderstyle=/S/D/D[3 2]/W 1 + + </li> + <li class="itemize">The syntax is described in the PDF specification, look for "border style", eg. Table 8.13 + "Entries in a border style dictionary" (specification for version 1.6) + </li> + <li class="itemize">The border style is removed by pdfborderstyle= This is automatically done if option + colorlinks is enabled. + </li> + <li class="itemize">Be aware that not all PDF viewers support this feature, not even Acrobat Reader itself: + <!--l. 1951--><p class="noindent" >Some support: + <ul class="itemize2"> + <li class="itemize">AR7/Linux: "underline" and "dashed", but the border width must be given. + </li> + <li class="itemize">xpdf 3.00: "underline" and "dashed"</li></ul> + <!--l. 1958--><p class="noindent" >Unsupported: + <ul class="itemize2"> + <li class="itemize">AR5/Linux + </li> + <li class="itemize">ghostscript 8.50</li></ul> + </li></ul> +<!--l. 1965--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.23 </span> <a + id="x1-420005.23"></a>Option "bookmarksdepth"</h4> +<!--l. 1967--><p class="noindent" >The depth of the bookmarks can be controlled by the new option "bookmarksdepth". The option acts +globally and distinguishes three cases: + <ul class="itemize1"> + <li class="itemize">"bookmarksdepth" without value Then hyperref uses the current value of counter "tocdepth". + This is the compatible behaviour and the default. + </li> + <li class="itemize">"bookmarksdepth=<number>", the value is number (also negative): The depth for the + bookmarks are set to this number. + </li> + <li class="itemize">"bookmarksdepth=<name>" The <name> is a document division name (part, chapter, ...). It + must not start with a digit or minus to avoid mixing up with the number case. Internally hyperref + uses the value of macro "<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\toclevel@<name></span></span></span>". Examples: + + + <div class="verbatim" id="verbatim-35"> +     \hypersetup{bookmarksdepth=paragraph} +  <br />    \hypersetup{bookmarksdepth=4} % same as before +  <br />    \hypersetup{bookmarksdepth} % counter "tocdepth" is used +</div> + <!--l. 1986--><p class="nopar" ></li></ul> +<!--l. 1989--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.24 </span> <a + id="x1-430005.24"></a>Option "pdfescapeform"</h4> +<!--l. 1991--><p class="noindent" >There are many places where arbitrary strings end up as PS or PDF strings. The PS/PDF strings in +parentheses form require the protection of some characters, e.g. unmatched left or right parentheses need +escaping or the escape character itself (backslash). Since 2006/02/12 v6.75a the PS/PDF driver +should do this automatically. However I assume a problem with compatibility, especially +regarding the form part where larger amounts of JavaScript code can be present. It would +be a pain to remove all the escaping, because an additional escaping layer can falsify the +code. +<!--l. 2003--><p class="indent" > Therefore a new option pdfescapeform was introduced: + <ul class="itemize1"> + <li class="itemize">pdfescapeform=false Escaping for the formulars are disabled, this is the compatibility + behaviour, therefore this is the default. + </li> + <li class="itemize">pdfescapeform=true Then the PS/PDF drivers do all the necessary escaping. This is the + logical choice and the recommended setting. For example, the user writes JavaScript as + JavaScript and do not care about escaping characters for PS/PDF output.</li></ul> +<!--l. 2016--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.25 </span> <a + id="x1-440005.25"></a>Default driver setting</h4> +<!--l. 2018--><p class="noindent" >(hyperref >= 6.72s) If no driver is given, hyperref tries its best to guess the most suitable +driver. Thus it loads "hpdftex", if pdfTeX is detected running in PDF mode. Or it loads the +corresponding VTeX driver for VTeX’s working modes. Unhappily many driver programs run +after the TeX compiler, so hyperref does not have a chance (dvips, dvipdfm, ...). In this +case driver "hypertex" is loaded that supports the HyperTeX features that are recognized by +xdvi for example. This behaviour, however, can easily be changed in the configuration file +"hyperref.cfg": + + + <div class="verbatim" id="verbatim-36"> +    \providecommand*{\Hy@defaultdriver}{hdvips} +</div> +<!--l. 2031--><p class="nopar" > for dvips, or + + + <div class="verbatim" id="verbatim-37"> +    \providecommand*{\Hy@defaultdriver}{hypertex} +</div> +<!--l. 2035--><p class="nopar" > for the default behaviour of hyperref. +<!--l. 2038--><p class="indent" > See also the new option ‘driverfallback’. +<!--l. 2040--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.26 </span> <a + id="x1-450005.26"></a>Backref entries</h4> +<!--l. 2042--><p class="noindent" >Alternative interface for formatting of backref entries, example: + + + <div class="verbatim" id="verbatim-38"> +\documentclass[12pt,UKenglish]{article} + <br /> + <br />\usepackage{babel} + <br />\usepackage[pagebackref]{hyperref} + <br /> + <br />% Some language options are detected by package backref. + <br />% This affects the following macros: + <br />%   \backrefpagesname + <br />%   \backrefsectionsname + <br />%   \backrefsep + <br />%   \backreftwosep + <br />%   \backreflastsep + <br /> + <br />\renewcommand*{\backref}[1]{ + <br />  % default interface + <br />  % #1: backref list + <br />  % + <br />  % We want to use the alternative interface, + <br />  % therefore the definition is empty here. + <br />} + <br />\renewcommand*{\backrefalt}[4]{% + <br />  % alternative interface + <br />  % #1: number of distinct back references + <br />  % #2: backref list with distinct entries + <br />  % #3: number of back references including duplicates + <br />  % #4: backref list including duplicates + <br />  \par + <br />  #3 citation(s) on #1 page(s): #2,\par + <br />  \ifnum#1=1 % + <br />    \ifnum#3=1 % + <br />      1 citation on page % + <br />    \else + <br />      #3 citations on page % + <br />    \fi + <br />  \else + <br />    #3 citations on #1 pages % + <br />  \fi + <br />  #2,\par + <br />  \ifnum#3=1 % + <br />    1 citation located at page % + <br />  \else + <br />    #3 citations located at pages % + <br />  \fi + <br />  #4.\par + <br />} + <br /> + <br />% The list of distinct entries can be further refined: + <br />\renewcommand*{\backrefentrycount}[2]{% + + + <br />  % #1: the original backref entry + <br />  % #2: the count of citations of this entry, + <br />  %     in case of duplicates greater than one + <br />  #1% + <br />  \ifnum#2>1 % + <br />    ~(#2)% + <br />  \fi + <br />} + <br /> + <br />\begin{document} + <br /> + <br />  \section{Hello} + <br />    \cite{ref1, ref2, ref3, ref4} + <br />  \section{World} + <br />    \cite{ref1, ref3} + <br />  \newpage + <br /> + <br />  \section{Next section} + <br />    \cite{ref1} + <br />  \newpage + <br /> + <br />  \section{Last section} + <br />    \cite{ref1, ref2} + <br />  \newpage + <br /> + <br />  \pdfbookmark[1]{Bibliography}{bib} + <br />  \begin{thebibliography}{99} + <br />    \bibitem{ref1} Dummy entry one. + <br /> + <br />    \bibitem{ref2} Dummy entry two. + <br /> + <br />    \bibitem{ref3} Dummy entry three. + <br /> + <br />    \bibitem{ref4} Dummy entry four. + <br /> + <br />  \end{thebibliography} + <br /> + <br />\end{document} +</div> +<!--l. 2131--><p class="nopar" > +<!--l. 2133--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">5.27 </span> <a + id="x1-460005.27"></a>\phantomsection</h4> +<!--l. 2135--><p class="noindent" >Set an anchor at this location. It is often used in conjunction with <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\addcontentsline</span></span></span> for sectionlike things +(index, bibliography, preface). <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\addcontentsline</span></span></span> refers to the latest previous location where an anchor is +set. + + + <div class="verbatim" id="verbatim-39"> +  \cleardoublepage + <br />  \phantomsection + <br />  \addcontentsline{toc}{chapter}{\indexname} + <br />  \printindex +</div> +<!--l. 2145--><p class="nopar" > +<!--l. 2147--><p class="indent" > Now the entry in the table of contents (and bookmarks) for the index points to the start of the index +page, not to a location before this page. +<!--l. 2153--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">6 </span> <a + id="x1-470006"></a>Acrobat-specific behavior</h3> +<!--l. 2154--><p class="noindent" >If you want to access the menu options of Acrobat Reader or Exchange, the following macro is provided +in the appropriate drivers: +<!--l. 2157--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-39" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-39-1g"><col +id="TBL-39-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-39-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-39-1-1" +class="td11"> <span +class="ec-lmvtt-10">\Acrobatmenu</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">menuoption</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2161--><p class="noindent" >The <span +class="ec-lmri-10">text </span>is used to create a button which activates the appropriate <span +class="ec-lmri-10">menuoption</span>. The following table lists +the option names you can use—comparison of this with the menus in Acrobat Reader or Exchange will +show what they do. Obviously some are only appropriate to Exchange. +<a + id="x1-47001r13"></a> <!--l. 2165--><div class="longtable"> <table id="TBL-40" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-40-1g"><col +id="TBL-40-1"><col +id="TBL-40-2"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-40-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-1-1" +class="td01">File </td><td style="white-space:normal; text-align:left;" id="TBL-40-1-2" +class="td10"> + <!--l. 2165--><p class="noindent" >Open, + Close, + Scan, + Save, + SaveAs, + Optimizer:SaveAsOpt, + Print, + PageSetup, + Quit </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-2-1" +class="td01">File<span +class="lmsy-10">→</span>Import </td><td style="white-space:normal; text-align:left;" id="TBL-40-2-2" +class="td10"> + <!--l. 2166--><p class="noindent" >ImportImage, + ImportNotes, + AcroForm:ImportFDF </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-3-1" +class="td01">File<span +class="lmsy-10">→</span>Export </td><td style="white-space:normal; text-align:left;" id="TBL-40-3-2" +class="td10"> + <!--l. 2167--><p class="noindent" >ExportNotes, + AcroForm:ExportFDF </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-4-1" +class="td01">File<span +class="lmsy-10">→</span>DocumentInfo </td><td style="white-space:normal; text-align:left;" id="TBL-40-4-2" +class="td10"> + <!--l. 2168--><p class="noindent" >GeneralInfo, + OpenInfo, + FontsInfo, + SecurityInfo, + Weblink:Base, + AutoIndex:DocInfo </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-40-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-5-1" +class="td01">File<span +class="lmsy-10">→</span>Preferences </td><td style="white-space:normal; text-align:left;" id="TBL-40-5-2" +class="td10"> + <!--l. 2169--><p class="noindent" >GeneralPrefs, + NotePrefs, + FullScreenPrefs, + Weblink:Prefs, + AcroSearch:Preferences(Windows) + or, + AcroSearch:Prefs(Mac), + Cpt:Capture </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-6-1" +class="td01">Edit </td><td style="white-space:normal; text-align:left;" id="TBL-40-6-2" +class="td10"> + <!--l. 2171--><p class="noindent" >Undo, + Cut, + Copy, + Paste, + Clear, + SelectAll, + Ole:CopyFile, + TouchUp:TextAttributes, + TouchUp:FitTextToSelection, + TouchUp:ShowLineMarkers, + TouchUp:ShowCaptureSuspects, + TouchUp:FindSuspect, </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-7-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-40-7-2" +class="td10"> + <!--l. 2174--><p class="noindent" >Properties </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-8-1" +class="td01">Edit<span +class="lmsy-10">→</span>Fields </td><td style="white-space:normal; text-align:left;" id="TBL-40-8-2" +class="td10"> + <!--l. 2175--><p class="noindent" >AcroForm:Duplicate, + AcroForm:TabOrder </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-9-1" +class="td01">Document </td><td style="white-space:normal; text-align:left;" id="TBL-40-9-2" +class="td10"> + <!--l. 2176--><p class="noindent" >Cpt:CapturePages, + AcroForm:Actions, + CropPages, + RotatePages, + InsertPages, + ExtractPages, + ReplacePages, + DeletePages, + NewBookmark, + SetBookmarkDest, + CreateAllThumbs, + DeleteAllThumbs </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-40-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-10-1" +class="td01">View </td><td style="white-space:normal; text-align:left;" id="TBL-40-10-2" +class="td10"> + <!--l. 2179--><p class="noindent" >ActualSize, + FitVisible, + FitWidth, + FitPage, + ZoomTo, + FullScreen, + FirstPage, + PrevPage, + NextPage, + LastPage, + GoToPage, + GoBack, + GoForward, + SinglePage, + OneColumn, + TwoColumns, + ArticleThreads, + PageOnly, + ShowBookmarks, + ShowThumbs </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-11-1" +class="td01">Tools </td><td style="white-space:normal; text-align:left;" id="TBL-40-11-2" +class="td10"> + <!--l. 2182--><p class="noindent" >Hand, + ZoomIn, + ZoomOut, + SelectText, + SelectGraphics, + Note, + Link, + Thread, + AcroForm:Tool, + Acro_Movie:MoviePlayer, + TouchUp:TextTool, + Find, + FindAgain, + FindNextNote, + CreateNotesFile </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-12-1" +class="td01">Tools<span +class="lmsy-10">→</span>Search </td><td style="white-space:normal; text-align:left;" id="TBL-40-12-2" +class="td10"> + <!--l. 2185--><p class="noindent" >AcroSrch:Query, + AcroSrch:Indexes, + AcroSrch:Results, + AcroSrch:Assist, + AcroSrch:PrevDoc, + AcroSrch:PrevHit, + AcroSrch:NextHit, + AcroSrch:NextDoc </td> + + +</tr><tr + style="vertical-align:baseline;" id="TBL-40-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-13-1" +class="td01">Window </td><td style="white-space:normal; text-align:left;" id="TBL-40-13-2" +class="td10"> + <!--l. 2187--><p class="noindent" >ShowHideToolBar, + ShowHideMenuBar, + ShowHideClipboard, + Cascade, + TileHorizontal, + TileVertical, + CloseAll </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-14-1" +class="td01">Help </td><td style="white-space:normal; text-align:left;" id="TBL-40-14-2" +class="td10"> + <!--l. 2189--><p class="noindent" >HelpUserGuide, + HelpTutorial, + HelpExchange, + HelpScan, + HelpCapture, + HelpPDFWriter, + HelpDistiller, + HelpSearch, + HelpCatalog, + HelpReader, + Weblink:Home </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-15-1" +class="td01">Help(Windows) </td><td style="white-space:normal; text-align:left;" id="TBL-40-15-2" +class="td10"> + <!--l. 2191--><p class="noindent" >About </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-16-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-17-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-18-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-40-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-40-19-1" +class="td01"> </td><td style="white-space:normal; text-align:left;" id="TBL-40-19-2" +class="td10"></td></tr> + </table></div> +<!--l. 2194--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">7 </span> <a + id="x1-480007"></a>PDF and HTML forms</h3> +<!--l. 2195--><p class="noindent" >You must put your fields inside a <span +class="ec-lmvtt-10">Form </span>environment (only one per file). +<!--l. 2197--><p class="indent" > There are six macros to prepare fields: +<!--l. 2199--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-41" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-41-1g"><col +id="TBL-41-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-41-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-41-1-1" +class="td11"> <span +class="ec-lmvtt-10">\TextField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">parameters</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2203--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-42" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-42-1g"><col +id="TBL-42-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-42-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-42-1-1" +class="td11"> <span +class="ec-lmvtt-10">\CheckBox</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">parameters</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2207--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-43" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-43-1g"><col +id="TBL-43-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-43-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-43-1-1" +class="td11"> <span +class="ec-lmvtt-10">\ChoiceMenu</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">parameters</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">choices</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2211--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-44" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-44-1g"><col +id="TBL-44-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-44-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-44-1-1" +class="td11"> <span +class="ec-lmvtt-10">\PushButton</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">parameters</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2215--><p class="noindent" > + + +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-45" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-45-1g"><col +id="TBL-45-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-45-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-45-1-1" +class="td11"> <span +class="ec-lmvtt-10">\Submit</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">parameters</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2219--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-46" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-46-1g"><col +id="TBL-46-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-46-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-46-1-1" +class="td11"> <span +class="ec-lmvtt-10">\Reset</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">[</span></span></span><span +class="ec-lmri-10">parameters</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">]{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2223--><p class="indent" > The way forms and their labels are laid out is determined by: +<!--l. 2224--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-47" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-47-1g"><col +id="TBL-47-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-47-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-47-1-1" +class="td11"> <span +class="ec-lmvtt-10">\LayoutTextField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">field</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2228--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-48" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-48-1g"><col +id="TBL-48-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-48-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-48-1-1" +class="td11"> <span +class="ec-lmvtt-10">\LayoutChoiceField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">field</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2232--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-49" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-49-1g"><col +id="TBL-49-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-49-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-49-1-1" +class="td11"> <span +class="ec-lmvtt-10">\LayoutCheckField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">label</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">field</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2236--><p class="indent" > These macros default to #1 #2 +<!--l. 2238--><p class="indent" > What is actually shown in as the field is determined by: +<!--l. 2239--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-50" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-50-1g"><col +id="TBL-50-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-50-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-50-1-1" +class="td11"> <span +class="ec-lmvtt-10">\MakeRadioField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">width</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">height</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2243--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-51" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-51-1g"><col +id="TBL-51-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-51-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-51-1-1" +class="td11"> <span +class="ec-lmvtt-10">\MakeCheckField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">width</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">height</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2246--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-52" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-52-1g"><col +id="TBL-52-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-52-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-52-1-1" +class="td11"> <span +class="ec-lmvtt-10">\MakeTextField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">width</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">height</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2249--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-53" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-53-1g"><col +id="TBL-53-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-53-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-53-1-1" +class="td11"> <span +class="ec-lmvtt-10">\MakeChoiceField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">width</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}{</span></span></span><span +class="ec-lmri-10">height</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td> + </tr></table> </div></span> +<!--l. 2253--><p class="noindent" > +<span class="fbox"><!--tex4ht:inline--><div class="tabular"> <table id="TBL-54" class="tabular" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-54-1g"><col +id="TBL-54-1"></colgroup><tr + style="vertical-align:baseline;" id="TBL-54-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-54-1-1" +class="td11"> <span +class="ec-lmvtt-10">\MakeButtonField</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmri-10">text</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span> </td></tr></table> </div></span> +<!--l. 2257--><p class="indent" > These macros default to <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\vbox</span><span +class="ec-lmvtt-10"> to</span><span +class="ec-lmvtt-10"> #2{\hbox</span><span +class="ec-lmvtt-10"> to</span><span +class="ec-lmvtt-10"> #1{\hfill}\vfill}</span></span></span>, except the last, which defaults +to #1; it is used for buttons, and the special <span +class="ec-lmvtt-10">\Submit </span>and <span +class="ec-lmvtt-10">\Reset </span>macros. +<!--l. 2261--><p class="indent" > You may also want to redefine the following macros: + + + <div class="verbatim" id="verbatim-40"> +\def\DefaultHeightofSubmit{12pt} + <br />\def\DefaultWidthofSubmit{2cm} + <br />\def\DefaultHeightofReset{12pt} + <br />\def\DefaultWidthofReset{2cm} + <br />\def\DefaultHeightofCheckBox{0.8\baselineskip} + <br />\def\DefaultWidthofCheckBox{0.8\baselineskip} + <br />\def\DefaultHeightofChoiceMenu{0.8\baselineskip} + <br />\def\DefaultWidthofChoiceMenu{0.8\baselineskip} + <br />\def\DefaultHeightofText{\baselineskip} + <br />\def\DefaultHeightofTextMultiline{4\baselineskip} + <br />\def\DefaultWidthofText{3cm} +</div> +<!--l. 2274--><p class="nopar" > +<!--l. 2276--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">7.1 </span> <a + id="x1-490007.1"></a>Forms environment parameters</h4> +<a + id="x1-49001r14"></a> <!--l. 2280--><div class="longtable"> <table id="TBL-55" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-55-1g"><col +id="TBL-55-1"><col +id="TBL-55-2"><col +id="TBL-55-3"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-55-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-1-1" +class="td01"><span +class="ec-lmvtt-10">action </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-55-1-2" +class="td11"> <span +class="ec-lmri-10">URL </span></td><td style="white-space:normal; text-align:left;" id="TBL-55-1-3" +class="td10"> + <!--l. 2280--><p class="noindent" >The URL that will receive the form data if a <span +class="ec-lmss-10">Submit </span>button + is included in the form </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-2-1" +class="td01"><span +class="ec-lmvtt-10">encoding </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-55-2-2" +class="td11"> <span +class="ec-lmri-10">name </span></td><td style="white-space:normal; text-align:left;" id="TBL-55-2-3" +class="td10"> + <!--l. 2281--><p class="noindent" >The encoding for the string set to the URL; FDF-encoding + is usual, and <span +class="ec-lmvtt-10">html </span>is the only valid value </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-3-1" +class="td01"><span +class="ec-lmvtt-10">method </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-55-3-2" +class="td11"> <span +class="ec-lmri-10">name </span></td><td style="white-space:normal; text-align:left;" id="TBL-55-3-3" +class="td10"> + <!--l. 2283--><p class="noindent" >Used only when generating HTML; values can be <span +class="ec-lmvtt-10">post </span>or + <span +class="ec-lmvtt-10">get</span> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-4-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-5-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-6-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-7-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-55-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-55-8-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-55-8-2" +class="td11"> </td><td style="white-space:normal; text-align:left;" id="TBL-55-8-3" +class="td10"></td></tr> + </table></div> +<!--l. 2286--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">7.2 </span> <a + id="x1-500007.2"></a>Forms optional parameters</h4> +<!--l. 2287--><p class="noindent" >Note that all colors must be expressed as RGB triples, in the range 0..1 (i.e. <span +class="ec-lmvtt-10">color=0 0</span> +<span +class="ec-lmvtt-10">0.5</span>) +<a + id="x1-50001r15"></a> <!--l. 2292--><div class="longtable"> <table id="TBL-56" class="longtable" +cellspacing="0" cellpadding="0" +><colgroup id="TBL-56-1g"><col +id="TBL-56-1"><col +id="TBL-56-2"><col +id="TBL-56-3"><col +id="TBL-56-4"></colgroup> +<tr + style="vertical-align:baseline;" id="TBL-56-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-1-1" +class="td01"><span +class="ec-lmvtt-10">accesskey </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-1-2" +class="td11"> key </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-1-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-1-4" +class="td10"> (as per HTML) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-2-1" +class="td01"><span +class="ec-lmvtt-10">align </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-2-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-2-3" +class="td11"> <span +class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-2-4" +class="td10"> alignment within text field; 0 is left-aligned, </td> +<td id="TBL-56-2-5" +class="td00"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-3-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-4-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-4-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-4-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-4-4" +class="td10"> 1 is centered, 2 is right-aligned. </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-5-1" +class="td01"><span +class="ec-lmvtt-10">altname </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-5-2" +class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-5-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-5-4" +class="td10"> alternative name, </td> +<td id="TBL-56-5-5" +class="td00"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-6-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-7-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-7-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-7-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-7-4" +class="td10"> the name shown in the user interface </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-8-1" +class="td01"><span +class="ec-lmvtt-10">backgroundcolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-8-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-8-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-8-4" +class="td10"> color of box </td> + +</tr><tr + style="vertical-align:baseline;" id="TBL-56-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-9-1" +class="td01"><span +class="ec-lmvtt-10">bordercolor </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-9-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-9-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-9-4" +class="td10"> color of border </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-10-1" +class="td01"><span +class="ec-lmvtt-10">bordersep </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-10-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-10-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-10-4" +class="td10"> box border gap </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-11-1" +class="td01"><span +class="ec-lmvtt-10">borderwidth </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-11-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-11-3" +class="td11"> <span +class="ec-lmri-10">1 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-11-4" +class="td10"> width of box border, the value is a dimension </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-12-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-12-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-12-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-12-4" +class="td10"> or a number with default unit bp </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-13-1" +class="td01"><span +class="ec-lmvtt-10">calculate </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-13-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-13-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-13-4" +class="td10"> JavaScript code to calculate the value of the field</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-14-1" +class="td01"><span +class="ec-lmvtt-10">charsize </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-14-2" +class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-14-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-14-4" +class="td10"> font size of field text </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-15-1" +class="td01"><span +class="ec-lmvtt-10">checkboxsymbol </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-15-2" +class="td11"> char </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-15-3" +class="td11"> <span +class="ec-lmri-10">4 (</span><span +class="pzdr-">✔</span><span +class="ec-lmri-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-15-4" +class="td10"> symbol used for check boxes (ZapfDingbats), </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-16-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-16-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-16-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-16-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-16-4" +class="td10"> the value is a character or <span +class="ec-lmvtt-10">\ding</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmvtto-10">number</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span>, </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-17-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-17-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-17-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-17-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-17-4" +class="td10"> see package <span +class="ec-lmss-10">pifont </span>from bundle <span +class="ec-lmss-10">psnfss </span></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-18-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-18-1" +class="td01"><span +class="ec-lmvtt-10">checked </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-18-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-18-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-18-4" +class="td10"> whether option selected by default </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-19-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-19-1" +class="td01"><span +class="ec-lmvtt-10">color </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-19-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-19-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-19-4" +class="td10"> color of text in box </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-20-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-20-1" +class="td01"><span +class="ec-lmvtt-10">combo </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-20-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-20-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-20-4" +class="td10"> choice list is ‘combo’ style </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-21-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-21-1" +class="td01"><span +class="ec-lmvtt-10">default </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-21-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-21-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-21-4" +class="td10"> default value </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-22-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-22-1" +class="td01"><span +class="ec-lmvtt-10">disabled </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-22-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-22-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-22-4" +class="td10"> field disabled </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-23-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-23-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-23-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-23-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-23-4" +class="td10"></td></tr> +<tr + style="vertical-align:baseline;" id="TBL-56-24-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-24-1" +class="td01"><span +class="ec-lmvtt-10">format </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-24-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-24-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-24-4" +class="td10"> JavaScript code to format the field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-25-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-25-1" +class="td01"><span +class="ec-lmvtt-10">height </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-25-2" +class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-25-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-25-4" +class="td10"> height of field box </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-26-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-26-1" +class="td01"><span +class="ec-lmvtt-10">hidden </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-26-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-26-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-26-4" +class="td10"> field hidden </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-27-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-27-1" +class="td01"><span +class="ec-lmvtt-10">keystroke </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-27-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-27-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-27-4" +class="td10"> JavaScript code to control the keystrokes on entry</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-28-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-28-1" +class="td01"><span +class="ec-lmvtt-10">mappingname </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-28-2" +class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-28-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-28-4" +class="td10"> the mapping name to be used when exporting </td> +<td id="TBL-56-28-5" +class="td00"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-29-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-29-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-30-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-30-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-30-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-30-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-30-4" +class="td10"> the field data </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-31-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-31-1" +class="td01"><span +class="ec-lmvtt-10">maxlen </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-31-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-31-3" +class="td11"> <span +class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-31-4" +class="td10"> number of characters allowed in text field </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-32-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-32-1" +class="td01"><span +class="ec-lmvtt-10">menulength </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-32-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-32-3" +class="td11"> <span +class="ec-lmri-10">4 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-32-4" +class="td10"> number of elements shown in list </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-33-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-33-1" +class="td01"><span +class="ec-lmvtt-10">multiline </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-33-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-33-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-33-4" +class="td10"> whether text box is multiline </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-34-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-34-1" +class="td01"><span +class="ec-lmvtt-10">name </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-34-2" +class="td11"> name </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-34-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-34-4" +class="td10"> name of field (defaults to label) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-35-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-35-1" +class="td01"><span +class="ec-lmvtt-10">onblur </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-35-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-35-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-35-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-36-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-36-1" +class="td01"><span +class="ec-lmvtt-10">onchange </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-36-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-36-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-36-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-37-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-37-1" +class="td01"><span +class="ec-lmvtt-10">onclick </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-37-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-37-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-37-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-38-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-38-1" +class="td01"><span +class="ec-lmvtt-10">ondblclick </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-38-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-38-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-38-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-39-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-39-1" +class="td01"><span +class="ec-lmvtt-10">onfocus </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-39-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-39-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-39-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-40-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-40-1" +class="td01"><span +class="ec-lmvtt-10">onkeydown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-40-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-40-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-40-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-41-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-41-1" +class="td01"><span +class="ec-lmvtt-10">onkeypress </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-41-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-41-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-41-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-42-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-42-1" +class="td01"><span +class="ec-lmvtt-10">onkeyup </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-42-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-42-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-42-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-43-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-43-1" +class="td01"><span +class="ec-lmvtt-10">onmousedown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-43-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-43-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-43-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-44-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-44-1" +class="td01"><span +class="ec-lmvtt-10">onmousemove </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-44-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-44-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-44-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-45-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-45-1" +class="td01"> </td></tr> +<tr + style="vertical-align:baseline;" id="TBL-56-46-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-46-1" +class="td01"><span +class="ec-lmvtt-10">onmouseout </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-46-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-46-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-46-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-47-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-47-1" +class="td01"><span +class="ec-lmvtt-10">onmouseover </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-47-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-47-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-47-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-48-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-48-1" +class="td01"><span +class="ec-lmvtt-10">onmouseup </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-48-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-48-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-48-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-49-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-49-1" +class="td01"><span +class="ec-lmvtt-10">onselect </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-49-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-49-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-49-4" +class="td10"> JavaScript code </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-50-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-50-1" +class="td01"><span +class="ec-lmvtt-10">password </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-50-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-50-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-50-4" +class="td10"> text field is ‘password’ style </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-51-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-51-1" +class="td01"><span +class="ec-lmvtt-10">popdown </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-51-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-51-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-51-4" +class="td10"> choice list is ‘popdown’ style </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-52-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-52-1" +class="td01"><span +class="ec-lmvtt-10">radio </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-52-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-52-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-52-4" +class="td10"> choice list is ‘radio’ style </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-53-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-53-1" +class="td01"><span +class="ec-lmvtt-10">radiosymbol </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-53-2" +class="td11"> char </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-53-3" +class="td11"> <span +class="ec-lmri-10">H (</span><span +class="pzdr-">★</span><span +class="ec-lmri-10">) </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-53-4" +class="td10"> symbol used for radio fields (ZapfDingbats),</td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-54-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-54-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-54-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-54-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-54-4" +class="td10"> the value is a character or <span +class="ec-lmvtt-10">\ding</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">{</span></span></span><span +class="ec-lmvtto-10">number</span><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">}</span></span></span>, </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-55-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-55-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-55-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-55-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-55-4" +class="td10"> see package <span +class="ec-lmss-10">pifont </span>from bundle <span +class="ec-lmss-10">psnfss </span></td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-56-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-56-1" +class="td01"><span +class="ec-lmvtt-10">readonly </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-56-2" +class="td11"> boolean </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-56-3" +class="td11"> <span +class="ec-lmri-10">false </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-56-4" +class="td10"> field is readonly </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-57-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-57-1" +class="td01"><span +class="ec-lmvtt-10">rotation </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-57-2" +class="td11"> number </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-57-3" +class="td11"> <span +class="ec-lmri-10">0 </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-57-4" +class="td10"> rotation of the widget annotation </td> +<td id="TBL-56-57-5" +class="td00"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-58-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-58-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-59-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-59-1" +class="td01"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-59-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-59-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-59-4" +class="td10"> (degree, counterclockwise, multiple of 90) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-60-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-60-1" +class="td01"><span +class="ec-lmvtt-10">tabkey </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-60-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-60-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-60-4" +class="td10"> (as per HTML) </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-61-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-61-1" +class="td01"><span +class="ec-lmvtt-10">validate </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-61-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-61-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-61-4" +class="td10"> JavaScript code to validate the entry </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-62-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-62-1" +class="td01"><span +class="ec-lmvtt-10">value </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-62-2" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-62-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-62-4" +class="td10"> initial value </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-63-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-63-1" +class="td01"><span +class="ec-lmvtt-10">width </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-56-63-2" +class="td11"> dimen </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-63-3" +class="td11"> </td><td style="white-space:nowrap; text-align:left;" id="TBL-56-63-4" +class="td10"> width of field box </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-64-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-64-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-65-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-65-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-66-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-66-1" +class="td01"> </td> +</tr><tr + style="vertical-align:baseline;" id="TBL-56-67-"><td style="white-space:nowrap; text-align:left;" id="TBL-56-67-1" +class="td01"> </td></tr> + </table></div> +<!--l. 2351--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">8 </span> <a + id="x1-510008"></a>Defining a new driver</h3> +<!--l. 2352--><p class="noindent" >A hyperref driver has to provide definitions for eight macros: +<!--l. 2355--><p class="noindent" >1. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@anchor</span></span></span> + + +<!--l. 2357--><p class="noindent" >2. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@link</span></span></span> +<!--l. 2359--><p class="noindent" >3. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@linkfile</span></span></span> +<!--l. 2361--><p class="noindent" >4. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@linkurl</span></span></span> +<!--l. 2363--><p class="noindent" >5. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@anchorstart</span></span></span> +<!--l. 2365--><p class="noindent" >6. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@anchorend</span></span></span> +<!--l. 2367--><p class="noindent" >7. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@linkstart</span></span></span> +<!--l. 2369--><p class="noindent" >8. <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyper@linkend</span></span></span> +<!--l. 2372--><p class="indent" > The draft option defines the macros as follows + + + <div class="verbatim" id="verbatim-41"> +\let\hyper@@anchor\@gobble + <br />\gdef\hyper@link##1##2##3{##3}% + <br />\def\hyper@linkurl##1##2{##1}% + <br />\def\hyper@linkfile##1##2##3{##1}% + <br />\let\hyper@anchorstart\@gobble + <br />\let\hyper@anchorend\@empty + <br />\let\hyper@linkstart\@gobbletwo + <br />\let\hyper@linkend\@empty +</div> +<!--l. 2382--><p class="nopar" > +<!--l. 2384--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">9 </span> <a + id="x1-520009"></a>Special support for other packages</h3> +<!--l. 2386--><p class="noindent" >Package <span +class="ec-lmss-10">hyperref </span>aims to cooperate with other packages, but there are several possible sources for +conflict, such as + <ul class="itemize1"> + <li class="itemize">Packages that manipulate the bibliographic mechanism. Peter William’s <span +class="ec-lmss-10">harvard </span>package is + supported. However, the recommended package is Patrick Daly’s <span +class="ec-lmss-10">natbib </span>package that has + specific <span +class="ec-lmss-10">hyperref </span>hooks to allow reliable interaction. This package covers a very wide variety + of layouts and citation styles, all of which work with <span +class="ec-lmss-10">hyperref</span>. + </li> + <li class="itemize">Packages that typeset the contents of the <span +class="ec-lmvtt-10">\label </span>and <span +class="ec-lmvtt-10">\ref </span>macros, such as <span +class="ec-lmss-10">showkeys</span>. Since the + <span +class="ec-lmss-10">hyperref </span>package redefines these commands, you must set <span +class="ec-lmvtt-10">implicit=false </span>for these packages + to work. + </li> + <li class="itemize">Packages that do anything serious with the index.</li></ul> +<!--l. 2406--><p class="indent" > The <span +class="ec-lmss-10">hyperref </span>package is distributed with variants on two useful packages designed to work especially +well with it. These are <span +class="ec-lmss-10">xr </span>and <span +class="ec-lmss-10">minitoc</span>, which support crossdocument links using <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>’s normal +<span +class="ec-lmvtt-10">\label</span>/<span +class="ec-lmvtt-10">\ref </span>mechanisms and per-chapter tables of contents, respectively. +<!--l. 2413--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">9.1 </span> <a + id="x1-530009.1"></a>Package Compatibility</h4> +<!--l. 2415--><p class="noindent" >Currently only package loading orders are available: +<!--l. 2419--><p class="indent" > Note: hyperref loads package "nameref" at <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\begin{document}</span></span></span>. Sometimes this is too late, thus this +package must be loaded earlier. +<!--l. 2424--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.1 </span> <a + id="x1-540009.1.1"></a>algorithm</h5> + + + <div class="verbatim" id="verbatim-42"> + \usepackage{float} + <br />  \usepackage{hyperref} + <br />  \usepackage[chapter]{algorithm}% eg. +</div> +<!--l. 2429--><p class="nopar" > +<!--l. 2431--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.2 </span> <a + id="x1-550009.1.2"></a>amsmath</h5> +<!--l. 2433--><p class="noindent" >The environments equation and eqnarray are not supported too well. For example, there might be +spacing problems (eqnarray isn’t recommended anyway, see CTAN:info/l2tabu/, the situation for +equation is unclear, because nobody is interested in investigating). Consider using the environments that +package amsmath provide, e.g. gather for equation. The environment equation can even redefined to use +gather: + + + <div class="verbatim" id="verbatim-43"> +  \usepackage{amsmath} + <br />  \let\equation\gather + <br />  \let\endequation\endgather +</div> +<!--l. 2444--><p class="nopar" > +<!--l. 2446--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.3 </span> <a + id="x1-560009.1.3"></a>amsrefs</h5> +<!--l. 2448--><p class="noindent" >Package loading order: + + + <div class="verbatim" id="verbatim-44"> +  \usepackage{hyperref} + <br />  \usepackage{amsrefs} +</div> +<!--l. 2453--><p class="nopar" > +<!--l. 2455--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.4 </span> <a + id="x1-570009.1.4"></a>arydshln, longtable</h5> +<!--l. 2457--><p class="noindent" >Package longtable must be put before hyperref and arydshln, hyperref after arydshln generates an error, +thus the resulting package order is then: + + + <div class="verbatim" id="verbatim-45"> +  \usepackage{longtable} + <br />  \usepacakge{hyperref} + <br />  \usepackage{arydshln} +</div> +<!--l. 2465--><p class="nopar" > +<!--l. 2467--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.5 </span> <a + id="x1-580009.1.5"></a>babel/magyar.ldf</h5> +<!--l. 2469--><p class="noindent" >The old version 2005/03/30 v1.4j will not work. You need at least version 1.5, maintained by Péter +Szabó, see CTAN:language/hungarian/babel/. +<!--l. 2474--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.6 </span> <a + id="x1-590009.1.6"></a>babel/spanish.ldf</h5> +<!--l. 2476--><p class="noindent" >Babel’s spanish.ldf redefines ‘<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\.</span></span></span>’ to support ‘<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\...</span></span></span>’. In bookmarks (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfstringdef</span></span></span>) only ‘<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\.</span></span></span>’ is supported. If +‘<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\...</span></span></span>’ is needed, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\texorpdfstring{\...}{\dots}</span></span></span> can be used instead. +<!--l. 2483--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.7 </span> <a + id="x1-600009.1.7"></a>bibentry</h5> +<!--l. 2485--><p class="noindent" >Workaround: + + + <div class="verbatim" id="verbatim-46"> +  \makeatletter + <br />  \let\saved@bibitem\@bibitem + <br />  \makeatother + <br /> + <br />  \usepackage{bibentry} + <br />  \usepackage{hyperref} + <br /> + <br />  \begin{document} + <br /> + <br />  \begingroup + <br />    \makeatletter + <br />    \let\@bibitem\saved@bibitem + <br />    \nobibliography{database} + <br />  \endgroup +</div> +<!--l. 2502--><p class="nopar" > +<!--l. 2504--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.8 </span> <a + id="x1-610009.1.8"></a>bigfoot</h5> +<!--l. 2506--><p class="noindent" >Hyperref does not support package ‘bigfoot’. And package ‘bigfoot’ does not support hyperref’s footnotes +and disables them (hyperfootnotes=false). +<!--l. 2511--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.9 </span> <a + id="x1-620009.1.9"></a>chappg</h5> +<!--l. 2513--><p class="noindent" >Package ‘chappg’ uses <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@addtoreset</span></span></span> that is redefined by ‘hyperref’. The package order is +therefore: + + + <div class="verbatim" id="verbatim-47"> +  \usepackage{hyperref} + <br />  \usepackage{chappg} +</div> +<!--l. 2519--><p class="nopar" > +<!--l. 2521--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.10 </span> <a + id="x1-630009.1.10"></a>cite</h5> +<!--l. 2523--><p class="noindent" >This is from Mike Shell: cite.sty cannot currently be used with hyperref. However, I can do a workaround +via: + + + <div class="verbatim" id="verbatim-48"> + \makeatletter + <br /> \def\NAT@parse{\typeout{This is a fake Natbib command to fool Hyperref.}} + <br /> \makeatother + <br /> + <br /> \usepackage[hypertex]{hyperref} +</div> +<!--l. 2533--><p class="nopar" > +<!--l. 2535--><p class="indent" > so that hyperref will not redefine any of the biblabel stuff - so cite.sty will work as normal - +although the citations will not be hyperlinked, of course (But this may not be an issue for many +people). +<!--l. 2540--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.11 </span> <a + id="x1-640009.1.11"></a>count1to</h5> +<!--l. 2542--><p class="noindent" >Package ‘count1to’ adds several <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@addtoreset</span></span></span> commands that confuse ‘hyperref’. Therefore <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\theH<...></span></span></span> +has to be fixed: + + + <div class="verbatim" id="verbatim-49"> +  \usepackage{count1to} + <br />  \AtBeginDocument{% *after* \usepackage{count1to} + <br />    \renewcommand*{\theHsection}{\theHchapter.\arabic{section}}% + <br />    \renewcommand*{\theHsubsection}{\theHsection.\arabic{subsection}}% + <br />    \renewcommand*{\theHsubsubsection}{\theHsubsection.\arabic{subsubsection}}% + <br />    \renewcommand*{\theHparagraph}{\theHsubsubsection.\arabic{paragraph}}% + <br />    \renewcommand*{\theHsubparagraph}{\theHparagraph.\arabic{subparagraph}}% + <br />  } +</div> +<!--l. 2554--><p class="nopar" > +<!--l. 2556--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.12 </span> <a + id="x1-650009.1.12"></a>dblaccnt</h5> +<!--l. 2558--><p class="noindent" >pd1enc.def or puenc.def should be loaded before: + + + <div class="verbatim" id="verbatim-50"> +  \usepackage{hyperref} + <br />  \usepackage{dblaccnt} +</div> +<!--l. 2562--><p class="nopar" > or see entry for "vietnam". +<!--l. 2566--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.13 </span> <a + id="x1-660009.1.13"></a>easyeqn</h5> +<!--l. 2567--><p class="noindent" >Not compatible, breaks. +<!--l. 2570--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.14 </span> <a + id="x1-670009.1.14"></a>ellipsis</h5> +<!--l. 2572--><p class="noindent" >This packages redefines <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\textellipsis</span></span></span> after package hyperref (pd1enc.def/puenc.def should be loaded +before): + + + <div class="verbatim" id="verbatim-51"> +  \usepackage{hyperref} + <br />  \usepackage{ellipsis} +</div> +<!--l. 2577--><p class="nopar" > +<!--l. 2579--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.15 </span> <a + id="x1-680009.1.15"></a>float</h5> + + + <div class="verbatim" id="verbatim-52"> + \usepackage{float} + <br />  \usepackage{hyperref} +</div> +<!--l. 2583--><p class="nopar" > + <ul class="itemize1"> + <li class="itemize">Several <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\caption</span></span></span> commands are not supported inside one float object. + </li> + <li class="itemize">Anchor are set at top of the float object, if its style is controlled by float.sty.</li></ul> +<!--l. 2590--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.16 </span> <a + id="x1-690009.1.16"></a>endnotes</h5> +<!--l. 2591--><p class="noindent" >Unsupported. +<!--l. 2593--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.17 </span> <a + id="x1-700009.1.17"></a>foiltex</h5> +<!--l. 2594--><p class="noindent" >Update to version 2008/01/28 v2.1.4b: Since version 6.77a hyperref does not hack into <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@begindvi</span></span></span>, it +uses package ‘atbegshi’ instead, that hooks into <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\shipout</span></span></span>. Thus the patch of ‘foils.cls’ regarding hyperref +is now obsolete and causes an undefined error message about <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@hyperfixhead</span></span></span>. This is fixed in FoilTeX +2.1.4b. +<!--l. 2602--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.18 </span> <a + id="x1-710009.1.18"></a>footnote</h5> +<!--l. 2604--><p class="noindent" >This package is not supported, you have to disable hyperref’s footnote support by using option +"hyperfootnotes=false". +<!--l. 2608--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.19 </span> <a + id="x1-720009.1.19"></a>geometry</h5> +<!--l. 2610--><p class="noindent" >Driver ‘dvipdfm’ and program ‘dvipdfm’ might generate a warning: Sorry. Too late to change page size +Then prefer the program ‘dvipdfmx’ or use one of the following workarounds to move the <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> of +geometry to an earlier location: + + + <div class="verbatim" id="verbatim-53"> +    \documentclass[dvipdfm]{article}% or other classes + <br />    \usepackage{atbegshi} + <br />    \AtBeginDocument{% + <br />      \let\OrgAtBeginDvi\AtBeginDvi + <br />      \let\AtBeginDvi\AtBeginShipoutFirst + <br />    } + <br />    \usepackage[ + <br />      paperwidth=170mm, + <br />      paperheight=240mm + <br />    ]{geometry} + <br />    \AtBeginDocument{% + <br />      \let\AtBeginDvi\OrgAtBeginDvi + <br />    } + <br />    \usepackage{hyperref} + <br /> + <br />  or + <br /> + <br />    \documentclass[dvipdfm]{article}% or other classes + <br />    \usepackage{atbegshi} + <br />    \let\AtBeginDvi\AtBeginShipoutFirst + <br />    \usepackage[ + <br />      paperwidth=170mm, + <br />      paperheight=240mm + <br />    ]{geometry} + <br />    \usepackage{hyperref} +</div> +<!--l. 2642--><p class="nopar" > +<!--l. 2644--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.20 </span> <a + id="x1-730009.1.20"></a>IEEEtran.cls</h5> +<!--l. 2646--><p class="noindent" >version >= V1.6b (because of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@makecaption</span></span></span>, see ChangeLog) +<!--l. 2649--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.21 </span> <a + id="x1-740009.1.21"></a>index</h5> +<!--l. 2651--><p class="noindent" >version >= 1995/09/28 v4.1 (because of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\addcontentsline</span></span></span> redefinition) +<!--l. 2654--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.22 </span> <a + id="x1-750009.1.22"></a>lastpage</h5> +<!--l. 2656--><p class="noindent" >Compatible. +<!--l. 2659--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.23 </span> <a + id="x1-760009.1.23"></a>linguex</h5> + + + <div class="verbatim" id="verbatim-54"> + \usepackage{hyperref} + <br />  \usepackage{linguex} +</div> +<!--l. 2663--><p class="nopar" > +<!--l. 2665--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.24 </span> <a + id="x1-770009.1.24"></a>ltabptch</h5> + + + <div class="verbatim" id="verbatim-55"> + \usepackage{longtable} + <br />  \usepackage{ltabptch} + <br />  \usepackage{hyperref} +</div> +<!--l. 2670--><p class="nopar" > +<!--l. 2672--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.25 </span> <a + id="x1-780009.1.25"></a>mathenv</h5> +<!--l. 2674--><p class="noindent" >Unsupported. +<!--l. 2678--><p class="indent" > Both ‘mathenv’ and ‘hyperref’ messes around with environment ‘eqnarray’. You can load ‘mathenv’ +after ‘hyperref’ to avoid an error message. But <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\label</span></span></span> will not work inside environment ‘eqnarray’ +properly, for example. +<!--l. 2685--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.26 </span> <a + id="x1-790009.1.26"></a>minitoc-hyper</h5> +<!--l. 2687--><p class="noindent" >This package is obsolete, use the uptodate original package minitoc instead. +<!--l. 2691--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.27 </span> <a + id="x1-800009.1.27"></a>multind</h5> + + + <div class="verbatim" id="verbatim-56"> + \usepackage{multind} + <br />  \usepackage{hyperref} +</div> +<!--l. 2695--><p class="nopar" > +<!--l. 2697--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.28 </span> <a + id="x1-810009.1.28"></a>natbib</h5> + + + <div class="verbatim" id="verbatim-57"> + \usepackage{natbib} + <br />  \usepackage{hyperref} +</div> +<!--l. 2701--><p class="nopar" > +<!--l. 2703--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.29 </span> <a + id="x1-820009.1.29"></a>nomencl</h5> +<!--l. 2704--><p class="noindent" >Example for introducing links for the page numbers: + + + <div class="verbatim" id="verbatim-58"> +      \renewcommand*{\pagedeclaration}[1]{\unskip, \hyperpage{#1}} +</div> +<!--l. 2707--><p class="nopar" > +<!--l. 2710--><p class="indent" > For equations the following might work: + + + <div class="verbatim" id="verbatim-59"> +      \renewcommand*{\eqdeclaration}[1]{% + <br />        \hyperlink{equation.#1}{(Equation~#1)}% + <br />      } + <br />    But the mapping from the equation number to the anchor name + <br />    is not available in general. +</div> +<!--l. 2717--><p class="nopar" > +<!--l. 2719--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.30 </span> <a + id="x1-830009.1.30"></a>parskip</h5> + + + <div class="verbatim" id="verbatim-60"> + \usepackage{parskip} + <br />  \usepackage{hyperref}[2012/08/20] +</div> +<!--l. 2723--><p class="nopar" > +<!--l. 2726--><p class="indent" > Both packages want to redefine <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@starttoc</span></span></span>. +<!--l. 2729--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.31 </span> <a + id="x1-840009.1.31"></a>prettyref</h5> + + + <div class="verbatim" id="verbatim-61"> +%%% example for prettyref %%% + <br />\documentclass{article} + <br />\usepackage{prettyref} + <br />\usepackage[pdftex]{hyperref} + <br /> + <br />%\newrefformat{FIG}{Figure~\ref{#1}}% without hyperref + <br />\newrefformat{FIG}{\hyperref[{#1}]{Figure~\ref*{#1}}} + <br /> + <br />\begin{document} + <br />  This is a reference to \prettyref{FIG:ONE}. + <br />  \newpage + <br />  \begin{figure} + <br />    \caption{This is my figure} + <br />    \label{FIG:ONE} + <br />  \end{figure} + <br />\end{document} + <br />%%% example for prettyref %%% + <br />       +</div> +<!--l. 2748--><p class="nopar" > +<!--l. 2750--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.32 </span> <a + id="x1-850009.1.32"></a>ntheorem</h5> + + + <div class="verbatim" id="verbatim-62"> + ntheorem-hyper.sty is an old patched version of ntheorem.sty. + <br />  Newer versions of ntheorem know the option hyperref: + <br />    \usepackage{hyperref} + <br />    \usepackage[hyperref]{ntheorem} + <br />  But there are still unsolved problems (options thref, ...). +</div> +<!--l. 2757--><p class="nopar" > +<!--l. 2759--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.33 </span> <a + id="x1-860009.1.33"></a>setspace</h5> + + + <div class="verbatim" id="verbatim-63"> + \usepackage{setspace} + <br />  \usepackage{hyperref} +</div> +<!--l. 2763--><p class="nopar" > +<!--l. 2765--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.34 </span> <a + id="x1-870009.1.34"></a>sidecap</h5> + + + <div class="verbatim" id="verbatim-64"> + Before 2002/05/24 v1.5h: + <br />    \usepackage{nameref} + <br />    \usepackage{hyperref} + <br />    \usepackage{sidecap} +</div> +<!--l. 2771--><p class="nopar" > +<!--l. 2773--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.35 </span> <a + id="x1-880009.1.35"></a>subfigure</h5> + + + <div class="verbatim" id="verbatim-65"> + 1995/03/06 v2.0: + <br />    \usepackage{subfigure} + <br />    \usepackage{hyperref} + <br />    % hypertexnames is set to false. + <br />  v2.1: + <br />    \usepackage{nameref} + <br />    \usepackage{subfigure} + <br />    \usepackage{hyperref} + <br />    or + <br />    \usepackage{hyperref} + <br />    \usepackage{subfigure} + <br />  v2.1.2: + <br />    please update + <br />  v2.1.3: + <br />    \usepackage{hyperref} + <br />    \usepackage{subfigure} + <br />    or vice versa? +</div> +<!--l. 2792--><p class="nopar" > +<!--l. 2794--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.36 </span> <a + id="x1-890009.1.36"></a>titleref</h5> + + + <div class="verbatim" id="verbatim-66"> + \usepackage{nameref} + <br />  \usepackage{titleref}% without usetoc + <br />  \usepackage{hyperref} +</div> +<!--l. 2799--><p class="nopar" > +<!--l. 2801--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.37 </span> <a + id="x1-900009.1.37"></a>tabularx</h5> +<!--l. 2803--><p class="noindent" >Linked footnotes are not supported inside environment ‘tabularx’, because they uses the optional +argument of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotetext</span></span></span>, see section ‘Limitations’. Before version 2011/09/28 6.82i hyperref had +disabled footnotes entirely by ‘hyperfootnotes=false’. +<!--l. 2809--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.38 </span> <a + id="x1-910009.1.38"></a>titlesec</h5> +<!--l. 2811--><p class="noindent" >"nameref" supports titlesec, but hyperref does not (unsolved is the anchor setting, missing with +unnumbered section, perhaps problems with page breaks with numbered ones). +<!--l. 2816--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.39 </span> <a + id="x1-920009.1.39"></a>ucs/utf8x.def</h5> +<!--l. 2818--><p class="noindent" >The first time a multibyte UTF8 sequence is called, it does some calculations and stores the result in a +macro for speeding up the next calls of that UTF8 sequence. However this makes the first call +non-expandable and will break if used in information entries or bookmarks. Package "ucs" offers +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\PrerenderUnicode</span></span></span> or <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\PreloadUnicodePage</span></span></span> to solve this: + + + <div class="verbatim" id="verbatim-67"> +    \usepackage{ucs} + <br />    \usepackage[utf8x]{inputenc} + <br />    \usepackage{hyperref}% or with option unicode + <br />    \PrerenderUnicode{^^c3^^b6}% or \PrerenderUnicodePage{1} + <br />    \hypersetup{pdftitle={Umlaut example: ^^c3^^b6}} +</div> +<!--l. 2831--><p class="nopar" > The notation with two carets avoids trouble with 8-bit bytes for the README file, you can use the +characters directly. +<!--l. 2836--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.40 </span> <a + id="x1-930009.1.40"></a>varioref</h5> +<!--l. 2837--><p class="noindent" >There are too many problems with varioref. Nobody has time to sort them out. Therefore this package is +now unsupported. +<!--l. 2841--><p class="indent" > Perhaps you are lucky and some of the features of varioref works with the following loading +order: + + + <div class="verbatim" id="verbatim-68"> +    \usepackage{nameref} + <br />    \usepackage{varioref} + <br />    \usepackage{hyperref} +</div> +<!--l. 2847--><p class="nopar" > +<!--l. 2850--><p class="indent" > Also some babel versions can be problematic. For exmample, 2005/05/21 v3.8g contains a patch for +varioref that breaks the hyperref support for varioref. +<!--l. 2856--><p class="indent" > Also unsupported: + <ul class="itemize1"> + <li class="itemize"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\Ref</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\Vref</span></span></span> do not uppercase the first letter. + </li> + <li class="itemize"><span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\vpageref[]{...}</span></span></span> On the same page a previous space is not suppressed.</li></ul> +<!--l. 2863--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.41 </span> <a + id="x1-940009.1.41"></a>verse</h5> +<!--l. 2865--><p class="noindent" >Version 2005/08/22 v2.22 contains support for hyperref. +<!--l. 2867--><p class="indent" > For older versions see example from de.comp.text.tex (2005/08/11, slightly modified): + + + <div class="verbatim" id="verbatim-69"> +  \documentclass{article} + <br /> + <br />  % package order does not matter + <br />  \usepackage{verse} + <br />  \usepackage{hyperref} + <br /> + <br />  \makeatletter + <br />  % make unique poemline anchors + <br />  \newcounter{verse@env} + <br />  \setcounter{verse@env}{0} + <br />  \let\org@verse\verse + <br />  \def\verse{% + <br />    \stepcounter{verse@env}% + <br />    \org@verse + <br />  } + <br />  \def\theHpoemline{\arabic{verse@env}.\thepoemline} + <br /> + <br />  % add anchor for before \addcontentsline in \@vsptitle + <br />  \let\org@vsptitle\@vsptitle + <br />  \def\@vsptitle{% + <br />    \phantomsection + <br />    \org@vsptitle + <br />  } + <br />  \makeatother + <br /> + <br />  \begin{document} + <br /> + <br />  \poemtitle{Poem 1} + <br />  \begin{verse} + <br />  An one-liner. + <br />  \end{verse} + <br /> + <br />  \newpage + <br /> + <br />  \poemtitle{Poem 2} + <br />  \begin{verse} + <br />  Another one-liner. + <br />  \end{verse} + <br /> + <br />  \end{document} +</div> +<!--l. 2911--><p class="nopar" > +<!--l. 2913--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.42 </span> <a + id="x1-950009.1.42"></a>vietnam</h5> + + + <div class="verbatim" id="verbatim-70"> + % pd1enc.def should be loaded before package dblaccnt: + <br />  \usepackage[PD1,OT1]{fontenc} + <br />  \usepackage{vietnam} + <br />  \usepackage{hyperref} +</div> +<!--l. 2919--><p class="nopar" > +<!--l. 2921--><p class="noindent" > + <h5 class="subsubsectionHead"><span class="titlemark">9.1.43 </span> <a + id="x1-960009.1.43"></a>XeTeX</h5> +<!--l. 2923--><p class="noindent" >Default for the encoding of bookmarks is ‘pdfencoding=auto’. That means the strings are always treated +as unicode strings. Only if the string restricts to the printable ASCII set, it is written as ASCII string. +The reason is that the <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\special</span></span></span> does not support PDFDocEncoding. +<!--l. 2931--><p class="indent" > XeTeX uses the program xdvipdfmx for PDF output generation. This program behaves a little +different from dvipdfm, because of the supported Unicode characters. Strings for bookmarks or +information entries can be output directly. The big chars (char code > 255) are written in UTF-8 and +xdvipdfmx tries to convert them to UTF-16BE. However hyperref already provides PDF strings encoded +in UTF-16BE, thus the result is a warning +<!--l. 2940--><p class="indent" > "Failed to convert input string to UTF16..." +<!--l. 2942--><p class="indent" > The best way would be, if xdvipdfm could detect the byte order marker (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\376\377</span></span></span>) and skips the +conversion if that marker is present. +<!--l. 2946--><p class="indent" > For the time being I added the following to hyperref, when option ‘pdfencoding=auto’ is set (default +for XeTeX): The string is converted back to big characters thus that the string is written as UTF-8. But +I am very unhappy with this solution. Main disadvantage: Two versions of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfstringdef</span></span></span> are +needed: +<!--l. 2953--><p class="indent" > a) The string is converted back to big characters for the "tainted keys" of xdvipdfmx +(<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">spc_pdfm.c:</span><span +class="ec-lmvtt-10"> default_taintkeys</span></span></span>). The subset hyperref uses is /Title, /Author, /Subject, +/Keywords, /Creator, /Producer, /T. Any changes of this set in xdvipdfmx cannot be detected by +hyperref. +<!--l. 2959--><p class="indent" > b) Without conversion for the other strings , providing UTF16be directly. Examples: Prefix of page +labels, some elements of formulars. +<!--l. 2963--><p class="indent" > Thus <span +class="ec-lmbx-10">each </span>application that uses <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfstringdef</span></span></span> now must check, if it defines a string +for some of the tained keys. If yes, then the call of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\pdfstringdef</span></span></span> should be preceded by +"<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\csname</span><span +class="ec-lmvtt-10"> HyPsd@XeTeXBigCharstrue\endcsname</span></span></span>". Example: package bookmark. +<!--l. 2971--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">10 </span> <a + id="x1-9700010"></a>Limitations<span class="footnote-mark"><a +href="manual5.html#fn4x0"><sup class="textsuperscript">4</sup></a></span><a + id="x1-97001f4"></a> </h3> + <h4 class="subsectionHead"><span class="titlemark">10.1 </span> <a + id="x1-9800010.1"></a>Wrapped/broken link support</h4> +<!--l. 2974--><p class="noindent" >Only few drivers support automatically wrapped/broken links, e.g. pdftex, dvipdfm, hypertex. Other +drivers lack this feature, e.g. dvips, dvipsone. +<!--l. 2978--><p class="indent" > Workarounds: + + + <ul class="itemize1"> + <li class="itemize">For long section or caption titles in the table of contents or list of figures/tables option + "linktocpage" can be used. Then the page number will be a link, and the overlong section + title is not forced into an one line link with overfull <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hbox</span></span></span> warning. + </li> + <li class="itemize">"<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\url</span></span></span>"s are caught by package "breakurl". + </li> + <li class="itemize">The option "breaklinks" is intended for internal use. But it can be used to force link wrapping, + e.g. when printing a document. However, when such a document is converted to PDF and + viewed with a PDF viewer, the active link area will be misplaced. + <!--l. 2992--><p class="noindent" >Another limitation: some penalties are "optimized" by TeX, thus there are missing break + points, especially within <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\url</span></span></span>. (See thread "hyperref.sty, breaklinks and url.sty 3.2" in + comp.text.tex 2005-09).</li></ul> +<!--l. 2998--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">10.2 </span> <a + id="x1-9900010.2"></a>Links across pages</h4> +<!--l. 3000--><p class="noindent" >In general they have problems: + <ul class="itemize1"> + <li class="itemize">Some driver doesn’t support them at all (see above). + </li> + <li class="itemize">The driver allows it, but the link result might include the footer and/or header, or an error + message can occur sometimes.</li></ul> +<!--l. 3008--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">10.3 </span> <a + id="x1-10000010.3"></a>Footnotes</h4> +<!--l. 3010--><p class="noindent" >LaTeX allows the separation of the footnote mark and the footnote text (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotemark</span></span></span>, +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotetext</span></span></span>). This interface might be enough for visual typesetting. But the relation between +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotemark</span></span></span> to <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotetext</span></span></span> is not as strong as <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\ref</span></span></span> to <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\label</span></span></span>. Therefore it is not clear in general +which <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotemark</span></span></span> references which <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotetext</span></span></span>. But that is necessary to implement hyperlinking. +Thus the implementation of hyperref does not support the optional argument of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotemark\verb</span></span></span> +and <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotetext</span></span></span>. +<!--l. 3021--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">11 </span> <a + id="x1-10100011"></a>Hints<span class="footnote-mark"><a +href="manual6.html#fn5x0"><sup class="textsuperscript">5</sup></a></span><a + id="x1-101001f5"></a> </h3> + <h4 class="subsectionHead"><span class="titlemark">11.1 </span> <a + id="x1-10200011.1"></a>Spaces in option values</h4> +<!--l. 3025--><p class="noindent" >Unhappily LaTeX strips spaces from options if they are given in <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\documentclass</span></span></span> or <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\usepackage</span></span></span> (or +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\RequirePackage</span></span></span>), e.g.: + + + <div class="verbatim" id="verbatim-71"> +    \usepackage[pdfborder=0 0 1]{hyperref} +</div> +<!--l. 3029--><p class="nopar" > Package hyperref now gets + + + <div class="verbatim" id="verbatim-72"> +    pdfborder=001 +</div> +<!--l. 3033--><p class="nopar" > and the result is an invalid PDF file. As workaround braces can be used: + + + <div class="verbatim" id="verbatim-73"> +    \usepackage[pdfborder={0 0 1}]{hyperref} +</div> +<!--l. 3038--><p class="nopar" > Some options can also be given in <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypersetup</span></span></span> + + + <div class="verbatim" id="verbatim-74"> +    \hypersetup{pdfborder=0 0 1} +</div> +<!--l. 3042--><p class="nopar" > In <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hypersetup</span></span></span> the options are directly processed as key value options (see package keyval) without +space stripping in the value part. +<!--l. 3048--><p class="indent" > Alternatively, LaTeX’s option handling system can be adapted to key value options by +one of the packages "kvoptions-patch" (from project "kvoptions") or "xkvltxp" (from project +"xsetkeys"). +<!--l. 3053--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">11.2 </span> <a + id="x1-10300011.2"></a>Index with makeindex</h4> + <ul class="itemize1"> + <li class="itemize">Package hyperref adds <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> commands by the encap mechanism (see documentation + of Makeindex), if option hyperindex is set (default). <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> uses the page anchors that + are set by hyperref at each page (default). However in the default case page numbers are used + in anchor names in arabic form. If the page numbers in other formats are used (book class + with <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\frontmatter</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\romannumbering</span></span></span>, ...), then the page anchors are not unique. Therefore + option "plainpages=false" is recommended. + </li> + <li class="itemize">The encap mechanism of Makeindex allows to use one command only (see documentation of + Makeindex). If the user sets such a command, hyperref suppresses its <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> command. With + logical markup this situation can easily be solved: + + + <div class="verbatim" id="verbatim-75"> +       \usepackage{makeidx} +  <br />      \makeindex +  <br />      \usepackage[hyperindex]{hyperref} +  <br />      \newcommand*{\main}[1]{\textbf{\hyperpage{#1}}} +  <br />      ... +  <br />      \index{Some example|main} +</div> + <!--l. 3077--><p class="nopar" > + </li> + <li class="itemize">Scientic Word/Scientific WorkPlace users can use package robustindex with hyperindex=false. + </li> + <li class="itemize">Other encap characters can be set by option "encap". Example for use of "?": + + + <div class="verbatim" id="verbatim-76"> +       \usepackage[encap=?]{hyperref} +</div> + <!--l. 3084--><p class="nopar" > + </li> + <li class="itemize">An other possibility is the insertion of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> by a style file for makeindex. For this case, + hyperref’s insertion will be disabled by "hyperindex=false". <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\hyperpage</span></span></span> will be defined regardless + of setting of hyperindex. + + + <div class="verbatim" id="verbatim-77"> + %%% cut %%% hyperindex.ist %%% cut %%% +  <br />delim_0 ", \\hyperpage{" +  <br />delim_1 ", \\hyperpage{" +  <br />delim_2 ", \\hyperpage{" +  <br />delim_n "}, \\hyperpage{" +  <br />delim_t "}" +  <br />encap_prefix "}\\" +  <br />encap_infix "{\\hyperpage{" +  <br />encap_suffix "}" +  <br />%%% cut %%% hyperindex.ist %%% cut %%% +</div> + <!--l. 3100--><p class="nopar" ></li></ul> +<!--l. 3103--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">11.3 </span> <a + id="x1-10400011.3"></a>Warning "bookmark level for unknown <foobar> defaults to 0"</h4> +<!--l. 3105--><p class="noindent" >Getting rid of it: + + + <div class="verbatim" id="verbatim-78"> +\makeatletter + <br />\providecommand*{\toclevel@<foobar>}{0} + <br />\makeatother +</div> +<!--l. 3110--><p class="nopar" > +<!--l. 3112--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">11.4 </span> <a + id="x1-10500011.4"></a>Link anchors in figures</h4> +<!--l. 3114--><p class="noindent" >The caption command increments the counter and here is the place where hyperref set the corresponding +anchor. Unhappily the caption is set below the figure, so the figure is not visible if a link jumps to a +figure. In this case, try package "hypcap.sty" that implements a method to circumvent the +problem. +<!--l. 3122--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">11.5 </span> <a + id="x1-10600011.5"></a>Additional unicode characters in bookmarks and pdf information entries:</h4> + + + <div class="verbatim" id="verbatim-79"> +\documentclass[pdftex]{article} + <br />\usepackage[unicode]{hyperref} +</div> +<!--l. 3126--><p class="nopar" > +<!--l. 3128--><p class="indent" > Support for additional unicode characters: +<!--l. 3130--><p class="indent" > Example: <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\.{a}</span></span></span> and <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\d{a}</span></span></span> +<!--l. 3132--><p class="indent" > 1. Get a list with unicode data, eg: +<!--l. 3134--><p class="indent" > http://www.unicode.org/Public/UNIDATA/UnicodeData.txt +<!--l. 3136--><p class="indent" > 2. Identify the characters (<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\.{a}</span></span></span>, <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\d{a}</span></span></span>): + + + <div class="verbatim" id="verbatim-80"> +    0227;LATIN SMALL LETTER A WITH DOT ABOVE;... + <br />    1EA1;LATIN SMALL LETTER A WITH DOT BELOW;... +</div> +<!--l. 3140--><p class="nopar" > +<!--l. 3142--><p class="indent" > 3. Calculate the octal code: +<!--l. 3144--><p class="indent" > The first characters of the line in the file are hex values, convert each byte and prepend them with a +backslash. (This will go into the PDF file.) + + + <div class="verbatim" id="verbatim-81"> +    0227 -> \002\047 + <br />    1EA1 -> \036\241 +</div> +<!--l. 3151--><p class="nopar" > +<!--l. 3153--><p class="indent" > 4. Transform into a form understood by hyperref: +<!--l. 3155--><p class="indent" > Hyperref must know where the first byte starts, this is marked by "9" (8 and 9 cannot occur in octal +numbers): + + + <div class="verbatim" id="verbatim-82"> +    \002\047 -> \9002\047 + <br />    \036\241 -> \9036\241 +</div> +<!--l. 3162--><p class="nopar" > +<!--l. 3164--><p class="indent" > Optional: "8" is used for abbreviations: + + + <div class="verbatim" id="verbatim-83"> +    \900 = \80, \901 = \81, \902 = \82, ... + <br /> + <br />    \9002\047 -> \82\047 +</div> +<!--l. 3170--><p class="nopar" > +<!--l. 3172--><p class="indent" > 5. Declare the character with LaTeX: + + + <div class="verbatim" id="verbatim-84"> +\DeclareTextCompositeCommand{\.}{PU}{a}{\82\047} + <br />\DeclareTextCompositeCommand{\d}{PU}{a}{\9036\241} + <br /> + <br />\begin{document} + <br />\section{\={a}, \d{a}, \’{a}, \.{a}} + <br />\end{document} + <br />       +</div> +<!--l. 3181--><p class="nopar" > +<!--l. 3183--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">11.6 </span> <a + id="x1-10700011.6"></a>Footnotes</h4> +<!--l. 3185--><p class="noindent" >The footnote support is rather limited. It is beyond the scope to use <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotemark</span></span></span> and <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotetext</span></span></span> +out of order or reusing <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\footnotemark</span></span></span>. Here you can either disable hyperref’s footnote support by +"hyperfootnotes=false" or fiddle with internal macros, nasty examples: + + + <div class="verbatim" id="verbatim-85"> +\documentclass{article} + <br />\usepackage{hyperref} + <br />\begin{document} + <br />Hello% + <br />\footnote{The first footnote} + <br />World% + <br />\addtocounter{footnote}{-1}% + <br />\addtocounter{Hfootnote}{-1}% + <br />\footnotemark. + <br />\end{document} + <br /> + <br />  or + <br /> + <br />\documentclass{article} + <br /> + <br />\usepackage{hyperref} + <br /> + <br />\begin{document} + <br /> + <br />\makeatletter + <br /> + <br />A% + <br />  \footnotemark + <br />  \let\saved@Href@A\Hy@footnote@currentHref + <br />  % remember link name + <br />B% + <br />  \footnotemark + <br />  \let\saved@Href@B\Hy@footnote@currentHref + <br />b% + <br />  \addtocounter{footnote}{-1}% + <br />  \addtocounter{Hfootnote}{-1}% generate the same anchor + <br />  \footnotemark + <br />C% + <br />  \footnotemark + <br />  \let\saved@Href@C\Hy@footnote@currentHref + <br /> + <br />  \addtocounter{footnote}{-2}% + <br />  \let\Hy@footnote@currentHref\saved@Href@A + <br />\footnotetext{AAAA}% + <br />  \addtocounter{footnote}{1}% + <br />  \let\Hy@footnote@currentHref\saved@Href@B + <br />\footnotetext{BBBBB}% + <br />  \addtocounter{footnote}{1}% + <br />  \let\Hy@footnote@currentHref\saved@Href@C + <br />\footnotetext{CCCC}% + <br /> + <br />\end{document} +</div> +<!--l. 3239--><p class="nopar" > + +<!--l. 3241--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">11.7 </span> <a + id="x1-10800011.7"></a>Subordinate counters</h4> +<!--l. 3243--><p class="noindent" >Some counters do not have unique values and require the value of other counters to be unique. For +example, sections or figures might be numbered within chapters or <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\newtheorem</span></span></span> is used with an +optional counter argument. Internally LaTeX uses <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@addtoreset</span></span></span> to reset a counter in dependency to +another counter. Package hyperref hooks into <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@addtoreset</span></span></span> to catch this situation. Also <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\numberwithin</span></span></span> +of package amsmath is caught by hyperref. +<!--l. 3253--><p class="indent" > However, if the definition of subordinate counters take place before hyperref is loaded, the old +meaning of <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\@addtoreset</span></span></span> is called without hyperref’s additions. Then the companion counter macro +<span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\theH<counter></span></span></span> can be redefined accordingly. Or move the definition of subordinate counters after +hyperref is loaded. +<!--l. 3259--><p class="indent" > Example for <span class="obeylines-h"><span class="verb"><span +class="ec-lmvtt-10">\newtheorem</span></span></span>, problematic case: + + + <div class="verbatim" id="verbatim-86"> +    \newtheorem{corA}{CorollaryA}[section] + <br />    \usepackage{hyperref} +</div> +<!--l. 3263--><p class="nopar" > Solution a) + + + <div class="verbatim" id="verbatim-87"> +    \usepackage{hyperref} + <br />    \newtheorem{corA}{CorollaryA}[section} +</div> +<!--l. 3268--><p class="nopar" > Solution b) + + + <div class="verbatim" id="verbatim-88"> +    \newtheorem{corA}{CorollaryA}[section] + <br />    \usepackage{hyperref} + <br />    \newcommand*{\theHcorA}{\theHsection.\number\value{corA}} +</div> +<!--l. 3274--><p class="nopar" > +<!--l. 3276--><p class="noindent" > + <h3 class="sectionHead"><span class="titlemark">12 </span> <a + id="x1-10900012"></a>History and acknowledgments</h3> +<!--l. 3278--><p class="noindent" >The original authors of <span +class="ec-lmss-10">hyperbasics.tex </span>and <span +class="ec-lmss-10">hypertex.sty</span>, from which this package descends, are +Tanmoy Bhattacharya and Thorsten Ohl. Package <span +class="ec-lmss-10">hyperref </span>started as a simple port of their +work to <span class="HoLogo-LaTeX2e"><span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span><span class="HoLogo-2">2</span><span class="HoLogo-e"><span +class="lmmi-10">ε</span></span></span> standards, but eventually I rewrote nearly everything, because I didn’t +understand a lot of the original, and was only interested in getting it to work with <span class="HoLogo-LaTeX">L<span class="HoLogo-a">A</span><span class="HoLogo-TeX">T<span class="HoLogo-e">E</span>X</span></span>. I +would like to thank Arthur Smith, Tanmoy Bhattacharya, Mark Doyle, Paul Ginsparg, David +Carlisle, T. V. Raman and Leslie Lamport for comments, requests, thoughts and code to +get the package into its first useable state. Various other people are mentioned at the point +in the source where I had to change the code in later versions because of problems they +found. +<!--l. 3291--><p class="indent" > Tanmoy found a great many of the bugs, and (even better) often provided fixes, which has +made the package more robust. The days spent on Rev<span class="TEX">T<span +class="E">E</span>X</span> are entirely due to him! The +investigations of Bill Moss into the later versions including native PDF support uncovered a +good many bugs, and his testing is appreciated. Hans Hagen provided a lot of insight into +PDF. +<!--l. 3299--><p class="indent" > Berthold Horn provided help, encouragement and sponsorship for the <span +class="ec-lmss-10">dvipsone </span>and <span +class="ec-lmss-10">dviwindo </span>drivers. +Sergey Lesenko provided the changes needed for <span +class="ec-lmss-10">dvipdf</span>, and Hàn Thê´ Thành supplied all +the information needed for <span +class="ec-lmss-10">pdftex</span>. Patrick Daly kindly updated his <span +class="ec-lmss-10">natbib </span>package to allow +easy integration with <span +class="ec-lmss-10">hyperref</span>. Michael Mehlich’s <span +class="ec-lmss-10">hyper </span>package (developed in parallel with +<span +class="ec-lmss-10">hyperref</span>) showed me solutions for some problems. Hopefully the two packages will combine one +day. +<!--l. 3308--><p class="indent" > The forms creation section owes a great deal to: T. V. Raman, for encouragement, support and +ideas; Thomas Merz, whose book <span +class="ec-lmri-10">Web Publishing with Acrobat/PDF </span>provided crucial insights; +D. P. Story, whose detailed article about pdfmarks and forms solved many practical problems; and Hans +Hagen, who explained how to do it in <span +class="ec-lmss-10">pdftex</span>. +<!--l. 3314--><p class="indent" > Steve Peter recreated the manual source in July 2003 after it had been lost. +<!--l. 3317--><p class="indent" > Especial extra thanks to David Carlisle for the <span +class="ec-lmss-10">backref </span>module, the ps2pdf and dviwindo support, +frequent general rewrites of my bad code, and for working on changes to the <span +class="ec-lmss-10">xr </span>package to suit +<span +class="ec-lmss-10">hyperref</span>. + + + <h3 class="sectionHead"><span class="titlemark">13 </span> <a + id="x1-11000013"></a>GNU Free Documentation License</h3> +<!--l. 6--><p class="noindent" >Version 1.2, November 2002 +<!--l. 9--><p class="indent" > Copyright <span +class="lmsy-10">©</span> 2000,2001,2002 Free Software Foundation, Inc.<br +class="newline" />59 Temple Place, Suite 330, Boston, MA 02111-1307 USA<br +class="newline" />Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is +not allowed. +<!--l. 15--><p class="noindent" > + <h4 class="likesubsectionHead"><a + id="x1-11100013"></a>Preamble</h4> +<!--l. 17--><p class="noindent" >The purpose of this License is to make a manual, textbook, or other functional and useful document +“free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with +or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for +the author and publisher a way to get credit for their work, while not being considered responsible for +modifications made by others. +<!--l. 25--><p class="indent" > This License is a kind of “copyleft”, which means that derivative works of the document must +themselves be free in the same sense. It complements the GNU General Public License, which is a +copyleft license designed for free software. +<!--l. 30--><p class="indent" > We have designed this License in order to use it for manuals for free software, because free software +needs free documentation: a free program should come with manuals providing the same +freedoms that the software does. But this License is not limited to software manuals; it can +be used for any textual work, regardless of subject matter or whether it is published as a +printed book. We recommend this License principally for works whose purpose is instruction or +reference. +<!--l. 39--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.1 </span> <a + id="x1-11200013.1"></a>Applicability and definitions</h4> +<!--l. 42--><p class="noindent" >This License applies to any manual or other work, in any medium, that contains a notice placed by +the copyright holder saying it can be distributed under the terms of this License. Such a +notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under +the conditions stated herein. The “Document”, below, refers to any such manual or work. +Any member of the public is a licensee, and is addressed as “you”. You accept the license +if you copy, modify or distribute the work in a way requiring permission under copyright +law. +<!--l. 52--><p class="indent" > A “Modified Version” of the Document means any work containing the Document or a +portion of it, either copied verbatim, or with modifications and/or translated into another +language. +<!--l. 56--><p class="indent" > A “Secondary Section” is a named appendix or a front-matter section of the Document that deals +exclusively with the relationship of the publishers or authors of the Document to the Document’s overall +subject (or to related matters) and contains nothing that could fall directly within that overall subject. +(Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical connection with the subject or with +related matters, or of legal, commercial, philosophical, ethical or political position regarding +them. +<!--l. 67--><p class="indent" > The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of +Invariant Sections, in the notice that says that the Document is released under this License. If a section +does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The +Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections +then there are none. + + +<!--l. 75--><p class="indent" > The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or +Back-Cover Texts, in the notice that says that the Document is released under this License. +A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 +words. +<!--l. 80--><p class="indent" > A “Transparent” copy of the Document means a machine-readable copy, represented in a format +whose specification is available to the general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or +(for drawings) some widely available drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an +otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or +discourage subsequent modification by readers is not Transparent. An image format is not +Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called +“Opaque”. +<!--l. 93--><p class="indent" > Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo +input format, <span class="LATEX">L<span class="A">A</span><span class="TEX">T<span +class="E">E</span>X</span></span> input format, SGML or XML using a publicly available DTD, and +standard-conforming simple HTML, PostScript or PDF designed for human modification. +Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include +proprietary formats that can be read and edited only by proprietary word processors, SGML +or XML for which the DTD and/or processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word processors for output purposes +only. +<!--l. 104--><p class="indent" > The “Title Page” means, for a printed book, the title page itself, plus such following pages as are +needed to hold, legibly, the material this License requires to appear in the title page. For works in +formats which do not have any title page as such, “Title Page” means the text near the +most prominent appearance of the work’s title, preceding the beginning of the body of the +text. +<!--l. 111--><p class="indent" > A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely +XYZ or contains XYZ in parentheses following text that translates XYZ in another language. +(Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, +“Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you +modify the Document means that it remains a section “Entitled XYZ” according to this +definition. +<!--l. 119--><p class="indent" > The Document may include Warranty Disclaimers next to the notice which states that this +License applies to the Document. These Warranty Disclaimers are considered to be included by +reference in this License, but only as regards disclaiming warranties: any other implication +that these Warranty Disclaimers may have is void and has no effect on the meaning of this +License. +<!--l. 127--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.2 </span> <a + id="x1-11300013.2"></a>Verbatim copying</h4> +<!--l. 130--><p class="noindent" >You may copy and distribute the Document in any medium, either commercially or noncommercially, +provided that this License, the copyright notices, and the license notice saying this License applies to the +Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this +License. You may not use technical measures to obstruct or control the reading or further copying of the +copies you make or distribute. However, you may accept compensation in exchange for copies. +If you distribute a large enough number of copies you must also follow the conditions in +section <a +href="#x1-11400013.3">13.3<!--tex4ht:ref: copying --></a>. +<!--l. 141--><p class="indent" > You may also lend copies, under the same conditions stated above, and you may publicly display +copies. + + +<!--l. 145--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.3 </span> <a + id="x1-11400013.3"></a>Copying in quantity</h4> +<!--l. 148--><p class="noindent" >If you publish printed copies (or copies in media that commonly have printed covers) of the Document, +numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front +cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly +identify you as the publisher of these copies. The front cover must present the full title with all +words of the title equally prominent and visible. You may add other material on the covers in +addition. Copying with changes limited to the covers, as long as they preserve the title of +the Document and satisfy these conditions, can be treated as verbatim copying in other +respects. +<!--l. 161--><p class="indent" > If the required texts for either cover are too voluminous to fit legibly, you should put the first ones +listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent +pages. +<!--l. 166--><p class="indent" > If you publish or distribute Opaque copies of the Document numbering more than 100, you must +either include a machine-readable Transparent copy along with each Opaque copy, or state in or with +each Opaque copy a computer-network location from which the general network-using public has access +to download using public-standard network protocols a complete Transparent copy of the Document, free +of added material. If you use the latter option, you must take reasonably prudent steps, when you +begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will +remain thus accessible at the stated location until at least one year after the last time you +distribute an Opaque copy (directly or through your agents or retailers) of that edition to the +public. +<!--l. 179--><p class="indent" > It is requested, but not required, that you contact the authors of the Document well before +redistributing any large number of copies, to give them a chance to provide you with an updated version +of the Document. +<!--l. 184--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.4 </span> <a + id="x1-11500013.4"></a>Modifications</h4> +<!--l. 187--><p class="noindent" >You may copy and distribute a Modified Version of the Document under the conditions of sections <a +href="#x1-11300013.2">13.2<!--tex4ht:ref: verbatim --></a> +and <a +href="#x1-11400013.3">13.3<!--tex4ht:ref: copying --></a> above, provided that you release the Modified Version under precisely this License, with the +Modified Version filling the role of the Document, thus licensing distribution and modification of the +Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified +Version: +<!--l. 196--><p class="indent" > + <ol class="enumerate1" > + <li + class="enumerate" id="x1-115002x1">Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, + and from those of previous versions (which should, if there were any, be listed in the History + section of the Document). You may use the same title as a previous version if the original + publisher of that version gives permission. + </li> + <li + class="enumerate" id="x1-115004x2">List on the Title Page, as authors, one or more persons or entities responsible for authorship + of the modifications in the Modified Version, together with at least five of the principal + authors of the Document (all of its principal authors, if it has fewer than five), unless they + release you from this requirement. + </li> + <li + class="enumerate" id="x1-115006x3">State on the Title page the name of the publisher of the Modified Version, as the publisher. + + + </li> + <li + class="enumerate" id="x1-115008x4">Preserve all the copyright notices of the Document. + </li> + <li + class="enumerate" id="x1-115010x5">Add an appropriate copyright notice for your modifications adjacent to the other copyright + notices. + </li> + <li + class="enumerate" id="x1-115012x6">Include, immediately after the copyright notices, a license notice giving the public permission + to use the Modified Version under the terms of this License, in the form shown in the + Addendum below. + </li> + <li + class="enumerate" id="x1-115014x7">Preserve in that license notice the full lists of Invariant Sections and required Cover Texts + given in the Document’s license notice. + </li> + <li + class="enumerate" id="x1-115016x8">Include an unaltered copy of this License. + </li> + <li + class="enumerate" id="x1-115018x9">Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at + least the title, year, new authors, and publisher of the Modified Version as given on the Title + Page. If there is no section Entitled “History” in the Document, create one stating the title, + year, authors, and publisher of the Document as given on its Title Page, then add an item + describing the Modified Version as stated in the previous sentence. + </li> + <li + class="enumerate" id="x1-115020x10">Preserve the network location, if any, given in the Document for public access to a + Transparent copy of the Document, and likewise the network locations given in the Document + for previous versions it was based on. These may be placed in the “History” section. You + may omit a network location for a work that was published at least four years before the + Document itself, or if the original publisher of the version it refers to gives permission. + </li> + <li + class="enumerate" id="x1-115022x11">For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the + section, and preserve in the section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + </li> + <li + class="enumerate" id="x1-115024x12">Preserve all the Invariant Sections of the Document, unaltered in their text and in their + titles. Section numbers or the equivalent are not considered part of the section titles. + </li> + <li + class="enumerate" id="x1-115026x13">Delete any section Entitled “Endorsements”. Such a section may not be included in the + Modified Version. + </li> + <li + class="enumerate" id="x1-115028x14">Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with + any Invariant Section. + </li> + <li + class="enumerate" id="x1-115030x15">Preserve any Warranty Disclaimers. + </li></ol> + + +<!--l. 247--><p class="indent" > If the Modified Version includes new front-matter sections or appendices that qualify as Secondary +Sections and contain no material copied from the Document, you may at your option designate some or +all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in +the Modified Version’s license notice. These titles must be distinct from any other section +titles. +<!--l. 254--><p class="indent" > You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of +your Modified Version by various parties–for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a standard. +<!--l. 260--><p class="indent" > You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as +a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any +one entity. If the Document already includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, you may not add another; but you +may replace the old one, on explicit permission from the previous publisher that added the old +one. +<!--l. 270--><p class="indent" > The author(s) and publisher(s) of the Document do not by this License give permission to use their +names for publicity for or to assert or imply endorsement of any Modified Version. +<!--l. 275--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.5 </span> <a + id="x1-11600013.5"></a>Combining documents</h4> +<!--l. 278--><p class="noindent" >You may combine the Document with other documents released under this License, under the terms +defined in section <a +href="#x1-11500013.4">13.4<!--tex4ht:ref: modifications --></a> above for modified versions, provided that you include in the combination all of +the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant +Sections of your combined work in its license notice, and that you preserve all their Warranty +Disclaimers. +<!--l. 286--><p class="indent" > The combined work need only contain one copy of this License, and multiple identical Invariant +Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name +but different contents, make the title of each such section unique by adding at the end of it, in +parentheses, the name of the original author or publisher of that section if known, or else a unique +number. Make the same adjustment to the section titles in the list of Invariant Sections in the license +notice of the combined work. +<!--l. 295--><p class="indent" > In the combination, you must combine any sections Entitled “History” in the various original +documents, forming one section Entitled “History”; likewise combine any sections Entitled +“Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled +“Endorsements”. +<!--l. 302--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.6 </span> <a + id="x1-11700013.6"></a>Collections of documents</h4> +<!--l. 305--><p class="noindent" >You may make a collection consisting of the Document and other documents released under this License, +and replace the individual copies of this License in the various documents with a single copy that is +included in the collection, provided that you follow the rules of this License for verbatim copying of each +of the documents in all other respects. +<!--l. 311--><p class="indent" > You may extract a single document from such a collection, and distribute it individually under this +License, provided you insert a copy of this License into the extracted document, and follow this License +in all other respects regarding verbatim copying of that document. +<!--l. 317--><p class="noindent" > + + + <h4 class="subsectionHead"><span class="titlemark">13.7 </span> <a + id="x1-11800013.7"></a>Aggregation with independent works</h4> +<!--l. 320--><p class="noindent" >A compilation of the Document or its derivatives with other separate and independent documents or +works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright +resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what +the individual works permit. When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves derivative works of the +Document. +<!--l. 329--><p class="indent" > If the Cover Text requirement of section <a +href="#x1-11400013.3">13.3<!--tex4ht:ref: copying --></a> is applicable to these copies of the Document, then if +the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed +on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the +Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole +aggregate. +<!--l. 338--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.8 </span> <a + id="x1-11900013.8"></a>Translation</h4> +<!--l. 341--><p class="noindent" >Translation is considered a kind of modification, so you may distribute translations of the Document +under the terms of section <a +href="#x1-11500013.4">13.4<!--tex4ht:ref: modifications --></a>. Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include translations of some or all Invariant +Sections in addition to the original versions of these Invariant Sections. You may include a translation of +this License, and all the license notices in the Document, and any Warranty Disclaimers, +provided that you also include the original English version of this License and the original +versions of those notices and disclaimers. In case of a disagreement between the translation +and the original version of this License or a notice or disclaimer, the original version will +prevail. +<!--l. 355--><p class="indent" > If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the +requirement (section <a +href="#x1-11500013.4">13.4<!--tex4ht:ref: modifications --></a>) to Preserve its Title (section <a +href="#x1-11200013.1">13.1<!--tex4ht:ref: applicability --></a>) will typically require changing the actual +title. +<!--l. 362--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.9 </span> <a + id="x1-12000013.9"></a>Termination</h4> +<!--l. 365--><p class="noindent" >You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under +this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so long as such parties remain +in full compliance. +<!--l. 374--><p class="noindent" > + <h4 class="subsectionHead"><span class="titlemark">13.10 </span> <a + id="x1-12100013.10"></a>Future revisions of this license</h4> +<!--l. 377--><p class="noindent" >The Free Software Foundation may publish new, revised versions of the GNU Free Documentation +License from time to time. Such new versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/. +<!--l. 383--><p class="indent" > Each version of the License is given a distinguishing version number. If the Document specifies that a +particular numbered version of this License “or any later version” applies to it, you have the option of +following the terms and conditions either of that specified version or of any later version that has been +published (not as a draft) by the Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not as a draft) by the Free Software +Foundation. + + +<!--l. 393--><p class="noindent" > + <h4 class="likesubsectionHead"><a + id="x1-12200013.10"></a>Addendum: how to use this license for your documents</h4> +<!--l. 395--><p class="noindent" >To use this License in a document you have written, include a copy of the License in the document and +put the following copyright and license notices just after the title page: +<!--l. 399--><p class="indent" > + <div class="quote"> + <!--l. 400--><p class="noindent" >Copyright <span +class="lmsy-10">©</span> YEAR YOUR NAME. Permission is granted to copy, distribute and/or + modify this document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software Foundation; with no + Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the + license is included in the section entitled “GNU Free Documentation License”.</div> +<!--l. 409--><p class="indent" > If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” +line with this: +<!--l. 412--><p class="indent" > with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and +with the Back-Cover Texts being LIST. +<!--l. 415--><p class="indent" > If you have Invariant Sections without Cover Texts, or some other combination of the three, merge +those two alternatives to suit the situation. +<!--l. 419--><p class="indent" > If your document contains nontrivial examples of program code, we recommend releasing these +examples in parallel under your choice of free software license, such as the GNU General Public License, +to permit their use in free software. + + + +</body></html> + + + + diff --git a/macros/latex/contrib/hyperref/doc/manual.pdf b/macros/latex/contrib/hyperref/doc/manual.pdf Binary files differnew file mode 100644 index 0000000000..1cdd6376ea --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual.pdf diff --git a/macros/latex/contrib/hyperref/doc/manual2.html b/macros/latex/contrib/hyperref/doc/manual2.html new file mode 100644 index 0000000000..4d185dc32f --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual2.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> + <div class="footnote-text"> + <!--l. 205--><p class="indent" > <span class="footnote-mark"><a + id="fn1x0"> <sup class="textsuperscript">1</sup></a></span><span +class="ec-lmr-8">This is borrowed from an article by Arthur Smith.</span></div> + +</body></html> diff --git a/macros/latex/contrib/hyperref/doc/manual3.html b/macros/latex/contrib/hyperref/doc/manual3.html new file mode 100644 index 0000000000..9fe14317ea --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual3.html @@ -0,0 +1,24 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> + <div class="footnote-text"> + <!--l. 270--><p class="indent" > <span class="footnote-mark"><a + id="fn2x0"> <sup class="textsuperscript">2</sup></a></span><span +class="ec-lmr-8">Make sure you turn off the partial font downloading supported by </span><span +class="ec-lmss-8">dvips </span><span +class="ec-lmr-8">and </span><span +class="ec-lmss-8">dvipsone </span><span +class="ec-lmr-8">in favor of Distiller’s own</span> + <span +class="ec-lmr-8">system.</span></div> + +</body></html> diff --git a/macros/latex/contrib/hyperref/doc/manual4.html b/macros/latex/contrib/hyperref/doc/manual4.html new file mode 100644 index 0000000000..fd0e5d8fc2 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual4.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> + <div class="footnote-text"> + <span class="footnote-mark"><a + id="fn3x0"> <sup class="textsuperscript">3</sup></a></span><span +class="ec-lmr-8">This section moved from the README file, needs more integration into the manual</span></div> + +</body></html> diff --git a/macros/latex/contrib/hyperref/doc/manual5.html b/macros/latex/contrib/hyperref/doc/manual5.html new file mode 100644 index 0000000000..9dac190d9b --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual5.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> + <div class="footnote-text"> + <span class="footnote-mark"><a + id="fn4x0"> <sup class="textsuperscript">4</sup></a></span><span +class="ec-lmr-8">This section moved from the README file, needs more integration into the manual</span></div> + +</body></html> diff --git a/macros/latex/contrib/hyperref/doc/manual6.html b/macros/latex/contrib/hyperref/doc/manual6.html new file mode 100644 index 0000000000..b0bc75179c --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/manual6.html @@ -0,0 +1,18 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title></title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)"> +<!-- html --> +<meta name="src" content="manual.tex"> +<link rel="stylesheet" type="text/css" href="manual.css"> +</head><body +> + <div class="footnote-text"> + <span class="footnote-mark"><a + id="fn5x0"> <sup class="textsuperscript">5</sup></a></span><span +class="ec-lmr-8">This section moved from the README file, needs more integration into the manual</span></div> + +</body></html> diff --git a/macros/latex/contrib/hyperref/doc/options.pdf b/macros/latex/contrib/hyperref/doc/options.pdf Binary files differnew file mode 100644 index 0000000000..30ed7fe003 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/options.pdf diff --git a/macros/latex/contrib/hyperref/doc/paper.pdf b/macros/latex/contrib/hyperref/doc/paper.pdf Binary files differnew file mode 100644 index 0000000000..5b5977bf89 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/paper.pdf diff --git a/macros/latex/contrib/hyperref/doc/slides.pdf b/macros/latex/contrib/hyperref/doc/slides.pdf Binary files differnew file mode 100644 index 0000000000..1d98335b32 --- /dev/null +++ b/macros/latex/contrib/hyperref/doc/slides.pdf diff --git a/macros/latex/contrib/hyperref/hluatex.dtx b/macros/latex/contrib/hyperref/hluatex.dtx new file mode 100644 index 0000000000..364e9d60c2 --- /dev/null +++ b/macros/latex/contrib/hyperref/hluatex.dtx @@ -0,0 +1,2034 @@ +% \iffalse +%% Source File: hluatex.dtx +%% Copyright 2016 Oberdiek Package Support Group +%% +%% +%% Derived from hpdftex.def +%% +%% This file may be distributed under the terms of the LPPL. +%% See README for details. +% +%<*driver> +\documentclass{ltxdoc} +\ifx\Umathchardef\undefined\usepackage[T1]{fontenc}\fi +\begin{document} + \GetFileInfo{hluatex.def}% + \title{hluatex.def} + \date{}% + \author{Oberdiek Package Support Group} + \maketitle + \DocInput{hluatex.dtx}% +\end{document} +%</driver> +% \fi +% \StopEventually{} +% +% \begin{macrocode} +%<*luatex> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% remains of luatex85 package +\protected\def\pdfcatalog {\pdfextension catalog } + +\protected\def\pdflastannot {\numexpr\pdffeedback lastannot\relax} +\protected\def\pdflastlink {\numexpr\pdffeedback lastlink\relax} +\protected\def\pdflastobj {\numexpr\pdffeedback lastobj\relax} + + +\protected\edef\pdflinkmargin {\pdfvariable linkmargin} +\protected\def\pdfliteral {\pdfextension literal} + +\protected\def\pdfobj {\pdfextension obj } +\protected\edef\pdfcompresslevel {\pdfvariable compresslevel} +\protected\edef\pdfpageattr {\pdfvariable pageattr} + +\protected\edef\pdfpageresources {\pdfvariable pageresources} +\protected\edef\pdfpagesattr {\pdfvariable pagesattr} + +\protected\def\pdfrefobj {\pdfextension refobj } + +\protected\def\pdfstartlink {\pdfextension startlink } +\protected\def\pdfendlink {\pdfextension endlink\relax} + +\protected\def\pdfoutline {\pdfextension outline } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\pdf@ifdraftmode{% + \let\Hy@PutCatalog\ltx@gobble +}{% + \let\Hy@PutCatalog\pdfcatalog +} +\ifHy@pdfpagelabels + \def\HyPL@StorePageLabel#1{% + \toks@\expandafter{\HyPL@Labels}% + \xdef\HyPL@Labels{% + \the\toks@ + \the\Hy@abspage<<#1>>% + }% + }% + \RequirePackage{atveryend}[2009/12/07]% + \AtVeryEndDocument{% + \HyPL@SetPageLabels + }% +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@escapestring\endcsname\relax + \begingroup + \catcode`\|=0 % + \@makeother\\% + |@firstofone{|endgroup + |def|Hy@pstringdef#1#2{% + |begingroup + |edef~{|string~}% + |xdef|Hy@gtemp{#2}% + |endgroup + |let#1|Hy@gtemp + |@onelevel@sanitize#1% + |edef#1{|expandafter|Hy@ExchangeBackslash#1\|@nil}% + |edef#1{|expandafter|Hy@ExchangeLeftParenthesis#1(|@nil}% + |edef#1{|expandafter|Hy@ExchangeRightParenthesis#1)|@nil}% + }% + |def|Hy@ExchangeBackslash#1\#2|@nil{% + #1% + |ifx|\#2|\%% + |else + \\% + |ltx@ReturnAfterFi{% + |Hy@ExchangeBackslash#2|@nil + }% + |fi + }% + }% + \def\Hy@ExchangeLeftParenthesis#1(#2\@nil{% + #1% + \ifx\\#2\\% + \else + \@backslashchar(% + \ltx@ReturnAfterFi{% + \Hy@ExchangeLeftParenthesis#2\@nil + }% + \fi + }% + \def\Hy@ExchangeRightParenthesis#1)#2\@nil{% + #1% + \ifx\\#2\\% + \else + \@backslashchar)% + \ltx@ReturnAfterFi{% + \Hy@ExchangeRightParenthesis#2\@nil + }% + \fi + }% +\else + \def\Hy@pstringdef#1#2{% + \begingroup + \edef~{\string~}% + \xdef\Hy@gtemp{\pdf@escapestring{#2}}% + \endgroup + \let#1\Hy@gtemp + }% +\fi +\providecommand*{\XR@ext}{pdf} +\Hy@setbreaklinks{true} +\def\HyPat@ObjRef{% + [0-9]*[1-9][0-9]* 0 R% +} + +\edef\Hy@pdfminorversion{\pdfvariable minorversion}% + \ifHy@ocgcolorlinks + \ifnum\Hy@pdfminorversion<5 % + \kvsetkeys{Hyp}{pdfversion=1.5}% + \fi + \fi + \ifHy@setpdfversion + \ifnum\Hy@pdfversion<5 % + \ltx@IfUndefined{pdfobjcompresslevel}{% + }{% + \ifHy@verbose + \Hy@InfoNoLine{% + PDF object streams are disabled, because they are% + \MessageBreak + not supported in requested PDF version % + 1.\Hy@pdfversion + }% + \fi + \pdfobjcompresslevel=\ltx@zero + }% + \fi + \ifnum\Hy@pdfminorversion=\Hy@pdfversion\relax + \else + \let\Hy@temp\ltx@empty + \def\Hy@temp@A#1#2{% + \ifnum#1>\ltx@zero + \edef\Hy@temp{% + \Hy@temp + \space\space + \the#1\space #2% + \ifnum#1=\ltx@one\else s\fi + \MessageBreak + }% + \fi + }% + \Hy@temp@A\pdflastobj{PDF object}% + \Hy@temp@A\lastsavedboxresourceindex{form XObject}% + \Hy@temp@A\lastsavedimageresourceindex{image XObject}% + \Hy@temp@A\pdflastannot{annotation}% + \ltx@IfUndefined{pdflastlink}{% + }{% + \Hy@temp@A\pdflastlink{link}% + }% + \ifx\Hy@temp\ltx@empty + \Hy@pdfminorversion=\Hy@pdfversion\relax + \else + \let\Hy@temp@A\ltx@empty + \ifnum\Hy@pdfversion=4 % + \IfFileExists{pdf14.sty}{% + \def\Hy@temp@A{% + \MessageBreak + Or \string\RequirePackage{pdf14} can be used% + \MessageBreak + before \string\documentclass\space as shortcut% + }% + }{}% + \fi + \Hy@WarningNoLine{% + The PDF version number could not be set,\MessageBreak + because some PDF objects are already written:% + \MessageBreak + \Hy@temp + The version should be set as early as possible:% + \MessageBreak + \space\space + \expandafter\string\Hy@pdfminorversion=\Hy@pdfversion + \string\relax + \ifnum\Hy@pdfversion<5 % + \ltx@ifundefined{pdfobjcompresslevel}{% + }{% + \MessageBreak + \space\space + \string\pdfobjcompresslevel=0\string\relax + }% + \fi + \Hy@temp@A + }% + \fi + \fi + \PackageInfo{hyperref}{% + \expandafter\string\Hy@pdfminorversion + :=\number\Hy@pdfversion\space + }% + \fi + \edef\Hy@pdfversion{\number\Hy@pdfminorversion}% + +\Hy@DisableOption{pdfversion}% +\ifHy@ocgcolorlinks + \pdf@ifdraftmode{}{% + \immediate\pdfobj{% + <<% + /Type/OCG% + /Name(View)% + /Usage<<% + /Print<<% + /PrintState/OFF% + >>% + /View<<% + /ViewState/ON% + >>% + >>% + >>% + }% + \edef\OBJ@OCG@view{\the\pdflastobj\space 0 R}% + \immediate\pdfobj{% + <<% + /Type/OCG% + /Name(Print)% + /Usage<<% + /Print<<% + /PrintState/ON% + >>% + /View<<% + /ViewState/OFF% + >>% + >>% + >>% + }% + \edef\OBJ@OCG@print{\the\pdflastobj\space 0 R}% + \immediate\pdfobj{% + [% + \OBJ@OCG@view\space\OBJ@OCG@print + ]% + }% + \edef\OBJ@OCGs{\the\pdflastobj\space 0 R}% + \pdfcatalog{% + /OCProperties<<% + /OCGs \OBJ@OCGs + /D<<% + /OFF[\OBJ@OCG@print]% + /AS[% + <<% + /Event/View% + /OCGs \OBJ@OCGs + /Category[/View]% + >>% + <<% + /Event/Print% + /OCGs \OBJ@OCGs + /Category[/Print]% + >>% + <<% + /Event/Export% + /OCGs \OBJ@OCGs + /Category[/Print]% + >>% + ]% + >>% + >>% + }% + \begingroup + \edef\x{\endgroup + \pdfpageresources{% + \the\pdfpageresources + /Properties<<% + /OCView \OBJ@OCG@view + /OCPrint \OBJ@OCG@print + >>% + }% + }% + \x + }% + \Hy@AtBeginDocument{% + \def\Hy@colorlink#1{% + \begingroup + \ifHy@ocgcolorlinks + \def\Hy@ocgcolor{#1}% + \setbox0=\hbox\bgroup\color@begingroup + \else + \HyColor@UseColor#1% + \fi + }% + \def\Hy@endcolorlink{% + \ifHy@ocgcolorlinks + \color@endgroup\egroup + \mbox{% + \pdfliteral page{/OC/OCPrint BDC}% + \rlap{\copy0}% + \pdfliteral page{EMC/OC/OCView BDC}% + \begingroup + \expandafter\HyColor@UseColor\Hy@ocgcolor + \box0 % + \endgroup + \pdfliteral page{EMC}% + }% + \fi + \endgroup + }% + }% +\else + \Hy@DisableOption{ocgcolorlinks}% +\fi +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \expandafter\endgroup + \expandafter\pdflinkmargin\the\dimen@\relax +} +\ifx\pdfstartlink\@undefined% less than version 14 + \let\pdfstartlink\pdfannotlink + \let\pdflinkmargin\@tempdima + \let\saveboxresource\pdfform + \let\lastsavedboxresourceindex\pdflastform + \let\useboxresource\pdfrefform +\else + \pdflinkmargin1pt % +\fi +\providecommand*\@pdfview{XYZ} +\Hy@WrapperDef\new@pdflink#1{% + \ifhmode + \@savsf\spacefactor + \fi + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}% + \Hy@DestName\Hy@pstringDest\@pdfview + \Hy@RestoreLastskip + \ifhmode + \spacefactor\@savsf + \fi +} +\let\pdf@endanchor\@empty +\def\Hy@DestName#1#2{% + \pdfextension dest name{#1}#2\relax +} +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\def\Hy@undefinedname{UNDEFINED} +\def\find@pdflink#1#2{% + \leavevmode + \protected@edef\Hy@testname{#2}% + \ifx\Hy@testname\@empty + \Hy@Warning{% + Empty destination name,\MessageBreak + using `\Hy@undefinedname'% + }% + \let\Hy@testname\Hy@undefinedname + \else + \Hy@pstringdef\Hy@testname{% + \expandafter\HyperDestNameFilter\expandafter{\Hy@testname}% + }% + \fi + \Hy@StartlinkName{% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\CurrentBorderColor\relax + \else + /C[\CurrentBorderColor]% + \fi + }\Hy@testname + \expandafter\Hy@colorlink\csname @#1color\endcsname +} +\def\Hy@StartlinkName#1#2{% + \pdfstartlink attr{#1}goto name{#2}\relax +} +\def\close@pdflink{% + \Hy@endcolorlink + \Hy@VerboseLinkStop + \pdfendlink +} +\def\hyper@anchor#1{% + \new@pdflink{#1}\anchor@spot\pdf@endanchor +} +\def\hyper@anchorstart#1{% + \new@pdflink{#1}% + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \pdf@endanchor + \Hy@activeanchorfalse +} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \ltx@IfUndefined{@#1bordercolor}{% + \let\CurrentBorderColor\relax + }{% + \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}% + }% + \find@pdflink{#1}{#2}% +} +\def\hyper@linkend{\close@pdflink} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \ltx@IfUndefined{@#1bordercolor}{% + \let\CurrentBorderColor\relax + }{% + \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}% + }% + \find@pdflink{#1}{#2}#3\Hy@xspace@end + \close@pdflink +} +\let\CurrentBorderColor\@linkbordercolor +\def\hyper@linkurl#1#2{% + \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% + \hyper@chars + \leavevmode + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@urlbordercolor\relax + \else + /C[\@urlbordercolor]% + \fi + }% + user{% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /Type/Action% + /S/URI% + /URI(\Hy@pstringURI)% + \ifHy@href@ismap + /IsMap true% + \fi + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@urlcolor#1\Hy@xspace@end + \close@pdflink + \endgroup +} +\def\hyper@linkfile#1#2#3{% anchor text, filename, linkname + \begingroup + \def\Hy@pstringF{#2}% + \Hy@CleanupFile\Hy@pstringF + \Hy@pstringdef\Hy@pstringF\Hy@pstringF + \Hy@pstringdef\Hy@pstringD{#3}% + \Hy@MakeRemoteAction + \leavevmode + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@filebordercolor\relax + \else + /C[\@filebordercolor]% + \fi + }% + user {% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /F(\Hy@pstringF)% + /S/GoToR% + \Hy@SetNewWindow + \ifx\\#3\\% + /D[\Hy@href@page\@pdfremotestartview]% + \else + /D(\Hy@pstringD)% + \fi + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@filecolor#1\Hy@xspace@end + \close@pdflink + \endgroup +} +\def\@hyper@launch run:#1\\#2#3{% filename, anchor text linkname + \begingroup + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% + \leavevmode + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@runbordercolor\relax + \else + /C[\@runbordercolor]% + \fi + }% + user {% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /F(\Hy@pstringF)% + /S/Launch% + \Hy@SetNewWindow + \ifx\\#3\\% + \else + /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>% + \fi + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@runcolor#2\Hy@xspace@end + \close@pdflink + \endgroup +} + + +\def\PDF@SetupDoc{% + \ifx\@pdfpagescrop\@empty + \else + \edef\process@me{% + \pdfpagesattr={% + /CropBox[\@pdfpagescrop]% + \expandafter\ifx\expandafter\\\the\pdfpagesattr\\% + \else + ^^J\the\pdfpagesattr + \fi + }% + }% + \process@me + \fi + \Hy@pstringdef\Hy@pstringB{\@baseurl}% + \pdfcatalog{% + /PageMode/\@pdfpagemode + \ifx\@baseurl\@empty + \else + /URI<</Base(\Hy@pstringB)>>% + \fi + }% + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + openaction goto page\@pdfstartpage{\@pdfstartview}% + \fi + \fi + \edef\Hy@temp{% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + }% + \pdfcatalog{% + \ifx\Hy@temp\@empty + \else + /ViewerPreferences<<\Hy@temp>>% + \fi + \Hy@UseNameKey{PageLayout}\@pdfpagelayout + \ifx\@pdflang\relax + \else + /Lang(\@pdflang)% + \fi + }% +} +\def\PDF@FinishDoc{% + \pdf@ifdraftmode{}{% + \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons + \pdfextension info{% + /Author(\@pdfauthor)% + /Title(\@pdftitle)% + /Subject(\@pdfsubject)% + /Creator(\@pdfcreator)% + \ifx\@pdfcreationdate\@empty + \else + /CreationDate(\@pdfcreationdate)% + \fi + \ifx\@pdfmoddate\@empty + \else + /ModDate(\@pdfmoddate)% + \fi + \ifx\@pdfproducer\relax + \else + /Producer(\@pdfproducer)% + \fi + /Keywords(\@pdfkeywords)% + \ifx\@pdftrapped\@empty + \else + /Trapped/\@pdftrapped + \fi + \HyInfo@Addons + }% + }% + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +\def\hyper@pagetransition{% + \ifx\@pdfpagetransition\relax + \else + \expandafter\Hy@RemoveTransPageAttr + \the\pdfpageattr^^J/Trans{}>>\END + \ifx\@pdfpagetransition\@empty + \else + \edef\@processme{% + \global\pdfpageattr{% + \the\pdfpageattr + ^^J/Trans << /S /\@pdfpagetransition\space >>% + }% + }% + \@processme + \fi + \fi +} +\gdef\Hy@RemoveTransPageAttr#1^^J/Trans#2#3>>#4\END{% + \ifx\\#2\\% + \global\pdfpageattr{#1}% + \else + \Hy@RemoveTransPageAttr#1#4\END + \fi +} +\def\hyper@pageduration{% + \ifx\@pdfpageduration\relax + \else + \expandafter + \Hy@RemoveDurPageAttr\the\pdfpageattr^^J/Dur{} \END + \ifx\@pdfpageduration\@empty + \else + \edef\@processme{% + \global\pdfpageattr{% + \the\pdfpageattr + ^^J/Dur \@pdfpageduration\space + }% + }% + \@processme + \fi + \fi +} +\gdef\Hy@RemoveDurPageAttr#1^^J/Dur#2#3 #4\END{% + \ifx\\#2\\% + \global\pdfpageattr{#1}% + \else + \Hy@RemoveDurPageAttr#1#4\END + \fi +} +\def\hyper@pagehidden{% + \ifHy@useHidKey + \expandafter + \Hy@RemoveHidPageAttr\the\pdfpageattr^^J/Hid{} \END + \ifHy@pdfpagehidden + \edef\@processme{% + \global\pdfpageattr{% + \the\pdfpageattr + ^^J/Hid true % SPACE + }% + }% + \@processme + \fi + \fi +} +\gdef\Hy@RemoveHidPageAttr#1^^J/Hid#2#3 #4\END{% + \ifx\\#2\\% + \global\pdfpageattr{#1}% + \else + \Hy@RemoveHidPageAttr#1#4\END + \fi +} +\pdf@ifdraftmode{}{% + \g@addto@macro\Hy@EveryPageHook{% + \hyper@pagetransition + \hyper@pageduration + \hyper@pagehidden + }% +} +\Hy@AtBeginDocument{% + \ifHy@setpagesize + \expandafter\@firstofone + \else + \expandafter\@gobble + \fi + {% + \@ifclassloaded{seminar}{% + \setlength{\pdfvariable horigin}{1truein}% + \setlength{\pdfvariable vorigin}{1truein}% + \ifportrait + \ifdim\paperwidth=\z@ + \else + \setlength{\pagewidth}{\strip@pt\paperwidth truept}% + \fi + \ifdim\paperheight=\z@ + \else + \setlength{\pageheight}{\strip@pt\paperheight truept}% + \fi + \else + \ifdim\paperheight=\z@ + \else + \setlength{\pagewidth}{\strip@pt\paperheight truept}% + \fi + \ifdim\paperwidth=\z@ + \else + \setlength{\pageheight}{\strip@pt\paperwidth truept}% + \fi + \fi + }{% + \ltx@IfUndefined{stockwidth}{% + \ifdim\paperwidth>\z@ + \setlength{\pagewidth}{\paperwidth}% + \fi + \ifdim\paperheight>\z@ + \setlength{\pageheight}{\paperheight}% + \fi + }{% + \ifdim\stockwidth>\z@ + \setlength{\pagewidth}{\stockwidth}% + \fi + \ifdim\stockheight>\z@ + \setlength{\pageheight}{\stockheight}% + \fi + }% + }% + }% + \Hy@DisableOption{setpagesize}% +} +\def\Acrobatmenu#1#2{% + \Hy@Acrobatmenu{#1}{#2}{% + \leavevmode + \EdefEscapeName\Hy@temp@menu{#1}% + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@menubordercolor\relax + \else + /C[\@menubordercolor]% + \fi + }% + user{% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /S/Named% + /N/\Hy@temp@menu + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@menucolor#2% + \close@pdflink + }% +} +\def\Hy@FixNotFirstPage{% + \gdef\Hy@FixNotFirstPage{% + \setbox\AtBeginShipoutBox=\hbox{% + \copy\AtBeginShipoutBox + }% + }% +} +\ltx@ifpackagelater{atbegshi}{2011/10/05}{% +}{% + \AtBeginShipout{\Hy@FixNotFirstPage}% +} +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, pdftex does not support FORM gauges}% +} +\def\MakeFieldObject#1#2{\sbox0{#1}% + \immediate\saveboxresource0 % + \expandafter\edef\csname #2Object\endcsname{% + \the\lastsavedboxresourceindex\space 0 R% + }% +}% +\let\HyField@afields\ltx@empty +\let\HyField@cofields\ltx@empty +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdflastlink\endcsname\relax + \let\HyField@AddToFields\relax + \PackageInfo{hyperref}{% + You need pdfTeX 1.40.0 for setting the /Fields entry.% + \MessageBreak + Adobe Reader/Acrobat accepts an empty /Field array,% + \MessageBreak + but other PDF viewers might complain% + }% +\else + \let\HyField@AuxAddToFields\ltx@gobble + \let\HyField@AuxAddToCoFields\ltx@gobbletwo + \def\HyField@AfterAuxOpen{\Hy@AtBeginDocument}% + \def\HyField@ABD@AuxAddToCoFields#1#2{% + \begingroup + \Hy@safe@activestrue + \let\ltx@secondoftwo\relax + \ifx\HyField@cofields\ltx@empty + \xdef\HyField@cofields{% + \ltx@secondoftwo{#1}{ #2 0 R}% + }% + \else + \let\ltx@secondoftwo\relax + \def\HyField@AddCoField##1##2##3{% + \ifx##1\ltx@empty + \ltx@secondoftwo{#1}{ #2 0 R}% + \expandafter\ltx@gobble + \else + \ifnum\pdf@strcmp{##2}{#1}>\ltx@zero + \ltx@secondoftwo{#1}{ #2 0 R}% + \ltx@secondoftwo{##2}{##3}% + \expandafter\expandafter\expandafter\ltx@gobble + \else + \ltx@secondoftwo{##2}{##3}% + \fi + \fi + \HyField@AddCoField + }% + \xdef\HyField@cofields{% + \expandafter\HyField@AddCoField + \HyField@cofields\ltx@empty\ltx@empty\ltx@empty + }% + \fi + \endgroup + }% + \Hy@AtBeginDocument{% + \if@filesw + \immediate\write\@mainaux{% + \string\providecommand\string\HyField@AuxAddToFields[1]{}% + }% + \immediate\write\@mainaux{% + \string\providecommand\string\HyField@AuxAddToCoFields[2]{}% + }% + \fi + \let\HyField@AfterAuxOpen\@firstofone + \def\HyField@AuxAddToFields#1{% + \xdef\HyField@afields{% + \ifx\HyField@afields\@empty + \else + \HyField@afields + \space + \fi + #1 0 R% + }% + }% + \let\HyField@AuxAddToCoFields\HyField@ABD@AuxAddToCoFields + }% + \def\HyField@AddToFields{% + \expandafter\HyField@@AddToFields\expandafter{% + \the\pdflastlink + }% + \ifx\Fld@calculate@code\ltx@empty + \else + \begingroup + \Hy@safe@activestrue + \edef\Hy@temp{% + \endgroup + \if@filesw + \write\@mainaux{% + \string\HyField@AuxAddToCoFields{% + \Fld@calculate@sortkey + }{% + \the\pdflastlink + }% + }% + \fi + }% + \Hy@temp + \fi + }% + \def\HyField@@AddToFields#1{% + \HyField@AfterAuxOpen{% + \if@filesw + \write\@mainaux{% + \string\HyField@AuxAddToFields{#1}% + }% + \fi + }% + }% +\fi +\def\@Form[#1]{% + \@ifundefined{textcolor}{\let\textcolor\@gobble}{}% + \kvsetkeys{Form}{#1}% + \pdf@ifdraftmode{}{% + \Hy@FormObjects + \pdfrefobj\OBJ@pdfdocencoding + \pdfrefobj\OBJ@ZaDb + \pdfrefobj\OBJ@Helv + \AtVeryEndDocument{% + \immediate\pdfobj{% + <<% + /Fields[\HyField@afields]% + \ifx\HyField@cofields\ltx@empty + \else + /CO[\romannumeral-`\Q\HyField@cofields]% + \fi + /DR<<% + /Font<<% + /ZaDb \OBJ@ZaDb\space 0 R% + /Helv \OBJ@Helv\space 0 R% + >>% + >>% + /DA(/Helv 10 Tf 0 g)% + \ifHy@pdfa + \else + \ifHyField@NeedAppearances + /NeedAppearances true% + \fi + \fi + >>% + }% + \edef\OBJ@acroform{\the\pdflastobj}% + \pdfcatalog{/AcroForm \OBJ@acroform\space 0 R}% + }% + }% + \MakeFieldObject{% + \begingroup + \fontfamily{pzd}% + \fontencoding{U}% + \fontseries{m}% + \fontshape{n}% + \selectfont + \char123 % + \endgroup + }{Ding}% + \MakeFieldObject{% + \fbox{\textcolor{yellow}{\textsf{Submit}}}% + }{Submit}% + \MakeFieldObject{% + \fbox{\textcolor{yellow}{\textsf{SubmitP}}}% + }{SubmitP}% +} +\let\@endForm\ltx@empty +\let\HyAnn@AbsPageLabel\ltx@empty +\let\Fld@pageobjref\ltx@empty +\ltx@IfUndefined{pdfpageref}{% +}{% + \ltx@ifpackageloaded{zref-abspage}{% + \newcount\HyAnn@Count + \HyAnn@Count=\ltx@zero + \def\HyAnn@AbsPageLabel{% + \global\advance\HyAnn@Count by\ltx@one + \zref@labelbyprops{HyAnn@\the\HyAnn@Count}{abspage}% + \zref@refused{HyAnn@\the\HyAnn@Count}% + }% + \def\Fld@pageobjref{% + \zref@ifrefundefined{HyAnn@\the\HyAnn@Count}{% + }{% + \zref@ifrefcontainsprop{HyAnn@\the\HyAnn@Count}{abspage}{% + /P \pdfpageref + \zref@extractdefault{HyAnn@\the\HyAnn@Count}{abspage}{1} % + \space 0 R% + }{% + }% + }% + }% + }{% + }% +} +\def\@TextField[#1]#2{% parameters, label + \def\Fld@name{#2}% + \let\Fld@default\ltx@empty + \let\Fld@value\@empty + \def\Fld@width{\DefaultWidthofText}% + \def\Fld@height{% + \ifFld@multiline + \DefaultHeightofTextMultiline + \else + \DefaultHeightofText + \fi + }% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofText,#1% + }% + \PDFForm@Name + \HyField@FlagsText + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi + \LayoutTextField{#2}{% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Text + \pdfstartlink user {\PDFForm@Text}\relax + \MakeTextField{\Fld@width}{\Fld@height}\pdfendlink + \HyField@AddToFields + }% + \endgroup +} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \def\Fld@name{#2}% + \let\Fld@default\relax + \let\Fld@value\relax + \def\Fld@width{\DefaultWidthofChoiceMenu}% + \def\Fld@height{\DefaultHeightofChoiceMenu}% + \begingroup + \Fld@menulength=0 % + \@tempdima\z@ + \@for\@curropt:=#3\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \Hy@StepCount\Fld@menulength + \settowidth{\@tempdimb}{\@currDisplay}% + \ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi + }% + \advance\@tempdima by 15\p@ + \begingroup + \HyField@SetKeys{#1}% + \edef\x{\endgroup + \noexpand\expandafter + \noexpand\HyField@SetKeys + \noexpand\expandafter{% + \expandafter\noexpand\csname DefaultOptionsof% + \ifFld@radio + Radio% + \else + \ifFld@combo + \ifFld@popdown + PopdownBox% + \else + ComboBox% + \fi + \else + ListBox% + \fi + \fi + \endcsname + }% + }\x + \HyField@SetKeys{#1}% + \PDFForm@Name + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\relax + \let\Fld@value\Fld@default + \fi + \LayoutChoiceField{#2}{% + \ifFld@radio + \HyField@FlagsRadioButton + \@@Radio{#3}% + \else + \begingroup + \HyField@FlagsChoice + \ifdim\Fld@width<\@tempdima + \ifdim\@tempdima<1cm\@tempdima1cm\fi + \edef\Fld@width{\the\@tempdima}% + \fi + \ifFld@combo + \else + \@tempdima=\the\Fld@menulength\Fld@charsize + \advance\@tempdima by \Fld@borderwidth bp % + \advance\@tempdima by \Fld@borderwidth bp % + \edef\Fld@height{\the\@tempdima}% + \fi + \@@Listbox{#3}% + \endgroup + \fi + }% + \endgroup +} +\def\@@Radio#1{% + \Fld@listcount=0 % + \EdefEscapeName\Fld@default{\Fld@default}% + \@for\@curropt:=#1\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \EdefEscapeName\@currValue{\@currValue}% + \Hy@StepCount\Fld@listcount + \@currDisplay\space + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Radio + \pdfstartlink user {% + \PDFForm@Radio + /AP<<% + /N<<% + /\@currValue\space \DingObject + >>% + >>% + }% + \relax + \MakeRadioField{\Fld@width}{\Fld@height}\pdfendlink + \ifnum\Fld@listcount=1 % + \HyField@AddToFields + \fi + \space % deliberate space between radio buttons + }% +} +\newcount\Fld@listcount +\def\@@Listbox#1{% + \HyField@PDFChoices{#1}% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@List + \pdfstartlink user {\PDFForm@List}\relax + \MakeChoiceField{\Fld@width}{\Fld@height}% + \pdfendlink + \HyField@AddToFields +} +\def\@PushButton[#1]#2{% parameters, label + \def\Fld@name{#2}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofPushButton,#1% + }% + \PDFForm@Name + \ifHy@pdfa + \Hy@Error{% + PDF/A: Push button with JavaScript is prohibited% + }\@ehc + \LayoutPushButtonField{% + \leavevmode + \MakeButtonField{#2}% + }% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \LayoutPushButtonField{% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Push + \pdfstartlink user {\PDFForm@Push}\relax + \MakeButtonField{#2}% + \pdfendlink + \HyField@AddToFields + }% + \fi + \endgroup +} +\def\@Submit[#1]#2{% + \def\Fld@width{\DefaultWidthofSubmit}% + \def\Fld@height{\DefaultHeightofSubmit}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofSubmit,#1% + }% + \HyField@FlagsPushButton + \HyField@FlagsSubmit + \ifFld@hidden\def\Fld@width{1sp}\fi + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Submit + \pdfstartlink user {% + \PDFForm@Submit + /AP<</N \SubmitObject/D \SubmitPObject>>% + }% + \relax + \MakeButtonField{#2}% + \pdfendlink + \HyField@AddToFields + \endgroup +} +\def\@Reset[#1]#2{% + \def\Fld@width{\DefaultWidthofReset}% + \def\Fld@height{\DefaultHeightofReset}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofReset,#1% + }% + \leavevmode + \ifHy@pdfa + \Hy@Error{% + PDF/A: Reset action is prohibited% + }\@ehc + \MakeButtonField{#2}% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Reset + \pdfstartlink user {\PDFForm@Reset}\relax + \MakeButtonField{#2}% + \pdfendlink + \HyField@AddToFields + \fi + \endgroup +} +\def\@CheckBox[#1]#2{% parameters, label + \def\Fld@name{#2}% + \def\Fld@default{0}% + \begingroup + \def\Fld@width{\DefaultWidthofCheckBox}% + \def\Fld@height{\DefaultHeightofCheckBox}% + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofCheckBox,#1% + }% + \PDFForm@Name + \HyField@FlagsCheckBox + \ifFld@hidden\def\Fld@width{1sp}\fi + \LayoutCheckField{#2}{% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Check + \pdfstartlink user {\PDFForm@Check}\relax + \MakeCheckField{\Fld@width}{\Fld@height}% + \pdfendlink + \HyField@AddToFields + }% + \endgroup +} +\def\Hy@FormObjects{% + \pdfobj {% + <<% + /Type/Encoding% + /Differences[% + 24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek% + /ring/tilde % + 39/quotesingle % + 96/grave % + 128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin% + /fraction/guilsinglleft/guilsinglright/minus/perthousand% + /quotedblbase/quotedblleft/quotedblright/quoteleft% + /quoteright/quotesinglbase/trademark/fi/fl/Lslash/OE% + /Scaron/Ydieresis/Zcaron/dotlessi/lslash/oe/scaron/zcaron % + 164/currency % + 166/brokenbar % + 168/dieresis/copyright/ordfeminine % + 172/logicalnot/.notdef/registered/macron/degree/plusminus% + /twosuperior/threesuperior/acute/mu % + 183/periodcentered/cedilla/onesuperior/ordmasculine % + 188/onequarter/onehalf/threequarters % + 192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE% + /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave% + /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute% + /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave% + /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls% + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae% + /ccedilla/egrave/eacute/ecircumflex/edieresis/igrave% + /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute% + /ocircumflex/otilde/odieresis/divide/oslash/ugrave% + /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis% + ]% + >>% + }% + \xdef\OBJ@pdfdocencoding{\the\pdflastobj}% + \pdfobj{% + <<% + /Type/Font% + /Subtype/Type1% + /Name/ZaDb% + /BaseFont/ZapfDingbats% + >>% + }% + \xdef\OBJ@ZaDb{\the\pdflastobj}% + \pdfobj{% + <<% + /Type/Font% + /Subtype/Type1% + /Name/Helv% + /BaseFont/Helvetica% + /Encoding \OBJ@pdfdocencoding\space 0 R% + >>% + }% + \xdef\OBJ@Helv{\the\pdflastobj}% + \global\let\Hy@FormObjects\relax +} +\providecommand*{\Fld@pageobjref}{} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@escapestring\endcsname\relax + \let\Hy@escapestring\@firstofone + \def\Hy@escapeform#1{% + \ifHy@pdfescapeform + \def\Hy@escapestring##1{% + \noexpand\Hy@escapestring{\noexpand##1}% + }% + \edef\Hy@temp{#1}% + \expandafter\Hy@@escapeform\Hy@temp\Hy@escapestring{}\@nil + \def\Hy@escapestring##1{% + \@ifundefined{Hy@esc@\string##1}{% + ##1% + \ThisShouldNotHappen + }{% + \csname Hy@esc@\string##1\endcsname + }% + }% + \else + \let\Hy@escapestring\@firstofone + \fi + }% + \def\Hy@@escapeform#1\Hy@escapestring#2#3\@nil{% + \ifx\\#3\\% + \else + \expandafter + \Hy@pstringdef\csname Hy@esc@\string#2\endcsname{#2}% + \ltx@ReturnAfterFi{% + \Hy@@escapeform#3\@nil + }% + \fi + }% +\else + \def\Hy@escapeform#1{% + \ifHy@pdfescapeform + \let\Hy@escapestring\pdfescapestring + \else + \let\Hy@escapestring\@firstofone + \fi + }% + \Hy@escapeform{}% +\fi +\def\PDFForm@Name{% + \PDFForm@@Name\Fld@name + \ifx\Fld@altname\relax + \else + \PDFForm@@Name\Fld@altname + \fi + \ifx\Fld@mappingname\relax + \else + \PDFForm@@Name\Fld@mappingname + \fi +} +\def\PDFForm@@Name#1{% + \begingroup + \ifnum\Hy@pdfversion<5 % implementation note 117, PDF spec 1.7 + \ifHy@unicode + \Hy@unicodefalse + \fi + \fi + \HyPsd@XeTeXBigCharstrue + \pdfstringdef\Hy@gtemp#1% + \endgroup + \let#1\Hy@gtemp +} +\def\Fld@@additionalactions{% + \ifx\Fld@keystroke@code\@empty + \else + /K<</S/JavaScript/JS(\Hy@escapestring{\Fld@keystroke@code})>>% + \fi + \ifx\Fld@format@code\@empty + \else + /F<</S/JavaScript/JS(\Hy@escapestring{\Fld@format@code})>>% + \fi + \ifx\Fld@validate@code\@empty + \else + /V<</S/JavaScript/JS(\Hy@escapestring{\Fld@validate@code})>>% + \fi + \ifx\Fld@calculate@code\@empty + \else + /C<</S/JavaScript/JS(\Hy@escapestring{\Fld@calculate@code})>>% + \fi + \ifx\Fld@onfocus@code\@empty + \else + /Fo<</S/JavaScript/JS(\Hy@escapestring{\Fld@onfocus@code})>>% + \fi + \ifx\Fld@onblur@code\@empty + \else + /Bl<</S/JavaScript/JS(\Hy@escapestring{\Fld@onblur@code})>>% + \fi + \ifx\Fld@onmousedown@code\@empty + \else + /D<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmousedown@code})>>% + \fi + \ifx\Fld@onmouseup@code\@empty + \else + /U<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmouseup@code})>>% + \fi + \ifx\Fld@onenter@code\@empty + \else + /E<</S/JavaScript/JS(\Hy@escapestring{\Fld@onenter@code})>>% + \fi + \ifx\Fld@onexit@code\@empty + \else + /X<</S/JavaScript/JS(\Hy@escapestring{\Fld@onexit@code})>>% + \fi +} +\def\Fld@additionalactions{% + \if-\Fld@@additionalactions-% + \else + \ifHy@pdfa + \else + /AA<<\Fld@@additionalactions>>% + \fi + \fi +} +\def\Fld@annotnames{% + /T(\Fld@name)% + \ifx\Fld@altname\relax + \else + /TU(\Fld@altname)% + \fi + \ifx\Fld@mappingname\relax + \else + /TM(\Fld@mappingname)% + \fi +} +\def\PDFForm@Check{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /Q \Fld@align + /BS<</W \Fld@borderwidth /S/\Fld@borderstyle>>% + /AP<< /N <</Yes<<>>>> >> %new string /Yes is from below + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + /CA(\Hy@escapestring{\Fld@cbsymbol})% + >>% + /DA(/ZaDb \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + /H/P% + \ifFld@checked /V/Yes/AS/Yes\else /V/Off/AS/Off\fi + \Fld@additionalactions +} +\ifHy@pdfa +\else + \def\PDFForm@Push{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + >>% + \fi + /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick@code})>>% + \Fld@additionalactions + }% +\fi +\def\PDFForm@List{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Ch% + \Fld@flags + /Q \Fld@align + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \ifx\fld@bcolor\relax \else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + >>% + \fi + /DA(/Helv \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + \Fld@choices + \Fld@additionalactions +} +\def\PDFForm@Radio{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + /CA(\Hy@escapestring{\Fld@radiosymbol})% + >>% + /DA(/ZaDb \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + \ifx\Fld@default\@empty + /V/Off% + /DV/Off% + \else + /V/\Fld@default + /DV/\Fld@default + \fi + \Fld@additionalactions +} +\def\PDFForm@Text{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Tx% + \Fld@flags + /Q \Fld@align + /BS<</W \Fld@borderwidth\space /S /\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \ifx\Fld@bcolor\relax \else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + >>% + \fi + /DA(/Helv \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + /DV(\Hy@escapestring{\Fld@default})% + /V(\Hy@escapestring{\Fld@value})% + \Fld@additionalactions + \ifnum\Fld@maxlen>\z@/MaxLen \Fld@maxlen \fi +} +\def\PDFForm@Submit{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + >>% + \fi + /A<<% + /S/SubmitForm% + /F<<% + /FS/URL% + /F(\Hy@escapestring{\Form@action})% + >>% + \Fld@submitflags + >>% + \Fld@additionalactions +} +\ifHy@pdfa +\else + \def\PDFForm@Reset{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + >>% + \fi + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + /A<</S/ResetForm>>% + \Fld@additionalactions + }% +\fi +\def\Hy@writebookmark#1#2#3#4#5{% + % section number, text, label, level, file + \ifx\WriteBookmarks\relax% + \else + \ifnum#4>\Hy@bookmarksdepth\relax + \else + \@@writetorep{#1}{#2}{#3}{#4}{#5}% + \fi + \fi +} +\def\Hy@currentbookmarklevel{0} +\def\Hy@numberline#1{#1 } +\def\@@writetorep#1#2#3#4#5{% + \begingroup + \edef\Hy@tempa{#5}% + \ifx\Hy@tempa\Hy@bookmarkstype + \edef\Hy@level{#4}% + \ifx\Hy@levelcheck Y% + \@tempcnta\Hy@level\relax + \advance\@tempcnta by -1 % + \ifnum\Hy@currentbookmarklevel<\@tempcnta + \advance\@tempcnta by -\Hy@currentbookmarklevel\relax + \advance\@tempcnta by 1 % + \Hy@Warning{% + Difference (\the\@tempcnta) between bookmark levels is % + greater \MessageBreak than one, level fixed% + }% + \@tempcnta\Hy@currentbookmarklevel + \advance\@tempcnta by 1 % + \edef\Hy@level{\the\@tempcnta}% + \fi + \else + \global\let\Hy@levelcheck Y% + \fi + \global\let\Hy@currentbookmarklevel\Hy@level + \@tempcnta\Hy@level\relax + \expandafter\xdef\csname Parent\Hy@level\endcsname{#3}% + \advance\@tempcnta by -1 % + \edef\Hy@tempa{#3}% + \edef\Hy@tempb{\csname Parent\the\@tempcnta\endcsname}% + \ifx\Hy@tempa\Hy@tempb + \Hy@Warning{% + The anchor of a bookmark and its parent's must not% + \MessageBreak be the same. Added a new anchor% + }% + \phantomsection + \fi + \ifHy@bookmarksnumbered + \let\numberline\Hy@numberline + \let\booknumberline\Hy@numberline + \let\partnumberline\Hy@numberline + \let\chapternumberline\Hy@numberline + \else + \let\numberline\@gobble + \let\booknumberline\@gobble + \let\partnumberline\@gobble + \let\chapternumberline\@gobble + \fi + \HyPsd@XeTeXBigCharstrue + \pdfstringdef\Hy@tempa{#2}% + \HyPsd@SanitizeForOutFile\Hy@tempa + \if@filesw + \stepcounter{bookmark@seq@number}% + \@ifundefined{@outlinefile}{% + }{% + \protected@write\@outlinefile{}{% + \protect\BOOKMARK + [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}% + {\Hy@tempa}{\Hy@tempb}% + \@percentchar\space\thebookmark@seq@number + }% + }% + \fi + \fi + \endgroup +} +\newcounter{bookmark@seq@number} +\begingroup + \lccode`(=`{% + \lccode`)=`}% + \lccode`1=\z@ + \lccode`2=\z@ + \lccode`3=\z@ + \lccode`5=\z@ + \lccode`7=\z@ + \lccode`\#=\z@ + \lccode`\`=\z@ + \lccode`\{=\z@ + \lccode`\}=\z@ +\lowercase{% + \endgroup + \def\HyPsd@SanitizeForOutFile#1{% + \@onelevel@sanitize\Hy@tempa + \escapechar`\\% + \edef\Hy@tempa{% + \expandafter\HyPsd@SanitizeOut@BraceLeft\Hy@tempa(\@nil + }% + \edef\Hy@tempa{% + \expandafter\HyPsd@SanitizeOut@BraceRight\Hy@tempa)\@nil + }% + }% + \def\HyPsd@SanitizeOut@BraceLeft#1(#2\@nil{% + #1% + \ifx\\#2\\% + \expandafter\ltx@gobble + \else + \expandafter\ltx@firstofone + \fi + {% + \string\173% + \HyPsd@SanitizeOut@BraceLeft#2\@nil + }% + }% + \def\HyPsd@SanitizeOut@BraceRight#1)#2\@nil{% + #1% + \ifx\\#2\\% + \expandafter\ltx@gobble + \else + \expandafter\ltx@firstofone + \fi + {% + \string\175% + \HyPsd@SanitizeOut@BraceRight#2\@nil + }% + }% +} +\newcommand{\currentpdfbookmark}{% + \pdfbookmark[\Hy@currentbookmarklevel]% +} +\newcommand{\subpdfbookmark}{% + \@tempcnta\Hy@currentbookmarklevel + \Hy@StepCount\@tempcnta + \expandafter\pdfbookmark\expandafter[\the\@tempcnta]% +} +\newcommand{\belowpdfbookmark}[2]{% + \@tempcnta\Hy@currentbookmarklevel + \Hy@StepCount\@tempcnta + \expandafter\pdfbookmark\expandafter[\the\@tempcnta]{#1}{#2}% + \advance\@tempcnta by -1 % + \xdef\Hy@currentbookmarklevel{\the\@tempcnta}% +} +\renewcommand\pdfbookmark[3][0]{% + \Hy@writebookmark{}{#2}{#3.#1}{#1}{toc}% + \hyper@anchorstart{#3.#1}\hyper@anchorend +} +\def\BOOKMARK{% + \@ifnextchar[{\@BOOKMARK}{\@@BOOKMARK[1][-]}% +} +\def\@BOOKMARK[#1]{% + \@ifnextchar[{\@@BOOKMARK[{#1}]}{\@@BOOKMARK[{#1}][-]}% +} +\RequirePackage{rerunfilecheck}[2009/12/10] +\def\Hy@OutlineRerunCheck{% + \RerunFileCheck{\jobname.out}{% + \immediate\closeout\@outlinefile + }{% + Rerun to get outlines right\MessageBreak + or use package `bookmark'% + }% +} +\def\ReadBookmarks{% + \pdf@ifdraftmode{}{% + \begingroup + \def\do##1{% + \ifnum\catcode`##1=\active + \@makeother##1% + \else + \ifnum\catcode`##1=6 % + \@makeother##1% + \fi + \fi + }% + \dospecials + \Hy@safe@activestrue + \escapechar=`\\% + \def\@@BOOKMARK[##1][##2]##3##4##5{% + \calc@bm@number{##5}% + }% + \InputIfFileExists{\jobname.out}{}{}% + \ifx\WriteBookmarks\relax + \global\let\WriteBookmarks\relax + \fi + \def\@@BOOKMARK[##1][##2]##3##4##5{% + \def\Hy@temp{##4}% + \Hy@pstringdef\Hy@pstringName{\HyperDestNameFilter{##3}}% + \Hy@OutlineName{}\Hy@pstringName{% + ##2\check@bm@number{##3}% + }{% + \expandafter\strip@prefix\meaning\Hy@temp + }% + }% + \begingroup + \def\WriteBookmarks{0}% + \InputIfFileExists{\jobname.out}{}{}% + \endgroup + %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}% + \endgroup + }% + \ifx\WriteBookmarks\relax + \else + \if@filesw + \newwrite\@outlinefile + \Hy@OutlineRerunCheck + \immediate\openout\@outlinefile=\jobname.out\relax + \ifHy@typexml + \immediate\write\@outlinefile{<relaxxml>\relax}% + \fi + \fi + \fi +} +\def\Hy@OutlineName#1#2#3#4{% + \pdfextension outline goto name{#2}count#3{#4}% +} +\def\check@bm@number#1{% + \expandafter\ifx\csname B_#1\endcsname\relax + 0% + \else + \csname B_#1\endcsname + \fi +} +\def\calc@bm@number#1{% + \@tempcnta=\check@bm@number{#1}\relax + \advance\@tempcnta by 1 % + \expandafter\xdef\csname B_#1\endcsname{\the\@tempcnta}% +} +\ifHy@implicit +\else + \expandafter\endinput +\fi +\newlength\Hy@SectionHShift +\def\Hy@SectionAnchorHref#1{% + \ifx\protect\@typeset@protect + \Hy@@SectionAnchor{#1}% + \fi +} +\DeclareRobustCommand*{\Hy@@SectionAnchor}[1]{% + \leavevmode + \hbox to 0pt{% + \kern-\Hy@SectionHShift + \Hy@raisedlink{% + \hyper@anchorstart{#1}\hyper@anchorend + }% + \hss + }% +} +\let\H@old@ssect\@ssect +\def\@ssect#1#2#3#4#5{% + \Hy@MakeCurrentHrefAuto{section*}% + \setlength{\Hy@SectionHShift}{#1}% + \begingroup + \toks@{\H@old@ssect{#1}{#2}{#3}{#4}}% + \toks\tw@\expandafter{% + \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}% + #5% + }% + \edef\x{\endgroup + \the\toks@{\the\toks\tw@}% + }\x +} +\let\H@old@schapter\@schapter +\def\@schapter#1{% + \begingroup + \let\@mkboth\@gobbletwo + \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \endgroup + \H@old@schapter{#1}% +} +\ltx@IfUndefined{@chapter}{}{% + \let\Hy@org@chapter\@chapter + \def\@chapter{% + \def\Hy@next{% + \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + }% + \ifnum\c@secnumdepth>\m@ne + \ltx@IfUndefined{if@mainmatter}% + \iftrue{\csname if@mainmatter\endcsname}% + \let\Hy@next\relax + \fi + \fi + \Hy@next + \Hy@org@chapter + }% +} +\let\H@old@part\@part +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname chapter\endcsname\relax + \let\Hy@secnum@part\z@ +\else + \let\Hy@secnum@part\m@ne +\fi +\def\@part{% + \ifnum\Hy@secnum@part>\c@secnumdepth + \phantomsection + \fi + \H@old@part +} +\let\H@old@spart\@spart +\def\@spart#1{% + \Hy@MakeCurrentHrefAuto{part*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \H@old@spart{#1}% +} +\let\H@old@sect\@sect +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {% + \Hy@MakeCurrentHrefAuto{section*}% + \setlength{\Hy@SectionHShift}{#3}% + \begingroup + \toks@{\H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]}% + \toks\tw@\expandafter{% + \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}% + #8% + }% + \edef\x{\endgroup + \the\toks@{\the\toks\tw@}% + }\x + }{% + \H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}% + }% +} +\expandafter\def\csname Parent-4\endcsname{} +\expandafter\def\csname Parent-3\endcsname{} +\expandafter\def\csname Parent-2\endcsname{} +\expandafter\def\csname Parent-1\endcsname{} +\expandafter\def\csname Parent0\endcsname{} +\expandafter\def\csname Parent1\endcsname{} +\expandafter\def\csname Parent2\endcsname{} +\expandafter\def\csname Parent3\endcsname{} +\expandafter\def\csname Parent4\endcsname{} +\def\Hy@tempa{% + \def\@addchap[##1]##2{% + \typeout{##2}% + \if@twoside + \@mkboth{##1}{}% + \else + \@mkboth{}{##1}% + \fi + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \if@twocolumn + \@topnewpage[\@makeschapterhead{##2}]% + \else + \@makeschapterhead{##2}% + \@afterheading + \fi + \addcontentsline{toc}{chapter}{##1}% + }% +} +\@ifclassloaded{scrbook}{% + \@ifclasslater{scrbook}{2001/01/01}{% + \let\Hy@tempa\@empty + }{}% +}{% + \@ifclassloaded{scrreprt}{% + \@ifclasslater{scrreprt}{2001/01/01}{% + \let\Hy@tempa\@empty + }{}% + }{% + \let\Hy@tempa\@empty + }% +}% +\Hy@tempa +%% +%% End of file `hluatex.def'. +%</luatex> +% \end{macrocode} +\endinput +% diff --git a/macros/latex/contrib/hyperref/hylatex.ltx b/macros/latex/contrib/hyperref/hylatex.ltx new file mode 100644 index 0000000000..7eb223db30 --- /dev/null +++ b/macros/latex/contrib/hyperref/hylatex.ltx @@ -0,0 +1,43 @@ +% +% hylatex.ltx +% Tanmoy Bhattacharya and Sebastian Rahtz, June 1995 +% +% Use this file to make a format which includes the +% hyperref package in every LaTeX job. +% +% In web2c 7-based TeX world, we create the format file with +% tex -ini \&latex hylatex.ltx +% and then use with +% tex \&hylatex +% +% In teTeX (TeX version 3.14159 (C version 6.1), LaTeX2e <1996/12/01> +% patch level 1), I create the format file with +% initex \&latex hylatex.ltx +% and then use with +% virtex \&hylatex +% +% This method is not supported by the LaTeX2e team, so +% I will try to find a better way. \AtBeginDocument does not +% work for reasons which I do not understand. +% +\makeatletter +\expandafter\everyjob\expandafter{\the\everyjob + \typeout{ ********* Hyperref Macros loaded ******* }} +% +\expandafter\let\csname REAL document\endcsname\document +% +\def\document{% + \endgroup +% +% NOTE: +% This setup sets up no options by default; +% change to suit your needs, by writing a hyperref.cfg control +% file. +% + \RequirePackage{hyperref} + \begingroup + \@endpefalse\csname REAL document\endcsname +} +\makeatother +\dump + diff --git a/macros/latex/contrib/hyperref/hyperref.dtx b/macros/latex/contrib/hyperref/hyperref.dtx new file mode 100644 index 0000000000..ec3f7c3e2e --- /dev/null +++ b/macros/latex/contrib/hyperref/hyperref.dtx @@ -0,0 +1,27659 @@ +% \iffalse +%% File: hyperref.dtx Copyright 1995-2001 Sebastian Rahtz, +%% with portions written by David Carlisle and Heiko Oberdiek, +%% 2001-2012 Heiko Oberdiek. +%% 2016-2018 Oberdiek Package Suport Group +%% https://github.com/ho-tex/hyperref/issues +%% +%% This file is part of the `Hyperref Bundle'. +%% ------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Heiko Oberdiek. +%% +%% The list of all files belonging to the `Hyperref Bundle' is +%% given in the file `manifest.txt'. +%% +%<package|nohyperref|driver|check>\NeedsTeXFormat{LaTeX2e}[1995/12/01] +%<package>\ProvidesPackage{hyperref} +%<nohyperref>\ProvidesPackage{nohyperref} +%<driver>\ProvidesFile{hyperref.drv} +%<check>\ProvidesFile{hycheck.tex} +%<hypertex>\ProvidesFile{hypertex.def} +%<pdftex>\ProvidesFile{hpdftex.def} +%<luatex>\ProvidesFile{hluatex.def} +%<pdfmark>\ProvidesFile{pdfmark.def} +%<vtexpdfmark>\ProvidesFile{hvtexmrk.def} +%<dvips>\ProvidesFile{hdvips.def} +%<dvipsone>\ProvidesFile{hdvipson.def} +%<textures>\ProvidesFile{htexture.def} +%<dviwindo>\ProvidesFile{hdviwind.def} +%<dvipdfm>\ProvidesFile{hdvipdfm.def} +%<xetex>\ProvidesFile{hxetex.def} +%<vtex>\ProvidesFile{hvtex.def} +%<vtexhtml>\ProvidesFile{hvtexhtml.def} +%<tex4ht>\ProvidesFile{htex4ht.def} +%<tex4htcfg>\ProvidesFile{htex4ht.cfg} +%<pd1enc>\ProvidesFile{pd1enc.def} +%<puenc>\ProvidesFile{puenc.def} +%<puvnenc>\ProvidesFile{puvnenc.def} +%<puarenc>\ProvidesFile{puarenc.def} +%<psdextra>\ProvidesFile{psdextra.def} +%<!none> [2019/06/12 v6.88h % +%<package> Hypertext links for LaTeX] +%<nohyperref> Dummy hyperref (SR)] +%<driver> Hyperref documentation driver file] +%<check> Hyperref test file] +%<hypertex> Hyperref driver for HyperTeX specials] +%<hypertex>\Hy@VersionCheck{hypertex.def} +%<pdftex> Hyperref driver for pdfTeX] +%<pdftex>\Hy@VersionCheck{hpdftex.def} +%<luatex> Hyperref driver for luaTeX] +%<luatex>\Hy@VersionCheck{hluatex.def} +%<pdfmark> Hyperref definitions for pdfmark specials] +%<pdfmark>\Hy@VersionCheck{pdfmark.def} +%<vtexpdfmark> Hyperref driver for VTeX in PDF/PS mode (pdfmark specials)] +%<vtexpdfmark>\Hy@VersionCheck{hvtexmrk.def} +%<dvips> Hyperref driver for dvips] +%<dvips>\Hy@VersionCheck{hdvips.def} +%<dvipsone> Hyperref driver for dvipsone] +%<dvipsone>\Hy@VersionCheck{hdvipson.def} +%<textures> Hyperref driver for Textures] +%<textures>\Hy@VersionCheck{htexture.def} +%<dviwindo> Hyperref driver for dviwindo] +%<dviwindo>\Hy@VersionCheck{hdviwind.def} +%<dvipdfm> Hyperref driver for dvipdfm] +%<dvipdfm>\Hy@VersionCheck{hdvipdfm.def} +%<xetex> Hyperref driver for XeTeX] +%<xetex>\Hy@VersionCheck{hxetex.def} +%<vtex> Hyperref driver for VTeX in PDF/PS mode] +%<vtex>\Hy@VersionCheck{hvtex.def} +%<vtexhtml> Hyperref driver for VTeX in HTML mode] +%<vtexhtml>\Hy@VersionCheck{hvtexhtm.def} +%<tex4ht> Hyperref driver for TeX4ht] +%<tex4ht>\Hy@VersionCheck{htex4ht.def} +%<tex4htcfg> Hyperref configuration file for TeX4ht] +%<pd1enc> Hyperref: PDFDocEncoding definition (HO)] +%<puenc> Hyperref: PDF Unicode definition (HO)] +%<puvnenc> Hyperref: Additions to puenc.def for VnTeX] +%<puarenc> Hyperref: Additions to puenc.def for Arabi] +%<psdextra> Hyperref: Additions to PDF string support] +%<*driver> +\documentclass{ltxdoc} +\usepackage{array} +\usepackage{ifluatex,ifxetex} +\ifnum 0\ifluatex 1\else\ifxetex 1\fi\fi=0 % + \usepackage[T1]{fontenc}% + \renewcommand*{\ttdefault}{lmvtt}% +\else + \usepackage{fontspec}% + \renewcommand*{\ttdefault}{lmvtt}% +\fi +\usepackage[% + colorlinks,% + hyperindex=false,% done by hypdoc + pdfusetitle,% + pdfpagelabels% +]{hyperref} +\usepackage[numbered]{hypdoc} +\usepackage{bmhydoc} +\pdfstringdefDisableCommands{% + \let\\\textbackslash +}% +\EnableCrossrefs +\CodelineIndex +\setlength{\hfuzz}{2pt} +\begin{document} + % + % title + % + \GetFileInfo{hyperref.sty}% + \title{Hypertext marks in \LaTeX}% + \author{Sebastian Rahtz (deceased)\\% + Heiko Oberdiek (maintainer)\\% + \texttt{https://github.com/ho-tex/hyperref/issues}}% + % \date{processed \today}% + \date{\filedate\space\fileversion}% + \maketitle + % + % overview + % + \makeatletter + \@ifundefined{HyperrefOverview}{}{% + \HyperrefOverview\relax + \newpage + }% + % + % table of contents + % + \section{\contentsname}% + \makeatletter + \@starttoc{toc}% + \newpage + % + % source code documentation + % + \let\Email\nolinkurl + \DocInput{hyperref.dtx}% + % + % index + % + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \MakeShortVerb{|} +% \StopEventually{} +% +% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let} +% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi} +% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup} +% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand} +% \DoNotIndex{\space,\@empty,\special} +% \DoNotIndex{\\,\0,\1,\2,\8} +% \makeatletter +% \let\SavedTheIndex\theindex +% \def\theindex{^^A +% \clearpage +% \addtolength{\textwidth}{\marginparwidth}^^A +% \addtolength{\textwidth}{\marginparsep}^^A +% \setlength{\linewidth}{\textwidth}^^A +% \setlength{\hsize}{\textwidth}^^A +% \setlength{\oddsidemargin}{\paperwidth}^^A +% \addtolength{\oddsidemargin}{-\textwidth}^^A +% \setlength{\oddsidemargin}{.5\oddsidemargin}^^A +% \addtolength{\oddsidemargin}{-1in}^^A +% \setlength{\evensidemargin}{\oddsidemargin}^^A +% \SavedTheIndex +% } +% \g@addto@macro\theindex{^^A +% \parfillskip=0pt plus 1fil +% } +% \makeatother +% +% \providecommand*{\eTeX}{\mbox{$\varepsilon$-\TeX}} +% +% \section{File hycheck.tex} +% +% Many commands of \LaTeX\ or other packages cannot be +% overloaded, but have to be redefined by hyperref directly. +% If these commands change in newer versions, these +% changes are not noticed by hyperref. +% With this test file this situation can be checked. +% It defines the command \cmd{\checkcommand} that +% is more powerful than \LaTeX's \cmd{\CheckCommand}, +% because it takes \cmd{\DeclareRobustCommand} and +% optional parameters better into account. +% +% \begin{macrocode} +%<*check> +\documentclass{article} +\makeatletter +% \end{macrocode} +% +% \begin{macro}{\checklatex} +% Optional argument: release date of \LaTeX. +% \begin{macrocode} +\newcommand*{\checklatex}[1][]{% + \typeout{}% + \typeout{* Format: `LaTeX2e' #1}% + \typeout{\space\space Loaded: `\fmtname' \fmtversion}% +}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\checkpackage} +% The argument of \cmd{\checkpackage} is the package name +% without extension optionally followed by a release date. +% \begin{macrocode} +\newcommand*{\checkpackage}[1]{% + \def\HyC@package{#1}% + \let\HyC@date\@empty + \@ifnextchar[\HyC@getDate\HyC@checkPackage +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@getDate} +% The release date is scanned. +% \begin{macrocode} +\def\HyC@getDate[#1]{% + \def\HyC@date{#1}% + \HyC@checkPackage +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@checkPackage} +% \begin{macrocode} +\def\HyC@checkPackage{% + \typeout{}% + \begingroup + \edef\x{\endgroup + \noexpand\RequirePackage{\HyC@package}% + \ifx\HyC@date\@empty\relax\else[\HyC@date]\fi% + }% + \x + \typeout{}% + \typeout{% + * Package `\HyC@package'% + \ifx\HyC@date\@empty + \else + \space\HyC@date + \fi + }% + \@ifundefined{ver@\HyC@package.sty}{% + }{% + \typeout{% + \space\space Loaded: `\HyC@package' % + \csname ver@\HyC@package.sty\endcsname + }% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\checkcommand} +% The macro \cmd{\checkcommand} parses the next +% tokens as a \LaTeX\ definition and compares +% this definition with the current meaning of +% that command. +% \begin{macrocode} +\newcommand*{\checkcommand}[1]{% + \begingroup + \ifx\long#1\relax + \expandafter\HyC@checklong + \else + \def\HyC@defcmd{#1}% + \expandafter\let\expandafter\HyC@next + \csname HyC@\expandafter\@gobble\string#1\endcsname + \expandafter\HyC@checkcommand + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@checklong} +% The definition command \cmd{\def} or \cmd{\edef} +% is read. +% \begin{macrocode} +\def\HyC@checklong#1{% + \def\HyC@defcmd{\long#1}% + \expandafter\let\expandafter\HyC@next + \csname HyC@\expandafter\@gobble\string#1\endcsname + \HyC@checkcommand +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@checkcommand} +% The optional star of \LaTeX's definitions is parsed. +% \begin{macrocode} +\def\HyC@checkcommand{% + \ifx\HyC@next\relax + \PackageError{hycheck}{% + Unknown command `\expandafter\strip@prefix\meaning\HyC@cmd'% + }\@ehd + \expandafter\endinput + \fi + \@ifstar{% + \def\HyC@star{*}% + \HyC@check + }{% + \let\HyC@star\@empty + \HyC@check + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@check} +% The macro \cmd{\HyC@check} reads the +% definition command. +% \begin{macrocode} +\def\HyC@check#1{% + \def\HyC@cmd{#1}% + \let\HyC@org@cmd#1% + \let#1\relax + \let\HyC@param\@empty + \HyC@Toks{}% + \let\HyC@org@optcmd\HyC@noValue + \let\HyC@org@robustcmd\HyC@noValue + \let\HyC@org@robustoptcmd\HyC@noValue + \HyC@next +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@noValue} +% \begin{macrocode} +\def\HyC@noValue{NoValue} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@newcommand} +% The code for \cmd{\newcommand}. +% \begin{macrocode} +\def\HyC@newcommand{% + \let\HyC@@cmd\HyC@cmd + \@ifnextchar[\HyC@nc@opt\HyC@nc@noopt +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@Toks} +% A register for storing the default value of an +% optional argument. +% \begin{macrocode} +\newtoks\HyC@Toks +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@nc@noopt} +% This macro \cmd{\HyC@nc@noopt} is called, if the +% parser has reached the definition text. +% \begin{macrocode} +\long\def\HyC@nc@noopt#1{% + \edef\x{% + \expandafter\noexpand\HyC@defcmd + \HyC@star + \expandafter\noexpand\HyC@cmd + \HyC@param\the\HyC@Toks + }% + \x{#1}% + \HyC@doCheck +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@nc@opt} +% This macro scans the first optional argument +% of a \LaTeX\ definition (number of arguments). +% \begin{macrocode} +\def\HyC@nc@opt[#1]{% + \def\HyC@param{[{#1}]}% + \@ifnextchar[\HyC@nc@default\HyC@nc@noopt +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@nc@default} +% Macro \cmd{\HyC@nc@default} scans the +% default for an optional argument. +% \begin{macrocode} +\def\HyC@nc@default[#1]{% + \HyC@Toks={[{#1}]}% + \edef\HyC@optcmd{% + \expandafter\noexpand + \csname\expandafter\string\HyC@@cmd\endcsname + }% + \expandafter\let\expandafter\HyC@org@optcmd\HyC@optcmd + \HyC@nc@noopt +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyC@DeclareRobustCommand} +% \cmd{\DeclareRobustCommand}|{\cmd}| makes the command +% \cmd{\cmd} robust, that then calls |\cmd|\verb*| | +% with an space at the end of the command name, defined by +% \cmd{\newcommand}. Therefore the further parsing +% is done by \cmd{\HyC@nc@opt} or \cmd{\Hy@nc@noopt} +% of the \cmd{\HyC@newcommand} chain. +% \begin{macrocode} +\def\HyC@DeclareRobustCommand{% + \edef\HyC@robustcmd{% + \expandafter\noexpand + \csname\expandafter\expandafter\expandafter\@gobble + \expandafter\string\HyC@cmd\space\endcsname + }% + \expandafter\let\expandafter\HyC@org@robustcmd\HyC@robustcmd + \expandafter\let\HyC@robustcmd\relax + \let\HyC@@cmd\HyC@robustcmd + \@ifnextchar[\HyC@nc@opt\HyC@nc@noopt +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyC@def} +% \begin{macro}{\HyC@edef} +% The parameter text of \cmd{\def} or \cmd{\edef} is +% stored in the token register \cmd{\HyC@Toks}. +% \begin{macrocode} +\def\HyC@def#1#{% + \HyC@Toks={#1}% + \HyC@nc@noopt +} +\let\HyC@edef\HyC@def +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\HyC@doCheck} +% This command performs the checks and prints the result. +% \begin{macrocode} +\def\HyC@doCheck{% + \typeout{* Checking `\HyC@string\HyC@cmd':}% + \HyC@checkItem{cmd}% + \HyC@checkItem{robustcmd}% + \HyC@checkItem{optcmd}% + \HyC@checkItem{robustoptcmd}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@checkItem} +% A single check. +% \begin{macrocode} +\def\HyC@checkItem#1{% + \expandafter\ifx\csname HyC@org@#1\endcsname\HyC@noValue + \else + \expandafter\expandafter\expandafter\ifx + \csname HyC@#1\expandafter\endcsname + \csname HyC@org@#1\endcsname + \expandafter\HyC@checkOk\csname HyC@#1\endcsname + \else + \expandafter\HyC@checkFailed + \csname HyC@#1\expandafter\endcsname + \csname HyC@org@#1\endcsname + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@string} +% \begin{macro}{\HyC@meaning} +% Some shorthands. +% \begin{macrocode} +\def\HyC@string#1{\expandafter\string#1} +\def\HyC@meaning#1{\expandafter\meaning#1} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \begin{macro}{\HyC@checkOk} +% The result, if the check succeeds. +% \begin{macrocode} +\def\HyC@checkOk#1{% + \typeout{\space\space`\HyC@string#1' ok.}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyC@checkFailed} +% The result, if the check fails. +% \begin{macrocode} +\def\HyC@checkFailed#1#2{% + \typeout{\space\space`\HyC@string#1' failed.}% + \typeout{\space\space* original: \meaning#2}% + \typeout{\space\space* expected: \HyC@meaning#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +% ************************************************** +%</check> +% \end{macrocode} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% \section{Package options and setup}\label{options} +% +% +% \subsection{Save catcodes} +% There are many packages that change the standard catcodes. +% +% First we save the original meaning of |`| and |=| +% in the token register |\toks@|, because we need the two +% characters in the macros \cmd{\Hy@SetCatcodes} and +% \cmd{\Hy@RestoreCatcodes}. +% \begin{macrocode} +\begingroup + \@makeother\`% + \@makeother\=% + \edef\x{% + \edef\noexpand\x{% + \endgroup + \noexpand\toks@{% + \catcode 96=\noexpand\the\catcode`\noexpand\`\relax + \catcode 61=\noexpand\the\catcode`\noexpand\=\relax + }% + }% + \noexpand\x + }% +\x +\@makeother\` +\@makeother\= +% \end{macrocode} +% \begin{macro}{\Hy@SetCatcodes} +% \begin{macrocode} +\def\Hy@SetCatcodes{% + \@makeother\`% + \@makeother\=% + \catcode`\$=3 % + \catcode`\&=4 % + \catcode`\^=7 % + \catcode`\_=8 % + \@makeother\|% + \@makeother\:% + \@makeother\(% + \@makeother\)% + \@makeother\[% + \@makeother\]% + \@makeother\/% + \@makeother\!% + \@makeother\<% + \@makeother\>% + \@makeother\.% + \@makeother\;% + \@makeother\+% + \@makeother\-% + \@makeother\"% + \@makeother\'% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@RestoreCatcodes} +% \begin{macrocode} +\begingroup + \def\x#1{\catcode`\noexpand#1=\the\catcode`#1\relax}% + \xdef\Hy@RestoreCatcodes{% + \the\toks@ + \x\$% + \x\&% + \x\^% + \x\_% + \x\|% + \x\:% + \x\(% + \x\)% + \x\[% + \x\]% + \x\/% + \x\!% + \x\<% + \x\>% + \x\.% + \x\;% + \x\+% + \x\-% + \x\"% + \x\'% + }% +\endgroup +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\Hy@SetCatcodes +% \end{macrocode} +% +% It needs the December 95 release of \LaTeX, because it uses +% |\protected@write|, and it defines commands in options; and the page +% setup internal code changed at that point. It'll probably break +% with the later releases! +% +% Use package |hobsub-hyperref| for faster package loading. +% \begin{macrocode} +\IfFileExists{hobsub-hyperref.sty}{% + \RequirePackage{hobsub-hyperref}[2011/01/30]% +}{} +% \end{macrocode} +% \begin{macrocode} +\RequirePackage{ltxcmds}[2010/11/12] +\RequirePackage{ifpdf}[2006/02/20] +\RequirePackage{pdftexcmds}[2009/04/10] +\@ifpackagelater{pdftexcmds}{2010/11/04}{}{% + \ltx@IfUndefined{pdfdraftmode}{% + \let\pdf@ifdraftmode\ltx@secondoftwo + }{% + \ifpdf + \def\pdf@ifdraftmode{% + \ifnum\pdfdraftmode=\ltx@one + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + }% + \else + \let\pdf@ifdraftmode\ltx@secondoftwo + \fi + }% +} +% \end{macrocode} +% \begin{macrocode} +\RequirePackage{infwarerr}[2010/04/08] +\RequirePackage{keyval}[1997/11/10] +\RequirePackage{kvsetkeys}[2007/09/29] +\RequirePackage{kvdefinekeys}[2011/04/07] +\RequirePackage{pdfescape}[2007/11/11] +\RequirePackage{ifvtex} +\RequirePackage{ifxetex}[2006/08/21] +\RequirePackage{hycolor} +\RequirePackage{letltxmacro}[2008/06/13] +\RequirePackage{auxhook}[2009/12/14] +\def\Hy@Error{\@PackageError{hyperref}} +\def\Hy@Warning{\@PackageWarning{hyperref}} +\def\Hy@WarningNoLine{\@PackageWarningNoLine{hyperref}} +\def\Hy@Info{\@PackageInfo{hyperref}} +\def\Hy@InfoNoLine{\@PackageInfoNoLine{hyperref}} +\def\Hy@Message#1{% + \GenericWarning{% + (hyperref)\@spaces\@spaces\@spaces\@spaces + }{% + Package hyperref Message: #1\ltx@gobble + }% +} +% \end{macrocode} +% +% \subsection{Version check} +% +% \begin{macro}{\Hy@VersionChecked} +% \begin{macrocode} +\chardef\Hy@VersionChecked=0 % +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@VersionCheck} +% \begin{macrocode} +\def\Hy@VersionCheck#1{% + \begingroup + \ltx@IfUndefined{ver@hyperref.sty}{% + \Hy@Error{% + This should not happen!\MessageBreak + Missing hyperref version% + }\@ehd + }{% + \ltx@IfUndefined{ver@#1}{% + \Hy@Error{% + This should not happen!\MessageBreak + Missing version of `#1'% + }\@ehd + }{% + \def\x##1##2##3{% + \expandafter\expandafter\expandafter\Hy@@VersionCheck + \expandafter\expandafter\expandafter##2% + \csname ver@##3\endcsname##1##1\@nil + }% + \x{ }\y{hyperref.sty}% + \x{ }\z{#1}% + \ifx\y\z + \else + \edef\a{#1}% + \edef\b{\HyOpt@CustomDriver.def}% + \ifx\a\b + \Hy@WarningNoLine{% + Version mismatch (custom driver)!\MessageBreak + * \y: hyperref.sty\MessageBreak + * \z: \a + }% + \else + \Hy@Error{% + Version mismatch!\MessageBreak + * \y: hyperref.sty\MessageBreak + * \z: \a + }\@ehd + \fi + \fi + }% + }% + \endgroup + \chardef\Hy@VersionChecked=1 % +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@@VersionCheck} +% \begin{macrocode} +\def\Hy@@VersionCheck #1#2 #3 #4\@nil{% + \def#1{#2 #3}% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Checks with regular expressions} +% +% \begin{macrocode} +\ltx@IfUndefined{pdfmatch}{% + \def\Hy@Match#1#2#3#4#5{}% +}{% + \def\Hy@Match#1#2#3{% + \begingroup + \edef\^{\ltx@backslashchar\string^}% + \edef\.{\ltx@backslashchar.}% + \edef\[{\ltx@backslashchar[}% ]] + \edef\${\ltx@backslashchar$}% + \edef\({\ltx@backslashchar(}% + \edef\){\ltx@backslashchar)}% + \edef\|{\ltx@backslashchar|}% + \edef\*{\ltx@backslashchar*}% + \edef\+{\ltx@backslashchar+}% + \edef\?{\ltx@backslashchar?}% + \edef\{{\ltx@backslashchar\ltx@leftbracechar}% + \edef\}{\ltx@rightbracechar}% + \edef\\{\ltx@backslashchar\ltx@backslashchar}% + \let\ \ltx@space + \ifcase\pdfmatch#2{#3}{#1} % + \endgroup + \expandafter\ltx@secondoftwo + \or + \endgroup + \expandafter\ltx@firstoftwo + \else + \Hy@Warning{% + Internal error: Wrong pattern!\MessageBreak + --> #3 <--\MessageBreak + Pattern check ignored% + }% + \endgroup + \expandafter\ltx@firstoftwo + \fi + }% + \ltx@ifpackagelater{ltxcmds}{2010/09/11}{}{% + \begingroup + \lccode`0=`\{\relax + \lowercase{\endgroup + \def\ltx@leftbracechar{0}% + }% + \begingroup + \lccode`0=`\}\relax + \lowercase{\endgroup + \def\ltx@rightbracechar{0}% + }% + }% +} +% \end{macrocode} +% +% \subsection{Compatibility with format dumps} +% +% \begin{macro}{\AfterBeginDocument} +% For use with pre-compiled formats, created using the +% |ldump| package, there needs to be 2 hooks for adding +% material delayed until |\begin{document}|. +% These are called \cmd{\AfterBeginDocument} and +% \cmd{\AtBeginDocument}. +% If |ldump| is not loaded, then a single hook suffices +% for normal \LaTeX{} processing. +% +% The default definition of |\AfterBeginDocument| cannot +% be done by |\let| because of problems with |xypic|. +% \begin{macrocode} +\@ifundefined{AfterBeginDocument}{% + \def\AfterBeginDocument{\AtBeginDocument}% +}{}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@AtBeginDocument} +% For the case that package `hyperref' is loaded +% using \cs{AtBeginDocument}, we have to wrap the calls +% of \cs{AtBeginDocument}/\cs{AfterBeginDocument} in +% \cs{AtEndOfPackage}. However, packages must be +% loaded in \cs{AtEndOfPackage} \emph{before} package +% `kvoptions' has to perform its option cleanup. +% Therefore we use a hook. +% \begin{macrocode} +\def\Hy@AtBeginDocument{% + \ltx@LocalAppendToMacro\Hy@AtBeginDocumentHook +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@AtEndOfPackage} +% \begin{macrocode} +\def\Hy@AtEndOfPackage{% + \ltx@LocalAppendToMacro\Hy@AtEndOfPackageHook +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@AtBeginDocumentHook} +% \begin{macrocode} +\let\Hy@AtBeginDocumentHook\ltx@empty +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@AtEndOfPackageHook} +% \begin{macrocode} +\let\Hy@AtEndOfPackageHook\ltx@empty +% \end{macrocode} +% \end{macro} +% Install the hook, before package `kvoptions' is loaded. +% \begin{macrocode} +\AtEndOfPackage{% + \Hy@AtEndOfPackageHook + \let\Hy@AtEndOfPackageHook\@undefined + \AfterBeginDocument{% + \Hy@AtBeginDocumentHook{}% + \let\Hy@AtBeginDocumentHook\@undefined + }% +} +% \end{macrocode} +% +% Package kvoptions is used for processing options that are +% given as key value pairs. The package provides +% |\ProcessKeyvalOptions|, formerly known as +% |\ProcessOptionsWithKV|. +% \begin{macrocode} +\RequirePackage{kvoptions}[2009/07/21] +% \end{macrocode} +% +% \subsection{Switches} +% \begin{macrocode} +\newif\ifHy@stoppedearly +\newif\ifHy@typexml +\newif\ifHy@activeanchor +\newif\ifHy@backref +\newif\ifHy@bookmarks +\newif\ifHy@bookmarksnumbered +\newif\ifHy@bookmarksopen +\newif\ifHy@breaklinks +\newif\ifHy@pdfcenterwindow +\newif\ifHy@CJKbookmarks +\newif\ifHy@colorlinks +\newif\ifHy@destlabel +\newif\ifHy@draft +\let\Hy@finaltrue\Hy@draftfalse +\let\Hy@finalfalse\Hy@drafttrue +\newif\ifHy@pdfescapeform +\newif\ifHy@hyperfigures +\newif\ifHy@pdffitwindow +\newif\ifHy@frenchlinks +\newif\ifHy@hyperfootnotes +\newif\ifHy@hyperindex +\newif\ifHy@hypertexnames +\newif\ifHy@implicit +\newif\ifHy@linktocpage +\newif\ifHy@localanchorname +\newif\ifHy@pdfmenubar +\newif\ifHy@naturalnames +\newif\ifHy@nesting +\newif\ifHy@pdfnewwindowset +\newif\ifHy@pdfnewwindow +\newif\ifHy@ocgcolorlinks +\newif\ifHy@pageanchor +\newif\ifHy@pdfpagelabels +\newif\ifHy@pdfpagehidden +\newif\ifHy@pdfstring +\newif\ifHy@plainpages +\newif\ifHy@psize +\newif\ifHy@raiselinks +\newif\ifHy@seminarslides +\newif\ifHy@setpagesize +\newif\ifHy@texht +\newif\ifHy@psdextra +\newif\ifHy@pdftoolbar +\newif\ifHy@unicode +\newif\ifHy@pdfusetitle +\newif\ifHy@verbose +\let\Hy@debugtrue\Hy@verbosetrue +\let\Hy@debugfalse\Hy@verbosefalse +\newif\ifHy@pdfwindowui +\newif\ifHy@pdfdisplaydoctitle +\newif\ifHy@pdfa +% \end{macrocode} +% Defaults for the switches are now set. +% \begin{macrocode} +\Hy@backreffalse +\Hy@bookmarksnumberedfalse +\Hy@bookmarksopenfalse +\Hy@bookmarkstrue +\Hy@breaklinksfalse +\Hy@pdfcenterwindowfalse +\Hy@CJKbookmarksfalse +\Hy@destlabelfalse +\Hy@pdfescapeformfalse +\Hy@hyperfiguresfalse +\Hy@pdffitwindowfalse +\Hy@hyperfootnotestrue +\Hy@hyperindextrue +\Hy@hypertexnamestrue +\Hy@implicittrue +\Hy@linktocpagefalse +\Hy@localanchornamefalse +\Hy@pdfmenubartrue +\Hy@naturalnamesfalse +\Hy@nestingfalse +\Hy@pdfnewwindowsetfalse +\Hy@pdfnewwindowfalse +\Hy@pageanchortrue +\Hy@pdfpagelabelstrue +\Hy@pdfpagehiddenfalse +\Hy@pdfstringfalse +\Hy@plainpagesfalse +\Hy@raiselinksfalse +\Hy@setpagesizetrue +\Hy@texhtfalse +\Hy@psdextrafalse +\Hy@pdftoolbartrue +\Hy@typexmlfalse +\Hy@unicodefalse +\Hy@pdfusetitlefalse +\Hy@verbosefalse +\Hy@pdfwindowuitrue +\Hy@pdfdisplaydoctitlefalse +\Hy@pdfafalse +% \end{macrocode} +% +% \section{Common help macros} +% +% \begin{macro}{\Hy@StepCount} +% \begin{macrocode} +\def\Hy@StepCount#1{\advance#1 by 1 }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@GlobalStepCount} +% \begin{macrocode} +\def\Hy@GlobalStepCount#1{\global\advance#1 by 1 }% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\newdimen\@linkdim +\let\Hy@driver\ltx@empty +\let\MaybeStopEarly\relax +\newcount\Hy@linkcounter +\newcount\Hy@pagecounter +\Hy@linkcounter0 +\Hy@pagecounter0 +% \end{macrocode} +% +% \subsection{Macros for recursions} +% +% \begin{macrocode} +\let\Hy@ReturnEnd\@empty +\long\def\Hy@ReturnAfterFiFiEnd#1\fi#2\Hy@ReturnEnd{\fi\fi#1} +\long\def\Hy@ReturnAfterElseFiFiEnd#1\else#2\Hy@ReturnEnd{\fi\fi#1} +% \end{macrocode} +% +% \subsection{Babel's protection of shorthand characters} +% +% \begin{macro}{\Hy@safe@activestrue} +% \begin{macro}{\Hy@safe@activesfalse} +% Babel's switch setting commands cannot used directly, +% because they can be undefined if babel is not loaded. +% \begin{macrocode} +\def\Hy@safe@activestrue{\csname @safe@activestrue\endcsname} +\def\Hy@safe@activesfalse{\csname @safe@activesfalse\endcsname} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Coordinate transformations} +% +% At some places numbers in pdf units are +% expected (eg: FitBH, ...). The following macros +% perform the transformation from TeX units (pt) +% to PDF units (bp). +% +% \begin{macro}{\hypercalcbp} +% The user macro \cmd{\hypercalcbp} can be used, for example, +% inside option values: +%\begin{verbatim} +%pdfstartview={FitBH \hypercalcbp{\paperheight-\topmargin-1in}} +%\end{verbatim} +% \begin{itemize} +% \item +% It cannot be used inside \cmd{\usepackage}, because +% LaTeX expands the options before package hyperref +% is loaded and \cmd{\hypercalcbp} is defined. +% \item +% With e-TeX extensions an expandable implementation +% is very easy; \cmd{\hypercalcbp} can be used +% everywhere and is expanded at use. +% \item +% Without e-TeX's features \cmd{\hypercalcbp} cannot be +% implemented expandable (practically) and have to +% be supported by \cmd{\hypercalcbpdef}. +% Limitations: +% \begin{itemize} +% \item Works only in options that use \cmd{\hypercalcbpdef} +% (currently only |pdfstartview|). +% \item For calculations package |calc| has to be loaded. +% \item The expansion of the argument is done at definition time. +% \end{itemize} +% \end{itemize} +% Example (\TeX): +%\begin{verbatim} +%\usepackage{calc} +%\usepackage[...]{hyperref} +%\hypersetup{ +% pdfstartview={FitBH \hypercalcbp{\paperheight-\topmargin-1in +% -\headheight-\headsep} +%} +%\end{verbatim} +% \begin{macro}{\hypercalcbp} +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname dimexpr\endcsname\relax + \def\hypercalcbpdef#1#2{% + \begingroup + \toks@{}% + \HyCal@scan#2\hypercalcbp\@nil + \expandafter\endgroup + \expandafter\def\expandafter#1\expandafter{\the\toks@}% + }% + \def\HyCal@scan#1\hypercalcbp#2\@nil{% + \toks@\expandafter{\the\toks@ #1}% + \ifx\\#2\\% + \else + \ltx@ReturnAfterFi{% + \HyCal@do#2\@nil + }% + \fi + }% + \def\HyCal@do#1#2\@nil{% + \@ifpackageloaded{calc}{}{% + \Hy@Warning{% + For calculations \string\hypercalcbp\space needs\MessageBreak + package calc or e-TeX% + }% + }% + \setlength{\dimen@}{#1}% + \setlength{\dimen@}{0.99626401\dimen@}% + \edef\x{% + \toks@{% + \the\toks@ + \strip@pt\dimen@ + }% + }\x + \HyCal@scan#2\@nil + }% +\else + \def\hypercalcbp#1{% + \strip@pt\dimexpr 0.99626401\dimexpr(#1)\relax\relax + }% + \def\hypercalcbpdef{\def}% +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{Dealing with PDF strings}\label{sec:pdfstring} +% The PDF string stuff done by Heiko Oberdiek. +% +% Naming convention: All internal commands that are only +% needed by \cs{pdfstringdef} are prefixed with \cs{HyPsd@}. +% +% \subsection{Description of PDF strings} +% The PDF specification defines several places to hold +% text strings (bookmark names, document information, +% text annotations, etc.). +% The PDF strings have following properties: +% \begin{itemize} +% \item They are surrounded by parentheses. The hexadecimal form +% is not supported. +% \item Like PostScript language strings they use the same +% escaping mechanism:\\ +% \begin{tabular}{ll} +% |\\|& the backslash itself\\ +% \cs{)}, \cs{(}& unbalanced parentheses\\ +% \cs{n}, \cs{r}, \cs{t}, \cs{b}, \cs{f}& special white space +% escape sequences\\ +% |\|\textit{|ddd|}& octal character code \textit{|ddd|} +% \end{tabular} +% \item Strings are stored either in PDFDocEncoding, which is a superset of +% ISOLatin1 and is compatible with Unicode with character codes +% below 256, or in Unicode. +% \end{itemize} +% +% \subsection{Definition of +% \texorpdfstring{\cs{pdfstringdef}}{\\pdfstringdef}} +% The central macro for dealing with PDF strings is \cs{pdfstringdef}. +% It defines a command |#1| to be the result of the conversion +% from the string in |#2| to a legal PDFDocEncoded string. +% Currently the definition is global, but this can be changed in +% the future. +% +% Important: In \TeX's view PDF strings are written to a file and +% are expanded only in its mouth. Stomach commands that cannot +% be expanded further aren't executed, they are written verbatim. +% But the PDF reader that reads such a string isn't a \TeX{} +% interpreter! +% +% The macro \cs{pdfstringdef} consists of three main parts: +% \begin{enumerate} +% \item Preprocessing. Here the expansion is prepared. The encoding +% is set and many commands are redefined, so that they work +% appropriate. +% \item Expansion. The \TeX{} string is expanded the first time +% to get a PDF string. +% \item Postprocessing. The result of the expansion is checked and +% converted to the final form. +% \end{enumerate} +% +% \begin{macro}{\pdfstringdef} +% \cs{pdfstringdef} works on the tokens in |#2| and converts them to +% a PDF string as far as possible: +% \begin{itemize} +% \item The result should obey the rules of the PDF specification +% for strings. +% \item The string can safely processed by \TeX, because the +% tokens have only catcodes 10 until 12. +% \end{itemize} +% The result is stored in the command token given in |#1|. +% \begin{macrocode} +\def\pdfstringdef#1#2{% +% \end{macrocode} +% Many redefinitions are needed, so all the work is done in a group. +% \begin{macrocode} + \begingroup +% \end{macrocode} +% +% \subsubsection{Preprocessing} +% \paragraph{Octal escape sequences.} +% To avoid problems with eight bit or non printable characters, the octal +% escape notation is supported. So most glyphs in the encoding definitions +% for PD1 and PU produce these octal escape sequences. +% All three octal digits have to be used: +% \begin{itemize} +% \item Wrong results are avoided, if digits follow that are not part of the +% octal sequence. +% \item Macros rely on the fact that the octal sequences always consist of +% three digits (vtex driver, Unicode support). +% \end{itemize} +% The escape sequences start with a backslash. By \cs{string} it will be +% printed. Therefore it is ensured that the \TeX{} escape character indeed +% prints as a normal backslash. +% Eventually this line can be removed, because this is standard +% \LaTeX{} behaviour. +% \begin{macrocode} + \escapechar`\\% +% \end{macrocode} +% From the view of \TeX{} a octal sequence consists of the command tokens +% \cs{0} until \cs{3} and two digits. +% For saving tokens \cs{0}, \cs{1}, \cs{2}, and \cs{3} are directly +% used without a preceding \cs{string} in the glyph definitions. +% This is done here locally +% by defining the \cs{0} until \cs{3} commands. So the user +% can use octal escape sequences directly, the disadvantage is +% that a previous definition of this short commands does not apply. +% \begin{macrocode} + \edef\0{\string\0}% + \edef\1{\string\1}% + \edef\2{\string\2}% + \edef\3{\string\3}% +% \end{macrocode} +% \paragraph{Setting font encoding.} +% The unicode encoding +% uses \cs{8} and \cs{9} as marker for the higher byte. +% \cs{8} is an abbreviation for the higher bytes 0 until 7 +% that can be expressed by one digit. \cs{8} will be +% converted to \cs{00}. However \cs{9} only marks the next +% three digits as higher byte and will be removed later. +% +% The encoding is set by \cs{enc@update} for optimizing reasons. +% \begin{macrocode} + \ifHy@unicode + \edef\8{\string\8}% + \edef\9{\string\9}% + \fontencoding{PU}% + \HyPsd@UTFviii + \def\ifpdfstringunicode##1##2{##1}% + \else + \fontencoding{PD1}% + \def\ifpdfstringunicode##1##2{##2}% + \fi + \let\utf@viii@undeferr\HyPsd@utf@viii@undeferr + \enc@update +% \end{macrocode} +% +% \paragraph{Internal encoding commands.} +% \cs{pdfstringdef} interpretes text strings which are not allowed +% to contain mathematical stuff. The text glyph commands will produce +% a warning, if called in math mode. But this warning disturbs while +% expanding. Therefore we check for math mode here, before +% \cs{@inmathwarn} will be disabled (see below). +% \begin{macrocode} + \@inmathwarn\pdfstringdef +% \end{macrocode} +% If a glyph is used, that isn't in the PD1/PU encoding there will +% be an infinite error loop, because the NFSS encoding stuff +% have to be expanded unprotected (\cs{edef}), so that the +% assigments of \cs{@changed@cmd} don't take place. +% To patch this behaviour I only found \cs{@inmathwarn} +% as a usable hook. While an \cs{edef} a warning message by +% \cs{@inmathwarn} or \cs{TextSymbolUnavailable} cannot be give out, +% so \cs{@inmathwarn} should be disabled. And with the help of it +% the assignments in \cs{@changed@cmd} can easily be caught +% (see below). +% \begin{macrocode} + \let\@inmathwarn\HyPsd@inmathwarn +% \end{macrocode} +% +% Unknown composite characters are built with \cs{add@accent}, +% so it is redefined to provide a warning. +% \begin{macrocode} + \let\add@accent\HyPsd@add@accent +% \end{macrocode} +% +% \paragraph{Commands that don't use NFSS directly.} +% There are several commands that prints characters in the +% printable ASCII area that don't obey the NFSS, so they have +% to be redefined here. +% UF 29.09.2017: added a mapping for \cs{noboundary}, see issue |#37| +% \url{https://github.com/ho-tex/hyperref/issues/37} +% No test for PU, if some definition for PD1 is added it will work too. +% \begin{macrocode} + \let\{\textbraceleft + \let\}\textbraceright + \let\\\textbackslash + \let\#\textnumbersign + \let\$\textdollar + \let\%\textpercent + \let\&\textampersand +% \let\~\textasciitilde + \let\_\textunderscore + \let\P\textparagraph + \let\ldots\textellipsis + \let\dots\textellipsis + \ltx@IfUndefined{textEncodingNoboundary}% + {}{\let\noboundary\textEncodingNoboundary}% +% \end{macrocode} +% +% \paragraph{Newline} +% \cmd{\newline} or \cmd{\\} do not work in bookmarks, in text +% annotations they should expand to \cmd{\r}. In pdf strings +% \cmd{\\} stands for a backslash. Therefore the commands +% are disabled now. The user can redefine them for a result +% what he want: +% \begin{description} +% \item[backslash:] +% |\pdfstringdefDisableCommands{\let\\\textbackslash}| +% \item[new line:] +% |\pdfstringdefDisableCommands{\let\\\textCR}| +% \item[disabled:] +% |\pdfstringdefDisableCommands{\let\\\empty}| +% \end{description} +% At any case, however, the optional argument or the star +% cannot be scanned in a 100\% sure manner. +% \begin{macrocode} + \def\\{\pdfstringdefWarn\\}% + \def\newline{\pdfstringdefWarn\newline}% +% \end{macrocode} +% +% \paragraph{Logos.} +% Because the box shifting +% used in the \TeX{} logo does not work while writing to a file, +% the standard \TeX{} logos are redefined. +% \begin{macrocode} + \def\TeX{TeX}% + \def\LaTeX{La\TeX}% + \def\LaTeXe{% + \LaTeX2% + \ifHy@unicode\textepsilon\else e\fi + }% + \def\eTeX{% + \ifHy@unicode\textepsilon\else e\fi + -\TeX% + }% + \def\SliTeX{Sli\TeX}% + \def\MF{Metafont}% + \def\MP{Metapost}% +% \end{macrocode} +% +% \paragraph{Standard font commands.} +% Because font changes do not work, the standard font +% switching commands are disabled. +% \begin{macrocode} + \let\fontencoding\@gobble + \let\fontfamily\@gobble + \let\fontseries\@gobble + \let\fontshape\@gobble + \let\fontsize\@gobbletwo + \let\selectfont\@empty + \let\usefont\@gobblefour + \let\emph\@firstofone + \let\textnormal\@firstofone + \let\textrm\@firstofone + \let\textsf\@firstofone + \let\texttt\@firstofone + \let\textbf\@firstofone + \let\textmd\@firstofone + \let\textit\@firstofone + \let\textsc\@firstofone + \let\textsl\@firstofone + \let\textup\@firstofone + \let\normalfont\@empty + \let\rmfamily\@empty + \let\sffamily\@empty + \let\ttfamily\@empty + \let\bfseries\@empty + \let\mdseries\@empty + \let\itshape\@empty + \let\scshape\@empty + \let\slshape\@empty + \let\upshape\@empty + \let\em\@empty + \let\rm\@empty + \let\Huge\@empty + \let\LARGE\@empty + \let\Large\@empty + \let\footnotesize\@empty + \let\huge\@empty + \let\large\@empty + \let\normalsize\@empty + \let\scriptsize\@empty + \let\small\@empty + \let\tiny\@empty + \let\mathversion\@gobble + \let\phantom\@gobble + \let\vphantom\@gobble + \let\hphantom\@gobble +% \end{macrocode} +% +% \paragraph{Package pifont.} +% \begin{macrocode} + \let\ding\HyPsd@ding + \let\Cube\HyPsd@DieFace +%* \HyPsd@DieFace -> \epsdice (epsdice) +%* \HyPsd@DieFace -> \fcdice (hhcount) +% \end{macrocode} +% +% \paragraph{Environments.} +% \begin{macrocode} + \def\begin#1{\csname#1\endcsname}% + \def\end#1{\csname end#1\endcsname}% +% \end{macrocode} +% +% \paragraph{Package color.} +% \begin{macrocode} + \def\textcolor##1##{\@secondoftwo}% +% \end{macrocode} +% +% \paragraph{Upper- and lowercase.} +% \begin{macrocode} + \def\MakeUppercase{\MakeUppercaseUnsupportedInPdfStrings}% + \def\MakeLowercase{\MakeLowercaseUnsupportedInPdfStrings}% +% \end{macrocode} +% +% \paragraph{Support of math commands without prefix \texttt{text}.} +% This is controlled by option ``psdextra'' and only +% activated with Unicode PDF strings. +% \begin{macrocode} + \ifHy@psdextra + \ifHy@unicode + \csname psdmapshortnames\endcsname + \csname psdaliasnames\endcsname + \fi + \fi +% \end{macrocode} +% +% \paragraph{Package babel.} +% Whereever ``naturalnames'' is used, disable \cs{textlatin} +% (from Babel 3.6k). Thanks to Felix Neubauer +% (Email: \Email{Felix.Neubauer@gmx.net}). +% \begin{macrocode} + \let\foreignlanguage\@secondoftwo + \let\textlatin\@firstofone + \ltx@IfUndefined{language@group}{}{% + \let\bbl@info\@gobble + \csname HyPsd@babel@\language@group\endcsname + }% + \HyPsd@GreekPatch + \HyPsd@SpanishPatch + \HyPsd@RussianPatch +% \end{macrocode} +% \begin{macrocode} + \HyPsd@BabelPatch +% \end{macrocode} +% +% \begin{macrocode} + \let\@safe@activestrue\relax + \let\@safe@activesfalse\relax +% \end{macrocode} +% +% Disable \cs{cyr}, used in russianb.ldf. +% \begin{macrocode} + \let\cyr\relax +% \end{macrocode} +% +% Redefine \cs{es@roman}, used in spanish.ldf. +% \begin{macrocode} + \let\es@roman\@Roman +% \end{macrocode} +% +% \paragraph{Package german.} +% \begin{macrocode} + \let\glqq\textglqq + \let\grqq\textgrqq + \let\glq\textglq + \let\grq\textgrq + \let\flqq\textflqq + \let\frqq\textfrqq + \let\flq\textflq + \let\frq\textfrq +% \end{macrocode} +% +% \paragraph{Package french.} The support is deferred, because +% it needs |\GenericError| to be disabled (see below). +% +% \paragraph{Package FrenchPro.} This package uses: +% \begin{quote} +% |\if@mid@expandable{|not fully expandable code|}{|fully expandable code|}| +% \end{quote} +% \begin{macrocode} + \let\if@mid@expandable\@firstoftwo +% \end{macrocode} +% +% \paragraph{AMS classes.} +% \begin{macrocode} + \HyPsd@AMSclassfix +% \end{macrocode} +% +% \paragraph{Redefinition of \cs{hspace}} +% \cs{hspace} don't work in bookmarks, the following fix +% tries to set a space if the argument is a positive length. +% \begin{macrocode} + \let\hspace\HyPsd@hspace +% \end{macrocode} +% +% \paragraph{Commands of referencing and indexing systems.} +% Some \LaTeX{} commands that are legal in \cs{section} commands +% have to be disabled here. +% \begin{macrocode} + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \let\href\HyPsd@href + \let\@mkboth\@gobbletwo +% \end{macrocode} +% +% The \cs{ref} and \cs{pageref} is much more complicate because of their +% star form. +% \begin{macrocode} + \let\ref\HyPsd@ref + \let\pageref\HyPsd@pageref + \let\nameref\HyPsd@nameref + \let\autoref\HyPsd@autoref +% \end{macrocode} +% +% \paragraph{Miscellaneous commands.} +% \begin{macrocode} + \let\leavevmode\@empty + \let\mbox\@empty +% \end{macrocode} +% \cs{halign} causes error messages because of the template +% character |#|. +% \begin{macrocode} + \def\halign{\pdfstringdefWarn\halign\@gobble}% +% \end{macrocode} +% \begin{macrocode} + \let\ignorespaces\HyPsd@ignorespaces +% \end{macrocode} +% \begin{macrocode} + \let\Hy@SectionAnchorHref\@gobble +% \end{macrocode} +% \begin{macrocode} + \let\ensuremath\@firstofone +% \end{macrocode} +% +% \paragraph{Patch for cjk bookmarks.} +% \begin{macrocode} + \HyPsd@CJKhook +% \end{macrocode} +% +% \paragraph{User hook.} +% The switch \cs{Hy@pdfstring} is turned on. So user commands +% can detect that they are processed not to be typesetted within +% \TeX's stomach, +% but to be expanded by the mouth to give a PDF string. +% At this place before interpreting the string in |#2| additional +% redefinitions can by added by the hook \cs{pdfstringdefPreHook}. +% +% The position in the middle of the redefinitions is a compromise: +% The user should be able to provide his own (perhaps better) +% redefinitions, but some commands should have their original +% meaning, because they can be used in the hook (\cs{bgroup}, +% or \cs{@protected@testopt}, and \cs{@ifnextchar} +% for \cs{renewcommand}). +% \begin{macrocode} + \Hy@pdfstringtrue + \pdfstringdefPreHook +% \end{macrocode} +% +% \paragraph{Spaces.} +% For checking the token of the string, spaces must be masked, because +% they cannot by caught by undelimited arguments. +% \begin{macrocode} + \HyPsd@LetUnexpandableSpace\space + \HyPsd@LetUnexpandableSpace\ % + \HyPsd@LetUnexpandableSpace~% + \HyPsd@LetUnexpandableSpace\nobreakspace +% \end{macrocode} +% +% \paragraph{Package xspace.} +% \begin{macrocode} + \ltx@IfUndefined{@xspace}{% + \let\xspace\HyPsd@ITALCORR + }{% + \let\xspace\HyPsd@XSPACE + }% + \let\/\HyPsd@ITALCORR + \let\bgroup\/% + \let\egroup\/% +% \end{macrocode} +% +% \paragraph{Redefinitions of miscellaneous commands.} +% Hyphenation does not make sense. +% \begin{macrocode} + \let\discretionary\@gobbletwo +% \end{macrocode} +% +% \cs{@ifstar} is defined in \LaTeX\ as follows: +%\begin{verbatim} +%\def\@ifstar#1{\@ifnextchar *{\@firstoftwo{#1}}} +%\end{verbatim} +% \cs{@ifnextchar} doesn't work, because it uses stomach +% commands like \cs{let} and \cs{futurelet}. But it +% doesn't break. Whereas |\@firstoftwo{#1}}| gives an +% error message because \cs{@firstoftwo} misses its second +% argument. +% +% A mimicry of \cs{@ifnextchar} only with expandible commands +% would be very extensive and the result would be only an +% approximation. So here a cheaper solution follows +% in order to get rid of the error message at least: +% \begin{macrocode} + \def\@ifnextchar{\HyPsd@ifnextchar\@ifnextchar}% + \def\kernel@ifnextchar{\HyPsd@ifnextchar\kernel@ifnextchar}% + \def\new@ifnextchar{\HyPsd@ifnextchar\new@ifnextchar}% + \let\@protected@testopt\HyPsd@protected@testopt +% \end{macrocode} +% Support for package `xargs': +% \begin{macrocode} + \let\@protected@testopt@xargs\HyPsd@protected@testopt +% \end{macrocode} +% +% \subsubsection{Expansion} +% There are several possibilities to +% expand tokens within \LaTeX: +% \begin{description} +% \item[\cs{protected@edef}:] +% The weakest form isn't usable, because +% it does not expand the font encoding commands. They are +% made roboust and protect themselves. +% \item[\cs{csname}:] First the string is +% expanded whithin a \cs{csname} and \cs{endcsname}. +% Then the command name is converted to characters +% with catcode 12 by \cs{string} and the first +% escape character removed by \cs{@gobble}. +% This method has the great \emph{advantage} that +% stomach tokens that aren't allowed in PDF strings are detected +% by \TeX{} and reported as errors in order to force the user +% to write correct things. So he get no wrong results by +% forgetting the proofreading of his text. +% But the \emph{disadvantage} is that old wrong code cannot +% processed without errors. Mainly the error message is very cryptic +% and for the normal user hard to understand. \TeX{} provides +% no way to catch the error caused by \cs{csname} or allows to +% support the user with a descriptive error message. Therefore +% the experienced user had to enable this behaviour by an +% option |exactdef| in previous versions less or equal 6.50. +% \item[\cs{edef}] This version uses this standard form for expansion. +% It is stronger than \LaTeX's \cs{protected@edef}. +% So the font encoding mechanism works and the glyph commands +% are converted to the correct tokens for PDF strings whith the +% definitions of the PD1 encoding. +% Because the protecting mechanism of \LaTeX{} doesn't work +% within an \cs{edef}, there are situations thinkable where +% code can break. For example, assignments and definitions aren't +% performed and so undefined command errors or argument +% parsing errors can occur. But this is only a compatibility problem +% with old texts. Now there are possibilities to write +% code that gives correct PDF strings (see \cs{texorpdfstring}). +% In the most cases unexpandable commands and tokens +% (math shift, grouping characters) remains. They +% don't cause an error like with \cs{csname}. However a PDF reader +% isn't \TeX{}, so these tokens are viewed verbatim. So +% this version detects them now, and removes them with an +% descriptive warning for the user. As additional features +% xspace support is possible and grouping characters can be +% used without problems, because they are removed silently. +% \end{description} +% +% \paragraph{Generic messages.} +% While expanding via \cs{xdef} the |\Generic...| messages +% don't work and causes problems (error messages, invalid |.out| +% file). So they are disabled while expanding and removed silently, +% because a user warning would be too expensive (memory and runtime, +% |\pdfstringdef| is slow enough). +% \begin{macrocode} + \begingroup + \let\GenericError\@gobblefour + \let\GenericWarning\@gobbletwo + \let\GenericInfo\@gobbletwo +% \end{macrocode} +% +% \paragraph{Package french.} +% This fix only works, if \cs{GenericError} is disabled. +% \begin{macrocode} + \ifx\nofrenchguillemets\@undefined + \else + \nofrenchguillemets + \fi +% \end{macrocode} +% +% \paragraph{Definition commands and expansion.} +% Redefining the defining commands (see sec. \ref{defcmd}). +% The original meaning of \cs{xdef} is saved in \cs{Hy@temp}. +% \begin{macrocode} + \let\Hy@temp\xdef + \let\def\HyPsd@DefCommand + \let\gdef\HyPsd@DefCommand + \let\edef\HyPsd@DefCommand + \let\xdef\HyPsd@DefCommand + \let\futurelet\HyPsd@LetCommand + \let\let\HyPsd@LetCommand + \Hy@temp#1{#2}% + \endgroup +% \end{macrocode} +% +% \subsubsection{Postprocessing} +% If the string is empty time can be saved by omitting the +% postprocessing process. +% \begin{macrocode} + \ifx#1\@empty + \else +% \end{macrocode} +% +% \paragraph{Protecting spaces and removing grouping characters.} +% In order to check the tokens we must separate them. This will be +% done with \TeX's argument parsing. With this method +% we must the following item takes into account, that makes +% makes things a litte more complicate: +% \begin{itemize} +% \item \TeX{} does not accept a space as an undelimited argument, +% it cancels space tokens while looking for an undelimited +% argument. Therefore we must protect the spaces now. +% \item An argument can be a single token or a group of many tokens. +% And within curly braces tokens aren't find by \TeX's +% argument scanning process. Third curly braces as grouping characters +% cannot be expanded further, so they don't vanish by the string +% expansion above. So these characters with catcode 1 and 2 are +% removed in the following and replaced by an marker for the xspace +% support. +% \item \TeX{} silently removes the outmost pair of braces of an +% argument. To prevent this on unwanted places, in the following +% the character \verb+|+ is appended to the string to make an outer +% brace to an inner one. +% \end{itemize} +% First the top level spaces are protected by replacing. Then the +% string is scanned to detect token groups. Each token group +% will now be space protected and again scanned for another +% token groups. +% \begin{macrocode} + \HyPsd@ProtectSpaces#1% + \let\HyPsd@String\@empty + \expandafter\HyPsd@RemoveBraces\expandafter{#1|}% + \global\let#1\HyPsd@String +% \end{macrocode} +% +% \paragraph{Check tokens.} +% After removing the spaces and the grouping characters +% the string now should only consists of the following tokens/catcodes:\\ +% \begin{tabular}{rl} +% 0&command names with start with an escape character.\\ +% 3&math shift\\ +% 4&alignment tabs\\ +% 6¶meter, but this is unlikely.\\ +% 7&superscript\\ +% 8&subscript\\ +% 11&letter\\ +% 12&other\\ +% 13&commands that are active characters. +% \end{tabular} +% +% After \cs{HyPsd@CheckCatcodes} the command \cs{HyPsd@RemoveMask} is +% reused to remove the group protection character \verb+|+. +% This character is needed to ensure that the string at least +% consists of one token if \cs{HyPsd@CheckCatcodes} +% is called. +% +% Because of internal local assignments and tabulars +% group braces are used. +% \begin{macrocode} + \let\HyPsd@SPACEOPTI\relax + {% + \let\HyPsd@String\@empty + \expandafter\HyPsd@CheckCatcodes#1\HyPsd@End + \global\let#1\HyPsd@String + }% + \expandafter\HyPsd@RemoveMask\expandafter + |\expandafter\@empty#1\HyPsd@End#1% +% \end{macrocode} +% \cs{HyPsd@CheckCatcodes} should no have removed the tokens with +% catcode 3, 4, 7, and 8. Because a parameter token (6) would +% cause to many errors before, there should now be only tokens +% with catcodes 11 or 12. So I think there is no need for +% a safety step like: +%\begin{verbatim} +%\xdef#1{\expandafter\strip@prefix\meaning#1}% +%\end{verbatim} +% \paragraph{Looking for wrong glyphs.} +% The case that glyphs aren't defined in the PD1 encoding +% is caught above in such a way, that the glyph name and +% a marker is inserted into the string. Now we can safely +% scan the string for this marker and provide a descriptive +% warning. +% \begin{macrocode} + \expandafter + \HyPsd@Subst\expandafter{\HyPsd@GLYPHERR}{\relax}#1% + \let\HyPsd@String\@empty + \expandafter\HyPsd@GlyphProcess#1\relax\@empty + \global\let#1\HyPsd@String +% \end{macrocode} +% +% \paragraph{Backslash.} +% The double backslash disturbs parsing octal sequenzes, for +% example in an string like |abc\\051| the sequence \cs{051} +% is detected although the second \cs{} belongs to the +% first backslash. +% \begin{macrocode} + \HyPsd@StringSubst{\\}{\textbackslash}#1% +% \end{macrocode} +% +% \paragraph{Spaces.} +% All spaces have already the form \cs{040}. +% The last postprocessing step will +% be an optimizing of the spaces, so we already introduce +% already the necessary command \cs{HyPsd@SPACEOPTI}. +% But first it is defined to be \cs{relax} in order to +% prevent a too early expansion by an \cs{edef}. +% Secondly a \cs{relax} serves as a marker for +% a token that is detected by \cs{xspace}. +% +% The code of |frenchb.ldf| can produce an additional +% space before \cs{guillemotright}, because \cs{lastskip} +% and \cs{unskip} do not work. Therefore it is removed here. +% \begin{macrocode} + \ifHy@unicode + \expandafter\HyPsd@StringSubst\csname 80\040\endcsname + \HyPsd@SPACEOPTI#1% + \edef\Hy@temp@A{\HyPsd@SPACEOPTI\HyPsd@SPACEOPTI\80\273}% + \expandafter\HyPsd@Subst\expandafter{\Hy@temp@A}% + {\HyPsd@SPACEOPTI\80\273}#1% + \else + \HyPsd@StringSubst{\040}\HyPsd@SPACEOPTI#1% + \expandafter\HyPsd@Subst\expandafter{% + \expandafter\HyPsd@SPACEOPTI\expandafter\HyPsd@SPACEOPTI + \string\273}{\HyPsd@SPACEOPTI\273}#1% + \fi +% \end{macrocode} +% +% \paragraph{Right parenthesis.} +% Also \cs{xspace} detects a right parenthesis. +% For the \cs{xspace} support and the following +% parenthesis check the different parenthesis +% notations |)|, \cs{)}, and \cs{051} are converted +% to one type \cs{)} and before \cs{HyPsd@empty} +% with the meaning of \cs{relax} is introduced for +% \cs{xspace}. By redefining to \cs{@empty} \cs{HyPsd@empty} +% can easily removed later. +% \begin{macrocode} + \ifHy@unicode + \HyPsd@StringSubst{\)}{\80\051}#1% + \HyPsd@Subst){\80\051}#1% + \let\HyPsd@empty\relax + \expandafter\HyPsd@StringSubst\csname 80\051\endcsname + {\HyPsd@empty\80\051}#1% + \else + \HyPsd@StringSubst{\)}{\051}#1% + \HyPsd@Subst){\051}#1% + \let\HyPsd@empty\relax + \HyPsd@StringSubst{\051}{\HyPsd@empty\string\)}#1% + \fi +% \end{macrocode} +% +% \paragraph{Support for package \texttt{xspace}.} +% \cs{xspace} looks for the next token and decides if it +% expands to a space or not. Following tokens prevent its +% transformation to a space: Beginning and end of group, +% handled above by replacing by an italic correction, +% several punctuation marks, a closing parentheses, and +% several spaces. +% +% Without package |xspace| there are tokens with catcode 11 and 12, +% \cs{HyPsd@empty} and \cs{HyPsd@SPACEOPTI}. With package |xspace| +% marker for the italic correction \cs{/} and \cs{xspace} come with. +% In the package |xspace| case the two markers are replaced by +% commands and an \cs{edef} performs the \cs{xspace} processing. +% +% In the opposite of the original \cs{xspace} \cs{HyPsd@xspace} uses +% an argument instead of a \cs{futurelet}, so we have to provide +% such an argument, if \cs{HyPsd@xspace} comes last. Because +% \cs{HyPsd@Subst} with several equal tokens (|--|) needs a safe +% last token, in both cases +% the string gets an additional \cs{HyPsd@empty}. +% \begin{macrocode} + \expandafter\HyPsd@Subst\expandafter{\/}\HyPsd@empty#1% + \ltx@IfUndefined{@xspace}{% + }{% + \let\HyPsd@xspace\relax + \expandafter\HyPsd@Subst\expandafter + {\HyPsd@XSPACE}\HyPsd@xspace#1% + \let\HyPsd@xspace\HyPsd@doxspace + }% + \xdef#1{#1\HyPsd@empty}% +% \end{macrocode} +% +% \paragraph{Ligatures.} +% \TeX{} forms ligatures in its stomach, but the PDF strings are +% treated only by \TeX's mouth. The PDFDocEncoding contains +% some ligatures, but the current +% version 3 of the AcrobatReader lacks the |fi| and |fl| glyphs, and +% the Linux version lacks the |emdash| and |endash| glyphs. +% So the necessary code is provided here, but currently disabled, +% hoping that version 4 of the AcrobatReader is better. +% To break the ligatures the user can use an empty group, +% because it leads to an insertion of an \cs{HyPsd@empty}. +% If this ligature code will be enabled some day, then the italic +% correction should also break the ligatures. Currently this occurs +% only, if package |xspace| is loaded. +% +% Since newer AcrobatReader versions now show the en- and emdash in +% a correct way (AR7/Linux, AR8/Linux), the substitution code +% for them is enabled starting with version 6.78l. +% \begin{macrocode} + \HyPsd@Subst{---}\textemdash#1% + \HyPsd@Subst{--}\textendash#1% +% \HyPsd@Subst{fi}\textfi#1% +% \HyPsd@Subst{fl}\textfl#1% + \HyPsd@Subst{!`}\textexclamdown#1% + \HyPsd@Subst{?`}\textquestiondown#1% +% \end{macrocode} +% With the next \cs{edef} we get rid of the token \cs{HyPsd@empty}. +% \begin{macrocode} + \let\HyPsd@empty\@empty +% \end{macrocode} +% +% \paragraph{Left parentheses.} +% Left parentheses are now converted to safe forms to avoid +% problems with unmatched ones (\cs{(} with PDFDocEncoding, +% the octal sequence with Unicode. +% +% An optimization is possible. Matched parentheses can replaced +% by a |()| pair. But this code is removed to save \TeX{} memory +% and time. +% \begin{macrocode} + \ifHy@unicode + \HyPsd@StringSubst\(\textparenleft#1% + \HyPsd@Subst(\textparenleft#1% + \else + \HyPsd@StringSubst\({\050}#1% + \HyPsd@Subst({\050}#1% + \HyPsd@StringSubst{\050}{\string\(}#1% + \fi +% \end{macrocode} +% +% \paragraph{Optimizing spaces.} +% Spaces are often used, but they have a very long form \cs{040}. +% They are converted back to real spaces, but not all, so that +% no space follows after another. In the bookmark case several +% spaces are written to the |.out| file, but if the entries +% are read back, several spaces are merged to a single one. +% +% With Unicode the spaces are replaced by their octal sequences. +% \begin{macrocode} + \ifHy@unicode + \edef\HyPsd@SPACEOPTI{\80\040}% + \else + \let\HyPsd@SPACEOPTI\HyPsd@spaceopti + \fi + \xdef#1{#1\@empty}% + \fi +% \end{macrocode} +% +% \paragraph{Converting to Unicode.} +% At last the eight bit letters have to be converted to Unicode, +% the masks \cs{8} and \cs{9} are removed and the Unicode +% marker is added. +% \begin{macrocode} + \endgroup + \begingroup + \ifHy@unicode + \HyPsd@ConvertToUnicode#1% +% \end{macrocode} +% +% \paragraph{Try conversion back to PDFDocEncoding.} +% +% \begin{macrocode} + \ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto + \ltx@IfUndefined{StringEncodingConvertTest}{% + }{% + \EdefUnescapeString\HyPsd@temp#1% + \ifxetex + \let\HyPsd@UnescapedString\HyPsd@temp + \StringEncodingConvertTest\HyPsd@temp\HyPsd@temp + {utf16be}{ascii-print}{% + \EdefEscapeString\HyPsd@temp\HyPsd@temp + \global\let#1\HyPsd@temp + \HyPsd@EscapeTeX#1% + \Hy@unicodefalse + }{% + \HyPsd@ToBigChars#1% + \HyPsd@EscapeTeX#1% + }% + \else + \StringEncodingConvertTest\HyPsd@temp\HyPsd@temp + {utf16be}{pdfdoc}{% + \EdefEscapeString\HyPsd@temp\HyPsd@temp + \global\let#1\HyPsd@temp + \HyPsd@EscapeTeX#1% + \Hy@unicodefalse + }{}% + \fi + }% + \fi + \fi + \HyPsd@XeTeXBigCharsfalse +% \end{macrocode} +% +% \paragraph{User hook.} +% The hook \cs{pdfstringdefPostHook} can be used +% for the purpose to postprocess the string further. +% \begin{macrocode} + \pdfstringdefPostHook#1% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@pdfstringdef} +% \begin{macrocode} +\def\Hy@pdfstringdef#1#2{% + \pdfstringdef\Hy@gtemp{#2}% + \let#1\Hy@gtemp +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Encodings} +% +% \subsubsection{Xe\TeX} +% +% \begin{macrocode} +\edef\Hy@temp{\catcode0=\the\catcode0\relax} +\catcode\z@=12 % +\ifxetex + \expandafter\@firstofone +\else + \let\HyPsd@XeTeXBigCharstrue\@empty + \let\HyPsd@XeTeXBigCharsfalse\@empty + \expandafter\@gobble +\fi +{% + \newif\ifHyPsd@XeTeXBigChars + \def\HyPsd@XeTeXBigCharsfalse{% + \global\let\ifHyPsd@XeTeXBigChars\iffalse + }% + \def\HyPsd@XeTeXBigCharstrue{% + \global\let\ifHyPsd@XeTeXBigChars\iftrue + }% + \def\HyPsd@ToBigChars#1{% + \ifHyPsd@XeTeXBigChars + \EdefEscapeHex\HyPsd@UnescapedString{% + \expandafter\@gobbletwo\HyPsd@UnescapedString + }% + \begingroup + \toks@{}% + \escapechar=92\relax + \let\x\HyPsd@ToBigChar + \expandafter\HyPsd@ToBigChar\HyPsd@UnescapedString + \relax\relax\relax\relax\relax\relax\relax + \edef\x{% + \endgroup + \gdef\noexpand#1{\the\toks@}% + }% + \x + \fi + }% + \def\HyPsd@ToBigChar#1#2#3#4{% + \ifx\relax#1\relax + \let\x\relax + \else + \count@="#1#2#3#4\relax + \let\y\@empty + \lccode\z@=\count@ + \ifnum\count@=40 % ( + \let\y\@backslashchar + \else + \ifnum\count@=41 % ) + \let\y\@backslashchar + \else + \ifnum\count@=92 % backslash + \let\y\@backslashchar + \else + \ifnum\count@=10 % newline + \edef\y##1{\string\n}% + \else + \ifnum\count@=13 % carriage return + \edef\y##1{\string\r}% + \fi + \fi + \fi + \fi + \fi + \lowercase{% + \toks@\expandafter{% + \the\expandafter\toks@ + \y + ^^@% + }% + }% + \fi + \x + }% +} +\Hy@temp +% \end{macrocode} +% +% \subsubsection{Workaround for package linguex} +% +% \begin{macrocode} +\@ifpackageloaded{linguex}{% + \let\HyLinguex@OrgB\b + \let\HyLinguex@OrgC\c + \let\HyLinguex@OrgD\d + \def\HyLinguex@Restore{% + \let\b\HyLinguex@OrgB + \let\c\HyLinguex@OrgC + \let\d\HyLinguex@OrgD + }% + \Hy@AtEndOfPackage{% + \pdfstringdefDisableCommands{% + \ltx@IfUndefined{oldb}{}{\let\b\oldb}% + \ltx@IfUndefined{oldc}{}{\let\c\oldc}% + \ltx@IfUndefined{oldd}{}{\let\d\oldd}% + }% + }% +}{% + \let\HyLinguex@Restore\relax +}% +% \end{macrocode} +% +% \subsubsection{Catcodes saving and restoring for \texttt{.def} files} +% +% \begin{macro}{\Hy@SaveCatcodeSettings} +% \begin{macrocode} +\def\Hy@SaveCatcodeSettings#1{% + \expandafter\edef\csname Hy@cat@#1\endcsname{% + \endlinechar=\the\endlinechar\relax + \catcode32 \the\catcode32\relax % (space) + \catcode34 \the\catcode34\relax % " + \catcode35 \the\catcode35\relax % # + \catcode37 \the\catcode37\relax % (percent) + \catcode40 \the\catcode40\relax % ( + \catcode41 \the\catcode41\relax % ) + \catcode42 \the\catcode42\relax % * + \catcode46 \the\catcode46\relax % . + \catcode58 \the\catcode58\relax % : + \catcode60 \the\catcode60\relax % < + \catcode61 \the\catcode61\relax % = + \catcode62 \the\catcode62\relax % > + \catcode64 \the\catcode64\relax % @ + \catcode91 \the\catcode91\relax % [ + \catcode92 \the\catcode92\relax % \ + \catcode93 \the\catcode93\relax % ] + \catcode123 \the\catcode123\relax % { + \catcode124 \the\catcode124\relax % | + \catcode125 \the\catcode125\relax % } + }% + \endlinechar=-1 % + \catcode32 10 % (space) + \catcode34 12 % " + \catcode35 6 % # + \catcode37 14 % (percent) + \catcode40 12 % ( + \catcode41 12 % ) + \catcode42 12 % * + \catcode46 12 % . + \catcode58 12 % : + \catcode60 12 % < + \catcode61 12 % = + \catcode62 12 % > + \catcode91 12 % [ + \catcode92 0 % \ + \catcode93 12 % ] + \catcode123 1 % { + \catcode124 12 % | + \catcode125 2 % } + \makeatletter +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@RestoreCatcodeSettings} +% \begin{macrocode} +\def\Hy@RestoreCatcodeSettings#1{% + \csname Hy@cat@#1\endcsname + \expandafter\let\csname Hy@cat@#1\endcsname\relax +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{PD1 encoding} +% The PD1 encoding implements the PDFDocEncoding for use with +% \LaTeXe's NFSS. Because the informational strings are not set by +% \TeX's typesetting mechanism but for interpreting by the PDF reader, +% the glyphs of the PD1 encoding are implemented to be safely written +% to a file (PDF output file, |.out| file). +% +% The PD1 encoding can be specified as an option of the 'fontenc' package +% or loaded here. It does not matter what font family is selected, +% as \TeX{} does not process it anyway. So use CM. +% \begin{macrocode} +\@ifundefined{T@PD1}{% + \Hy@SaveCatcodeSettings{pd1}% + \input{pd1enc.def}% + \Hy@RestoreCatcodeSettings{pd1}% + \HyLinguex@Restore +}{} +\DeclareFontFamily{PD1}{pdf}{} +\DeclareFontShape{PD1}{pdf}{m}{n}{ <-> cmr10 }{} +\DeclareFontSubstitution{PD1}{pdf}{m}{n} +% \end{macrocode} +% +% \subsubsection{PU encoding} +% The PU encoding implements the Unicode encoding for use with +% \LaTeX's NFSS. Because of large memory requirements the +% encoding file for Unicode support is only loaded, if option +% |unicode| is specified as package option. +% \begin{macro}{\HyPsd@LoadUnicode} +% Because the file |puenc.def| takes a lot of memory, the loading +% is defined in the macro \cs{HyPsd@LoadUnicode} called by +% the package option |unicode|. +% \begin{macrocode} +\def\HyPsd@LoadUnicode{% + \@ifundefined{T@PU}{% + \Hy@SaveCatcodeSettings{pu}% + \input{puenc.def}% + \Hy@RestoreCatcodeSettings{pu}% + \HyLinguex@Restore + }{}% + \DeclareFontFamily{PU}{pdf}{}% + \DeclareFontShape{PU}{pdf}{m}{n}{ <-> cmr10 }{}% + \DeclareFontSubstitution{PU}{pdf}{m}{n}% + \HyPsd@LoadExtra + \let\HyPsd@LoadUnicode\relax +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@LoadExtra} +% \begin{macrocode} +\def\HyPsd@LoadExtra{% + \ifHy@psdextra + \ltx@iffileloaded{puenc.def}{% + \Hy@SaveCatcodeSettings{psdextra}% + \input{psdextra.def}% + \Hy@RestoreCatcodeSettings{psdextra}% + \let\HyPsd@LoadExtra\relax + }{}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Additional user commands} +% +% \subsubsection{^^A +% \texorpdfstring{\cs{texorpdfstring}}{\\texorpdfstring}^^A +% } +% \begin{macro}{\texorpdfstring} +% While expanding the string in \cs{pdfstringdef} the switch +% \cs{ifHy@pdfstring} is set. This is used by the +% full expandible macro \cs{texorpdfstring}. It expects +% two arguments, the first contains the string that will be +% set and processed by \TeX's stomach, the second +% contains the replacement for PDF strings. +% \begin{macrocode} +\def\texorpdfstring{% + \ifHy@pdfstring + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Hooks for +% \texorpdfstring{\cs{pdfstringdef}}{\\pdfstringdef}^^A +% } +% \begin{macro}{\pdfstringdefPreHook} +% \begin{macro}{\pdfstringdefPostHook} +% Default definition of the hooks for \cs{pdfstringdef}. +% The construct \cs{@ifundefined} with \cs{let} is a little bit +% faster than \cs{providecommand}. +% \begin{macrocode} +\@ifundefined{pdfstringdefPreHook}{% + \let\pdfstringdefPreHook\@empty +}{} +\@ifundefined{pdfstringdefPostHook}{% + \let\pdfstringdefPostHook\@gobble +}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\pdfstringdefDisableCommands} +% In \cmd{\pdfstringdefPreHook} the user can add +% code that is executed before the string, that have +% to be converted by \cmd{\pdfstringdef}, is expanded. +% So replacements for problematic macros can be given. +% The code in \cmd{\pdfstringdefPreHook} should not +% be replaced perhaps by an \cmd{\renewcommand}, +% because a previous meaning gets lost. +% +% Macro \cmd{\pdfstringdefDisableCommands} avoids this, +% because it reuses the old meaning of the hook and appends +% the new code to \cmd{\pdfstringdefPreHook}, e.g.: +%\begin{verbatim} +%\pdfstringdefDisableCommands{% +% \let~\textasciitilde +% \def\url{\pdfstringdefWarn\url}% +% \let\textcolor\@gobble +%}% +%\end{verbatim} +% In the argument of \cmd{\pdfstringdefDisableCommands} the +% character |@| can be used in command names. So it is easy +% to use useful \LaTeX{} commands like \cmd{\@gobble} or +% \cmd{\@firstofone}. +% \begin{macrocode} +\def\pdfstringdefDisableCommands{% + \begingroup + \makeatletter + \HyPsd@DisableCommands +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@DisableCommands} +% \begin{macrocode} +\long\def\HyPsd@DisableCommands#1{% + \ltx@GlobalAppendToMacro\pdfstringdefPreHook{#1}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% (Partial) fix for bug in \texttt{frenchb.ldf} 2010/08/21 v2.5a that +% destroys \cs{pdfstringdefDisableCommands} after usage +% in \cs{AtBeginDocument}. +% \begin{macrocode} +\let\HyPsd@pdfstringdefDisableCommands\pdfstringdefDisableCommands +\AtBeginDocument{% + \@ifundefined{pdfstringdefDisableCommands}{% + \let\pdfstringdefDisableCommands\HyPsd@pdfstringdefDisableCommands + }{}% +} +% \end{macrocode} +% +% \begin{macro}{\pdfstringdefWarn} +% The purpose of \cmd{\pdfstringdefWarn} is to produce +% a warning message, so the user can see, that something +% can go wrong with the conversion to PDF strings. +% +% The prefix |\<>-| is added to the token. \cmd{\noexpand} +% protects the probably undefined one during the first +% expansion step. Then \cmd{\HyPsd@CheckCatcodes} can +% detect the not allowed token, \cmd{\HyPsd@CatcodeWarning} +% prints a warning message, after \cmd{\HyPsd@RemovePrefix} +% has removed the prefix. +% +% \cmd{\pdfstringdefWarn} is intended for document authors or +% package writers, examples for use can be seen in the definition +% of \cmd{\HyPsd@ifnextchar} or \cmd{\HyPsd@protected@testopt}. +% \begin{macrocode} +\def\pdfstringdefWarn#1{% + \expandafter\noexpand\csname<>-\string#1\endcsname +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Help macros for expansion} +% +% \subsubsection{\cs{ignorespaces}} +% +% \begin{macro}{\HyPsd@ignorespaces} +% With the help of a trick using \cs{romannumeral} the +% effect of \cs{ignorespaces} can be simulated a little, +% In a special case using an alphabetic constant +% \cs{romannumeral} eats an optional space. If the constant +% is zero, then the \cs{romannumeral} expression vanishes. +% The following macro uses this trick twice, thus \cs{HyPsd@ignorespaces} +% eats up to two following spaces.^^A +% \begin{macrocode} +\begingroup + \catcode0=12 % + \def\x{\endgroup + \def\HyPsd@ignorespaces{% + \romannumeral\expandafter`\expandafter^^@% + \romannumeral`^^@% + }% + }% +\x +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Babel languages} +% +% Since version 2008/03/16 v3.8j babel uses inside \cs{AtBeginDocument}: +%\begin{quote} +%\begin{verbatim} +%\pdfstringdefDisableCommands{% +% \languageshorthands{system}% +%} +%\end{verbatim} +%\end{quote} +% As consequence the shorthands are shown in the bookmarks, +% not its result. Therefore \cs{languageshorthands} is +% disabled before the user hook. If there is a need to +% use the command, then \cs{HyOrg@languageshorthands} +% can be used inside \cs{pdfstringdefDisableCommands}. +% \begin{macrocode} +\def\HyPsd@BabelPatch{% + \let\HyOrg@languageshorthands\languageshorthands + \let\languageshorthands\HyPsd@LanguageShorthands +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@strcmp\endcsname\relax + \let\HyPsd@langshort@system\@empty + \def\HyPsd@LanguageShorthands#1{% + \expandafter\ifx\csname HyPsd@langshort@#1\endcsname + \HyPsd@langshort@system + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi + {% + \HyOrg@languageshorthands{#1}% + }% + }% +\else + \def\HyPsd@LanguageShorthands#1{% + \ifnum\pdf@strcmp{#1}{system}=\z@ + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi + {% + \HyOrg@languageshorthands{#1}% + }% + }% +\fi +\def\Hy@temp{% + \@ifpackageloaded{babel}{% + \@ifpackagelater{babel}{2008/03/16}{% + \let\Hy@temp\@empty + }{% + \def\HyPsd@BabelPatch{% + \let\HyOrg@languageshorthands\languageshorthands + }% + }% + }{}% +} +\Hy@temp +\expandafter\Hy@AtBeginDocument\expandafter{\Hy@temp} +% \end{macrocode} +% +% \begin{macrocode} +\newif\ifHy@next +% \end{macrocode} +% +% Nothing to do for english. +% \begin{macrocode} +\ltx@IfUndefined{danish@sh@"@sel}{}{% + \def\HyPsd@babel@danish{% + \declare@shorthand{danish}{"|}{}% + \declare@shorthand{danish}{"~}{-}% + }% +} +\ltx@IfUndefined{dutch@sh@"@sel}{}{% + \def\HyPsd@babel@dutch{% + \declare@shorthand{dutch}{"|}{}% + \declare@shorthand{dutch}{"~}{-}% + }% +} +\ltx@IfUndefined{finnish@sh@"@sel}{}{% + \def\HyPsd@babel@finnish{% + \declare@shorthand{finnish}{"|}{}% + }% +} +\ltx@IfUndefined{french@sh@:@sel}{}{% + \def\HyPsd@babel@frenchb{% + \def\guill@spacing{ }% + }% +} +\ltx@IfUndefined{german@sh@"@sel}{}{% + \def\HyPsd@babel@german{% + \declare@shorthand{german}{"f}{f}% + \declare@shorthand{german}{"|}{}% + \declare@shorthand{german}{"~}{-}% + }% +} +\ltx@IfUndefined{macedonian@sh@"@sel}{}{% + \def\HyPsd@babel@macedonian{% + \declare@shorthand{macedonian}{"|}{}% + \declare@shorthand{macedonian}{"~}{-}% + }% +}{} +\ltx@IfUndefined{ngerman@sh@"@sel}{}{% + \def\HyPsd@babel@ngerman{% + \declare@shorthand{ngerman}{"|}{}% + \declare@shorthand{ngerman}{"~}{-}% + }% +} +\ltx@IfUndefined{portuges@sh@"@sel}{}{% + \def\HyPsd@babel@portuges{% + \declare@shorthand{portuges}{"|}{}% + }% +} +\ltx@IfUndefined{russian@sh@"@sel}{}{% + \def\HyPsd@babel@russian{% + \declare@shorthand{russian}{"|}{}% + \declare@shorthand{russian}{"~}{-}% + }% +} +\ltx@IfUndefined{slovene@sh@"@sel}{}{% + \def\HyPsd@babel@slovene{% + \declare@shorthand{slovene}{"|}{}% + }% +} +% \end{macrocode} +% Nested quoting environments are not supported (|<<|, |>>|). +% \begin{macrocode} +\ltx@IfUndefined{spanish@sh@>@sel}{}{% + \def\HyPsd@babel@spanish{% + \declare@shorthand{spanish}{<<}{\guillemotleft}% + \declare@shorthand{spanish}{>>}{\guillemotright}% + \declare@shorthand{spanish}{"=}{-}% + \declare@shorthand{spanish}{"~}{-}% + \declare@shorthand{spanish}{"!}{\textexclamdown}% + \declare@shorthand{spanish}{"?}{\textquestiondown}% + }% +} +\ltx@IfUndefined{swedish@sh@"@sel}{}{% + \def\HyPsd@babel@swedish{% + \declare@shorthand{swedish}{"|}{}% + \declare@shorthand{swedish}{"~}{-}% + }% +} +\ltx@IfUndefined{ukrainian@sh@"@sel}{}{% + \def\HyPsd@babel@ukrainian{% + \declare@shorthand{ukrainian}{"|}{}% + \declare@shorthand{ukrainian}{"~}{-}% + }% +} +\ltx@IfUndefined{usorbian@sh@"@sel}{}{% + \def\HyPsd@babel@usorbian{% + \declare@shorthand{usorbian}{"f}{f}% + \declare@shorthand{usorbian}{"|}{}% + }% +} +% \end{macrocode} +% \begin{macrocode} +\ltx@IfUndefined{greek@sh@\string~@sel}{% + \let\HyPsd@GreekPatch\@empty +}{% + \def\HyPsd@GreekPatch{% + \let\greeknumeral\HyPsd@greeknumeral + \let\Greeknumeral\HyPsd@Greeknumeral + }% +} +\def\HyPsd@greeknumeral#1{% + \HyPsd@GreekNum\@firstoftwo{#1}% +} +\def\HyPsd@Greeknumeral#1{% + \HyPsd@GreekNum\@secondoftwo{#1}% +} +\def\HyPsd@GreekNum#1#2{% + \ifHy@unicode + \ifnum#2<\@ne + \@arabic{#2}% + \else + \ifnum#2<1000000 % + \HyPsd@@GreekNum#1{#2}% + \else + \@arabic{#2}% + \fi + \fi + \else + \@arabic{#2}% + \fi +} +\def\HyPsd@@GreekNum#1#2{% + \ifnum#2<\@m + \ifnum#2<10 % + \expandafter\HyPsd@GreekNumI + \expandafter\@gobble\expandafter#1\number#2% + \else + \ifnum#2<100 % + \expandafter\HyPsd@GreekNumII + \expandafter\@gobble\expandafter#1\number#2% + \else + \expandafter\HyPsd@GreekNumIII + \expandafter\@gobble\expandafter#1\number#2% + \fi + \fi + \ifnum#2>\z@ + \textnumeralsigngreek + \fi + \else + \ifnum#2<\@M + \expandafter\HyPsd@GreekNumIV\expandafter#1\number#2% + \else + \ifnum#2<100000 % + \expandafter\HyPsd@GreekNumV\expandafter#1\number#2% + \else + \expandafter\HyPsd@GreekNumVI\expandafter#1\number#2% + \fi + \fi + \fi +} +\def\HyPsd@GreekNumI#1#2#3{% + #1{% + \ifnum#3>\z@ + \textnumeralsignlowergreek + \fi + }% + \expandafter#2% + \ifcase#3 % + {}{}% + \or\textalpha\textAlpha + \or\textbeta\textBeta + \or\textgamma\textGamma + \or\textdelta\textDelta + \or\textepsilon\textEpsilon + \or\textstigmagreek\textStigmagreek + \or\textzeta\textZeta + \or\texteta\textEta + \or\texttheta\textTheta + \else + {}{}% + \fi +} +\def\HyPsd@GreekNumII#1#2#3#4{% + #1{% + \ifnum#3>\z@ + \textnumeralsignlowergreek + \fi + }% + \expandafter#2% + \ifcase#3 % + {}{}% + \or\textiota\textIota + \or\textkappa\textKappa + \or\textlambda\textLambda + \or\textmu\textMu + \or\textnu\textNu + \or\textxi\textXi + \or\textomicron\textOmicron + \or\textpi\textPi + \or\textkoppagreek\textKoppagreek + \else + {}{}% + \fi + \HyPsd@GreekNumI#1#2#4% +} +\def\HyPsd@GreekNumIII#1#2#3#4#5{% + #1{% + \ifnum#3>\z@ + \textnumeralsignlowergreek + \fi + }% + \expandafter#2% + \ifcase#3 % + {}{}% + \or\textrho\textRho + \or\textsigma\textSigma + \or\texttau\textTau + \or\textupsilon\textUpsilon + \or\textphi\textPhi + \or\textchi\textChi + \or\textpsi\textPsi + \or\textomega\textOmega + \or\textsampigreek\textSampigreek + \else + {}{}% + \fi + \HyPsd@GreekNumII#1#2#4#5% +} +\def\HyPsd@GreekNumIV#1#2#3#4#5{% + \HyPsd@GreekNumI\@firstofone#1#2% + \HyPsd@@GreekNum#1{#3#4#5}% +} +\def\HyPsd@GreekNumV#1#2#3#4#5#6{% + \HyPsd@GreekNumII\@firstofone#1#2#3% + \HyPsd@@GreekNum#1{#4#5#6}% +} +\def\HyPsd@GreekNumVI#1#2#3#4#5#6#7{% + \HyPsd@GreekNumIII\@firstofone#1#2#3#4% + \HyPsd@@GreekNum#1{#5#6#7}% +} +% \end{macrocode} +% \begin{macrocode} +\def\HyPsd@SpanishPatch{% + \ltx@IfUndefined{es@save@dot}{% + }{% + \let\.\es@save@dot + }% +} +% \end{macrocode} +% Shorthand |"-| of `russianb.ldf' is not expandable, +% therefore it is disabled and replaced by |-|. +% \begin{macrocode} +\def\HyPsd@RussianPatch{% + \ltx@IfUndefined{russian@sh@"@-@}{% + }{% + \@namedef{russian@sh@"@-@}{-}% + }% +} +% \end{macrocode} +% +% \subsubsection{CJK patch} +% +% \begin{macrocode} +\RequirePackage{intcalc}[2007/09/27] +% \end{macrocode} +% +% \begin{macro}{\HyPsd@CJKhook} +% \begin{macrocode} +\def\HyPsd@CJKhook{% + \ltx@ifpackageloaded{CJK}{% + \let\CJK@kern\relax + \let\CJKkern\relax + \let\CJK@CJK\relax + \ifHy@CJKbookmarks + \HyPsd@CJKhook@bookmarks + \fi + \HyPsd@CJKhook@unicode + }{}% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{CJK bookmarks} +% +% \begin{macro}{\HyPsd@CJKhook} +% Some internal commands of package cjk are redefined +% to avoid error messages. For a rudimental support +% of CJK bookmarks the active characters are +% redefined so that they print themselves. +% +% After preprocessing of Big5 encoded data the +% following string for a double-byte character +% is emitted: +%\begin{verbatim} +%^^7f<arg1>^^7f<arg2>^^7f +%\end{verbatim} +% \verb|<arg1>| is the first byte in the range (always $>$ 0x80); +% \verb|<arg2>| is the second byte in decimal notation +% ($\ge$ 0x40). +% \begin{macrocode} +\begingroup + \catcode"7F=\active + \toks@{% + \let\CJK@ignorespaces\empty + \def\CJK@char#1{\@gobbletwo}% + \let\CJK@charx\@gobblefour + \let\CJK@punctchar\@gobblefour + \def\CJK@punctcharx#1{\@gobblefour}% + \catcode"7F=\active + \def^^7f#1^^7f#2^^7f{% + \string #1\HyPsd@DecimalToOctal{#2}% + }% + % ... ? + \ifHy@unicode + \def\Hy@cjkpu{\80}% + \else + \let\Hy@cjkpu\@empty + \fi + \HyPsd@CJKActiveChars + }% + \count@=127 % + \@whilenum\count@<255 \do{% + \advance\count@ by 1 % + \lccode`\~=\count@ + \lowercase{% + \toks@\expandafter{\the\toks@ ~}% + }% + }% + \toks@\expandafter{\the\toks@ !}% + \xdef\HyPsd@CJKhook@bookmarks{% + \the\toks@ + }% +\endgroup +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@CJKActiveChars} +% The macro \cmd{\HyPsd@CJKActiveChars} is only defined +% to limit the memory consumption of \cmd{\HyPsd@CJKhook}. +% \begin{macrocode} +\def\HyPsd@CJKActiveChars#1{% + \ifx#1!% + \let\HyPsd@CJKActiveChars\relax + \else + \edef#1{\noexpand\Hy@cjkpu\string#1}% + \fi + \HyPsd@CJKActiveChars +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@DecimalToOctal} +% A character, given by the decimal number is converted +% to a PDF character. +% \begin{macrocode} +\def\HyPsd@DecimalToOctal#1{% + \ifcase #1 % + \000\or \001\or \002\or \003\or \004\or \005\or \006\or \007% + \or \010\or \011\or \012\or \013\or \014\or \015\or \016\or \017% + \or \020\or \021\or \022\or \023\or \024\or \025\or \026\or \027% + \or \030\or \031\or \032\or \033\or \034\or \035\or \036\or \037% + \or \040\or \041\or \042\or \043\or \044\or \045\or \046\or \047% + \or \050\or \051\or \052\or \053\or \054\or \055\or \056\or \057% + \or 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7% + \or 8\or 9\or \072\or \073\or \074\or \075\or \076\or \077% + \or @\or A\or B\or C\or D\or E\or F\or G% + \or H\or I\or J\or K\or L\or M\or N\or O% + \or P\or Q\or R\or S\or T\or U\or V\or W% + \or X\or Y\or Z\or \133\or \134\or \135\or \136\or \137% + \or \140\or a\or b\or c\or d\or e\or f\or g% + \or h\or i\or j\or k\or l\or m\or n\or o% + \or p\or q\or r\or s\or t\or u\or v\or w% + \or x\or y\or z\or \173\or \174\or \175\or \176\or \177% + \or \200\or \201\or \202\or \203\or \204\or \205\or \206\or \207% + \or \210\or \211\or \212\or \213\or \214\or \215\or \216\or \217% + \or \220\or \221\or \222\or \223\or \224\or \225\or \226\or \227% + \or \230\or \231\or \232\or \233\or \234\or \235\or \236\or \237% + \or \240\or \241\or \242\or \243\or \244\or \245\or \246\or \247% + \or \250\or \251\or \252\or \253\or \254\or \255\or \256\or \257% + \or \260\or \261\or \262\or \263\or \264\or \265\or \266\or \267% + \or \270\or \271\or \272\or \273\or \274\or \275\or \276\or \277% + \or \300\or \301\or \302\or \303\or \304\or \305\or \306\or \307% + \or \310\or \311\or \312\or \313\or \314\or \315\or \316\or \317% + \or \320\or \321\or \322\or \323\or \324\or \325\or \326\or \327% + \or \330\or \331\or \332\or \333\or \334\or \335\or \336\or \337% + \or \340\or \341\or \342\or \343\or \344\or \345\or \346\or \347% + \or \350\or \351\or \352\or \353\or \354\or \355\or \356\or \357% + \or \360\or \361\or \362\or \363\or \364\or \365\or \366\or \367% + \or \370\or \371\or \372\or \373\or \374\or \375\or \376\or \377% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{CJK unicode} +% +% \begin{macro}{\HyPsd@CJKhook@unicode} +% \begin{macrocode} +\def\HyPsd@CJKhook@unicode{% + \let\Unicode\HyPsd@CJK@Unicode + \let\CJKnumber\HyPsd@CJKnumber + \let\CJKdigits\HyPsd@CJKdigits +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@CJK@Unicode} +% \begin{macrocode} +\def\HyPsd@CJK@Unicode#1#2{% + \ifnum#1<256 % + \HyPsd@DecimalToOctalFirst{#1}% + \HyPsd@DecimalToOctalSecond{#2}% + \else + \933% + \expandafter\expandafter\expandafter\HyPsd@HighA + \intcalcDiv{#1}{4}!% + \933% + \ifcase\intcalcMod{#1}{4} % + 4\or 5\or 6\or 7% + \fi + \HyPsd@DecimalToOctalSecond{#2}% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\def\HyPsd@HighA#1!{% + \expandafter\expandafter\expandafter\HyPsd@HighB + \IntCalcDiv#1!64!!% + \expandafter\expandafter\expandafter\HyPsd@HighD + \IntCalcMod#1!64!!% +} +\def\HyPsd@HighB#1!{% + \expandafter\expandafter\expandafter\HyPsd@HighC + \IntCalcDec#1!!% +} +\def\HyPsd@HighC#1!{% + \IntCalcDiv#1!4!% + \@backslashchar + \IntCalcMod#1!4!% +} +\def\HyPsd@HighD#1!{% + \ifcase\IntCalcDiv#1!8! % + 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7% + \fi + \ifcase\IntCalcMod#1!8! % + 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7% + \fi +} +\def\HyPsd@DecimalToOctalFirst#1{% + \9% + \ifcase#1 % + 000\or 001\or 002\or 003\or 004\or 005\or 006\or 007% + \or 010\or 011\or 012\or 013\or 014\or 015\or 016\or 017% + \or 020\or 021\or 022\or 023\or 024\or 025\or 026\or 027% + \or 030\or 031\or 032\or 033\or 034\or 035\or 036\or 037% + \or 040\or 041\or 042\or 043\or 044\or 045\or 046\or 047% + \or 050\or 051\or 052\or 053\or 054\or 055\or 056\or 057% + \or 060\or 061\or 062\or 063\or 064\or 065\or 066\or 067% + \or 070\or 071\or 072\or 073\or 074\or 075\or 076\or 077% + \or 100\or 101\or 102\or 103\or 104\or 105\or 106\or 107% + \or 120\or 111\or 112\or 113\or 114\or 115\or 116\or 117% + \or 120\or 121\or 122\or 123\or 124\or 125\or 126\or 127% + \or 130\or 131\or 132\or 133\or 134\or 135\or 136\or 137% + \or 140\or 141\or 142\or 143\or 144\or 145\or 146\or 147% + \or 150\or 151\or 152\or 153\or 154\or 155\or 156\or 157% + \or 160\or 161\or 162\or 163\or 164\or 165\or 166\or 167% + \or 170\or 171\or 172\or 173\or 174\or 175\or 176\or 177% + \or 200\or 201\or 202\or 203\or 204\or 205\or 206\or 207% + \or 210\or 211\or 212\or 213\or 214\or 215\or 216\or 217% + \or 220\or 221\or 222\or 223\or 224\or 225\or 226\or 227% + \or 230\or 231\or 232\or 233\or 234\or 235\or 236\or 237% + \or 240\or 241\or 242\or 243\or 244\or 245\or 246\or 247% + \or 250\or 251\or 252\or 253\or 254\or 255\or 256\or 257% + \or 260\or 261\or 262\or 263\or 264\or 265\or 266\or 267% + \or 270\or 271\or 272\or 273\or 274\or 275\or 276\or 277% + \or 300\or 301\or 302\or 303\or 304\or 305\or 306\or 307% + \or 310\or 311\or 312\or 313\or 314\or 315\or 316\or 317% + \or 320\or 321\or 322\or 323\or 324\or 325\or 326\or 327% + \or 330\or 331\or 332\or 333\or 334\or 335\or 336\or 337% + \or 340\or 341\or 342\or 343\or 344\or 345\or 346\or 347% + \or 350\or 351\or 352\or 353\or 354\or 355\or 356\or 357% + \or 360\or 361\or 362\or 363\or 364\or 365\or 366\or 367% + \or 370\or 371\or 372\or 373\or 374\or 375\or 376\or 377% + \fi +} +\def\HyPsd@DecimalToOctalSecond#1{% + \ifcase #1 % + \000\or \001\or \002\or \003\or \004\or \005\or \006\or \007% + \or \010\or \011\or \012\or \013\or \014\or \015\or \016\or \017% + \or \020\or \021\or \022\or \023\or \024\or \025\or \026\or \027% + \or \030\or \031\or \032\or \033\or \034\or \035\or \036\or \037% + \or \040\or \041\or \042\or \043\or \044\or \045\or \046\or \047% + \or \050\or \051\or \052\or \053\or \054\or \055\or \056\or \057% + \or \060\or \061\or \062\or \063\or \064\or \065\or \066\or \067% + \or \070\or \071\or \072\or \073\or \074\or \075\or \076\or \077% + \or \100\or \101\or \102\or \103\or \104\or \105\or \106\or \107% + \or \110\or \111\or \112\or \113\or \114\or \115\or \116\or \117% + \or \120\or \121\or \122\or \123\or \124\or \125\or \126\or \127% + \or \130\or \131\or \132\or \133\or \134\or \135\or \136\or \137% + \or \140\or \141\or \142\or \143\or \144\or \145\or \146\or \147% + \or \150\or \151\or \152\or \153\or \154\or \155\or \156\or \157% + \or \160\or \161\or \162\or \163\or \164\or \165\or \166\or \167% + \or \170\or \171\or \172\or \173\or \174\or \175\or \176\or \177% + \or \200\or \201\or \202\or \203\or \204\or \205\or \206\or \207% + \or \210\or \211\or \212\or \213\or \214\or \215\or \216\or \217% + \or \220\or \221\or \222\or \223\or \224\or \225\or \226\or \227% + \or \230\or \231\or \232\or \233\or \234\or \235\or \236\or \237% + \or \240\or \241\or \242\or \243\or \244\or \245\or \246\or \247% + \or \250\or \251\or \252\or \253\or \254\or \255\or \256\or \257% + \or \260\or \261\or \262\or \263\or \264\or \265\or \266\or \267% + \or \270\or \271\or \272\or \273\or \274\or \275\or \276\or \277% + \or \300\or \301\or \302\or \303\or \304\or \305\or \306\or \307% + \or \310\or \311\or \312\or \313\or \314\or \315\or \316\or \317% + \or \320\or \321\or \322\or \323\or \324\or \325\or \326\or \327% + \or \330\or \331\or \332\or \333\or \334\or \335\or \336\or \337% + \or \340\or \341\or \342\or \343\or \344\or \345\or \346\or \347% + \or \350\or \351\or \352\or \353\or \354\or \355\or \356\or \357% + \or \360\or \361\or \362\or \363\or \364\or \365\or \366\or \367% + \or \370\or \371\or \372\or \373\or \374\or \375\or \376\or \377% + \fi +} +% \end{macrocode} +% \begin{macrocode} +\def\HyPsd@CJKnumber#1{% + \ifnum#1<\z@ + \CJK@minus + \expandafter\HyPsd@@CJKnumber\expandafter{\number-\number#1}% + \else + \expandafter\HyPsd@@CJKnumber\expandafter{\number#1}% + \fi +} +\def\HyPsd@@CJKnumber#1{% + \ifcase#1 % + \CJK@zero\or\CJK@one\or\CJK@two\or\CJK@three\or\CJK@four\or + \CJK@five\or\CJK@six\or\CJK@seven\or\CJK@eight\or\CJK@nine\or + \CJK@ten\or\CJK@ten\CJK@one\or\CJK@ten\CJK@two\or + \CJK@ten\CJK@three\or\CJK@ten\CJK@four\or\CJK@ten\CJK@five\or + \CJK@ten\CJK@six\or\CJK@ten\CJK@seven\or\CJK@ten\CJK@eight\or + \CJK@ten\CJK@nine + \else + \ifnum#1<10000 % + \HyPsd@CJKnumberFour#1!\@empty{20}% + \@empty + \else + \ifnum#1<100000000 % + \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour + \IntCalcDiv#1!10000!% + !{}{20}% + \CJK@tenthousand + \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour + \IntCalcMod#1!10000!% + !\CJK@zero{10}% + \@empty + \else + \expandafter\HyPsd@CJKnumberLarge + \number\IntCalcDiv#1!100000000!\expandafter!% + \number\IntCalcMod#1!100000000!!% + \fi + \fi + \fi +} +\def\HyPsd@CJKnumberLarge#1!#2!{% + \HyPsd@CJKnumberFour#1!{}{20}% + \CJK@hundredmillion + \ifnum#2=\z@ + \else + \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour + \IntCalcDiv#2!10000!% + !\CJK@zero{10}% + \CJK@tenthousand + \expandafter\expandafter\expandafter\HyPsd@CJKnumberFour + \IntCalcMod#2!10000!% + !\CJK@zero{10}% + \@empty + \fi +} +\def\HyPsd@CJKnumberFour#1!#2#3{% + \ifnum#1=\z@ + \expandafter\@gobble + \else + \ifnum#1<1000 % + #2% + \HyPsd@CJKnumberThree#1!{}{#3}% + \else + \HyPsd@@CJKnumber{\IntCalcDiv#1!1000!}% + \CJK@thousand + \expandafter\expandafter\expandafter\HyPsd@CJKnumberThree + \IntCalcMod#1!1000!% + !\CJK@zero{10}% + \fi + \fi +} +\def\HyPsd@CJKnumberThree#1!#2#3{% + \ifnum#1=\z@ + \else + \ifnum#1<100 % + #2% + \HyPsd@CJKnumberTwo#1!{}{#3}% + \else + \HyPsd@@CJKnumber{\IntCalcDiv#1!100!}% + \CJK@hundred + \expandafter\expandafter\expandafter\HyPsd@CJKnumberTwo + \IntCalcMod#1!100!% + !\CJK@zero{10}% + \fi + \fi +} +\def\HyPsd@CJKnumberTwo#1!#2#3{% + \ifnum#1=\z@ + \else + \ifnum#1<#3 % + #2% + \HyPsd@@CJKnumber{#1}% + \else + \HyPsd@@CJKnumber{\IntCalcDiv#1!10!}% + \CJK@ten + \ifnum\IntCalcMod#1!10!=\z@ + \else + \HyPsd@@CJKnumber{\IntCalcMod#1!10!}% + \fi + \fi + \fi +} +% \end{macrocode} +% \begin{macrocode} +\def\HyPsd@CJKdigits#1{% + \ifx*#1\relax + \expandafter\HyPsd@@CJKdigits\expandafter\CJK@zero + \else + \HyPsd@@CJKdigits\CJK@null{#1}% + \fi +} +\def\HyPsd@@CJKdigits#1#2{% + \ifx\\#2\\% + \else + \HyPsd@@@CJKdigits#1#2\@nil + \fi +}% +\def\HyPsd@@@CJKdigits#1#2#3\@nil{% + \HyPsd@CJKdigit#1{#2}% + \ifx\\#3\\% + \expandafter\@gobble + \else + \expandafter\@firstofone + \fi + {% + \HyPsd@@@CJKdigits#1#3\@nil + }% +} +\def\HyPsd@CJKdigit#1#2{% + \ifcase#2 % + #1\or + \CJK@one\or\CJK@two\or\CJK@three\or\CJK@four\or + \CJK@five\or\CJK@six\or\CJK@seven\or\CJK@eight\or\CJK@nine + \fi +} +% \end{macrocode} +% +% \subsubsection{\texorpdfstring{\cs{@inmathwarn}}{\\@inmathwarn}-Patch} +% \begin{macro}{\HyPsd@inmathwarn} +% The patch of \cs{@inmathwarn} is needed to get rid of the +% infinite error loop with glyphs of other encodings +% (see the explanation above). Potentially the patch is +% dangerous, if the code in |ltoutenc.dtx| changes. +% Checked with \LaTeXe{} versions [1998/06/01] and +% [1998/12/01]. I expect that versions below [1995/12/01] +% don't work. +% +% To understand the patch easier, the original code of +% \cs{@current@cmd} and \cs{@changed@cmd} follows +% (\LaTeXe{} release [1998/12/01]). +% In the normal case \cs{pdfstringdef} is executed in a context +% where \cs{protect} has the meaning of \cs{@typesetprotect} +% (=\cs{relax}). +%\begin{verbatim} +%\def\@current@cmd#1{% +% \ifx\protect\@typeset@protect +% \@inmathwarn#1% +% \else +% \noexpand#1\expandafter\@gobble +% \fi} +%\def\@changed@cmd#1#2{% +% \ifx\protect\@typeset@protect +% \@inmathwarn#1% +% \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax +% \expandafter\ifx\csname ?\string#1\endcsname\relax +% \expandafter\def\csname ?\string#1\endcsname{% +% \TextSymbolUnavailable#1% +% }% +% \fi +% \global\expandafter\let +% \csname\cf@encoding \string#1\expandafter\endcsname +% \csname ?\string#1\endcsname +% \fi +% \csname\cf@encoding\string#1% +% \expandafter\endcsname +% \else +% \noexpand#1% +% \fi} +%\gdef\TextSymbolUnavailable#1{% +% \@latex@error{% +% Command \protect#1 unavailable in encoding \cf@encoding% +% }\@eha} +%\def\@inmathwarn#1{% +% \ifmmode +% \@latex@warning{Command \protect#1 invalid in math mode}% +% \fi} +%\end{verbatim} +% \begin{macrocode} +\def\HyPsd@inmathwarn#1#2{% + \ifx#2\expandafter + \expandafter\ifx\csname\cf@encoding\string#1\endcsname\relax + \HyPsd@GLYPHERR + \expandafter\@gobble\string#1% + >% + \expandafter\expandafter\expandafter\HyPsd@EndWithElse + \else + \expandafter\expandafter\expandafter\HyPsd@GobbleFiFi + \fi + \else + \expandafter#2% + \fi +} +\def\HyPsd@GobbleFiFi#1\fi#2\fi{} +\def\HyPsd@EndWithElse#1\else{\else} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPsd@add@accent} +% \begin{macrocode} +\def\HyPsd@add@accent#1#2{% + \HyPsd@GLYPHERR\expandafter\@gobble\string#1+\string#2>% + #2% +}% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Unexpandable spaces} +% +% \begin{macro}{\HyPsd@LetUnexpandableSpace} +% In \cmd{\HyPsd@@ProtectSpaces} the space tokens are replaced +% by not expandable commands, that work like spaces: +% \begin{itemize} +% \item So they can caught by undelimited arguments. +% \item And they work in number, dimen, and skip +% assignments. +% \end{itemize} +% These properties are used in \cmd{\HyPsd@CheckCatcodes}. +% \begin{macrocode} +\def\HyPsd@LetUnexpandableSpace#1{% + \expandafter\futurelet\expandafter#1\expandafter\@gobble\space\relax +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@UnexpandableSpace} +% \cmd{\HyPsd@UnexpandableSpace} is used +% in \cmd{\HyPsd@@ProtectSpaces}. +% In \cmd{HyPsd@@ProtectSpaces} the space tokens are replaced +% by unexpandable commands \cmd{\HyPsd@UnexpandableSpace}, +% but that have the effect of spaces. +% \begin{macrocode} +\HyPsd@LetUnexpandableSpace\HyPsd@UnexpandableSpace +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Marker for commands} +% \begin{macro}{\HyPsd@XSPACE} +% \begin{macro}{\HyPsd@ITALCORR} +% \begin{macro}{\HyPsd@GLYPHERR} +% Some commands and informations cannot be utilized before +% the string expansion and the checking process. +% Command names are filtered out, so we need another way +% to transport the information: An unusual |#| with catcode +% 12 marks the beginning of the extra information. +% \begin{macrocode} +\edef\HyPsd@XSPACE{\string#\string X} +\edef\HyPsd@ITALCORR{\string#\string I} +\edef\HyPsd@GLYPHERR{\string#\string G} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{\texorpdfstring{\cs{hspace}}{\\hspace} fix} +% \begin{macro}{\HyPsd@hspace} +% \begin{macrocode} +\def\HyPsd@hspace#1{\HyPsd@@hspace#1*\END} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@hspace} +% \cs{HyPsd@@hspace} checks whether \cs{hspace} +% is called in its star form. +% \begin{macrocode} +\def\HyPsd@@hspace#1*#2\END{% + \ifx\\#2\\% + \HyPsd@hspacetest{#1}% + \else + \expandafter\HyPsd@hspacetest + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@hspacetest} +% \cs{HyPsd@hyspacetest} replaces the \cs{hspace} by a space, if +% the length is greater than zero. +% \begin{macrocode} +\def\HyPsd@hspacetest#1{\ifdim#1>\z@\space\fi} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Fix for AMS classes} +% +% \begin{macrocode} +\ltx@IfUndefined{tocsection}{% + \let\HyPsd@AMSclassfix\relax +}{% + \def\HyPsd@AMSclassfix{% + \let\tocpart\HyPsd@tocsection + \let\tocchapter\HyPsd@tocsection + \let\tocappendix\HyPsd@tocsection + \let\tocsection\HyPsd@tocsection + \let\tocsubsection\HyPsd@tocsection + \let\tocsubsubsection\HyPsd@tocsection + \let\tocparagraph\HyPsd@tocsection + }% + \def\HyPsd@tocsection#1#2#3{% + \if @#2@\else\if @#1@\else#1 \fi#2. \fi + #3% + }% +} +% \end{macrocode} +% +% \subsubsection{Reference commands} +% +% \begin{macro}{\HyPsd@href} +% \begin{macrocode} +\def\HyPsd@href#1#{\@secondoftwo} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPsd@ref} +% Macro \cs{HyPsd@ref} calls the macro \cs{HyPsd@@ref} for star checking. +% The same methods like in \cs{HyPsd@hspace} is used. +% \begin{macrocode} +\def\HyPsd@ref#1{\HyPsd@@ref#1*\END}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@ref} +% Macro \cs{HyPsd@@ref} checks if a star is present. +% \begin{macrocode} +\def\HyPsd@@ref#1*#2\END{% + \ifx\\#2\\% + \HyPsd@@@ref{#1}% + \else + \expandafter\HyPsd@@@ref + \fi +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@@ref} +% \cs{HyPsd@@@ref} does the work and extracts the first argument. +% \begin{macrocode} +\def\HyPsd@@@ref#1{% + \expandafter\ifx\csname r@#1\endcsname\relax + ??% + \else + \expandafter\expandafter\expandafter + \@car\csname r@#1\endcsname\@nil + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPsd@pageref} +% Macro \cs{HyPsd@pageref} calls the macro \cs{HyPsd@@pageref} for star checking. +% The same methods like in \cs{HyPsd@hspace} is used. +% \begin{macrocode} +\def\HyPsd@pageref#1{\HyPsd@@pageref#1*\END} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@pageref} +% Macro \cs{HyPsd@@pageref} checks if a star is present. +% \begin{macrocode} +\def\HyPsd@@pageref#1*#2\END{% + \ifx\\#2\\% + \HyPsd@@@pageref{#1}% + \else + \expandafter\HyPsd@@@pageref + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@@pageref} +% \cs{HyPsd@@@pageref} does the work and extracts the second argument. +% \begin{macrocode} +\def\HyPsd@@@pageref#1{% + \expandafter\ifx\csname r@#1\endcsname\relax + ??% + \else + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@car + \expandafter\expandafter\expandafter\@gobble + \csname r@#1\endcsname{}\@nil + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPsd@nameref} +% Macro \cs{HyPsd@nameref} calls the macro \cs{HyPsd@@nameref} for star checking. +% The same methods like in \cs{HyPsd@hspace} is used. +% \begin{macrocode} +\def\HyPsd@nameref#1{\HyPsd@@nameref#1*\END} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@nameref} +% Macro \cs{HyPsd@@nameref} checks if a star is present. +% \begin{macrocode} +\def\HyPsd@@nameref#1*#2\END{% + \ifx\\#2\\% + \HyPsd@@@nameref{#1}% + \else + \expandafter\HyPsd@@@nameref + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@@nameref} +% \cs{HyPsd@@@nameref} does the work and extracts the third argument. +% \begin{macrocode} +\def\HyPsd@@@nameref#1{% + \expandafter\ifx\csname r@#1\endcsname\relax + ??% + \else + \expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter\@car + \expandafter\expandafter\expandafter\@gobbletwo + \csname r@#1\endcsname{}{}\@nil + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPsd@autoref} +% Macro \cs{HyPsd@autoref} calls the macro \cs{HyPsd@@autoref} for star checking. +% The same methods like in \cs{HyPsd@hspace} is used. +% \begin{macrocode} +\def\HyPsd@autoref#1{\HyPsd@@autoref#1*\END} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@autoref} +% Macro \cs{HyPsd@@autoref} checks if a star is present. +% \begin{macrocode} +\def\HyPsd@@autoref#1*#2\END{% + \ifx\\#2\\% + \HyPsd@@@autoref{#1}% + \else + \expandafter\HyPsd@@@autoref + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@@autoref} +% \cs{HyPsd@@@autoref} does the work and extracts the second argument. +% \begin{macrocode} +\def\HyPsd@@@autoref#1{% + \expandafter\ifx\csname r@#1\endcsname\relax + ??% + \else + \expandafter\expandafter\expandafter\HyPsd@autorefname + \csname r@#1\endcsname{}{}{}{}\@nil + \expandafter\expandafter\expandafter + \@car\csname r@#1\endcsname\@nil + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@autorefname} +% At least a basic definition for getting the \cs{autoref} name. +% \begin{macrocode} +\def\HyPsd@autorefname#1#2#3#4#5\@nil{% + \ifx\\#4\\% + \else + \HyPsd@@autorefname#4.\@nil + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@autorefname} +% \begin{macrocode} +\def\HyPsd@@autorefname#1.#2\@nil{% + \ltx@IfUndefined{#1autorefname}{% + \ltx@IfUndefined{#1name}{% + }{% + \csname#1name\endcsname\space + }% + }{% + \csname#1autorefname\endcsname\space + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Redefining the defining commands} +% \label{defcmd} +% Definitions aren't allowed, because they aren't executed in +% an only expanding context. So the command to be defined +% isn't defined and can perhaps be undefined. This would causes +% TeX to stop with an error message. +% With a deep trick it is possible to define commands in such +% a context: \cs{csname} does the job, it defines the command +% to be \cs{relax}, if it has no meaning. +% +% Active characters cannot be defined with this trick. It is +% possible to define all undefined active characters +% (perhaps that they have the meaning of \cs{relax}). +% To avoid side effects this should be done in \cs{pdfstringdef} +% shortly before the \cs{xdef} job. But checking and defining +% all possible active characters of the full range (0 until 255) +% would take a while. \cs{pdfstringdef} is slow enough, so +% this isn't done. +% +% \cs{HyPsd@DefCommand} and \cs{HyPsd@LetCommand} expands to the +% commands \cs{<def>-command} and \cs{<let>-command} +% with the meaning of \cs{def} and \cs{let}. So it is detected by +% \cs{HyPsd@CheckCatcodes} and the command name \cs{<def>-command} +% or \cs{<let>-command} should indicate a forbidden definition +% command. +% +% The command to be defined is converted to a string and back +% to a command name with the help of \cs{csname}. If the +% command is already defined, \cs{noexpand} prevents a +% further expansion, even though the command would +% expand to legal stuff. If the command don't have the meaning +% of \cs{relax}, \cs{HyPsd@CheckCatcodes} will produce a warning. +% (The command itself can be legal, but the warning is legitimate +% because of the position after a defining command.) +% +% The difference between \cs{HyPsd@DefCommand} and +% \cs{HyPsdLetCommand} is that the first one also cancels this +% arguments, the parameter and definition text. The right side +% of the \cs{let} commands cannot be canceled with an undelimited +% parameter because of a possible space token after \cs{futurelet}. +% +% To avoid unmachted \cs{if...} tokens, the cases +% \verb|\let\if...\iftrue| and \verb|\let\if...\iffalse| +% are checked and ignored. +% +% \begin{macro}{\HyPsd@DefCommand} +% \begin{macro}{\HyPsd@LetCommand} +% \begin{macrocode} +\begingroup + \def\x#1#2{% + \endgroup + \let#1\def + \def\HyPsd@DefCommand##1##2##{% + #1% + \expandafter\noexpand + \csname\expandafter\@gobble\string##1\@empty\endcsname + \@gobble + }% + \let#2\let + \def\HyPsd@@LetCommand##1{% + \expandafter\ifx\csname##1\expandafter\endcsname + \csname iftrue\endcsname + \pdfstringdefWarn\let + \expandafter\@gobble + \else + \expandafter\ifx\csname##1\expandafter\endcsname + \csname iffalse\endcsname + \pdfstringdefWarn\let + \expandafter\expandafter\expandafter\@gobble + \else + #2% + \expandafter\noexpand + \csname##1\expandafter\expandafter\expandafter\endcsname + \fi + \fi + }% + }% +\expandafter\x\csname <def>-command\expandafter\endcsname + \csname <let>-command\endcsname +\def\HyPsd@LetCommand#1{% + \expandafter\expandafter\expandafter\HyPsd@@LetCommand + \expandafter\expandafter\expandafter{% + \expandafter\@gobble\string#1\@empty + }% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{^^A +% \texorpdfstring{\cs{ifnextchar}}{\\ifnextchar}^^A +% } +% \begin{macro}{\HyPsd@ifnextchar} +% In \cs{pdfstringdef} \cs{@ifnextchar} is disabled +% via a \cs{let} command to save time. First a +% warning message is given, then the three arguments +% are canceled. \cs{@ifnextchar} cannot work in a correct +% manner, because it uses \cs{futurelet}, but this is a +% stomach feature, that doesn't work in an expanding context. +% There are several variants of \cs{@ifnextchar}: +% \begin{itemize} +% \item \cs{@ifnextchar} +% \item \cs{kernel@ifnextchar} +% \item \cs{new@ifnextchar} from package \verb|amsgen.sty| +% (bug report latex/3662). +% \end{itemize} +% \begin{macrocode} +\def\HyPsd@ifnextchar#1{% + \pdfstringdefWarn#1% + \expandafter\@gobbletwo\@gobble +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{^^A +% \texorpdfstring{\cs{@protected@testoptifnextchar}}^^A +% {\\@protected@testopt}^^A +% } +% \begin{macro}{\HyPsd@protected@testopt} +% Macros with optional arguments doesn't work properly, because +% they call \cmd{\@ifnextchar} to detect the optional argument +% (see the explanation of \cmd{\HyPsd@ifnextchar}). +% But a warning, that \cmd{\@ifnextchar} doesn't work, doesn't +% help the user very much. Therefore \cmd{\@protected@testopt} +% is also disabled, because its first argument is the problematic +% macro with the optional argument and it is called before +% \cmd{\@ifnextchar}. +% \begin{macrocode} +\def\HyPsd@protected@testopt#1{% + \pdfstringdefWarn#1% + \@gobbletwo +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Help macros for postprocessing} +% +% \subsubsection{Generic warning.} +% \begin{macro}{\HyPsd@Warning} +% For several reasons \cs{space} is masked and does not have its +% normal meaning. But it is used in warning messages, so it is +% redefined locally: +% \begin{macrocode} +\def\HyPsd@Warning#1{% + \begingroup + \let\space\ltx@space + \Hy@Warning{#1}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Protecting spaces} +% +% \begin{macrocode} +\RequirePackage{etexcmds}[2007/09/09] +\ifetex@unexpanded + \expandafter\@secondoftwo +\else + \expandafter\@firstoftwo +\fi +{% +% \end{macrocode} +% +% \begin{macro}{\HyPsd@ProtectSpaces} +% \cs{HyPsd@ProtectSpaces} calls with the expanded +% string \cs{HyPsd@@ProtectSpacesFi}. The expanded string is +% protected by \verb+|+ at the beginning and end of +% the expanded string. Because of this there can be no group +% at the beginning or end of the string and grouping characters +% are not removed by the call of \cs{HyPsd@@ProtectSpacesFi}. +% \begin{macrocode} + \def\HyPsd@ProtectSpaces#1{% + \iftrue + \expandafter\HyPsd@@ProtectSpacesFi + \expandafter|\expandafter\@empty#1| \HyPsd@End#1% + \fi + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@ProtectSpacesFi} +% The string can contain command tokens, so it is better +% to use an \cs{def} instead of an \cs{edef}. +% \begin{macrocode} + \def\HyPsd@@ProtectSpacesFi#1 #2\HyPsd@End#3\fi{% + \fi + \ifx\scrollmode#2\scrollmode + \HyPsd@RemoveMask#1\HyPsd@End#3% + \else + \gdef#3{#1\HyPsd@UnexpandableSpace#2}% + \expandafter\HyPsd@@ProtectSpacesFi#3\HyPsd@End#3% + \fi + }% +% \end{macrocode} +% \end{macro} +% +% \paragraph{Remove mask.} +% \begin{macro}{\HyPsd@RemoveMask} +% \cs{HyPsd@RemoveMask} removes the protecting \verb+|+. +% It is used by \cs{HyPsd@@ProtectSpacesFi} and by the code in +% \cs{pdfstringdef} that removes the grouping chararcters. +% \begin{macrocode} + \def\HyPsd@RemoveMask|#1|\HyPsd@End#2{% + \toks@\expandafter{#1}% + \xdef#2{\the\toks@}% + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +}{% + \let\HyPsd@fi\fi + \def\HyPsd@ProtectSpaces#1{% + \xdef#1{% + \iftrue + \expandafter\HyPsd@@ProtectSpacesFi + \expandafter|\expandafter\@empty#1| % + \HyPsd@fi + }% + \expandafter\HyPsd@RemoveMask#1\HyPsd@End#1% + }% + \def\HyPsd@@ProtectSpacesFi#1 #2\HyPsd@fi{% + \fi + \etex@unexpanded{#1}% + \ifx\scrollmode#2\scrollmode + \else + \HyPsd@@ProtectSpacesFi\HyPsd@UnexpandableSpace#2% + \HyPsd@fi + }% + \def\HyPsd@RemoveMask|#1|\HyPsd@End#2{% + \xdef#2{\etex@unexpanded\expandafter{#1}}% + }% +} +% \end{macrocode} +% +% \subsubsection{Remove grouping braces} +% \begin{macro}{\HyPsd@RemoveBraces} +% |#1| contains the expanded string, the result will +% be locally written in command \cs{HyPsd@String}. +% \begin{macrocode} +\def\HyPsd@RemoveBraces#1{% + \ifx\scrollmode#1\scrollmode + \else + \HyPsd@@RemoveBracesFi#1\HyPsd@End{#1}% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@RemoveBraces} +% \cs{HyPsd@@RemoveBraces} is called with the expanded string, +% the end marked by \cs{HyPsd@End}, the expanded string again, but +% enclosed in braces and the string command. The first expanded +% string is scanned by the parameter text |#1#2|. +% By a comparison with the original form in |#3| we can decide +% whether |#1| is a single token or a group. To avoid the +% case that |#2| is a group, the string is extended by a \verb+|+ +% before. +% +% While removing the grouping braces an italic correction +% marker is inserted for supporting package |xspace| and +% letting ligatures broken. +% +% Because the string is already expanded, the \cs{if} commands +% should disappeared. So we can move some parts out +% of the argument of \cs{ltx@ReturnAfterFi}. +% \begin{macrocode} +\def\HyPsd@@RemoveBracesFi#1#2\HyPsd@End#3\fi{% + \fi + \def\Hy@temp@A{#1#2}% + \def\Hy@temp@B{#3}% + \ifx\Hy@temp@A\Hy@temp@B + \expandafter\def\expandafter\HyPsd@String\expandafter{% + \HyPsd@String#1% + }% + \ifx\scrollmode#2\scrollmode + \else + \Hy@ReturnAfterFiFiEnd{% + \HyPsd@RemoveBraces{#2}% + }% + \fi + \else + \def\Hy@temp@A{#1}% + \HyPsd@AppendItalcorr\HyPsd@String + \ifx\Hy@temp@A\@empty + \Hy@ReturnAfterElseFiFiEnd{% + \HyPsd@RemoveBraces{#2}% + }% + \else + \HyPsd@ProtectSpaces\Hy@temp@A + \HyPsd@AppendItalcorr\Hy@temp@A + \Hy@ReturnAfterFiFiEnd{% + \expandafter\HyPsd@RemoveBraces\expandafter + {\Hy@temp@A#2}% + }% + \fi + \fi + \Hy@ReturnEnd +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@AppendItalcorr} +% \begin{macro}{\HyPsd@@AppendItalcorr} +% The string can contain commands yet, so it is better +% to use \cs{def} instead of a shorter \cs{edef}. +% The two help macros limit the count of \cs{expandafter}. +% \begin{macrocode} +\def\HyPsd@AppendItalcorr#1{% + \expandafter\HyPsd@@AppendItalcorr\expandafter{\/}#1% +} +\def\HyPsd@@AppendItalcorr#1#2{% + \expandafter\def\expandafter#2\expandafter{#2#1}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{Catcode check} +% +% \paragraph{Workaround for LuaTeX.} +% \cs{HyPsd@CheckCatcodes} might trigger a bug +% of LuaTeX (0.60.2, 0.70.1, 0.70.2, ...) in the +% comparison with \cs{ifcat}, see +% \url{http://tracker.luatex.org/view.php?id=773}. +% \begin{macrocode} +\ltx@IfUndefined{directlua}{% +}{% + \expandafter\ifx\csname\endcsname\relax\fi +} +% \end{macrocode} +% +% \paragraph{Check catcodes.} +% \begin{macro}{\HyPsd@CheckCatcodes} +% Because \cs{ifcat} expands its arguments, this is +% prevented by \cs{noexpand}. In case of command tokens +% and active characters \cs{ifcat} now sees a \cs{relax}. +% After protecting spaces and removing braces |#1| should +% be a single token, no group of several tokens, nor an +% empty group. (So the \cs{expandafter}\cs{relax} between +% \cs{ifcat} and \cs{noexpand} is only for safety and +% it should be possible to remove it.) +% +% \cs{protect} and \cs{relax} should be removed silently. +% But it is too dangerous and breaks some code giving them +% the meaning of \cs{@empty}. So commands with the meaning +% of \cs{protect} are removed here. (\cs{protect} should +% have the meaning of \cs{@typeset@protect} that +% is equal to \cs{relax}). +% +% For the comparison with active characters, \texttt{\textasciitilde} +% cannot be used because it has the meaning of a blank space here. +% And active characters need to be checked, if they have been defined +% using \cs{protected}. +% \begin{macrocode} +\begingroup + \catcode`\Q=\active + \let Q\ltx@empty + \gdef\HyPsd@CheckCatcodes#1#2\HyPsd@End{% + \global\let\HyPsd@Rest\relax + \ifcat\relax\noexpand#1\relax + \ifx#1\protect + \else + \ifx#1\penalty + \setbox\z@=\hbox{% + \afterassignment\HyPsd@AfterCountRemove + \count@=#2\HyPsd@End + }% + \else + \ifx#1\kern + \setbox\z@=\hbox{% + \afterassignment\HyPsd@AfterDimenRemove + \dimen@=#2\HyPsd@End + }% + \else + \ifx#1\hskip + \setbox\z@=\hbox{% + \afterassignment\HyPsd@AfterSkipRemove + \skip@=#2\HyPsd@End + }% + \else + \HyPsd@CatcodeWarning{#1}% + \fi + \fi + \fi + \fi + \else + \ifcat\noexpand#1\noexpandQ% active character + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter\HyPsd@String + \expandafter\expandafter\expandafter{% + \expandafter\HyPsd@String\string#1% + }% + \else + \ifcat#1A% letter + \expandafter\def\expandafter\HyPsd@String\expandafter{% + \HyPsd@String#1% + }% + \else + \ifcat#1 % SPACE + \expandafter\def\expandafter\HyPsd@String\expandafter{% + \HyPsd@String\HyPsd@SPACEOPTI + }% + \else + \ifcat$#1% + \HyPsd@CatcodeWarning{math shift}% + \else + \ifcat% + \HyPsd@CatcodeWarning{alignment tab}% + \else + \ifcat^#1% + \HyPsd@CatcodeWarning{superscript}% + \else + \ifcat_#1% + \HyPsd@CatcodeWarning{subscript}% + \else + \expandafter\def\expandafter\HyPsd@String\expandafter{% + \HyPsd@String#1% + }% + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \ifx\HyPsd@Rest\relax + \ifx\scrollmode#2\scrollmode + \else + \Hy@ReturnAfterFiFiEnd{% + \HyPsd@CheckCatcodes#2\HyPsd@End + }% + \fi + \else + \ifx\HyPsd@Rest\@empty + \else + \Hy@ReturnAfterFiFiEnd{% + \expandafter\HyPsd@CheckCatcodes\HyPsd@Rest\HyPsd@End + }% + \fi + \fi + \Hy@ReturnEnd + }% +\endgroup +% \end{macrocode} +% \end{macro} +% +% \paragraph{Remove counts, dimens, skips.} +% \begin{macro}{\HyPsd@AfterCountRemove} +% Counts like \cs{penalty} are removed silently. +% \begin{macrocode} +\def\HyPsd@AfterCountRemove#1\HyPsd@End{% + \gdef\HyPsd@Rest{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@AfterDimenRemove} +% If the value of the dimen (\cs{kern}) is zero, it can be +% removed silently. All other values are difficult to interpret. +% Negative values do not work in bookmarks. Should positive +% values be removed or should they be replaced by space(s)? +% The following code replaces positive values greater than +% |1ex| with a space and removes them else. +% \begin{macrocode} +\def\HyPsd@AfterDimenRemove#1\HyPsd@End{% + \ifdim\ifx\HyPsd@String\@empty\z@\else\dimen@\fi>1ex % + \HyPsd@ReplaceSpaceWarning{\string\kern\space\the\dimen@}% + \gdef\HyPsd@Rest{\HyPsd@UnexpandableSpace #1}% + \else + \ifdim\dimen@=\z@ + \else + \HyPsd@RemoveSpaceWarning{\string\kern\space\the\dimen@}% + \fi + \gdef\HyPsd@Rest{#1}% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@AfterSkipRemove} +% The glue part of skips do not work in PDF strings and are ignored. +% Skips (\cs{hskip}), that are not zero, have the same +% interpreting problems like dimens (see above). +% \begin{macrocode} +\def\HyPsd@AfterSkipRemove#1\HyPsd@End{% + \ifdim\ifx\HyPsd@String\@empty\z@\else\skip@\fi>1ex % + \HyPsd@ReplaceSpaceWarning{\string\hskip\space\the\skip@}% + \gdef\HyPsd@Rest{\HyPsd@UnexpandableSpace #1}% + \else + \ifdim\skip@=\z@ + \else + \HyPsd@RemoveSpaceWarning{\string\kern\space\the\skip@}% + \fi + \gdef\HyPsd@Rest{#1}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \paragraph{Catcode warnings.} +% \begin{macro}{\HyPsd@CatcodeWarning} +% \cs{HyPsd@CatcodeWarning} produces a warning for the user. +% \begin{macrocode} +\def\HyPsd@CatcodeWarning#1{% + \HyPsd@Warning{% + Token not allowed in a PDF string (% + \ifHy@unicode + Unicode% + \else + PDFDocEncoding% + \fi + ):% + \MessageBreak removing `\HyPsd@RemoveCmdPrefix#1'% + }% +} +\begingroup + \catcode`\|=0 % + \catcode`\\=12 % +% \end{macrocode} +% \SpecialEscapechar{\|} +% \vspace{-2\MacrocodeTopsep} +% \vspace{-\parskip} +% \vspace{-\partopsep} +% \begin{macrocode} + |gdef|HyPsd@RemoveCmdPrefix#1{% + |expandafter|HyPsd@@RemoveCmdPrefix + |string#1|@empty\<>-|@empty|@empty + }% + |gdef|HyPsd@@RemoveCmdPrefix#1\<>-#2|@empty#3|@empty{#1#2}% +|endgroup +% \end{macrocode} +% \SpecialEscapechar{\\} +% \end{macro} +% \begin{macro}{\HyPsd@RemoveSpaceWarning} +% \begin{macrocode} +\def\HyPsd@RemoveSpaceWarning#1{% + \HyPsd@Warning{% + Token not allowed in a PDF string (% + \ifHy@unicode + Unicode% + \else + PDFDocEncoding% + \fi + ):% + \MessageBreak #1\MessageBreak + removed% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@ReplaceSpaceWarning} +% \begin{macrocode} +\def\HyPsd@ReplaceSpaceWarning#1{% + \HyPsd@Warning{% + Token not allowed in a PDF string (% + \ifHy@unicode + Unicode% + \else + PDFDocEncoding% + \fi + ):% + \MessageBreak #1\MessageBreak + replaced by space% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Check for wrong glyphs} +% A wrong glyph is marked with \cs{relax}, the glyph +% name follows, delimited by |>|. \cs{@empty} ends +% the string. +% \begin{macrocode} +\def\HyPsd@GlyphProcess#1\relax#2\@empty{% + \expandafter\def\expandafter\HyPsd@String\expandafter{% + \HyPsd@String#1% + }% + \ifx\\#2\\% + \else + \ltx@ReturnAfterFi{% + \HyPsd@GlyphProcessWarning#2\@empty + }% + \fi +} +\def\HyPsd@GlyphProcessWarning#1>#2\@empty{% + \HyPsd@@GlyphProcessWarning#1++>% + \HyPsd@GlyphProcess#2\@empty +} +\def\HyPsd@@GlyphProcessWarning#1+#2+#3>{% + \ifx\\#2\\% + \HyPsd@Warning{% + Glyph not defined in % + P\ifHy@unicode U\else D1\fi\space encoding,\MessageBreak + removing `\@backslashchar#1'% + }% + \else + \HyPsd@Warning{% + Composite letter `\@backslashchar#1+#2'\MessageBreak + not defined in P\ifHy@unicode U\else D1\fi\space encoding,% + \MessageBreak + removing `\@backslashchar#1'% + }% + \fi +} +% \end{macrocode} +% +% \paragraph{Spaces.} +% \begin{macro}{\HyPsd@spaceopti} +% In the string the spaces are represented by \cs{HyPsd@spaceopti} +% tokens. Within an \cs{edef} it prints itself as +% a simple space and looks for its next argument. +% If another space follows, so it replaces the next \cs{HyPsd@spaceopti} +% by an protected space \cs{040}. +% \begin{macrocode} +\def\HyPsd@spaceopti#1{ % first space + \ifx\HyPsd@spaceopti#1% + \040% + \else + #1% + \fi +}% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Replacing tokens} +% \begin{macro}{\HyPsd@Subst} +% To save tokens \cs{HyPsd@StringSubst} is an wrapper for the +% command \cs{HyPsd@Subst} that does all the work: +% In string stored in command |#3| it replaces the tokens +% |#1| with |#2|.\\ +% \begin{tabular}{ll} +% |#1|& Exact the tokens that should be replaced.\\ +% |#2|& The replacement (don't need to be expanded).\\ +% |#3|& Command with the string. +% \end{tabular} +% \begin{macrocode} +\def\HyPsd@Subst#1#2#3{% + \def\HyPsd@@ReplaceFi##1#1##2\END\fi{% + \fi + ##1% + \ifx\scrollmode##2\scrollmode + \else + #2% + \HyPsd@@ReplaceFi##2\END + \fi + }% + \xdef#3{% + \iftrue + \expandafter\HyPsd@@ReplaceFi#3#1\END + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@StringSubst} +% To save tokens in \cs{pdfstringdef} \cs{HyPsd@StringSubst} is a wrapper, +% that expands argument |#1| before calling \cs{HyPsd@Subst}. +% \begin{macrocode} +\def\HyPsd@StringSubst#1{% + \expandafter\HyPsd@Subst\expandafter{\string#1}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPsd@EscapeTeX} +% \begin{macrocode} +\begingroup + \lccode`\!=`\%% + \lccode`\|=`\\% + \lccode`\(=`\{% + \lccode`\)=`\}% + \lccode`0=\ltx@zero + \lccode`1=\ltx@zero + \lccode`3=\ltx@zero + \lccode`4=\ltx@zero + \lccode`5=\ltx@zero + \lccode`7=\ltx@zero +\lowercase{\endgroup + \def\HyPsd@EscapeTeX#1{% + \HyPsd@Subst!{|045}#1% + \HyPsd@Subst({|173}#1% + \HyPsd@Subst){|175}#1% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Support for package \texttt{xspace}} +% \begin{macro}{\HyPsd@doxspace} +% \cs{xspace} does not work, because it uses a \cs{futurelet} +% that cannot be executed in \TeX's mouth. So this implementation +% uses an argument to examine the next token. In a previous version +% I reused \cs{@xspace}, but this version is shorter and easier +% to understand. +% \begin{macrocode} +\def\HyPsd@doxspace#1{% + \ifx#1\relax\else + \ifx#1.\else + \ifx#1:\else + \ifx#1,\else + \ifx#1;\else + \ifx#1!\else + \ifx#1?\else + \ifx#1/\else + \ifx#1-\else + \ifx#1'\else + \HyPsd@SPACEOPTI + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + #1% +}% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Converting to Unicode} +% Eight bit characters are converted to the sixteen bit ones, +% \cs{8} is replaced by \cs{00}, and \cs{9} is removed. +% The result should be a valid Unicode PDF string without the +% Unicode marker at the beginning. +% \begin{macrocode} +\begingroup + \catcode`\|=0 % + \catcode`\\=12 % +% \end{macrocode} +% \SpecialEscapechar{\|} +% \begin{macro}{\HyPsd@ConvertToUnicode} +% \begin{macrocode} + |gdef|HyPsd@ConvertToUnicode#1{% + |xdef#1{% + |expandafter|HyPsd@DoConvert#1|@empty|@empty|@empty + }% + |ifx#1|@empty + |else + |xdef#1{% + \376\377% + #1% + }% + |fi + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@DoConvert} +% \begin{macrocode} + |gdef|HyPsd@DoConvert#1{% + |ifx#1|@empty + |else + |ltx@ReturnAfterFi{% + |ifx#1\%% + \%% + |expandafter|HyPsd@DoEscape + |else + |HyPsd@Char{#1}% + |expandafter|HyPsd@DoConvert + |fi + }% + |fi + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@DoEscape} +% \begin{macrocode} + |gdef|HyPsd@DoEscape#1{% + |ifx#19% + |expandafter|HyPsd@GetTwoBytes + |else + |ltx@ReturnAfterFi{% + |ifx#18% + 00% + |expandafter|HyPsd@GetTwoBytes + |else + #1% + |expandafter|HyPsd@GetOneByte + |fi + }% + |fi + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@GetTwoBytes} +% \begin{macrocode} + |gdef|HyPsd@GetTwoBytes#1\#2#3#4{% + #1\#2#3#4% + |HyPsd@DoConvert + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@GetOneBye} +% \begin{macrocode} + |gdef|HyPsd@GetOneByte#1#2{% + #1#2% + |HyPsd@DoConvert + }% +|endgroup +% \end{macrocode} +% \end{macro} +% \SpecialEscapechar{\\} +% \begin{macro}{\HyPsd@@GetNextTwoTokens} +% \TeX{} does only allow nine parameters, so we need another macro +% to get more arguments. +% \begin{macrocode} +\def\HyPsd@GetNextTwoTokens#1#2#3\END#4{% + \xdef#4{#4#1#2}% + \HyPsd@@ConvertToUnicode#3\END#4% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@Char} +% \begin{macrocode} +\begingroup + \catcode0=9 % + \catcode`\^=7 % + \catcode`\^^^=12 % + \def\x{^^^^0000}% +\expandafter\endgroup +\ifx\x\@empty + \def\HyPsd@Char#1{% + \ifnum`#1<128 % + \@backslashchar 000#1% + \else + \ifnum`#1<65536 % + \expandafter\HyPsd@CharTwoByte\number`#1!% + \else + \expandafter\expandafter\expandafter\HyPsd@CharSurrogate + \intcalcSub{`#1}{65536}!% + \fi + \fi + }% + \def\HyPsd@CharTwoByte#1!{% + \expandafter\expandafter\expandafter\HyPsd@CharOctByte + \IntCalcDiv#1!256!!% + \expandafter\expandafter\expandafter\HyPsd@CharOctByte + \IntCalcMod#1!256!!% + }% + \def\HyPsd@CharOctByte#1!{% + \@backslashchar + \IntCalcDiv#1!64!% + \intcalcDiv{\IntCalcMod#1!64!}{8}% + \IntCalcMod#1!8!% + }% + \def\HyPsd@CharSurrogate#1!{% + \@backslashchar 33% + \IntCalcDiv#1!262144!% + \expandafter\expandafter\expandafter\HyPsd@CharOctByte + \intcalcDiv{\IntCalcMod#1!262144!}{1024}!% + \@backslashchar 33% + \expandafter\expandafter\expandafter\IntCalcAdd + \intcalcDiv{\IntCalcMod#1!1024!}{256}!4!% + \expandafter\expandafter\expandafter\HyPsd@CharOctByte + \IntCalcMod#1!256!!% + }% +\else + \def\HyPsd@Char#1{% + \@backslashchar 000#1% + }% +\fi +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Support for UTF-8 input encoding} +% +% After |\usepackage[utf8]{inputenc}| there are macros that +% expect the UTF-8 octets as arguments. Therefore we can +% calculate the PDF octal sequences directly. Because the +% PDF format is limited to UCS-2, conversion macros are +% needed for UTF-8 sequences with two and three octets only. +% +% This calculation must be done in an expandable context, +% so we use e\TeX here for performance reasons. Unhappily +% the results of divisions are rounded. Thus a +% circumvention via |\dimexpr| is used, e.g.: +% \begin{quote} +% |\numexpr 123/4\relax| is replaced by\\ +% |\number\dimexpr.25\dimexpr 123sp\relax\relax| +% \end{quote} +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname numexpr\endcsname\relax + \let\HyPsd@UTFviii\relax +\else + \begingroup + \lccode`\~=`^^f4\relax + \lowercase{\endgroup + \def\HyPsd@UTFviii{% + \let\UTFviii@two@octets\HyPsd@UTFviii@two + \let\UTFviii@three@octets\HyPsd@UTFviii@three + \let\UTFviii@four@octets\HyPsd@UTFviii@four + \ifx~\HyPsd@UTFviii@ccxliv@undef + \let~\HyPsd@UTFviii@ccxliv@def + \fi + \let\unichar\HyPsd@unichar + }% + }% + \def\HyPsd@UTFviii@ccxliv@undef{\@inpenc@undefined@{utf8}}% + \edef\HyPsd@UTFviii@ccxliv@def{% + \noexpand\UTFviii@four@octets\string ^^f4% + }% +% \end{macrocode} +% +% The two octet form of UTF-8 |110aaabb| (A) and |10cccddd| (B) +% must be converted into octal numbers |00a| and |bcd|. The +% result is |\8a\bcd| (with a, b, c, d as octal numbers). +% The conversion equations. +% \begin{eqnarray} +% a &:= A/4 - 48\\ +% b &:= A - 4*(A/4)\\ +% c &:= B/8 - 8*((8*(B/8))/8)\\ +% d &:= B - 8*(B/8)\\ +% \end{eqnarray} +% ^^A #1 = A/4 #2 = A +% ^^A #3 = B/8 #4 = B +% \begin{macrocode} + \def\HyPsd@UTFviii@two#1#2{% + \expandafter\HyPsd@UTFviii@@two + \number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|% + \number`#1\expandafter|% + \number\dimexpr.125\dimexpr`#2sp\expandafter\relax\expandafter|% + \number`#2 \@nil + }% + \def\HyPsd@UTFviii@@two#1|#2|#3|#4\@nil{% + \expandafter\8% + \number\numexpr #1-48\expandafter\relax + \csname\number\numexpr #2-4*#1\relax\expandafter\endcsname + \number\numexpr #3-8*% + \number\dimexpr.125\dimexpr#3sp\relax\relax\expandafter\relax + \number\numexpr #4-8*#3\relax + }% +% \end{macrocode} +% +% Three octet form: |1110aabb| (A), |10bcccdd| (B), and |10eeefff| +% (C). The result is |\9abc\def| (with a, \dots, f as octal numbers). +% The conversion equations: +% \begin{eqnarray} +% a &:= A/4 - 56\\ +% b &:= 2*(A - 4*(A/4)) + ((B-128 < 32) ? 0 : 1)\\ +% c &:= B/4 - 32 - ((B-128 < 32) ? 0 : 8)\\ +% d &:= B - 4*(B/4)\\ +% e &:= C/8 - 16\\ +% f &:= C - 8*(C/8)\\ +% \end{eqnarray} +% ^^A #1 = A/4 #2 = A +% ^^A #3 = (B-128 < 32) ? 0 : 1 +% ^^A #4 = B/4 #5 = B +% ^^A #6 = C/8 #7 = C +% \begin{macrocode} + \def\HyPsd@UTFviii@three#1#2#3{% + \expandafter\HyPsd@UTFviii@@three + \number\dimexpr.25\dimexpr`#1sp\expandafter\relax\expandafter|% + \number`#1\expandafter|% + \number\ifnum\numexpr`#2-128\relax <32 0\else 1\fi\expandafter|% + \number\dimexpr.25\dimexpr`#2sp\expandafter\relax\expandafter|% + \number`#2\expandafter|% + \number\dimexpr.125\dimexpr`#3sp\expandafter\relax\expandafter|% + \number`#3 \@nil + }% + \def\HyPsd@UTFviii@@three#1|#2|#3|#4|#5|#6|#7\@nil{% + \expandafter\9% + \number\numexpr #1-56\expandafter\relax + \number\numexpr 2*(#2-4*#1)+#3\expandafter\relax + \number\numexpr #4 - 32 -\ifcase#3 0\else 8\fi\expandafter\relax + \csname\number\numexpr #5-4*#4\relax\expandafter\endcsname + \number\numexpr #6-16\expandafter\relax + \number\numexpr #7-8*#6\relax + }% +% \end{macrocode} +% +% Surrogates: 4 octets in UTF-8, a surrogate pair in UTF-16. +% High surrogate range: U+D800--U+DBFF, low surrogate range: +% U+DC00-U+DFFF. +% +%\begin{quote} +%\begin{verbatim} +%UTF-8: 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx +%wwww = uuuuu - 1 +%UTF-16: 110110ww wwzzzzyy 110111yy yyxxxxxx +%octal: 011 011 0ww 0ww zzz zyy 011 011 1yy 0yy xxx xxx +%\end{verbatim} +%\end{quote} +% \begin{macrocode} + \def\HyPsd@UTFviii@four#1#2{% + \expandafter\HyPsd@@UTFviii@four\number + \numexpr-1+(`#1-240)*4+\dimexpr.0625\dimexpr`#2sp-128sp% + \expandafter|\number + \numexpr`#2-16*\dimexpr.0625\dimexpr`#2sp|% + }% + \def\HyPsd@@UTFviii@four#1|#2|#3{% + \933\number\dimexpr.25\dimexpr#1sp\relax\relax + \csname\number\numexpr#1-4*\dimexpr.25\dimexpr#1sp\endcsname + \ifodd#2 % + \number\numexpr(#2-1)/2\relax + \else + \number\numexpr#2/2\relax + \fi + \number\numexpr\ifodd#2 4+\fi + \dimexpr.0625\dimexpr`#3sp-128sp\relax\relax\relax + \933% + \expandafter\HyPsd@@@UTFviii@four\number + \numexpr`#3-16*\dimexpr.0625\dimexpr`#3sp|% + }% + \def\HyPsd@@@UTFviii@four#1|#2{% + \number\numexpr4+\dimexpr.25\dimexpr#1sp\relax\relax\relax + \csname\number\numexpr#1-4*\dimexpr.25\dimexpr#1sp\endcsname + \number\dimexpr.125\dimexpr`#2sp-128sp\relax\relax + \number\numexpr`#2-8*\dimexpr.125\dimexpr`#2sp\relax\relax\relax + }% +% \end{macrocode} +% +% Input encoding |utf8x| of package |ucs| uses macro \cmd{\unichar}. +% Values greater than |"FFFF| are not supported. +% \begin{macrocode} + \def\HyPsd@unichar#1{% + \ifHy@unicode + \ifnum#1>"10FFFF % + \HyPsd@UnicodeReplacementCharacter % illegal + \else + \ifnum#1>"FFFF % +% \end{macrocode} +% High-surrogate code point. +% (|"D800| = |55296|, |\p@| = |1pt| = |65536sp|) +% \begin{macrocode} + \expandafter\HyPsd@unichar\expandafter{% + \number\numexpr 55296+% + \dimexpr.0009765625\dimexpr\number#1sp-\p@ + \relax\relax\relax + }% +% \end{macrocode} +% Low-surrogate code point. +% (|"DC00| = 56320, |"DC00| - |65536| = |-9216|) +% \begin{macrocode} + \expandafter\HyPsd@unichar\expandafter{% + \number\numexpr#1-9216% + -1024*\dimexpr.0009765625\dimexpr\number#1sp-\p@ + \relax\relax\relax + }% + \else + \ifnum#1>"7FF % + \9% + \expandafter\HyPsd@unichar@first@byte\expandafter{% + \number + \dimexpr.00390625\dimexpr\number#1sp\relax\relax + }% + \else + \8% + \number\dimexpr.00390625\dimexpr\number#1sp\relax\relax + \fi + \expandafter\HyPsd@unichar@second@byte\expandafter{% + \number + \numexpr#1-256*\number + \dimexpr.00390625\dimexpr\number#1sp\relax\relax\relax + }% + \fi + \fi + \else + .% unsupported (Unicode -> PDF Doc Encoding) + \fi + }% + \def\HyPsd@UnicodeReplacementCharacter{\9377\375}% + \def\HyPsd@unichar@first@byte#1{% + \number\dimexpr.015625\dimexpr#1sp\relax\relax + \expandafter\HyPsd@unichar@octtwo\expandafter{% + \number + \numexpr#1-64*\number\dimexpr.015625\dimexpr#1sp% + \relax\relax\relax + }% + }% + \def\HyPsd@unichar@second@byte#1{% + \csname\number\dimexpr.015625\dimexpr#1sp\relax\relax\endcsname + \expandafter\HyPsd@unichar@octtwo\expandafter{% + \number + \numexpr#1-64*\number\dimexpr.015625\dimexpr#1sp% + \relax\relax\relax + }% + }% + \def\HyPsd@unichar@octtwo#1{% + \number\dimexpr.125\dimexpr#1sp\relax\relax + \number\numexpr#1-8*\number\dimexpr.125\dimexpr#1sp% + \relax\relax\relax + }% +% \end{macrocode} +% \begin{macrocode} +\fi +% \end{macrocode} +% +% \begin{macro}{\HyPsd@utf@viii@undeferr} +% \cs{utf@viii@undeferr} comes from file |utf8x.def| from +% package |ucs|. +% \begin{macrocode} +\def\HyPsd@utf@viii@undeferr#1#2#3#4#5#6{% + \ifx\@gobble#1% + \else + [Please insert \textbackslash PrerenderUnicode% + \textbraceleft#1\textbraceright\space + into preamble]% + \fi +}% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Support for die faces (ifsym et. al.)} +% +% \begin{macro}{\HyPsd@DieFace} +% Die faces are provided by +% \begin{quote} +% \begin{tabular}{@{}ll@{}} +% Package & Macro\\ +% \hline +% ifsym & \cs{Cube}\\ +% epsdice & \cs{epsdice}\\ +% hhcount & \cs{fcdice} +% \end{tabular} +% \end{quote} +% \cs{Cube} and \cs{epsdice} restrict the range to the +% numbers one to six. \cs{fcdice} generates for larger numbers +% several dice faces with the sum matching the number. +% The implementation for the PDF strings follows \cs{fcdice}. +% \begin{macrocode} +\def\HyPsd@DieFace#1{% + \ifHy@unicode + \ifnum#1<1 % + \HyPsd@UnicodeReplacementCharacter + \else + \ifnum#1>6 % + \9046\205% + \expandafter\expandafter\expandafter + \HyPsd@DieFaceLarge\intcalcSub{#1}{6}!% + \else + \9046\20\intcalcDec{#1}% + \fi + \fi + \else + .% Die faces are not part of PDFDocEncoding + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@DieFaceLarge} +% \begin{macrocode} +\def\HyPsd@DieFaceLarge#1!{% + \ifnum#1>6 % + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + {% + \9046\205% + \expandafter\expandafter\expandafter + \HyPsd@DieFaceLarge\IntCalcSub#1!6!!% + }{% + \9046\20\IntCalcDec#1!% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Support for moon phases of package china2e} +% +% \begin{macrocode} +\def\HyPsd@MoonPha#1{% + \ifcase\intcalcNum{#1} % + \HyPsd@UnicodeReplacementCharacter + \or % 1 +% U+1F31A NEW MOON WITH FACE; \MoonPha{1} (china2e) + \9330\074\9337\032% + \or % 2 + \HyPsd@UnicodeReplacementCharacter + \or % 3 +% U+1F31D FULL MOON WITH FACE; \MoonPha{3} (china2e) + \9330\074\9337\035% + \or % 4 +% U+1F31C LAST QUARTER MOON WITH FACE; \MoonPha{4} (china2e) + \9330\074\9337\034% + \else + \HyPsd@UnicodeReplacementCharacter + \fi +} +%* \HyPsd@MoonPha -> \MoonPha +% \end{macrocode} +% +% \subsubsection{Support for package pifont} +% +% \begin{macro}{\HyPsd@ding} +% \begin{macrocode} +\def\HyPsd@ding#1{% + \ifHy@unicode + \ifnum#1<32 % + \HyPsd@UnicodeReplacementCharacter + \else + \ifnum#1>254 % + \HyPsd@UnicodeReplacementCharacter + \else + \ifnum#1<127 % + \expandafter\expandafter\expandafter + \HyPsd@@ding\intcalcNum{#1}!% + \else + \ifnum#1>160 % + \expandafter\expandafter\expandafter + \HyPsd@@ding\intcalcNum{#1}!% + \else + \HyPsd@UnicodeReplacementCharacter + \fi + \fi + \fi + \fi + \else + .% Dingbats are not part of PDFDocEncoding + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPsd@@ding} +% \begin{macrocode} +\def\HyPsd@@ding#1!{% + \ltx@ifundefined{HyPsd@ding@#1}{% + \ifnum#1<127 % + \9047% + \HyPsd@DecimalToOctalSecond{\IntCalcSub#1!32!}% + \else + \ifnum#1<168 % + \9047\14\IntCalcSub#1!160!% + \else + \ifnum#1>181 % + \9047\HyPsd@DecimalToOctalSecond{\IntCalcSub#1!64!}% + \else + % 172..181 -> U+2460..U+2469 + \9044\HyPsd@DecimalToOctalSecond{\IntCalcSub#1!76!}% + \fi + \fi + \fi + }{% + \csname HyPsd@ding@#1\endcsname + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\@namedef{HyPsd@ding@32}{\space} +% U+260E BLACK TELEPHONE +\@namedef{HyPsd@ding@37}{\9046\016}% U+260E +% U+261B BLACK RIGHT POINTING INDEX +\@namedef{HyPsd@ding@42}{\9046\033}% U+261B +% U+261E WHITE RIGHT POINTING INDEX +\@namedef{HyPsd@ding@43}{\9046\036}% U+261E +% U+2605 BLACK STAR +\@namedef{HyPsd@ding@72}{\9046\005}% U+2605 +% U+25CF BLACK CIRCLE +\@namedef{HyPsd@ding@108}{\9045\317}% U+25CF +% U+25A0 BLACK SQUARE +\@namedef{HyPsd@ding@110}{\9045\240}% U+25A0 +% U+25B2 BLACK UP-POINTING TRIANGLE +\@namedef{HyPsd@ding@115}{\9045\262}% U+25B2 +% U+25BC BLACK DOWN-POINTING TRIANGLE +\@namedef{HyPsd@ding@116}{\9045\274}% U+25BC +% U+25C6 BLACK DIAMOND +\@namedef{HyPsd@ding@117}{\9045\306}% U+25C6 +% U+25D7 RIGHT HALF BLACK CIRCLE +\@namedef{HyPsd@ding@119}{\9045\327}% U+25D7 +\@namedef{HyPsd@ding@168}{\textclubsuitblack}% +\@namedef{HyPsd@ding@169}{\textdiamondsuitblack}% +\@namedef{HyPsd@ding@170}{\textheartsuitblack}% +\@namedef{HyPsd@ding@171}{\textspadesuitblack}% +\@namedef{HyPsd@ding@213}{\textrightarrow}% +\@namedef{HyPsd@ding@214}{\textleftrightarrow}% +\@namedef{HyPsd@ding@215}{\textupdownarrow}% +\@namedef{HyPsd@ding@240}{\HyPsd@UnicodeReplacementCharacter} +% \end{macrocode} +% +% \section{Support of other packages} +% +% \subsection{Class memoir} +% +% \begin{macrocode} +\@ifclassloaded{memoir}{% + \Hy@AtEndOfPackage{\RequirePackage{memhfixc}}% +}{} +% \end{macrocode} +% +% \subsection{Package subfigure} +% Added fix for version 2.1. Here \cmd{\sub@label} is defined. +% \begin{macrocode} +\@ifpackageloaded{subfigure}{% + \ltx@IfUndefined{sub@label}{% + \Hy@hypertexnamesfalse + }{% + \renewcommand*{\sub@label}[1]{% + \@bsphack + \subfig@oldlabel{#1}% + \if@filesw + \begingroup + \edef\@currentlabstr{% + \expandafter\strip@prefix\meaning\@currentlabelname + }% + \protected@write\@auxout{}{% + \string\newlabel{sub@#1}{% + {\@nameuse{@@thesub\@captype}}% + {\thepage}% + {% + \expandafter\strip@period\@currentlabstr + \relax.\relax\@@@% + }% + {\@currentHref}% + {}% + }% + }% + \endgroup + \fi + \@esphack + }% + \@ifpackagelater{subfigure}{2002/03/26}{}{% + \providecommand*{\toclevel@subfigure}{1}% + \providecommand*{\toclevel@subtable}{1}% + }% + }% +}{} +% \end{macrocode} +% +% \subsection{Package xr and xr-hyper} +% The beta version of xr that supports \cmd{\XR@addURL} is called +% \verb|xr-hyper|. Therefore we test for the macro itself and not +% for the package name: +% \begin{macrocode} +\ltx@IfUndefined{XR@addURL}{% +}{% +% \end{macrocode} +% If reading external aux files check whether they have a non zero +% fourth field in |\newlabel| and if so, add the URL as the fifth field. +% \begin{macrocode} + \def\XR@addURL#1{\XR@@dURL#1{}{}{}{}\\}% + \def\XR@@dURL#1#2#3#4#5\\{% + {#1}{#2}% + \if!#4!% + \else + {#3}{#4}{\XR@URL}% + \fi + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\Hy@true{true} +\def\Hy@false{false} +% \end{macrocode} +% +% Providing dummy definitions. +% \begin{macrocode} +\let\literalps@out\@gobble +\newcommand\pdfbookmark[3][]{} +\def\Acrobatmenu#1#2{\leavevmode#2} +\def\Hy@writebookmark#1#2#3#4#5{}% +% \end{macrocode} +% +% \section{Help macros for links} +% Anchors get created on the baseline of where they occur. If an +% XYZ PDF view is set, this means that the link places the top of the +% screen \emph{on the baseline} of the target. If this is an equation, +% for instance, it means that you cannot see anything. Some links, of +% course, are created at the start of environments, and so it works. To +% allow for this, anchors are raised, where possible, by some small +% amount. This defaults to |\baselineskip|, but users can set it to +% something else in two ways (thanks to Heiko Oberdiek for suggesting this): +% \begin{enumerate} +% \item Redefine |\HyperRaiseLinkDefault| to be eg the height of a |\strut| +% \item Redefine |\HyperRaiseLinkHook| to do something complicated; +% it must give a value to |\HyperRaiseLinkLength|, which is what +% actually gets used +% \end{enumerate} +% \begin{macrocode} +\let\HyperRaiseLinkHook\@empty +\def\HyperRaiseLinkDefault{\baselineskip} +% \end{macrocode} +% |\HyperRaiseLinkHook| allows the user to reassign +% |\HyperRaiseLinkLength|. +% \begin{macrocode} +\newcount\Hy@SavedSpaceFactor +\def\Hy@SaveSpaceFactor{% + \global\Hy@SavedSpaceFactor=\ifhmode\spacefactor\else\z@\fi +} +\def\Hy@RestoreSpaceFactor{% + \relax + \ifhmode + \ifnum\Hy@SavedSpaceFactor>\z@ + \spacefactor=\Hy@SavedSpaceFactor + \fi + \fi +} +\def\Hy@SaveSavedSpaceFactor{% + \edef\Hy@RestoreSavedSpaceFactor{% + \global\Hy@SavedSpaceFactor=\the\Hy@SavedSpaceFactor\relax + }% +} +\def\Hy@raisedlink#1{% + \ifvmode + #1% + \else + \Hy@SaveSpaceFactor + \penalty\@M + \smash{% + \begingroup + \let\HyperRaiseLinkLength\@tempdima + \setlength\HyperRaiseLinkLength\HyperRaiseLinkDefault + \HyperRaiseLinkHook + \expandafter\endgroup + \expandafter\raise\the\HyperRaiseLinkLength\hbox{% + \Hy@RestoreSpaceFactor + #1% + \Hy@SaveSpaceFactor + }% + }% + \Hy@RestoreSpaceFactor + \fi +} +% \end{macrocode} +% +% \begin{macro}{\Hy@SaveLastskip} +% \begin{macro}{\Hy@RestoreLastskip} +% Inserting a \cmd{\special} command to set a +% destination destroys the \cmd{\lastskip} value. +% +% \begin{macrocode} +\def\Hy@SaveLastskip{% + \let\Hy@RestoreLastskip\relax + \ifvmode + \ifdim\lastskip=\z@ + \let\Hy@RestoreLastskip\nobreak + \else + \begingroup + \skip@=-\lastskip + \edef\x{% + \endgroup + \def\noexpand\Hy@RestoreLastskip{% + \noexpand\ifvmode + \noexpand\nobreak + \vskip\the\skip@ + \vskip\the\lastskip\relax + \noexpand\fi + }% + }% + \x + \fi + \else + \ifhmode + \ifdim\lastskip=\z@ + \let\Hy@RestoreLastskip\nobreak + \else + \begingroup + \skip@=-\lastskip + \edef\x{% + \endgroup + \def\noexpand\Hy@RestoreLastskip{% + \noexpand\ifhmode + \noexpand\nobreak + \hskip\the\skip@ + \hskip\the\lastskip\relax + \noexpand\fi + }% + }% + \x + \fi + \fi + \fi +}% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \section{Options} +% +% \begin{macrocode} +\SetupKeyvalOptions{% + family=Hyp,% + prefix=HyOpt% +} +% \end{macrocode} +% +% \subsection{Help macros} +% +% \begin{macro}{\IfHyperBooleanExists} +% \begin{macrocode} +\def\IfHyperBooleanExists#1{% + \ltx@ifundefined{Hy@#1false}\ltx@secondoftwo{% + \ltx@ifundefined{KV@Hyp@#1@default}\ltx@secondoftwo\ltx@firstoftwo + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\@namedef{KV@Hyp@stoppedearly@default}{} +% \end{macrocode} +% +% \begin{macro}{\IfHyperBoolean} +% \begin{macrocode} +\def\IfHyperBoolean#1{% + \IfHyperBooleanExists{#1}{% + \csname ifHy@#1\endcsname + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + }\ltx@secondoftwo +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@boolkey} +% \begin{macrocode} +\def\Hy@boolkey#1#2{% + \edef\Hy@tempa{#2}% + \lowercase\expandafter{% + \expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}% + }% + \ifx\Hy@tempa\@empty + \let\Hy@tempa\Hy@true + \fi + \ifx\Hy@tempa\Hy@true + \else + \ifx\Hy@tempa\Hy@false + \else + \let\Hy@tempa\relax + \fi + \fi + \ifx\Hy@tempa\relax + \Hy@WarnOptionValue{#2}{#1}{`true' or 'false'}% + \else + \Hy@Info{Option `#1' set `\Hy@tempa'}% + \csname Hy@#1\Hy@tempa\endcsname + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@WarnOptionValue} +% \begin{macrocode} +\def\Hy@WarnOptionValue#1#2#3{% + \Hy@Warning{% + Unexpected value `#1'\MessageBreak + of option `#2' instead of\MessageBreak + #3% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@DisableOption} +% \begin{macrocode} +\def\Hy@realDisableOption#1{% + \ltx@ifundefined{KV@Hyp@#1@default}{% + \define@key{Hyp}{#1}% + }{% + \define@key{Hyp}{#1}[]% + }% + {\Hy@WarnOptionDisabled{#1}}% +} + +\def\Hy@DisableOption#1{% + \ifnum\currentgrouplevel>0 + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {% + \expandafter\gdef\csname Hy@smuggleout#1\endcsname{\Hy@DisableOption{#1}}% + \expandafter\aftergroup\csname Hy@smuggleout#1\endcsname + } + {\Hy@realDisableOption{#1}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@WarnOptionDisabled} +% \begin{macrocode} +\def\Hy@WarnOptionDisabled#1{% + \Hy@Warning{% + Option `#1' has already been used,\MessageBreak + setting the option has no effect% + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@CheckOptionValue} +% Some options take a string value out of a limited set of values. +% Macro \cs{Hy@CheckOptionValue} checks whether the given value |#1| +% for option |#2| is a member of the value list |#3|. +% \begin{macrocode} +\def\Hy@CheckOptionValue#1#2#3{% + \begingroup + \edef\x{#1}% + \@onelevel@sanitize\x + \let\y=y% + \def\do##1##2{% + \def\z{##1}% + \@onelevel@sanitize\z + \ifx\x\z + \let\y=n% + \let\do\@gobbletwo + \fi + }% + #3% + \ifx\y y% + \def\do##1##2{% + * `##1'% + \ifx\\##2\\\else\space(##2)\fi + \MessageBreak + }% + \Hy@Warning{% + Values of option `#2':\MessageBreak + #3% + * An empty value disables the option.\MessageBreak + Unknown value `\x'% + }% + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@DefNameKey} +% \noindent +% |#1|: option name\\ +% |#2|: \cs{do} list with known values, first +% argument of \cs{do} is value, second argument is a comment. +% \begin{macrocode} +\def\Hy@DefNameKey#1{% + \expandafter\Hy@@DefNameKey\csname @#1\endcsname{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@@DefNameKey} +% \noindent +% |#1|: macro for value storage\\ +% |#2|: option name\\ +% |#3|: \cs{do} list with known values. +% \begin{macrocode} +\def\Hy@@DefNameKey#1#2#3{% + \define@key{Hyp}{#2}{% + \edef#1{##1}% + \ifx#1\@empty + \else + \Hy@CheckOptionValue{##1}{#2}{#3}% + \fi + }% + \let#1\@empty +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@UseNameKey} +% \begin{macrocode} +\def\Hy@UseNameKey#1#2{% + \ifx#2\@empty + \else + /#1/#2% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Defining the options} +% \begin{macrocode} +\define@key{Hyp}{implicit}[true]{% + \Hy@boolkey{implicit}{#1}% +} +\define@key{Hyp}{draft}[true]{% + \Hy@boolkey{draft}{#1}% +} +\define@key{Hyp}{final}[true]{% + \Hy@boolkey{final}{#1}% +} +\let\KV@Hyp@nolinks\KV@Hyp@draft +% \end{macrocode} +% \begin{macrocode} +\def\Hy@ObsoletePaperOption#1{% + \Hy@WarningNoLine{% + Option `#1' is no longer used% + }% + \define@key{Hyp}{#1}[true]{}% +} +\def\Hy@temp#1{% + \define@key{Hyp}{#1}[true]{% + \Hy@ObsoletePaperOption{#1}% + }% +} +\Hy@temp{a4paper} +\Hy@temp{a5paper} +\Hy@temp{b5paper} +\Hy@temp{letterpaper} +\Hy@temp{legalpaper} +\Hy@temp{executivepaper} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{setpagesize}[true]{% + \Hy@boolkey{setpagesize}{#1}% +} +\define@key{Hyp}{debug}[true]{% + \Hy@boolkey{debug}{#1}% +} +\define@key{Hyp}{linktocpage}[true]{% + \Hy@boolkey{linktocpage}{#1}% + \ifHy@linktocpage + \let\Hy@linktoc\Hy@linktoc@page + \else + \let\Hy@linktoc\Hy@linktoc@section + \fi +} +\chardef\Hy@linktoc@none=0 % +\chardef\Hy@linktoc@section=1 % +\chardef\Hy@linktoc@page=2 % +\chardef\Hy@linktoc@all=3 % +\ifHy@linktocpage + \let\Hy@linktoc\Hy@linktoc@page +\else + \let\Hy@linktoc\Hy@linktoc@section +\fi +\define@key{Hyp}{linktoc}{% + \@ifundefined{Hy@linktoc@#1}{% + \Hy@Warning{% + Unexpected value `#1' of\MessageBreak + option `linktoc' instead of `none',\MessageBreak + `section', `page' or `all'% + }% + }{% + \expandafter\let\expandafter\Hy@linktoc + \csname Hy@linktoc@#1\endcsname + }% +} +\define@key{Hyp}{extension}{\def\XR@ext{#1}} +\let\XR@ext\relax +\define@key{Hyp}{verbose}[true]{% + \Hy@boolkey{verbose}{#1}% +} +\define@key{Hyp}{typexml}[true]{% + \Hy@boolkey{typexml}{#1}% +} +% \end{macrocode} +% If we are going to PDF via HyperTeX |\special| commands, +% the dvips (-z option) processor does not know +% the \emph{height} of a link, as it works solely on the +% position of the closing |\special|. If we use this option, +% the |\special| is raised up by the right amount, to fool +% the dvi processor. +% \begin{macrocode} +\define@key{Hyp}{raiselinks}[true]{% + \Hy@boolkey{raiselinks}{#1}% +} +% \end{macrocode} +% Most PDF-creating drivers do not allow links to be broken +% \begin{macrocode} +\def\Hy@setbreaklinks#1{% + \csname breaklinks#1\endcsname +} +% \end{macrocode} +% \begin{macrocode} +\def\Hy@breaklinks@unsupported{% + \ifx\Hy@setbreaklinks\@gobble + \ifHy@breaklinks + \Hy@WarningNoLine{% + You have enabled option `breaklinks'.\MessageBreak + But driver `\Hy@driver.def' does not suppport this.\MessageBreak + Expect trouble with the link areas of broken links% + }% + \fi + \fi +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{breaklinks}[true]{% + \Hy@boolkey{breaklinks}{#1}% + \let\Hy@setbreaklinks\@gobble +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{localanchorname}[true]{% + \Hy@boolkey{localanchorname}{#1}% +} +% \end{macrocode} +% Determines whether an automatic anchor is put on each page +% \begin{macrocode} +\define@key{Hyp}{pageanchor}[true]{% + \Hy@boolkey{pageanchor}{#1}% +} +% \end{macrocode} +% Are the page links done as plain arabic numbers, or do +% they follow the formatting of the package? The latter loses +% if you put in typesetting like |\textbf| or the like. +% \begin{macrocode} +\define@key{Hyp}{plainpages}[true]{% + \Hy@boolkey{plainpages}{#1}% +} +% \end{macrocode} +% Are the names for anchors made as per the HyperTeX system, +% or do they simply use what \LaTeX\ provides? +% \begin{macrocode} +\define@key{Hyp}{naturalnames}[true]{% + \Hy@boolkey{naturalnames}{#1}% +} +% \end{macrocode} +% Completely ignore the names as per the HyperTeX system, +% and use unique counters. +% \begin{macrocode} +\define@key{Hyp}{hypertexnames}[true]{% + \Hy@boolkey{hypertexnames}{#1}% +} +% \end{macrocode} +% Currently, |dvips| doesn't allow anchors nested within targets, +% so this option tries to stop that happening. Other processors +% may be able to cope. +% \begin{macrocode} +\define@key{Hyp}{nesting}[true]{% + \Hy@boolkey{nesting}{#1}% +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{destlabel}[true]{% + \Hy@boolkey{destlabel}{#1}% +} +% \end{macrocode} +% +% \begin{macrocode} +\define@key{Hyp}{unicode}[true]{% + \Hy@boolkey{unicode}{#1}% + \ifHy@unicode + \def\HyPsd@pdfencoding{unicode}% + \HyPsd@LoadUnicode + \else + \def\HyPsd@pdfencoding{pdfdoc}% + \fi +} +\Hy@AtBeginDocument{% + \ifx\HyPsd@LoadUnicode\relax + \else + \def\HyPsd@LoadUnicode{% + \Hy@Error{% + Unicode support for bookmarks is not available.\MessageBreak + Activate unicode support by using one of the options\MessageBreak + `unicode', `pdfencoding=unicode', `pdfencoding=auto'\MessageBreak + in the preamble% + }\@ehc + \global\let\HyPsd@LoadUnicode\relax + \global\Hy@unicodefalse + \global\let\Hy@unicodetrue\Hy@unicodefalse + }% + \fi +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{pdfencoding}{% + \edef\HyPsd@temp{#1}% + \ifx\HyPsd@temp\HyPsd@pdfencoding@pdfdoc + \let\HyPsd@pdfencoding\HyPsd@temp + \Hy@unicodefalse + \else + \ifcase\ifx\HyPsd@temp\HyPsd@pdfencoding@unicode + \z@ + \else + \ifx\HyPsd@temp\HyPsd@pdfencoding@auto + \z@ + \else + \@ne + \fi + \fi + \let\HyPsd@pdfencoding\HyPsd@temp + \hypersetup{unicode}% + \ifHy@unicode + \def\HyPsd@pdfencoding{#1}% + \ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@auto + \HyPsd@LoadStringEnc + \fi + \else + \Hy@Warning{Cannot switch to unicode bookmarks}% + \let\HyPsd@pdfencoding\HyPsd@pdfencoding@pdfdoc + \fi + \else + \@onelevel@sanitize\HyPsd@temp + \Hy@Warning{% + Values of option `pdfencoding':\MessageBreak + `pdfdoc', `unicode', `auto'.\MessageBreak + Ignoring unknown value `\HyPsd@temp'% + }% + \fi + \fi +} +\def\HyPsd@pdfencoding@auto{auto} +\def\HyPsd@pdfencoding@pdfdoc{pdfdoc} +\def\HyPsd@pdfencoding@unicode{unicode} +\let\HyPsd@pdfencoding\Hy@pdfencoding@pdfdoc +\def\HyPsd@LoadStringEnc{% + \RequirePackage{stringenc}[2009/12/15]% + \let\HyPsd@LoadStringEnc\relax +} +\Hy@AtBeginDocument{% + \@ifpackageloaded{stringenc}{% + \let\HyPsd@LoadStringEnc\relax + }{% + \def\HyPsd@LoadStringEnc{% + \Hy@WarningNoLine{% + Missing package `stringenc'. Use `pdfencoding=auto'\MessageBreak + in the preamble or load the package there% + }% + }% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\define@key{Hyp}{psdextra}[true]{% + \Hy@boolkey{psdextra}{#1}% + \HyPsd@LoadExtra +} +% \end{macrocode} +% +% \begin{macrocode} +\def\hypersetup{\kvsetkeys{Hyp}} +% \end{macrocode} +% +% \begin{macrocode} +\newif\ifHy@setpdfversion +\define@key{Hyp}{pdfversion}{% + \@ifundefined{Hy@pdfversion@#1}{% + \PackageWarning{hyperref}{% + Unsupported PDF version `#1'.\MessageBreak + Valid values: 1.2 until 1.9% + }% + }{% + \Hy@setpdfversiontrue + \edef\Hy@pdfversion{\@nameuse{Hy@pdfversion@#1}}% + }% +} +\@namedef{Hy@pdfversion@1.2}{2}% +\@namedef{Hy@pdfversion@1.3}{3}% +\@namedef{Hy@pdfversion@1.4}{4}% +\@namedef{Hy@pdfversion@1.5}{5}% +\@namedef{Hy@pdfversion@1.6}{6}% +\@namedef{Hy@pdfversion@1.7}{7}% +\@namedef{Hy@pdfversion@1.8}{8}% +\@namedef{Hy@pdfversion@1.9}{9}% +\def\Hy@pdfversion{5} +% \end{macrocode} +% +% \section{Options for different drivers}\label{drivers} +% +% \begin{macrocode} +\newif\ifHy@DviMode +\let\Hy@DviErrMsg\ltx@empty +\ifpdf + \def\Hy@DviErrMsg{pdfTeX or LuaTeX is running in PDF mode}% +\else + \ifxetex + \def\Hy@DviErrMsg{XeTeX is running}% + \else + \ifvtex + \ifvtexdvi + \Hy@DviModetrue + \else + \def\Hy@DviErrMsg{VTeX is running, but not in DVI mode}% + \fi + \else + \Hy@DviModetrue + \fi + \fi +\fi +\def\HyOpt@CheckDvi#1{% + \ifHy@DviMode + \expandafter\ltx@firstofone + \else + \Hy@Error{% + Wrong DVI mode driver option `#1',\MessageBreak + because \Hy@DviErrMsg + }\@ehc + \expandafter\ltx@gobble + \fi +} +% \end{macrocode} +% \begin{macrocode} +\DeclareVoidOption{tex4ht}{% + \Hy@texhttrue + \kvsetkeys{Hyp}{colorlinks=true}% + \def\BeforeTeXIVht{\RequirePackage{color}}% + \def\Hy@driver{htex4ht}% + \def\MaybeStopEarly{% + \Hy@Message{Stopped early}% + \Hy@AtBeginDocument{% + \PDF@FinishDoc + \gdef\PDF@FinishDoc{}% + }% + \endinput + }% +} +\DeclareVoidOption{pdftex}{% + \ifpdf + \def\Hy@driver{hpdftex}% + \PassOptionsToPackage{pdftex}{color}% + \else + \Hy@Error{% + Wrong driver option `pdftex',\MessageBreak + because pdfTeX in PDF mode is not detected% + }\@ehc + \fi +} +\DeclareVoidOption{luatex}{% + \ifpdf + \ifx\pdfextension\@undefined + \def\Hy@driver{hpdftex}% + \PassOptionsToPackage{pdftex}{color}% + \else + \def\Hy@driver{hluatex}% + \PassOptionsToPackage{luatex}{color}% + \fi + \else + \Hy@Error{% + Wrong driver option `luatex',\MessageBreak + because luaTeX in PDF mode is not detected% + }\@ehc + \fi +} +\DeclareVoidOption{nativepdf}{% + \HyOpt@CheckDvi{nativepdf}{% + \def\Hy@driver{hdvips}% + \PassOptionsToPackage{dvips}{color}% + }% +} +\DeclareVoidOption{dvipdfm}{% + \HyOpt@CheckDvi{dvipdfm}{% + \def\Hy@driver{hdvipdfm}% + }% +} +\DeclareVoidOption{dvipdfmx}{% + \HyOpt@CheckDvi{dvipdfmx}{% + \def\Hy@driver{hdvipdfm}% + \PassOptionsToPackage{dvipdfmx}{color}% + }% +} +\define@key{Hyp}{dvipdfmx-outline-open}[true]{% + \expandafter\ifx\csname if#1\expandafter\endcsname + \csname iftrue\endcsname + \chardef\SpecialDvipdfmxOutlineOpen\@ne + \else + \chardef\SpecialDvipdfmxOutlineOpen\z@ + \fi +} +\DeclareVoidOption{xetex}{% + \ifxetex + \def\Hy@driver{hxetex}% + \else + \Hy@Error{% + Wrong driver option `xetex',\MessageBreak + because XeTeX is not detected% + }\@ehc + \fi +} +\DeclareVoidOption{pdfmark}{% + \HyOpt@CheckDvi{pdfmark}{% + \def\Hy@driver{hdvips}% + }% +} +\DeclareVoidOption{dvips}{% + \HyOpt@CheckDvi{dvips}{% + \def\Hy@driver{hdvips}% + \PassOptionsToPackage{dvips}{color}% + }% +} +\DeclareVoidOption{hypertex}{% + \HyOpt@CheckDvi{hypertex}{% + \def\Hy@driver{hypertex}% + }% +} +\let\Hy@MaybeStopNow\relax +\DeclareVoidOption{vtex}{% + \ifvtex + \ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 % + \def\Hy@driver{hvtex}% + \else + \ifnum\OpMode=10\relax + \def\Hy@driver{hvtexhtm}% + \def\MaybeStopEarly{% + \Hy@Message{Stopped early}% + \Hy@AtBeginDocument{% + \PDF@FinishDoc + \gdef\PDF@FinishDoc{}% + }% + \endinput + }% + \else + \Hy@Error{% + Wrong driver option `vtex',\MessageBreak + because of wrong OpMode (\the\OpMode)% + }\@ehc + \fi + \fi + \else + \Hy@Error{% + Wrong driver option `vtex',\MessageBreak + because VTeX is not running% + }\@ehc + \fi +} +\DeclareVoidOption{vtexpdfmark}{% + \ifvtex + \ifnum 0\ifnum\OpMode<1 1\fi \ifnum\OpMode>3 1\fi =0 % + \def\Hy@driver{hvtexmrk}% + \else + \Hy@Error{% + Wrong driver option `vtexpdfmark',\MessageBreak + because of wrong OpMode (\the\OpMode)% + }\@ehc + \fi + \else + \Hy@Error{% + Wrong driver option `vtexpdfmark,\MessageBreak + because VTeX is not running% + }\@ehc + \fi +} +\DeclareVoidOption{dviwindo}{% + \HyOpt@CheckDvi{dviwindo}{% + \def\Hy@driver{hdviwind}% + \kvsetkeys{Hyp}{colorlinks}% + \PassOptionsToPackage{dviwindo}{color}% + }% +} +\DeclareVoidOption{dvipsone}{% + \HyOpt@CheckDvi{dvipsone}{% + \def\Hy@driver{hdvipson}% + \PassOptionsToPackage{dvipsone}{color}% + }% +} +\DeclareVoidOption{textures}{% + \HyOpt@CheckDvi{textures}{% + \def\Hy@driver{htexture}% + }% +} +\DeclareVoidOption{latex2html}{% + \HyOpt@CheckDvi{latex2html}{% + \Hy@AtBeginDocument{\@@latextohtmlX}% + }% +} +% \end{macrocode} +% No more special treatment for ps2pdf. Let it sink or swim. +% \begin{macrocode} +\DeclareVoidOption{ps2pdf}{% + \HyOpt@CheckDvi{ps2pdf}{% + \def\Hy@driver{hdvips}% + \PassOptionsToPackage{dvips}{color}% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\let\HyOpt@DriverFallback\ltx@empty +\define@key{Hyp}{driverfallback}{% + \ifHy@DviMode + \def\HyOpt@DriverFallback{#1}% + \Hy@Match\HyOpt@DriverFallback{}{% + ^(|dvipdfm|dvipdfmx|dvips|dvipsone|dviwindo|hypertex|ps2pdf|% + latex2html|tex4ht)$% + }{}{% + \Hy@Warning{% + Invalid driver `#1' for option\MessageBreak + `driverfallback'% + }% + \let\HyOpt@DriverFallback\ltx@empty + }% + \fi +} +% \end{macrocode} +% +% \begin{macrocode} +\let\HyOpt@CustomDriver\ltx@empty +\define@key{Hyp}{customdriver}{% + \IfFileExists{#1.def}{% + \def\HyOpt@CustomDriver{#1}% + }{% + \Hy@Warning{% + Missing driver file `#1.def',\MessageBreak + ignoring custom driver% + }% + }% +} +% \end{macrocode} +% +% \section{Options to add extra features}\label{features} +% Make included figures (assuming they use the standard graphics +% package) be hypertext links. Off by default. Needs more work. +% \begin{macrocode} +\define@key{Hyp}{hyperfigures}[true]{% + \Hy@boolkey{hyperfigures}{#1}% +} +% \end{macrocode} +% +% The automatic footnote linking can be disabled +% by option hyperfootnotes. +% \begin{macrocode} +\define@key{Hyp}{hyperfootnotes}[true]{% + \Hy@boolkey{hyperfootnotes}{#1}% +} +% \end{macrocode} +% +% Set up back-referencing to be hyper links, by page, +% slide or section number, +% \begin{macrocode} +\def\back@none{none} +\def\back@section{section} +\def\back@page{page} +\def\back@slide{slide} +\define@key{Hyp}{backref}[section]{% + \lowercase{\def\Hy@tempa{#1}}% + \ifx\Hy@tempa\@empty + \let\Hy@tempa\back@section + \fi + \ifx\Hy@tempa\Hy@false + \let\Hy@tempa\back@none + \fi + \ifx\Hy@tempa\back@slide + \let\Hy@tempa\back@section + \fi + \ifx\Hy@tempa\back@page + \PassOptionsToPackage{hyperpageref}{backref}% + \Hy@backreftrue + \else + \ifx\Hy@tempa\back@section + \PassOptionsToPackage{hyperref}{backref}% + \Hy@backreftrue + \else + \ifx\Hy@tempa\back@none + \Hy@backreffalse + \else + \Hy@WarnOptionValue{#1}{backref}{% + `section', `slide', `page', `none',\MessageBreak + or `false'}% + \fi + \fi + \fi +} +\define@key{Hyp}{pagebackref}[true]{% + \edef\Hy@tempa{#1}% + \lowercase\expandafter{% + \expandafter\def\expandafter\Hy@tempa\expandafter{\Hy@tempa}% + }% + \ifx\Hy@tempa\@empty + \let\Hy@tempa\Hy@true + \fi + \ifx\Hy@tempa\Hy@true + \PassOptionsToPackage{hyperpageref}{backref}% + \Hy@backreftrue + \else + \ifx\Hy@tempa\Hy@false + \Hy@backreffalse + \else + \Hy@WarnOptionValue{#1}{pagebackref}{`true' or `false'}% + \fi + \fi +} +% \end{macrocode} +% Make index entries be links back to the relevant pages. By default +% this is turned on, but may be stopped. +% \begin{macrocode} +\define@key{Hyp}{hyperindex}[true]{% + \Hy@boolkey{hyperindex}{#1}% +} +% \end{macrocode} +% Configuration of encap char. +% \begin{macrocode} +\define@key{Hyp}{encap}[\|]{% + \def\HyInd@EncapChar{#1}% +} +% \end{macrocode} +% +% \section{Language options} +% +% The \cmd{\autoref} feature depends on the language. +% \begin{macrocode} +\def\HyLang@afrikaans{% + \def\equationautorefname{Vergelyking}% + \def\footnoteautorefname{Voetnota}% + \def\itemautorefname{Item}% + \def\figureautorefname{Figuur}% + \def\tableautorefname{Tabel}% + \def\partautorefname{Deel}% + \def\appendixautorefname{Bylae}% + \def\chapterautorefname{Hoofstuk}% + \def\sectionautorefname{Afdeling}% + \def\subsectionautorefname{Subafdeling}% + \def\subsubsectionautorefname{Subsubafdeling}% + \def\paragraphautorefname{Paragraaf}% + \def\subparagraphautorefname{Subparagraaf}% + \def\FancyVerbLineautorefname{Lyn}% + \def\theoremautorefname{Teorema}% + \def\pageautorefname{Bladsy}% +} +\def\HyLang@english{% + \def\equationautorefname{Equation}% + \def\footnoteautorefname{footnote}% + \def\itemautorefname{item}% + \def\figureautorefname{Figure}% + \def\tableautorefname{Table}% + \def\partautorefname{Part}% + \def\appendixautorefname{Appendix}% + \def\chapterautorefname{chapter}% + \def\sectionautorefname{section}% + \def\subsectionautorefname{subsection}% + \def\subsubsectionautorefname{subsubsection}% + \def\paragraphautorefname{paragraph}% + \def\subparagraphautorefname{subparagraph}% + \def\FancyVerbLineautorefname{line}% + \def\theoremautorefname{Theorem}% + \def\pageautorefname{page}% +} +\def\HyLang@french{% + \def\equationautorefname{\'Equation}% + \def\footnoteautorefname{note}% + \def\itemautorefname{item}% + \def\figureautorefname{Figure}% + \def\tableautorefname{Tableau}% + \def\partautorefname{Partie}% + \def\appendixautorefname{Appendice}% + \def\chapterautorefname{chapitre}% + \def\sectionautorefname{section}% + \def\subsectionautorefname{sous-section}% + \def\subsubsectionautorefname{sous-sous-section}% + \def\paragraphautorefname{paragraphe}% + \def\subparagraphautorefname{sous-paragraphe}% + \def\FancyVerbLineautorefname{ligne}% + \def\theoremautorefname{Th\'eor\`eme}% + \def\pageautorefname{page}% +} +\def\HyLang@german{% + \def\equationautorefname{Gleichung}% + \def\footnoteautorefname{Fu\ss note}% + \def\itemautorefname{Punkt}% + \def\figureautorefname{Abbildung}% + \def\tableautorefname{Tabelle}% + \def\partautorefname{Teil}% + \def\appendixautorefname{Anhang}% + \def\chapterautorefname{Kapitel}% + \def\sectionautorefname{Abschnitt}% + \def\subsectionautorefname{Unterabschnitt}% + \def\subsubsectionautorefname{Unterunterabschnitt}% + \def\paragraphautorefname{Absatz}% + \def\subparagraphautorefname{Unterabsatz}% + \def\FancyVerbLineautorefname{Zeile}% + \def\theoremautorefname{Theorem}% + \def\pageautorefname{Seite}% +} +\def\HyLang@italian{% + \def\equationautorefname{Equazione}% + \def\footnoteautorefname{nota}% + \def\itemautorefname{punto}% + \def\figureautorefname{Figura}% + \def\tableautorefname{Tabella}% + \def\partautorefname{Parte}% + \def\appendixautorefname{Appendice}% + \def\chapterautorefname{Capitolo}% + \def\sectionautorefname{sezione}% + \def\subsectionautorefname{sottosezione}% + \def\subsubsectionautorefname{sottosottosezione}% + \def\paragraphautorefname{paragrafo}% + \def\subparagraphautorefname{sottoparagrafo}% + \def\FancyVerbLineautorefname{linea}% + \def\theoremautorefname{Teorema}% + \def\pageautorefname{Pag.\@}% +} +\def\HyLang@magyar{% + \def\equationautorefname{Egyenlet}% + \def\footnoteautorefname{l\'abjegyzet}% + \def\itemautorefname{Elem}% + \def\figureautorefname{\'Abra}% + \def\tableautorefname{T\'abl\'azat}% + \def\partautorefname{R\'esz}% + \def\appendixautorefname{F\"uggel\'ek}% + \def\chapterautorefname{fejezet}% + \def\sectionautorefname{szakasz}% + \def\subsectionautorefname{alszakasz}% + \def\subsubsectionautorefname{alalszakasz}% + \def\paragraphautorefname{bekezd\'es}% + \def\subparagraphautorefname{albekezd\'es}% + \def\FancyVerbLineautorefname{sor}% + \def\theoremautorefname{T\'etel}% + \def\pageautorefname{oldal}% +} +\def\HyLang@portuges{% + \def\equationautorefname{Equa\c c\~ao}% + \def\footnoteautorefname{Nota de rodap\'e}% + \def\itemautorefname{Item}% + \def\figureautorefname{Figura}% + \def\tableautorefname{Tabela}% + \def\partautorefname{Parte}% + \def\appendixautorefname{Ap\^endice}% + \def\chapterautorefname{Cap\'itulo}% + \def\sectionautorefname{Se\c c\~ao}% + \def\subsectionautorefname{Subse\c c\~ao}% + \def\subsubsectionautorefname{Subsubse\c c\~ao}% + \def\paragraphautorefname{par\'agrafo}% + \def\subparagraphautorefname{subpar\'agrafo}% + \def\FancyVerbLineautorefname{linha}% + \def\theoremautorefname{Teorema}% + \def\pageautorefname{P\'agina}% +} +% \end{macrocode} +% +% Next commented section for Russian is provided by Olga Lapko. +% +% Next follow the checked reference names with commented variants and +% explanations. All they are abbreviated and they won't create a +% grammatical problems in the \emph{middle} of sentences. +% +% The most weak points in these abbreviations are the +% |\equationautorefname|, |\theoremautorefname| and the +% |\FancyVerbLineautorefname|. But those three, and also the +% |\footnoteautorefname| are not \emph{too} often referenced. +% Another rather weak point is the |\appendixautorefname|. +% \begin{macrocode} +\def\HyLang@russian{% +% \end{macrocode} +% The abbreviated reference to the equation: +% it is not for ``the good face of the book'', but maybe it will be +% better to get the company for the |\theoremautorefname|? +% \begin{macrocode} + \def\equationautorefname{\cyr\cyrv\cyrery\cyrr.}% +% \end{macrocode} +% The name of the equation reference has common form for both +% nominative and accusative but changes in other forms, like +% ``of |\autoref{auto}|'' etc. The full name must follow full +% name of the |\theoremautorefname|. +% \begin{macrocode} +% \def\equationautorefname{% +% \cyr\cyrv\cyrery\cyrr\cyra\cyrzh\cyre\cyrn\cyri\cyre +% }% +% \end{macrocode} +% +% The variant of footnote has abbreviation form of the synonym +% of the word ``footnote''. This variant of abbreviated synonym +% has alternative status (maybe obsolete?). +% \begin{macrocode} + \def\footnoteautorefname{% + \cyr\cyrp\cyro\cyrd\cyrs\cyrt\cyrr.\ \cyrp\cyrr\cyri\cyrm.% + }% +% \end{macrocode} +% Commented form of the full synonym for ``footnote''. +% It has common form for both nominative and accusative but +% changes in other forms, like ``of |\autoref{auto}|'' +% \begin{macrocode} +% \def\footnoteautorefname{% +% \cyr\cyrp\cyro\cyrd\cyrs\cyrt\cyrr\cyro\cyrch\cyrn\cyro\cyre\ % +% \cyrp\cyrr\cyri\cyrm\cyre\cyrch\cyra\cyrn\cyri\cyre +% }% +% \end{macrocode} +% Commented forms of the ``footnote'': have different forms, the +% same is for the nominative and accusative. (The others needed?) +% \begin{macrocode} +% \def\Nomfootnoteautorefname{\cyr\cyrs\cyrn\cyro\cyrs\cyrk\cyra}% +% \def\Accfootnoteautorefname{\cyr\cyrs\cyrn\cyro\cyrs\cyrk\cyru}% +% \end{macrocode} +% +% Name of the list item, can be confused with the paragraph +% reference name, but reader could understand meaning from context(?). +% Commented variant has common form for both nominative and accusative +% but changes in other forms, like ``of |\autoref{auto}|'' etc. +% \begin{macrocode} + \def\itemautorefname{\cyr\cyrp.}% +% \def\itemautorefname{\cyr\cyrp\cyru\cyrn\cyrk\cyrt}% +% \end{macrocode} +% +% Names of the figure and table have stable (standard) abbreviation +% forms. No problem in the middle of sentence. +% \begin{macrocode} + \def\figureautorefname{\cyr\cyrr\cyri\cyrs.}% + \def\tableautorefname{\cyr\cyrt\cyra\cyrb\cyrl.}% +% \end{macrocode} +% +% Names of the part, chapter, section(s) have stable (standard) +% abbreviation forms. No problem in the middle of sentence. +% \begin{macrocode} + \def\partautorefname{\cyr\cyrch.}% + \def\chapterautorefname{\cyr\cyrg\cyrl.}% + \def\sectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}% +% \end{macrocode} +% +% Name of the appendix can use this abbreviation, but it is not +% standard for books, i.e, not for ``the good face of the book''. +% Commented variant has common form for both nominative and +% accusative but changes in other forms, like ``of +% |\autoref{auto}|'' etc. +% \begin{macrocode} + \def\appendixautorefname{\cyr\cyrp\cyrr\cyri\cyrl.}% +% \def\appendixautorefname{% +% \cyr\cyrp\cyrr\cyri\cyrl\cyro\cyrzh\cyre\cyrn\cyri\cyre +% }% +% \end{macrocode} +% +% The sectioning command have stable (almost standard) and common +% abbreviation form for all levels (the meaning of these references +% visible from the section number). No problem. +% \begin{macrocode} + \def\subsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}% + \def\subsubsectionautorefname{\cyr\cyrr\cyra\cyrz\cyrd.}% +% \end{macrocode} +% +% The names of references to paragraphs also have stable +% (almost standard) and common abbreviation form for all +% levels (the meaning of these references is visible from +% the section number). No problem in the middle of sentence. +% \begin{macrocode} + \def\paragraphautorefname{\cyr\cyrp.}% + \def\subparagraphautorefname{\cyr\cyrp.}% +% \end{macrocode} +% Commented variant can be used in books but since it +% has common form for both nominative and accusative but it +% changes in other forms, like ``of |\autoref{auto}|'' etc. +% \begin{macrocode} +% \def\paragraphautorefname{\cyr\cyrp\cyru\cyrn\cyrk\cyrt}% +% \def\subparagraphautorefname{\cyr\cyrp\cyru\cyrn\cyrk\cyrt}% +% \end{macrocode} +% +% The name of verbatim line. Here could be a standard of the +% abbreviation (used very rare). But the author preprint +% publications (which have not any editor or corrector) +% can use this abbreviation for the page reference. So the +% meaning of the line reference can be read as reference to +% the page. +% \begin{macrocode} + \def\FancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr.}% +% \end{macrocode} +% Commented names of the ``verbatim line'': have different forms, +% also the nominative and accusative. +% \begin{macrocode} +% \def\NomFancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr\cyro\cyrk\cyra}% +% \def\AccFancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr\cyro\cyrk\cyru}% +% \end{macrocode} +% The alternative, ve-e-e-ery professional abbreviation, +% was used in typography markup for typesetters. +% \begin{macrocode} +% \def\FancyVerbLineautorefname{\cyr\cyrs\cyrt\cyrr\cyrk.}% +% \end{macrocode} +% +% The names of theorem: if we want have ``the good face of +% the book'', so the theorem reference must have the full name +% (like equation reference). But \ldots +% \begin{macrocode} + \def\theoremautorefname{\cyr\cyrt\cyre\cyro\cyrr.}% +% \end{macrocode} +% Commented forms of the ``theorem'': have different forms, also +% the nominative and accusative. +% \begin{macrocode} +% \def\Nomtheoremautorefname{\cyr\cyrt\cyre\cyro\cyrr\cyre\cyrm\cyra}% +% \def\Acctheoremautorefname{\cyr\cyrt\cyre\cyro\cyrr\cyre\cyrm\cyru}% +% \end{macrocode} +% +% Name of the page stable (standard) abbreviation form. No problem. +% \begin{macrocode} + \def\pageautorefname{\cyr\cyrs.}% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\HyLang@spanish{% + \def\equationautorefname{Ecuaci\'on}% + \def\footnoteautorefname{Nota a pie de p\'agina}% + \def\itemautorefname{Elemento}% + \def\figureautorefname{Figura}% + \def\tableautorefname{Tabla}% + \def\partautorefname{Parte}% + \def\appendixautorefname{Ap\'endice}% + \def\chapterautorefname{Cap\'itulo}% + \def\sectionautorefname{Secci\'on}% + \def\subsectionautorefname{Subsecci\'on}% + \def\subsubsectionautorefname{Subsubsecci\'on}% + \def\paragraphautorefname{P\'arrafo}% + \def\subparagraphautorefname{Subp\'arrafo}% + \def\FancyVerbLineautorefname{L\'inea}% + \def\theoremautorefname{Teorema}% + \def\pageautorefname{P\'agina}% +} +% \end{macrocode} +% \begin{macrocode} +\def\HyLang@catalan{% +\def\equationautorefname{Equaci\'o}% +\def\footnoteautorefname{Nota al peu de p\`agina}% +\def\itemautorefname{Element}% +\def\figureautorefname{Figura}% +\def\tableautorefname{Taula}% +\def\partautorefname{Part}% +\def\appendixautorefname{Ap\`endix}% +\def\chapterautorefname{Cap\'itol}% +\def\sectionautorefname{Secci\'o}% +\def\subsectionautorefname{Subsecci\'o}% +\def\subsubsectionautorefname{Subsubsecci\'o}% +\def\paragraphautorefname{Par\`agraf}% +\def\subparagraphautorefname{Subpar\`agraf}% +\def\FancyVerbLineautorefname{L\'inia}% +\def\theoremautorefname{Teorema}% +\def\pageautorefname{P\`agina}% +} +% \end{macrocode} +% \begin{macrocode} +\def\HyLang@vietnamese{% + \def\equationautorefname{Ph\uhorn{}\ohorn{}ng tr\`inh}% + \def\footnoteautorefname{Ch\'u th\'ich}% + \def\itemautorefname{m\d{u}c}% + \def\figureautorefname{H\`inh}% + \def\tableautorefname{B\h{a}ng}% + \def\partautorefname{Ph\`\acircumflex{}n}% + \def\appendixautorefname{Ph\d{u} l\d{u}c}% + \def\chapterautorefname{ch\uhorn{}\ohorn{}ng}% + \def\sectionautorefname{m\d{u}c}% + \def\subsectionautorefname{m\d{u}c}% + \def\subsubsectionautorefname{m\d{u}c}% + \def\paragraphautorefname{\dj{}o\d{a}n}% + \def\subparagraphautorefname{\dj{}o\d{a}n}% + \def\FancyVerbLineautorefname{d\`ong}% + \def\theoremautorefname{\DJ{}\d{i}nh l\'y}% + \def\pageautorefname{Trang}% +} +% \end{macrocode} +% Greek, see github issue 52 +% \begin{macrocode} +\def\HyLang@greek{% + \def\equationautorefname{\textEpsilon\textxi\acctonos\textiota\textsigma\textomega\textsigma\texteta}% + \def\footnoteautorefname{\textupsilon\textpi\textomicron\textsigma\texteta\textmu\textepsilon\acctonos\textiota\textomega\textsigma\texteta}% + \def\itemautorefname{\textalpha\textnu\texttau\textiota\textkappa\textepsilon\acctonos\textiota\textmu\textepsilon\textnu\textomicron}% + \def\figureautorefname{\textSigma\textchi\acctonos\texteta\textmu\textalpha}% + \def\tableautorefname{\textPi\acctonos\textiota\textnu\textalpha\textkappa\textalpha}% + \def\partautorefname{\textMu\acctonos\textepsilon\textrho\textomicron\textvarsigma}% + \def\appendixautorefname{\textPi\textalpha\textrho\acctonos\textalpha\textrho\texttau\texteta\textmu\textalpha}% + \def\chapterautorefname{\textkappa\textepsilon\textphi\acctonos\textalpha\textlambda\textalpha\textiota\textomicron}% + \def\sectionautorefname{\textepsilon\textnu\acctonos\textomicron\texttau\texteta\texttau\textalpha}% + \def\subsectionautorefname{\textupsilon\textpi\textomicron\textepsilon\textnu\acctonos\textomicron\texttau\texteta\texttau\textalpha}% + \def\subsubsectionautorefname{\textupsilon\textpi\textomicron-\textupsilon\textpi\textomicron\textepsilon\textnu\acctonos\textomicron\texttau\texteta\texttau\textalpha}% + \def\paragraphautorefname{\textpi\textalpha\textrho\acctonos\textalpha\textgamma\textrho\textalpha\textphi\textomicron\textvarsigma}% + \def\subparagraphautorefname{\textupsilon\textpi\textomicron\textpi\textalpha\textrho\acctonos\textalpha\textgamma\textrho\textalpha\textphi\textomicron\textvarsigma}% + \def\FancyVerbLineautorefname{\textgamma\textrho\textalpha\textmu\textmu\acctonos\texteta}% + \def\theoremautorefname{\textTheta\textepsilon\acctonos\textomega\textrho\texteta\textmu\textalpha}% + \def\pageautorefname{\textsigma\textepsilon\textlambda\acctonos\textiota\textdelta\textalpha}% +} +% \end{macrocode} +% \begin{macrocode} +\def\HyLang@dutch{% + \def\equationautorefname{Vergelijking}% + \def\footnoteautorefname{voetnoot}% + \def\itemautorefname{punt}% + \def\figureautorefname{Figuur}% + \def\tableautorefname{Tabel}% + \def\partautorefname{Deel}% + \def\appendixautorefname{Bijlage}% + \def\chapterautorefname{hoofdstuk}% + \def\sectionautorefname{paragraaf}% + \def\subsectionautorefname{deelparagraaf}% + \def\subsubsectionautorefname{deel-deelparagraaf}% + \def\paragraphautorefname{alinea}% + \def\subparagraphautorefname{deelalinea}% + \def\FancyVerbLineautorefname{regel}% + \def\theoremautorefname{Stelling}% + \def\pageautorefname{pagina}% +} +% \end{macrocode} +% +% Instead of package babel's definition of \cmd{\addto} the +% implementation of package varioref is used. Additionally +% argument |#1| is checked for \cmd{\relax}. +% \begin{macrocode} +\def\HyLang@addto#1#2{% + #2% + \@temptokena{#2}% + \ifx#1\relax + \let#1\@empty + \fi + \ifx#1\@undefined + \edef#1{\the\@temptokena}% + \else + \toks@\expandafter{#1}% + \edef#1{\the\toks@\the\@temptokena}% + \fi + \@temptokena{}\toks@\@temptokena +} +% \end{macrocode} +% +% \begin{macrocode} +\def\HyLang@DeclareLang#1#2#3{% + \@ifpackagewith{babel}{#1}{% + \expandafter\HyLang@addto + \csname extras#1\expandafter\endcsname + \csname HyLang@#2\endcsname + \begingroup + \edef\x{\endgroup + #3% + }% + \x + \@namedef{HyLang@#1@done}{}% + }{}% + \begingroup + \edef\x##1##2{% + \noexpand\ifx##2\relax + \errmessage{No definitions for language #2' found!}% + \noexpand\fi + \endgroup + \noexpand\define@key{Hyp}{#1}[]{% + \noexpand\@ifundefined{HyLang@#1@done}{% + \noexpand\HyLang@addto{\noexpand##1}{\noexpand##2}% + #3% + \noexpand\@namedef{HyLang@#1@done}{}% + }{}% + }% + }% + \expandafter\x\csname extras#1\expandafter\endcsname + \csname HyLang@#2\endcsname +} +\HyLang@DeclareLang{english}{english}{} +\HyLang@DeclareLang{UKenglish}{english}{} +\HyLang@DeclareLang{british}{english}{} +\HyLang@DeclareLang{USenglish}{english}{} +\HyLang@DeclareLang{american}{english}{} +\HyLang@DeclareLang{german}{german}{} +\HyLang@DeclareLang{austrian}{german}{} +\HyLang@DeclareLang{ngerman}{german}{} +\HyLang@DeclareLang{naustrian}{german}{} +\HyLang@DeclareLang{russian}{russian}{\noexpand\hypersetup{unicode}} +\HyLang@DeclareLang{brazil}{portuges}{} +\HyLang@DeclareLang{brazilian}{portuges}{} +\HyLang@DeclareLang{portuguese}{portuges}{} +\HyLang@DeclareLang{spanish}{spanish}{} +\HyLang@DeclareLang{catalan}{catalan}{} +\HyLang@DeclareLang{afrikaans}{afrikaans}{} +\HyLang@DeclareLang{french}{french}{} +\HyLang@DeclareLang{frenchb}{french}{} +\HyLang@DeclareLang{francais}{french}{} +\HyLang@DeclareLang{acadian}{french}{} +\HyLang@DeclareLang{canadien}{french}{} +\HyLang@DeclareLang{italian}{italian}{} +\HyLang@DeclareLang{magyar}{magyar}{} +\HyLang@DeclareLang{hungarian}{magyar}{} +\HyLang@DeclareLang{greek}{greek}{} +\HyLang@DeclareLang{dutch}{dutch}{} +% \end{macrocode} +% More work is needed in case of options |vietnamese| and |vietnam|. +% \begin{macrocode} +\DeclareVoidOption{vietnamese}{% + \HyLang@addto\extrasvietnamese\HyLang@vietnamese + \Hy@AtEndOfPackage{% + \@ifundefined{T@PU}{}{% + \input{puvnenc.def}% + }% + }% +} +\DeclareVoidOption{vietnam}{% + \HyLang@addto\extrasvietnam\HyLang@vietnamese + \Hy@AtEndOfPackage{% + \@ifundefined{T@PU}{}{% + \input{puvnenc.def}% + }% + }% +} +% \end{macrocode} +% Similar for option |arabic| that just loads the additions +% to PU encoding for Arabi. +% \begin{macrocode} +\DeclareVoidOption{arabic}{% + \Hy@AtEndOfPackage{% + \@ifundefined{T@PU}{}{% + \input{puarenc.def}% + }% + }% +} +% \end{macrocode} +% +% \section{Options to change appearance of links}\label{appearance} +% Colouring links at the \LaTeX\ level is useful for debugging, perhaps. +% \begin{macrocode} +\define@key{Hyp}{colorlinks}[true]{% + \Hy@boolkey{colorlinks}{#1}% +} +\DeclareVoidOption{hidelinks}{% + \Hy@colorlinksfalse + \Hy@ocgcolorlinksfalse + \Hy@frenchlinksfalse + \def\Hy@colorlink##1{\begingroup}% + \def\Hy@endcolorlink{\endgroup}% + \def\@pdfborder{0 0 0}% + \let\@pdfborderstyle\ltx@empty +} +\define@key{Hyp}{ocgcolorlinks}[true]{% + \Hy@boolkey{ocgcolorlinks}{#1}% +} +\Hy@AtBeginDocument{% + \begingroup + \@ifundefined{OBJ@OCG@view}{% + \ifHy@ocgcolorlinks + \Hy@Warning{% + Driver does not support `ocgcolorlinks',\MessageBreak + using `colorlinks' instead% + }% + \fi + }{}% + \endgroup +} +\define@key{Hyp}{frenchlinks}[true]{% + \Hy@boolkey{frenchlinks}{#1}% +} +% \end{macrocode} +% +% \section{Bookmarking} +% +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname chapter\endcsname\relax + \def\toclevel@part{0}% +\else + \def\toclevel@part{-1}% +\fi +\def\toclevel@chapter{0} +\def\toclevel@section{1} +\def\toclevel@subsection{2} +\def\toclevel@subsubsection{3} +\def\toclevel@paragraph{4} +\def\toclevel@subparagraph{5} +\def\toclevel@figure{0} +\def\toclevel@table{0} +\@ifpackageloaded{listings}{% + \providecommand*\theHlstlisting{\thelstlisting}% + \providecommand*\toclevel@lstlisting{0}% +}{} +\@ifpackageloaded{listing}{% + \providecommand*\theHlisting{\thelisting}% + \providecommand*\toclevel@listing{0}% +}{} +% \end{macrocode} +% +% \begin{macrocode} +\define@key{Hyp}{bookmarks}[true]{% + \Hy@boolkey{bookmarks}{#1}% +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{bookmarksopen}[true]{% + \Hy@boolkey{bookmarksopen}{#1}% +} +% \end{macrocode} +% +% The depth of the outlines is controlled by option +% \verb|bookmarksdepth|. +% The option acts globally and distinguishes three cases: +% \begin{itemize} +% \item \verb|bookmarksdepth|: Without value hyperref uses +% counter \texttt{tocdepth} (compatible behaviour and default). +% \item \verb|bookmarksdepth=<number>|: the depth is set to +% \verb|<number>|. +% \item \verb|bookmarksdepth=<name>|: The \verb|<name>| must +% not start with a number or minus sign. It is a document +% division name (part, chapter, section, \dots). Internally +% the value of macro \verb|\toclevel@<name>| is used. +% \end{itemize} +% \begin{macrocode} +\let\Hy@bookmarksdepth\c@tocdepth +\define@key{Hyp}{bookmarksdepth}[]{% + \begingroup + \edef\x{#1}% + \ifx\x\empty + \global\let\Hy@bookmarksdepth\c@tocdepth + \else + \@ifundefined{toclevel@\x}{% + \@onelevel@sanitize\x + \edef\y{\expandafter\@car\x\@nil}% + \ifcase 0\expandafter\ifx\y-1\fi + \expandafter\ifnum\expandafter`\y>47 % + \expandafter\ifnum\expandafter`\y<58 1\fi\fi\relax + \Hy@Warning{Unknown document division name (\x)}% + \else + \setbox\z@=\hbox{% + \count@=\x + \xdef\Hy@bookmarksdepth{\the\count@}% + }% + \fi + }{% + \setbox\z@=\hbox{% + \count@=\csname toclevel@\x\endcsname + \xdef\Hy@bookmarksdepth{\the\count@}% + }% + }% + \fi + \endgroup +} +% \end{macrocode} +% +% `bookmarksopenlevel' to specify the open level. From Heiko Oberdiek. +% \begin{macrocode} +\define@key{Hyp}{bookmarksopenlevel}{% + \def\@bookmarksopenlevel{#1}% +} +\def\@bookmarksopenlevel{\maxdimen} +% `bookmarkstype' to specify which `toc' file to mimic +\define@key{Hyp}{bookmarkstype}{% + \def\Hy@bookmarkstype{#1}% +} +\def\Hy@bookmarkstype{toc} +% \end{macrocode} +% Richard Curnow <richard@curnow.demon.co.uk> suggested this +% functionality. It adds section numbers etc to bookmarks. +% \begin{macrocode} +\define@key{Hyp}{bookmarksnumbered}[true]{% + \Hy@boolkey{bookmarksnumbered}{#1}% +} +% \end{macrocode} +% +% Option CJKbookmarks enables the patch for +% CJK bookmarks. +% \begin{macrocode} +\define@key{Hyp}{CJKbookmarks}[true]{% + \Hy@boolkey{CJKbookmarks}{#1}% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\Hy@temp#1{% + \expandafter\Hy@@temp\csname @#1color\endcsname{#1}% +} +\def\Hy@@temp#1#2#3{% + \define@key{Hyp}{#2color}{% + \HyColor@HyperrefColor{##1}#1% + }% + \def#1{#3}% +} +\Hy@temp{link}{red} +\Hy@temp{anchor}{black} +\Hy@temp{cite}{green} +\Hy@temp{file}{cyan} +\Hy@temp{url}{magenta} +\Hy@temp{menu}{red} +\Hy@temp{run}{\@filecolor} +\define@key{Hyp}{pagecolor}{% + \Hy@WarningPageColor +} +\def\Hy@WarningPageColor{% + \Hy@WarningNoLine{Option `pagecolor' is not available anymore}% + \global\let\Hy@WarningPageColor\relax +} +\define@key{Hyp}{allcolors}{% + \HyColor@HyperrefColor{#1}\@linkcolor + \HyColor@HyperrefColor{#1}\@anchorcolor + \HyColor@HyperrefColor{#1}\@citecolor + \HyColor@HyperrefColor{#1}\@filecolor + \HyColor@HyperrefColor{#1}\@urlcolor + \HyColor@HyperrefColor{#1}\@menucolor + \HyColor@HyperrefColor{#1}\@runcolor +} +% \end{macrocode} +% +% \begin{macrocode} +\def\hyperbaseurl#1{\def\@baseurl{#1}} +\define@key{Hyp}{baseurl}{\hyperbaseurl{#1}} +\let\@baseurl\@empty +\def\hyperlinkfileprefix#1{\def\Hy@linkfileprefix{#1}} +\define@key{Hyp}{linkfileprefix}{\hyperlinkfileprefix{#1}} +\hyperlinkfileprefix{file:} +% \end{macrocode} +% +% \section{PDF-specific options}\label{pdfopt} +% +% \begin{macro}{\@pdfpagetransition} +% The value of option |pdfpagetransition| is stored in +% \cmd{\@pdfpagetransition}. Its initial value is set +% to \cmd{\relax} in order to be able to differentiate +% between a not used option and an option with an empty +% value. +% \begin{macrocode} +\let\@pdfpagetransition\relax +\define@key{Hyp}{pdfpagetransition}{% + \def\@pdfpagetransition{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@pdfpageduration} +% The value of option |pdfpageduration| is stored in +% \cmd{\@pdfpageduration}. Its initial value is set +% to \cmd{\relax} in order to be able to differentiate +% between a not used option and an option with an empty +% value. +% \begin{macrocode} +\let\@pdfpageduration\relax +\define@key{Hyp}{pdfpageduration}{% + \def\@pdfpageduration{#1}% + \Hy@Match\@pdfpageduration{}{% + ^(|[0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+)$% + }{}{% + \Hy@Warning{% + Invalid value `\@pdfpageduration'\MessageBreak + of option `pdfpageduration'\MessageBreak + is replaced by an empty value% + }% + \let\@pdfpageduration\ltx@empty + }% +} +% \end{macrocode} +% \end{macro} +% +% The entry for the |/Hid| key in the page object is +% only necessary, if it is used and set to true for +% at least one time. If it is always false, then +% the |/Hid| key is not written to the pdf page +% object in order not to enlarge the pdf file. +% \begin{macrocode} +\newif\ifHy@useHidKey +\Hy@useHidKeyfalse +\define@key{Hyp}{pdfpagehidden}[true]{% + \Hy@boolkey{pdfpagehidden}{#1}% + \ifHy@pdfpagehidden + \global\Hy@useHidKeytrue + \fi +} +% \end{macrocode} +% +% The value of the |bordercolor| options are not processed +% by the color package. Therefore the value consists of +% space separated rgb numbers in the range 0 until 1. +% +% Package |xcolor| provides |\XC@bordercolor| since version 1.1. +% If the two spaces in the color specification are missing, +% then the value is processed as color specification from +% package |xcolor| by using |\XC@bordercolor| (since +% xcolor 2004/05/09 v1.11, versions 2005/03/24 v2.02 until +% 2006/11/28 v2.10 do not work because of a bug that is +% fixed in 2007/01/21 v2.11). +% \begin{macrocode} +\def\Hy@ColorList{cite,file,link,menu,run,url} +\@for\Hy@temp:=\Hy@ColorList\do{% + \edef\Hy@temp{% + \noexpand\define@key{Hyp}{\Hy@temp bordercolor}{% + \noexpand\HyColor@HyperrefBorderColor + {##1}% + \expandafter\noexpand\csname @\Hy@temp bordercolor\endcsname + {hyperref}% + {\Hy@temp bordercolor}% + }% + }% + \Hy@temp +} +\define@key{Hyp}{pagebordercolor}{% + \Hy@WarningPageBorderColor +} +\def\Hy@WarningPageBorderColor{% + \Hy@WarningNoLine{Option `pagebordercolor' is not available anymore}% + \global\let\Hy@WarningPageBorderColor\relax +} +\define@key{Hyp}{allbordercolors}{% + \def\Hy@temp##1##2{% + \HyColor@HyperrefBorderColor{#1}##1{hyperref}{##2bordercolor}% + }% + \Hy@temp\@citebordercolor{cite}% + \Hy@temp\@filebordercolor{file}% + \Hy@temp\@linkbordercolor{link}% + \Hy@temp\@menubordercolor{menu}% + \Hy@temp\@runbordercolor{run}% + \Hy@temp\@urlbordercolor{url}% +} +% \end{macrocode} +% +% \begin{macrocode} +\define@key{Hyp}{pdfhighlight}{\def\@pdfhighlight{#1}} +\Hy@DefNameKey{pdfhighlight}{% + \do{/I}{Invert}% + \do{/N}{None}% + \do{/O}{Outline}% + \do{/P}{Push}% +} +\def\Hy@setpdfhighlight{% + \ifx\@pdfhighlight\@empty + \else + /H\@pdfhighlight + \fi +} +\define@key{Hyp}{pdfborder}{% + \let\Hy@temp\@pdfborder + \def\@pdfborder{#1}% + \Hy@Match\@pdfborder{}{% + ^\HyPat@NonNegativeReal/ % + \HyPat@NonNegativeReal/ % + \HyPat@NonNegativeReal/% + ( ?\[\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)*])?$% + }{}{% + \Hy@Warning{% + Invalid value `\@pdfborder'\MessageBreak + for option `pdfborder'.\MessageBreak + Option setting is ignored% + }% + \let\@pdfborder\Hy@temp + }% +} +\define@key{Hyp}{pdfborderstyle}{% + \let\Hy@temp\@pdfborderstyle + \def\@pdfborderstyle{#1}% + \Hy@Match\@pdfborderstyle{}{% + ^% + ( */Type */Border% + | */W +\HyPat@NonNegativeReal/% + | */S */[SDBIU]% + | */D *\[ *(\HyPat@NonNegativeReal/( \HyPat@NonNegativeReal/)?)?]% + )* *$% + }{}{% + \Hy@Warning{% + Invalid value `\@pdfborderstyle'\MessageBreak + for option `pdfborderstyle'.\MessageBreak + Option setting is ignored% + }% + \let\@pdfborderstyle\Hy@temp + }% +} +\def\Hy@setpdfborder{% + \ifx\@pdfborder\@empty + \else + /Border[\@pdfborder]% + \fi + \ifx\@pdfborderstyle\@empty + \else + /BS<<\@pdfborderstyle>>% + \fi +} +\Hy@DefNameKey{pdfpagemode}{% + \do{UseNone}{}% + \do{UseOutlines}{}% + \do{UseThumbs}{}% + \do{FullScreen}{}% + \do{UseOC}{PDF 1.5}% + \do{UseAttachments}{PDF 1.6}% +} +\Hy@DefNameKey{pdfnonfullscreenpagemode}{% + \do{UseNone}{}% + \do{UseOutlines}{}% + \do{UseThumbs}{}% + \do{FullScreen}{}% + \do{UseOC}{PDF 1.5}% + \do{UseAttachments}{PDF 1.6}% +} +\Hy@DefNameKey{pdfdirection}{% + \do{L2R}{Left to right}% + \do{R2L}{Right to left}% +} +\Hy@DefNameKey{pdfviewarea}{% + \do{MediaBox}{}% + \do{CropBox}{}% + \do{BleedBox}{}% + \do{TrimBox}{}% + \do{ArtBox}{}% +} +\Hy@DefNameKey{pdfviewclip}{% + \do{MediaBox}{}% + \do{CropBox}{}% + \do{BleedBox}{}% + \do{TrimBox}{}% + \do{ArtBox}{}% +} +\Hy@DefNameKey{pdfprintarea}{% + \do{MediaBox}{}% + \do{CropBox}{}% + \do{BleedBox}{}% + \do{TrimBox}{}% + \do{ArtBox}{}% +} +\Hy@DefNameKey{pdfprintclip}{% + \do{MediaBox}{}% + \do{CropBox}{}% + \do{BleedBox}{}% + \do{TrimBox}{}% + \do{ArtBox}{}% +} +\Hy@DefNameKey{pdfprintscaling}{% + \do{AppDefault}{}% + \do{None}{}% +} +\Hy@DefNameKey{pdfduplex}{% + \do{Simplex}{}% + \do{DuplexFlipShortEdge}{}% + \do{DuplexFlipLongEdge}{}% +} +\Hy@DefNameKey{pdfpicktraybypdfsize}{% + \do{true}{}% + \do{false}{}% +} +\define@key{Hyp}{pdfprintpagerange}{% + \def\@pdfprintpagerange{#1}% +} +\Hy@DefNameKey{pdfnumcopies}{% + \do{2}{two copies}% + \do{3}{three copies}% + \do{4}{four copies}% + \do{5}{five copies}% +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{pdfusetitle}[true]{% + \Hy@boolkey{pdfusetitle}{#1}% +} +\def\HyXeTeX@CheckUnicode{% + \ifxetex + \ifHy@unicode + \else + \Hy@WarningNoLine{% + XeTeX driver only supports unicode.\MessageBreak + Enabling option `unicode'% + }% + \kvsetkeys{Hyp}{unicode}% + \fi + \else + \let\HyXeTeX@CheckUnicode\relax + \fi +} +\def\HyPsd@PrerenderUnicode#1{% + \begingroup + \expandafter\ifx\csname PrerenderUnicode\endcsname\relax + \else + \sbox0{% + \let\GenericInfo\@gobbletwo + \let\GenericWarning\@gobbletwo + \let\GenericError\@gobblefour + \PrerenderUnicode{#1}% + }% + \fi + \endgroup +} +\define@key{Hyp}{pdftitle}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdftitle{#1}% +} +\define@key{Hyp}{pdfauthor}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdfauthor{#1}% +} +\define@key{Hyp}{pdfproducer}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdfproducer{#1}% +} +\define@key{Hyp}{pdfcreator}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdfcreator{#1}% +} +\define@key{Hyp}{addtopdfcreator}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdfcreator{\@pdfcreator, #1}% +} +\define@key{Hyp}{pdfcreationdate}{% + \begingroup + \Hy@unicodefalse + \pdfstringdef\@pdfcreationdate{#1}% + \endgroup +} +\define@key{Hyp}{pdfmoddate}{% + \begingroup + \Hy@unicodefalse + \pdfstringdef\@pdfmoddate{#1}% + \endgroup +} +\define@key{Hyp}{pdfsubject}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdfsubject{#1}% +} +\define@key{Hyp}{pdfkeywords}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{#1}% + \pdfstringdef\@pdfkeywords{#1}% +} +\define@key{Hyp}{pdftrapped}{% + \lowercase{\edef\Hy@temp{#1}}% + \ifx\Hy@temp\HyInfo@trapped@true + \def\@pdftrapped{True}% + \else + \ifx\Hy@temp\HyInfo@trapped@false + \def\@pdftrapped{False}% + \else + \ifx\Hy@temp\HyInfo@trapped@unknown + \def\@pdftrapped{Unknown}% + \else + \ifx\Hy@temp\@empty + \else + \Hy@Warning{% + Unsupported value `#1'\MessageBreak + for option `pdftrapped'% + }% + \fi + \def\@pdftrapped{}% + \fi + \fi + \fi +} +\def\HyInfo@trapped@true{true} +\def\HyInfo@trapped@false{false} +\def\HyInfo@trapped@unknown{unknown} +\def\HyInfo@TrappedUnsupported{% + \ifx\@pdftrapped\@empty + \else + \Hy@WarningNoLine{`pdftrapped' is not supported by this driver}% + \gdef\HyInfo@TrappedUnsupported{}% + \fi +} +\define@key{Hyp}{pdfinfo}{% + \kvsetkeys{pdfinfo}{#1}% +} +\def\Hy@temp#1{% + \lowercase{\Hy@temp@A{#1}}{#1}% +} +\def\Hy@temp@A#1#2{% + \define@key{pdfinfo}{#2}{% + \hypersetup{pdf#1={##1}}% + }% +} +\Hy@temp{Title} +\Hy@temp{Author} +\Hy@temp{Keywords} +\Hy@temp{Subject} +\Hy@temp{Creator} +\Hy@temp{Producer} +\Hy@temp{CreationDate} +\Hy@temp{ModDate} +\Hy@temp{Trapped} +\newif\ifHyInfo@AddonUnsupported +\kv@set@family@handler{pdfinfo}{% + \HyInfo@AddonHandler{#1}{#2}% +} +\let\HyInfo@do\relax +\def\HyInfo@AddonHandler#1#2{% + \ifx\kv@value\relax + \Hy@Warning{% + Option `pdfinfo': ignoring key `\kv@key' without value% + }% + \else + \EdefEscapeName\HyInfo@KeyEscaped{\kv@key}% + \EdefUnescapeName\HyInfo@Key{\HyInfo@KeyEscaped}% + \expandafter\ifx\csname KV@pdfinfo@\HyInfo@Key\endcsname\relax + \ifHyInfo@AddonUnsupported + \Hy@Warning{% + This driver does not support additional\MessageBreak + information entries, therefore\MessageBreak + `\kv@key' is ignored% + }% + \else + \def\HyInfo@tmp##1{% + \kv@define@key{pdfinfo}{##1}{% + \HyXeTeX@CheckUnicode + \HyPsd@XeTeXBigCharstrue + \HyPsd@PrerenderUnicode{####1}% + \pdfstringdef\HyInfo@Value{####1}% + \global\expandafter + \let\csname HyInfo@Value@##1\endcsname + \HyInfo@Value + }% + }% + \expandafter\HyInfo@tmp\expandafter{\HyInfo@Key}% + \global\expandafter + \let\csname KV@pdfinfo@\HyInfo@Key\expandafter\endcsname + \csname KV@pdfinfo@\HyInfo@Key\endcsname + \xdef\HyInfo@AddonList{% + \HyInfo@AddonList + \HyInfo@do{\HyInfo@Key}% + }% + \kv@parse@normalized{% + \HyInfo@Key={#2}% + }{% + \kv@processor@default{pdfinfo}% + }% + \fi + \else + \kv@parse@normalized{% + \HyInfo@Key={#2}% + }{% + \kv@processor@default{pdfinfo}% + }% + \fi + \fi +} +\def\HyInfo@GenerateAddons{% + \ifHyInfo@AddonUnsupported + \def\HyInfo@Addons{}% + \else + \begingroup + \toks@{}% + \def\HyInfo@do##1{% + \EdefEscapeName\HyInfo@Key{##1}% + \edef\x{% + \toks@{% + \the\toks@ + /\HyInfo@Key(\csname HyInfo@Value@##1\endcsname)% + }% + }% + \x + }% + \HyInfo@AddonList + \edef\x{\endgroup + \def\noexpand\HyInfo@Addons{\the\toks@}% + }% + \x + \fi +} +\global\let\HyInfo@AddonList\ltx@empty +% \end{macrocode} +% \begin{macrocode} +\define@key{Hyp}{pdfview}{\calculate@pdfview#1 \\} +\define@key{Hyp}{pdflinkmargin}{\setpdflinkmargin{#1}} +\let\setpdflinkmargin\@gobble +\def\calculate@pdfview#1 #2\\{% + \def\@pdfview{#1}% + \ifx\\#2\\% + \def\@pdfviewparams{ -32768}% + \else + \def\@pdfviewparams{ #2}% + \fi +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname numexpr\endcsname\relax + \def\Hy@number#1{% + \expandafter\@firstofone\expandafter{\number#1}% + }% +\else + \def\Hy@number#1{% + \the\numexpr#1\relax + }% +\fi +\define@key{Hyp}{pdfstartpage}{% + \ifx\\#1\\% + \let\@pdfstartpage\ltx@empty + \else + \edef\@pdfstartpage{\Hy@number{#1}}% + \fi +}% +\define@key{Hyp}{pdfstartview}{% + \ifx\\#1\\% + \let\@pdfstartview\ltx@empty + \else + \hypercalcbpdef\@pdfstartview{/#1}% + \fi +} +\def\HyPat@NonNegativeReal/{% + \ *([0-9]+\.?[0-9]*|[0-9]*\.?[0-9]+) *% +} +\define@key{Hyp}{pdfremotestartview}{% + \ifx\\#1\\% + \def\@pdfremotestartview{/Fit}% + \else + \hypercalcbpdef\@pdfremotestartview{#1}% + \edef\@pdfremotestartview{\@pdfremotestartview}% + \Hy@Match\@pdfremotestartview{}{% + ^(XYZ(% + ()| % + (null|-?\HyPat@NonNegativeReal/) % + (null|-?\HyPat@NonNegativeReal/) % + (null|\HyPat@NonNegativeReal/)% + )|% end of "XYZ" + Fit(% + ()|% + B|% + (H|V|BH|BV)(% + ()| % + (null|\HyPat@NonNegativeReal/)% + )|% + R % + \HyPat@NonNegativeReal/ % + \HyPat@NonNegativeReal/ % + \HyPat@NonNegativeReal/ % + \HyPat@NonNegativeReal/% + )% end of "Fit" + )$% + }{}{% + \Hy@Warning{% + Invalid value `\@pdfremotestartview'\MessageBreak + of `pdfremotestartview'\MessageBreak + is replaced by `Fit'% + }% + \let\@pdfremotestartview\@empty + }% + \ifx\@pdfremotestartview\@empty + \def\@pdfremotestartview{/Fit}% + \else + \edef\@pdfremotestartview{/\@pdfremotestartview}% + \fi + \fi +} +\define@key{Hyp}{pdfpagescrop}{\edef\@pdfpagescrop{#1}} +\define@key{Hyp}{pdftoolbar}[true]{% + \Hy@boolkey{pdftoolbar}{#1}% +} +\define@key{Hyp}{pdfmenubar}[true]{% + \Hy@boolkey{pdfmenubar}{#1}% +} +\define@key{Hyp}{pdfwindowui}[true]{% + \Hy@boolkey{pdfwindowui}{#1}% +} +\define@key{Hyp}{pdffitwindow}[true]{% + \Hy@boolkey{pdffitwindow}{#1}% +} +\define@key{Hyp}{pdfcenterwindow}[true]{% + \Hy@boolkey{pdfcenterwindow}{#1}% +} +\define@key{Hyp}{pdfdisplaydoctitle}[true]{% + \Hy@boolkey{pdfdisplaydoctitle}{#1}% +} +\define@key{Hyp}{pdfa}[true]{% + \Hy@boolkey{pdfa}{#1}% +} +\define@key{Hyp}{pdfnewwindow}[true]{% + \def\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \Hy@pdfnewwindowsetfalse + \else + \Hy@pdfnewwindowsettrue + \Hy@boolkey{pdfnewwindow}{#1}% + \fi +} +\def\Hy@SetNewWindow{% + \ifHy@pdfnewwindowset + /NewWindow % + \ifHy@pdfnewwindow true\else false\fi + \fi +} +\Hy@DefNameKey{pdfpagelayout}{% + \do{SinglePage}{}% + \do{OneColumn}{}% + \do{TwoColumnLeft}{}% + \do{TwoColumnRight}{}% + \do{TwoPageLeft}{PDF 1.5}% + \do{TwoPageRight}{PDF 1.5}% +} +\define@key{Hyp}{pdflang}{% + \edef\@pdflang{#1}% + \def\Hy@temp{\relax}% + \ifx\@pdflang\Hy@temp + \let\@pdflang\relax + \fi + \ifx\@pdflang\relax + \else + \ifx\@pdflang\ltx@empty + \else +% \end{macrocode} +% Test according to ABNF of RFC 3066. +% \begin{macrocode} + \Hy@Match\@pdflang{icase}{% + ^% + [a-z]{1,8}% + (-[a-z0-9]{1,8})*% + $% + }{% +% \end{macrocode} +% Test according to ABNF of RFC 5646. +% \begin{macrocode} + \Hy@Match\@pdflang{icase}{% + ^% + (% + % langtag + (% language + [a-z]{2,3}% + ([a-z]{3}(-[a-z]{3}){0,2})?% extlang + |[a-z]{4}% reserved for future use + |[a-z]{5,8}% registered language subtag + )% + (-[a-z]{4})?% script + (-([a-z]{2}|[0-9]{3}))?% region + (-([a-z]{5,8}|[0-9][a-z0-9]{3}))*% variant + (-[0-9a-wyz](-[a-z0-9]{2,8})+)*% extension + (-x(-[a-z0-9]{1,8})+)?% privateuse + % privateuse + |x-([a-z0-9]{1,8})+% + % grandfathered/irregular + |en-GB-oed% + |i-(ami|bnn|default|enochian|hak|klingon|lux|% + mingo|navajo|pwn|tao|tay|tsu)% + |sgn-(BE-FR|BE-NL|CH-DE)% + % grandfathered/regular + |art-lojban% + |cel-gaulish% + |no-(bok|nyn)% + |zh-(guoyu|hakka|min|min-nan|xiang)% + )% + $% + }{% +% \end{macrocode} +% Test for unique extensions. +% \begin{macrocode} + \Hy@Match{-\@pdflang}{icase}{-[a-wyz0-9]-}{% + \Hy@Match\@pdflang{icase}{^x-}{}{% + % remove privateuse + \edef\Hy@temp{-\@pdflang}% + \Hy@Match\Hy@temp{icase}{% + ^% + (% + (-[a-wyz0-9]|-[a-z0-9]{2,8})*% + )% + -x-% + }{% + \edef\Hy@temp{% + \expandafter\strip@prefix\pdflastmatch1% + }% + }{}% + \Hy@Match\Hy@temp{icase}{% + (-[a-wyz0-9]-).*\ltx@backslashchar1% + }{% + \Hy@Warning{% + Invalid language identifier `#1'\MessageBreak + for option `pdflang', because it violates\MessageBreak + well-formedness defined in RFC 4646\MessageBreak + by duplicate singleton subtags% + }% + \let\@pdflang\relax + }{}% + }% + }{}% +% \end{macrocode} +% User-assigned country codes are forbidden in language tags (RFC 3066). +% \begin{macrocode} + \ifx\@pdflang\relax + \else + \Hy@Match\@pdflang{icase}{% + ^% + [a-zA-Z]{2}-% + (% + aa|AA|% + [qQ][m-zM-Z]|% + [xX][a-zA-Z]|% + zz|ZZ% + )% + (-|$)% + }{% + \Hy@Warning{% + Invalid language identifier `#1'\MessageBreak + for option `pdflang' because of invalid country code% + \MessageBreak + in second subtag (RFC 3066)% + }% + \let\@pdflang\relax + }{}% + \fi + }{% + \Hy@Warning{% + Invalid language identifier `#1'\MessageBreak + for option `pdflang', because it violates\MessageBreak + well-formedness defined in RFC 5646% + }% + \let\@pdflang\relax + }% + }{% + \Hy@Warning{% + Invalid language identifier `#1'\MessageBreak + for option `pdflang' (RFC 3066)% + }% + \let\@pdflang\relax + }% + \fi + \fi +} +\define@key{Hyp}{pdfpagelabels}[true]{% + \Hy@boolkey{pdfpagelabels}{#1}% +} +\define@key{Hyp}{pdfescapeform}[true]{% + \Hy@boolkey{pdfescapeform}{#1}% +} +% \end{macrocode} +% Default values: +% \begin{macrocode} +\def\@linkbordercolor{1 0 0} +\def\@urlbordercolor{0 1 1} +\def\@menubordercolor{1 0 0} +\def\@filebordercolor{0 .5 .5} +\def\@runbordercolor{0 .7 .7} +\def\@citebordercolor{0 1 0} +\def\@pdfhighlight{/I} +\let\@pdftitle\ltx@empty +\let\@pdfauthor\ltx@empty +\let\@pdfproducer\relax +\def\@pdfcreator{LaTeX with hyperref} +\let\@pdfcreationdate\ltx@empty +\let\@pdfmoddate\ltx@empty +\let\@pdfsubject\ltx@empty +\let\@pdfkeywords\ltx@empty +\let\@pdftrapped\ltx@empty +\let\@pdfpagescrop\ltx@empty +\def\@pdfstartview{/Fit} +\def\@pdfremotestartview{/Fit} +\def\@pdfstartpage{1} +\let\@pdfprintpagerange\ltx@empty +\let\@pdflang\relax +\let\PDF@SetupDoc\@empty +\let\PDF@FinishDoc\@empty +\let\phantomsection\@empty +\let\special@paper\@empty +\def\HyperDestNameFilter#1{#1} +\Hy@AtBeginDocument{% + \begingroup + \edef\x{\@ifundefined{stockheight}\paperheight\stockheight}% + \dimen@=\x\relax + \ifdim\dimen@>\z@ + \else + \dimen@=11in\relax + \Hy@WarningNoLine{% + Height of page (\expandafter\string\x) % + is invalid (\the\x),\MessageBreak + using 11in% + }% + \fi + \dimen@=0.99626401\dimen@ + \xdef\Hy@pageheight{\strip@pt\dimen@}% + \endgroup +} +\def\HyInd@EncapChar{\|} +% \end{macrocode} +% +% Allow the user to use |\ExecuteOptions| in the cfg file even though +% this package does not use the normal option mechanism. +% Use |\hyper@normalise| as a scratch macro, since it is going to +% be defined in a couple of lines anyway. +% \begin{macrocode} +\let\hyper@normalise\ExecuteOptions +\let\ExecuteOptions\hypersetup +\Hy@RestoreCatcodes +\InputIfFileExists{hyperref.cfg}{}{} +\Hy@SetCatcodes +\let\ExecuteOptions\hyper@normalise +\ifx\Hy@MaybeStopNow\relax +\else + \Hy@stoppedearlytrue + \expandafter\Hy@MaybeStopNow +\fi +\Hy@stoppedearlyfalse +% \end{macrocode} +% To add flexibility, we will not use the ordinary processing of +% package options, but put them through the \emph{keyval} package. +% This section was written by David Carlisle. +% +% \begin{macrocode} +\SetupKeyvalOptions{family=Hyp} +\DeclareLocalOptions{% + a4paper,a5paper,b5paper,letterpaper,legalpaper,executivepaper% +} +% \end{macrocode} +% +% Add option |tex4ht| if package |tex4ht| is loaded. +% \begin{macrocode} +\@ifpackagewith{hyperref}{tex4ht}{% +}{% + \@ifpackageloaded{tex4ht}{% + \PassOptionsToPackage{tex4ht}{hyperref}% + }{% + \ltx@IfUndefined{HCode}{% + }{% + \begingroup + \def\Hy@pkg{tex4ht}% + \def\Hy@temp@A#1\RequirePackage[#2]#3#4\Hy@NIL{% + \def\Hy@param{#2#3}% + \ifx\Hy@param\ltx@empty + \expandafter\ltx@gobble + \else + \def\Hy@param{#3}% + \ifx\Hy@param\Hy@pkg + \PassOptionsToPackage{#2}{tex4ht}% + \expandafter\expandafter\expandafter\@gobble + \else + \expandafter\expandafter\expandafter\ltx@firstofone + \fi + \fi + {\Hy@temp@A#4\Hy@NIL}% + }% + \expandafter + \Hy@temp@A\@documentclasshook\RequirePackage[]{}\Hy@NIL + \endgroup + \PassOptionsToPackage{tex4ht}{hyperref}% + }% + }% +} +% \end{macrocode} +% +% \begin{macrocode} +\let\ReadBookmarks\relax +\ProcessKeyvalOptions{Hyp} +% \end{macrocode} +% +% After processing options. +% +% \subsection{Package xspace support} +% +% \begin{macrocode} +\def\Hy@xspace@end{} +\ltx@IfUndefined{xspaceaddexceptions}{% + \Hy@AtBeginDocument{% + \ltx@IfUndefined{xspaceaddexceptions}{% + }{% + \def\Hy@xspace@end{% + \ltx@gobble{end for xspace}% + }% + \xspaceaddexceptions{% + \Hy@xspace@end,\hyper@linkend,\hyper@anchorend + }% + }% + }% +}{% + \def\Hy@xspace@end{% + \ltx@gobble{end for xspace}% + }% + \xspaceaddexceptions{\Hy@xspace@end,\hyper@linkend,\hyper@anchorend}% +} +% \end{macrocode} +% +% \subsection{Option draft} +% +% \begin{macrocode} +\Hy@AtBeginDocument{% + \ifHy@draft + \let\hyper@@anchor\@gobble + \gdef\hyper@link#1#2#3{#3\Hy@xspace@end}% + \def\hyper@anchorstart#1#2{#2\Hy@xspace@end}% + \def\hyper@anchorend{\Hy@xspace@end}% + \let\hyper@linkstart\@gobbletwo + \def\hyper@linkend{\Hy@xspace@end}% + \def\hyper@linkurl#1#2{#1\Hy@xspace@end}% + \def\hyper@linkfile#1#2#3{#1\Hy@xspace@end}% + \def\hyper@link@[#1]#2#3#4{#4\Hy@xspace@end}% + \def\Acrobatmenu#1#2{\leavevmode#2\Hy@xspace@end}% + \let\PDF@SetupDoc\@empty + \let\PDF@FinishDoc\@empty + \let\@fifthoffive\@secondoftwo + \let\@secondoffive\@secondoftwo + \let\ReadBookmarks\relax + \let\WriteBookmarks\relax + \Hy@WarningNoLine{Draft mode on}% + \fi + \Hy@DisableOption{draft}% + \Hy@DisableOption{nolinks}% + \Hy@DisableOption{final}% +} +% \end{macrocode} +% +% \subsection{PDF/A} +% +% \begin{macrocode} +\Hy@DisableOption{pdfa} +% \end{macrocode} +% +% \begin{macrocode} +\ifHy@pdfa + \ifnum \Hy@pdfversion < 4 + \kvsetkeys{Hyp}{pdfversion=1.4}% + \fi + \Hy@DisableOption{pdfversion}% + \def\Hy@Acrobatmenu#1#2{% + \leavevmode + \begingroup + \edef\x{#1}% + \@onelevel@sanitize\x + \ifx\x\Hy@NextPage + \let\y=Y% + \else + \ifx\x\Hy@PrevPage + \let\y=Y% + \else + \ifx\x\Hy@FirstPage + \let\y=Y% + \else + \ifx\x\Hy@LastPage + \let\y=Y% + \else + \let\y=N% + \fi + \fi + \fi + \fi + \expandafter\endgroup + \ifx\y Y% + \else + \Hy@Error{% + PDF/A: Named action `#1' is not permitted% + }\@ehc + {#2}% + \expandafter\@gobble + \fi + }% + \def\Hy@temp#1{% + \expandafter\def\csname Hy@#1\endcsname{#1}% + \expandafter\@onelevel@sanitize\csname Hy@#1\endcsname + }% + \Hy@temp{NextPage}% + \Hy@temp{PrevPage}% + \Hy@temp{FirstPage}% + \Hy@temp{LastPage}% +\else + \def\Hy@Acrobatmenu#1#2{\leavevmode}% +\fi +% \end{macrocode} +% +% \subsection{Patch for babel's +% \texorpdfstring{\cs{texttilde}}{\\texttilde}} +% Babel does not define \cmd{\texttilde} in NFSS2 manner, +% so the NFSS2 definitions of PD1 or PU encoding is not +% compatible. To fix this, \cmd{\texttilde} is defined +% in babel manner. +% \begin{macrocode} +\Hy@nextfalse +\ltx@IfUndefined{spanish@sh@"@sel}{}{\Hy@nexttrue} +\ltx@IfUndefined{galician@sh@"@sel}{}{\Hy@nexttrue} +\ltx@IfUndefined{estonian@sh@"@sel}{}{\Hy@nexttrue} +\ifHy@next + \let\texttilde\~% +\fi +% \end{macrocode} +% +% \begin{macrocode} +\def\Hy@wrapper@babel#1#2{% + \begingroup + \Hy@safe@activestrue + \set@display@protect + \edef\x{#2}% + \@onelevel@sanitize\x + \toks@{#1}% + \edef\x{\endgroup\the\toks@{\x}}% + \x +} +\def\Hy@WrapperDef#1{% + \begingroup + \escapechar=\m@ne + \xdef\Hy@gtemp{% + \expandafter\noexpand\csname HyWrap@\string#1\endcsname + }% + \endgroup + \edef#1{% + \noexpand\Hy@wrapper@babel + \expandafter\noexpand\Hy@gtemp + }% + \expandafter\def\Hy@gtemp +} +% \end{macrocode} +% +% \begin{macrocode} +\ifHy@hyperfigures + \Hy@Info{Hyper figures ON}% +\else + \Hy@Info{Hyper figures OFF}% +\fi +\ifHy@nesting + \Hy@Info{Link nesting ON}% +\else + \Hy@Info{Link nesting OFF}% +\fi +\ifHy@hyperindex + \Hy@Info{Hyper index ON}% +\else + \Hy@Info{Hyper index OFF}% +\fi +\ifHy@plainpages + \Hy@Info{Plain pages ON}% +\else + \Hy@Info{Plain pages OFF}% +\fi +\ifHy@backref + \Hy@Info{Backreferencing ON}% +\else + \Hy@Info{Backreferencing OFF}% +\fi +\ifHy@typexml + \Hy@AtEndOfPackage{% + \RequirePackage{color}% + \RequirePackage{nameref}[2012/07/28]% + }% +\fi +\Hy@DisableOption{typexml} +\ifHy@implicit + \Hy@InfoNoLine{Implicit mode ON; LaTeX internals redefined}% +\else + \Hy@InfoNoLine{Implicit mode OFF; no redefinition of LaTeX internals}% + \def\MaybeStopEarly{% + \Hy@Message{Stopped early}% + \Hy@AtBeginDocument{% + \PDF@FinishDoc + \gdef\PDF@FinishDoc{}% + }% + \endinput + }% + \Hy@AtBeginDocument{% + \let\autoref\ref + \let\autopageref\pageref + \ifx\@pdfpagemode\@empty + \gdef\@pdfpagemode{UseNone}% + \fi + \global\Hy@backreffalse + }% + \Hy@AtEndOfPackage{% + \global\let\ReadBookmarks\relax + \global\let\WriteBookmarks\relax + }% +\fi +\Hy@DisableOption{implicit} +% \end{macrocode} +% +% \subsubsection{Driver loading} +% +% \begin{macrocode} +\Hy@AtEndOfPackage{% + \@ifpackageloaded{tex4ht}{% + \def\Hy@driver{htex4ht}% + \Hy@texhttrue + }{}% +% \end{macrocode} +% Some drivers can be detected. Check for these drivers, +% whether the given driver option is ok. Otherwise force +% the right driver or use the default driver. +% \begin{macrocode} + \ifx\Hy@driver\@empty + \else + \ifx\pdfextension\@undefined + \def\Hy@temp{hpdftex}% + \else + \def\Hy@temp{hluatex}% + \fi + \ifpdf + \ifx\Hy@driver\Hy@temp + \else + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + pdfTeX is running in PDF mode.\MessageBreak + Forcing driver `\Hy@temp.def'% + }% + \let\Hy@driver\Hy@temp + \fi + \else + \ifx\Hy@driver\Hy@temp + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + pdfTeX is not running in PDF mode.\MessageBreak + Using default driver% + }% + \let\Hy@driver\@empty + \fi + \fi + \fi + \ifHy@texht + \else + \ifx\Hy@driver\@empty + \else + \def\Hy@temp{hxetex}% + \ifxetex + \ifx\Hy@driver\Hy@temp + \else + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + XeTeX is running.\MessageBreak + Forcing driver `\Hy@temp.def' for XeTeX% + }% + \let\Hy@driver\Hy@temp + \fi + \fi + \fi + \fi + \ifx\Hy@driver\@empty + \else + \def\Hy@temp{hvtexhtm}% + \ifvtexhtml + \ifx\Hy@driver\Hy@temp + \else + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + VTeX is running in HTML mode.\MessageBreak + Forcing driver `\Hy@temp.def'% + }% + \let\Hy@driver\Hy@temp + \fi + \else + \ifx\Hy@driver\Hy@temp + \Hy@WarningNoLine{% + Wrong driver `\Hy@driver.def';\MessageBreak + VTeX is not running in HTML mode.\MessageBreak + Using default driver% + }% + \let\Hy@driver\@empty + \fi + \fi + \fi +% \end{macrocode} +% If the driver is not given, find the right driver or +% use the default driver. +% \begin{macrocode} + \let\HyOpt@DriverType\ltx@empty + \ifx\HyOpt@CustomDriver\ltx@empty + \ifx\Hy@driver\@empty + \def\HyOpt@DriverType{ (autodetected)}% + \providecommand*{\Hy@defaultdriver}{hypertex}% + \ifpdf + \ifx\pdfextension\@undefined + \def\Hy@driver{hpdftex}% + \else + \def\Hy@driver{hluatex}% + \fi + \else + \ifxetex + \def\Hy@driver{hxetex}% + \else + \ifvtexhtml + \def\Hy@driver{hvtexhtm}% + \def\MaybeStopEarly{% + \Hy@Message{Stopped early}% + \Hy@AtBeginDocument{% + \PDF@FinishDoc + \gdef\PDF@FinishDoc{}% + }% + \endinput + }% + \else + \ifvtexpdf + \def\Hy@driver{hvtex}% + \else + \ifvtexps + \def\Hy@driver{hvtex}% + \else + \ifx\HyOpt@DriverFallback\ltx@empty + \let\Hy@driver\Hy@defaultdriver + \def\HyOpt@DriverType{ (default)}% + \else + \begingroup + \toks@\expandafter{\HyOpt@DriverFallback}% + \edef\x{\endgroup + \noexpand\kvsetkeys{Hyp}{\the\toks@}% + }% + \x + \ifx\Hy@driver\ltx@empty + \let\Hy@driver\Hy@defaultdriver + \def\HyOpt@DriverType{ (default)}% + \else + \def\HyOpt@DriverType{ (fallback)}% + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \ifx\Hy@driver\Hy@defaultdriver + \def\Hy@temp{hdviwind}% + \ifx\Hy@temp\Hy@driver + \kvsetkeys{Hyp}{colorlinks}% + \PassOptionsToPackage{dviwindo}{color}% + \fi + \fi + \fi + \else + \def\HyOpt@DriverType{ (custom)}% + \let\Hy@driver\HyOpt@CustomDriver + \fi + \Hy@InfoNoLine{Driver\HyOpt@DriverType: \Hy@driver}% + \chardef\Hy@VersionChecked=0 % + \input{\Hy@driver.def}% + \ifcase\Hy@VersionChecked + \Hy@VersionCheck{\Hy@driver.def}% + \fi + \let\@unprocessedoptions\relax + \Hy@RestoreCatcodes + \Hy@DisableOption{tex4ht}% + \Hy@DisableOption{pdftex}% + \Hy@DisableOption{nativepdf}% + \Hy@DisableOption{dvipdfm}% + \Hy@DisableOption{dvipdfmx}% + \Hy@DisableOption{dvipdfmx-outline-open}% + \Hy@DisableOption{pdfmark}% + \Hy@DisableOption{dvips}% + \Hy@DisableOption{hypertex}% + \Hy@DisableOption{vtex}% + \Hy@DisableOption{vtexpdfmark}% + \Hy@DisableOption{dviwindo}% + \Hy@DisableOption{dvipsone}% + \Hy@DisableOption{textures}% + \Hy@DisableOption{latex2html}% + \Hy@DisableOption{ps2pdf}% + \Hy@DisableOption{xetex}% + \Hy@DisableOption{driverfallback}% + \Hy@DisableOption{customdriver}% + \Hy@DisableOption{pdfversion}% +} +% \end{macrocode} +% Support for open outlines is enabled for Xe\TeX\ >= 0.9995. +% I don't know, if older versions also support this. +% AFAIK older dvipdfmx versions will break, thus the +% switch cannot be turned on by default. +% \begin{macrocode} +\newif\ifHy@DvipdfmxOutlineOpen +\ifxetex + \ifdim\number\XeTeXversion\XeTeXrevision in<0.9995in % + \else + \chardef\SpecialDvipdfmxOutlineOpen\@ne + \Hy@DvipdfmxOutlineOpentrue + \fi +\fi +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname SpecialDvipdfmxOutlineOpen\endcsname\relax +\else + \ifnum\SpecialDvipdfmxOutlineOpen>\z@ + \Hy@DvipdfmxOutlineOpentrue + \fi +\fi +% \end{macrocode} +% +% \subsubsection{Bookmarks} +% \begin{macrocode} +\def\WriteBookmarks{0} +\def\@bookmarkopenstatus#1{% + \ifHy@bookmarksopen +% \end{macrocode} +% The purpose of the |\@firstofone|-number-space-construct +% is that no |\relax| will be inserted by \TeX{} before the |\else|: +% \begin{macrocode} + \ifnum#1<\expandafter\@firstofone\expandafter + {\number\@bookmarksopenlevel} % explicit space + \else + -% + \fi + \else + -% + \fi +} +\ifHy@bookmarks + \Hy@Info{Bookmarks ON}% + \ifx\@pdfpagemode\@empty + \def\@pdfpagemode{UseOutlines}% + \fi +\else + \let\@bookmarkopenstatus\ltx@gobble + \Hy@Info{Bookmarks OFF}% + \Hy@AtEndOfPackage{% + \global\let\ReadBookmarks\relax + \global\let\WriteBookmarks\relax + }% + \ifx\@pdfpagemode\@empty + \def\@pdfpagemode{UseNone}% + \fi +\fi +\Hy@DisableOption{bookmarks} +% \end{macrocode} +% +% Add wrapper for setting standard catcodes (babel's shorthands). +% \begin{macrocode} +\def\Hy@CatcodeWrapper#1{% + \let\Hy@EndWrap\ltx@empty + \def\TMP@EnsureCode##1##2{% + \edef\Hy@EndWrap{% + \Hy@EndWrap + \catcode##1 \the\catcode##1\relax + }% + \catcode##1 ##2\relax + }% + \TMP@EnsureCode{10}{12}% ^^J + \TMP@EnsureCode{33}{12}% ! + \TMP@EnsureCode{34}{12}% " + \TMP@EnsureCode{36}{3}% $ (math) + \TMP@EnsureCode{38}{4}% & (alignment) + \TMP@EnsureCode{39}{12}% ' + \TMP@EnsureCode{40}{12}% ( + \TMP@EnsureCode{41}{12}% ) + \TMP@EnsureCode{42}{12}% * + \TMP@EnsureCode{43}{12}% + + \TMP@EnsureCode{44}{12}% , + \TMP@EnsureCode{45}{12}% - + \TMP@EnsureCode{46}{12}% . + \TMP@EnsureCode{47}{12}% / + \TMP@EnsureCode{58}{12}% : + \TMP@EnsureCode{59}{12}% ; + \TMP@EnsureCode{60}{12}% < + \TMP@EnsureCode{61}{12}% = + \TMP@EnsureCode{62}{12}% > + \TMP@EnsureCode{63}{12}% ? + \TMP@EnsureCode{91}{12}% [ + \TMP@EnsureCode{93}{12}% ] + \TMP@EnsureCode{94}{7}% ^ (superscript) + \TMP@EnsureCode{95}{8}% _ (subscript) + \TMP@EnsureCode{96}{12}% ` + \TMP@EnsureCode{124}{12}% | + \TMP@EnsureCode{126}{13}% ~ (active) + #1\relax + \Hy@EndWrap +} +% \end{macrocode} +% +% |\HyColor@UseColor| expects a macro as argument. It contains +% the color specification. +% \begin{macrocode} +\Hy@AtBeginDocument{% + \ifHy@ocgcolorlinks + \kvsetkeys{Hyp}{colorlinks}% + \ifHy@pdfa + \Hy@Warning{% + PDF/A: Optional Content Groups are prohibited,\MessageBreak + using `colorlinks' instead of `ocgcolorlinks'% + }% + \Hy@ocgcolorlinksfalse + \fi + \fi + \ifHy@ocgcolorlinks + \else + \Hy@DisableOption{ocgcolorlinks}% + \fi + \ifHy@colorlinks + \def\@pdfborder{0 0 0}% + \let\@pdfborderstyle\@empty + \ifHy@typexml + \else + \Hy@CatcodeWrapper{% + \RequirePackage{color}% + }% + \fi + \def\Hy@colorlink#1{% + \begingroup + \HyColor@UseColor#1% + }% + \def\Hy@endcolorlink{\endgroup}% + \Hy@Info{Link coloring ON}% + \else + \ifHy@frenchlinks + \def\Hy@colorlink#1{\begingroup\fontshape{\scdefault}\selectfont}% + \def\Hy@endcolorlink{\endgroup}% + \Hy@Info{French linking ON}% + \else +% \end{macrocode} +% for grouping consistency: +% \begin{macrocode} + \def\Hy@colorlink#1{\begingroup}% + \def\Hy@endcolorlink{\endgroup}% + \Hy@Info{Link coloring OFF}% + \fi + \fi + \Hy@DisableOption{colorlinks}% + \Hy@DisableOption{frenchlinks}% + \ifHy@texht + \long\def\@firstoffive#1#2#3#4#5{#1}% + \long\def\@secondoffive#1#2#3#4#5{#2}% + \long\def\@thirdoffive#1#2#3#4#5{#3}% + \long\def\@fourthoffive#1#2#3#4#5{#4}% + \long\def\@fifthoffive#1#2#3#4#5{#5}% + \providecommand*\@safe@activestrue{}% + \providecommand*\@safe@activesfalse{}% + \def\T@ref#1{% + \Hy@safe@activestrue + \expandafter\@setref\csname r@#1\endcsname\@firstoffive{#1}% + \Hy@safe@activesfalse + }% + \def\T@pageref#1{% + \Hy@safe@activestrue + \expandafter\@setref\csname r@#1\endcsname\@secondoffive{#1}% + \Hy@safe@activesfalse + }% + \else + \ifHy@typexml + \else + \Hy@CatcodeWrapper{% + \RequirePackage{nameref}[2012/07/28]% + }% + \fi + \fi + \DeclareRobustCommand\ref{% + \@ifstar\@refstar\T@ref + }% + \DeclareRobustCommand\pageref{% + \@ifstar\@pagerefstar\T@pageref + }% +% \@ifclassloaded{memoir}{% +% \ltx@IfUndefined{@mem@titlerefnolink}\ltx@secondoftwo{% +% \ltx@IfUndefined{@mem@titleref}\ltx@secondoftwo\ltx@firstoftwo +% }% +% }\ltx@secondoftwo +% {% +% \DeclareRobustCommand*{\nameref}{% +% \@ifstar\@mem@titlerefnolink\@mem@titleref +% }% +% }{% + \DeclareRobustCommand*{\nameref}{% + \@ifstar\@namerefstar\T@nameref + }% +% }% +} +\Hy@AtBeginDocument{% + \ifHy@texht + \else + \Hy@CatcodeWrapper\ReadBookmarks + \fi +} +% \end{macrocode} +% \begin{macrocode} +\ifHy@backref + \RequirePackage{backref}% +\else + \let\Hy@backout\@gobble +\fi +\Hy@DisableOption{backref} +\Hy@DisableOption{pagebackref} +% \end{macrocode} +% \begin{macrocode} +\Hy@activeanchorfalse +% \end{macrocode} +% +% \section{User hypertext macros}\label{usermacros} +% +% We need to normalise all user commands taking a URL argument; +% Within the argument the following special definitions apply: +% |\#|, |\%|, |~| produce |#|, |%|, |~| respectively. +% for consistency |\~| produces |~| as well. +% At the \emph{top level only} ie not within the argument of another +% command, you can use |#| and |%| unescaped, to produce themselves. +% even if, say, |#| is entered as |#| it will be converted to |\#| +% so it does not die if written to an aux file etc. |\#| will write +% as |#| locally while making |\special|s. +% \begin{macrocode} +\begingroup + \endlinechar=-1 % + \catcode`\^^A=14 % + \catcode`\^^M\active + \catcode`\%\active + \catcode`\#\active + \catcode`\_\active + \catcode`\$\active + \catcode`\&\active + \gdef\hyper@normalise{^^A + \begingroup + \catcode`\^^M\active + \def^^M{ }^^A + \catcode`\%\active + \let%\@percentchar + \let\%\@percentchar + \catcode`\#\active + \def#{\hyper@hash}^^A + \def\#{\hyper@hash}^^A + \@makeother\&^^A + \edef&{\string&}^^A + \edef\&{\string&}^^A + \edef\textunderscore{\string_}^^A + \let\_\textunderscore + \catcode`\_\active + \let_\textunderscore + \let~\hyper@tilde + \let\~\hyper@tilde + \let\textasciitilde\hyper@tilde + \let\\\@backslashchar + \edef${\string$}^^A + \Hy@safe@activestrue + \hyper@n@rmalise + }^^A + \catcode`\#=6 ^^A + \gdef\Hy@ActiveCarriageReturn{^^M}^^A + \gdef\hyper@n@rmalise#1#2{^^A + \def\Hy@tempa{#2}^^A + \ifx\Hy@tempa\Hy@ActiveCarriageReturn + \ltx@ReturnAfterElseFi{^^A + \hyper@@normalise{#1}^^A + }^^A + \else + \ltx@ReturnAfterFi{^^A + \hyper@@normalise{#1}{#2}^^A + }^^A + \fi + }^^A + \gdef\hyper@@normalise#1#2{^^A + \edef\Hy@tempa{^^A + \endgroup + \noexpand#1{\Hy@RemovePercentCr#2%^^M\@nil}^^A + }^^A + \Hy@tempa + }^^A + \gdef\Hy@RemovePercentCr#1%^^M#2\@nil{^^A + #1^^A + \ifx\limits#2\limits + \else + \ltx@ReturnAfterFi{^^A + \Hy@RemovePercentCr #2\@nil + }^^A + \fi + }^^A +\endgroup +\providecommand*\hyper@chars{% + \let\#\hyper@hash + \let\%\@percentchar + \Hy@safe@activestrue +} +% \end{macrocode} +% +% \begin{macrocode} +\def\hyperlink#1#2{% + \hyper@@link{}{#1}{#2}% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\Hy@VerboseLinkStart#1#2{% + \ifHy@verbose + \begingroup + \Hy@safe@activestrue + \xdef\Hy@VerboseGlobalTemp{(#1) `#2'}% + \Hy@Info{Reference \Hy@VerboseGlobalTemp}% + \xdef\Hy@VerboseGlobalTemp{% + \Hy@VerboseGlobalTemp, % + line \the\inputlineno + }% + \endgroup + \let\Hy@VerboseLinkInfo\Hy@VerboseGlobalTemp + \@onelevel@sanitize\Hy@VerboseLinkInfo + \fi +} +% \end{macrocode} +% \begin{macrocode} +\def\Hy@VerboseLinkInfo{<VerboseLinkInfo>} +\def\Hy@VerboseLinkStop{% + \ifHy@verbose + \begingroup + \edef\x{\endgroup + \write\m@ne{% + Package `hyperref' Info: % + End of reference \Hy@VerboseLinkInfo.% + }% + }% + \x + \fi +} +% \end{macrocode} +% \begin{macrocode} +\def\Hy@VerboseAnchor#1{% + \ifHy@verbose + \begingroup + \Hy@safe@activestrue + \Hy@Info{Anchor `\HyperDestNameFilter{#1}'}% + \endgroup + \fi +} +% \end{macrocode} +% +% \begin{macrocode} +\def\Hy@AllowHyphens{% + \relax + \ifhmode + \penalty\@M + \hskip\z@skip + \fi +} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareRobustCommand*{\href}[1][]{% + \begingroup + \setkeys{href}{#1}% + \@ifnextchar\bgroup\Hy@href{\hyper@normalise\href@}% +} +\def\Hy@href#{% + \hyper@normalise\href@ +} +\begingroup + \catcode`\$=6 % + \catcode`\#=12 % + \gdef\href@$1{\expandafter\href@split$1##\\}% + \gdef\href@split$1#$2#$3\\$4{% + \hyper@@link{$1}{$2}{$4}% + \endgroup + }% +\endgroup +% \end{macrocode} +% Option `page'. +% \begin{macrocode} +\define@key{href}{page}{% + \def\Hy@href@page{#1}% +} +\let\Hy@href@page\@empty +\newcount\c@Hy@tempcnt +\def\theHy@tempcnt{\the\c@Hy@tempcnt} +\def\Hy@MakeRemoteAction{% + \ifx\Hy@href@page\@empty + \def\Hy@href@page{0}% + \else + \setcounter{Hy@tempcnt}{\Hy@href@page}% + \ifnum\c@Hy@tempcnt<\@ne + \Hy@Warning{% + Invalid page number (\theHy@tempcnt)\MessageBreak + for remote PDF file.\MessageBreak + Using page 1% + }% + \def\Hy@href@page{0}% + \else + \global\advance\c@Hy@tempcnt\m@ne + \edef\Hy@href@page{\theHy@tempcnt}% + \fi + \fi +% \end{macrocode} +% If a next action is set, then also a new window +% should be opened. Otherwise AR reclaims that it +% closes the current file with discarding the next actions. +% \begin{macrocode} + \ifx\Hy@href@nextactionraw\@empty + \else + \Hy@pdfnewwindowsettrue + \Hy@pdfnewwindowtrue + \fi +} +% \end{macrocode} +% Option `pdfremotestartview'. +% \begin{macrocode} +\define@key{href}{pdfremotestartview}{% + \setkeys{Hyp}{pdfremotestartview={#1}}% +} +% \end{macrocode} +% Option `pdfnewwindow'. +% \begin{macrocode} +\let\KV@href@pdfnewwindow\KV@Hyp@pdfnewwindow +\let\KV@href@pdfnewwindow@default\KV@Hyp@pdfnewwindow@default +% \end{macrocode} +% Option `ismap'. +% \begin{macrocode} +\newif\ifHy@href@ismap +\define@key{href}{ismap}[true]{% + \ltx@IfUndefined{Hy@href@ismap#1}{% + \Hy@Error{% + Invalid value (#1) for key `ismap'.\MessageBreak + Permitted values are `true' or `false'.\MessageBreak + Ignoring `ismap'% + }\@ehc + }{% + \csname Hy@href@ismap#1\endcsname + }% +} +% \end{macrocode} +% Option `nextactionraw'. +% \begin{macrocode} +\let\Hy@href@nextactionraw\@empty +\define@key{href}{nextactionraw}{% + \edef\Hy@href@nextactionraw{#1}% + \ifx\Hy@href@nextactionraw\@empty + \else + \Hy@Match\Hy@href@nextactionraw{}{% + ^(\HyPat@ObjRef/|<<.*/S[ /].+>>|% + \[( ?\HyPat@ObjRef/|<<.*/S[ /].+>>)+ ?])$% + }{}{% + \Hy@Warning{Invalid value for `nextactionraw':\MessageBreak + \Hy@href@nextactionraw\MessageBreak + The action is discarded% + }% + }% + \ifx\Hy@href@nextactionraw\@empty + \else + \edef\Hy@href@nextactionraw{/Next \Hy@href@nextactionraw}% + \fi + \fi +} +\def\HyPat@ObjRef/{.+} +% \end{macrocode} +% Load package |url.sty| and save the meaning of +% the original \cmd{\url} in \cmd{\nolinkurl}. +% \begin{macrocode} +\RequirePackage{url} +\let\HyOrg@url\url +\def\Hurl{\begingroup \Url} +\DeclareRobustCommand*{\nolinkurl}{\hyper@normalise\nolinkurl@} +\def\nolinkurl@#1{\Hurl{#1}} +\DeclareRobustCommand*{\url}{\hyper@normalise\url@} +\def\url@#1{\hyper@linkurl{\Hurl{#1}}{#1}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareRobustCommand*{\hyperimage}{\hyper@normalise\hyper@image} +\providecommand\hyper@image[2]{#2} +% \end{macrocode} +% +% \begin{macrocode} +\def\hypertarget#1#2{% + \ifHy@nesting + \hyper@@anchor{#1}{#2}% + \else + \hyper@@anchor{#1}{\relax}#2% + \fi +} +% \end{macrocode} +% |\hyperref| is more complicated, as it includes the concept of a +% category of link, used to make the name. This is not really used in this +% package. |\hyperdef| sets up an anchor in the same way. They each have +% three parameters of category, linkname, and marked text, and |\hyperref| +% also has a first parameter of URL. +% If there is an optional first parameter to |\hyperdef|, +% it is the name of a \LaTeX\ label which can be used in +% a short form of |\hyperref| later, to avoid +% remembering the name and category. +% \begin{macrocode} +\DeclareRobustCommand*{\hyperref}{% + \@ifnextchar[{\Hy@babelnormalise\label@hyperref}\@hyperref +} +\def\Hy@babelnormalise#1[#2]{% + \begingroup + \Hy@safe@activestrue + \edef\Hy@tempa{% + \endgroup + \noexpand#1[{#2}]% + }% + \Hy@tempa +} +\def\@hyperref{\hyper@normalise\@@hyperref} +\def\@@hyperref#1#2#3{% + \edef\ref@one{\ifx\\#2\\\else#2.\fi#3}% + \expandafter\tryhyper@link\ref@one\\{#1}% +} +\def\tryhyper@link#1\\#2{% + \hyper@@link{#2}{#1}% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\hyperdef{\@ifnextchar[{\label@hyperdef}{\@hyperdef}} +\def\@hyperdef#1#2#3{%, category, name, text + \ifx\\#1\\% + \def\Hy@AnchorName{#2}% + \else + \def\Hy@AnchorName{#1.#2}% + \fi + \ifHy@nesting + \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{#3}% + \else + \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{\relax}#3% + \fi +} +% \end{macrocode} +% We also have a need to give a \LaTeX\ \emph{label} to a +% hyper reference, to ease the pain of referring to it later. +% \verb|\hyperrefundefinedlink| may be redefined by a user +% to add colour or other formatting. +% \begin{macrocode} +\let\hyperrefundefinedlink\@firstofone +\def\label@hyperref[#1]{% + \expandafter\label@@hyperref\csname r@#1\endcsname{#1}% +}% +\def\label@@hyperref#1#2#3{% + \ifx#1\relax + \protect\G@refundefinedtrue + \@latex@warning{% + Hyper reference `#2' on page \thepage \space undefined% + }% + \begingroup + \hyperrefundefinedlink{#3}% + \endgroup + \else + \hyper@@link{\expandafter\@fifthoffive#1}% + {\expandafter\@fourthoffive#1\@empty\@empty}{#3}% + \fi +} +\def\label@hyperdef[#1]#2#3#4{% label name, category, name, + % anchor text + \@bsphack + \ifx\\#2\\% + \def\Hy@AnchorName{#3}% + \else + \def\Hy@AnchorName{#2.#3}% + \fi + \if@filesw + \protected@write\@auxout{}{% + \string\newlabel{#1}{{}{}{}{\Hy@AnchorName}{}}% + }% + \fi + \@esphack + \ifHy@nesting + \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{#4}% + \else + \expandafter\hyper@@anchor\expandafter{\Hy@AnchorName}{\relax}#4% + \fi +} +% \end{macrocode} +% +% \subsection{Link box support for XeTeX} +% +% \begin{macrocode} +\newdimen\XeTeXLinkMargin +\setlength{\XeTeXLinkMargin}{2pt} +\ifxetex + \font\XeTeXLink@font=pzdr at 1sp\relax + \newcommand*{\XeTeXLink@space}{% + \begingroup + \XeTeXLink@font + \@xxxii + \endgroup + }% + \newcommand{\XeTeXLinkBox}[1]{% + \begingroup + \leavevmode + \sbox\z@{#1}% + \begingroup + \dimen@=\dp\z@ + \advance\dimen@\XeTeXLinkMargin + \setbox\tw@=\llap{% + \hb@xt@\XeTeXLinkMargin{% + \lower\dimen@\hbox{\XeTeXLink@space}% + \hss + }% + }% + \dp\tw@=\dp\z@ + \ht\tw@=\ht\z@ + \copy\tw@ + \endgroup + \copy\z@ + \dimen@=\ht\z@ + \advance\dimen@\XeTeXLinkMargin + \setbox\tw@=\rlap{% + \hb@xt@\XeTeXLinkMargin{% + \hss + \raise\dimen@\hbox{\XeTeXLink@space}% + }% + }% + \dp\tw@=\dp\z@ + \ht\tw@=\ht\z@ + \copy\tw@ + \endgroup + }% +\else + \newcommand*{\XeTeXLinkBox}[1]{% + \begingroup + \leavevmode + \sbox\z@{#1}% + \copy\z@ + \endgroup + }% +\fi +% \end{macrocode} +% +% \section{Underlying basic hypertext macros}\label{coremacros} +% +% Links have an optional type, a filename (possibly a URL), +% an internal name, and some marked text. (Caution: the internal +% name may contain babel shorthand characters.) +% If the second parameter is empty, its an internal link, +% otherwise we need to open another file or a URL. +% A link start has a type, and a URL. +% \begin{macrocode} +\def\hyper@@link{\let\Hy@reserved@a\relax + \@ifnextchar[{\hyper@link@}{\hyper@link@[link]}% +} +% #1: type +% #2: URL +% #3: destination name +% #4: text +\def\hyper@link@[#1]#2#3#4{% + \ltx@ifempty{#4}{% link text + \Hy@Warning{Suppressing empty link}% + }{% + \begingroup + \protected@edef\Hy@tempa{#2}% + \edef\Hy@tempb{#3}% + \ifx\Hy@tempa\ltx@empty + \ifx\Hy@tempb\ltx@empty + \Hy@Warning{Suppressing link with empty target}% + \toks@{% + \endgroup + \ltx@secondoftwo + }% + \else + \toks@{% + \endgroup + \hyper@link{#1}% + }% + \fi + \else + \toks@{% + \endgroup + \expandafter\hyper@readexternallink#2\\{#1}% + }% + \fi + \Hy@safe@activesfalse + \toks@\expandafter{% + \the\expandafter\toks@ + \expandafter{\Hy@tempb}{#4}% + }% + \the\toks@ + }% +} +% \end{macrocode} +% The problem here is that the first (URL) parameter may be a +% local \texttt{file:} reference +% (in which case some browsers treat it differently) +% or a genuine URL, in which case we'll have to activate +% a real Web browser. +% Note that a simple name is also a URL, as that is interpreted +% as a relative file name. We have to worry about |#| signs in a local +% file as well. +% +% \begin{macrocode} +\def\hyper@readexternallink#1\\#2#3#4{% + \begingroup + \let\\\relax + \expandafter\endgroup + \expandafter\@@hyper@@readexternallink#1\\{#2}{#3}{#4}% +} +\def\@@hyper@@readexternallink#1\\#2#3#4{% +% \end{macrocode} +% Parameters are: +% \begin{enumerate} +% \item The URL or file name +% \item The type +% \item The internal name +% \item The link string +% \end{enumerate} +% We need to get the 1st parameter properly expanded, +% so we delimit the arguments rather than passing it inside a group. +% \begin{macrocode} + \@hyper@readexternallink{#2}{#3}{#4}#1::\\{#1}% +} +% \end{macrocode} +% Now (potentially), we are passed: +% 1) The link type +% 2) The internal name, +% 3) the link string, +% 4) the URL type (http, mailto, file etc), +% 5) the URL details +% 6) anything after a real : in the URL +% 7) the whole URL again +% \begin{macrocode} +\def\@pdftempwordfile{file}% +\def\@pdftempwordrun{run}% +\def\@hyper@readexternallink#1#2#3#4:#5:#6\\#7{% +% \end{macrocode} +% If there are no colons at all (|#6| is blank), its a local +% file; if the URL type (|#4|) is blank, its probably a Mac filename, +% so treat it like a \texttt{file:} URL. The only flaw is if +% its a relative Mac path, with several colon-separated elements --- +% then we lose. Such names must be prefixed with an explicit |dvi:| +% \begin{macrocode} + \ifx\\#6\\% + \@hyper@linkfile file:#7\\{#3}{#2}{#7}% + \else + \ifx\\#4\\% + \@hyper@linkfile file:#7\\{#3}{#2}{#7}% + \else +% \end{macrocode} +% If the URL type is `file', pass it for local opening +% \begin{macrocode} + \def\@pdftempa{#4}% + \ifx\@pdftempa\@pdftempwordfile + \@hyper@linkfile#7\\{#3}{#2}{#7}% + \else +% \end{macrocode} +% if it starts `run:', its to launch an application. +% \begin{macrocode} + \ifx\@pdftempa\@pdftempwordrun + \ifHy@pdfa + \Hy@Error{% + PDF/A: Launch action is prohibited% + }\@ehc + \begingroup + \leavevmode + #2% + \endgroup + \else + \@hyper@launch#7\\{#3}{#2}% + \fi + \else +% \end{macrocode} +% otherwise its a URL +% \begin{macrocode} + \hyper@linkurl{#3}{#7\ifx\\#2\\\else\hyper@hash#2\fi}% + \fi + \fi + \fi + \fi +} +% \end{macrocode} +% By default, turn |run:| into |file:| +% \begin{macrocode} +\def\@hyper@launch run:#1\\#2#3{% filename, anchor text, linkname + \hyper@linkurl{#2}{% + \Hy@linkfileprefix + #1% + \ifx\\#3\\% + \else + \hyper@hash + #3% + \fi + }% +} +% \end{macrocode} +% D P Story <story@uakron.edu> pointed out that relative paths +% starting .. fell over. Switched to using |\filename@parse| to +% solve this. +% \begin{macrocode} +\def\@hyper@linkfile file:#1\\#2#3#4{% + %file url,link string, name, original uri + \filename@parse{#1}% + \ifx\filename@ext\relax + \edef\filename@ext{\XR@ext}% + \fi + \def\use@file{\filename@area\filename@base.\filename@ext}% + \Hy@IfStringEndsWith\filename@ext\XR@ext{% + \hyper@linkfile{#2}{\use@file}{#3}% + }{% + \ifx\@baseurl\@empty + \hyper@linkurl{#2}{% + #4\ifx\\#3\\\else\hyper@hash#3\fi + }% + \else + \hyper@linkurl{#2}{\use@file\ifx\\#3\\\else\hyper@hash#3\fi}% + \fi + }% +} +% \end{macrocode} +% \begin{macrocode} +\def\Hy@IfStringEndsWith#1#2{% + \begingroup + \edef\x{#1}% + \@onelevel@sanitize\x + \edef\x{.\x$}% + \edef\y{#2}% + \@onelevel@sanitize\y + \edef\y{.\y$}% + \expandafter\def\expandafter\z\expandafter##\expandafter1\y##2\@nil{% + \endgroup + \ifx\relax##2\relax + \expandafter\ltx@secondoftwo + \else + \expandafter\ltx@firstoftwo + \fi + }% + \expandafter\expandafter\expandafter\z\expandafter\x\y\@nil +} +% \end{macrocode} +% \begin{macrocode} +\def\Hy@StringLocalhost{localhost} +\@onelevel@sanitize\Hy@StringLocalhost +\def\Hy@CleanupFile#1{% + \edef#1{#1}% + \expandafter\Hy@@CleanupFile#1\hbox///\hbox\@nil{#1}% +} +\def\Hy@@CleanupFile#1//#2/#3\hbox#4\@nil#5{% + \begingroup + \toks@{\endgroup}% + \def\x{#1}% + \ifx\x\@empty + \def\x{#2}% + \ifx\x\@empty + \toks@{\endgroup\def#5{/#3}}% + \else + \@onelevel@sanitize\x + \ifx\x\Hy@StringLocalhost + \toks@{\endgroup\def#5{/#3}}% + \fi + \fi + \fi + \the\toks@ +} +% \end{macrocode} +% Anchors have a name, and marked text. +% We have to be careful with the marked text, as if we break +% off part of something to put a |\special| around it, all hell breaks +% loose. Therefore, we check the category code of the first token, +% and only proceed if its safe. Tanmoy sorted this out. +% +% A curious case arises if the original parameter +% was in braces. That means that |#2| comes here a multiple +% letters, and the |noexpand| just looks at the first one, +% putting the rest in the output. Yuck. +% \begin{macrocode} +\long\def\hyper@@anchor#1#2{\@hyper@@anchor#1\relax#2\relax} +\long\def\@hyper@@anchor#1\relax#2#3\relax{% + \ifx\\#1\\% + #2\Hy@Warning{Ignoring empty anchor}% + \else + \def\anchor@spot{#2#3}% + \let\put@me@back\@empty + \ifx\relax#2\relax + \else + \ifHy@nesting + \else + \ifcat a\noexpand#2\relax + \else + \ifcat 0\noexpand#2 \relax + \else +% \typeout{Anchor start is not alphanumeric % +% on input line\the\inputlineno% +% }% + \let\anchor@spot\@empty + \def\put@me@back{#2#3}% + \fi + \fi + \fi + \fi + \ifHy@activeanchor + \anchor@spot + \else + \hyper@anchor{#1}% + \fi + \expandafter\put@me@back + \fi + \let\anchor@spot\@empty +} +\let\anchor@spot\ltx@empty +% \end{macrocode} +% +% \section{Option `destlabel'} +% +% \begin{macrocode} +\ifHy@destlabel +% \end{macrocode} +% +% \begin{macro}{\hyper@newdestlabel} +% \begin{macrocode} + \def\hyper@newdestlabel#1#2{% + \begingroup + \Hy@safe@activestrue + \edef\x{\endgroup + \noexpand\@newl@bel{HyDL}{#1}{#2}% + }% + \x + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hyper@destlabel@hook} +% \begin{macrocode} + \providecommand*{\hyper@destlabel@hook}{}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@DestRename} +% \begin{macrocode} + \newcommand*{\Hy@DestRename}[2]{% + \ltx@IfUndefined{HyDL!#1}{% + \begingroup + \Hy@safe@activestrue + \edef\dest@name{#1}% + \edef\label@name{#2}% + \hyper@destlabel@hook + \Hy@IsNotEmpty{dest@name}{% + \Hy@IsNotEmpty{label@name}{% + \global\expandafter + \let\csname HyDL!#1\endcsname\ltx@empty + \if@filesw + \protected@write\@auxout{}{% + \string\hyper@newdestlabel + {#1}% + {\label@name}% + }% + \fi + }% + }% + \endgroup + }{}% + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyperDestRename} +% \begin{macrocode} + \newcommand*{\HyperDestRename}[2]{% + \AtBeginDocument{% + \Hy@DestRename{#1}{#2}% + }% + }% + \AtBeginDocument{% + \let\HyperDestRename\Hy@DestRename + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@IsNotEmpty} +% \begin{macrocode} + \def\Hy@IsNotEmpty#1{% + \ltx@IfUndefined{#1}\ltx@gobble{% + \expandafter\ifx\csname#1\endcsname\ltx@empty + \expandafter\ltx@gobble + \else + \expandafter\ltx@firstofone + \fi + }% + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} + \ltx@GlobalAppendToMacro\label@hook{% + \HyperDestRename\@currentHref\label@name + }% +% \end{macrocode} +% +% \begin{macro}{\HyperDestLabelReplace} +% \begin{macrocode} + \def\HyperDestLabelReplace#1{% + \ltx@ifundefined{HyDL@#1}{% + #1% + }{% + \csname HyDL@#1\endcsname + }% + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyperDestNameFilter} +% \begin{macrocode} +\let\HyperDestNameFilter\HyperDestLabelReplace +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\else +% \end{macrocode} +% \begin{macro}{\hyper@newdestlabel} +% \begin{macrocode} + \let\hyper@newdestlabel\ltx@gobbletwo +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyperDestLabelReplace} +% \begin{macrocode} + \let\HyperDestLabelReplace\ltx@firstofone +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyperDestRename} +% \begin{macrocode} +% \end{macrocode} + \let\HyperDestRename\ltx@gobbletwo +% \end{macro} +% \begin{macrocode} +\fi +% \end{macrocode} +% +% \begin{macrocode} +\Hy@DisableOption{destlabel} +% \end{macrocode} +% +% Provide a dummy default definition of \cs{hyper@newdestlabel} +% inside the .aux files. +% \begin{macrocode} +\AddLineBeginAux{% + \string\providecommand\string\hyper@newdestlabel[2]{}% +} +% \end{macrocode} +% +% \section{Compatibility with the \emph{\LaTeX{}2html} package}\label{latex2html} +% +% Map our macro names on to Nikos', so that documents prepared +% for that system will work without change. +% +% Note, however, that the whole complicated structure for +% segmenting documents is not supported; it is assumed that the user +% will load |html.sty| first, and then |hyperref.sty|, so that the +% definitions in |html.sty| take effect, and are then overridden +% in a few circumstances by this package. +% \begin{macrocode} +\let\htmladdimg\hyperimage +% \end{macrocode} +% +% \begin{macrocode} +\def\htmladdnormallink#1#2{\href{#2}{#1}} +\def\htmladdnormallinkfoot#1#2{\href{#2}{#1}\footnote{#2}} +\def\htmlref#1#2{% anchor text, label + \label@hyperref[{#2}]{#1}% +} +% \end{macrocode} +% This is really too much. The \LaTeX2html package defines its own +% |\hyperref| command, with a different syntax. Was this always here? +% Its weird, anyway. We interpret it in the `printed' way, since +% we are about fidelity to the page. +% \begin{macrocode} +\def\@@latextohtmlX{% + \let\hhyperref\hyperref + \def\hyperref##1##2##3##4{% anchor text for HTML + % text to print before label in print + % label + % post-label text in print + ##2\ref{##4}##3% + }% +} +% \end{macrocode} +% +% \section{Forms creation} +% Allow for creation of PDF or HTML forms. The effects here are +% limited somewhat by the need to support both output formats, +% so it may not be as clever as something which only wants +% to make PDF forms. +% +% I (Sebastian) could not have started this without the +% encouragement of T V Raman. +% +% \subsection{Field flags} +% +% The field flags are organized in a bit set. +% \begin{macrocode} +\RequirePackage{bitset} +% \end{macrocode} +% +% Each flag has a option name, an \cs{if} switch, +% and a bit position. The default is always `false', the +% flag is clear. +% This is also the default of the switch created by \cs{newif}. +% +% The names of the flags in the PDF specification (1.7) +% are used as lowercase option names. +% \begin{macro}{\HyField@NewFlag} +% |#1|: type: |F| annot flags, |Ff| field flags\\ +% |#2|: PDF name\\ +% |#3|: PDF position +% \begin{macrocode} +\def\HyField@NewFlag#1#2{% + \lowercase{\HyField@NewOption{#2}}% + \lowercase{\HyField@NewBitsetFlag{#2}}{#2}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@NewFlagOnly} +% \begin{macrocode} +\def\HyField@NewFlagOnly#1#2{% + \lowercase{\HyField@NewBitsetFlag{#2}}{#2}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@NewOption} +% |#1|: option name +% \begin{macrocode} +\def\HyField@NewOption#1{% + \expandafter\newif\csname ifFld@#1\endcsname + \define@key{Field}{#1}[true]{% + \lowercase{\Field@boolkey{##1}}{#1}% + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@NewBitsetFlag} +% Package `bitset' uses zero based positions, the +% PDF specification starts with one.\\ +% |#1|: option\\ +% |#2|: PDF name\\ +% |#3|: type: |F| annot flags, |Ff| field flags\\ +% |#4|: PDF position +% \begin{macrocode} +\def\HyField@NewBitsetFlag#1#2#3#4{% + \begingroup + \count@=#4\relax + \advance\count@\m@ne + \def\x##1{% + \endgroup + \expandafter\def\csname HyField@#3@#1\endcsname{##1}% + \expandafter\ifx\csname HyField@#3@##1\endcsname\relax + \expandafter\edef\csname HyField@#3@##1\endcsname{% + (\number#4) #2% + }% + \else + \expandafter\edef\csname HyField@#3@##1\endcsname{% + \csname HyField@#3@##1\endcsname + /#2% + }% + \fi + }% + \expandafter\x\expandafter{\the\count@}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@UseFlag} +% The bit set is |HyField@#1| +% \begin{macrocode} +\def\HyField@UseFlag#1#2{% + \lowercase{\HyField@@UseFlag{#2}}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@@UseFlag} +% \begin{macrocode} +\def\HyField@@UseFlag#1#2{% + \bitsetSetValue{HyField@#2}{% + \csname HyField@#2@#1\endcsname + }{% + \csname ifFld@#1\endcsname 1\else 0\fi + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@SetFlag} +% The bit set is |HyField@#1| +% \begin{macrocode} +\def\HyField@SetFlag#1#2{% + \lowercase{\HyField@@SetFlag{#2}}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@@SetFlag} +% \begin{macrocode} +\def\HyField@@SetFlag#1#2{% + \bitsetSetValue{HyField@#2}{% + \csname HyField@#2@#1\endcsname + }{1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@PrintFlags} +% \begin{macrocode} +\def\HyField@PrintFlags#1#2{% + \ifHy@verbose + \begingroup + \let\Hy@temp\@empty + \let\MessageBreak\relax + \expandafter\@for\expandafter\x\expandafter:\expandafter=% + \bitsetGetSetBitList{HyField@#1}\do{% + \edef\Hy@temp{% + \Hy@temp + \csname HyField@#1@\x\endcsname\MessageBreak + }% + }% + \edef\x{\endgroup + \noexpand\Hy@Info{% + Field flags: % + \expandafter\ifx\@car#1\@nil S\else/\fi + #1 % + \bitsetGetDec{HyField@#1} % + (0x\bitsetGetHex{HyField@#1}{32})\MessageBreak + \Hy@temp + for #2% + }% + }\x + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Declarations of field flags} +% +% ``Table 8.70 Field flags common to all field types'' +% \begin{macrocode} +\HyField@NewFlag{Ff}{ReadOnly}{1} +\HyField@NewFlag{Ff}{Required}{2} +\HyField@NewFlag{Ff}{NoExport}{3} +% \end{macrocode} +% ``Table 8.75 Field flags specific to button fields'' +% \begin{macrocode} +\HyField@NewFlag{Ff}{NoToggleToOff}{15} +\HyField@NewFlag{Ff}{Radio}{16} +\HyField@NewFlag{Ff}{Pushbutton}{17} +\HyField@NewFlag{Ff}{RadiosInUnison}{26} +% \end{macrocode} +% ``Table 8.77 Field flags specific to text fields'' +% \begin{macrocode} +\HyField@NewFlag{Ff}{Multiline}{13} +\HyField@NewFlag{Ff}{Password}{14} +\HyField@NewFlag{Ff}{FileSelect}{21}% PDF 1.4 +\HyField@NewFlag{Ff}{DoNotSpellCheck}{23}% PDF 1.4 +\HyField@NewFlag{Ff}{DoNotScroll}{24}% PDF 1.4 +\HyField@NewFlag{Ff}{Comb}{25}% PDF 1.4 +\HyField@NewFlag{Ff}{RichText}{26}% PDF 1.5 +% \end{macrocode} +% ``Table 8.79 field flags specific to choice fields'' +% \begin{macrocode} +\HyField@NewFlag{Ff}{Combo}{18} +\HyField@NewFlag{Ff}{Edit}{19} +\HyField@NewFlag{Ff}{Sort}{20} +\HyField@NewFlag{Ff}{MultiSelect}{22}% PDF 1.4 +% \HyField@NewFlag{Ff}{DoNotSpellCheck}{23}% PDF 1.4 +\HyField@NewFlag{Ff}{CommitOnSelChange}{27}% PDF 1.5 +% \end{macrocode} +% Signature fields are not supported. +% +% Until 6.76i hyperref uses field option `combo' to set +% three flags `Combo', `Edit', and `Sort'. Option `popdown' sets +% flag `Combo' only. +% \begin{macrocode} +\newif\ifFld@popdown +\define@key{Field}{popdown}[true]{% + \lowercase{\Field@boolkey{#1}}{popdown}% +} +% \end{macrocode} +% +% Annotation flags. The form objects are widget annotations. +% There are two flags for readonly settings, the one in the annotation +% flags is ignored, instead the other in the field flags is used. +% +% Flag |Print| is not much useful, because hyperref do not +% use the appearance entry of the annotations for most fields. +% \begin{macrocode} +\HyField@NewFlag{F}{Invisible}{1} +\HyField@NewFlag{F}{Hidden}{2}% PDF 1.2 +\HyField@NewFlag{F}{Print}{3}% PDF 1.2 +\HyField@NewFlag{F}{NoZoom}{4}% PDF 1.2 +\HyField@NewFlag{F}{NoRotate}{5}% PDF 1.3 +\HyField@NewFlag{F}{NoView}{6}% PDF 1.3 +\HyField@NewFlag{F}{Locked}{8}% PDF 1.4 +\HyField@NewFlag{F}{ToggleNoView}{9}% PDF 1.5 +\HyField@NewFlag{F}{LockedContents}{10}% PDF 1.7 +% \end{macrocode} +% +% \begin{macrocode} +\ifHy@pdfa + \def\HyField@PDFAFlagWarning#1#2{% + \Hy@Warning{% + PDF/A: Annotation flag `#1' must\MessageBreak + be set to `#2'% + }% + }% + \Fld@invisiblefalse + \def\Fld@invisibletrue{% + \HyField@PDFAFlagWarning{invisible}{false}% + }% + \Fld@hiddenfalse + \def\Fld@hiddentrue{% + \HyField@PDFAFlagWarning{hidden}{false}% + }% + \Fld@printtrue + \def\Fld@printfalse{% + \HyField@PDFAFlagWarning{print}{true}% + }% + \Fld@nozoomtrue + \def\Fld@nozoomfalse{% + \HyField@PDFAFlagWarning{nozoom}{true}% + }% + \Fld@norotatetrue + \def\Fld@norotatefalse{% + \HyField@PDFAFlagWarning{norotate}{true}% + }% + \Fld@noviewfalse + \def\Fld@noviewtrue{% + \HyField@PDFAFlagWarning{noview}{false}% + }% +\fi +% \end{macrocode} +% +% Submit flags. Flag 1 Include/Exclude is not supported, +% use option noexport instead. +% \begin{macrocode} +\HyField@NewFlag{Submit}{IncludeNoValueFields}{2} +\HyField@NewFlagOnly{Submit}{ExportFormat}{3} +\HyField@NewFlag{Submit}{GetMethod}{4} +\HyField@NewFlag{Submit}{SubmitCoordinates}{5} +\HyField@NewFlagOnly{Submit}{XFDF}{6} +\HyField@NewFlag{Submit}{IncludeAppendSaves}{7} +\HyField@NewFlag{Submit}{IncludeAnnotations}{8} +\HyField@NewFlagOnly{Submit}{SubmitPDF}{9} +\HyField@NewFlag{Submit}{CanonicalFormat}{10} +\HyField@NewFlag{Submit}{ExclNonUserAnnots}{11} +\HyField@NewFlag{Submit}{ExclFKey}{12} +\HyField@NewFlag{Submit}{EmbedForm}{14} +% \end{macrocode} +% \begin{macrocode} +\define@key{Field}{export}{% + \lowercase{\def\Hy@temp{#1}}% + \@ifundefined{Fld@export@\Hy@temp}{% + \@onelevel@sanitize\Hy@temp + \Hy@Error{% + Unknown export format `\Hy@temp'.\MessageBreak + Known formats are `FDF', `HTML', `XFDF', and `PDF'% + }\@ehc + }{% + \let\Fld@export\Hy@temp + }% +} +\def\Fld@export{fdf} +\@namedef{Fld@export@fdf}{0}% +\@namedef{Fld@export@html}{1}% +\@namedef{Fld@export@xfdf}{2}% +\@namedef{Fld@export@pdf}{3}% +% \end{macrocode} +% +% \subsubsection{Set submit flags} +% +% \begin{macro}{\HyField@FlagsSubmit} +% \begin{macrocode} +\def\HyField@FlagsSubmit{% + \bitsetReset{HyField@Submit}% + \ifcase\@nameuse{Fld@export@\Fld@export} % + % FDF + \HyField@UseFlag{Submit}{IncludeNoValueFields}% + \HyField@UseFlag{Submit}{SubmitCoordinates}% + \HyField@UseFlag{Submit}{IncludeAppendSaves}% + \HyField@UseFlag{Submit}{IncludeAnnotations}% + \HyField@UseFlag{Submit}{CanonicalFormat}% + \HyField@UseFlag{Submit}{ExclNonUserAnnots}% + \HyField@UseFlag{Submit}{ExclFKey}% + \HyField@UseFlag{Submit}{EmbedForm}% + \or % HTML + \HyField@SetFlag{Submit}{ExportFormat}% + \HyField@UseFlag{Submit}{IncludeNoValueFields}% + \HyField@UseFlag{Submit}{GetMethod}% + \HyField@UseFlag{Submit}{SubmitCoordinates}% + \HyField@UseFlag{Submit}{CanonicalFormat}% + \or % XFDF + \HyField@SetFlag{Submit}{XFDF}% + \HyField@UseFlag{Submit}{IncludeNoValueFields}% + \HyField@UseFlag{Submit}{SubmitCoordinates}% + \HyField@UseFlag{Submit}{CanonicalFormat}% + \or % PDF + \HyField@SetFlag{Submit}{SubmitPDF}% + \HyField@UseFlag{Submit}{GetMethod}% + \fi + \HyField@PrintFlags{Submit}{submit button field}% + \bitsetIsEmpty{HyField@Submit}{% + \let\Fld@submitflags\ltx@empty + }{% + \edef\Fld@submitflags{/Flags \bitsetGetDec{HyField@Submit}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Set annot flags in fields} +% +% \begin{macro}{\HyField@FlagsAnnot} +% \begin{macrocode} +\def\HyField@FlagsAnnot#1{% + \bitsetReset{HyField@F}% + \HyField@UseFlag{F}{Invisible}% + \HyField@UseFlag{F}{Hidden}% + \HyField@UseFlag{F}{Print}% + \HyField@UseFlag{F}{NoZoom}% + \HyField@UseFlag{F}{NoRotate}% + \HyField@UseFlag{F}{NoView}% + \HyField@UseFlag{F}{Locked}% + \HyField@UseFlag{F}{ToggleNoView}% + \HyField@UseFlag{F}{LockedContents}% + \HyField@PrintFlags{F}{#1}% + \bitsetIsEmpty{HyField@F}{% + \let\Fld@annotflags\ltx@empty + }{% + \edef\Fld@annotflags{/F \bitsetGetDec{HyField@F}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Pushbutton field} +% +% \begin{macro}{\HyField@FlagsPushButton} +% \begin{macrocode} +\def\HyField@FlagsPushButton{% + \HyField@FlagsAnnot{push button field}% + \bitsetReset{HyField@Ff}% + \HyField@UseFlag{Ff}{ReadOnly}% + \HyField@UseFlag{Ff}{Required}% + \HyField@UseFlag{Ff}{NoExport}% + \HyField@SetFlag{Ff}{Pushbutton}% + \HyField@PrintFlags{Ff}{push button field}% + \bitsetIsEmpty{HyField@Ff}{% + \let\Fld@flags\ltx@empty + }{% + \edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Check box field} +% +% \begin{macro}{\HyField@FlagsCheckBox} +% \begin{macrocode} +\def\HyField@FlagsCheckBox{% + \HyField@FlagsAnnot{check box field}% + \bitsetReset{HyField@Ff}% + \HyField@UseFlag{Ff}{ReadOnly}% + \HyField@UseFlag{Ff}{Required}% + \HyField@UseFlag{Ff}{NoExport}% + \HyField@PrintFlags{Ff}{check box field}% + \bitsetIsEmpty{HyField@Ff}{% + \let\Fld@flags\ltx@empty + }{% + \edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Radio button field} +% +% \begin{macro}{\HyField@FlagsRadioButton} +% \begin{macrocode} +\def\HyField@FlagsRadioButton{% + \HyField@FlagsAnnot{radio button field}% + \bitsetReset{HyField@Ff}% + \HyField@UseFlag{Ff}{ReadOnly}% + \HyField@UseFlag{Ff}{Required}% + \HyField@UseFlag{Ff}{NoExport}% + \HyField@UseFlag{Ff}{NoToggleToOff}% + \HyField@SetFlag{Ff}{Radio}% + \HyField@UseFlag{Ff}{RadiosInUnison}% + \HyField@PrintFlags{Ff}{radio button field}% + \bitsetIsEmpty{HyField@Ff}{% + \let\Fld@flags\ltx@empty + }{% + \edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Text fields} +% +% \begin{macro}{\HyField@FlagsText} +% \begin{macrocode} +\def\HyField@FlagsText{% + \HyField@FlagsAnnot{text field}% + \bitsetReset{HyField@Ff}% + \HyField@UseFlag{Ff}{ReadOnly}% + \HyField@UseFlag{Ff}{Required}% + \HyField@UseFlag{Ff}{NoExport}% + \HyField@UseFlag{Ff}{Multiline}% + \HyField@UseFlag{Ff}{Password}% + \HyField@UseFlag{Ff}{FileSelect}% + \HyField@UseFlag{Ff}{DoNotSpellCheck}% + \HyField@UseFlag{Ff}{DoNotScroll}% + \ifFld@comb + \ifcase0\ifFld@multiline + \else\ifFld@password + \else\ifFld@fileselect + \else 1\fi\fi\fi\relax + \Hy@Error{% + Field option `comb' cannot used together with\MessageBreak + `multiline', `password', or `fileselect'% + }\@ehc + \else + \HyField@UseFlag{Ff}{Comb}% + \fi + \fi + \HyField@UseFlag{Ff}{RichText}% + \HyField@PrintFlags{Ff}{text field}% + \bitsetIsEmpty{HyField@Ff}{% + \let\Fld@flags\ltx@empty + }{% + \edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Choice fields} +% +% \begin{macro}{\HyField@FlagsChoice} +% \begin{macrocode} +\def\HyField@FlagsChoice{% + \HyField@FlagsAnnot{choice field}% + \bitsetReset{HyField@Ff}% + \HyField@UseFlag{Ff}{ReadOnly}% + \HyField@UseFlag{Ff}{Required}% + \HyField@UseFlag{Ff}{NoExport}% + \HyField@UseFlag{Ff}{Combo}% + \ifFld@combo + \HyField@UseFlag{Ff}{Edit}% + \fi + \HyField@UseFlag{Ff}{Sort}% + \HyField@UseFlag{Ff}{MultiSelect}% + \ifFld@combo + \ifFld@edit + \HyField@UseFlag{Ff}{DoNotSpellCheck}% + \fi + \fi + \HyField@UseFlag{Ff}{CommitOnSelChange}% + \HyField@PrintFlags{Ff}{choice field}% + \bitsetIsEmpty{HyField@Ff}{% + \let\Fld@flags\ltx@empty + }{% + \edef\Fld@flags{/Ff \bitsetGetDec{HyField@Ff}}% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Choice field} +% +% \begin{macro}{\HyField@PDFChoices} +% |#1|: list of choices in key value syntax, key = exported name, +% value = displayed text.\\ +% Input: \cs{Fld@default}, \cs{Fld@value}, \cs{ifFld@multiselect}\\ +% Result: \cs{Fld@choices} with entries: |/Opt|, |/DV|, |/V|, |/I|. +% \begin{macrocode} +\def\HyField@PDFChoices#1{% + \begingroup + \global\let\Fld@choices\ltx@empty + \let\HyTmp@optlist\ltx@empty + \let\HyTmp@optitem\relax + \count@=0 % + \kv@parse{#1}{% + \Hy@pdfstringdef\kv@key\kv@key + \ifx\kv@value\relax + \ifnum\Hy@pdfversion<3 % implementation note 122, PDF spec 1.7 + \xdef\Fld@choices{\Fld@choices[(\kv@key)(\kv@key)]}% + \else + \xdef\Fld@choices{\Fld@choices(\kv@key)}% + \fi + \else + \Hy@pdfstringdef\kv@value\kv@value + \xdef\Fld@choices{\Fld@choices[(\kv@value)(\kv@key)]}% + \fi + \edef\HyTmp@optlist{% + \HyTmp@optlist + \HyTmp@optitem{\the\count@}{\kv@key}0% + }% + \advance\count@ by 1 % + \@gobbletwo + }% + \xdef\Fld@choices{/Opt[\Fld@choices]}% + \ifFld@multiselect + \HyField@@PDFChoices{DV}\Fld@default + \HyField@@PDFChoices{V}\Fld@value + \else + \ifx\Fld@default\relax + \else + \pdfstringdef\Hy@gtemp\Fld@default + \xdef\Fld@choices{\Fld@choices/DV(\Hy@gtemp)}% + \fi + \ifx\Fld@value\relax + \else + \pdfstringdef\Hy@gtemp\Fld@value + \xdef\Fld@choices{\Fld@choices/V(\Hy@gtemp)}% + \fi + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@@PDFChoices} +% \begin{macrocode} +\def\HyField@@PDFChoices#1#2{% + \ifx#2\relax + \else + \count@=0 % + \def\HyTmp@optitem##1##2##3{% + \def\HyTmp@key{##2}% + \ifx\HyTmp@key\Hy@gtemp + \expandafter\def\expandafter\HyTmp@optlist\expandafter{% + \HyTmp@optlist + \HyTmp@optitem{##1}{##2}1% + }% + \let\HyTmp@found=Y% + \else + \expandafter\def\expandafter\HyTmp@optlist\expandafter{% + \HyTmp@optlist + \HyTmp@optitem{##1}{##2}##3% + }% + \fi + }% + \expandafter\comma@parse\expandafter{#2}{% + \pdfstringdef\Hy@gtemp\comma@entry + \let\HyTmp@found=N % + \expandafter\let\expandafter\HyTmp@optlist\expandafter\@empty + \HyTmp@optlist + \ifx\HyTmp@found Y% + \advance\count@ by 1 % + \else + \@onelevel@sanitize\comma@entry + \PackageWarning{hyperref}{% + \string\ChoiceBox: Ignoring value `\comma@entry',% + \MessageBreak + it cannot be found in the choices% + }% + \fi + \@gobble + }% + \def\HyTmp@optitem##1##2##3{% + \ifnum##3=1 % + (##2)% + \fi + }% + \ifcase\count@ + \or + \xdef\Fld@choices{\Fld@choices/#1\HyTmp@optlist}% + \else + \xdef\Fld@choices{\Fld@choices/#1[\HyTmp@optlist]}% + \ifx#1V% + \def\HyTmp@optitem##1##2##3{% + \ifnum##3=1 % + \@firstofone{ ##1}% + \fi + }% + \edef\HyTmp@optlist{\HyTmp@optlist}% + \xdef\Fld@choices{% + \Fld@choices + /I[\expandafter\@firstofone\HyTmp@optlist]% + }% + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Forms} +% +% \begin{macro}{\HyField@SetKeys} +% \begin{macrocode} +\def\HyField@SetKeys{% + \kvsetkeys{Field}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\newif\ifFld@checked +\newif\ifFld@disabled +\Fld@checkedfalse +\Fld@disabledfalse +\newcount\Fld@menulength +\newdimen\Field@Width +\newdimen\Fld@charsize +\Fld@charsize=10\p@ +\def\Fld@maxlen{0} +\def\Fld@align{0} +\def\Fld@color{0 0 0 rg} +\def\Fld@bcolor{1 1 1} +\def\Fld@bordercolor{1 0 0} +\def\Fld@bordersep{1\p@} +\def\Fld@borderwidth{1} +\def\Fld@borderstyle{S} +\def\Fld@cbsymbol{4} +\def\Fld@radiosymbol{H} +\def\Fld@rotation{0} +\def\Form{\@ifnextchar[{\@Form}{\@Form[]}} +\def\endForm{\@endForm} +\newif\ifForm@html +\Form@htmlfalse +\def\Form@boolkey#1#2{% + \csname Form@#2\ifx\relax#1\relax true\else#1\fi\endcsname +} +\define@key{Form}{action}{% + \hyper@normalise\Hy@DefFormAction{#1}% +} +\def\Hy@DefFormAction{\def\Form@action} +\def\enc@@html{html} +\define@key{Form}{encoding}{% + \def\Hy@tempa{#1}% + \ifx\Hy@tempa\enc@@html + \Form@htmltrue + \def\Fld@export{html}% + \else + \Hy@Warning{% + Form `encoding' key with \MessageBreak + unknown value `#1'% + }% + \Form@htmlfalse + \fi +} +\define@key{Form}{method}{% + \lowercase{\def\Hy@temp{#1}}% + \@ifundefined{Form@method@\Hy@temp}{% + \@onelevel@sanitize\Hy@temp + \Hy@Error{% + Unknown method `\Hy@temp'.\MessageBreak + Known values are `post' and `get'% + }\@ehc + }{% + \let\Form@method\Hy@temp + \ifcase\@nameuse{Form@method@\Hy@temp} % + \Fld@getmethodfalse + \else + \Fld@getmethodtrue + \fi + }% +} +\def\Form@method{} +\@namedef{Form@method@post}{0} +\@namedef{Form@method@get}{1} +% \end{macrocode} +% \begin{macrocode} +\newif\ifHyField@NeedAppearances +\def\HyField@NeedAppearancesfalse{% + \global\let\ifHyField@NeedAppearances\iffalse +} +\def\HyField@NeedAppearancestrue{% + \global\let\ifHyField@NeedAppearances\iftrue +} +\HyField@NeedAppearancestrue +\define@key{Form}{NeedAppearances}[true]{% + \edef\Hy@tempa{#1}% + \ifx\Hy@tempa\Hy@true + \HyField@NeedAppearancestrue + \else + \ifx\Hy@tempa\Hy@false + \HyField@NeedAppearancesfalse + \else + \Hy@Error{% + Unexpected value `\Hy@tempa'\MessageBreak + of option `NeedAppearances' instead of\MessageBreak + `true' or `false'% + }\@ehc + \fi + \fi +} +\def\Field@boolkey#1#2{% + \csname Fld@#2\ifx\relax#1\relax true\else#1\fi\endcsname +} +\ifHy@texht + \newtoks\Field@toks + \Field@toks={ }% + \def\Field@addtoks#1#2{% + \edef\@processme{\Field@toks{\the\Field@toks\space #1="#2"}}% + \@processme + }% +\else + \def\Hy@WarnHTMLFieldOption#1{% + \Hy@Warning{% + HTML field option `#1'\MessageBreak + is ignored% + }% + }% +\fi +\def\Fld@checkequals#1=#2=#3\\{% + \def\@currDisplay{#1}% + \ifx\\#2\\% + \def\@currValue{#1}% + \else + \def\@currValue{#2}% + \fi +} +\define@key{Field}{loc}{% + \def\Fld@loc{#1}% +} +\define@key{Field}{checked}[true]{% + \lowercase{\Field@boolkey{#1}}{checked}% +} +\define@key{Field}{disabled}[true]{% + \lowercase{\Field@boolkey{#1}}{disabled}% +} +\ifHy@texht + \define@key{Field}{accesskey}{% + \Field@addtoks{accesskey}{#1}% + }% + \define@key{Field}{tabkey}{% + \Field@addtoks{tabkey}{#1}% + }% +\else + \define@key{Field}{accesskey}{% + \Hy@WarnHTMLFieldOption{accesskey}% + }% + \define@key{Field}{tabkey}{% + \Hy@WarnHTMLFieldOption{tabkey}% + }% +\fi +\define@key{Field}{name}{% + \def\Fld@name{#1}% +} +\let\Fld@altname\relax +\define@key{Field}{altname}{% + \def\Fld@altname{#1}% +} +\let\Fld@mappingname\relax +\define@key{Field}{mappingname}{% + \def\Fld@mappingname{#1}% +} +\define@key{Field}{width}{% + \def\Fld@width{#1}% + \Field@Width#1\setbox0=\hbox{m}% +} +\define@key{Field}{maxlen}{% + \def\Fld@maxlen{#1}% +} +\define@key{Field}{menulength}{% + \Fld@menulength=#1\relax +} +\define@key{Field}{height}{% + \def\Fld@height{#1}% +} +\define@key{Field}{charsize}{% + \setlength{\Fld@charsize}{#1}% +} +\define@key{Field}{borderwidth}{% + \Hy@defaultbp\Fld@borderwidth{#1}% +} +\def\Hy@defaultbp#1#2{% + \begingroup + \afterassignment\Hy@defaultbpAux + \dimen@=#2bp\relax{#1}{#2}% +} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname dimexpr\endcsname\relax + \def\Hy@defaultbpAux#1\relax#2#3{% + \ifx!#1!% + \endgroup + \def#2{#3}% + \else + \dimen@=.99626\dimen@ + \edef\x{\endgroup + \def\noexpand#2{% + \strip@pt\dimen@ + }% + }\x + \fi + }% +\else + \def\Hy@defaultbpAux#1\relax#2#3{% + \ifx!#1!% + \endgroup + \def#2{#3}% + \else + \edef\x{\endgroup + \def\noexpand#2{% + \strip@pt\dimexpr\dimen@*800/803\relax + }% + }\x + \fi + }% +\fi +\define@key{Field}{borderstyle}{% + \let\Hy@temp\Fld@borderstyle + \def\Fld@borderstyle{#1}% + \Hy@Match\Fld@borderstyle{}{% + ^[SDBIU]$% + }{}{% + \Hy@Warning{% + Invalid value `\@pdfborderstyle'\MessageBreak + for option `pdfborderstyle'. Valid values:\MessageBreak + \space\space S (Solid), D (Dashed), B (Beveled),\MessageBreak + \space\space I (Inset), U (Underline)\MessageBreak + Option setting is ignored% + }% + \let\Fld@borderstyle\Hy@temp + }% +} +\define@key{Field}{bordersep}{% + \def\Fld@bordersep{#1}% +} +\define@key{Field}{default}{% + \def\Fld@default{#1}% +} +\define@key{Field}{align}{% + \def\Fld@align{#1}% +} +\define@key{Field}{value}{% + \Hy@pdfstringdef\Fld@value{#1}% +} +\define@key{Field}{checkboxsymbol}{% + \Fld@DingDef\Fld@cbsymbol{#1}% +} +\define@key{Field}{radiosymbol}{% + \Fld@DingDef\Fld@radiosymbol{#1}% +} +\def\Fld@DingDef#1#2{% + \let\Fld@temp\ltx@empty + \Fld@@DingDef#2\ding{}\@nil + \let#1\Fld@temp +} +\def\Fld@@DingDef#1\ding#2#3\@nil{% + \expandafter\def\expandafter\Fld@temp\expandafter{% + \Fld@temp + #1% + }% + \ifx\\#3\\% + \expandafter\@gobble + \else + \begingroup + \lccode`0=#2\relax + \lowercase{\endgroup + \expandafter\def\expandafter\Fld@temp\expandafter{% + \Fld@temp + 0% + }% + }% + \expandafter\@firstofone + \fi + {% + \Fld@@DingDef#3\@nil + }% +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Field}{rotation}{% + \def\Fld@rotation{#1}% +} +% \end{macrocode} +% \begin{macrocode} +\define@key{Field}{backgroundcolor}{% + \HyColor@FieldBColor{#1}\Fld@bcolor{hyperref}{backgroundcolor}% +} +\define@key{Field}{bordercolor}{% + \HyColor@FieldBColor{#1}\Fld@bordercolor{hyperref}{bordercolor}% +} +\define@key{Field}{color}{% + \HyColor@FieldColor{#1}\Fld@color{hyperref}{color}% +} +% \end{macrocode} +% \begin{macrocode} +\let\Fld@onclick@code\ltx@empty +\let\Fld@format@code\ltx@empty +\let\Fld@validate@code\ltx@empty +\let\Fld@calculate@code\ltx@empty +\let\Fld@keystroke@code\ltx@empty +\let\Fld@onfocus@code\ltx@empty +\let\Fld@onblur@code\ltx@empty +\let\Fld@onmousedown@code\ltx@empty +\let\Fld@onmouseup@code\ltx@empty +\let\Fld@onenter@code\ltx@empty +\let\Fld@onexit@code\ltx@empty +\def\Hy@temp#1{% + \expandafter\Hy@@temp\csname Fld@#1@code\endcsname{#1}% +} +\def\Hy@@temp#1#2{% + \ifHy@pdfa + \define@key{Field}{#2}{% + \Hy@Error{% + PDF/A: Additional action `#2' is prohibited% + }\@ehc + }% + \else + \define@key{Field}{#2}{% + \def#1{##1}% + }% + \fi +} +\Hy@temp{keystroke} +\Hy@temp{format} +\Hy@temp{validate} +\Hy@temp{calculate} +\Hy@temp{onfocus} +\Hy@temp{onblur} +\Hy@temp{onenter} +\Hy@temp{onexit} +% \end{macrocode} +% \begin{macrocode} +\let\Fld@calculate@sortkey\ltx@empty +\define@key{Field}{calculatesortkey}[1]{% + \def\Fld@calculate@sortkey{#1}% +} +% \end{macrocode} +% \begin{macrocode} +\ifHy@texht + \def\Hy@temp#1{% + \define@key{Field}{#1}{% + \Field@addtoks{#1}{##1}% + }% + }% +\else + \def\Hy@temp#1{% + \define@key{Field}{#1}{% + \Hy@WarnHTMLFieldOption{#1}% + }% + }% +\fi +\Hy@temp{ondblclick} +\Hy@temp{onmousedown} +\Hy@temp{onmouseup} +\Hy@temp{onmouseover} +\Hy@temp{onmousemove} +\Hy@temp{onmouseout} +\Hy@temp{onkeydown} +\Hy@temp{onkeyup} +\Hy@temp{onselect} +\Hy@temp{onchange} +\Hy@temp{onkeypress} +\ifHy@texht + \define@key{Field}{onclick}{% + \Field@addtoks{onclick}{#1}% + }% +\else + \ifHy@pdfa + \define@key{Field}{onclick}{% + \Hy@Error{% + PDF/A: Action `onclick' is prohibited% + }\@ehc + }% + \else + \define@key{Field}{onclick}{% + \def\Fld@onclick@code{#1}% + }% + \fi +\fi +% \end{macrocode} +% \begin{macrocode} +\DeclareRobustCommand\TextField{% + \@ifnextchar[{\@TextField}{\@TextField[]}% +} +\DeclareRobustCommand\ChoiceMenu{% + \@ifnextchar[{\@ChoiceMenu}{\@ChoiceMenu[]}% +} +\DeclareRobustCommand\CheckBox{% + \@ifnextchar[{\@CheckBox}{\@CheckBox[]}% +} +\DeclareRobustCommand\PushButton{% + \@ifnextchar[{\@PushButton}{\@PushButton[]}% +} +\DeclareRobustCommand\Gauge{% + \@ifnextchar[{\@Gauge}{\@Gauge[]}% +} +\DeclareRobustCommand\Submit{% + \@ifnextchar[{\@Submit}{\@Submit[]}% +} +\DeclareRobustCommand\Reset{% + \@ifnextchar[{\@Reset}{\@Reset[]}% +} +\def\LayoutTextField#1#2{% label, field + #1 #2% +} +\def\LayoutChoiceField#1#2{% label, field + #1 #2% +} +\def\LayoutCheckField#1#2{% label, field + #1 #2% +} +\def\LayoutPushButtonField#1{% button + #1% +} +\def\MakeRadioField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}} +\def\MakeCheckField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}} +\def\MakeTextField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}} +\def\MakeChoiceField#1#2{\vbox to #2{\hbox to #1{\hfill}\vfill}} +\def\MakeButtonField#1{% + \sbox0{% + \hskip\Fld@borderwidth bp#1\hskip\Fld@borderwidth bp% + }% + \@tempdima\ht0 % + \advance\@tempdima by \Fld@borderwidth bp % + \advance\@tempdima by \Fld@borderwidth bp % + \ht0\@tempdima + \@tempdima\dp0 % + \advance\@tempdima by \Fld@borderwidth bp % + \advance\@tempdima by \Fld@borderwidth bp % + \dp0\@tempdima + \box0\relax +} +\def\DefaultHeightofSubmit{14pt} +\def\DefaultWidthofSubmit{2cm} +\def\DefaultHeightofReset{14pt} +\def\DefaultWidthofReset{2cm} +\def\DefaultHeightofCheckBox{\baselineskip} +\def\DefaultWidthofCheckBox{\baselineskip} +\def\DefaultHeightofChoiceMenu{\baselineskip} +\def\DefaultWidthofChoiceMenu{\baselineskip} +\def\DefaultHeightofText{\baselineskip} +\def\DefaultHeightofTextMultiline{4\baselineskip} +\def\DefaultWidthofText{3cm} +\def\DefaultOptionsofSubmit{print,name=Submit,noexport} +\def\DefaultOptionsofReset{print,name=Reset,noexport} +\def\DefaultOptionsofPushButton{print} +\def\DefaultOptionsofCheckBox{print} +\def\DefaultOptionsofText{print} +% \end{macrocode} +% Default options for the types of \cs{ChoiceMenu}. +% \begin{macrocode} +\def\DefaultOptionsofListBox{print} +\def\DefaultOptionsofComboBox{print,edit,sort} +\def\DefaultOptionsofPopdownBox{print} +\def\DefaultOptionsofRadio{print,notoggletooff} +% \end{macrocode} +% +% \section{Setup} +% \begin{macrocode} +\ifHy@hyperfigures + \Hy@Info{Hyper figures ON}% +\else + \Hy@Info{Hyper figures OFF}% +\fi +\ifHy@nesting + \Hy@Info{Link nesting ON}% +\else + \Hy@Info{Link nesting OFF}% +\fi +\ifHy@hyperindex + \Hy@Info{Hyper index ON}% +\else + \Hy@Info{Hyper index OFF}% +\fi +\ifHy@backref + \Hy@Info{backreferencing ON}% +\else + \Hy@Info{backreferencing OFF}% +\fi +\ifHy@colorlinks + \Hy@Info{Link coloring ON}% +\else + \Hy@Info{Link coloring OFF}% +\fi +\ifHy@ocgcolorlinks + \Hy@Info{Link coloring with OCG ON}% +\else + \Hy@Info{Link coloring with OCG OFF}% +\fi +\ifHy@pdfa + \Hy@Info{PDF/A mode ON}% +\else + \Hy@Info{PDF/A mode OFF}% +\fi +% \end{macrocode} +% \section{Low-level utility macros} +% We need unrestricted access to the |#|, |~| and |"| characters, so make +% them nice macros. +% \begin{macrocode} +\edef\hyper@hash{\string#} +\edef\hyper@tilde{\string~} +\edef\hyper@quote{\string"} +% \end{macrocode} +% Support \cs{label} before |\begin{document}|. +% \begin{macrocode} +\def\@currentHref{Doc-Start} +\let\Hy@footnote@currentHref\@empty +% \end{macrocode} +% We give the start of document a special label; this is used +% in backreferencing-by-section, to allow for cites before +% any sectioning commands. Set up PDF info. +% \begin{macrocode} +\Hy@AtBeginDocument{% + \Hy@pdfstringtrue + \PDF@SetupDoc + \let\PDF@SetupDoc\@empty + \Hy@DisableOption{pdfpagescrop}% + \Hy@DisableOption{pdfpagemode}% + \Hy@DisableOption{pdfnonfullscreenpagemode}% + \Hy@DisableOption{pdfdirection}% + \Hy@DisableOption{pdfviewarea}% + \Hy@DisableOption{pdfviewclip}% + \Hy@DisableOption{pdfprintarea}% + \Hy@DisableOption{pdfprintclip}% + \Hy@DisableOption{pdfprintscaling}% + \Hy@DisableOption{pdfduplex}% + \Hy@DisableOption{pdfpicktraybypdfsize}% + \Hy@DisableOption{pdfprintpagerange}% + \Hy@DisableOption{pdfnumcopies}% + \Hy@DisableOption{pdfstartview}% + \Hy@DisableOption{pdfstartpage}% + \Hy@DisableOption{pdftoolbar}% + \Hy@DisableOption{pdfmenubar}% + \Hy@DisableOption{pdfwindowui}% + \Hy@DisableOption{pdffitwindow}% + \Hy@DisableOption{pdfcenterwindow}% + \Hy@DisableOption{pdfdisplaydoctitle}% + \Hy@DisableOption{pdfpagelayout}% + \Hy@DisableOption{pdflang}% + \Hy@DisableOption{baseurl}% + \ifHy@texht\else\hyper@anchorstart{Doc-Start}\hyper@anchorend\fi + \Hy@pdfstringfalse +} +% \end{macrocode} + +% Ignore star from referencing macros: +% \begin{macrocode} +\LetLtxMacro\NoHy@OrgRef\ref +\DeclareRobustCommand*{\ref}{% + \@ifstar\NoHy@OrgRef\NoHy@OrgRef +} +\LetLtxMacro\NoHy@OrgPageRef\pageref +\DeclareRobustCommand*{\pageref}{% + \@ifstar\NoHy@OrgPageRef\NoHy@OrgPageRef +} +% \end{macrocode} +% +% \section{Localized nullifying of package} +% Sometimes we just don't want the wretched package interfering +% with us. Define an environment we can put in manually, or include +% in a style file, which stops the hypertext functions doing anything. +% This is used, for instance, in the Elsevier classes, to stop +% |hyperref| playing havoc in the front matter. +% \begin{macrocode} +\def\NoHyper{% + \def\hyper@link@[##1]##2##3##4{##4\Hy@xspace@end}% + \def\hyper@@anchor##1##2{##2\Hy@xspace@end}% + \global\let\hyper@livelink\hyper@link + \gdef\hyper@link##1##2##3{##3\Hy@xspace@end}% + \let\hyper@anchor\ltx@gobble + \let\hyper@anchorstart\ltx@gobble + \def\hyper@anchorend{\Hy@xspace@end}% + \let\hyper@linkstart\ltx@gobbletwo + \def\hyper@linkend{\Hy@xspace@end}% + \def\hyper@linkurl##1##2{##1\Hy@xspace@end}% + \def\hyper@linkfile##1##2##3{##1\Hy@xspace@end}% + \let\Hy@backout\@gobble +} +\def\stop@hyper{% + \def\hyper@link@[##1]##2##3##4{##4\Hy@xspace@end}% + \let\Hy@backout\@gobble + \let\hyper@@anchor\ltx@gobble + \def\hyper@link##1##2##3{##3\Hy@xspace@end}% + \let\hyper@anchor\ltx@gobble + \let\hyper@anchorstart\ltx@gobble + \def\hyper@anchorend{\Hy@xspace@end}% + \let\hyper@linkstart\ltx@gobbletwo + \def\hyper@linkend{\Hy@xspace@end}% + \def\hyper@linkurl##1##2{##1\Hy@xspace@end}% + \def\hyper@linkfile##1##2##3{##1\Hy@xspace@end}% +} +\def\endNoHyper{% + \global\let\hyper@link\hyper@livelink +} +%</package> +% \end{macrocode} +% +% \section{Package nohyperref} +% +% This package is introduced by Sebastian Rahtz. +% +% Package nohyperref is a dummy package that defines +% some low level and some top-level commands. +% It is done for jadetex, which calls hyperref +% low-level commands, but it would also be useful with people using +% normal hyperref, who really do not want the package loaded at all. +% +% Some low-level commands: +% \begin{macrocode} +%<*nohyperref> +\RequirePackage{letltxmacro}[2008/06/13] +\let\hyper@@anchor\@gobble +\def\hyper@link#1#2#3{#3}% +\let\hyper@anchorstart\@gobble +\let\hyper@anchorend\@empty +\let\hyper@linkstart\@gobbletwo +\let\hyper@linkend\@empty +\def\hyper@linkurl#1#2{#1}% +\def\hyper@linkfile#1#2#3{#1}% +\def\hyper@link@[#1]#2#3{}% +\let\PDF@SetupDoc\@empty +\let\PDF@FinishDoc\@empty +\def\nohyperpage#1{#1} +% \end{macrocode} +% Some top-level commands: +% \begin{macrocode} +\def\Acrobatmenu#1#2{\leavevmode#2} +\let\pdfstringdefDisableCommands\@gobbletwo +\let\texorpdfstring\@firstoftwo +\let\pdfbookmark\@undefined +\newcommand\pdfbookmark[3][]{} +\let\phantomsection\@empty +\let\hypersetup\@gobble +\let\hyperbaseurl\@gobble +\newcommand*{\href}[3][]{#3} +\let\hyperdef\@gobbletwo +\let\hyperlink\@gobble +\let\hypertarget\@gobble +\def\hyperref{% + \@ifnextchar[\@gobbleopt{\expandafter\@gobbletwo\@gobble}% +} +\long\def\@gobbleopt[#1]{} +\let\hyperpage\@empty +% \end{macrocode} +% Ignore star from referencing macros: +% \begin{macrocode} +\LetLtxMacro\NoHy@OrgRef\ref +\DeclareRobustCommand*{\ref}{% + \@ifstar\NoHy@OrgRef\NoHy@OrgRef +} +\LetLtxMacro\NoHy@OrgPageRef\pageref +\DeclareRobustCommand*{\pageref}{% + \@ifstar\NoHy@OrgPageRef\NoHy@OrgPageRef +} +%</nohyperref> +% \end{macrocode} +% +% \section{The Mangling Of Aux and Toc Files} +% Some extra tests so that the hyperref package may be removed or added +% to a document without having to remove .aux and .toc files +% (this section is by David Carlisle) +% All the code is delayed to |\begin{document}| +% \begin{macrocode} +%<*package> +\Hy@AtBeginDocument{% +% \end{macrocode} +% First the code to deal with removing the hyperref package from +% a document. +% +% Write some stuff into the aux file so if the next run is done +% without hyperref, then |\contentsline| and |\newlabel| are defined +% to cope with the extra arguments. +% \begin{macrocode} + \if@filesw + \ifHy@typexml + \immediate\closeout\@mainaux + \immediate\openout\@mainaux\jobname.aux\relax + \immediate\write\@auxout{<relaxxml>\relax}% + \fi + \immediate\write\@auxout{% + \string\providecommand\string\HyperFirstAtBeginDocument{% + \string\AtBeginDocument}^^J% + \string\HyperFirstAtBeginDocument{% + \string\ifx\string\hyper@anchor\string\@undefined^^J% + \string\global\string\let\string\oldcontentsline\string\contentsline^^J% + \string\gdef\string\contentsline% + \string#1\string#2\string#3\string#4{% + \string\oldcontentsline% + {\string#1}{\string#2}{\string#3}}^^J% + \string\global\string\let\string\oldnewlabel\string\newlabel^^J% + \string\gdef\string\newlabel\string#1\string#2{% + \string\newlabelxx{\string#1}\string#2}^^J% + \string\gdef\string\newlabelxx% + \string#1\string#2\string#3\string#4\string#5\string#6{% + \string\oldnewlabel{\string#1}{{\string#2}{\string#3}}}^^J% +% \end{macrocode} +% +% But the new aux file will be read again at the end, with the normal +% definitions expected, so better put things back as they were. +% \begin{macrocode} + \string\AtEndDocument{% + \string\ifx\string\hyper@anchor\string\@undefined^^J% + \string\let\string\contentsline\string\oldcontentsline^^J% + \string\let\string\newlabel\string\oldnewlabel^^J% + \string\fi% + }^^J% +% \end{macrocode} +% +% If the document is being run with hyperref put this definition +% into the aux file, so we can spot it on the next run. +% \begin{macrocode} + \string\fi% + }^^J% + \string\global\string\let\string\hyper@last\relax^^J% + \string\gdef\string\HyperFirstAtBeginDocument\string#1{\string#1}% + }% + \fi + \let\HyperFirstAtBeginDocument\ltx@firstofone +% \end{macrocode} +% +% Now the code to deal with adding the hyperref package to a document +% with aux and toc written the standard way. +% +% If hyperref was used last time, do nothing. If it was not used, +% or an old version of hyperref was used, don't use that TOC at all +% but generate a warning. Not ideal, but better than failing +% with pre-5.0 hyperref TOCs. +% \begin{macrocode} + \ifx\hyper@last\@undefined + \def\@starttoc#1{% + \begingroup + \makeatletter + \ltx@ifpackageloaded{parskip}{\parskip\z@}{}% + \IfFileExists{\jobname.#1}{% + \Hy@WarningNoLine{% + old #1 file detected, not used; run LaTeX again% + }% + }{}% + \if@filesw + \expandafter\newwrite\csname tf@#1\endcsname + \immediate\openout\csname tf@#1\endcsname \jobname.#1\relax + \fi + \@nobreakfalse + \endgroup + }% + \def\newlabel#1#2{\@newl@bel r{#1}{#2{}{}{}{}}}% + \fi +} +% \end{macrocode} +% +% \section{Title strings} +% +% If options |pdftitle| and |pdfauthor| are not used, +% these informations for the pdf information dictionary +% can be extracted by the \cmd{\title} and \cmd{\author}. +% \begin{macrocode} +\ifHy@pdfusetitle + \let\HyOrg@title\title + \let\HyOrg@author\author + \def\title{\@ifnextchar[{\Hy@scanopttitle}{\Hy@scantitle}}% + \def\Hy@scanopttitle[#1]{% + \gdef\Hy@title{#1}% + \HyOrg@title[{#1}]% + }% + \def\Hy@scantitle#1{% + \gdef\Hy@title{#1}% + \HyOrg@title{#1}% + }% + \def\author{\@ifnextchar[{\Hy@scanoptauthor}{\Hy@scanauthor}}% + \def\Hy@scanoptauthor[#1]{% + \gdef\Hy@author{#1}% + \HyOrg@author[{#1}]% + }% + \def\Hy@scanauthor#1{% + \gdef\Hy@author{#1}% + \HyOrg@author{#1}% + }% +% \end{macrocode} +% +% The case, that \cmd{\title}, or \cmd{\author} are given before +% hyperref is loaded, is much more complicate, because +% LaTeX initializes the macros \cmd{\@title} and \cmd{\@author} with +% LaTeX error and warning messages. +% \begin{macrocode} + \begingroup + \def\process@me#1\@nil#2{% + \expandafter\let\expandafter\x\csname @#2\endcsname + \edef\y{\expandafter\strip@prefix\meaning\x}% + \def\c##1#1##2\@nil{% + \ifx\\##1\\% + \else + \expandafter\gdef\csname Hy@#2\expandafter\endcsname + \expandafter{\x}% + \fi + }% + \expandafter\c\y\relax#1\@nil + }% + \expandafter\process@me\string\@latex@\@nil{title}% + \expandafter\process@me\string\@latex@\@nil{author}% + \endgroup +\fi +\Hy@DisableOption{pdfusetitle} +% \end{macrocode} +% +% Macro |\Hy@UseMaketitleInfos| is used in the driver files, +% before the information entries are used. +% +% The newline macro |\newline| or |\\| is much more +% complicate. In the title a good replacement can be +% a space, but can be already a space after |\\| in +% the title string. So this space is removed by +% scanning for the next non-empty argument. +% +% In the macro |\author| the newline can perhaps +% separate the different authors, so the newline +% expands here to a comma with space. +% +% The possible arguments such as space or the optional +% argument after the newline macros are not detected. +% +% A possible \thanks removes its argument. +% +% \begin{macrocode} +\def\Hy@UseMaketitleString#1{% + \ltx@IfUndefined{Hy@#1}{}{% + \begingroup + \let\Hy@saved@hook\pdfstringdefPreHook + \pdfstringdefDisableCommands{% + \expandafter\let\expandafter\\\csname Hy@newline@#1\endcsname + \let\newline\\% + \def\and{; }% + \let\thanks\@gobble% + }% + \expandafter\ifx\csname @pdf#1\endcsname\@empty + \expandafter\pdfstringdef\csname @pdf#1\endcsname{% + \csname Hy@#1\endcsname\@empty + }% + \fi + \global\let\pdfstringdefPreHook\Hy@saved@hook + \endgroup + }% +} +\def\Hy@newline@title#1{ #1} +\def\Hy@newline@author#1{, #1} +\def\Hy@UseMaketitleInfos{% + \Hy@UseMaketitleString{title}% + \Hy@UseMaketitleString{author}% +} +% \end{macrocode} +% +% \section{Page numbers} +% This stuff is done by Heiko Oberdiek. +% +% \section{Every page} +% +% \begin{macrocode} +\RequirePackage{atbegshi}[2007/09/09] +\let\Hy@EveryPageHook\ltx@empty +\let\Hy@EveryPageBoxHook\ltx@empty +\let\Hy@FirstPageHook\ltx@empty +\AtBeginShipout{% + \Hy@EveryPageHook + \ifx\Hy@EveryPageBoxHook\ltx@empty + \else + \setbox\AtBeginShipoutBox=\vbox{% + \offinterlineskip + \Hy@EveryPageBoxHook + \box\AtBeginShipoutBox + }% + \fi +} +\ltx@iffileloaded{hpdftex.def}{% + \AtBeginShipout{% + \Hy@FirstPageHook + \global\let\Hy@FirstPageHook\ltx@empty + }% +}{% + \AtBeginShipoutFirst{% + \Hy@FirstPageHook + }% +} +\g@addto@macro\Hy@FirstPageHook{% + \PDF@FinishDoc + \global\let\PDF@FinishDoc\ltx@empty +} +% \end{macrocode} +% +% \subsection{PDF /PageLabels} +% Internal macros of this module are marked with |\HyPL@|. +% +% \begin{macrocode} +\ifHy@pdfpagelabels + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname thepage\endcsname\relax + \Hy@pdfpagelabelsfalse + \Hy@WarningNoLine{% + Option `pdfpagelabels' is turned off\MessageBreak + because \string\thepage\space is undefined% + }% + \csname fi\endcsname + \csname iffalse\expandafter\endcsname + \fi +% \end{macrocode} +% +% \begin{macro}{\thispdfpagelabel} +% The command \cmd{\thispdfpagelabel} allows to label a special +% page without the redefinition of \cmd{\thepage} for the page. +% \begin{macrocode} + \def\thispdfpagelabel#1{% + \gdef\HyPL@thisLabel{#1}% + }% + \global\let\HyPL@thisLabel\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@Labels} +% The page labels are collected in \cmd{\HyPL@Labels} and +% set at the end of the document. +% \begin{macrocode} + \let\HyPL@Labels\ltx@empty +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@abspage} +% We have to know the the absolute page number and introduce +% a new counter for that. +% \begin{macrocode} + \newcount\Hy@abspage + \Hy@abspage=0 % +% \end{macrocode} +% \end{macro} +% For comparisons with the values of the previous page, some +% variables are needed: +% \begin{macrocode} + \def\HyPL@LastType{init}% + \def\HyPL@LastNumber{0}% + \let\HyPL@LastPrefix\ltx@empty +% \end{macrocode} +% Definitions for the PDF names of the \LaTeX{} pendents. +% \begin{macrocode} + \def\HyPL@arabic{D}% + \def\HyPL@Roman{R}% + \def\HyPL@roman{r}% + \def\HyPL@Alph{A}% + \def\HyPL@alph{a}% +% \end{macrocode} +% +% \begin{macrocode} + \let\HyPL@SlidesSetPage\ltx@empty + \ltx@ifclassloaded{slides}{% + \def\HyPL@SlidesSetPage{% + \advance\c@page\ltx@one + \ifnum\value{page}>\ltx@one + \protected@edef\HyPL@SlidesOptionalPage{% + \Hy@SlidesFormatOptionalPage{\thepage}% + }% + \else + \let\HyPL@SlidesOptionalPage\ltx@empty + \fi + \advance\c@page-\ltx@one + \def\HyPL@page{% + \csname the\Hy@SlidesPage\endcsname + \HyPL@SlidesOptionalPage + }% + }% + }{}% +% \end{macrocode} +% +% \begin{macro}{\HyPL@EveryPage} +% If a page is shipout and the page number is known, +% \cmd{\HyPL@EveryPage} has to be called. It stores the +% current page label. +% \begin{macrocode} + \def\HyPL@EveryPage{% + \begingroup + \ifx\HyPL@thisLabel\relax + \let\HyPL@page\thepage + \HyPL@SlidesSetPage + \else + \let\HyPL@page\HyPL@thisLabel + \global\let\HyPL@thisLabel\relax + \fi + \let\HyPL@Type\relax + \ifnum\c@page>0 % + \ifx\HyPL@SlidesSetPage\ltx@empty + \expandafter\HyPL@CheckThePage\HyPL@page\@nil + \fi + \fi + \let\Hy@temp Y% + \ifx\HyPL@Type\HyPL@LastType + \else + \let\Hy@temp N% + \fi + \ifx\HyPL@Type\relax + \pdfstringdef\HyPL@Prefix{\HyPL@page}% + \else + \pdfstringdef\HyPL@Prefix\HyPL@Prefix + \fi + \ifx\HyPL@Prefix\HyPL@LastPrefix + \else + \let\Hy@temp N% + \fi + \if Y\Hy@temp + \advance\c@page by -1 % + \ifnum\HyPL@LastNumber=\the\c@page\relax + \else + \let\Hy@temp N% + \fi + \Hy@StepCount\c@page + \fi + \if N\Hy@temp + \ifx\HyPL@Type\relax + \HyPL@StorePageLabel{/P(\HyPL@Prefix)}% + \else + \HyPL@StorePageLabel{% + \ifx\HyPL@Prefix\@empty + \else + /P(\HyPL@Prefix)% + \fi + /S/\csname HyPL\HyPL@Type\endcsname + \ifnum\the\c@page=1 % + \else + \space/St \the\c@page + \fi + }% + \fi + \fi + \xdef\HyPL@LastNumber{\the\c@page}% + \global\let\HyPL@LastType\HyPL@Type + \global\let\HyPL@LastPrefix\HyPL@Prefix + \endgroup + \Hy@GlobalStepCount\Hy@abspage + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@CheckThePage} +% Macro \cmd{\HyPL@CheckThePage} calls \cmd{\HyPL@@CheckThePage} +% that does the job. +% \begin{macrocode} + \def\HyPL@CheckThePage#1\@nil{% + \HyPL@@CheckThePage{#1}#1\csname\endcsname\c@page\@nil + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyPL@@CheckThePage} +% The first check is, is \cmd{\thepage} is defined +% such as in \LaTeX, e.\,g.: |\csname @arabic\endcsname\c@page|. +% In the current implemenation the check fails, if there is +% another \cmd{\csname} before. +% +% The second check tries to detect |\arabic{page}| at the +% end of the definition text of \cmd{\thepage}. +% \begin{macrocode} + \def\HyPL@@CheckThePage#1#2\csname#3\endcsname\c@page#4\@nil{% + \def\Hy@tempa{#4}% + \def\Hy@tempb{\csname\endcsname\c@page}% + \ifx\Hy@tempa\Hy@tempb + \expandafter\ifx\csname HyPL#3\endcsname\relax + \else + \def\HyPL@Type{#3}% + \def\HyPL@Prefix{#2}% + \fi + \else + \begingroup + \let\Hy@next\endgroup + \let\HyPL@found\@undefined + \def\arabic{\HyPL@Format{arabic}}% + \def\Roman{\HyPL@Format{Roman}}% + \def\roman{\HyPL@Format{roman}}% + \def\Alph{\HyPL@Format{Alph}}% + \def\alph{\HyPL@Format{alph}}% + \protected@edef\Hy@temp{#1}% + \ifx\HyPL@found\relax + \toks@\expandafter{\Hy@temp}% + \edef\Hy@next{\endgroup + \noexpand\HyPL@@@CheckThePage\the\toks@ + \noexpand\HyPL@found\relax\noexpand\@nil + }% + \fi + \Hy@next + \fi + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@Format} +% The help macro \cmd{\HyPL@Format} is executed while +% a \cmd{\protected@edef} in the second check +% method of \cmd{\HyPL@@CheckPage}. +% The first occurences of, for example, |\arabic{page}| is +% marked by \cmd{\HyPL@found} that is also defined by +% \cmd{\csname}. +% \begin{macrocode} + \def\HyPL@Format#1#2{% + \ifx\HyPL@found\@undefined + \expandafter\ifx\csname c@#2\endcsname\c@page + \expandafter\noexpand\csname HyPL@found\endcsname{#1}% + \else + \expandafter\noexpand\csname#1\endcsname{#2}% + \fi + \else + \expandafter\noexpand\csname#1\endcsname{#2}% + \fi + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@@@CheckThePage} +% If the second check method is successful, +% \cmd{\HyPL@@@CheckThePage} scans the result of +% \cmd{\HyPL@Format} and stores the found values. +% \begin{macrocode} + \def\HyPL@@@CheckThePage#1\HyPL@found#2#3\@nil{% + \def\Hy@tempa{#3}% + \def\Hy@tempb{\HyPL@found\relax}% + \ifx\Hy@tempa\Hy@tempb + \def\HyPL@Type{@#2}% + \def\HyPL@Prefix{#1}% + \fi + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@StorePageLabel} +% Dummy for drivers that does not support /PageLabel. +% \begin{macrocode} + \providecommand*{\HyPL@StorePageLabel}[1]{}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@Useless} +% The |/PageLabels| entry does not make sense, +% if the absolute page numbers and the page labels are the +% same. Then \cmd{\HyPL@Labels} has the meaning of \cmd{\HyPL@Useless}. +% \begin{macrocode} + \def\HyPL@Useless{0<</S/D>>}% + \@onelevel@sanitize\HyPL@Useless +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyPL@SetPageLabels} +% The page labels are written to the PDF cataloge. +% The command \cmd{\Hy@PutCatalog} is defined in the +% driver files. +% \begin{macrocode} + \def\HyPL@SetPageLabels{% + \@onelevel@sanitize\HyPL@Labels + \ifx\HyPL@Labels\@empty + \else + \ifx\HyPL@Labels\HyPL@Useless + \else + \Hy@PutCatalog{/PageLabels<</Nums[\HyPL@Labels]>>}% + \fi + \fi + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} + \g@addto@macro\Hy@EveryPageHook{\HyPL@EveryPage}% +\fi +% \end{macrocode} +% +% Option `pdfpagelabels' has been used and is now disabled. +% \begin{macrocode} +\Hy@DisableOption{pdfpagelabels} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \subsubsection{pdfTeX and VTeX} +% +% Because of pdfTeX's \cmd{\pdfcatalog} command +% the /PageLabels entry can set at end of document +% in the first run. +% +% \begin{macro}{\Hy@PutCatalog} +% \begin{macrocode} +%<*pdftex> +\pdf@ifdraftmode{% + \let\Hy@PutCatalog\ltx@gobble +}{% + \let\Hy@PutCatalog\pdfcatalog +} +%</pdftex> +% \end{macrocode} +% The code for VTeX is more complicate, because it does +% not allow the direct access to the /Catalog object. +% The command scans its argument and looks +% for a /PageLabels entry. +% +% VTeX 6.59g is the first version, that +% implements \verb|\special{!pdfpagelabels...}|. +% For this version \cmd{\VTeXversion} reports 660. +% \begin{macrocode} +%<*vtex> +\providecommand*{\XR@ext}{pdf} +\edef\Hy@VTeXversion{% + \ifx\VTeXversion\@undefined + \z@ + \else + \ifx\VTeXversion\relax + \z@ + \else + \VTeXversion + \fi + \fi +} +\begingroup + \ifnum\Hy@VTeXversion<660 % + \gdef\Hy@PutCatalog#1{% + \Hy@WarningNoLine{% + VTeX 6.59g or above required for pdfpagelabels% + }% + }% + \else + \gdef\Hy@PutCatalog#1{% + \Hy@vt@PutCatalog#1/PageLabels<<>>\@nil + }% + \gdef\Hy@vt@PutCatalog#1/PageLabels<<#2>>#3\@nil{% + \ifx\\#2\\% + \else + \immediate\special{!pdfpagelabels #2}% + \fi + }% + \fi +\endgroup +%</vtex> +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%<*pdftex|vtex> +% \end{macrocode} +% +% \begin{macro}{\HyPL@StorePageLabel} +% This macro adds the entry |#1| to \cmd{\HyPL@Labels}. +% \begin{macrocode} +\ifHy@pdfpagelabels + \def\HyPL@StorePageLabel#1{% + \toks@\expandafter{\HyPL@Labels}% + \xdef\HyPL@Labels{% + \the\toks@ + \the\Hy@abspage<<#1>>% + }% + }% +% \end{macrocode} +% \end{macro} +% +% Package \textsf{atveryend} is used to get behind the +% final \cs{clearpage} and to avoid a \cs{clearpage} +% in \cs{AtEndDocument}. +% Then the PDF catalog entry for |\PageLabels| is set. +% \begin{macrocode} + \RequirePackage{atveryend}[2009/12/07]% + \AtVeryEndDocument{% + \HyPL@SetPageLabels + }% +% \end{macrocode} +% +% \begin{macrocode} +\fi +%</pdftex|vtex> +% \end{macrocode} +% +% \subsubsection{xetex} +% +% \begin{macrocode} +%<*xetex> +\HyPsd@LoadUnicode +\Hy@unicodetrue +\ifx\HyPsd@pdfencoding\HyPsd@pdfencoding@unicode +\else + \let\HyPsd@pdfencoding\HyPsd@pdfencoding@auto +\fi +\HyPsd@LoadStringEnc +\define@key{Hyp}{unicode}[true]{% + \Hy@boolkey{unicode}{#1}% + \ifHy@unicode + \else + \Hy@Warning{% + XeTeX driver only supports `unicode=true'. Ignoring\MessageBreak + option setting `unicode=false'% + }% + \Hy@unicodetrue + \fi +} +\define@key{Hyp}{pdfencoding}{% + \edef\HyPsd@temp{#1}% + \ifx\HyPsd@temp\HyPsd@pdfencoding@unicode + \let\HyPsd@pdfencoding\HyPsd@temp + \else + \ifx\HyPsd@temp\HyPsd@pdfencoding@auto + \let\HyPsd@pdfencoding\HyPsd@temp + \else + \Hy@Warning{% + XeTeX driver only supports\MessageBreak + `pdfencoding=unicode|auto'. Ignoring option\MessageBreak + setting `pdfencoding=\HyPsd@temp'% + }% + \fi + \fi +} +\let\HyXeTeX@CheckUnicode\relax +% \end{macrocode} +% Since 2016 (x)dvipdfmx has a special to control the spacing of annotation borders. +% So let's make use of it: +% \begin{macrocode} +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \special{dvipdfmx:config g \strip@pt\dimen@}% + \endgroup} +%</xetex> +% \end{macrocode} +% +% \subsubsection{pdfmarkbase, dvipdfm, xetex} +% +% \begin{macrocode} +%<*pdfmarkbase> +\begingroup + \@ifundefined{headerps@out}{}{% + \toks@\expandafter{\Hy@FirstPageHook}% + \xdef\Hy@FirstPageHook{% + \noexpand\headerps@out{% + systemdict /pdfmark known% + {% + userdict /?pdfmark systemdict /exec get put% + }{% + userdict /?pdfmark systemdict /pop get put % + userdict /pdfmark systemdict /cleartomark get put% + }% + ifelse% + }% + \the\toks@ + }% + }% +\endgroup +%</pdfmarkbase> +% \end{macrocode} +% +% \begin{macro}{\Hy@PutCatalog} +% \begin{macrocode} +%<dvipdfm|xetex>\def\Hy@PutCatalog#1{\@pdfm@mark{docview <<#1>>}} +%<*pdfmarkbase> +\def\Hy@PutCatalog#1{% + \pdfmark{pdfmark=/PUT,Raw={\string{Catalog\string} <<#1>>}}% +} +%</pdfmarkbase> +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%<*pdfmarkbase|dvipdfm|xetex> +\ifHy@pdfpagelabels +% \end{macrocode} +% +% \begin{macro}{\HyPL@StorePageLabel} +% This macro writes a string to the .aux file. +% \begin{macrocode} + \def\HyPL@StorePageLabel#1{% + \if@filesw + \begingroup + \edef\Hy@tempa{\the\Hy@abspage<<#1>>}% + \immediate\write\@mainaux{% + \string\HyPL@Entry{\Hy@tempa}% + }% + \endgroup + \fi + }% +% \end{macrocode} +% \end{macro} +% +% Write a dummy definition of \cmd{\HyPL@Entry} for the case, +% that the next run is done without hyperref. +% A marker for the rerun warning is set and the /PageLabels +% is written. +% \begin{macrocode} + \Hy@AtBeginDocument{% + \if@filesw + \immediate\write\@mainaux{% + \string\providecommand\string*\string\HyPL@Entry[1]{}% + }% + \fi + \ifx\HyPL@Labels\@empty + \Hy@WarningNoLine{Rerun to get /PageLabels entry}% + \else + \HyPL@SetPageLabels + \fi + \let\HyPL@Entry\@gobble + }% +% \end{macrocode} +% +% \begin{macro}{\HyPL@Entry} +% \begin{macrocode} + \def\HyPL@Entry#1{% + \expandafter\gdef\expandafter\HyPL@Labels\expandafter{% + \HyPL@Labels + #1% + }% + }% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\fi +%</pdfmarkbase|dvipdfm|xetex> +% \end{macrocode} +% +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \begin{macrocode} +\ifx\MaybeStopEarly\relax +\else + \Hy@stoppedearlytrue + \expandafter\MaybeStopEarly +\fi +\Hy@stoppedearlyfalse +% \end{macrocode} +% +% \section{Automated \LaTeX\ hypertext cross-references}\label{latexxref} +% Anything which can be referenced advances some counter; we overload +% this to put in a hypertext starting point (with no visible anchor), +% and make a note of that for later use in |\label|. +% This will fail badly if |\theH<name>| +% does not expand to a sensible reference. This means that classes +% or package which introduce new elements need to define +% an equivalent |\theH<name>| for every |\the<name>|. We do make +% a trap to make |\theH<name>| be the same as |\arabic{<name>}|, +% if |\theH<name>| is not defined, but this is not necessarily a good idea. +% Alternatively, the `naturalnames' option uses whatever \LaTeX\ +% provides, which may be useable. But then its up to you to make +% sure these are legal PDF and HTML names. The `hypertexnames=false' option +% just makes up arbitrary names. +% +% All the shenanigans is to make sure section numbers etc +% are always arabic, separated by dots. Who knows how people +% will set up |\@currentlabel|? If they put spaces in, or brackets +% (quite legal) then the hypertext processors will get upset. +% +% But this is flaky, and open to abuse. Styles like +% |subeqn| will mess it up, for starters. Appendices are an issue, too. +% We just hope to cover most situations. We can at least cope +% with the standard sectioning structure, allowing for |\part| +% and |\chapter|. +% +% Start with a fallback for equations +% \begin{macrocode} +\def\Hy@CounterExists#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname c@#1\endcsname\relax + \expandafter\@gobble + \else + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname the#1\endcsname\relax + \expandafter\expandafter\expandafter\@gobble + \else + \expandafter\expandafter\expandafter\@firstofone + \fi + \fi +} +\Hy@CounterExists{section}{% + \providecommand\theHequation{\theHsection.\arabic{equation}}% +} +\Hy@CounterExists{part}{% + \providecommand\theHpart{\arabic{part}}% +} +\ltx@IfUndefined{thechapter}{% + \providecommand\theHsection {\arabic{section}}% + \providecommand\theHfigure {\arabic{figure}}% + \providecommand\theHtable {\arabic{table}}% +}{% + \providecommand\theHchapter {\arabic{chapter}}% + \providecommand\theHfigure {\theHchapter.\arabic{figure}}% + \providecommand\theHtable {\theHchapter.\arabic{table}}% + \providecommand\theHsection {\theHchapter.\arabic{section}}% +} +\providecommand\theHsubsection {\theHsection.\arabic{subsection}} +\providecommand\theHsubsubsection{\theHsubsection.\arabic{subsubsection}} +\providecommand\theHparagraph {\theHsubsubsection.\arabic{paragraph}} +\providecommand\theHsubparagraph {\theHparagraph.\arabic{subparagraph}} +\providecommand\theHtheorem {\theHsection.\arabic{theorem}} +\providecommand\theHthm {\theHsection.\arabic{thm}} +% \end{macrocode} +% Thanks to Greta Meyer (gbd@pop.cwru.edu) for making me realize +% that enumeration starts at 0 for every list! But |\item| +% occurs inside |\trivlist|, so check if its a real |\item| before +% incrementing counters. +% \begin{macrocode} +\let\H@item\item +\newcounter{Item} +\def\theHItem{\arabic{Item}} +\def\item{% + \@hyper@itemfalse + \if@nmbrlist\@hyper@itemtrue\fi + \H@item +} +% \end{macrocode} +% +% \begin{macrocode} +\providecommand\theHenumi {\theHItem} +\providecommand\theHenumii {\theHItem} +\providecommand\theHenumiii {\theHItem} +\providecommand\theHenumiv {\theHItem} +\providecommand\theHHfootnote {\arabic{Hfootnote}} +\providecommand\theHmpfootnote{\arabic{mpfootnote}} +\@ifundefined{theHHmpfootnote}{% + \let\theHHmpfootnote\theHHfootnote +}{} +% \end{macrocode} +% Tanmoy asked for this default handling of undefined |\theH<name>| +% situations. It really isn't clear what would be ideal, whether to +% turn off hyperizing of unknown elements, to pick up the textual +% definition of the counter, or to default it to something like +% |\arabic{name}|. We take the latter course, slightly worriedly. +% \begin{macrocode} +\let\H@refstepcounter\refstepcounter +\edef\name@of@eq{equation}% +\edef\name@of@slide{slide}% +% \end{macrocode} +% We do not want the handler for |\refstepcounter| to cut in +% during the processing of |\item| (we handle that separately), +% so we provide a bypass conditional. +% \begin{macrocode} +\newif\if@hyper@item +\newif\if@skiphyperref +\@hyper@itemfalse +\@skiphyperreffalse +\def\refstepcounter#1{% + \ifHy@pdfstring + \else + \H@refstepcounter{#1}% + \edef\This@name{#1}% + \ifx\This@name\name@of@slide + \else + \if@skiphyperref + \else + \if@hyper@item + \stepcounter{Item}% + \hyper@refstepcounter{Item}% + \@hyper@itemfalse + \else + \hyper@refstepcounter{#1}% + \fi + \fi + \fi + \fi +} +\let\Hy@saved@refstepcounter\refstepcounter +% \end{macrocode} +% AMS\LaTeX\ processes all equations twice; we want to make sure +% that the hyper stuff is not executed twice, so we use the AMS +% |\ifmeasuring@|, initialized if AMS math is not used. +% \begin{macrocode} +\@ifpackageloaded{amsmath}{}{\newif\ifmeasuring@\measuring@false} +% \end{macrocode} +% +% \begin{macro}{\hyper@refstepcounter} +% \begin{macrocode} +\def\hyper@refstepcounter#1{% + \edef\This@name{#1}% + \ifx\This@name\name@of@eq + \@ifundefined{theHequation}{% + \make@stripped@name{\theequation}% + \let\theHequation\newname + }{}% + \fi + \HyCnt@ProvideTheHCounter{#1}% + \hyper@makecurrent{#1}% + \ifmeasuring@ + \else + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@ProvideTheHCounter} +% \cs{theH<counter>} is not set for counters that +% are defined before `hyperref' is loaded. +% In \cs{cl@@ckpt}, the clear counter list of +% the artificial counter |@ckpt|, \LaTeX\ remembers +% the defined counters (needed for \cs{include}). We check +% the clear counter lists, whether our counter is present. +% If we found it, then we add the parent counter value +% to \cs{theH<counter>}. The \cs{@elt} list is +% used in sanitized form for the comparison, because the list +% might contain other stuff than \cs{@elt}s. Also it simplifies +% the implementation, because \LaTeX', substring search +% \cs{in@} can be used. +% \begin{macrocode} +\def\HyCnt@ProvideTheHCounter#1{% + \@ifundefined{theH#1}{% + \expandafter\def\csname theH#1\endcsname{}% + \def\Hy@temp{\@elt{#1}}% + \ltx@onelevel@sanitize\Hy@temp + \let\HyOrg@elt\@elt + \edef\@elt{% + \noexpand\HyCnt@LookForParentCounter + \expandafter\noexpand\csname theH#1\endcsname + }% + \cl@@ckpt + \let\@elt\HyOrg@elt + \expandafter + \ltx@LocalAppendToMacro\csname theH#1\expandafter\endcsname + \expandafter{% + \expandafter\@arabic\csname c@#1\endcsname + }% + }{}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@LookForParentCounter} +% \begin{macrocode} +\def\HyCnt@LookForParentCounter#1#2{% + \expandafter\let\expandafter\Hy@temp@A\csname cl@#2\endcsname + \ltx@IfUndefined{cl@#2}{% + }{% + \ltx@onelevel@sanitize\Hy@temp@A + \edef\Hy@temp@A{% + \noexpand\in@{\Hy@temp}{\Hy@temp@A}% + }\Hy@temp@A + \ifin@ + \ltx@IfUndefined{theH#2}{% + \expandafter\ltx@LocalAppendToMacro\expandafter#1% + \expandafter{% + \expandafter\@arabic\csname c@#2\endcsname.% + }% + }{% + \expandafter\ltx@LocalAppendToMacro\expandafter#1% + \expandafter{% + \csname theH#2\endcsname.% + }% + }% + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% After \cmd{\appendix} ``chapter'' (or ``section'' for classes +% without chapter) should be replaced +% by ``appendix'' to get \cmd{\autoref} work. +% Macro \cmd{\Hy@chapapp} contains the current valid +% name like \cmd{\@chapapp}, which cannot be used, +% because this string depends on the current language. +% +% The ``french'' package defines counter \cmd{\thechapter} +% by \cmd{\newcounter{chapter}}, if \cmd{\@ifundefined{chapter}}. +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname chapter\endcsname\relax + \def\Hy@chapterstring{section}% +\else + \def\Hy@chapterstring{chapter}% +\fi +\def\Hy@appendixstring{appendix} +\def\Hy@chapapp{\Hy@chapterstring} +\ltx@IfUndefined{appendix}{% +}{% + \let\HyOrg@appendix\appendix + \def\Hy@AlphNoErr#1{% + \ifnum\value{#1}>26 % + Alph\number\value{#1}% + \else + \ifnum\value{#1}<1 % + Alph\number\value{#1}% + \else + \Alph{#1}% + \fi + \fi + }% + \def\appendix{% + \ltx@IfUndefined{chapter}{% + \gdef\theHsection{\Hy@AlphNoErr{section}}% + }{% + \gdef\theHchapter{\Hy@AlphNoErr{chapter}}% + }% + \xdef\Hy@chapapp{\Hy@appendixstring}% + \HyOrg@appendix + }% +} +% \end{macrocode} +% \begin{macro}{\Hy@Test@alph} +% \begin{macrocode} +\def\Hy@Test@alph#1{% + \ifcase#1\or + a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or + k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or + u\or v\or w\or x\or y\or z% + \else + \@ctrerr + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@Test@Alph} +% \begin{macrocode} +\def\Hy@Test@Alph#1{% + \ifcase#1\or + A\or B\or C\or D\or E\or F\or G\or H\or I\or J\or + K\or L\or M\or N\or O\or P\or Q\or R\or S\or T\or + U\or V\or W\or X\or Y\or Z% + \else + \@ctrerr + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hyper@makecurrent} +% Because of Babel mucking around, nullify |\textlatin| when making names. +% And |\@number| because of babel's lrbabel.def. +% \begin{macrocode} +\def\hyper@makecurrent#1{% + \begingroup + \Hy@safe@activestrue + \edef\Hy@param{#1}% + \ifx\Hy@param\Hy@chapterstring + \let\Hy@param\Hy@chapapp + \fi + \ifHy@hypertexnames + \let\@number\@firstofone + \def\@fnsymbol##1{fnsymbol\number##1}% + \def\@arabic##1{\number##1}% + \ifx\@alph\Hy@Test@alph + \else + \def\@alph{alph\number}% + \fi + \ifx\@Alph\Hy@Test@Alph + \else + \def\@Alph{Alph\number}% + \fi + \ifHy@naturalnames + \let\textlatin\@firstofone + \xdef\HyperGlobalCurrentHref{\csname the#1\endcsname}% + \else + \xdef\HyperGlobalCurrentHref{% + \csname + the% + \expandafter\ifx\csname theH#1\endcsname\relax\else H\fi + #1% + \endcsname + }% + \fi + \xdef\HyperGlobalCurrentHref{% + \Hy@param.\expandafter\strip@prefix\meaning\HyperGlobalCurrentHref + }% + \else + \Hy@GlobalStepCount\Hy@linkcounter + \xdef\HyperGlobalCurrentHref{\Hy@param.\the\Hy@linkcounter}% + \fi + \endgroup + \let\HyperLocalCurrentHref\HyperGlobalCurrentHref + \ifHy@localanchorname + \let\@currentHref\HyperLocalCurrentHref + \else + \global\let\@currentHref\HyperGlobalCurrentHref + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@MakeCurrentHref} +% \begin{macrocode} +\def\Hy@MakeCurrentHref#1{% + \edef\HyperLocalCurrentHref{#1}% + \@onelevel@sanitize\HyperLocalCurrentHref + \global\let\HyperGlobalCurrentHref\HyperLocalCurrentHref + \let\HyperLocalCurrentHref\HyperGlobalCurrentHref + \ifHy@localanchorname + \let\@currentHref\HyperLocalCurrentHref + \else + \global\let\@currentHref\HyperGlobalCurrentHref + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@MakeCurrentHrefAuto} +% \begin{macrocode} +\def\Hy@MakeCurrentHrefAuto#1{% + \Hy@GlobalStepCount\Hy@linkcounter + \Hy@MakeCurrentHref{#1.\the\Hy@linkcounter}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@currentHlabel} +% \cs{@currrentHlabel} is only defined for compatibility with +% package `hypdvips'. +% \begin{macrocode} +\def\@currentHlabel{\@currentHref} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\@ifpackageloaded{fancyvrb}{% + \@ifpackagelater{fancyvrb}{1998/05/20}{}{% + \def\FV@StepLineNo{% + \FV@SetLineNo + \def\FV@StepLineNo{\H@refstepcounter{FancyVerbLine}}% + \FV@StepLineNo + }% + }% +}{} +% \end{macrocode} +% +% \section{Package lastpage support} +% Package lastpage directly writes the |\newlabel| command to the +% aux file. Because package hyperref requires additional arguments, +% the internal command |\lastpage@putlabel| is redefined. +% The patch is deferred by |\AtBeginDocument|, because it is possible +% that package lastpage is loaded after package hyperref. +% The same algorithm (options hypertexnames and plainpages) +% is used to get the page anchor name as +% in |\Hy@EveryPageAnchor| (see sec. \ref{pagenum}). +% The link will not work if option pageanchor is set to false. +% \begin{macro}{\lastpage@putlabel} +% \begin{macrocode} +\Hy@AtBeginDocument{% + \@ifclassloaded{revtex4}{% + \@namedef{ver@lastpage.sty}{1994/06/25}% + }{}% + \@ifpackageloaded{lastpage}{% + \ifHy@pageanchor + \else + \Hy@WarningNoLine{% + The \string\pageref{LastPage} link doesn't work\MessageBreak + with disabled option `pageanchor'% + }% + \fi + \def\lastpage@putlabel{% + \addtocounter{page}{-1}% + \if@filesw + \begingroup + \let\@number\@firstofone + \ifHy@pageanchor + \ifHy@hypertexnames + \ifHy@plainpages + \def\Hy@temp{\arabic{page}}% + \else + \Hy@unicodefalse + \pdfstringdef\Hy@temp{\thepage}% + \fi + \else + \def\Hy@temp{\the\Hy@pagecounter}% + \fi + \fi + \immediate\write\@auxout{% + \string\newlabel + {LastPage}{{}{\thepage}{}{% + \ifHy@pageanchor page.\Hy@temp\fi}{}}% + }% + \endgroup + \fi + \addtocounter{page}{1}% + }% + \@ifclassloaded{revtex4}{% + \begingroup + \toks@\expandafter{\lastpage@putlabel}% + \edef\x{\endgroup + \def\noexpand\lastpage@putlabel{% + \noexpand\stepcounter{page}% + \the\toks@ + \noexpand\addtocounter{page}\noexpand\m@ne + }% + }% + \x + }{}% + }{}% +} +%</package> +%<*check> +\checkpackage{lastpage}[1994/06/25] +\checkcommand\def\lastpage@putlabel{% + \addtocounter{page}{-1}% + \immediate\write\@auxout{% + \string\newlabel{LastPage}{{}{\thepage}}% + }% + \addtocounter{page}{1}% +} +%</check> +%<*package> +% \end{macrocode} +% \end{macro} +% +% \section{Package ifthen support} +% +% Since version 6.75a this is done in package nameref. +% +% For compatibility \cmd{\hypergetref} and +% \cmd{\hypergetpageref} are still provided. +% But they do not generate warnings, if the reference is +% undefined. +% \begin{macrocode} +\def\hypergetref#1{\getrefbykeydefault{#1}{}{??}} +\def\hypergetpageref#1{\getrefbykeydefault{#1}{page}{0}} +% \end{macrocode} +% +% \section{Package titlesec and titletoc support} +% +% This code is contributed by Javier Bezos +% (Email: \Email{jbezos@arrakis.es}). +% +% Package titlesec support: +% \begin{macrocode} +\@ifpackageloaded{titlesec}{% + \def\ttl@Hy@steplink#1{% + \Hy@MakeCurrentHrefAuto{#1*}% + \edef\ttl@Hy@saveanchor{% + \noexpand\Hy@raisedlink{% + \noexpand\hyper@anchorstart{\@currentHref}% + \noexpand\hyper@anchorend + \def\noexpand\ttl@Hy@SavedCurrentHref{\@currentHref}% + \noexpand\ttl@Hy@PatchSaveWrite + }% + }% + }% + \def\ttl@Hy@PatchSaveWrite{% + \begingroup + \toks@\expandafter{\ttl@savewrite}% + \edef\x{\endgroup + \def\noexpand\ttl@savewrite{% + \let\noexpand\@currentHref + \noexpand\ttl@Hy@SavedCurrentHref + \the\toks@ + }% + }% + \x + }% + \def\ttl@Hy@refstepcounter#1{% + \let\ttl@b\Hy@raisedlink + \def\Hy@raisedlink##1{% + \def\ttl@Hy@saveanchor{\Hy@raisedlink{##1}}% + }% + \refstepcounter{#1}% + \let\Hy@raisedlink\ttl@b + }% +}{} +% \end{macrocode} +% +% Package titletoc support: +% \begin{macrocode} +\@ifpackageloaded{titletoc}{% + \def\ttl@gobblecontents#1#2#3#4{\ignorespaces}% +}{} +% \end{macrocode} +% +% \section{Package varioref support} +% +% Package nameref uses five arguments for the ref system. +% Fix provided by Felix Neubauer (\Email{felix.neubauer@gmx.net}). +% \begin{macrocode} +\def\Hy@varioref@undefined{{??}{??}{}{}{}} +\@ifpackageloaded{varioref}{% + \def\vref@pagenum#1#2{% + \@ifundefined{r@#2}{% + \expandafter\let\csname r@#2\endcsname\Hy@varioref@undefined + }{}% + \edef#1{\getpagerefnumber{#2}}% + }% +}{} +% \end{macrocode} +% +% Package varioref redefines \cs{refstepcounter}, thus it needs +% fixing, if the package is loaded *after* hyperref. +% \begin{macrocode} +\def\Hy@varioref@refstepcounter#1{% + \stepcounter{#1}% + \protected@edef\@currentlabel{% + \csname p@#1\expandafter\endcsname\csname the#1\endcsname + }% +} +\AtBeginDocument{% + \ifx\refstepcounter\Hy@varioref@refstepcounter + \let\H@refstepcounter\refstepcounter + \let\refstepcounter\Hy@saved@refstepcounter + \fi +} +% \end{macrocode} +% +% \section{Package longtable support} +% +% Sometimes the anchor of the longtable goes to the previous +% page. Thus the following patch separates the anchor setting +% and counter incrementation by hyperref's \verb|\refstepcounter| +% and the anchor setting is moved after \verb|\vskip\LTpre|. +% +% Patch of \cmd{\LT@array}: +% replace \cmd{\refstepcounter} by the original +% \cmd{\H@refstepcounter} without anchor generation +% \begin{macrocode} +\@ifpackageloaded{longtable}{% + \begingroup + \def\y{\LT@array}% + \@ifundefined{scr@LT@array}{% + \@ifundefined{adl@LT@array}{}{\def\y{\adl@LT@array}}% + }{\def\y{\scr@LT@array}}% + \long\def\x\refstepcounter#1#2\@sharp#3#4\@nil{% + \expandafter\endgroup + \expandafter\def\y[##1]##2{% + \H@refstepcounter{#1}% + \hyper@makecurrent{table}% + \let\Hy@LT@currentHref\@currentHref + #2\@sharp#####4% + }% + }% + \expandafter\expandafter\expandafter\x\y[{#1}]{#2}\@nil +% \end{macrocode} +% Patch of \cmd{\LT@start}: +% add anchor before first line after \verb|\vskip\LTpre| +% \begin{macrocode} + \begingroup + \def\x#1\ifvoid\LT@foot#2\fi#3\@nil{% + \endgroup + \def\LT@start{% + #1% + \ifvoid\LT@foot#2\fi + \let\@currentHref\Hy@LT@currentHref + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + #3% + }% + }% + \expandafter\x\LT@start\@nil +}{} +% \end{macrocode} +% +% \section{Equations}\label{equations} +% We want to make the whole equation a target anchor. +% Overload equation, temporarily reverting to original +% |\refstepcounter|. If, however, it is in AMS math, we do not +% do anything, as the tag mechanism is used there (see section \ref{ams}). +% The execption is that we move the equation incrementation inside +% the math environment to avoid specials outside and a wrong vertical +% spacing of equation environments. +% \begin{macrocode} +\let\new@refstepcounter\refstepcounter +\let\H@equation\equation +\let\H@endequation\endequation +% \end{macrocode} +% +% \begin{macrocode} +\@ifpackageloaded{amsmath}{% + \long\def\Hy@temp{% + \incr@eqnum + \mathdisplay@push + \st@rredfalse \global\@eqnswtrue + \mathdisplay{equation}% + }% + \ifx\Hy@temp\equation + \expandafter\ifx\csname if@fleqn\expandafter\endcsname + \csname iftrue\endcsname + \else + \long\def\equation{% + \mathdisplay@push + \st@rredfalse \global\@eqnswtrue + \mathdisplay{equation}% + \incr@eqnum + }% + \fi + \fi +}{% + \def\equation{% + \let\refstepcounter\H@refstepcounter + \H@equation + \@ifundefined{theHequation}{% + \make@stripped@name{\theequation}% + \let\theHequation\newname + }{}% + \hyper@makecurrent{equation}% +% \end{macrocode} +% \cs{mathopen} is needed in case the equation starts with +% an unary minus, for example. +% \begin{macrocode} + \mathopen{% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}}% + }% + \let\refstepcounter\new@refstepcounter + }% + \def\endequation{% + \ifx\Hy@raisedlink\ltx@empty + \hyper@anchorend + \else + \mathclose{\Hy@raisedlink{\hyper@anchorend}}% + \fi + \H@endequation + }% +} +% \end{macrocode} +% My goodness, why can't \LaTeX{} be consistent? Why is |\eqnarray| +% set up differently from other objects? +% +% People (you know who you are, Thomas Beuth) sometimes make +% an eqnarray where \emph{all} the lines end with |\notag|, +% so there is no suitable anchor at all. In this case, pass by +% on the other side. +% \begin{macrocode} +\newif\if@eqnstar +\@eqnstarfalse +\let\H@eqnarray\eqnarray +\let\H@endeqnarray\endeqnarray +\def\eqnarray{% + \let\Hy@reserved@a\relax + \def\@currentHref{}% + \H@eqnarray + \if@eqnstar + \else + \ifx\\\@currentHref\\% + \else + \@ifundefined{theHequation}{% + \make@stripped@name{\theequation}% + \let\theHequation\newname + }{}% + \hyper@makecurrent{equation}% + \mathopen{% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + }% + \fi + \fi +} +\def\endeqnarray{% + \H@endeqnarray +} +% \end{macrocode} +% This is quite heavy-handed, but it works for now. If its an |eqnarray*| +% we need to disable the hyperref actions. There may well be a cleaner +% way to trap this. Bill Moss found this. +% \begin{macrocode} +\@namedef{eqnarray*}{% + \def\@eqncr{\nonumber\@seqncr}\@eqnstartrue\eqnarray +} +\@namedef{endeqnarray*}{% + \nonumber\endeqnarray\@eqnstarfalse +} +% \end{macrocode} +% Then again, we have the \emph{subeqnarray} +% package. Tanmoy provided some code for this: +% \begin{macrocode} +\ltx@IfUndefined{subeqnarray}{}{% + \let\H@subeqnarray\subeqnarray + \let\H@endsubeqnarray\endsubeqnarray + \def\subeqnarray{% + \let\Hy@reserved@a\relax + \H@subeqnarray + \@ifundefined{theHequation}{% + \make@stripped@name{\theequation}% + \let\theHequation\newname + }{}% + \hyper@makecurrent{equation}% + \hyper@anchorstart{\@currentHref}{}\hyper@anchorend + }% + \def\endsubeqnarray{% + \H@endsubeqnarray + }% + \providecommand\theHsubequation{\theHequation\alph{subequation}}% +} +% \end{macrocode} +% The aim of this macro is to produce a sanitized version of +% its argument, to make it a safe label. +% \begin{macrocode} +\def\make@stripped@name#1{% + \begingroup + \escapechar\m@ne + \global\let\newname\@empty + \protected@edef\Hy@tempa{#1}% + \edef\@tempb{% + \noexpand\@tfor\noexpand\Hy@tempa:=% + \expandafter\strip@prefix\meaning\Hy@tempa + }% + \@tempb\do{% + \if{\Hy@tempa\else + \if}\Hy@tempa\else + \xdef\newname{\newname\Hy@tempa}% + \fi + \fi + }% + \endgroup +} +% \end{macrocode} +% +% Support for amsmath's \texttt{subequations}: +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname subequations\endcsname\relax +\else + \let\HyOrg@subequations\subequations + \def\subequations{% + \stepcounter{equation}% + \protected@edef\theHparentequation{% + \@ifundefined{theHequation}\theequation\theHequation + }% + \addtocounter{equation}{-1}% + \HyOrg@subequations + \def\theHequation{\theHparentequation\alph{equation}}% + \ignorespaces + }% +\fi +% \end{macrocode} +% +% Support for package \texttt{amsthm} (Daniel M\"ullner): +% also \texttt{cleveref}. +% \begin{macrocode} +\Hy@AtBeginDocument{% +\@ifpackageloaded{cleveref}{% +\let\Hy@savedthm\@thm +\def\@thm{\ifhmode\unskip\fi\Hy@savedthm}% +}{% +\@ifpackageloaded{amsthm}{% +% \end{macrocode} +% Class amsbook uses a different definition of \cs{@thm}, +% where two lines are added (thanks to Dan Luecking for +% his analysis): +%\begin{quote} +%\begin{verbatim} +%\let\thm@indent\indent % indent +%\thm@headfont{\scshape}% heading font small caps +%\end{verbatim} +%\end{quote} +% \begin{macrocode} + \def\Hy@temp#1#2#3{% + \ifhmode\unskip\unskip\par\fi + \normalfont + \trivlist + \let\thmheadnl\relax + \let\thm@swap\@gobble + \let\thm@indent\indent % indent + \thm@headfont{\scshape}% heading font small caps + \thm@notefont{\fontseries\mddefault\upshape}% + \thm@headpunct{.}% add period after heading + \thm@headsep 5\p@ plus\p@ minus\p@\relax + \thm@space@setup + #1% style overrides + \@topsep \thm@preskip % used by thm head + \@topsepadd \thm@postskip % used by \@endparenv + \def\@tempa{#2}\ifx\@empty\@tempa + \def\@tempa{\@oparg{\@begintheorem{#3}{}}[]}% + \else + \refstepcounter{#2}% + \def\@tempa{% + \@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]% + }% + \fi + \@tempa + }% + \ifx\Hy@temp\@thm + \def\@thm#1#2#3{% + \ifhmode + \unskip\unskip\par + \fi + \normalfont + \trivlist + \let\thmheadnl\relax + \let\thm@swap\@gobble + \let\thm@indent\indent % indent + \thm@headfont{\scshape}% heading font small caps + \thm@notefont{\fontseries\mddefault\upshape}% + \thm@headpunct{.}% add period after heading + \thm@headsep 5\p@ plus\p@ minus\p@\relax + \thm@space@setup + #1% style overrides + \@topsep \thm@preskip % used by thm head + \@topsepadd \thm@postskip % used by \@endparenv + \def\dth@counter{#2}% + \ifx\@empty\dth@counter + \def\@tempa{% + \@oparg{\@begintheorem{#3}{}}[]% + }% + \else + \H@refstepcounter{#2}% + \hyper@makecurrent{#2}% + \let\Hy@dth@currentHref\@currentHref + \def\@tempa{% + \@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]% + }% + \fi + \@tempa + }% + \else + \def\@thm#1#2#3{% + \ifhmode + \unskip\unskip\par + \fi + \normalfont + \trivlist + \let\thmheadnl\relax + \let\thm@swap\@gobble + \thm@notefont{\fontseries\mddefault\upshape}% + \thm@headpunct{.}% add period after heading + \thm@headsep 5\p@ plus\p@ minus\p@\relax + \thm@space@setup + #1% style overrides + \@topsep \thm@preskip % used by thm head + \@topsepadd \thm@postskip % used by \@endparenv + \def\dth@counter{#2}% + \ifx\@empty\dth@counter + \def\@tempa{% + \@oparg{\@begintheorem{#3}{}}[]% + }% + \else + \H@refstepcounter{#2}% + \hyper@makecurrent{#2}% + \let\Hy@dth@currentHref\@currentHref + \def\@tempa{% + \@oparg{\@begintheorem{#3}{\csname the#2\endcsname}}[]% + }% + \fi + \@tempa + }% + \fi + \dth@everypar={% + \@minipagefalse + \global\@newlistfalse + \@noparitemfalse + \if@inlabel + \global\@inlabelfalse + \begingroup + \setbox\z@\lastbox + \ifvoid\z@ + \kern-\itemindent + \fi + \endgroup + \ifx\@empty\dth@counter + \else + \Hy@raisedlink{% + \hyper@anchorstart{% + \ltx@ifundefined{Hy@dth@currentHref}% + \@currentHref\Hy@dth@currentHref + }\hyper@anchorend + }% + \fi + \unhbox\@labels + \fi + \if@nobreak + \@nobreakfalse \clubpenalty\@M + \else + \clubpenalty\@clubpenalty \everypar{}% + \fi + }% +}% +% \end{macrocode} +% non \texttt{amsthm} case, remove final space on line before a theorem +% for githib issue 11. +% \begin{macrocode} +{% +\let\Hy@savedthm\@thm +\def\@thm{\ifhmode\unskip\fi\Hy@savedthm}% +}% +}% +} +% \end{macrocode} +% +% \section{Footnotes}\label{footnotes} +% The footnote mark is a hypertext link, and the text is a target. +% We separately number the footnotes sequentially through the +% text, separately from whatever labels the text assigns. Too hard +% to keep track of markers otherwise. If the raw forms |\footnotemark| +% and |\footnotetext| are used, force them to use un-hyper original. +% +% \begin{macrocode} +\ifHy@hyperfootnotes + \newcounter{Hfootnote}% + \let\H@@footnotetext\@footnotetext + \let\H@@footnotemark\@footnotemark + \def\@xfootnotenext[#1]{% + \begingroup + \csname c@\@mpfn\endcsname #1\relax + \unrestored@protected@xdef\@thefnmark{\thempfn}% + \endgroup + \ifx\@footnotetext\@mpfootnotetext + \expandafter\H@@mpfootnotetext + \else + \expandafter\H@@footnotetext + \fi + }% + \def\@xfootnotemark[#1]{% + \begingroup + \c@footnote #1\relax + \unrestored@protected@xdef\@thefnmark{\thefootnote}% + \endgroup + \H@@footnotemark + }% + \let\H@@mpfootnotetext\@mpfootnotetext + \long\def\@mpfootnotetext#1{% + \H@@mpfootnotetext{% + \ifHy@nesting + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + {% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\ignorespaces #1}% + }{% + \Hy@raisedlink{% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\relax}% + }\ignorespaces #1% + }% + }% + }% + \long\def\@footnotetext#1{% + \H@@footnotetext{% + \ifHy@nesting + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + {% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\ignorespaces #1}% + }{% + \Hy@raisedlink{% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\relax}% + }% + \let\@currentHref\Hy@footnote@currentHref + \let\@currentlabelname\@empty + \ignorespaces #1% + }% + }% + }% +% \end{macrocode} +% Redefine \verb+\@footnotemark+, borrowing its code (at the +% cost of getting out of sync with latex.ltx), to take +% advantage of its white space and hyphenation fudges. If we just +% overload it, we can get variant documents (the word before the +% footnote is treated differently). Thanks to David Carlisle and +% Brian Ripley for confusing and helping me on this. +% \begin{macrocode} + \def\@footnotemark{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \stepcounter{Hfootnote}% + \global\let\Hy@saved@currentHref\@currentHref + \hyper@makecurrent{Hfootnote}% + \global\let\Hy@footnote@currentHref\@currentHref + \global\let\@currentHref\Hy@saved@currentHref + \hyper@linkstart{link}{\Hy@footnote@currentHref}% + \@makefnmark + \hyper@linkend + \ifhmode\spacefactor\@x@sf\fi + \relax + }% +% \end{macrocode} +% +% Tabularx causes footnote problems, disable the linking if that is loaded. +% Since v6.82i footnotes are only disabled inside the environment +% `tabularx'. +% \begin{macrocode} + \@ifpackageloaded{tabularx}{% + \let\HyOrg@TX@endtabularx\TX@endtabularx + \def\Hy@tabularx@hook{% + \let\@footnotetext\H@@footnotetext + \let\@footnotemark\H@@footnotemark + \let\@mpfootnotetext\H@@mpfootnotetext + }% + \begingroup + \toks@\expandafter{\TX@endtabularx}% + \xdef\Hy@gtemp{% + \noexpand\Hy@tabularx@hook + \the\toks@ + }% + \endgroup + \let\TX@endtabularx\Hy@gtemp + }{}% +% \end{macrocode} +% +% Support for footnotes in p columns of longtable. +% Here \verb+\footnote+ commands are splitted into +% \verb+\footnotemark+ and a call of \verb+\footnotetext+ +% with the optional argument, that is not supported +% by hyperref. The result is a link by \verb+\footnotemark+ +% without valid anchor +% \begin{macrocode} + \@ifpackageloaded{longtable}{% + \CheckCommand*{\LT@p@ftntext}[1]{% + \edef\@tempa{% + \the\LT@p@ftn + \noexpand\footnotetext[\the\c@footnote]% + }% + \global\LT@p@ftn\expandafter{\@tempa{#1}}% + }% + \long\def\LT@p@ftntext#1{% + \edef\@tempa{% + \the\LT@p@ftn + \begingroup + \noexpand\c@footnote=\the\c@footnote\relax + \noexpand\protected@xdef\noexpand\@thefnmark{% + \noexpand\thempfn + }% + \noexpand\Hy@LT@footnotetext{% + \Hy@footnote@currentHref + }% + }% + \global\LT@p@ftn\expandafter{% + \@tempa{#1}% + \endgroup + }% + }% + \long\def\Hy@LT@footnotetext#1#2{% + \H@@footnotetext{% + \ifHy@nesting + \hyper@@anchor{#1}{#2}% + \else + \Hy@raisedlink{% + \hyper@@anchor{#1}{\relax}% + }% + \def\@currentHref{#1}% + \let\@currentlabelname\@empty + #2% + \fi + }% + }% + }{}% +% \end{macrocode} +% +% Footnotes for fancyvrb (Fix by Manuel P\'egouri\'e-Gonnard). +% \begin{macrocode} + \@ifpackageloaded{fancyvrb}{% + \def\V@@footnotetext{% + \insert\footins\bgroup + \csname reset@font\endcsname + \footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth\dp\strutbox + \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \@makefntext{}% + \rule{\z@}{\footnotesep}% + \bgroup + \aftergroup\V@@@footnotetext + \Hy@raisedlink{% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\relax}% + }% + \let\@currentHref\Hy@footnote@currentHref + \let\@currentlabelname\@empty + \ignorespaces + }% + }{}% +% \end{macrocode} +% +% KOMA-Script defines \cs{footref} that uses both +% \cs{ref} and \cs{@footnotemark} resulting in two links, +% one of them wrong. +% \begin{macrocode} + \def\Hy@temp#1{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark + }% + \ifx\Hy@temp\footref + \def\footref#1{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \H@@footnotemark + }% + \fi +% \end{macrocode} +% +% But the special footnotes +% in |\maketitle| are much too hard to deal with +% properly. Let them revert to plain behaviour. +% The koma classes add an optional argument. +% \begin{macrocode} + \let\HyOrg@maketitle\maketitle + \def\maketitle{% + \let\Hy@saved@footnotemark\@footnotemark + \let\Hy@saved@footnotetext\@footnotetext + \let\@footnotemark\H@@footnotemark + \let\@footnotetext\H@@footnotetext + \@ifnextchar[\Hy@maketitle@optarg{% ] + \HyOrg@maketitle + \Hy@maketitle@end + }% + }% + \def\Hy@maketitle@optarg[#1]{% + \HyOrg@maketitle[{#1}]% + \Hy@maketitle@end + }% + \def\Hy@maketitle@end{% + \ifx\@footnotemark\H@@footnotemark + \let\@footnotemark\Hy@saved@footnotemark + \fi + \ifx\@footnotetext\H@@footnotetext + \let\@footnotetext\Hy@saved@footnotetext + \fi + }% +% \end{macrocode} +% \begin{macro}{\realfootnote} +% Does anyone remember the function and purpose of \cmd{\realfootnote}? +% \begin{macrocode} + \def\realfootnote{% + \@ifnextchar[\@xfootnote{% + \stepcounter{\@mpfn}% + \protected@xdef\@thefnmark{\thempfn}% + \H@@footnotemark\H@@footnotetext + }% + }% +% \end{macrocode} +% \begin{macrocode} +\fi +\Hy@DisableOption{hyperfootnotes} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</package> +%<*check> +\checklatex +\checkcommand\def\@xfootnotenext[#1]{% + \begingroup + \csname c@\@mpfn\endcsname #1\relax + \unrestored@protected@xdef\@thefnmark{\thempfn}% + \endgroup + \@footnotetext +} +\checkcommand\def\@xfootnotemark[#1]{% + \begingroup + \c@footnote #1\relax + \unrestored@protected@xdef\@thefnmark{\thefootnote}% + \endgroup + \@footnotemark +} +\checkcommand\def\@footnotemark{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \@makefnmark + \ifhmode\spacefactor\@x@sf\fi + \relax +} +%</check> +%<*package> +% \end{macrocode} +% +% \section{Float captions}\label{captions} +% Make the float caption the hypertext anchor; curiously enough, +% we can't just copy the definition of |\@caption|. Its all to do +% with expansion. It screws up. Sigh. +% \begin{macrocode} +\def\caption{% + \ifx\@captype\@undefined + \@latex@error{\noexpand\caption outside float}\@ehd + \expandafter\@gobble + \else + \H@refstepcounter\@captype + \let\Hy@tempa\@caption + \@ifundefined{float@caption}{% + }{% + \expandafter\ifx\csname @float@c@\@captype\endcsname + \float@caption + \let\Hy@tempa\Hy@float@caption + \fi + }% + \expandafter\@firstofone + \fi + {\@dblarg{\Hy@tempa\@captype}}% +} +\long\def\@caption#1[#2]#3{% + \expandafter\ifx\csname if@capstart\expandafter\endcsname + \csname iftrue\endcsname + \global\let\@currentHref\hc@currentHref + \else + \hyper@makecurrent{\@captype}% + \fi + \@ifundefined{NR@gettitle}{% + \def\@currentlabelname{#2}% + }{% + \NR@gettitle{#2}% + }% + \par\addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}% + }% + \begingroup + \@parboxrestore + \if@minipage + \@setminipage + \fi + \normalsize + \expandafter\ifx\csname if@capstart\expandafter\endcsname + \csname iftrue\endcsname + \global\@capstartfalse + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces#3}% + \else + \@makecaption{\csname fnum@#1\endcsname}{% + \ignorespaces +% \end{macrocode} +% If we cannot have nesting, the anchor is empty. +% \begin{macrocode} + \ifHy@nesting + \expandafter\hyper@@anchor\expandafter{\@currentHref}{#3}% + \else + \Hy@raisedlink{% + \expandafter\hyper@@anchor\expandafter{% + \@currentHref + }{\relax}% + }% + #3% + \fi + }% + \fi + \par + \endgroup +} +% \end{macrocode} +% Compatibility with float.sty: anchor setting at the top +% of the float, if the float is controlled by float.sty. +% Several \verb|\caption| commands inside one float are +% not supported. +% +% \cs{HyNew@float@makebox} is introduced as feature request +% of Axel Sommerfeldt to make the life easier for his +% package `caption'. +% \begin{macrocode} +\let\Hy@float@caption\@caption +\newcommand{\HyNew@float@makebox}[1]{% + \HyOrg@float@makebox{% + #1\relax + \ifx\Hy@float@currentHref\@undefined + \else + \expandafter\hyper@@anchor\expandafter{% + \Hy@float@currentHref + }{\relax}% + \global\let\Hy@float@currentHref\@undefined + \fi + }% +}% +\@ifpackageloaded{float}{% + \def\Hy@float@caption{% + \ifx\Hy@float@currentHref\@undefined + \hyper@makecurrent{\@captype}% + \global\let\Hy@float@currentHref\@currentHref + \else + \let\@currentHref\Hy@float@currentHref + \fi + \float@caption + }% + \let\HyOrg@float@makebox\float@makebox + \let\float@makebox\HyNew@float@makebox +}{} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +%<*check> +\checklatex[1999/06/01 - 2000/06/01] +\checkcommand\def\caption{% + \ifx\@captype\@undefined + \@latex@error{\noexpand\caption outside float}\@ehd + \expandafter\@gobble + \else + \refstepcounter\@captype + \expandafter\@firstofone + \fi + {\@dblarg{\@caption\@captype}}% +} +\checkcommand\long\def\@caption#1[#2]#3{% + \par + \addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}% + }% + \begingroup + \@parboxrestore + \if@minipage + \@setminipage + \fi + \normalsize + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par + \endgroup +} +%</check> +%<*package> +% \end{macrocode} +% +% \section{Bibliographic references}\label{bib} +% This is not very robust, since many styles redefine these things. +% The package used to redefine |\@citex| and the like; then we tried +% adding the hyperref call explicitly into the .aux file. +% Now we redefine |\bibcite|; this still breaks some citation packages +% so we have to work around them. But this remains extremely dangerous. +% Any or all of \emph{achemso} +% and \emph{drftcite} may break. +% +% However, lets make an attempt to get \emph{natbib} right, because +% thats a powerful, important package. +% Patrick Daly (\Email{daly@linmpi.mpg.de}) has +% provided hooks for us, so all we need to do is activate them. +% \begin{macrocode} +\def\hyper@natlinkstart#1{% + \Hy@backout{#1}% + \hyper@linkstart{cite}{cite.#1}% + \def\hyper@nat@current{#1}% +} +\def\hyper@natlinkend{% + \hyper@linkend +} +\def\hyper@natlinkbreak#1#2{% + \hyper@linkend#1\hyper@linkstart{cite}{cite.#2}% +} +\def\hyper@natanchorstart#1{% + \Hy@raisedlink{\hyper@anchorstart{cite.#1}}% +} +\def\hyper@natanchorend{\hyper@anchorend} +% \end{macrocode} +% Do not play games if we have natbib support. +% Macro \@extra@binfo added for chapterbib support. Chapterbib also +% wants \cs{@extra@binfo} in the hyper-link, but since the link tag is +% not expanded immediately, we use \cs{@extra@b@citeb}, so cites in a +% chapter will link to the bibliography in that chapter. +% \begin{macrocode} +\ltx@IfUndefined{NAT@parse}{% + \providecommand*\@extra@binfo{}% + \providecommand*\@extra@b@citeb{}% + \def\bibcite#1#2{% + \@newl@bel{b}{#1\@extra@binfo}{% + \hyper@@link[cite]{}{cite.#1\@extra@b@citeb}{#2}% + }% + }% + \gdef\@extra@binfo{}% +% \end{macrocode} +% Package |babel| redefines \cmd{\bibcite} with +% macro \cmd{\bbl@cite@choice}. It needs to be overwritten +% to avoid the warning ``Label(s) may have changed.''. +% \begin{macrocode} + \let\Hy@bibcite\bibcite + \begingroup + \@ifundefined{bbl@cite@choice}{}{% + \g@addto@macro\bbl@cite@choice{% + \let\bibcite\Hy@bibcite + }% + }% + \endgroup +% \end{macrocode} +% |\@BIBLABEL| is working around a `feature' of Rev\TeX. +% \begin{macrocode} + \providecommand*{\@BIBLABEL}{\@biblabel}% + \def\@lbibitem[#1]#2{% + \@skiphyperreftrue + \H@item[% + \ifx\Hy@raisedlink\@empty + \hyper@anchorstart{cite.#2\@extra@b@citeb}% + \@BIBLABEL{#1}% + \hyper@anchorend + \else + \Hy@raisedlink{% + \hyper@anchorstart{cite.#2\@extra@b@citeb}\hyper@anchorend + }% + \@BIBLABEL{#1}% + \fi + \hfill + ]% + \@skiphyperreffalse + \if@filesw + \begingroup + \let\protect\noexpand + \immediate\write\@auxout{% + \string\bibcite{#2}{#1}% + }% + \endgroup + \fi + \ignorespaces + }% +% \end{macrocode} +% Since |\bibitem| is doing its own labelling, call the raw +% version of |\item|, to avoid extra spurious labels +% \begin{macrocode} + \def\@bibitem#1{% + \@skiphyperreftrue\H@item\@skiphyperreffalse + \Hy@raisedlink{% + \hyper@anchorstart{cite.#1\@extra@b@citeb}\relax\hyper@anchorend + }% + \if@filesw + \begingroup + \let\protect\noexpand + \immediate\write\@auxout{% + \string\bibcite{#1}{\the\value{\@listctr}}% + }% + \endgroup + \fi + \ignorespaces + }% +}{} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +%<*check> +\checklatex +\checkcommand\def\@lbibitem[#1]#2{% + \item[\@biblabel{#1}\hfill]% + \if@filesw + {% + \let\protect\noexpand + \immediate\write\@auxout{% + \string\bibcite{#2}{#1}% + }% + }% + \fi + \ignorespaces +} +\checkcommand\def\@bibitem#1{% + \item + \if@filesw + \immediate\write\@auxout{% + \string\bibcite{#1}{\the\value{\@listctr}}% + }% + \fi + \ignorespaces +} +%</check> +%<*package> +% \end{macrocode} +% +% Revtex (bless its little heart) takes over |\bibcite| and looks +% at the result to measure something. Make this a hypertext link +% and it goes ape. Therefore, make an anodyne result first, call +% its business, then go back to the real thing. +% \begin{macrocode} +\@ifclassloaded{revtex}{% + \Hy@Info{*** compatibility with revtex **** }% + \def\revtex@checking#1#2{% + \expandafter\let\expandafter\T@temp\csname b@#1\endcsname + \expandafter\def\csname b@#1\endcsname{#2}% + \@SetMaxRnhefLabel{#1}% + \expandafter\let\csname b@#1\endcsname\T@temp + }% +% \end{macrocode} +% Tanmoy provided this replacement for CITEX. Lord knows what it does. +% For chapterbib added: \@extra@b@citeb +% \begin{macrocode} + \@ifundefined{@CITE}{\def\@CITE{\@cite}}{}% + \providecommand*{\@extra@b@citeb}{}% + \def\@CITEX[#1]#2{% + \let\@citea\@empty + \leavevmode + \unskip + $^{% + \scriptstyle + \@CITE{% + \@for\@citeb:=#2\do{% + \@citea + \def\@citea{,\penalty\@m\ }% + \edef\@citeb{\expandafter\@firstofone\@citeb}% + \if@filesw + \immediate\write\@auxout{\string\citation{\@citeb}}% + \fi + \@ifundefined{b@\@citeb\extra@b@citeb}{% + \mbox{\reset@font\bfseries ?}% + \G@refundefinedtrue + \@latex@warning{% + Citation `\@citeb' on page \thepage \space undefined% + }% + }{% + {\csname b@\@citeb\@extra@b@citeb\endcsname}% + }% + }% + }{#1}% + }$% + }% +% \end{macrocode} +% No, life is too short. I am not going to understand the +% Revtex |\@collapse| macro, I shall +% just restore the original behaviour of |\@citex|; +% sigh. This is SO vile. +% \begin{macrocode} + \def\@citex[#1]#2{% + \let\@citea\@empty + \@cite{% + \@for\@citeb:=#2\do{% + \@citea + \def\@citea{,\penalty\@m\ }% + \edef\@citeb{\expandafter\@firstofone\@citeb}% + \if@filesw + \immediate\write\@auxout{\string\citation{\@citeb}}% + \fi + \@ifundefined{b@\@citeb\@extra@b@citeb}{% + \mbox{\reset@font\bfseries ?}% + \G@refundefinedtrue + \@latex@warning{% + Citation `\@citeb' on page \thepage \space undefined% + }% + }{% + \hbox{\csname b@\@citeb\@extra@b@citeb\endcsname}% + }% + }% + }{#1}% + }% +}{} +% \end{macrocode} +% +% \subsection{Package harvard} +% +% Override Peter Williams' Harvard package; we have to +% a) make each of the citation types into a link; b) make +% each citation write a backref entry, and c) kick off a backreference +% section for each bibliography entry. +% +% The redefinitions have to be deferred to |\begin{document}|, +% because if harvard.sty is loaded and html.sty is present and +% detects pdf\TeX, then hyperref is already loaded at the begin +% of harvard.sty, and the |\newcommand| macros causes error +% messages. +% \begin{macrocode} +\@ifpackageloaded{harvard}{% + \Hy@AtBeginDocument{% + \Hy@Info{*** compatibility with harvard **** }% + \Hy@raiselinksfalse + \def\harvardcite#1#2#3#4{% + \global\@namedef{HAR@fn@#1}{\hyper@@link[cite]{}{cite.#1}{#2}}% + \global\@namedef{HAR@an@#1}{\hyper@@link[cite]{}{cite.#1}{#3}}% + \global\@namedef{HAR@yr@#1}{\hyper@@link[cite]{}{cite.#1}{#4}}% + \global\@namedef{HAR@df@#1}{\csname HAR@fn@#1\endcsname}% + }% + \def\HAR@citetoaux#1{% + \if@filesw\immediate\write\@auxout{\string\citation{#1}}\fi% + \ifHy@backref + \ifx\@empty\@currentlabel + \else + \@bsphack + \if@filesw + \protected@write\@auxout{}{% + \string\@writefile{brf}{% + \string\backcite{#1}{% + {\thepage}{\@currentlabel}{\@currentHref}% + }% + }% + }% + \fi + \@esphack + \fi + \fi + }% + \def\harvarditem{% + \@ifnextchar[{\@harvarditem}{\@harvarditem[\null]}% + }% + \def\@harvarditem[#1]#2#3#4#5\par{% + \item[]% + \hyper@anchorstart{cite.#4}\relax\hyper@anchorend + \if@filesw + \begingroup + \def\protect##1{\string ##1\space}% + \ifthenelse{\equal{#1}{\null}}% + {\def\next{{#4}{#2}{#2}{#3}}}% + {\def\next{{#4}{#2}{#1}{#3}}}% + \immediate\write\@auxout{\string\harvardcite\codeof\next}% + \endgroup + \fi + \protect\hspace*{-\labelwidth}% + \protect\hspace*{-\labelsep}% + \ignorespaces + #5% + \ifHy@backref + \newblock + \backref{\csname br@#4\endcsname}% + \fi + \par + }% +% \end{macrocode} +% \begin{macro}{\HAR@checkcitations} +% Package hyperref has added \cmd{\hyper@@link}, so +% the original test \cmd{\HAR@checkcitations} will +% fail every time and always will appear the ``Changed +% labels'' warning. So we have to redefine +% \cmd{\Har@checkcitations}: +% \begin{macrocode} + \long\def\HAR@checkcitations#1#2#3#4{% + \def\HAR@tempa{\hyper@@link[cite]{}{cite.#1}{#2}}% + \expandafter\ifx\csname HAR@fn@#1\endcsname\HAR@tempa + \def\HAR@tempa{\hyper@@link[cite]{}{cite.#1}{#3}}% + \expandafter\ifx\csname HAR@an@#1\endcsname\HAR@tempa + \def\HAR@tempa{\hyper@@link[cite]{}{cite.#1}{#4}}% + \expandafter\ifx\csname HAR@yr@#1\endcsname\HAR@tempa + \else + \@tempswatrue + \fi + \else + \@tempswatrue + \fi + \else + \@tempswatrue + \fi + }% + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +}{} +% \end{macrocode} +% +% \subsection{Package chicago} +% The links by \cmd{\citeN} and \cmd{\shortciteN} should +% include the closing parentheses. +% +% \begin{macrocode} +\@ifpackageloaded{chicago}{% +% \end{macrocode} +% \begin{macro}{\citeN} +% \begin{macrocode} + \def\citeN{% + \def\@citeseppen{-1000}% + \def\@cite##1##2{##1}% + \def\citeauthoryear##1##2##3{##1 (##3\@cite@opt)}% + \@citedata@opt + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\shortciteN} +% \begin{macrocode} + \def\shortciteN{% + \def\@citeseppen{-1000}% + \def\@cite##1##2{##1}% + \def\citeauthoryear##1##2##3{##2 (##3\@cite@opt)}% + \@citedata@opt + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@citedata@opt} +% \begin{macrocode} + \def\@citedata@opt{% + \let\@cite@opt\@empty + \@ifnextchar [{% + \@tempswatrue + \@citedatax@opt + }{% + \@tempswafalse + \@citedatax[]% + }% + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@citedatax@opt} +% \begin{macrocode} + \def\@citedatax@opt[#1]{% + \def\@cite@opt{, #1}% + \@citedatax[{#1}]% + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +}{} +% \end{macrocode} +% +% \section{Page numbers}\label{pagenum} +% +% The last page should not contain a /Dur key, because there +% is no page after the last page. Therefore at the last page +% there should be a command |\hypersetup{pdfpageduration={}}|. +% This can be set with \cmd{\AtEndDocument}, but it can +% be too late, if the last page is already finished, or too +% early, if lots of float pages will follow. +% Therefore currently nothing is done by hyperref. +% +% This where we supply a destination for each page. +% \begin{macrocode} +\ltx@ifclassloaded{slides}{% + \def\Hy@SlidesFormatOptionalPage#1{(#1)}% + \def\Hy@PageAnchorSlidesPlain{% + \advance\c@page\ltx@one + \edef\Hy@TempPageAnchor{% + \noexpand\hyper@@anchor{% + page.\the\c@slide.\the\c@overlay.\the\c@note% + \ifnum\c@page=\ltx@one + \else + .\the\c@page + \fi + }% + }% + \advance\c@page-\ltx@one + }% + \def\Hy@PageAnchorSlide{% + \advance\c@page\ltx@one + \ifnum\c@page>\ltx@one + \ltx@IfUndefined{theHpage}{% + \protected@edef\Hy@TheSlideOptionalPage{% + \Hy@SlidesFormatOptionalPage{\thepage}% + }% + }{% + \protected@edef\Hy@TheSlideOptionalPage{% + \Hy@SlidesFormatOptionalPage{\theHpage}% + }% + }% + \else + \def\Hy@TheSlideOptionalPage{}% + \fi + \advance\c@page-\ltx@one + \pdfstringdef\@the@H@page{% + \csname + the% + \ltx@ifundefined{theH\Hy@SlidesPage}{}{H}% + \Hy@SlidesPage + \endcsname + \Hy@TheSlideOptionalPage + }% + \ltx@gobblethree + }% + \def\Hy@SlidesPage{slide}% + \g@addto@macro\slide{% + \def\Hy@SlidesPage{slide}% + }% + \g@addto@macro\overlay{% + \def\Hy@SlidesPage{overlay}% + }% + \g@addto@macro\note{% + \def\Hy@SlidesPage{note}% + }% +}{% + \def\Hy@PageAnchorSlidesPlain{}% + \def\Hy@PageAnchorSlide{}% +} +\def\Hy@EveryPageAnchor{% + \Hy@DistillerDestFix + \ifHy@pageanchor + \ifHy@hypertexnames + \ifHy@plainpages + \def\Hy@TempPageAnchor{\hyper@@anchor{page.\the\c@page}}% + \Hy@PageAnchorSlidesPlain + \else + \begingroup + \let\@number\@firstofone + \Hy@unicodefalse + \Hy@PageAnchorSlide + \pdfstringdef\@the@H@page{\thepage}% + \endgroup + \EdefUnescapeString\@the@H@page{\@the@H@page}% + \def\Hy@TempPageAnchor{\hyper@@anchor{page.\@the@H@page}}% + \fi + \else + \Hy@GlobalStepCount\Hy@pagecounter + \def\Hy@TempPageAnchor{% + \hyper@@anchor{page.\the\Hy@pagecounter}% + }% + \fi + \vbox to 0pt{% + \kern\voffset + \kern\topmargin + \kern-1bp\relax + \hbox to 0pt{% + \kern\hoffset + \kern\ifodd\value{page}% + \oddsidemargin + \else + \evensidemargin + \fi + \kern-1bp\relax + \Hy@TempPageAnchor\relax + \hss + }% + \vss + }% + \fi +} +\g@addto@macro\Hy@EveryPageBoxHook{% + \Hy@EveryPageAnchor +} +% \end{macrocode} +% +% \section{Table of contents}\label{toc} +% TV Raman noticed that people who add arbitrary material into the TOC +% generate a bad or null link. We avoid that by checking if the current +% destination is empty. But if `the most recent destination' is not +% what you expect, you will be in trouble. +% \begin{macrocode} +% In newer \LaTeX\ releases this is defined to put a \verb|%| at the end of the +% line in the \textt{toc}file. +% \begin{macrocode} +\providecommand\protected@file@percent{} +% \end{macrocode} +% +% \begin{macrocode} +\def\addcontentsline#1#2#3{% toc extension, type, tag + \begingroup + \let\label\@gobble + \ifx\@currentHref\@empty + \Hy@Warning{% + No destination for bookmark of \string\addcontentsline,% + \MessageBreak destination is added% + }% + \phantomsection + \fi + \expandafter\ifx\csname toclevel@#2\endcsname\relax + \begingroup + \def\Hy@tempa{#1}% + \ifx\Hy@tempa\Hy@bookmarkstype + \Hy@WarningNoLine{% + bookmark level for unknown #2 defaults to 0% + }% + \else + \Hy@Info{bookmark level for unknown #2 defaults to 0}% + \fi + \endgroup + \expandafter\gdef\csname toclevel@#2\endcsname{0}% + \fi + \edef\Hy@toclevel{\csname toclevel@#2\endcsname}% + \Hy@writebookmark{\csname the#2\endcsname}% + {#3}% + {\@currentHref}% + {\Hy@toclevel}% + {#1}% + \ifHy@verbose + \begingroup + \def\Hy@tempa{#3}% + \@onelevel@sanitize\Hy@tempa + \let\temp@online\on@line + \let\on@line\@empty + \Hy@Info{% + bookmark\temp@online:\MessageBreak + thecounter {\csname the#2\endcsname}\MessageBreak + text {\Hy@tempa}\MessageBreak + reference {\@currentHref}\MessageBreak + toclevel {\Hy@toclevel}\MessageBreak + type {#1}% + }% + \endgroup + \fi + \addtocontents{#1}{% + \protect\contentsline{#2}{#3}{\thepage}{\@currentHref}\protected@file@percent + }% + \endgroup +} +% \end{macrocode} +% \begin{macro}{\contentsline} +% The page number might be empty. In this case the link for the +% page number is suppressed to avoid little link boxes. +% \begin{macrocode} +\def\contentsline#1#2#3#4{% + \begingroup + \Hy@safe@activestrue + \edef\x{\endgroup + \def\noexpand\Hy@tocdestname{#4}% + }\x + \ifx\Hy@tocdestname\ltx@empty + \csname l@#1\endcsname{#2}{#3}% + \else + \ifcase\Hy@linktoc % none + \csname l@#1\endcsname{#2}{#3}% + \or % section + \csname l@#1\endcsname{% + \hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend + }{#3}% + \or % page + \def\Hy@temp{#3}% + \ifx\Hy@temp\ltx@empty + \csname l@#1\endcsname{#2}{#3}% + \else + \csname l@#1\endcsname{{#2}}{% + \hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend + }% + \fi + \else % all + \def\Hy@temp{#3}% + \ifx\Hy@temp\ltx@empty + \csname l@#1\endcsname{% + \hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend + }{}% + \else + \csname l@#1\endcsname{% + \hyper@linkstart{link}{\Hy@tocdestname}{#2}\hyper@linkend + }{% + \hyper@linkstart{link}{\Hy@tocdestname}{#3}\hyper@linkend + }% + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%</package> +%<*check> +\checklatex +\checkcommand\def\addcontentsline#1#2#3{% + \addtocontents{#1}{\protect\contentsline{#2}{#3}{\thepage}}% +} +\checkcommand\def\contentsline#1{\csname l@#1\endcsname} +%</check> +%<*package> +% \end{macrocode} +% +% \section{New counters}\label{counters} +% The whole theorem business makes up new counters on the fly; +% we are going to intercept this. Sigh. Do it at the level where +% new counters are defined. +% \begin{macrocode} +\let\H@definecounter\@definecounter +\def\@definecounter#1{% + \H@definecounter{#1}% + \expandafter\gdef\csname theH#1\endcsname{\arabic{#1}}% +} +% \end{macrocode} +% But what if they have used the optional argument to e.g. |\newtheorem| +% to determine when the numbering is reset? OK, we'll trap that too. +% \begin{macrocode} +\let\H@newctr\@newctr +\def\@newctr#1[#2]{% + \H@newctr#1[{#2}]% + \expandafter\gdef\csname theH#1\endcsname{% + \csname the\@ifundefined{theH#2}{}{H}#2\endcsname.\arabic{#1}% + }% +} +% \end{macrocode} +% \section{AMS\LaTeX\ compatibility}\label{ams} +% Oh, no, they don't use anything as simple as |\refstepcounter| +% in the AMS! We need to intercept some low-level operations +% of theirs. Damned if we are going to try and work out what +% they get up to. Just stick a label of `AMS' on the front, and use the +% label \emph{they} worked out. If that produces something invalid, I give +% up. They'll change all the code again anyway, I expect (SR). +% +% Version 6.77p uses a patch by Ross Moore. +% \begin{macrocode} +\@ifpackageloaded{amsmath}{% + \def\Hy@make@anchor{% + \Hy@MakeCurrentHrefAuto{AMS}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% + }% + \def\Hy@make@df@tag@@#1{% + \gdef\df@tag{% + \maketag@@@{\Hy@make@anchor#1}% + \def\@currentlabel{#1}% + }% + }% + \def\Hy@make@df@tag@@@#1{% + \gdef\df@tag{% + \tagform@{\Hy@make@anchor#1}% + \toks@\@xp{\p@equation{#1}}% + \edef\@currentlabel{\the\toks@}% + }% + }% + \let\HyOrg@make@df@tag@@\make@df@tag@@ + \let\HyOrg@make@df@tag@@@\make@df@tag@@@ + \let\make@df@tag@@\Hy@make@df@tag@@ + \let\make@df@tag@@@\Hy@make@df@tag@@@ +}{} +% \end{macrocode} +% Only play with |\seteqlebal| if we are using pdftex. Other drivers +% cause problems; requested by Michael Downes (AMS). +% \begin{macrocode} +\@ifpackagewith{hyperref}{pdftex}{% + \let\H@seteqlabel\@seteqlabel + \def\@seteqlabel#1{% + \H@seteqlabel{#1}% + \xdef\@currentHref{AMS.\the\Hy@linkcounter}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + }% +}{} +% \end{macrocode} +% This code I simply cannot remember what I was trying to achieve. +% The final result seems to do nothing anyway. +%\begin{verbatim} +%\let\H@tagform@\tagform@ +%\def\tagform@#1{% +% \maketag@@@{\hyper@@anchor{\@currentHref}% +% {(\ignorespaces#1\unskip)}}% +%} +%\def\eqref#1{\textup{\H@tagform@{\ref{#1}}}} +%\end{verbatim} +% +% \subsection{\texorpdfstring{\cs{@addtoreset}}{\\@addtoreset} and +% \texorpdfstring{\cs{numberwithin}}{\\numberwithin} patches} +% +% \cs{@addtoreset} puts a counter to the reset list of +% another counter. After a reset the counter starts +% again with perhaps already used values. Therefore +% the hyperref version of the counter print command +% \cs{theHcounter} is redefined in order to add the +% parent counter. +% \begin{macrocode} +\let\HyOrg@addtoreset\@addtoreset +\def\@addtoreset#1#2{% + \HyOrg@addtoreset{#1}{#2}% + \expandafter\xdef\csname theH#1\endcsname{% + \expandafter\noexpand + \csname the\@ifundefined{theH#2}{}H#2\endcsname + .\noexpand\the\noexpand\value{#1}% + }% +} +% \end{macrocode} +% +% \begin{macro}{\numberwithin} +% A appropiate definition of hyperref's companion counter +% (\cmd{\theH...}) is added for correct link names. +% \begin{macrocode} +%</package> +%<*check> +\checkpackage{amsmath}[1999/12/14 - 2000/06/06] +\checkcommand\newcommand{\numberwithin}[3][\arabic]{% + \@ifundefined{c@#2}{\@nocounterr{#2}}{% + \@ifundefined{c@#3}{\@nocnterr{#3}}{% + \@addtoreset{#2}{#3}% + \@xp\xdef\csname the#2\endcsname{% + \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}% + }% + }% + }% +}% +%</check> +%<*package> +\@ifpackageloaded{amsmath}{% + \@ifpackagelater{amsmath}{1999/12/14}{% + \renewcommand*{\numberwithin}[3][\arabic]{% + \@ifundefined{c@#2}{\@nocounterr{#2}}{% + \@ifundefined{c@#3}{\@nocnterr{#3}}{% + \HyOrg@addtoreset{#2}{#3}% + \@xp\xdef\csname the#2\endcsname{% + \@xp\@nx\csname the#3\endcsname .\@nx#1{#2}% + }% + \@xp\xdef\csname theH#2\endcsname{% + \@xp\@nx + \csname the\@ifundefined{theH#3}{}H#3\endcsname + .\@nx#1{#2}% + }% + }% + }% + }% + }{% + \Hy@WarningNoLine{% + \string\numberwithin\space of package `amsmath' % + only fixed\MessageBreak + for version 2000/06/06 v2.12 or newer% + }% + }% +}{} +% \end{macrocode} +% \end{macro} +% +% \section{Included figures} +% Simply intercept the low level graphics package macro. +% \begin{macrocode} +\ifHy@hyperfigures + \let\Hy@Gin@setfile\Gin@setfile + \def\Gin@setfile#1#2#3{% + \hyperimage{#3}{\Hy@Gin@setfile{#1}{#2}{#3}}% + }% +\fi +\Hy@DisableOption{hyperfigures} +% \end{macrocode} +% +% \section{hyperindex entries}\label{hyperindex} +% Internal command names are prefixed with \cmd{\HyInd@}. +% +% Hyper-indexing works crudely, by forcing code onto the end of the index +% entry with the \verb+|+ feature; this puts a hyperlink around +% the printed page numbers. It will not proceed if the author has already +% used the \verb+|+ specifier for something like emboldening entries. +% That would make Makeindex fail (cannot have two \verb+|+ specifiers). +% The solution is for the author to use generic coding, and put in +% the requisite |\hyperpage| in his/her own macros along with the boldness. +% +% This section is poor stuff; it's open to all sorts of abuse. Sensible +% large projects will design their own indexing macros any bypass this. +% \begin{macrocode} +\ifHy@hyperindex + \def\HyInd@ParenLeft{(}% + \def\HyInd@ParenRight{)}% + \def\hyperindexformat#1#2{% + \let\HyOrg@hyperpage\hyperpage + \let\hyperpage\@firstofone + #1{\HyOrg@hyperpage{#2}}% + \let\hyperpage\HyOrg@hyperpage + }% + \Hy@nextfalse + \@ifpackageloaded{multind}{\Hy@nexttrue}{}% + \@ifpackageloaded{index}{\Hy@nexttrue}{}% + \@ifpackageloaded{amsmidx}{\Hy@nexttrue}{}% + \begingroup + \lccode`\|=\expandafter`\HyInd@EncapChar\relax + \lccode`\/=`\\\relax + \lowercase{\endgroup + \ifHy@next + \let\HyInd@org@wrindex\@wrindex + \def\@wrindex#1#2{\HyInd@@wrindex{#1}#2||\\}% + \def\HyInd@@wrindex#1#2|#3|#4\\{% + \ifx\\#3\\% + \HyInd@org@wrindex{#1}{#2|hyperpage}% + \else + \HyInd@@@wrindex{#1}{#2}#3\\% + \fi + }% + \def\HyInd@@@wrindex#1#2#3#4\\{% + \def\Hy@temp@A{#3}% + \ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi + \ifx\Hy@temp@A\HyInd@ParenRight 1\fi + \relax + \HyInd@org@wrindex{#1}{% + #2|hyperindexformat{/#3#4}% + }% + \else + \ifx\\#4\\% + \ifx\Hy@temp@A\HyInd@ParenRight + \HyInd@org@wrindex{#1}{#2|#3}% + \else + \HyInd@org@wrindex{#1}{#2|#3hyperpage}% + \fi + \else + \HyInd@org@wrindex{#1}{% + #2|#3hyperindexformat{/#4}% + }% + \fi + \fi + }% + \else + \def\@wrindex#1{\@@wrindex#1||\\}% + \def\@@wrindex#1|#2|#3\\{% + \if@filesw + \ifx\\#2\\% + \protected@write\@indexfile{}{% + \string\indexentry{#1|hyperpage}{\thepage}% + }% + \else + \HyInd@@@wrindex{#1}#2\\% + \fi + \fi + \endgroup + \@esphack + }% + \def\HyInd@@@wrindex#1#2#3\\{% + \def\Hy@temp@A{#2}% + \ifcase0\ifx\Hy@temp@A\HyInd@ParenLeft 1\fi + \ifx\Hy@temp@A\HyInd@ParenRight 1\fi + \relax + \protected@write\@indexfile{}{% + \string\indexentry{% + #1|hyperindexformat{/#2#3}% + }{\thepage}% + }% + \else + \ifx\\#3\\% + \ifx\Hy@temp@A\HyInd@ParenRight + \HyInd@DefKey{#1}% + \ltx@IfUndefined{HyInd@(\HyInd@key)}{% + \let\Hy@temp\ltx@empty + }{% + \expandafter\let\expandafter\Hy@temp + \csname HyInd@(\HyInd@key)\endcsname + }% + \protected@write\@indexfile{}{% + \string\indexentry{#1|#2\Hy@temp}{\thepage}% + }% + \else + \protected@write\@indexfile{}{% + \string\indexentry{#1|#2hyperpage}{\thepage}% + }% + \HyInd@DefKey{#1}% + \expandafter + \gdef\csname HyInd@(\HyInd@key)\endcsname{% + hyperpage% + }% + \fi + \else + \protected@write\@indexfile{}{% + \string\indexentry{% + #1|#2hyperindexformat{/#3}% + }{\thepage}% + }% + \ifx\Hy@temp@A\HyInd@ParenLeft + \HyInd@DefKey{#1}% + \expandafter + \gdef\csname HyInd@(\HyInd@key)\endcsname{% + hyperindexformat{/#3}% + }% + \fi + \fi + \fi + }% + \def\HyInd@DefKey#1{% + \begingroup + \let\protect\@unexpandable@protect + \edef\Hy@temp{#1}% + \ltx@onelevel@sanitize\Hy@temp + \global\let\HyInd@key\Hy@temp + \endgroup + }% + \fi + }% +\fi +\Hy@DisableOption{hyperindex} +\Hy@DisableOption{encap} +% \end{macrocode} +% +% \begin{macro}{\nohyperpage} +% The definition of \cs{nohyperpage} is just a precaution. +% It is used to mark code that does not belong to a page +% number, but \cs{nohyperpage} is never executed. +% \begin{macrocode} +\def\nohyperpage#1{#1} +% \end{macrocode} +% \end{macro} +% This again is quite flaky, but allow for the common situation of a +% page range separated by en-rule. We split this into two different +% hyperlinked pages. +% \begin{macrocode} +\def\hyperpage#1{% + \HyInd@hyperpage#1\nohyperpage{}\@nil +} +\def\HyInd@hyperpage#1\nohyperpage#2#3\@nil{% + \HyInd@@hyperpage{#1}% + #2% + \def\Hy@temp{#3}% + \ifx\Hy@temp\@empty + \else + \ltx@ReturnAfterFi{% + \HyInd@hyperpage#3\@nil + }% + \fi +} +\def\HyInd@@hyperpage#1{\@hyperpage#1----\\} +\def\@hyperpage#1--#2--#3\\{% + \ifx\\#2\\% + \@commahyperpage{#1}% + \else + \HyInd@pagelink{#1}--\HyInd@pagelink{#2}% + \fi +} +\def\@commahyperpage#1{\@@commahyperpage#1, ,\\} +\def\@@commahyperpage#1, #2,#3\\{% + \ifx\\#2\\% + \HyInd@pagelink{#1}% + \else + \HyInd@pagelink{#1}, \HyInd@pagelink{#2}% + \fi +} +% \end{macrocode} +% +% The argument of \cmd{\hyperpage} can be empty. And the +% line breaking algorithm of Makeindex can introduce spaces. +% So we have to remove them. +% \begin{macrocode} +\def\HyInd@pagelink#1{% + \begingroup + \toks@={}% + \HyInd@removespaces#1 \@nil + \endgroup +} +\def\HyInd@removespaces#1 #2\@nil{% + \toks@=\expandafter{\the\toks@#1}% + \ifx\\#2\\% + \edef\x{\the\toks@}% + \ifx\x\@empty + \else + \hyperlink{page.\the\toks@}{\the\toks@}% + \fi + \else + \ltx@ReturnAfterFi{% + \HyInd@removespaces#2\@nil + }% + \fi +} +% \end{macrocode} +% +% \section{Compatibility with foiltex} +% +% \begin{macrocode} +\@ifclassloaded{foils}{% + \providecommand*\ext@table{lot}% + \providecommand*\ext@figure{lof}% +}{} +% \end{macrocode} +% +% \section{Compatibility with seminar slide package}\label{seminar} +% This requires \texttt{seminar.bg2}, version 1.6 or later. +% Contributions by Denis Girou (\Email{denis.girou@idris.fr}). +% \begin{macrocode} +\@ifclassloaded{seminar}{% + \Hy@seminarslidestrue + \providecommand\theHslide{\arabic{slide}}% +}{% + \Hy@seminarslidesfalse +} +\@ifpackageloaded{slidesec}{% + \providecommand\theHslidesection {\arabic{slidesection}}% + \providecommand\theHslidesubsection{% + \theHslidesection.\arabic{slidesubsection}% + }% + \def\slide@heading[#1]#2{% + \H@refstepcounter{slidesection}% + \@addtoreset{slidesubsection}{slidesection}% + \addtocontents{los}{% + \protect\l@slide{\the\c@slidesection}{\ignorespaces#1}% + {\@SCTR}{slideheading.\theslidesection}% + }% + \def\Hy@tempa{#2}% + \ifx\Hy@tempa\@empty + \else + {% + \edef\@currentlabel{% + \csname p@slidesection\endcsname\theslidesection + }% + \makeslideheading{#2}% + }% + \fi + \gdef\theslideheading{#1}% + \gdef\theslidesubheading{}% + \ifHy@bookmarksnumbered + \def\Hy@slidetitle{\theslidesection\space #1}% + \else + \def\Hy@slidetitle{#1}% + \fi + \ifHy@hypertexnames + \ifHy@naturalnames + \hyper@@anchor{slideheading.\theslidesection}{\relax}% + \Hy@writebookmark + {\theslidesection}% + {\Hy@slidetitle}% + {slideheading.\theslidesection}% + {1}% + {toc}% + \else + \hyper@@anchor{slideheading.\theHslidesection}{\relax}% + \Hy@writebookmark + {\theslidesection}% + {\Hy@slidetitle}% + {slideheading.\theHslidesection}% + {1}% + {toc}% + \fi + \else + \Hy@GlobalStepCount\Hy@linkcounter + \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}% + \Hy@writebookmark + {\theslidesection}% + {\Hy@slidetitle}% + {slideheading.\the\Hy@linkcounter}% + {1}% + {toc}% + \fi + }% + \def\slide@subheading[#1]#2{% + \H@refstepcounter{slidesubsection}% + \addtocontents{los}{% + \protect\l@subslide{\the\c@slidesubsection}{\ignorespaces#1}% + {\@SCTR}{slideheading.\theslidesubsection}% + }% + \def\Hy@tempa{#2}% + \ifx\Hy@tempa\@empty + \else + {% + \edef\@currentlabel{% + \csname p@slidesubsection\endcsname\theslidesubsection + }% + \makeslidesubheading{#2}% + }% + \fi + \gdef\theslidesubheading{#1}% + \ifHy@bookmarksnumbered + \def\Hy@slidetitle{\theslidesubsection\space #1}% + \else + \def\Hy@slidetitle{#1}% + \fi + \ifHy@hypertexnames + \ifHy@naturalnames + \hyper@@anchor{slideheading.\theslidesubsection}{\relax}% + \Hy@writebookmark + {\theslidesubsection}% + {\Hy@slidetitle}% + {slideheading.\theslidesubsection}% + {2}% + {toc}% + \else + \hyper@@anchor{slideheading.\theHslidesubsection}{\relax}% + \Hy@writebookmark + {\theslidesubsection}% + {\Hy@slidetitle}% + {slideheading.\theHslidesubsection}% + {2}% + {toc}% + \fi + \else + \Hy@GlobalStepCount\Hy@linkcounter + \hyper@@anchor{slideheading.\the\Hy@linkcounter}{\relax}% + \Hy@writebookmark + {\theslidesubsection}% + {\Hy@slidetitle}% + {slideheading.\the\Hy@linkcounter}% + {1}% + {toc}% + \fi + }% + \providecommand*{\listslidename}{List of Slides}% + \def\listofslides{% + \section*{% + \listslidename + \@mkboth{% + \expandafter\MakeUppercase\listslidename + }{% + \expandafter\MakeUppercase\listslidename + }% + }% + \def\l@slide##1##2##3##4{% + \slide@undottedcline{% + \slidenumberline{##3}{\hyperlink{##4}{##2}}% + }{}% + }% + \let\l@subslide\l@slide + \@startlos + }% + \def\slide@contents{% + \def\l@slide##1##2##3##4{% + \slide@cline{\slidenumberline{##3}{\hyperlink{##4}{##2}}}{##3}% + }% + \let\l@subslide\@gobblefour + \@startlos + }% + \def\Slide@contents{% + \def\l@slide##1##2##3##4{% + \ifcase\lslide@flag + \message{##1 ** \the\c@slidesection}% + \ifnum##1>\c@slidesection + \def\lslide@flag{1}% + {% + \large + \slide@cline{% + \slidenumberline{$\Rightarrow\bullet$}% + {\hyperlink{##4}{##2}}% + }{##3}% + }% + \else + {% + \large + \slide@cline{% + \slidenumberline{$\surd\;\bullet$}% + {\hyperlink{##4}{##2}}% + }{##3}% + }% + \fi + \or + \def\lslide@flag{2}% + {% + \large + \slide@cline{% + \slidenumberline{$\bullet$}% + {\hyperlink{##4}{##2}}% + }{##3}% + }% + \or + {% + \large + \slide@cline{% + \slidenumberline{$\bullet$}% + {\hyperlink{##4}{##2}}% + }{##3}% + }% + \fi + }% + \def\l@subslide##1##2##3##4{% + \ifnum\lslide@flag=1 % + \@undottedtocline{2}{3.8em}{3.2em}{\hyperlink{##4}{##2}}{}% + \fi + }% + \def\lslide@flag{0}% + \@startlos + }% +}{} +% \end{macrocode} +% This breaks TeX4ht, so leave it to last. +% Emend |\@setref| to put out a hypertext link as well as its +% normal text (which is used as an anchor). +% (|\endinput| have to be on the same line like |\fi|, or you +% have to use |\expandafter| before.) +% \begin{macrocode} +\ifHy@texht + \expandafter\endinput +\fi +\let\real@setref\@setref +\def\@setref#1#2#3{% csname, extract group, refname + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \expandafter\Hy@setref@link#1\@empty\@empty\@nil{#2}% + \fi +} +% \end{macrocode} +% \cmd{\Hy@setref@link} extracts the reference information entries, +% because \cmd{\hyper@@link} does not expand arguments for the +% automatic link type detection. +% \begin{macrocode} +\def\Hy@setref@link#1#2#3#4#5#6\@nil#7{% + \begingroup + \toks0={\hyper@@link{#5}{#4}}% + \toks1=\expandafter{#7{#1}{#2}{#3}{#4}{#5}}% + \edef\x{\endgroup + \the\toks0 {\the\toks1 }% + }% + \x +} +\def\@pagesetref#1#2#3{% csname, extract macro, ref + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage \space undefined% + }% + \else + \protect\hyper@@link + {\expandafter\@fifthoffive#1}% + {page.\expandafter\@secondoffive#1}% + {\expandafter\@secondoffive#1}% + \fi +} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +%<*check> +\checklatex +\checkcommand\def\@setref#1#2#3{% + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#3' on page \thepage\space undefined% + }% + \else + \expandafter#2#1\null + \fi +} +%</check> +%<*package> +% \end{macrocode} +% +% Now some extended referencing. |\ref*| and |\pageref*| are not linked, +% and |\autoref| prefixes with a tag based on the type. +% \begin{macrocode} +\def\HyRef@StarSetRef#1{% + \begingroup + \Hy@safe@activestrue + \edef\x{#1}% + \@onelevel@sanitize\x + \edef\x{\endgroup + \noexpand\HyRef@@StarSetRef + \expandafter\noexpand\csname r@\x\endcsname{\x}% + }% + \x +} +\def\HyRef@@StarSetRef#1#2#3{% + \ifx#1\@undefined + \let#1\relax + \fi + \real@setref#1#3{#2}% +} +\def\@refstar#1{% + \HyRef@StarSetRef{#1}\@firstoffive +} +\def\@pagerefstar#1{% + \HyRef@StarSetRef{#1}\@secondoffive +} +\def\@namerefstar#1{% + \HyRef@StarSetRef{#1}\@thirdoffive +} +\Hy@AtBeginDocument{% + \@ifpackageloaded{varioref}{% + \def\@Refstar#1{% + \HyRef@StarSetRef{#1}\HyRef@MakeUppercaseFirstOfFive + }% + \def\HyRef@MakeUppercaseFirstOfFive#1#2#3#4#5{% + \MakeUppercase#1% + }% + \DeclareRobustCommand*{\Ref}{% + \@ifstar\@Refstar\HyRef@Ref + }% + \def\HyRef@Ref#1{% + \hyperref[{#1}]{\Ref*{#1}}% + }% + \def\Vr@f#1{% + \leavevmode\unskip\vref@space + \hyperref[{#1}]{% + \Ref*{#1}% + \let\vref@space\nobreakspace + \@vpageref[\unskip]{#1}% + }% + }% + \def\vr@f#1{% + \leavevmode\unskip\vref@space + \begingroup + \let\T@pageref\@pagerefstar + \hyperref[{#1}]{% + \ref*{#1}% + \vpageref[\unskip]{#1}% + }% + \endgroup + }% + }{}% +} +\DeclareRobustCommand*{\autopageref}{% + \@ifstar{% + \HyRef@autopagerefname\pageref*% + }\HyRef@autopageref +} +\def\HyRef@autopageref#1{% + \hyperref[{#1}]{\HyRef@autopagerefname\pageref*{#1}}% +} +\def\HyRef@autopagerefname{% + \ltx@IfUndefined{pageautorefname}{% + \ltx@IfUndefined{pagename}{% + \Hy@Warning{No autoref name for `page'}% + }{% + \pagename\nobreakspace + }% + }{% + \pageautorefname\nobreakspace + }% +} +% \end{macrocode} +% \cs{leavevmode} is added to make package wrapfigure happy, if +% \cs{autoref} starts a paragraph. +% \begin{macrocode} +\DeclareRobustCommand*{\autoref}{% + \leavevmode + \@ifstar{\HyRef@autoref\@gobbletwo}{\HyRef@autoref\hyper@@link}% +} +\def\HyRef@autoref#1#2{% + \begingroup + \Hy@safe@activestrue + \expandafter\HyRef@autosetref\csname r@#2\endcsname{#2}{#1}% + \endgroup +} +\def\HyRef@autosetref#1#2#3{% link command, csname, refname + \HyRef@ShowKeysRef{#2}% + \ifcase 0\ifx#1\relax 1\fi\ifx#1\Hy@varioref@undefined 1\fi\relax + \edef\HyRef@thisref{% + \expandafter\@fourthoffive#1\@empty\@empty\@empty + }% + \expandafter\HyRef@testreftype\HyRef@thisref.\\% + \Hy@safe@activesfalse + #3{% + \expandafter\@fifthoffive#1\@empty\@empty\@empty + }{% + \expandafter\@fourthoffive#1\@empty\@empty\@empty + }{% + \HyRef@currentHtag + \expandafter\@firstoffive#1\@empty\@empty\@empty + \null + }% + \else + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{% + Reference `#2' on page \thepage\space undefined% + }% + \fi +} +\def\HyRef@testreftype#1.#2\\{% + \ltx@IfUndefined{#1autorefname}{% + \ltx@IfUndefined{#1name}{% + \HyRef@StripStar#1\\*\\\@nil{#1}% + \ltx@IfUndefined{\HyRef@name autorefname}{% + \ltx@IfUndefined{\HyRef@name name}{% + \def\HyRef@currentHtag{}% + \Hy@Warning{No autoref name for `#1'}% + }{% + \edef\HyRef@currentHtag{% + \expandafter\noexpand\csname\HyRef@name name\endcsname + \noexpand~% + }% + }% + }{% + \edef\HyRef@currentHtag{% + \expandafter\noexpand + \csname\HyRef@name autorefname\endcsname + \noexpand~% + }% + }% + }{% + \edef\HyRef@currentHtag{% + \expandafter\noexpand\csname#1name\endcsname + \noexpand~% + }% + }% + }{% + \edef\HyRef@currentHtag{% + \expandafter\noexpand\csname#1autorefname\endcsname + \noexpand~% + }% + }% +} +\def\HyRef@StripStar#1*\\#2\@nil#3{% + \def\HyRef@name{#2}% + \ifx\HyRef@name\HyRef@CaseStar + \def\HyRef@name{#1}% + \else + \def\HyRef@name{#3}% + \fi +} +\def\HyRef@CaseStar{*\\} +\def\HyRef@currentHtag{} +% \end{macrocode} +% +% Support for package |showkeys|. +% \begin{macro}{\HyRef@ShowKeysRef} +% \begin{macrocode} +\let\HyRef@ShowKeysRef\@gobble +\def\HyRef@ShowKeysInit{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname SK@@label\endcsname\relax + \else + \ifx\SK@ref\@empty + \else + \def\HyRef@ShowKeysRef{% + \SK@\SK@@ref + }% + \fi + \fi +} +\@ifpackageloaded{showkeys}{% + \HyRef@ShowKeysInit +}{% + \Hy@AtBeginDocument{% + \@ifpackageloaded{showkeys}{% + \HyRef@ShowKeysInit + }{}% + }% +} +% \end{macrocode} +% \end{macro} +% +% Defaults for the names that \cmd{\autoref} uses. +% \begin{macrocode} +\providecommand*\AMSautorefname{\equationautorefname} +\providecommand*\Hfootnoteautorefname{\footnoteautorefname} +\providecommand*\Itemautorefname{\itemautorefname} +\providecommand*\itemautorefname{item} +\providecommand*\equationautorefname{Equation} +\providecommand*\footnoteautorefname{footnote} +\providecommand*\itemautorefname{item} +\providecommand*\figureautorefname{Figure} +\providecommand*\tableautorefname{Table} +\providecommand*\partautorefname{Part} +\providecommand*\appendixautorefname{Appendix} +\providecommand*\chapterautorefname{chapter} +\providecommand*\sectionautorefname{section} +\providecommand*\subsectionautorefname{subsection} +\providecommand*\subsubsectionautorefname{subsubsection} +\providecommand*\paragraphautorefname{paragraph} +\providecommand*\subparagraphautorefname{subparagraph} +\providecommand*\FancyVerbLineautorefname{line} +\providecommand*\theoremautorefname{Theorem} +\providecommand*\pageautorefname{page} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \section{Configuration files} +% +% \subsection{PS/PDF strings} +% +% Some drivers write PS or PDF strings. These strings are delimited +% by parentheses, therefore a lonely unmatched parenthesis must be +% avoided to avoid PS or PDF syntax errors. Also the backslash character +% itself has to be protected. +% +% \begin{macro}{\Hy@pstringdef} +% Therefore such strings should be passed through |\Hy@pstringdef|. +% The first argument holds a macro for the result, the second +% argument is the string that needs protecting. +% Since version 1.30.0 pdf\TeX\ offers \cs{pdfescapestring}. +% \begin{macrocode} +%<*pdftex|dvipdfm|xetex|vtex|pdfmarkbase|dviwindo> +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@escapestring\endcsname\relax + \begingroup + \catcode`\|=0 % + \@makeother\\% + |@firstofone{|endgroup + |def|Hy@pstringdef#1#2{% + |begingroup + |edef~{|string~}% + |xdef|Hy@gtemp{#2}% + |endgroup + |let#1|Hy@gtemp + |@onelevel@sanitize#1% + |edef#1{|expandafter|Hy@ExchangeBackslash#1\|@nil}% + |edef#1{|expandafter|Hy@ExchangeLeftParenthesis#1(|@nil}% + |edef#1{|expandafter|Hy@ExchangeRightParenthesis#1)|@nil}% + }% + |def|Hy@ExchangeBackslash#1\#2|@nil{% + #1% + |ifx|\#2|\%% + |else + \\% + |ltx@ReturnAfterFi{% + |Hy@ExchangeBackslash#2|@nil + }% + |fi + }% + }% + \def\Hy@ExchangeLeftParenthesis#1(#2\@nil{% + #1% + \ifx\\#2\\% + \else + \@backslashchar(% + \ltx@ReturnAfterFi{% + \Hy@ExchangeLeftParenthesis#2\@nil + }% + \fi + }% + \def\Hy@ExchangeRightParenthesis#1)#2\@nil{% + #1% + \ifx\\#2\\% + \else + \@backslashchar)% + \ltx@ReturnAfterFi{% + \Hy@ExchangeRightParenthesis#2\@nil + }% + \fi + }% +\else + \def\Hy@pstringdef#1#2{% + \begingroup + \edef~{\string~}% + \xdef\Hy@gtemp{\pdf@escapestring{#2}}% + \endgroup + \let#1\Hy@gtemp + }% +\fi +%</pdftex|dvipdfm|xetex|vtex|pdfmarkbase|dviwindo> +% \end{macrocode} +% \end{macro} +% +% \subsection{pdftex} +% +% \begin{macrocode} +%<*pdftex> +\providecommand*{\XR@ext}{pdf} +\Hy@setbreaklinks{true} +\def\HyPat@ObjRef{% + [0-9]*[1-9][0-9]* 0 R% +} +% \end{macrocode} +% This driver is for Han The Thanh's \TeX{} variant +% which produces PDF directly. This has new primitives +% to do PDF things, which usually translate almost directly to +% PDF code, so there is a lot of flexibility which we do not at +% present harness. +% +% Set PDF version if requested by option \textsf{pdfversion}. +% \begin{itemize} +% \item pdf\TeX\ 1.10a, 2003-01-16: \cs{pdfoptionpdfminorversion} +% \item pdf\TeX\ 1.30, 2005-08-081: \cs{pdfminorversion} +% \end{itemize} +% \begin{macrocode} +\let\Hy@pdfminorversion\relax +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdfminorversion\endcsname\relax + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname pdfoptionpdfminorversion\endcsname\relax + \else + \def\Hy@pdfminorversion{\pdfoptionpdfminorversion}% + \fi +\else + \def\Hy@pdfminorversion{\pdfminorversion}% +\fi +\@ifundefined{Hy@pdfminorversion}{% + \PackageInfo{hyperref}{% + PDF version is not set, because pdfTeX is too old (<1.10a)% + }% +}{% + \ifHy@ocgcolorlinks + \ifnum\Hy@pdfminorversion<5 % + \kvsetkeys{Hyp}{pdfversion=1.5}% + \fi + \fi + \ifHy@setpdfversion + \ifnum\Hy@pdfversion<5 % + \ltx@IfUndefined{pdfobjcompresslevel}{% + }{% + \ifHy@verbose + \Hy@InfoNoLine{% + PDF object streams are disabled, because they are% + \MessageBreak + not supported in requested PDF version % + 1.\Hy@pdfversion + }% + \fi + \pdfobjcompresslevel=\ltx@zero + }% + \fi + \ifnum\Hy@pdfminorversion=\Hy@pdfversion\relax + \else + \let\Hy@temp\ltx@empty + \def\Hy@temp@A#1#2{% + \ifnum#1>\ltx@zero + \edef\Hy@temp{% + \Hy@temp + \space\space + \the#1\space #2% + \ifnum#1=\ltx@one\else s\fi + \MessageBreak + }% + \fi + }% + \Hy@temp@A\pdflastobj{PDF object}% + \Hy@temp@A\pdflastxform{form XObject}% + \Hy@temp@A\pdflastximage{image XObject}% + \Hy@temp@A\pdflastannot{annotation}% + \ltx@IfUndefined{pdflastlink}{% + }{% + \Hy@temp@A\pdflastlink{link}% + }% + \ifx\Hy@temp\ltx@empty + \Hy@pdfminorversion=\Hy@pdfversion\relax + \else + \let\Hy@temp@A\ltx@empty + \ifnum\Hy@pdfversion=4 % + \IfFileExists{pdf14.sty}{% + \def\Hy@temp@A{% + \MessageBreak + Or \string\RequirePackage{pdf14} can be used% + \MessageBreak + before \string\documentclass\space as shortcut% + }% + }{}% + \fi + \Hy@WarningNoLine{% + The PDF version number could not be set,\MessageBreak + because some PDF objects are already written:% + \MessageBreak + \Hy@temp + The version should be set as early as possible:% + \MessageBreak + \space\space + \expandafter\string\Hy@pdfminorversion=\Hy@pdfversion + \string\relax + \ifnum\Hy@pdfversion<5 % + \ltx@ifundefined{pdfobjcompresslevel}{% + }{% + \MessageBreak + \space\space + \string\pdfobjcompresslevel=0\string\relax + }% + \fi + \Hy@temp@A + }% + \fi + \fi + \PackageInfo{hyperref}{% + \expandafter\string\Hy@pdfminorversion + :=\number\Hy@pdfversion\space + }% + \fi + \edef\Hy@pdfversion{\number\Hy@pdfminorversion}% +} +\Hy@DisableOption{pdfversion}% +% \end{macrocode} +% +% \begin{macrocode} +\ifHy@ocgcolorlinks + \pdf@ifdraftmode{}{% + \immediate\pdfobj{% + <<% + /Type/OCG% + /Name(View)% + /Usage<<% + /Print<<% + /PrintState/OFF% + >>% + /View<<% + /ViewState/ON% + >>% + >>% + >>% + }% + \edef\OBJ@OCG@view{\the\pdflastobj\space 0 R}% + \immediate\pdfobj{% + <<% + /Type/OCG% + /Name(Print)% + /Usage<<% + /Print<<% + /PrintState/ON% + >>% + /View<<% + /ViewState/OFF% + >>% + >>% + >>% + }% + \edef\OBJ@OCG@print{\the\pdflastobj\space 0 R}% + \immediate\pdfobj{% + [% + \OBJ@OCG@view\space\OBJ@OCG@print + ]% + }% + \edef\OBJ@OCGs{\the\pdflastobj\space 0 R}% + \pdfcatalog{% + /OCProperties<<% + /OCGs \OBJ@OCGs + /D<<% + /OFF[\OBJ@OCG@print]% + /AS[% + <<% + /Event/View% + /OCGs \OBJ@OCGs + /Category[/View]% + >>% + <<% + /Event/Print% + /OCGs \OBJ@OCGs + /Category[/Print]% + >>% + <<% + /Event/Export% + /OCGs \OBJ@OCGs + /Category[/Print]% + >>% + ]% + >>% + >>% + }% + \begingroup + \edef\x{\endgroup + \pdfpageresources{% + \the\pdfpageresources + /Properties<<% + /OCView \OBJ@OCG@view + /OCPrint \OBJ@OCG@print + >>% + }% + }% + \x + }% + \Hy@AtBeginDocument{% + \def\Hy@colorlink#1{% + \begingroup + \ifHy@ocgcolorlinks + \def\Hy@ocgcolor{#1}% + \setbox0=\hbox\bgroup\color@begingroup + \else + \HyColor@UseColor#1% + \fi + }% + \def\Hy@endcolorlink{% + \ifHy@ocgcolorlinks + \color@endgroup\egroup + \mbox{% + \pdfliteral page{/OC/OCPrint BDC}% + \rlap{\copy0}% + \pdfliteral page{EMC/OC/OCView BDC}% + \begingroup + \expandafter\HyColor@UseColor\Hy@ocgcolor + \box0 % + \endgroup + \pdfliteral page{EMC}% + }% + \fi + \endgroup + }% + }% +\else + \Hy@DisableOption{ocgcolorlinks}% +\fi +% \end{macrocode} +% +% First, allow for some changes and additions to pdftex syntax: +% \begin{macrocode} +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \expandafter\endgroup + \expandafter\pdflinkmargin\the\dimen@\relax +} +\ifx\pdfstartlink\@undefined% less than version 14 + \let\pdfstartlink\pdfannotlink + \let\pdflinkmargin\@tempdima + \let\pdfxform\pdfform + \let\pdflastxform\pdflastform + \let\pdfrefxform\pdfrefform +\else + \pdflinkmargin1pt % +\fi +% \end{macrocode} +% First set up the default linking +% \begin{macrocode} +\providecommand*\@pdfview{XYZ} +% \end{macrocode} +% First define the anchors: +% \begin{macrocode} +\Hy@WrapperDef\new@pdflink#1{% + \ifhmode + \@savsf\spacefactor + \fi + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}% + \Hy@DestName\Hy@pstringDest\@pdfview + \Hy@RestoreLastskip + \ifhmode + \spacefactor\@savsf + \fi +} +\let\pdf@endanchor\@empty +% \end{macrocode} +% \begin{macro}{\Hy@DestName} +% Wrap the call of \verb|\pdfdest name| in \cs{Hy@DestName}. +% Then it can easier be catched by package |hypdestopt|. +% \begin{macrocode} +\def\Hy@DestName#1#2{% + \pdfdest name{#1}#2\relax +} +% \end{macrocode} +% \end{macro} +% +% Now the links; the interesting part here is the set of attributes +% which define how the link looks. We probably want to add a border +% and color it, but there are other choices. This directly translates +% to PDF code, so consult the manual for how to change this. We will +% add an interface at some point. +% \begin{macrocode} +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\def\Hy@undefinedname{UNDEFINED} +\def\find@pdflink#1#2{% + \leavevmode + \protected@edef\Hy@testname{#2}% + \ifx\Hy@testname\@empty + \Hy@Warning{% + Empty destination name,\MessageBreak + using `\Hy@undefinedname'% + }% + \let\Hy@testname\Hy@undefinedname + \else + \Hy@pstringdef\Hy@testname{% + \expandafter\HyperDestNameFilter\expandafter{\Hy@testname}% + }% + \fi + \Hy@StartlinkName{% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\CurrentBorderColor\relax + \else + /C[\CurrentBorderColor]% + \fi + }\Hy@testname + \expandafter\Hy@colorlink\csname @#1color\endcsname +} +\def\Hy@StartlinkName#1#2{% + \pdfstartlink attr{#1}goto name{#2}\relax +} +\def\close@pdflink{% + \Hy@endcolorlink + \Hy@VerboseLinkStop + \pdfendlink +} +\def\hyper@anchor#1{% + \new@pdflink{#1}\anchor@spot\pdf@endanchor +} +\def\hyper@anchorstart#1{% + \new@pdflink{#1}% + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \pdf@endanchor + \Hy@activeanchorfalse +} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \ltx@IfUndefined{@#1bordercolor}{% + \let\CurrentBorderColor\relax + }{% + \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}% + }% + \find@pdflink{#1}{#2}% +} +\def\hyper@linkend{\close@pdflink} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \ltx@IfUndefined{@#1bordercolor}{% + \let\CurrentBorderColor\relax + }{% + \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}% + }% + \find@pdflink{#1}{#2}#3\Hy@xspace@end + \close@pdflink +} +\let\CurrentBorderColor\@linkbordercolor +\def\hyper@linkurl#1#2{% + \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% + \hyper@chars + \leavevmode + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@urlbordercolor\relax + \else + /C[\@urlbordercolor]% + \fi + }% + user{% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /Type/Action% + /S/URI% + /URI(\Hy@pstringURI)% + \ifHy@href@ismap + /IsMap true% + \fi + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@urlcolor#1\Hy@xspace@end + \close@pdflink + \endgroup +} +\def\hyper@linkfile#1#2#3{% anchor text, filename, linkname + \begingroup + \def\Hy@pstringF{#2}% + \Hy@CleanupFile\Hy@pstringF + \Hy@pstringdef\Hy@pstringF\Hy@pstringF + \Hy@pstringdef\Hy@pstringD{#3}% + \Hy@MakeRemoteAction + \leavevmode + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@filebordercolor\relax + \else + /C[\@filebordercolor]% + \fi + }% + user {% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /F(\Hy@pstringF)% + /S/GoToR% + \Hy@SetNewWindow +% \end{macrocode} +% If |#3| is empty, page 0; if its a number, Page number, otherwise +% a named destination. +% \begin{verbatim} +% \afterassignment\xxx\count@=0\foo!% +% +%\def\xxx#1!{% +% \ifx\xxx#1\xxx +% foo was an integer +% \else +% it wasnt +% \fi} +% \end{verbatim} +% \begin{macrocode} + \ifx\\#3\\% + /D[\Hy@href@page\@pdfremotestartview]% + \else + /D(\Hy@pstringD)% + \fi + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@filecolor#1\Hy@xspace@end + \close@pdflink + \endgroup +} +\def\@hyper@launch run:#1\\#2#3{% filename, anchor text linkname + \begingroup + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% + \leavevmode + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@runbordercolor\relax + \else + /C[\@runbordercolor]% + \fi + }% + user {% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /F(\Hy@pstringF)% + /S/Launch% + \Hy@SetNewWindow + \ifx\\#3\\% + \else + /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>% + \fi + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@runcolor#2\Hy@xspace@end + \close@pdflink + \endgroup +} +% \end{macrocode} +% \begin{macro}{\PDF@SetupDox} +% \begin{macrocode} +\def\PDF@SetupDoc{% + \ifx\@pdfpagescrop\@empty + \else + \edef\process@me{% + \pdfpagesattr={% + /CropBox[\@pdfpagescrop]% + \expandafter\ifx\expandafter\\\the\pdfpagesattr\\% + \else + ^^J\the\pdfpagesattr + \fi + }% + }% + \process@me + \fi + \Hy@pstringdef\Hy@pstringB{\@baseurl}% + \pdfcatalog{% + /PageMode/\@pdfpagemode + \ifx\@baseurl\@empty + \else + /URI<</Base(\Hy@pstringB)>>% + \fi + }% + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + openaction goto page\@pdfstartpage{\@pdfstartview}% + \fi + \fi + \edef\Hy@temp{% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + }% + \pdfcatalog{% + \ifx\Hy@temp\@empty + \else + /ViewerPreferences<<\Hy@temp>>% + \fi + \Hy@UseNameKey{PageLayout}\@pdfpagelayout + \ifx\@pdflang\relax + \else + /Lang(\@pdflang)% + \fi + }% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDF@FinishDoc} +% \begin{macrocode} +\def\PDF@FinishDoc{% + \pdf@ifdraftmode{}{% + \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons + \pdfinfo{% + /Author(\@pdfauthor)% + /Title(\@pdftitle)% + /Subject(\@pdfsubject)% + /Creator(\@pdfcreator)% + \ifx\@pdfcreationdate\@empty + \else + /CreationDate(\@pdfcreationdate)% + \fi + \ifx\@pdfmoddate\@empty + \else + /ModDate(\@pdfmoddate)% + \fi + \ifx\@pdfproducer\relax + \else + /Producer(\@pdfproducer)% + \fi + /Keywords(\@pdfkeywords)% + \ifx\@pdftrapped\@empty + \else + /Trapped/\@pdftrapped + \fi + \HyInfo@Addons + }% + }% + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{addtopdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hyper@pagetransition} +% \cmd{\@pdfpagetransition} is initialized with \cmd{\relax}. So +% it indicates, if option pdfpagetransition is used. First previous +% |/Trans| entries are removed. If a new |/Trans| key exists, it is +% appended to \cmd{\pdfpageattr}. +% \begin{macrocode} +\def\hyper@pagetransition{% + \ifx\@pdfpagetransition\relax + \else + \expandafter\Hy@RemoveTransPageAttr + \the\pdfpageattr^^J/Trans{}>>\END + \ifx\@pdfpagetransition\@empty + \else + \edef\@processme{% + \global\pdfpageattr{% + \the\pdfpageattr + ^^J/Trans << /S /\@pdfpagetransition\space >>% + }% + }% + \@processme + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@RemoveTransPageAttr} +% Macro \cmd{\Hy@RemoveTransPageAttr} removes a |/Trans| +% entry from \cmd{\pdfpageattr}. It is called with +% the end marker |^^J/Trans{}>>\END|. The trick is the +% empty group that does not appear in legal +% \cmd{\pdfpageattr} code. It appears in argument +% |#2| and shows, whether the parameter text +% catches a really |/Trans| object or the end marker. +% \begin{macrocode} +\gdef\Hy@RemoveTransPageAttr#1^^J/Trans#2#3>>#4\END{% + \ifx\\#2\\% + \global\pdfpageattr{#1}% + \else + \Hy@RemoveTransPageAttr#1#4\END + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hyper@pageduration} +% \cmd{\@pdfpageduration} is initialized with \cmd{\relax}. So +% it indicates, if option pdfpageduration is used. First previous +% |/Dur| entries are removed. If a new |/Dur| key exists, it is +% appended to \cmd{\pdfpageattr}. +% \begin{macrocode} +\def\hyper@pageduration{% + \ifx\@pdfpageduration\relax + \else + \expandafter + \Hy@RemoveDurPageAttr\the\pdfpageattr^^J/Dur{} \END + \ifx\@pdfpageduration\@empty + \else + \edef\@processme{% + \global\pdfpageattr{% + \the\pdfpageattr + ^^J/Dur \@pdfpageduration\space + }% + }% + \@processme + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@RemoveDurPageAttr} +% Macro \cmd{\Hy@RemoveDurPageAttr} removes a |/Dur| +% entry from \cmd{\pdfpageattr}. It is called with +% the end marker |^^J/Dur{} \END|. The trick is the +% empty group that does not appear in legal +% \cmd{\pdfpageattr} code. It appears in argument +% |#2| and shows, whether the parameter text +% catches a really |/Dur| object or the end marker. +% \begin{macrocode} +\gdef\Hy@RemoveDurPageAttr#1^^J/Dur#2#3 #4\END{% + \ifx\\#2\\% + \global\pdfpageattr{#1}% + \else + \Hy@RemoveDurPageAttr#1#4\END + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hyper@pagehidden} +% The boolean value of the key |/Hid| is stored in switch +% \cmd{\ifHy@pdfpagehidden}. +% First previous |/Hid| entries are removed, then the new +% one is appended, if the value is true (the PDF default +% is false). +% \begin{macrocode} +\def\hyper@pagehidden{% + \ifHy@useHidKey + \expandafter + \Hy@RemoveHidPageAttr\the\pdfpageattr^^J/Hid{} \END + \ifHy@pdfpagehidden + \edef\@processme{% + \global\pdfpageattr{% + \the\pdfpageattr + ^^J/Hid true % SPACE + }% + }% + \@processme + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Hy@RemoveHidPageAttr} +% Macro \cmd{\Hy@RemoveHidPageAttr} removes a |/Hid| +% entry from \cmd{\pdfpageattr}. It is called with +% the end marker |^^J/Hid{} \END|. The trick is the +% empty group that does not appear in legal +% \cmd{\pdfpageattr} code. It appears in argument +% |#2| and shows, whether the parameter text +% catches a really |/Hid| object or the end marker. +% \begin{macrocode} +\gdef\Hy@RemoveHidPageAttr#1^^J/Hid#2#3 #4\END{% + \ifx\\#2\\% + \global\pdfpageattr{#1}% + \else + \Hy@RemoveHidPageAttr#1#4\END + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\pdf@ifdraftmode{}{% + \g@addto@macro\Hy@EveryPageHook{% + \hyper@pagetransition + \hyper@pageduration + \hyper@pagehidden + }% +} +% \end{macrocode} +% +% Also Xe\TeX\ support \cs{pdfpagewidth} and \cs{pdfpageheight}, +% but it does not provide \cs{pdfhorigin} and \cs{pdfvorigin}. +% \begin{macrocode} +%</pdftex> +%<*pdftex|xetex> +\Hy@AtBeginDocument{% + \ifHy@setpagesize + \expandafter\@firstofone + \else + \expandafter\@gobble + \fi + {% + \@ifclassloaded{seminar}{% +%<*pdftex> + \setlength{\pdfhorigin}{1truein}% + \setlength{\pdfvorigin}{1truein}% +%</pdftex> + \ifportrait + \ifdim\paperwidth=\z@ + \else + \setlength{\pdfpagewidth}{\strip@pt\paperwidth truept}% + \fi + \ifdim\paperheight=\z@ + \else + \setlength{\pdfpageheight}{\strip@pt\paperheight truept}% + \fi + \else + \ifdim\paperheight=\z@ + \else + \setlength{\pdfpagewidth}{\strip@pt\paperheight truept}% + \fi + \ifdim\paperwidth=\z@ + \else + \setlength{\pdfpageheight}{\strip@pt\paperwidth truept}% + \fi + \fi + }{% + \ltx@IfUndefined{stockwidth}{% + \ifdim\paperwidth>\z@ + \setlength{\pdfpagewidth}{\paperwidth}% + \fi + \ifdim\paperheight>\z@ + \setlength{\pdfpageheight}{\paperheight}% + \fi + }{% + \ifdim\stockwidth>\z@ + \setlength{\pdfpagewidth}{\stockwidth}% + \fi + \ifdim\stockheight>\z@ + \setlength{\pdfpageheight}{\stockheight}% + \fi + }% + }% + }% + \Hy@DisableOption{setpagesize}% +} +%</pdftex|xetex> +%<*pdftex> +\def\Acrobatmenu#1#2{% + \Hy@Acrobatmenu{#1}{#2}{% + \leavevmode + \EdefEscapeName\Hy@temp@menu{#1}% + \pdfstartlink + attr{% + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@menubordercolor\relax + \else + /C[\@menubordercolor]% + \fi + }% + user{% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + /A<<% + /S/Named% + /N/\Hy@temp@menu + \Hy@href@nextactionraw + >>% + }% + \relax + \Hy@colorlink\@menucolor#2% + \close@pdflink + }% +} +% \end{macrocode} +% +% \subsubsection{Fix for problem with different nesting levels} +% +% \cs{AtBeginShipoutFirst} adds an additional box layer around +% the first output page. This disturbs pdf\TeX's low level +% link commands \cs{pdfstartlink} and \cs{pdfendlink}, if a +% link is broken across the first and second output page. +% +% The problem could be fixed by replacing \cs{AtBeginShipoutFirst}, +% because the box layer is not necessary for pdf\TeX -- no \cs{special}s +% need to be inserted. However it's easier to add an additional +% box level for the pages after the first one. Also \cs{AtBeginShipoutFirst} +% could be invoked independently from hyperref. +% +% Since version 2011/10/05 v1.16 of package `atbegshi' +% \cs{AtBeginShipoutFirst} does not add a additional box layer. +% \begin{macrocode} +\def\Hy@FixNotFirstPage{% + \gdef\Hy@FixNotFirstPage{% + \setbox\AtBeginShipoutBox=\hbox{% + \copy\AtBeginShipoutBox + }% + }% +} +\ltx@ifpackagelater{atbegshi}{2011/10/05}{% +}{% + \AtBeginShipout{\Hy@FixNotFirstPage}% +} +% \end{macrocode} +% +% \begin{macrocode} +%</pdftex> +% \end{macrocode} +% +% \subsection{hypertex} +% +% The Hyper\TeX\ specification (this is +% borrowed from an article by Arthur Smith) +% says that conformant viewers/translators +% must recognize the following set of |\special| commands: +% \begin{description} +% \item[href:] |html:<a href = "href_string">| +% \item[name:] |html:<a name = "name_string">| +% \item[end:] |html:</a>| +% \item[image:] |html:<img src = "href_string">| +% \item[base\_name:] |html:<base href = "href_string">| +% \end{description} +% +% The \emph{href}, \emph{name} and \emph{end} commands are used to do +% the basic hypertext operations of establishing links between sections +% of documents. The \emph{image} command is intended (as with current +% html viewers) to place an image of arbitrary graphical +% format on the page in the current location. The \emph{base\_name} +% command is be used to communicate to the \emph{dvi} viewer the full (URL) +% location of the current document so that +% files specified by relative URL's may be retrieved correctly. +% +% The \emph{href} and \emph{name} commands must be paired with an +% \emph{end} command later in +% the \TeX{} file --- the \TeX{} commands between the two ends of a pair +% form an \emph{anchor} in the document. In the case of an \emph{href} +% command, the \emph{anchor} is to be highlighted in the +% \emph{dvi} viewer, and +% when clicked on will cause the scene to shift to the destination +% specified by \emph{href\_string}. The \emph{anchor} associated with a +% name command represents a possible location to which other hypertext +% links may refer, either as local references (of the form +% \texttt{href="\#name\_string"} with the \emph{name\_string} +% identical to the one in the name command) or as part of a URL (of the +% form \emph{URL\#name\_string}). Here \emph{href\_string} is a valid +% URL or local identifier, while name\_string could be any string at +% all: the only caveat is that `|"|' characters should be escaped with a +% backslash (|\|), and if it looks like a URL name it may cause +% problems. +% +% \begin{macrocode} +%<*hypertex> +\providecommand*{\XR@ext}{dvi} +\let\PDF@FinishDoc\ltx@empty +\def\PDF@SetupDoc{% + \ifx\@baseurl\@empty + \else + \special{html:<base href="\@baseurl">}% + \fi +} +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \let\protect=\string + \hyper@chars + \special{html:<a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink + \special{html:</a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \hyper@chars + \special{html:<a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \special{html:</a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\@urltype{url} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \expandafter\Hy@colorlink\csname @#1color\endcsname + \def\Hy@tempa{#1}% + \ifx\Hy@tempa\@urltype + \special{html:<a href=\hyper@quote#2\hyper@quote>}% + \else + \begingroup + \hyper@chars + \special{html:<a href=% + \hyper@quote\#\HyperDestNameFilter{#2}\hyper@quote>}% + \endgroup + \fi +} +\def\hyper@linkend{% + \special{html:</a>}% + \Hy@endcolorlink +} +\def\hyper@linkfile#1#2#3{% + \hyper@linkurl{#1}{\Hy@linkfileprefix#2\ifx\\#3\\\else\##3\fi}% +} +\def\hyper@linkurl#1#2{% +% \end{macrocode} +% If we want to raise up the final link |\special|, we need to +% get its height; ask me why \LaTeX\ constructs make this totally +% foul up, and make us revert to basic \TeX. I do not know. +% \begin{macrocode} + \leavevmode + \ifHy@raiselinks + \Hy@SaveSpaceFactor + \Hy@SaveSavedSpaceFactor + \sbox\@tempboxa{\Hy@RestoreSpaceFactor#1}% + \Hy@RestoreSavedSpaceFactor + \@linkdim\dp\@tempboxa + \lower\@linkdim\hbox{% + \hyper@chars + \special{html:<a href=\hyper@quote#2\hyper@quote>}% + }% + \Hy@colorlink\@urlcolor + \Hy@RestoreSpaceFactor + #1% + \Hy@SaveSpaceFactor + \@linkdim\ht\@tempboxa +% \end{macrocode} +% Because of the interaction with the dvihps processor, we have to subtract a +% little from the height. This is not clean, or checked. Check with Mark +% Doyle about what gives here. It may not be needed with +% the new dvips (Jan 1997). +% \begin{macrocode} + \advance\@linkdim by -6.5\p@ + \raise\@linkdim\hbox{\special{html:</a>}}% + \Hy@endcolorlink + \Hy@RestoreSpaceFactor + \else + \begingroup + \hyper@chars + \special{html:<a href=\hyper@quote#2\hyper@quote>}% + \Hy@colorlink\@urlcolor#1\Hy@xspace@end + \special{html:</a>}% + \Hy@endcolorlink + \endgroup + \fi +} +% \end{macrocode} +% Very poor implementation of \cs{hyper@link} without considering |#1|. +% \begin{macrocode} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \hyper@linkurl{#3}{\#\HyperDestNameFilter{#2}}% +} +% \end{macrocode} +% +% \begin{macrocode} +\def\hyper@image#1#2{% + \begingroup + \hyper@chars + \special{html:<img src=\hyper@quote#1\hyper@quote>}% + \endgroup +} +%</hypertex> +%<*dviwindo> +% \end{macrocode} +% \subsection{dviwindo} +% [This was developed by David Carlisle]. +% Within a file dviwindo hyperlinking is used, for external +% URL's a call to |\wwwbrowser| is made. (You can define +% this command before or after loading the hyperref package +% if the default |c:/netscape/netscape| is not suitable) +% Dviwindo could in fact handle external links to dvi files on +% the same machine without calling a web browser, but that would +% mean parsing the URL to recognise such, and this is currently +% not done. +% +% This was more or less blindly copied from the hypertex cfg. +% For dviwindo, \LaTeX{} must specify the size of the active area +% for links. For some hooks this information is available +% but for some, the start and end of the link are +% specified separately in which case a fixed size area +% of 10000000sp wide by |\baselineskip| high is used. +% \begin{macrocode} +\providecommand*{\XR@ext}{dvi} +\providecommand*\wwwbrowser{c:\string\netscape\string\netscape} +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \let\protect=\string + \special{mark: #1}% + \endgroup + \Hy@activeanchortrue + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \special{mark: #1}% + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \expandafter\Hy@colorlink\csname @#1color\endcsname + \special{button: % + 10000000 % + \number\baselineskip\space + #2% + }% +} +\def\hyper@linkend{% + \Hy@endcolorlink +} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \leavevmode + \ifHy@raiselinks + \Hy@SaveSpaceFactor + \Hy@SaveSavedSpaceFactor + \sbox\@tempboxa{\Hy@RestoreSpaceFactor#3}% + \Hy@RestoreSavedSpaceFactor + \@linkdim\dp\@tempboxa + \lower\@linkdim\hbox{% + \special{button: % + \number\wd\@tempboxa\space + \number\ht\@tempboxa\space + #2% + }% + \expandafter\Hy@colorlink\csname @#1color\endcsname + \Hy@RestoreSpaceFactor + #3\Hy@xspace@end + \Hy@SaveSpaceFactor + \Hy@endcolorlink + }% + \@linkdim\ht\@tempboxa + \advance\@linkdim by -6.5\p@ + \raise\@linkdim\hbox{}% + \Hy@RestoreSpaceFactor + \else + \special{button: % + \number\wd\@tempboxa\space + \number\ht\@tempboxa\space + #2% + }% + \expandafter\Hy@colorlink\csname @#1color\endcsname + #3\Hy@xspace@end + \Hy@endcolorlink + \fi +} +\def\hyper@linkurl#1#2{% + \begingroup + \hyper@chars + \leavevmode + \ifHy@raiselinks + \Hy@SaveSpaceFactor + \Hy@SaveSavedSpaceFactor + \sbox\@tempboxa{\Hy@RestoreSpaceFactor#1}% + \Hy@RestoreSavedSpaceFactor + \@linkdim\dp\@tempboxa + \lower\@linkdim\hbox{% + \special{button: % + \number\wd\@tempboxa\space + \number\ht\@tempboxa\space + launch: \wwwbrowser\space + #2% + }% + \Hy@colorlink\@urlcolor + \Hy@RestoreSpaceFactor + #1\Hy@xspace@end + \Hy@SaveSpaceFactor + \Hy@endcolorlink + }% + \@linkdim\ht\@tempboxa + \advance\@linkdim by -6.5\p@ + \raise\@linkdim\hbox{}% + \Hy@RestoreSpaceFactor + \else + \special{button: % + \number\wd\@tempboxa\space + \number\ht\@tempboxa\space + launch: \wwwbrowser\space + #2% + }% + \Hy@colorlink\@urlcolor + #1\Hy@xspace@end + \Hy@endcolorlink + \fi + \endgroup +} +\def\hyper@linkfile#1#2#3{% + \begingroup + \hyper@chars + \leavevmode + \ifHy@raiselinks + \Hy@SaveSpaceFactor + \Hy@SaveSavedSpaceFactor + \sbox\@tempboxa{\Hy@RestoreSpaceFactor#1}% + \Hy@RestoreSavedSpaceFactor + \@linkdim\dp\@tempboxa + \lower\@linkdim\hbox{% + \special{button: % + \number\wd\@tempboxa\space + \number\ht\@tempboxa\space + #3,% + file: #2% + }% + \Hy@colorlink\@filecolor + \Hy@RestoreSpaceFactor + #1\Hy@xspace@end + \Hy@SaveSpaceFactor + \Hy@endcolorlink + }% + \@linkdim\ht\@tempboxa + \advance\@linkdim by -6.5\p@ + \raise\@linkdim\hbox{}% + \Hy@RestoreSpaceFactor + \else + \special{button: % + \number\wd\@tempboxa\space + \number\ht\@tempboxa\space + #3,% + file: #2% + }% + \Hy@colorlink\@filecolor + #1\Hy@xspace@end + \Hy@endcolorlink + \fi + \endgroup +} +\HyInfo@AddonUnsupportedtrue +\def\PDF@FinishDoc{% + \Hy@UseMaketitleInfos + \HyInfo@TrappedUnsupported + \special{PDF: Keywords \@pdfkeywords}% + \special{PDF: Title \@pdftitle}% + \special{PDF: Creator \@pdfcreator}% + \ifx\@pdfcreationdate\@empty + \else + \special{PDF: CreationDate \@pdfcreationdate}% + \fi + \ifx\@pdfmoddate\@empty + \else + \special{PDF: ModDate \@pdfmoddate}% + \fi + \special{PDF: Author \@pdfauthor}% + \ifx\@pdfproducer\relax + \else + \special{PDF: Producer \@pdfproducer}% + \fi + \special{PDF: Subject \@pdfsubject}% + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{addtopdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +\def\PDF@SetupDoc{% + \ifx\@baseurl\@empty + \else + \special{PDF: Base \@baseurl}% + \fi + \ifx\@pdfpagescrop\@empty\else + \special{PDF: BBox \@pdfpagescrop}% + \fi + \def\Hy@temp{}% + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + \edef\Hy@temp{% + ,Page=\@pdfstartpage + ,View=\@pdfstartview + }% + \fi + \fi + \edef\Hy@temp{% + \noexpand\pdfmark{% + pdfmark=/DOCVIEW,% + PageMode=/\@pdfpagemode + \Hy@temp + }% + }% + \Hy@temp + \ifx\@pdfpagescrop\@empty + \else + \pdfmark{pdfmark=/PAGES,CropBox=\@pdfpagescrop}% + \fi + \edef\Hy@temp{% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + }% + \pdfmark{pdfmark=/PUT,% + Raw={% + \string{Catalog\string}<<% + \ifx\Hy@temp\@empty + \else + /ViewerPreferences<<\Hy@temp>>% + \fi + \Hy@UseNameKey{PageLayout}\@pdfpagelayout + \ifx\@pdflang\relax + \else + /Lang(\@pdflang)% + \fi + >>% + }% + }% +} +%</dviwindo> +%<*dvipdfm|xetex> +% \end{macrocode} +% \subsection{dvipdfm/xetex dvi to PDF converter} +% Provided by Mark Wicks (mwicks@kettering.edu) +% \begin{macrocode} +\providecommand*{\XR@ext}{pdf} +\Hy@setbreaklinks{true} +\def\HyPat@ObjRef{% + @[^ ]+% +} +\newsavebox{\pdfm@box} +\def\@pdfm@mark#1{\special{pdf:#1}} +\Hy@WrapperDef\@pdfm@dest#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}% + \def\x{XYZ}% + \ifx\x\@pdfview + \def\x{XYZ @xpos @ypos null}% + \else + \def\x{FitH}% + \ifx\x\@pdfview + \def\x{FitH @ypos}% + \else + \def\x{FitBH}% + \ifx\x\@pdfview + \def\x{FitBH @ypos}% + \else + \def\x{FitV}% + \ifx\x\@pdfview + \def\x{FitV @xpos}% + \else + \def\x{FitBV}% + \ifx\x\@pdfview + \def\x{FitBV @xpos}% + \else + \def\x{Fit}% + \ifx\x\@pdfview + \let\x\@pdfview + \else + \def\x{FitB}% + \ifx\x\@pdfview + \let\x\@pdfview + \else + \def\x{FitR}% + \ifx\x\@pdfview + \Hy@Warning{`pdfview=FitR' is not supported}% + \def\x{XYZ @xpos @ypos null}% + \else + \@onelevel@sanitize\@pdfview + \Hy@Warning{% + Unknown value `\@pdfview' for pdfview% + }% + \def\x{XYZ @xpos @ypos null}% + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \fi + \@pdfm@mark{dest (\Hy@pstringDest) [@thispage /\x]}% + \endgroup + \Hy@RestoreLastskip +} +\providecommand*\@pdfview{XYZ} +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\def\hyper@anchor#1{% + \@pdfm@dest{#1}% +} +\def\hyper@anchorstart#1{% + \Hy@activeanchortrue + \@pdfm@dest{#1}% +} +\def\hyper@anchorend{% + \Hy@activeanchorfalse +} +% \end{macrocode} +% \begin{macrocode} +\newcounter{Hy@AnnotLevel} +% \end{macrocode} +% \begin{macrocode} +\ifHy@ocgcolorlinks + \def\OBJ@OCG@view{@OCG@view}% + \@pdfm@mark{% + obj \OBJ@OCG@view <<% + /Type/OCG% + /Name(View)% + /Usage<<% + /Print<<% + /PrintState/OFF% + >>% + /View<<% + /ViewState/ON% + >>% + >>% + >>% + }% + \@pdfm@mark{close \OBJ@OCG@view}% + \def\OBJ@OCG@print{@OCG@print}% + \@pdfm@mark{% + obj \OBJ@OCG@print <<% + /Type/OCG% + /Name(Print)% + /Usage<<% + /Print<<% + /PrintState/ON% + >>% + /View<<% + /ViewState/OFF% + >>% + >>% + >>% + }% + \@pdfm@mark{close \OBJ@OCG@print}% + \def\OBJ@OCGs{@OCGs}% + \@pdfm@mark{% + obj \OBJ@OCGs [% + \OBJ@OCG@view\space\OBJ@OCG@print + ]% + }% + \@pdfm@mark{close \OBJ@OCGs}% + \@pdfm@mark{% + put @catalog <<% + /OCProperties<<% + /OCGs \OBJ@OCGs + /D<<% + /OFF[\OBJ@OCG@print]% + /AS[% + <<% + /Event/View% + /OCGs \OBJ@OCGs + /Category[/View]% + >>% + <<% + /Event/Print% + /OCGs \OBJ@OCGs + /Category[/Print]% + >>% + <<% + /Event/Export% + /OCGs \OBJ@OCGs + /Category[/Print]% + >>% + ]% + >>% + >>% + >>% + }% + \AtBeginShipout{% + \setbox\AtBeginShipoutBox=\hbox{% + \copy\AtBeginShipoutBox + \@pdfm@mark{% + put @resources <<% + /Properties<<% + /OCView \OBJ@OCG@view + /OCPrint \OBJ@OCG@print + >>% + >>% + }% + }% + }% + \Hy@AtBeginDocument{% + \def\Hy@colorlink#1{% + \begingroup + \ifHy@ocgcolorlinks + \def\Hy@ocgcolor{#1}% + \setbox0=\hbox\bgroup\color@begingroup + \else + \HyColor@UseColor#1% + \fi + }% + \def\Hy@endcolorlink{% + \ifHy@ocgcolorlinks + \color@endgroup\egroup + \mbox{% + \@pdfm@mark{content /OC/OCPrint BDC}% + \rlap{\copy0}% + \@pdfm@mark{content EMC/OC/OCView BDC}% + \begingroup + \expandafter\HyColor@UseColor\Hy@ocgcolor + \box0 % + \endgroup + \@pdfm@mark{content EMC}% + }% + \fi + \endgroup + }% + }% +\else + \Hy@DisableOption{ocgcolorlinks}% +\fi +% \end{macrocode} +% Use primitive counter arithmetic here to avoid amsmath +% redefining |\stepcounter| (github issue/13) +% \begin{macrocode} +\def\Hy@BeginAnnot#1{% + \global\advance\c@Hy@AnnotLevel\@ne + \ifnum\c@Hy@AnnotLevel=\@ne + #1% + \fi +} +\def\Hy@EndAnnot{% + \ifnum\value{Hy@AnnotLevel}=\@ne + \Hy@endcolorlink + \@pdfm@mark{eann}% + \fi + \global\advance\c@Hy@AnnotLevel\m@ne +} +% \end{macrocode} +% \begin{macrocode} +\def\Hy@undefinedname{UNDEFINED} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \leavevmode + \Hy@BeginAnnot{% + \protected@edef\Hy@testname{#2}% + \ifx\Hy@testname\@empty + \Hy@Warning{% + Empty destination name,\MessageBreak + using `\Hy@undefinedname'% + }% + \let\Hy@testname\Hy@undefinedname + \else + \Hy@pstringdef\Hy@testname{% + \expandafter\HyperDestNameFilter\expandafter{% + \Hy@testname + }% + }% + \fi + \@pdfm@mark{% + bann<<% + /Type/Annot% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \expandafter\ifx\csname @#1bordercolor\endcsname\relax + \else + /C[\csname @#1bordercolor\endcsname]% + \fi + /A<<% + /S/GoTo% + /D(\Hy@testname)% + \Hy@href@nextactionraw + >>% + >>% + }% + \expandafter\Hy@colorlink\csname @#1color\endcsname + }% +} +\def\hyper@linkend{\Hy@EndAnnot}% +\def\hyper@link#1#2#3{% + \hyper@linkstart{#1}{#2}#3\Hy@xspace@end\hyper@linkend +} +\def\hyper@linkfile#1#2#3{% + \leavevmode + \Hy@BeginAnnot{% + \def\Hy@pstringF{#2}% + \Hy@CleanupFile\Hy@pstringF + \Hy@pstringdef\Hy@pstringF\Hy@pstringF + \Hy@pstringdef\Hy@pstringD{#3}% + \Hy@MakeRemoteAction + \@pdfm@mark{% + bann<<% + /Type/Annot% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@filebordercolor\relax + \else + /C[\@filebordercolor]% + \fi + /A<<% + /S/GoToR% + /F(\Hy@pstringF)% + /D% + \ifx\\#3\\% + [\Hy@href@page\@pdfremotestartview]% + \else + (\Hy@pstringD)% + \fi + \Hy@SetNewWindow + \Hy@href@nextactionraw + >>% + >>% + }% + \Hy@colorlink\@filecolor + }% + #1\Hy@xspace@end + \Hy@EndAnnot +} +\def\@hyper@launch run:#1\\#2#3{% filename, anchor text linkname + \leavevmode + \Hy@BeginAnnot{% + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% + \@pdfm@mark{% + bann<<% + /Type/Annot% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@runbordercolor\relax + \else + /C[\@runbordercolor]% + \fi + /A<<% + /F(\Hy@pstringF)% + /S/Launch% + \Hy@SetNewWindow + \ifx\\#3\\% + \else + /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>% + \fi + \Hy@href@nextactionraw + >>% + >>% + }% + \Hy@colorlink\@runcolor + }% + #2\Hy@xspace@end + \Hy@EndAnnot +} +\def\hyper@linkurl#1#2{% + \leavevmode + \Hy@BeginAnnot{% + \Hy@pstringdef\Hy@pstringURI{#2}% + \@pdfm@mark{% + bann<<% + /Type/Annot% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@urlbordercolor\relax + \else + /C[\@urlbordercolor]% + \fi + /A<<% + /S/URI% + /URI(\Hy@pstringURI)% + \ifHy@href@ismap + /IsMap true% + \fi + \Hy@href@nextactionraw + >>% + >>% + }% + \Hy@colorlink\@urlcolor + }% + #1\Hy@xspace@end + \Hy@EndAnnot +} +\def\Acrobatmenu#1#2{% + \Hy@Acrobatmenu{#1}{#2}{% + \Hy@BeginAnnot{% + \EdefEscapeName\Hy@temp@menu{#1}% + \@pdfm@mark{% + bann<<% + /Type/Annot% + /Subtype/Link% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \Hy@setpdfhighlight + \ifx\@menubordercolor\relax + \else + /C[\@menubordercolor]% + \fi + /A<<% + /S/Named% + /N/\Hy@temp@menu + \Hy@href@nextactionraw + >>% + >>% + }% + \Hy@colorlink\@menucolor + }% + #2\Hy@xspace@end + \Hy@EndAnnot + }% +} + +\def\PDF@FinishDoc{% + \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons + \@pdfm@mark{% + docinfo<<% + /Title(\@pdftitle)% + /Subject(\@pdfsubject)% + /Creator(\@pdfcreator)% + \ifx\@pdfcreationdate\@empty + \else + /CreationDate(\@pdfcreationdate)% + \fi + \ifx\@pdfmoddate\@empty + \else + /ModDate(\@pdfmoddate)% + \fi + /Author(\@pdfauthor)% + \ifx\@pdfproducer\relax + \else + /Producer(\@pdfproducer)% + \fi + /Keywords(\@pdfkeywords)% + \ifx\@pdftrapped\@empty + \else + /Trapped/\@pdftrapped + \fi + \HyInfo@Addons + >>% + }% + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{addtopdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +% \end{macrocode} +% \begin{macrocode} +\def\PDF@SetupDoc{% + \edef\Hy@temp{% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + }% + \Hy@pstringdef\Hy@pstringB{\@baseurl}% + \@pdfm@mark{% + docview<<% + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + /OpenAction[@page\@pdfstartpage\@pdfstartview]% + \fi + \fi + \ifx\@baseurl\@empty + \else + /URI<</Base(\Hy@pstringB)>>% + \fi + /PageMode/\@pdfpagemode + \ifx\Hy@temp\@empty + \else + /ViewerPreferences<<\Hy@temp>>% + \fi + \Hy@UseNameKey{PageLayout}\@pdfpagelayout + \ifx\@pdflang\relax + \else + /Lang(\@pdflang)% + \fi + >>% + }% + \ifx\@pdfpagescrop\@empty + \else + \@pdfm@mark{put @pages <</CropBox[\@pdfpagescrop]>>}% + \fi +} +%</dvipdfm|xetex> +% \end{macrocode} +% +% \begin{macrocode} +%<*dvipdfm|xetex> +% \end{macrocode} +% \begin{macro}{\hyper@pagetransition} +% \begin{macrocode} +\def\hyper@pagetransition{% + \ifx\@pdfpagetransition\relax + \else + \ifx\@pdfpagetransition\@empty + \else + \special{pdf:put @thispage % + <</Trans<</S/\@pdfpagetransition>>>>% + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hyper@pageduration} +% \begin{macrocode} +\def\hyper@pageduration{% + \ifx\@pdfpageduration\relax + \else + \ifx\@pdfpageduration\@empty + \else + \special{pdf:put @thispage % + <</Dur \@pdfpageduration>>% + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hyper@pagehidden} +% \begin{macrocode} +\def\hyper@pagehidden{% + \ifHy@useHidKey + \special{pdf:put @thispage % + <</Hid \ifHy@pdfpagehidden true\else false\fi>>% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\g@addto@macro\Hy@EveryPageBoxHook{% + \hyper@pagetransition + \hyper@pageduration + \hyper@pagehidden +} +% \end{macrocode} +% \begin{macrocode} +%</dvipdfm|xetex> +% \end{macrocode} +% +% Xe\TeX\ uses pdf\TeX's method \cs{pdfpagewidth} +% and \cs{pdfpageheight} for setting the paper size. +% \begin{macrocode} +%<*dvipdfm> +\AtBeginShipoutFirst{% + \ifHy@setpagesize + \begingroup + \@ifundefined{stockwidth}{% + \ifdim\paperwidth>\z@ + \ifdim\paperheight>\z@ + \special{papersize=\the\paperwidth,\the\paperheight}% + \fi + \fi + }{% + \ifdim\stockwidth>\z@ + \ifdim\stockheight>\z@ + \special{papersize=\the\stockwidth,\the\stockheight}% + \fi + \fi + }% + \endgroup + \fi + \Hy@DisableOption{setpagesize}% +} +%</dvipdfm> +% \end{macrocode} +% +% \subsection{VTeX typesetting system} +% Provided by MicroPress, May 1998. +% They require VTeX version 6.02 or newer; +% see \url{http://www.micropress-inc.com/} for details. +% \begin{macrocode} +%<*vtexhtml> +\providecommand*{\XR@ext}{htm} +\RequirePackage{vtexhtml} +\newif\if@Localurl +\let\PDF@FinishDoc\ltx@empty +\def\PDF@SetupDoc{% + \ifx\@baseurl\@empty + \else + \special{!direct <base href="\@baseurl">}% + \fi +} +\def\@urltype{url} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \leavevmode + \special{!direct <a href=% + \hyper@quote\hyper@hash\HyperDestNameFilter{#2}\hyper@quote>}% + #3\Hy@xspace@end + \special{!direct </a>}% +} +\def\hyper@linkurl#1#2{% + \begingroup + \hyper@chars + \leavevmode + \MathBSuppress=1\relax + \special{!direct <a href=% + \hyper@quote\HyperDestNameFilter{#2}\hyper@quote>}% + #1\Hy@xspace@end + \MathBSuppress=0\relax + \special{!direct </a>}% + \endgroup +} +\def\hyper@linkfile#1#2#3{% + \hyper@linkurl{#1}{\Hy@linkfileprefix#2\ifx\\#3\\\else\##3\fi}% +} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \def\Hy@tempa{#1}\ifx\Hy@tempa\@urltype + \@Localurltrue + \special{!direct <a href=\hyper@quote#2\hyper@quote>}% + \else + \@Localurlfalse + \begingroup + \hyper@chars + \special{!aref \HyperDestNameFilter{#2}}% + \endgroup + \fi +} +\def\hyper@linkend{% + \if@Localurl + \special{!endaref}% + \else + \special{!direct </a>}% + \fi +} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \hyper@chars + \special{!aname #1}% + \special{!direct <a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \special{!direct </a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \let\protect=\string + \hyper@chars + \leavevmode + \special{!aname #1}% + \special{!direct <a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue + \bgroup\anchor@spot\egroup + \special{!direct </a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\@Form[#1]{% + \Hy@Message{Sorry, TeXpider does not yet support FORMs}% +} +\let\@endForm\ltx@empty +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, TeXpider does not yet support FORM gauges}% +} +\def\@TextField[#1]#2{% parameters, label + \Hy@Message{Sorry, TeXpider does not yet support FORM text fields}% +} +\def\@CheckBox[#1]#2{% parameters, label + \Hy@Message{Sorry, TeXpider does not yet support FORM checkboxes}% +} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \Hy@Message{Sorry, TeXpider does not yet support FORM choice menus}% +} +\def\@PushButton[#1]#2{% parameters, label + \Hy@Message{Sorry, TeXpider does not yet support FORM pushbuttons}% +} +\def\@Reset[#1]#2{% + \Hy@Message{Sorry, TeXpider does not yet support FORMs}% +} +\def\@Submit[#1]#2{% + \Hy@Message{Sorry, TeXpider does not yet support FORMs}% +} +%</vtexhtml> +% \end{macrocode} +% \begin{macrocode} +%<*vtex> +% \end{macrocode} +% VTeX version 6.68 supports \cs{mediawidth} and \cs{mediaheight}. +% The \cs{ifx} construct is better than a \cs{csname}, because +% it avoids the definition and the hash table entry of a +% previous undefined macro. +% \begin{macrocode} +\ifx\mediaheight\@undefined +\else + \ifx\mediaheight\relax + \else + \ifHy@setpagesize + \providecommand*{\VTeXInitMediaSize}{% + \ltx@IfUndefined{stockwidth}{% + \ifdim\paperheight>0pt % + \setlength\mediaheight\paperheight + \fi + \ifdim\paperheight>0pt % + \setlength\mediawidth\paperwidth + \fi + }{% + \ifdim\stockheight>0pt % + \setlength\mediaheight\stockheight + \fi + \ifdim\stockwidth>0pt % + \setlength\mediawidth\stockwidth + \fi + }% + }% + \Hy@AtBeginDocument{\VTeXInitMediaSize}% + \fi + \Hy@DisableOption{setpagesize}% + \fi +\fi +% \end{macrocode} +% Older versions of VTeX require |xyz| in lower case. +% \begin{macrocode} +\providecommand*\@pdfview{xyz} +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\let\CurrentBorderColor\@linkbordercolor +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \let\protect=\string + \hyper@chars + \special{!aname \HyperDestNameFilter{#1};\@pdfview}% + \endgroup + \Hy@activeanchortrue + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \hyper@chars + \special{!aname \HyperDestNameFilter{#1};\@pdfview}% + \endgroup + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\@urltype{url} +\def\Hy@undefinedname{UNDEFINED} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \Hy@pstringdef\Hy@pstringURI{#2}% + \expandafter\Hy@colorlink\csname @#1color\endcsname + \ltx@IfUndefined{@#1bordercolor}{% + \let\CurrentBorderColor\relax + }{% + \edef\CurrentBorderColor{% + \csname @#1bordercolor\endcsname + }% + }% + \def\Hy@tempa{#1}% + \ifx\Hy@tempa\@urltype + \special{!% + aref <u=/Type/Action/S/URI/URI(\Hy@pstringURI)% + \ifHy@href@ismap + /IsMap true% + \fi + \Hy@href@nextactionraw + >;% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\CurrentBorderColor\relax + \else + /C [\CurrentBorderColor]% + \fi + >% + }% + \else + \protected@edef\Hy@testname{#2}% + \ifx\Hy@testname\@empty + \Hy@Warning{% + Empty destination name,\MessageBreak + using `\Hy@undefinedname'% + }% + \let\Hy@testname\Hy@undefinedname + \fi + \special{!% + aref \expandafter\HyperDestNameFilter + \expandafter{\Hy@testname};% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\CurrentBorderColor\relax + \else + /C [\CurrentBorderColor]% + \fi + >% + }% + \fi +} +\def\hyper@linkend{% + \special{!endaref}% + \Hy@endcolorlink +} +\def\hyper@linkfile#1#2#3{% + \leavevmode + \def\Hy@pstringF{#2}% + \Hy@CleanupFile\Hy@pstringF + \special{!% + aref <% + \ifnum\Hy@VTeXversion>753 \ifHy@pdfnewwindow n\fi\fi + f=\Hy@pstringF>#3;% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\@filebordercolor\relax + \else + /C [\@filebordercolor]% + \fi + >% + }% + \Hy@colorlink\@filecolor + #1\Hy@xspace@end + \Hy@endcolorlink + \special{!endaref}% +} +\def\hyper@linkurl#1#2{% + \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% + \hyper@chars + \leavevmode + \special{!% + aref <u=/Type/Action/S/URI/URI(\Hy@pstringURI)% + \ifHy@href@ismap + /IsMap true% + \fi + \Hy@href@nextactionraw + >;% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\@urlbordercolor\relax + \else + /C [\@urlbordercolor]% + \fi + >% + }% + \Hy@colorlink\@urlcolor + #1\Hy@xspace@end + \Hy@endcolorlink + \special{!endaref}% + \endgroup +} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \ltx@IfUndefined{@#1bordercolor}{% + \let\CurrentBorderColor\relax + }{% + \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}% + }% + \leavevmode + \protected@edef\Hy@testname{#2}% + \ifx\Hy@testname\@empty + \Hy@Warning{% + Empty destination name,\MessageBreak + using `\Hy@undefinedname'% + }% + \let\Hy@testname\Hy@undefinedname + \fi + \special{!% + aref \expandafter\HyperDestNameFilter + \expandafter{\Hy@testname};% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\CurrentBorderColor\relax + \else + /C [\CurrentBorderColor]% + \fi + >% + }% + \expandafter + \Hy@colorlink\csname @#1color\endcsname + #3\Hy@xspace@end + \Hy@endcolorlink + \special{!endaref}% +} +\def\hyper@image#1#2{% + \hyper@linkurl{#2}{#1}% +} +\def\@hyper@launch run:#1\\#2#3{% + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% + \leavevmode + \special{!aref % + <u=% + /Type/Action% + /S/Launch% + /F(\Hy@pstringF)% + \Hy@SetNewWindow + \ifx\\#3\\% + \else + /Win<</F(\Hy@pstringF)/P(\Hy@pstringP)>>% + \fi + \Hy@href@nextactionraw + >;% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\@runbordercolor\relax + \else + /C[\@runbordercolor]% + \fi + >% + }% + \Hy@colorlink\@runcolor + #2\Hy@xspace@end + \Hy@endcolorlink + \special{!endaref}% +} +\def\Acrobatmenu#1#2{% + \EdefEscapeName\Hy@temp@menu{#1}% + \Hy@Acrobatmenu{#1}{#2}{% + \special{!% + aref <u=/S /Named /N /\Hy@temp@menu>;% + a=<% + \ifHy@pdfa /F 4\fi + \Hy@setpdfborder + \ifx\@menubordercolor\relax + \else + /C[\@menubordercolor]% + \fi + >% + }% + \Hy@colorlink\@menucolor + #2\Hy@xspace@end + \Hy@endcolorlink + \special{!endaref}% + }% +} +% \end{macrocode} +% +% The following code (transition effects) is +% made by Alex Kostin. +% +% The code below makes sense for V\TeX\ 7.02 or later. +% +% Please never use |\@ifundefined{VTeXversion}{..}{..}| \emph{globally}. +% \begin{macrocode} +\ifnum\Hy@VTeXversion<702 % +\else + \def\hyper@pagetransition{% + \ifx\@pdfpagetransition\relax + \else + \ifx\@pdfpagetransition\@empty +% \end{macrocode} +% +% Standard incantation. +% +% 1. Does an old entry have to be deleted? +% 2. If 1=yes, how to delete? +% \begin{macrocode} + \else + \hvtex@parse@trans\@pdfpagetransition + \fi + \fi + }% +% \end{macrocode} +% +% I have to write an ``honest'' parser to convert raw PDF code +% into V\TeX\ |\special|. (AVK) +% +% Syntax of V\TeX\ |\special{!trans <transition_effect>}|: +%\begin{verbatim} +%<transition_effect> ::= <transition_style>[,<transition_duration>] +%<transition_style> ::= <Blinds_effect> | <Box_effect> | +% <Dissolve_effect> | <Glitter_effect> | +% <Split_effect> | <Wipe_effect> +%<Blinds_effect> ::= B[<effect_dimension>] +%<Box_effect> ::= X[<effect_motion>] +%<Dissolve_effect> ::= D +%<Glitter_effect> ::= G[<effect_direction>] +%<Split_effect> ::= S[<effect_motion>][<effect_dimension>] +%<Wipe_effect> ::= W[<effect_direction>] +%<Replace_effect> ::= R +%<effect_direction> ::= <number> +%<effect_dimension> ::= H | V +%<effect_motion> ::= I | O +%<transition_duration> ::= <number> +%\end{verbatim} +% +% Transition codes: +% \begin{macrocode} + \def\hvtex@trans@effect@Blinds{\def\hvtex@trans@code{B}}% + \def\hvtex@trans@effect@Box{\def\hvtex@trans@code{X}}% + \def\hvtex@trans@effect@Dissolve{\def\hvtex@trans@code{D}}% + \def\hvtex@trans@effect@Glitter{\def\hvtex@trans@code{G}}% + \def\hvtex@trans@effect@Split{\def\hvtex@trans@code{S}}% + \def\hvtex@trans@effect@Wipe{\def\hvtex@trans@code{W}}% + \def\hvtex@trans@effect@R{\def\hvtex@trans@code{R}}% +% \end{macrocode} +% +% Optional parameters: +% \begin{macrocode} + \def\hvtex@par@dimension{/Dm}% + \def\hvtex@par@direction{/Di}% + \def\hvtex@par@duration{/D}% + \def\hvtex@par@motion{/M}% +% \end{macrocode} +% +% Tokenizer: +% \begin{macrocode} + \def\hvtex@gettoken{% + \expandafter\hvtex@gettoken@\hvtex@buffer\@nil + }% +% \end{macrocode} +% +% Notice that tokens in the input buffer must be space delimited. +% \begin{macrocode} + \def\hvtex@gettoken@#1 #2\@nil{% + \edef\hvtex@token{#1}% + \edef\hvtex@buffer{#2}% + }% + \def\hvtex@parse@trans#1{% +% \end{macrocode} +% +% Initializing code: +% \begin{macrocode} + \let\hvtex@trans@code\@empty + \let\hvtex@param@dimension\@empty + \let\hvtex@param@direction\@empty + \let\hvtex@param@duration\@empty + \let\hvtex@param@motion\@empty + \edef\hvtex@buffer{#1\space}% +% \end{macrocode} +% First token is the PDF transition name without escape. +% \begin{macrocode} + \hvtex@gettoken + \ifx\hvtex@token\@empty +% \end{macrocode} +% Leading space(s)? +% \begin{macrocode} + \ifx\hvtex@buffer\@empty +% \end{macrocode} +% The buffer is empty, nothing to do. +% \begin{macrocode} + \else + \hvtex@gettoken + \fi + \fi + \csname hvtex@trans@effect@\hvtex@token\endcsname +% \end{macrocode} +% Now is time to parse optional parameters. +% \begin{macrocode} + \hvtex@trans@params + }% +% \end{macrocode} +% +% Reentrable macro to parse optional parameters. +% \begin{macrocode} + \def\hvtex@trans@params{% + \ifx\hvtex@buffer\@empty + \else + \hvtex@gettoken + \let\hvtex@trans@par\hvtex@token + \ifx\hvtex@buffer\@empty + \else + \hvtex@gettoken + \ifx\hvtex@trans@par\hvtex@par@duration +% \end{macrocode} +% /D is the effect duration in seconds. V\TeX\ special +% takes it in milliseconds. +% \begin{macrocode} + \let\hvtex@param@duration\hvtex@token + \else \ifx\hvtex@trans@par\hvtex@par@motion +% \end{macrocode} +% /M can be either /I or /O +% \begin{macrocode} + \expandafter\edef\expandafter\hvtex@param@motion + \expandafter{\expandafter\@gobble\hvtex@token}% + \else \ifx\hvtex@trans@par\hvtex@par@dimension +% \end{macrocode} +% /Dm can be either /H or /V +% \begin{macrocode} + \expandafter\edef\expandafter\hvtex@param@dimension + \expandafter{\expandafter\@gobble\hvtex@token}% + \else \ifx\hvtex@trans@par\hvtex@par@direction +% \end{macrocode} +% +% Valid values for /Di are 0, 270, 315 (the Glitter effect) or +% 0, 90, 180, 270 (the Wipe effect). +% \begin{macrocode} + \let\hvtex@param@direction\hvtex@token + \fi\fi\fi\fi + \fi + \fi + \ifx\hvtex@buffer\@empty + \let\next\hvtex@produce@trans + \else + \let\next\hvtex@trans@params + \fi + \next + }% +% \end{macrocode} +% +% Merge |<transition_effect>| and issue the special when possible. +% Too lazy to validate optional parameters. +% \begin{macrocode} + \def\hvtex@produce@trans{% + \let\vtex@trans@special\@empty + \if S\hvtex@trans@code + \edef\vtex@trans@special{\hvtex@trans@code + \hvtex@param@dimension\hvtex@param@motion}% + \else\if B\hvtex@trans@code + \edef\vtex@trans@special{% + \hvtex@trans@code\hvtex@param@dimension + }% + \else\if X\hvtex@trans@code + \edef\vtex@trans@special{% + \hvtex@trans@code\hvtex@param@motion + }% + \else\if W\hvtex@trans@code + \edef\vtex@trans@special{% + \hvtex@trans@code\hvtex@param@direction + }% + \else\if D\hvtex@trans@code + \let\vtex@trans@special\hvtex@trans@code + \else\if R\hvtex@trans@code + \let\vtex@trans@special\hvtex@trans@code + \else\if G\hvtex@trans@code + \edef\vtex@trans@special{% + \hvtex@trans@code\hvtex@param@direction + }% + \fi\fi\fi\fi\fi\fi\fi + \ifx\vtex@trans@special\@empty + \else + \ifx\hvtex@param@duration\@empty + \else + \setlength{\dimen@}{\hvtex@param@duration\p@}% +% \end{macrocode} +% I'm not guilty of possible overflow. +% \begin{macrocode} + \multiply\dimen@\@m + \edef\vtex@trans@special{% + \vtex@trans@special,\strip@pt\dimen@ + }% + \fi +% \end{macrocode} +% +% And all the mess is just for this. +% +% \begin{macrocode} + \special{!trans \vtex@trans@special}% + \fi + }% +% \end{macrocode} +% \begin{macrocode} + \def\hyper@pageduration{% + \ifx\@pdfpageduration\relax + \else + \ifx\@pdfpageduration\@empty + \special{!duration-}% + \else + \special{!duration \@pdfpageduration}% + \fi + \fi + }% + \def\hyper@pagehidden{% + \ifHy@useHidKey + \special{!hidden\ifHy@pdfpagehidden +\else -\fi}% + \fi + }% + \g@addto@macro\Hy@EveryPageBoxHook{% + \hyper@pagetransition + \hyper@pageduration + \hyper@pagehidden + }% +\fi +% \end{macrocode} +% +% Caution: In opposite to the other drivers, +% the argument of |\special{!onopen #1}| is +% a reference name. The VTeX's postscript +% mode will work with a version higher than +% 7.0x. +% +% The command \verb|\VTeXOS| is defined since version 7.45. +% Magic values encode the operating system:\\ +% \begin{tabular}{@{}l@{: }l@{}} +% 1 & WinTel\\ +% 2 & Linux\\ +% 3 & OS/2\\ +% 4 & MacOS\\ +% 5 & MacOS/X\\ +% \end{tabular} +% \begin{macrocode} +\ifx\@pdfproducer\relax + \def\@pdfproducer{VTeX}% + \ifnum\Hy@VTeXversion>\z@ + \count@\VTeXversion + \divide\count@ 100 % + \edef\@pdfproducer{\@pdfproducer\space v\the\count@}% + \multiply\count@ -100 % + \advance\count@\VTeXversion + \edef\@pdfproducer{% + \@pdfproducer + .\ifnum\count@<10 0\fi\the\count@ + \ifx\VTeXOS\@undefined\else + \ifnum\VTeXOS>0 % + \ifnum\VTeXOS<6 % + \space(% + \ifcase\VTeXOS + \or Windows\or Linux\or OS/2\or MacOS\or MacOS/X% + \fi + )% + \fi + \fi + \fi + ,\space + \ifnum\OpMode=\@ne PDF\else PS\fi + \space backend% + \ifx\gexmode\@undefined\else + \ifnum\gexmode>\z@\space with GeX\fi + \fi + }% + \fi +\fi +% \end{macrocode} +% +% Current |!pdfinfo| key syntax: +% +% \begin{tabular}{lll} +% \hline +% Key & Field & Type \\ +% \hline +% \texttt{a} & \textbf{A}uthor & String \\ +% \texttt{b} & Crop\textbf{B}ox & String \\ +% \texttt{c} & \textbf{C}reator & String \\ +% \texttt{k} & \textbf{K}eywords & String \\ +% \texttt{l} & Page\textbf{L}ayout & PS \\ +% \texttt{p} & \textbf{P}ageMode & PS \\ +% \texttt{r} & P\textbf{r}oducer & String \\ +% \texttt{s} & \textbf{S}ubject & String \\ +% \texttt{t} & \textbf{T}itle & String \\ +% \texttt{u} & \textbf{U}RI & PS \\ +% \texttt{v} & \textbf{V}iewPreferences & PS \\ +% \hline +% \end{tabular} +% +% Note: PS objects that are dicts are in |<<<..>>>| (yuck; no choice). +% +% \begin{macrocode} +\def\PDF@SetupDoc{% + \ifx\@pdfpagescrop\@empty + \else + \special{!pdfinfo b=<\@pdfpagescrop>}% + \fi + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + \special{!onopen Page\@pdfstartpage}% + \fi + \fi + \special{!pdfinfo p=</\@pdfpagemode>}% + \ifx\@baseurl\@empty + \else + \special{!pdfinfo u=<<</Base (\@baseurl)>>>}% + \fi + \special{!pdfinfo v=<<<% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + >>>}% + \ifx\@pdfpagelayout\@empty + \else + \special{!pdfinfo l=</\@pdfpagelayout\space>}% + \fi +}% +\HyInfo@AddonUnsupportedtrue +\define@key{Hyp}{pdfcreationdate}{% + \Hy@Warning{% + VTeX does not support pdfcreationdate.\MessageBreak + Therefore its setting is ignored% + }% +} +\define@key{Hyp}{pdfmoddate}{% + \Hy@Warning{% + VTeX does not support pdfmoddate.\MessageBreak + Therefore its setting is ignored% + }% +} +\def\PDF@FinishDoc{% + \Hy@UseMaketitleInfos + \HyInfo@TrappedUnsupported + \special{!pdfinfo a=<\@pdfauthor>}% + \special{!pdfinfo t=<\@pdftitle>}% + \special{!pdfinfo s=<\@pdfsubject>}% + \special{!pdfinfo c=<\@pdfcreator>}% + \ifx\@pdfproducer\relax + \else + \special{!pdfinfo r=<\@pdfproducer>}% + \fi + \special{!pdfinfo k=<\@pdfkeywords>}% + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{addtopdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +%</vtex> +% \end{macrocode} +% +% \subsection{Fix for Adobe bug number 466320} +% If a destination occurs at the very begin of a page, +% the destination is moved to the previous page by +% Adobe Distiller 5. +% As workaround Adobe suggests: +%\begin{verbatim} +%/showpage { +% //showpage +% clippath stroke erasepage +%} bind def +%\end{verbatim} +% +% But unfortunately this fix generates an empty page +% at the end of the document. Therefore another fix +% is used by writing some clipped text. +% \begin{macrocode} +%<dviwindo>\def\literalps@out#1{\special{ps:#1}}% +%<package>\providecommand*{\Hy@DistillerDestFix}{} +%<*pdfmark|dviwindo> +\def\Hy@DistillerDestFix{% + \begingroup + \let\x\literalps@out +% \end{macrocode} +% The fix has to be passed unchanged through GeX, if +% VTeX in PostScript mode with GeX is used. +% \begin{macrocode} + \ifnum \@ifundefined{OpMode}{0}{% + \@ifundefined{gexmode}{0}{% + \ifnum\gexmode>0 \OpMode\else 0\fi + }}>1 % + \def\x##1{% + \immediate\special{!=##1}% + }% + \fi + \x{% + /product where{% + pop % + product(Distiller)search{% + pop pop pop % + version(.)search{% + exch pop exch pop% + (3011)eq{% + gsave % + newpath 0 0 moveto closepath clip% + /Courier findfont 10 scalefont setfont % + 72 72 moveto(.)show % + grestore% + }if% + }{pop}ifelse% + }{pop}ifelse% + }if% + }% + \endgroup +} +%</pdfmark|dviwindo> +% \end{macrocode} +% +% \subsection{Direct pdfmark support} +% Drivers that load |pdfmark.def| have to provide the +% correct macro definitions of +% \begin{center} +% \begin{tabular}{@{}ll@{}} +% |\@pdfproducer|& for document information\\ +% |\literalps@out|& PostScript output\\ +% |\headerps@out|& PostScript output that goes in the header area\\ +% \end{tabular} +% \end{center} +% and the correct definitions of the following PostScript procedures: +% \begin{center} +% \begin{tabular}{@{}ll@{}} +% |H.S|& start of anchor, link or rect\\ +% |#1 H.A|& end of anchor, argument=baselineskip in pt\\ +% |#1 H.L|& end of link, argument=baselineskip in pt\\ +% |H.R|& end of rect\\ +% |H.B|& raw rect code\\ +% \end{tabular} +% \end{center} +% +% \begin{macrocode} +%<*pdfmark> +\Hy@breaklinks@unsupported +\def\HyPat@ObjRef{% + \{[^{}]+\}% +} +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \pdfmark[\anchor@spot]{% + pdfmark=/DEST,% + linktype=anchor,% + View=/\@pdfview \@pdfviewparams,% + DestAnchor={#1}% + }% + \endgroup + \Hy@RestoreLastskip +} +\ltx@IfUndefined{hyper@anchorstart}{}{\endinput} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \literalps@out{H.S}% + \Hy@AllowHyphens + \xdef\hyper@currentanchor{#1}% + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.A}% + \pdfmark{% + pdfmark=/DEST,% + linktype=anchor,% + View=/\@pdfview \@pdfviewparams,% + DestAnchor=\hyper@currentanchor,% + }% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \ifHy@breaklinks + \else + \leavevmode + \ifmmode + \def\Hy@LinkMath{$}% + \else + \let\Hy@LinkMath\ltx@empty + \fi + \Hy@SaveSpaceFactor + \hbox\bgroup + \Hy@RestoreSpaceFactor + \Hy@LinkMath + \fi + \expandafter\Hy@colorlink\csname @#1color\endcsname + \literalps@out{H.S}% + \Hy@AllowHyphens + \xdef\hyper@currentanchor{#2}% + \gdef\hyper@currentlinktype{#1}% +} +\def\hyper@linkend{% + \literalps@out{\strip@pt@and@otherjunk\baselineskip\space H.L}% + \ltx@IfUndefined{@\hyper@currentlinktype bordercolor}{% + \let\Hy@tempcolor\relax + }{% + \edef\Hy@tempcolor{% + \csname @\hyper@currentlinktype bordercolor\endcsname + }% + }% + \pdfmark{% + pdfmark=/ANN,% + linktype=link,% + Subtype=/Link,% + PDFAFlags=4,% + Dest=\hyper@currentanchor,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=\Hy@tempcolor,% + Raw=H.B% + }% + \Hy@endcolorlink + \ifHy@breaklinks + \else + \Hy@LinkMath + \Hy@SaveSpaceFactor + \egroup + \Hy@RestoreSpaceFactor + \fi +} +% \end{macrocode} +% +% We have to allow for |\baselineskip| having an optional +% stretch and shrink (you meet this in slide packages, for instance), +% so we need to strip off the junk. David Carlisle, of course, +% wrote this bit of code. +% \begin{macrocode} +\begingroup + \catcode`P=12 % + \catcode`T=12 % + \lowercase{\endgroup + \gdef\rem@ptetc#1.#2PT#3!{#1\ifnum#2>\z@.#2\fi}% +} +\def\strip@pt@and@otherjunk#1{\expandafter\rem@ptetc\the#1!} +% \end{macrocode} +% +% \begin{macro}{\hyper@pagetransition} +% \begin{macrocode} +\def\hyper@pagetransition{% + \ifx\@pdfpagetransition\relax + \else + \ifx\@pdfpagetransition\@empty + % 1. Does an old entry have to be deleted? + % 2. If 1=yes, how to delete? + \else + \pdfmark{% + pdfmark=/PUT,% + Raw={% + \string{ThisPage\string}% + <</Trans << /S /\@pdfpagetransition\space >> >>% + }% + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hyper@pageduration} +% \begin{macrocode} +\def\hyper@pageduration{% + \ifx\@pdfpageduration\relax + \else + \ifx\@pdfpageduration\@empty + % 1. Does an old entry have to be deleted? + % 2. If 1=yes, how to delete? + \else + \pdfmark{% + pdfmark=/PUT,% + Raw={% + \string{ThisPage\string}% + <</Dur \@pdfpageduration>>% + }% + }% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\hyper@pagehidden} +% \begin{macrocode} +\def\hyper@pagehidden{% + \ifHy@useHidKey + \pdfmark{% + pdfmark=/PUT,% + Raw={% + \string{ThisPage\string}% + <</Hid \ifHy@pdfpagehidden true\else false\fi>>% + }% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\g@addto@macro\Hy@EveryPageBoxHook{% + \hyper@pagetransition + \hyper@pageduration + \hyper@pagehidden +} +% \end{macrocode} +% \begin{macrocode} +\def\hyper@image#1#2{% + \hyper@linkurl{#2}{#1}% +} +\def\Hy@undefinedname{UNDEFINED} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \ltx@IfUndefined{@#1bordercolor}{% + \let\Hy@tempcolor\relax + }{% + \edef\Hy@tempcolor{\csname @#1bordercolor\endcsname}% + }% + \begingroup + \protected@edef\Hy@testname{#2}% + \ifx\Hy@testname\@empty + \Hy@Warning{% + Empty destination name,\MessageBreak + using `\Hy@undefinedname'% + }% + \let\Hy@testname\Hy@undefinedname + \fi + \pdfmark[{#3}]{% + Color=\Hy@tempcolor,% + linktype={#1},% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + pdfmark=/ANN,% + Subtype=/Link,% + PDFAFlags=4,% + Dest=\Hy@testname + }% + \endgroup +} +\newtoks\pdf@docset +\def\PDF@FinishDoc{% + \Hy@UseMaketitleInfos + \HyInfo@GenerateAddons + \let\Hy@temp\@empty + \ifx\@pdfcreationdate\@empty + \else + \def\Hy@temp{CreationDate=\@pdfcreationdate,}% + \fi + \ifx\@pdfmoddate\@empty + \else + \expandafter\def\expandafter\Hy@temp\expandafter{% + \Hy@temp + ModDate=\@pdfmoddate,% + }% + \fi + \ifx\@pdfproducer\relax + \else + \expandafter\def\expandafter\Hy@temp\expandafter{% + \Hy@temp + Producer=\@pdfproducer,% + }% + \fi + \expandafter + \pdfmark\expandafter{% + \Hy@temp + pdfmark=/DOCINFO,% + Title=\@pdftitle,% + Subject=\@pdfsubject,% + Creator=\@pdfcreator,% + Author=\@pdfauthor,% + Keywords=\@pdfkeywords,% + Trapped=\@pdftrapped + }% + \ifx\HyInfo@Addons\@empty + \else + \pdfmark{% + pdfmark=/DOCINFO,% + Raw={\HyInfo@Addons}% + }% + \fi + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{addtopdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +\def\PDF@SetupDoc{% + \def\Hy@temp{}% + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + \edef\Hy@temp{% + ,Page=\@pdfstartpage + ,View=\@pdfstartview + }% + \fi + \fi + \edef\Hy@temp{% + \noexpand\pdfmark{% + pdfmark=/DOCVIEW,% + PageMode=/\@pdfpagemode + \Hy@temp + }% + }% + \Hy@temp + \ifx\@pdfpagescrop\@empty + \else + \pdfmark{pdfmark=/PAGES,CropBox=\@pdfpagescrop}% + \fi + \edef\Hy@temp{% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + }% + \Hy@pstringdef\Hy@pstringB{\@baseurl}% + \pdfmark{% + pdfmark=/PUT,% + Raw={% + \string{Catalog\string}<<% + \ifx\Hy@temp\@empty + \else + /ViewerPreferences<<\Hy@temp>>% + \fi + \Hy@UseNameKey{PageLayout}\@pdfpagelayout + \ifx\@pdflang\relax + \else + /Lang(\@pdflang)% + \fi + \ifx\@baseurl\@empty + \else + /URI<</Base(\Hy@pstringB)>>% + \fi + >>% + }% + }% +} +%</pdfmark> +%<*pdfmarkbase> +% \end{macrocode} +% We define a single macro, pdfmark, which uses the `keyval' system +% to define the various allowable keys; these are \emph{exactly} +% as listed in the pdfmark reference for Acrobat 3.0. The only addition +% is \texttt{pdfmark} which specifies the type of pdfmark to create +% (like ANN, LINK etc). The +% surrounding round and square brackets in the pdfmark commands +% are supplied, but you have to put in / characters as needed for the +% values. +% +% \begin{macrocode} +\newif\ifHy@pdfmarkerror +\def\pdfmark{\@ifnextchar[{\pdfmark@}{\pdfmark@[]}} +\def\pdfmark@[#1]#2{% + \Hy@pdfmarkerrorfalse + \edef\@processme{\noexpand\pdf@toks={\the\pdf@defaulttoks}}% + \@processme + \let\pdf@type\relax + \let\pdf@objdef\ltx@empty + \kvsetkeys{PDF}{#2}% + \ifHy@pdfmarkerror + \else + \ifx\pdf@type\relax + \Hy@WarningNoLine{no pdfmark type specified in #2!!}% + \ifx\\#1\\% + \else + \pdf@rect{#1}% + \fi + \else + \ifx\\#1\\% + \literalps@out{% + [% + \ifx\pdf@objdef\ltx@empty + \else + /_objdef\string{\pdf@objdef\string}% + \fi + \the\pdf@toks\space\pdf@type\space pdfmark% + }% + \else + \ltx@IfUndefined{@\pdf@linktype color}{% + \Hy@colorlink\@linkcolor + }{% + \expandafter\Hy@colorlink + \csname @\pdf@linktype color\endcsname + }% + \pdf@rect{#1}% + \literalps@out{% + [% + \ifx\pdf@objdef\ltx@empty + \else + /_objdef\string{\pdf@objdef\string}% + \fi + \the\pdf@toks\space\pdf@type\space pdfmark% + }% + \Hy@endcolorlink + \fi + \fi + \fi +} +% \end{macrocode} +% The complicated bit is working out the right enclosing rectangle of +% some piece of \TeX\ text, needed by the /Rect key. This solution originates +% with Toby Thain (\texttt{tobyt@netspace.net.au}). +% +% For the case breaklinks is enabled, I have added two hooks, +% the first one for package setouterhbox, it provides +% a hopefully better method without setting the text twice. +% \begin{quote} +% \verb|\usepackage[hyperref]{setouterhbox}| +% \end{quote} +% With the second hook, also you can set the text twice, e.g.: +% \begin{quote} +% \verb|\long\def\Hy@setouterhbox#1#2{\long\def\my@temp{#2}}|\\ +% \verb|\def\Hy@breaklinksunhbox#1{\my@temp}| +% \end{quote} +% \begin{macrocode} +\newsavebox{\pdf@box} +\providecommand*{\Hy@setouterhbox}{\sbox} +\providecommand*{\Hy@breaklinksunhbox}{\unhbox} +\def\Hy@DEST{/DEST} +\def\pdf@rect#1{% + \begingroup + \chardef\x=1 % + \def\Hy@temp{#1}% + \ifx\Hy@temp\ltx@empty + \chardef\x=0 % + \else + \def\y{\anchor@spot}% + \ifx\Hy@temp\y + \def\y{\relax}% + \ifx\anchor@spot\y + \chardef\x=0 % + \fi + \fi + \fi + \expandafter\endgroup + \ifcase\x + \literalps@out{H.S}% + \literalps@out{H.R}% + \else + \leavevmode + \Hy@SaveSpaceFactor + \ifmmode + \def\Hy@LinkMath{$}% + \else + \let\Hy@LinkMath\ltx@empty + \fi + \ifHy@breaklinks + \Hy@setouterhbox\pdf@box{% + \Hy@RestoreSpaceFactor + \Hy@LinkMath + \Hy@AllowHyphens#1\Hy@xspace@end + \Hy@LinkMath + \Hy@SaveSpaceFactor + }% + \else + \sbox\pdf@box{% + \Hy@RestoreSpaceFactor + \Hy@LinkMath + #1\Hy@xspace@end + \Hy@LinkMath + \Hy@SaveSpaceFactor + }% + \fi + \dimen@\ht\pdf@box + \ifdim\dp\pdf@box=\z@ + \literalps@out{H.S}% + \else + \lower\dp\pdf@box\hbox{\literalps@out{H.S}}% + \fi +% \end{macrocode} +% If the text has to be horizontal mode stuff then just unbox +% the saved box like this, which saves executing it twice, which can +% mess up counters etc (thanks DPC\ldots). +% \begin{macrocode} + \ifHy@breaklinks + \ifhmode + \Hy@breaklinksunhbox\pdf@box + \else + \box\pdf@box + \fi + \else + \expandafter\box\pdf@box + \fi +% \end{macrocode} +% but if it can have multiple paragraphs you'd need one of these, +% but in that case the measured box size would be wrong anyway. +% \begin{quote} +% |\ifHy@breaklinks#1\else\box\pdf@box\fi|\\ +% |\ifHy@breaklinks{#1}\else\box\pdf@box\fi| +% \end{quote} +% \begin{macrocode} + \ifdim\dimen@=\z@ + \literalps@out{H.R}% + \else + \raise\dimen@\hbox{\literalps@out{H.R}}% + \fi + \Hy@RestoreSpaceFactor + \fi + \ifx\pdf@type\Hy@DEST + \else + \pdf@addtoksx{H.B}% + \fi +} +% \end{macrocode} +% All the supplied material is stored in a token list; since I do not +% feel sure I quite understand these, things may not work as expected +% with expansion. We'll have to experiment. +% \begin{macrocode} +\newtoks\pdf@toks +\newtoks\pdf@defaulttoks +\pdf@defaulttoks={}% +\def\pdf@addtoks#1#2{% + \edef\@processme{\pdf@toks{\the\pdf@toks/#2 #1}}% + \@processme +} +\def\pdf@addtoksx#1{% + \edef\@processme{\pdf@toks{\the\pdf@toks\space #1}}% + \@processme +} +\def\PDFdefaults#1{% + \pdf@defaulttoks={#1}% +} +% \end{macrocode} +% This is the list of allowed keys. See the Acrobat manual for an +% explanation. +% \begin{macrocode} +% what is the type of pdfmark? +\define@key{PDF}{pdfmark}{\def\pdf@type{#1}} +% what is the link type? +\define@key{PDF}{linktype}{\def\pdf@linktype{#1}} +\def\pdf@linktype{link} +% named object? +\define@key{PDF}{objdef}{\edef\pdf@objdef{#1}} +\let\pdf@objdef\ltx@empty +% parameter is a stream of PDF +\define@key{PDF}{Raw}{\pdf@addtoksx{#1}} +% parameter is a name +\define@key{PDF}{Action}{\pdf@addtoks{#1}{Action}} +% parameter is a array +\define@key{PDF}{Border}{% + \edef\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \else + \pdf@addtoks{[#1]\Hy@BorderArrayPatch}{Border}% hash-ok + \fi +} +\let\Hy@BorderArrayPatch\@empty +% parameter is a dictionary +\define@key{PDF}{BorderStyle}{% + \edef\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \else + \pdf@addtoks{<<#1>>}{BS}% + \fi +} +% parameter is a array +\define@key{PDF}{Color}{% + \ifx\relax#1\relax + \else + \pdf@addtoks{[#1]}{Color}% hash-ok + \fi +} +% parameter is a string +\define@key{PDF}{Contents}{\pdf@addtoks{(#1)}{Contents}} +% parameter is a integer +\define@key{PDF}{Count}{\pdf@addtoks{#1}{Count}} +% parameter is a array +\define@key{PDF}{CropBox}{\pdf@addtoks{[#1]}{CropBox}}% hash-ok +% parameter is a string +\define@key{PDF}{DOSFile}{\pdf@addtoks{(#1)}{DOSFile}} +% parameter is a string or file +\define@key{PDF}{DataSource}{\pdf@addtoks{(#1)}{DataSource}} +% parameter is a destination +\define@key{PDF}{Dest}{% + \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}% + \ifx\Hy@pstringDest\@empty + \Hy@pdfmarkerrortrue + \Hy@Warning{Destination with empty name ignored}% + \else + \pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}% + \fi +} +\define@key{PDF}{DestAnchor}{% + \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}% + \ifx\Hy@pstringDest\@empty + \Hy@pdfmarkerrortrue + \Hy@Warning{Destination with empty name ignored}% + \else + \pdf@addtoks{(\Hy@pstringDest) cvn}{Dest}% + \fi +} +% parameter is a string +\define@key{PDF}{Dir}{\pdf@addtoks{(#1)}{Dir}} +% parameter is a string +\define@key{PDF}{File}{\pdf@addtoks{(#1)}{File}} +% parameter is a int +\define@key{PDF}{Flags}{\pdf@addtoks{#1}{Flags}} +\define@key{PDF}{PDFAFlags}{% + \ifHy@pdfa + \pdf@addtoks{#1}{F}% + \fi +} +% parameter is a name +\define@key{PDF}{AcroHighlight}{% + \begingroup + \edef\x{#1}% + \expandafter\endgroup\ifx\x\@empty + \else + \pdf@addtoks{#1}{H}% + \fi +} +% parameter is a string +\define@key{PDF}{ID}{\pdf@addtoks{[#1]}{ID}}% hash-ok +% parameter is a string +\define@key{PDF}{MacFile}{\pdf@addtoks{(#1)}{MacFile}} +% parameter is a string +\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}} +% parameter is a string +\define@key{PDF}{Op}{\pdf@addtoks{(#1)}{Op}} +% parameter is a Boolean +\define@key{PDF}{Open}{\pdf@addtoks{#1}{Open}} +% parameter is a integer or name +\define@key{PDF}{Page}{\pdf@addtoks{#1}{Page}} +% parameter is a name +\define@key{PDF}{PageMode}{\pdf@addtoks{#1}{PageMode}} +% parameter is a string +\define@key{PDF}{Params}{\pdf@addtoks{(#1)}{Params}} +% parameter is a array +\define@key{PDF}{Rect}{\pdf@addtoks{[#1]}{Rect}}% hash-ok +% parameter is a integer +\define@key{PDF}{SrcPg}{\pdf@addtoks{#1}{SrcPg}} +% parameter is a name +\define@key{PDF}{Subtype}{\pdf@addtoks{#1}{Subtype}} +% parameter is a string +\define@key{PDF}{Title}{\pdf@addtoks{(#1)}{Title}} +% parameter is a string +\define@key{PDF}{Unix}{\pdf@addtoks{(#1)}{Unix}} +% parameter is a string +\define@key{PDF}{UnixFile}{\pdf@addtoks{(#1)}{UnixFile}} +% parameter is an array +\define@key{PDF}{View}{\pdf@addtoks{[#1]}{View}}% hash-ok +% parameter is a string +\define@key{PDF}{WinFile}{\pdf@addtoks{(#1)}{WinFile}} +% \end{macrocode} +% These are the keys used in the DOCINFO section. +% \begin{macrocode} +\define@key{PDF}{Author}{\pdf@addtoks{(#1)}{Author}} +\define@key{PDF}{Creator}{\pdf@addtoks{(#1)}{Creator}} +\define@key{PDF}{CreationDate}{\pdf@addtoks{(#1)}{CreationDate}} +\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}} +\define@key{PDF}{Producer}{\pdf@addtoks{(#1)}{Producer}} +\define@key{PDF}{Subject}{\pdf@addtoks{(#1)}{Subject}} +\define@key{PDF}{Keywords}{\pdf@addtoks{(#1)}{Keywords}} +\define@key{PDF}{ModDate}{\pdf@addtoks{(#1)}{ModDate}} +\define@key{PDF}{Base}{\pdf@addtoks{(#1)}{Base}} +\define@key{PDF}{URI}{\pdf@addtoks{#1}{URI}} +\define@key{PDF}{Trapped}{% + \edef\Hy@temp{#1}% + \ifx\Hy@temp\@empty + \else + \pdf@addtoks{/#1}{Trapped}% + \fi +} + +%</pdfmarkbase> +%<*pdfmark> +\def\Acrobatmenu#1#2{% + \EdefEscapeName\Hy@temp@menu{#1}% + \Hy@Acrobatmenu{#1}{#2}{% + \pdfmark[{#2}]{% + linktype=menu,% + pdfmark=/ANN,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=\@menubordercolor,% + Action={<</Subtype/Named/N/\Hy@temp@menu>>},% + Subtype=/Link,% + PDFAFlags=4% + }% + }% +} +% \end{macrocode} +% And now for some useful examples: +% \begin{macrocode} +\def\PDFNextPage{\@ifnextchar[{\PDFNextPage@}{\PDFNextPage@[]}} +\def\PDFNextPage@[#1]#2{% + \pdfmark[{#2}]{% + #1,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=.2 .1 .5,% + pdfmark=/ANN,% + Subtype=/Link,% + PDFAFlags=4,% + Page=/Next% + }% +} +\def\PDFPreviousPage{% + \@ifnextchar[{\PDFPreviousPage@}{\PDFPreviousPage@[]}% +} +\def\PDFPreviousPage@[#1]#2{% + \pdfmark[{#2}]{% + #1,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=.4 .4 .1,% + pdfmark=/ANN,% + Subtype=/Link,% + PDFAFlags=4,% + Page=/Prev% + }% +} +\def\PDFOpen#1{% + \pdfmark{#1,pdfmark=/DOCVIEW}% +} +% \end{macrocode} +% This will only work if you use Distiller 2.1 or higher. +% \begin{macrocode} +\def\hyper@linkurl#1#2{% + \begingroup + \Hy@pstringdef\Hy@pstringURI{#2}% + \hyper@chars + \leavevmode + \pdfmark[{#1}]{% + pdfmark=/ANN,% + linktype=url,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=\@urlbordercolor,% + Action={<<% + /Subtype/URI% + /URI(\Hy@pstringURI)% + \ifHy@href@ismap + /IsMap true% + \fi + >>},% + Subtype=/Link,% + PDFAFlags=4% + }% + \endgroup +} +\def\hyper@linkfile#1#2#3{% + \begingroup + \def\Hy@pstringF{#2}% + \Hy@CleanupFile\Hy@pstringF + \Hy@pstringdef\Hy@pstringF\Hy@pstringF + \Hy@pstringdef\Hy@pstringD{#3}% + \Hy@MakeRemoteAction + \leavevmode + \pdfmark[{#1}]{% + pdfmark=/ANN,% + Subtype=/Link,% + PDFAFlags=4,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + linktype=file,% + Color=\@filebordercolor,% + Action={% + <<% + /S/GoToR% + \Hy@SetNewWindow + /F(\Hy@pstringF)% + /D% + \ifx\\#3\\% + [\Hy@href@page\@pdfremotestartview]% + \else + (\Hy@pstringD)cvn% + \fi + \Hy@href@nextactionraw + >>% + }% + }% + \endgroup +} +\def\@hyper@launch run:#1\\#2#3{% + \begingroup + \Hy@pstringdef\Hy@pstringF{#1}% + \Hy@pstringdef\Hy@pstringP{#3}% + \leavevmode + \pdfmark[{#2}]{% + pdfmark=/ANN,% + Subtype=/Link,% + PDFAFlags=4,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + linktype=run,% + Color=\@runbordercolor,% + Action={% + <<% + /S/Launch% + \Hy@SetNewWindow + /F(\Hy@pstringF)% + \ifx\\#3\\% + \else + /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>% + \fi + \Hy@href@nextactionraw + >>% + }% + }% + \endgroup +} +%</pdfmark> +% \end{macrocode} +% Unfortunately, some parts of the |pdfmark| +% PostScript code depend on vagaries +% of the dvi driver. We isolate here all the problems. +% +% \subsection{Rokicki's dvips} +% dvips thinks in 10ths of a big point, its +% coordinate space is resolution dependent, +% and its $y$ axis starts at the top of the +% page. Other drivers can and will be different! +% +% The work is done in |SDict|, because we add in some header +% definitions in a moment. +% \begin{macrocode} +%<*dvips> +\providecommand*{\XR@ext}{pdf} +\let\Hy@raisedlink\ltx@empty +\def\literalps@out#1{\special{ps:SDict begin #1 end}}% +\def\headerps@out#1{\special{! #1}}% +\input{pdfmark.def}% +\ifx\@pdfproducer\relax + \def\@pdfproducer{dvips + Distiller}% +\fi +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\providecommand*\@pdfview{XYZ} +\providecommand*\@pdfviewparams{ H.V} +\def\Hy@BorderArrayPatch{BorderArrayPatch} +% \end{macrocode} +% +% \begin{macrocode} +\g@addto@macro\Hy@FirstPageHook{% + \headerps@out{% +% \end{macrocode} +% Unless I am going mad, this \emph{appears} to be the relationship +% between the default coordinate system (PDF), and dvips; +% \begin{verbatim} +% /DvipsToPDF { .01383701 div Resolution div } def +% /PDFToDvips { .01383701 mul Resolution mul } def +% \end{verbatim} +% the latter's coordinates are resolution dependent, but what that +% .01383701 is, who knows? well, almost everyone except me, I expect\ldots +% And yes, Maarten Gelderman \texttt{<mgelderman@econ.vu.nl>} +% points out that its 1/72.27 (the number of points to an inch, big points +% to inch is 1/72). This also suggests that the code would be more +% understandable (and exact) if 0.013 div would be replaced by 72.27 mul, +% so here we go. If this isn't right, I'll revert it. +% \begin{macrocode} + /DvipsToPDF{72.27 mul Resolution div} def% + /PDFToDvips{72.27 div Resolution mul} def% + /BPToDvips{72 div Resolution mul}def% +% \end{macrocode} +% The values inside the /Boder array are not taken literally, but +% interpreted by ghostscript using the resolution of the dvi driver. +% I don't know how other distiller programs behaves in this manner. +% \begin{macrocode} + /BorderArrayPatch{% + [exch{% + dup dup type/integertype eq exch type/realtype eq or% + {BPToDvips}if% + }forall]% + }def% +% \end{macrocode} +% The rectangle around the links starts off +% \emph{exactly} the size of the box; +% we will to make it slightly bigger, 1 point on all sides. +% \begin{macrocode} + /HyperBorder {1 PDFToDvips} def% + /H.V {pdf@hoff pdf@voff null} def% + /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def% +% \end{macrocode} +% |H.S| (start of anchor, link, or rect) stores +% the $x$ and $y$ coordinates of the current point, in PDF coordinates +% \begin{macrocode} + /H.S {% + currentpoint % + HyperBorder add /pdf@lly exch def % + dup DvipsToPDF 72 add /pdf@hoff exch def % + HyperBorder sub /pdf@llx exch def% + } def% +% \end{macrocode} +% +% The calculation of upper left $y$ is done without +% raising the point in \TeX, +% by simply adding on the current |\baselineskip| to the current $y$. +% This is usually too much, so we remove a notional 2 points. +% +% We have to see what the current baselineskip is, and convert it +% to the dvips coordinate system. +% +% Argument: baselineskip in pt. +% The $x$ and $y$ coordinates of the current point, minus the baselineskip +% \begin{macrocode} + /H.L {% + 2 sub dup% + /HyperBasePt exch def % + PDFToDvips /HyperBaseDvips exch def % + currentpoint % + HyperBaseDvips sub /pdf@ury exch def% + /pdf@urx exch def% + } def% + /H.A {% + H.L % +% |/pdf@voff| = the distance from the top of the page to a point +% |\baselineskip| above the current point in PDF coordinates + currentpoint exch pop % + vsize 72 sub exch DvipsToPDF % + HyperBasePt sub % baseline skip + sub /pdf@voff exch def% + } def% + /H.R {% + currentpoint % + HyperBorder sub /pdf@ury exch def % + HyperBorder add /pdf@urx exch def % +% |/pdf@voff| = the distance from the top of the page to the current point, in +% PDF coordinates + currentpoint exch pop vsize 72 sub % + exch DvipsToPDF sub /pdf@voff exch def% + } def% + }% +} +\AtBeginShipoutFirst{% + \ifHy@setpagesize + \begingroup + \@ifundefined{stockwidth}{% + \ifdim\paperwidth>\z@ + \ifdim\paperheight>\z@ + \special{papersize=\the\paperwidth,\the\paperheight}% + \fi + \fi + }{% + \ifdim\stockwidth>\z@ + \ifdim\stockheight>\z@ + \special{papersize=\the\stockwidth,\the\stockheight}% + \fi + \fi + }% + \endgroup + \fi + \Hy@DisableOption{setpagesize}% +} +% \end{macrocode} +% \begin{macrocode} +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \literalps@out{% + /HyperBorder{\strip@pt\dimen@\space PDFToDvips}def% + }% + \endgroup +} +% \end{macrocode} +% \begin{macrocode} +%</dvips> +% \end{macrocode} +% +% \subsection{VTeX's vtexpdfmark driver} +% +% This part is derived from the dvips +% (many names reflect this). +% +% The origin seems to be the same as TeX's origin, +% 1 in from the left and 1 in downwards from the top. +% The direction of the $y$ axis is downwards, +% the opposite of the dvips case. Units seems +% to be pt or bp. +% +% \begin{macrocode} +%<*vtexpdfmark> +\providecommand*{\XR@ext}{pdf} +\let\Hy@raisedlink\ltx@empty +\def\literalps@out#1{\special{pS:#1}}% +\def\headerps@out#1{\immediate\special{pS:#1}}% +\input{pdfmark.def}% +\ifx\@pdfproducer\relax + \ifnum\OpMode=\@ne + \def\@pdfproducer{VTeX}% + \else + \def\@pdfproducer{VTeX + Distiller}% + \fi +\fi +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\providecommand*\@pdfview{XYZ} +\providecommand*\@pdfviewparams{ H.V} +% \end{macrocode} +% +% \begin{macrocode} +\g@addto@macro\Hy@FirstPageHook{% + \headerps@out{% + /vsize {\Hy@pageheight} def% +% \end{macrocode} +% The rectangle around the links starts off +% \emph{exactly} the size of the box; +% we will to make it slightly bigger, 1 point on all sides. +% \begin{macrocode} + /HyperBorder {1} def% + /H.V {pdf@hoff pdf@voff null} def% + /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def% +% \end{macrocode} +% +% |H.S| (start of anchor, link, or rect) stores +% the $x$ and $y$ coordinates of the current point, in PDF coordinates: +% $\mathtt{pdf@lly} = Y_c - \mathtt{HyperBorder}$, +% $\mathtt{pdf@hoff} = X_c + 72$, +% $\mathtt{pdf@llx} = X_c - \mathtt{HyperBorder}$ +% \begin{macrocode} + /H.S {% + currentpoint % + HyperBorder sub% + /pdf@lly exch def % + dup 72 add /pdf@hoff exch def % + HyperBorder sub% + /pdf@llx exch def% + } def% +% \end{macrocode} +% The $x$ and $y$ coordinates of the current point, minus the +% |\baselineskip|: +% $\mathtt{pdf@ury} = Y_c + \mathtt{HyperBasePt} + \mathtt{HyperBorder}$, +% $\mathtt{pdf@urx} = X_c + \mathtt{HyperBorder}$ +% \begin{macrocode} + /H.L {% + 2 sub% + /HyperBasePt exch def % + currentpoint % + HyperBasePt add HyperBorder add% + /pdf@ury exch def % + HyperBorder add% + /pdf@urx exch def% + } def% + /H.A {% + H.L % + currentpoint exch pop % + vsize 72 sub exch % + HyperBasePt add add% + /pdf@voff exch def% + } def% +% \end{macrocode} +% $\mathtt{pdf@ury} = Y_c + \mathtt{HyperBorder}$, +% $\mathtt{pdf@urx} = X_c + \mathtt{HyperBorder}$ +% \begin{macrocode} + /H.R {% + currentpoint % + HyperBorder add% + /pdf@ury exch def % + HyperBorder add% + /pdf@urx exch def % + currentpoint exch pop vsize 72 sub add% + /pdf@voff exch def% + } def% + }% +} +% \end{macrocode} +% \begin{macrocode} +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \literalps@out{% + /HyperBorder{\strip@pt\dimen@}def% + }% + \endgroup +} +% \end{macrocode} +% \begin{macrocode} +%</vtexpdfmark> +% \end{macrocode} +% +% \subsection{Textures} +% +% \begin{macrocode} +%<*textures> +\providecommand*{\XR@ext}{pdf} +% \end{macrocode} +% +% At the suggestion of Jacques Distler (distler@golem.ph.utexas.edu), try +% to derive a suitable driver for Textures. This was initially a copy of +% dvips, with some guesses about Textures behaviour. +% Ross Moore (\Email{ross@maths.mq.edu.au}) has added modifications +% for better compatibility, and to support use of pdfmark. +% +% Start by defining a macro that expands to the end-of-line character. +% This will be used to format the appearance of PostScript code, +% to enhance readability, and avoid excessively long lines which +% might otherwise become broken to bad places. +% +% \begin{macro}{\Hy@ps@CR} +% The macro \verb|\Hy@ps@CR| contains the end-of-line character. +% \begin{macrocode} +\begingroup + \obeylines % + \gdef\Hy@ps@CR{\noexpand + }% +\endgroup % +% \end{macrocode} +% \end{macro} +% +% Textures has two types of \verb|\special| command for inserting +% PostScript code directly into the dvi output. The `postscript' +% way preserves TeX's idea of where on the page the \verb|\special| +% occurred, but it wraps the contents with a \verb|save|--\verb|restore| +% pair, and adjusts the user-space coordinate system for local drawing +% commands. The `rawpostscript' way simply inserts code, without regard +% for the location on the page. +% +% Thus, to put arbitrary PostScript coding at a fixed location requires +% using \emph{both} \verb|\special| constructions. +% It works by pushing the device-space coordinates onto the operand stack, +% where they can be used to transform back to the correct user-space +% coordinates for the whole page, within a `rawpostscript' \verb|\special|. +% +% \begin{macrocode} +\def\literalps@out#1{% + \special{postscript 0 0 transform}% + \special{rawpostscript itransform moveto\Hy@ps@CR #1}% +}% +% +% \end{macrocode} +% +% The `prepostscript' is a 3rd kind of \verb|\special|, used for +% inserting definitions into the dictionaries, before page-building +% begins. These are to be available for use on all pages. +% +% \begin{macrocode} +\def\headerps@out#1{% + \special{% + prepostscript TeXdict begin\Hy@ps@CR + #1\Hy@ps@CR + end% + }% +}% +% +% \end{macrocode} +% +% To correctly support the \verb|pdfmark| method, for embedding +% PDF definitions with \verb|.ps| files in a non-intrusive way, +% an appropriate definition needs to be made \emph{before} +% the file \verb|pdfmark.def| is read. Other parameters are best +% set afterwards. +% +% \begin{macrocode} +\g@addto@macro\Hy@FirstPageHook{% + \headerps@out{% + /betterpdfmark {% + systemdict begin % + dup /BP eq% + {cleartomark gsave nulldevice [}% + {dup /EP eq% + {cleartomark cleartomark grestore}% + {cleartomark}% + ifelse% + }ifelse % + end% + }def\Hy@ps@CR + __pdfmark__ not{/pdfmark /betterpdfmark load def}if% + }% end of \headerps@out +}% end of \AtBeginShipoutFirst +% +\input{pdfmark.def}% +% +\ifx\@pdfproducer\relax + \def\@pdfproducer{Textures + Distiller}% +\fi +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\providecommand*\@pdfview{XYZ} +\providecommand*\@pdfviewparams{ H.V} +% +% \end{macrocode} +% These are called at the start and end of unboxed links; +% their job is to leave available PS variables called +% |pdf@llx pdf@lly pdf@urx pdf@ury|, which are the coordinates +% of the bounding rectangle of the link, and |pdf@hoff pdf@voff| +% which are the PDF page offsets. +% The Rect pair are called at the LL and UR corners of a box +% known to \TeX. +% \begin{macrocode} +\Hy@AtBeginDocument{% + \headerps@out{% +% \end{macrocode} +% Textures lives in normal points, I think. So conversion from one +% coordinate system to another involves doing nothing. +% +% \begin{macrocode} + /vsize {\Hy@pageheight} def% + /DvipsToPDF {} def% + /PDFToDvips {} def% + /BPToDvips {} def% + /HyperBorder { 1 PDFToDvips } def\Hy@ps@CR + /H.V {pdf@hoff pdf@voff null} def\Hy@ps@CR + /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def\Hy@ps@CR + /H.S {% + currentpoint % + HyperBorder add /pdf@lly exch def % + dup DvipsToPDF 72 add /pdf@hoff exch def % + HyperBorder sub /pdf@llx exch def% + } def\Hy@ps@CR + /H.L {% + 2 sub % + PDFToDvips /HyperBase exch def % + currentpoint % + HyperBase sub /pdf@ury exch def% + /pdf@urx exch def% + } def\Hy@ps@CR + /H.A {% + H.L % + currentpoint exch pop % + vsize 72 sub exch DvipsToPDF % + HyperBase sub % baseline skip + sub /pdf@voff exch def% + } def\Hy@ps@CR + /H.R {% + currentpoint % + HyperBorder sub /pdf@ury exch def % + HyperBorder add /pdf@urx exch def % + currentpoint exch pop vsize 72 sub % + exch DvipsToPDF sub /pdf@voff exch def% + } def\Hy@ps@CR + }% +} +% \end{macrocode} +% \begin{macrocode} +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \literalps@out{% + /HyperBorder{\strip@pt\dimen@\space PDFToDvips}def% + }% + \endgroup +} +% \end{macrocode} +% \begin{macrocode} +\Hy@AtBeginDocument{% + \ifHy@colorlinks + \headerps@out{/PDFBorder{/Border [0 0 0]}def}% + \fi +} +% \end{macrocode} +% Textures provides built-in support for HyperTeX specials +% so this part combines code from \verb|hypertex.def| with what +% is established by loading \verb|pdfmark.def|, or any other driver. +% \begin{macrocode} +\expandafter\let\expandafter\keepPDF@SetupDoc + \csname PDF@SetupDoc\endcsname +\def\PDF@SetupDoc{% + \ifx\@baseurl\@empty + \else + \special{html:<base href="\@baseurl">}% + \fi + \keepPDF@SetupDoc +} +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \let\protect=\string + \special{html:<a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink + \special{html:</a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \hyper@chars + \special{html:<a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \special{html:</a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\@urltype{url} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \expandafter\Hy@colorlink\csname @#1color\endcsname + \def\Hy@tempa{#1}% + \ifx\Hy@tempa\@urltype + \special{html:<a href=\hyper@quote#2\hyper@quote>}% + \else + \begingroup + \hyper@chars + \special{% + html:<a href=% + \hyper@quote\#\HyperDestNameFilter{#2}\hyper@quote>% + }% + \endgroup + \fi +} +\def\hyper@linkend{% + \special{html:</a>}% + \Hy@endcolorlink +} +\def\hyper@linkfile#1#2#3{% + \hyper@linkurl{#1}{% + \Hy@linkfileprefix#2\ifx\\#3\\\else\##3\fi + }% +} +\def\hyper@linkurl#1#2{% + \leavevmode + \ifHy@raiselinks + \Hy@SaveSpaceFactor + \Hy@SaveSavedSpaceFactor + \sbox\@tempboxa{\Hy@RestoreSpaceFactor#1}% + \Hy@RestoreSavedSpaceFactor + \@linkdim\dp\@tempboxa + \lower\@linkdim\hbox{% + \hyper@chars + \special{html:<a href=\hyper@quote#2\hyper@quote>}% + }% + \Hy@colorlink\@urlcolor + \Hy@RestoreSpaceFactor + #1\Hy@xspace@end + \Hy@SaveSpaceFactor + \@linkdim\ht\@tempboxa + \advance\@linkdim by -6.5\p@ + \raise\@linkdim\hbox{\special{html:</a>}}% + \Hy@endcolorlink + \Hy@RestoreSpaceFactor + \else + \begingroup + \hyper@chars + \special{html:<a href=\hyper@quote#2\hyper@quote>}% + \Hy@colorlink\@urlcolor#1\Hy@xspace@end + \special{html:</a>}% + \Hy@endcolorlink + \endgroup + \fi +} +% \end{macrocode} +% Very poor implementation of \cs{hyper@link} without considering |#1|. +% \begin{macrocode} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \hyper@linkurl{#3}{\#\HyperDestNameFilter{#2}}% +} +\def\hyper@image#1#2{% + \begingroup + \hyper@chars + \special{html:<img src=\hyper@quote#1\hyper@quote>}% + \endgroup +} +%</textures> +% \end{macrocode} +% \subsection{dvipsone} +% \begin{macrocode} +% \subsection{dvipsone driver} +% Over-ride the default setup macro in pdfmark driver to use Y\&Y +% |\special| commands. +%<*dvipsone> +\providecommand*{\XR@ext}{pdf} +\let\Hy@raisedlink\ltx@empty +\providecommand*\@pdfborder{0 0 1} +\providecommand*\@pdfborderstyle{} +\def\literalps@out#1{\special{ps:#1}}% +\def\headerps@out#1{\special{headertext=#1}}% +\input{pdfmark.def}% +\HyInfo@AddonUnsupportedtrue +\def\PDF@FinishDoc{% + \Hy@UseMaketitleInfos + \HyInfo@TrappedUnsupported + \special{PDF: Keywords \@pdfkeywords}% + \special{PDF: Title \@pdftitle}% + \special{PDF: Creator \@pdfcreator}% + \ifx\@pdfcreationdate\@empty + \else + \special{PDF: CreationDate \@pdfcreationdate}% + \fi + \ifx\@pdfmoddate\@empty + \else + \special{PDF: ModDate \@pdfmoddate}% + \fi + \special{PDF: Author \@pdfauthor}% + \ifx\@pdfproducer\relax + \else + \special{PDF: Producer \@pdfproducer}% + \fi + \special{PDF: Subject \@pdfsubject}% + \Hy@DisableOption{pdfauthor}% + \Hy@DisableOption{pdftitle}% + \Hy@DisableOption{pdfsubject}% + \Hy@DisableOption{pdfcreator}% + \Hy@DisableOption{addtopdfcreator}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfcreationdate}% + \Hy@DisableOption{pdfmoddate}% + \Hy@DisableOption{pdfproducer}% + \Hy@DisableOption{pdfkeywords}% + \Hy@DisableOption{pdftrapped}% + \Hy@DisableOption{pdfinfo}% +} +\def\PDF@SetupDoc{% + \def\Hy@temp{}% + \ifx\@pdfstartpage\@empty + \else + \ifx\@pdfstartview\@empty + \else + \edef\Hy@temp{% + ,Page=\@pdfstartpage + ,View=\@pdfstartview + }% + \fi + \fi + \edef\Hy@temp{% + \noexpand\pdfmark{% + pdfmark=/DOCVIEW,% + PageMode=/\@pdfpagemode + \Hy@temp + }% + }% + \Hy@temp + \ifx\@pdfpagescrop\@empty + \else + \pdfmark{pdfmark=/PAGES,CropBox=\@pdfpagescrop}% + \fi + \edef\Hy@temp{% + \ifHy@pdftoolbar\else /HideToolbar true\fi + \ifHy@pdfmenubar\else /HideMenubar true\fi + \ifHy@pdfwindowui\else /HideWindowUI true\fi + \ifHy@pdffitwindow /FitWindow true\fi + \ifHy@pdfcenterwindow /CenterWindow true\fi + \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi + \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode + \Hy@UseNameKey{Direction}\@pdfdirection + \Hy@UseNameKey{ViewArea}\@pdfviewarea + \Hy@UseNameKey{ViewClip}\@pdfviewclip + \Hy@UseNameKey{PrintArea}\@pdfprintarea + \Hy@UseNameKey{PrintClip}\@pdfprintclip + \Hy@UseNameKey{PrintScaling}\@pdfprintscaling + \Hy@UseNameKey{Duplex}\@pdfduplex + \ifx\@pdfpicktraybypdfsize\@empty + \else + /PickTrayByPDFSize \@pdfpicktraybypdfsize + \fi + \ifx\@pdfprintpagerange\@empty + \else + /PrintPageRange[\@pdfprintpagerange]% + \fi + \ifx\@pdfnumcopies\@empty + \else + /NumCopies \@pdfnumcopies + \fi + }% + \Hy@pstringdef\Hy@pstringB{\@baseurl}% + \pdfmark{% + pdfmark=/PUT,% + Raw={% + \string{Catalog\string}<<% + \ifx\Hy@temp\@empty + \else + /ViewerPreferences<<\Hy@temp>>% + \fi + \Hy@UseNameKey{PageLayout}\@pdfpagelayout + \ifx\@pdflang\relax + \else + /Lang(\@pdflang)% + \fi + \ifx\@baseurl\@empty + \else + /URI<</Base(\Hy@pstringB)>>% + \fi + >>% + }% + }% +} +\providecommand*\@pdfview{XYZ} +\providecommand*\@pdfviewparams{ % + gsave revscl currentpoint grestore % + 72 add exch pop null exch null% +} +\def\Hy@BorderArrayPatch{BorderArrayPatch} +% \end{macrocode} +% These are called at the start and end of unboxed links; +% their job is to leave available PS variables called +% |pdf@llx pdf@lly pdf@urx pdf@ury|, which are the coordinates +% of the bounding rectangle of the link, and |pdf@hoff pdf@voff| +% which are the PDF page offsets. These latter are currently not +% used in the dvipsone setup. +% The Rect pair are called at the LL and UR corners of a box +% known to \TeX. +% \begin{macrocode} +\g@addto@macro\Hy@FirstPageHook{% + \headerps@out{% +% \end{macrocode} +% dvipsone lives in scaled points; does this mean 65536 or 65781? +% \begin{macrocode} + /DvipsToPDF { 65781 div } def% + /PDFToDvips { 65781 mul } def% + /BPToDvips{65781 mul}def% + /HyperBorder { 1 PDFToDvips } def% + /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def% +% \end{macrocode} +% The values inside the /Boder array are not taken literally, but +% interpreted by ghostscript using the resolution of the dvi driver. +% I don't know how other distiller programs behaves in this manner. +% \begin{macrocode} + /BorderArrayPatch{% + [exch{% + dup dup type/integertype eq exch type/realtype eq or% + {BPToDvips}if% + }forall]% + }def% +% \end{macrocode} +% +% \begin{macrocode} + /H.S {% + currentpoint % + HyperBorder add /pdf@lly exch def % + dup DvipsToPDF 72 add /pdf@hoff exch def % + HyperBorder sub /pdf@llx exch def% + } def% + /H.L {% + 2 sub % + PDFToDvips /HyperBase exch def % + currentpoint % + HyperBase sub /pdf@ury exch def% + /pdf@urx exch def% + } def% + /H.A {% + H.L % + currentpoint exch pop % + HyperBase sub % baseline skip + DvipsToPDF /pdf@voff exch def% + } def% + /H.R {% + currentpoint % + HyperBorder sub /pdf@ury exch def % + HyperBorder add /pdf@urx exch def % + currentpoint exch pop DvipsToPDF /pdf@voff exch def% + } def% + }% +} +% \end{macrocode} +% \begin{macrocode} +\def\setpdflinkmargin#1{% + \begingroup + \setlength{\dimen@}{#1}% + \literalps@out{% + /HyperBorder{\strip@pt\dimen@\space PDFToDvips}def% + }% + \endgroup +} +% \end{macrocode} +% \begin{macrocode} +%</dvipsone> +% \end{macrocode} +% +% \subsection{TeX4ht} +% \begin{macrocode} +%<*tex4ht> +\providecommand*{\XR@ext}{html} +\let\Hy@raisedlink\ltx@empty +\@ifpackageloaded{tex4ht}{% + \Hy@InfoNoLine{tex4ht is already loaded}% +}{% + \RequirePackage[htex4ht]{tex4ht}% +} +\hyperlinkfileprefix{} +\let\PDF@FinishDoc\ltx@empty +\def\PDF@SetupDoc{% + \ifx\@baseurl\@empty + \else + \special{t4ht=<base href="\@baseurl">}% + \fi +} +\Hy@WrapperDef\hyper@anchor#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \let\protect=\string + \special{t4ht=<a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue + \Hy@colorlink\@anchorcolor\anchor@spot\Hy@endcolorlink + \special{t4ht=</a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\Hy@WrapperDef\hyper@anchorstart#1{% + \Hy@SaveLastskip + \Hy@VerboseAnchor{#1}% + \begingroup + \hyper@chars\special{t4ht=<a name=% + \hyper@quote\HyperDestNameFilter{#1}\hyper@quote>}% + \endgroup + \Hy@activeanchortrue +} +\def\hyper@anchorend{% + \special{t4ht=</a>}% + \Hy@activeanchorfalse + \Hy@RestoreLastskip +} +\def\@urltype{url} +\def\hyper@linkstart#1#2{% + \Hy@VerboseLinkStart{#1}{#2}% + \expandafter\Hy@colorlink\csname @#1color\endcsname + \def\Hy@tempa{#1}% + \ifx\Hy@tempa\@urltype + \special{t4ht=<a href=\hyper@quote#2\hyper@quote>}% + \else + \begingroup + \hyper@chars + \special{t4ht=<a href=% + \hyper@quote\#\HyperDestNameFilter{#2}\hyper@quote>}% + \endgroup + \fi +} +\def\hyper@linkend{% + \special{t4ht=</a>}% + \Hy@endcolorlink +} +\def\hyper@linkfile#1#2#3{% + \hyper@linkurl{#1}{\Hy@linkfileprefix#2\ifx\\#3\\\else\##3\fi}% +} +\def\hyper@linkurl#1#2{% + \leavevmode + \ifHy@raiselinks + \Hy@SaveSpaceFactor + \Hy@SaveSavedSpaceFactor + \sbox\@tempboxa{\Hy@RestoreSpaceFactor#1}% + \Hy@RestoreSavedSpaceFactor + \@linkdim\dp\@tempboxa + \lower\@linkdim\hbox{% + \begingroup + \hyper@chars + \special{% + t4ht=<a href=\hyper@quote#2\hyper@quote>% + }% + \endgroup + }% + \Hy@colorlink\@urlcolor + \Hy@RestoreSpaceFactor + #1\Hy@xspace@end + \Hy@SaveSpaceFactor + \Hy@endcolorlink + \@linkdim\ht\@tempboxa + \advance\@linkdim by -6.5\p@ + \raise\@linkdim\hbox{\special{t4ht=</a>}}% + \Hy@RestoreSpaceFactor + \else + \begingroup + \hyper@chars + \special{t4ht=<a href=\hyper@quote#2\hyper@quote>}% + \Hy@colorlink\@urlcolor + #1\Hy@xspace@end + \Hy@endcolorlink + \special{t4ht=</a>}% + \endgroup + \fi +} +% \end{macrocode} +% Poor implementation of \cs{hyper@link} without considering |#1|. +% \begin{macrocode} +\def\hyper@link#1#2#3{% + \Hy@VerboseLinkStart{#1}{#2}% + \hyper@linkurl{#3}{\#\HyperDestNameFilter{#2}}% +} +\def\hyper@image#1#2{% + \begingroup + \hyper@chars + \special{t4ht=<img src=\hyper@quote#1\hyper@quote>}% + \endgroup +} +\let\autoref\ref +\ifx \rEfLiNK \UnDef + \def\rEfLiNK #1#2{#2}% +\fi +\let\backref\ltx@gobble +% \end{macrocode} +% Fix for tex4ht. +% \begin{macrocode} +\AtBeginDocument{% + \expandafter + \let\expandafter\Hy@OrgMakeLabel\csname Make:Label\endcsname + \expandafter\def\csname Make:Label\endcsname#1#2{% + \ifhmode + \Hy@SaveSpaceFactor + \else + \global\Hy@SavedSpaceFactor=1000 % + \fi + \Hy@OrgMakeLabel{#1}{% + \Hy@RestoreSpaceFactor + #2\Hy@xspace@end% + \Hy@SaveSpaceFactor + }% + \Hy@RestoreSpaceFactor + }% +} +%</tex4ht> +%<*tex4htcfg> +\IfFileExists{\jobname.cfg}{\endinput}{} +\Preamble{html} + \begin{document}% +\EndPreamble +\def\TeX{TeX} +\def\OMEGA{Omega} +\def\LaTeX{La\TeX} +\def\LaTeXe{\LaTeX2e} +\def\eTeX{e-\TeX} +\def\MF{Metafont} +\def\MP{MetaPost} +%</tex4htcfg> +% \end{macrocode} +% +% \section{Driver-specific form support} +% \subsection{pdfmarks} +% \begin{macrocode} +%<*pdfmark> +\long\def\@Form[#1]{% +\g@addto@macro\Hy@FirstPageHook{% + \headerps@out{% +[% + /_objdef{pdfDocEncoding}% + /type/dict% +/OBJ pdfmark% +[% + {pdfDocEncoding}% + <<% + /Type/Encoding% + /Differences[% + 24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek/ring% + /tilde % + 39/quotesingle % + 96/grave % + 128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin% + /fraction/guilsinglleft/guilsinglright/minus/perthousand% + /quotedblbase/quotedblleft/quotedblright/quoteleft% + /quoteright/quotesinglbase/trademark/fi/fl/Lslash/OE/Scaron% + /Ydieresis/Zcaron/dotlessi/lslash/oe/scaron/zcaron % + 164/currency % + 166/brokenbar % + 168/dieresis/copyright/ordfeminine % + 172/logicalnot/.notdef/registered/macron/degree/plusminus% + /twosuperior/threesuperior/acute/mu % + 183/periodcentered/cedilla/onesuperior/ordmasculine % + 188/onequarter/onehalf/threequarters % + 192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE% + /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave% + /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute% + /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave% + /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls% + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae% + /ccedilla/egrave/eacute/ecircumflex/edieresis/igrave% + /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute% + /ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute% + /ucircumflex/udieresis/yacute/thorn/ydieresis% + ]% + >>% +/PUT pdfmark% +[% + /_objdef{ZaDb}% + /type/dict% +/OBJ pdfmark% +[% + {ZaDb}% + <<% + /Type/Font% + /Subtype/Type1% + /Name/ZaDb% + /BaseFont/ZapfDingbats% + >>% +/PUT pdfmark% +[% + /_objdef{Helv}% + /type/dict% +/OBJ pdfmark% +[% + {Helv}% + <<% + /Type/Font% + /Subtype/Type1% + /Name/Helv% + /BaseFont/Helvetica% + /Encoding{pdfDocEncoding}% + >>% +/PUT pdfmark% +[% + /_objdef{aform}% + /type/dict% +/OBJ pdfmark% +[% + /_objdef{afields}% + /type/array% +/OBJ pdfmark% +[% + /_objdef{corder}% + /type/array% +/OBJ pdfmark% +{% + [% + /BBox[0 0 100 100]% + /_objdef{Check}% + /BP pdfmark % + 1 0 0 setrgbcolor% + /ZapfDingbats 80 selectfont % + 20 20 moveto% + (4)show% + [/EP pdfmark% + [% + /BBox[0 0 100 100]% + /_objdef{Cross}% + /BP pdfmark % + 1 0 0 setrgbcolor% + /ZapfDingbats 80 selectfont % + 20 20 moveto% + (8)show% + [/EP pdfmark% + [% + /BBox[0 0 250 100]% + /_objdef{Submit}% + /BP pdfmark % + 0.6 setgray % + 0 0 250 100 rectfill % + 1 setgray % + 2 2 moveto % + 2 98 lineto % + 248 98 lineto % + 246 96 lineto % + 4 96 lineto % + 4 4 lineto % + fill % + 0.34 setgray % + 248 98 moveto % + 248 2 lineto % + 2 2 lineto % + 4 4 lineto % + 246 4 lineto % + 246 96 lineto % + fill% + /Helvetica 76 selectfont % + 0 setgray % + 8 22.5 moveto% + (Submit)show% + [/EP pdfmark% + [% + /BBox[0 0 250 100]% + /_objdef{SubmitP}% + /BP pdfmark % + 0.6 setgray % + 0 0 250 100 rectfill % + 0.34 setgray % + 2 2 moveto % + 2 98 lineto % + 248 98 lineto % + 246 96 lineto % + 4 96 lineto % + 4 4 lineto % + fill % + 1 setgray % + 248 98 moveto % + 248 2 lineto % + 2 2 lineto % + 4 4 lineto % + 246 4 lineto % + 246 96 lineto % + fill% + /Helvetica 76 selectfont % + 0 setgray % + 10 20.5 moveto% + (Submit)show% + [/EP pdfmark% +} ?pdfmark% +[% + {aform}% + <<% + /Fields{afields}% + /DR<<% + /Font<<% + /ZaDb{ZaDb}% + /Helv{Helv}% + >>% + >>% + /DA(/Helv 10 Tf 0 g)% + /CO{corder}% + \ifHy@pdfa + \else + \ifHyField@NeedAppearances + /NeedAppearances true% + \fi + \fi + >>% +/PUT pdfmark% +[% + {Catalog}% + <<% + /AcroForm{aform}% + >>% +/PUT pdfmark% +}}% + \kvsetkeys{Form}{#1}% +} +\let\@endForm\ltx@empty +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, pdfmark drivers do not support FORM gauges}% +} +% \end{macrocode} +% \begin{macrocode} +\newcount\HyField@AnnotCount +\HyField@AnnotCount=\z@ +\def\HyField@AdvanceAnnotCount{% + \global\advance\HyField@AnnotCount\@ne +} +\def\HyField@TheAnnotCount{% + \the\HyField@AnnotCount +} +% \end{macrocode} +% \begin{macrocode} +\edef\Fld@pageobjref{/P\string{ThisPage\string}} +% \end{macrocode} +% \begin{macrocode} +\def\HyField@AddToFields#1{% + \pdfmark{% + pdfmark=/APPEND,% + Raw={% + \string{afields\string}% + \string{#1\HyField@TheAnnotCount\string}% + }% + }% + \ifx\Fld@calculate@code\ltx@empty + \else + \pdfmark{% + pdfmark=/APPEND,% + Raw={% + \string{corder\string}% + \string{#1\HyField@TheAnnotCount\string}% + }% + }% + \fi +} +% \end{macrocode} +% \begin{macrocode} +\def\@TextField[#1]#2{% parameters, label + \def\Fld@name{#2}% + \let\Fld@default\ltx@empty + \let\Fld@value\@empty + \def\Fld@width{\DefaultWidthofText}% + \def\Fld@height{% + \ifFld@multiline + \DefaultHeightofTextMultiline + \else + \DefaultHeightofText + \fi + }% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofText,#1% + }% + \HyField@FlagsText + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi + \HyField@AdvanceAnnotCount + \LayoutTextField{#2}{% + \leavevmode + \Hy@escapeform\PDFForm@Text + \pdfmark[\MakeTextField{\Fld@width}{\Fld@height}]{% + pdfmark=/ANN,% + objdef=text\HyField@TheAnnotCount,% + Raw={\PDFForm@Text}% + }% + }% + \HyField@AddToFields{text}% + \endgroup +} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \def\Fld@name{#2}% + \let\Fld@default\relax + \let\Fld@value\relax + \def\Fld@width{\DefaultWidthofChoiceMenu}% + \def\Fld@height{\DefaultHeightofChoiceMenu}% + \begingroup + \Fld@menulength=0 % + \@tempdima\z@ + \@for\@curropt:=#3\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \Hy@StepCount\Fld@menulength + \settowidth{\@tempdimb}{\@currDisplay}% + \ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi + }% + \advance\@tempdima by 15\p@ + \begingroup + \HyField@SetKeys{#1}% + \edef\x{\endgroup + \noexpand\expandafter + \noexpand\HyField@SetKeys + \noexpand\expandafter{% + \expandafter\noexpand\csname DefaultOptionsof% + \ifFld@radio + Radio% + \else + \ifFld@combo + \ifFld@popdown + PopdownBox% + \else + ComboBox% + \fi + \else + ListBox% + \fi + \fi + \endcsname + }% + }\x + \HyField@SetKeys{#1}% + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\relax + \let\Fld@value\Fld@default + \fi + \LayoutChoiceField{#2}{% + \ifFld@radio + \HyField@FlagsRadioButton + \@@Radio{#3}% + \else + \begingroup + \HyField@FlagsChoice + \ifdim\Fld@width<\@tempdima + \ifdim\@tempdima<1cm\@tempdima1cm\fi + \edef\Fld@width{\the\@tempdima}% + \fi + \ifFld@combo + \else + \@tempdima=\the\Fld@menulength\Fld@charsize + \advance\@tempdima by \Fld@borderwidth bp % + \advance\@tempdima by \Fld@borderwidth bp % + \edef\Fld@height{\the\@tempdima}% + \fi + \@@Listbox{#3}% + \endgroup + \fi + }% + \endgroup +} +\def\@@Radio#1{% + \Fld@listcount=0 % + \EdefEscapeName\Fld@default{\Fld@default}% + \@for\@curropt:=#1\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \EdefEscapeName\@currValue{\@currValue}% + \Hy@StepCount\Fld@listcount + \@currDisplay\space + \Hy@escapeform\PDFForm@Radio + \ifnum\Fld@listcount=1 % + \HyField@AdvanceAnnotCount + \fi + \pdfmark[\MakeRadioField{\Fld@width}{\Fld@height}]{% + pdfmark=/ANN,% + objdef=\ifnum\Fld@listcount=1 radio\HyField@TheAnnotCount\fi,% + Raw={% + \PDFForm@Radio /AP <</N <</\@currValue\space {Check}>> >>% + }% + } % deliberate space between radio buttons + \ifnum\Fld@listcount=1 % + \HyField@AddToFields{radio}% + \fi + }% +} +\newcount\Fld@listcount +\def\@@Listbox#1{% + \HyField@PDFChoices{#1}% + \Hy@escapeform\PDFForm@List + \HyField@AdvanceAnnotCount + \pdfmark[\MakeChoiceField{\Fld@width}{\Fld@height}]{% + pdfmark=/ANN,% + objdef=list\HyField@TheAnnotCount,% + Raw={\PDFForm@List}% + }% + \HyField@AddToFields{list}% +} +\def\@PushButton[#1]#2{% parameters, label + \def\Fld@name{#2}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofPushButton,#1% + }% + \ifHy@pdfa + \Hy@Error{% + PDF/A: Push button with JavaScript is prohibited% + }\@ehc + \LayoutPushButtonField{% + \leavevmode + \MakeButtonField{#2}% + }% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \HyField@AdvanceAnnotCount + \LayoutPushButtonField{% + \leavevmode + \Hy@escapeform\PDFForm@Push + \pdfmark[\MakeButtonField{#2}]{% + pdfmark=/ANN,% + objdef=push\HyField@TheAnnotCount,% + Raw={\PDFForm@Push}% + }% + }% + \HyField@AddToFields{push}% + \fi + \endgroup +} +\def\@Submit[#1]#2{% + \def\Fld@width{\DefaultWidthofSubmit}% + \def\Fld@height{\DefaultHeightofSubmit}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofSubmit,#1% + }% + \HyField@FlagsPushButton + \HyField@FlagsSubmit + \ifFld@hidden\def\Fld@width{1sp}\fi + \Hy@escapeform\PDFForm@Submit + \HyField@AdvanceAnnotCount + \pdfmark[\MakeButtonField{#2}]{% + pdfmark=/ANN,% + objdef=submit\HyField@TheAnnotCount,% + Raw={\PDFForm@Submit /AP<</N{Submit}/D{SubmitP}>>}% + }% + \HyField@AddToFields{submit}% + \endgroup +} +\def\@Reset[#1]#2{% + \def\Fld@width{\DefaultWidthofReset}% + \def\Fld@height{\DefaultHeightofReset}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofReset,#1% + }% + \leavevmode + \ifHy@pdfa + \Hy@Error{% + PDF/A: Reset action is prohibited% + }\@ehc + \MakeButtonField{#2}% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \Hy@escapeform\PDFForm@Reset + \HyField@AdvanceAnnotCount + \pdfmark[\MakeButtonField{#2}]{% + pdfmark=/ANN,% + objdef=reset\HyField@TheAnnotCount,% + Raw={\PDFForm@Reset}% + }% + \HyField@AddToFields{reset}% + \fi + \endgroup +}% +\def\@CheckBox[#1]#2{% parameters, label + \def\Fld@name{#2}% + \def\Fld@default{0}% + \begingroup + \def\Fld@width{\DefaultWidthofCheckBox}% + \def\Fld@height{\DefaultHeightofCheckBox}% + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofCheckBox,#1% + }% + \HyField@FlagsCheckBox + \ifFld@hidden\def\Fld@width{1sp}\fi + \HyField@AdvanceAnnotCount + \LayoutCheckField{#2}{% + \leavevmode + \Hy@escapeform\PDFForm@Check + \pdfmark[\MakeCheckField{\Fld@width}{\Fld@height}]{% + pdfmark=/ANN,% + objdef=check\HyField@TheAnnotCount,% + Raw={\PDFForm@Check}% + }% + }% + \HyField@AddToFields{check}% + \endgroup +} +%</pdfmark> +% \end{macrocode} +% +% \subsection{HyperTeX} +% \begin{macrocode} +%<*hypertex> +\def\@Form[#1]{% + \Hy@Message{Sorry, HyperTeX does not support FORMs}% +} +\let\@endForm\ltx@empty +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, HyperTeX does not support FORM gauges}% +} +\def\@TextField[#1]#2{% parameters, label + \Hy@Message{Sorry, HyperTeX does not support FORM text fields}% +} +\def\@CheckBox[#1]#2{% parameters, label + \Hy@Message{Sorry, HyperTeX does not support FORM checkboxes}% +} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \Hy@Message{Sorry, HyperTeX does not support FORM choice menus}% +} +\def\@PushButton[#1]#2{% parameters, label + \Hy@Message{Sorry, HyperTeX does not support FORM pushbuttons}% +} +\def\@Reset[#1]#2{% + \Hy@Message{Sorry, HyperTeX does not support FORMs}% +} +\def\@Submit[#1]#2{% + \Hy@Message{Sorry, HyperTeX does not support FORMs}% +} +%</hypertex> +% \end{macrocode} +% \subsection{TeX4ht} +% \begin{macrocode} +%<*tex4ht> +\def\@Form[#1]{% + \kvsetkeys{Form}{#1}% + \HCode{<form action="\Form@action" method="\Form@method">}% +} +\def\@endForm{\HCode{</form>}} +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, TeX4ht does not support gauges}% +} +\def\@TextField[#1]#2{% parameters, label + \let\Hy@reserved@a\@empty + \def\Fld@name{#2}% + \let\Fld@default\ltx@empty + \bgroup + \Field@toks={ }% + \kvsetkeys{Field}{#1}% + \HCode{<label for="\Fld@name">#2</label>}% + \ifFld@password + \@@PasswordField + \else + \@@TextField + \fi + \egroup +} +\def\@@PasswordField{% + \HCode{% + <input type="password" % + id="\Fld@name" % + name="\Fld@name" % + \ifFld@hidden type="hidden" \fi + value="\Fld@default" % + \the\Field@toks + >% + }% +} +\def\@@TextField{% + \ifFld@multiline + \HCode{<textarea % + \ifFld@readonly readonly \fi + id="\Fld@name" % + name="\Fld@name" % + \ifFld@hidden type="hidden" \fi + \the\Field@toks>% + }% + \Fld@default + \HCode{</textarea>}% + \else + \HCode{<input type="textbox" % + \ifFld@readonly readonly \fi + id="\Fld@name" % + name="\Fld@name" % + \ifFld@hidden type="hidden" \fi + value="\Fld@default" % + \the\Field@toks>% + }% + \fi +} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \def\Fld@name{#2}% + \let\Fld@default\ltx@empty + \let\Hy@reserved@a\relax + \begingroup + \expandafter\Fld@findlength#3\\% + \Field@toks={ }% + \kvsetkeys{Field}{#1}% + #2% + \ifFld@radio + \expandafter\@@Radio#3\\% + \else + \expandafter\@@Menu#3\\% + \fi + \endgroup +} +\def\Fld@findlength#1\\{% + \Fld@menulength=0 % + \@for\@curropt:=#1\do{\Hy@StepCount\Fld@menulength}% +} +\def\@@Menu#1\\{% + \HCode{<select size="\the\Fld@menulength" % + name="\Fld@name" % + \the\Field@toks>% + }% + \@for\@curropt:=#1\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \HCode{<option % + \ifx\@curropt\Fld@default selected \fi + value="\@currValue">\@currDisplay</option>% + }% + }% + \HCode{</select>}% +} +\def\@@Radio#1\\{% + \@for\@curropt:=#1\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \HCode{<input type="radio" % + \ifx\@curropt\Fld@default checked \fi + name="\Fld@name" % + value="\@currValue" % + \the\Field@toks>% + }% + \@currDisplay + }% +} +\def\@PushButton[#1]#2{% parameters, label + \def\Fld@name{#2}% + \bgroup + \Field@toks={ }% + \kvsetkeys{Field}{#1}% + \HCode{<input type="button" % + name="\Fld@name" % + value="#2" % + \the\Field@toks>% + }% + \HCode{</button>}% + \egroup +} +\def\@Submit[#1]#2{% + \HCode{<button type="submit">#2</button>}% +} +\def\@Reset[#1]#2{% + \HCode{<button type="reset">#2</button>}% +} +\def\@CheckBox[#1]#2{% parameters, label + \let\Hy@reserved@a\@empty + \def\Fld@name{#2}% + \def\Fld@default{0}% + \bgroup + \Field@toks={ }% + \kvsetkeys{Field}{#1}% + \HCode{<input type="checkbox" % + \ifFld@checked checked \fi + \ifFld@disabled disabled \fi + \ifFld@readonly readonly \fi + name="\Fld@name" % + \ifFld@hidden type="hidden" \fi + value="\Fld@default" % + \the\Field@toks>% + #2% + }% + \egroup +} +%</tex4ht> +% \end{macrocode} +% +% \subsection{pdfTeX} +% \begin{macrocode} +%<*pdftex> +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, pdftex does not support FORM gauges}% +} +\def\MakeFieldObject#1#2{\sbox0{#1}% + \immediate\pdfxform0 % + \expandafter\edef\csname #2Object\endcsname{% + \the\pdflastxform\space 0 R% + }% +% \hbox to 0pt{\hskip-\maxdimen{\pdfrefxform \the\pdflastxform}}% +}% +\let\HyField@afields\ltx@empty +\let\HyField@cofields\ltx@empty +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdflastlink\endcsname\relax + \let\HyField@AddToFields\relax + \PackageInfo{hyperref}{% + You need pdfTeX 1.40.0 for setting the /Fields entry.% + \MessageBreak + Adobe Reader/Acrobat accepts an empty /Field array,% + \MessageBreak + but other PDF viewers might complain% + }% +\else + \let\HyField@AuxAddToFields\ltx@gobble + \let\HyField@AuxAddToCoFields\ltx@gobbletwo + \def\HyField@AfterAuxOpen{\Hy@AtBeginDocument}% +% \end{macrocode} +% Insertion sort for calculation field list. +% In case of equal sort keys (for example, if `calculatesortkey` +% is not used at all) the keys keep document calling order. +% \begin{macrocode} + \def\HyField@ABD@AuxAddToCoFields#1#2{% + \begingroup + \Hy@safe@activestrue + \let\ltx@secondoftwo\relax + \ifx\HyField@cofields\ltx@empty + \xdef\HyField@cofields{% + \ltx@secondoftwo{#1}{ #2 0 R}% + }% + \else + \let\ltx@secondoftwo\relax + \def\HyField@AddCoField##1##2##3{% + \ifx##1\ltx@empty + \ltx@secondoftwo{#1}{ #2 0 R}% + \expandafter\ltx@gobble + \else + \ifnum\pdfstrcmp{##2}{#1}>\ltx@zero + \ltx@secondoftwo{#1}{ #2 0 R}% + \ltx@secondoftwo{##2}{##3}% + \expandafter\expandafter\expandafter\ltx@gobble + \else + \ltx@secondoftwo{##2}{##3}% + \fi + \fi + \HyField@AddCoField + }% + \xdef\HyField@cofields{% + \expandafter\HyField@AddCoField + \HyField@cofields\ltx@empty\ltx@empty\ltx@empty + }% + \fi + \endgroup + }% + \Hy@AtBeginDocument{% + \if@filesw + \immediate\write\@mainaux{% + \string\providecommand\string\HyField@AuxAddToFields[1]{}% + }% + \immediate\write\@mainaux{% + \string\providecommand\string\HyField@AuxAddToCoFields[2]{}% + }% + \fi + \let\HyField@AfterAuxOpen\@firstofone + \def\HyField@AuxAddToFields#1{% + \xdef\HyField@afields{% + \ifx\HyField@afields\@empty + \else + \HyField@afields + \space + \fi + #1 0 R% + }% + }% + \let\HyField@AuxAddToCoFields\HyField@ABD@AuxAddToCoFields + }% + \def\HyField@AddToFields{% + \expandafter\HyField@@AddToFields\expandafter{% + \the\pdflastlink + }% + \ifx\Fld@calculate@code\ltx@empty + \else + \begingroup + \Hy@safe@activestrue + \edef\Hy@temp{% + \endgroup + \if@filesw + \write\@mainaux{% + \string\HyField@AuxAddToCoFields{% + \Fld@calculate@sortkey + }{% + \the\pdflastlink + }% + }% + \fi + }% + \Hy@temp + \fi + }% + \def\HyField@@AddToFields#1{% + \HyField@AfterAuxOpen{% + \if@filesw + \write\@mainaux{% + \string\HyField@AuxAddToFields{#1}% + }% + \fi + }% + }% +\fi +\def\@Form[#1]{% + \@ifundefined{textcolor}{\let\textcolor\@gobble}{}% + \kvsetkeys{Form}{#1}% + \pdf@ifdraftmode{}{% + \Hy@FormObjects + \ifnum\pdftexversion>13 % + \pdfrefobj\OBJ@pdfdocencoding + \pdfrefobj\OBJ@ZaDb + \pdfrefobj\OBJ@Helv + \fi + \AtVeryEndDocument{% + \immediate\pdfobj{% + <<% + /Fields[\HyField@afields]% + \ifx\HyField@cofields\ltx@empty + \else + /CO[\romannumeral-`\Q\HyField@cofields]% + \fi + /DR<<% + /Font<<% + /ZaDb \OBJ@ZaDb\space 0 R% + /Helv \OBJ@Helv\space 0 R% + >>% + >>% + /DA(/Helv 10 Tf 0 g)% + \ifHy@pdfa + \else + \ifHyField@NeedAppearances + /NeedAppearances true% + \fi + \fi + >>% + }% + \edef\OBJ@acroform{\the\pdflastobj}% + \pdfcatalog{/AcroForm \OBJ@acroform\space 0 R}% + }% + }% + \MakeFieldObject{% +% \end{macrocode} +% Same as \verb|\ding{123}| of package pifont. +% \begin{macrocode} + \begingroup + \fontfamily{pzd}% + \fontencoding{U}% + \fontseries{m}% + \fontshape{n}% + \selectfont + \char123 % + \endgroup + }{Ding}% + \MakeFieldObject{% + \fbox{\textcolor{yellow}{\textsf{Submit}}}% + }{Submit}% + \MakeFieldObject{% + \fbox{\textcolor{yellow}{\textsf{SubmitP}}}% + }{SubmitP}% +} +\let\@endForm\ltx@empty +% \end{macrocode} +% \begin{macrocode} +\let\HyAnn@AbsPageLabel\ltx@empty +\let\Fld@pageobjref\ltx@empty +\ltx@IfUndefined{pdfpageref}{% +}{% + \ltx@ifpackageloaded{zref-abspage}{% + \newcount\HyAnn@Count + \HyAnn@Count=\ltx@zero + \def\HyAnn@AbsPageLabel{% + \global\advance\HyAnn@Count by\ltx@one + \zref@labelbyprops{HyAnn@\the\HyAnn@Count}{abspage}% + \zref@refused{HyAnn@\the\HyAnn@Count}% + }% + \def\Fld@pageobjref{% + \zref@ifrefundefined{HyAnn@\the\HyAnn@Count}{% + }{% + \zref@ifrefcontainsprop{HyAnn@\the\HyAnn@Count}{abspage}{% + /P \pdfpageref + \zref@extractdefault{HyAnn@\the\HyAnn@Count}{abspage}{1} % + \space 0 R% + }{% + }% + }% + }% + }{% + }% +} +% \end{macrocode} +% \begin{macrocode} +\def\@TextField[#1]#2{% parameters, label + \def\Fld@name{#2}% + \let\Fld@default\ltx@empty + \let\Fld@value\@empty + \def\Fld@width{\DefaultWidthofText}% + \def\Fld@height{% + \ifFld@multiline + \DefaultHeightofTextMultiline + \else + \DefaultHeightofText + \fi + }% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofText,#1% + }% + \PDFForm@Name + \HyField@FlagsText + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi + \LayoutTextField{#2}{% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Text + \pdfstartlink user {\PDFForm@Text}\relax + \MakeTextField{\Fld@width}{\Fld@height}\pdfendlink + \HyField@AddToFields + }% + \endgroup +} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \def\Fld@name{#2}% + \let\Fld@default\relax + \let\Fld@value\relax + \def\Fld@width{\DefaultWidthofChoiceMenu}% + \def\Fld@height{\DefaultHeightofChoiceMenu}% + \begingroup + \Fld@menulength=0 % + \@tempdima\z@ + \@for\@curropt:=#3\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \Hy@StepCount\Fld@menulength + \settowidth{\@tempdimb}{\@currDisplay}% + \ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi + }% + \advance\@tempdima by 15\p@ + \begingroup + \HyField@SetKeys{#1}% + \edef\x{\endgroup + \noexpand\expandafter + \noexpand\HyField@SetKeys + \noexpand\expandafter{% + \expandafter\noexpand\csname DefaultOptionsof% + \ifFld@radio + Radio% + \else + \ifFld@combo + \ifFld@popdown + PopdownBox% + \else + ComboBox% + \fi + \else + ListBox% + \fi + \fi + \endcsname + }% + }\x + \HyField@SetKeys{#1}% + \PDFForm@Name + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\relax + \let\Fld@value\Fld@default + \fi + \LayoutChoiceField{#2}{% + \ifFld@radio + \HyField@FlagsRadioButton + \@@Radio{#3}% + \else + \begingroup + \HyField@FlagsChoice + \ifdim\Fld@width<\@tempdima + \ifdim\@tempdima<1cm\@tempdima1cm\fi + \edef\Fld@width{\the\@tempdima}% + \fi + \ifFld@combo + \else + \@tempdima=\the\Fld@menulength\Fld@charsize + \advance\@tempdima by \Fld@borderwidth bp % + \advance\@tempdima by \Fld@borderwidth bp % + \edef\Fld@height{\the\@tempdima}% + \fi + \@@Listbox{#3}% + \endgroup + \fi + }% + \endgroup +} +\def\@@Radio#1{% + \Fld@listcount=0 % + \EdefEscapeName\Fld@default{\Fld@default}% + \@for\@curropt:=#1\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \EdefEscapeName\@currValue{\@currValue}% + \Hy@StepCount\Fld@listcount + \@currDisplay\space + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Radio + \pdfstartlink user {% + \PDFForm@Radio + /AP<<% + /N<<% +% \end{macrocode} +% Laurent.Guillope@math.univ-nantes.fr (Laurent Guillope) +% persuades me that this was wrong: +% |/\Fld@name\the\Fld@listcount|. But I leave it here to remind +% me that it is untested. +% \begin{macrocode} + /\@currValue\space \DingObject + >>% + >>% + }% + \relax + \MakeRadioField{\Fld@width}{\Fld@height}\pdfendlink + \ifnum\Fld@listcount=1 % + \HyField@AddToFields + \fi + \space % deliberate space between radio buttons + }% +} +\newcount\Fld@listcount +\def\@@Listbox#1{% + \HyField@PDFChoices{#1}% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@List + \pdfstartlink user {\PDFForm@List}\relax + \MakeChoiceField{\Fld@width}{\Fld@height}% + \pdfendlink + \HyField@AddToFields +} +\def\@PushButton[#1]#2{% parameters, label + \def\Fld@name{#2}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofPushButton,#1% + }% + \PDFForm@Name + \ifHy@pdfa + \Hy@Error{% + PDF/A: Push button with JavaScript is prohibited% + }\@ehc + \LayoutPushButtonField{% + \leavevmode + \MakeButtonField{#2}% + }% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \LayoutPushButtonField{% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Push + \pdfstartlink user {\PDFForm@Push}\relax + \MakeButtonField{#2}% + \pdfendlink + \HyField@AddToFields + }% + \fi + \endgroup +} +\def\@Submit[#1]#2{% + \def\Fld@width{\DefaultWidthofSubmit}% + \def\Fld@height{\DefaultHeightofSubmit}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofSubmit,#1% + }% + \HyField@FlagsPushButton + \HyField@FlagsSubmit + \ifFld@hidden\def\Fld@width{1sp}\fi + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Submit + \pdfstartlink user {% + \PDFForm@Submit + /AP<</N \SubmitObject/D \SubmitPObject>>% + }% + \relax + \MakeButtonField{#2}% + \pdfendlink + \HyField@AddToFields + \endgroup +} +\def\@Reset[#1]#2{% + \def\Fld@width{\DefaultWidthofReset}% + \def\Fld@height{\DefaultHeightofReset}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofReset,#1% + }% + \leavevmode + \ifHy@pdfa + \Hy@Error{% + PDF/A: Reset action is prohibited% + }\@ehc + \MakeButtonField{#2}% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Reset + \pdfstartlink user {\PDFForm@Reset}\relax + \MakeButtonField{#2}% + \pdfendlink + \HyField@AddToFields + \fi + \endgroup +} +\def\@CheckBox[#1]#2{% parameters, label + \def\Fld@name{#2}% + \def\Fld@default{0}% + \begingroup + \def\Fld@width{\DefaultWidthofCheckBox}% + \def\Fld@height{\DefaultHeightofCheckBox}% + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofCheckBox,#1% + }% + \PDFForm@Name + \HyField@FlagsCheckBox + \ifFld@hidden\def\Fld@width{1sp}\fi + \LayoutCheckField{#2}{% + \leavevmode + \HyAnn@AbsPageLabel + \Hy@escapeform\PDFForm@Check + \pdfstartlink user {\PDFForm@Check}\relax + \MakeCheckField{\Fld@width}{\Fld@height}% + \pdfendlink + \HyField@AddToFields + }% + \endgroup +} +\def\Hy@FormObjects{% + \pdfobj {% + <<% + /Type/Encoding% + /Differences[% + 24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek% + /ring/tilde % + 39/quotesingle % + 96/grave % + 128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin% + /fraction/guilsinglleft/guilsinglright/minus/perthousand% + /quotedblbase/quotedblleft/quotedblright/quoteleft% + /quoteright/quotesinglbase/trademark/fi/fl/Lslash/OE% + /Scaron/Ydieresis/Zcaron/dotlessi/lslash/oe/scaron/zcaron % + 164/currency % + 166/brokenbar % + 168/dieresis/copyright/ordfeminine % + 172/logicalnot/.notdef/registered/macron/degree/plusminus% + /twosuperior/threesuperior/acute/mu % + 183/periodcentered/cedilla/onesuperior/ordmasculine % + 188/onequarter/onehalf/threequarters % + 192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE% + /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave% + /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute% + /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave% + /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls% + /agrave/aacute/acircumflex/atilde/adieresis/aring/ae% + /ccedilla/egrave/eacute/ecircumflex/edieresis/igrave% + /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute% + /ocircumflex/otilde/odieresis/divide/oslash/ugrave% + /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis% + ]% + >>% + }% + \xdef\OBJ@pdfdocencoding{\the\pdflastobj}% + \pdfobj{% + <<% + /Type/Font% + /Subtype/Type1% + /Name/ZaDb% + /BaseFont/ZapfDingbats% + >>% + }% + \xdef\OBJ@ZaDb{\the\pdflastobj}% + \pdfobj{% + <<% + /Type/Font% + /Subtype/Type1% + /Name/Helv% + /BaseFont/Helvetica% + /Encoding \OBJ@pdfdocencoding\space 0 R% + >>% + }% + \xdef\OBJ@Helv{\the\pdflastobj}% + \global\let\Hy@FormObjects\relax +} +%</pdftex> +% \end{macrocode} +% +% \subsection{dvipdfm, xetex} +% D. P. Story adapted the pdf\TeX{} forms part for dvipdfm, of which +% version 0.12.7b or higher is required because of a bug. +% \begin{macrocode} +%<*dvipdfm|xetex> +% \end{macrocode} +% +% \begin{macro}{\@Gauge} +% \begin{macrocode} +\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum + \Hy@Message{Sorry, dvipdfm/XeTeX does not support FORM gauges}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@Form} +% \begin{macrocode} +\def\@Form[#1]{% + \@ifundefined{textcolor}{\let\textcolor\@gobble}{}% + \kvsetkeys{Form}{#1}% + \Hy@FormObjects + \@pdfm@mark{obj @afields []}% + \@pdfm@mark{obj @corder []}% + \@pdfm@mark{% + obj @aform <<% + /Fields @afields% + /DR<<% + /Font<<% + /ZaDb @OBJZaDb% + /Helv @OBJHelv% + >>% + >>% + /DA(/Helv 10 Tf 0 g)% + /CO @corder% + \ifHy@pdfa + \else + \ifHyField@NeedAppearances + /NeedAppearances true% + \fi + \fi + >>% + }% + \@pdfm@mark{put @catalog <</AcroForm @aform>>}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@endForm} +% \begin{macrocode} +\let\@endForm\ltx@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dvipdfm@setdim} +% \cmd{\dvipdfm@setdim} sets dimensions for ann using +% \cmd{\pdfm@box}. +% \begin{macrocode} +\def\dvipdfm@setdim{% + height \the\ht\pdfm@box\space + width \the\wd\pdfm@box\space + depth \the\dp\pdfm@box\space +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyField@AnnotCount} +% \begin{macrocode} +\newcount\HyField@AnnotCount +\HyField@AnnotCount=\z@ +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@AdvanceAnnotCount} +% \begin{macrocode} +\def\HyField@AdvanceAnnotCount{% + \global\advance\HyField@AnnotCount\@ne +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\HyField@TheAnnotCount} +% \begin{macrocode} +\def\HyField@TheAnnotCount{% + \the\HyField@AnnotCount +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Fld@pageobjref} +% \begin{macrocode} +\def\Fld@pageobjref{/P @thispage}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\HyField@AddToFields} +% \begin{macrocode} +\def\HyField@AddToFields#1{% + \@pdfm@mark{put @afields @#1\HyField@TheAnnotCount}% + \ifx\Fld@calculate@code\ltx@empty + \else + \@pdfm@mark{put @corder @#1\HyField@TheAnnotCount}% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@TextField} +% \begin{macrocode} +\def\@TextField[#1]#2{% parameters, label + \def\Fld@name{#2}% + \let\Fld@default\ltx@empty + \let\Fld@value\@empty + \def\Fld@width{\DefaultWidthofText}% + \def\Fld@height{% + \ifFld@multiline + \DefaultHeightofTextMultiline + \else + \DefaultHeightofText + \fi + }% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofText,#1% + }% + \PDFForm@Name + \HyField@FlagsText + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi + \setbox\pdfm@box=\hbox{% + \MakeTextField{\Fld@width}{\Fld@height}% + }% + \HyField@AdvanceAnnotCount + \LayoutTextField{#2}{% + \leavevmode + \Hy@escapeform\PDFForm@Text + \@pdfm@mark{% + ann @text\HyField@TheAnnotCount\space + \dvipdfm@setdim << \PDFForm@Text >>% + }% + }% + \unhbox\pdfm@box + \HyField@AddToFields{text}% + % record in @afields array + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ChoiceMenu} +% \begin{macrocode} +\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices + \def\Fld@name{#2}% + \let\Fld@default\relax + \let\Fld@value\relax + \def\Fld@width{\DefaultWidthofChoiceMenu}% + \def\Fld@height{\DefaultHeightofChoiceMenu}% + \begingroup + \Fld@menulength=0 % + \@tempdima\z@ + \@for\@curropt:=#3\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \Hy@StepCount\Fld@menulength + \settowidth{\@tempdimb}{\@currDisplay}% + \ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi + }% + \advance\@tempdima by 15\p@ + \begingroup + \HyField@SetKeys{#1}% + \edef\x{\endgroup + \noexpand\expandafter + \noexpand\HyField@SetKeys + \noexpand\expandafter{% + \expandafter\noexpand\csname DefaultOptionsof% + \ifFld@radio + Radio% + \else + \ifFld@combo + \ifFld@popdown + PopdownBox% + \else + ComboBox% + \fi + \else + ListBox% + \fi + \fi + \endcsname + }% + }\x + \HyField@SetKeys{#1}% + \PDFForm@Name + \ifFld@hidden\def\Fld@width{1sp}\fi + \ifx\Fld@value\relax + \let\Fld@value\Fld@default + \fi + \LayoutChoiceField{#2}{% + \ifFld@radio + \HyField@FlagsRadioButton + \@@Radio{#3}% + \else + \begingroup + \HyField@FlagsChoice + \ifdim\Fld@width<\@tempdima + \ifdim\@tempdima<1cm\@tempdima1cm\fi + \edef\Fld@width{\the\@tempdima}% + \fi + \ifFld@combo + \else + \@tempdima=\the\Fld@menulength\Fld@charsize + \advance\@tempdima by \Fld@borderwidth bp % + \advance\@tempdima by \Fld@borderwidth bp % + \edef\Fld@height{\the\@tempdima}% + \fi + \@@Listbox{#3}% + \endgroup + \fi + }% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@Radio} +% \begin{macrocode} +\def\@@Radio#1{% + \Fld@listcount=0 % + \EdefEscapeName\Fld@default{\Fld@default}% + \setbox\pdfm@box=\hbox{% + \MakeRadioField{\Fld@width}{\Fld@height}% + }% + \@for\@curropt:=#1\do{% + \expandafter\Fld@checkequals\@curropt==\\% + \EdefEscapeName\@currValue{\@currValue}% + \Hy@StepCount\Fld@listcount + \@currDisplay\space + \leavevmode + \Hy@escapeform\PDFForm@Radio + \ifnum\Fld@listcount=1 % + \HyField@AdvanceAnnotCount + \fi + \@pdfm@mark{% + ann % + \ifnum\Fld@listcount=1 % + @radio\HyField@TheAnnotCount% + \space + \fi + \dvipdfm@setdim + <<% + \PDFForm@Radio + /AP<</N<</\@currValue /null>>>>% + >>% + }% + \unhcopy\pdfm@box\space% deliberate space between radio buttons + \ifnum\Fld@listcount=1 % + \HyField@AddToFields{radio}% + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Fld@listcount} +% \begin{macrocode} +\newcount\Fld@listcount +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@Listbox} +% \begin{macrocode} +\def\@@Listbox#1{% + \HyField@PDFChoices{#1}% + \setbox\pdfm@box=\hbox{% + \MakeChoiceField{\Fld@width}{\Fld@height}% + }% + \leavevmode + \Hy@escapeform\PDFForm@List + \HyField@AdvanceAnnotCount + \@pdfm@mark{% + ann @list\HyField@TheAnnotCount\space + \dvipdfm@setdim + <<\PDFForm@List>>% + }% + \unhbox\pdfm@box + \HyField@AddToFields{list}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@PushButton} +% \begin{macrocode} +\def\@PushButton[#1]#2{% parameters, label + \def\Fld@name{#2}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofPushButton,#1% + }% + \PDFForm@Name + \ifHy@pdfa + \Hy@Error{% + PDF/A: Push button with JavaScript is prohibited% + }\@ehc + \LayoutPushButtonField{% + \leavevmode + \MakeButtonField{#2}% + }% + \else + \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}% + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \HyField@AdvanceAnnotCount + \LayoutPushButtonField{% + \leavevmode + \Hy@escapeform\PDFForm@Push + \@pdfm@mark{% + ann @push\HyField@TheAnnotCount\space + \dvipdfm@setdim + <<\PDFForm@Push>>% + }% + }% + \unhbox\pdfm@box + \HyField@AddToFields{push}% + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@Submit} +% \begin{macrocode} +\def\@Submit[#1]#2{% + \def\Fld@width{\DefaultWidthofSubmit}% + \def\Fld@height{\DefaultHeightofSubmit}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofSubmit,#1% + }% + \HyField@FlagsPushButton + \HyField@FlagsSubmit + \ifFld@hidden\def\Fld@width{1sp}\fi + \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}% + \leavevmode + \Hy@escapeform\PDFForm@Submit + \HyField@AdvanceAnnotCount + \@pdfm@mark{% + ann @submit\HyField@TheAnnotCount\space + \dvipdfm@setdim + <<\PDFForm@Submit>>% + }% + \unhbox\pdfm@box% + \HyField@AddToFields{submit}% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@Reset} +% \begin{macrocode} +\def\@Reset[#1]#2{% + \def\Fld@width{\DefaultWidthofReset}% + \def\Fld@height{\DefaultHeightofReset}% + \begingroup + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofReset,#1% + }% + \leavevmode + \ifHy@pdfa + \Hy@Error{% + PDF/A: Reset action is prohibited% + }\@ehc + \MakeButtonField{#2}% + \else + \HyField@FlagsPushButton + \ifFld@hidden\def\Fld@width{1sp}\fi + \setbox\pdfm@box=\hbox{\MakeButtonField{#2}}% + \Hy@escapeform\PDFForm@Reset + \HyField@AdvanceAnnotCount + \@pdfm@mark{% + ann @reset\HyField@TheAnnotCount\space + \dvipdfm@setdim + <<\PDFForm@Reset>>% + }% + \unhbox\pdfm@box + \HyField@AddToFields{reset}% + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@CheckBox} +% \begin{macrocode} +\def\@CheckBox[#1]#2{% parameters, label + \def\Fld@name{#2}% + \def\Fld@default{0}% + \begingroup + \def\Fld@width{\DefaultWidthofCheckBox}% + \def\Fld@height{\DefaultHeightofCheckBox}% + \expandafter\HyField@SetKeys\expandafter{% + \DefaultOptionsofCheckBox,#1% + }% + \PDFForm@Name + \HyField@FlagsCheckBox + \ifFld@hidden\def\Fld@width{1sp}\fi + \setbox\pdfm@box=\hbox{% + \MakeCheckField{\Fld@width}{\Fld@height}% + }% + \HyField@AdvanceAnnotCount + \LayoutCheckField{#2}{% + \leavevmode + \Hy@escapeform\PDFForm@Check + \@pdfm@mark{% + ann @check\HyField@TheAnnotCount\space + \dvipdfm@setdim + <<\PDFForm@Check>>% + }% + \unhbox\pdfm@box + \HyField@AddToFields{check}% + }% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\def\Hy@FormObjects{% + \@pdfm@mark{obj @OBJpdfdocencoding% + <<% + /Type/Encoding% + /Differences[% + 24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek/ring/tilde % + 39/quotesingle % + 96/grave % + 128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin% + /fraction/guilsinglleft/guilsinglright/minus/perthousand% + /quotedblbase/quotedblleft/quotedblright/quoteleft/quoteright% + /quotesinglbase/trademark/fi/fl/Lslash/OE/Scaron/Ydieresis% + /Zcaron/dotlessi/lslash/oe/scaron/zcaron % + 164/currency % + 166/brokenbar % + 168/dieresis/copyright/ordfeminine % + 172/logicalnot/.notdef/registered/macron/degree/plusminus% + /twosuperior/threesuperior/acute/mu % + 183/periodcentered/cedilla/onesuperior/ordmasculine % + 188/onequarter/onehalf/threequarters % + 192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE% + /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute% + /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex% + /Otilde/Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex% + /Udieresis/Yacute/Thorn/germandbls/agrave/aacute/acircumflex% + /atilde/adieresis/aring/ae/ccedilla/egrave/eacute% + /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis% + /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis% + /divide/oslash/ugrave/uacute/ucircumflex/udieresis/yacute% + /thorn/ydieresis% + ]% + >>% + }% + \@pdfm@mark{obj @OBJZaDb% + <<% + /Type/Font% + /Subtype/Type1% + /Name/ZaDb% + /BaseFont/ZapfDingbats% + >>% + }% + \@pdfm@mark{obj @OBJHelv% + <<% + /Type/Font% + /Subtype/Type1% + /Name/Helv% + /BaseFont/Helvetica% + /Encoding @OBJpdfdocencoding% + >>% + }% + \global\let\Hy@FormObjects\relax +} +%</dvipdfm|xetex> +% \end{macrocode} +% +% \subsection{Common forms part} +% \begin{macrocode} +%<*pdfform> +% \end{macrocode} +% +% \begin{macro}{\Fld@pageobjref} +% \begin{macrocode} +\providecommand*{\Fld@pageobjref}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hy@escapestring} +% \begin{macrocode} +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname pdf@escapestring\endcsname\relax + \let\Hy@escapestring\@firstofone + \def\Hy@escapeform#1{% + \ifHy@pdfescapeform + \def\Hy@escapestring##1{% + \noexpand\Hy@escapestring{\noexpand##1}% + }% + \edef\Hy@temp{#1}% + \expandafter\Hy@@escapeform\Hy@temp\Hy@escapestring{}\@nil + \def\Hy@escapestring##1{% + \@ifundefined{Hy@esc@\string##1}{% + ##1% + \ThisShouldNotHappen + }{% + \csname Hy@esc@\string##1\endcsname + }% + }% + \else + \let\Hy@escapestring\@firstofone + \fi + }% + \def\Hy@@escapeform#1\Hy@escapestring#2#3\@nil{% + \ifx\\#3\\% + \else + \expandafter + \Hy@pstringdef\csname Hy@esc@\string#2\endcsname{#2}% + \ltx@ReturnAfterFi{% + \Hy@@escapeform#3\@nil + }% + \fi + }% +\else + \def\Hy@escapeform#1{% + \ifHy@pdfescapeform + \let\Hy@escapestring\pdfescapestring + \else + \let\Hy@escapestring\@firstofone + \fi + }% + \Hy@escapeform{}% +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PDFForm@Name} +% \begin{macrocode} +\def\PDFForm@Name{% + \PDFForm@@Name\Fld@name + \ifx\Fld@altname\relax + \else + \PDFForm@@Name\Fld@altname + \fi + \ifx\Fld@mappingname\relax + \else + \PDFForm@@Name\Fld@mappingname + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDFForm@@Name} +% \begin{macrocode} +\def\PDFForm@@Name#1{% + \begingroup + \ifnum\Hy@pdfversion<5 % implementation note 117, PDF spec 1.7 + \ifHy@unicode + \Hy@unicodefalse + \fi + \fi + \HyPsd@XeTeXBigCharstrue + \pdfstringdef\Hy@gtemp#1% + \endgroup + \let#1\Hy@gtemp +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Fld@additionalactions} +% \begin{macrocode} +\def\Fld@@additionalactions{% +% \end{macrocode} +% K input (keystroke) format +% \begin{macrocode} + \ifx\Fld@keystroke@code\@empty + \else + /K<</S/JavaScript/JS(\Hy@escapestring{\Fld@keystroke@code})>>% + \fi +% \end{macrocode} +% F display format +% \begin{macrocode} + \ifx\Fld@format@code\@empty + \else + /F<</S/JavaScript/JS(\Hy@escapestring{\Fld@format@code})>>% + \fi +% \end{macrocode} +% V validation +% \begin{macrocode} + \ifx\Fld@validate@code\@empty + \else + /V<</S/JavaScript/JS(\Hy@escapestring{\Fld@validate@code})>>% + \fi +% \end{macrocode} +% C calculation +% \begin{macrocode} + \ifx\Fld@calculate@code\@empty + \else + /C<</S/JavaScript/JS(\Hy@escapestring{\Fld@calculate@code})>>% + \fi +% \end{macrocode} +% Fo receiving the input focus +% \begin{macrocode} + \ifx\Fld@onfocus@code\@empty + \else + /Fo<</S/JavaScript/JS(\Hy@escapestring{\Fld@onfocus@code})>>% + \fi +% \end{macrocode} +% Bl loosing the input focus (blurred) +% \begin{macrocode} + \ifx\Fld@onblur@code\@empty + \else + /Bl<</S/JavaScript/JS(\Hy@escapestring{\Fld@onblur@code})>>% + \fi +% \end{macrocode} +% D pressing the mouse button (down) +% \begin{macrocode} + \ifx\Fld@onmousedown@code\@empty + \else + /D<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmousedown@code})>>% + \fi +% \end{macrocode} +% U releasing the mouse button (up) +% \begin{macrocode} + \ifx\Fld@onmouseup@code\@empty + \else + /U<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmouseup@code})>>% + \fi +% \end{macrocode} +% E cursor enters the annotation's active area. +% \begin{macrocode} + \ifx\Fld@onenter@code\@empty + \else + /E<</S/JavaScript/JS(\Hy@escapestring{\Fld@onenter@code})>>% + \fi +% \end{macrocode} +% X cursor exits the annotation's active area. +% \begin{macrocode} + \ifx\Fld@onexit@code\@empty + \else + /X<</S/JavaScript/JS(\Hy@escapestring{\Fld@onexit@code})>>% + \fi +} +\def\Fld@additionalactions{% + \if-\Fld@@additionalactions-% + \else + \ifHy@pdfa + \else + /AA<<\Fld@@additionalactions>>% + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Fld@annotnames} +% \begin{macrocode} +\def\Fld@annotnames{% + /T(\Fld@name)% + \ifx\Fld@altname\relax + \else + /TU(\Fld@altname)% + \fi + \ifx\Fld@mappingname\relax + \else + /TM(\Fld@mappingname)% + \fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PDFForm@Check} +% \begin{macrocode} +\def\PDFForm@Check{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /Q \Fld@align + /BS<</W \Fld@borderwidth /S/\Fld@borderstyle>>% + /AP<< /N <</Yes<<>>>> >> %new string /Yes is from below + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + /CA(\Hy@escapestring{\Fld@cbsymbol})% + >>% + /DA(/ZaDb \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + /H/P% + \ifFld@checked /V/Yes/AS/Yes\else /V/Off/AS/Off\fi + \Fld@additionalactions +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDFForm@Push} +% \begin{macrocode} +\ifHy@pdfa +\else + \def\PDFForm@Push{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + >>% + \fi + /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick@code})>>% + \Fld@additionalactions + }% +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\PDFForm@List} +% \begin{macrocode} +\def\PDFForm@List{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Ch% + \Fld@flags + /Q \Fld@align + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \ifx\fld@bcolor\relax \else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + >>% + \fi + /DA(/Helv \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + \Fld@choices + \Fld@additionalactions +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDFForm@Radio} +% \begin{macrocode} +\def\PDFForm@Radio{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + /CA(\Hy@escapestring{\Fld@radiosymbol})% + >>% + /DA(/ZaDb \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% +% \end{macrocode} +%^^A \ifx\@currValue\Fld@default %old code +%^^A /V/\Fld@default +%^^A /DV/\Fld@default +%^^A \else +%^^A /V/Off% +%^^A /DV/Off% +%^^A \fi +% New code, the default value is used for all buttons +% \begin{macrocode} + \ifx\Fld@default\@empty + /V/Off% + /DV/Off% + \else + /V/\Fld@default + /DV/\Fld@default + \fi + \Fld@additionalactions +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDFForm@Text} +% \begin{macrocode} +\def\PDFForm@Text{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Tx% + \Fld@flags + /Q \Fld@align + /BS<</W \Fld@borderwidth\space /S /\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \ifx\Fld@bcolor\relax \else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + >>% + \fi + /DA(/Helv \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% + /DV(\Hy@escapestring{\Fld@default})% + /V(\Hy@escapestring{\Fld@value})% + \Fld@additionalactions + \ifnum\Fld@maxlen>\z@/MaxLen \Fld@maxlen \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDFForm@Submit} +% \begin{macrocode} +\def\PDFForm@Submit{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + >>% + \fi + /A<<% + /S/SubmitForm% + /F<<% + /FS/URL% + /F(\Hy@escapestring{\Form@action})% + >>% + \Fld@submitflags + >>% + \Fld@additionalactions +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\PDFForm@Reset} +% \begin{macrocode} +\ifHy@pdfa +\else + \def\PDFForm@Reset{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Btn% + \Fld@flags + /H/P% + /DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi +% /CA (Clear) +% /AC (Done) + >>% + \fi + /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>% + /A<</S/ResetForm>>% + \Fld@additionalactions + }% +\fi +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +%</pdfform> +%<*package> +% \end{macrocode} +% +% \section{Bookmarks in the PDF file} +% This was originally developed by Yannis Haralambous +% (it was the separate |repere.sty|); it needed +% the |repere| or |makebook.pl| post-processor to work properly. Now +% redundant, as it is done entirely in \LaTeX{} macros. +% +% To write out the current section title, and its rationalized number, +% we have to intercept the |\@sect| command, which is rather +% dangerous. But how else to see the information we need? +% We do the \emph{same} for |\@ssect|, giving anchors to +% unnumbered sections. This allows things like bibliographies +% to get bookmarks when used with a manual |\addcontentsline| +% \begin{macrocode} +\def\phantomsection{% + \Hy@MakeCurrentHrefAuto{section*}% + \Hy@raisedlink{\hyper@anchorstart{\@currentHref}\hyper@anchorend}% +} +%</package> +% \end{macrocode} +% +% \subsection{Bookmarks} +% \begin{macrocode} +%<*outlines> +% \end{macrocode} +% +% This section was written by Heiko Oberdiek; the code replaces +% an earlier version by David Carlisle. +% +% The first part of bookmark code is in section \ref{sec:pdfstring}. +% Further documentation is available as paper and slides of the +% talk, that Heiko Oberdiek has given at the EuroTeX'99 meating +% in Heidelberg. See |paper.pdf| and |slides.pdf| in the +% |doc| directory of hyperref. +% +% When using the right-to-left typesetting based on \eTeX, the order +% of the |\BOOKMARK| commands written to the |\@outlinefile| could +% appear wrong, because of mis-feature of \eTeX's implementation (that +% it processes the shipped out lines left-to-right, instead of the +% order in which they appear in the document). The wrong order will +% appear when the file contains two bookmarks on the same line typeset +% right-to-left. +% +% To work around this problem, the |bookmark@seq@number| counter is +% used to write the bookmark's sequential number into a comment in the +% |\@outlinefile|, which could be used to post-process it to achieve +% the proper ordering of |\BOOKMARK| commands in that file. +% +% \begin{macrocode} +\def\Hy@writebookmark#1#2#3#4#5{% + % section number, text, label, level, file + \ifx\WriteBookmarks\relax% + \else + \ifnum#4>\Hy@bookmarksdepth\relax + \else + \@@writetorep{#1}{#2}{#3}{#4}{#5}% + \fi + \fi +} +\def\Hy@currentbookmarklevel{0} +\def\Hy@numberline#1{#1 } +\def\@@writetorep#1#2#3#4#5{% + \begingroup + \edef\Hy@tempa{#5}% + \ifx\Hy@tempa\Hy@bookmarkstype + \edef\Hy@level{#4}% + \ifx\Hy@levelcheck Y% + \@tempcnta\Hy@level\relax + \advance\@tempcnta by -1 % + \ifnum\Hy@currentbookmarklevel<\@tempcnta + \advance\@tempcnta by -\Hy@currentbookmarklevel\relax + \advance\@tempcnta by 1 % + \Hy@Warning{% + Difference (\the\@tempcnta) between bookmark levels is % + greater \MessageBreak than one, level fixed% + }% + \@tempcnta\Hy@currentbookmarklevel + \advance\@tempcnta by 1 % + \edef\Hy@level{\the\@tempcnta}% + \fi + \else + \global\let\Hy@levelcheck Y% + \fi + \global\let\Hy@currentbookmarklevel\Hy@level + \@tempcnta\Hy@level\relax + \expandafter\xdef\csname Parent\Hy@level\endcsname{#3}% + \advance\@tempcnta by -1 % + \edef\Hy@tempa{#3}% + \edef\Hy@tempb{\csname Parent\the\@tempcnta\endcsname}% + \ifx\Hy@tempa\Hy@tempb + \Hy@Warning{% + The anchor of a bookmark and its parent's must not% + \MessageBreak be the same. Added a new anchor% + }% + \phantomsection + \fi + \ifHy@bookmarksnumbered + \let\numberline\Hy@numberline + \let\booknumberline\Hy@numberline + \let\partnumberline\Hy@numberline + \let\chapternumberline\Hy@numberline + \else + \let\numberline\@gobble + \let\booknumberline\@gobble + \let\partnumberline\@gobble + \let\chapternumberline\@gobble + \fi + \HyPsd@XeTeXBigCharstrue + \pdfstringdef\Hy@tempa{#2}% + \HyPsd@SanitizeForOutFile\Hy@tempa + \if@filesw + \stepcounter{bookmark@seq@number}% + \@ifundefined{@outlinefile}{% + }{% + \protected@write\@outlinefile{}{% + \protect\BOOKMARK + [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}% + {\Hy@tempa}{\Hy@tempb}% + \@percentchar\space\thebookmark@seq@number + }% + }% + \fi + \fi + \endgroup +} +\newcounter{bookmark@seq@number} +% \end{macrocode} +% \begin{macrocode} +\begingroup + \lccode`(=`{% + \lccode`)=`}% + \lccode`1=\z@ + \lccode`2=\z@ + \lccode`3=\z@ + \lccode`5=\z@ + \lccode`7=\z@ + \lccode`\#=\z@ + \lccode`\`=\z@ + \lccode`\{=\z@ + \lccode`\}=\z@ +\lowercase{% + \endgroup + \def\HyPsd@SanitizeForOutFile#1{% + \@onelevel@sanitize\Hy@tempa + \escapechar`\\% + \edef\Hy@tempa{% + \expandafter\HyPsd@SanitizeOut@BraceLeft\Hy@tempa(\@nil + }% + \edef\Hy@tempa{% + \expandafter\HyPsd@SanitizeOut@BraceRight\Hy@tempa)\@nil + }% + }% + \def\HyPsd@SanitizeOut@BraceLeft#1(#2\@nil{% + #1% + \ifx\\#2\\% + \expandafter\ltx@gobble + \else + \expandafter\ltx@firstofone + \fi + {% + \string\173% + \HyPsd@SanitizeOut@BraceLeft#2\@nil + }% + }% + \def\HyPsd@SanitizeOut@BraceRight#1)#2\@nil{% + #1% + \ifx\\#2\\% + \expandafter\ltx@gobble + \else + \expandafter\ltx@firstofone + \fi + {% + \string\175% + \HyPsd@SanitizeOut@BraceRight#2\@nil + }% + }% +} +% \end{macrocode} +% In the call of \cmd{\BOOKMARK} the braces around \verb|#4| +% are omitted, because it is not likely, that the level number +% contains \verb|]|. +% \begin{macrocode} +\newcommand{\currentpdfbookmark}{% + \pdfbookmark[\Hy@currentbookmarklevel]% +} +\newcommand{\subpdfbookmark}{% + \@tempcnta\Hy@currentbookmarklevel + \Hy@StepCount\@tempcnta + \expandafter\pdfbookmark\expandafter[\the\@tempcnta]% +} +\newcommand{\belowpdfbookmark}[2]{% + \@tempcnta\Hy@currentbookmarklevel + \Hy@StepCount\@tempcnta + \expandafter\pdfbookmark\expandafter[\the\@tempcnta]{#1}{#2}% + \advance\@tempcnta by -1 % + \xdef\Hy@currentbookmarklevel{\the\@tempcnta}% +} +% \end{macrocode} +% Tobias Oetiker rightly points out that we need a way to +% force a bookmark entry. So we introduce |\pdfbookmark|, +% with two parameters, the title, and a symbolic name. +% By default this is at level 1, but we can reset that with the +% optional first argument. +% \begin{macrocode} +\renewcommand\pdfbookmark[3][0]{% + \Hy@writebookmark{}{#2}{#3.#1}{#1}{toc}% + \hyper@anchorstart{#3.#1}\hyper@anchorend +} +\def\BOOKMARK{% + \@ifnextchar[{\@BOOKMARK}{\@@BOOKMARK[1][-]}% +} +\def\@BOOKMARK[#1]{% + \@ifnextchar[{\@@BOOKMARK[{#1}]}{\@@BOOKMARK[{#1}][-]}% +} +% \end{macrocode} +% The macros for calculating structure of outlines +% are derived from those by Petr Olsak used in the texinfopdf macros. +% +% \subsubsection{Rerun warning} +% +% \begin{macro}{\Hy@OutlineRerunCheck} +% \begin{macrocode} +\RequirePackage{rerunfilecheck}[2009/12/10] +\def\Hy@OutlineRerunCheck{% + \RerunFileCheck{\jobname.out}{% + \immediate\closeout\@outlinefile + }{% + Rerun to get outlines right\MessageBreak + or use package `bookmark'% + }% +} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{Driver stuff} +% +% The VTEX section was written originally by VTEX, but then +% amended by Denis Girou (\Email{denis.girou@idris.fr}), +% then by by Taco Hoekwater (\Email{taco.hoekwater@wkap.nl}. The problem +% is that VTEX, with its close integration of the PDF backend, does +% look at the contents of bookmarks, escaping |\| and the like. +% \begin{macrocode} +%<*vtex> +% \end{macrocode} +% \begin{macrocode} +\newcount\@serial@counter\@serial@counter=1\relax +% \end{macrocode} +% \begin{macro}{\hv@pdf@char} +% Plain octal codes doesn't work with versions below 6.50. +% So for early versions hex numbers have to be used. +% It would be possible to program this instead of the +% large |\ifcase|, but I'm too lazy to sort that out now. +% \begin{macrocode} +\begingroup + \catcode`\'=12 % + \ifnum\Hy@VTeXversion<650 % + \catcode`\"=12 % + \gdef\hv@pdf@char#1#2#3{% + \char + \ifcase'#1#2#3 % + "00\or"01\or"02\or"03\or"04\or"05\or"06\or"07% + \or"08\or"09\or"0A\or"0B\or"0C\or"0D\or"0E\or"0F% + \or"10\or"11\or"12\or"13\or"14\or"15\or"16\or"17% + \or"18\or"19\or"1A\or"1B\or"1C\or"1D\or"1E\or"1F% + \or"20\or"21\or"22\or"23\or"24\or"25\or"26\or"27% + \or"28\or"29\or"2A\or"2B\or"2C\or"2D\or"2E\or"2F% + \or"30\or"31\or"32\or"33\or"34\or"35\or"36\or"37% + \or"38\or"39\or"3A\or"3B\or"3C\or"3D\or"3E\or"3F% + \or"40\or"41\or"42\or"43\or"44\or"45\or"46\or"47% + \or"48\or"49\or"4A\or"4B\or"4C\or"4D\or"4E\or"4F% + \or"50\or"51\or"52\or"53\or"54\or"55\or"56\or"57% + \or"58\or"59\or"5A\or"5B\or"5C\or"5D\or"5E\or"5F% + \or"60\or"61\or"62\or"63\or"64\or"65\or"66\or"67% + \or"68\or"69\or"6A\or"6B\or"6C\or"6D\or"6E\or"6F% + \or"70\or"71\or"72\or"73\or"74\or"75\or"76\or"77% + \or"78\or"79\or"7A\or"7B\or"7C\or"7D\or"7E\or"7F% + \or"80\or"81\or"82\or"83\or"84\or"85\or"86\or"87% + \or"88\or"89\or"8A\or"8B\or"8C\or"8D\or"8E\or"8F% + \or"90\or"91\or"92\or"93\or"94\or"95\or"96\or"97% + \or"98\or"99\or"9A\or"9B\or"9C\or"9D\or"9E\or"9F% + \or"A0\or"A1\or"A2\or"A3\or"A4\or"A5\or"A6\or"A7% + \or"A8\or"A9\or"AA\or"AB\or"AC\or"AD\or"AE\or"AF% + \or"B0\or"B1\or"B2\or"B3\or"B4\or"B5\or"B6\or"B7% + \or"B8\or"B9\or"BA\or"BB\or"BC\or"BD\or"BE\or"BF% + \or"C0\or"C1\or"C2\or"C3\or"C4\or"C5\or"C6\or"C7% + \or"C8\or"C9\or"CA\or"CB\or"CC\or"CD\or"CE\or"CF% + \or"D0\or"D1\or"D2\or"D3\or"D4\or"D5\or"D6\or"D7% + \or"D8\or"D9\or"DA\or"DB\or"DC\or"DD\or"DE\or"DF% + \or"E0\or"E1\or"E2\or"E3\or"E4\or"E5\or"E6\or"E7% + \or"E8\or"E9\or"EA\or"EB\or"EC\or"ED\or"EE\or"EF% + \or"F0\or"F1\or"F2\or"F3\or"F4\or"F5\or"F6\or"F7% + \or"F8\or"F9\or"FA\or"FB\or"FC\or"FD\or"FE\or"FF% + \fi + }% + \else + \gdef\hv@pdf@char{\char'}% + \fi +\endgroup +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@@BOOKMARK} +% \begin{macrocode} +\def\@@BOOKMARK[#1][#2]#3#4#5{% + \expandafter\edef\csname @count@#3\endcsname{% + \the\@serial@counter + }% + \edef\@mycount{\the\@serial@counter}% + \Hy@StepCount\@serial@counter + \edef\@parcount{% + \expandafter\ifx\csname @count@#5\endcsname\relax + 0% + \else + \csname @count@#5\endcsname + \fi + }% + \immediate\special{% + !outline \HyperDestNameFilter{#3};p=\@parcount,i=\@mycount,% + s=\ifx#2-c\else o\fi,t=#4% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ReadBookmarks} +% \begin{macrocode} +\def\ReadBookmarks{% + \begingroup + \def\0{\hv@pdf@char 0}% + \def\1{\hv@pdf@char 1}% + \def\2{\hv@pdf@char 2}% + \def\3{\hv@pdf@char 3}% + \def\({(}% + \def\){)}% + \def\do##1{% + \ifnum\catcode`##1=\active + \@makeother##1% + \else + \ifnum\catcode`##1=6 % + \@makeother##1% + \fi + \fi + }% + \dospecials + \Hy@safe@activestrue + \InputIfFileExists{\jobname.out}{}{}% + \endgroup + \ifx\WriteBookmarks\relax + \else + \if@filesw + \newwrite\@outlinefile + \Hy@OutlineRerunCheck + \immediate\openout\@outlinefile=\jobname.out\relax + \ifHy@typexml + \immediate\write\@outlinefile{<relaxxml>\relax}% + \fi + \fi + \fi +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +%</vtex> +% \end{macrocode} +% \begin{macrocode} +%<*!vtex> +\def\ReadBookmarks{% + \pdf@ifdraftmode{}{% + \begingroup + \def\do##1{% + \ifnum\catcode`##1=\active + \@makeother##1% + \else + \ifnum\catcode`##1=6 % + \@makeother##1% + \fi + \fi + }% + \dospecials + \Hy@safe@activestrue + \escapechar=`\\% + \def\@@BOOKMARK[##1][##2]##3##4##5{% + \calc@bm@number{##5}% + }% + \InputIfFileExists{\jobname.out}{}{}% + \ifx\WriteBookmarks\relax + \global\let\WriteBookmarks\relax + \fi + \def\@@BOOKMARK[##1][##2]##3##4##5{% + \def\Hy@temp{##4}% +%<*pdftex> + \Hy@pstringdef\Hy@pstringName{\HyperDestNameFilter{##3}}% + \Hy@OutlineName{}\Hy@pstringName{% + ##2\check@bm@number{##3}% + }{% + \expandafter\strip@prefix\meaning\Hy@temp + }% +%</pdftex> +%<*pdfmark> + \pdfmark{% + pdfmark=/OUT,% + Count={##2\check@bm@number{##3}},% + Dest={##3},% + Title=\expandafter\strip@prefix\meaning\Hy@temp + }% +%</pdfmark> +%<*dvipdfm|xetex> + \Hy@pstringdef\Hy@pstringName{\HyperDestNameFilter{##3}}% + \@pdfm@mark{% + outline \ifHy@DvipdfmxOutlineOpen + [% + \ifnum##21>\z@ + \else + -% + \fi + ] % + \fi + ##1<<% + /Title(\expandafter\strip@prefix\meaning\Hy@temp)% + /A<<% + /S/GoTo% + /D(\Hy@pstringName)% + >>% + >>% + }% +%</dvipdfm|xetex> + }% + \begingroup + \def\WriteBookmarks{0}% + \InputIfFileExists{\jobname.out}{}{}% + \endgroup + %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}% + \endgroup + }% + \ifx\WriteBookmarks\relax + \else + \if@filesw + \newwrite\@outlinefile + \Hy@OutlineRerunCheck + \immediate\openout\@outlinefile=\jobname.out\relax + \ifHy@typexml + \immediate\write\@outlinefile{<relaxxml>\relax}% + \fi + \fi + \fi +} +%<*pdftex> +\def\Hy@OutlineName#1#2#3#4{% + \pdfoutline goto name{#2}count#3{#4}% +} +%</pdftex> +\def\check@bm@number#1{% + \expandafter\ifx\csname B_#1\endcsname\relax + 0% + \else + \csname B_#1\endcsname + \fi +} +\def\calc@bm@number#1{% + \@tempcnta=\check@bm@number{#1}\relax + \advance\@tempcnta by 1 % + \expandafter\xdef\csname B_#1\endcsname{\the\@tempcnta}% +} +%</!vtex> +% \end{macrocode} +% +% \begin{macrocode} +\ifHy@implicit +\else + \expandafter\endinput +\fi +% \end{macrocode} +% +% \begin{macrocode} +%</outlines> +%<*outlines|hypertex> +% \end{macrocode} +% \begin{macrocode} +\newlength\Hy@SectionHShift +\def\Hy@SectionAnchorHref#1{% + \ifx\protect\@typeset@protect + \Hy@@SectionAnchor{#1}% + \fi +} +\DeclareRobustCommand*{\Hy@@SectionAnchor}[1]{% + \leavevmode + \hbox to 0pt{% + \kern-\Hy@SectionHShift + \Hy@raisedlink{% + \hyper@anchorstart{#1}\hyper@anchorend + }% + \hss + }% +} +\let\H@old@ssect\@ssect +\def\@ssect#1#2#3#4#5{% + \Hy@MakeCurrentHrefAuto{section*}% + \setlength{\Hy@SectionHShift}{#1}% + \begingroup + \toks@{\H@old@ssect{#1}{#2}{#3}{#4}}% + \toks\tw@\expandafter{% + \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}% + #5% + }% + \edef\x{\endgroup + \the\toks@{\the\toks\tw@}% + }\x +} +\let\H@old@schapter\@schapter +\def\@schapter#1{% + \begingroup + \let\@mkboth\@gobbletwo + \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \endgroup + \H@old@schapter{#1}% +} +% \end{macrocode} +% If there is no chapter number (\cmd{\frontmatter} or +% \cmd{\backmatter}) then the counting by |\refstepcounter{chapter}| +% is not executed, so there will be no destination for \cmd{addcontentsline}. +% So \cmd{\@chapter} is overloaded to avoid this: +% \begin{macrocode} +\ltx@IfUndefined{@chapter}{}{% + \let\Hy@org@chapter\@chapter + \def\@chapter{% + \def\Hy@next{% + \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + }% + \ifnum\c@secnumdepth>\m@ne + \ltx@IfUndefined{if@mainmatter}% + \iftrue{\csname if@mainmatter\endcsname}% + \let\Hy@next\relax + \fi + \fi + \Hy@next + \Hy@org@chapter + }% +} +% \end{macrocode} +% \begin{macrocode} +\let\H@old@part\@part +\begingroup\expandafter\expandafter\expandafter\endgroup +\expandafter\ifx\csname chapter\endcsname\relax + \let\Hy@secnum@part\z@ +\else + \let\Hy@secnum@part\m@ne +\fi +\def\@part{% + \ifnum\Hy@secnum@part>\c@secnumdepth + \phantomsection + \fi + \H@old@part +} +% \end{macrocode} +% \begin{macrocode} +\let\H@old@spart\@spart +\def\@spart#1{% + \Hy@MakeCurrentHrefAuto{part*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \H@old@spart{#1}% +} +\let\H@old@sect\@sect +\def\@sect#1#2#3#4#5#6[#7]#8{% + \ifnum #2>\c@secnumdepth + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi + {% + \Hy@MakeCurrentHrefAuto{section*}% + \setlength{\Hy@SectionHShift}{#3}% + \begingroup + \toks@{\H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]}% + \toks\tw@\expandafter{% + \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}% + #8% + }% + \edef\x{\endgroup + \the\toks@{\the\toks\tw@}% + }\x + }{% + \H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}% + }% +} +% \end{macrocode} +% \begin{macrocode} +%</outlines|hypertex> +%<*outlines> +% \end{macrocode} +% +% \begin{macrocode} +\expandafter\def\csname Parent-4\endcsname{} +\expandafter\def\csname Parent-3\endcsname{} +\expandafter\def\csname Parent-2\endcsname{} +\expandafter\def\csname Parent-1\endcsname{} +\expandafter\def\csname Parent0\endcsname{} +\expandafter\def\csname Parent1\endcsname{} +\expandafter\def\csname Parent2\endcsname{} +\expandafter\def\csname Parent3\endcsname{} +\expandafter\def\csname Parent4\endcsname{} +% \end{macrocode} +% +% \begin{macrocode} +%</outlines> +% \end{macrocode} +% +% \section{Compatibility with koma-script classes} +% +% \begin{macrocode} +%<*outlines|hypertex> +% \end{macrocode} +% +% Hard-wire in an unpleasant over-ride of komascript `scrbook' class +% for Tobias Isenberg (\Email{Tobias.Isenberg@gmx.de}). +% With version 6.71b the hack is also applied to `scrreprt' class +% and is removed for koma-script versions since 2001/01/01, +% because Markus Kohm supports hyperref in komascript. +% \begin{macrocode} +\def\Hy@tempa{% + \def\@addchap[##1]##2{% + \typeout{##2}% + \if@twoside + \@mkboth{##1}{}% + \else + \@mkboth{}{##1}% + \fi + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}% + \Hy@raisedlink{% + \hyper@anchorstart{\@currentHref}\hyper@anchorend + }% + \if@twocolumn + \@topnewpage[\@makeschapterhead{##2}]% + \else + \@makeschapterhead{##2}% + \@afterheading + \fi + \addcontentsline{toc}{chapter}{##1}% + }% +} +\@ifclassloaded{scrbook}{% + \@ifclasslater{scrbook}{2001/01/01}{% + \let\Hy@tempa\@empty + }{}% +}{% + \@ifclassloaded{scrreprt}{% + \@ifclasslater{scrreprt}{2001/01/01}{% + \let\Hy@tempa\@empty + }{}% + }{% + \let\Hy@tempa\@empty + }% +}% +\Hy@tempa +% \end{macrocode} +% +% \begin{macrocode} +%</outlines|hypertex> +% \end{macrocode} +% +% \section{Encoding definition files for encodings of PDF strings} +% This was contributed by +% Heiko Oberdiek. +% +% \subsection{PD1 encoding} +% \begin{macrocode} +%<*pd1enc> +\DeclareFontEncoding{PD1}{}{} +% \end{macrocode} +% Accents +% \begin{macrocode} +\DeclareTextAccent{\`}{PD1}{\textasciigrave} +\DeclareTextAccent{\'}{PD1}{\textacute} +\DeclareTextAccent{\^}{PD1}{\textasciicircum} +\DeclareTextAccent{\~}{PD1}{\texttilde} +\DeclareTextAccent{\"}{PD1}{\textasciidieresis} +\DeclareTextAccent{\r}{PD1}{\textring} +\DeclareTextAccent{\v}{PD1}{\textasciicaron} +\DeclareTextAccent{\.}{PD1}{\textdotaccent} +\DeclareTextAccent{\c}{PD1}{\textcedilla} +\DeclareTextAccent{\=}{PD1}{\textasciimacron} +\DeclareTextAccent{\b}{PD1}{\textmacronbelow} +\DeclareTextAccent{\d}{PD1}{\textdotbelow} +\DeclareTextCompositeCommand{\`}{PD1}{\@empty}{\textasciigrave} +\DeclareTextCompositeCommand{\'}{PD1}{\@empty}{\textacute} +\DeclareTextCompositeCommand{\^}{PD1}{\@empty}{\textasciicircum} +\DeclareTextCompositeCommand{\~}{PD1}{\@empty}{\texttilde} +\DeclareTextCompositeCommand{\"}{PD1}{\@empty}{\textasciidieresis} +\DeclareTextCompositeCommand{\r}{PD1}{\@empty}{\textring} +\DeclareTextCompositeCommand{\v}{PD1}{\@empty}{\textasciicaron} +\DeclareTextCompositeCommand{\.}{PD1}{\@empty}{\textdotaccent} +\DeclareTextCompositeCommand{\c}{PD1}{\@empty}{\textcedilla} +\DeclareTextCompositeCommand{\=}{PD1}{\@empty}{\textasciimacron} +\DeclareTextCompositeCommand{\b}{PD1}{\@empty}{\textmacronbelow} +\DeclareTextCompositeCommand{\d}{PD1}{\@empty}{\textdotbelow} +\DeclareTextCompositeCommand{\`}{PD1}{\ }{\textasciigrave} +\DeclareTextCompositeCommand{\'}{PD1}{\ }{\textacute} +\DeclareTextCompositeCommand{\^}{PD1}{\ }{\textasciicircum} +\DeclareTextCompositeCommand{\~}{PD1}{\ }{\texttilde} +\DeclareTextCompositeCommand{\"}{PD1}{\ }{\textasciidieresis} +\DeclareTextCompositeCommand{\r}{PD1}{\ }{\textring} +\DeclareTextCompositeCommand{\v}{PD1}{\ }{\textasciicaron} +\DeclareTextCompositeCommand{\.}{PD1}{\ }{\textdotaccent} +\DeclareTextCompositeCommand{\c}{PD1}{\ }{\textcedilla} +\DeclareTextCompositeCommand{\=}{PD1}{\ }{\textasciimacron} +\DeclareTextCompositeCommand{\b}{PD1}{\ }{\textmacronbelow} +\DeclareTextCompositeCommand{\d}{PD1}{\ }{\textdotbelow} +\DeclareTextCommand{\k}{PD1}[1]{\TextSymbolUnavailable{\k{#1}}#1} +\DeclareTextCommand{\t}{PD1}[1]{\TextSymbolUnavailable{\t{#1}}#1} +\DeclareTextCommand{\newtie}{PD1}[1]{% + \TextSymbolUnavailable{\newtie{#1}}#1% +} +% \end{macrocode} +% Special white space escape characters +% not for use in bookmarks but for other PDF strings. +% \begin{macrocode} +% U+0009 (CHARACTER TABULATION) +\DeclareTextCommand{\textHT}{PD1}{\011}% U+0009 +% U+000A (LINE FEED) +\DeclareTextCommand{\textLF}{PD1}{\012}% U+000A +% U+000D (CARRIAGE RETURN) +\DeclareTextCommand{\textCR}{PD1}{\015}% U+000D +% \end{macrocode} +% Accent glyph names +% \begin{macrocode} +% U+02D8 BREVE; breve +\DeclareTextCommand{\textasciibreve}{PD1}{\030}% U+02D8 +% U+02C7 CARON; caron +\DeclareTextCommand{\textasciicaron}{PD1}{\031}% U+02C7 +% U+02C6 MODIFIER LETTER CIRCUMFLEX ACCENT; circumflex +\DeclareTextCommand{\textcircumflex}{PD1}{\032}% U+02C6 +% U+02D9 DOT ABOVE; dotaccent +\DeclareTextCommand{\textdotaccent}{PD1}{\033}% U+02D9 +% U+02DD DOUBLE ACUTE ACCENT; hungarumlaut +\DeclareTextCommand{\texthungarumlaut}{PD1}{\034}% U+02DD +% U+02DB OGONEK; ogonek +\DeclareTextCommand{\textogonek}{PD1}{\035}% U+02DB +% U+02DA RING ABOVE; ring +\DeclareTextCommand{\textring}{PD1}{\036}% U+02DA +% U+02DC SMALL TILDE; ilde, *tilde +\DeclareTextCommand{\texttilde}{PD1}{\037}% U+02DC +% \end{macrocode} +% \cs{040}: U+0020 SPACE; *space, spacehackarabic\\ +% \cs{041}: U+0021 EXCLAMATION MARK; exclam +% \begin{macrocode} +% U+0022 QUOTATION MARK; quotedbl +\DeclareTextCommand{\textquotedbl}{PD1}{"}% \042 U+0022 +% U+0023 NUMBER SIGN; numbersign +\DeclareTextCommand{\textnumbersign}{PD1}{\043}% U+0023 +% U+0024 DOLLAR SIGN; dollar +\DeclareTextCommand{\textdollar}{PD1}{\044}% U+0024 +% U+0025 PERCENT SIGN; percent +\DeclareTextCommand{\textpercent}{PD1}{\045}% U+0025 +% U+0026 AMPERSAND; ampersand +\DeclareTextCommand{\textampersand}{PD1}{\046}% U+0026 +% \end{macrocode} +% \cs{047}: U+0027 APOSTROPHE; quotesingle\\ +% \begin{macrocode} +% U+0028 LEFT PARENTHESIS; parenleft +\DeclareTextCommand{\textparenleft}{PD1}{\string\(}% \050 U+0028 +% U+0029 RIGHT PARENTHESIS; parenright +\DeclareTextCommand{\textparenright}{PD1}{\string\)}% \051 U+0029 +% \end{macrocode} +% \cs{052}: U+002A ASTERISK; asterisk\\ +% \cs{053}: U+002B PLUS SIGN; plus\\ +% \cs{054}: U+002C COMMA; comma\\ +% \cs{055}: U+002D HYPHEN-MINUS; hyphen\\ +% \cs{056}: U+002E FULL STOP; period +% \begin{macrocode} +% U+002E FULL STOP; period +\DeclareTextCommand{\textdotbelow}{PD1}{.}% \056 U+002E +% \end{macrocode} +% \cs{057}: % U+002F SOLIDUS; slash\\ +% \cs{060}: U+0030 DIGIT ZERO; zero\\ +% \dots\\ +% \cs{071}: U+0039 DIGIT NINE; nine\\ +% \cs{072}: U+003A COLON; colon\\ +% \cs{073}: U+003B SEMICOLON; semicolon +% \begin{macrocode} +% U+003C LESS-THAN SIGN; less +\DeclareTextCommand{\textless}{PD1}{<}% \074 U+003C +% \end{macrocode} +% \cs{075}: U+003D EQUALS SIGN; equal +% \begin{macrocode} +% U+003E GREATER-THAN SIGN; greater +\DeclareTextCommand{\textgreater}{PD1}{>}% \076 U+003E +% \end{macrocode} +% \cs{077}: U+003F QUESTION MARK; question\\ +% \cs{100}: U+0040 COMMERCIAL AT; at\\ +% \cs{101}: U+0041 LATIN CAPITAL LETTER A; A\\ +% \dots\\ +% \cs{132}: U+005A LATIN CAPITAL LETTER Z; Z\\ +% \cs{133}: U+005B LEFT SQUARE BRACKET; bracketleft +% \begin{macrocode} +% U+005C REVERSE SOLIDUS; backslash +\DeclareTextCommand{\textbackslash}{PD1}{\134}% U+005C +% "U+2216 SET MINUS" simulated by "U+005C REVERSE SOLIDUS" +\DeclareTextCommand{\textsetminus}{PD1}{\textbackslash} +% \end{macrocode} +% \cs{135}: U+005D RIGHT SQUARE BRACKET; bracketright +% \begin{macrocode} +% U+005E CIRCUMFLEX ACCENT; asciicircum +\DeclareTextCommand{\textasciicircum}{PD1}{\136}% U+005E +% U+005F LOW LINE; underscore +\DeclareTextCommand{\textunderscore}{PD1}{\137}% U+005F +\DeclareTextCommand{\textmacronbelow}{PD1}{\137}% U+005F +% U+0060 GRAVE ACCENT; grave +\DeclareTextCommand{\textasciigrave}{PD1}{\140}% U+0060 +% \end{macrocode} +% \cs{141}: U+0061 LATIN SMALL LETTER A; a\\ +% \dots\\ +% \cs{150}: U+0068 LATIN SMALL LETTER H; h +% \begin{macrocode} +% U+0069 LATIN SMALL LETTER I; i +\DeclareTextCompositeCommand{\.}{PD1}{i}{i}% \151 U+0069 +% \end{macrocode} +% \cs{152}: U+006A LATIN SMALL LETTER J; j\\ +% \dots\\ +% \cs{172}: U+007A LATIN SMALL LETTER Z; z +% \begin{macrocode} +% U+007B LEFT CURLY BRACKET; braceleft +\DeclareTextCommand{\textbraceleft}{PD1}{\173}% U+007B +% U+007C VERTICAL LINE; *bar, verticalbar +\DeclareTextCommand{\textbar}{PD1}{|}% U+007C +% U+007D RIGHT CURLY BRACKET; braceright +\DeclareTextCommand{\textbraceright}{PD1}{\175}% U+007D +% U+007E TILDE; asciitilde +\DeclareTextCommand{\textasciitilde}{PD1}{\176}% U+007E +% \end{macrocode} +% Slot \cs{177} (0x7F) is undefined in PDFDocEncoding. +% \begin{macrocode} +% U+2022 BULLET; bullet +\DeclareTextCommand{\textbullet}{PD1}{\200}% U+2022 +% U+2020 DAGGER; dagger +\DeclareTextCommand{\textdagger}{PD1}{\201}% U+2020 +% U+2021 DOUBLE DAGGER; daggerdbl; \ddagger (LaTeX) +\DeclareTextCommand{\textdaggerdbl}{PD1}{\202}% U+2021 +\DeclareTextCommand{\textddagger}{PD1}{\textddagger} +% U+2026 HORIZONTAL ELLIPSIS; ellipsis +\DeclareTextCommand{\textellipsis}{PD1}{\203}% U+2026 +% U+2014 EM DASH; emdash +\DeclareTextCommand{\textemdash}{PD1}{\204}% U+2014 +% U+2013 EN DASH; endash +\DeclareTextCommand{\textendash}{PD1}{\205}% U+2013 +% U+0192 LATIN SMALL LETTER F WITH HOOK; florin +\DeclareTextCommand{\textflorin}{PD1}{\206}% U+0192 +% U+2044 FRACTION SLASH; fraction +\DeclareTextCommand{\textfractionsolidus}{PD1}{\207}% U+2044 +% U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK; guilsinglleft +\DeclareTextCommand{\guilsinglleft}{PD1}{\210}% U+2039 +% U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK; guilsinglright +\DeclareTextCommand{\guilsinglright}{PD1}{\211}% U+203A +% U+2212 MINUS SIGN; minus +\DeclareTextCommand{\textminus}{PD1}{\212}% U+2212 +% U+2030 PER MILLE SIGN; perthousand +\DeclareTextCommand{\textperthousand}{PD1}{\213}% U+2030 +% U+201E DOUBLE LOW-9 QUOTATION MARK; quotedblbase +\DeclareTextCommand{\quotedblbase}{PD1}{\214}% U+201E +% U+201C LEFT DOUBLE QUOTATION MARK; quotedblleft +\DeclareTextCommand{\textquotedblleft}{PD1}{\215}% U+201C +% U+201D RIGHT DOUBLE QUOTATION MARK; quotedblright +\DeclareTextCommand{\textquotedblright}{PD1}{\216}% U+201D +% U+2018 LEFT SINGLE QUOTATION MARK; quoteleft +\DeclareTextCommand{\textquoteleft}{PD1}{\217}% U+2018 +% U+2019 RIGHT SINGLE QUOTATION MARK; quoteright +\DeclareTextCommand{\textquoteright}{PD1}{\220}% U+2019 +% U+201A SINGLE LOW-9 QUOTATION MARK; quotesinglbase +\DeclareTextCommand{\quotesinglbase}{PD1}{\221}% U+201A +% U+2122 TRADE MARK SIGN; trademark +\DeclareTextCommand{\texttrademark}{PD1}{\222}% U+2122 +% U+FB01 LATIN SMALL LIGATURE FI; fi +\DeclareTextCommand{\textfi}{PD1}{\223}% U+FB01 +% U+FB02 LATIN SMALL LIGATURE FL; fl +\DeclareTextCommand{\textfl}{PD1}{\224}% U+FB02 +% U+0141 LATIN CAPITAL LETTER L WITH STROKE; Lslash +\DeclareTextCommand{\L}{PD1}{\225}% U+0141 +% U+0152 LATIN CAPITAL LIGATURE OE; OE +\DeclareTextCommand{\OE}{PD1}{\226}% U+0152 +% U+0160 LATIN CAPITAL LETTER S WITH CARON; Scaron +\DeclareTextCompositeCommand{\v}{PD1}{S}{\227}% U+0160 +% U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS; Ydieresis +\DeclareTextCompositeCommand{\"}{PD1}{Y}{\230}% U+0178 +\DeclareTextCommand{\IJ}{PD1}{IJ}% ligature U+0049 U+004A +% U+017D LATIN CAPITAL LETTER Z WITH CARON; Zcaron +\DeclareTextCompositeCommand{\v}{PD1}{Z}{\231}% U+017D +% U+0131 LATIN SMALL LETTER DOTLESS I; dotlessi +\DeclareTextCommand{\i}{PD1}{\232}% U+0131 +% U+0142 LATIN SMALL LETTER L WITH STROKE; lslash +\DeclareTextCommand{\l}{PD1}{\233}% U+0142 +% U+0153 LATIN SMALL LIGATURE OE; oe +\DeclareTextCommand{\oe}{PD1}{\234}% U+0153 +% U+0161 LATIN SMALL LETTER S WITH CARON; scaron +\DeclareTextCompositeCommand{\v}{PD1}{s}{\235}% U+0161 +% U+017E LATIN SMALL LETTER Z WITH CARON; zcaron +\DeclareTextCompositeCommand{\v}{PD1}{z}{\236}% U+017E +% \end{macrocode} +% Slot \cs{237} (0x9F) is not defined in PDFDocEncoding.\\ +% The euro \cs{240} is inserted in version 1.3 of the pdf +% specification. +% \begin{macrocode} +% U+20AC EURO SIGN; *Euro, euro +\DeclareTextCommand{\texteuro}{PD1}{\240}% U+20AC +% U+00A1 INVERTED EXCLAMATION MARK; exclamdown +\DeclareTextCommand{\textexclamdown}{PD1}{\241}% U+00A1 +% U+00A2 CENT SIGN; cent +\DeclareTextCommand{\textcent}{PD1}{\242}% U+00A2 +% U+00A3 POUND SIGN; sterling +\DeclareTextCommand{\textsterling}{PD1}{\243}% U+00A3 +% U+00A4 CURRENCY SIGN; currency +\DeclareTextCommand{\textcurrency}{PD1}{\244}% U+00A4 +% U+00A5 YEN SIGN; yen +\DeclareTextCommand{\textyen}{PD1}{\245}% U+00A5 +% U+00A6 BROKEN BAR; brokenbar +\DeclareTextCommand{\textbrokenbar}{PD1}{\246}% U+00A6 +% U+00A7 SECTION SIGN; section +\DeclareTextCommand{\textsection}{PD1}{\247}% U+00A7 +% U+00A8 DIAERESIS; dieresis +\DeclareTextCommand{\textasciidieresis}{PD1}{\250}% U+00A8 +% U+00A9 COPYRIGHT SIGN; copyright +\DeclareTextCommand{\textcopyright}{PD1}{\251}% U+00A9 +% U+00AA FEMININE ORDINAL INDICATOR; ordfeminine +\DeclareTextCommand{\textordfeminine}{PD1}{\252}% U+00AA +% U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK; guillemotleft +\DeclareTextCommand{\guillemotleft}{PD1}{\253}% U+00AB +% U+00AC NOT SIGN; logicalnot +\DeclareTextCommand{\textlogicalnot}{PD1}{\254}% U+00AC +\DeclareTextCommand{\textlnot}{PD1}{\254}% logical not +% \end{macrocode} +% No glyph \cs{255} in PDFDocEncoding. +% \begin{macrocode} +% U+00AE REGISTERED SIGN; registered +\DeclareTextCommand{\textregistered}{PD1}{\256}% U+00AE +% U+00AF MACRON; *macron, overscore +\DeclareTextCommand{\textasciimacron}{PD1}{\257}% U+00AF +% U+00B0 DEGREE SIGN; degree +\DeclareTextCommand{\textdegree}{PD1}{\260}% U+00B0 +% U+00B1 PLUS-MINUS SIGN; plusminus +\DeclareTextCommand{\textplusminus}{PD1}{\261}% U+00B1 +% U+00B2 SUPERSCRIPT TWO; twosuperior +\DeclareTextCommand{\texttwosuperior}{PD1}{\262}%* U+00B2 +% U+00B3 SUPERSCRIPT THREE; threesuperior +\DeclareTextCommand{\textthreesuperior}{PD1}{\263}%* U+00B3 +% U+00B4 ACUTE ACCENT; acute +\DeclareTextCommand{\textacute}{PD1}{\264}% U+00B4 +% U+00B5 MICRO SIGN; mu, mu1 +\DeclareTextCommand{\textmu}{PD1}{\265}% U+00B5 +% U+00B6 PILCROW SIGN; paragraph +\DeclareTextCommand{\textparagraph}{PD1}{\266}% U+00B6 +% U+00B7 MIDDLE DOT; middot, *periodcentered +\DeclareTextCommand{\textperiodcentered}{PD1}{\267}% U+00B7 +% U+00B8 CEDILLA; cedilla +\DeclareTextCommand{\textcedilla}{PD1}{\270}% U+00B8 +% U+00B9 SUPERSCRIPT ONE; onesuperior +\DeclareTextCommand{\textonesuperior}{PD1}{\271}%* U+00B9 +% U+00BA MASCULINE ORDINAL INDICATOR; ordmasculine +\DeclareTextCommand{\textordmasculine}{PD1}{\272}% U+00BA +% U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK; guillemotright +\DeclareTextCommand{\guillemotright}{PD1}{\273}% U+00BB +% U+00BC VULGAR FRACTION ONE QUARTER; onequarter +\DeclareTextCommand{\textonequarter}{PD1}{\274}% U+00BC +% U+00BD VULGAR FRACTION ONE HALF; onehalf +\DeclareTextCommand{\textonehalf}{PD1}{\275}% U+00BD +% U+00BE VULGAR FRACTION THREE QUARTERS; threequarters +\DeclareTextCommand{\textthreequarters}{PD1}{\276}% U+00BE +% U+00BF INVERTED QUESTION MARK; questiondown +\DeclareTextCommand{\textquestiondown}{PD1}{\277}% U+00BF +% U+00C0 LATIN CAPITAL LETTER A WITH GRAVE; Agrave +\DeclareTextCompositeCommand{\`}{PD1}{A}{\300}% U+00C0 +% U+00C1 LATIN CAPITAL LETTER A WITH ACUTE; Aacute +\DeclareTextCompositeCommand{\'}{PD1}{A}{\301}% U+00C1 +% U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX; Acircumflex +\DeclareTextCompositeCommand{\^}{PD1}{A}{\302}% U+00C2 +% U+00C3 LATIN CAPITAL LETTER A WITH TILDE; Atilde +\DeclareTextCompositeCommand{\~}{PD1}{A}{\303}% U+00C3 +% U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS; Adieresis +\DeclareTextCompositeCommand{\"}{PD1}{A}{\304}% U+00C4 +% U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE; Aring +\DeclareTextCompositeCommand{\r}{PD1}{A}{\305}% U+00C5 +% U+00C6 LATIN CAPITAL LETTER AE; AE +\DeclareTextCommand{\AE}{PD1}{\306}% U+00C6 +% U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA; Ccedilla +\DeclareTextCompositeCommand{\c}{PD1}{C}{\307}% U+00C7 +% U+00C8 LATIN CAPITAL LETTER E WITH GRAVE; Egrave +\DeclareTextCompositeCommand{\`}{PD1}{E}{\310}% U+00C8 +% U+00C9 LATIN CAPITAL LETTER E WITH ACUTE; Eacute +\DeclareTextCompositeCommand{\'}{PD1}{E}{\311}% U+00C9 +% U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX; Ecircumflex +\DeclareTextCompositeCommand{\^}{PD1}{E}{\312}% U+00CA +% U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS; Edieresis +\DeclareTextCompositeCommand{\"}{PD1}{E}{\313}% U+00CB +% U+00CC LATIN CAPITAL LETTER I WITH GRAVE; Igrave +\DeclareTextCompositeCommand{\`}{PD1}{I}{\314}% U+00CC +% U+00CD LATIN CAPITAL LETTER I WITH ACUTE; Iacute +\DeclareTextCompositeCommand{\'}{PD1}{I}{\315}% U+00CD +% U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX; Icircumflex +\DeclareTextCompositeCommand{\^}{PD1}{I}{\316}% U+00CE +% U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS; Idieresis +\DeclareTextCompositeCommand{\"}{PD1}{I}{\317}% U+00CF +% U+00D0 LATIN CAPITAL LETTER ETH; Eth +\DeclareTextCommand{\DH}{PD1}{\320}% U+00D0 +\DeclareTextCommand{\DJ}{PD1}{\320}% U+00D0 +% U+00D1 LATIN CAPITAL LETTER N WITH TILDE; Ntilde +\DeclareTextCompositeCommand{\~}{PD1}{N}{\321}% U+00D1 +% U+00D2 LATIN CAPITAL LETTER O WITH GRAVE; Ograve +\DeclareTextCompositeCommand{\`}{PD1}{O}{\322}% U+00D2 +% U+00D3 LATIN CAPITAL LETTER O WITH ACUTE; Oacute +\DeclareTextCompositeCommand{\'}{PD1}{O}{\323}% U+00D3 +% U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX; Ocircumflex +\DeclareTextCompositeCommand{\^}{PD1}{O}{\324}% U+00D4 +% U+00D5 LATIN CAPITAL LETTER O WITH TILDE; Otilde +\DeclareTextCompositeCommand{\~}{PD1}{O}{\325}% U+00D5 +% U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS; Odieresis +\DeclareTextCompositeCommand{\"}{PD1}{O}{\326}% U+00D6 +% U+00D7 MULTIPLICATION SIGN; multiply +\DeclareTextCommand{\textmultiply}{PD1}{\327}% U+00D7 +% U+00D8 LATIN CAPITAL LETTER O WITH STROKE; Oslash +\DeclareTextCommand{\O}{PD1}{\330}% U+00D8 +% U+00D9 LATIN CAPITAL LETTER U WITH GRAVE; Ugrave +\DeclareTextCompositeCommand{\`}{PD1}{U}{\331}% U+00D9 +% U+00DA LATIN CAPITAL LETTER U WITH ACUTE; Uacute +\DeclareTextCompositeCommand{\'}{PD1}{U}{\332}% U+00DA +% U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX; Ucircumflex +\DeclareTextCompositeCommand{\^}{PD1}{U}{\333}% U+00DB +% U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS; Udieresis +\DeclareTextCompositeCommand{\"}{PD1}{U}{\334}% U+00DC +% U+00DD LATIN CAPITAL LETTER Y WITH ACUTE; Yacute +\DeclareTextCompositeCommand{\'}{PD1}{Y}{\335}% U+00DD +% U+00DE LATIN CAPITAL LETTER THORN; Thorn; \TH, \Thorn (wasysym) +\DeclareTextCommand{\TH}{PD1}{\336}% U+00DE +\DeclareTextCommand{\textThorn}{PD1}{\336}%* U+00DE +% U+00DF LATIN SMALL LETTER SHARP S; germandbls +\DeclareTextCommand{\ss}{PD1}{\337}% U+00DF +% U+00E0 LATIN SMALL LETTER A WITH GRAVE; agrave +\DeclareTextCompositeCommand{\`}{PD1}{a}{\340}% U+00E0 +% U+00E1 LATIN SMALL LETTER A WITH ACUTE; aacute +\DeclareTextCompositeCommand{\'}{PD1}{a}{\341}% U+00E1 +% U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX; acircumflex +\DeclareTextCompositeCommand{\^}{PD1}{a}{\342}% U+00E2 +% U+00E3 LATIN SMALL LETTER A WITH TILDE; atilde +\DeclareTextCompositeCommand{\~}{PD1}{a}{\343}% U+00E3 +% U+00E4 LATIN SMALL LETTER A WITH DIAERESIS; adieresis +\DeclareTextCompositeCommand{\"}{PD1}{a}{\344}% U+00E4 +% U+00E5 LATIN SMALL LETTER A WITH RING ABOVE; aring +\DeclareTextCompositeCommand{\r}{PD1}{a}{\345}% U+00E5 +% U+00E6 LATIN SMALL LETTER AE; ae +\DeclareTextCommand{\ae}{PD1}{\346}% U+00E6 +% U+00E7 LATIN SMALL LETTER C WITH CEDILLA; ccedilla +\DeclareTextCompositeCommand{\c}{PD1}{c}{\347}% U+00E7 +% U+00E8 LATIN SMALL LETTER E WITH GRAVE; egrave +\DeclareTextCompositeCommand{\`}{PD1}{e}{\350}% U+00E8 +% U+00E9 LATIN SMALL LETTER E WITH ACUTE; eacute +\DeclareTextCompositeCommand{\'}{PD1}{e}{\351}% U+00E9 +% U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX; ecircumflex +\DeclareTextCompositeCommand{\^}{PD1}{e}{\352}% U+00EA +% U+00EB LATIN SMALL LETTER E WITH DIAERESIS; edieresis +\DeclareTextCompositeCommand{\"}{PD1}{e}{\353}% U+00EB +% U+00EC LATIN SMALL LETTER I WITH GRAVE; igrave +\DeclareTextCompositeCommand{\`}{PD1}{i}{\354}% U+00EC +\DeclareTextCompositeCommand{\`}{PD1}{\i}{\354}% U+00EC +% U+00ED LATIN SMALL LETTER I WITH ACUTE; iacute +\DeclareTextCompositeCommand{\'}{PD1}{i}{\355}% U+00ED +\DeclareTextCompositeCommand{\'}{PD1}{\i}{\355}% U+00ED +% U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX; icircumflex +\DeclareTextCompositeCommand{\^}{PD1}{i}{\356}% U+00EE +\DeclareTextCompositeCommand{\^}{PD1}{\i}{\356}% U+00EE +% U+00EF LATIN SMALL LETTER I WITH DIAERESIS; idieresis +\DeclareTextCompositeCommand{\"}{PD1}{i}{\357}% U+00EF +\DeclareTextCompositeCommand{\"}{PD1}{\i}{\357}% U+00EF +% U+00F0 LATIN SMALL LETTER ETH; eth +\DeclareTextCommand{\dh}{PD1}{\360}% U+00F0 +% U+00F1 LATIN SMALL LETTER N WITH TILDE; ntilde +\DeclareTextCompositeCommand{\~}{PD1}{n}{\361}% U+00F1 +% U+00F2 LATIN SMALL LETTER O WITH GRAVE; ograve +\DeclareTextCompositeCommand{\`}{PD1}{o}{\362}% U+00F2 +% U+00F3 LATIN SMALL LETTER O WITH ACUTE; oacute +\DeclareTextCompositeCommand{\'}{PD1}{o}{\363}% U+00F3 +% U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX; ocircumflex +\DeclareTextCompositeCommand{\^}{PD1}{o}{\364}% U+00F4 +% U+00F5 LATIN SMALL LETTER O WITH TILDE; otilde +\DeclareTextCompositeCommand{\~}{PD1}{o}{\365}% U+00F5 +% U+00F6 LATIN SMALL LETTER O WITH DIAERESIS; odieresis +\DeclareTextCompositeCommand{\"}{PD1}{o}{\366}% U+00F6 +% U+00F7 DIVISION SIGN; divide +\DeclareTextCommand{\textdivide}{PD1}{\367}% U+00F7 +% U+00F8 LATIN SMALL LETTER O WITH STROKE; oslash +\DeclareTextCommand{\o}{PD1}{\370}% U+00F8 +% U+00F9 LATIN SMALL LETTER U WITH GRAVE; ugrave +\DeclareTextCompositeCommand{\`}{PD1}{u}{\371}% U+00F9 +% U+00FA LATIN SMALL LETTER U WITH ACUTE; uacute +\DeclareTextCompositeCommand{\'}{PD1}{u}{\372}% U+00FA +% U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX; ucircumflex +\DeclareTextCompositeCommand{\^}{PD1}{u}{\373}% U+00FB +% U+00FC LATIN SMALL LETTER U WITH DIAERESIS; udieresis +\DeclareTextCompositeCommand{\"}{PD1}{u}{\374}% U+00FC +% U+00FD LATIN SMALL LETTER Y WITH ACUTE; yacute +\DeclareTextCompositeCommand{\'}{PD1}{y}{\375}% U+00FD +% U+00FE LATIN SMALL LETTER THORN; thorn; \th, \thorn (wasysym) +\DeclareTextCommand{\th}{PD1}{\376}% U+00FE +\DeclareTextCommand{\textthorn}{PD1}{\376}%* U+00FE +% U+00FF LATIN SMALL LETTER Y WITH DIAERESIS; ydieresis +\DeclareTextCompositeCommand{\"}{PD1}{y}{\377}% U+00FF +\DeclareTextCommand{\ij}{PD1}{ij}% ligature U+0069 U+006A +% \end{macrocode} +% Glyphs that consist of several characters. +% \begin{macrocode} +\DeclareTextCommand{\SS}{PD1}{SS}% +\DeclareTextCommand{\textcelsius}{PD1}{\textdegree C}% +% \end{macrocode} +% Aliases (german.sty) +% \begin{macrocode} +\DeclareTextCommand{\textglqq}{PD1}{\quotedblbase}% +\DeclareTextCommand{\textgrqq}{PD1}{\textquotedblleft}% +\DeclareTextCommand{\textglq}{PD1}{\quotesinglbase}% +\DeclareTextCommand{\textgrq}{PD1}{\textquoteleft}% +\DeclareTextCommand{\textflqq}{PD1}{\guillemotleft}% +\DeclareTextCommand{\textfrqq}{PD1}{\guillemotright}% +\DeclareTextCommand{\textflq}{PD1}{\guilsinglleft}% +\DeclareTextCommand{\textfrq}{PD1}{\guilsinglright}% +% \end{macrocode} +% Aliases (math names) +% \begin{macrocode} +\DeclareTextCommand{\textneg}{PD1}{\textlogicalnot}% +\DeclareTextCommand{\texttimes}{PD1}{\textmultiply}% +\DeclareTextCommand{\textdiv}{PD1}{\textdivide}% +\DeclareTextCommand{\textpm}{PD1}{\textplusminus}% +\DeclareTextCommand{\textcdot}{PD1}{\textperiodcentered}% +\DeclareTextCommand{\textbeta}{PD1}{\ss}% +% \end{macrocode} +% Polish aliases. PDF encoding does not have the characters, but it +% is useful to Poles to have the plain letters regardless. Requested by +% Wojciech Myszka (\Email{W.Myszka@immt.pwr.wroc.pl}). +% \begin{macrocode} +\DeclareTextCompositeCommand{\k}{PD1}{a}{a}% aogonek +\DeclareTextCompositeCommand{\'}{PD1}{c}{c}% cacute +\DeclareTextCompositeCommand{\k}{PD1}{e}{e}% eogonek +\DeclareTextCompositeCommand{\'}{PD1}{n}{n}% nacute +\DeclareTextCompositeCommand{\'}{PD1}{s}{s}% sacute +\DeclareTextCompositeCommand{\'}{PD1}{z}{z}% zacute +\DeclareTextCompositeCommand{\.}{PD1}{z}{z}% zdot +% \end{macrocode} +% \begin{macrocode} +\DeclareTextCompositeCommand{\k}{PD1}{A}{A}% Aogonek +\DeclareTextCompositeCommand{\'}{PD1}{C}{C}% Cacute +\DeclareTextCompositeCommand{\k}{PD1}{E}{E}% Eogonek +\DeclareTextCompositeCommand{\'}{PD1}{N}{N}% Nacute +\DeclareTextCompositeCommand{\'}{PD1}{S}{S}% Sacute +\DeclareTextCompositeCommand{\'}{PD1}{Z}{Z}% Zacute +\DeclareTextCompositeCommand{\.}{PD1}{Z}{Z}% Zdot +% \end{macrocode} +% \begin{macrocode} +%</pd1enc> +% \end{macrocode} +% +% \subsection{PU encoding} +% \begin{macrocode} +%<*puenc> +\DeclareFontEncoding{PU}{}{} +% \end{macrocode} +% +% \subsubsection{NFSS2 accents} +% +% \begin{macrocode} +% U+0300 COMBINING GRAVE ACCENT; gravecmb, *gravecomb +\DeclareTextCommand{\`}{PU}[1]{#1\83\000}% U+0300 +% U+0301 COMBINING ACUTE ACCENT; acutecmb, *acutecomb +\DeclareTextCommand{\'}{PU}[1]{#1\83\001}% U+0301 +% U+0302 COMBINING CIRCUMFLEX ACCENT; circumflexcmb +\DeclareTextCommand{\^}{PU}[1]{#1\83\002}% U+0302 +% U+0303 COMBINING TILDE; tildecmb, *tildecomb +\DeclareTextCommand{\~}{PU}[1]{#1\83\003}% U+0303 +% U+0304 COMBINING MACRON; macroncmb +\DeclareTextCommand{\=}{PU}[1]{#1\83\004}% U+0304 +% U+0306 COMBINING BREVE; brevecmb +\DeclareTextCommand{\u}{PU}[1]{#1\83\006}% U+0306 +\DeclareTextCommand{\U}{PU}[1]{#1\83\006}% U+0306 +% U+0307 COMBINING DOT ABOVE; dotaccentcmb +\DeclareTextCommand{\.}{PU}[1]{#1\83\007}% U+0307 +% U+0308 COMBINING DIAERESIS; dieresiscmb +\DeclareTextCommand{\"}{PU}[1]{#1\83\010}% U+0308 +% U+030A COMBINING RING ABOVE; ringcmb +\DeclareTextCommand{\r}{PU}[1]{#1\83\012}% U+030A +% U+030B COMBINING DOUBLE ACUTE ACCENT; hungarumlautcmb +\DeclareTextCommand{\H}{PU}[1]{#1\83\013}% U+030B +% U+030C COMBINING CARON; caroncmb +\DeclareTextCommand{\v}{PU}[1]{#1\83\014}% U+030C +% U+030F COMBINING DOUBLE GRAVE ACCENT; dblgravecmb +\DeclareTextCommand{\G}{PU}[1]{#1\83\017}% U+030F +\DeclareTextCommand{\C}{PU}[1]{#1\83\017}% U+030F +% U+0311 COMBINING INVERTED BREVE; breveinvertedcmb +\DeclareTextCommand{\textinvbreve}{PU}[1]{#1\83\021}% U+0311 +\DeclareTextCommand{\newtie}{PU}[1]{#1\83\021}% U+0311 +% U+0323 COMBINING DOT BELOW; dotbelowcmb, *dotbelowcomb +\DeclareTextCommand{\d}{PU}[1]{#1\83\043}% U+0323 +% U+0324 COMBINING DIAERESIS BELOW; dieresisbelowcmb; \textsubumlaut (tipa) +\DeclareTextCommand{\textsubumlaut}{PU}[1]{#1\83\044}% U+0324 +% U+0325 COMBINING RING BELOW; ringbelowcmb; \textsubring (tipa) +\DeclareTextCommand{\textsubring}{PU}[1]{#1\83\045}% U+0325 +% U+0327 COMBINING CEDILLA; cedillacmb +\DeclareTextCommand{\c}{PU}[1]{#1\83\047}% U+0327 +% U+0328 COMBINING OGONEK; ogonekcmb +\DeclareTextCommand{\k}{PU}[1]{#1\83\050}% U+0328 +% U+032D COMBINING CIRCUMFLEX ACCENT BELOW; +% \textsubcircum (tipa) +\DeclareTextCommand{\textsubcircum}{PU}[1]{#1\83\055}% U+032D +% U+032E COMBINING BREVE BELOW; brevebelowcmb +\DeclareTextCommand{\textsubbreve}{PU}[1]{#1\83\056}% U+032E +% U+0330 COMBINING TILDE BELOW; tildebelowcmb; \textsubtilde (tipa) +\DeclareTextCommand{\textsubtilde}{PU}[1]{#1\83\060}% U+0330 +% U+0331 COMBINING MACRON BELOW; macronbelowcmb +\DeclareTextCommand{\b}{PU}[1]{#1\83\061}% U+0331 +% U+0361 COMBINING DOUBLE INVERTED BREVE; breveinverteddoublecmb +\DeclareTextCommand{\t}{PU}[1]{#1\83\141}% U+0361 +% U+20DD COMBINING ENCLOSING CIRCLE +\DeclareTextCommand{\textcircled}{PU}[1]{#1\9040\335}% U+20DD +% \end{macrocode} +% +% Double accents. +% \begin{macrocode} +\DeclareTextCommand{\textacutemacron}{PU}[1]{#1\83\001\83\004}% U+0301 U+0304 +\DeclareTextCommand{\textgravemacron}{PU}[1]{#1\83\000\83\004}% U+0300 U+0304 +% \end{macrocode} +% +% \cs{@empty} is an artefact of the NFSS2 machinery, it +% gets inserted for empty arguments and spaces. +% \begin{macrocode} +\DeclareTextCompositeCommand{\`}{PU}{\@empty}{\textasciigrave}% +\DeclareTextCompositeCommand{\'}{PU}{\@empty}{\textacute}% +\DeclareTextCompositeCommand{\^}{PU}{\@empty}{\textasciicircum}% +\DeclareTextCompositeCommand{\~}{PU}{\@empty}{\texttilde}% +\DeclareTextCompositeCommand{\"}{PU}{\@empty}{\textasciidieresis}% +\DeclareTextCompositeCommand{\r}{PU}{\@empty}{\textring}% +\DeclareTextCompositeCommand{\v}{PU}{\@empty}{\textasciicaron}% +\DeclareTextCompositeCommand{\.}{PU}{\@empty}{\textdotaccent}% +\DeclareTextCompositeCommand{\c}{PU}{\@empty}{\textcedilla}% +\DeclareTextCompositeCommand{\u}{PU}{\@empty}{\textasciibreve}% +\DeclareTextCompositeCommand{\G}{PU}{\@empty}{\textdoublegrave}% +\DeclareTextCompositeCommand{\=}{PU}{\@empty}{\textasciimacron}% +\DeclareTextCompositeCommand{\H}{PU}{\@empty}{\texthungarumlaut}% +\DeclareTextCompositeCommand{\k}{PU}{\@empty}{\textogonek}% +\DeclareTextCompositeCommand{\textinvbreve}{PU}{\@empty}{{ \83\021}}% U+0311 +\DeclareTextCompositeCommand{\textsubumlaut}{PU}{\@empty}{{ \83\044}}% U+0324 +\DeclareTextCompositeCommand{\textsubring}{PU}{\@empty}{\textringlow}% +\DeclareTextCompositeCommand{\textsubcircum}{PU}{\@empty}{\textcircumlow}% +\DeclareTextCompositeCommand{\textsubbreve}{PU}{\@empty}{{ \83\056}}% U+032E +\DeclareTextCompositeCommand{\textsubtilde}{PU}{\@empty}{\texttildelow}% +\DeclareTextCompositeCommand{\b}{PU}{\@empty}{\textmacronbelow}% +\DeclareTextCompositeCommand{\d}{PU}{\@empty}{\textdotbelow}% +\DeclareTextCompositeCommand{\t}{PU}{\@empty}{\texttie}% +\DeclareTextCompositeCommand{\newtie}{PU}{\@empty}{\textnewtie}% +\DeclareTextCompositeCommand{\textcircled}{PU}{\@empty}{\textbigcircle}% +\DeclareTextCompositeCommand{\textacutemacron}{PU}{\@empty}{{ \83\001\83\004}}% U+0301 U+0304 +\DeclareTextCompositeCommand{\textgravemacron}{PU}{\@empty}{{ \83\000\83\004}}% U+0300 U+0304 +% \end{macrocode} +% \begin{macrocode} +\DeclareTextCompositeCommand{\`}{PU}{\ }{\textasciigrave}% +\DeclareTextCompositeCommand{\'}{PU}{\ }{\textacute}% +\DeclareTextCompositeCommand{\^}{PU}{\ }{\textasciicircum}% +\DeclareTextCompositeCommand{\~}{PU}{\ }{\texttilde}% +\DeclareTextCompositeCommand{\"}{PU}{\ }{\textasciidieresis}% +\DeclareTextCompositeCommand{\r}{PU}{\ }{\textring}% +\DeclareTextCompositeCommand{\v}{PU}{\ }{\textasciicaron}% +\DeclareTextCompositeCommand{\.}{PU}{\ }{\textdotaccent}% +\DeclareTextCompositeCommand{\c}{PU}{\ }{\textcedilla}% +\DeclareTextCompositeCommand{\u}{PU}{\ }{\textasciibreve}% +\DeclareTextCompositeCommand{\G}{PU}{\ }{\textdoublegrave}% +\DeclareTextCompositeCommand{\=}{PU}{\ }{\textasciimacron}% +\DeclareTextCompositeCommand{\H}{PU}{\ }{\texthungarumlaut}% +\DeclareTextCompositeCommand{\k}{PU}{\ }{\textogonek}% +\DeclareTextCompositeCommand{\textinvbreve}{PU}{\ }{{ \83\021}}% U+0311 +\DeclareTextCompositeCommand{\textsubumlaut}{PU}{\ }{{ \83\044}}% U+0324 +\DeclareTextCompositeCommand{\textsubring}{PU}{\ }{\textringlow}% +\DeclareTextCompositeCommand{\textsubcircum}{PU}{\ }{\textcircumlow}% +\DeclareTextCompositeCommand{\textsubbreve}{PU}{\ }{{ \83\056}}% U+032E +\DeclareTextCompositeCommand{\textsubtilde}{PU}{\ }{\texttildelow}% +\DeclareTextCompositeCommand{\b}{PU}{\ }{\textmacronbelow}% +\DeclareTextCompositeCommand{\d}{PU}{\ }{\textdotbelow}% +\DeclareTextCompositeCommand{\t}{PU}{\ }{\texttie}% +\DeclareTextCompositeCommand{\newtie}{PU}{\ }{\textnewtie}% +\DeclareTextCompositeCommand{\textcircled}{PU}{\ }{\textbigcircle}% +\DeclareTextCompositeCommand{\textacutemacron}{PU}{\ }{{ \83\001\83\004}}% U+0301 U+0304 +\DeclareTextCompositeCommand{\textgravemacron}{PU}{\ }{{ \83\000\83\004}}% U+0300 U+0304 +% \end{macrocode} +% Accents for capitals (see encoding TS1) +% \begin{macrocode} +\DeclareTextCommand{\capitalcedilla}{PU}[1]{\c{#1}}% +\DeclareTextCommand{\capitalogonek}{PU}[1]{\k{#1}}% +\DeclareTextCommand{\capitalgrave}{PU}[1]{\`{#1}}% +\DeclareTextCommand{\capitalacute}{PU}[1]{\'{#1}}% +\DeclareTextCommand{\capitalcircumflex}{PU}[1]{\^{#1}}% +\DeclareTextCommand{\capitaltilde}{PU}[1]{\~{#1}}% +\DeclareTextCommand{\capitaldieresis}{PU}[1]{\"{#1}}% +\DeclareTextCommand{\capitalhungarumlaut}{PU}[1]{\H{#1}}% +\DeclareTextCommand{\capitalring}{PU}[1]{\r{#1}}% +\DeclareTextCommand{\capitalcaron}{PU}[1]{\v{#1}}% +\DeclareTextCommand{\capitalbreve}{PU}[1]{\u{#1}}% +\DeclareTextCommand{\capitalmacron}{PU}[1]{\={#1}}% +\DeclareTextCommand{\capitaldotaccent}{PU}[1]{\.{#1}}% +\DeclareTextCommand{\capitaltie}{PU}[1]{\t{#1}}% +\DeclareTextCommand{\capitalnewtie}{PU}[1]{\newtie{#1}}% +% \end{macrocode} +% +% \subsubsection{Basic Latin: U+0000 to U+007F} +% +% Special white space escape characters. +% \begin{macrocode} +% U+0009 (CHARACTER TABULATION) +\DeclareTextCommand{\textHT}{PU}{\80\011}% U+0009 +% U+000A (LINE FEED) +\DeclareTextCommand{\textLF}{PU}{\80\012}% U+000A +% U+000D (CARRIAGE RETURN) +\DeclareTextCommand{\textCR}{PU}{\80\015}% U+000D +% \end{macrocode} +% |\80\040|: U+0020 SPACE; space, spacehackarabic\\ +% |\80\041|: U+0021 EXCLAMATION MARK; exclam +% \begin{macrocode} +% U+0022 QUOTATION MARK; quotedbl +\DeclareTextCommand{\textquotedbl}{PU}{"}% \80\042 U+0022 +% U+0023 NUMBER SIGN; numbersign +\DeclareTextCommand{\textnumbersign}{PU}{\80\043}% U+0023 +% U+0024 DOLLAR SIGN; dollar +\DeclareTextCommand{\textdollar}{PU}{\80\044}% U+0024 +%* \textdollar -> \mathdollar +%* \textdollar -> \EyesDollar (marvosym) +% U+0025 PERCENT SIGN; percent +\DeclareTextCommand{\textpercent}{PU}{\80\045}% U+0025 +% U+0026 AMPERSAND; ampersand +\DeclareTextCommand{\textampersand}{PU}{\80\046}% U+0026 +%* \textampersand -> \binampersand (stmaryrd) +%* \textampersand -> \with (cmll) +% U+0027 APOSTROPHE; quotesingle +\DeclareTextCommand{\textquotesingle}{PU}{\80\047}% U+0027 +% U+0028 LEFT PARENTHESIS; parenleft +\DeclareTextCommand{\textparenleft}{PU}{\80\050}% U+0028 +% U+0029 RIGHT PARENTHESIS; parenright +\DeclareTextCommand{\textparenright}{PU}{\80\051}% U+0029 +% U+002A ASTERISK; asterisk; (?) +\DeclareTextCommand{\textasteriskcentered}{PU}{\80\052}% U+002A +% U+002B PLUS SIGN; plus; \MVPlus (marvosym) +\DeclareTextCommand{\textMVPlus}{PU}{\80\053}%* U+002B +% U+002C COMMA; comma; \MVComma (marvosym) +\DeclareTextCommand{\textMVComma}{PU}{\80\054}%* U+002C +% U+002D HYPHEN-MINUS; hyphen; \MVMinus (marvosym) +\DeclareTextCommand{\textMVMinus}{PU}{\80\055}%* U+002D +% U+002E FULL STOP; period; \MVPeriod (marvosym) +\DeclareTextCommand{\textMVPeriod}{PU}{\80\056}%* U+002E +% U+002F SOLIDUS; slash; \MVDivision (marvosym) +\DeclareTextCommand{\textMVDivision}{PU}{\80\057}%* U+002F +% U+0030 DIGIT ZERO; zero; \MVZero (marvosym) +\DeclareTextCommand{\textMVZero}{PU}{\80\060}%* U+0030 +% U+0031 DIGIT ONE; one; \MVOne (marvosym) +\DeclareTextCommand{\textMVOne}{PU}{\80\061}%* U+0031 +% U+0032 DIGIT TWO; two; \MVTwo (marvosym) +\DeclareTextCommand{\textMVTwo}{PU}{\80\062}%* U+0032 +% U+0033 DIGIT THREE; three; \MVThree (marvosym) +\DeclareTextCommand{\textMVThree}{PU}{\80\063}%* U+0033 +% U+0034 DIGIT FOUR; four; \MVFour (marvosym) +\DeclareTextCommand{\textMVFour}{PU}{\80\064}%* U+0034 +% U+0035 DIGIT FIVE; five; \MVFive (marvosym) +\DeclareTextCommand{\textMVFive}{PU}{\80\065}%* U+0035 +% U+0036 DIGIT SIX; six; \MVSix (marvosym) +\DeclareTextCommand{\textMVSix}{PU}{\80\066}%* U+0036 +% U+0037 DIGIT SEVEM; seven; \MVSeven (marvosym) +\DeclareTextCommand{\textMVSeven}{PU}{\80\067}%* U+0037 +% U+0038 DIGIT EIGHT; eight; \MVEight (marvosym) +\DeclareTextCommand{\textMVEight}{PU}{\80\070}%* U+0038 +% U+0039 DIGIT NINE; nine; \MVNine (marvosym) +\DeclareTextCommand{\textMVNine}{PU}{\80\071}%* U+0039 +% \end{macrocode} +% |\80\072|: U+003A COLON; colon\\ +% |\80\073|: U+003B SEMICOLON; semicolon +% \begin{macrocode} +% U+003C LESS-THAN SIGN; less +\DeclareTextCommand{\textless}{PU}{<}% \80\074 U+003C +% \end{macrocode} +% |\80\075|: U+003D EQUALS SIGN; equal +% \begin{macrocode} +% U+003E GREATER-THAN SIGN; greater +\DeclareTextCommand{\textgreater}{PU}{>}% \80\076 U+003E +% \end{macrocode} +% |\80\077|: U+003F QUESTION MARK; question +% \begin{macrocode} +% U+0040 COMMERCIAL AT; at; \MVAt (marvosym) +\DeclareTextCommand{\textMVAt}{PU}{\80\100}%* U+0040 +% \end{macrocode} +% |\80\101|: U+0041 LATIN CAPITAL LETTER A; A\\ +% \dots\\ +% |\80\132|: U+005A LATIN CAPITAL LETTER Z; Z\\ +% |\80\133|: U+005B LEFT SQUARE BRACKET; bracketleft +% \begin{macrocode} +% U+005C REVERSE SOLIDUS; backslash +\DeclareTextCommand{\textbackslash}{PU}{\80\134}% U+005C +% \end{macrocode} +% |\80\135|: U+005D RIGHT SQUARE BRACKET; bracketright +% \begin{macrocode} +% U+005E CIRCUMFLEX ACCENT; asciicircum +\DeclareTextCommand{\textasciicircum}{PU}{\80\136}% U+005E +% U+005F LOW LINE; underscore +\DeclareTextCommand{\textunderscore}{PU}{\80\137}% U+005F +%* \textunderscore -> \mathunderscore (LaTeX) +% U+0060 GRAVE ACCENT; grave +\DeclareTextCommand{\textasciigrave}{PU}{\80\140}% U+0060 +% \end{macrocode} +% |\80\141|: U+0061 LATIN SMALL LETTER A; a\\ +% \dots\\ +% |\80\150|: U+0068 LATIN SMALL LETTER H; h +% \begin{macrocode} +% U+0069 LATIN SMALL LETTER I; i +\DeclareTextCompositeCommand{\.}{PU}{\i}{i}% \80\151 U+0069 +\DeclareTextCompositeCommand{\.}{PU}{i}{i}% \80\151 U+0069 +% \end{macrocode} +% |\80\152|: U+006A LATIN SMALL LETTER J; j\\ +% \dots\\ +% |\80\172|: U+007A LATIN SMALL LETTER Z; z +% \begin{macrocode} +% U+007B LEFT CURLY BRACKET; braceleft +\DeclareTextCommand{\textbraceleft}{PU}{\80\173}% U+007B +% U+007C VERTICAL LINE; *bar, verticalbar +\DeclareTextCommand{\textbar}{PU}{|}% \80\174 U+007C +%* \textbar -> \textvertline (tipa) +% U+007D RIGHT CURLY BRACKET; braceright +\DeclareTextCommand{\textbraceright}{PU}{\80\175}% U+007D +% U+007E TILDE; asciitilde +\DeclareTextCommand{\textasciitilde}{PU}{\80\176}% U+007E +% \end{macrocode} +% +% \subsubsection{Latin-1 Supplement: U+0080 to U+00FF} +% +% |\80\240|: U+00A0 NO-BREAK SPACE; nbspace, nonbreakingspace +% \begin{macrocode} +% U+00A1 INVERTED EXCLAMATION MARK; exclamdown +\DeclareTextCommand{\textexclamdown}{PU}{\80\241}% U+00A1 +% U+00A2 CENT SIGN; cent +\DeclareTextCommand{\textcent}{PU}{\80\242}% U+00A2 +% U+00A3 POUND SIGN; sterling +\DeclareTextCommand{\textsterling}{PU}{\80\243}% U+00A3 +%* \textsterling -> \mathsterling (LaTeX) +%* \textsterling -> \pounds (LaTeX) +% U+00A4 CURRENCY SIGN; currency +\DeclareTextCommand{\textcurrency}{PU}{\80\244}% U+00A4 +% U+00A5 YEN SIGN; yen +\DeclareTextCommand{\textyen}{PU}{\80\245}% U+00A5 +% U+00A6 BROKEN BAR; brokenbar +\DeclareTextCommand{\textbrokenbar}{PU}{\80\246}% U+00A6 +%* \textbrokenbar -> \brokenvert (wasysym) +% U+00A7 SECTION SIGN; section +\DeclareTextCommand{\textsection}{PU}{\80\247}% U+00A7 +%* \textsection -> \mathsection (LaTeX) +%* \textsection -> \S (LaTeX) +% U+00A8 DIAERESIS; dieresis +\DeclareTextCommand{\textasciidieresis}{PU}{\80\250}% U+00A8 +% U+00A9 COPYRIGHT SIGN; copyright +\DeclareTextCommand{\textcopyright}{PU}{\80\251}%* U+00A9 +% U+00AA FEMININE ORDINAL INDICATOR; ordfeminine +\DeclareTextCommand{\textordfeminine}{PU}{\80\252}% U+00AA +% U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK; guillemotleft +\DeclareTextCommand{\guillemotleft}{PU}{\80\253}% U+00AB +% U+00AC NOT SIGN; logicalnot +\DeclareTextCommand{\textlogicalnot}{PU}{\80\254}% U+00AC +\DeclareTextCommand{\textlnot}{PU}{\80\254}% U+00AC +% \end{macrocode} +% |\80\255|: U+00AD SOFT HYPHEN; sfthyphen, softhyphen +% \begin{macrocode} +% U+00AE REGISTERED SIGN; registered +\DeclareTextCommand{\textregistered}{PU}{\80\256}% U+00AE +% U+00AF MACRON; *macron, overscore +\DeclareTextCommand{\textasciimacron}{PU}{\80\257}% U+00AF +% U+00B0 DEGREE SIGN; degree +\DeclareTextCommand{\textdegree}{PU}{\80\260}% U+00B0 +% U+00B1 PLUS-MINUS SIGN; plusminus +\DeclareTextCommand{\textplusminus}{PU}{\80\261}% U+00B1 +% U+00B2 SUPERSCRIPT TWO; twosuperior +\DeclareTextCommand{\texttwosuperior}{PU}{\80\262}%* U+00B2 +% U+00B3 SUPERSCRIPT THREE; threesuperior +\DeclareTextCommand{\textthreesuperior}{PU}{\80\263}%* U+00B3 +% U+00B4 ACUTE ACCENT; acute +\DeclareTextCommand{\textacute}{PU}{\80\264}% U+00B4 +\DeclareTextCommand{\textasciiacute}{PU}{\80\264}% U+00B4 +% U+00B5 MICRO SIGN; mu, mu1 +\DeclareTextCommand{\textmu}{PU}{\80\265}% U+00B5 +% U+00B6 PILCROW SIGN; paragraph +\DeclareTextCommand{\textparagraph}{PU}{\80\266}% U+00B6 +%* \textparagraph -> \mathparagraph (LaTeX) +% U+00B7 MIDDLE DOT; middot, *periodcentered +\DeclareTextCommand{\textperiodcentered}{PU}{\80\267}% U+00B7 +%* \textperiodcentered -> \MultiplicationDot (marvosym) +%* \textperiodcentered -> \Squaredot (marvosym) +% U+00B8 CEDILLA; cedilla +\DeclareTextCommand{\textcedilla}{PU}{\80\270}% U+00B8 +% U+00B9 SUPERSCRIPT ONE; onesuperior +\DeclareTextCommand{\textonesuperior}{PU}{\80\271}%* U+00B9 +% U+00BA MASCULINE ORDINAL INDICATOR; ordmasculine +\DeclareTextCommand{\textordmasculine}{PU}{\80\272}% U+00BA +% U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK; guillemotright +\DeclareTextCommand{\guillemotright}{PU}{\80\273}% U+00BB +% U+00BC VULGAR FRACTION ONE QUARTER; onequarter +\DeclareTextCommand{\textonequarter}{PU}{\80\274}% U+00BC +% U+00BD VULGAR FRACTION ONE HALF; onehalf +\DeclareTextCommand{\textonehalf}{PU}{\80\275}% U+00BD +% U+00BE VULGAR FRACTION THREE QUARTERS; threequarters +\DeclareTextCommand{\textthreequarters}{PU}{\80\276}% U+00BE +% U+00BF INVERTED QUESTION MARK; questiondown +\DeclareTextCommand{\textquestiondown}{PU}{\80\277}% U+00BF +% U+00C0 LATIN CAPITAL LETTER A WITH GRAVE; Agrave +\DeclareTextCompositeCommand{\`}{PU}{A}{\80\300}% U+00C0 +% U+00C1 LATIN CAPITAL LETTER A WITH ACUTE; Aacute +\DeclareTextCompositeCommand{\'}{PU}{A}{\80\301}% U+00C1 +% U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX; Acircumflex +\DeclareTextCompositeCommand{\^}{PU}{A}{\80\302}% U+00C2 +% U+00C3 LATIN CAPITAL LETTER A WITH TILDE; Atilde +\DeclareTextCompositeCommand{\~}{PU}{A}{\80\303}% U+00C3 +% U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS; Adieresis +\DeclareTextCompositeCommand{\"}{PU}{A}{\80\304}% U+00C4 +% U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE; Aring +\DeclareTextCompositeCommand{\r}{PU}{A}{\80\305}% U+00C5 +% U+00C6 LATIN CAPITAL LETTER AE; AE +\DeclareTextCommand{\AE}{PU}{\80\306}% U+00C6 +% U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA; Ccedilla +\DeclareTextCompositeCommand{\c}{PU}{C}{\80\307}% U+00C7 +% U+00C8 LATIN CAPITAL LETTER E WITH GRAVE; Egrave +\DeclareTextCompositeCommand{\`}{PU}{E}{\80\310}% U+00C8 +% U+00C9 LATIN CAPITAL LETTER E WITH ACUTE; Eacute +\DeclareTextCompositeCommand{\'}{PU}{E}{\80\311}% U+00C9 +% U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX; Ecircumflex +\DeclareTextCompositeCommand{\^}{PU}{E}{\80\312}% U+00CA +% U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS; Edieresis +\DeclareTextCompositeCommand{\"}{PU}{E}{\80\313}% U+00CB +% U+00CC LATIN CAPITAL LETTER I WITH GRAVE; Igrave +\DeclareTextCompositeCommand{\`}{PU}{I}{\80\314}% U+00CC +% U+00CD LATIN CAPITAL LETTER I WITH ACUTE; Iacute +\DeclareTextCompositeCommand{\'}{PU}{I}{\80\315}% U+00CD +% U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX; Icircumflex +\DeclareTextCompositeCommand{\^}{PU}{I}{\80\316}% U+00CE +% U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS; Idieresis +\DeclareTextCompositeCommand{\"}{PU}{I}{\80\317}% U+00CF +% U+00D0 LATIN CAPITAL LETTER ETH; Eth +\DeclareTextCommand{\DH}{PU}{\80\320}% U+00D0 +% U+00D1 LATIN CAPITAL LETTER N WITH TILDE; Ntilde +\DeclareTextCompositeCommand{\~}{PU}{N}{\80\321}% U+00D1 +% U+00D2 LATIN CAPITAL LETTER O WITH GRAVE; Ograve +\DeclareTextCompositeCommand{\`}{PU}{O}{\80\322}% U+00D2 +% U+00D3 LATIN CAPITAL LETTER O WITH ACUTE; Oacute +\DeclareTextCompositeCommand{\'}{PU}{O}{\80\323}% U+00D3 +% U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX; Ocircumflex +\DeclareTextCompositeCommand{\^}{PU}{O}{\80\324}% U+00D4 +% U+00D5 LATIN CAPITAL LETTER O WITH TILDE; Otilde +\DeclareTextCompositeCommand{\~}{PU}{O}{\80\325}% U+00D5 +% U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS; Odieresis +\DeclareTextCompositeCommand{\"}{PU}{O}{\80\326}% U+00D6 +% U+00D7 MULTIPLICATION SIGN; multiply +\DeclareTextCommand{\textmultiply}{PU}{\80\327}% U+00D7 +%* \textmultiply -> \vartimes (stmaryrd) +%* \textmultiply -> \MVMultiplication (marvosym) +% U+00D8 LATIN CAPITAL LETTER O WITH STROKE; Oslash +\DeclareTextCommand{\O}{PU}{\80\330}% U+00D8 +% U+00D9 LATIN CAPITAL LETTER U WITH GRAVE; Ugrave +\DeclareTextCompositeCommand{\`}{PU}{U}{\80\331}% U+00D9 +% U+00DA LATIN CAPITAL LETTER U WITH ACUTE; Uacute +\DeclareTextCompositeCommand{\'}{PU}{U}{\80\332}% U+00DA +% U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX; Ucircumflex +\DeclareTextCompositeCommand{\^}{PU}{U}{\80\333}% U+00DB +% U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS; Udieresis +\DeclareTextCompositeCommand{\"}{PU}{U}{\80\334}% U+00DC +% U+00DD LATIN CAPITAL LETTER Y WITH ACUTE; Yacute +\DeclareTextCompositeCommand{\'}{PU}{Y}{\80\335}% U+00DD +% U+00DE LATIN CAPITAL LETTER THORN; Thorn; \TH, \Thorn (wasysym) +\DeclareTextCommand{\TH}{PU}{\80\336}% U+00DE +\DeclareTextCommand{\textThorn}{PU}{\80\336}%* U+00DE +% U+00DF LATIN SMALL LETTER SHARP S; germandbls +\DeclareTextCommand{\ss}{PU}{\80\337}% U+00DF +% U+00E0 LATIN SMALL LETTER A WITH GRAVE; agrave +\DeclareTextCompositeCommand{\`}{PU}{a}{\80\340}% U+00E0 +% U+00E1 LATIN SMALL LETTER A WITH ACUTE; aacute +\DeclareTextCompositeCommand{\'}{PU}{a}{\80\341}% U+00E1 +% U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX; acircumflex +\DeclareTextCompositeCommand{\^}{PU}{a}{\80\342}% U+00E2 +% U+00E3 LATIN SMALL LETTER A WITH TILDE; atilde +\DeclareTextCompositeCommand{\~}{PU}{a}{\80\343}% U+00E3 +% U+00E4 LATIN SMALL LETTER A WITH DIAERESIS; adieresis +\DeclareTextCompositeCommand{\"}{PU}{a}{\80\344}% U+00E4 +% U+00E5 LATIN SMALL LETTER A WITH RING ABOVE; aring +\DeclareTextCompositeCommand{\r}{PU}{a}{\80\345}% U+00E5 +% U+00E6 LATIN SMALL LETTER AE; ae +\DeclareTextCommand{\ae}{PU}{\80\346}% U+00E6 +% U+00E7 LATIN SMALL LETTER C WITH CEDILLA; ccedilla +\DeclareTextCompositeCommand{\c}{PU}{c}{\80\347}% U+00E7 +% U+00E8 LATIN SMALL LETTER E WITH GRAVE; egrave +\DeclareTextCompositeCommand{\`}{PU}{e}{\80\350}% U+00E8 +% U+00E9 LATIN SMALL LETTER E WITH ACUTE; eacute +\DeclareTextCompositeCommand{\'}{PU}{e}{\80\351}% U+00E9 +% U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX; ecircumflex +\DeclareTextCompositeCommand{\^}{PU}{e}{\80\352}% U+00EA +% U+00EB LATIN SMALL LETTER E WITH DIAERESIS; edieresis +\DeclareTextCompositeCommand{\"}{PU}{e}{\80\353}% U+00EB +% U+00EC LATIN SMALL LETTER I WITH GRAVE; igrave +\DeclareTextCompositeCommand{\`}{PU}{i}{\80\354}% U+00EC +\DeclareTextCompositeCommand{\`}{PU}{\i}{\80\354}% U+00EC +% U+00ED LATIN SMALL LETTER I WITH ACUTE; iacute +\DeclareTextCompositeCommand{\'}{PU}{i}{\80\355}% U+00ED +\DeclareTextCompositeCommand{\'}{PU}{\i}{\80\355}% U+00ED +% U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX; icircumflex +\DeclareTextCompositeCommand{\^}{PU}{i}{\80\356}% U+00EE +\DeclareTextCompositeCommand{\^}{PU}{\i}{\80\356}% U+00EE +% U+00EF LATIN SMALL LETTER I WITH DIAERESIS; idieresis +\DeclareTextCompositeCommand{\"}{PU}{i}{\80\357}% U+00EF +\DeclareTextCompositeCommand{\"}{PU}{\i}{\80\357}% U+00EF +% U+00F0 LATIN SMALL LETTER ETH; eth +\DeclareTextCommand{\dh}{PU}{\80\360}% U+00F0 +%* \dh -> \eth (wsuipa, phonetic) +% U+00F1 LATIN SMALL LETTER N WITH TILDE; ntilde +\DeclareTextCompositeCommand{\~}{PU}{n}{\80\361}% U+00F1 +% U+00F2 LATIN SMALL LETTER O WITH GRAVE; ograve +\DeclareTextCompositeCommand{\`}{PU}{o}{\80\362}% U+00F2 +% U+00F3 LATIN SMALL LETTER O WITH ACUTE; oacute +\DeclareTextCompositeCommand{\'}{PU}{o}{\80\363}% U+00F3 +% U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX; ocircumflex +\DeclareTextCompositeCommand{\^}{PU}{o}{\80\364}% U+00F4 +% U+00F5 LATIN SMALL LETTER O WITH TILDE; otilde +\DeclareTextCompositeCommand{\~}{PU}{o}{\80\365}% U+00F5 +% U+00F6 LATIN SMALL LETTER O WITH DIAERESIS; odieresis +\DeclareTextCompositeCommand{\"}{PU}{o}{\80\366}% U+00F6 +% U+00F7 DIVISION SIGN; divide +\DeclareTextCommand{\textdivide}{PU}{\80\367}% U+00F7 +% U+00F8 LATIN SMALL LETTER O WITH STROKE; oslash +\DeclareTextCommand{\o}{PU}{\80\370}% U+00F8 +% U+00F9 LATIN SMALL LETTER U WITH GRAVE; ugrave +\DeclareTextCompositeCommand{\`}{PU}{u}{\80\371}% U+00F9 +% U+00FA LATIN SMALL LETTER U WITH ACUTE; uacute +\DeclareTextCompositeCommand{\'}{PU}{u}{\80\372}% U+00FA +% U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX; ucircumflex +\DeclareTextCompositeCommand{\^}{PU}{u}{\80\373}% U+00FB +% U+00FC LATIN SMALL LETTER U WITH DIAERESIS; udieresis +\DeclareTextCompositeCommand{\"}{PU}{u}{\80\374}% U+00FC +% U+00FD LATIN SMALL LETTER Y WITH ACUTE; yacute +\DeclareTextCompositeCommand{\'}{PU}{y}{\80\375}% U+00FD +% U+00FE LATIN SMALL LETTER THORN; thorn; +% \th, \thorn (wasysym), \textthorn (tipa) +\DeclareTextCommand{\th}{PU}{\80\376}% U+00FE +\DeclareTextCommand{\textthorn}{PU}{\80\376}%* U+00FE +% U+00FF LATIN SMALL LETTER Y WITH DIAERESIS; ydieresis +\DeclareTextCompositeCommand{\"}{PU}{y}{\80\377}% U+00FF +% \end{macrocode} +% +% \subsubsection{Latin Extended-A: U+0080 to U+017F} +% +% \begin{macrocode} +% U+0100 LATIN CAPITAL LETTER A WITH MACRON; Amacron +\DeclareTextCompositeCommand{\=}{PU}{A}{\81\000}% U+0100 +% U+0101 LATIN SMALL LETTER A WITH MACRON; amacron +\DeclareTextCompositeCommand{\=}{PU}{a}{\81\001}% U+0101 +% U+0102 LATIN CAPITAL LETTER A WITH BREVE; Abreve +\DeclareTextCompositeCommand{\u}{PU}{A}{\81\002}% U+0102 +% U+0103 LATIN SMALL LETTER A WITH BREVE; abreve +\DeclareTextCompositeCommand{\u}{PU}{a}{\81\003}% U+0103 +% U+0104 LATIN CAPITAL LETTER A WITH OGONEK; Aogonek +\DeclareTextCompositeCommand{\k}{PU}{A}{\81\004}% U+0104 +% U+0105 LATIN SMALL LETTER A WITH OGONEK; aogonek +\DeclareTextCompositeCommand{\k}{PU}{a}{\81\005}% U+0105 +% U+0106 LATIN CAPITAL LETTER C WITH ACUTE; Cacute +\DeclareTextCompositeCommand{\'}{PU}{C}{\81\006}% U+0106 +% U+0107 LATIN SMALL LETTER C WITH ACUTE; cacute +\DeclareTextCompositeCommand{\'}{PU}{c}{\81\007}% U+0107 +% U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX; Ccircumflex +\DeclareTextCompositeCommand{\^}{PU}{C}{\81\010}% U+0108 +% U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX; ccircumflex +\DeclareTextCompositeCommand{\^}{PU}{c}{\81\011}% U+0109 +% U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE; Cdot, Cdotaccent +\DeclareTextCompositeCommand{\.}{PU}{C}{\81\012}% U+010A +% U+010B LATIN SMALL LETTER C WITH DOT ABOVE; cdot, cdotaccent +\DeclareTextCompositeCommand{\.}{PU}{c}{\81\013}% U+010B +% U+010C LATIN CAPITAL LETTER C WITH CARON; Ccaron +\DeclareTextCompositeCommand{\v}{PU}{C}{\81\014}% U+010C +% U+010D LATIN SMALL LETTER C WITH CARON; ccaron +\DeclareTextCompositeCommand{\v}{PU}{c}{\81\015}% U+010D +% U+010E LATIN CAPITAL LETTER D WITH CARON; Dcaron +\DeclareTextCompositeCommand{\v}{PU}{D}{\81\016}% U+010E +% U+010F LATIN SMALL LETTER D WITH CARON; dcaron +\DeclareTextCompositeCommand{\v}{PU}{d}{\81\017}% U+010F +% U+0110 LATIN CAPITAL LETTER D WITH STROKE; Dcroat, Dslash +\DeclareTextCommand{\DJ}{PU}{\81\020}% U+0110 +% U+0111 LATIN SMALL LETTER D WITH STROKE; dcroat, dmacron; +% \textcrd (tipa) +\DeclareTextCommand{\dj}{PU}{\81\021}% U+0111 +\DeclareTextCommand{\textcrd}{PU}{\81\021}% U+0111 +%* \textcrd -> \crossd (wsuipa) +% An alternate glyph with the stroke through the bowl: +%* \textcrd -> \textbard (tipa) +%* \textcrd -> \bard (wsuipa) +% U+0112 LATIN CAPITAL LETTER E WITH MACRON; Emacron +\DeclareTextCompositeCommand{\=}{PU}{E}{\81\022}% U+0112 +% U+0113 LATIN SMALL LETTER E WITH MACRON; emacron +\DeclareTextCompositeCommand{\=}{PU}{e}{\81\023}% U+0113 +% U+0114 LATIN CAPITAL LETTER E WITH BREVE; Ebreve +\DeclareTextCompositeCommand{\u}{PU}{E}{\81\024}% U+0114 +% U+0115 LATIN SMALL LETTER E WITH BREVE; ebreve +\DeclareTextCompositeCommand{\u}{PU}{e}{\81\025}% U+0115 +% U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE; Edot, Edotaccent +\DeclareTextCompositeCommand{\.}{PU}{E}{\81\026}% U+0116 +% U+0117 LATIN SMALL LETTER E WITH DOT ABOVE; edot, edotaccent +\DeclareTextCompositeCommand{\.}{PU}{e}{\81\027}% U+0117 +% U+0118 LATIN CAPITAL LETTER E WITH OGONEK; Eogonek +\DeclareTextCompositeCommand{\k}{PU}{E}{\81\030}% U+0118 +% U+0119 LATIN SMALL LETTER E WITH OGONEK; eogonek +\DeclareTextCompositeCommand{\k}{PU}{e}{\81\031}% U+0119 +% U+011A LATIN CAPITAL LETTER E WITH CARON; Ecaron +\DeclareTextCompositeCommand{\v}{PU}{E}{\81\032}% U+011A +% U+011B LATIN SMALL LETTER E WITH CARON; ecaron +\DeclareTextCompositeCommand{\v}{PU}{e}{\81\033}% U+011B +% U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX; Gcircumflex +\DeclareTextCompositeCommand{\^}{PU}{G}{\81\034}% U+011C +% U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX; gcircumflex +\DeclareTextCompositeCommand{\^}{PU}{g}{\81\035}% U+011D +% U+011E LATIN CAPITAL LETTER G WITH BREVE; Gbreve +\DeclareTextCompositeCommand{\u}{PU}{G}{\81\036}% U+011E +% U+011F LATIN SMALL LETTER G WITH BREVE; gbreve +\DeclareTextCompositeCommand{\u}{PU}{g}{\81\037}% U+011F +% U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE; Gdot, Gdotaccent +\DeclareTextCompositeCommand{\.}{PU}{G}{\81\040}% U+0120 +% U+0121 LATIN SMALL LETTER G WITH DOT ABOVE; gdot, gdotaccent +\DeclareTextCompositeCommand{\.}{PU}{g}{\81\041}% U+0121 +% U+0122 LATIN CAPITAL LETTER G WITH CEDILLA; Gcedilla, Gcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{G}{\81\042}% U+0122 +% U+0123 LATIN SMALL LETTER G WITH CEDILLA; gcedilla, gcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{g}{\81\043}% U+0123 +% U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX; Hcircumflex +\DeclareTextCompositeCommand{\^}{PU}{H}{\81\044}% U+0124 +% U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX; hcircumflex +\DeclareTextCompositeCommand{\^}{PU}{h}{\81\045}% U+0125 +% U+0126 LATIN CAPITAL LETTER H WITH STROKE; Hbar +\DeclareTextCommand{\textHslash}{PU}{\81\046}% U+0126 +% U+0127 LATIN SMALL LETTER H WITH STROKE; hbar; \hbar (AmS) +\DeclareTextCommand{\texthbar}{PU}{\81\047}%* U+0127 +%* \texthbar -> \textcrh (tipa) +%* \texthbar -> \crossh (wsuipa) +%* \texthbar -> \planck (phonetic) +% U+0128 LATIN CAPITAL LETTER I WITH TILDE; Itilde +\DeclareTextCompositeCommand{\~}{PU}{I}{\81\050}% U+0128 +% U+0129 LATIN SMALL LETTER I WITH TILDE; itilde +\DeclareTextCompositeCommand{\~}{PU}{i}{\81\051}% U+0129 +\DeclareTextCompositeCommand{\~}{PU}{\i}{\81\051}% U+0129 +% U+012A LATIN CAPITAL LETTER I WITH MACRON; Imacron +\DeclareTextCompositeCommand{\=}{PU}{I}{\81\052}% U+012A +% U+012B LATIN SMALL LETTER I WITH MACRON; imacron +\DeclareTextCompositeCommand{\=}{PU}{i}{\81\053}% U+012B +\DeclareTextCompositeCommand{\=}{PU}{\i}{\81\053}% U+012B +% U+012C LATIN CAPITAL LETTER I WITH BREVE; Ibreve +\DeclareTextCompositeCommand{\u}{PU}{I}{\81\054}% U+012C +% U+012D LATIN SMALL LETTER I WITH BREVE; ibreve +\DeclareTextCompositeCommand{\u}{PU}{i}{\81\055}% U+012D +\DeclareTextCompositeCommand{\u}{PU}{\i}{\81\055}% U+012D +% U+012E LATIN CAPITAL LETTER I WITH OGONEK; Iogonek +\DeclareTextCompositeCommand{\k}{PU}{I}{\81\056}% U+012E +% U+012F LATIN SMALL LETTER I WITH OGONEK; iogonek +\DeclareTextCompositeCommand{\k}{PU}{i}{\81\057}% U+012F +\DeclareTextCompositeCommand{\k}{PU}{\i}{\81\057}% U+012F +% U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE; Idot, Idotaccent +\DeclareTextCompositeCommand{\.}{PU}{I}{\81\060}% U+0130 +% U+0131 LATIN SMALL LETTER DOTLESS I; dotlessi +\DeclareTextCommand{\i}{PU}{\81\061}% U+0131 +% U+0132 LATIN CAPITAL LIGATURE IJ; IJ +\DeclareTextCommand{\IJ}{PU}{\81\062}% U+0132 +% U+0133 LATIN SMALL LIGATURE IJ; ij +\DeclareTextCommand{\ij}{PU}{\81\063}% U+0133 +% U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX; Jcircumflex +\DeclareTextCompositeCommand{\^}{PU}{J}{\81\064}% U+0134 +% U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX; jcircumflex +\DeclareTextCompositeCommand{\^}{PU}{j}{\81\065}% U+0135 +\DeclareTextCompositeCommand{\^}{PU}{\j}{\81\065}% U+0135 +% U+0136 LATIN CAPITAL LETTER K WITH CEDILLA; Kcedilla, Kcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{K}{\81\066}% U+0136 +% U+0137 LATIN SMALL LETTER K WITH CEDILLA; kcedilla, kcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{k}{\81\067}% U+0137 +% \end{macrocode} +% The canonical name of U+0138, small letter kra, would be +% \cs{textkgreenlandic}, following the glyph naming convention. +% However |latex/base/inputenc.dtx| has choosen \cs{textkra}. +% \begin{macrocode} +% U+0138 LATIN SMALL LETTER KRA; kgreenlandic +\DeclareTextCommand{\textkra}{PU}{\81\070}% U+0138 +% U+0139 LATIN CAPITAL LETTER L WITH ACUTE; Lacute +\DeclareTextCompositeCommand{\'}{PU}{L}{\81\071}% U+0139 +% U+013A LATIN SMALL LETTER L WITH ACUTE; lacute +\DeclareTextCompositeCommand{\'}{PU}{l}{\81\072}% U+013A +% U+013B LATIN CAPITAL LETTER L WITH CEDILLA; Lcedilla, Lcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{L}{\81\073}% U+013B +% U+013C LATIN SMALL LETTER L WITH CEDILLA; lcedilla, lcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{l}{\81\074}% U+013C +% U+013D LATIN CAPITAL LETTER L WITH CARON; Lcaron +\DeclareTextCompositeCommand{\v}{PU}{L}{\81\075}% U+013D +% U+013E LATIN SMALL LETTER L WITH CARON; lcaron +\DeclareTextCompositeCommand{\v}{PU}{l}{\81\076}% U+013E +% \end{macrocode} +% There seems to be no variants of letters `L' and `l' with +% a dot above (reasonable). Therefore the \cs{.} accent +% is reused instead of making a separate accent macro +% \cs{textmiddledot}. +% \begin{macrocode} +% U+013F LATIN CAPITAL LETTER L WITH MIDDLE DOT; Ldot, Ldotaccent +\DeclareTextCompositeCommand{\.}{PU}{L}{\81\077}% U+013F +% U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT; ldot, ldotaccent +\DeclareTextCompositeCommand{\.}{PU}{l}{\81\100}% U+0140 +% U+0141 LATIN CAPITAL LETTER L WITH STROKE; Lslash +\DeclareTextCommand{\L}{PU}{\81\101}% U+0141 +% U+0142 LATIN SMALL LETTER L WITH STROKE; lslash +\DeclareTextCommand{\l}{PU}{\81\102}% U+0142 +% U+0143 LATIN CAPITAL LETTER N WITH ACUTE; Nacute +\DeclareTextCompositeCommand{\'}{PU}{N}{\81\103}% U+0143 +% U+0144 LATIN SMALL LETTER N WITH ACUTE; nacute +\DeclareTextCompositeCommand{\'}{PU}{n}{\81\104}% U+0144 +% U+0145 LATIN CAPITAL LETTER N WITH CEDILLA; Ncedilla, Ncommaaccent +\DeclareTextCompositeCommand{\c}{PU}{N}{\81\105}% U+0145 +% U+0146 LATIN SMALL LETTER N WITH CEDILLA; ncedilla, ncommaaccent +\DeclareTextCompositeCommand{\c}{PU}{n}{\81\106}% U+0146 +% U+0147 LATIN CAPITAL LETTER N WITH CARON; Ncaron +\DeclareTextCompositeCommand{\v}{PU}{N}{\81\107}% U+0147 +% U+0148 LATIN SMALL LETTER N WITH CARON; ncaron +\DeclareTextCompositeCommand{\v}{PU}{n}{\81\110}% U+0148 +% U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE; napostrophe, quoterightn +\DeclareTextCommand{\textnapostrophe}{PU}{\81\111}% U+0149 +% U+014A LATIN CAPITAL LETTER ENG; Eng +\DeclareTextCommand{\NG}{PU}{\81\112}% U+014A +% U+014B LATIN SMALL LETTER ENG; eng +\DeclareTextCommand{\ng}{PU}{\81\113}% U+014B +%* \ng -> \eng (wsuipa) +%* \ng -> \engma (phonetic) +% U+014C LATIN CAPITAL LETTER O WITH MACRON; Omacron +\DeclareTextCompositeCommand{\=}{PU}{O}{\81\114}% U+014C +% U+014D LATIN SMALL LETTER O WITH MACRON; omacron +\DeclareTextCompositeCommand{\=}{PU}{o}{\81\115}% U+014D +% U+014E LATIN CAPITAL LETTER O WITH BREVE; Obreve +\DeclareTextCompositeCommand{\u}{PU}{O}{\81\116}% U+014E +% U+014F LATIN SMALL LETTER O WITH BREVE; obreve +\DeclareTextCompositeCommand{\u}{PU}{o}{\81\117}% U+014F +% U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE; Odblacute, Ohungarumlaut +\DeclareTextCompositeCommand{\H}{PU}{O}{\81\120}% U+0150 +% U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE; odblacute, ohungarumlaut +\DeclareTextCompositeCommand{\H}{PU}{o}{\81\121}% U+0151 +% U+0152 LATIN CAPITAL LIGATURE OE; OE +\DeclareTextCommand{\OE}{PU}{\81\122}% U+0152 +% U+0153 LATIN SMALL LIGATURE OE; oe +\DeclareTextCommand{\oe}{PU}{\81\123}% U+0153 +% U+0154 LATIN CAPITAL LETTER R WITH ACUTE; Racute +\DeclareTextCompositeCommand{\'}{PU}{R}{\81\124}% U+0154 +% U+0155 LATIN SMALL LETTER R WITH ACUTE; racute +\DeclareTextCompositeCommand{\'}{PU}{r}{\81\125}% U+0155 +% U+0156 LATIN CAPITAL LETTER R WITH CEDILLA; Rcedilla, Rcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{R}{\81\126}% U+0156 +% U+0157 LATIN SMALL LETTER R WITH CEDILLA; rcedilla, rcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{r}{\81\127}% U+0157 +% U+0158 LATIN CAPITAL LETTER R WITH CARON; Rcaron +\DeclareTextCompositeCommand{\v}{PU}{R}{\81\130}% U+0158 +% U+0159 LATIN SMALL LETTER R WITH CARON; rcaron +\DeclareTextCompositeCommand{\v}{PU}{r}{\81\131}% U+0159 +% U+015A LATIN CAPITAL LETTER S WITH ACUTE; Sacute +\DeclareTextCompositeCommand{\'}{PU}{S}{\81\132}% U+015A +% U+015B LATIN SMALL LETTER S WITH ACUTE; sacute +\DeclareTextCompositeCommand{\'}{PU}{s}{\81\133}% U+015B +% U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX; Scircumflex +\DeclareTextCompositeCommand{\^}{PU}{S}{\81\134}% U+015C +% U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX; scircumflex +\DeclareTextCompositeCommand{\^}{PU}{s}{\81\135}% U+015D +% U+015E LATIN CAPITAL LETTER S WITH CEDILLA; Scedilla +\DeclareTextCompositeCommand{\c}{PU}{S}{\81\136}% U+015E +% U+015F LATIN SMALL LETTER S WITH CEDILLA; scedilla +\DeclareTextCompositeCommand{\c}{PU}{s}{\81\137}% U+015F +% U+0160 LATIN CAPITAL LETTER S WITH CARON; Scaron +\DeclareTextCompositeCommand{\v}{PU}{S}{\81\140}% U+0160 +% U+0161 LATIN SMALL LETTER S WITH CARON; scaron +\DeclareTextCompositeCommand{\v}{PU}{s}{\81\141}% U+0161 +% U+0162 LATIN CAPITAL LETTER T WITH CEDILLA; Tcedilla, Tcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{T}{\81\142}% U+0162 +% U+0163 LATIN SMALL LETTER T WITH CEDILLA; tcedilla, tcommaaccent +\DeclareTextCompositeCommand{\c}{PU}{t}{\81\143}% U+0163 +% U+0164 LATIN CAPITAL LETTER T WITH CARON; Tcaron +\DeclareTextCompositeCommand{\v}{PU}{T}{\81\144}% U+0164 +% U+0165 LATIN SMALL LETTER T WITH CARON; tcaron +\DeclareTextCompositeCommand{\v}{PU}{t}{\81\145}% U+0165 +% U+0166 LATIN CAPITAL LETTER T WITH STROKE; Tbar +\DeclareTextCommand{\textTslash}{PU}{\81\146}% U+0166 +% U+0167 LATIN SMALL LETTER T WITH STROKE; tbar +\DeclareTextCommand{\texttslash}{PU}{\81\147}% U+0167 +% U+0168 LATIN CAPITAL LETTER U WITH TILDE; Utilde +\DeclareTextCompositeCommand{\~}{PU}{U}{\81\150}% U+0168 +% U+0169 LATIN SMALL LETTER U WITH TILDE; utilde +\DeclareTextCompositeCommand{\~}{PU}{u}{\81\151}% U+0169 +% U+016A LATIN CAPITAL LETTER U WITH MACRON; Umacron +\DeclareTextCompositeCommand{\=}{PU}{U}{\81\152}% U+016A +% U+016B LATIN SMALL LETTER U WITH MACRON; umacron +\DeclareTextCompositeCommand{\=}{PU}{u}{\81\153}% U+016B +% U+016C LATIN CAPITAL LETTER U WITH BREVE; Ubreve +\DeclareTextCompositeCommand{\u}{PU}{U}{\81\154}% U+016C +% U+016D LATIN SMALL LETTER U WITH BREVE; ubreve +\DeclareTextCompositeCommand{\u}{PU}{u}{\81\155}% U+016D +% U+016E LATIN CAPITAL LETTER U WITH RING ABOVE; Uring +\DeclareTextCompositeCommand{\r}{PU}{U}{\81\156}% U+016E +% U+016F LATIN SMALL LETTER U WITH RING ABOVE; uring +\DeclareTextCompositeCommand{\r}{PU}{u}{\81\157}% U+016F +% U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE; Udblacute, Uhungarumlaut +\DeclareTextCompositeCommand{\H}{PU}{U}{\81\160}% U+0170 +% U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE; udblacute, uhungarumlaut +\DeclareTextCompositeCommand{\H}{PU}{u}{\81\161}% U+0171 +% U+0172 LATIN CAPITAL LETTER U WITH OGONEK; Uogonek +\DeclareTextCompositeCommand{\k}{PU}{U}{\81\162}% U+0172 +% U+0173 LATIN SMALL LETTER U WITH OGONEK; uogonek +\DeclareTextCompositeCommand{\k}{PU}{u}{\81\163}% U+0173 +% U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX; Wcircumflex +\DeclareTextCompositeCommand{\^}{PU}{W}{\81\164}% U+0174 +% U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX; wcircumflex +\DeclareTextCompositeCommand{\^}{PU}{w}{\81\165}% U+0175 +% U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX; Ycircumflex +\DeclareTextCompositeCommand{\^}{PU}{Y}{\81\166}% U+0176 +% U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX; ycircumflex +\DeclareTextCompositeCommand{\^}{PU}{y}{\81\167}% U+0177 +% U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS; Ydieresis +\DeclareTextCompositeCommand{\"}{PU}{Y}{\81\170}% U+0178 +% U+0179 LATIN CAPITAL LETTER Z WITH ACUTE; Zacute +\DeclareTextCompositeCommand{\'}{PU}{Z}{\81\171}% U+0179 +% U+017A LATIN SMALL LETTER Z WITH ACUTE; zacute +\DeclareTextCompositeCommand{\'}{PU}{z}{\81\172}% U+017A +% U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE; Zdot, Zdotaccent +\DeclareTextCompositeCommand{\.}{PU}{Z}{\81\173}% U+017B +% U+017C LATIN SMALL LETTER Z WITH DOT ABOVE; zdot, zdotaccent +\DeclareTextCompositeCommand{\.}{PU}{z}{\81\174}% U+017C +% U+017D LATIN CAPITAL LETTER Z WITH CARON; Zcaron +\DeclareTextCompositeCommand{\v}{PU}{Z}{\81\175}% U+017D +% U+017E LATIN SMALL LETTER Z WITH CARON; zcaron +\DeclareTextCompositeCommand{\v}{PU}{z}{\81\176}% U+017E +% U+017F LATIN SMALL LETTER LONG S; longs, slong +\DeclareTextCommand{\textlongs}{PU}{\81\177}% U+017F +% \end{macrocode} +% +% \subsubsection{Latin Extended-B: U+0180 to U+024F} +% +% \begin{macrocode} +% U+0180 LATIN SMALL LETTER B WITH STROKE; bstroke; \textcrb (tipa) +\DeclareTextCommand{\textcrb}{PU}{\81\200}% U+0180 +%* \textcrb -> \crossb (wsuipa) +% An alternate glyph with the stroke through the bowl: +%* \textcrb -> \textbarb (tipa) +%* \textcrb -> \barb (wsuipa) +% U+0181 LATIN CAPITAL LETTER B WITH HOOK; Bhook; \hausaB (phonetic) +\DeclareTextCommand{\texthausaB}{PU}{\81\201}%* U+0181 +% U+0188 LATIN SMALL LETTER C WITH HOOK; chook; \texthtc (tipa) +\DeclareTextCommand{\texthtc}{PU}{\81\210}% U+0188 +% U+018A LATIN CAPITAL LETTER D WITH HOOK; Dhook; \hausaD (phonetic) +\DeclareTextCommand{\texthausaD}{PU}{\81\212}%* U+018A +% U+018E LATIN CAPITAL LETTER REVERSED E; Ereversed +\DeclareTextCommand{\textEreversed}{PU}{\81\216}% U+018E +\DeclareTextCommand{\textrevE}{PU}{\81\216}% U+018E +% U+0192 LATIN SMALL LETTER F WITH HOOK; florin +\DeclareTextCommand{\textflorin}{PU}{\81\222}% U+0192 +%* \textflorin -> \Florin (marvosym) +% U+0195 LATIN SMALL LETTER HV; hv; \texthvlig (tipa) +\DeclareTextCommand{\texthvlig}{PU}{\81\225}% U+0195 +%* \texthvlig -> \hv (wsuipa) +% U+0198 LATIN CAPITAL LETTER K WITH HOOK; Khook; \hausaK (phonetic) +\DeclareTextCommand{\texthausaK}{PU}{\81\230}%* U+0198 +% U+0199 LATIN SMALL LETTER K WITH HOOK; khook; \texthtk (tipa) +\DeclareTextCommand{\texthtk}{PU}{\81\231}% U+0199 +%* \texthtk -> \hausak (phonetic) +% U+019A LATIN SMALL LETTER L WITH BAR; lbar; +% \textbarl (tipa), \barl (wsuipa) +\DeclareTextCommand{\textbarl}{PU}{\81\232}%* U+019A +% U+019B LATIN SMALL LETTER LAMBDA WITH STROKE/ +% LATIN SMALL LETTER BARRED LAMBDA; lambdastroke; +% \textcrlambda (tipa) +\DeclareTextCommand{\textcrlambda}{PU}{\81\233}% U+019B +%* \textcrlambda -> \crossnilambda (wsuipa) +%* \textcrlambda -> \barlambda (phonetic) +%* \textcrlambda -> \lambdabar (txfonts/pxfonts) +%* \textcrlambda -> \lambdaslash (txfonts/pxfonts) +% U+019E LATIN SMALL LETTER N WITH LONG RIGHT LEG; nlegrightlong; +% \textnrleg (tipx) +\DeclareTextCommand{\textPUnrleg}{PU}{\81\236}% U+019E +%* \textPUnrleg -> \textnrleg (tipx) +% U+01A5 LATIN SMALL LETTER P WITH HOOK; phook; \texthtp (tipa) +\DeclareTextCommand{\texthtp}{PU}{\81\245}% U+01A5 +% U+01AB LATIN SMALL LETTER T WITH PALATAL HOOK; tpalatalhook; +% \textlhookt (tipa) +\DeclareTextCommand{\textlhookt}{PU}{\81\253}% U+01AB +% U+01AD LATIN SMALL LETTER T WITH HOOK; thook; \texthtt (tipa) +\DeclareTextCommand{\texthtt}{PU}{\81\255}% U+01AD +% U+01B9 LATIN SMALL LETTER EZH REVERSED/ +% LATIN SMALL LETTER REVERSED YOGH; \textrevyogh (tipa) +\DeclareTextCommand{\textrevyogh}{PU}{\81\271}% U+01B9 +% U+01BB LATIN LETTER TWO WITH STROKE; twostroke; \textcrtwo (tipa) +\DeclareTextCommand{\textcrtwo}{PU}{\81\273}% U+01BB +% U+01BE LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE; +% glottalinvertedstroke; \textcrinvglotstop (tipa) +\DeclareTextCommand{\textcrinvglotstop}{PU}{\81\276}% U+01BE +% U+01BF LATIN LETTER WYNN; wynn; \textwynn (tipa) +\DeclareTextCommand{\textwynn}{PU}{\81\277}% U+01BF +% U+01C0 LATIN LETTER DENTAL CLICK/LATIN LETTER PIPE; clickdental; +% \textpipe (tipa) +\DeclareTextCommand{\textpipe}{PU}{\81\300}% U+01C0 +%* \textpipe -> \textpipevar (tipx) +% U+01C1 LATIN LETTER LATERAL CLICK/LATIN LETTER +% DOUBLE PIPE; clicklateral; \textdoublepipe (tipa) +\DeclareTextCommand{\textdoublepipe}{PU}{\81\301}% U+01C1 +%* \textdoublepipe -> \textdoublepipevar (tipx) +% U+01C2 LATIN LETTER ALVEOLAR CLICK/LATIN LETTER PIPE DOUBLE BAR; +% clickalveolar; \textdoublebarpipe (tipa) +\DeclareTextCommand{\textdoublebarpipe}{PU}{\81\302}% U+01C2 +%* \textdoublebarpipe -> \textdoublebarpipevar (tipx) +% U+01CD LATIN CAPITAL LETTER A WITH CARON; Acaron +\DeclareTextCompositeCommand{\v}{PU}{A}{\81\315}% U+01CD +% U+01CE LATIN SMALL LETTER A WITH CARON; acaron +\DeclareTextCompositeCommand{\v}{PU}{a}{\81\316}% U+01CE +% U+01CF LATIN CAPITAL LETTER I WITH CARON; Icaron +\DeclareTextCompositeCommand{\v}{PU}{I}{\81\317}% U+01CF +% U+01D0 LATIN SMALL LETTER I WITH CARON; icaron +\DeclareTextCompositeCommand{\v}{PU}{\i}{\81\320}% U+01D0 +\DeclareTextCompositeCommand{\v}{PU}{i}{\81\320}% U+01D0 +% U+01D1 LATIN CAPITAL LETTER O WITH CARON; Ocaron +\DeclareTextCompositeCommand{\v}{PU}{O}{\81\321}% U+01D1 +% U+01D2 LATIN SMALL LETTER O WITH CARON; ocaron +\DeclareTextCompositeCommand{\v}{PU}{o}{\81\322}% U+01D2 +% U+01D3 LATIN CAPITAL LETTER U WITH CARON; Ucaron +\DeclareTextCompositeCommand{\v}{PU}{U}{\81\323}% U+01D3 +% U+01D4 LATIN SMALL LETTER U WITH CARON; ucaron +\DeclareTextCompositeCommand{\v}{PU}{u}{\81\324}% U+01D4 +% U+01DD LATIN SMALL LETTER TURNED E; eturned; \inve (wasysym) +\DeclareTextCommand{\textinve}{PU}{\81\335}%* U+01DD +% U+01E4 LATIN CAPITAL LETTER G WITH STROKE; Gstroke +\DeclareTextCommand{\textGslash}{PU}{\81\344}% U+01E4 +% U+01E5 LATIN SMALL LETTER G WITH STROKE; gstroke +\DeclareTextCommand{\textgslash}{PU}{\81\345}% U+01E5 +%* \textgslash -> \textcrg (tipa) +% U+01E6 LATIN CAPITAL LETTER G WITH CARON; Gcaron +\DeclareTextCompositeCommand{\v}{PU}{G}{\81\346}% U+01E6 +% U+01E7 LATIN SMALL LETTER G WITH CARON; gcaron +\DeclareTextCompositeCommand{\v}{PU}{g}{\81\347}% U+01E7 +% U+01E8 LATIN CAPITAL LETTER K WITH CARON; Kcaron +\DeclareTextCompositeCommand{\v}{PU}{K}{\81\350}% U+01E8 +% U+01E9 LATIN SMALL LETTER K WITH CARON; kcaron +\DeclareTextCompositeCommand{\v}{PU}{k}{\81\351}% U+01E9 +% U+01EA LATIN CAPITAL LETTER O WITH OGONEK; Oogonek +\DeclareTextCompositeCommand{\k}{PU}{O}{\81\352}% U+01EA +% U+01EB LATIN SMALL LETTER O WITH OGONEK; oogonek +\DeclareTextCompositeCommand{\k}{PU}{o}{\81\353}% U+01EB +% U+01F0 LATIN SMALL LETTER J WITH CARON; jcaron +\DeclareTextCompositeCommand{\v}{PU}{\j}{\81\360}% U+01F0 +\DeclareTextCompositeCommand{\v}{PU}{j}{\81\360}% U+01F0 +% U+01F4 LATIN CAPITAL LETTER G WITH ACUTE; Gacute +\DeclareTextCompositeCommand{\'}{PU}{G}{\81\364}% U+01F4 +% U+01F5 LATIN SMALL LETTER G WITH ACUTE; gacute +\DeclareTextCompositeCommand{\'}{PU}{g}{\81\365}% U+01F5 +% U+01F8 LATIN CAPITAL LETTER N WITH GRAVE +\DeclareTextCompositeCommand{\`}{PU}{N}{\81\370}% U+01F8 +% U+01F9 LATIN SMALL LETTER N WITH GRAVE +\DeclareTextCompositeCommand{\`}{PU}{n}{\81\371}% U+01F9 +% U+01FC LATIN CAPITAL LETTER AE WITH ACUTE; AEacute +\DeclareTextCompositeCommand{\'}{PU}{\AE}{\81\374}% U+01FC +% U+01FD LATIN SMALL LETTER AE WITH ACUTE; aeacute +\DeclareTextCompositeCommand{\'}{PU}{\ae}{\81\375}% U+01FD +% U+01FE LATIN CAPITAL LETTER O WITH STROKE AND ACUTE; +% *Oslashacute, Ostrokeacut +\DeclareTextCompositeCommand{\'}{PU}{\O}{\81\376}% U+01FE +% U+01FF LATIN SMALL LETTER O WITH STROKE AND ACUTE; +% *oslashacute, ostrokeacute +\DeclareTextCompositeCommand{\'}{PU}{\o}{\81\377}% U+01FF +% U+0200 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE; Adblgrave +\DeclareTextCompositeCommand{\G}{PU}{A}{\82\000}% U+0200 +% U+0201 LATIN SMALL LETTER A WITH DOUBLE GRAVE; adblgrave +\DeclareTextCompositeCommand{\G}{PU}{a}{\82\001}% U+0201 +% U+0204 LATIN CAPITAL LETTER E WITH DOUBLE GRAVE; Edblgrave +\DeclareTextCompositeCommand{\G}{PU}{E}{\82\004}% U+0204 +% U+0205 LATIN SMALL LETTER E WITH DOUBLE GRAVE; edblgrave +\DeclareTextCompositeCommand{\G}{PU}{e}{\82\005}% U+0205 +% U+0206 LATIN CAPITAL LETTER E WITH INVERTED BREVE; Einvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{E}{\82\006}% U+0206 +% U+0207 LATIN SMALL LETTER E WITH INVERTED BREVE; einvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{e}{\82\007}% U+0207 +% U+0208 LATIN CAPITAL LETTER I WITH DOUBLE GRAVE; Idblgrave +\DeclareTextCompositeCommand{\G}{PU}{I}{\82\010}% U+0208 +% U+0209 LATIN SMALL LETTER I WITH DOUBLE GRAVE; idblgrave +\DeclareTextCompositeCommand{\G}{PU}{\i}{\82\011}% U+0209 +\DeclareTextCompositeCommand{\G}{PU}{i}{\82\011}% U+0209 +% U+020A LATIN CAPITAL LETTER I WITH INVERTED BREVE; Iinvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{I}{\82\012}% U+020A +% U+020B LATIN SMALL LETTER I WITH INVERTED BREVE; iinvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{i}{\82\013}% U+020B +\DeclareTextCompositeCommand{\textinvbreve}{PU}{\i}{\82\013}% U+020B +% U+020C LATIN CAPITAL LETTER O WITH DOUBLE GRAVE; Odblgrave +\DeclareTextCompositeCommand{\G}{PU}{O}{\82\014}% U+020C +% U+020D LATIN SMALL LETTER O WITH DOUBLE GRAVE; odblgrave +\DeclareTextCompositeCommand{\G}{PU}{o}{\82\015}% U+020D +% U+020E LATIN CAPITAL LETTER O WITH INVERTED BREVE; Oinvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{O}{\82\016}% U+020E +% U+020F LATIN SMALL LETTER O WITH INVERTED BREVE; oinvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{o}{\82\017}% U+020F +% U+0210 LATIN CAPITAL LETTER R WITH DOUBLE GRAVE; Rdblgrave +\DeclareTextCompositeCommand{\G}{PU}{R}{\82\020}% U+0210 +% U+0211 LATIN SMALL LETTER R WITH DOUBLE GRAVE; rdblgrave +\DeclareTextCompositeCommand{\G}{PU}{r}{\82\021}% U+0211 +% U+0214 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE; Udblgrave +\DeclareTextCompositeCommand{\G}{PU}{U}{\82\024}% U+0214 +% U+0215 LATIN SMALL LETTER U WITH DOUBLE GRAVE; udblgrave +\DeclareTextCompositeCommand{\G}{PU}{u}{\82\025}% U+0215 +% U+0216 LATIN CAPITAL LETTER U WITH INVERTED BREVE; Uinvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{U}{\82\026}% U+0216 +% U+0217 LATIN SMALL LETTER U WITH INVERTED BREVE; uinvertedbreve +\DeclareTextCompositeCommand{\textinvbreve}{PU}{u}{\82\027}% U+0217 +% U+021E LATIN CAPITAL LETTER H WITH CARON +\DeclareTextCompositeCommand{\v}{PU}{H}{\82\036}% U+021E +% U+021F LATIN SMALL LETTER H WITH CARON +\DeclareTextCompositeCommand{\v}{PU}{h}{\82\037}% U+021F +% U+0221 LATIN SMALL LETTER D WITH CURL; \textctd (tipa) +\DeclareTextCommand{\textctd}{PU}{\82\041}% U+0221 +% U+0225 LATIN SMALL LETTER Z WITH HOOK; \textcommatailz (tipa) +\DeclareTextCommand{\textcommatailz}{PU}{\82\045}% U+0225 +% U+0226 LATIN CAPITAL LETTER A WITH DOT ABOVE +\DeclareTextCompositeCommand{\.}{PU}{A}{\82\046}% U+0226 +% U+0227 LATIN SMALL LETTER A WITH DOT ABOVE +\DeclareTextCompositeCommand{\.}{PU}{a}{\82\047}% U+0227 +% U+0228 LATIN CAPITAL LETTER E WITH CEDILLA +\DeclareTextCompositeCommand{\c}{PU}{E}{\82\050}% U+0228 +% U+0229 LATIN SMALL LETTER E WITH CEDILLA +\DeclareTextCompositeCommand{\c}{PU}{e}{\82\051}% U+0229 +% U+022E LATIN CAPITAL LETTER O WITH DOT ABOVE +\DeclareTextCompositeCommand{\.}{PU}{O}{\82\056}% U+022E +% U+022F LATIN SMALL LETTER O WITH DOT ABOVE +\DeclareTextCompositeCommand{\.}{PU}{o}{\82\057}% U+022F +% U+0232 LATIN CAPITAL LETTER Y WITH MACRON +\DeclareTextCompositeCommand{\=}{PU}{Y}{\82\062}% U+0232 +% U+0233 LATIN SMALL LETTER Y WITH MACRON +\DeclareTextCompositeCommand{\=}{PU}{y}{\82\063}% U+0233 +% U+0235 LATIN SMALL LETTER N WITH CURL; \textctn (tipa) +\DeclareTextCommand{\textctn}{PU}{\82\065}% U+0235 +% U+0236 LATIN SMALL LETTER T WITH CURL; \textctt (tipa) +\DeclareTextCommand{\textctt}{PU}{\82\066}% U+0236 +% U+0237 LATIN SMALL LETTER DOTLESS J +\DeclareTextCommand{\j}{PU}{\82\067}% U+0237 +% U+0238 LATIN SMALL LETTER DB DIGRAPH; \textdblig (tipx) +\DeclareTextCommand{\textPUdblig}{PU}{\82\070}% U+0238 +%* \textPUdblig -> \textdblig (tipx) +% U+0239 LATIN SMALL LETTER QP DIGRAPH; \textqplig (tipx) +\DeclareTextCommand{\textPUqplig}{PU}{\82\071}% U+0239 +%* \textPUqplig -> \textqplig (tipx) +% U+023C LATIN SMALL LETTER C WITH STROKE; \slashc (wsuipa) +\DeclareTextCommand{\textslashc}{PU}{\82\074}%* U+023C +%* \textslashc -> \textcentoldstyle (textcomp) +% With bar instead of stroke: +%* \textslashc -> \textbarc (tipa) +% \end{macrocode} +% +% \subsubsection{IPA Extensions: U+0250 to U+02AF} +% +% \begin{macrocode} +% U+0250 LATIN SMALL LETTER TURNED A; aturned; \textturna (tipa) +\DeclareTextCommand{\textturna}{PU}{\82\120}% U+0250 +%* \textturna -> \inva (wasysym) +% U+0251 LATIN SMALL LETTER ALPHA/LATIN SMALL LETTER +% SCRIPT A; ascript; \textscripta (tipa), \scripta (wsuipa) +\DeclareTextCommand{\textscripta}{PU}{\82\121}%* U+0251 +%* \textscripta -> \vara (phonetic) +% U+0252 LATIN SMALL LETTER TURNED ALPHA; ascriptturned; +% \textturnscripta (tipa) +\DeclareTextCommand{\textturnscripta}{PU}{\82\122}% U+0252 +%* \textturnscripta -> \invscripta (wsuipa) +%* \textturnscripta -> \rotvara (phonetic) +% U+0253 LATIN CAPITAL LETTER B WITH HOOK; bhook; \texthtb (tipa) +\DeclareTextCommand{\texthtb}{PU}{\82\123}% U+0253 +%* \texthtb -> \hookb (wsuipa) +%* \texthtb -> \hausab (phonetic) +% U+0254 LATIN SMALL LETTER OPEN O; oopen; +% \textopeno (tipa), \openo (wasysym) +\DeclareTextCommand{\textopeno}{PU}{\82\124}%* U+0254 +%* \textopeno -> \varopeno (phonetic) +% U+0255 LATIN SMALL LETTER C WITH CURL; ccurl; \textctc (tipa) +\DeclareTextCommand{\textctc}{PU}{\82\125}% U+0255 +%* \textctc -> \curlyc (wsuipa) +% U+0256 LATIN SMALL LETTER D WITH TAIL; dtail; \textrtaild (tipa) +\DeclareTextCommand{\textrtaild}{PU}{\82\126}%* U+0256 +%* \textrtaild -> \taild (wsuipa) +% U+0257 LATIN SMALL LETTER D WITH HOOK; dhook; \texthtd (tipa) +\DeclareTextCommand{\texthtd}{PU}{\82\127}% U+0257 +%* \texthtd -> \hookd (wsuipa) +%* \texthtd -> \hausad (phonetic) +% U+0258 LATIN SMALL LETTER REVERSED E; ereversed; +% \textreve (tipa), \reve (wsuipa) +\DeclareTextCommand{\textreve}{PU}{\82\130}%* U+0258 +% U+0259 LATIN SMALL LETTER SCHWA; schwa; +% \textschwa (tipa), \schwa (wsuipa, phonetic) +\DeclareTextCommand{\textschwa}{PU}{\82\131}%* U+0259 +% U+025A LATIN SMALL LETTER SCHWA WITH HOOK; schwahook; +% \textrhookschwa (tipa) +\DeclareTextCommand{\textrhookschwa}{PU}{\82\132}% U+025A +%* \textrhookschwa -> \er (wsuipa) +% U+025B LATIN SMALL LETTER OPEN E/LATIN SMALL LETTER EPSILON; eopen; +% \niepsilon (wsuipa) +\DeclareTextCommand{\textniepsilon}{PU}{\82\133}%* U+025B +%* \textniepsilon -> \epsi (phonetic) +% U+025C LATIN SMALL LETTER REVERSED OPEN E; eopenreversed; +% \textrevepsilon (tipa), \revepsilon (wsuipa) +\DeclareTextCommand{\textrevepsilon}{PU}{\82\134}%* U+025C +% U+025D LATIN SMALL LETTER REVERSED OPEN E WITH HOOK; eopenreversedhook; +% \textrhookrevepsilon (tipa) +\DeclareTextCommand{\textrhookrevepsilon}{PU}{\82\135}%* U+025D +%* \textrhookrevepsilon -> \hookrevepsilon (wsuipa) +% U+025E LATIN SMALL LETTER CLOSED REVERSED OPEN E; eopenreversedclosed; +% \textcloserevepsilon (tipa) +\DeclareTextCommand{\textcloserevepsilon}{PU}{\82\136}% U+025E +%* \textcloserevepsilon -> \closedrevepsilon (wsuipa) +% U+025F LATIN SMALL LETTER DOTLESS J WITH STROKE; jdotlessstroke; +% \textbardotlessj (tipa) +\DeclareTextCommand{\textbardotlessj}{PU}{\82\137}% U+025F +%* \textbardotlessj -> \barj (phonetic) +% U+0260 LATIN SMALL LETTER G WITH HOOK; ghook; \texthtg (tipa) +\DeclareTextCommand{\texthtg}{PU}{\82\140}% U+0260 +%* \texthtg -> \hookg (wsuipa) +% U+0261 LATIN SMALL LETTER SCRIPT G; gscript; +% \textscriptg (tipa), \scriptg (wsuipa) +\DeclareTextCommand{\textscriptg}{PU}{\82\141}%* U+0261 +%* \textscriptg -> \varg (phonetic) +% U+0262 LATIN LETTER SMALL CAPITAL G; \textscg (tipa), \scg (wsuipa) +\DeclareTextCommand{\textscg}{PU}{\82\142}%* U+0262 +% U+0263 LATIN SMALL LETTER GAMMA; gammalatinsmall; +% \ipagamma (wsuipa), \vod (phonetic) +\DeclareTextCommand{\textipagamma}{PU}{\82\143}%* U+0263 +%* \textipagamma -> \vod (pnonetic) +% U+0264 LATIN SMALL LETTER RAMS HORN; ramshorn; +% \babygamma (wsuipa) +\DeclareTextCommand{\textbabygamma}{PU}{\82\144}%* U+0264 +% U+0265 LATIN SMALL LETTER TURNED H; hturned; \textturnh (tipa) +\DeclareTextCommand{\textturnh}{PU}{\82\145}% U+0265 +%* \textturnh -> \invh (wsuipa) +%* \textturnh -> \udesc (phonetic) +% U+0266 LATIN SMALL LETTER H WITH HOOK; hhook; \texthth (tipa) +\DeclareTextCommand{\texthth}{PU}{\82\146}% U+0266 +%* \texthth -> \hookh (wsuipa) +%* \texthth -> \voicedh (phonetic) +% U+0267 LATIN SMALL LETTER HENG WITH HOOK; henghook; \texththeng (tipa) +\DeclareTextCommand{\texththeng}{PU}{\82\147}% U+0267 +%* \texththeng -> \hookheng (wsuipa) +% U+0268 LATIN SMALL LETTER I WITH STROKE; +% \textbari (tipa), \bari (wsuipa) +\DeclareTextCommand{\textbari}{PU}{\82\150}%* U+0268 +%* \textbari -> \ibar (phonetic) +% U+0269 LATIN SMALL LETTER IOTA; iotalatin; \niiota (wsuipa) +\DeclareTextCommand{\textniiota}{PU}{\82\151}%* U+0269 +%* \textniiota -> \vari (phonetic) +% U+026A LATIN LETTER SMALL CAPITAL I; \textsci (tipa), \sci (wsuipa) +\DeclareTextCommand{\textsci}{PU}{\82\152}%* U+026A +% U+026B LATIN SMALL LETTER L WITH MIDDLE TILDE; lmiddletilde; +% \textltilde (tipa) +\DeclareTextCommand{\textltilde}{PU}{\82\153}% U+026B +%* \textltilde -> \tildel (wsuipa) +% U+026C LATIN SMALL LETTER L WITH BELT; lbelt; \textbeltl (tipa) +\DeclareTextCommand{\textbeltl}{PU}{\82\154}% U+026C +%* \textbeltl -> \latfric (wsuipa) +% U+026D LATIN SMALL LETTER L WITH RETROFLEX HOOK; +% lhookretroflex; \textrtaill (tipa) +\DeclareTextCommand{\textrtaill}{PU}{\82\155}% U+026D +%* \textrtaill -> \taill (wsuipa) +% U+026E LATIN SMALL LETTER LEZH; lezh; \textlyoghlig (tipa) +\DeclareTextCommand{\textlyoghlig}{PU}{\82\156}% U+026E +%* \textlyoghlig -> \lz (wsuipa) +% U+026F LATIN SMALL LETTER TURNED M; mturned; \textturnm (tipa) +\DeclareTextCommand{\textturnm}{PU}{\82\157}% U+026F +%* \textturnm -> \invm (wsuipa) +%* \textturnm -> \rotm (phonetic) +% U+0270 LATIN SMALL LETTER TURNED M WITH LONG LEG; mlonglegturned; +% \textturnmrleg (tipa) +\DeclareTextCommand{\textturnmrleg}{PU}{\82\160}% U+0270 +%* \textturnmrleg -> \legm (wsuipa) +% U+0271 LATIN SMALL LETTER M WITH HOOK; mhook; \textltailm (tipa) +\DeclareTextCommand{\textltailm}{PU}{\82\161}% U+0271 +%* \textltailm -> \labdentalnas (wsuipa) +%* \textltailm -> \emgma (phonetic) +% U+0272 LATIN SMALL LETTER N WITH LEFT HOOK; nhookleft; \textltailn (tipa) +\DeclareTextCommand{\textltailn}{PU}{\82\162}% U+0272 +%* \textltailn -> \nj (wsuipa) +%* \textltailn -> \enya (phonetic) +% U+0273 LATIN SMALL LETTER N WITH RETROFLEX HOOK; +% nhookretroflex; \textrtailn (tipa) +\DeclareTextCommand{\textrtailn}{PU}{\82\163}% U+0273 +%* \textrtailn -> \tailn (wsuipa) +% U+0274 LATIN LETTER SMALL CAPITAL N; \textscn (tipa), \scn (wsuipa) +\DeclareTextCommand{\textscn}{PU}{\82\164}%* U+0274 +% U+0275 LATIN CAPITAL LETTER O WITH MIDDLE TILDE/ +% LATIN CAPITAL LETTER BARRED O; obarred; +% \textbaro (tipa), \baro (wsuipa) +% But \baro from stmaryrd is different! +\DeclareTextCommand{\textbaro}{PU}{\82\165}% U+0275 +% U+0276 LATIN LETTER SMALL CAPITAL OE; \textscoelig (tipa) +\DeclareTextCommand{\textscoelig}{PU}{\82\166}% U+0276 +% U+0277 LATIN SMALL LETTER CLOSED OMEGA; omegalatinclosed; +% \textcloseomega (tipa) +\DeclareTextCommand{\textcloseomega}{PU}{\82\167}% U+0277 +%* \textcloseomega -> \closedniomega (wsuipa) +%* \textcloseomega -> \varomega (phonetic) +% U+0278 LATIN SMALL LETTER PHI; philatin; \niphi (wsuipa) +\DeclareTextCommand{\textniphi}{PU}{\82\170}%* U+0278 +% U+0279 LATIN SMALL LETTER TURNED R; rturned; \textturnr (tipa) +\DeclareTextCommand{\textturnr}{PU}{\82\171}% U+0279 +%* \textturnr -> \invr (wsuipa) +%* \textturnr -> \rotr (phonetic) +% U+027A LATIN SMALL LETTER TURNED R WITH LONG LEG; +% rlonglegturned; \textturnlonglegr (tipa) +\DeclareTextCommand{\textturnlonglegr}{PU}{\82\172}% U+027A +%* \textturnlonglegr -> \invlegr (wsuipa) +% U+027B LATIN SMALL LETTER TURNED R WITH HOOK; rhookturned; +% \textturnrrtail (tipa) +\DeclareTextCommand{\textturnrrtail}{PU}{\82\173}% U+027B +%* \textturnrrtail -> \tailinvr (wsuipa) +% U+027C LATIN SMALL LETTER R WITH LONG LEG; rlongleg; \textlonglegr (tipa) +\DeclareTextCommand{\textlonglegr}{PU}{\82\174}%* U+027C +%* \textlonglegr -> \legr (wsuipa) +% U+027D LATIN SMALL LETTER R WITH TAIL; rhook; \textrtailr (tipa) +\DeclareTextCommand{\textrtailr}{PU}{\82\175}% U+027D +%* \textrtailr -> \tailr (wsuipa) +% U+027E LATIN SMALL LETTER R WITH FISHHOOK; rfishhook; +% \textfishhookr (tipa) +\DeclareTextCommand{\textfishhookr}{PU}{\82\176}% U+027E +%* \textfishhookr -> \flapr (wsuipa) +%* \textfishhookr -> \flap (phonetic) +% U+027F LATIN SMALL LETTER REVERSED R WITH FISHHOOK; rfishhookreversed; +% \textlhtlongi (tipa) +\DeclareTextCommand{\textlhtlongi}{PU}{\82\177}% U+027F +% U+0280 LATIN LETTER SMALL CAPITAL R; \textscr (tipa), \scr (wsuipa) +\DeclareTextCommand{\textscr}{PU}{\82\200}%* U+0280 +% U+0281 LATIN LETTER SMALL CAPITAL INVERTED R; Rsmallinverted; +% \textinvscr (tipa), \invscr (wsuipa) +\DeclareTextCommand{\textinvscr}{PU}{\82\201}%* U+0281 +% U+0282 LATIN SMALL LETTER S WITH HOOK; shook; \textrtails (tipa) +\DeclareTextCommand{\textrtails}{PU}{\82\202}% U+0282 +%* \textrtails -> \tails (wsuipa) +% U+0283 LATIN SMALL LETTER ESH; esh; \textesh (tipa), \esh (wsuipa) +\DeclareTextCommand{\textesh}{PU}{\82\203}%* U+0283 +% U+0284 LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK; +% dotlessjstrokehook; \texthtbardotlessj (tipa) +\DeclareTextCommand{\texthtbardotlessj}{PU}{\82\204}% U+0284 +% U+0285 LATIN SMALL LETTER SQUAT REVERSED ESH; eshsquatreversed; +% \textvibyi (tipa) +\DeclareTextCommand{\textvibyi}{PU}{\82\205}% U+0285 +% U+0286 LATIN SMALL LETTER ESH WITH CURL; eshcurl; \textctesh (tipa) +\DeclareTextCommand{\textctesh}{PU}{\82\206}% U+0286 +%* \textctesh -> \curlyesh (wsuipa) +% U+0287 LATIN SMALL LETTER TURNED T; tturned; \textturnt (tipa) +\DeclareTextCommand{\textturnt}{PU}{\82\207}% U+0287 +%* \textturnt -> \clickt (wsuipa) +% U+0288 LATIN SMALL LETTER T WITH RETROFLEX HOOK; tretroflexhook; +% \textrtailt (tipa) +\DeclareTextCommand{\textrtailt}{PU}{\82\210}% U+0288 +%* \textrtailt -> \tailt (wsuipa) +% U+0289 LATIN SMALL LETTER U BAR; ubar; +% \textbaru (tipa), \baru (wsuipa) +\DeclareTextCommand{\textbaru}{PU}{\82\211}%* U+0289 +%* \textbaru -> \ubar (phonetic) +% U+028A LATIN SMALL LETTER UPSILON; \niupsilon (wsuipa) +\DeclareTextCommand{\textniupsilon}{PU}{\82\212}%* U+028A +%* \textniupsilon -> \rotOmega (phonetic) +% U+028B LATIN SMALL LETTER V WITH HOOK/LATIN SMALL LETTER SCRIPT V; +% vhook; \textscriptv (tipa), \scriptv (wsuipa) +\DeclareTextCommand{\textscriptv}{PU}{\82\213}%* U+028B +% U+028C LATIN SMALL LETTER TURNED V; vturned; \textturnv (tipa) +\DeclareTextCommand{\textturnv}{PU}{\82\214}%* U+028C +%* \textturnv -> \invv (wsuipa) +%* \textturnv -> \pwedge (phonetic) +% U+028D LATIN SMALL LETTER TURNED W; wturned; \textturnw (tipa) +\DeclareTextCommand{\textturnw}{PU}{\82\215}%* U+028D +%* \textturnw -> \invw (wsuipa) +%* \textturnw -> \rotw (phonetic) +% U+028E LATIN SMALL LETTER TURNED Y; yturned; \textturny (tipa) +\DeclareTextCommand{\textturny}{PU}{\82\216}%* U+028E +%* \textturny -> \invy (wsuipa) +%* \textturny -> \roty (phonetic) +% U+028F LATIN LETTER SMALL CAPITAL Y; \textscy (tipa), \scy (wsuipa) +\DeclareTextCommand{\textscy}{PU}{\82\217}%* U+028F +% U+0290 LATIN SMALL LETTER Z WITH RETROFLEX HOOK; zretroflexhook; +% \textrtailz (tipa) +\DeclareTextCommand{\textrtailz}{PU}{\82\220}% U+0290 +%* \textrtailz -> \tailz (wsuipa) +% U+0291 LATIN SMALL LETTER Z WITH CURL; zcurl; \textctz (tipa) +\DeclareTextCommand{\textctz}{PU}{\82\221}% U+0291 +%* \textctz -> \curlyz (wsuipa) +% U+0292 LATIN SMALL LETTER EZH/LATIN SMALL LETTER YOGH; ezh; +% \textyogh (tipa), \yogh (wsuipa) +\DeclareTextCommand{\textyogh}{PU}{\82\222}%* U+0292 +% U+0293 LATIN SMALL LETTER EZH WITH CURL/LATIN SMALL LETTER YOGH CURL; +% ezhcurl; \textctyogh (tipa) +\DeclareTextCommand{\textctyogh}{PU}{\82\223}% U+0293 +%* \textctyogh -> \curlyyogh (wsuipa) +% U+0294 LATIN LETTER GLOTTAL STOP; glottalstop; +% \textglotstop (tipa), \glotstop (wsuipa) +\DeclareTextCommand{\textglotstop}{PU}{\82\224}%* U+0294 +%* \textglotstop -> \ejective (wsuipa) +%* \textglotstop -> \glottal (phonetic) +% U+0295 LATIN LETTER PHARYNGEAL VOICED FRICATIVE/ +% LATIN LETTER REVERSED GLOTTAL STOP; glottalstopreversed; +% \textrevglotstop (tipa), \revglotstop (wsuipa) +\DeclareTextCommand{\textrevglotstop}{PU}{\82\225}%* U+0295 +%* \textrevglotstop -> \reveject (wsuipa) +% U+0296 LATIN LETTER INVERTED GLOTTAL STOP; glottalstopinverted; +% \textinvglotstop (tipa), \invglotstop (wsuipa) +\DeclareTextCommand{\textinvglotstop}{PU}{\82\226}%* U+0296 +% U+0297 LATIN LETTER STRETCHED C; cstretched; \textstretchc (tipa) +\DeclareTextCommand{\textstretchc}{PU}{\82\227}% U+0297 +%* \textstretchc -> \clickc (wsuipa) +%* \textstretchc -> \textstretchcvar (tipx) +% U+0298 LATIN LETTER BILABIAL CLICK; bilabialclick; +% \textbullseye (tipa) +\DeclareTextCommand{\textbullseye}{PU}{\82\230}% U+0298 +%* \textbullseye -> \clickb (wsuipa) +%* \textbullseye -> \textObullseye (tipx) +% U+0299 LATIN LETTER SMALL CAPITAL B; \textscb (tipa) +\DeclareTextCommand{\textscb}{PU}{\82\231}% U+0299 +% U+029A LATIN SMALL LETTER CLOSED OPEN E; eopenclosed; +% \textcloseepsilon (tipa) +\DeclareTextCommand{\textcloseepsilon}{PU}{\82\232}% U+029A +% U+029B LATIN LETTER SMALL CAPITAL G WITH HOOK; Gsmallhook; +% \texthtscg (tipa) +\DeclareTextCommand{\texthtscg}{PU}{\82\233}% U+029B +% U+029C LATIN LETTER SMALL CAPITAL H; \textsch (tipa) +\DeclareTextCommand{\textsch}{PU}{\82\234}% U+029C +% U+029D LATIN SMALL LETTER J WITH CROSSED-TAIL; jcrossedtail; \textcdj (tipa) +\DeclareTextCommand{\textctj}{PU}{\82\235}% U+029D +%* \textctj -> \textctjvar (tipx) +% U+029E LATIN SMALL LETTER TURNED K; kturned; \textturnk (tipa) +\DeclareTextCommand{\textturnk}{PU}{\82\236}% U+029E +%* \textturnk -> \textturnsck (tipx) +% U+029F LATIN LETTER SMALL CAPITAL L; \textscl (tipa) +\DeclareTextCommand{\textscl}{PU}{\82\237}% U+029F +% U+02A0 LATIN SMALL LETTER Q WITH HOOK; qhook; \texthtq (tipa) +\DeclareTextCommand{\texthtq}{PU}{\82\240}% U+02A0 +% U+02A1 LATIN LETTER GLOTTAL STOP WITH STROKE; glottalstopstroke; +% \textbarglotstop (tipa) +\DeclareTextCommand{\textbarglotstop}{PU}{\82\241}% U+02A1 +% U+02A2 LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE/ +% LATIN LETTER REVERSED GLOTTAL STOP BAR; glottalstopstrokereversed; +% \textbarrevglotstop (tipa) +\DeclareTextCommand{\textbarrevglotstop}{PU}{\82\242}% U+02A2 +% U+02A3 LATIN SMALL LETTER DZ DIGRAPH; dzaltone; \textdzlig (tipa) +\DeclareTextCommand{\textdzlig}{PU}{\82\243}% U+02A3 +%* \textdzlig -> \dz (wsupipa) +% U+02A4 LATIN SMALL LETTER DEZH DIGRAPH; dezh; \textdyoghlig (tipa) +\DeclareTextCommand{\textdyoghlig}{PU}{\82\244}% U+02A4 +% U+02A5 LATIN SMALL LETTER DZ DIGRAPH WITH CURL; dzcurl; +% \textdctzlig (tipa) +\DeclareTextCommand{\textdctzlig}{PU}{\82\245}% U+02A5 +% U+02A6 LATIN SMALL LETTER TS DIGRAPH; ts; \texttslig (tipa) +\DeclareTextCommand{\texttslig}{PU}{\82\246}% U+02A6 +% U+02A7 LATIN SMALL LETTER TESH DIGRAPH; tesh; \textteshlig (tipa) +\DeclareTextCommand{\textteshlig}{PU}{\82\247}% U+02A7 +%* \textteshlig -> \tesh (wsuipa) +% U+02A8 LATIN SMALL LETTER TC DIGRAPH WITH CURL; tccurl; +% \texttctclig (tipa) +\DeclareTextCommand{\texttctclig}{PU}{\82\250}% U+02A8 +% U+02AE LATIN SMALL LETTER TURNED H WITH FISHHOOK; +% \textlhtlongy (tipa) +\DeclareTextCommand{\textlhtlongy}{PU}{\82\256}% U+02AE +% U+02AF LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL; +% \textvibyy (tipa) +\DeclareTextCommand{\textvibyy}{PU}{\82\257}% U+02AF +% \end{macrocode} +% +% \subsubsection{Spacing Modifier Letters: U+02B0 to U+02FF} +% +% \begin{macrocode} +% U+02BD MODIFIER LETTER REVERSED COMMA; +% commareversedmod, afii64937; \textrevapostrophe (tipa) +\DeclareTextCommand{\textrevapostrophe}{PU}{\82\275}% U+02BD +% U+02C0 MODIFIER LETTER GLOTTAL STOP; glottalstopmod; +% \textraiseglotstop (tipa) +\DeclareTextCommand{\textraiseglotstop}{PU}{\82\300}% U+02C0 +% U+02C2 MODIFIER LETTER LEFT ARROWHEAD; arrowheadleftmod; +% \textlptr (tipa) +\DeclareTextCommand{\textlptr}{PU}{\82\302}% U+02C2 +% U+02C3 MODIFIER LETTER RIGHT ARROWHEAD; arrowheadrightmod; +% \textrptr (tipa) +\DeclareTextCommand{\textrptr}{PU}{\82\303}% U+02C3 +% U+02C7 CARON; caron +\DeclareTextCommand{\textasciicaron}{PU}{\82\307}% U+02C7 +% U+02C8 MODIFIER LETTER VERTICAL LINE; verticallinemod; +% \textprimstress (tipa) +\DeclareTextCommand{\textprimstress}{PU}{\82\310}% U+02C8 +% U+02CC MODIFIER LETTER LOW VERTICAL LINE; verticallinelowmod; +% \textsecstress (tipa) +\DeclareTextCommand{\textsecstress}{PU}{\82\314}% U+02CC +% U+02D0 MODIFIER LETTER TRIANGULAR COLON; colontriangularmod; +% \textlengthmark (tipa) +\DeclareTextCommand{\textlengthmark}{PU}{\82\320}% U+02D0 +% U+02D1 MODIFIER LETTER HALF TRIANGULAR COLON; colontriangularhalfmod; +% \texthalflength (tipa) +\DeclareTextCommand{\texthalflength}{PU}{\82\321}% U+02D1 +% U+02D8 BREVE; breve +\DeclareTextCommand{\textasciibreve}{PU}{\82\330}% U+02D8 +% U+02D9 DOT ABOVE; dotaccent +\DeclareTextCommand{\textdotaccent}{PU}{\82\331}% U+02D9 +% U+02DA RING ABOVE; ring +\DeclareTextCommand{\textring}{PU}{\82\332}% U+02DA +% U+02DB OGONEK; ogonek +\DeclareTextCommand{\textogonek}{PU}{\82\333}% U+02DB +% U+02DC SMALL TILDE; ilde, *tilde +\DeclareTextCommand{\texttilde}{PU}{\82\334}% U+02DC +% U+02DD DOUBLE ACUTE ACCENT; hungarumlaut +\DeclareTextCommand{\texthungarumlaut}{PU}{\82\335}% U+02DD +\DeclareTextCommand{\textacutedbl}{PU}{\82\335}% U+02DD +% U+02F3 MODIFIER LETTER LOW RING +\DeclareTextCommand{\textringlow}{PU}{\82\363}% U+02F3 +% U+02F5 MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT +\DeclareTextCommand{\textgravedbl}{PU}{\82\365}% U+02F5 +% U+02F7 MODIFIER LETTER LOW TILDE +\DeclareTextCommand{\texttildelow}{PU}{\82\367}% U+02F7 +% U+02F9 MODIFIER LETTER BEGIN HIGH TONE; \textopencorner (tipa) +\DeclareTextCommand{\textopencorner}{PU}{\82\371}% U+02F9 +% U+02FA MODIFIER LETTER END HIGH TONE; \textcorner (tipa) +\DeclareTextCommand{\textcorner}{PU}{\82\372}% U+02FA +% \end{macrocode} +% +% \subsubsection{Combining Diacritical Marks: U+0300 to U+036F} +% +% \begin{macrocode} +% U+030F COMBINING DOUBLE GRAVE ACCENT; dblgravecmb +\DeclareTextCommand{\textdoublegrave}{PU}{ \83\017}% U+030F +% U+0311 COMBINING INVERTED BREVE; breveinvertedcmb +\DeclareTextCommand{\textnewtie}{PU}{ \83\021}% U+0311 +% U+0323 COMBINING DOT BELOW; dotbelowcmb, *dotbelowcomb +\DeclareTextCommand{\textdotbelow}{PU}{ \83\043}% U+0323 +% U+0331 COMBINING MACRON BELOW; macronbelowcmb +\DeclareTextCommand{\textmacronbelow}{PU}{ \83\061}% U+0331 +% U+0361 COMBINING DOUBLE INVERTED BREVE; breveinverteddoublecmb +\DeclareTextCommand{\texttie}{PU}{ \83\141}% U+0361 +% \end{macrocode} +% +% \subsubsection{Greek and Coptic: U+0370 to U+03FF} +% +% \begin{macrocode} +% U+0374 GREEK NUMERAL SIGN; numeralsigngreek +\DeclareTextCommand{\textnumeralsigngreek}{PU}{\83\164}% U+0374 +% U+0375 GREEK LOWER NUMERAL SIGN; numeralsignlowergreek +\DeclareTextCommand{\textnumeralsignlowergreek}{PU}{\83\165}% U+0375 +% U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS; Alphatonos +\DeclareTextCompositeCommand{\'}{PU}{\textAlpha}{\83\206}% U+0386 +% U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS; Epsilontonos +\DeclareTextCompositeCommand{\'}{PU}{\textEpsilon}{\83\210}% U+0388 +% U+0389 GREEK CAPITAL LETTER ETA WITH TONOS; Etatonos +\DeclareTextCompositeCommand{\'}{PU}{\textEta}{\83\211}% U+0389 +% U+038A GREEK CAPITAL LETTER IOTA WITH TONOS; Iotatonos +\DeclareTextCompositeCommand{\'}{PU}{\textIota}{\83\212}% U+038A +% U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS; Omicrontonos +\DeclareTextCompositeCommand{\'}{PU}{\textOmicron}{\83\214}% U+038C +% U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS; Upsilontonos +\DeclareTextCompositeCommand{\'}{PU}{\textUpsilon}{\83\216}% U+038E +% U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS; Omegatonos +\DeclareTextCompositeCommand{\'}{PU}{\textOmega}{\83\217}% U+038F +% U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS; +% iotadieresistonos +\DeclareTextCompositeCommand{\'}{PU}{\textIotadieresis}{\83\220}% U+0390 +% U+0391 GREEK CAPITAL LETTER ALPHA; Alpha +\DeclareTextCommand{\textAlpha}{PU}{\83\221}% U+0391 +% U+0392 GREEK CAPITAL LETTER BETA; Beta +\DeclareTextCommand{\textBeta}{PU}{\83\222}% U+0392 +% U+0393 GREEK CAPITAL LETTER GAMMA; Gamma; \Gamma (LaTeX) +\DeclareTextCommand{\textGamma}{PU}{\83\223}%* U+0393 +% U+0394 GREEK CAPITAL LETTER DELTA; Deltagreek, *Delta; \Delta (LaTeX) +\DeclareTextCommand{\textDelta}{PU}{\83\224}%* U+0394 +% U+0395 GREEK CAPITAL LETTER EPSILON; Epsilon +\DeclareTextCommand{\textEpsilon}{PU}{\83\225}% U+0395 +% U+0396 GREEK CAPITAL LETTER ZETA; Zeta +\DeclareTextCommand{\textZeta}{PU}{\83\226}% U+0396 +% U+0397 GREEK CAPITAL LETTER ETA; Eta +\DeclareTextCommand{\textEta}{PU}{\83\227}% U+0397 +% U+0398 GREEK CAPITAL LETTER THETA; Theta; \Theta (LaTeX) +\DeclareTextCommand{\textTheta}{PU}{\83\230}%* U+0398 +% U+0399 GREEK CAPITAL LETTER IOTA; Iota +\DeclareTextCommand{\textIota}{PU}{\83\231}% U+0399 +% U+039A GREEK CAPITAL LETTER KAPPA; Kappa +\DeclareTextCommand{\textKappa}{PU}{\83\232}% U+039A +% U+039B GREEK CAPITAL LETTER LAMDA; Lambda; \Lambda (LaTeX) +\DeclareTextCommand{\textLambda}{PU}{\83\233}%* U+039B +% U+039C GREEK CAPITAL LETTER MU; Mu +\DeclareTextCommand{\textMu}{PU}{\83\234}% U+039C +% U+039D GREEK CAPITAL LETTER NU; Nu +\DeclareTextCommand{\textNu}{PU}{\83\235}% U+039D +% U+039E GREEK CAPITAL LETTER XI; Xi; \Xi (LaTeX) +\DeclareTextCommand{\textXi}{PU}{\83\236}%* U+039E +% U+039F GREEK CAPITAL LETTER OMICRON; Omicron +\DeclareTextCommand{\textOmicron}{PU}{\83\237}% U+039F +% U+03A0 GREEK CAPITAL LETTER PI; Pi +\DeclareTextCommand{\textPi}{PU}{\83\240}%* U+03A0 +% U+03A1 GREEK CAPITAL LETTER RHO; Rho +\DeclareTextCommand{\textRho}{PU}{\83\241}% U+03A1 +% U+03A3 GREEK CAPITAL LETTER SIGMA; Sigma; \Sigma (LaTeX) +\DeclareTextCommand{\textSigma}{PU}{\83\243}%* U+03A3 +% U+03A4 GREEK CAPITAL LETTER TAU; Tau +\DeclareTextCommand{\textTau}{PU}{\83\244}% U+03A4 +% U+03A5 GREEK CAPITAL LETTER UPSILON; Upsilon; \Upsilon (LaTeX) +\DeclareTextCommand{\textUpsilon}{PU}{\83\245}%* U+03A5 +% U+03A6 GREEK CAPITAL LETTER PHI; Phi; \Phi (LaTeX) +\DeclareTextCommand{\textPhi}{PU}{\83\246}%* U+03A6 +% U+03A7 GREEK CAPITAL LETTER CHI; Chi +\DeclareTextCommand{\textChi}{PU}{\83\247}% U+03A7 +% U+03A8 GREEK CAPITAL LETTER PSI; Psi; \Psi (LaTeX) +\DeclareTextCommand{\textPsi}{PU}{\83\250}%* U+03A8 +% U+03A9 GREEK CAPITAL LETTER OMEGA; Omegagreek, *Omega; +% \Omega (LaTeX) +\DeclareTextCommand{\textOmega}{PU}{\83\251}%* U+03A9 +% U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA; Iotadieresis +\DeclareTextCommand{\textIotadieresis}{PU}{\83\252}% U+03AA +\DeclareTextCompositeCommand{\"}{PU}{\textIota}{\83\252}% U+03AA +% U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA; Upsilondieresis +\DeclareTextCompositeCommand{\"}{PU}{\textUpsilon}{\83\253}% U+03AB +% U+03AC GREEK SMALL LETTER ALPHA WITH TONOS; alphatonos +\DeclareTextCompositeCommand{\'}{PU}{\textalpha}{\83\254}%* U+03AC +% U+03AD GREEK SMALL LETTER EPSILON WITH TONOS; epsilontonos +\DeclareTextCompositeCommand{\'}{PU}{\textepsilon}{\83\255}% U+03AD +% U+03AE GREEK SMALL LETTER ETA WITH TONOS; etatonos +\DeclareTextCompositeCommand{\'}{PU}{\texteta}{\83\256}% U+03AE +% U+03AF GREEK SMALL LETTER IOTA WITH TONOS; iotatonos +\DeclareTextCompositeCommand{\'}{PU}{\textiota}{\83\257}% U+03AF +% U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA +% AND TONOS; upsilondieresisto +\DeclareTextCompositeCommand{\"}{PU}{\textupsilonacute}{\83\260}% U+03B0 +% U+03B1 GREEK SMALL LETTER ALPHA; alpha; \alpha (LaTeX) +\DeclareTextCommand{\textalpha}{PU}{\83\261}%* U+03B1 +% U+03B2 GREEK SMALL LETTER BETA; beta; \beta (LaTeX) +\DeclareTextCommand{\textbeta}{PU}{\83\262}%* U+03B2 +% U+03B3 GREEK SMALL LETTER GAMMA; gamma; \gamma (LaTeX) +\DeclareTextCommand{\textgamma}{PU}{\83\263}%* U+03B3 +% U+03B4 GREEK SMALL LETTER DELTA; delta; \delta (LaTeX) +\DeclareTextCommand{\textdelta}{PU}{\83\264}%* U+03B4 +% U+03B5 GREEK SMALL LETTER EPSILON; epsilon; \epsilon (LaTeX) +\DeclareTextCommand{\textepsilon}{PU}{\83\265}%* U+03B5 +% U+03B6 GREEK SMALL LETTER ZETA; zeta; \zeta (LaTeX) +\DeclareTextCommand{\textzeta}{PU}{\83\266}%* U+03B6 +% U+03B7 GREEK SMALL LETTER ETA; eta; \eta (LaTeX) +\DeclareTextCommand{\texteta}{PU}{\83\267}%* U+03B7 +% U+03B8 GREEK SMALL LETTER THETA; theta; \theta (LaTeX) +\DeclareTextCommand{\texttheta}{PU}{\83\270}%* U+03B8 +% U+03B9 GREEK SMALL LETTER IOTA; iota; \iota (LaTeX) +\DeclareTextCommand{\textiota}{PU}{\83\271}%* U+03B9 +% U+03BA GREEK SMALL LETTER KAPPA; kappa; \kappa (LaTeX) +\DeclareTextCommand{\textkappa}{PU}{\83\272}%* U+03BA +% U+03BB GREEK SMALL LETTER LAMDA; lambda; \lambda (LaTeX) +\DeclareTextCommand{\textlambda}{PU}{\83\273}%* U+03BB +% U+03BC GREEK SMALL LETTER MU; mugreek, *mu; \mu (LaTeX) +\DeclareTextCommand{\textmugreek}{PU}{\83\274}%* U+03BC +% U+03BD GREEK SMALL LETTER NU; nu; \nu (LaTeX) +\DeclareTextCommand{\textnu}{PU}{\83\275}%* U+03BD +% U+03BE GREEK SMALL LETTER XI; xi; \xi (LaTeX) +\DeclareTextCommand{\textxi}{PU}{\83\276}%* U+03BE +% U+03BF GREEK SMALL LETTER OMICRON; omicron +\DeclareTextCommand{\textomicron}{PU}{\83\277}% U+03BF +% U+03C0 GREEK SMALL LETTER PI; pi; \pi (LaTeX) +\DeclareTextCommand{\textpi}{PU}{\83\300}%* U+03C0 +% U+03C1 GREEK SMALL LETTER RHO; rho; \rho (LaTeX) +\DeclareTextCommand{\textrho}{PU}{\83\301}%* U+03C1 +% U+03C2 GREEK SMALL LETTER FINAL SIGMA; *sigma1, sigmafinal +\DeclareTextCommand{\textvarsigma}{PU}{\83\302}%* U+03C2 +% U+03C3 GREEK SMALL LETTER SIGMA; sigma; \sigma (LaTeX) +\DeclareTextCommand{\textsigma}{PU}{\83\303}%* U+03C3 +% U+03C4 GREEK SMALL LETTER TAU; tau; \tau (LaTeX) +\DeclareTextCommand{\texttau}{PU}{\83\304}%* U+03C4 +% U+03C5 GREEK SMALL LETTER UPSILON; upsilon; \upsilon (LaTeX) +\DeclareTextCommand{\textupsilon}{PU}{\83\305}%* U+03C5 +% U+03C6 GREEK SMALL LETTER PHI; phi; \phi (LaTeX) +\DeclareTextCommand{\textphi}{PU}{\83\306}%* U+03C6 +% U+03C7 GREEK SMALL LETTER CHI; chi; \chi (LaTeX) +\DeclareTextCommand{\textchi}{PU}{\83\307}%* U+03C7 +% U+03C8 GREEK SMALL LETTER PSI; psi; \psi (LaTeX) +\DeclareTextCommand{\textpsi}{PU}{\83\310}%* U+03C8 +% U+03C9 GREEK SMALL LETTER OMEGA; omega; \omega (LaTeX) +\DeclareTextCommand{\textomega}{PU}{\83\311}%* U+03C9 +% U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA; iotadieresis +\DeclareTextCompositeCommand{\"}{PU}{\textiota}{\83\312}% U+03CA +% U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA; upsilondieresis +\DeclareTextCompositeCommand{\"}{PU}{\textupsilon}{\83\313}% U+03CB +% U+03CC GREEK SMALL LETTER OMICRON WITH TONOS; omicrontonos +\DeclareTextCompositeCommand{\'}{PU}{\textomicron}{\83\314}% U+03CC +% U+03CD GREEK SMALL LETTER UPSILON WITH TONOS; upsilontonos +\DeclareTextCommand{\textupsilonacute}{PU}{\83\315}% U+03CD +\DeclareTextCompositeCommand{\'}{PU}{\textupsilon}{\83\315}% U+03CD +% U+03CE GREEK SMALL LETTER OMEGA WITH TONOS; omegatonos +\DeclareTextCompositeCommand{\'}{PU}{\textomega}{\83\316}% U+03CE +% U+03DA GREEK LETTER STIGMA; Stigmagreek +\DeclareTextCommand{\textStigmagreek}{PU}{\83\332}% U+03DA +% U+03DB GREEK SMALL LETTER STIGMA +\DeclareTextCommand{\textstigmagreek}{PU}{\83\333}% U+03DB +% U+03DC GREEK LETTER DIGAMMA; Digammagreek +\DeclareTextCommand{\textDigammagreek}{PU}{\83\334}% U+03DC +% U+03DD GREEK SMALL LETTER DIGAMMA +\DeclareTextCommand{\textdigammagreek}{PU}{\83\335}% U+03DD +%* \textdigammagreek -> \digamma (AmS) +% U+03DE GREEK LETTER KOPPA; Koppagreek +\DeclareTextCommand{\textKoppagreek}{PU}{\83\336}% U+03DE +% U+03DF GREEK SMALL LETTER KOPPA +\DeclareTextCommand{\textkoppagreek}{PU}{\83\337}% U+03DF +% U+03E0 GREEK LETTER SAMPI; Sampigreek +\DeclareTextCommand{\textSampigreek}{PU}{\83\340}% U+03E0 +% U+03E1 GREEK SMALL LETTER SAMPI +\DeclareTextCommand{\textsampigreek}{PU}{\83\341}% U+03E1 +% U+03F6 GREEK REVERSED LUNATE EPSILON SYMBOL; +% \backepsilon (AmS) +\DeclareTextCommand{\textbackepsilon}{PU}{\83\366}% U+03F6 +% \end{macrocode} +% +% \subsubsection{Cyrillic: U+0400 to U+04FF} +% +% Thanks to Vladimir Volovich (\Email{vvv@vvv.vsu.ru}) for +% the help with the Cyrillic glyph names. +% \begin{macrocode} +% U+0400 CYRILLIC CAPITAL LETTER IE WITH GRAVE +\DeclareTextCompositeCommand{\`}{PU}{\CYRE}{\84\000}% U+0400 +% U+0401 CYRILLIC CAPITAL LETTER IO; Iocyrillic, *afii10023 +\DeclareTextCommand{\CYRYO}{PU}{\84\001}% U+0401 +\DeclareTextCompositeCommand{\"}{PU}{\CYRE}{\84\001}% U+0401 +% U+0402 CYRILLIC CAPITAL LETTER DJE; Djecyrillic, *afii10051 +\DeclareTextCommand{\CYRDJE}{PU}{\84\002}% U+0402 +% U+0403 CYRILLIC CAPITAL LETTER GJE; Gjecyrillic, *afii10052 +\DeclareTextCompositeCommand{\'}{PU}{\CYRG}{\84\003}% U+0403 +% U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE; Ecyrillic, *afii10053 +\DeclareTextCommand{\CYRIE}{PU}{\84\004}% U+0404 +% U+0405 CYRILLIC CAPITAL LETTER DZE; Dzecyrillic, *afii10054 +\DeclareTextCommand{\CYRDZE}{PU}{\84\005}% U+0405 +% U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I; +% Icyrillic, *afii10055 +\DeclareTextCommand{\CYRII}{PU}{\84\006}% U+0406 +% U+0407 CYRILLIC CAPITAL LETTER YI; Yicyrillic, *afii10056 +\DeclareTextCommand{\CYRYI}{PU}{\84\007}% U+0407 +\DeclareTextCompositeCommand{\"}{PU}{\CYRII}{\84\007}% U+0407 +% U+0408 CYRILLIC CAPITAL LETTER JE; Jecyrillic, *afii10057 +\DeclareTextCommand{\CYRJE}{PU}{\84\010}% U+0408 +% U+0409 CYRILLIC CAPITAL LETTER LJE; Ljecyrillic, *afii10058 +\DeclareTextCommand{\CYRLJE}{PU}{\84\011}% U+0409 +% U+040A CYRILLIC CAPITAL LETTER NJE; Njecyrillic, *afii10059 +\DeclareTextCommand{\CYRNJE}{PU}{\84\012}% U+040A +% U+040B CYRILLIC CAPITAL LETTER TSHE; Tshecyrillic, *afii10060 +\DeclareTextCommand{\CYRTSHE}{PU}{\84\013}% U+040B +% U+040C CYRILLIC CAPITAL LETTER KJE; Kjecyrillic, *afii10061 +\DeclareTextCompositeCommand{\'}{PU}{\CYRK}{\84\014}% U+040C +% U+040D CYRILLIC CAPITAL LETTER I WITH GRAVE +\DeclareTextCompositeCommand{\`}{PU}{\CYRI}{\84\015}% U+040D +% U+040E CYRILLIC CAPITAL LETTER SHORT U; Ushortcyrillic, *afii10062 +\DeclareTextCommand{\CYRUSHRT}{PU}{\84\016}% U+040E +\DeclareTextCompositeCommand{\U}{PU}{\CYRU}{\84\016}% U+040E +% U+040F CYRILLIC CAPITAL LETTER DZHE; Dzhecyrillic, *afii10145 +\DeclareTextCommand{\CYRDZHE}{PU}{\84\017}% U+040F +% U+0410 CYRILLIC CAPITAL LETTER A; Acyrillic, *afii10017 +\DeclareTextCommand{\CYRA}{PU}{\84\020}% U+0410 +% U+0411 CYRILLIC CAPITAL LETTER BE; Becyrillic, *afii10018 +\DeclareTextCommand{\CYRB}{PU}{\84\021}% U+0411 +% U+0412 CYRILLIC CAPITAL LETTER VE; Vecyrillic, *afii10019 +\DeclareTextCommand{\CYRV}{PU}{\84\022}% U+0412 +% U+0413 CYRILLIC CAPITAL LETTER GHE; Gecyrillic, *afii10020 +\DeclareTextCommand{\CYRG}{PU}{\84\023}% U+0413 +% U+0414 CYRILLIC CAPITAL LETTER DE; Decyrillic, *afii10021 +\DeclareTextCommand{\CYRD}{PU}{\84\024}% U+0414 +% U+0415 CYRILLIC CAPITAL LETTER IE; Iecyrillic, *afii10022 +\DeclareTextCommand{\CYRE}{PU}{\84\025}% U+0415 +% U+0416 CYRILLIC CAPITAL LETTER ZHE; Zhecyrillic, *afii10024 +\DeclareTextCommand{\CYRZH}{PU}{\84\026}% U+0416 +% U+0417 CYRILLIC CAPITAL LETTER ZE; Zecyrillic, *afii10025 +\DeclareTextCommand{\CYRZ}{PU}{\84\027}% U+0417 +% U+0418 CYRILLIC CAPITAL LETTER I; Iicyrillic, *afii10026 +\DeclareTextCommand{\CYRI}{PU}{\84\030}% U+0418 +% U+0419 CYRILLIC CAPITAL LETTER SHORT I; Iishortcyrillic, *afii10027 +\DeclareTextCommand{\CYRISHRT}{PU}{\84\031}% U+0419 +\DeclareTextCompositeCommand{\U}{PU}{\CYRI}{\84\031}% U+0419 +% U+041A CYRILLIC CAPITAL LETTER KA; Kacyrillic, *afii10028 +\DeclareTextCommand{\CYRK}{PU}{\84\032}% U+041A +% U+041B CYRILLIC CAPITAL LETTER EL; Elcyrillic, *afii10029 +\DeclareTextCommand{\CYRL}{PU}{\84\033}% U+041B +% U+041C CYRILLIC CAPITAL LETTER EM; Emcyrillic, *afii10030 +\DeclareTextCommand{\CYRM}{PU}{\84\034}% U+041C +% U+041D CYRILLIC CAPITAL LETTER EN; Encyrillic, *afii10031 +\DeclareTextCommand{\CYRN}{PU}{\84\035}% U+041D +% U+041E CYRILLIC CAPITAL LETTER O; Ocyrillic, *afii10032 +\DeclareTextCommand{\CYRO}{PU}{\84\036}% U+041E +% U+041F CYRILLIC CAPITAL LETTER PE; Pecyrillic, *afii10033 +\DeclareTextCommand{\CYRP}{PU}{\84\037}% U+041F +% U+0420 CYRILLIC CAPITAL LETTER ER; Ercyrillic, *afii10034 +\DeclareTextCommand{\CYRR}{PU}{\84\040}% U+0420 +% U+0421 CYRILLIC CAPITAL LETTER ES; Escyrillic, *afii10035 +\DeclareTextCommand{\CYRS}{PU}{\84\041}% U+0421 +% U+0422 CYRILLIC CAPITAL LETTER TE; Tecyrillic, *afii10036 +\DeclareTextCommand{\CYRT}{PU}{\84\042}% U+0422 +% U+0423 CYRILLIC CAPITAL LETTER U; Ucyrillic, *afii10037 +\DeclareTextCommand{\CYRU}{PU}{\84\043}% U+0423 +% U+0424 CYRILLIC CAPITAL LETTER EF; Efcyrillic, *afii10038 +\DeclareTextCommand{\CYRF}{PU}{\84\044}% U+0424 +% U+0425 CYRILLIC CAPITAL LETTER HA; Khacyrillic, *afii10039 +\DeclareTextCommand{\CYRH}{PU}{\84\045}% U+0425 +% U+0426 CYRILLIC CAPITAL LETTER TSE; Tsecyrillic, *afii10040 +\DeclareTextCommand{\CYRC}{PU}{\84\046}% U+0426 +% U+0427 CYRILLIC CAPITAL LETTER CHE; Checyrillic, *afii10041 +\DeclareTextCommand{\CYRCH}{PU}{\84\047}% U+0427 +% U+0428 CYRILLIC CAPITAL LETTER SHA; Shacyrillic, *afii10042 +\DeclareTextCommand{\CYRSH}{PU}{\84\050}% U+0428 +% U+0429 CYRILLIC CAPITAL LETTER SHCHA; Shchacyrillic, *afii10043 +\DeclareTextCommand{\CYRSHCH}{PU}{\84\051}% U+0429 +% U+042A CYRILLIC CAPITAL LETTER HARD SIGN; +% Hardsigncyrillic, *afii10044 +\DeclareTextCommand{\CYRHRDSN}{PU}{\84\052}% U+042A +% U+042B CYRILLIC CAPITAL LETTER YERU; Yericyrillic, *afii10045 +\DeclareTextCommand{\CYRERY}{PU}{\84\053}% U+042B +% U+042C CYRILLIC CAPITAL LETTER SOFT SIGN; +% Softsigncyrillic, *afii10046 +\DeclareTextCommand{\CYRSFTSN}{PU}{\84\054}% U+042C +% U+042D CYRILLIC CAPITAL LETTER E; Ereversedcyrillic, *afii10047 +\DeclareTextCommand{\CYREREV}{PU}{\84\055}% U+042D +% U+042E CYRILLIC CAPITAL LETTER YU; IUcyrillic, *afii10048 +\DeclareTextCommand{\CYRYU}{PU}{\84\056}% U+042E +% U+042F CYRILLIC CAPITAL LETTER YA; IAcyrillic, *afii10049 +\DeclareTextCommand{\CYRYA}{PU}{\84\057}% U+042F +% U+0430 CYRILLIC SMALL LETTER A; acyrillic, *afii10065 +\DeclareTextCommand{\cyra}{PU}{\84\060}% U+0430 +% U+0431 CYRILLIC SMALL LETTER BE; *afii10066, becyrillic +\DeclareTextCommand{\cyrb}{PU}{\84\061}% U+0431 +% U+0432 CYRILLIC SMALL LETTER VE; *afii10067, vecyrillic +\DeclareTextCommand{\cyrv}{PU}{\84\062}% U+0432 +% U+0433 CYRILLIC SMALL LETTER GHE; *afii10068, gecyrillic +\DeclareTextCommand{\cyrg}{PU}{\84\063}% U+0433 +% U+0434 CYRILLIC SMALL LETTER DE; *afii10069, decyrillic +\DeclareTextCommand{\cyrd}{PU}{\84\064}% U+0434 +% U+0435 CYRILLIC SMALL LETTER IE; *afii10070, iecyrillic +\DeclareTextCommand{\cyre}{PU}{\84\065}% U+0435 +% U+0436 CYRILLIC SMALL LETTER ZHE; *afii10072, zhecyrillic +\DeclareTextCommand{\cyrzh}{PU}{\84\066}% U+0436 +% U+0437 CYRILLIC SMALL LETTER ZE; *afii10073, zecyrillic +\DeclareTextCommand{\cyrz}{PU}{\84\067}% U+0437 +% U+0438 CYRILLIC SMALL LETTER I; *afii10074, iicyrillic +\DeclareTextCommand{\cyri}{PU}{\84\070}% U+0438 +% U+0439 CYRILLIC SMALL LETTER SHORT I; *afii10075, iishortcyrillic +\DeclareTextCommand{\cyrishrt}{PU}{\84\071}% U+0439 +\DeclareTextCompositeCommand{\U}{PU}{\cyri}{\84\071}% U+0439 +% U+043A CYRILLIC SMALL LETTER KA; *afii10076, kacyrillic +\DeclareTextCommand{\cyrk}{PU}{\84\072}% U+043A +% U+043B CYRILLIC SMALL LETTER EL; *afii10077, elcyrillic +\DeclareTextCommand{\cyrl}{PU}{\84\073}% U+043B +% U+043C CYRILLIC SMALL LETTER EM; *afii10078, emcyrillic +\DeclareTextCommand{\cyrm}{PU}{\84\074}% U+043C +% U+043D CYRILLIC SMALL LETTER EN; *afii10079, encyrillic +\DeclareTextCommand{\cyrn}{PU}{\84\075}% U+043D +% U+043E CYRILLIC SMALL LETTER O; *afii10080, ocyrillic +\DeclareTextCommand{\cyro}{PU}{\84\076}% U+043E +% U+043F CYRILLIC SMALL LETTER PE; *afii10081, pecyrillic +\DeclareTextCommand{\cyrp}{PU}{\84\077}% U+043F +% U+0440 CYRILLIC SMALL LETTER ER; *afii10082, ercyrillic +\DeclareTextCommand{\cyrr}{PU}{\84\100}% U+0440 +% U+0441 CYRILLIC SMALL LETTER ES; *afii10083, escyrillic +\DeclareTextCommand{\cyrs}{PU}{\84\101}% U+0441 +% U+0442 CYRILLIC SMALL LETTER TE; *afii10084, tecyrillic +\DeclareTextCommand{\cyrt}{PU}{\84\102}% U+0442 +% U+0443 CYRILLIC SMALL LETTER U; *afii10085, ucyrillic +\DeclareTextCommand{\cyru}{PU}{\84\103}% U+0443 +% U+0444 CYRILLIC SMALL LETTER EF; *afii10086, efcyrillic +\DeclareTextCommand{\cyrf}{PU}{\84\104}% U+0444 +% U+0445 CYRILLIC SMALL LETTER HA; *afii10087, khacyrillic +\DeclareTextCommand{\cyrh}{PU}{\84\105}% U+0445 +% U+0446 CYRILLIC SMALL LETTER TSE; *afii10088, tsecyrillic +\DeclareTextCommand{\cyrc}{PU}{\84\106}% U+0446 +% U+0447 CYRILLIC SMALL LETTER CHE; *afii10089, checyrillic +\DeclareTextCommand{\cyrch}{PU}{\84\107}% U+0447 +% U+0448 CYRILLIC SMALL LETTER SHA; *afii10090, shacyrillic +\DeclareTextCommand{\cyrsh}{PU}{\84\110}% U+0448 +% U+0449 CYRILLIC SMALL LETTER SHCHA; *afii10091, shchacyrillic +\DeclareTextCommand{\cyrshch}{PU}{\84\111}% U+0449 +% U+044A CYRILLIC SMALL LETTER HARD SIGN; *afii10092, hardsigncyrillic +\DeclareTextCommand{\cyrhrdsn}{PU}{\84\112}% U+044A +%* \cyrhrdsn -> \hardsign (tipa) +% U+044B CYRILLIC SMALL LETTER YERU; *afii10093, yericyrillic +\DeclareTextCommand{\cyrery}{PU}{\84\113}% U+044B +% U+044C CYRILLIC SMALL LETTER SOFT SIGN; *afii10094, softsigncyrillic +\DeclareTextCommand{\cyrsftsn}{PU}{\84\114}% U+044C +%* \cyrsftsn -> \softsign (tipa) +% U+044D CYRILLIC SMALL LETTER E; *afii10095, ereversedcyrillic +\DeclareTextCommand{\cyrerev}{PU}{\84\115}% U+044D +% U+044E CYRILLIC SMALL LETTER YU; *afii10096, iucyrillic +\DeclareTextCommand{\cyryu}{PU}{\84\116}% U+044E +% U+044F CYRILLIC SMALL LETTER YA; *afii10097, iacyrillic +\DeclareTextCommand{\cyrya}{PU}{\84\117}% U+044F +% U+0450 CYRILLIC SMALL LETTER IE WITH GRAVE +\DeclareTextCompositeCommand{\`}{PU}{\cyre}{\84\120}% U+0450 +% U+0451 CYRILLIC SMALL LETTER IO; *afii10071, iocyrillic +\DeclareTextCommand{\cyryo}{PU}{\84\121}% U+0451 +\DeclareTextCompositeCommand{\"}{PU}{\cyre}{\84\121}% U+0451 +% U+0452 CYRILLIC SMALL LETTER DJE; *afii10099, djecyrillic +\DeclareTextCommand{\cyrdje}{PU}{\84\122}% U+0452 +% U+0453 CYRILLIC SMALL LETTER GJE; *afii10100, gjecyrillic +\DeclareTextCompositeCommand{\'}{PU}{\cyrg}{\84\123}% U+0453 +% U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE; *afii10101, ecyrillic +\DeclareTextCommand{\cyrie}{PU}{\84\124}% U+0454 +% U+0455 CYRILLIC SMALL LETTER DZE; *afii10102, dzecyrillic +\DeclareTextCommand{\cyrdze}{PU}{\84\125}% U+0455 +% U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I; +% *afii10103, icyrillic +\DeclareTextCommand{\cyrii}{PU}{\84\126}% U+0456 +% U+0457 CYRILLIC SMALL LETTER YI; *afii10104, yicyrillic +\DeclareTextCommand{\cyryi}{PU}{\84\127}% U+0457 +\DeclareTextCompositeCommand{\"}{PU}{\cyrii}{\84\127}% U+0457 +% U+0458 CYRILLIC SMALL LETTER JE; *afii10105, jecyrillic +\DeclareTextCommand{\cyrje}{PU}{\84\130}% U+0458 +% U+0459 CYRILLIC SMALL LETTER LJE; *afii10106, ljecyrillic +\DeclareTextCommand{\cyrlje}{PU}{\84\131}% U+0459 +% U+045A CYRILLIC SMALL LETTER NJE; *afii10107, njecyrillic +\DeclareTextCommand{\cyrnje}{PU}{\84\132}% U+045A +% U+045B CYRILLIC SMALL LETTER TSHE; *afii10108, tshecyrillic +\DeclareTextCommand{\cyrtshe}{PU}{\84\133}% U+045B +% U+045C CYRILLIC SMALL LETTER KJE; *afii10109, kjecyrillic +\DeclareTextCompositeCommand{\'}{PU}{\cyrk}{\84\134}% U+045C +% U+045D CYRILLIC SMALL LETTER I WITH GRAVE +\DeclareTextCompositeCommand{\`}{PU}{\cyri}{\84\135}% U+045D +% U+045E CYRILLIC SMALL LETTER SHORT U; *afii10110, ushortcyrillic +\DeclareTextCommand{\cyrushrt}{PU}{\84\136}% U+045E +\DeclareTextCompositeCommand{\U}{PU}{\curu}{\84\136}% U+045E +% U+045F CYRILLIC SMALL LETTER DZHE; *afii10193, dzhecyrillic +\DeclareTextCommand{\cyrdzhe}{PU}{\84\137}% U+045F +% U+0460 CYRILLIC CAPITAL LETTER OMEGA; Omegacyrillic +\DeclareTextCommand{\CYROMEGA}{PU}{\84\140}% U+0460 +% U+0461 CYRILLIC SMALL LETTER OMEGA; omegacyrillic +\DeclareTextCommand{\cyromega}{PU}{\84\141}% U+0461 +% U+0462 CYRILLIC CAPITAL LETTER YAT; Yatcyrillic, *afii10146 +\DeclareTextCommand{\CYRYAT}{PU}{\84\142}% U+0462 +% U+0463 CYRILLIC SMALL LETTER YAT; *afii10194, yatcyrillic +\DeclareTextCommand{\cyryat}{PU}{\84\143}% U+0463 +% U+0464 CYRILLIC CAPITAL LETTER IOTIFIED E; Eiotifiedcyrillic +\DeclareTextCommand{\CYRIOTE}{PU}{\84\144}% U+0464 +% U+0465 CYRILLIC SMALL LETTER IOTIFIED E; eiotifiedcyrillic +\DeclareTextCommand{\cyriote}{PU}{\84\145}% U+0465 +% U+0466 CYRILLIC CAPITAL LETTER LITTLE YUS; Yuslittlecyrillic +\DeclareTextCommand{\CYRLYUS}{PU}{\84\146}% U+0466 +% U+0467 CYRILLIC SMALL LETTER LITTLE YUS; yuslittlecyrillic +\DeclareTextCommand{\cyrlyus}{PU}{\84\147}% U+0467 +% U+0468 CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS; Yuslittleiotifiedcyrillic +\DeclareTextCommand{\CYRIOTLYUS}{PU}{\84\150}% U+0468 +% U+0469 CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS; yuslittleiotifiedcyrillic +\DeclareTextCommand{\cyriotlyus}{PU}{\84\151}% U+0469 +% U+046A CYRILLIC CAPITAL LETTER BIG YUS; Yusbigcyrillic +\DeclareTextCommand{\CYRBYUS}{PU}{\84\152}% U+046A +% U+046B CYRILLIC SMALL LETTER BIG YUS; yusbigcyrillic +\DeclareTextCommand{\cyrbyus}{PU}{\84\153}% U+046B +% U+046C CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS; Yusbigiotifiedcyrillic +\DeclareTextCommand{\CYRIOTBYUS}{PU}{\84\154}% U+046C +% U+046D CYRILLIC SMALL LETTER IOTIFIED BIG YUS; yusbigiotifiedcyrillic +\DeclareTextCommand{\cyriotbyus}{PU}{\84\155}% U+046D +% U+046E CYRILLIC CAPITAL LETTER KSI; Ksicyrillic +\DeclareTextCommand{\CYRKSI}{PU}{\84\156}% U+046E +% U+046F CYRILLIC SMALL LETTER KSI; ksicyrillic +\DeclareTextCommand{\cyrksi}{PU}{\84\157}% U+046F +% U+0470 CYRILLIC CAPITAL LETTER PSI; Psicyrillic +\DeclareTextCommand{\CYRPSI}{PU}{\84\160}% U+0470 +% U+0471 CYRILLIC SMALL LETTER PSI; psicyrillic +\DeclareTextCommand{\cyrpsi}{PU}{\84\161}% U+0471 +% U+0472 CYRILLIC CAPITAL LETTER FITA; Fitacyrillic, *afii10147 +\DeclareTextCommand{\CYRFITA}{PU}{\84\162}% U+0472 +% U+0473 CYRILLIC SMALL LETTER FITA; *afii10195, fitacyrillic +\DeclareTextCommand{\cyrfita}{PU}{\84\163}% U+0473 +% U+0474 CYRILLIC CAPITAL LETTER IZHITSA; Izhitsacyrillic, *afii10148 +\DeclareTextCommand{\CYRIZH}{PU}{\84\164}% U+0474 +% U+0475 CYRILLIC SMALL LETTER IZHITSA; *afii10196, izhitsacyrillic +\DeclareTextCommand{\cyrizh}{PU}{\84\165}% U+0475 +% U+0476 CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE +% GRAVE ACCENT; Izhitsadblgravecyrillic +\DeclareTextCompositeCommand{\C}{PU}{\CYRIZH}{\84\166}% U+0476 +% U+0477 CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE +% GRAVE ACCENT; izhitsadblgravecyrillic +\DeclareTextCompositeCommand{\C}{PU}{\cyrizh}{\84\167}% U+0477 +% U+0478 CYRILLIC CAPITAL LETTER UK; Ukcyrillic +\DeclareTextCommand{\CYRUK}{PU}{\84\170}% U+0478 +% U+0479 CYRILLIC SMALL LETTER UK; ukcyrillic +\DeclareTextCommand{\cyruk}{PU}{\84\171}% U+0479 +% U+047A CYRILLIC CAPITAL LETTER ROUND OMEGA; Omegaroundcyrillic +\DeclareTextCommand{\CYROMEGARND}{PU}{\84\172}% U+047A +% U+047B CYRILLIC SMALL LETTER ROUND OMEGA; omegaroundcyrillic +\DeclareTextCommand{\cyromegarnd}{PU}{\84\173}% U+047B +% U+047C CYRILLIC CAPITAL LETTER OMEGA WITH TITLO; Omegatitlocyrillic +\DeclareTextCommand{\CYROMEGATITLO}{PU}{\84\174}% U+047C +% U+047D CYRILLIC SMALL LETTER OMEGA WITH TITLO; omegatitlocyrillic +\DeclareTextCommand{\cyromegatitlo}{PU}{\84\175}% U+047D +% U+047E CYRILLIC CAPITAL LETTER OT; Otcyrillic +\DeclareTextCommand{\CYROT}{PU}{\84\176}% U+047E +% U+047F CYRILLIC SMALL LETTER OT; otcyrillic +\DeclareTextCommand{\cyrot}{PU}{\84\177}% U+047F +% U+0480 CYRILLIC CAPITAL LETTER KOPPA; Koppacyrillic +\DeclareTextCommand{\CYRKOPPA}{PU}{\84\200}% U+0480 +% U+0481 CYRILLIC SMALL LETTER KOPPA; koppacyrillic +\DeclareTextCommand{\cyrkoppa}{PU}{\84\201}% U+0481 +% U+0482 CYRILLIC THOUSANDS SIGN; thousandcyrillic +\DeclareTextCommand{\cyrthousands}{PU}{\84\202}% U+0482 +% \end{macrocode} +% |\84\203|: U+0483 COMBINING CYRILLIC TITLO; titlocyrilliccmb\\ +% |\84\204|: U+0484 COMBINING CYRILLIC PALATALIZATION; palatalizationcyrilliccmb\\ +% |\84\205|: U+0485 COMBINING CYRILLIC DASIA PNEUMATA; dasiapneumatacyrilliccmb\\ +% |\84\206|: U+0486 COMBINING CYRILLIC PSILI PNEUMATA; psilipneumatacyrilliccmb\\ +% |\84\207|: U+0487 COMBINING CYRILLIC POKRYTIE\\ +% |\84\210|: U+0488 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN\\ +% |\84\211|: U+0489 COMBINING CYRILLIC MILLIONS SIGN +% \begin{macrocode} +% U+048A CYRILLIC CAPITAL LETTER SHORT I WITH TAIL +\DeclareTextCommand{\CYRISHRTDSC}{PU}{\84\212}% U+048A +% U+048B CYRILLIC SMALL LETTER SHORT I WITH TAIL +\DeclareTextCommand{\cyrishrtdsc}{PU}{\84\213}% U+048B +% U+048C CYRILLIC CAPITAL LETTER SEMISOFT SIGN +\DeclareTextCommand{\CYRSEMISFTSN}{PU}{\84\214}% U+048C +% U+048D CYRILLIC SMALL LETTER SEMISOFT SIGN +\DeclareTextCommand{\cyrsemisftsn}{PU}{\84\215}% U+048D +% U+048E CYRILLIC CAPITAL LETTER ER WITH TICK +\DeclareTextCommand{\CYRRTICK}{PU}{\84\216}% U+048E +% U+048F CYRILLIC SMALL LETTER ER WITH TICK +\DeclareTextCommand{\cyrrtick}{PU}{\84\217}% U+048F +% U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN; Gheupturncyrillic, *afii10050 +\DeclareTextCommand{\CYRGUP}{PU}{\84\220}% U+0490 +% U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN; *afii10098, gheupturncyrillic +\DeclareTextCommand{\cyrgup}{PU}{\84\221}% U+0491 +% U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE; Ghestrokecyrillic +\DeclareTextCommand{\CYRGHCRS}{PU}{\84\222}% U+0492 +% U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE; ghestrokecyrillic +\DeclareTextCommand{\cyrghcrs}{PU}{\84\223}% U+0493 +% U+0494 CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK; +% Ghemiddlehookcyrillic +\DeclareTextCommand{\CYRGHK}{PU}{\84\224}% U+0494 +% U+0495 CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK; +% ghemiddlehookcyrillic +\DeclareTextCommand{\cyrghk}{PU}{\84\225}% U+0495 +% U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER; +% Zhedescendercyrillic +\DeclareTextCommand{\CYRZHDSC}{PU}{\84\226}% U+0496 +% U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER; +% zhedescendercyrillic +\DeclareTextCommand{\cyrzhdsc}{PU}{\84\227}% U+0497 +% U+0498 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER; Zedescendercyrillic +\DeclareTextCommand{\CYRZDSC}{PU}{\84\230}% U+0498 +\DeclareTextCompositeCommand{\c}{PU}{\CYRZ}{\84\230}% U+0498 +% U+0499 CYRILLIC SMALL LETTER ZE WITH DESCENDER; zedescendercyrillic +\DeclareTextCommand{\cyrzdsc}{PU}{\84\231}% U+0499 +\DeclareTextCompositeCommand{\c}{PU}{\cyrz}{\84\231}% U+0499 +% U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER; Kadescendercyrillic +\DeclareTextCommand{\CYRKDSC}{PU}{\84\232}% U+049A +% U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER; kadescendercyrillic +\DeclareTextCommand{\cyrkdsc}{PU}{\84\233}% U+049B +% U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE; +% Kaverticalstrokecyrillic +\DeclareTextCommand{\CYRKVCRS}{PU}{\84\234}% U+049C +% U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE; +% kaverticalstrokecyrillic +\DeclareTextCommand{\cyrkvcrs}{PU}{\84\235}% U+049D +% U+049E CYRILLIC CAPITAL LETTER KA WITH STROKE; Kastrokecyrillic +\DeclareTextCommand{\CYRKHCRS}{PU}{\84\236}% U+049E +% U+049F CYRILLIC SMALL LETTER KA WITH STROKE; kastrokecyrillic +\DeclareTextCommand{\cyrkhcrs}{PU}{\84\237}% U+049F +% U+04A0 CYRILLIC CAPITAL LETTER BASHKIR KA; Kabashkircyrillic +\DeclareTextCommand{\CYRKBEAK}{PU}{\84\240}% U+04A0 +% U+04A1 CYRILLIC SMALL LETTER BASHKIR KA; kabashkircyrillic +\DeclareTextCommand{\cyrkbeak}{PU}{\84\241}% U+04A1 +% U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER; Endescendercyrillic +\DeclareTextCommand{\CYRNDSC}{PU}{\84\242}% U+04A2 +% U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER; endescendercyrillic +\DeclareTextCommand{\cyrndsc}{PU}{\84\243}% U+04A3 +% U+04A4 CYRILLIC CAPITAL LIGATURE EN GHE; Enghecyrillic +\DeclareTextCommand{\CYRNG}{PU}{\84\244}% U+04A4 +% U+04A5 CYRILLIC SMALL LIGATURE EN GHE; enghecyrillic +\DeclareTextCommand{\cyrng}{PU}{\84\245}% U+04A5 +% U+04A6 CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK; Pemiddlehookcyrillic +\DeclareTextCommand{\CYRPHK}{PU}{\84\246}% U+04A6 +% U+04A7 CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK; pemiddlehookcyrillic +\DeclareTextCommand{\cyrphk}{PU}{\84\247}% U+04A7 +% U+04A8 CYRILLIC CAPITAL LETTER ABKHASIAN HA; Haabkhasiancyrillic +\DeclareTextCommand{\CYRABHHA}{PU}{\84\250}% U+04A8 +% U+04A9 CYRILLIC SMALL LETTER ABKHASIAN HA; haabkhasiancyrillic +\DeclareTextCommand{\cyrabhha}{PU}{\84\251}% U+04A9 +% U+04AA CYRILLIC CAPITAL LETTER ES WITH DESCENDER; Esdescendercyrillic +\DeclareTextCommand{\CYRSDSC}{PU}{\84\252}% U+04AA +\DeclareTextCompositeCommand{\CYRSDSC}{PU}{\CYRS}{\84\252}% U+04AA +% U+04AB CYRILLIC SMALL LETTER ES WITH DESCENDER; esdescendercyrillic +\DeclareTextCommand{\cyrsdsc}{PU}{\84\253}% U+04AB +\DeclareTextCompositeCommand{\k}{PU}{\cyrs}{\84\253}% U+04AB +% U+04AC CYRILLIC CAPITAL LETTER TE WITH DESCENDER; Tedescendercyrillic +\DeclareTextCommand{\CYRTDSC}{PU}{\84\254}% U+04AC +% U+04AD CYRILLIC SMALL LETTER TE WITH DESCENDER; tedescendercyrillic +\DeclareTextCommand{\cyrtdsc}{PU}{\84\255}% U+04AD +% U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U; Ustraightcyrillic +\DeclareTextCommand{\CYRY}{PU}{\84\256}% U+04AE +% U+04AF CYRILLIC SMALL LETTER STRAIGHT U; ustraightcyrillic +\DeclareTextCommand{\cyry}{PU}{\84\257}% U+04AF +% U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE; Ustraightstrokecyrillic +\DeclareTextCommand{\CYRYHCRS}{PU}{\84\260}% U+04B0 +% U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE; ustraightstrokecyrillic +\DeclareTextCommand{\cyryhcrs}{PU}{\84\261}% U+04B1 +% U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER; Hadescendercyrillic +\DeclareTextCommand{\CYRHDSC}{PU}{\84\262}% U+04B2 +% U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER; hadescendercyrillic +\DeclareTextCommand{\cyrhdsc}{PU}{\84\263}% U+04B3 +% U+04B4 CYRILLIC CAPITAL LIGATURE TE TSE; Tetsecyrillic +\DeclareTextCommand{\CYRTETSE}{PU}{\84\264}% U+04B4 +% U+04B5 CYRILLIC SMALL LIGATURE TE TSE; tetsecyrillic +\DeclareTextCommand{\cyrtetse}{PU}{\84\265}% U+04B5 +% U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER; +% Chedescendercyrillic +\DeclareTextCommand{\CYRCHRDSC}{PU}{\84\266}% U+04B6 +% U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER; chedescendercyrillic +\DeclareTextCommand{\cyrchrdsc}{PU}{\84\267}% U+04B7 +% U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE; +% Cheverticalstrokecyrillic +\DeclareTextCommand{\CYRCHVCRS}{PU}{\84\270}% U+04B8 +% U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE; +% cheverticalstrokecyrillic +\DeclareTextCommand{\cyrchvcrs}{PU}{\84\271}% U+04B9 +% U+04BA CYRILLIC CAPITAL LETTER SHHA; Shhacyrillic +\DeclareTextCommand{\CYRSHHA}{PU}{\84\272}% U+04BA +% U+04BB CYRILLIC SMALL LETTER SHHA; shhacyrillic +\DeclareTextCommand{\cyrshha}{PU}{\84\273}% U+04BB +% U+04BC CYRILLIC CAPITAL LETTER ABKHASIAN CHE; Cheabkhasiancyrillic +\DeclareTextCommand{\CYRABHCH}{PU}{\84\274}% U+04BC +% U+04BD CYRILLIC SMALL LETTER ABKHASIAN CHE; cheabkhasiancyrillic +\DeclareTextCommand{\cyrabhch}{PU}{\84\275}% U+04BD +% U+04BE CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER; Chedescenderabkhasiancyrillic +\DeclareTextCommand{\CYRABHCHDSC}{PU}{\84\276}% U+04BE +\DeclareTextCompositeCommand{\k}{PU}{\CYRABHCH}{\84\276}% U+04BE +% U+04BF CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER; chedescenderabkhasiancyrillic +\DeclareTextCommand{\cyrabhchdsc}{PU}{\84\277}% U+04BF +\DeclareTextCompositeCommand{\k}{PU}{\cyrabhch}{\84\277}% U+04BF +% U+04C0 CYRILLIC LETTER PALOCHKA; palochkacyrillic +\DeclareTextCommand{\CYRpalochka}{PU}{\84\300}% U+04C0 +% U+04C1 CYRILLIC CAPITAL LETTER ZHE WITH BREVE; Zhebrevecyrillic +\DeclareTextCompositeCommand{\U}{PU}{\CYRZH}{\84\301}% U+04C1 +% U+04C2 CYRILLIC SMALL LETTER ZHE WITH BREVE; zhebrevecyrillic +\DeclareTextCompositeCommand{\U}{PU}{\cyrzh}{\84\302}% U+04C2 +% U+04C3 CYRILLIC CAPITAL LETTER KA WITH HOOK; Kahookcyrillic +\DeclareTextCommand{\CYRKHK}{PU}{\84\303}% U+04C3 +% U+04C4 CYRILLIC SMALL LETTER KA WITH HOOK; kahookcyrillic +\DeclareTextCommand{\cyrkhk}{PU}{\84\304}% U+04C4 +% U+04C5 CYRILLIC CAPITAL LETTER EL WITH TAIL +\DeclareTextCommand{\CYRLDSC}{PU}{\84\305}% U+04C5 +% U+04C6 CYRILLIC SMALL LETTER EL WITH TAIL +\DeclareTextCommand{\cyrldsc}{PU}{\84\306}% U+04C6 +% U+04C7 CYRILLIC CAPITAL LETTER EN WITH HOOK; Enhookcyrillic +\DeclareTextCommand{\CYRNHK}{PU}{\84\307}% U+04C7 +% U+04C8 CYRILLIC SMALL LETTER EN WITH HOOK; enhookcyrillic +\DeclareTextCommand{\cyrnhk}{PU}{\84\310}% U+04C8 +% U+04CB CYRILLIC CAPITAL LETTER KHAKASSIAN CHE; Chekhakassiancyrillic +\DeclareTextCommand{\CYRCHLDSC}{PU}{\84\313}% U+04CB +% U+04CC CYRILLIC SMALL LETTER KHAKASSIAN CHE; chekhakassiancyrillic +\DeclareTextCommand{\cyrchldsc}{PU}{\84\314}% U+04CC +% U+04CD CYRILLIC CAPITAL LETTER EM WITH TAIL +\DeclareTextCommand{\CYRMDSC}{PU}{\84\315}% U+04CD +% U+04CE CYRILLIC SMALL LETTER EM WITH TAIL +\DeclareTextCommand{\cyrmdsc}{PU}{\84\316}% U+04CE +% \end{macrocode} +% |\84\317|: U+04CF CYRILLIC SMALL LETTER PALOCHKA +% \begin{macrocode} +% U+04D0 CYRILLIC CAPITAL LETTER A WITH BREVE; Abrevecyrillic +\DeclareTextCompositeCommand{\U}{PU}{\CYRA}{\84\320}% U+04D0 +% U+04D1 CYRILLIC SMALL LETTER A WITH BREVE; abrevecyrillic +\DeclareTextCompositeCommand{\U}{PU}{\cyra}{\84\321}% U+04D1 +% U+04D2 CYRILLIC CAPITAL LETTER A WITH DIAERESIS; Adieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRA}{\84\322}% U+04D2 +% U+04D3 CYRILLIC SMALL LETTER A WITH DIAERESIS; adieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyra}{\84\323}% U+04D3 +% U+04D4 CYRILLIC CAPITAL LIGATURE A IE; Aiecyrillic +\DeclareTextCommand{\CYRAE}{PU}{\84\324}% U+04D4 +% U+04D5 CYRILLIC SMALL LIGATURE A IE; aiecyrillic +\DeclareTextCommand{\cyrae}{PU}{\84\325}% U+04D5 +% U+04D6 CYRILLIC CAPITAL LETTER IE WITH BREVE; Iebrevecyrillic +\DeclareTextCompositeCommand{\U}{PU}{\CYRE}{\84\326}% U+04D6 +% U+04D7 CYRILLIC SMALL LETTER IE WITH BREVE; iebrevecyrillic +\DeclareTextCompositeCommand{\U}{PU}{\cyre}{\84\327}% U+04D7 +% U+04D8 CYRILLIC CAPITAL LETTER SCHWA; Schwacyrillic +\DeclareTextCommand{\CYRSCHWA}{PU}{\84\330}% U+04D8 +% U+04D9 CYRILLIC SMALL LETTER SCHWA; *afii10846, schwacyrillic +\DeclareTextCommand{\cyrschwa}{PU}{\84\331}% U+04D9 +% U+04DA CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS; +% Schwadieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRSCHWA}{\84\332}% U+04DA +% U+04DB CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS; +% schwadieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyrschwa}{\84\333}% U+04DB +% U+04DC CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS; Zhedieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRZH}{\84\334}% U+04DC +% U+04DD CYRILLIC SMALL LETTER ZHE WITH DIAERESIS; zhedieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyrzh}{\84\335}% U+04DD +% U+04DE CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS; Zedieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRZ}{\84\336}% U+04DE +% U+04DF CYRILLIC SMALL LETTER ZE WITH DIAERESIS; zedieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyrz}{\84\337}% U+04DF +% U+04E0 CYRILLIC CAPITAL LETTER ABKHASIAN DZE; Dzeabkhasiancyrillic +\DeclareTextCommand{\CYRABHDZE}{PU}{\84\340}% U+04E0 +% U+04E1 CYRILLIC SMALL LETTER ABKHASIAN DZE; dzeabkhasiancyrillic +\DeclareTextCommand{\cyrabhdze}{PU}{\84\341}% U+04E1 +% U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON; Imacroncyrillic +\DeclareTextCompositeCommand{\=}{PU}{\CYRI}{\84\342}% U+04E2 +% U+04E3 CYRILLIC SMALL LETTER I WITH MACRON; imacroncyrillic +\DeclareTextCompositeCommand{\=}{PU}{\cyri}{\84\343}% U+04E3 +% U+04E4 CYRILLIC CAPITAL LETTER I WITH DIAERESIS; Idieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRI}{\84\344}% U+04E4 +% U+04E5 CYRILLIC SMALL LETTER I WITH DIAERESIS; idieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyri}{\84\345}% U+04E5 +% U+04E6 CYRILLIC CAPITAL LETTER O WITH DIAERESIS; Odieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRO}{\84\346}% U+04E6 +% U+04E7 CYRILLIC SMALL LETTER O WITH DIAERESIS; odieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyro}{\84\347}% U+04E7 +% U+04E8 CYRILLIC CAPITAL LETTER BARRED O; Obarredcyrillic +\DeclareTextCommand{\CYROTLD}{PU}{\84\350}% U+04E8 +% U+04E9 CYRILLIC SMALL LETTER BARRED O; obarredcyrillic +\DeclareTextCommand{\cyrotld}{PU}{\84\351}% U+04E9 +% U+04EA CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS; +% Obarreddieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYROTLD}{\84\352}% U+04EA +% U+04EB CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS; +% obarreddieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyrotld}{\84\353}% U+04EB +% U+04EC CYRILLIC CAPITAL LETTER E WITH DIAERESIS +\DeclareTextCompositeCommand{\"}{PU}{\CYREREV}{\84\354}% U+04EC +% U+04ED CYRILLIC SMALL LETTER E WITH DIAERESIS +\DeclareTextCompositeCommand{\"}{PU}{\cyreref}{\84\355}% U+04ED +% U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON; Umacroncyrillic +\DeclareTextCompositeCommand{\=}{PU}{\CYRU}{\84\356}% U+04EE +% U+04EF CYRILLIC SMALL LETTER U WITH MACRON; umacroncyrillic +\DeclareTextCompositeCommand{\=}{PU}{\cyru}{\84\357}% U+04EF +% U+04F0 CYRILLIC CAPITAL LETTER U WITH DIAERESIS; Udieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRU}{\84\360}% U+04F0 +% U+04F1 CYRILLIC SMALL LETTER U WITH DIAERESIS; udieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyru}{\84\361}% U+04F1 +% U+04F2 CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE; Uhungarumlautcyrillic +\DeclareTextCompositeCommand{\H}{PU}{\CYRU}{\84\362}% U+04F2 +% U+04F3 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE; uhungarumlautcyrillic +\DeclareTextCompositeCommand{\H}{PU}{\cyru}{\84\363}% U+04F3 +% U+04F4 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS; Chedieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRCH}{\84\364}% U+04F4 +% U+04F5 CYRILLIC SMALL LETTER CHE WITH DIAERESIS; chedieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyrch}{\84\365}% U+04F5 +% U+04F6 CYRILLIC CAPITAL LETTER GHE WITH DESCENDER +\DeclareTextCommand{\CYRGDSC}{PU}{\84\366}% U+04F6 +% U+04F7 CYRILLIC SMALL LETTER GHE WITH DESCENDER +\DeclareTextCommand{\cyrgdsc}{PU}{\84\367}% U+04F7 +% U+04F8 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS; Yerudieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\CYRERY}{\84\370}% U+04F8 +% U+04F9 CYRILLIC SMALL LETTER YERU WITH DIAERESIS; yerudieresiscyrillic +\DeclareTextCompositeCommand{\"}{PU}{\cyrery}{\84\371}% U+04F9 +% \end{macrocode} +% |\84\372|: U+04FA CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK\\ +% |\84\373|: U+04FB CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK +% \begin{macrocode} +% U+04FC CYRILLIC CAPITAL LETTER HA WITH HOOK +\DeclareTextCommand{\CYRHHK}{PU}{\84\374}% U+04FC +% U+04FD CYRILLIC SMALL LETTER HA WITH HOOK +\DeclareTextCommand{\cyrhhk}{PU}{\84\375}% U+04FD +% \end{macrocode} +% |\84\376|: U+04FE CYRILLIC CAPITAL LETTER HA WITH STROKE\\ +% |\84\377|: U+04FF CYRILLIC SMALL LETTER HA WITH STROKE +% +% \subsubsection{Hebrew: U+0590 to U+05FF} +% +% Macro names are taken from \texttt{he8enc.def}. +% \begin{macrocode} +% U+05C3 HEBREW PUNCTUATION SOF PASUQ +\DeclareTextCommand{\sofpasuq}{PU}{\85\303}% U+05C3 +% U+05D0 HEBREW LETTER ALEF +\DeclareTextCommand{\hebalef}{PU}{\85\320}% U+05D0 +% U+05D1 HEBREW LETTER BET +\DeclareTextCommand{\hebbet}{PU}{\85\321}% U+05D1 +% U+05D2 HEBREW LETTER GIMEL +\DeclareTextCommand{\hebgimel}{PU}{\85\322}% U+05D2 +% U+05D3 HEBREW LETTER DALET +\DeclareTextCommand{\hebdalet}{PU}{\85\323}% U+05D3 +% U+05D4 HEBREW LETTER HE +\DeclareTextCommand{\hebhe}{PU}{\85\324}% U+05D4 +% U+05D5 HEBREW LETTER VAV +\DeclareTextCommand{\hebvav}{PU}{\85\325}% U+05D5 +% U+05D6 HEBREW LETTER ZAYIN +\DeclareTextCommand{\hebzayin}{PU}{\85\326}% U+05D6 +% U+05D7 HEBREW LETTER HET +\DeclareTextCommand{\hebhet}{PU}{\85\327}% U+05D7 +% U+05D8 HEBREW LETTER TET +\DeclareTextCommand{\hebtet}{PU}{\85\330}% U+05D8 +% U+05D9 HEBREW LETTER YOD +\DeclareTextCommand{\hebyod}{PU}{\85\331}% U+05D9 +% U+05DA HEBREW LETTER FINAL KAF +\DeclareTextCommand{\hebfinalkaf}{PU}{\85\332}% U+05DA +% U+05DB HEBREW LETTER KAF +\DeclareTextCommand{\hebkaf}{PU}{\85\333}% U+05DB +% U+05DC HEBREW LETTER LAMED +\DeclareTextCommand{\heblamed}{PU}{\85\334}% U+05DC +% U+05DD HEBREW LETTER FINAL MEM +\DeclareTextCommand{\hebfinalmem}{PU}{\85\335}% U+05DD +% U+05DE HEBREW LETTER MEM +\DeclareTextCommand{\hebmem}{PU}{\85\336}% U+05DE +% U+05DF HEBREW LETTER FINAL NUN +\DeclareTextCommand{\hebfinalnun}{PU}{\85\337}% U+05DF +% U+05E0 HEBREW LETTER NUN +\DeclareTextCommand{\hebnun}{PU}{\85\340}% U+05E0 +% U+05E1 HEBREW LETTER SAMEKH +\DeclareTextCommand{\hebsamekh}{PU}{\85\341}% U+05E1 +% U+05E2 HEBREW LETTER AYIN +\DeclareTextCommand{\hebayin}{PU}{\85\342}% U+05E2 +% U+05E3 HEBREW LETTER FINAL PE +\DeclareTextCommand{\hebfinalpe}{PU}{\85\343}% U+05E3 +% U+05E4 HEBREW LETTER PE +\DeclareTextCommand{\hebpe}{PU}{\85\344}% U+05E4 +% U+05E5 HEBREW LETTER FINAL TSADI +\DeclareTextCommand{\hebfinaltsadi}{PU}{\85\345}% U+05E5 +% U+05E6 HEBREW LETTER TSADI +\DeclareTextCommand{\hebtsadi}{PU}{\85\346}% U+05E6 +% U+05E7 HEBREW LETTER QOF +\DeclareTextCommand{\hebqof}{PU}{\85\347}% U+05E7 +% U+05E8 HEBREW LETTER RESH +\DeclareTextCommand{\hebresh}{PU}{\85\350}% U+05E8 +% U+05E9 HEBREW LETTER SHIN +\DeclareTextCommand{\hebshin}{PU}{\85\351}% U+05E9 +%* \hebshin -> \hebsin (he8) +% U+05EA HEBREW LETTER TAV +\DeclareTextCommand{\hebtav}{PU}{\85\352}% U+05EA +% U+05F0 HEBREW LIGATURE YIDDISH DOUBLE VAV +\DeclareTextCommand{\doublevav}{PU}{\85\360}% U+05F0 +% U+05F1 HEBREW LIGATURE YIDDISH VAV YOD +\DeclareTextCommand{\vavyod}{PU}{\85\361}% U+05F1 +% U+05F2 HEBREW LIGATURE YIDDISH DOUBLE YOD +\DeclareTextCommand{\doubleyod}{PU}{\85\362}% U+05F2 +% \end{macrocode} +% +% \subsubsection{Thai: U+0E00 to U+0E7F} +% +% \begin{macrocode} +% U+0E3F THAI CURRENCY SYMBOL BAHT; bahtthai +\DeclareTextCommand{\textbaht}{PU}{\9016\077}% U+0E3F +% \end{macrocode} +% +% \subsubsection{Phonetic Extensions: U+1D00 to U+1D7F} +% +% \begin{macrocode} +% U+1D00 LATIN LETTER SMALL CAPITAL A; \textsca (tipa) +\DeclareTextCommand{\textsca}{PU}{\9035\000}% U+1D00 +% U+1D05 LATIN LETTER SMALL CAPITAL D; \scd (wsuipa) +\DeclareTextCommand{\textscd}{PU}{\9035\005}%* U+1D05 +% U+1D07 LATIN LETTER SMALL CAPITAL E; \textsce (tipa) +\DeclareTextCommand{\textsce}{PU}{\9035\007}% U+1D07 +% U+1D0A LATIN LETTER SMALL CAPITAL J; \textscj (tipa) +\DeclareTextCommand{\textscj}{PU}{\9035\012}% U+1D0A +% U+1D0B LATIN LETTER SMALL CAPITAL K; \textsck (tipx) +\DeclareTextCommand{\textPUsck}{PU}{\9035\013}% U+1D0B +%* \textPUsck -> \textsck (tipx) +% U+1D0D LATIN LETTER SMALL CAPITAL M; \textscm (tipx) +\DeclareTextCommand{\textPUscm}{PU}{\9035\015}% U+1D0D +%* \textPUscm -> \textscm (tipx) +% U+1D18 LATIN LETTER SMALL CAPITAL P; \textscp (tipx) +\DeclareTextCommand{\textPUscp}{PU}{\9035\030}% U+1D18 +%* \textPUscp -> \textscp (tipx) +% U+1D19 LATIN LETTER SMALL CAPITAL REVERSED R; \textrevscr (tipx) +\DeclareTextCommand{\textPUrevscr}{PU}{\9035\031}% U+1D19 +%* \textPUrevscr -> \textrevscr (tipx) +% U+1D1C LATIN LETTER SMALL CAPITAL U; \textscu (tipa), \scu (wsuipa) +\DeclareTextCommand{\textscu}{PU}{\9035\034}%* U+1D1C +% U+1D62 LATIN SUBSCRIPT SMALL LETTER I +\DeclareTextCommand{\textiinferior}{PU}{\9035\142}%* U+1D62 +% U+1D63 LATIN SUBSCRIPT SMALL LETTER R +\DeclareTextCommand{\textrinferior}{PU}{\9035\143}%* U+1D63 +% U+1D64 LATIN SUBSCRIPT SMALL LETTER U +\DeclareTextCommand{\textuinferior}{PU}{\9035\144}%* U+1D64 +% U+1D65 LATIN SUBSCRIPT SMALL LETTER V +\DeclareTextCommand{\textvinferior}{PU}{\9035\145}%* U+1D65 +% U+1D66 GREEK SUBSCRIPT SMALL LETTER BETA +\DeclareTextCommand{\textbetainferior}{PU}{\9035\146}%* U+1D66 +% U+1D67 GREEK SUBSCRIPT SMALL LETTER GAMMA +\DeclareTextCommand{\textgammainferior}{PU}{\9035\147}%* U+1D67 +% U+1D68 GREEK SUBSCRIPT SMALL LETTER RHO +\DeclareTextCommand{\textrhoinferior}{PU}{\9035\150}%* U+1D68 +% U+1D69 GREEK SUBSCRIPT SMALL LETTER PHI +\DeclareTextCommand{\textphiinferior}{PU}{\9035\151}%* U+1D69 +% U+1D6A GREEK SUBSCRIPT SMALL LETTER CHI +\DeclareTextCommand{\textchiinferior}{PU}{\9035\152}%* U+1D6A +% U+1D7B LATIN SMALL CAPITAL LETTER I WITH STROKE; +% \barsci (wsuipa) +\DeclareTextCommand{\textbarsci}{PU}{\9035\173}%* U+1D7B +% U+1D7D LATIN SMALL LETTER P WITH STROKE; \barp (wsuipa) +\DeclareTextCommand{\textbarp}{PU}{\9035\175}%* U+1D7D +% U+1D7E LATIN SMALL CAPITAL LETTER U WITH STROKE; +% \barscu (wsuipa) +\DeclareTextCommand{\textbarscu}{PU}{\9035\176}%* U+1D7E +% \end{macrocode} +% +% \subsubsection{Phonetic Extensions Supplement: U+1D80 to U+1DBF} +% +% \begin{macrocode} +% U+1D8F LATIN SMALL LETTER A WITH RETROFLEX HOOK; \textrhooka (tipx) +\DeclareTextCommand{\textPUrhooka}{PU}{\9035\217}% U+1D8F +%* \textPUrhooka -> \textrhooka (tipx) +% U+1D91 LATIN SMALL LETTER D WITH HOOK AND TAIL; \texthtrtaild (tipa) +\DeclareTextCommand{\texthtrtaild}{PU}{\9035\221}%* U+1D91 +% U+1D92 LATIN SMALL LETTER E WITH RETROFLEX HOOK; \textrhooke (tipx) +\DeclareTextCommand{\textPUrhooke}{PU}{\9035\222}% U+1D92 +%* \textPUrhooke -> \textrhooke (tipx) +% U+1D93 LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK; +% \textrhookepsilon (tipx) +\DeclareTextCommand{\textPUrhookepsilon}{PU}{\9035\223}% U+1D93 +%* \textPUrhookepsilon -> \textrhookepsilon (tipx) +% U+1D97 LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK; +% \textrhookopeno (tipx) +\DeclareTextCommand{\textPUrhookopeno}{PU}{\9035\227}% U+1D97 +%* \textPUrhookopeno -> \textrhookopeno (tipx) +% \end{macrocode} +% +% \subsubsection{Latin Extended Additional: U+1E00 to U+1EFF} +% +% \begin{macrocode} +% U+1E00 LATIN CAPITAL LETTER A WITH RING BELOW; Aringbelow +\DeclareTextCompositeCommand{\textsubring}{PU}{A}{\9036\000}% U+1E00 +% U+1E01 LATIN SMALL LETTER A WITH RING BELOW; aringbelow +\DeclareTextCompositeCommand{\textsubring}{PU}{a}{\9036\001}% U+1E01 +% U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE; Bdotaccent +\DeclareTextCompositeCommand{\.}{PU}{B}{\9036\002}% U+1E02 +% U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE; bdotaccent +\DeclareTextCompositeCommand{\.}{PU}{b}{\9036\003}% U+1E03 +% U+1E04 LATIN CAPITAL LETTER B WITH DOT BELOW; Bdotbelow +\DeclareTextCompositeCommand{\d}{PU}{B}{\9036\004}% U+1E04 +% U+1E05 LATIN SMALL LETTER B WITH DOT BELOW; bdotbelow +\DeclareTextCompositeCommand{\d}{PU}{b}{\9036\005}% U+1E05 +% U+1E06 LATIN CAPITAL LETTER B WITH LINE BELOW; Blinebelow +\DeclareTextCompositeCommand{\b}{PU}{B}{\9036\006}% U+1E06 +% U+1E07 LATIN SMALL LETTER B WITH LINE BELOW; blinebelow +\DeclareTextCompositeCommand{\b}{PU}{b}{\9036\007}% U+1E07 +% U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE; Ddotaccent +\DeclareTextCompositeCommand{\.}{PU}{D}{\9036\012}% U+1E0A +% U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE; ddotaccent +\DeclareTextCompositeCommand{\.}{PU}{d}{\9036\013}% U+1E0B +% U+1E0C LATIN CAPITAL LETTER D WITH DOT BELOW; Ddotbelow +\DeclareTextCompositeCommand{\d}{PU}{D}{\9036\014}% U+1E0C +% U+1E0D LATIN SMALL LETTER D WITH DOT BELOW; ddotbelow +\DeclareTextCompositeCommand{\d}{PU}{d}{\9036\015}% U+1E0D +% U+1E0E LATIN CAPITAL LETTER D WITH LINE BELOW; Dlinebelow +\DeclareTextCompositeCommand{\b}{PU}{D}{\9036\016}% U+1E0E +% U+1E0F LATIN SMALL LETTER D WITH LINE BELOW; dlinebelow +\DeclareTextCompositeCommand{\b}{PU}{d}{\9036\017}% U+1E0F +% U+1E10 LATIN CAPITAL LETTER D WITH CEDILLA; Dcedilla +\DeclareTextCompositeCommand{\c}{PU}{D}{\9036\020}% U+1E10 +% U+1E11 LATIN SMALL LETTER D WITH CEDILLA; dcedilla +\DeclareTextCompositeCommand{\c}{PU}{d}{\9036\021}% U+1E11 +% U+1E12 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW; Dcircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{D}{\9036\022}% U+1E12 +% U+1E13 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW; dcircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{d}{\9036\023}% U+1E13 +% U+1E14 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE; +% Emacrongrave +\DeclareTextCompositeCommand{\textgravemacron}{PU}{E}{\9036\024}% U+1E14 +% U+1E15 LATIN SMALL LETTER E WITH MACRON AND GRAVE; +% emacrongrave +\DeclareTextCompositeCommand{\textgravemacron}{PU}{e}{\9036\025}% U+1E15 +% U+1E16 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE; +% Emacronacute +\DeclareTextCompositeCommand{\textacutemacron}{PU}{E}{\9036\026}% U+1E16 +% U+1E17 LATIN SMALL LETTER E WITH MACRON AND ACUTE; +% emacronacute +\DeclareTextCompositeCommand{\textacutemacron}{PU}{e}{\9036\027}% U+1E17 +% U+1E18 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW; Ecircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{E}{\9036\030}% U+1E18 +% U+1E19 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW; ecircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{e}{\9036\031}% U+1E19 +% U+1E1A LATIN CAPITAL LETTER E WITH TILDE BELOW; Etildebelow +\DeclareTextCompositeCommand{\textsubtilde}{PU}{E}{\9036\032}% U+1E1A +% U+1E1B LATIN SMALL LETTER E WITH TILDE BELOW; etildebelow +\DeclareTextCompositeCommand{\textsubtilde}{PU}{e}{\9036\033}% U+1E1B +% U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE; Fdotaccent +\DeclareTextCompositeCommand{\.}{PU}{F}{\9036\036}% U+1E1E +% U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE; fdotaccent +\DeclareTextCompositeCommand{\.}{PU}{f}{\9036\037}% U+1E1F +% U+1E20 LATIN CAPITAL LETTER G WITH MACRON; Gmacron +\DeclareTextCompositeCommand{\=}{PU}{G}{\9036\040}% U+1E20 +% U+1E21 LATIN SMALL LETTER G WITH MACRON; gmacron +\DeclareTextCompositeCommand{\=}{PU}{g}{\9036\041}% U+1E21 +% U+1E22 LATIN CAPITAL LETTER H WITH DOT ABOVE; Hdotaccent +\DeclareTextCompositeCommand{\.}{PU}{H}{\9036\042}% U+1E22 +% U+1E23 LATIN SMALL LETTER H WITH DOT ABOVE; hdotaccent +\DeclareTextCompositeCommand{\.}{PU}{h}{\9036\043}% U+1E23 +% U+1E24 LATIN CAPITAL LETTER H WITH DOT BELOW; Hdotbelow +\DeclareTextCompositeCommand{\d}{PU}{H}{\9036\044}% U+1E24 +% U+1E25 LATIN SMALL LETTER H WITH DOT BELOW; hdotbelow +\DeclareTextCompositeCommand{\d}{PU}{h}{\9036\045}% U+1E25 +% U+1E26 LATIN CAPITAL LETTER H WITH DIAERESIS; Hdieresis +\DeclareTextCompositeCommand{\"}{PU}{H}{\9036\046}% U+1E26 +% U+1E27 LATIN SMALL LETTER H WITH DIAERESIS; hdieresis +\DeclareTextCompositeCommand{\"}{PU}{h}{\9036\047}% U+1E27 +% U+1E28 LATIN CAPITAL LETTER H WITH CEDILLA; Hcedilla +\DeclareTextCompositeCommand{\c}{PU}{H}{\9036\050}% U+1E28 +% U+1E29 LATIN SMALL LETTER H WITH CEDILLA; hcedilla +\DeclareTextCompositeCommand{\c}{PU}{h}{\9036\051}% U+1E29 +% U+1E2A LATIN CAPITAL LETTER H WITH BREVE BELOW; Hbrevebelow +\DeclareTextCompositeCommand{\textsubbreve}{PU}{H}{\9036\052}% U+1E2A +% U+1E2B LATIN SMALL LETTER H WITH BREVE BELOW; hbrevebelow +\DeclareTextCompositeCommand{\textsubbreve}{PU}{h}{\9036\053}% U+1E2B +% U+1E2C LATIN CAPITAL LETTER I WITH TILDE BELOW; Itildebelow +\DeclareTextCompositeCommand{\textsubtilde}{PU}{I}{\9036\054}% U+1E2C +% U+1E2D LATIN SMALL LETTER I WITH TILDE BELOW; itildebelow +\DeclareTextCompositeCommand{\textsubtilde}{PU}{i}{\9036\055}% U+1E2D +% U+1E30 LATIN CAPITAL LETTER K WITH ACUTE; Kacute +\DeclareTextCompositeCommand{\'}{PU}{K}{\9036\060}% U+1E30 +% U+1E31 LATIN SMALL LETTER K WITH ACUTE; kacute +\DeclareTextCompositeCommand{\'}{PU}{k}{\9036\061}% U+1E31 +% U+1E32 LATIN CAPITAL LETTER K WITH DOT BELOW; Kdotbelow +\DeclareTextCompositeCommand{\d}{PU}{K}{\9036\062}% U+1E32 +% U+1E33 LATIN SMALL LETTER K WITH DOT BELOW; kdotbelow +\DeclareTextCompositeCommand{\d}{PU}{k}{\9036\063}% U+1E33 +% U+1E34 LATIN CAPITAL LETTER K WITH LINE BELOW; Klinebelow +\DeclareTextCompositeCommand{\b}{PU}{K}{\9036\064}% U+1E34 +% U+1E35 LATIN SMALL LETTER K WITH LINE BELOW; klinebelow +\DeclareTextCompositeCommand{\b}{PU}{k}{\9036\065}% U+1E35 +% U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW; Ldotbelow +\DeclareTextCompositeCommand{\d}{PU}{L}{\9036\066}% U+1E36 +% U+1E37 LATIN SMALL LETTER L WITH DOT BELOW; ldotbelow +\DeclareTextCompositeCommand{\d}{PU}{l}{\9036\067}% U+1E37 +% U+1E3A LATIN CAPITAL LETTER L WITH LINE BELOW; Llinebelow +\DeclareTextCompositeCommand{\b}{PU}{L}{\9036\072}% U+1E3A +% U+1E3B LATIN SMALL LETTER L WITH LINE BELOW; llinebelow +\DeclareTextCompositeCommand{\b}{PU}{l}{\9036\073}% U+1E3B +% U+1E3C LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW; Lcircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{L}{\9036\074}% U+1E3C +% U+1E3D LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW; lcircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{l}{\9036\075}% U+1E3D +% U+1E3E LATIN CAPITAL LETTER M WITH ACUTE; Macute +\DeclareTextCompositeCommand{\'}{PU}{M}{\9036\076}% U+1E3E +% U+1E3F LATIN SMALL LETTER M WITH ACUTE; macute +\DeclareTextCompositeCommand{\'}{PU}{m}{\9036\077}% U+1E3F +% U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE; Mdotaccent +\DeclareTextCompositeCommand{\.}{PU}{M}{\9036\100}% U+1E40 +% U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE; mdotaccent +\DeclareTextCompositeCommand{\.}{PU}{m}{\9036\101}% U+1E41 +% U+1E42 LATIN CAPITAL LETTER M WITH DOT BELOW; Mdotbelow +\DeclareTextCompositeCommand{\d}{PU}{M}{\9036\102}% U+1E42 +% U+1E43 LATIN SMALL LETTER M WITH DOT BELOW; mdotbelow +\DeclareTextCompositeCommand{\d}{PU}{m}{\9036\103}% U+1E43 +% U+1E44 LATIN CAPITAL LETTER N WITH DOT ABOVE; Ndotaccent +\DeclareTextCompositeCommand{\.}{PU}{N}{\9036\104}% U+1E44 +% U+1E45 LATIN SMALL LETTER N WITH DOT ABOVE; ndotaccent +\DeclareTextCompositeCommand{\.}{PU}{n}{\9036\105}% U+1E45 +% U+1E46 LATIN CAPITAL LETTER N WITH DOT BELOW; Ndotbelow +\DeclareTextCompositeCommand{\d}{PU}{N}{\9036\106}% U+1E46 +% U+1E47 LATIN SMALL LETTER N WITH DOT BELOW; ndotbelow +\DeclareTextCompositeCommand{\d}{PU}{n}{\9036\107}% U+1E47 +% U+1E48 LATIN CAPITAL LETTER N WITH LINE BELOW; Nlinebelow +\DeclareTextCompositeCommand{\b}{PU}{N}{\9036\110}% U+1E48 +% U+1E49 LATIN SMALL LETTER N WITH LINE BELOW; nlinebelow +\DeclareTextCompositeCommand{\b}{PU}{n}{\9036\111}% U+1E49 +% U+1E4A LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW; Ncircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{N}{\9036\112}% U+1E4A +% U+1E4B LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW; ncircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{n}{\9036\113}% U+1E4B +% U+1E50 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE; +% Omacrongrave +\DeclareTextCompositeCommand{\textgravemacron}{PU}{O}{\9036\120}% U+1E50 +% U+1E51 LATIN SMALL LETTER O WITH MACRON AND GRAVE; +% omacrongrave +\DeclareTextCompositeCommand{\textgravemacron}{PU}{o}{\9036\121}% U+1E51 +% U+1E52 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE; +% Omacronacute +\DeclareTextCompositeCommand{\textacutemacron}{PU}{O}{\9036\122}% U+1E52 +% U+1E53 LATIN SMALL LETTER O WITH MACRON AND ACUTE; +% omacronacute +\DeclareTextCompositeCommand{\textacutemacron}{PU}{o}{\9036\123}% U+1E53 +% U+1E54 LATIN CAPITAL LETTER P WITH ACUTE; Pacute +\DeclareTextCompositeCommand{\'}{PU}{P}{\9036\124}% U+1E54 +% U+1E55 LATIN SMALL LETTER P WITH ACUTE; pacute +\DeclareTextCompositeCommand{\'}{PU}{p}{\9036\125}% U+1E55 +% U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE; Pdotaccent +\DeclareTextCompositeCommand{\.}{PU}{P}{\9036\126}% U+1E56 +% U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE; pdotaccent +\DeclareTextCompositeCommand{\.}{PU}{p}{\9036\127}% U+1E57 +% U+1E58 LATIN CAPITAL LETTER R WITH DOT ABOVE; Rdotaccent +\DeclareTextCompositeCommand{\.}{PU}{R}{\9036\130}% U+1E58 +% U+1E59 LATIN SMALL LETTER R WITH DOT ABOVE; rdotaccent +\DeclareTextCompositeCommand{\.}{PU}{r}{\9036\131}% U+1E59 +% U+1E5A LATIN CAPITAL LETTER R WITH DOT BELOW; Rdotbelow +\DeclareTextCompositeCommand{\d}{PU}{R}{\9036\132}% U+1E5A +% U+1E5B LATIN SMALL LETTER R WITH DOT BELOW; rdotbelow +\DeclareTextCompositeCommand{\d}{PU}{r}{\9036\133}% U+1E5B +% U+1E5E LATIN CAPITAL LETTER R WITH LINE BELOW; Rlinebelow +\DeclareTextCompositeCommand{\b}{PU}{R}{\9036\136}% U+1E5E +% U+1E5F LATIN SMALL LETTER R WITH LINE BELOW; rlinebelow +\DeclareTextCompositeCommand{\b}{PU}{r}{\9036\137}% U+1E5F +% U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE; Sdotaccent +\DeclareTextCompositeCommand{\.}{PU}{S}{\9036\140}% U+1E60 +% U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE; sdotaccent +\DeclareTextCompositeCommand{\.}{PU}{s}{\9036\141}% U+1E61 +% U+1E62 LATIN CAPITAL LETTER S WITH DOT BELOW; Sdotbelow +\DeclareTextCompositeCommand{\d}{PU}{S}{\9036\142}% U+1E62 +% U+1E63 LATIN SMALL LETTER S WITH DOT BELOW; sdotbelow +\DeclareTextCompositeCommand{\d}{PU}{s}{\9036\143}% U+1E63 +% U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE; Tdotaccent +\DeclareTextCompositeCommand{\.}{PU}{T}{\9036\152}% U+1E6A +% U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE; tdotaccent +\DeclareTextCompositeCommand{\.}{PU}{t}{\9036\153}% U+1E6B +% U+1E6C LATIN CAPITAL LETTER T WITH DOT BELOW; Tdotbelow +\DeclareTextCompositeCommand{\d}{PU}{T}{\9036\154}% U+1E6C +% U+1E6D LATIN SMALL LETTER T WITH DOT BELOW; tdotbelow +\DeclareTextCompositeCommand{\d}{PU}{t}{\9036\155}% U+1E6D +% U+1E6E LATIN CAPITAL LETTER T WITH LINE BELOW; Tlinebelow +\DeclareTextCompositeCommand{\b}{PU}{T}{\9036\156}% U+1E6E +% U+1E6F LATIN SMALL LETTER T WITH LINE BELOW; tlinebelow +\DeclareTextCompositeCommand{\b}{PU}{t}{\9036\157}% U+1E6F +% U+1E70 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW; Tcircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{T}{\9036\160}% U+1E70 +% U+1E71 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW; tcircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{t}{\9036\161}% U+1E71 +% U+1E72 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW; Udieresisbelow +\DeclareTextCompositeCommand{\textsubumlaut}{PU}{U}{\9036\162}% U+1E72 +% U+1E73 LATIN SMALL LETTER U WITH DIAERESIS BELOW; udieresisbelow +\DeclareTextCompositeCommand{\textsubumlaut}{PU}{u}{\9036\163}% U+1E73 +% U+1E74 LATIN CAPITAL LETTER U WITH TILDE BELOW; Utildebelow +\DeclareTextCompositeCommand{\textsubtilde}{PU}{U}{\9036\164}% U+1E74 +% U+1E75 LATIN SMALL LETTER U WITH TILDE BELOW; utildebelow +\DeclareTextCompositeCommand{\textsubtilde}{PU}{u}{\9036\165}% U+1E75 +% U+1E76 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW; Ucircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{U}{\9036\166}% U+1E76 +% U+1E77 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW; ucircumflexbelow +\DeclareTextCompositeCommand{\textsubcircum}{PU}{u}{\9036\167}% U+1E77 +% U+1E7C LATIN CAPITAL LETTER V WITH TILDE; Vtilde +\DeclareTextCompositeCommand{\~}{PU}{V}{\9036\174}% U+1E7C +% U+1E7D LATIN SMALL LETTER V WITH TILDE; vtilde +\DeclareTextCompositeCommand{\~}{PU}{v}{\9036\175}% U+1E7D +% U+1E7E LATIN CAPITAL LETTER V WITH DOT BELOW; Vdotbelow +\DeclareTextCompositeCommand{\d}{PU}{V}{\9036\176}% U+1E7E +% U+1E7F LATIN SMALL LETTER V WITH DOT BELOW; vdotbelow +\DeclareTextCompositeCommand{\d}{PU}{v}{\9036\177}% U+1E7F +% U+1E80 LATIN CAPITAL LETTER W WITH GRAVE; Wgrave +\DeclareTextCompositeCommand{\`}{PU}{W}{\9036\200}% U+1E80 +% U+1E81 LATIN SMALL LETTER W WITH GRAVE; wgrave +\DeclareTextCompositeCommand{\`}{PU}{w}{\9036\201}% U+1E81 +% U+1E82 LATIN CAPITAL LETTER W WITH ACUTE; Wacute +\DeclareTextCompositeCommand{\'}{PU}{W}{\9036\202}% U+1E82 +% U+1E83 LATIN SMALL LETTER W WITH ACUTE; wacute +\DeclareTextCompositeCommand{\'}{PU}{w}{\9036\203}% U+1E83 +% U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS; Wdieresis +\DeclareTextCompositeCommand{\"}{PU}{W}{\9036\204}% U+1E84 +% U+1E85 LATIN SMALL LETTER W WITH DIAERESIS; wdieresis +\DeclareTextCompositeCommand{\"}{PU}{w}{\9036\205}% U+1E85 +% U+1E86 LATIN CAPITAL LETTER W WITH DOT ABOVE; Wdotaccent +\DeclareTextCompositeCommand{\.}{PU}{W}{\9036\206}% U+1E86 +% U+1E87 LATIN SMALL LETTER W WITH DOT ABOVE; wdotaccent +\DeclareTextCompositeCommand{\.}{PU}{w}{\9036\207}% U+1E87 +% U+1E88 LATIN CAPITAL LETTER W WITH DOT BELOW; wdotbelow +\DeclareTextCompositeCommand{\d}{PU}{W}{\9036\210}% U+1E88 +% U+1E89 LATIN SMALL LETTER W WITH DOT BELOW; wdotbelow +\DeclareTextCompositeCommand{\d}{PU}{w}{\9036\211}% U+1E89 +% U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE; Xdotaccent +\DeclareTextCompositeCommand{\.}{PU}{X}{\9036\212}% U+1E8A +% U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE; xdotaccent +\DeclareTextCompositeCommand{\.}{PU}{x}{\9036\213}% U+1E8B +% U+1E8C LATIN CAPITAL LETTER X WITH DIAERESIS; Xdieresis +\DeclareTextCompositeCommand{\"}{PU}{X}{\9036\214}% U+1E8C +% U+1E8D LATIN SMALL LETTER X WITH DIAERESIS; xdieresis +\DeclareTextCompositeCommand{\"}{PU}{x}{\9036\215}% U+1E8D +% U+1E8E LATIN CAPITAL LETTER Y WITH DOT ABOVE; Ydotaccent +\DeclareTextCompositeCommand{\.}{PU}{Y}{\9036\216}% U+1E8E +% U+1E8F LATIN SMALL LETTER Y WITH DOT ABOVE; ydotaccent +\DeclareTextCompositeCommand{\.}{PU}{y}{\9036\217}% U+1E8F +% U+1E90 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX; Zcircumflex +\DeclareTextCompositeCommand{\^}{PU}{Z}{\9036\220}% U+1E90 +% U+1E91 LATIN SMALL LETTER Z WITH CIRCUMFLEX; zcircumflex +\DeclareTextCompositeCommand{\^}{PU}{z}{\9036\221}% U+1E91 +% U+1E92 LATIN CAPITAL LETTER Z WITH DOT BELOW; Zdotbelow +\DeclareTextCompositeCommand{\d}{PU}{Z}{\9036\222}% U+1E92 +% U+1E93 LATIN SMALL LETTER Z WITH DOT BELOW; zdotbelow +\DeclareTextCompositeCommand{\d}{PU}{z}{\9036\223}% U+1E93 +% U+1E94 LATIN CAPITAL LETTER Z WITH LINE BELOW; Zlinebelow +\DeclareTextCompositeCommand{\b}{PU}{Z}{\9036\224}% U+1E94 +% U+1E95 LATIN SMALL LETTER Z WITH LINE BELOW; zlinebelow +\DeclareTextCompositeCommand{\b}{PU}{z}{\9036\225}% U+1E95 +% U+1E96 LATIN SMALL LETTER H WITH LINE BELOW; hlinebelow +\DeclareTextCompositeCommand{\b}{PU}{h}{\9036\226}% U+1E96 +% U+1E97 LATIN SMALL LETTER T WITH DIAERESIS; tdieresis +\DeclareTextCompositeCommand{\"}{PU}{t}{\9036\227}% U+1E97 +% U+1E98 LATIN SMALL LETTER W WITH RING ABOVE; wring +\DeclareTextCompositeCommand{\r}{PU}{w}{\9036\230}% U+1E98 +% U+1E99 LATIN SMALL LETTER Y WITH RING ABOVE; yring +\DeclareTextCompositeCommand{\r}{PU}{y}{\9036\231}% U+1E99 +% U+1E9B LATIN SMALL LETTER LONG S WITH DOT ABOVE; slongdotaccent +\DeclareTextCompositeCommand{\.}{PU}{\textlongs}{\9036\233}% U+1E9B +% U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW; Adotbelow +\DeclareTextCompositeCommand{\d}{PU}{A}{\9036\240}% U+1EA0 +% U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW; adotbelow +\DeclareTextCompositeCommand{\d}{PU}{a}{\9036\241}% U+1EA1 +% U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW; Edotbelow +\DeclareTextCompositeCommand{\d}{PU}{E}{\9036\270}% U+1EB8 +% U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW; edotbelow +\DeclareTextCompositeCommand{\d}{PU}{e}{\9036\271}% U+1EB9 +% U+1EBC LATIN CAPITAL LETTER E WITH TILDE; Etilde +\DeclareTextCompositeCommand{\~}{PU}{E}{\9036\274}% U+1EBC +% U+1EBD LATIN SMALL LETTER E WITH TILDE; etilde +\DeclareTextCompositeCommand{\~}{PU}{e}{\9036\275}% U+1EBD +% U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW; Idotbelow +\DeclareTextCompositeCommand{\d}{PU}{I}{\9036\312}% U+1ECA +% U+1ECB LATIN SMALL LETTER I WITH DOT BELOW; idotbelow +\DeclareTextCompositeCommand{\d}{PU}{i}{\9036\313}% U+1ECB +% U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW; Odotbelow +\DeclareTextCompositeCommand{\d}{PU}{O}{\9036\314}% U+1ECC +% U+1ECD LATIN SMALL LETTER O WITH DOT BELOW; odotbelow +\DeclareTextCompositeCommand{\d}{PU}{o}{\9036\315}% U+1ECD +% U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW; Udotbelow +\DeclareTextCompositeCommand{\d}{PU}{U}{\9036\344}% U+1EE4 +% U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW; udotbelow +\DeclareTextCompositeCommand{\d}{PU}{u}{\9036\345}% U+1EE5 +% U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE; Ygrave +\DeclareTextCompositeCommand{\`}{PU}{Y}{\9036\362}% U+1EF2 +% U+1EF3 LATIN SMALL LETTER Y WITH GRAVE; ygrave +\DeclareTextCompositeCommand{\`}{PU}{y}{\9036\363}% U+1EF3 +% U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW; Ydotbelow +\DeclareTextCompositeCommand{\d}{PU}{Y}{\9036\364}% U+1EF4 +% U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW; ydotbelow +\DeclareTextCompositeCommand{\d}{PU}{y}{\9036\365}% U+1EF5 +% U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE; Ytilde +\DeclareTextCompositeCommand{\~}{PU}{Y}{\9036\370}% U+1EF8 +% U+1EF9 LATIN SMALL LETTER Y WITH TILDE; ytilde +\DeclareTextCompositeCommand{\~}{PU}{y}{\9036\371}% U+1EF9 +% \end{macrocode} +% +% \subsubsection{General Punctuation: U+2000 to U+206F} +% +% \begin{macrocode} +% U+200C ZERO WIDTH NON-JOINER; *afii61664, zerowidthnonjoiner +\DeclareTextCommand{\textcompwordmark}{PU}{\9040\014}% U+200C +% U+2013 EN DASH; endash +\DeclareTextCommand{\textendash}{PU}{\9040\023}% U+2013 +% U+2014 EM DASH; emdash +\DeclareTextCommand{\textemdash}{PU}{\9040\024}% U+2014 +% U+2016 DOUBLE VERTICAL LINE; dblverticalbar +\DeclareTextCommand{\textbardbl}{PU}{\9040\026}% U+2016 +%* \textbardbl -> \textdoublevertline (tipa) +% U+2018 LEFT SINGLE QUOTATION MARK; quoteleft +\DeclareTextCommand{\textquoteleft}{PU}{\9040\030}% U+2018 +% U+2019 RIGHT SINGLE QUOTATION MARK; quoteright +\DeclareTextCommand{\textquoteright}{PU}{\9040\031}% U+2019 +% U+201A SINGLE LOW-9 QUOTATION MARK; quotesinglbase +\DeclareTextCommand{\quotesinglbase}{PU}{\9040\032}% U+201A +% U+201C LEFT DOUBLE QUOTATION MARK; quotedblleft +\DeclareTextCommand{\textquotedblleft}{PU}{\9040\034}% U+201C +% U+201D RIGHT DOUBLE QUOTATION MARK; quotedblright +\DeclareTextCommand{\textquotedblright}{PU}{\9040\035}% U+201D +% U+201E DOUBLE LOW-9 QUOTATION MARK; quotedblbase +\DeclareTextCommand{\quotedblbase}{PU}{\9040\036}% U+201E +% U+2020 DAGGER; dagger +\DeclareTextCommand{\textdagger}{PU}{\9040\040}%* U+2020 +%* \textdagger -> \dag (LaTeX) +% U+2021 DOUBLE DAGGER; daggerdbl; \ddagger (LaTeX) +\DeclareTextCommand{\textdaggerdbl}{PU}{\9040\041}% U+2021 +%* \textdaggerdbl -> \ddagger (LaTeX) +%* \textdaggerdbl -> \ddag (LaTeX) +% U+2022 BULLET; bullet +\DeclareTextCommand{\textbullet}{PU}{\9040\042}%* U+2022 +% U+2025 TWO DOT LEADER; \hdotfor (MnSymbol) +\DeclareTextCommand{\texthdotfor}{PU}{\9040\045}%* U+2025 +% U+2026 HORIZONTAL ELLIPSIS; ellipsis +\DeclareTextCommand{\textellipsis}{PU}{\9040\046}% U+2026 +%* \textellipsis -> \mathellipsis +% U+2030 PER MILLE SIGN; perthousand +\DeclareTextCommand{\textperthousand}{PU}{\9040\060}% U+2030 +% U+2031 PER TEN THOUSAND SIGN +\DeclareTextCommand{\textpertenthousand}{PU}{\9040\061}% U+2031 +% U+2032 PRIME; minute; \prime (MnSymbol) +\DeclareTextCommand{\textprime}{PU}{\9040\062}%* U+2032 +% U+2033 DOUBLE PRIME; \second (mathabx) +\DeclareTextCommand{\textsecond}{PU}{\9040\063}%* U+2033 +% U+2034 TRIPLE PRIME; \third (mathabx) +\DeclareTextCommand{\textthird}{PU}{\9040\064}%* U+2034 +% U+2035 REVERSED PRIME; \backprime (AmS) +\DeclareTextCommand{\textbackprime}{PU}{\9040\065}%* U+2035 +% U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK; guilsinglleft +\DeclareTextCommand{\guilsinglleft}{PU}{\9040\071}% U+2039 +% U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK; guilsinglright +\DeclareTextCommand{\guilsinglright}{PU}{\9040\072}% U+203A +% U+203B REFERENCE MARK; referencemark +\DeclareTextCommand{\textreferencemark}{PU}{\9040\073}% U+203B +% U+203D INTERROBANG +\DeclareTextCommand{\textinterrobang}{PU}{\9040\075}% U+203D +% U+2044 FRACTION SLASH; fraction +\DeclareTextCommand{\textfractionsolidus}{PU}{\9040\104}% U+2044 +% U+2045 LEFT SQUARE BRACKET WITH QUILL +\DeclareTextCommand{\textlquill}{PU}{\9040\105}% U+2045 +% U+2046 RIGHT SQUARE BRACKET WITH QUILL +\DeclareTextCommand{\textrquill}{PU}{\9040\106}% U+2046 +% U+2052 COMMERCIAL MINUS SIGN +\DeclareTextCommand{\textdiscount}{PU}{\9040\122}% U+2052 +% U+2056 THREE DOT PUNCTUATION; \lefttherefore (MnSymbol) +\DeclareTextCommand{\textlefttherefore}{PU}{\9040\126}%* U+2056 +% U+2057 QUADRUPLE PRIME; \fourth (mathabx) +\DeclareTextCommand{\textfourth}{PU}{\9040\127}%* U+2057 +% U+2058 FOUR DOT PUNCTUATION; \diamonddots (MnSymbol) +\DeclareTextCommand{\textdiamonddots}{PU}{\9040\130}%* U+2058 +% \end{macrocode} +% +% \subsubsection{Superscripts and Subscripts: U+2070 to U+209F} +% +% \begin{macrocode} +% U+2070 SUPERSCRIPT ZERO; zerosuperior +\DeclareTextCommand{\textzerosuperior}{PU}{\9040\160}%* U+2070 +% U+2071 SUPERSCRIPT LATIN SMALL LETTER I +\DeclareTextCommand{\textisuperior}{PU}{\9040\161}%* U+2071 +% U+2074 SUPERSCRIPT FOUR; foursuperior +\DeclareTextCommand{\textfoursuperior}{PU}{\9040\164}%* U+2074 +% U+2075 SUPERSCRIPT FIVE; fivesuperior +\DeclareTextCommand{\textfivesuperior}{PU}{\9040\165}%* U+2075 +% U+2076 SUPERSCRIPT SIX; sixsuperior +\DeclareTextCommand{\textsixsuperior}{PU}{\9040\166}%* U+2076 +% U+2077 SUPERSCRIPT SEVEN; sevensuperior +\DeclareTextCommand{\textsevensuperior}{PU}{\9040\167}%* U+2077 +% U+2078 SUPERSCRIPT EIGHT; eightsuperior +\DeclareTextCommand{\texteightsuperior}{PU}{\9040\170}%* U+2078 +% U+2079 SUPERSCRIPT NINE; ninesuperior +\DeclareTextCommand{\textninesuperior}{PU}{\9040\171}%* U+2079 +% U+207A SUPERSCRIPT PLUS SIGN; plussuperior +\DeclareTextCommand{\textplussuperior}{PU}{\9040\172}%* U+207A +% U+207B SUPERSCRIPT MINUS +\DeclareTextCommand{\textminussuperior}{PU}{\9040\173}%* U+207B +% U+207C SUPERSCRIPT EQUALS SIGN; equalsuperior +\DeclareTextCommand{\textequalsuperior}{PU}{\9040\174}%* U+207C +% U+207D SUPERSCRIPT LEFT PARENTHESIS; parenleftsuperior +\DeclareTextCommand{\textparenleftsuperior}{PU}{\9040\175}%* U+207D +% U+207E SUPERSCRIPT RIGHT PARENTHESIS; parenrightsuperior +\DeclareTextCommand{\textparenrightsuperior}{PU}{\9040\176}%* U+207E +% U+207F SUPERSCRIPT LATIN SMALL LETTER N; nsuperior +\DeclareTextCommand{\textnsuperior}{PU}{\9040\177}%* U+207F +% U+2080 SUBSCRIPT ZERO; zeroinferior +\DeclareTextCommand{\textzeroinferior}{PU}{\9040\200}%* U+2080 +% U+2081 SUBSCRIPT ONE; oneinferior +\DeclareTextCommand{\textoneinferior}{PU}{\9040\201}%* U+2081 +% U+2082 SUBSCRIPT TWO; twoinferior +\DeclareTextCommand{\texttwoinferior}{PU}{\9040\202}%* U+2082 +% U+2083 SUBSCRIPT THREE; threeinferior +\DeclareTextCommand{\textthreeinferior}{PU}{\9040\203}%* U+2083 +% U+2084 SUBSCRIPT FOUR; fourinferior +\DeclareTextCommand{\textfourinferior}{PU}{\9040\204}%* U+2084 +% U+2085 SUBSCRIPT FIVE; fiveinferior +\DeclareTextCommand{\textfiveinferior}{PU}{\9040\205}%* U+2085 +% U+2086 SUBSCRIPT SIX; sixinferior +\DeclareTextCommand{\textsixinferior}{PU}{\9040\206}%* U+2086 +% U+2087 SUBSCRIPT SEVEN; seveninferior +\DeclareTextCommand{\textseveninferior}{PU}{\9040\207}%* U+2087 +% U+2088 SUBSCRIPT EIGHT; eightinferior +\DeclareTextCommand{\texteightinferior}{PU}{\9040\210}%* U+2088 +% U+2089 SUBSCRIPT NINE; nineinferior +\DeclareTextCommand{\textnineinferior}{PU}{\9040\211}%* U+2089 +% U+208A SUBSCRIPT PLUS SIGN +\DeclareTextCommand{\textplusinferior}{PU}{\9040\212}%* U+208A +% U+208B SUBSCRIPT MINUS +\DeclareTextCommand{\textminusinferior}{PU}{\9040\213}%* U+208B +% U+208C SUBSCRIPT EQUALS SIGN +\DeclareTextCommand{\textequalsinferior}{PU}{\9040\214}%* U+208C +% U+208D SUBSCRIPT LEFT PARENTHESIS; parenleftinferior +\DeclareTextCommand{\textparenleftinferior}{PU}{\9040\215}%* U+208D +% U+208E SUBSCRIPT RIGHT PARENTHESIS; parenrightinferior +\DeclareTextCommand{\textparenrightinferior}{PU}{\9040\216}%* U+208E +% U+2090 LATIN SUBSCRIPT SMALL LETTER A +\DeclareTextCommand{\textainferior}{PU}{\9040\220}%* U+2090 +% U+2091 LATIN SUBSCRIPT SMALL LETTER E +\DeclareTextCommand{\texteinferior}{PU}{\9040\221}%* U+2091 +% U+2092 LATIN SUBSCRIPT SMALL LETTER O +\DeclareTextCommand{\textoinferior}{PU}{\9040\222}%* U+2092 +% U+2093 LATIN SUBSCRIPT SMALL LETTER X +\DeclareTextCommand{\textxinferior}{PU}{\9040\223}%* U+2093 +% U+2094 LATIN SUBSCRIPT SMALL LETTER SCHWA +\DeclareTextCommand{\textschwainferior}{PU}{\9040\224}%* U+2094 +% U+2095 LATIN SUBSCRIPT SMALL LETTER H +\DeclareTextCommand{\texthinferior}{PU}{\9040\225}%* U+2095 +% U+2096 LATIN SUBSCRIPT SMALL LETTER K +\DeclareTextCommand{\textkinferior}{PU}{\9040\226}%* U+2096 +% U+2097 LATIN SUBSCRIPT SMALL LETTER L +\DeclareTextCommand{\textlinferior}{PU}{\9040\227}%* U+2097 +% U+2098 LATIN SUBSCRIPT SMALL LETTER M +\DeclareTextCommand{\textminferior}{PU}{\9040\230}%* U+2098 +% U+2099 LATIN SUBSCRIPT SMALL LETTER N +\DeclareTextCommand{\textninferior}{PU}{\9040\231}%* U+2099 +% U+209A LATIN SUBSCRIPT SMALL LETTER P +\DeclareTextCommand{\textpinferior}{PU}{\9040\232}%* U+209A +% U+209B LATIN SUBSCRIPT SMALL LETTER S +\DeclareTextCommand{\textsinferior}{PU}{\9040\233}%* U+209B +% U+209C LATIN SUBSCRIPT SMALL LETTER T +\DeclareTextCommand{\texttinferior}{PU}{\9040\234}%* U+209C +% \end{macrocode} +% +% \subsubsection{Currency Symbols: U+20A0 to U+20CF} +% +% \begin{macrocode} +% U+20A1 COLON SIGN; *colonmonetary, colonsign +\DeclareTextCommand{\textcolonmonetary}{PU}{\9040\241}% U+20A1 +% U+20A4 LIRA SIGN; afii08941, *lira +\DeclareTextCommand{\textlira}{PU}{\9040\244}% U+20A4 +% U+20A6 NAIRA SIGN +\DeclareTextCommand{\textnaira}{PU}{\9040\246}% U+20A6 +% U+20A7 PESETA SIGN; peseta +\DeclareTextCommand{\textpeseta}{PU}{\9040\247}% U+20A7 +% U+20A9 WON SIGN; won +\DeclareTextCommand{\textwon}{PU}{\9040\251}% U+20A9 +% U+20AB DONG SIGN; dong +\DeclareTextCommand{\textdong}{PU}{\9040\253}% U+20AB +% U+20AC EURO SIGN; *Euro, euro +\DeclareTextCommand{\texteuro}{PU}{\9040\254}% U+20AC +%* \texteuro -> \EurDig (marvosym) +%* \texteuro -> \EURdig (marvosym) +%* \texteuro -> \EurHv (marvosym) +%* \texteuro -> \EURhv (marvosym) +%* \texteuro -> \EurCr (marvosym) +%* \texteuro -> \EURcr (marvosym) +%* \texteuro -> \EurTm (marvosym) +%* \texteuro -> \EURtm (marvosym) +%* \texteuro -> \Eur (marvosym) +% U+20B0 GERMAN PENNY SIGN; \Deleatur (marvosym) +\DeclareTextCommand{\textDeleatur}{PU}{\9040\260}%* U+20B0 +%* \textDeleatur -> \Denarius (marvosym) +% U+20B1 PESO SIGN +\DeclareTextCommand{\textpeso}{PU}{\9040\261}% U+20B1 +% U+20B2 GUARANI SIGN +\DeclareTextCommand{\textguarani}{PU}{\9040\262}% U+20B2 +% \end{macrocode} +% +% \subsubsection{Letterlike Symbols: U+2100 to U+214F} +% +% \begin{macrocode} +% U+2103 DEGREE CELSIUS; centigrade +\DeclareTextCommand{\textcelsius}{PU}{\9041\003}% U+2103 +% U+210F PLANCK CONSTANT OVER TWO PI; \hslash (AmS) +\DeclareTextCommand{\texthslash}{PU}{\9041\017}%* U+210F +% U+2111 BLACK-LETTER CAPITAL I (=imaginary part); Ifraktur; \Im (LaTeX) +\DeclareTextCommand{\textIm}{PU}{\9041\021}%* U+2111 +% U+2113 SCRIPT SMALL L (=ell, liter); afii61289, lsquare; \ell (LaTeX) +\DeclareTextCommand{\textell}{PU}{\9041\023}%* U+2113 +% U+2116 NUMERO SIGN; *afii61352, numero +\DeclareTextCommand{\textnumero}{PU}{\9041\026}% U+2116 +% U+2117 SOUND RECORDING COPYRIGHT +\DeclareTextCommand{\textcircledP}{PU}{\9041\027}% U+2117 +% U+2118 SCRIPT CAPITAL P (=Weierstrass elliptic function); +% weierstrass; \wp (LaTeX) +\DeclareTextCommand{\textwp}{PU}{\9041\030}%* U+2118 +% U+211C BLACK-LETTER CAPITAL R (=real part); Rfraktur; \Re (LaTeX) +\DeclareTextCommand{\textRe}{PU}{\9041\034}%* U+211C +% U+211E PRESCRIPTION TAKE; prescription +\DeclareTextCommand{\textrecipe}{PU}{\9041\036}% U+211E +% U+2120 SERVICE MARK +\DeclareTextCommand{\textservicemark}{PU}{\9041\040}% U+2120 +% U+2122 TRADE MARK SIGN; trademark +\DeclareTextCommand{\texttrademark}{PU}{\9041\042}% U+2122 +% U+2126 OHM SIGN; Ohm, Omega +\DeclareTextCommand{\textohm}{PU}{\9041\046}% U+2126 +% U+2127 INVERTED OHM SIGN +\DeclareTextCommand{\textmho}{PU}{\9041\047}%* U+2127 +%* \textmho -> \agemO (wasysym) +% U+2129 TURNED GREEK SMALL LETTER IOTA; \riota (phonetic) +\DeclareTextCommand{\textriota}{PU}{\9041\051}%* U+2129 +% U+212B ANGSTROM SIGN; angstrom +\DeclareTextCommand{\textangstrom}{PU}{\9041\053}% U+212B +% U+212E ESTIMATED SYMBOL; estimated +\DeclareTextCommand{\textestimated}{PU}{\9041\056}% U+212E +%* \textestimated -> \EstimatedSign (marvosym) +%* \textestimated -> \Ecommerce (marvosym) +% U+2132 TURNED CAPITAL F; \Finv (AmS) +\DeclareTextCommand{\textFinv}{PU}{\9041\062}%* U+2132 +% U+2135 ALEF SYMBOL; aleph; \aleph (LaTeX) +\DeclareTextCommand{\textaleph}{PU}{\9041\065}%* U+2135 +% U+2136 BET SYMBOL; \beth (AmS, MnSymbol) +\DeclareTextCommand{\textbeth}{PU}{\9041\066}%* U+2136 +% U+2137 GIMEL SYMBOL; \gimel (AmS, MnSymbol) +\DeclareTextCommand{\textgimel}{PU}{\9041\067}%* U+2137 +% U+2138 DALET SYMBOL; \daleth (AmS, MnSymbol) +\DeclareTextCommand{\textdaleth}{PU}{\9041\070}%* U+2138 +% U+213B FACSIMILE SIGN; \fax (marvosym) +\DeclareTextCommand{\textfax}{PU}{\9041\073}%* U+213B +% U+2141 TURNED SANS-SERIF CAPITAL G (=game); \Game +\DeclareTextCommand{\textGame}{PU}{\9041\101}%* U+2141 +% U+214B TURNED AMPERSAND; \invamp (txfonts/pxfonts) +\DeclareTextCommand{\textinvamp}{PU}{\9041\113}% U+214B +%* \textinvamp -> \bindnasrepma (stmaryrd) +%* \textinvamp -> \parr (cmll) +% \end{macrocode} +% +% \subsubsection{Number Forms: U+2150 to U+218F} +% +% \begin{macrocode} +% U+2150 VULGAR FRACTION ONE SEVENTH +\DeclareTextCommand{\textoneseventh}{PU}{\9041\120}% U+2150 +% U+2151 VULGAR FRACTION ONE NINTH +\DeclareTextCommand{\textoneninth}{PU}{\9041\121}% U+2151 +% U+2152 VULGAR FRACTION ONE TENTH +\DeclareTextCommand{\textonetenth}{PU}{\9041\122}% U+2152 +% U+2153 VULGAR FRACTION ONE THIRD; onethird +\DeclareTextCommand{\textonethird}{PU}{\9041\123}% U+2153 +% U+2154 VULGAR FRACTION TWO THIRDS; twothirds +\DeclareTextCommand{\texttwothirds}{PU}{\9041\124}% U+2154 +% U+2155 VULGAR FRACTION ONE FIFTH +\DeclareTextCommand{\textonefifth}{PU}{\9041\125}% U+2155 +% U+2156 VULGAR FRACTION TWO FIFTHS +\DeclareTextCommand{\texttwofifths}{PU}{\9041\126}% U+2156 +% U+2157 VULGAR FRACTION THREE FIFTHS +\DeclareTextCommand{\textthreefifths}{PU}{\9041\127}% U+2157 +% U+2158 VULGAR FRACTION FOUR FIFTHS +\DeclareTextCommand{\textfourfifths}{PU}{\9041\130}% U+2158 +% U+2159 VULGAR FRACTION ONE SIXTH +\DeclareTextCommand{\textonesixth}{PU}{\9041\131}% U+2159 +% U+215A VULGAR FRACTION FIVE SIXTHS +\DeclareTextCommand{\textfivesixths}{PU}{\9041\132}% U+215A +% U+215B VULGAR FRACTION ONE EIGHTH; oneeighth +\DeclareTextCommand{\textoneeighth}{PU}{\9041\133}% U+215B +% U+215C VULGAR FRACTION THREE EIGHTHS; threeeighths +\DeclareTextCommand{\textthreeeighths}{PU}{\9041\134}% U+215C +% U+215D VULGAR FRACTION FIVE EIGHTHS; fiveeighths +\DeclareTextCommand{\textfiveeighths}{PU}{\9041\135}% U+215D +% U+215E VULGAR FRACTION SEVEN EIGHTHS; seveneighths +\DeclareTextCommand{\textseveneighths}{PU}{\9041\136}% U+215E +% U+2184 LATIN SMALL LETTER REVERSED C +\DeclareTextCommand{\textrevc}{PU}{\9041\204}% U+2184 +% U+2189 VULGAR FRACTION ZERO THIRDS +\DeclareTextCommand{\textzerothirds}{PU}{\9041\211}% U+2189 +% \end{macrocode} +% +% \subsubsection{Arrows: U+2190 to U+21FF} +% +% \begin{macrocode} +% U+2190 LEFTWARDS ARROW; arrowleft +\DeclareTextCommand{\textleftarrow}{PU}{\9041\220}%* U+2190 +% U+2191 UPWARDS ARROW; arrowup +\DeclareTextCommand{\textuparrow}{PU}{\9041\221}%* U+2191 +% U+2192 RIGHTWARDS ARROW; arrowright +\DeclareTextCommand{\textrightarrow}{PU}{\9041\222}%* U+2192 +%* \textrightarrow -> \MVRightArrow (marvosym) +%* \textrightarrow -> \MVRightarrow (marvosym) +% U+2193 DOWNWARDS ARROW; arrowdown +\DeclareTextCommand{\textdownarrow}{PU}{\9041\223}%* U+2193 +%* \textdownarrow -> \MVArrowDown (marvosym) +%* \textdownarrow -> \Force (marvosym) +% U+2194 LEFT RIGHT ARROW; arrowboth; \leftrightarrow (LaTeX) +\DeclareTextCommand{\textleftrightarrow}{PU}{\9041\224}%* U+2194 +% U+2195 UP DOWN ARROW; arrowupdn; \updownarrow (LaTeX) +\DeclareTextCommand{\textupdownarrow}{PU}{\9041\225}%* U+2195 +% U+2196 NORTH WEST ARROW; arrowupleft; \nwarrow (LaTeX) +\DeclareTextCommand{\textnwarrow}{PU}{\9041\226}%* U+2196 +% U+2197 NORTH EAST ARROW; arrowupright; \nearrow (LaTeX) +\DeclareTextCommand{\textnearrow}{PU}{\9041\227}%* U+2197 +%* \textnearrow -> \textglobrise (tipa) +% U+2198 SOUTH EAST ARROW; arrowdownright; \searrow (LaTeX) +\DeclareTextCommand{\textsearrow}{PU}{\9041\230}%* U+2198 +%* \textsearrow -> \textglobfall (tipa) +% U+2199 SOUTH WEST ARROW; arrowdownleft; \swarrow (LaTeX) +\DeclareTextCommand{\textswarrow}{PU}{\9041\231}%* U+2199 +% U+219A LEFTWARDS ARROW WITH STROKE; \nleftarrow (AmS) +\DeclareTextCommand{\textnleftarrow}{PU}{\9041\232}%* U+219A +% U+219B RIGHTWARDS ARROW WITH STROKE; \nrightarrow (AmS) +\DeclareTextCommand{\textnrightarrow}{PU}{\9041\233}%* U+219B +% U+219E LEFTWARDS TWO HEADED ARROW; \twoheadleftarrow (AmS) +\DeclareTextCommand{\texttwoheadleftarrow}{PU}{\9041\236}%* U+219E +% \ntwoheadleftarrow (txfonts/pxfonts) +\DeclareTextCommand{\textntwoheadleftarrow}{PU}{\9041\236\83\070}%* U+219E U+0338 +% U+219F UPWARDS TWO HEADED ARROW; \twoheaduparrow (MnSymbol) +\DeclareTextCommand{\texttwoheaduparrow}{PU}{\9041\237}%* U+219F +% U+21A0 RIGHTWARDS TWO HEADED ARROW; +% \twoheadrightarrow (AmS) +\DeclareTextCommand{\texttwoheadrightarrow}{PU}{\9041\240}%* U+21A0 +% \ntwoheadrightarrow (txfonts/pxfonts) +\DeclareTextCommand{\textntwoheadrightarrow}{PU}{\9041\240\83\070}%* U+21A0 U+0338 +% U+21A1 DOWNWARDS TWO HEADED ARROW; \twoheaddownarrow (MnSymbol) +\DeclareTextCommand{\texttwoheaddownarrow}{PU}{\9041\241}%* U+21A1 +% U+21A2 LEFTWARDS ARROW WITH TAIL; \leftarrowtail (AmS) +\DeclareTextCommand{\textleftarrowtail}{PU}{\9041\242}%* U+21A2 +% U+21A3 RIGHTWARDS ARROW WITH TAIL; \rightarrowtail (AmS) +\DeclareTextCommand{\textrightarrowtail}{PU}{\9041\243}%* U+21A3 +% U+21A6 RIGHTWARDS ARROW FROM BAR; \mapsto (LaTeX) +\DeclareTextCommand{\textmapsto}{PU}{\9041\246}%* U+21A6 +% U+21A9 LEFTWARDS ARROW WITH HOOK; \hookleftarrow (LaTeX) +\DeclareTextCommand{\texthookleftarrow}{PU}{\9041\251}%* U+21A9 +% U+21AA RIGHTWARDS ARROW WITH HOOK; \hookrightarrow (LaTeX) +\DeclareTextCommand{\texthookrightarrow}{PU}{\9041\252}%* U+21AA +% U+21AB LEFTWARDS ARROW WITH LOOP; \looparrowleft (AmS) +\DeclareTextCommand{\textlooparrowleft}{PU}{\9041\253}%* U+21AB +% U+21AC RIGHTWARDS ARROW WITH LOOP; \looparrowright (AmS) +\DeclareTextCommand{\textlooparrowright}{PU}{\9041\254}%* U+21AC +% U+21AE LEFT RIGHT ARROW WITH STROKE; \nleftrightarrow (AmS) +\DeclareTextCommand{\textnleftrightarrow}{PU}{\9041\256}%* U+21AE +% U+21AF DOWNWARDS ZIGZAG ARROW; \lightning (stmaryrd) +\DeclareTextCommand{\textlightning}{PU}{\9041\257}%* U+21AF +%* \textlightning -> \Lightning (marvosym) +% U+21B5 DOWNWARDS ARROW WITH CORNER LEFTWARDS; +% \dlsh (mathabx) +\DeclareTextCommand{\textdlsh}{PU}{\9041\265}%* U+21B5 +% U+21B6 ANTICLOCKWISE TOP SEMICIRCLE ARROW; +% \curvearrowleft (AmS) +\DeclareTextCommand{\textcurvearrowleft}{PU}{\9041\266}%* U+21B6 +% U+21B7 CLOCKWISE TOP SEMICIRCLE ARROW; \curvearrowright (AmS) +\DeclareTextCommand{\textcurvearrowright}{PU}{\9041\267}%* U+21B7 +% U+21BC LEFTWARDS HARPOON WITH BARB UPWARDS; harpoonleftbarbup; +% \leftharpoonup (LaTeX) +\DeclareTextCommand{\textleftharpoonup}{PU}{\9041\274}%* U+21BC +% U+21BD LEFTWARDS HARPOON WITH BARB DOWNWARDS; +% \leftharpoondown (LaTeX) +\DeclareTextCommand{\textleftharpoondown}{PU}{\9041\275}%* U+21BD +% U+21BE UPWARDS HARPOON WITH BARB RIGHTWARDS; +% \upharpoonright (AmS) +\DeclareTextCommand{\textupharpoonright}{PU}{\9041\276}%* U+21BE +% U+21BF UPWARDS HARPOON WITH BARB LEFTWARDS; +% \upharpoonleft (AmS) +\DeclareTextCommand{\textupharpoonleft}{PU}{\9041\277}%* U+21BF +% U+21C0 RIGHTWARDS HARPOON WITH BARB UPWARDS; harpoonrightbarbup +% \rightharpoonup (LaTeX) +\DeclareTextCommand{\textrightharpoonup}{PU}{\9041\300}%* U+21C0 +% U+21C1 RIGHTWARDS HARPOON WITH BARB DOWNWARDS; +% \rightharpoondown (LaTeX) +\DeclareTextCommand{\textrightharpoondown}{PU}{\9041\301}%* U+21C1 +% U+21C2 DOWNWARDS HARPOON WITH BARB RIGHTWARDS; +% \downharpoonright (AmS) +\DeclareTextCommand{\textdownharpoonright}{PU}{\9041\302}%* U+21C2 +% U+21C3 DOWNWARDS HARPOON WITH BARB LEFTWARDS; +% \downharpoonleft (AmS) +\DeclareTextCommand{\textdownharpoonleft}{PU}{\9041\303}%* U+21C3 +% U+21C4 RIGHTWARDS ARROW OVER LEFTWARDS ARROW; +% arrowrightoverleft; \rightleftarrows (MnSymbol) +\DeclareTextCommand{\textrightleftarrows}{PU}{\9041\304}%* U+21C4 +% U+21C5 UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW; arrowupleftofdown; +% \updownarrows (MnSymbol) +\DeclareTextCommand{\textupdownarrows}{PU}{\9041\305}%* U+21C5 +% U+21C6 LEFTWARDS ARROW OVER RIGHTWARDS ARROW; arrowleftoverright; +% \leftrightarrows (AmS) +\DeclareTextCommand{\textleftrightarrows}{PU}{\9041\306}%* U+21C6 +% U+21C7 LEFTWARDS PAIRED ARROWS; \leftleftarrows (AmS) +\DeclareTextCommand{\textleftleftarrows}{PU}{\9041\307}%* U+21C7 +% U+21C8 UPWARDS PAIRED ARROWS; \upuparrows (AmS) +\DeclareTextCommand{\textupuparrows}{PU}{\9041\310}%* U+21C8 +% U+21C9 RIGHTWARDS PAIRED ARROWS; \rightrightarrows (AmS) +\DeclareTextCommand{\textrightrightarrows}{PU}{\9041\311}%* U+21C9 +% U+21CA DOWNWARDS PAIRED ARROWS; \downdownarrows (AmS) +\DeclareTextCommand{\textdowndownarrows}{PU}{\9041\312}%* U+21CA +% U+21CB LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON; +% \leftrightharpoons (AmS); +\DeclareTextCommand{\textleftrightharpoons}{PU}{\9041\313}%* U+21CB +% U+21CC RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON; +% \rightleftharpoons (LaTeX, AmS) +\DeclareTextCommand{\textrightleftharpoons}{PU}{\9041\314}%* U+21CC +% U+21CD LEFTWARDS DOUBLE ARROW WITH STROKE; arrowleftdblstroke; +% \nLeftarrow (AmS) +\DeclareTextCommand{\textnLeftarrow}{PU}{\9041\315}%* U+21CD +% U+21CE LEFT RIGHT DOUBLE ARROW WITH STROKE; \nLeftrightarrow (AmS) +\DeclareTextCommand{\textnLeftrightarrow}{PU}{\9041\316}%* U+21CE +% U+21CF RIGHTWARDS DOUBLE ARROW WITH STROKE; arrowrightdblstroke; +% \nRightarrow (AmS) +\DeclareTextCommand{\textnRightarrow}{PU}{\9041\317}%* U+21CF +% U+21D0 LEFTWARDS DOUBLE ARROW; arrowdblleft, arrowleftdbl; +% \Leftarrow (LaTeX) +\DeclareTextCommand{\textLeftarrow}{PU}{\9041\320}%* U+21D0 +% U+21D1 UPWARDS DOUBLE ARROW; arrowdblup; \Uparrow (LaTeX) +\DeclareTextCommand{\textUparrow}{PU}{\9041\321}%* U+21D1 +% U+21D2 RIGHTWARDS DOUBLE ARROW; arrowdblright, dblarrowright; +% \Rightarrow (LaTeX) +\DeclareTextCommand{\textRightarrow}{PU}{\9041\322}%* U+21D2 +%* \textRightarrow -> \Conclusion (marvosym) +% U+21D3 DOWNWARDS DOUBLE ARROW; arrowdbldown; \Downarrow (LaTeX) +\DeclareTextCommand{\textDownarrow}{PU}{\9041\323}%* U+21D3 +% U+21D4 LEFT RIGHT DOUBLE ARROW; arrowdblboth; +% \Leftrightarrow (LaTeX) +\DeclareTextCommand{\textLeftrightarrow}{PU}{\9041\324}%* U+21D4 +%* textLeftrightarrow -> \Equivalence (marvosym) +% U+21D5 UP DOWN DOUBLE ARROW; \Updownarrow (LaTeX) +\DeclareTextCommand{\textUpdownarrow}{PU}{\9041\325}%* U+21D5 +% U+21D6 NORTH WEST DOUBLE ARROW; \Nwarrow (MnSymbol) +\DeclareTextCommand{\textNwarrow}{PU}{\9041\326}%* U+21D6 +% U+21D7 NORTH EAST DOUBLE ARROW; \Nearrow (MnSymbol) +\DeclareTextCommand{\textNearrow}{PU}{\9041\327}%* U+21D7 +% U+21D8 SOUTH EAST DOUBLE ARROW; \Searrow (MnSymbol) +\DeclareTextCommand{\textSearrow}{PU}{\9041\330}%* U+21D8 +% U+21D9 SOUTH WEST DOUBLE ARROW; \Swarrow (MnSymbol) +\DeclareTextCommand{\textSwarrow}{PU}{\9041\331}%* U+21D9 +% U+21DA LEFTWARDS TRIPLE ARROW; \Lleftarrow (AmS) +\DeclareTextCommand{\textLleftarrow}{PU}{\9041\332}%* U+21DA +% U+21DB RIGHTWARDS TRIPLE ARROW; \Rrightarrow (MnSymbol) +\DeclareTextCommand{\textRrightarrow}{PU}{\9041\333}%* U+21DB +% U+21DC LEFTWARDS SQUIGGLE ARROW; \leftsquigarrow (mathabx) +\DeclareTextCommand{\textleftsquigarrow}{PU}{\9041\334}%* U+21DC +% U+21DD RIGHTWARDS SQUIGGLE ARROW; \rightsquigarrow (mathabx) +\DeclareTextCommand{\textrightsquigarrow}{PU}{\9041\335}%* U+21DD +% U+21E0 LEFTWARDS DASHED ARROW; arrowdashleft; +% \dashleftarrow (AmS) +\DeclareTextCommand{\textdashleftarrow}{PU}{\9041\340}%* U+21E0 +%* \textdashleftarrow -> \dashedleftarrow (MnSymbol) +% U+21E1 UPWARDS DASHED ARROW; arrowdashup; \dasheduparrow (MnSymbol) +\DeclareTextCommand{\textdasheduparrow}{PU}{\9041\341}%* U+21E1 +% U+21E2 RIGHTWARDS DASHED ARROW; arrowdashright; \dashrightarrow (AmS) +\DeclareTextCommand{\textdashrightarrow}{PU}{\9041\342}%* U+21E2 +%* \textdashrightarrow -> \dashedrightarrow (MnSymbol) +% U+21E3 DOWNWARDS DASHED ARROW; arrowdashdown; \dasheddownarrow (MnSymbol) +\DeclareTextCommand{\textdasheddownarrow}{PU}{\9041\343}%* U+21E3 +% U+21E8 RIGHTWARDS WHITE ARROW; \pointer (wasysym) +\DeclareTextCommand{\textpointer}{PU}{\9041\350}%* U+21E8 +% U+21F5 DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW; +% \downuparrows (MnSymbol) +\DeclareTextCommand{\textdownuparrows}{PU}{\9041\365}%* U+21F5 +% U+21FD LEFTWARDS OPEN-HEADED ARROW; \leftarrowtriangle (stmaryrd) +\DeclareTextCommand{\textleftarrowtriangle}{PU}{\9041\375}%* U+21FD +% U+21FE RIGHTWARDS OPEN-HEADED ARROW; \rightarrowtriangle (stmaryrd) +\DeclareTextCommand{\textrightarrowtriangle}{PU}{\9041\376}%* U+21FE +% U+21FF LEFT RIGHT OPEN-HEADED ARROW; \leftrightarrowtriangle (stmaryrd) +\DeclareTextCommand{\textleftrightarrowtriangle}{PU}{\9041\377}%* U+21FF +% \end{macrocode} +% +% \subsubsection{Mathematical Operators: U+2200 to U+22FF} +% +% \begin{macrocode} +% U+2200 FOR ALL; forall; \forall (LaTeX) +\DeclareTextCommand{\textforall}{PU}{\9042\000}%* U+2200 +% U+2201 COMPLEMENT; \complement (AmS) +\DeclareTextCommand{\textcomplement}{PU}{\9042\001}%* U+2201 +% U+2202 PARTIAL DIFFERENTIAL; partialdiff; \partial (LaTeX) +\DeclareTextCommand{\textpartial}{PU}{\9042\002}%* U+2202 +% U+2203 THERE EXISTS; existential; \exists (LaTeX) +\DeclareTextCommand{\textexists}{PU}{\9042\003}%* U+2203 +% U+2204 THERE DOES NOT EXIST; \nexists (AmS) +\DeclareTextCommand{\textnexists}{PU}{\9042\004}%* U+2204 +% U+2205 EMPTY SET; emptyset; \emptyset (LaTeX), \varnothing (AmS) +\DeclareTextCommand{\textemptyset}{PU}{\9042\005}%* U+2205 +%* \textemptyset -> \varnothing (AmS) +% U+2206 INCREMENT; increment, Deta; \triangle (LaTeX) +\DeclareTextCommand{\texttriangle}{PU}{\9042\006}%* U+2206 +% U+2207 NABLA; nabla, gradient; \nabla (LaTeX) +\DeclareTextCommand{\textnabla}{PU}{\9042\007}%* U+2207 +% U+2208 ELEMENT OF; element; \in (LaTeX) +\DeclareTextCommand{\textin}{PU}{\9042\010}%* U+2208 +% U+2209 NOT AN ELEMENT OF; notelement, notelementof; \notin (LaTeX) +\DeclareTextCommand{\textnotin}{PU}{\9042\011}%* U+2209 +% U+220A SMALL ELEMENT OF; \smallin (mathdesign) +\DeclareTextCommand{\textsmallin}{PU}{\9042\012}%* U+220A +% U+220B CONTAINS AS MEMBER; suchthat; \ni (LaTeX) +\DeclareTextCommand{\textni}{PU}{\9042\013}%* U+220B +%* \textni -> \owns (mathabx) +% U+220C DOES NOT CONTAIN AS MEMBER; \notowner (mathabx) +\DeclareTextCommand{\textnotowner}{PU}{\9042\014}%* U+220C +%* \textnotowner -> \notni (txfonts/pxfonts) +% U+220D SMALL CONTAINS AS MEMBER; \smallowns (mathdesign) +\DeclareTextCommand{\textsmallowns}{PU}{\9042\015}%* U+220D +% U+220F N-ARY PRODUCT; \prod (LaTeX) +\DeclareTextCommand{\textprod}{PU}{\9042\017}%* U+220F +% U+2210 N-ARY COPRODUCT; \amalg (LaTeX) +\DeclareTextCommand{\textamalg}{PU}{\9042\020}%* U+2210 +% U+2211 N-ARY SUMMATION; summation; \sum (LaTeX) +\DeclareTextCommand{\textsum}{PU}{\9042\021}%* U+2211 +% U+2212 MINUS SIGN; minus +\DeclareTextCommand{\textminus}{PU}{\9042\022}% U+2212 +% U+2213 MINUS-OR-PLUS SIGN; minusplus; \mp (LaTeX) +\DeclareTextCommand{\textmp}{PU}{\9042\023}%* U+2213 +% U+2214 DOT PLUS; \dotplus (AmS) +\DeclareTextCommand{\textdotplus}{PU}{\9042\024}%* U+2214 +% U+2215 DIVISION SLASH; divisionslash; \Divides (marvosym) +\DeclareTextCommand{\textDivides}{PU}{\9042\025}%* U+2215 +% \DividesNot (marvosym) +\DeclareTextCommand{\textDividesNot}{PU}{\9042\025\9040\322}%* U+2215 U+20D2 +% U+2216 SET MINUS; \setminus (LaTeX) +\DeclareTextCommand{\textsetminus}{PU}{\9042\026}%* U+2216 +% U+2217 ASTERISK OPERATOR; asteriskmath; \ast (LaTeX) +\DeclareTextCommand{\textast}{PU}{\9042\027}%* U+2217 +% U+2218 RING OPERATOR; \circ (LaTeX) +\DeclareTextCommand{\textcirc}{PU}{\9042\030}%* U+2218 +% U+2219 BULLET OPERATOR; bulletoperator; \bullet (LaTeX) +\DeclareTextCommand{\textbulletoperator}{PU}{\9042\031}% U+2219 +% U+221A SQUARE ROOT; radical +\DeclareTextCommand{\textsurd}{PU}{\9042\032}%* U+221A +% U+221D PROPORTIONAL TO; proportional; \propto (LaTeX) +\DeclareTextCommand{\textpropto}{PU}{\9042\035}%* U+221D +%* \textpropto -> \varprop (wasysym) +% U+221E INFINITY; infinity; \infty (LaTeX) +\DeclareTextCommand{\textinfty}{PU}{\9042\036}%* U+221E +% U+2220 ANGLE; angle; \angle (LaTeX) +\DeclareTextCommand{\textangle}{PU}{\9042\040}%* U+2220 +% U+2221 MEASURED ANGLE; \measuredangle (mathabx, MnSymbol) +\DeclareTextCommand{\textmeasuredangle}{PU}{\9042\041}%* U+2221 +% U+2222 SPHERICAL ANGLE; \sphericalangle (AmS) +\DeclareTextCommand{\textsphericalangle}{PU}{\9042\042}%* U+2222 +%* \textsphericalangle -> \varangle (wasysym) +%* \textsphericalangle -> \Anglesign (marvosym) +%* \textsphericalangle -> \AngleSign (marvosym) +% U+2223 DIVIDES; divides; \mid (LaTeX) +\DeclareTextCommand{\textmid}{PU}{\9042\043}%* U+2223 +% U+2224 DOES NOT DIVIDE; \nmid (AmS) +\DeclareTextCommand{\textnmid}{PU}{\9042\044}%* U+2224 +%* \textnmid -> \notdivides (mathabx) +% U+2225 PARALLEL TO; parallel; \parallel (LaTeX) +\DeclareTextCommand{\textparallel}{PU}{\9042\045}%* U+2225 +% U+2226 NOT PARALLEL TO; notparallel; \nparallel (AmS) +\DeclareTextCommand{\textnparallel}{PU}{\9042\046}%* U+2226 +%* \textnparallel -> nUpdownline (MnSymbol) +% U+2227 LOGICAL AND; logicaland; \wedge (LaTeX) +\DeclareTextCommand{\textwedge}{PU}{\9042\047}%* U+2227 +% \owedge (stmaryrd) +\DeclareTextCommand{\textowedge}{PU}{\9042\047\9040\335}%* U+2227 U+20DD +%* \textowedge -> \varowedge (stmaryrd) +% U+2228 LOGICAL OR; logicalor; \vee (LaTeX) +\DeclareTextCommand{\textvee}{PU}{\9042\050}%* U+2228 +% \ovee (stmaryrd) +\DeclareTextCommand{\textovee}{PU}{\9042\050\9040\335}%* U+2228 U+20DD +%* \textovee -> \varovee (stmaryrd) +% U+2229 INTERSECTION; intersection; \cap (LaTeX) +\DeclareTextCommand{\textcap}{PU}{\9042\051}%* U+2229 +% U+222A UNION; union; \cup (LaTeX) +\DeclareTextCommand{\textcup}{PU}{\9042\052}%* U+222A +% U+222B INTEGRAL; integral; \int (LaTeX) +\DeclareTextCommand{\textint}{PU}{\9042\053}%* U+222B +%* \textint -> \varint (wasysym) +% U+222C DOUBLE INTEGRAL; dblintegral; \iint (AmS) +\DeclareTextCommand{\textiint}{PU}{\9042\054}%* U+222C +% U+222D TRIPLE INTEGRAL; \iiint (AmS) +\DeclareTextCommand{\textiiint}{PU}{\9042\055}%* U+222D +% U+222E CONTOUR INTEGRAL; contourintegral; \oint (LaTeX) +\DeclareTextCommand{\textoint}{PU}{\9042\056}%* U+222E +%* \textoint -> \varoint (wasysym) +% U+222F SURFACE INTEGRAL; \oiint (wasysym) +\DeclareTextCommand{\textoiint}{PU}{\9042\057}%* U+222F +% U+2232 CLOCKWISE CONTOUR INTEGRAL; +% \ointclockwise (txfonts/pxfonts) +\DeclareTextCommand{\textointclockwise}{PU}{\9042\062}%* U+2232 +% U+2233 ANTICLOCKWISE CONTOUR INTEGRAL; \ointctrclockwise (txfonts/pxfonts) +\DeclareTextCommand{\textointctrclockwise}{PU}{\9042\063}%* U+2233 +% U+2234 THEREFORE; therefore; \therefore (AmS) +\DeclareTextCommand{\texttherefore}{PU}{\9042\064}%* U+2234 +%* \texttherefore -> uptherefore (MnSymbol) +% U+2235 BECAUSE; because; \because (AmS) +\DeclareTextCommand{\textbecause}{PU}{\9042\065}%* U+2235 +%* \textbecause -> \downtherefore (MnSymbol) +% U+2236 RATIO; \vdotdot (MnSymbol) +\DeclareTextCommand{\textvdotdot}{PU}{\9042\066}%* U+2236 +% U+2237 PROPORTION; \squaredots (MnSymbol) +\DeclareTextCommand{\textsquaredots}{PU}{\9042\067}%* U+2237 +% U+2238 DOT MINUS; \dotminus (MnSymbol) +\DeclareTextCommand{\textdotminus}{PU}{\9042\070}%* U+2238 +%* \textdotminus -> \textdotdiv (mathabx) +% U+2239 EXCESS; \eqcolon (txfonts/pxfonts) +\DeclareTextCommand{\texteqcolon}{PU}{\9042\071}%* U+2239 +% U+223C TILDE OPERATOR; similar; \sim (LaTeX) +\DeclareTextCommand{\textsim}{PU}{\9042\074}%* U+223C +%* \textsim -> \AC (wasysym) +% U+223D REVERSED TILDE; reversedtilde; \backsim (AmS) +\DeclareTextCommand{\textbacksim}{PU}{\9042\075}%* U+223D +% \nbacksim (txfonts/pxfonts) +\DeclareTextCommand{\textnbacksim}{PU}{\9042\075\83\070}%* U+223D U+0338 +% U+2240 WREATH PRODUCT; \wr (LaTeX) +\DeclareTextCommand{\textwr}{PU}{\9042\100}%* U+2240 +%* \textwr -> \wreath (MnSymbol) +% U+2241 NOT TILDE; \nsim (AmS) +\DeclareTextCommand{\textnsim}{PU}{\9042\101}%* U+2241 +% U+2242 MINUS TILDE; \eqsim (MnSymbol) +\DeclareTextCommand{\texteqsim}{PU}{\9042\102}%* U+2242 +% \neqsim (MnSymbol) +\DeclareTextCommand{\textneqsim}{PU}{\9042\102\83\070}%* U+2242 U+0338 +% U+2243 ASYMPTOTICALLY EQUAL TO; asymptoticallyequal; \simeq (LaTeX) +\DeclareTextCommand{\textsimeq}{PU}{\9042\103}%* U+2243 +% U+2244 NOT ASYMPTOTICALLY EQUAL TO; \nsimeq (txfonts/pxfonts) +\DeclareTextCommand{\textnsimeq}{PU}{\9042\104}%* U+2244 +% U+2245 APPROXIMATELY EQUAL TO; approximatelyequal; \cong (LaTeX) +\DeclareTextCommand{\textcong}{PU}{\9042\105}%* U+2245 +% U+2247 NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO; +% \ncong (AmS) +\DeclareTextCommand{\textncong}{PU}{\9042\107}%* U+2247 +% U+2248 ALMOST EQUAL TO; approxequal; \approx (LaTeX) +\DeclareTextCommand{\textapprox}{PU}{\9042\110}%* U+2248 +% U+2249 NOT ALMOST EQUAL TO; \napprox (txfonts/pxfonts0 +\DeclareTextCommand{\textnapprox}{PU}{\9042\111}%* U+2249 +%* \textnapprox -> \nthickapprox (txfonts/pxfonts) +% U+224A ALMOST EQUAL OR EQUAL TO; \approxeq (AmS) +\DeclareTextCommand{\textapproxeq}{PU}{\9042\112}%* U+224A +% \napproxeq (txfonts/pxfonts) +\DeclareTextCommand{\textnapproxeq}{PU}{\9042\112\83\070}%* U+224A U+0338 +% U+224B TRIPLE TILDE; \triplesim (MnSymbol) +\DeclareTextCommand{\texttriplesim}{PU}{\9042\113}%* U+224B +%* \texttriplesim -> \VHF (wasysym) +% \ntriplesim (MnSymbol) +\DeclareTextCommand{\textntriplesim}{PU}{\9042\113\83\070}%* U+224B U+0338 +% U+224C ALL EQUAL TO; allequal; \backcong (MnSymbol) +\DeclareTextCommand{\textbackcong}{PU}{\9042\114}%* U+224C +% \nbackcong (MnSymbol) +\DeclareTextCommand{\textnbackcong}{PU}{\9042\114\83\070}%* U+224C U+0338 +% U+224D EQUIVALENT TO; \asymp (LaTeX) +\DeclareTextCommand{\textasymp}{PU}{\9042\115}%* U+224D +% \nasymp (txfonts/pxfonts) +\DeclareTextCommand{\textnasymp}{PU}{\9042\115\83\070}%* U+224D U+0338 +%* \textnasymp -> \notasymp (mathabx) +% U+224E GEOMETRICALLY EQUIVALENT TO; \Bumpeq (AmS) +\DeclareTextCommand{\textBumpeq}{PU}{\9042\116}%* U+224E +% \nBumpeq (txfonts/pxfonts) +\DeclareTextCommand{\textnBumpeq}{PU}{\9042\116\83\070}%* U+224E U+0338 +% U+224F DIFFERENCE BETWEEN; \bumpeq (AmS) +\DeclareTextCommand{\textbumpeq}{PU}{\9042\117}%* U+224F +% \nbumpeq (txfonts/pxfonts) +\DeclareTextCommand{\textnbumpeq}{PU}{\9042\117\83\070}%* U+224F U+0338 +% U+2250 APPROACHES THE LIMIT; approaches; \doteq (LaTeX) +\DeclareTextCommand{\textdoteq}{PU}{\9042\120}%* U+2250 +% \ndoteq (MnSymbol) +\DeclareTextCommand{\textndoteq}{PU}{\9042\120\83\070}%* U+2250 U+0338 +% U+2251 GEOMETRICALLY EQUAL TO; geometricallyequal; +% \doteqdot (AmS) +\DeclareTextCommand{\textdoteqdot}{PU}{\9042\121}%* U+2251 +%* \textdoteqdot -> \Doteq (MnSymbol) +% \nDoteq (MnSymbol) +\DeclareTextCommand{\textnDoteq}{PU}{\9042\121\83\070}%* U+2251 U+0338 +% U+2252 APPROXIMATELY EQUAL TO OR THE IMAGE OF; approxequalorimage; +% \fallingdotseq (AmS) +\DeclareTextCommand{\textfallingdoteq}{PU}{\9042\122}%* U+2252 +% \nfallingdotseq (MnSymbol) +\DeclareTextCommand{\textnfallingdoteq}{PU}{\9042\122\83\070}%* U+2252 U+0338 +% U+2253 IMAGE OF OR APPROXIMATELY EQUAL TO; imageorapproximatelyequal; +% \risingdotseq (AmS) +\DeclareTextCommand{\textrisingdoteq}{PU}{\9042\123}%* U+2253 +% \nrisingdoteq (MnSymbol) +\DeclareTextCommand{\textnrisingdoteq}{PU}{\9042\123\83\070}%* U+2253 U+0338 +% U+2254 COLON EQUALS; \colonequals (colonequals) +\DeclareTextCommand{\textcolonequals}{PU}{\9042\124}%* U+2254 +% U+2255 EQUALS COLON; \equalscolon (colonequals) +\DeclareTextCommand{\textequalscolon}{PU}{\9042\125}%* U+2255 +% U+2256 RING IN EQUAL TO; \eqcirc (AmS) +\DeclareTextCommand{\texteqcirc}{PU}{\9042\126}%* U+2256 +% \neqcirc (MnSymbol) +\DeclareTextCommand{\textneqcirc}{PU}{\9042\126\83\070}%* U+2256 U+0338 +% U+2257 RING EQUAL TO; \circeq (AmS) +\DeclareTextCommand{\textcirceq}{PU}{\9042\127}%* U+2257 +% \ncirceq (MnSymbol) +\DeclareTextCommand{\textncirceq}{PU}{\9042\127\83\070}%* U+2257 U+0338 +% U+2259 ESTIMATES; \hateq (MnSymbol) +\DeclareTextCommand{\texthateq}{PU}{\9042\131}%* U+2259 +%* \texthateq -> \corresponds (mathabx) +%* \texthateq -> \Corresponds (marvosym) +% \nhateq (MnSymbol) +\DeclareTextCommand{\textnhateq}{PU}{\9042\131\83\070}%* U+2259 U+0338 +% U+225C DELTA EQUAL TO; \triangleeq (AmS) +\DeclareTextCommand{\texttriangleeq}{PU}{\9042\134}%* U+225C +% U+2260 NOT EQUAL TO; notequal; \ne (LaTeX), \neq (LaTeX) +\DeclareTextCommand{\textneq}{PU}{\9042\140}%* U+2260 +\DeclareTextCommand{\textne}{PU}{\9042\140}%* U+2260 +%* \textneq -> \nequal (MnSymbol) +% U+2261 IDENTICAL TO; equivalence; \equiv (LaTeX) +\DeclareTextCommand{\textequiv}{PU}{\9042\141}%* U+2261 +%* \textequiv -> \Congruent (marvosym) +% U+2262 NOT IDENTICAL TO; notidentical; \nequiv (txfonts/pxfonts) +\DeclareTextCommand{\textnequiv}{PU}{\9042\142}%* U+2262 +%* \textnequiv -> \NotCongruent (marvosym) +%* \textnequiv -> \notequiv (mathabx) +% U+2264 LESS-THAN OR EQUAL TO; lessequal; \le (LaTeX), \leq (LaTeX) +\DeclareTextCommand{\textleq}{PU}{\9042\144}%* U+2264 +\DeclareTextCommand{\textle}{PU}{\9042\144}%* U+2264 +%* \textleq -> \LessOrEqual (marvosym) +% U+2265 GREATER-THAN OR EQUAL TO; greaterequal; +% \ge (LaTeX), \geq (LaTeX) +\DeclareTextCommand{\textgeq}{PU}{\9042\145}%* U+2265 +\DeclareTextCommand{\textge}{PU}{\9042\145}%* U+2265 +%* \textgeq -> \LargerOrEqual (marvosym) +% U+2266 LESS-THAN OVER EQUAL TO; lessoverequal; \leqq (AmS) +\DeclareTextCommand{\textleqq}{PU}{\9042\146}%* U+2266 +% \nleqq (txfonts/pxfonts) +\DeclareTextCommand{\textnleqq}{PU}{\9042\146\83\070}%* U+2266 U+0338 +% U+2267 GREATER-THAN OVER EQUAL TO; greateroverequal; \geqq (AmS) +\DeclareTextCommand{\textgeqq}{PU}{\9042\147}%* U+2267 +% \ngeqq (txfonts/pxfonts) +\DeclareTextCommand{\textngeqq}{PU}{\9042\147\83\070}%* U+2267 U+0338 +% U+2268 LESS-THAN BUT NOT EQUAL TO; \lneqq (AmS) +\DeclareTextCommand{\textlneqq}{PU}{\9042\150}%* U+2268 +% U+2269 GREATER-THAN BUT NOT EQUAL TO; \gneqq (AmS) +\DeclareTextCommand{\textgneqq}{PU}{\9042\151}%* U+2269 +% U+226A MUCH LESS-THAN; muchless; \ll (LaTeX) +\DeclareTextCommand{\textll}{PU}{\9042\152}%* U+226A +% \nll (txfonts/pxfonts) +\DeclareTextCommand{\textnll}{PU}{\9042\152\83\070}%* U+226A U+0338 +% U+226B MUCH GREATER-THAN; muchgreater; \gg (LaTeX) +\DeclareTextCommand{\textgg}{PU}{\9042\153}%* U+226B +% \ngg (txfonts/pxfonts) +\DeclareTextCommand{\textngg}{PU}{\9042\153\83\070}%* U+226B U+0338 +% U+226C BETWEEN; \between (AmS) +\DeclareTextCommand{\textbetween}{PU}{\9042\154}%* U+226C +% U+226E NOT LESS-THAN; notless; \nless (AmS) +\DeclareTextCommand{\textnless}{PU}{\9042\156}%* U+226E +% U+226F NOT GREATER-THAN; notgreater; \ngtr (AmS) +\DeclareTextCommand{\textngtr}{PU}{\9042\157}%* U+226F +% U+2270 NEITHER LESS-THAN NOR EQUAL TO; notlessnorequal; +% \nleq (AmS) +\DeclareTextCommand{\textnleq}{PU}{\9042\160}%* U+2270 +% U+2271 NEITHER GREATER-THAN NOR EQUAL TO; notgreaternorequal; \ngeq (AmS) +\DeclareTextCommand{\textngeq}{PU}{\9042\161}%* U+2271 +% U+2272 LESS-THAN OR EQUIVALENT TO; lessorequivalent; \lesssim (AmS) +\DeclareTextCommand{\textlesssim}{PU}{\9042\162}%* U+2272 +%* \textlesssim -> \apprle (wasysym) +% U+2273 GREATER-THAN OR EQUIVALENT TO; greaterorequivalent; \gtrsim (AmS) +\DeclareTextCommand{\textgtrsim}{PU}{\9042\163}%* U+2273 +%* \textgtrsim -> \apprge (wasysym) +% U+2274 NEITHER LESS-THAN NOR EQUIVALENT TO; \nlesssim (txfonts/pxfonts) +\DeclareTextCommand{\textnlesssim}{PU}{\9042\164}%* U+2274 +% U+2275 NEITHER GREATER-THAN NOR EQUIVALENT TO; \ngtrsim (txfonts/pxfonts) +\DeclareTextCommand{\textngtrsim}{PU}{\9042\165}%* U+2275 +% U+2276 LESS-THAN OR GREATER-THAN; lessorgreater; \lessgtr (AmS) +\DeclareTextCommand{\textlessgtr}{PU}{\9042\166}%* U+2276 +% U+2277 GREATER-THAN OR LESS-THAN; greaterorless; \gtrless (AmS) +\DeclareTextCommand{\textgtrless}{PU}{\9042\167}%* U+2277 +% U+2278 NEITHER LESS-THAN NOR GREATER-THAN; \ngtrless (txfonts/pxfonts) +\DeclareTextCommand{\textngtrless}{PU}{\9042\170}%* U+2278 +% U+2279 NEITHER GREATER-THAN NOR LESS-THAN; \nlessgtr (txfonts/pxfonts) +\DeclareTextCommand{\textnlessgtr}{PU}{\9042\171}%* U+2279 +% U+227A PRECEDES; precedes; \prec (LaTeX) +\DeclareTextCommand{\textprec}{PU}{\9042\172}%* U+227A +% U+227B SUCCEEDS; succeeds; \succ (LaTeX) +\DeclareTextCommand{\textsucc}{PU}{\9042\173}%* U+227B +% U+227C PRECEDES OR EQUAL TO; \preccurlyeq (AmS) +\DeclareTextCommand{\textpreccurlyeq}{PU}{\9042\174}%* U+227C +% U+227D SUCCEEDS OR EQUAL TO; \succcurlyeq (AmS) +\DeclareTextCommand{\textsucccurlyeq}{PU}{\9042\175}%* U+227D +% U+227E PRECEDES OR EQUIVALENT TO; \precsim (AmS) +\DeclareTextCommand{\textprecsim}{PU}{\9042\176}%* U+227E +% \nprecsim (txfonts/pxfonts) +\DeclareTextCommand{\textnprecsim}{PU}{\9042\176\83\070}%* U+227E U+0338 +% U+227F SUCCEEDS OR EQUIVALENT TO; \succsim (AmS) +\DeclareTextCommand{\textsuccsim}{PU}{\9042\177}%* U+227F +% \nsuccsim (txfonts/pxfonts) +\DeclareTextCommand{\textnsuccsim}{PU}{\9042\177\83\070}%* U+227F U+0338 +% U+2280 DOES NOT PRECEDE; notprecedes; \nprec (AmS) +\DeclareTextCommand{\textnprec}{PU}{\9042\200}%* U+2280 +% U+2281 DOES NOT SUCCEED; notsucceeds; \nsucc (AmS) +\DeclareTextCommand{\textnsucc}{PU}{\9042\201}%* U+2281 +% U+2282 SUBSET OF; propersubset; \subset (LaTeX) +\DeclareTextCommand{\textsubset}{PU}{\9042\202}%* U+2282 +% U+2283 SUPERSET OF; propersuperset; \supset (LaTeX) +\DeclareTextCommand{\textsupset}{PU}{\9042\203}%* U+2283 +% U+2284 NOT A SUBSET OF; notsubset; \nsubset (mathabx) +\DeclareTextCommand{\textnsubset}{PU}{\9042\204}%* U+2284 +% U+2285 NOT A SUPERSET OF; notsuperset; \nsupset (mathabx) +\DeclareTextCommand{\textnsupset}{PU}{\9042\205}%* U+2285 +% U+2286 SUBSET OF OR EQUAL TO; reflexsubset; \subseteq (LaTeX) +\DeclareTextCommand{\textsubseteq}{PU}{\9042\206}%* U+2286 +% U+2287 SUPERSET OF OR EQUAL TO; reflexsuperset; \supseteq (LaTeX) +\DeclareTextCommand{\textsupseteq}{PU}{\9042\207}%* U+2287 +% U+2288 NEITHER A SUBSET OF NOR EQUAL TO; \nsubseteq (AmS) +\DeclareTextCommand{\textnsubseteq}{PU}{\9042\210}%* U+2288 +% U+2289 NEITHER A SUPERSET OF NOR EQUAL TO; \nsupseteq (AmS) +\DeclareTextCommand{\textnsupseteq}{PU}{\9042\211}%* U+2289 +% U+228A SUBSET OF WITH NOT EQUAL TO; subsetnotequal; \subsetneq (AmS) +\DeclareTextCommand{\textsubsetneq}{PU}{\9042\212}%* U+228A +% U+228B SUPERSET OF WITH NOT EQUAL TO; supersetnotequal; \supsetneq (AmS) +\DeclareTextCommand{\textsupsetneq}{PU}{\9042\213}%* U+228B +% U+228D MULTISET MULTIPLICATION; \cupdot (MnSymbol) +\DeclareTextCommand{\textcupdot}{PU}{\9042\215}%* U+228D +% U+228E MULTISET UNION; \cupplus (MnSymbol) +\DeclareTextCommand{\textcupplus}{PU}{\9042\216}%* U+228E +% U+228F SQUARE IMAGE OF; \sqsubset (latexsym, ...) +\DeclareTextCommand{\textsqsubset}{PU}{\9042\217}%* U+228F +% \nsqsubset (txfonts/pxfonts) +\DeclareTextCommand{\textnsqsubset}{PU}{\9042\217\83\070}%* U+228F U+0338 +% U+2290 SQUARE ORIGINAL OF; \sqsupset (latexsym, ...) +\DeclareTextCommand{\textsqsupset}{PU}{\9042\220}%* U+2290 +% \nsqsupset (txfonts/pxfonts) +\DeclareTextCommand{\textnsqsupset}{PU}{\9042\220\83\070}%* U+2290 U+0338 +% U+2291 SQUARE IMAGE OF OR EQUAL TO; \sqsubseteq (LaTeX) +\DeclareTextCommand{\textsqsubseteq}{PU}{\9042\221}%* U+2291 +% \nsqsubseteq (txfonts/pxfonts) +\DeclareTextCommand{\textnsqsubseteq}{PU}{\9042\221\83\070}%* U+2291 U+0338 +% U+2292 SQUARE ORIGINAL OF OR EQUAL TO; \sqsupseteq (LaTeX) +\DeclareTextCommand{\textsqsupseteq}{PU}{\9042\222}%* U+2292 +% \nsqsupseteq (txfonts/pxfonts) +\DeclareTextCommand{\textnsqsupseteq}{PU}{\9042\222\83\070}%* U+2292 U+0338 +% U+2293 SQUARE CAP; \sqcap (LaTeX) +\DeclareTextCommand{\textsqcap}{PU}{\9042\223}%* U+2293 +% U+2294 SQUARE CUP; \sqcup (LaTeX) +\DeclareTextCommand{\textsqcup}{PU}{\9042\224}%* U+2294 +% U+2295 CIRCLED PLUS; circleplus; \oplus (LaTeX) +\DeclareTextCommand{\textoplus}{PU}{\9042\225}%* U+2295 +%* \textoplus -> \varoplus (stmaryrd) +% U+2296 CIRCLED MINUS; minuscircle; \ominus (LaTeX) +\DeclareTextCommand{\textominus}{PU}{\9042\226}%* U+2296 +%* \textominus -> \varominus (stmaryrd) +% U+2297 CIRCLED TIMES; circlemultiply; \otimes (LaTeX) +\DeclareTextCommand{\textotimes}{PU}{\9042\227}%* U+2297 +%* \textotimes -> \varotimes (stmaryrd) +% U+2298 CIRCLED DIVISION SLASH; \oslash (LaTeX) +\DeclareTextCommand{\textoslash}{PU}{\9042\230}%* U+2298 +%* \textoslash -> \varoslash (stmaryrd) +% U+2299 CIRCLED DOT OPERATOR; circle(d?)ot; \odot (LaTeX) +\DeclareTextCommand{\textodot}{PU}{\9042\231}%* U+2299 +%* \textodot -> \varodot (stmaryrd) +% U+229A CIRCLED RING OPERATOR; \circledcirc (AmS) +\DeclareTextCommand{\textcircledcirc}{PU}{\9042\232}%* U+229A +%* \textcircledcirc -> \ocirc (mathabx) +%* \textcircledcirc -> \varocircle (stmaryrd) +% U+229B CIRCLED ASTERISK OPERATOR; \circledast (AmS) +\DeclareTextCommand{\textcircledast}{PU}{\9042\233}%* U+229B +%* \textcircledast -> \varoast (stmaryrd) +%* \textcircledast -> \oasterisk (mathabx) +% U+229D CIRCLED DASH; \circleddash (AmS) +\DeclareTextCommand{\textcircleddash}{PU}{\9042\235}%* U+229D +% U+229E SQUARED PLUS; \boxplus (AmS) +\DeclareTextCommand{\textboxplus}{PU}{\9042\236}%* U+229E +% U+229F SQUARED MINUS; \boxminus (AmS) +\DeclareTextCommand{\textboxminus}{PU}{\9042\237}%* U+229F +% U+22A0 SQUARED TIMES; \boxtimes (AmS) +\DeclareTextCommand{\textboxtimes}{PU}{\9042\240}%* U+22A0 +% U+22A1 SQUARED DOT OPERATOR; \boxdot (AmS) +\DeclareTextCommand{\textboxdot}{PU}{\9042\241}%* U+22A1 +% U+22A2 RIGHT TACK; \vdash (LaTeX) +\DeclareTextCommand{\textvdash}{PU}{\9042\242}%* U+22A2 +%* \textvdash -> \rightvdash (MnSymbol) +% U+22A3 LEFT TACK; tackleft; \dashv (LaTeX) +\DeclareTextCommand{\textdashv}{PU}{\9042\243}%* U+22A3 +%* \textdashv -> \leftvdash (MnSymbol) +% \ndashv (mathabx) +\DeclareTextCommand{\textndashv}{PU}{\9042\243\83\070}%* U+22A3 U+0338 +%* \textndashv -> \nleftvdash (MnSymbol) +% U+22A4 DOWN TACK (=top); tackdown; \top (LaTeX) +\DeclareTextCommand{\texttop}{PU}{\9042\244}%* U+22A4 +%* \texttop -> \downvdash (MnSymbol) +% \ndownvdash (MnSymbol) +\DeclareTextCommand{\textndownvdash}{PU}{\9042\244\83\070}%* U+22A4 U+0338 +% U+22A5 UP TACK (=base, bottom); \bot (LaTeX) +\DeclareTextCommand{\textbot}{PU}{\9042\245}%* U+22A5 +%* \textbot -> \upvdash (MnSymbol) +% \nupvdash (MnSymbol) +\DeclareTextCommand{\textnupvdash}{PU}{\9042\245\83\070}%* U+22A5 U+0338 +%* \textnupvdash -> \nperp (MnSymbol) +% U+22A8 TRUE; \vDash (AmS) +\DeclareTextCommand{\textvDash}{PU}{\9042\250}%* U+22A8 +%* \textvDash -> \models (LaTeX) +%* \textvDash -> \rightmodels (MnSymbol) +% U+22A9 FORCES; \Vdash (AmS) +\DeclareTextCommand{\textVdash}{PU}{\9042\251}%* U+22A9 +%* \textVdash -> \rightVdash (MnSymbol) +% U+22AA TRIPLE VERTICAL BAR RIGHT TURNSTILE; \Vvdash (AmS) +\DeclareTextCommand{\textVvdash}{PU}{\9042\252}%* U+22AA +% \nVvash (mathabx) +\DeclareTextCommand{\textnVvash}{PU}{\9042\252\83\070}%* U+22AA U+0338 +% U+22AB DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE; +% \VDash (mathabx) +\DeclareTextCommand{\textVDash}{PU}{\9042\253}%* U+22AB +%* \textVDash -> \rightModels (MnSymbol) +% U+22AC DOES NOT PROVE; \nvdash (AmS) +\DeclareTextCommand{\textnvdash}{PU}{\9042\254}%* U+22AC +%* \textnvdash -> \nrightvdash (MnSymbol) +% U+22AD NOT TRUE; \nvDash (AmS) +\DeclareTextCommand{\textnvDash}{PU}{\9042\255}%* U+22AD +%* \textnvDash -> \nrightmodels (MnSymbol) +%* \textnvDash -> \nmodels (MnSymbol) +% U+22AE DOES NOT FORCE; \nVdash (txfonts/pxfonts) +\DeclareTextCommand{\textnVdash}{PU}{\9042\256}%* U+22AE +%* \textnVdash -> \nrightVdash (MnSymbol) +% U+22AF NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE; \nVDash (AmS) +\DeclareTextCommand{\textnVDash}{PU}{\9042\257}%* U+22AF +%* \textnVDash -> \nrightModels (MnSymbol) +% U+22B2 NORMAL SUBGROUP OF; \lhd (latexsym, ...) +\DeclareTextCommand{\textlhd}{PU}{\9042\262}%* U+22B2 +%* \textlhd -> \lessclosed (MnSymbol) +% U+22B3 CONTAINS AS NORMAL SUBGROUP; \rhd (latexsym, ...) +\DeclareTextCommand{\textrhd}{PU}{\9042\263}%* U+22B3 +%* \textrhd -> \gtrclosed (MnSymbol) +% U+22B4 NORMAL SUBGROUP OF OR EQUAL TO; \unlhd (latexsym, ...) +\DeclareTextCommand{\textunlhd}{PU}{\9042\264}%* U+22B4 +%* \textunlhd -> \leqclosed (MnSymbol) +%* \textunlhd -> \trianglelefteq (MnSymbol) +% U+22B5 CONTAINS AS NORMAL SUBGROUP OR EQUAL TO; \unrhd (latexsym, ...) +\DeclareTextCommand{\textunrhd}{PU}{\9042\265}%* U+22B5 +%* \textunrhd -> \geqclosed (MnSymbol) +%* \textunrhd -> \trianglerighteq (MnSymbol) +% U+22B6 ORIGINAL OF; \multimapdotbothA (txfonts/pxfonts) +\DeclareTextCommand{\textmultimapdotbothA}{PU}{\9042\266}%* U+22B6 +% U+22B7 IMAGE OF; \multimapdotbothB (txfonts/pxfonts) +\DeclareTextCommand{\textmultimapdotbothB}{PU}{\9042\267}%* U+22B7 +% U+22B8 MULTIMAP; \multimap (AmS, txfonts/pxfonts) +\DeclareTextCommand{\textmultimap}{PU}{\9042\270}%* U+22B8 +% U+22BB XOR; \veebar (AmS) +\DeclareTextCommand{\textveebar}{PU}{\9042\273}%* U+22BB +% U+22BC NAND; \barwedge (mathabx) +\DeclareTextCommand{\textbarwedge}{PU}{\9042\274}%* U+22BC +% U+22C6 STAR OPERATOR; \star (LaTeX) +\DeclareTextCommand{\textstar}{PU}{\9042\306}%* U+22C6 +% U+22C7 DIVISION TIMES; \divideontimes (AmS) +\DeclareTextCommand{\textdivideontimes}{PU}{\9042\307}%* U+22C7 +% U+22C8 BOWTIE; \bowtie (LaTeX) +\DeclareTextCommand{\textbowtie}{PU}{\9042\310}%* U+22C8 +%* \textbowtie -> \Bowtie (wasysym) +% U+22C9 LEFT NORMAL FACTOR SEMIDIRECT PRODUCT; \ltimes (AmS) +\DeclareTextCommand{\textltimes}{PU}{\9042\311}%* U+22C9 +% U+22CA RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT; +% \rtimes (AmS) +\DeclareTextCommand{\textrtimes}{PU}{\9042\312}%* U+22CA +% U+22CB LEFT SEMIDIRECT PRODUCT; \leftthreetimes (AmS) +\DeclareTextCommand{\textleftthreetimes}{PU}{\9042\313}%* U+22CB +% U+22CC RIGHT SEMIDIRECT PRODUCT; \rightthreetimes (AmS) +\DeclareTextCommand{\textrightthreetimes}{PU}{\9042\314}%* U+22CC +% U+22CD REVERSED TILDE EQUALS; \backsimeq (AmS) +\DeclareTextCommand{\textbacksimeq}{PU}{\9042\315}%* U+22CD +% \nbacksimeq (txfonts/pxfonts) +\DeclareTextCommand{\textnbacksimeq}{PU}{\9042\315\83\070}%* U+22CD U+0338 +% U+22CE CURLY LOGICAL OR; curlyor; \curlyvee (AmS) +\DeclareTextCommand{\textcurlyvee}{PU}{\9042\316}%* U+22CE +%* \textcurlyvee -> \varcurlyvee (stmaryrd) +% U+22CF CURLY LOGICAL AND; curlyand; \curlywedge (AmS) +\DeclareTextCommand{\textcurlywedge}{PU}{\9042\317}%* U+22CF +%* \textcurlywedge -> \varcurlywedge (stmaryrd) +% U+22D0 DOUBLE SUBSET; \Subset (AmS) +\DeclareTextCommand{\textSubset}{PU}{\9042\320}%* U+22D0 +% \nSubset (txfonts/pxfonts) +\DeclareTextCommand{\textnSubset}{PU}{\9042\320\83\070}%* U+22D0 U+0338 +% U+22D1 DOUBLE SUPERSET; \Supset (AmS) +\DeclareTextCommand{\textSupset}{PU}{\9042\321}%* U+22D1 +% \nSupset (txfonts/pxfonts) +\DeclareTextCommand{\textnSupset}{PU}{\9042\321\83\070}%* U+22D1 U+0338 +% U+22D2 DOUBLE INTERSECTION; \Cap (AmS) +\DeclareTextCommand{\textCap}{PU}{\9042\322}%* U+22D2 +%* \textCap -> \doublecap (mathabx) +% U+22D3 DOUBLE UNION; \Cup (AmS) +\DeclareTextCommand{\textCup}{PU}{\9042\323}%* U+22D3 +%* \textCup -> \doublecup (mathabx) +% U+22D4 PITCHFORK; \pitchfork (mathabx) +\DeclareTextCommand{\textpitchfork}{PU}{\9042\324}%* U+22D4 +% U+22D6 LESS-THAN WITH DOT; \lessdot (AmS) +\DeclareTextCommand{\textlessdot}{PU}{\9042\326}%* U+22D6 +% U+22D7 GREATER-THAN WITH DOT; \gtrdot (AmS) +\DeclareTextCommand{\textgtrdot}{PU}{\9042\327}%* U+22D7 +% U+22D8 VERY MUCH LESS-THAN; \lll (AmS) +\DeclareTextCommand{\textlll}{PU}{\9042\330}%* U+22D8 +% U+22D9 VERY MUCH GREATER-THAN; \ggg (AmS) +\DeclareTextCommand{\textggg}{PU}{\9042\331}%* U+22D9 +% U+22DA LESS-THAN EQUAL TO OR GREATER-THAN; lessequalorgreater; +% \lesseqgtr (AmS) +\DeclareTextCommand{\textlesseqgtr}{PU}{\9042\332}%* U+22DA +% U+22DB GREATER-THAN EQUAL TO OR LESS-THAN; greaterequalorless; +% \gtreqless (AmS) +\DeclareTextCommand{\textgtreqless}{PU}{\9042\333}%* U+22DB +% U+22DE EQUAL TO OR PRECEDES; \curlyeqprec (MnSymbol) +\DeclareTextCommand{\textcurlyeqprec}{PU}{\9042\336}%* U+22DE +% \ncurlyeqprec (mathabx) +\DeclareTextCommand{\textncurlyeqprec}{PU}{\9042\336\83\070}%* U+22DE U+0338 +% U+22DF EQUAL TO OR SUCCEEDS; \curlyeqsucc (MnSymbol) +\DeclareTextCommand{\textcurlyeqsucc}{PU}{\9042\337}%* U+22DF +% \ncurlyeqsucc (mathabx) +\DeclareTextCommand{\textncurlyeqsucc}{PU}{\9042\337\83\070}%* U+22DF U+0338 +% U+22E0 DOES NOT PRECEDE OR EQUAL; \npreccurlyeq (txfonts/pxfonts) +\DeclareTextCommand{\textnpreccurlyeq}{PU}{\9042\340}%* U+22E0 +% U+22E1 DOES NOT SUCCEED OR EQUAL; \nsucccurlyeq (txfonts/pxfonts) +\DeclareTextCommand{\textnsucccurlyeq}{PU}{\9042\341}%* U+22E1 +% U+22E2 NOT SQUARE IMAGE OF OR EQUAL TO; \nsqsubseteq (txfonts/pxfonts) +\DeclareTextCommand{\textnqsubseteq}{PU}{\9042\342}%* U+22E2 +% U+22E3 NOT SQUARE ORIGINAL OF OR EQUAL TO; \nsqsupseteq (txfonts/pxfonts) +\DeclareTextCommand{\textnqsupseteq}{PU}{\9042\343}%* U+22E3 +% U+22E4 SQUARE IMAGE OF OR NOT EQUAL TO; \sqsubsetneq (mathabx) +\DeclareTextCommand{\textsqsubsetneq}{PU}{\9042\344}%* U+22E4 +%* \textsqsubsetneq -> \varsqsubsetneq (mathabx) +% U+22E5 SQUARE ORIGINAL OF OR NOT EQUAL TO; \sqsupsetneq (mathabx) +\DeclareTextCommand{\textsqsupsetneq}{PU}{\9042\345}%* U+22E5 +%* \textsqsupsetneq -> \varsqsupsetneq (mathabx) +% U+22E6 LESS-THAN BUT NOT EQUIVALENT TO; \lnsim (AmS) +\DeclareTextCommand{\textlnsim}{PU}{\9042\346}%* U+22E6 +% U+22E7 GREATER-THAN BUT NOT EQUIVALENT TO; \gnsim (AmS) +\DeclareTextCommand{\textgnsim}{PU}{\9042\347}%* U+22E7 +% U+22E8 PRECEDES BUT NOT EQUIVALENT TO; \precnsim (AmS) +\DeclareTextCommand{\textprecnsim}{PU}{\9042\350}%* U+22E8 +% U+22E9 SUCCEEDS BUT NOT EQUIVALENT TO; \succnsim (AmS) +\DeclareTextCommand{\textsuccnsim}{PU}{\9042\351}%* U+22E9 +% U+22EA NOT NORMAL SUBGROUP OF; \ntriangleleft (AmS) +\DeclareTextCommand{\textntriangleleft}{PU}{\9042\352}%* U+22EA +%* \textntriangleleft -> \nlessclosed (MnSymbol) +% U+22EB DOES NOT CONTAIN AS NORMAL SUBGROUP; \ntriangleright (AmS) +\DeclareTextCommand{\textntriangleright}{PU}{\9042\353}%* U+22EB +%* \textntriangleright -> \ngtrclosed (MnSymbol) +% U+22EC NOT NORMAL SUBGROUP OF OR EQUAL TO; +% \ntrianglelefteq (AmS) +\DeclareTextCommand{\textntrianglelefteq}{PU}{\9042\354}%* U+22EC +% U+22ED DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL; +% \ntrianglerighteq (AmS) +\DeclareTextCommand{\textntrianglerighteq}{PU}{\9042\355}%* U+22ED +%* \textntrianglerighteq -> textngeqclosed +% U+22EE VERTICAL ELLIPSIS; ellipsisvertical; \vdots (LaTeX) +\DeclareTextCommand{\textvdots}{PU}{\9042\356}%* U+22EE +% U+22EF MIDLINE HORIZONTAL ELLIPSIS; \cdots (LaTeX) +\DeclareTextCommand{\textcdots}{PU}{\9042\357}%* U+22EF +% U+22F0 UP RIGHT DIAGONAL ELLIPSIS; \udots (MnSymbol) +\DeclareTextCommand{\textudots}{PU}{\9042\360}%* U+22F0 +% U+22F1 DOWN RIGHT DIAGONAL ELLIPSIS; \ddots (LaTeX) +\DeclareTextCommand{\textddots}{PU}{\9042\361}%* U+22F1 +% U+22F6 ELEMENT OF WITH OVERBAR; \barin (mathabx) +\DeclareTextCommand{\textbarin}{PU}{\9042\366}%* U+22F6 +% \end{macrocode} +% +% \subsubsection{Miscellaneous Technical: U+2300 to U+23FF} +% +% \begin{macrocode} +% U+2300 DIAMETER SIGN; \diameter (mathabx,wasysym) +\DeclareTextCommand{\textdiameter}{PU}{\9043\000}%* U+2300 +% U+2310 REVERSED NOT SIGN; \backneg (MnSymbol) +\DeclareTextCommand{\textbackneg}{PU}{\9043\020}%* U+2310 +% U+2311 SQUARE LOZENGE; \wasylozenge (wasysym) +\DeclareTextCommand{\textwasylozenge}{PU}{\9043\021}%* U+2311 +% U+2319 TURNED NOT SIGN; \invbackneg (MnSymbol) +\DeclareTextCommand{\textinvbackneg}{PU}{\9043\031}%* U+2319 +% U+231A WATCH; \clock (wasysym) +\DeclareTextCommand{\textclock}{PU}{\9043\032}%* U+231A +%* \textclock -> \Clocklogo (marvosym) +%* \textclock -> \ClockLogo (marvosym) +% U+231C TOP LEFT CORNER; \ulcorner (AmS) +\DeclareTextCommand{\textulcorner}{PU}{\9043\034}%* U+231C +% U+231D TOP RIGHT CORNER; \urcorner (AmS) +\DeclareTextCommand{\texturcorner}{PU}{\9043\035}%* U+231D +% U+231E BOTTOM LEFT CORNER; \llcorner (AmS) +\DeclareTextCommand{\textllcorner}{PU}{\9043\036}%* U+231E +% U+231F BOTTOM RIGHT CORNER; \lrcorner (AmS) +\DeclareTextCommand{\textlrcorner}{PU}{\9043\037}%* U+231F +% U+2322 FROWN; \frown (LaTeX) +\DeclareTextCommand{\textfrown}{PU}{\9043\042}%* U+2322 +% U+2323 SMILE; \smile (LaTeX) +\DeclareTextCommand{\textsmile}{PU}{\9043\043}%* U+2323 +% U+2328 KEYBOARD; \Keyboard (marvosym) +\DeclareTextCommand{\textKeyboard}{PU}{\9043\050}%* U+2328 +% U+2329 LEFT-POINTING ANGLE BRACKET; angleleft; \langle (LaTeX) +\DeclareTextCommand{\textlangle}{PU}{\9043\051}%* U+2329 +% U+232A RIGHT-POINTING ANGLE BRACKET; angleright; \rangle (LaTeX) +\DeclareTextCommand{\textrangle}{PU}{\9043\052}%* U+232A +% U+2339 APL FUNCTIONAL SYMBOL QUAD DIVIDE; \APLinv (wasysym) +\DeclareTextCommand{\textAPLinv}{PU}{\9043\071}%* U+2339 +% U+233C APL FUNCTIONAL SYMBOL QUAD CIRCLE; \Tumbler (marvosym) +\DeclareTextCommand{\textTumbler}{PU}{\9043\074}%* U+233C +% U+233D APL FUNCTIONAL SYMBOL CIRCLE STILE; \baro (stmaryrd) +\DeclareTextCommand{\textstmaryrdbaro}{PU}{\9043\075}% U+233D +%* \textstmaryrdbaro -> \baro (stmaryrd) +% U+233F APL FUNCTIONAL SYMBOL SLASH BAR; \notslash (wasysym) +\DeclareTextCommand{\textnotslash}{PU}{\9043\077}%* U+233F +% U+2340 APL FUNCTIONAL SYMBOL BACKSLASH BAR; +% \notbackslash (wasysym) +\DeclareTextCommand{\textnotbackslash}{PU}{\9043\100}%* U+2340 +% U+2342 APL FUNCTIONAL SYMBOL QUAD BACKSLASH; \boxbackslash (mathabx) +\DeclareTextCommand{\textboxbackslash}{PU}{\9043\102}%* U+2342 +% U+2347 APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW; +% \APLleftarrowbox (wasysym) +\DeclareTextCommand{\textAPLleftarrowbox}{PU}{\9043\107}%* U+2347 +% U+2348 APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW; +% \APLrightarrowbox (wasysym) +\DeclareTextCommand{\textAPLrightarrowbox}{PU}{\9043\110}%* U+2348 +% U+2350 APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW; \APLuparrowbox (wasysym) +\DeclareTextCommand{\textAPLuparrowbox}{PU}{\9043\120}%* U+2350 +% U+2357 APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW; +% \APLdownarrowbox (wasysym) +\DeclareTextCommand{\textAPLdownarrowbox}{PU}{\9043\127}%* U+2357 +% U+235E APL FUNCTIONAL SYMBOL QUOTE QUAD; +% \APLinput (wasysym) +\DeclareTextCommand{\textAPLinput}{PU}{\9043\136}%* U+235E +% U+2370 APL FUNCTIONAL SYMBOL QUAD QUESTION; \Request (china2e) +\DeclareTextCommand{\textRequest}{PU}{\9043\160}%* U+2370 +% U+2393 DIRECT CURRENT SYMBOL FORM TWO; \Beam (marvosym) +\DeclareTextCommand{\textBeam}{PU}{\9043\223}%* U+2393 +% U+2394 SOFTWARE-FUNCTION SYMBOL; \hexagon (wasysym) +\DeclareTextCommand{\texthexagon}{PU}{\9043\224}%* U+2394 +% U+2395 APL FUNCTIONAL SYMBOL QUAD; \APLbox (wasysym) +\DeclareTextCommand{\textAPLbox}{PU}{\9043\225}%* U+2395 +% U+23ED BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR; +% \ForwardToIndex (marvosym) +\DeclareTextCommand{\textForwardToIndex}{PU}{\9043\355}%* U+23ED +% U+23EE BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR; +% \RewindToIndex (marvosym) +\DeclareTextCommand{\textRewindToIndex}{PU}{\9043\356}%* U+23EE +% \end{macrocode} +% +% \subsubsection{Control Pictures: U+2400 to U+243F} +% +% \begin{macrocode} +% U+2422 BLANK SYMBOL +\DeclareTextCommand{\textblank}{PU}{\9044\042}% U+2422 +% U+2423 OPEN BOX; blank +\DeclareTextCommand{\textvisiblespace}{PU}{\9044\043}% U+2423 +% \end{macrocode} +% +% \subsubsection{Optical Character Recognition: U+2440 to U+245F} +% +% \begin{macrocode} +% U+244A OCR DOUBLE BACKSLASH; \bbslash (stmaryrd) +\DeclareTextCommand{\textbbslash}{PU}{\9044\112}%* U+244A +%* \textbbslash -> \varparallelinv (txfonts/pxfonts) +% \end{macrocode} +% +% \subsubsection{Enclosed Alphanumerics: U+2460 to U+24FF} +% +% \begin{macrocode} +% U+2460 CIRCLED DIGIT ONE; onecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{1}{\9044\140}% U+2460 +% U+2461 CIRCLED DIGIT TWO; twocircle +\DeclareTextCompositeCommand{\textcircled}{PU}{2}{\9044\141}% U+2461 +% U+2462 CIRCLED DIGIT THREE; threecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{3}{\9044\142}% U+2462 +% U+2463 CIRCLED DIGIT FOUR; fourcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{4}{\9044\143}% U+2463 +% U+2464 CIRCLED DIGIT FIVE; fivecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{5}{\9044\144}% U+2464 +% U+2465 CIRCLED DIGIT SIX; sixcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{6}{\9044\145}% U+2465 +% U+2466 CIRCLED DIGIT SEVEN; sevencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{7}{\9044\146}% U+2466 +% U+2467 CIRCLED DIGIT EIGHT; eightcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{8}{\9044\147}% U+2467 +% U+2468 CIRCLED DIGIT NINE; ninecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{9}{\9044\150}% U+2468 +% U+2469 CIRCLED NUMBER TEN; tencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{10}{\9044\151}% U+2469 +% U+246A CIRCLED NUMBER ELEVEN; elevencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{11}{\9044\152}% U+246A +% U+246B CIRCLED NUMBER TWELVE; twelvecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{12}{\9044\153}% U+246B +% U+246C CIRCLED NUMBER THIRTEEN; thirteencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{13}{\9044\154}% U+246C +% U+246D CIRCLED NUMBER FOURTEEN; fourteencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{14}{\9044\155}% U+246D +% U+246E CIRCLED NUMBER FIFTEEN; fifteencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{15}{\9044\156}% U+246E +% U+246F CIRCLED NUMBER SIXTEEN; sixteencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{16}{\9044\157}% U+246F +% U+2470 CIRCLED NUMBER SEVENTEEN; seventeencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{17}{\9044\160}% U+2470 +% U+2471 CIRCLED NUMBER EIGHTEEN; eighteencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{18}{\9044\161}% U+2471 +% U+2472 CIRCLED NUMBER NINETEEN; nineteencircle +\DeclareTextCompositeCommand{\textcircled}{PU}{19}{\9044\162}% U+2472 +% U+2473 CIRCLED NUMBER TWENTY; twentycircle +\DeclareTextCompositeCommand{\textcircled}{PU}{20}{\9044\163}% U+2473 +% U+24B6 CIRCLED LATIN CAPITAL LETTER A; Acircle +\DeclareTextCompositeCommand{\textcircled}{PU}{A}{\9044\266}% U+24B6 +% \CircledA (marvosym) +\DeclareTextCommand{\textCircledA}{PU}{\9044\266}%* U+24B6 +%* \textCircledA -> \CleaningA +% U+24B7 CIRCLED LATIN CAPITAL LETTER B; Bcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{B}{\9044\267}% U+24B7 +% U+24B8 CIRCLED LATIN CAPITAL LETTER C; Ccircle +\DeclareTextCompositeCommand{\textcircled}{PU}{C}{\9044\270}% U+24B8 +% U+24B9 CIRCLED LATIN CAPITAL LETTER D; Dcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{D}{\9044\271}% U+24B9 +% U+24BA CIRCLED LATIN CAPITAL LETTER E; Ecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{E}{\9044\272}% U+24BA +% U+24BB CIRCLED LATIN CAPITAL LETTER F; Fcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{F}{\9044\273}% U+24BB +% \CleaningF (marvosym) +\DeclareTextCommand{\textCleaningF}{PU}{\9044\273}%* U+24BB +% \CleaningFF (marvosym) +\DeclareTextCommand{\textCleaningFF}{PU}{\9044\273\83\062}%* U+24BB U+0332 +% U+24BC CIRCLED LATIN CAPITAL LETTER G; Gcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{G}{\9044\274}% U+24BC +% U+24BD CIRCLED LATIN CAPITAL LETTER H; Hcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{H}{\9044\275}% U+24BD +% U+24BE CIRCLED LATIN CAPITAL LETTER I; Icircle +\DeclareTextCompositeCommand{\textcircled}{PU}{I}{\9044\276}% U+24BE +% U+24BF CIRCLED LATIN CAPITAL LETTER J; Jcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{J}{\9044\277}% U+24BF +% U+24C0 CIRCLED LATIN CAPITAL LETTER K; Kcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{K}{\9044\300}% U+24C0 +% U+24C1 CIRCLED LATIN CAPITAL LETTER L; Lcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{L}{\9044\301}% U+24C1 +% U+24C2 CIRCLED LATIN CAPITAL LETTER M; Mcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{M}{\9044\302}% U+24C2 +% U+24C3 CIRCLED LATIN CAPITAL LETTER N; Ncircle +\DeclareTextCompositeCommand{\textcircled}{PU}{N}{\9044\303}% U+24C3 +% U+24C4 CIRCLED LATIN CAPITAL LETTER O; Ocircle +\DeclareTextCompositeCommand{\textcircled}{PU}{O}{\9044\304}% U+24C4 +% U+24C5 CIRCLED LATIN CAPITAL LETTER P; Pcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{P}{\9044\305}% U+24C5 +% \CleaningP (marvosym) +\DeclareTextCommand{\textCleaningP}{PU}{\9044\305}%* U+24C5 +% \CleaningPP (marvosym) +\DeclareTextCommand{\textCleaningPP}{PU}{\9044\305\83\062}%* U+24C5 U+0332 +% U+24C6 CIRCLED LATIN CAPITAL LETTER Q; Qcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{Q}{\9044\306}% U+24C6 +% U+24C7 CIRCLED LATIN CAPITAL LETTER R; Rcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{R}{\9044\307}% U+24C7 +% U+24C8 CIRCLED LATIN CAPITAL LETTER S; Scircle +\DeclareTextCompositeCommand{\textcircled}{PU}{S}{\9044\310}% U+24C8 +% U+24C9 CIRCLED LATIN CAPITAL LETTER T; Tcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{T}{\9044\311}% U+24C9 +% U+24CA CIRCLED LATIN CAPITAL LETTER U; Ucircle +\DeclareTextCompositeCommand{\textcircled}{PU}{U}{\9044\312}% U+24CA +% U+24CB CIRCLED LATIN CAPITAL LETTER V; Vcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{V}{\9044\313}% U+24CB +% U+24CC CIRCLED LATIN CAPITAL LETTER W; Wcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{W}{\9044\314}% U+24CC +% U+24CD CIRCLED LATIN CAPITAL LETTER X; Xcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{X}{\9044\315}% U+24CD +% U+24CE CIRCLED LATIN CAPITAL LETTER Y; Ycircle +\DeclareTextCompositeCommand{\textcircled}{PU}{Y}{\9044\316}% U+24CE +% U+24CF CIRCLED LATIN CAPITAL LETTER Z; Zcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{Z}{\9044\317}% U+24CF +% U+24D0 CIRCLED LATIN SMALL LETTER A; acircle +\DeclareTextCompositeCommand{\textcircled}{PU}{a}{\9044\320}% U+24D0 +% U+24D1 CIRCLED LATIN SMALL LETTER B; bcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{b}{\9044\321}% U+24D1 +% U+24D2 CIRCLED LATIN SMALL LETTER C; ccircle +\DeclareTextCompositeCommand{\textcircled}{PU}{c}{\9044\322}% U+24D2 +% U+24D3 CIRCLED LATIN SMALL LETTER D; dcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{d}{\9044\323}% U+24D3 +% U+24D4 CIRCLED LATIN SMALL LETTER E; ecircle +\DeclareTextCompositeCommand{\textcircled}{PU}{e}{\9044\324}% U+24D4 +% U+24D5 CIRCLED LATIN SMALL LETTER F; fcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{f}{\9044\325}% U+24D5 +% U+24D6 CIRCLED LATIN SMALL LETTER G; gcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{g}{\9044\326}% U+24D6 +% U+24D7 CIRCLED LATIN SMALL LETTER H; hcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{h}{\9044\327}% U+24D7 +% U+24D8 CIRCLED LATIN SMALL LETTER I; icircle +\DeclareTextCompositeCommand{\textcircled}{PU}{i}{\9044\330}% U+24D8 +% U+24D9 CIRCLED LATIN SMALL LETTER J; jcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{j}{\9044\331}% U+24D9 +% U+24DA CIRCLED LATIN SMALL LETTER K; kcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{k}{\9044\332}% U+24DA +% U+24DB CIRCLED LATIN SMALL LETTER L; lcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{l}{\9044\333}% U+24DB +% U+24DC CIRCLED LATIN SMALL LETTER M; mcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{m}{\9044\334}% U+24DC +% U+24DD CIRCLED LATIN SMALL LETTER N; ncircle +\DeclareTextCompositeCommand{\textcircled}{PU}{n}{\9044\335}% U+24DD +% U+24DE CIRCLED LATIN SMALL LETTER O; ocircle +\DeclareTextCompositeCommand{\textcircled}{PU}{o}{\9044\336}% U+24DE +% U+24DF CIRCLED LATIN SMALL LETTER P; pcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{p}{\9044\337}% U+24DF +% U+24E0 CIRCLED LATIN SMALL LETTER Q; qcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{q}{\9044\340}% U+24E0 +% U+24E1 CIRCLED LATIN SMALL LETTER R; rcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{r}{\9044\341}% U+24E1 +% U+24E2 CIRCLED LATIN SMALL LETTER S; scircle +\DeclareTextCompositeCommand{\textcircled}{PU}{s}{\9044\342}% U+24E2 +% U+24E3 CIRCLED LATIN SMALL LETTER T; tcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{t}{\9044\343}% U+24E3 +% U+24E4 CIRCLED LATIN SMALL LETTER U; ucircle +\DeclareTextCompositeCommand{\textcircled}{PU}{u}{\9044\344}% U+24E4 +% U+24E5 CIRCLED LATIN SMALL LETTER V; vcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{v}{\9044\345}% U+24E5 +% U+24E6 CIRCLED LATIN SMALL LETTER W; wcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{w}{\9044\346}% U+24E6 +% U+24E7 CIRCLED LATIN SMALL LETTER X; xcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{x}{\9044\347}% U+24E7 +% U+24E8 CIRCLED LATIN SMALL LETTER Y; ycircle +\DeclareTextCompositeCommand{\textcircled}{PU}{y}{\9044\350}% U+24E8 +% U+24E9 CIRCLED LATIN SMALL LETTER Z; zcircle +\DeclareTextCompositeCommand{\textcircled}{PU}{z}{\9044\351}% U+24E9 +% U+24EA CIRCLED DIGIT ZERO +\DeclareTextCompositeCommand{\textcircled}{PU}{0}{\9044\352}% U+24EA +% \end{macrocode} +% +% \subsubsection{Box Drawing: U+2500 to 257F} +% +% \begin{macrocode} +% U+2504 BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL; \CuttingLine (marvosym) +\DeclareTextCommand{\textCuttingLine}{PU}{\9045\004}%* U+2504 +%* \textCuttingLine -> \Kutline (marvosym) +%* \textCuttingLine -> \CutLine (marvosym) +%* \textCuttingLine -> \Cutline (marvosym) +% \end{macrocode} +% +% \subsubsection{Geometric Shapes: U+25A0 to U+25FF} +% +% \begin{macrocode} +% U+25B2 BLACK UP-POINTING TRIANGLE; \UParrow (wasysym) +\DeclareTextCommand{\textUParrow}{PU}{\9045\262}%* U+25B2 +%* \textUParrow -> \MoveUp (marvosym) +% U+25B3 WHITE UP-POINTING TRIANGLE; whiteuppointingtriangle; +% \bigtriangleup (LaTeX) +\DeclareTextCommand{\textbigtriangleup}{PU}{\9045\263}%* U+25B3 +%* \textbigtriangleup -> \APLup (wasysym) +%* \textbigtriangleup -> \Bleech (marvosym) +% U+25B6 BLACK RIGHT-POINTING TRIANGLE; \Forward (marvosym) +\DeclareTextCommand{\textForward}{PU}{\9045\266}%* U+25B6 +% U+25B7 WHITE RIGHT-POINTING TRIANGLE (= z notation range restriction); +% whiterightpointingtriangle; \triangleright (LaTeX) +\DeclareTextCommand{\texttriangleright}{PU}{\9045\267}%* U+25B7 +% U+25BA BLACK RIGHT-POINTING POINTER; \RHD (wasysym) +\DeclareTextCommand{\textRHD}{PU}{\9045\272}%* U+25BA +% U+25BC BLACK DOWN-POINTING TRIANGLE; \DOWNarrow (wasysym) +\DeclareTextCommand{\textDOWNarrow}{PU}{\9045\274}%* U+25BC +%* \textDOWNarrow -> \MoveDown (marvosym) +% U+25BD WHITE DOWN-POINTING TRIANGLE; whitedownpointingtriangle; +% \bigtriangledown (LaTeX) +\DeclareTextCommand{\textbigtriangledown}{PU}{\9045\275}%* U+25BD +%* \textbigtriangledown -> \APLdown (wasysym) +% U+25C0 BLACK LEFT-POINTING TRIANGLE; \Rewind (marvosym) +\DeclareTextCommand{\textRewind}{PU}{\9045\300}%* U+25C0 +% U+25C1 WHITE RIGHT-POINTING TRIANGLE (= z notation domain restriction); +% whiteleftpointingtriangle; \triangleleft (LaTeX) +\DeclareTextCommand{\texttriangleleft}{PU}{\9045\301}%* U+25C1 +% U+25C4 BLACK LEFT-POINTING POINTER; \LHD (wasysym) +\DeclareTextCommand{\textLHD}{PU}{\9045\304}%* U+25C4 +% U+25C7 WHITE DIAMOND; whitediamond; \diamond (LaTeX) +\DeclareTextCommand{\textdiamond}{PU}{\9045\307}%* U+25C7 +%* \textdiamond -> \Diamond (wasysym) +% U+25CA LOZENGE; lozenge; \lozenge (AmS) +\DeclareTextCommand{\textlozenge}{PU}{\9045\312}%* U+25CA +% U+25D6 LEFT HALF BLACK CIRCLE; \LEFTCIRCLE (wasysym) +\DeclareTextCommand{\textLEFTCIRCLE}{PU}{\9045\326}%* U+25D6 +% U+25D7 RIGHT HALF BLACK CIRCLE; \RIGHTCIRCLE (wasysym) +\DeclareTextCommand{\textRIGHTCIRCLE}{PU}{\9045\327}%* U+25D7 +% U+25E6 WHITE BULLET; *openbullet, whitebullet +\DeclareTextCommand{\textopenbullet}{PU}{\9045\346}%* U+25E6 +% U+25EB WHITE SQUARE WITH VERTICAL BISECTING LINE; +% \boxbar (stmaryrd) +\DeclareTextCommand{\textboxbar}{PU}{\9045\353}%* U+25EB +% U+25EF LARGE CIRCLE; largecircle +\DeclareTextCommand{\textbigcircle}{PU}{\9045\357}%* U+25EF +%* \textbigcircle -> \varbigcirc (stmaryrd) +% +% \end{macrocode} +% +% \subsubsection{Miscellaneous Symbols: U+2600 to U+26FF} +% +% \begin{macrocode} +% U+2601 CLOUD; \Cloud (ifsym) +\DeclareTextCommand{\textCloud}{PU}{\9046\001}%* U+2601 +% U+2605 BLACK STAR; \FiveStar (bbding) +\DeclareTextCommand{\textFiveStar}{PU}{\9046\005}%* U+2605 +% U+2606 WHITE STAR; \FiveStarOpen (bbding) +\DeclareTextCommand{\textFiveStarOpen}{PU}{\9046\006}%* U+2606 +% U+260E BLACK TELEPHONE; telephoneblack; \Phone (bbding) +\DeclareTextCommand{\textPhone}{PU}{\9046\016}%* U+260E +%* \textPhone -> \Telefon (marvosym) +% U+2610 BALLOT BOX; \boxempty (stmaryrd) +\DeclareTextCommand{\textboxempty}{PU}{\9046\020}%* U+2610 +%* \textboxempty -> \Box (wasysym) +% U+2611 BALLOT BOX WITH CHECK; \Checkedbox (marvosym) +\DeclareTextCommand{\textCheckedbox}{PU}{\9046\021}%* U+2611 +%* \textCheckedbox -> \CheckedBox (marvosym) +% U+2612 BALLOT BOX WITH X; \Crossedbox (marvosym) +\DeclareTextCommand{\textCrossedbox}{PU}{\9046\022}%* U+2612 +%* \textCrossedbox -> \XBox (wasysym) +%* \textCrossedbox -> \CrossedBox (marvosym) +% U+2615 HOT BEVERAGE; \Coffeecup (marvosym) +\DeclareTextCommand{\textCoffeecup}{PU}{\9046\025}%* U+2615 +% U+261A BLACK LEFT POINTING INDEX; \HandCuffLeft (bbding) +\DeclareTextCommand{\textHandCuffLeft}{PU}{\9046\032}%* U+261A +% U+261B BLACK RIGHT POINTING INDEX; \HandCuffRight (bbding) +\DeclareTextCommand{\textHandCuffRight}{PU}{\9046\033}%* U+261B +% U+261C WHITE LEFT POINTING INDEX; \HandLeft (bbding) +\DeclareTextCommand{\textHandLeft}{PU}{\9046\034}%* U+261C +%* \textHandLeft -> \rightpointleft (fourier) +% U+261E WHITE RIGHT POINTING INDEX; \HandRight (bbding) +\DeclareTextCommand{\textHandRight}{PU}{\9046\036}%* U+261E +%* \textHandRight -> \leftpointright (fourier) +%* \textHandRight -> \PointingHand (marvosym) +%* \textHandRight -> \Pointinghand (marvosym) +% U+2622 RADIOACTIVE SIGN; \Radioactivity (marvosym) +\DeclareTextCommand{\textRadioactivity}{PU}{\9046\042}%* U+2622 +%* \textRadioactivity -> \Radiation (ifsym) +% U+2623 BIOHAZARD SIGN; \Biohazard (marvosym) +\DeclareTextCommand{\textBiohazard}{PU}{\9046\043}%* U+2623 +% U+2625 ANKH; \Ankh (marvosym) +\DeclareTextCommand{\textAnkh}{PU}{\9046\045}%* U+2625 +% U+262F YIN YANG; \YinYang (marvosym) +\DeclareTextCommand{\textYinYang}{PU}{\9046\057}%* U+262F +%* \textYinYang -> \Yinyang (marvosym) +%* \textYinYang -> \YingYang (marvosym) +%* \textYinYang -> \Yingyang (marvosym) +% U+2639 WHITE FROWNING FACE; \frownie (wasysym) +\DeclareTextCommand{\textfrownie}{PU}{\9046\071}%* U+2639 +%* \textfrownie -> \Frowny (marvosym) +% U+263A WHITE SMILING FACE; \smiley (wasysym) +\DeclareTextCommand{\textsmiley}{PU}{\9046\072}%* U+263A +%* \textsmiley -> \Smiley (marvosym) +% U+263B BLACK SMILING FACE; \blacksmiley (wasysym) +\DeclareTextCommand{\textblacksmiley}{PU}{\9046\073}%* U+263B +% U+263C WHITE SUN WITH RAYS; \sun (wasysym) +\DeclareTextCommand{\textsun}{PU}{\9046\074}%* U+263C +%* \textsun -> \Sun (marvosym) +% U+263D FIRST QUARTER MOON; \leftmoon (wasysym, mathabx) +\DeclareTextCommand{\textleftmoon}{PU}{\9046\075}%* U+263D +% U+263E LAST QUARTER MOON; \rightmoon (wasysym, mathabx) +\DeclareTextCommand{\textrightmoon}{PU}{\9046\076}%* U+263E +% U+263F MERCURY; \mercury (wasysym) +\DeclareTextCommand{\textmercury}{PU}{\9046\077}%* U+263F +%* \textmercury -> \Mercury (marvosym) +% U+2640 FEMALE SIGN; female; \female (wasysym) +\DeclareTextCommand{\textPUfemale}{PU}{\9046\100}% U+2640 +%* \textPUfemale -> \textfemale (tipx) +%* \textPUfemale -> \female (wasysym) +%* \textPUfemale -> \venus (wasysym) +%* \textPUfemale -> \Venus (marvosym) +%* \textPUfemale -> \Female (marvosym) +% U+2641 EARTH; \earth (wasysym) +\DeclareTextCommand{\textearth}{PU}{\9046\101}%* U+2641 +%* \textearth -> \Earth (marvosym) +% U+2642 MALE SIGN; male, mars; \male (wasysym) +\DeclareTextCommand{\textmale}{PU}{\9046\102}%* U+2642 +%* \textmale -> \mars (wasysym) +%* \textmale -> \Mars (marvosym) +%* \textmale -> \Male (marvosym) +% U+2643 JUPITER; \jupiter (wasysym) +\DeclareTextCommand{\textjupiter}{PU}{\9046\103}%* U+2643 +%* \textjupiter -> \Jupiter (marvosym) +% U+2644 SATURN; \saturn (wasysym) +\DeclareTextCommand{\textsaturn}{PU}{\9046\104}%* U+2644 +%* \textsaturn -> \Saturn (marvosym) +% U+2645 URANUS; \uranus (wasysym) +\DeclareTextCommand{\texturanus}{PU}{\9046\105}%* U+2645 +%* \texturanus -> \Uranus (marvosym) +% U+2646 NEPTUNE; \neptune (wasysym) +\DeclareTextCommand{\textneptune}{PU}{\9046\106}%* U+2646 +%* \textneptune -> \Neptune (marvosym) +% U+2647 PLUTO; \pluto (wasysym) +\DeclareTextCommand{\textpluto}{PU}{\9046\107}%* U+2647 +%* \textpluto -> \Pluto (marvosym) +% U+2648 ARIES; \aries (wasysym) +\DeclareTextCommand{\textaries}{PU}{\9046\110}%* U+2648 +%* \textaries -> \Aries (marvosym) +% U+2649 TAURUS; \taurus (wasysym) +\DeclareTextCommand{\texttaurus}{PU}{\9046\111}%* U+2649 +%* \texttaurus -> \Taurus (marvosym) +% U+264A GEMINI; \gemini (wasysym) +\DeclareTextCommand{\textgemini}{PU}{\9046\112}%* U+264A +%* \textgemini -> \Gemini (marvosym) +% U+264B CANCER; \cancer (wasysym) +\DeclareTextCommand{\textcancer}{PU}{\9046\113}%* U+264B +%* \textcancer -> \Cancer (marvosym) +% U+264C LEO; \leo (wasysym) +\DeclareTextCommand{\textleo}{PU}{\9046\114}%* U+264C +%* \textleo -> \Leo (marvosym) +% U+264D VIRGO; \virgo (wasysym) +\DeclareTextCommand{\textvirgo}{PU}{\9046\115}%* U+264D +%* \textvirgo -> \Virgo (marvosym) +% U+264E LIBRA; \libra (wasysym) +\DeclareTextCommand{\textlibra}{PU}{\9046\116}%* U+264E +%* \textlibra -> \Libra (marvosym) +% U+264F SCORPIO; \scorpio (wasysym) +\DeclareTextCommand{\textscorpio}{PU}{\9046\117}%* U+264F +%* \textscorpio -> \Scorpio (marvosym) +% U+2650 SAGITTARIUS; \sagittarius (wasysym) +\DeclareTextCommand{\textsagittarius}{PU}{\9046\120}%* U+2650 +%* \textsagittarius -> \Sagittarius (marvosym) +% U+2651 CAPRICORN; \capricornus (wasysym) +\DeclareTextCommand{\textcapricornus}{PU}{\9046\121}%* U+2651 +%* \textcapricornus -> \Capricorn (marvosym) +% U+2652 AQUARIUS; \aquarius (wasysym) +\DeclareTextCommand{\textaquarius}{PU}{\9046\122}%* U+2652 +%* \textaquarius -> \Aquarius (marvosym) +% U+2653 PISCES; \pisces (wasysym) +\DeclareTextCommand{\textpisces}{PU}{\9046\123}%* U+2653 +%* \textpisces -> \Pisces (marvosym) +% U+2660 BLACK SPADE SUIT; spade, spadesuitblack; \spadesuit (LaTeX) +\DeclareTextCommand{\textspadesuitblack}{PU}{\9046\140}% U+2660 +%* \textspadesuitblack -> \spadesuit (MnSymbol) +% U+2661 WHITE HEART SUIT; heartsuitwhite; \heartsuit (LaTeX) +\DeclareTextCommand{\textheartsuitwhite}{PU}{\9046\141}% U+2661 +%* \textheartsuitwhite -> \Heart (marvosym) +%* \textheartsuitwhite -> \heartsuit (MnSymbol) +% U+2662 WHITE DIAMOND SUIT; diamondsuitwhite; \diamondsuit (LaTeX) +\DeclareTextCommand{\textdiamondsuitwhite}{PU}{\9046\142}% U+2662 +%* \textdiamondsuitwhite -> \diamondsuit (MnSymbol) +% U+2663 BLACK CLUB SUIT; club, clubsuitblack; \clubsuit (LaTeX) +\DeclareTextCommand{\textclubsuitblack}{PU}{\9046\143}% U+2663 +%* \textclubsuitblack -> \clubsuit (MnSymbol) +% U+2664 WHITE SPADE SUIT; spadesuitwhite +\DeclareTextCommand{\textspadesuitwhite}{PU}{\9046\144}% U+2664 +% U+2665 BLACK HEART SUIT; heartsuitblack, heart +\DeclareTextCommand{\textheartsuitblack}{PU}{\9046\145}% U+2665 +% U+2666 BLACK DIAMOND SUIT; diamond +\DeclareTextCommand{\textdiamondsuitblack}{PU}{\9046\146}% U+2666 +% U+2667 WHITE CLUB SUIT; clubsuitwhite +\DeclareTextCommand{\textclubsuitwhite}{PU}{\9046\147}% U+2667 +% U+2669 QUARTER NOTE; quarternote; \quarternote (wasysym, arev) +\DeclareTextCommand{\textquarternote}{PU}{\9046\151}%* U+2669 +% U+266A EIGHTH NOTE; musicalnote; \textmusicalnote (textcomp) +\DeclareTextCommand{\textmusicalnote}{PU}{\9046\152}% U+266A +%* \textmusicalnote -> \eighthnote (wasysym, arev) +% U+266B BEAMED EIGHTH NOTES; eighthnotebeamed; \twonotes (wasysym) +\DeclareTextCommand{\texttwonotes}{PU}{\9046\153}%* U+266B +% U+266C BEAMED SIXTEENTH NOTES; beamedsixteenthnotes; \sixteenthnote (arev) +\DeclareTextCommand{\textsixteenthnote}{PU}{\9046\154}%* U+266C +% U+266D MUSIC FLAT SIGN; musicflatsign; \flat (LaTeX) +\DeclareTextCommand{\textflat}{PU}{\9046\155}%* U+266D +% U+266E MUSIC NATURAL SIGN; \natural (LaTeX) +\DeclareTextCommand{\textnatural}{PU}{\9046\156}%* U+266E +% U+266F MUSIC SHARP SIGN; musicsharpsign; \sharp (LaTeX) +\DeclareTextCommand{\textsharp}{PU}{\9046\157}%* U+266F +% U+2672 UNIVERSAL RECYCLING SYMBOL; \recycle (recycle) +\DeclareTextCommand{\textrecycle}{PU}{\9046\162}%* U+2672 +%* \textrecycle -> \Recycling (marvosym) +% U+267F WHEELCHAIR SYMBOL; \Wheelchair (marvosym) +\DeclareTextCommand{\textWheelchair}{PU}{\9046\177}%* U+267F +% U+2691 BLACK FLAG; \Flag (ifsym) +\DeclareTextCommand{\textFlag}{PU}{\9046\221}%* U+2691 +%* \textFlag -> \VarFlag (ifsym) +% U+2692 HAMMER AND PICK; \MineSign (marvosym) +\DeclareTextCommand{\textMineSign}{PU}{\9046\222}%* U+2692 +% U+2694 CROSSED SWORDS; \dsmilitary (dictsym) +\DeclareTextCommand{\textdsmilitary}{PU}{\9046\224}%* U+2694 +%* \textdsmilitary -> \textxswup (fourier) +% U+2695 STAFF OF AESCULAPIUS; \dsmedical (dictsym) +\DeclareTextCommand{\textdsmedical}{PU}{\9046\225}%* U+2695 +% U+2696 SCALES; \dsjuridical (dictsym) +\DeclareTextCommand{\textdsjuridical}{PU}{\9046\226}%* U+2696 +% U+2697 ALEMBIC; \dschemical (dictsym) +\DeclareTextCommand{\textdschemical}{PU}{\9046\227}%* U+2697 +% U+2698 FLOWER; \dsbiological (dictsym) +\DeclareTextCommand{\textdsbiological}{PU}{\9046\230}%* U+2698 +% U+269A STAFF OF HERMES; \dscommercial (dictsym) +\DeclareTextCommand{\textdscommercial}{PU}{\9046\232}%* U+269A +% U+269D OUTLINED WHITE STAR; \manstar (manfnt) +\DeclareTextCommand{\textmanstar}{PU}{\9046\235}%* U+269D +% U+26A0 WARNING SIGN; \danger (fourier) +\DeclareTextCommand{\textdanger}{PU}{\9046\240}%* U+26A0 +% U+26A2 DOUBLED FEMALE SIGN; \FemaleFemale (marvosym) +\DeclareTextCommand{\textFemaleFemale}{PU}{\9046\242}%* U+26A2 +% U+26A3 DOUBLED MALE SIGN; \MaleMale (marvosym) +\DeclareTextCommand{\textMaleMale}{PU}{\9046\243}%* U+26A3 +% U+26A4 INTERLOCKED FEMALE AND MALE SIGN; \FemaleMale (marvosym) +\DeclareTextCommand{\textFemaleMale}{PU}{\9046\244}%* U+26A4 +% U+26A5 MALE AND FEMALE SIGN; \Hermaphrodite (marvosym) +\DeclareTextCommand{\textHermaphrodite}{PU}{\9046\245}%* U+26A5 +% U+26AA MEDIUM WHITE CIRCLE; \Neural (marvosym) +\DeclareTextCommand{\textNeutral}{PU}{\9046\252}%* U+26AA +% U+26AD MARRIAGE SYMBOL +\DeclareTextCommand{\textmarried}{PU}{\9046\255}% U+26AD +% U+26AE DIVORCE SYMBOL +\DeclareTextCommand{\textdivorced}{PU}{\9046\256}% U+26AE +% U+26B2 NEUTER; \textuncrfemale (tipx) +\DeclareTextCommand{\textPUuncrfemale}{PU}{\9046\262}% U+26B2 +%* \textPUuncrfemale -> \textuncrfemale (tipx) +% U+26B9 SEXTILE; \hexstar (wasysym) +\DeclareTextCommand{\texthexstar}{PU}{\9046\271}%* U+26B9 +% U+26BD SOCCER BALL; \Football (marvosym) +\DeclareTextCommand{\textSoccerBall}{PU}{\9046\275}% U+26BD +%* \textSoccerBall -> \Football (marvosym) +% U+26C5 SUN BEHIND CLOUD; \SunCloud (ifsym) +\DeclareTextCommand{\textSunCload}{PU}{\9046\305}%* U+26C5 +% U+26C6 RAIN; \Rain (ifsym) +\DeclareTextCommand{\textRain}{PU}{\9046\306}%* U+26C6 +% U+26D4 NO ENTRY; \noway (fourier) +\DeclareTextCommand{\textnoway}{PU}{\9046\324}%* U+26D4 +% U+26F0 MOUNTAIN; \Mountain (ifsym) +\DeclareTextCommand{\textMountain}{PU}{\9046\360}%* U+26F0 +% U+26FA TENT; \Tent (ifsym) +\DeclareTextCommand{\textTent}{PU}{\9046\372}%* U+26FA +% \end{macrocode} +% +% \subsubsection{Dingbats: U+2700 to U+27BF} +% +% \begin{macrocode} +% U+2701 UPPER BLADE SCISSORS; \ScissorRightBrokenBottom (bbding) +\DeclareTextCommand{\textScissorRightBrokenBottom}{PU}{\9047\001}% U+2701 +%* \textScissorRightBrokenBottom -> \CutLeft (marvosym) +%* \textScissorRightBrokenBottom -> \Cutright (marvosym) +% U+2702 BLACK SCISSORS; \ScissorRight (bbding) +\DeclareTextCommand{\textScissorRight}{PU}{\9047\002}%* U+2702 +%* \textScissorRight -> \RightScissors (marvosym) +%* \textScissorRight -> \Leftscissors (marvosym) +% U+2703 LOWER BLADE SCISSORS; \ScissorRightBrokenTop (bbding) +\DeclareTextCommand{\textScissorRightBrokenTop}{PU}{\9047\003}%* U+2703 +% U+2704 WHITE SCISSORS; \ScissorHollowRight (bbding) +\DeclareTextCommand{\textScissorHollowRight}{PU}{\9047\004}%* U+2704 +% U+2706 TELEPHONE LOCATION SIGN; \PhoneHandset (bbding) +\DeclareTextCommand{\textPhoneHandset}{PU}{\9047\006}%* U+2706 +% U+2707 TAPE DRIVE; \Tape (bbding) +\DeclareTextCommand{\textTape}{PU}{\9047\007}%* U+2707 +% U+2708 AIRPLANE; \Plane (bbding) +\DeclareTextCommand{\textPlane}{PU}{\9047\010}%* U+2708 +% U+2709 ENVELOPE; \Envelope (bbding), +\DeclareTextCommand{\textEnvelope}{PU}{\9047\011}%* U+2709 +%* \textEnvelope -> \Letter (marvosym) +% U+270C VICTORY HAND; \Peace (bbding) +\DeclareTextCommand{\textPeace}{PU}{\9047\014}%* U+270C +% U+270D WRITING HAND; \WritingHand (marvosym) +\DeclareTextCommand{\textWritingHand}{PU}{\9047\015}%* U+270D +%* \textWritingHand -> \Writinghand (marvosym) +% U+270E LOWER RIGHT PENCIL; \PencilRightDown (bbding) +\DeclareTextCommand{\textPencilRightDown}{PU}{\9047\016}%* U+270E +% U+270F PENCIL; \PencilRight (bbding) +\DeclareTextCommand{\textPencilRight}{PU}{\9047\017}%* U+270F +% U+2710 UPPER RIGHT PENCIL; \PencilRightUp (bbding) +\DeclareTextCommand{\textPencilRightUp}{PU}{\9047\020}%* U+2710 +% U+2711 WHITE NIB; \NibRight (bbding) +\DeclareTextCommand{\textNibRight}{PU}{\9047\021}%* U+2711 +% U+2712 BLACK NIB; \NibSolidRight (bbding) +\DeclareTextCommand{\textNibSolidRight}{PU}{\9047\022}%* U+2712 +% U+2713 CHECK MARK; checkmark; \Checkmark (bbding) +\DeclareTextCommand{\textCheckmark}{PU}{\9047\023}%* U+2713 +%* \textCheckmark -> \checkmark (MnSymbol) +% U+2714 HEAVY CHECK MARK; \CheckmarkBold (bbding) +\DeclareTextCommand{\textCheckmarkBold}{PU}{\9047\024}%* U+2714 +% U+2715 MULTIPLICATION X; \XSolid (bbding) +\DeclareTextCommand{\textXSolid}{PU}{\9047\025}%* U+2715 +% U+2716 HEAVY MULTIPLICATION X; \XSolidBold (bbding) +\DeclareTextCommand{\textXSolidBold}{PU}{\9047\026}%* U+2716 +% U+2717 BALLOT X; \XSolidBrush (bbding) +\DeclareTextCommand{\textXSolidBrush}{PU}{\9047\027}%* U+2717 +% U+2719 OUTLINED GREEK CROSS; \PlusOutline (bbding) +\DeclareTextCommand{\textPlusOutline}{PU}{\9047\031}%* U+2719 +% U+271A HEAVY GREEK CROSS; \Plus (bbding) +\DeclareTextCommand{\textPlus}{PU}{\9047\032}%* U+271A +% U+271B OPEN CENTRE CROSS; \PlusThinCenterOpen (bbding) +\DeclareTextCommand{\textPlusThinCenterOpen}{PU}{\9047\033}%* U+271B +% U+271C HEAVY OPEN CENTRE CROSS; \PlusCenterOpen (bbding) +\DeclareTextCommand{\textPlusCenterOpen}{PU}{\9047\034}%* U+271C +% U+271D LATIN CROSS; \Cross (bbding) +\DeclareTextCommand{\textCross}{PU}{\9047\035}%* U+271D +% U+271E SHADOWED WHITE LATIN CROSS; \CrossOpenShadow (bbding) +\DeclareTextCommand{\textCrossOpenShadow}{PU}{\9047\036}%* U+271E +% U+271F OUTLINED LATIN CROSS; \CrossOutline (bbding) +\DeclareTextCommand{\textCrossOutline}{PU}{\9047\037}%* U+271F +% U+2720 MALTESE CROSS; \CrossMaltese (bbding) +\DeclareTextCommand{\textCrossMaltese}{PU}{\9047\040}%* U+2720 +% U+2721 STAR OF DAVID; \DavidStar (bbding) +\DeclareTextCommand{\textDavidStar}{PU}{\9047\041}%* U+2721 +%* \textDavidStar -> \davidstar (wasysym) +% U+2722 FOUR TEARDROP-SPOKED ASTERISK; \FourAsterisk (bbding) +\DeclareTextCommand{\textFourAsterisk}{PU}{\9047\042}%* U+2722 +% U+2723 FOUR BALLOON-SPOKED ASTERISK; \JackStar (bbding) +\DeclareTextCommand{\textJackStar}{PU}{\9047\043}%* U+2723 +% U+2724 HEAVY FOUR BALLOON-SPOKED ASTERISK; \JackStarBold (bbding) +\DeclareTextCommand{\textJackStarBold}{PU}{\9047\044}%* U+2724 +% U+2725 FOUR CLUB-SPOKED ASTERISK; \CrossClowerTips (bbding) +\DeclareTextCommand{\textClowerTips}{PU}{\9047\045}%* U+2725 +% U+2726 BLACK FOUR POINTED STAR; \FourStar (bbding) +\DeclareTextCommand{\textFourStar}{PU}{\9047\046}%* U+2726 +% U+2727 WHITE FOUR POINTED STAR; \FourStarOpen (bbding) +\DeclareTextCommand{\textFourStarOpen}{PU}{\9047\047}%* U+2727 +% U+272A CIRCLED WHITE STAR; \FiveStarOpenCircled (bbding) +\DeclareTextCommand{\textFiveStarOpenCircled}{PU}{\9047\052}%* U+272A +% U+272B OPEN CENTRE BLACK STAR; \FiveStarCenterOpen (bbding) +\DeclareTextCommand{\textFiveStarCenterOpen}{PU}{\9047\053}%* U+272B +% U+272C BLACK CENTRE WHITE STAR; \FiveStarOpenDotted (bbding) +\DeclareTextCommand{\textFiveStarOpenDotted}{PU}{\9047\054}%* U+272C +% U+272D OUTLINED BLACK STAR; \FiveStarOutline (bbding) +\DeclareTextCommand{\textFiveStarOutline}{PU}{\9047\055}%* U+272D +% U+272E HEAVY OUTLINED BLACK STAR; \FiveStarOutlineHeavy (bbding) +\DeclareTextCommand{\textFiveStarOutlineHeavy}{PU}{\9047\056}%* U+272E +% U+272F PINWHEEL STAR; \FiveStarConvex (bbding) +\DeclareTextCommand{\textFiveStarConvex}{PU}{\9047\057}%* U+272F +% U+2730 SHADOWED WHITE STAR; \FiveStarShadow (bbding) +\DeclareTextCommand{\textFiveStarShadow}{PU}{\9047\060}%* U+2730 +% U+2731 HEAVY ASTERISK; \AsteriskBold (bbding) +\DeclareTextCommand{\textAsteriskBold}{PU}{\9047\061}%* U+2731 +% U+2732 OPEN CENTRE ASTERISK; \AsteriskCenterOpen (bbding) +\DeclareTextCommand{\textAsteriskCenterOpen}{PU}{\9047\062}%* U+2732 +% U+2734 EIGHT POINTED BLACK STAR; \EightStarTaper (bbding) +\DeclareTextCommand{\textEightStarTaper}{PU}{\9047\064}%* U+2734 +% U+2735 EIGHT POINTED PINWHEEL STAR; \EightStarConvex (bbding) +\DeclareTextCommand{\textEightStarConvex}{PU}{\9047\065}%* U+2735 +% U+2736 SIX POINTED BLACK STAR; \SixStar (bbding) +\DeclareTextCommand{\textSixStar}{PU}{\9047\066}%* U+2736 +% U+2737 EIGHT POINTED RECTILINEAR BLACK STAR; \EightStar (bbding) +\DeclareTextCommand{\textEightStar}{PU}{\9047\067}%* U+2737 +% U+2738 HEAVY EIGHT POINTED RECTILINEAR BLACK STAR; \EightStarBold (bbding) +\DeclareTextCommand{\textEightStarBold}{PU}{\9047\070}%* U+2738 +% U+2739 TWELVE POINTED BLACK STAR; \TwelveStar (bbding) +\DeclareTextCommand{\textTwelveStar}{PU}{\9047\071}%* U+2739 +% U+273A SIXTEEN POINTED ASTERISK; \SixteenStarLight (bbding) +\DeclareTextCommand{\textSixteenStarLight}{PU}{\9047\072}%* U+273A +% U+273B TEARDROP-SPOKED ASTERISK; \SixFlowerPetalRemoved (bbding) +\DeclareTextCommand{\textSixFlowerPetalRemoved}{PU}{\9047\073}%* U+273B +% U+273C OPEN CENTRE TEARDROP-SPOKED ASTERISK; +% \SixFlowerOpenCenter (bbding) +\DeclareTextCommand{\textSixFlowerOpenCenter}{PU}{\9047\074}%* U+273C +% U+273D HEAVY TEARDROP-SPOKED ASTERISK; \Asterisk (bbding) +\DeclareTextCommand{\textAsterisk}{PU}{\9047\075}%* U+273D +% U+273E SIX PETALLED BLACK AND WHITE FLORETTE; \SixFlowerAlternate (bbding) +\DeclareTextCommand{\textSixFlowerAlternate}{PU}{\9047\076}%* U+273E +% U+273F BLACK FLORETTE; \FiveFlowerPetal (bbding) +\DeclareTextCommand{\textFiveFlowerPetal}{PU}{\9047\077}%* U+273F +% U+2740 WHITE FLORETTE; \FiveFlowerOpen (bbding) +\DeclareTextCommand{\textFiveFlowerOpen}{PU}{\9047\100}%* U+2740 +% U+2741 EIGHT PETALLED OUTLINED BLACK FLORETTE; \EightFlowerPetal (bbding) +\DeclareTextCommand{\textEightFlowerPetal}{PU}{\9047\101}%* U+2741 +% U+2742 CIRCLED OPEN CENTRE EIGHT POINTED STAR; \SunshineOpenCircled (bbding) +\DeclareTextCommand{\textSunshineOpenCircled}{PU}{\9047\102}%* U+2742 +% U+2743 HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK; \SixFlowerAltPetal (bbding) +\DeclareTextCommand{\textSixFlowerAltPetal}{PU}{\9047\103}%* U+2743 +% U+2744 SNOWFLAKE; \SnowflakeChevron (bbding) +\DeclareTextCommand{\textSnowflakeChevron}{PU}{\9047\104}%* U+2744 +% U+2745 TIGHT TRIFOLIATE SNOWFLAKE; \Snowflake (bbding) +\DeclareTextCommand{\textSnowflake}{PU}{\9047\105}%* U+2745 +% U+2746 HEAVY CHEVRON SNOWFLAKE; \SnowflakeChevronBold (bbding) +\DeclareTextCommand{\textSnowflakeChevronBold}{PU}{\9047\106}%* U+2746 +% U+2747 SPARKLE; \Sparkle (bbding) +\DeclareTextCommand{\textSparkle}{PU}{\9047\107}%* U+2747 +% U+2748 HEAVY SPARKLE; \SparkleBold (bbding) +\DeclareTextCommand{\textSparkleBold}{PU}{\9047\110}%* U+2748 +% U+2749 BALLOON-SPOKED ASTERISK; \AsteriskRoundedEnds (bbding) +\DeclareTextCommand{\textAsteriskRoundedEnds}{PU}{\9047\111}%* U+2749 +% U+274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK; +% \EightFlowerPetalRemoved (bbding) +\DeclareTextCommand{\textEightFlowerPetalRemoved}{PU}{\9047\112}%* U+274A +% U+274B HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK; +% \EightAsterisk (bbding) +\DeclareTextCommand{\textEightAsterisk}{PU}{\9047\113}%* U+274B +% U+274D SHADOWED WHITE CIRCLE; \CircleShadow (bbding) +\DeclareTextCommand{\textCircleShadow}{PU}{\9047\115}%* U+274D +% U+274F LOWER RIGHT DROP-SHADOWED WHITE SQUARE; +% \SquareShadowBottomRight (bbding) +\DeclareTextCommand{\textSquareShadowBottomRight}{PU}{\9047\117}%* U+274F +% U+2750 UPPER RIGHT DROP-SHADOWED WHITE SQUARE; +% \SquareShadowTopRight (bbding) +\DeclareTextCommand{\textSquareTopRight}{PU}{\9047\120}%* U+2750 +% U+2751 LOWER RIGHT SHADOWED WHITE SQUARE; +% \SquareCastShadowBottomRight (bbding) +\DeclareTextCommand{\textSquareCastShadowBottomRight}{PU}{\9047\121}%* U+2751 +% U+2752 UPPER RIGHT SHADOWED WHITE SQUARE; +% \SquareCastShadowTopRight (bbding) +\DeclareTextCommand{\textSquareCastShadowTopRight}{PU}{\9047\122}%* U+2752 +% U+2756 BLACK DIAMOND MINUS WHITE X; \OrnamentDiamandSolid (bbding) +\DeclareTextCommand{\textDiamandSolid}{PU}{\9047\126}%* U+2756 +% U+2758 LIGHT VERTICAL BAR; \RectangleThin (bbding) +\DeclareTextCommand{\textRectangleThin}{PU}{\9047\130}%* U+2758 +% U+2759 MEDIUM VERTICAL BAR; \Rectangle (bbding) +\DeclareTextCommand{\textRectangle}{PU}{\9047\131}%* U+2759 +% U+275A HEAVY VERTICAL BAR; \RectangleBold (bbding) +\DeclareTextCommand{\textRectangleBold}{PU}{\9047\132}%* U+275A +% \end{macrocode} +% +% \subsubsection{Miscellaneous Mathematical Symbols-A: U+27C0 to U+27EF} +% +% \begin{macrocode} +% U+27C2 PERPENDICULAR; perpendicular; \perp (LaTeX) +\DeclareTextCommand{\textperp}{PU}{\9047\302}%* U+27C2 +% \notperp (mathabx) +\DeclareTextCommand{\textnotperp}{PU}{\9047\302\83\070}%* U+27C2 U+0338 +% U+27C7 OR WITH DOT INSIDE; \veedot (MnSymbol) +\DeclareTextCommand{\textveedot}{PU}{\9047\307}%* U+27C7 +% U+27D1 AND WITH DOT; \wedgedot (MnSymbol) +\DeclareTextCommand{\textwedgedot}{PU}{\9047\321}%* U+27D1 +% U+27DC LEFT MULTIMAP; \leftspoon (MnSymbol) +\DeclareTextCommand{\textleftspoon}{PU}{\9047\334}%* U+27DC +% U+27E6 MATHEMATICAL LEFT WHITE SQUARE BRACKET +\DeclareTextCommand{\textlbrackdbl}{PU}{\9047\346}%* U+27E6 +%* \textlbrackdbl -> \llbracket (stmaryrd) +% U+27E7 MATHEMATICAL RIGHT WHITE SQUARE BRACKET +\DeclareTextCommand{\textrbrackdbl}{PU}{\9047\347}%* U+27E7 +%* \textrbrackdbl -> \rrbracket (stmaryrd) +% \end{macrocode} +% +% \subsubsection{Supplemental Arrows-A: U+27F0 to U+27FF} +% +% \begin{macrocode} +% U+27F2 ANTICLOCKWISE GAPPED CIRCLE ARROW; +% \circlearrowleft (AmS) +\DeclareTextCommand{\textcirclearrowleft}{PU}{\9047\362}%* U+27F2 +% U+27F3 CLOCKWISE GAPPED CIRCLE ARROW; \circlearrowright (AmS) +\DeclareTextCommand{\textcirclearrowright}{PU}{\9047\363}%* U+27F3 +% U+27F5 LONG LEFTWARDS ARROW; \longleftarrow (AmS) +\DeclareTextCommand{\textlongleftarrow}{PU}{\9047\365}%* U+27F5 +% U+27F6 LONG RIGHTWARDS ARROW; \longrightarrow (AmS) +\DeclareTextCommand{\textlongrightarrow}{PU}{\9047\366}%* U+27F6 +% U+27F7 LONG LEFT RIGHT ARROW; \longleftrightarrow (AmS) +\DeclareTextCommand{\textlongleftrightarrow}{PU}{\9047\367}%* U+27F7 +% U+27F8 LONG LEFTWARDS DOUBLE ARROW; \Longleftarrow (AmS) +\DeclareTextCommand{\textLongleftarrow}{PU}{\9047\370}%* U+27F8 +% U+27F9 LONG RIGHTWARDS DOUBLE ARROW; \Longrightarrow (AmS) +\DeclareTextCommand{\textLongrightarrow}{PU}{\9047\371}%* U+27F9 +% U+27FA LONG LEFT RIGHT DOUBLE ARROW; \Longleftrightarrow (AmS) +\DeclareTextCommand{\textLongleftrightarrow}{PU}{\9047\372}%* U+27FA +% U+27FC LONG RIGHTWARDS ARROW FROM BAR; \longmapsto (AmS) +\DeclareTextCommand{\textlongmapsto}{PU}{\9047\374}%* U+27FC +% U+27FD LONG LEFTWARDS DOUBLE ARROW FROM BAR; \Longmapsfrom (stmaryrd) +\DeclareTextCommand{\textLongmapsfrom}{PU}{\9047\375}%* U+27FD +% U+27FE LONG RIGHTWARDS DOUBLE ARROW FROM BAR; \Longmapsto (stmaryrd) +\DeclareTextCommand{\textLongmapsto}{PU}{\9047\376}%* U+27FE +% \end{macrocode} +% +% \subsubsection{Supplemental Arrows-B: U+2900 to U+297F} +% +% \begin{macrocode} +% U+2921 NORTH WEST AND SOUTH EAST ARROW; \nwsearrow (MnSymbol) +\DeclareTextCommand{\textnwsearrow}{PU}{\9051\041}%* U+2921 +% U+2922 NORTH EAST AND SOUTH WEST ARROW; \neswarrow (MnSymbol) +\DeclareTextCommand{\textneswarrow}{PU}{\9051\042}%* U+2922 +% U+2923 NORTH WEST ARROW WITH HOOK; \lhooknwarrow (MnSymbol) +\DeclareTextCommand{\textlhooknwarrow}{PU}{\9051\043}%* U+2923 +% U+2924 NORTH EAST ARROW WITH HOOK; \rhooknearrow (MnSymbol) +\DeclareTextCommand{\textrhooknearrow}{PU}{\9051\044}%* U+2924 +% U+2925 SOUTH EAST ARROW WITH HOOK; \lhooksearrow (MnSymbol) +\DeclareTextCommand{\textlhooksearrow}{PU}{\9051\045}%* U+2925 +% U+2926 SOUTH WEST ARROW WITH HOOK; \rhookswarrow (MnSymbol) +\DeclareTextCommand{\textrhookswarrow}{PU}{\9051\046}%* U+2926 +% U+2933 WAVE ARROW POINTING DIRECTLY RIGHT; \leadsto (wasysym) +\DeclareTextCommand{\textleadsto}{PU}{\9051\063}%* U+2933 +% U+2934 ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS; +% \rcurvearrowne (MnSymbol) +\DeclareTextCommand{\textrcurvearrowne}{PU}{\9051\064}%* U+2934 +% U+2935 ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS; +% \lcurvearrowse (MnSymbol) +\DeclareTextCommand{\textlcurvearrowse}{PU}{\9051\065}%* U+2935 +% U+2936 ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS; +% \lcurvearrowsw (MnSymbol) +\DeclareTextCommand{\textlcurvearrowsw}{PU}{\9051\066}%* U+2936 +% U+2937 ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS; +% \rcurvearrowse (MnSymbol) +\DeclareTextCommand{\textrcurvearrowse}{PU}{\9051\067}%* U+2937 +% U+2938 RIGHT-SIDE ARC CLOCKWISE ARROW; \lcurvearrowdown (MnSymbol) +\DeclareTextCommand{\textlcurvearrowdown}{PU}{\9051\070}%* U+2938 +%* \textlcurvearrowdown -> \RightTorque (marvosym) +%* \textlcurvearrowdown -> \Righttorque (marvosym) +% U+2939 LEFT-SIDE ARC ANTICLOCKWISE ARROW; +% \rcurvearrowdown (MnSymbol) +\DeclareTextCommand{\textrcurvearrowdown}{PU}{\9051\071}%* U+2939 +%* \textrcurvearrowdown -> \LeftTorque (marvosym) +%* \textrcurvearrowdown -> \Lefttorque (marvosym) +% U+293A TOP ARC ANTICLOCKWISE ARROW; \rcurvearrowleft (MnSymbol) +\DeclareTextCommand{\textrcurvearrowleft}{PU}{\9051\072}%* U+293A +% U+293B BOTTOM ARC ANTICLOCKWISE ARROW; +% \rcurvearrowright (MnSymbol) +\DeclareTextCommand{\textrcurvearrowright}{PU}{\9051\073}%* U+293B +% U+294A LEFT BARB UP RIGHT BARB DOWN HARPOON; \leftrightharpoon (mathabx) +\DeclareTextCommand{\textleftrightharpoon}{PU}{\9051\112}%* U+294A +% U+294B LEFT BARB DOWN RIGHT BARB UP HARPOON; \rightleftharpoon (mathabx) +\DeclareTextCommand{\textrightleftharpoon}{PU}{\9051\113}%* U+294B +% U+294C UP BARB RIGHT DOWN BARB LEFT HARPOON; +% \updownharpoonrightleft (MnSymbol) +\DeclareTextCommand{\textupdownharpoonrightleft}{PU}{\9051\114}%* U+294C +% U+294D UP BARB LEFT DOWN BARB RIGHT HARPOON; +% \updownharpoonleftright (MnSymbol) +\DeclareTextCommand{\textupdownharpoonleftright}{PU}{\9051\115}%* U+294D +% U+2962 LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS +% HARPOON WITH BARB DOWN; \leftleftharpoons (mathabx) +\DeclareTextCommand{\textleftleftharpoons}{PU}{\9051\142}%* U+2962 +% U+2963 UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS +% HARPOON WITH BARB RIGHT; \upupharpoons (mathabx) +\DeclareTextCommand{\textupupharpoons}{PU}{\9051\143}%* U+2963 +% U+2964 RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON +% WITH BARB DOWN; \rightrightharpoons (mathabx) +\DeclareTextCommand{\textrightrightharpoons}{PU}{\9051\144}%* U+2964 +% U+2965 DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON +% WITH BARB RIGHT; \downdownharpoons (mathabx) +\DeclareTextCommand{\textdowndownharpoons}{PU}{\9051\145}%* U+2965 +% U+296A LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH; +% \leftbarharpoon (mathabx) +\DeclareTextCommand{\textleftbarharpoon}{PU}{\9051\152}%* U+296A +% U+296B LEFTWARDS HARPOON WITH BARB DOWN BELOW +% LONG DASH; \barleftharpoon (mathabx) +\DeclareTextCommand{\textbarleftharpoon}{PU}{\9051\153}%* U+296B +% U+296C RIGHTWARDS HARPOON WITH BARB UP ABOVE +% LONG DASH; \rightbarharpoon (mathabx) +\DeclareTextCommand{\textrightbarharpoon}{PU}{\9051\154}%* U+296C +% U+296D RIGHTWARDS HARPOON WITH BARB DOWN BELOW +% LONG DASH; \barrightharpoon (mathabx) +\DeclareTextCommand{\textbarrightharpoon}{PU}{\9051\155}%* U+296D +% U+296E UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON +% WITH BARB RIGHT; \updownharpoons (mathabx) +\DeclareTextCommand{\textupdownharpoons}{PU}{\9051\156}%* U+296E +% U+296F DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON +% WITH BARB RIGHT; \downupharpoons (mathabx) +\DeclareTextCommand{\textdownupharpoons}{PU}{\9051\157}%* U+296F +% U+297F DOWN FISH TAIL +\DeclareTextCommand{\textmoo}{PU}{\9051\177\83\066}%* U+297F U+0336 +% \end{macrocode} +% +% \subsubsection{Miscellaneous Mathematical Symbols-B: U+2980 to U+29FF} +% +% \begin{macrocode} +% U+2987 Z NOTATION LEFT IMAGE BRACKET; \llparenthesis (stmaryrd) +\DeclareTextCommand{\textllparenthesis}{PU}{\9051\207}%* U+2987 +% U+2988 Z NOTATION RIGHT IMAGE BRACKET; \rrparenthesis (stmaryrd) +\DeclareTextCommand{\textrrparenthesis}{PU}{\9051\210}%* U+2988 +% U+29B0 REVERSED EMPTY SET; \invdiameter (wasysym) +\DeclareTextCommand{\textinvdiameter}{PU}{\9051\260}%* U+29B0 +% U+29B6 CIRCLED VERTICAL BAR; \obar (stmaryrd) +\DeclareTextCommand{\textobar}{PU}{\9051\266}%* U+29B6 +%* \textobar -> \textvarobar (stmaryrd) +% U+29B8 CIRCLED REVERSE SOLIDUS; \obslash (stmaryrd) +\DeclareTextCommand{\textobslash}{PU}{\9051\270}%* U+29B8 +%* \textobslash -> \circledbslash (txfonts/pxfonts) +%* \textobslash -> \obackslash (mathabx) +%* \textobslash -> \varobslash (stmaryrd) +% U+29BA CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF +% DIVIDED BY VERTICAL BAR; \obot (mathabx) +\DeclareTextCommand{\textobot}{PU}{\9051\272}%* U+29BA +%* \textobot -> \odplus (ulsy) +% U+29BB CIRCLE WITH SUPERIMPOSED X; \NoChemicalCleaning (marvosym) +\DeclareTextCommand{\textNoChemicalCleaning}{PU}{\9051\273}%* U+29BB +% U+29C0 CIRCLED LESS-THAN; \olessthan (stmaryrd) +\DeclareTextCommand{\textolessthan}{PU}{\9051\300}%* U+29C0 +%* \textolessthan -> \varolessthan (stmaryrd) +% U+29C1 CIRCLED GREATER-THAN; \ogreaterthan (stmaryrd) +\DeclareTextCommand{\textogreaterthan}{PU}{\9051\301}%* U+29C1 +%* \textogreaterthan -> \varogreaterthan (stmaryrd) +% U+29C4 SQUARED RISING DIAGONAL SLASH; \boxslash (mathabx, stmaryrd) +\DeclareTextCommand{\textboxslash}{PU}{\9051\304}%* U+29C4 +% U+29C5 SQUARED FALLING DIAGONAL SLASH; \boxbslash (stmaryrd) +\DeclareTextCommand{\textboxbslash}{PU}{\9051\305}%* U+29C5 +% U+29C6 SQUARED ASTERISK; \boxast (stmaryrd) +\DeclareTextCommand{\textboxast}{PU}{\9051\306}%* U+29C6 +% U+29C7 SQUARED SMALL CIRCLE; \boxcircle (stmaryrd) +\DeclareTextCommand{\textboxcircle}{PU}{\9051\307}%* U+29C7 +% U+29C8 SQUARED SQUARE; \boxbox (stmaryrd) +\DeclareTextCommand{\textboxbox}{PU}{\9051\310}%* U+29C8 +% U+29D3 BLACK BOWTIE; \Valve (marvosym) +\DeclareTextCommand{\textValve}{PU}{\9051\323}%* U+29D3 +% U+29DF DOUBLE-ENDED MULTIMAP; \multimapboth (txfonts/pxfonts) +\DeclareTextCommand{\textmultimapboth}{PU}{\9051\337}%* U+29DF +% U+29E2 SHUFFLE PRODUCT; \shuffle (shuffle) +\DeclareTextCommand{\textshuffle}{PU}{\9051\342}%* U+29E2 +% \end{macrocode} +% +% \subsubsection{Supplemental Mathematical Operators: U+2A00 to U+2AFF} +% +% \begin{macrocode} +% U+2A04 N-ARY UNION OPERATOR WITH PLUS; \uplus (LaTeX) +\DeclareTextCommand{\textuplus}{PU}{\9052\004}%* U+2A04 +% U+2A07 TWO LOGICAL AND OPERATOR; \bigdoublewedge (MnSymbol) +\DeclareTextCommand{\textbigdoublewedge}{PU}{\9052\007}%* U+2A07 +% U+2A08 TWO LOGICAL OR OPERATOR; \bigdoublevee (MnSymbol) +\DeclareTextCommand{\textbigdoublevee}{PU}{\9052\010}%* U+2A08 +% U+2A1D JOIN; \Join (latexsym, amsfonts, amssymb, mathabx, txfonts, +% pxfonts, wasysym) +\DeclareTextCommand{\textJoin}{PU}{\9052\035}%* U+2A1D +% U+2A1F Z NOTATION SCHEMA COMPOSITION; \fatsemi (stmaryrd) +\DeclareTextCommand{\textfatsemi}{PU}{\9052\037}%* U+2A1F +% U+2A22 PLUS SIGN WITH SMALL CIRCLE ABOVE; \circplus (mathabx) +\DeclareTextCommand{\textcircplus}{PU}{\9052\042}%* U+2A22 +% U+2A2A MINUS SIGN WITH DOT BELOW; \minusdot (MnSymbol) +\DeclareTextCommand{\textminusdot}{PU}{\9052\052}%* U+2A2A +%* \textminusdot -> \divdot (mathabx) +% U+2A30 MULTIPLICATION SIGN WITH DOT ABOVE; \dottimes (mathabx) +\DeclareTextCommand{\textdottimes}{PU}{\9052\060}%* U+2A30 +% U+2A32 SEMIDIRECT PRODUCT WITH BOTTOM CLOSED; +% \dtimes (mathdesign) +\DeclareTextCommand{\textdtimes}{PU}{\9052\062}%* U+2A32 +% U+2A38 CIRCLED DIVISION SIGN; \odiv (mathabx) +\DeclareTextCommand{\textodiv}{PU}{\9052\070}%* U+2A38 +% U+2A3C INTERIOR PRODUCT; \invneg (MnSymbol) +\DeclareTextCommand{\textinvneg}{PU}{\9052\074}%* U+2A3C +% U+2A4E DOUBLE SQUARE INTERSECTION; \sqdoublecap (mathabx) +\DeclareTextCommand{\textsqdoublecap}{PU}{\9052\116}%* U+2A4E +%* \textsqdoublecap -> \doublesqcap (MnSymbol) +% U+2A40 INTERSECTION WITH DOT; \capdot (MnSymbol) +\DeclareTextCommand{\textcapdot}{PU}{\9052\100}%* U+2A40 +% U+2A4F DOUBLE SQUARE UNION; \sqdoublecup (mathabx) +\DeclareTextCommand{\textsqdoublecup}{PU}{\9052\117}%* U+2A4F +%* \textsqdoublecup -> \doublesqcup (MnSymbol) +% U+2A55 TWO INTERSECTING LOGICAL AND; \doublewedge (MnSymbol) +\DeclareTextCommand{\textdoublewedge}{PU}{\9052\125}%* U+2A55 +% U+2A56 TWO INTERSECTING LOGICAL OR; \doublevee (MnSymbol +\DeclareTextCommand{\textdoublevee}{PU}{\9052\126}%* U+2A56 +%* \textdoublevee -> \merge (stmaryrd) +% U+2A5E LOGICAL AND WITH DOUBLE OVERBAR; +% \doublebarwedge (AmS) +\DeclareTextCommand{\textdoublebarwedge}{PU}{\9052\136}%* U+2A5E +% U+2A63 LOGICAL OR WITH DOUBLE UNDERBAR; +% \veedoublebar (mahtabx) +\DeclareTextCommand{\textveedoublebar}{PU}{\9052\143}%* U+2A63 +% U+2A66 EQUALS SIGN WITH DOT BELOW; \eqdot (MnSymbol) +\DeclareTextCommand{\texteqdot}{PU}{\9052\146}%* U+2A66 +% \neqdot (MnSymbol) +\DeclareTextCommand{\textneqdot}{PU}{\9052\146\83\070}%* U+2A66 U+0338 +% U+2A74 DOUBLE COLON EQUAL; \coloncolonequals (colonequals) +\DeclareTextCommand{\textcoloncolonequals}{PU}{\9052\164}%* U+2A74 +% U+2A7D LESS-THAN OR SLANTED EQUAL TO; \leqslant (AmS) +\DeclareTextCommand{\textleqslant}{PU}{\9052\175}%* U+2A7D +% \nleqslant (txfonts/pxfonts) +\DeclareTextCommand{\textnleqslant}{PU}{\9052\175\83\070}%* U+2A7D U+0338 +% U+2A7E GREATER-THAN OR SLANTED EQUAL TO; \geqslant (AmS) +\DeclareTextCommand{\textgeqslant}{PU}{\9052\176}%* U+2A7E +% \ngeqslang (txfonts/pxfonts) +\DeclareTextCommand{\textngeqslant}{PU}{\9052\176\83\070}%* U+2A7E U+0338 +% U+2A85 LESS-THAN OR APPROXIMATE; \lessapprox (AmS) +\DeclareTextCommand{\textlessapprox}{PU}{\9052\205}%* U+2A85 +% \nlessapprox (txfonts/pxfonts) +\DeclareTextCommand{\textnlessapprox}{PU}{\9052\205\83\070}%* U+2A85 U+0338 +% U+2A86 GREATER-THAN OR APPROXIMATE; \gtrapprox (AmS) +\DeclareTextCommand{\textgtrapprox}{PU}{\9052\206}%* U+2A86 +% \ngtrapprox (txfonts/pxfonts) +\DeclareTextCommand{\textngtrapprox}{PU}{\9052\206\83\070}%* U+2A86 U+0338 +% U+2A87 LESS-THAN AND SINGLE-LINE NOT EQUAL TO; \lneq (AmS) +\DeclareTextCommand{\textlneq}{PU}{\9052\207}%* U+2A87 +% U+2A88 GREATER-THAN AND SINGLE-LINE NOT EQUAL TO; +% \gneq (AmS) +\DeclareTextCommand{\textgneq}{PU}{\9052\210}%* U+2A88 +% U+2A89 LESS-THAN AND NOT APPROXIMATE; \lnapprox (AmS) +\DeclareTextCommand{\textlnapprox}{PU}{\9052\211}%* U+2A89 +% U+2A8A GREATER-THAN AND NOT APPROXIMATE; \gnapprox (AmS) +\DeclareTextCommand{\textgnapprox}{PU}{\9052\212}%* U+2A8A +% U+2A8B LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN; +% \lesseqqgtr (AmS) +\DeclareTextCommand{\textlesseqqgtr}{PU}{\9052\213}%* U+2A8B +% U+2A8C GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN; +% \gtreqqless (AmS) +\DeclareTextCommand{\textgtreqqless}{PU}{\9052\214}%* U+2A8C +% U+2A95 SLANTED EQUAL TO OR LESS-THAN; \eqslantless (AmS) +\DeclareTextCommand{\texteqslantless}{PU}{\9052\225}%* U+2A95 +% U+2A96 SLANTED EQUAL TO OR GREATER-THAN; \eqslantgtr (AmS) +\DeclareTextCommand{\texteqslantgtr}{PU}{\9052\226}%* U+2A96 +% U+2AA6 LESS-THAN CLOSED BY CURVE; \leftslice (stmaryrd) +\DeclareTextCommand{\textleftslice}{PU}{\9052\246}%* U+2AA6 +% U+2AA7 GREATER-THAN CLOSED BY CURVE; \rightslice (stmaryrd) +\DeclareTextCommand{\textrightslice}{PU}{\9052\247}%* U+2AA7 +% U+2AAF PRECEDES ABOVE SINGLE-LINE EQUALS SIGN; \preceq (MnSymbol) +\DeclareTextCommand{\textpreceq}{PU}{\9052\257}%* U+2AAF +% \npreceq (txfonts/pxfonts) +\DeclareTextCommand{\textnpreceq}{PU}{\9052\257\83\070}%* U+2AAF U+0338 +% U+2AB0 SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN; \succeq (MnSymbol) +\DeclareTextCommand{\textsucceq}{PU}{\9052\260}%* U+2AB0 +% \nsucceq (txfonts/pxfonts) +\DeclareTextCommand{\textnsucceq}{PU}{\9052\260\83\070}%* U+2AB0 U+0338 +% U+2AB1 PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO; \precneq (mathabx) +\DeclareTextCommand{\textprecneq}{PU}{\9052\261}%* U+2AB1 +% U+2AB2 SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO; \succneq (mathabx) +\DeclareTextCommand{\textsuccneq}{PU}{\9052\262}%* U+2AB2 +% U+2AB3 PRECEDES ABOVE EQUALS SIGN; \preceqq (txfonts/pxfonts) +\DeclareTextCommand{\textpreceqq}{PU}{\9052\263}%* U+2AB3 +% \npreceqq (txfonts/pxfonts) +\DeclareTextCommand{\textnpreceqq}{PU}{\9052\263\83\070}%* U+2AB3 U+0338 +% U+2AB4 SUCCEEDS ABOVE EQUALS SIGN; \succeqq (txfonts/pxfonts) +\DeclareTextCommand{\textsucceqq}{PU}{\9052\264}%* U+2AB4 +% \nsucceqq (txfonts/pxfonts) +\DeclareTextCommand{\textnsucceqq}{PU}{\9052\264\83\070}%* U+2AB4 U+0338 +% U+2AB5 PRECEDES ABOVE NOT EQUAL TO; \precneqq (txfonts/pxfonts) +\DeclareTextCommand{\textprecneqq}{PU}{\9052\265}%* U+2AB5 +% U+2AB6 SUCCEEDS ABOVE NOT EQUAL TO; \succneqq (txfonts/pxfonts) +\DeclareTextCommand{\textsuccneqq}{PU}{\9052\266}%* U+2AB6 +% U+2AB7 PRECEDES ABOVE ALMOST EQUAL TO; \precapprox (AmS) +\DeclareTextCommand{\textprecapprox}{PU}{\9052\267}%* U+2AB7 +% \nprecapprox (txfonts/pxfonts) +\DeclareTextCommand{\textnprecapprox}{PU}{\9052\267\83\070}%* U+2AB7 U+0338 +% U+2AB8 SUCCEEDS ABOVE ALMOST EQUAL TO; \succapprox (AmS) +\DeclareTextCommand{\textsuccapprox}{PU}{\9052\270}%* U+2AB8 +% \nsuccapprox (txfonts/pxfonts) +\DeclareTextCommand{\textnsuccapprox}{PU}{\9052\270\83\070}%* U+2AB8 U+0338 +% U+2AB9 PRECEDES ABOVE NOT ALMOST EQUAL TO; \precnapprox (AmS) +\DeclareTextCommand{\textprecnapprox}{PU}{\9052\271}%* U+2AB9 +% U+2ABA SUCCEEDS ABOVE NOT ALMOST EQUAL TO; \succnapprox (AmS) +\DeclareTextCommand{\textsuccnapprox}{PU}{\9052\272}%* U+2ABA +% U+2AC5 SUBSET OF ABOVE EQUALS SIGN; \subseteqq (AmS) +\DeclareTextCommand{\textsubseteqq}{PU}{\9052\305}%* U+2AC5 +% \nsubseteqq (txfonts/pxfonts, mathabx) +\DeclareTextCommand{\textnsubseteqq}{PU}{\9052\305\83\070}%* U+2AC5 U+0338 +% U+2AC6 SUPERSET OF ABOVE EQUALS SIGN; \supseteqq (AmS) +\DeclareTextCommand{\textsupseteqq}{PU}{\9052\306}%* U+2AC6 +% \nsupseteqq (mathabx) +\DeclareTextCommand{\textnsupseteqq}{PU}{\9052\306\83\070}%* U+2AC6 U+0338 +% U+2AE3 DOUBLE VERTICAL BAR LEFT TURNSTILE +\DeclareTextCommand{\textdashV}{PU}{\9052\343}%* U+2AE3 +%* \textdashV -> \leftVdash (MnSymbol) +% \ndashV (mathabx) +\DeclareTextCommand{\textndashV}{PU}{\9052\343\83\070}%* U+2AE3 U+0338 +%* \textndashV -> \nleftVdash (MnSymbol) +% U+2AE4 VERTICAL BAR DOUBLE LEFT TURNSTILE; \Dashv (mathabx) +\DeclareTextCommand{\textDashv}{PU}{\9052\344}%* U+2AE4 +%* \textDashv -> \leftmodels (MnSymbol) +% \nDashv (mathabx) +\DeclareTextCommand{\textnDashv}{PU}{\9052\344\83\070}%* U+2AE4 U+0338 +%* \textnDashv -> \nleftmodels (MnSymbol) +% U+2AE5 DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE; +% \DashV (mathabx) +\DeclareTextCommand{\textDashV}{PU}{\9052\345}%* U+2AE5 +%* \textDashV -> \leftModels (MnSymbol) +% \nDashV (mathabx) +\DeclareTextCommand{\textnDashV}{PU}{\9052\345\83\070}%* U+2AE5 U+0338 +%* \textnDashV -> \nleftModels (MnSymbol) +% U+2AEA DOUBLE DOWN TACK; \downmodels (MnSymbol) +\DeclareTextCommand{\textdownmodels}{PU}{\9052\352}%* U+2AEA +% \ndownmodels (MnSymbol) +\DeclareTextCommand{\textndownmodels}{PU}{\9052\352\83\070}%* U+2AEA U+0338 +% U+2AEB DOUBLE UP TACK; \upmodels (MnSymbol) +\DeclareTextCommand{\textupmodels}{PU}{\9052\353}%* U+2AEB +% \nupmodels (MnSymbol) +\DeclareTextCommand{\textnupmodels}{PU}{\9052\353\83\070}%* U+2AEB U+0338 +% U+2AEF VERTICAL LINE WITH CIRCLE ABOVE; \upspoon (MnSymbol) +\DeclareTextCommand{\textupspoon}{PU}{\9052\357}%* U+2AEF +% U+2AF4 TRIPLE VERTICAL BAR BINARY RELATION; +% \interleave (stmaryrd) +\DeclareTextCommand{\textinterleave}{PU}{\9052\364}%* U+2AF4 +% U+2AFD DOUBLE SOLIDUS OPERATOR; \sslash (stmaryrd) +\DeclareTextCommand{\textsslash}{PU}{\9052\375}%* U+2AFD +%* \textsslash -> \varparallel (txfonts\pxfonts) +% \end{macrocode} +% +% \subsubsection{Miscellaneous Symbols and Arrows: U+2B00 to U+2BFF} +% +% \begin{macrocode} +% U+2B20 WHITE PENTAGON; \pentagon (wasysym) +\DeclareTextCommand{\textpentagon}{PU}{\9053\040}%* U+2B20 +% U+2B21 WHITE HEXAGON; \varhexagon (wasysym) +\DeclareTextCommand{\textvarhexagon}{PU}{\9053\041}%* U+2B21 +% \end{macrocode} +% +% \subsubsection{Latin Extended-C: U+2C60 to U+2C7F} +% +% \begin{macrocode} +% U+2C7C LATIN SUBSCRIPT SMALL LETTER J +\DeclareTextCommand{\textjinferior}{PU}{\9054\174}%* U+2C7C +% \end{macrocode} +% +% \subsubsection{Supplemental Punctuation: U+2E00 to U+2E7F} +% +% \begin{macrocode} +% U+2E13 DOTTED OBELOS; \slashdiv (MnSymbol) +\DeclareTextCommand{\textslashdiv}{PU}{\9056\023}%* U+2E13 +% U+2E18 INVERTED INTERROBANG; \textinterrobangdown (textcomp) +\DeclareTextCommand{\textinterrobangdown}{PU}{\9056\030}% U+2E18 +% U+2E2D FIVE DOT MARK; \fivedots (MnSymbol) +\DeclareTextCommand{\textfivedots}{PU}{\9056\055}%* U+2E2D +% \end{macrocode} +% +% \subsubsection{Modifier Tone Letters: U+A700 to U+A71F} +% +% \begin{macrocode} +% U+A71B MODIFIER LETTER RAISED UP ARROW; \textupstep (tipa) +\DeclareTextCommand{\textupstep}{PU}{\9247\033}% U+A71B +% U+A71C MODIFIER LETTER RAISED DOWN ARROW; +% \textdownstep (tipa) +\DeclareTextCommand{\textdownstep}{PU}{\9247\034}% U+A71C +% \end{macrocode} +% +% \subsubsection{Latin Extended-D: U+A720 to U+A7FF} +% +% \begin{macrocode} +% U+A727 LATIN SMALL LETTER HENG; \textheng (tipx) +\DeclareTextCommand{\textPUheng}{PU}{\9247\047}% U+A727 +%* \textPUheng -> \textheng (tipx) +% U+A72C LATIN CAPITAL LETTER CUATRILLO; \textlhookfour (tipx) +\DeclareTextCommand{\textPUlhookfour}{PU}{\9247\054}% U+A72C +%* \textPUlhookfour -> \textlhookfour (tipx) +% U+A730 LATIN LETTER SMALL CAPITAL F; \textscf (tipx) +\DeclareTextCommand{\textPUscf}{PU}{\9247\060}% U+A730 +%* \textPUscf -> \textscf (tipx) +% U+A735 LATIN SMALL LETTER AO; \textaolig (tipx) +\DeclareTextCommand{\textPUaolig}{PU}{\9247\065}% U+A735 +%* \textPUaolig -> \textaolig (tipx) +% U+A74F LATIN SMALL LETTER OO; \oo (wsuipa) +\DeclareTextCommand{\textoo}{PU}{\9247\117}%* U+A74F +% U+A788 MODIFIER LETTER LOW CIRCUMFLEX ACCENT +\DeclareTextCommand{\textcircumlow}{PU}{\9247\210}% U+A788 +% \end{macrocode} +% +% \subsubsection{Alphabetic Presentation Forms: U+FB00 to U+FB4F} +% +% \begin{macrocode} +% U+FB01 LATIN SMALL LIGATURE FI; fi +\DeclareTextCommand{\textfi}{PU}{\9373\001}% U+FB01 +% U+FB02 LATIN SMALL LIGATURE FL; fl +\DeclareTextCommand{\textfl}{PU}{\9373\002}% U+FB02 +% \end{macrocode} +% +% \subsubsection{Musical Symbols: U+1D100 to U+1D1FF} +% +% \begin{macrocode} +% U+1D13B MUSICAL SYMBOL WHOLE REST; \GaPa (harmony) +\DeclareTextCommand{\textGaPa}{PU}{\9330\064\9335\073}%* U+1D13B +% U+1D13C MUSICAL SYMBOL HALF REST; \HaPa (harmony) +\DeclareTextCommand{\textHaPa}{PU}{\9330\064\9335\074}%* U+1D13C +% U+1D13D MUSICAL SYMBOL QUARTER REST; \ViPa (harmony) +\DeclareTextCommand{\textViPa}{PU}{\9330\064\9335\075}%* U+1D13D +% U+1D13E MUSICAL SYMBOL EIGHTH REST; \AcPa (harmony) +\DeclareTextCommand{\textAcPa}{PU}{\9330\064\9335\076}%* U+1D13E +% U+1D13F MUSICAL SYMBOL SIXTEENTH REST; \SePa (harmony) +\DeclareTextCommand{\textSePa}{PU}{\9330\064\9335\077}%* U+1D13F +% U+1D140 MUSICAL SYMBOL THIRTY-SECOND REST; \ZwPa (harmony) +\DeclareTextCommand{\textZwPa}{PU}{\9330\064\9335\100}%* U+1D140 +% U+1D15D MUSICAL SYMBOL WHOLE NOTE; \fullnote (wasysym) +\DeclareTextCommand{\textfullnote}{PU}{\9330\064\9335\135}%* U+1D15D +%* \textfullnote -> \Ganz (harmony) +% U+1D15E MUSICAL SYMBOL HALF NOTE; \halfnote (wasysym) +\DeclareTextCommand{\texthalfnote}{PU}{\9330\064\9335\136}%* U+1D15E +%* \texthalfnote -> \Halb (harmony) +% U+1D15F MUSICAL SYMBOL QUARTER NOTE; \Vier (harmony) +\DeclareTextCommand{\textVier}{PU}{\9330\064\9335\137}%* U+1D15F +% U+1D160 MUSICAL SYMBOL EIGHTH NOTE; \Acht (harmony) +\DeclareTextCommand{\textAcht}{PU}{\9330\064\9335\140}%* U+1D160 +% U+1D161 MUSICAL SYMBOL SIXTEENTH NOTE; \Sech (harmony) +\DeclareTextCommand{\textSech}{PU}{\9330\064\9335\141}%* U+1D161 +% U+1D162 MUSICAL SYMBOL THIRTY-SECOND NOTE; \Zwdr (harmony) +\DeclareTextCommand{\textZwdr}{PU}{\9330\064\9335\142}%* U+1D162 +% \end{macrocode} +% +% \subsubsection{Miscellaneous Symbols and Pictographs: U+1F300 to U+1F5FF} +% +% \begin{macrocode} +% U+1F30D EARTH GLOBE EUROPE-AFRICA; \Mundus (marvosym) +\DeclareTextCommand{\textMundus}{PU}{\9330\074\9337\015}%* U+1F30D +% U+1F319 CRESCENT MOON; \Moon (marvosym) +\DeclareTextCommand{\textMoon}{PU}{\9330\074\9337\031}%* U+1F319 +% U+1F468 MAN; \ManFace (marvosym) +\DeclareTextCommand{\textManFace}{PU}{\9330\075\9334\150}%* U+1F468 +% U+1F469 WOMAN; \WomanFace (marvosym) +\DeclareTextCommand{\textWomanFace}{PU}{\9330\075\9334\151}%* U+1F469 +%* \textWomanFace -> \Womanface (marvosym) +% U+1F4E0 FAX MACHINE; \Fax (marvosym) +\DeclareTextCommand{\textFax}{PU}{\9330\075\9334\340}%* U+1F4E0 +%* \textFax -> \Faxmachine (marvosym) +% U+1F525 FIRE; \Fire (ifsym) +\DeclareTextCommand{\textFire}{PU}{\9330\075\9335\045}%* U+1F525 +% \end{macrocode} +% +% \subsubsection{Transport and Map Symbols: U+1F680 to U+1F6FF} +% +% \begin{macrocode} +% U+1F6B2 BICYCLE; \Bicycle (marvosym) +\DeclareTextCommand{\textBicycle}{PU}{\9330\075\9336\262}%* U+1F6B2 +% U+1F6B9 MENS SYMBOL; \Gentsroom (marvosym) +\DeclareTextCommand{\textGentsroom}{PU}{\9330\075\9336\271}%* U+1F6B9 +% U+1F6BA WOMENS SYMBOL; \Ladiesroom (marvosym) +\DeclareTextCommand{\textLadiesroom}{PU}{\9330\075\9336\272}%* U+1F6BA +% \end{macrocode} +% +% \subsubsection{Miscellaneous} +% +% \begin{macrocode} +\DeclareTextCommand{\SS}{PU}{SS}% +% \textcopyleft (textcomp) +\DeclareTextCommand{\textcopyleft}{PU}{\9041\204\9040\335}% U+2184 U+20DD +% \ccnc (cclicenses) +\DeclareTextCommand{\textccnc}{PU}{\80\044\9040\340}%* U+0024 U+20E0 +% \ccnd (cclicenses) +\DeclareTextCommand{\textccnd}{PU}{=\9040\335}%* U+003D U+20DD +% \ccsa (cclicenses) +\DeclareTextCommand{\textccsa}{PU}{\9047\362\9040\335}%* U+27F2 U+20DD +% \Info (marvosym, china2e) +\DeclareTextCommand{\textInfo}{PU}{\9330\065\9334\042\9040\336}%* U+1D422 U+20DE +% \CESign (marvosym) +\DeclareTextCommand{\textCESign}{PU}{\80\103\80\105}%* U+0043 U+0045 +%* \textCESign -> \CEsign (marvosym) +% \end{macrocode} +% +% \subsubsection{Aliases} +% +% Aliases (german.sty) +% \begin{macrocode} +\DeclareTextCommand{\textglqq}{PU}{\quotedblbase}% +\DeclareTextCommand{\textgrqq}{PU}{\textquotedblleft}% +\DeclareTextCommand{\textglq}{PU}{\quotesinglbase}% +\DeclareTextCommand{\textgrq}{PU}{\textquoteleft}% +\DeclareTextCommand{\textflqq}{PU}{\guillemotleft}% +\DeclareTextCommand{\textfrqq}{PU}{\guillemotright}% +\DeclareTextCommand{\textflq}{PU}{\guilsinglleft}% +\DeclareTextCommand{\textfrq}{PU}{\guilsinglright}% +% \end{macrocode} +% Aliases (math names) +% \begin{macrocode} +\DeclareTextCommand{\textneg}{PU}{\textlogicalnot}%* +\DeclareTextCommand{\texttimes}{PU}{\textmultiply}%* +\DeclareTextCommand{\textdiv}{PU}{\textdivide}%* +\DeclareTextCommand{\textpm}{PU}{\textplusminus}%* +\DeclareTextCommand{\textcdot}{PU}{\textperiodcentered}%* +% \end{macrocode} +% +% \begin{macrocode} +%</puenc> +% \end{macrocode} +% +% \subsection{PU encoding, additions for Vn\TeX} +% +% This file is provided by Han The Thanh. +% +% \begin{macrocode} +%<*puvnenc> +% \end{macrocode} +% \begin{macrocode} +\DeclareTextCommand{\abreve}{PU}{\81\003}% U+0103 +\DeclareTextCommand{\acircumflex}{PU}{\80\342}% U+00E2 +\DeclareTextCommand{\ecircumflex}{PU}{\80\352}% U+00EA +\DeclareTextCommand{\ocircumflex}{PU}{\80\364}% U+00F4 +\DeclareTextCommand{\ohorn}{PU}{\81\241}% U+01A1 +\DeclareTextCommand{\uhorn}{PU}{\81\260}% U+01B0 +\DeclareTextCommand{\ABREVE}{PU}{\81\002}% U+0102 +\DeclareTextCommand{\ACIRCUMFLEX}{PU}{\80\302}% U+00C2 +\DeclareTextCommand{\ECIRCUMFLEX}{PU}{\80\312}% U+00CA +\DeclareTextCommand{\OCIRCUMFLEX}{PU}{\80\324}% U+00D4 +\DeclareTextCommand{\OHORN}{PU}{\81\240}% U+01A0 +\DeclareTextCommand{\UHORN}{PU}{\81\257}% U+01AF +% \end{macrocode} +% \begin{macrocode} +\DeclareTextCompositeCommand{\'}{PU}{a}{\80\341}% U+00E1 +\DeclareTextCompositeCommand{\d}{PU}{a}{\9036\241}% U+1EA1 +\DeclareTextCompositeCommand{\`}{PU}{a}{\80\340}% U+00E0 +\DeclareTextCompositeCommand{\h}{PU}{a}{\9036\243}% U+1EA3 +\DeclareTextCompositeCommand{\~}{PU}{a}{\80\343}% U+00E3 +\DeclareTextCompositeCommand{\'}{PU}{\abreve}{\9036\257}% U+1EAF +\DeclareTextCompositeCommand{\d}{PU}{\abreve}{\9036\267}% U+1EB7 +\DeclareTextCompositeCommand{\`}{PU}{\abreve}{\9036\261}% U+1EB1 +\DeclareTextCompositeCommand{\h}{PU}{\abreve}{\9036\263}% U+1EB3 +\DeclareTextCompositeCommand{\~}{PU}{\abreve}{\9036\265}% U+1EB5 +\DeclareTextCompositeCommand{\'}{PU}{\acircumflex}{\9036\245}% U+1EA5 +\DeclareTextCompositeCommand{\d}{PU}{\acircumflex}{\9036\255}% U+1EAD +\DeclareTextCompositeCommand{\`}{PU}{\acircumflex}{\9036\247}% U+1EA7 +\DeclareTextCompositeCommand{\h}{PU}{\acircumflex}{\9036\251}% U+1EA9 +\DeclareTextCompositeCommand{\~}{PU}{\acircumflex}{\9036\253}% U+1EAB +\DeclareTextCompositeCommand{\'}{PU}{e}{\80\351}% U+00E9 +\DeclareTextCompositeCommand{\d}{PU}{e}{\9036\271}% U+1EB9 +\DeclareTextCompositeCommand{\`}{PU}{e}{\80\350}% U+00E8 +\DeclareTextCompositeCommand{\h}{PU}{e}{\9036\273}% U+1EBB +\DeclareTextCompositeCommand{\~}{PU}{e}{\9036\275}% U+1EBD +\DeclareTextCompositeCommand{\'}{PU}{\ecircumflex}{\9036\277}% U+1EBF +\DeclareTextCompositeCommand{\d}{PU}{\ecircumflex}{\9036\307}% U+1EC7 +\DeclareTextCompositeCommand{\`}{PU}{\ecircumflex}{\9036\301}% U+1EC1 +\DeclareTextCompositeCommand{\h}{PU}{\ecircumflex}{\9036\303}% U+1EC3 +\DeclareTextCompositeCommand{\~}{PU}{\ecircumflex}{\9036\305}% U+1EC5 +\DeclareTextCompositeCommand{\'}{PU}{i}{\80\355}% U+00ED +\DeclareTextCompositeCommand{\d}{PU}{i}{\9036\313}% U+1ECB +\DeclareTextCompositeCommand{\`}{PU}{i}{\80\354}% U+00EC +\DeclareTextCompositeCommand{\h}{PU}{i}{\9036\311}% U+1EC9 +\DeclareTextCompositeCommand{\~}{PU}{i}{\81\051}% U+0129 +\DeclareTextCompositeCommand{\'}{PU}{o}{\80\363}% U+00F3 +\DeclareTextCompositeCommand{\d}{PU}{o}{\9036\315}% U+1ECD +\DeclareTextCompositeCommand{\`}{PU}{o}{\80\362}% U+00F2 +\DeclareTextCompositeCommand{\h}{PU}{o}{\9036\317}% U+1ECF +\DeclareTextCompositeCommand{\~}{PU}{o}{\80\365}% U+00F5 +\DeclareTextCompositeCommand{\'}{PU}{\ocircumflex}{\9036\321}% U+1ED1 +\DeclareTextCompositeCommand{\d}{PU}{\ocircumflex}{\9036\331}% U+1ED9 +\DeclareTextCompositeCommand{\`}{PU}{\ocircumflex}{\9036\323}% U+1ED3 +\DeclareTextCompositeCommand{\h}{PU}{\ocircumflex}{\9036\325}% U+1ED5 +\DeclareTextCompositeCommand{\~}{PU}{\ocircumflex}{\9036\327}% U+1ED7 +\DeclareTextCompositeCommand{\'}{PU}{\ohorn}{\9036\333}% U+1EDB +\DeclareTextCompositeCommand{\d}{PU}{\ohorn}{\9036\343}% U+1EE3 +\DeclareTextCompositeCommand{\`}{PU}{\ohorn}{\9036\335}% U+1EDD +\DeclareTextCompositeCommand{\h}{PU}{\ohorn}{\9036\337}% U+1EDF +\DeclareTextCompositeCommand{\~}{PU}{\ohorn}{\9036\341}% U+1EE1 +\DeclareTextCompositeCommand{\'}{PU}{u}{\80\372}% U+00FA +\DeclareTextCompositeCommand{\d}{PU}{u}{\9036\345}% U+1EE5 +\DeclareTextCompositeCommand{\`}{PU}{u}{\80\371}% U+00F9 +\DeclareTextCompositeCommand{\h}{PU}{u}{\9036\347}% U+1EE7 +\DeclareTextCompositeCommand{\~}{PU}{u}{\81\151}% U+0169 +\DeclareTextCompositeCommand{\'}{PU}{\uhorn}{\9036\351}% U+1EE9 +\DeclareTextCompositeCommand{\d}{PU}{\uhorn}{\9036\361}% U+1EF1 +\DeclareTextCompositeCommand{\`}{PU}{\uhorn}{\9036\353}% U+1EEB +\DeclareTextCompositeCommand{\h}{PU}{\uhorn}{\9036\355}% U+1EED +\DeclareTextCompositeCommand{\~}{PU}{\uhorn}{\9036\357}% U+1EEF +\DeclareTextCompositeCommand{\'}{PU}{y}{\80\375}% U+00FD +\DeclareTextCompositeCommand{\d}{PU}{y}{\9036\365}% U+1EF5 +\DeclareTextCompositeCommand{\`}{PU}{y}{\9036\363}% U+1EF3 +\DeclareTextCompositeCommand{\h}{PU}{y}{\9036\367}% U+1EF7 +\DeclareTextCompositeCommand{\~}{PU}{y}{\9036\371}% U+1EF9 +\DeclareTextCompositeCommand{\'}{PU}{A}{\80\301}% U+00C1 +\DeclareTextCompositeCommand{\d}{PU}{A}{\9036\240}% U+1EA0 +\DeclareTextCompositeCommand{\`}{PU}{A}{\80\300}% U+00C0 +\DeclareTextCompositeCommand{\h}{PU}{A}{\9036\242}% U+1EA2 +\DeclareTextCompositeCommand{\~}{PU}{A}{\80\303}% U+00C3 +\DeclareTextCompositeCommand{\'}{PU}{\ABREVE}{\9036\256}% U+1EAE +\DeclareTextCompositeCommand{\d}{PU}{\ABREVE}{\9036\266}% U+1EB6 +\DeclareTextCompositeCommand{\`}{PU}{\ABREVE}{\9036\260}% U+1EB0 +\DeclareTextCompositeCommand{\h}{PU}{\ABREVE}{\9036\262}% U+1EB2 +\DeclareTextCompositeCommand{\~}{PU}{\ABREVE}{\9036\264}% U+1EB4 +\DeclareTextCompositeCommand{\'}{PU}{\ACIRCUMFLEX}{\9036\244}% U+1EA4 +\DeclareTextCompositeCommand{\d}{PU}{\ACIRCUMFLEX}{\9036\254}% U+1EAC +\DeclareTextCompositeCommand{\`}{PU}{\ACIRCUMFLEX}{\9036\246}% U+1EA6 +\DeclareTextCompositeCommand{\h}{PU}{\ACIRCUMFLEX}{\9036\250}% U+1EA8 +\DeclareTextCompositeCommand{\~}{PU}{\ACIRCUMFLEX}{\9036\252}% U+1EAA +\DeclareTextCompositeCommand{\'}{PU}{E}{\80\311}% U+00C9 +\DeclareTextCompositeCommand{\d}{PU}{E}{\9036\270}% U+1EB8 +\DeclareTextCompositeCommand{\`}{PU}{E}{\80\310}% U+00C8 +\DeclareTextCompositeCommand{\h}{PU}{E}{\9036\272}% U+1EBA +\DeclareTextCompositeCommand{\~}{PU}{E}{\9036\274}% U+1EBC +\DeclareTextCompositeCommand{\'}{PU}{\ECIRCUMFLEX}{\9036\276}% U+1EBE +\DeclareTextCompositeCommand{\d}{PU}{\ECIRCUMFLEX}{\9036\306}% U+1EC6 +\DeclareTextCompositeCommand{\`}{PU}{\ECIRCUMFLEX}{\9036\300}% U+1EC0 +\DeclareTextCompositeCommand{\h}{PU}{\ECIRCUMFLEX}{\9036\302}% U+1EC2 +\DeclareTextCompositeCommand{\~}{PU}{\ECIRCUMFLEX}{\9036\304}% U+1EC4 +\DeclareTextCompositeCommand{\'}{PU}{I}{\80\315}% U+00CD +\DeclareTextCompositeCommand{\d}{PU}{I}{\9036\312}% U+1ECA +\DeclareTextCompositeCommand{\`}{PU}{I}{\80\314}% U+00CC +\DeclareTextCompositeCommand{\h}{PU}{I}{\9036\310}% U+1EC8 +\DeclareTextCompositeCommand{\~}{PU}{I}{\81\050}% U+0128 +\DeclareTextCompositeCommand{\'}{PU}{O}{\80\323}% U+00D3 +\DeclareTextCompositeCommand{\d}{PU}{O}{\9036\314}% U+1ECC +\DeclareTextCompositeCommand{\`}{PU}{O}{\80\322}% U+00D2 +\DeclareTextCompositeCommand{\h}{PU}{O}{\9036\316}% U+1ECE +\DeclareTextCompositeCommand{\~}{PU}{O}{\80\325}% U+00D5 +\DeclareTextCompositeCommand{\'}{PU}{\OCIRCUMFLEX}{\9036\320}% U+1ED0 +\DeclareTextCompositeCommand{\d}{PU}{\OCIRCUMFLEX}{\9036\330}% U+1ED8 +\DeclareTextCompositeCommand{\`}{PU}{\OCIRCUMFLEX}{\9036\322}% U+1ED2 +\DeclareTextCompositeCommand{\h}{PU}{\OCIRCUMFLEX}{\9036\324}% U+1ED4 +\DeclareTextCompositeCommand{\~}{PU}{\OCIRCUMFLEX}{\9036\326}% U+1ED6 +\DeclareTextCompositeCommand{\'}{PU}{\OHORN}{\9036\332}% U+1EDA +\DeclareTextCompositeCommand{\d}{PU}{\OHORN}{\9036\342}% U+1EE2 +\DeclareTextCompositeCommand{\`}{PU}{\OHORN}{\9036\334}% U+1EDC +\DeclareTextCompositeCommand{\h}{PU}{\OHORN}{\9036\336}% U+1EDE +\DeclareTextCompositeCommand{\~}{PU}{\OHORN}{\9036\340}% U+1EE0 +\DeclareTextCompositeCommand{\'}{PU}{U}{\80\332}% U+00DA +\DeclareTextCompositeCommand{\d}{PU}{U}{\9036\344}% U+1EE4 +\DeclareTextCompositeCommand{\`}{PU}{U}{\80\331}% U+00D9 +\DeclareTextCompositeCommand{\h}{PU}{U}{\9036\346}% U+1EE6 +\DeclareTextCompositeCommand{\~}{PU}{U}{\81\150}% U+0168 +\DeclareTextCompositeCommand{\'}{PU}{\UHORN}{\9036\350}% U+1EE8 +\DeclareTextCompositeCommand{\d}{PU}{\UHORN}{\9036\360}% U+1EF0 +\DeclareTextCompositeCommand{\`}{PU}{\UHORN}{\9036\352}% U+1EEA +\DeclareTextCompositeCommand{\h}{PU}{\UHORN}{\9036\354}% U+1EEC +\DeclareTextCompositeCommand{\~}{PU}{\UHORN}{\9036\356}% U+1EEE +\DeclareTextCompositeCommand{\'}{PU}{Y}{\80\335}% U+00DD +\DeclareTextCompositeCommand{\d}{PU}{Y}{\9036\364}% U+1EF4 +\DeclareTextCompositeCommand{\`}{PU}{Y}{\9036\362}% U+1EF2 +\DeclareTextCompositeCommand{\h}{PU}{Y}{\9036\366}% U+1EF6 +\DeclareTextCompositeCommand{\~}{PU}{Y}{\9036\370}% U+1EF8 +% \end{macrocode} +% \begin{macrocode} +%</puvnenc> +% \end{macrocode} +% +% \subsection{PU encoding, additions for Arabi} +% +% This file is provided and maintained by Youssef Jabri. +% +% \begin{macrocode} +%<*puarenc> +% \end{macrocode} +% \begin{macrocode} +% U+0621;afii57409;ARABIC LETTER HAMZA +\DeclareTextCommand{\hamza}{PU}{\86\041}% U+0621 +% U+0622;afii57410;ARABIC LETTER ALEF WITH MADDA ABOVE +\DeclareTextCommand{\alefmadda}{PU}{\86\042}% U+0622 +% U+0623;afii57411;ARABIC LETTER ALEF WITH HAMZA ABOVE +\DeclareTextCommand{\alefhamza}{PU}{\86\043}% U+0623 +% U+0624;afii57412;ARABIC LETTER WAW WITH HAMZA ABOVE +\DeclareTextCommand{\wawhamza}{PU}{\86\044}% U+0624 +% U+0625;afii57413;ARABIC LETTER ALEF WITH HAMZA BELOW +\DeclareTextCommand{\aleflowerhamza}{PU}{\86\045}% U+0625 +% U+0626;afii57414;ARABIC LETTER YEH WITH HAMZA ABOVE +\DeclareTextCommand{\yahamza}{PU}{\86\046}% U+0626 +% U+0627;afii57415;ARABIC LETTER ALEF +\DeclareTextCommand{\alef}{PU}{\86\047}% U+0627 +% U+0628;afii57416;ARABIC LETTER BEH +\DeclareTextCommand{\baa}{PU}{\86\050}% U+0628 +% U+0629;afii57417;ARABIC LETTER TEH MARBUTA +\DeclareTextCommand{\T}{PU}{\86\051}% U+0629 +% U+062A;afii57418;ARABIC LETTER TEH +\DeclareTextCommand{\taa}{PU}{\86\052}% U+062A +% U+062B;afii57419;ARABIC LETTER THEH +\DeclareTextCommand{\thaa}{PU}{\86\053}% U+062B +% U+062C;afii57420;ARABIC LETTER JEEM +\DeclareTextCommand{\jeem}{PU}{\86\054}% U+062C +% U+062D;afii57421;ARABIC LETTER HAH +\DeclareTextCommand{\Haa}{PU}{\86\055}% U+062D +% U+062E;afii57422;ARABIC LETTER KHAH +\DeclareTextCommand{\kha}{PU}{\86\056}% U+062E +% U+062F;afii57423;ARABIC LETTER DAL +\DeclareTextCommand{\dal}{PU}{\86\057}% U+062F +% U+0630;afii57424;ARABIC LETTER THAL +\DeclareTextCommand{\dhal}{PU}{\86\060}% U+0630 +% U+0631;afii57425;ARABIC LETTER REH +\DeclareTextCommand{\ra}{PU}{\86\061}% U+0631 +% U+0632;afii57426;ARABIC LETTER ZAIN +\DeclareTextCommand{\zay}{PU}{\86\062}% U+0632 +% U+0633;afii57427;ARABIC LETTER SEEN +\DeclareTextCommand{\seen}{PU}{\86\063}% U+0633 +% U+0634;afii57428;ARABIC LETTER SHEEN +\DeclareTextCommand{\sheen}{PU}{\86\064}% U+0634 +% U+0635;afii57429;ARABIC LETTER SAD +\DeclareTextCommand{\sad}{PU}{\86\065}% U+0635 +% U+0636;afii57430;ARABIC LETTER DAD +\DeclareTextCommand{\dad}{PU}{\86\066}% U+0636 +% U+0637;afii57431;ARABIC LETTER TAH +\DeclareTextCommand{\Ta}{PU}{\86\067}% U+0637 +% U+0638;afii57432;ARABIC LETTER ZAH +\DeclareTextCommand{\za}{PU}{\86\070}% U+0638 +% U+0639;afii57433;ARABIC LETTER AIN +\DeclareTextCommand{\ayn}{PU}{\86\071}% U+0639 +% U+063A;afii57434;ARABIC LETTER GHAIN +\DeclareTextCommand{\ghayn}{PU}{\86\072}% U+063A +% U+0640;afii57440;ARABIC TATWEEL +\DeclareTextCommand{\tatweel}{PU}{\86\100}% U+0640 +% U+0641;afii57441;ARABIC LETTER FEH +\DeclareTextCommand{\fa}{PU}{\86\101}% U+0641 +% U+0642;afii57442;ARABIC LETTER QAF +\DeclareTextCommand{\qaf}{PU}{\86\102}% U+0642 +% U+0643;afii57443;ARABIC LETTER KAF +\DeclareTextCommand{\kaf}{PU}{\86\103}% U+0643 +% U+0644;afii57444;ARABIC LETTER LAM +\DeclareTextCommand{\lam}{PU}{\86\104}% U+0644 +% U+0645;afii57445;ARABIC LETTER MEEM +\DeclareTextCommand{\meem}{PU}{\86\105}% U+0645 +% U+0646;afii57446;ARABIC LETTER NOON +\DeclareTextCommand{\nun}{PU}{\86\106}% U+0646 +% U+0647;afii57470;ARABIC LETTER HEH +\DeclareTextCommand{\ha}{PU}{\86\107}% U+0647 +% U+0648;afii57448;ARABIC LETTER WAW +\DeclareTextCommand{\waw}{PU}{\86\110}% U+0648 +% U+0649;afii57449;ARABIC LETTER ALEF MAKSURA +\DeclareTextCommand{\alefmaqsura}{PU}{\86\111}% U+0649 +% U+064A;afii57450;ARABIC LETTER YEH +\DeclareTextCommand{\ya}{PU}{\86\112}% U+064A +% \end{macrocode} +% \begin{macrocode} +% U+064B;afii57451;ARABIC FATHATAN +\DeclareTextCommand{\nasb}{PU}{\86\113}% U+064B +% U+064C;afii57452;ARABIC DAMMATAN +\DeclareTextCommand{\raff}{PU}{\86\114}% U+064C +% U+064D;afii57453;ARABIC KASRATAN +\DeclareTextCommand{\jarr}{PU}{\86\115}% U+064D +% U+064E;afii57454;ARABIC FATHA +\DeclareTextCommand{\fatha}{PU}{\86\116}% U+064E +% U+064F;afii57455;ARABIC DAMMA +\DeclareTextCommand{\damma}{PU}{\86\117}% U+064F +% U+0650;afii57456;ARABIC KASRA +\DeclareTextCommand{\kasra}{PU}{\86\120}% U+0650 +% U+0651;afii57457;ARABIC SHADDA +\DeclareTextCommand{\shadda}{PU}{\86\121}% U+0651 +% U+0652;afii57458;ARABIC SUKUN +\DeclareTextCommand{\sukun}{PU}{\86\122}% U+0652 +% \end{macrocode} +% Farsi +% \begin{macrocode} +% U+067E ARABIC LETTER PEH; afii57506 +\DeclareTextCommand{\peh}{PU}{\86\176}% U+067E +% U+0686 ARABIC LETTER TCHEH; afii57507 +\DeclareTextCommand{\tcheh}{PU}{\86\206}% U+0686 +% U+0698 ARABIC LETTER JEH; afii57508 +\DeclareTextCommand{\jeh}{PU}{\86\230}% U+0698 +% U+06A9 ARABIC LETTER KEHEH +\DeclareTextCommand{\farsikaf}{PU}{\86\251}% U+06A9 +% U+06AF ARABIC LETTER GAF; afii57509 +\DeclareTextCommand{\gaf}{PU}{\86\257}% U+06AF +% U+06CC ARABIC LETTER FARSI YEH +\DeclareTextCommand{\farsiya}{PU}{\86\314}% U+06CC +% \end{macrocode} +% \begin{macrocode} +% U+200C ZERO WIDTH NON-JOINER; afii61664 +\DeclareTextCommand{\ZWNJ}{PU}{\9040\014}% U+200C +% U+200D ZERO WIDTH JOINER; afii301 +\DeclareTextCommand{\textEncodingNoboundary}{PU}{\9040\015}% U+200D +% \end{macrocode} +% \begin{macrocode} +%</puarenc> +% \end{macrocode} +% +% \begin{macrocode} +%<*psdextra> +\Hy@VersionCheck{psdextra.def} +\newcommand*{\psdmapshortnames}{% + \let\MVPlus\textMVPlus + \let\MVComma\textMVComma + \let\MVMinus\textMVMinus + \let\MVPeriod\textMVPeriod + \let\MVDivision\textMVDivision + \let\MVZero\textMVZero + \let\MVOne\textMVOne + \let\MVTwo\textMVTwo + \let\MVThree\textMVThree + \let\MVFour\textMVFour + \let\MVFive\textMVFive + \let\MVSix\textMVSix + \let\MVSeven\textMVSeven + \let\MVEight\textMVEight + \let\MVNine\textMVNine + \let\MVAt\textMVAt + \let\copyright\textcopyright + \let\twosuperior\texttwosuperior + \let\threesuperior\textthreesuperior + \let\onesuperior\textonesuperior + \let\Thorn\textThorn + \let\thorn\textthorn + \let\hbar\texthbar + \let\hausaB\texthausaB + \let\hausaD\texthausaD + \let\hausaK\texthausaK + \let\barl\textbarl + \let\inve\textinve + \let\slashc\textslashc + \let\scripta\textscripta + \let\openo\textopeno + \let\rtaild\textrtaild + \let\reve\textreve + \let\schwa\textschwa + \let\niepsilon\textniepsilon + \let\revepsilon\textrevepsilon + \let\rhookrevepsilon\textrhookrevepsilon + \let\scriptg\textscriptg + \let\scg\textscg + \let\ipagamma\textipagamma + \let\babygamma\textbabygamma + \let\bari\textbari + \let\niiota\textniiota + \let\sci\textsci + \let\scn\textscn + \let\niphi\textniphi + \let\longlegr\textlonglegr + \let\scr\textscr + \let\invscr\textinvscr + \let\esh\textesh + \let\baru\textbaru + \let\niupsilon\textniupsilon + \let\scriptv\textscriptv + \let\turnv\textturnv + \let\turnw\textturnw + \let\turny\textturny + \let\scy\textscy + \let\yogh\textyogh + \let\glotstop\textglotstop + \let\revglotstop\textrevglotstop + \let\invglotstop\textinvglotstop + \let\Gamma\textGamma + \let\Delta\textDelta + \let\Theta\textTheta + \let\Lambda\textLambda + \let\Xi\textXi + \let\Pi\textPi + \let\Sigma\textSigma + \let\Upsilon\textUpsilon + \let\Phi\textPhi + \let\Psi\textPsi + \let\Omega\textOmega + \let\alpha\textalpha + \let\beta\textbeta + \let\gamma\textgamma + \let\delta\textdelta + \let\epsilon\textepsilon + \let\zeta\textzeta + \let\eta\texteta + \let\theta\texttheta + \let\iota\textiota + \let\kappa\textkappa + \let\lambda\textlambda + \let\mu\textmu + \let\mugreek\textmugreek + \let\nu\textnu + \let\xi\textxi + \let\pi\textpi + \let\rho\textrho + \let\varsigma\textvarsigma + \let\sigma\textsigma + \let\tau\texttau + \let\upsilon\textupsilon + \let\phi\textphi + \let\chi\textchi + \let\psi\textpsi + \let\omega\textomega + \let\scd\textscd + \let\scu\textscu + \let\iinferior\textiinferior + \let\rinferior\textrinferior + \let\uinferior\textuinferior + \let\vinferior\textvinferior + \let\betainferior\textbetainferior + \let\gammainferior\textgammainferior + \let\rhoinferior\textrhoinferior + \let\phiinferior\textphiinferior + \let\chiinferior\textchiinferior + \let\barsci\textbarsci + \let\barp\textbarp + \let\barscu\textbarscu + \let\htrtaild\texthtrtaild + \let\dagger\textdagger + \let\bullet\textbullet + \let\hdotfor\texthdotfor + \let\prime\textprime + \let\second\textsecond + \let\third\textthird + \let\backprime\textbackprime + \let\lefttherefore\textlefttherefore + \let\fourth\textfourth + \let\diamonddots\textdiamonddots + \let\zerosuperior\textzerosuperior + \let\isuperior\textisuperior + \let\foursuperior\textfoursuperior + \let\fivesuperior\textfivesuperior + \let\sixsuperior\textsixsuperior + \let\sevensuperior\textsevensuperior + \let\eightsuperior\texteightsuperior + \let\ninesuperior\textninesuperior + \let\plussuperior\textplussuperior + \let\minussuperior\textminussuperior + \let\equalsuperior\textequalsuperior + \let\parenleftsuperior\textparenleftsuperior + \let\parenrightsuperior\textparenrightsuperior + \let\nsuperior\textnsuperior + \let\zeroinferior\textzeroinferior + \let\oneinferior\textoneinferior + \let\twoinferior\texttwoinferior + \let\threeinferior\textthreeinferior + \let\fourinferior\textfourinferior + \let\fiveinferior\textfiveinferior + \let\sixinferior\textsixinferior + \let\seveninferior\textseveninferior + \let\eightinferior\texteightinferior + \let\nineinferior\textnineinferior + \let\plusinferior\textplusinferior + \let\minusinferior\textminusinferior + \let\equalsinferior\textequalsinferior + \let\parenleftinferior\textparenleftinferior + \let\parenrightinferior\textparenrightinferior + \let\ainferior\textainferior + \let\einferior\texteinferior + \let\oinferior\textoinferior + \let\xinferior\textxinferior + \let\schwainferior\textschwainferior + \let\hinferior\texthinferior + \let\kinferior\textkinferior + \let\linferior\textlinferior + \let\minferior\textminferior + \let\ninferior\textninferior + \let\pinferior\textpinferior + \let\sinferior\textsinferior + \let\tinferior\texttinferior + \let\Deleatur\textDeleatur + \let\hslash\texthslash + \let\Im\textIm + \let\ell\textell + \let\wp\textwp + \let\Re\textRe + \let\mho\textmho + \let\riota\textriota + \let\Finv\textFinv + \let\aleph\textaleph + \let\beth\textbeth + \let\gimel\textgimel + \let\daleth\textdaleth + \let\fax\textfax + \let\Game\textGame + \let\leftarrow\textleftarrow + \let\uparrow\textuparrow + \let\rightarrow\textrightarrow + \let\downarrow\textdownarrow + \let\leftrightarrow\textleftrightarrow + \let\updownarrow\textupdownarrow + \let\nwarrow\textnwarrow + \let\nearrow\textnearrow + \let\searrow\textsearrow + \let\swarrow\textswarrow + \let\nleftarrow\textnleftarrow + \let\nrightarrow\textnrightarrow + \let\twoheadleftarrow\texttwoheadleftarrow + \let\ntwoheadleftarrow\textntwoheadleftarrow + \let\twoheaduparrow\texttwoheaduparrow + \let\twoheadrightarrow\texttwoheadrightarrow + \let\ntwoheadrightarrow\textntwoheadrightarrow + \let\twoheaddownarrow\texttwoheaddownarrow + \let\leftarrowtail\textleftarrowtail + \let\rightarrowtail\textrightarrowtail + \let\mapsto\textmapsto + \let\hookleftarrow\texthookleftarrow + \let\hookrightarrow\texthookrightarrow + \let\looparrowleft\textlooparrowleft + \let\looparrowright\textlooparrowright + \let\nleftrightarrow\textnleftrightarrow + \let\lightning\textlightning + \let\dlsh\textdlsh + \let\curvearrowleft\textcurvearrowleft + \let\curvearrowright\textcurvearrowright + \let\leftharpoonup\textleftharpoonup + \let\leftharpoondown\textleftharpoondown + \let\upharpoonright\textupharpoonright + \let\upharpoonleft\textupharpoonleft + \let\rightharpoonup\textrightharpoonup + \let\rightharpoondown\textrightharpoondown + \let\downharpoonright\textdownharpoonright + \let\downharpoonleft\textdownharpoonleft + \let\rightleftarrows\textrightleftarrows + \let\updownarrows\textupdownarrows + \let\leftrightarrows\textleftrightarrows + \let\leftleftarrows\textleftleftarrows + \let\upuparrows\textupuparrows + \let\rightrightarrows\textrightrightarrows + \let\downdownarrows\textdowndownarrows + \let\leftrightharpoons\textleftrightharpoons + \let\rightleftharpoons\textrightleftharpoons + \let\nLeftarrow\textnLeftarrow + \let\nLeftrightarrow\textnLeftrightarrow + \let\nRightarrow\textnRightarrow + \let\Leftarrow\textLeftarrow + \let\Uparrow\textUparrow + \let\Rightarrow\textRightarrow + \let\Downarrow\textDownarrow + \let\Leftrightarrow\textLeftrightarrow + \let\Updownarrow\textUpdownarrow + \let\Nwarrow\textNwarrow + \let\Nearrow\textNearrow + \let\Searrow\textSearrow + \let\Swarrow\textSwarrow + \let\Lleftarrow\textLleftarrow + \let\Rrightarrow\textRrightarrow + \let\leftsquigarrow\textleftsquigarrow + \let\rightsquigarrow\textrightsquigarrow + \let\dashleftarrow\textdashleftarrow + \let\dasheduparrow\textdasheduparrow + \let\dashrightarrow\textdashrightarrow + \let\dasheddownarrow\textdasheddownarrow + \let\pointer\textpointer + \let\downuparrows\textdownuparrows + \let\leftarrowtriangle\textleftarrowtriangle + \let\rightarrowtriangle\textrightarrowtriangle + \let\leftrightarrowtriangle\textleftrightarrowtriangle + \let\forall\textforall + \let\complement\textcomplement + \let\partial\textpartial + \let\exists\textexists + \let\nexists\textnexists + \let\emptyset\textemptyset + \let\triangle\texttriangle + \let\nabla\textnabla + \let\in\textin + \let\notin\textnotin + \let\smallin\textsmallin + \let\ni\textni + \let\notowner\textnotowner + \let\smallowns\textsmallowns + \let\prod\textprod + \let\amalg\textamalg + \let\sum\textsum + \let\mp\textmp + \let\dotplus\textdotplus + \let\Divides\textDivides + \let\DividesNot\textDividesNot + \let\setminus\textsetminus + \let\ast\textast + \let\circ\textcirc + \let\surd\textsurd + \let\propto\textpropto + \let\infty\textinfty + \let\angle\textangle + \let\measuredangle\textmeasuredangle + \let\sphericalangle\textsphericalangle + \let\mid\textmid + \let\nmid\textnmid + \let\parallel\textparallel + \let\nparallel\textnparallel + \let\wedge\textwedge + \let\owedge\textowedge + \let\vee\textvee + \let\ovee\textovee + \let\cap\textcap + \let\cup\textcup + \let\int\textint + \let\iint\textiint + \let\iiint\textiiint + \let\oint\textoint + \let\oiint\textoiint + \let\ointclockwise\textointclockwise + \let\ointctrclockwise\textointctrclockwise + \let\therefore\texttherefore + \let\because\textbecause + \let\vdotdot\textvdotdot + \let\squaredots\textsquaredots + \let\dotminus\textdotminus + \let\eqcolon\texteqcolon + \let\sim\textsim + \let\backsim\textbacksim + \let\nbacksim\textnbacksim + \let\wr\textwr + \let\nsim\textnsim + \let\eqsim\texteqsim + \let\neqsim\textneqsim + \let\simeq\textsimeq + \let\nsimeq\textnsimeq + \let\cong\textcong + \let\ncong\textncong + \let\approx\textapprox + \let\napprox\textnapprox + \let\approxeq\textapproxeq + \let\napproxeq\textnapproxeq + \let\triplesim\texttriplesim + \let\ntriplesim\textntriplesim + \let\backcong\textbackcong + \let\nbackcong\textnbackcong + \let\asymp\textasymp + \let\nasymp\textnasymp + \let\Bumpeq\textBumpeq + \let\nBumpeq\textnBumpeq + \let\bumpeq\textbumpeq + \let\nbumpeq\textnbumpeq + \let\doteq\textdoteq + \let\ndoteq\textndoteq + \let\doteqdot\textdoteqdot + \let\nDoteq\textnDoteq + \let\fallingdoteq\textfallingdoteq + \let\nfallingdoteq\textnfallingdoteq + \let\risingdoteq\textrisingdoteq + \let\nrisingdoteq\textnrisingdoteq + \let\colonequals\textcolonequals + \let\equalscolon\textequalscolon + \let\eqcirc\texteqcirc + \let\neqcirc\textneqcirc + \let\circeq\textcirceq + \let\ncirceq\textncirceq + \let\hateq\texthateq + \let\nhateq\textnhateq + \let\triangleeq\texttriangleeq + \let\neq\textneq + \let\ne\textne + \let\equiv\textequiv + \let\nequiv\textnequiv + \let\leq\textleq + \let\le\textle + \let\geq\textgeq + \let\ge\textge + \let\leqq\textleqq + \let\nleqq\textnleqq + \let\geqq\textgeqq + \let\ngeqq\textngeqq + \let\lneqq\textlneqq + \let\gneqq\textgneqq + \let\ll\textll + \let\nll\textnll + \let\gg\textgg + \let\ngg\textngg + \let\between\textbetween + \let\nless\textnless + \let\ngtr\textngtr + \let\nleq\textnleq + \let\ngeq\textngeq + \let\lesssim\textlesssim + \let\gtrsim\textgtrsim + \let\nlesssim\textnlesssim + \let\ngtrsim\textngtrsim + \let\lessgtr\textlessgtr + \let\gtrless\textgtrless + \let\ngtrless\textngtrless + \let\nlessgtr\textnlessgtr + \let\prec\textprec + \let\succ\textsucc + \let\preccurlyeq\textpreccurlyeq + \let\succcurlyeq\textsucccurlyeq + \let\precsim\textprecsim + \let\nprecsim\textnprecsim + \let\succsim\textsuccsim + \let\nsuccsim\textnsuccsim + \let\nprec\textnprec + \let\nsucc\textnsucc + \let\subset\textsubset + \let\supset\textsupset + \let\nsubset\textnsubset + \let\nsupset\textnsupset + \let\subseteq\textsubseteq + \let\supseteq\textsupseteq + \let\nsubseteq\textnsubseteq + \let\nsupseteq\textnsupseteq + \let\subsetneq\textsubsetneq + \let\supsetneq\textsupsetneq + \let\cupdot\textcupdot + \let\cupplus\textcupplus + \let\sqsubset\textsqsubset + \let\nsqsubset\textnsqsubset + \let\sqsupset\textsqsupset + \let\nsqsupset\textnsqsupset + \let\sqsubseteq\textsqsubseteq + \let\nsqsubseteq\textnsqsubseteq + \let\sqsupseteq\textsqsupseteq + \let\nsqsupseteq\textnsqsupseteq + \let\sqcap\textsqcap + \let\sqcup\textsqcup + \let\oplus\textoplus + \let\ominus\textominus + \let\otimes\textotimes + \let\oslash\textoslash + \let\odot\textodot + \let\circledcirc\textcircledcirc + \let\circledast\textcircledast + \let\circleddash\textcircleddash + \let\boxplus\textboxplus + \let\boxminus\textboxminus + \let\boxtimes\textboxtimes + \let\boxdot\textboxdot + \let\vdash\textvdash + \let\dashv\textdashv + \let\ndashv\textndashv + \let\top\texttop + \let\ndownvdash\textndownvdash + \let\bot\textbot + \let\nupvdash\textnupvdash + \let\vDash\textvDash + \let\Vdash\textVdash + \let\Vvdash\textVvdash + \let\nVvash\textnVvash + \let\VDash\textVDash + \let\nvdash\textnvdash + \let\nvDash\textnvDash + \let\nVdash\textnVdash + \let\nVDash\textnVDash + \let\lhd\textlhd + \let\rhd\textrhd + \let\unlhd\textunlhd + \let\unrhd\textunrhd + \let\multimapdotbothA\textmultimapdotbothA + \let\multimapdotbothB\textmultimapdotbothB + \let\multimap\textmultimap + \let\veebar\textveebar + \let\barwedge\textbarwedge + \let\star\textstar + \let\divideontimes\textdivideontimes + \let\bowtie\textbowtie + \let\ltimes\textltimes + \let\rtimes\textrtimes + \let\leftthreetimes\textleftthreetimes + \let\rightthreetimes\textrightthreetimes + \let\backsimeq\textbacksimeq + \let\nbacksimeq\textnbacksimeq + \let\curlyvee\textcurlyvee + \let\curlywedge\textcurlywedge + \let\Subset\textSubset + \let\nSubset\textnSubset + \let\Supset\textSupset + \let\nSupset\textnSupset + \let\Cap\textCap + \let\Cup\textCup + \let\pitchfork\textpitchfork + \let\lessdot\textlessdot + \let\gtrdot\textgtrdot + \let\lll\textlll + \let\ggg\textggg + \let\lesseqgtr\textlesseqgtr + \let\gtreqless\textgtreqless + \let\curlyeqprec\textcurlyeqprec + \let\ncurlyeqprec\textncurlyeqprec + \let\curlyeqsucc\textcurlyeqsucc + \let\ncurlyeqsucc\textncurlyeqsucc + \let\npreccurlyeq\textnpreccurlyeq + \let\nsucccurlyeq\textnsucccurlyeq + \let\nqsubseteq\textnqsubseteq + \let\nqsupseteq\textnqsupseteq + \let\sqsubsetneq\textsqsubsetneq + \let\sqsupsetneq\textsqsupsetneq + \let\lnsim\textlnsim + \let\gnsim\textgnsim + \let\precnsim\textprecnsim + \let\succnsim\textsuccnsim + \let\ntriangleleft\textntriangleleft + \let\ntriangleright\textntriangleright + \let\ntrianglelefteq\textntrianglelefteq + \let\ntrianglerighteq\textntrianglerighteq + \let\vdots\textvdots + \let\cdots\textcdots + \let\udots\textudots + \let\ddots\textddots + \let\barin\textbarin + \let\diameter\textdiameter + \let\backneg\textbackneg + \let\wasylozenge\textwasylozenge + \let\invbackneg\textinvbackneg + \let\clock\textclock + \let\ulcorner\textulcorner + \let\urcorner\texturcorner + \let\llcorner\textllcorner + \let\lrcorner\textlrcorner + \let\frown\textfrown + \let\smile\textsmile + \let\Keyboard\textKeyboard + \let\langle\textlangle + \let\rangle\textrangle + \let\APLinv\textAPLinv + \let\Tumbler\textTumbler + \let\notslash\textnotslash + \let\notbackslash\textnotbackslash + \let\boxbackslash\textboxbackslash + \let\APLleftarrowbox\textAPLleftarrowbox + \let\APLrightarrowbox\textAPLrightarrowbox + \let\APLuparrowbox\textAPLuparrowbox + \let\APLdownarrowbox\textAPLdownarrowbox + \let\APLinput\textAPLinput + \let\Request\textRequest + \let\Beam\textBeam + \let\hexagon\texthexagon + \let\APLbox\textAPLbox + \let\ForwardToIndex\textForwardToIndex + \let\RewindToIndex\textRewindToIndex + \let\bbslash\textbbslash + \let\CircledA\textCircledA + \let\CleaningF\textCleaningF + \let\CleaningFF\textCleaningFF + \let\CleaningP\textCleaningP + \let\CleaningPP\textCleaningPP + \let\CuttingLine\textCuttingLine + \let\UParrow\textUParrow + \let\bigtriangleup\textbigtriangleup + \let\Forward\textForward + \let\triangleright\texttriangleright + \let\RHD\textRHD + \let\DOWNarrow\textDOWNarrow + \let\bigtriangledown\textbigtriangledown + \let\Rewind\textRewind + \let\triangleleft\texttriangleleft + \let\LHD\textLHD + \let\diamond\textdiamond + \let\lozenge\textlozenge + \let\LEFTCIRCLE\textLEFTCIRCLE + \let\RIGHTCIRCLE\textRIGHTCIRCLE + \let\openbullet\textopenbullet + \let\boxbar\textboxbar + \let\bigcircle\textbigcircle + \let\Cloud\textCloud + \let\FiveStar\textFiveStar + \let\FiveStarOpen\textFiveStarOpen + \let\Phone\textPhone + \let\boxempty\textboxempty + \let\Checkedbox\textCheckedbox + \let\Crossedbox\textCrossedbox + \let\Coffeecup\textCoffeecup + \let\HandCuffLeft\textHandCuffLeft + \let\HandCuffRight\textHandCuffRight + \let\HandLeft\textHandLeft + \let\HandRight\textHandRight + \let\Radioactivity\textRadioactivity + \let\Biohazard\textBiohazard + \let\Ankh\textAnkh + \let\YinYang\textYinYang + \let\frownie\textfrownie + \let\smiley\textsmiley + \let\blacksmiley\textblacksmiley + \let\sun\textsun + \let\leftmoon\textleftmoon + \let\rightmoon\textrightmoon + \let\mercury\textmercury + \let\earth\textearth + \let\male\textmale + \let\jupiter\textjupiter + \let\saturn\textsaturn + \let\uranus\texturanus + \let\neptune\textneptune + \let\pluto\textpluto + \let\aries\textaries + \let\taurus\texttaurus + \let\gemini\textgemini + \let\cancer\textcancer + \let\leo\textleo + \let\virgo\textvirgo + \let\libra\textlibra + \let\scorpio\textscorpio + \let\sagittarius\textsagittarius + \let\capricornus\textcapricornus + \let\aquarius\textaquarius + \let\pisces\textpisces + \let\quarternote\textquarternote + \let\twonotes\texttwonotes + \let\sixteenthnote\textsixteenthnote + \let\flat\textflat + \let\natural\textnatural + \let\sharp\textsharp + \let\recycle\textrecycle + \let\Wheelchair\textWheelchair + \let\Flag\textFlag + \let\MineSign\textMineSign + \let\dsmilitary\textdsmilitary + \let\dsmedical\textdsmedical + \let\dsjuridical\textdsjuridical + \let\dschemical\textdschemical + \let\dsbiological\textdsbiological + \let\dscommercial\textdscommercial + \let\manstar\textmanstar + \let\danger\textdanger + \let\FemaleFemale\textFemaleFemale + \let\MaleMale\textMaleMale + \let\FemaleMale\textFemaleMale + \let\Hermaphrodite\textHermaphrodite + \let\Neutral\textNeutral + \let\hexstar\texthexstar + \let\SunCload\textSunCload + \let\Rain\textRain + \let\noway\textnoway + \let\Mountain\textMountain + \let\Tent\textTent + \let\ScissorRight\textScissorRight + \let\ScissorRightBrokenTop\textScissorRightBrokenTop + \let\ScissorHollowRight\textScissorHollowRight + \let\PhoneHandset\textPhoneHandset + \let\Tape\textTape + \let\Plane\textPlane + \let\Envelope\textEnvelope + \let\Peace\textPeace + \let\WritingHand\textWritingHand + \let\PencilRightDown\textPencilRightDown + \let\PencilRight\textPencilRight + \let\PencilRightUp\textPencilRightUp + \let\NibRight\textNibRight + \let\NibSolidRight\textNibSolidRight + \let\Checkmark\textCheckmark + \let\CheckmarkBold\textCheckmarkBold + \let\XSolid\textXSolid + \let\XSolidBold\textXSolidBold + \let\XSolidBrush\textXSolidBrush + \let\PlusOutline\textPlusOutline + \let\Plus\textPlus + \let\PlusThinCenterOpen\textPlusThinCenterOpen + \let\PlusCenterOpen\textPlusCenterOpen + \let\Cross\textCross + \let\CrossOpenShadow\textCrossOpenShadow + \let\CrossOutline\textCrossOutline + \let\CrossMaltese\textCrossMaltese + \let\DavidStar\textDavidStar + \let\FourAsterisk\textFourAsterisk + \let\JackStar\textJackStar + \let\JackStarBold\textJackStarBold + \let\ClowerTips\textClowerTips + \let\FourStar\textFourStar + \let\FourStarOpen\textFourStarOpen + \let\FiveStarOpenCircled\textFiveStarOpenCircled + \let\FiveStarCenterOpen\textFiveStarCenterOpen + \let\FiveStarOpenDotted\textFiveStarOpenDotted + \let\FiveStarOutline\textFiveStarOutline + \let\FiveStarOutlineHeavy\textFiveStarOutlineHeavy + \let\FiveStarConvex\textFiveStarConvex + \let\FiveStarShadow\textFiveStarShadow + \let\AsteriskBold\textAsteriskBold + \let\AsteriskCenterOpen\textAsteriskCenterOpen + \let\EightStarTaper\textEightStarTaper + \let\EightStarConvex\textEightStarConvex + \let\SixStar\textSixStar + \let\EightStar\textEightStar + \let\EightStarBold\textEightStarBold + \let\TwelveStar\textTwelveStar + \let\SixteenStarLight\textSixteenStarLight + \let\SixFlowerPetalRemoved\textSixFlowerPetalRemoved + \let\SixFlowerOpenCenter\textSixFlowerOpenCenter + \let\Asterisk\textAsterisk + \let\SixFlowerAlternate\textSixFlowerAlternate + \let\FiveFlowerPetal\textFiveFlowerPetal + \let\FiveFlowerOpen\textFiveFlowerOpen + \let\EightFlowerPetal\textEightFlowerPetal + \let\SunshineOpenCircled\textSunshineOpenCircled + \let\SixFlowerAltPetal\textSixFlowerAltPetal + \let\SnowflakeChevron\textSnowflakeChevron + \let\Snowflake\textSnowflake + \let\SnowflakeChevronBold\textSnowflakeChevronBold + \let\Sparkle\textSparkle + \let\SparkleBold\textSparkleBold + \let\AsteriskRoundedEnds\textAsteriskRoundedEnds + \let\EightFlowerPetalRemoved\textEightFlowerPetalRemoved + \let\EightAsterisk\textEightAsterisk + \let\CircleShadow\textCircleShadow + \let\SquareShadowBottomRight\textSquareShadowBottomRight + \let\SquareTopRight\textSquareTopRight + \let\SquareCastShadowBottomRight\textSquareCastShadowBottomRight + \let\SquareCastShadowTopRight\textSquareCastShadowTopRight + \let\DiamandSolid\textDiamandSolid + \let\RectangleThin\textRectangleThin + \let\Rectangle\textRectangle + \let\RectangleBold\textRectangleBold + \let\perp\textperp + \let\notperp\textnotperp + \let\veedot\textveedot + \let\wedgedot\textwedgedot + \let\leftspoon\textleftspoon + \let\lbrackdbl\textlbrackdbl + \let\rbrackdbl\textrbrackdbl + \let\circlearrowleft\textcirclearrowleft + \let\circlearrowright\textcirclearrowright + \let\longleftarrow\textlongleftarrow + \let\longrightarrow\textlongrightarrow + \let\longleftrightarrow\textlongleftrightarrow + \let\Longleftarrow\textLongleftarrow + \let\Longrightarrow\textLongrightarrow + \let\Longleftrightarrow\textLongleftrightarrow + \let\longmapsto\textlongmapsto + \let\Longmapsfrom\textLongmapsfrom + \let\Longmapsto\textLongmapsto + \let\nwsearrow\textnwsearrow + \let\neswarrow\textneswarrow + \let\lhooknwarrow\textlhooknwarrow + \let\rhooknearrow\textrhooknearrow + \let\lhooksearrow\textlhooksearrow + \let\rhookswarrow\textrhookswarrow + \let\leadsto\textleadsto + \let\rcurvearrowne\textrcurvearrowne + \let\lcurvearrowse\textlcurvearrowse + \let\lcurvearrowsw\textlcurvearrowsw + \let\rcurvearrowse\textrcurvearrowse + \let\lcurvearrowdown\textlcurvearrowdown + \let\rcurvearrowdown\textrcurvearrowdown + \let\rcurvearrowleft\textrcurvearrowleft + \let\rcurvearrowright\textrcurvearrowright + \let\leftrightharpoon\textleftrightharpoon + \let\rightleftharpoon\textrightleftharpoon + \let\updownharpoonrightleft\textupdownharpoonrightleft + \let\updownharpoonleftright\textupdownharpoonleftright + \let\leftleftharpoons\textleftleftharpoons + \let\upupharpoons\textupupharpoons + \let\rightrightharpoons\textrightrightharpoons + \let\downdownharpoons\textdowndownharpoons + \let\leftbarharpoon\textleftbarharpoon + \let\barleftharpoon\textbarleftharpoon + \let\rightbarharpoon\textrightbarharpoon + \let\barrightharpoon\textbarrightharpoon + \let\updownharpoons\textupdownharpoons + \let\downupharpoons\textdownupharpoons + \let\moo\textmoo + \let\llparenthesis\textllparenthesis + \let\rrparenthesis\textrrparenthesis + \let\invdiameter\textinvdiameter + \let\obar\textobar + \let\obslash\textobslash + \let\obot\textobot + \let\NoChemicalCleaning\textNoChemicalCleaning + \let\olessthan\textolessthan + \let\ogreaterthan\textogreaterthan + \let\boxslash\textboxslash + \let\boxbslash\textboxbslash + \let\boxast\textboxast + \let\boxcircle\textboxcircle + \let\boxbox\textboxbox + \let\Valve\textValve + \let\multimapboth\textmultimapboth + \let\shuffle\textshuffle + \let\uplus\textuplus + \let\bigdoublewedge\textbigdoublewedge + \let\bigdoublevee\textbigdoublevee + \let\Join\textJoin + \let\fatsemi\textfatsemi + \let\circplus\textcircplus + \let\minusdot\textminusdot + \let\dottimes\textdottimes + \let\dtimes\textdtimes + \let\odiv\textodiv + \let\invneg\textinvneg + \let\sqdoublecap\textsqdoublecap + \let\capdot\textcapdot + \let\sqdoublecup\textsqdoublecup + \let\doublewedge\textdoublewedge + \let\doublevee\textdoublevee + \let\doublebarwedge\textdoublebarwedge + \let\veedoublebar\textveedoublebar + \let\eqdot\texteqdot + \let\neqdot\textneqdot + \let\coloncolonequals\textcoloncolonequals + \let\leqslant\textleqslant + \let\nleqslant\textnleqslant + \let\geqslant\textgeqslant + \let\ngeqslant\textngeqslant + \let\lessapprox\textlessapprox + \let\nlessapprox\textnlessapprox + \let\gtrapprox\textgtrapprox + \let\ngtrapprox\textngtrapprox + \let\lneq\textlneq + \let\gneq\textgneq + \let\lnapprox\textlnapprox + \let\gnapprox\textgnapprox + \let\lesseqqgtr\textlesseqqgtr + \let\gtreqqless\textgtreqqless + \let\eqslantless\texteqslantless + \let\eqslantgtr\texteqslantgtr + \let\leftslice\textleftslice + \let\rightslice\textrightslice + \let\preceq\textpreceq + \let\npreceq\textnpreceq + \let\succeq\textsucceq + \let\nsucceq\textnsucceq + \let\precneq\textprecneq + \let\succneq\textsuccneq + \let\preceqq\textpreceqq + \let\npreceqq\textnpreceqq + \let\succeqq\textsucceqq + \let\nsucceqq\textnsucceqq + \let\precneqq\textprecneqq + \let\succneqq\textsuccneqq + \let\precapprox\textprecapprox + \let\nprecapprox\textnprecapprox + \let\succapprox\textsuccapprox + \let\nsuccapprox\textnsuccapprox + \let\precnapprox\textprecnapprox + \let\succnapprox\textsuccnapprox + \let\subseteqq\textsubseteqq + \let\nsubseteqq\textnsubseteqq + \let\supseteqq\textsupseteqq + \let\nsupseteqq\textnsupseteqq + \let\dashV\textdashV + \let\ndashV\textndashV + \let\Dashv\textDashv + \let\nDashv\textnDashv + \let\DashV\textDashV + \let\nDashV\textnDashV + \let\downmodels\textdownmodels + \let\ndownmodels\textndownmodels + \let\upmodels\textupmodels + \let\nupmodels\textnupmodels + \let\upspoon\textupspoon + \let\interleave\textinterleave + \let\sslash\textsslash + \let\pentagon\textpentagon + \let\varhexagon\textvarhexagon + \let\jinferior\textjinferior + \let\slashdiv\textslashdiv + \let\fivedots\textfivedots + \let\oo\textoo + \let\GaPa\textGaPa + \let\HaPa\textHaPa + \let\ViPa\textViPa + \let\AcPa\textAcPa + \let\SePa\textSePa + \let\ZwPa\textZwPa + \let\fullnote\textfullnote + \let\halfnote\texthalfnote + \let\Vier\textVier + \let\Acht\textAcht + \let\Sech\textSech + \let\Zwdr\textZwdr + \let\Mundus\textMundus + \let\Moon\textMoon + \let\ManFace\textManFace + \let\WomanFace\textWomanFace + \let\Fax\textFax + \let\Fire\textFire + \let\Bicycle\textBicycle + \let\Gentsroom\textGentsroom + \let\Ladiesroom\textLadiesroom + \let\ccnc\textccnc + \let\ccsa\textccsa + \let\Info\textInfo + \let\CESign\textCESign + \let\neg\textneg + \let\times\texttimes + \let\div\textdiv + \let\pm\textpm + \let\cdot\textcdot +}% \psdmapshortnames +\newcommand*{\psdaliasnames}{% + \let\epsdice\HyPsd@DieFace + \let\fcdice\HyPsd@DieFace + \let\MoonPha\HyPsd@MoonPha + \let\mathdollar\textdollar + \let\EyesDollar\textdollar + \let\binampersand\textampersand + \let\with\textampersand + \let\mathunderscore\textunderscore + \let\textvertline\textbar + \let\mathsterling\textsterling + \let\pounds\textsterling + \let\brokenvert\textbrokenbar + \let\mathsection\textsection + \let\S\textsection + \let\mathparagraph\textparagraph + \let\MultiplicationDot\textperiodcentered + \let\Squaredot\textperiodcentered + \let\vartimes\textmultiply + \let\MVMultiplication\textmultiply + \let\eth\dh + \let\crossd\textcrd + \let\textbard\textcrd + \let\bard\textcrd + \let\textcrh\texthbar + \let\crossh\texthbar + \let\planck\texthbar + \let\eng\ng + \let\engma\ng + \let\crossb\textcrb + \let\textbarb\textcrb + \let\barb\textcrb + \let\Florin\textflorin + \let\hv\texthvlig + \let\hausak\texthtk + \let\crossnilambda\textcrlambda + \let\barlambda\textcrlambda + \let\lambdabar\textcrlambda + \let\lambdaslash\textcrlambda + \let\textnrleg\textPUnrleg + \let\textpipevar\textpipe + \let\textdoublepipevar\textdoublepipe + \let\textdoublebarpipevar\textdoublebarpipe + \let\textcrg\textgslash + \let\textdblig\textPUdblig + \let\textqplig\textPUqplig + \let\textcentoldstyle\textslashc + \let\textbarc\textslashc + \let\inva\textturna + \let\vara\textscripta + \let\invscripta\textturnscripta + \let\rotvara\textturnscripta + \let\hookb\texthtb + \let\hausab\texthtb + \let\varopeno\textopeno + \let\curlyc\textctc + \let\taild\textrtaild + \let\hookd\texthtd + \let\hausad\texthtd + \let\er\textrhookschwa + \let\epsi\textniepsilon + \let\hookrevepsilon\textrhookrevepsilon + \let\closedrevepsilon\textcloserevepsilon + \let\barj\textbardotlessj + \let\hookg\texthtg + \let\varg\textscriptg + \let\vod\textipagamma + \let\invh\textturnh + \let\udesc\textturnh + \let\hookh\texthth + \let\voicedh\texthth + \let\hookheng\texththeng + \let\ibar\textbari + \let\vari\textniiota + \let\tildel\textltilde + \let\latfric\textbeltl + \let\taill\textrtaill + \let\lz\textlyoghlig + \let\invm\textturnm + \let\rotm\textturnm + \let\legm\textturnmrleg + \let\labdentalnas\textltailm + \let\emgma\textltailm + \let\nj\textltailn + \let\enya\textltailn + \let\tailn\textrtailn + \let\closedniomega\textcloseomega + \let\varomega\textcloseomega + \let\invr\textturnr + \let\rotr\textturnr + \let\invlegr\textturnlonglegr + \let\tailinvr\textturnrrtail + \let\legr\textlonglegr + \let\tailr\textrtailr + \let\flapr\textfishhookr + \let\flap\textfishhookr + \let\tails\textrtails + \let\curlyesh\textctesh + \let\clickt\textturnt + \let\tailt\textrtailt + \let\ubar\textbaru + \let\rotOmega\textniupsilon + \let\invv\textturnv + \let\pwedge\textturnv + \let\invw\textturnw + \let\rotw\textturnw + \let\invy\textturny + \let\roty\textturny + \let\tailz\textrtailz + \let\curlyz\textctz + \let\curlyyogh\textctyogh + \let\ejective\textglotstop + \let\glottal\textglotstop + \let\reveject\textrevglotstop + \let\clickc\textstretchc + \let\textstretchcvar\textstretchc + \let\clickb\textbullseye + \let\textObullseye\textbullseye + \let\textctjvar\textctj + \let\textturnsck\textturnk + \let\dz\textdzlig + \let\tesh\textteshlig + \let\digamma\textdigammagreek + \let\hardsign\cyrhrdsn + \let\softsign\cyrsftsn + \let\hebsin\hebshin + \let\textsck\textPUsck + \let\textscm\textPUscm + \let\textscp\textPUscp + \let\textrevscr\textPUrevscr + \let\textrhooka\textPUrhooka + \let\textrhooke\textPUrhooke + \let\textrhookepsilon\textPUrhookepsilon + \let\textrhookopeno\textPUrhookopeno + \let\textdoublevertline\textbardbl + \let\dag\textdagger + \let\ddagger\textdaggerdbl + \let\ddag\textdaggerdbl + \let\mathellipsis\textellipsis + \let\EurDig\texteuro + \let\EURdig\texteuro + \let\EurHv\texteuro + \let\EURhv\texteuro + \let\EurCr\texteuro + \let\EURcr\texteuro + \let\EurTm\texteuro + \let\EURtm\texteuro + \let\Eur\texteuro + \let\Denarius\textDeleatur + \let\agemO\textmho + \let\EstimatedSign\textestimated + \let\Ecommerce\textestimated + \let\bindnasrepma\textinvamp + \let\parr\textinvamp + \let\MVRightArrow\textrightarrow + \let\MVRightarrow\textrightarrow + \let\MVArrowDown\textdownarrow + \let\Force\textdownarrow + \let\textglobrise\textnearrow + \let\textglobfall\textsearrow + \let\Lightning\textlightning + \let\Conclusion\textRightarrow + \let\dashedleftarrow\textdashleftarrow + \let\dashedrightarrow\textdashrightarrow + \let\varnothing\textemptyset + \let\owns\textni + \let\notni\textnotowner + \let\varprop\textpropto + \let\varangle\textsphericalangle + \let\Anglesign\textsphericalangle + \let\AngleSign\textsphericalangle + \let\notdivides\textnmid + \let\varowedge\textowedge + \let\varovee\textovee + \let\varint\textint + \let\varoint\textoint + \let\downtherefore\textbecause + \let\textdotdiv\textdotminus + \let\AC\textsim + \let\wreath\textwr + \let\nthickapprox\textnapprox + \let\VHF\texttriplesim + \let\notasymp\textnasymp + \let\Doteq\textdoteqdot + \let\corresponds\texthateq + \let\Corresponds\texthateq + \let\nequal\textneq + \let\Congruent\textequiv + \let\NotCongruent\textnequiv + \let\notequiv\textnequiv + \let\LessOrEqual\textleq + \let\LargerOrEqual\textgeq + \let\apprle\textlesssim + \let\apprge\textgtrsim + \let\varoplus\textoplus + \let\varominus\textominus + \let\varotimes\textotimes + \let\varoslash\textoslash + \let\varodot\textodot + \let\ocirc\textcircledcirc + \let\varocircle\textcircledcirc + \let\varoast\textcircledast + \let\oasterisk\textcircledast + \let\rightvdash\textvdash + \let\leftvdash\textdashv + \let\nleftvdash\textndashv + \let\downvdash\texttop + \let\upvdash\textbot + \let\nperp\textnupvdash + \let\models\textvDash + \let\rightmodels\textvDash + \let\rightVdash\textVdash + \let\rightModels\textVDash + \let\nrightvdash\textnvdash + \let\nrightmodels\textnvDash + \let\nmodels\textnvDash + \let\nrightVdash\textnVdash + \let\nrightModels\textnVDash + \let\lessclosed\textlhd + \let\gtrclosed\textrhd + \let\leqclosed\textunlhd + \let\trianglelefteq\textunlhd + \let\geqclosed\textunrhd + \let\trianglerighteq\textunrhd + \let\Bowtie\textbowtie + \let\varcurlyvee\textcurlyvee + \let\varcurlywedge\textcurlywedge + \let\doublecap\textCap + \let\doublecup\textCup + \let\varsqsubsetneq\textsqsubsetneq + \let\varsqsupsetneq\textsqsupsetneq + \let\nlessclosed\textntriangleleft + \let\ngtrclosed\textntriangleright + \let\Clocklogo\textclock + \let\ClockLogo\textclock + \let\baro\textstmaryrdbaro + \let\varparallelinv\textbbslash + \let\CleaningA\textCircledA + \let\Kutline\textCuttingLine + \let\CutLine\textCuttingLine + \let\Cutline\textCuttingLine + \let\MoveUp\textUParrow + \let\APLup\textbigtriangleup + \let\Bleech\textbigtriangleup + \let\MoveDown\textDOWNarrow + \let\APLdown\textbigtriangledown + \let\Diamond\textdiamond + \let\varbigcirc\textbigcircle + \let\Telefon\textPhone + \let\Box\textboxempty + \let\CheckedBox\textCheckedbox + \let\XBox\textCrossedbox + \let\CrossedBox\textCrossedbox + \let\rightpointleft\textHandLeft + \let\leftpointright\textHandRight + \let\PointingHand\textHandRight + \let\Pointinghand\textHandRight + \let\Radiation\textRadioactivity + \let\Yinyang\textYinYang + \let\YingYang\textYinYang + \let\Yingyang\textYinYang + \let\Frowny\textfrownie + \let\Smiley\textsmiley + \let\Sun\textsun + \let\Mercury\textmercury + \let\textfemale\textPUfemale + \let\female\textPUfemale + \let\venus\textPUfemale + \let\Venus\textPUfemale + \let\Female\textPUfemale + \let\Earth\textearth + \let\mars\textmale + \let\Mars\textmale + \let\Male\textmale + \let\Jupiter\textjupiter + \let\Saturn\textsaturn + \let\Uranus\texturanus + \let\Neptune\textneptune + \let\Pluto\textpluto + \let\Aries\textaries + \let\Taurus\texttaurus + \let\Gemini\textgemini + \let\Cancer\textcancer + \let\Leo\textleo + \let\Virgo\textvirgo + \let\Libra\textlibra + \let\Scorpio\textscorpio + \let\Sagittarius\textsagittarius + \let\Capricorn\textcapricornus + \let\Aquarius\textaquarius + \let\Pisces\textpisces + \let\spadesuit\textspadesuitblack + \let\Heart\textheartsuitwhite + \let\heartsuit\textheartsuitwhite + \let\diamondsuit\textdiamondsuitwhite + \let\clubsuit\textclubsuitblack + \let\eighthnote\textmusicalnote + \let\Recycling\textrecycle + \let\VarFlag\textFlag + \let\textxswup\textdsmilitary + \let\textuncrfemale\textPUuncrfemale + \let\Football\textSoccerBall + \let\CutLeft\textScissorRightBrokenBottom + \let\Cutright\textScissorRightBrokenBottom + \let\RightScissors\textScissorRight + \let\Leftscissors\textScissorRight + \let\Letter\textEnvelope + \let\Writinghand\textWritingHand + \let\checkmark\textCheckmark + \let\davidstar\textDavidStar + \let\llbracket\textlbrackdbl + \let\rrbracket\textrbrackdbl + \let\RightTorque\textlcurvearrowdown + \let\Righttorque\textlcurvearrowdown + \let\LeftTorque\textrcurvearrowdown + \let\Lefttorque\textrcurvearrowdown + \let\textvarobar\textobar + \let\circledbslash\textobslash + \let\obackslash\textobslash + \let\varobslash\textobslash + \let\odplus\textobot + \let\varolessthan\textolessthan + \let\varogreaterthan\textogreaterthan + \let\divdot\textminusdot + \let\doublesqcap\textsqdoublecap + \let\doublesqcup\textsqdoublecup + \let\merge\textdoublevee + \let\leftVdash\textdashV + \let\nleftVdash\textndashV + \let\leftmodels\textDashv + \let\nleftmodels\textnDashv + \let\leftModels\textDashV + \let\nleftModels\textnDashV + \let\varparallel\textsslash + \let\textheng\textPUheng + \let\textlhookfour\textPUlhookfour + \let\textscf\textPUscf + \let\textaolig\textPUaolig + \let\Ganz\textfullnote + \let\Halb\texthalfnote + \let\Womanface\textWomanFace + \let\Faxmachine\textFax + \let\CEsign\textCESign +}% \psdaliasnames +%</psdextra> +% \end{macrocode} +% +% \section{End of file hycheck.tex} +% +% \begin{macrocode} +%<*check> +\typeout{} +\begin{document} +\end{document} +%</check> +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/macros/latex/contrib/hyperref/hyperref.ins b/macros/latex/contrib/hyperref/hyperref.ins new file mode 100644 index 0000000000..5779e77110 --- /dev/null +++ b/macros/latex/contrib/hyperref/hyperref.ins @@ -0,0 +1,101 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1995-1999 Sebastian Rahtz +%% 1999-2000 Sebastian Rahtz, Heiko Oberdiek +%% 2001-2012 Heiko Oberdiek +%% 2016 Oberdiek Package Support Group +%% +%% This file is part of the `Hyperref Bundle'. +%% ------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Heiko Oberdiek. +%% +%% The list of all files belonging to the `Hyperref Bundle' is +%% given in the file `manifest.txt'. +%% +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{2010/01/25} +\def\batchfile{hyperref.ins} +\input docstrip + +\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.4 or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex and get a newer one.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname\end +\fi + +\keepsilent +\askforoverwritefalse +%\askonceonly +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\preamble +\endpreamble + +\generate{% + \file{hyperref.drv}{\from{hyperref.dtx}{driver}} + \file{hycheck.tex}{\from{hyperref.dtx}{check}} + \file{backref.drv}{\from{backref.dtx}{driver}} + \file{nameref.drv}{\from{nameref.dtx}{driver}} + \usedir{tex/latex/hyperref} + \file{backref.sty}{\from{backref.dtx}{package}} + \file{nameref.sty}{\from{nameref.dtx}{package}} + \file{hyperref.sty}{\from{hyperref.dtx}{package}} + \file{hypertex.def}{\from{hyperref.dtx}{hypertex}} + \file{pdfmark.def}{\from{hyperref.dtx}{pdfmark,pdfmarkbase,pdfform,outlines}} + \file{hvtexmrk.def}{\from{hyperref.dtx}{vtexpdfmark}} + \file{htexture.def}{\from{hyperref.dtx}{textures}} + \file{hdvipson.def}{\from{hyperref.dtx}{dvipsone}} + \file{hdvips.def}{\from{hyperref.dtx}{dvips}} + \file{hpdftex.def}{\from{hyperref.dtx}{pdftex,pdfform,outlines}} + \file{hluatex.def}{\from{hyperref.dtx}{luatex}\from{hluatex.dtx}{luatex}} + \file{hdviwind.def}{\from{hyperref.dtx}{dviwindo,pdfmarkbase}} + \file{htex4ht.def}{\from{hyperref.dtx}{tex4ht}} + \file{htex4ht.cfg}{\from{hyperref.dtx}{tex4htcfg}} + \file{hvtex.def}{\from{hyperref.dtx}{vtex,outlines}} + \file{hvtexhtm.def}{\from{hyperref.dtx}{vtexhtml}} + \file{hdvipdfm.def}{\from{hyperref.dtx}{dvipdfm,pdfform,outlines}} + \file{hxetex.def}{\from{hyperref.dtx}{xetex,pdfform,outlines}} + \file{pd1enc.def}{\from{hyperref.dtx}{pd1enc}} + \file{puenc.def}{\from{hyperref.dtx}{puenc}} + \file{puvnenc.def}{\from{hyperref.dtx}{puvnenc}} + \file{puarenc.def}{\from{hyperref.dtx}{puarenc}} + \file{psdextra.def}{\from{hyperref.dtx}{psdextra}} + \file{nohyperref.sty}{\from{hyperref.dtx}{nohyperref}} +} + +\Msg{***************************************************************} +\Msg{*} +\Msg{* \space To finish the installation you have to copy the files } +\Msg{*} +\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX} +\Msg{*} +\Msg{* \space (TDS directory: texmf/tex/latex/hyperref/).} +\Msg{*} +\Msg{***************************************************************} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/macros/latex/contrib/hyperref/hyperref.pdf b/macros/latex/contrib/hyperref/hyperref.pdf Binary files differnew file mode 100644 index 0000000000..de7cea1932 --- /dev/null +++ b/macros/latex/contrib/hyperref/hyperref.pdf diff --git a/macros/latex/contrib/hyperref/manifest.txt b/macros/latex/contrib/hyperref/manifest.txt new file mode 100644 index 0000000000..6563234860 --- /dev/null +++ b/macros/latex/contrib/hyperref/manifest.txt @@ -0,0 +1,122 @@ +% CONTENTS OF THE HYPERREF BUNDLE +% =============================== + +hyperref.dtx + Main package with various drivers. +backref.dtx + Bibliographical back referencing. +nameref.dtx + Cross-referencing by name of section. + +hyperref.pdf, backref.pdf, nameref.pdf + Source code documentation. + +hyperref.ins + Docstrip batch file. + +minitoc-hyper.sty + Patched version of `minitoc.sty' to work with `hyperref.sty'. +ntheorem-hyper.sty + Patched version of `ntheorem.sty' to work with `hyperref.sty'. +xr-hyper.sty + Patched version of `xr.sty' to work with `hyperref.sty'. + +bmhydoc.sty + Help package for generating the documentation. + +psdmapshortnames.pl + Helper script for generating psdextra.def. + +ChangeLog.txt + History of versions +hylatex.ltx + For creating format file. +manifest.txt + Short description of the files. +README.md + Short readme file. + +% Derived files +% ============= + +backref.sty +nameref.sty +hyperref.sty +nohyperref.sty + LaTeX package files. +hycheck.tex + Test file. +backref.drv +nameref.drv +hyperref.drv + Documentation drivers. +hypertex.def +pdfmark.def +hvtexmrk.def +htexture.def +hdvipson.def +hdvips.def +hpdftex.def +hdviwind.def +htex4ht.def +hvtex.def +hvtexhtm.def +hdvipdfm.def +hxetex.def + Hyperref drivers. +pd1enc.def +puenc.def +puvnenc.def +puarenc.def +psdextra.def + Font encoding definition files. + +% Directory doc/ +% ============= + +manual.pdf + Manual, but a little out of date. +manual.html, manual2.html, manual3.html, manual.css, +cmsy10-21.gif, cmmi10-22.gif + HTML version of the manual. +options.tex, options.pdf + Short description of options from package `hyperref'. +paper.pdf + Online version of paper for Heiko Oberdiek's talk + at EuroTeX'99. +slides.pdf + Slides for Heiko Oberdiek's talk at EuroTeX'99. + +% Directory test/ +% ============== + +test0.tex, test0.dvi, hog.eps, hog.pdf +test1.tex +test2.tex +test3.tex, phys1.jpg, phys2.jpg +test4.tex, bit.tex +test5.tex +test6.tex +test7.tex +test8.tex +testams.tex +testbib.tex, testbib.bib, testbib.bbl +testbookmark.tex +testfor2.tex +testform.tex +testnb.tex +testoz.tex +testslide.tex, seminar.con +testurl.tex, testurl.bib, testurl.bbl +picture.eps, picture.pdf, picture.png + Used in `test0.tex' and `test1.tex'. + +testbmgl.tex + Test file that produces all glyphs of PDFDocEncoding + in the bookmarks and shows the commands to produce them. +testbmu.tex + Test file that produces glyphs 0x0000 until 0x04FF + of Unicode in the bookmarks and the commands. + (Caution: large pool size needed.) + +test-bm-pu-licr.tex diff --git a/macros/latex/contrib/hyperref/minitoc-hyper.sty b/macros/latex/contrib/hyperref/minitoc-hyper.sty new file mode 100644 index 0000000000..2106de9dba --- /dev/null +++ b/macros/latex/contrib/hyperref/minitoc-hyper.sty @@ -0,0 +1,2304 @@ +\def\fileversion{v28href} +\def\filedate{1999/05/17} +% minitoc-hyper.sty +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Jean-Pierre Drucbert +% ONERA/CERT/GPI +% Office National d'\'Etudes et de Recherches A\'erospatiales +% Centre d'\'Etudes et de Recherches de Toulouse +% Groupe de Prestations Informatiques +% Complexe Scientifique de Rangueil +% 2, Avenue \'Edouard Belin +% BP 4025 +% F-31055 TOULOUSE CEDEX +% FRANCE +% +% Phone +33-62-25-25-15 +% +% Email: drucbert@onecert.fr +% +% Please send me any (constructive) suggestions and comments. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Temporarily patched by Bernd Jaehne [Bernd.Jaehne@aeon.de] +% and Didier Verna [verna@inf.enst.fr] to +% work with hyperref.sty from s.rahtz@elsevier.co.uk +% using input from Tony Roberts [aroberts@usq.edu.au] +% For changes see comments %%BJ and %DV +% +% However: this patch works only when hyperref.sty is used, +% otherwise errors occur. Thus it may be advisable to add code +% so that minitoc runs both in standard and hyperref mode. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% History (contains some obsolete things... it is NOT +% the REAL documentation) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% minitoc.sty --- redefines the \chapter command to display a +% mini-table-of-contents at the beginning of every chapter. +% Oct-90 Original version, by Nigel Ward. +% Nov-91 Revised to reuse \chapter, \section, \subsection commands +% transparently, generate toc-file-name automatically, +% assorted other cleanup. Dan Jurafsky +% Jun/Jul-93 New design, to avoid allocating a newwrite +% for each chapter (!) +% Added \chapterend to terminate the scope of a minitoc. +% (IF YOU FORGOT PUTTING \chapterend at the end +% of EACH chapter, an entry for the next chapter +% will appear in each minitoc.) (Thanks to Yufan Hu). +% Replaced ``minipage'' environnement by a ``verse'' +% environnement, to allow a minitoc split across pages. +% All the layout of the minitoc is in the +% \minitableofcontents command, so if someboby wants +% to redefine that layout, he has just to +% rewrite it (and only it). +% +% You can inhibit the minitoc for the next chapter +% by preceding it with \minitocno. (\minitocyes +% is useless for the user: it is implicit AFTER +% the \chapter* pseudo-chapters). +% +% Problems: you MUST have \chapterend to terminate each +% chapter with a minitoc. +% How about avoiding this constraint? +% +% The depth of the minitoc is user-adjustable with +% the counter `minitocdepth' (as `tocdepth' for the table +% of contents). +% At least three passes (3!!!) of LaTeX are necessary to get +% correct minitoc's (the first pass creates the .mtcX files, +% the second uses them (but they may contain wrong page +% numbers) and recreates them, the third should be ok). +% +% Works with \chapter[xxx]{yyy} and floating bodies. +% Works with two columns (but the minitoc is in composed in +% one column; how to make it to spread over the two column?) +% Some mods added to work with xr.sty (external references). +% xr.sty version 5 is much more tolerant. +% 05Jul93 Version 2 +% Added compatibility with hangcaption.sty (the option +% hangcaption (if present) must be given BEFORE minitoc +% option.) +% BEWARE to options modifying \@caption +% Version 3 not released (buggy) +% 09Jul93 Version 4 +% Added \if@realch to avoid contentslines from +% pseudo-chapters to go into the toc! +% The option file mtcoff.sty allows to use a latex +% document with minitoc commands and to make them +% transparent: just replace the minitoc option by +% mtcoff. +% 13Jul93 Version 5 +% Added a selection mechanism to not write spurious things +% in the minitoc's. +% 15Jul93 Version 6 +% Fixed problems about chapters in the toc, +% removed obsolete \caption stuff (filters are better) +% added compatibility with toch.sty +% (toch.sty makes a table of chapters. If used, +% must be loaded BEFORE minitoc.sty) +% 22Jul93 Version 7 (MAJOR DIFFERENCES) +% Completely rewritten, using tricks from xr.sty +% (the version 5, by David Carlisle). The info +% for minitocs is directly stolen from the .toc +% file. +% \chapterend and \minitocno are suppressed +% \minitoc, \dominitoc and \faketableofcontents added +% 29Jul93 Version 8 +% Spacing adjustements. +% 04Aug93 Version 9 +% Added mods for MS-DOS (search MS-DOS, uncomment; +% search UNIX, comment out). MS-DOS allows only +% 3 characters for extensions in file names (what a pity!). +% 05Aug93 Version 10 +% Works with appendices. +% Detects obsolete versions of latex.tex. +% (\@inputcheck or \reset@font not defined). +% 18Aug93 Version 11 +% Added \mtcSfont, font for section entries, +% \mtcSSfont for subsection entries, +% \mtcSSSfont for subsubsection entries, +% \mtcPfont for paragraph entries, +% \mtcSPfont for subparagraph entries. +% +% 16Dec93 Version 12 +% Use \kern's in place of \vspace*'s, +% and added penalties (\nopagebreak) to +% avoid a page break just before last \mtc@rule. +% Also added a \samepage environnement. +% Removed old commented out lines from +% previous versions. +% +% 17Dec93 Version 13 +% Added minilof and minilot stuff. +% For MS-DOS, uncomment the definition of \SHORTEXT. +% +% 03Jan94 Version 14 +% Corrected space under minitoc/lof/lot and added a +% \raggedright to avoid ``underfull'' warnings. +% Corrected some spacing problems (avoiding ~'s). +% \mtifont changed from \normalsize\bf to +% \large\bf. +% Some mods suggested by Donald Arseneau (thanks): +% \@newread becomes \newread, not outer +% version of \newread. +% \empty replaced by \relax in the spare definition +% of \reset@font. +% Removed \clubpenalty=10000 and \widowpenalty=10000 +% (done by \samepage), and \noindent. +% Simplified processing of optional argument in +% \minitoc, \minilof and \minilot. +% +% 27Jan94 Version 15 +% Added parttoc, partlof and partlot for books, +% with commands and parameters parallel to +% those for mini-things. +% +% Added secttoc, sectlof and sectlot for articles, +% with commands and parameters parallel to +% those for mini-things. +% +% 02Feb94 Version 16 +% Bug fixes (typos). +% +% 23Jun94 Version 17 +% Keyword 'n' (null) synonym of 'e' (empty). +% Compatibility with LaTeX ``2e''. +% Thanks to Denis Roegel (who found +% the problem) and Frank Mittelbach +% (who gave the hints to solve). +% +% 26Jun94 Version 18 +% Make minitoc really compatible with latex2e +% Introduce the language files as options +% Thanks to Michel Goossens (via Frank Mittelbach) +% who was inspired by the code of babel (Johannes Braams). +% +% 16Aug94 Version 19 +% Added stuff for numbering of chapters (parts, +% sections) not starting at 1. +% \firstchapteris etc. commands added. +% \mtcrule, \nomtcrule etc. commands added. +% Corrected a bug in \c@mti. +% Corrected mtcswedish.sty (Jan Michel Rynning) +% Corrected appendix in articles +% +% 25Aug94 Version 20 +% Corrected spacing before and after minitocs +% and siblings. +% Added \mtcpagenumbers and \nomtcpagenumbers +% (and siblings) to make minitocs with/without +% page numbers. Default: page numbers. +% Corrected (difficult bug) appendix in articles. +% Corrected vertical spacing. +% Corrected a problem with chapters numbered +% with (uppercase) roman numbers. +% +% 07Sep94 Version 21 +% Corrected typos in minitoc.sty and minitoc.tex. +% +% 10Oct94 Version 22 +% Corrected typos in minitoc.sty. +% +% 08Nov94 Version 23 +% Added a missing line in \sectlof@. +% Works with document classes resetting +% chapter (or section) number at each part. +% (Thanks to Denis Roegel) +% Removed stuff for \firstchapteris and co. +% These commands are obsolete. +% Removed appendix stuff. +% +% 21Dec94 Version 24 +% The \protect commands have been removed from +% the .toc, .lot and .lot files, so some internal +% macros have been corrected to be compatible +% with the LaTeX2e release of December 1994. +% Thanks to Denis Roegel who did the work. +% +% 13Sep96 Version 25 +% Updated mtcnorsk.sty and added mtcnynorsk.sty +% on a suggestion from Dag Langmyhr (dag@ifi.uio.no). +% +% 14Nov96 Version 26 +% Language specific commands are now names <language>.mld +% (in place of mtc<language>.sty) because there are not +% packages and it makes shorter names. +% Added breton, estonian, germanb, greek, irish, +% russianb, scottish, lower and upper sorbian; +% renamed esperanto into esperant like in Babel. +% +% 20Dec96 Version 27 +% Corrections for starred sectionning commands. +% english.mld loaded as default language. +% Added vietnam.mld. +% Added arab.mld. +% Renamed minitocoff.sty into mtcoff.sty to +% keep the name short. +% +% +% Jean-Pierre Drucbert +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\NeedsTeXFormat{LaTeX2e}[1994/12/01]% +%%% This file will not work with latex2.09 +\ProvidesPackage{minitoc}[\filedate\space\fileversion\space + The minitoc package] +\typeout{*** minitoc package, version 27p ***}% +\@ifundefined{part}% +{}% +{\typeout{*** part level macros available ***} +\let\mtc@svpart\part %23 +\def\part{\stepcounter{ptc}\mtc@svpart}} %23 +\@ifundefined{chapter}% +{% +\@ifundefined{section}% +{\typeout{*** no section or chapter level macros available ***}% +\typeout{*** PLEASE VERIFY YOUR MAIN DOCUMENT CLASS ***}}% +{\typeout{*** section level macros available ***} +\let\mtc@svsection\section %23 +\def\section{\stepcounter{stc}\mtc@svsection} %23 +\let\mtc@svss\@ssect %23 +%v25 \def\@ssect{\addtocounter{stc}{-1}\mtc@svss} %23 +}% +}% +{\typeout{*** chapter level macros available ***} +\let\mtc@svchapter\@chapter %23 +\def\@chapter{\stepcounter{mtc}\mtc@svchapter} %23 +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% ***** **** *** ***** +% * * * * * +% *** * * * * +% * * * * * +% ***** **** *** * +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\def\SHORTEXT{SHORTEXT} %%% UNCOMMENT FOR DOS AND + %%% SYSTEMS WITH SHORT EXTENSIONS + %%% TO FILE NAMES + %%% LEAVE IT COMMENTED OUT + %%% FOR UNIX AND O.S. WITH + %%% LONG EXTENSIONS + %%% YOU CAN VERIFY BY LATEXING + %%% AN EXAMPLE DOCUMENT + %%% ONE OF THE FOLLOWING MESSAGES APPEARS + %%% PLEASE CORRECT IF THE MESSAGE IS WRONG +% v27 : claim the type of system! +\@ifundefined{SHORTEXT}% +{\typeout{==> this version is configured for UNIX-like (long extensions) file names.}}% +{\typeout{==> this version is configured for MSDOS-like (8+3) file names.}} +% +%not outer version of \newread +\def\newread{\alloc@6\read\chardef\sixt@@n} +\@ifundefined{@inputcheck}% + {\typeout{Your version of latex.tex is obsolete.}% + \typeout{Trying to continue...}\newread\@inputcheck\relax}{} +\@ifundefined{reset@font}% + {\typeout{Your version of latex.tex is very obsolete.}% + \typeout{Trying to continue...}\let\reset@font\relax}{} +\newwrite\tf@mtc % a file descriptor to write minitocs +\newtoks\mtc@toks +\def\mtc@string{\relax} +\newbox\mtc@strutbox +\setbox\mtc@strutbox=\hbox{\vrule height2.5ex + depth1.8ex width\z@} +\def\mtc@strut{\relax\ifmmode\copy\mtc@strutbox\else\unhcopy\mtc@strutbox\fi} +\def\mtc@v{\leavevmode% + \mtc@strut\vphantom{Lp$^{l^l}_{p_p}$}} % a pseudo-strut ? +% \@BBR discourages page breaks +\def\@BBR{\unpenalty\nopagebreak[4]} +% Modified version to ignore the dots and the page number. % 17b +\def\@undottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else % 17b + \vskip \z@ plus.2\p@ % 17b + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip % 17b + \parindent #2\relax\@afterindenttrue % 17b + \interlinepenalty\@M % 17b + \leavevmode % 17b + \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}% % 17b + \hskip -\leftskip % 17b + #4\nobreak\hfill \nobreak % 17b + \null\par}\fi} % 17b +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17b +\def\mtcpagenumbers{\let\mtc@pgno\null} %17b +\mtcpagenumbers %default %17b +\def\nomtcpagenumbers{\let\mtc@pgno\relax} %17b +\def\stcpagenumbers{\let\stc@pgno\null} %17b +\stcpagenumbers %default %17b +\def\nostcpagenumbers{\let\stc@pgno\relax} %17b +\def\ptcpagenumbers{\let\ptc@pgno\null} %17b +\ptcpagenumbers %default %17b +\def\noptcpagenumbers{\let\ptc@pgno\relax} %17b +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17b +\def\mlfpagenumbers{\let\mlf@pgno\null} %17b +\mlfpagenumbers %default %17b +\def\nomlfpagenumbers{\let\mlf@pgno\relax} %17b +\def\slfpagenumbers{\let\slf@pgno\null} %17b +\slfpagenumbers %default %17b +\def\noslfpagenumbers{\let\slf@pgno\relax} %17b +\def\plfpagenumbers{\let\plf@pgno\null} %17b +\plfpagenumbers %default %17b +\def\noplfpagenumbers{\let\plf@pgno\relax} %17b +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17b +\def\mltpagenumbers{\let\mlt@pgno\null} %17b +\mltpagenumbers %default %17b +\def\nomltpagenumbers{\let\mlt@pgno\relax} %17b +\def\sltpagenumbers{\let\slt@pgno\null} %17b +\sltpagenumbers %default %17b +\def\nosltpagenumbers{\let\slt@pgno\relax} %17b +\def\pltpagenumbers{\let\plt@pgno\null} %17b +\pltpagenumbers %default %17b +\def\nopltpagenumbers{\let\plt@pgno\relax} %17b +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%17b +% if you don't want a table of contents, but want minitocs, +% you need to create the .toc file, without inputing it +% into your document. This command is a stripped off version +% of \tableofcontents +\def\faketableofcontents{\fake@starttoc{toc}} +% idem for list of figures +\def\fakelistoffigures{\fake@starttoc{lof}} +% idem for list of tables +\def\fakelistoftables{\fake@starttoc{lot}} +\def\fake@starttoc#1{\begingroup + \makeatletter + \if@filesw \expandafter\newwrite\csname tf@#1\endcsname + \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax + \fi \global\@nobreakfalse \endgroup} +%% +\global\let\mtc@markboth\markboth +\global\let\@mkboth\markboth +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\@ifundefined{chapter}{}{% +\def\The@chapter{\arabic{mtc}} %23 +\def\firstchapteris#1% + {\typeout{^^JWARNING*** \string\firstchapteris}% + \typeout{ is an obsolete command^^J}} +\newcounter{mtc} % counter of minitocs +\setcounter{mtc}{0} +\gdef\themtc{\arabic{mtc}} +\newcounter{minitocdepth} % analog to tocdepth, but for minitocs +\setcounter{minitocdepth}{2} % default value +\def\mtc@rule{\kern-3\p@% + \hrule width \columnwidth \kern2.6\p@} % the \hrule is .4pt high + +\newlength\mtcindent % indentation (left/right) of minitocs +\mtcindent=24pt % defaut value +\def\mtcfont{\small\rm} % font for the minitoc +\def\mtcSfont{\small\bf} % font for the minitoc (sections) +\def\mtcSSfont{\mtcfont} % font for the minitoc (subsections) +\def\mtcSSSfont{\mtcfont} % font for the minitoc (subsubsections) +\def\mtcPfont{\mtcfont} % font for the minitoc (paragraphs) +\def\mtcSPfont{\mtcfont} % font for the minitoc (subparagraphs) +\def\mlffont{\mtcfont} % font for the minilof (figures) +\def\mltfont{\mtcfont} % font for the minilot (tables) +\def\mtifont{\large\bf} % font for titles + +% Centering, flushleft, flushright or empty titles. +\def\c@mti#1{\null\hfill #1\hfill\null} +\def\l@mti#1{\null #1\hfill\null} +\def\r@mti#1{\null\hfill #1\null} +\def\e@mti#1{\relax} +\def\n@mti#1{\relax} + +% Default: titles on left +\let\do@mtitc\l@mti +\let\df@mtitc\l@mti +\let\do@mtilf\l@mti +\let\df@mtilf\l@mti +\let\do@mtilt\l@mti +\let\df@mtilt\l@mti + +%v27 Language dependent names: default values. Now +%v27 english.mld is loaded first. +%v27 \@ifundefined{mtctitle}{\def\mtctitle{Contents}}{\relax} +%v27 \@ifundefined{mlftitle}{\def\mlftitle{Figures}}{\relax} +%v27 \@ifundefined{mlttitle}{\def\mlttitle{Tables}}{\relax} + +\def\mtc@verse{\let\\=\@centercr + \list{}{\itemsep\z@\itemindent \z@\listparindent \itemindent + \leftmargin\mtcindent + \rightmargin\leftmargin}\item[]} +\def\endmtc@verse{\nopagebreak[4]\endlist} + +% this command must be used after \chapter +% if you need a minitoc (no automatic minitoc) +\def\minitoc{\@ifnextchar[{\minitoc@}{\minitoc@[d]}} + +\def\minitoc@[#1]{% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@mtitc\e@mti + \else\if #1n\let\do@mtitc\n@mti + \else\if #1c\let\do@mtitc\c@mti + \else\if #1l\let\do@mtitc\l@mti + \else\if #1r\let\do@mtitc\r@mti + \else\if #1d\let\do@mtitc\df@mtitc + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\mtcfont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent %% + \ifx\mtc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\mtifont\do@mtitc{\mtc@v\mtctitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\mtifont\do@mtitc{\mtc@v\mtctitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\mtcindent + \rightmargin\mtcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + \begin{mtc@verse}\c@tocdepth=\c@minitocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{mtc@pgno}% + {\let\@dottedtocline\@undottedtocline}{} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{mtc\The@chapter}}% % UNIX +{\def\@tocfile{M\The@chapter}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{mtc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\mtc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\pagebreak[1]\vspace*{-1ex}}% + % some space under the minitoc + +% Added in version #13 +% this command must be used after \chapter +% if you need a minilof (no automatic minilof) +\def\minilof{\@ifnextchar[{\minilof@}{\minilof@[d]}} + +\def\minilof@[#1]{% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@mtilf\e@mti + \else\if #1n\let\do@mtilf\n@mti + \else\if #1c\let\do@mtilf\c@mti + \else\if #1l\let\do@mtilf\l@mti + \else\if #1r\let\do@mtilf\r@mti + \else\if #1d\let\do@mtilf\df@mtilf + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\mlffont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\mtc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\mtifont\do@mtilf{\mtc@v\mlftitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\mtifont\do@mtilf{\mtc@v\mlftitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\mtcindent + \rightmargin\mtcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + % depth does not matter for minilof + \begin{mtc@verse}%\c@tocdepth=\c@minitocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{mlf@pgno}% + {\let@dottedtocline\@undottedtocline}{} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{mlf\The@chapter}}% % UNIX +{\def\@tocfile{F\The@chapter}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{mtc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\mtc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\pagebreak[1]\vspace*{-1ex}}% + % some space under the minilof + +% Added in version #13 +% this command must be used after \chapter +% if you need a minilot (no automatic minilot) +\def\minilot{\@ifnextchar[{\minilot@}{\minilot@[d]}} + +\def\minilot@[#1]{% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@mtilt\e@mti + \else\if #1n\let\do@mtilt\n@mti + \else\if #1c\let\do@mtilt\c@mti + \else\if #1l\let\do@mtilt\l@mti + \else\if #1r\let\do@mtilt\r@mti + \else\if #1d\let\do@mtilt\df@mtilt + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\mltfont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\mtc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\mtifont\do@mtilt{\mtc@v\mlttitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\mtifont\do@mtilt{\mtc@v\mlttitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\mtcindent + \rightmargin\mtcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + % depth does not matter for minilot + \begin{mtc@verse}%\c@tocdepth=\c@minitocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{mlt@pgno}% + {\let\@dottedtocline\@undottedtocline}{} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{mlt\The@chapter}}% % UNIX +{\def\@tocfile{T\The@chapter}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{mtc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\mtc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\pagebreak[1]\vspace*{-1ex}}% + % some space under the minilot + +% I use a depth of 10000 to inhibit the printing of +% that contentsline. +\def\l@xchapter{\@dottedtocline{\@M}{1em}{2.3em}} +\def\xchapter{xchapter} + +\let\sv@chapter\@chapter +\def\@chapter[#1]#2{\sv@chapter[{#1}]{#2}\relax% +\addcontentsline{lof}{xchapter}{#1}% +\addcontentsline{lot}{xchapter}{#1}% +} + +% tricky code to deal with \chapter* +\let\mtc@schapter\@schapter +\def\@schapter{% +\addtocontents{toc}{\protect\chapterend}\mtc@schapter% +} +\def\@schapter{% +\addtocontents{toc}{\protect\chapterbegin}\mtc@schapter% +} +\let\chapterend\relax +\let\chapterbegin\relax + +\let\appendixmtc\relax + +% this command extracts info from the .toc file +% and create the .mtcN files (.mtc -> .M on MS-DOS) +\def\@dominitoc#1{{% + \makeatletter + \setcounter{mtc}{0} % START VALUE + \MTC@next#1.toc\relax\\}\setcounter{mtc}{0}} %23: raz +% this command extracts info from the .lof file +% and create the .mlfN files (.mlf -> .F on MS-DOS) +\def\@dominilof#1{{% + \makeatletter + \setcounter{mtc}{0} % START VALUE + \MLF@next#1.lof\relax\\}\setcounter{mtc}{0}} %23: raz +% this command extracts info from the .lot file +% and create the .mltN files (.mlt -> .T on MS-DOS) +\def\@dominilot#1{{% + \makeatletter + \setcounter{mtc}{0} % START VALUE + \MLT@next#1.lot\relax\\}\setcounter{mtc}{0}} %23: raz + +\def\dominitoc{\@ifnextchar[{\dominitoc@}{\dominitoc@[l]}} +\def\dominilof{\@ifnextchar[{\dominilof@}{\dominilof@[l]}} +\def\dominilot{\@ifnextchar[{\dominilot@}{\dominilot@[l]}} + +\def\dominitoc@[#1]{% +\if #1e\let\df@mtitc\e@mti% +\else\if #1n\let\df@mtitc\n@mti% +\else\if #1c\let\df@mtitc\c@mti% +\else\if #1l\let\df@mtitc\l@mti% +\else\if #1r\let\df@mtitc\r@mti% +\fi\fi\fi\fi\fi% +\@@dominitoc} + +\def\dominilof@[#1]{% +\if #1e\let\df@mtilf\e@mti% +\else\if #1n\let\df@mtilf\n@mti% +\else\if #1c\let\df@mtilf\c@mti% +\else\if #1l\let\df@mtilf\l@mti% +\else\if #1r\let\df@mtilf\r@mti% +\fi\fi\fi\fi\fi% +\@@dominilof} + +\def\dominilot@[#1]{% +\if #1e\let\df@mtilt\e@mti% +\else\if #1n\let\df@mtilt\n@mti% +\else\if #1c\let\df@mtilt\c@mti% +\else\if #1l\let\df@mtilt\l@mti% +\else\if #1r\let\df@mtilt\r@mti% +\fi\fi\fi\fi\fi% +\@@dominilot} + +\def\@@dominitoc{\@dominitoc{\jobname}\immediate\closeout\tf@mtc} +\def\@@dominilof{\@dominilof{\jobname}\immediate\closeout\tf@mtc} +\def\@@dominilot{\@dominilot{\jobname}\immediate\closeout\tf@mtc} + +\def\MTC@next#1\relax#2\\{% + \edef\MTC@list{#2}% + \MTC@loop{#1}} +\def\MTC@toc{% + \ifx\MTC@list\@empty\else\expandafter\MTC@explist\fi} + +%%%%%%% patch minitoc to write *.mtc files with link name at end +% so that hyperref contentsline works properly---I hope +\def\MTC@contentsline#1#2#3#4{% %%BJ: 4 instead of 3 parameters +\gdef\themtc{\arabic{mtc}} +\expandafter% + \ifx\csname #1\endcsname\chapter\relax + \stepcounter{mtc}% % the mtc counter simulates the chapter counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.mtc\themtc}% % UNIX +\def\mtcname{\jobname.mtc\themtc}}% % UNIX +{\typeout{Writing\space\jobname.M\themtc}% % MS-DOS +\def\mtcname{\jobname.M\themtc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .mtcN .mtc->.M on MS-DOS + \immediate\openout\tf@mtc=\mtcname % open next .mtcN (.mtc->.M if MS-DOS) + \fi +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\section\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\subsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSSfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\subsubsection\relax + \mtc@toks{\noexpand \leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSSSfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\paragraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcPfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\subparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSPfont + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +% Added v25: \starchapter and co. +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\starchapter\relax +\stepcounter{mtc}% % the mtc counter simulates the chapter counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.mtc\themtc}% % UNIX +\def\mtcname{\jobname.mtc\themtc}}% % UNIX +{\typeout{Writing\space\jobname.M\themtc}% % MS-DOS +\def\mtcname{\jobname.M\themtc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .mtcN .mtc->.M on MS-DOS + \immediate\openout\tf@mtc=\mtcname % open next .mtcN (.mtc->.M if MS-DOS) + \fi +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\starsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSSfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubsubsection\relax + \mtc@toks{\noexpand \leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSSSfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\starparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcPfont% + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mtcSPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mtcSPfont + \space #3}{#4}}}}\@tempa% %%BJ: #4 is hyperlink + \fi +} + + +\def\MTC@explist{\expandafter\MTC@next\MTC@list\\} +\def\MTC@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JMINITOCS NOT PREPARED.^^J}% + \expandafter\MTC@toc + \else + \typeout{PREPARING MINITOCS FROM #1}% + \expandafter\MTC@read\fi} +\def\MTC@read{% + \read\@inputcheck to\MTC@line + \expandafter\MTC@test\MTC@line....\MTC@% + }% +% now patch MTC@test % %%BJ: call \MTC@contentsline with 4 instead of 3 parameters +\newcommand{\scrubdots}[5]{#1} %%BJ: added by Tony Roberts +\long\def\MTC@test#1#2#3#4#5\MTC@{% + \ifx#1\contentsline + \let\mtc@string\string + \MTC@contentsline{#2}{#3}{#4}{\scrubdots#5}% %%BJ: 4. parameter added by Tony Roberts + \let\mtc@string\relax + \else\ifx#1\@input + \edef\MTC@list{\MTC@list#2\relax}% + \else\ifx#1\chapterend % \chapter* closes .mtcN (.mtc->.M on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\chapterbegin + \addtocounter{mtc}{-1}% % \chapter* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\MTC@toc + \else\expandafter\MTC@read\fi}% +%%%%%%%%%% end of minitoc patches + + +\def\MLF@next#1\relax#2\\{% + \edef\MLF@list{#2}% + \MLF@loop{#1}} +\def\MLF@lof{% + \ifx\MLF@list\@empty\else\expandafter\MLF@explist\fi} + +\def\MLF@contentsline#1#2#3{% +\gdef\themtc{\arabic{mtc}} +\expandafter% + \ifx\csname #1\endcsname\xchapter\relax + \stepcounter{mtc}% % the mtc counter simulates the chapter counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.mlf\themtc}% % UNIX +\def\mlfname{\jobname.mlf\themtc}}% % UNIX +{\typeout{Writing\space\jobname.F\themtc}% % MS-DOS +\def\mlfname{\jobname.F\themtc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .mlfN .mlf->.F on MS-DOS + \immediate\openout\tf@mtc=\mlfname % open next .mlfN (.mlf->.F if MS-DOS) + \fi +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\figure\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mlffont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mlffont% + \space #3}}}}\@tempa + \fi +} + +\def\MLF@explist{\expandafter\MLF@next\MLF@list\\} +\def\MLF@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JMINILOFS NOT PREPARED.^^J}% + \expandafter\MLF@lof + \else + \typeout{PREPARING MINILOFS FROM #1}% + \expandafter\MLF@read\fi} +\def\MLF@read{% + \read\@inputcheck to\MLF@line + \expandafter\MLF@test\MLF@line....\MLF@% + }% +\long\def\MLF@test#1#2#3#4#5\MLF@{% + \ifx#1\contentsline + \let\mtc@string\string + \MLF@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\MLF@list{\MLF@list#2\relax}% + \else\ifx#1\chapterend % \chapter* closes .mlfN (.mlf->.F on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\chapterbegin + \addtocounter{mtc}{-1}% % \chapter* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\MLF@lof + \else\expandafter\MLF@read\fi}% + +\def\MLT@next#1\relax#2\\{% + \edef\MLT@list{#2}% + \MLT@loop{#1}} +\def\MLT@lot{% + \ifx\MLT@list\@empty\else\expandafter\MLT@explist\fi} + +\def\MLT@contentsline#1#2#3{% +\gdef\themtc{\arabic{mtc}} +\expandafter% + \ifx\csname #1\endcsname\xchapter\relax + \stepcounter{mtc}% % the mtc counter simulates the chapter counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.mlt\themtc}% % UNIX +\def\mltname{\jobname.mlt\themtc}}% % UNIX +{\typeout{Writing\space\jobname.T\themtc}% % MS-DOS +\def\mltname{\jobname.T\themtc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .mltN .mlt->.T on MS-DOS + \immediate\openout\tf@mtc=\mltname % open next .mltN (.mlt->.T if MS-DOS) + \fi +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\table\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\mltfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\mltfont% + \space #3}}}}\@tempa + \fi +} + +\def\MLT@explist{\expandafter\MLT@next\MLT@list\\} +\def\MLT@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JMINILOTS NOT PREPARED.^^J}% + \expandafter\MLT@lot + \else + \typeout{PREPARING MINILOTS FROM #1}% + \expandafter\MLT@read\fi} +\def\MLT@read{% + \read\@inputcheck to\MLT@line + \expandafter\MLT@test\MLT@line....\MLT@% + }% +\long\def\MLT@test#1#2#3#4#5\MLT@{% + \ifx#1\contentsline + \let\mtc@string\string + \MLT@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\MLT@list{\MLT@list#2\relax}% + \else\ifx#1\chapterend % \chapter* closes .mltN (.mlt->.T on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\chapterbegin + \addtocounter{mtc}{-1}% % \chapter* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\MLT@lot + \else\expandafter\MLT@read\fi}% +} % end of chapter level + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% +% If \part is defined (book or article-like document), +% the following macros are allowed +% Sometimes, we need to make a difference between book and +% article (is \chapter defined?), to have a different layout. +\@ifundefined{part}{}% +{% +\def\xpart{xpart} +\def\Thepart{\arabic{part}} +\def\firstpartis#1% + {\typeout{^^JWARNING*** \string\firstpartis}% + \typeout{ is an obsolete command^^J}} +\newcounter{ptc} % counter of parttocs +\setcounter{ptc}{0} +\def\theptc{\arabic{ptc}} +\newcounter{parttocdepth} % analog to tocdepth, but for parttocs +\setcounter{parttocdepth}{2} + +\@ifundefined{chapter}{% +\def\ptc@rule{\kern-3\p@% + \hrule width \columnwidth \kern2.6\p@}% the \hrule is .4pt high +}{\let\ptc@rule\relax} % no rule before/after parttoc/partlof/partlot + % for books + +\newlength\ptcindent % indentation (left/right) of parttocs +\@ifundefined{chapter}{\ptcindent=24pt}{\ptcindent=0pt} % defaut value + +\@ifundefined{chapter}{% +\def\ptcfont{\small\rm} % font for the parttoc +\def\ptcSfont{\small\bf} % font for the parttoc (sections) +\def\ptcSSfont{\ptcfont} % font for the parttoc (subsections) +\def\ptcSSSfont{\ptcfont} % font for the parttoc (subsubsections) +\def\ptcPfont{\ptcfont} % font for the parttoc (paragraphs) +\def\ptcSPfont{\ptcfont} % font for the parttoc (subparagraphs) +\def\plffont{\ptcfont} % font for the partlof (figures) +\def\pltfont{\ptcfont} % font for the partlot (tables) +\def\ptifont{\large\bf} % font for titles +}{% +\def\ptcfont{\normalsize\rm} % font for the parttoc +\def\ptcCfont{\normalsize\bf} % font for the parttoc (chapters) +\def\ptcSfont{\normalsize\rm} % font for the parttoc (sections) +\def\ptcSSfont{\ptcfont} % font for the parttoc (subsections) +\def\ptcSSSfont{\ptcfont} % font for the parttoc (subsubsections) +\def\ptcPfont{\ptcfont} % font for the parttoc (paragraphs) +\def\ptcSPfont{\ptcfont} % font for the parttoc (subparagraphs) +\def\plffont{\ptcfont} % font for the partlof (figures) +\def\pltfont{\ptcfont} % font for the partlot (tables) +\def\ptifont{\Huge\bf} % font for titles +} + +% Centering, flushleft, flushright or empty titles. +\@ifundefined{chapter}{% +\def\c@pti#1{\null\hfill #1\hfill\null} +\def\l@pti#1{\null #1\hfill\null} +\def\r@pti#1{\null\hfill #1\null} +\def\e@pti#1{\relax} +\def\n@pti#1{\relax} +}{% +\def\e@pti#1{\relax} +\def\n@pti#1{\relax} +\def\l@pti#1{\if@twocolumn + \@topnewpage[\@makephead@l{#1}]% + \else + \@makephead@l{#1}% + \@afterheading + \fi} +\def\@makephead@l#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \ptifont + #1\par + \nobreak + \vskip 40\p@ + }} +\def\r@pti#1{\if@twocolumn + \@topnewpage[\@makephead@r{#1}]% + \else + \@makephead@r{#1}% + \@afterheading + \fi} +\def\@makephead@r#1{% + \vspace*{50\p@}% + {\parindent \z@ \raggedleft + \ptifont + #1\par + \nobreak + \vskip 40\p@ + }} +\def\c@pti#1{\if@twocolumn + \@topnewpage[\@makephead@c{#1}]% + \else + \@makephead@c{#1}% + \@afterheading + \fi} +\def\@makephead@c#1{% + \vspace*{50\p@}% + {\parindent \z@ \centering + \ptifont + #1\par + \nobreak + \vskip 40\p@ + }}% +} + +% Default: titles on left +\let\do@ptitc\l@pti +\let\df@ptitc\l@pti +\let\do@ptilf\l@pti +\let\df@ptilf\l@pti +\let\do@ptilt\l@pti +\let\df@ptilt\l@pti + +%v27 % Language dependent names: default values +%v27 \@ifundefined{chapter}{% +%v27 \@ifundefined{ptctitle}{\def\ptctitle{Contents}}{\relax} +%v27 \@ifundefined{plftitle}{\def\plftitle{Figures}}{\relax} +%v27 \@ifundefined{plttitle}{\def\plttitle{Tables}}{\relax}}% +%v27 {% +%v27 \@ifundefined{ptctitle}{\def\ptctitle{Table of Contents}}{\relax} +%v27 \@ifundefined{plftitle}{\def\plftitle{List of Figures}}{\relax} +%v27 \@ifundefined{plttitle}{\def\plttitle{List of Tables}}{\relax} +%v27 } + +\def\ptc@verse{\let\\=\@centercr + \list{}{\itemsep\z@\itemindent \z@\listparindent \itemindent + \leftmargin\ptcindent + \rightmargin\leftmargin}\item[]} +\def\endptc@verse{\nopagebreak[4]\endlist} + +% this command must be used after \part +% if you need a parttoc (no automatic parttoc) +\def\parttoc{\@ifnextchar[{\parttoc@}{\parttoc@[d]}} + +\def\parttoc@[#1]{% + \@ifundefined{chapter}{}{\cleardoublepage + \global\let\mtc@markboth\markboth + \global\let\@mkboth\markboth + \thispagestyle{empty} + \mtc@markboth{\uppercase{\ptctitle}}{\uppercase{\ptctitle}}% + }% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@ptitc\e@pti + \else\if #1n\let\do@ptitc\n@pti + \else\if #1c\let\do@ptitc\c@pti + \else\if #1l\let\do@ptitc\l@pti + \else\if #1r\let\do@ptitc\r@pti + \else\if #1d\let\do@ptitc\df@ptitc + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\ptcfont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \nopagebreak[4]% + \ifx\ptc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\ptifont\do@ptitc{\mtc@v\ptctitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\ptifont\do@ptitc{\mtc@v\ptctitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\ptcindent + \rightmargin\ptcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + \begin{ptc@verse}\c@tocdepth=\c@parttocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{ptc@pgno}% + {\let\@dottedtocline\@undottedtocline}{} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{ptc\Thepart}}% % UNIX +{\def\@tocfile{P\Thepart}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{ptc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\ptc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\@ifundefined{chapter}{\pagebreak[1]\vspace*{-1ex}}% + {\cleardoublepage}} + +% this command must be used after \part +% if you need a partlof (no automatic partlof) +\def\partlof{\@ifnextchar[{\partlof@}{\partlof@[d]}} + +\def\partlof@[#1]{% + \@ifundefined{chapter}{}{\cleardoublepage + \global\let\mtc@markboth\markboth + \global\let\@mkboth\markboth + \thispagestyle{empty} + \mtc@markboth{\uppercase{\plftitle}}{\uppercase{\plftitle}}% + }% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@ptilf\e@pti + \else\if #1n\let\do@ptilf\n@pti + \else\if #1c\let\do@ptilf\c@pti + \else\if #1l\let\do@ptilf\l@pti + \else\if #1r\let\do@ptilf\r@pti + \else\if #1d\let\do@ptilf\df@ptilf + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\plffont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\ptc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\ptifont\do@ptilf{\mtc@v\plftitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\ptifont\do@ptilf{\mtc@v\plftitle}}\\ + \@ifundefined{chapter}{\hline}{} + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\ptcindent + \rightmargin\ptcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + % depth does not matter for partlof + \begin{ptc@verse}%\c@tocdepth=\c@parttocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{plf@pgno}% + {\let\@dottedtocline\@undottedtocline}{} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{plf\Thepart}}% % UNIX +{\def\@tocfile{G\Thepart}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{ptc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\ptc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\@ifundefined{chapter}{\pagebreak[1]\vspace*{-1ex}}% + {\cleardoublepage}} + +% Added in version #13 +% this command must be used after \part +% if you need a minilot (no automatic partlot) +\def\partlot{\@ifnextchar[{\partlot@}{\partlot@[d]}} + +\def\partlot@[#1]{% + \@ifundefined{chapter}{}{\cleardoublepage + \global\let\mtc@markboth\markboth + \global\let\@mkboth\markboth + \thispagestyle{empty} + \mtc@markboth{\uppercase{\plttitle}}{\uppercase{\plttitle}}% + }% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@ptilt\e@pti + \else\if #1n\let\do@ptilt\n@pti + \else\if #1c\let\do@ptilt\c@pti + \else\if #1l\let\do@ptilt\l@pti + \else\if #1r\let\do@ptilt\r@pti + \else\if #1d\let\do@ptilt\df@ptilt + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\pltfont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\ptc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\ptifont\do@ptilt{\mtc@v\plttitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\ptifont\do@ptilt{\mtc@v\plttitle}}\\ + \@ifundefined{chapter}{\hline}{} + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\ptcindent + \rightmargin\ptcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + % depth does not matter for partlot + \begin{ptc@verse}%\c@tocdepth=\c@parttocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{plt@pgno}% + {\let\@dottedtocline\@undottedtocline}{} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{plt\Thepart}}% % UNIX +{\def\@tocfile{U\Thepart}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{ptc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\ptc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\@ifundefined{chapter}{\pagebreak[1]\vspace*{-1ex}}% + {\cleardoublepage}} + +% I use a depth of 10000 to inhibit the printing of +% that contentsline. +\def\l@xpart{\@dottedtocline{\@M}{1.0em}{2.3em}} +\def\l@pchapter{\@dottedtocline{1}{1.0em}{2.3em}} + +\def\pchapter{pchapter} + +\let\sv@part\@part +\def\@part[#1]#2{\sv@part[{#1}]{#2}\relax% +\addcontentsline{lof}{xpart}{#1}% +\addcontentsline{lot}{xpart}{#1}% +} + +% tricky code to deal with \part* +\let\ptc@spart\@spart +\def\@spart{% +\addtocontents{toc}{\protect\partend}\ptc@spart% +} +\def\@spart{% +\addtocontents{toc}{\protect\partbegin}\ptc@spart% +} +\let\partend\relax +\let\partbegin\relax + +\let\appendixmtc\relax + +% this command extracts info from the .toc file +% and create the .ptcN files (.ptc -> .P on MS-DOS) +\def\@doparttoc#1{{% + \makeatletter + \setcounter{ptc}{0} % START VALUE + \PTC@next#1.toc\relax\\}\setcounter{ptc}{0}} %23; raz +% this command extracts info from the .lof file +% and create the .plfN files (.plf -> .G on MS-DOS) +\def\@dopartlof#1{{% + \makeatletter + \setcounter{ptc}{0} % START VALUE + \PLF@next#1.lof\relax\\}\setcounter{ptc}{0}} %23: raz +% this command extracts info from the .lot file +% and create the .pltN files (.plt -> .U on MS-DOS) +\def\@dopartlot#1{{% + \setcounter{ptc}{0} % START VALUE + \makeatletter + \PLT@next#1.lot\relax\\}\setcounter{ptc}{0}} %23: raz + +\def\doparttoc{\@ifnextchar[{\doparttoc@}{\doparttoc@[l]}} +\def\dopartlof{\@ifnextchar[{\dopartlof@}{\dopartlof@[l]}} +\def\dopartlot{\@ifnextchar[{\dopartlot@}{\dopartlot@[l]}} + +\def\doparttoc@[#1]{% +\if #1e\let\df@ptitc\e@pti% +\else\if #1n\let\df@ptitc\n@pti% +\else\if #1c\let\df@ptitc\c@pti% +\else\if #1l\let\df@ptitc\l@pti% +\else\if #1r\let\df@ptitc\r@pti% +\fi\fi\fi\fi\fi% +\@@doparttoc} + +\def\dopartlof@[#1]{% +\if #1e\let\df@ptilf\e@pti% +\else\if #1n\let\df@ptilf\n@pti% +\else\if #1c\let\df@ptilf\c@pti% +\else\if #1l\let\df@ptilf\l@pti% +\else\if #1r\let\df@ptilf\r@pti% +\fi\fi\fi\fi\fi% +\@@dopartlof} + +\def\dopartlot@[#1]{% +\if #1e\let\df@ptilt\e@pti% +\else\if #1n\let\df@ptilt\n@pti% +\else\if #1c\let\df@ptilt\c@pti% +\else\if #1l\let\df@ptilt\l@pti% +\else\if #1r\let\df@ptilt\r@pti% +\fi\fi\fi\fi\fi% +\@@dopartlot} + +\def\@@doparttoc{\@doparttoc{\jobname}\immediate\closeout\tf@mtc} +\def\@@dopartlof{\@dopartlof{\jobname}\immediate\closeout\tf@mtc} +\def\@@dopartlot{\@dopartlot{\jobname}\immediate\closeout\tf@mtc} + +\def\PTC@next#1\relax#2\\{% + \edef\PTC@list{#2}% + \PTC@loop{#1}} +\def\PTC@toc{% + \ifx\PTC@list\@empty\else\expandafter\PTC@explist\fi} + +\def\PTC@contentsline#1#2#3#4{% %%DV: 4 instead of 3 parameters +\expandafter% + \ifx\csname #1\endcsname\part\relax + \stepcounter{ptc}% % the ptc counter simulates the part counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.ptc\theptc}% % UNIX +\def\ptcname{\jobname.ptc\theptc}}% % UNIX +{\typeout{Writing\space\jobname.P\theptc}% % MS-DOS +\def\ptcname{\jobname.P\theptc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .ptcN .ptc->.P on MS-DOS + \immediate\openout\tf@mtc=\ptcname % open next .ptcN (.ptc->.P if MS-DOS) + \fi +\expandafter% % extracts and writes info for chapters, sections, etc. + \ifx\csname #1\endcsname\chapter\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcCfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcCfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\section\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\subsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSSfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\subsubsection\relax + \mtc@toks{\noexpand \leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSSSfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\paragraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcPfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\subparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSPfont + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +% Added v25: \starchapter & co. +\expandafter% % extracts and writes info for chapters, sections, etc. + \ifx\csname #1\endcsname\starchapter\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcCfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcCfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\starsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSSfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubsubsection\relax + \mtc@toks{\noexpand \leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSSSfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\starparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcPfont% + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\ptcSPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\ptcSPfont + \space #3}{#4}}}}\@tempa% %%DV: 4 instead of 3 parameters + \fi +} + +\def\PTC@explist{\expandafter\PTC@next\PTC@list\\} +\def\PTC@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JPARTTOCS NOT PREPARED.^^J}% + \expandafter\PTC@toc + \else + \typeout{PREPARING PARTTOCS FROM #1}% + \expandafter\PTC@read\fi} +\def\PTC@read{% + \read\@inputcheck to\PTC@line + \expandafter\PTC@test\PTC@line....\PTC@% + }% +\long\def\PTC@test#1#2#3#4#5\PTC@{% + \ifx#1\contentsline + \let\mtc@string\string + \PTC@contentsline{#2}{#3}{#4}{\scrubdots#5}% %%DV: 4 instead of 3 params + \let\mtc@string\relax + \else\ifx#1\@input + \edef\PTC@list{\PTC@list#2\relax}% + \else\ifx#1\partend % \part* closes .ptcN (.ptc->.P on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\partbegin + \addtocounter{ptc}{-1}% % \part* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\PTC@toc + \else\expandafter\PTC@read\fi}% + +\def\PLF@next#1\relax#2\\{% + \edef\PLF@list{#2}% + \PLF@loop{#1}} +\def\PLF@lof{% + \ifx\PLF@list\@empty\else\expandafter\PLF@explist\fi} + +\def\PLF@contentsline#1#2#3{% +\expandafter% + \ifx\csname #1\endcsname\xpart\relax + \stepcounter{ptc}% % the ptc counter simulates the part counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.plf\theptc}% % UNIX +\def\plfname{\jobname.plf\theptc}}% % UNIX +{\typeout{Writing\space\jobname.G\theptc}% % MS-DOS +\def\plfname{\jobname.G\theptc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .plfN .plf->.G on MS-DOS + \immediate\openout\tf@mtc=\plfname % open next .plfN (.plf->.G if MS-DOS) + \fi +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\figure\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\plffont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\plffont% + \space #3}}}}\@tempa + \fi +} + +\def\PLF@explist{\expandafter\PLF@next\PLF@list\\} +\def\PLF@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JPARTLOFS NOT PREPARED.^^J}% + \expandafter\PLF@lof + \else + \typeout{PREPARING PARTLOFS FROM #1}% + \expandafter\PLF@read\fi} +\def\PLF@read{% + \read\@inputcheck to\PLF@line + \expandafter\PLF@test\PLF@line....\PLF@% + }% +\long\def\PLF@test#1#2#3#4#5\PLF@{% + \ifx#1\contentsline + \let\mtc@string\string + \PLF@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\PLF@list{\PLF@list#2\relax}% + \else\ifx#1\partend % \part* closes .plfN (.plf->.G on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\partbegin + \addtocounter{ptc}{-1}% % \part* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\PLF@lof + \else\expandafter\PLF@read\fi}% + +\def\PLT@next#1\relax#2\\{% + \edef\PLT@list{#2}% + \PLT@loop{#1}} +\def\PLT@lot{% + \ifx\PLT@list\@empty\else\expandafter\PLT@explist\fi} + +\def\PLT@contentsline#1#2#3{% +\expandafter% + \ifx\csname #1\endcsname\xpart\relax + \stepcounter{ptc}% % the ptc counter simulates the part counter +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.plt\theptc}% % UNIX +\def\pltname{\jobname.plt\theptc}}% % UNIX +{\typeout{Writing\space\jobname.U\theptc}% % MS-DOS +\def\pltname{\jobname.U\theptc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .pltN .plt->.U on MS-DOS + \immediate\openout\tf@mtc=\pltname % open next .pltN (.plt->.U if MS-DOS) + \fi +\expandafter% % extracts and writes info for chapters, sections, etc. + \ifx\csname #1\endcsname\table\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\pltfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\pltfont% + \space #3}}}}\@tempa + \fi +} + +\def\PLT@explist{\expandafter\PLT@next\PLT@list\\} +\def\PLT@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JPARTLOTS NOT PREPARED.^^J}% + \expandafter\PLT@lot + \else + \typeout{PREPARING PARTLOTS FROM #1}% + \expandafter\PLT@read\fi} +\def\PLT@read{% + \read\@inputcheck to\PLT@line + \expandafter\PLT@test\PLT@line....\PLT@% + }% +\long\def\PLT@test#1#2#3#4#5\PLT@{% + \ifx#1\contentsline + \let\mtc@string\string + \PLT@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\PLT@list{\PLT@list#2\relax}% + \else\ifx#1\partend % \part* closes .pltN (.plt->.U on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\partbegin + \addtocounter{ptc}{-1}% % \part* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\PLT@lot + \else\expandafter\PLT@read\fi}% +} % end of part stuff + +%%%%%%%%%%%%%%%%%%%%%%% +%%% If \chapter is not defined but \section is, then +%%% the following macros are available (for article-like documents). +%%% Braces are inscrutable! +\@ifundefined{chapter}% +{\@ifundefined{section}{}{% +\def\firstsectionis#1% + {\typeout{^^JWARNING*** \string\firstsectionis}% + \typeout{ is an obsolete command^^J}} +\newcounter{stc} % counter of secttocs +\setcounter{stc}{0} +\newcounter{secttocdepth} % analog to tocdepth, but for secttocs +\setcounter{secttocdepth}{2} + +% rule before/after secttoc/sectlof/sectlot +\def\stc@rule{\kern-3\p@% + \hrule width \columnwidth \kern2.6\p@} % the \hrule is .4pt high + +\newlength\stcindent % indentation (left/right) of secttocs +\stcindent=24pt % defaut value +\def\stcfont{\small\rm} % font for the secttoc +\def\stcSSfont{\normalsize\bf} % font for the secttoc (subsections) +\def\stcSSSfont{\stcfont} % font for the secttoc (subsubsections) +\def\stcPfont{\stcfont} % font for the secttoc (paragraphs) +\def\stcSPfont{\stcfont} % font for the secttoc (subparagraphs) +\def\slffont{\stcfont} % font for the sectlof (figures) +\def\sltfont{\stcfont} % font for the sectlot (tables) +\def\stifont{\Large\bf} % font for titles + +% Centering, flushleft, flushright or empty titles. +\def\c@sti#1{\null\hfill #1\hfill\null} +\def\l@sti#1{\null #1\hfill\null} +\def\r@sti#1{\null\hfill #1\null} +\def\e@sti#1{\relax} +\def\n@sti#1{\relax} + +% Default: titles on left +\let\do@stitc\l@sti +\let\df@stitc\l@sti +\let\do@stilf\l@sti +\let\df@stilf\l@sti +\let\do@stilt\l@sti +\let\df@stilt\l@sti + +%v27 % Language dependent names: default values +%v27 \@ifundefined{stctitle}{\def\stctitle{Contents}}{\relax} +%v27 \@ifundefined{slftitle}{\def\slftitle{Figures}}{\relax} +%v27 \@ifundefined{slttitle}{\def\slttitle{Tables}}{\relax} + +\def\stc@verse{\let\\=\@centercr + \list{}{\itemsep\z@\itemindent \z@\listparindent \itemindent + \leftmargin\stcindent + \rightmargin\leftmargin}\item[]} +\def\endstc@verse{\nopagebreak[4]\endlist} + +% this command must be used after \section +% if you need a secttoc (no automatic secttoc) +\def\secttoc{\@ifnextchar[{\secttoc@}{\secttoc@[d]}} + +\def\secttoc@[#1]{% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@stitc\e@sti + \else\if #1n\let\do@stitc\n@sti + \else\if #1c\let\do@stitc\c@sti + \else\if #1l\let\do@stitc\l@sti + \else\if #1r\let\do@stitc\r@sti + \else\if #1d\let\do@stitc\df@stitc + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\stcfont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\stc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\stifont\do@stitc{\mtc@v\stctitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\stifont\do@stitc{\mtc@v\stctitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\stcindent + \rightmargin\stcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + \begin{stc@verse}\c@tocdepth=\c@secttocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{stc@pgno}% + {\let\@dottedtocline\@undottedtocline}{} + \gdef\thestc{\arabic{stc}} %23 +\@ifundefined{SHORTEXT}% +{\def\@tocfile{stc\thestc}}% % UNIX +{\def\@tocfile{S\thestc}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{stc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\stc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\pagebreak[1]\vspace*{-1ex}}% + % some space under the secttoc + +% this command must be used after \section +% if you need a sectlof (no automatic sectlof) +\def\sectlof{\@ifnextchar[{\sectlof@}{\sectlof@[d]}} + +\def\sectlof@[#1]{% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@stilf\e@sti + \else\if #1n\let\do@stilf\n@sti + \else\if #1c\let\do@stilf\c@sti + \else\if #1l\let\do@stilf\l@sti + \else\if #1r\let\do@stilf\r@sti + \else\if #1d\let\do@stilf\df@stilf + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\slffont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\stc@rule\relax % correction 07Nov94 v23 + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\stifont\do@stilf{\mtc@v\slftitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\stifont\do@stilf{\mtc@v\slftitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\stcindent + \rightmargin\stcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + % depth does not matter for sectlof + \begin{stc@verse}%\c@tocdepth=\c@secttocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{slf@pgno}% + {\let\@dottedtocline\@undottedtocline}{} + \gdef\thestc{\arabic{stc}} %23 +\@ifundefined{SHORTEXT}% +{\def\@tocfile{slf\thestc}}% % UNIX +{\def\@tocfile{H\thestc}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{stc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\stc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\pagebreak[1]\vspace*{-1ex}}% + % some space under the secttoc + +% Added in version #13 +% this command must be used after \section +% if you need a sectlot (no automatic sectlot) +\def\sectlot{\@ifnextchar[{\sectlot@}{\sectlot@[d]}} + +\def\sectlot@[#1]{% + \relax\begin{samepage}% we begin a local group here, using samepage + \if #1e\let\do@stilt\e@sti + \else\if #1n\let\do@stilt\n@sti + \else\if #1c\let\do@stilt\c@sti + \else\if #1l\let\do@stilt\l@sti + \else\if #1r\let\do@stilt\r@sti + \else\if #1d\let\do@stilt\df@stilt + \fi\fi\fi\fi\fi\fi + \raggedright % added #14 + \parskip=\z@% + \reset@font\sltfont% + \parindent=\z@% + \nopagebreak[4]% + \kern-0.8\baselineskip\nopagebreak[4]% + \par\noindent + \ifx\stc@rule\relax + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\stifont\do@stilt{\mtc@v\slttitle}}\\ + \end{tabular}\else + \begin{tabular}{@{}p{\columnwidth}@{}} + {\reset@font\stifont\do@stilt{\mtc@v\slttitle}}\\\hline + \end{tabular}\fi + \nopagebreak[4]\null\leavevmode\vrule width \z@ + height \z@ depth \z@\\\@BBR% + \leftmargin\stcindent + \rightmargin\stcindent + \itemindent=\z@\labelwidth=\z@% + \labelsep=\z@\listparindent=\z@% + % depth does not matter for sectlot + \begin{stc@verse}%\c@tocdepth=\c@secttocdepth% + \leavevmode\\\@BBR% this blank line is necessary to avoid + % a wild negative indentation + \vskip -.5\baselineskip +\begingroup + \makeatletter + \@ifundefined{slt@pgno}% + {\let\@dottedtocline\@undottedtocline}{} + \gdef\thestc{\arabic{stc}} +\@ifundefined{SHORTEXT}% +{\def\@tocfile{slt\thestc}}% % UNIX +{\def\@tocfile{V\thestc}}% % MS-DOS + \@input{\jobname.\@tocfile}\if@filesw + \fi% + \global\@nobreakfalse\endgroup + \end{stc@verse}% + \kern0.\baselineskip% + \nopagebreak[4]\stc@rule\null\leavevmode\\% + \vskip-1.0\baselineskip + \vrule width \z@ height \z@ + depth \z@\end{samepage}% %## the \\ is essential + \par\pagebreak[1]\vspace*{-1ex}}% + % some space under the secttoc + +% I use a depth of 10000 to inhibit the printing of +% that contentsline. +\def\l@xsect{\@dottedtocline{\@M}{1.0em}{2.3em}} +\def\l@schapter{\@dottedtocline{1}{1.0em}{2.3em}} + +\def\xsect{xsect} +\def\schapter{schapter} + +\let\sv@sect\@sect +\gdef\@sect#1#2#3#4#5#6[#7]#8{% +\ifnum #2=1 +\addcontentsline{lof}{xsect}{#7}% +\addcontentsline{lot}{xsect}{#7}% +\fi +\sv@sect{#1}{#2}{#3}{#4}{#4}{#5}{#6}[{#7}]{#8}} + +\def\@sect#1#2#3#4#5#6[#7]#8{ +\expandafter +\ifx\csname #1\endcsname\section\relax % ADDED +\addcontentsline{lof}{xsect}{#7}% ADDED +\addcontentsline{lot}{xsect}{#7}% ADDED +\fi % ADDED +\ifx\csname #1\endcsname\starsection\relax % ADDED v25 +\addcontentsline{lof}{xsect}{#7}% ADDED v25 +\addcontentsline{lot}{xsect}{#7}% ADDED v25 +\fi % ADDED v25 +\ifnum #2>\c@secnumdepth + \let\@svsec\@empty\else + \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em}\fi + \@tempskipa #5\relax + \ifdim \@tempskipa>\z@ + \begingroup #6\relax + \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% + \endgroup + \csname #1mark\endcsname{#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi + #7}\else + \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90 + \@svsec #8\csname #1mark\endcsname + {#7}\addcontentsline + {toc}{#1}{\ifnum #2>\c@secnumdepth \else + \protect\numberline{\csname the#1\endcsname}\fi + #7}}\fi + \@xsect{#5}} + +% tricky code to deal with \section* +\let\stc@ssect\@ssect +\def\@ssect{% +\addtocontents{toc}{\protect\sectend}\stc@ssect% +} +\def\@ssect{% +\addtocontents{toc}{\protect\sectbegin}\stc@ssect% +} +\let\sectend\relax +\let\sectbegin\relax + +\let\appendixmtc\relax + +% this command extracts info from the .toc file +% and create the .stcN files (.stc -> .S on MS-DOS) +\def\@dosecttoc#1{{% + \makeatletter + \setcounter{stc}{0} % START VALUE + \STC@next#1.toc\relax\\}\setcounter{stc}{0}} %23: raz +% this command extracts info from the .lof file +% and create the .slfN files (.slf -> .H on MS-DOS) +\def\@dosectlof#1{{% + \makeatletter + \setcounter{stc}{0} % START VALUE + \SLF@next#1.lof\relax\\}\setcounter{stc}{0}} %23: raz +% this command extracts info from the .lot file +% and create the .sltN files (.slt -> .V on MS-DOS) +\def\@dosectlot#1{{% + \setcounter{stc}{0} % START VALUE + \makeatletter + \SLT@next#1.lot\relax\\}\setcounter{stc}{0}} %23: raz + +\def\dosecttoc{\@ifnextchar[{\dosecttoc@}{\dosecttoc@[l]}} +\def\dosectlof{\@ifnextchar[{\dosectlof@}{\dosectlof@[l]}} +\def\dosectlot{\@ifnextchar[{\dosectlot@}{\dosectlot@[l]}} + +\def\dosecttoc@[#1]{% +\if #1e\let\df@stitc\e@sti% +\else\if #1n\let\df@stitc\n@sti% +\else\if #1c\let\df@stitc\c@sti% +\else\if #1l\let\df@stitc\l@sti% +\else\if #1r\let\df@stitc\r@sti% +\fi\fi\fi\fi\fi% +\@@dosecttoc} + +\def\dosectlof@[#1]{% +\if #1e\let\df@stilf\e@sti% +\else\if #1n\let\df@stilf\n@sti% +\else\if #1c\let\df@stilf\c@sti% +\else\if #1l\let\df@stilf\l@sti% +\else\if #1r\let\df@stilf\r@sti% +\fi\fi\fi\fi\fi% +\@@dosectlof} + +\def\dosectlot@[#1]{% +\if #1e\let\df@stilt\e@sti% +\else\if #1n\let\df@stilt\n@sti% +\else\if #1c\let\df@stilt\c@sti% +\else\if #1l\let\df@stilt\l@sti% +\else\if #1r\let\df@stilt\r@sti% +\fi\fi\fi\fi\fi% +\@@dosectlot} + +\def\@@dosecttoc{\@dosecttoc{\jobname}\immediate\closeout\tf@mtc} +\def\@@dosectlof{\@dosectlof{\jobname}\immediate\closeout\tf@mtc} +\def\@@dosectlot{\@dosectlot{\jobname}\immediate\closeout\tf@mtc} + +\def\STC@next#1\relax#2\\{% + \edef\STC@list{#2}% + \STC@loop{#1}} +\def\STC@toc{% + \ifx\STC@list\@empty\else\expandafter\STC@explist\fi} + +\def\STC@contentsline#1#2#3{% + \gdef\thestc{\arabic{stc}} +\expandafter% + \ifx\csname #1\endcsname\section\relax + \stepcounter{stc}% % the stc counter simulates the section counter + \gdef\thestc{\arabic{stc}} +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.stc\thestc}% % UNIX +\def\stcname{\jobname.stc\thestc}}% % UNIX +{\typeout{Writing\space\jobname.S\thestc}% % MS-DOS +\def\stcname{\jobname.S\thestc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .stcN .stc->.S on MS-DOS + \immediate\openout\tf@mtc=\stcname % open next .stcN (.stc->.S if MS-DOS) + \fi +\expandafter% + \ifx\csname #1\endcsname\subsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcSSfont% + \space #3}}}}\@tempa + \fi +\expandafter% + \ifx\csname #1\endcsname\subsubsection\relax + \mtc@toks{\noexpand \leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcSSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcSSSfont% + \space #3}}}}\@tempa + \fi +\expandafter% + \ifx\csname #1\endcsname\paragraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcPfont% + \space #3}}}}\@tempa + \fi +\expandafter% + \ifx\csname #1\endcsname\subparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcSPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcSPfont + \space #3}}}}\@tempa + \fi +% Added v25: \starsection and co. + \ifx\csname #1\endcsname\starsection\relax + \stepcounter{stc}% % the stc counter simulates the section counter + \gdef\thestc{\arabic{stc}} +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.stc\thestc}% % UNIX +\def\stcname{\jobname.stc\thestc}}% % UNIX +{\typeout{Writing\space\jobname.S\thestc}% % MS-DOS +\def\stcname{\jobname.S\thestc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .stcN .stc->.S on MS-DOS + \immediate\openout\tf@mtc=\stcname % open next .stcN (.stc->.S if MS-DOS) + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubsection\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcSSfont% + \space #3}}}}\@tempa + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubsubsection\relax + \mtc@toks{\noexpand \leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcSSSfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcSSSfont% + \space #3}}}}\@tempa + \fi +\expandafter% + \ifx\csname #1\endcsname\starparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcPfont% + \space #3}}}}\@tempa + \fi +\expandafter% + \ifx\csname #1\endcsname\starsubparagraph\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\stcSPfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\stcSPfont + \space #3}}}}\@tempa + \fi +} + +\def\STC@explist{\expandafter\STC@next\STC@list\\} +\def\STC@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JSECTTOCS NOT PREPARED.^^J}% + \expandafter\STC@toc + \else + \typeout{PREPARING SECTTOCS FROM #1}% + \expandafter\STC@read\fi} +\def\STC@read{% + \read\@inputcheck to\STC@line + \expandafter\STC@test\STC@line....\STC@% + }% +\long\def\STC@test#1#2#3#4#5\STC@{% + \ifx#1\contentsline + \let\mtc@string\string + \STC@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\STC@list{\STC@list#2\relax}% + \else\ifx#1\sectend % \section* closes .stcN (.stc->.S on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\sectbegin + \addtocounter{stc}{-1}% % \section* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\STC@toc + \else\expandafter\STC@read\fi}% + +\def\SLF@next#1\relax#2\\{% + \edef\SLF@list{#2}% + \SLF@loop{#1}} +\def\SLF@lof{% + \ifx\SLF@list\@empty\else\expandafter\SLF@explist\fi} + +\def\SLF@contentsline#1#2#3{% + \gdef\thestc{\arabic{stc}} +\expandafter% + \ifx\csname #1\endcsname\xsect\relax + \stepcounter{stc}% % the stc counter simulates the section counter + \gdef\thestc{\arabic{stc}} +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.slf\thestc}% % UNIX +\def\slfname{\jobname.slf\thestc}}% % UNIX +{\typeout{Writing\space\jobname.G\thestc}% % MS-DOS +\def\slfname{\jobname.H\thestc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .slfN .slf->.H on MS-DOS + \immediate\openout\tf@mtc=\slfname % open next .slfN (.slf->.H if MS-DOS) + \fi +\expandafter% % extracts and writes info for sections, etc. + \ifx\csname #1\endcsname\figure\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\slffont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\slffont% + \space #3}}}}\@tempa + \fi +} + +\def\SLF@explist{\expandafter\SLF@next\SLF@list\\} +\def\SLF@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JSECTLOFS NOT PREPARED.^^J}% + \expandafter\SLF@lof + \else + \typeout{PREPARING SECTLOFS FROM #1}% + \expandafter\SLF@read\fi} +\def\SLF@read{% + \read\@inputcheck to\SLF@line + \expandafter\SLF@test\SLF@line....\SLF@% + }% +\long\def\SLF@test#1#2#3#4#5\SLF@{% + \ifx#1\contentsline + \let\mtc@string\string + \SLF@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\SLF@list{\SLF@list#2\relax}% + \else\ifx#1\sectend % \section* closes .slfN (.slf->.H on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\sectbegin + \addtocounter{stc}{-1}% % \section* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\SLF@lof + \else\expandafter\SLF@read\fi}% + +\def\SLT@next#1\relax#2\\{% + \edef\SLT@list{#2}% + \SLT@loop{#1}} +\def\SLT@lot{% + \ifx\SLT@list\@empty\else\expandafter\SLT@explist\fi} + +\def\SLT@contentsline#1#2#3{% + \gdef\thestc{\arabic{stc}} +\expandafter% + \ifx\csname #1\endcsname\xsect\relax + \stepcounter{stc}% % the stc counter simulates the section counter + \gdef\thestc{\arabic{stc}} +\@ifundefined{SHORTEXT}% +{\typeout{Writing\space\jobname.slt\thestc}% % UNIX +\def\mltname{\jobname.slt\thestc}}% % UNIX +{\typeout{Writing\space\jobname.V\thestc}% % MS-DOS +\def\sltname{\jobname.V\thestc}}% % MS-DOS + \immediate\closeout\tf@mtc % close current .sltN .slt->.V on MS-DOS + \immediate\openout\tf@mtc=\sltname % open next .sltN (.slt->.V if MS-DOS) + \fi +\expandafter% % extracts and writes info for subsections, etc. + \ifx\csname #1\endcsname\table\relax + \mtc@toks{\noexpand\leavevmode#2}% + \edef\@tempa{\immediate\write\tf@mtc {% + {\string\reset@font\string\sltfont\string\mtc@string% + \string\contentsline{#1}% + {\noexpand\the\mtc@toks}{\string\reset@font\string\sltfont% + \space #3}}}}\@tempa + \fi +} + +\def\SLT@explist{\expandafter\SLT@next\SLT@list\\} +\def\SLT@loop#1{\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \typeout{^^JNo file #1^^JSECTLOTS NOT PREPARED.^^J}% + \expandafter\SLT@lot + \else + \typeout{PREPARING SECTLOTS FROM #1}% + \expandafter\SLT@read\fi} +\def\SLT@read{% + \read\@inputcheck to\SLT@line + \expandafter\SLT@test\SLT@line....\SLT@% + }% +\long\def\SLT@test#1#2#3#4#5\SLT@{% + \ifx#1\contentsline + \let\mtc@string\string + \SLT@contentsline{#2}{#3}{#4}% + \let\mtc@string\relax + \else\ifx#1\@input + \edef\SLT@list{\SLT@list#2\relax}% + \else\ifx#1\sectend % \section* closes .sltN (.slt->.V on MS-DOS) + \immediate\closeout\tf@mtc + \immediate\openout\tf@mtc=\jobname.bmt % and opens a scratch file + \else\ifx#1\sectbegin + \addtocounter{stc}{-1}% % \section* has done a parasite increment + \fi\fi\fi\fi + \ifeof\@inputcheck\expandafter\SLT@lot + \else\expandafter\SLT@read\fi}% +}}{} + +\@ifundefined{section}{}{\let\l@listof\l@section} %v27 +\@ifundefined{chapter}{}{\let\l@listof\l@chapter} %v27 +\@ifundefined{part}{}{\let\l@starpart\l@part} +\@ifundefined{chapter}{}{\let\l@starchapter\l@chapter} +\@ifundefined{section}{}{\let\l@starsection\l@section} +\@ifundefined{subsection}{}{\let\l@starsubsection\l@subsection} +\@ifundefined{subsubsection}{}{\let\l@starsubsubsection\l@subsubsection} +\@ifundefined{paragraph}{}{\let\l@starparagraph\l@paragraph} +\@ifundefined{subparagraph}{}{\let\l@starsubparagraph\l@subparagraph} + +\def\noptcrule{\let\ptc@rule\relax} +\def\nomtcrule{\let\mtc@rule\relax} +\def\nostcrule{\let\stc@rule\relax} +\def\ptcrule{\def\ptc@rule{\kern-3\p@% + \hrule width \columnwidth \kern2.6\p@}} % the \hrule is .4pt high +\def\mtcrule{\def\mtc@rule{\kern-3\p@% + \hrule width \columnwidth \kern2.6\p@}} % the \hrule is .4pt high +\def\stcrule{\def\stc@rule{\kern-3\p@% + \hrule width \columnwidth \kern2.6\p@}} % the \hrule is .4pt high + +%%%% Language dependent part +\DeclareOption{american}{\input{english.mld}} +\DeclareOption{austrian}{\input{german.mld}} +\DeclareOption{brazil}{\input{portuges.mld}} +\DeclareOption{breton}{\input{breton.mld}} %v26 +\DeclareOption{catalan}{\input{catalan.mld}} +\DeclareOption{croatian}{\input{croatian.mld}} +\DeclareOption{czech}{\input{czech.mld}} +\DeclareOption{danish}{\input{danish.mld}} +\DeclareOption{dutch}{\input{dutch.mld}} +\DeclareOption{english}{\input{english.mld}} +\DeclareOption{esperant}{\input{esperant.mld}} %v26 +\DeclareOption{esperanto}{\input{esperant.mld}} %v26 +\DeclareOption{finnish}{\input{finnish.mld}} +\DeclareOption{francais}{\input{french.mld}} +\DeclareOption{french}{\input{french.mld}} +\DeclareOption{galician}{\input{galician.mld}} +\DeclareOption{german}{\input{german.mld}} +\DeclareOption{germanb}{\input{germanb.mld}} %v26 +\DeclareOption{greek}{\input{greek.mld}} %v26 +\DeclareOption{hungarian}{\input{magyar.mld}} +\DeclareOption{irish}{\input{irish.mld}} %v26 +\DeclareOption{italian}{\input{italian.mld}} +\DeclareOption{lsorbian}{\input{lsorbian.mld}} %v26 +\DeclareOption{magyar}{\input{magyar.mld}} +\DeclareOption{norsk}{\input{norsk.mld}} +\DeclareOption{nynorsk}{\input{nynorsk.mld}} %v25 +\DeclareOption{polish}{\input{polish.mld}} +\DeclareOption{portuges}{\input{portuges.mld}} +\DeclareOption{romanian}{\input{romanian.mld}} +%%%%russian not supported \DeclareOption{russian}{\input{russian.mld}} +\DeclareOption{russianb}{\input{russianb.mld}} %v26 +\DeclareOption{scottish}{\input{scottish.mld}} %v26 +\DeclareOption{slovak}{\input{slovak.mld}} +\DeclareOption{slovene}{\input{slovene.mld}} +\DeclareOption{spanish}{\input{spanish.mld}} +\DeclareOption{swedish}{\input{swedish.mld}} +\DeclareOption{turkish}{\input{turkish.mld}} +\DeclareOption{usorbian}{\input{usorbian.mld}} %v26 +\DeclareOption{vietnam}{\input{vietnam.mld}} %v27 +\DeclareOption{vietnamese}{\input{vietnam.mld}} %v27 +\DeclareOption{arab}{\input{arab.mld}} %v27 +\DeclareOption{arabic}{\input{arab.mld}} %v27 +\ExecuteOptions{english} %v27 % default +\ProcessOptions* +%%\languagespecific{russian.dtx} +%% +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\endinput +%% +%% End of file `minitoc.sty'. diff --git a/macros/latex/contrib/hyperref/nameref.dtx b/macros/latex/contrib/hyperref/nameref.dtx new file mode 100644 index 0000000000..ace38a90d7 --- /dev/null +++ b/macros/latex/contrib/hyperref/nameref.dtx @@ -0,0 +1,903 @@ +% \iffalse +%% File: nameref.dtx +%% Copyright (C) 1995-1999 Sebastian Rahtz +%% 2000 Sebastian Rahtz, Heiko Oberdiek +%% 2001-2012 Heiko Oberdiek +%% 2016 Oberdiek Package Suport Group +%% https://github.com/ho-tex/hyperref/issues +%% +%% This file is part of the `Hyperref Bundle'. +%% ------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Heiko Oberdiek. +%% +%% The list of all files belonging to the `Hyperref Bundle' is +%% given in the file `manifest.txt'. +% +%<*dtx> +\ProvidesFile{nameref.dtx} +%</dtx> +%<package>\NeedsTeXFormat{LaTeX2e} +%<package>\ProvidesPackage{nameref} +%<driver>\ProvidesFile{nameref.drv} +% \fi +% \ProvidesFile{nameref.dtx} + [2016/05/21 v2.44 Cross-referencing by name of section]% +% +% \CheckSum{714} +% +% \iffalse +%<*driver> +\documentclass{ltxdoc} +\usepackage[numbered]{hypdoc} +\usepackage{bmhydoc} +\usepackage{hologo} +\EnableCrossrefs +\CodelineIndex +\newcommand*{\xpackage}[1]{\textsf{#1}} +\begin{document} + \GetFileInfo{nameref.sty}% + \title{% + Section name references in \LaTeX + \thanks{% + This file has version number \fileversion, % + last revised \filedate.% + }% + }% + \author{Sebastian Rahtz (deceased)\\% + Heiko Oberdiek (maintainer)\\% + \texttt{https://github.com/ho-tex/hyperref/issues}}% + \date{\filedate}% + \maketitle + \makeatletter + \@ifundefined{HyperrefOverview}{}{% + \HyperrefOverview*% + }% + \tableofcontents + \DocInput{nameref.dtx}% + \PrintIndex +\end{document} +%</driver> +% \fi +% +% \StopEventually{} +% +% \section{Introduction} +% Cross-referencing to include the \emph{name} of the section, rather than +% just the number or page. This works by redefining some of the inside +% \LaTeX\ macros, so it is vulnerable to future changes. +% \section{History} +% Sebastian Rahtz, for Lou Burnard, March 15th 1994;\\ +% SPQR CERN July 1994;\\ +% Last mod. Sept. 3th MG;\\ +% Sept. 19th SPQR;\\ +% April 11th 1995 SPQR (added section formatting hook);\\ +% April 14th 1995 SPQR (compatibility with hyperref);\\ +% June 22 1995 SPQR (removed typeout from Sectionformat);\\ +% September 22 1997 added varioref hacks by Corey Minyard;\\ +% September 28th changes by David Carlisle.\\ +% More recent changes are recorded in ChangeLog. +% +% The versions before 2009/11/27 v2.32 did not expand the +% title strings (of \cs{section}, \cs{caption}, \dots). +% Then the behaviour switched to expanding, because this +% allows to remove unwanted macros (\cs{label}, \dots). +% Despite this method is used in package \textsf{titleref} +% and class \textsf{memoir}, the first feedbacks let me conclude +% that this is not robust enough. Therefore I wrote package +% \textsf{gettitlestring} that uses the non-expanding +% method as default. It also allows me to use this package +% in package \textsf{zref-titleref}. +% See the package documentation of package \textsf{gettitlestring} +% how to change the method. It also provides a hook to remove +% additional unwanted macros, not supported by the package. +% Example: +%\begin{quote} +%\begin{verbatim} +%\usepackage{gettitlestring} +%\GetTitleStringDisableCommands{% +% \let\mylabel\@gobble +% \renewcommand\myindex[2]{}% +%} +%\end{verbatim} +%\end{quote} +% +% \section{Implementation} +% \begin{macrocode} +%<*package> +% \end{macrocode} +% +% \begin{macrocode} +\RequirePackage{refcount}[2006/02/12] +\RequirePackage{gettitlestring}[2009/12/18] +\RequirePackage{ltxcmds}[2009/12/12] +% \end{macrocode} +% +% We redefine |\label| so that it also writes the name of the +% current section to the .aux file; if the name ends in a dot, +% we zap it. To allow for the \xpackage{hyperref} package, also write +% fourth and fifth fields (empty by default; +% used for cross-ref name, and file). +% \begin{macro}{\NR@strip@period} +% \begin{macrocode} +\def\NR@strip@period#1.\ltx@empty#2\@nil{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\strip@period} +% Macro \cs{strip@period} was removed in \xpackage{nameref} +% 2012/07/28 v2.41 and reinserted in 2012/07/31 v2.42 for compatibilty +% reasons with package \xpackage{subfig}. +% \begin{macrocode} +\def\strip@period#1.\relax#2\@@@{#1} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\def\NR@sanitize@labelname{% + \@onelevel@sanitize\@currentlabelname + \edef\@currentlabelname{% + \expandafter\NR@strip@period\@currentlabelname + \ltx@empty.\ltx@empty\@nil + }% +} +% \end{macrocode} +% +% \subsection{\cs{label} stuff} +% +% Here is tested, whether package \xpackage{showkeys} is loaded. +% But if option final is used, the macros of \xpackage{showkeys} +% are not defined, so we have to check an additional +% test. +% \begin{macro}{\ifNR@showkeys} +% \begin{macrocode} +\newif\ifNR@showkeys +\NR@showkeysfalse +\@ifpackageloaded{showkeys}{% + \begingroup + \@ifundefined{SK@@label}{% + }{% + \global\NR@showkeystrue + }% + \endgroup +}{} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\label@hook} +% \begin{macrocode} +\providecommand*{\label@hook}{} +\ltx@GlobalAppendToMacro{\label@hook}{% + \NR@sanitize@labelname +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\label} +% \begin{macrocode} +\def\label#1{% + \@bsphack + \begingroup + \def\label@name{#1}% + \label@hook + \protected@write\@auxout{}{% + \string\newlabel{#1}{% + {\@currentlabel}% + {\thepage}% + {\@currentlabelname}% + {\@currentHref}{}% + }% + }% + \endgroup + \@esphack +}% +\ifNR@showkeys + \def\label#1{% + \@bsphack + \SK@\SK@@label{#1}% + \begingroup + \def\label@name{#1}% + \label@hook + \protected@write\@auxout{}{% + \string\newlabel{#1}{% + {\@currentlabel}% + {\thepage}% + {\@currentlabelname}% + {\@currentHref}{}% + }% + }% + \endgroup + \@esphack + }% +\fi +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ltx@label} +% \begin{macrocode} +\let\ltx@label\label +% \end{macrocode} +% \end{macro} +% Needed for the \emph{subeqnarray} package. +% \begin{macro}{\slabel} +% \begin{macrocode} +\@ifundefined{slabel}{}{% + \def\slabel#1{% + \@bsphack + \if@filesw + \begingroup + \def\label@name{#1}% + \label@hook + \let\thepage\relax + \def\protect{\noexpand\noexpand\noexpand}% + \edef\@tempa{% + \write\@auxout{% + \string\newlabel{#1}{% + {\thesubequation}% + {\thepage}% + {\@currentlabelname}% + {\@currentHref}{}% + }% + }% + }% + \expandafter\endgroup + \@tempa + \if@nobreak\ifvmode\nobreak\fi\fi + \fi + \@esphack + }% +} +% \end{macrocode} +% \end{macro} +% Overload an AMS \hologo{LaTeX} command, which uses |\newlabel|. Sigh! +% \begin{macro}{\@writetocindents@} +% \begin{macrocode} +\def\@writetocindents@{% + \begingroup + \@for\@tempa:=-1,0,1,2,3\do{% + \immediate\write\@auxout{% + \string\newlabel{tocindent\@tempa}{% + \csname r@tocindent\@tempa\endcsname{}{}{}{}% + }% + }% + }% + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% \subsection{Changes of section macros} +% +% Add to the underlying section heading macros so that they +% note the section name for use by label. +% +% If a section heading or the like has a |\label| in it, +% we need to extract it, or subsequent processing breaks. +% +% \begin{macro}{\NR@gettitle} +% \begin{macrocode} +\def\NR@gettitle#1{% + \GetTitleString{#1}% + \let\@currentlabelname\GetTitleStringResult +} +% \end{macrocode} +% \end{macro} +% +% First the numbered sections. While we are about it, put in +% a useful section formatting macro. +% \begin{macro}{\NR@sect} +% \begin{macrocode} +\let\NR@sect\@sect +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\newcounter{section@level} +% \end{macrocode} +% \begin{macro}{\@sect} +% \begin{macrocode} +\def\@sect#1#2#3#4#5#6[#7]#8{% + \setcounter{section@level}{#2}% + \NR@gettitle{#7}% + \NR@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{\Sectionformat{#8}{#2}}% +} +% \end{macrocode} +% \end{macro} +% and now the unnumbered ones +% \begin{macro}{\NR@ssect} +% \begin{macrocode} +\let\NR@ssect\@ssect +% \end{macrocode} +% \end{macro} +% \begin{macro}{\NR@ssect} +% \begin{macrocode} +\def\@ssect#1#2#3#4#5{% + \NR@gettitle{#5}% + \NR@ssect{#1}{#2}{#3}{#4}{\Sectionformat{#5}{#1}}% +} +% \end{macrocode} +% \end{macro} +% +% Support for class memoir. +% +% \begin{macrocode} +\ltx@IfUndefined{ifheadnameref}{% +}{% + \ltx@IfUndefined{M@sect}{% + }{% + \let\NRorg@M@sect\M@sect + \def\M@sect#1#2#3#4#5#6[#7][#8]{% + \ifheadnameref + \NR@gettitle{#8}% + \else + \NR@gettitle{#7}% + \fi + \NRorg@M@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}][{#8}]% + }% + }% +} +% \end{macrocode} +% +% Parts and chapters are treated differently. sigh. +% \cs{@part} and \cs{@spart} are \cs{long} because of class memoir. +% +% \begin{macrocode} +\let\NR@part\@part +\long\def\@part[#1]#2{% + \NR@gettitle{#1}% + \NR@part[{#1}]{#2}% +} +\let\NR@spart\@spart +\long\def\@spart#1{% + \NR@gettitle{#1}% + \NR@spart{#1}% +} +\let\NR@chapter\@chapter +\def\@chapter[#1]#2{% + \NR@gettitle{#1}% + \NR@chapter[{#1}]{#2}% +} +\@ifclassloaded{memoir}{% + \ltx@IfUndefined{ifheadnameref}{% + }{% + \def\@chapter[#1]#2{% + \ltx@IfUndefined{ch@pt@c}{% + \NR@gettitle{#1}% + }{% + \ifx\ch@pt@c\ltx@empty + \NR@gettitle{#2}% + \else + \def\NR@temp{#1}% + \ifx\NR@temp\ltx@empty + \expandafter\NR@gettitle\expandafter{\ch@pt@c}% + \else + \ifheadnameref + \NR@gettitle{#1}% + \else + \expandafter\NR@gettitle\expandafter{\ch@pt@c}% + \fi + \fi + \fi + }% + \NR@chapter[{#1}]{#2}% + }% + }% +}{} +\let\NR@schapter\@schapter +\def\@schapter#1{% + \NR@gettitle{#1}% + \NR@schapter{#1}% +} +% \end{macrocode} +% +% Captions +% +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{hyperref}{% + \@ifpackagelater{hyperref}{2009/12/05}\@gobble\@firstofone + }\@firstofone + {% + \let\NR@@caption\@caption + \long\def\@caption#1[#2]{% + \NR@gettitle{#2}% + \NR@@caption{#1}[{#2}]% + }% + }% +% \end{macrocode} +% +% \begin{macrocode} + \@ifpackageloaded{longtable}{% + \let\NRorg@LT@c@ption\LT@c@ption + \def\LT@c@ption#1[#2]#3{% + \NRorg@LT@c@ption{#1}[{#2}]{#3}% + \def\@tempa{#2}% + \ifx\@tempa\@empty + \else + \NR@gettitle{#2}% + \fi + }% + }{}% +% \end{macrocode} +% +% Environment `description'. +% \begin{macrocode} + \ltx@IfUndefined{descriptionlabel}{% + }{% + \let\NRorg@descriptionlabel\descriptionlabel + \def\descriptionlabel#1{% + \NR@gettitle{#1}% + \NRorg@descriptionlabel{#1}% + }% + }% +} +% \end{macrocode} +% +% Compatibility for package titlesec. +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{titlesec}{% + \let\NRorg@ttl@sect@i\ttl@sect@i + \def\ttl@sect@i#1#2[#3]#4{% + \NR@gettitle{#4}% + \NRorg@ttl@sect@i{#1}{#2}[{#3}]{#4}% + }% + }{}% +} +% \end{macrocode} +% +% \subsubsection{Class beamer} +% +% \begin{macrocode} +\@ifclassloaded{beamer}{% + \def\NR@PatchBeamer#1{% + \expandafter\let\csname NRorg@beamer@#1\expandafter\endcsname + \csname beamer@#1\endcsname + \begingroup + \edef\x{\endgroup + \long\def\expandafter\noexpand\csname beamer@#1\endcsname + [####1]{% hash-ok + \noexpand\NR@gettitle{####1}% + \expandafter\noexpand\csname NRorg@beamer@#1\endcsname + [{####1}]% + }% + }% + \x + }% + \NR@PatchBeamer{section}% + \NR@PatchBeamer{subsection}% + \NR@PatchBeamer{subsubsection}% +% \end{macrocode} +% +% Theorem names. +% \begin{macrocode} + \addtobeamertemplate{theorem begin}{% + \expandafter\NR@gettitle\expandafter{\inserttheoremaddition}% + }{}% +% \end{macrocode} +% \begin{macrocode} + \@ifdefinable{\NRorg@beamer@descriptionitem}{% + \let\NRorg@beamer@descriptionitem\beamer@descriptionitem + \renewcommand{\beamer@descriptionitem}[1]{% + \NR@gettitle{#1}% + \NRorg@beamer@descriptionitem{#1}% + }% + }% +}{} +% \end{macrocode} +% +% \subsubsection{Theorems} +% +% \begin{macrocode} +\ltx@IfUndefined{@opargbegintheorem}{}{% + \let\NRorg@opargbegintheorem\@opargbegintheorem + \def\@opargbegintheorem#1#2#3{% + \NR@gettitle{#3}% + \NRorg@opargbegintheorem{#1}{#2}{#3}% + }% +} +\AtBeginDocument{% + \@ifpackageloaded{amsthm}{% + \let\NRorg@begintheorem\@begintheorem + \begingroup + \edef\x{macro:\string#1\string#2[\string#3]}% + \@onelevel@sanitize\x + \def\y#1->#2\@nil{#1}% + \edef\z{\expandafter\y\meaning\@begintheorem->\@nil}% + \@onelevel@sanitize\z + \expandafter\endgroup + \ifx\x\z + \def\@begintheorem#1#2[#3]{% + \NR@gettitle{#3}% + \NRorg@begintheorem{#1}{#2}[{#3}]% + }% + \fi + }{}% +} +% \end{macrocode} +% +% \subsection{Referencing stuff} +% +% We default the label and hypertext reference to be empty. +% \begin{macrocode} +\providecommand*{\@currentlabelname}{} +\providecommand*{\@currentHref}{} +% \end{macrocode} +% Since the second part of the preserved reference now has five parts +% (number, page, name, hypertext reference and file), we need extra utility +% macros: +% \begin{macro}{\@firstoffive} +% \begin{macrocode} +\long\def\@firstoffive#1#2#3#4#5{#1} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@secondoffive} +% \begin{macrocode} +\long\def\@secondoffive#1#2#3#4#5{#2} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@thirdoffive} +% \begin{macrocode} +\long\def\@thirdoffive#1#2#3#4#5{#3} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@fourthoffive} +% \begin{macrocode} +\long\def\@fourthoffive#1#2#3#4#5{#4} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@offive} +% \begin{macrocode} +\long\def\@fifthoffive#1#2#3#4#5{#5} +% \end{macrocode} +% \end{macro} +% We have to redefine |\ref| and |\pageref| to know about extra +% reference elements. Make them robust, and compatible with Babel. +% The Babel switch is mimicked if not already defined. +% Some support for package \xpackage{showkeys} is implemented. If +% option |notref| of that package is set, |\SK@ref| has the +% meaning of |\@empty|. +% \begin{macro}{\@safe@activestrue} +% \begin{macrocode} +\providecommand*\@safe@activestrue{}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\@safe@activesfalse} +% \begin{macrocode} +\providecommand*\@safe@activesfalse{}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\NR@setref} +% \begin{macrocode} +\def\NR@setref#1{% + \begingroup + \@safe@activestrue + \expandafter + \endgroup + \expandafter\NR@@setref\csname r@#1\endcsname +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\NR@@setref} +% \begin{macrocode} +\def\NR@@setref#1{% + \ifx\@undefined#1% + \let#1\relax + \fi + \@setref#1% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\T@ref} +% \begin{macrocode} +\def\T@ref#1{% + \NR@setref{#1}\@firstoffive{#1}% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\T@pageref} +% \begin{macrocode} +\def\T@pageref#1{% + \NR@setref{#1}\@secondoffive{#1}% +}% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +\ifNR@showkeys + \ifx\SK@ref\@empty + \else +% \end{macrocode} +% \begin{macro}{\T@ref} +% \begin{macrocode} + \def\T@ref#1{% + \@safe@activestrue + \SK@\SK@@ref{#1}% + \@safe@activesfalse + \NR@setref{#1}\@firstoffive{#1}% + }% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\T@pageref} +% \begin{macrocode} + \def\T@pageref#1{% + \@safe@activestrue + \SK@\SK@@ref{#1}% + \@safe@activesfalse + \NR@setref{#1}\@secondoffive{#1}% + }% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} + \fi +\fi +% \end{macrocode} +% Package \xpackage{hyperref} uses its own definitions of |\ref| and +% |\pageref| because it extends the syntax by the star form. +% |\DeclareRobustCommand| is used by \xpackage{hyperref}. +% Package |nameref| can be loaded before, after +% \xpackage{hyperref} or after +% \xpackage{hyperref}'s definitions in |\AtBeginDocument|. +% \begin{macrocode} +\@ifpackageloaded{hyperref}{% +}{% +% \end{macrocode} +% \begin{macro}{\ref} +% \begin{macrocode} + \DeclareRobustCommand{\ref}{\T@ref}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\pageref} +% \begin{macrocode} + \DeclareRobustCommand{\pageref}{\T@pageref}% +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +} +% \end{macrocode} +% +% \subsection{Usage and frontend} +% Access the (third) name part with |\nameref|; +% \begin{macro}{\T@nameref} +% \begin{macrocode} +\def\T@nameref#1{% + \begingroup + \let\label\@gobble + \NR@setref{#1}\@thirdoffive{#1}% + \endgroup +}% +\ifNR@showkeys + \ifx\SK@ref\@empty + \else + \def\T@nameref#1{% + \@safe@activestrue + \SK@\SK@@ref{#1}% + \@safe@activesfalse + \begingroup + \let\label\@gobble + \NR@setref{#1}\@thirdoffive{#1}% + \endgroup + }% + \fi +\fi +% \end{macrocode} +% \end{macro} +% \begin{macrocode} +%\@ifclassloaded{memoir}{% +% \ltx@IfUndefined{@mem@titlerefnolink}\ltx@secondoftwo{% +% \ltx@IfUndefined{@mem@titleref}\ltx@secondoftwo\ltx@firstoftwo +% }% +%}\ltx@secondoftwo +%{% +% \DeclareRobustCommand*{\nameref}{% +% \@ifstar\@mem@titlerefnolink\@mem@titleref +% }% +%}{% +% \end{macrocode} +% \begin{macro}{\nameref} +% \begin{macrocode} + \DeclareRobustCommand*{\nameref}{% + \@ifstar\T@nameref\T@nameref + }% +%} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Nameref} +% An extended form which gives title and page number. +% \begin{macrocode} +\def\Nameref#1{`\nameref{#1}' on page~\pageref{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Sectionformat} +% The default for |\Sectionformat| +% \begin{macrocode} +\providecommand\Sectionformat[2]{#1} +% \end{macrocode} +% \end{macro} +% +% \subsection{Package ifthen support} +% +% Package ifthen's \cmd{\isodd} does not work with +% \cmd{\pageref} because of the extra link and the +% star form. Therefore we need an expandable variant. +% +% Unfortunately there is no hook in \cmd{\ifthenelse} in order +% to provide expandable versions without link of \cmd{\ref} +% and \cmd{\pageref}. As possible target I could only find +% \cmd{\begingroup}: +% \begin{macrocode} +\@ifpackageloaded{ifthen}{% + \let\NROrg@ifthenelse\ifthenelse + \def\ifthenelse{% + \let\begingroup\NR@TE@begingroup + \NROrg@ifthenelse + }% + \let\NROrg@begingroup\begingroup + \def\NR@TE@begingroup{% + \let\begingroup\NROrg@begingroup + \begingroup + \def\ref##1{\getrefbykeydefault{##1}{}{??}}% + \def\pageref##1{\getrefbykeydefault{##1}{page}{0}}% + }% +}{} +% \end{macrocode} +% +% \subsection{Compatibility with varioref} +% +% [This section was derived by Corey Minyard \texttt{minyard@acm.org} +% from the \xpackage{varioref} package] +% \begin{macrocode} +\AtBeginDocument{% + \ifx\csname @@vpageref\endcsname\relax + \else + \def\@@vpageref#1[#2]#3{% + \begingroup + \csname @safe@activestrue\endcsname + \edef\x{#3}% + \@onelevel@sanitize\x + \toks@{% + \NR@@vpageref{#1}[{#2}]% + }% + \edef\x{\endgroup + \the\toks@{\x}% + }% + \x + }% + \def\NR@@vpageref#1[#2]#3{% + \leavevmode\unskip + \global\advance\c@vrcnt\@ne + \@ifundefined{r@\the\c@vrcnt @vr}% + {\@namedef{r@\the\c@vrcnt @vr}{{??}{??}{}{}{}}}{}% + \edef\@tempa{% + \expandafter\expandafter\expandafter + \@secondoffive\csname r@\the\c@vrcnt @vr\endcsname + }% + \@ifundefined{r@\the\c@vrcnt @xvr}% + {\@namedef{r@\the\c@vrcnt @xvr}{{??}{??}{}{}{}}}{}% + \edef\@tempb{% + \expandafter\expandafter\expandafter + \@secondoffive\csname r@\the\c@vrcnt @xvr\endcsname + }% + {% + \let\@currentlabel\@empty + \expandafter\label\expandafter{\the\c@vrcnt @xvr}% + }% + \ifx\@tempa\@tempb + \else + \vref@err{% + \noexpand\vref at page boundary % + \@tempb-\@tempa\space (may loop)% + }% + \fi + \@ifundefined{r@#3}{\@namedef{r@#3}{{??}{??}{}{}{}}}{}% + \edef\thevpagerefnum{% + \expandafter\expandafter\expandafter + \@secondoffive\csname r@#3\endcsname + }% + \ifx\vref@space\@undefined + \space + \else + \vref@space + \fi + \ifx\@tempa\thevpagerefnum + #1% + \else + #2% + \is@pos@number\thevpagerefnum{% + \is@pos@number\@tempa{% + \@tempcnta\@tempa + \advance\@tempcnta\@ne + }{% + \@tempcnta\maxdimen + }% + \ifnum \thevpagerefnum =\@tempcnta + \ifodd\@tempcnta + \if@twoside + \reftextfaceafter + \else + \reftextafter + \fi + \else + \reftextafter + \fi + \else + \advance\@tempcnta-2 % + \ifnum \thevpagerefnum =\@tempcnta + \ifodd\@tempcnta + \reftextbefore + \else + \if@twoside + \reftextfacebefore + \else + \reftextbefore + \fi + \fi + \else + \reftextfaraway{#3}% + \fi + \fi + }{% + \reftextfaraway{#3}% + }% + \fi + {% + \let\@currentlabel\@empty + \expandafter\label\expandafter{\the\c@vrcnt @vr}% + }% + }% + \DeclareRobustCommand\vnameref[1]{% + \unskip~\nameref{#1}% + \@vpageref[\unskip]{#1}% + }% + \fi +} +% \end{macrocode} +% \begin{macrocode} +\@ifundefined{@Refstar}{% + \def\T@Ref#1{% + \NR@setref{#1}\NR@MakeUppercaseFirstOfFive{#1}% + }% + \def\NR@MakeUppercaseFirstOfFive#1#2#3#4#5{% + \MakeUppercase#1% + }% +}{}% +\AtBeginDocument{% + \@ifpackageloaded{varioref}{% + \@ifundefined{@Refstar}{% + \DeclareRobustCommand*{\Ref}[1]{% + \T@Ref{#1}% + }% + }{}% + }{}% +}% +% \end{macrocode} +% +% \subsection{Support for package \xpackage{listings}} +% +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{listings}{% + \let\NROrg@lst@MakeCaption\lst@MakeCaption + \def\lst@MakeCaption{% + \ifx\lst@label\@empty + \else + \let\@currentlabelname\lst@@caption + \fi + \NROrg@lst@MakeCaption + }% + }{}% +} +% \end{macrocode} +% +% \begin{macrocode} +%</package> +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/hyperref/nameref.pdf b/macros/latex/contrib/hyperref/nameref.pdf Binary files differnew file mode 100644 index 0000000000..141ba82fd5 --- /dev/null +++ b/macros/latex/contrib/hyperref/nameref.pdf diff --git a/macros/latex/contrib/hyperref/ntheorem-hyper.sty b/macros/latex/contrib/hyperref/ntheorem-hyper.sty new file mode 100644 index 0000000000..1db77c3170 --- /dev/null +++ b/macros/latex/contrib/hyperref/ntheorem-hyper.sty @@ -0,0 +1,920 @@ +%% +%% This is file `ntheorem.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ntheorem.dtx (with options: `package') +%% +%% +%% ### WARNING: ============================================================= +%% +%% This file is a patched version that works (it seems) with hyperref. +%% Hyperref's \contentsline version breaks with ntheorem because it puts 3 +%% arguments in the text field (e.g.: \contentsline{def}{{def}{1}{foo}}{21}) +%% +%% To work around the problem, the following steps are implemented: +%% 1/ Don't use hyperref's contentsline: restore the normal definition at the +%% beginning of \thm@processlist. +%% 2/ Let the different versions of \thm@@thmline take a 5th argument, the one +%% provided by hyperref. +%% 3/ Let \thm@lgobble take a 3rd argument, the one provided by hyperref. +%% 4/ Do the hyperlinks manually in the different versions of \thm@@thmline +%% +%% You'll find comments starting with `%%DV' around my changes in the code. +%% +%% +%% Didier Verna <verna@inf.enst.fr> +%% +%% ========================================================================== +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from ntheorem.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file ntheorem.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\def\filedate{1998/12/03} +\def\docdate{1998/12/03} +\def\fileversion{1.14} +\def\basename{ntheorem-hyper} +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\typeout{Style `\basename', Version \fileversion\space <\filedate>} +\ProvidesPackage{ntheorem-hyper}[\filedate \space\fileversion] +\newif\if@thmmarks\@thmmarksfalse +\newif\ifthm@tempif +\DeclareOption{thmmarks}{%********************************* +\PackageInfo{\basename}{Option `thmmarks' loaded}% +\@thmmarkstrue +\newcounter{endNonectr} +\newcounter{currNonectr} +\newif\ifsetendmark\setendmarktrue +\gdef\endtrivlist{% + \@endtrivlist{\PotEndMark{\hbox{}\nobreak\hfill\nobreak}}} +\gdef\@endtrivlist#1{% % from \endtrivlist + \if@inlabel \indent\fi + \if@newlist \@noitemerr\fi + \ifhmode + \ifdim\lastskip >\z@ #1\unskip \par %<<<<<<<<<<<<<<<<<<<<<< + \else \unskip \par \fi + \fi + \if@noparlist \else + \ifdim\lastskip >\z@ + \@tempskipa\lastskip \vskip -\lastskip + \advance\@tempskipa\parskip \advance\@tempskipa -\@outerparskip + \vskip\@tempskipa + \fi + \@endparenv + \fi} +\gdef\SetMark@endeqn{\quad}% as default, cf. option leqno +\gdef\endequation{\eqno \hbox{\@eqnnum \PotEndMark{\SetMark@endeqn}}% + $$\global\@ignoretrue} +\gdef\[{% + \relax\ifmmode + \@badmath + \else + \ifvmode + \nointerlineskip + \makebox[.6\linewidth]% + \fi + $$\stepcounter{end\InTheoType ctr}% + \@ifundefined{mark\roman{curr\InTheoType ctr}% + \InTheoType\roman{end\InTheoType ctr}}{\relax}% + {\ifx\csname\InTheoType Symbol\endcsname\@empty\else + \boxmaxdepth=.5ex\begin{array}[b]{l}% + \boxmaxdepth=\maxdimen\displaystyle\fi}% + \addtocounter{end\InTheoType ctr}{-1}% + %%$$ BRACE MATCH HACK + \fi} +\gdef\]{% + \stepcounter{end\InTheoType ctr}% + \@ifundefined{mark\roman{curr\InTheoType ctr}% + \InTheoType\roman{end\InTheoType ctr}}{\relax}% + {\ifx\csname\InTheoType Symbol\endcsname\@empty\else + \end{array}\fi}% + \addtocounter{end\InTheoType ctr}{-1}% + \relax\ifmmode + \ifinner + \@badmath + \else + \PotEndMark{\eqno}\global\@ignoretrue$$%%$$ BRACE MATCH HACK + \fi + \else + \@badmath + \fi + \ignorespaces} +\gdef\SetMark@endeqnarray#1{\llap{\raisebox{-1.3em}{#1}}} +\gdef\endeqnarray{% + \global\let\Oldeqnnum=\@eqnnum + \gdef\@eqnnum{\Oldeqnnum\PotEndMark{\SetMark@endeqnarray}}% + \@@eqncr + \egroup + \global\advance\c@equation\m@ne + $$\global\@ignoretrue + \global\let\@eqnnum\Oldeqnnum} +\@namedef{endeqnarray*}{% + % from \@@eqncr: + \let\reserved@a\relax + \ifcase\@eqcnt \def\reserved@a{& & &}\or \def\reserved@a{& &}% + \or \def\reserved@a{&}\else + \let\reserved@a\@empty + \@latex@error{Too many columns in eqnarray environment}\@ehc\fi + \reserved@a {\normalfont \normalcolor \PotEndMark{}}% + \global\@eqnswtrue\global\@eqcnt\z@\cr + % + \egroup + \global\advance\c@equation\m@ne + $$\global\@ignoretrue} +\gdef\endtabbing{% + \PotEndMark{\`}\@stopline\ifnum\@tabpush >\z@ \@badpoptabs + \fi\endtrivlist} +\gdef\endcenter{% + \@endtrivlist + {\PotEndMark{\rightskip0pt% + \settowidth{\leftskip}% + { \csname mark\roman{curr\InTheoType ctr}\InTheoType + \roman{end\InTheoType ctr}\endcsname}% + \advance\leftskip\@flushglue\hskip\@flushglue}}} +\gdef\@empty{} +\gdef\@endtheorem{% + \expandafter + \ifx\csname\InTheoType Symbol\endcsname\@empty\setendmarkfalse\fi + \@endtrivlist + {\ifsetendmark + \hbox{}\nobreak\hfill\nobreak\csname\InTheoType Symbol\endcsname + \setendmarkfalse \fi}% + \ifsetendmark\OrganizeTheoremSymbol\else\global\setendmarktrue\fi} +\gdef\NoEndMark{\global\setendmarkfalse} +\gdef\qed{\expandafter\def\csname \InTheoType Symbol\endcsname + {\the\qedsymbol}}% +\gdef\PotEndMark#1{\SetEndMark{\InTheoType}{#1}}% +\gdef\SetEndMark#1#2{% + \stepcounter{end#1ctr}% + \@ifundefined{mark\roman{curr#1ctr}#1\roman{end#1ctr}}% + {\relax}% + {#2{\csname mark\roman{curr#1ctr}#1\roman{end#1ctr}\endcsname}}}% +\newskip\mysavskip +\gdef\@bbsphack{% + \mysavskip\lastskip + \unskip} +\gdef\@eesphack{% + \ifdim\mysavskip>\z@ + \vskip\mysavskip \else\fi} +%% \begin{macrocode} +\gdef\OrganizeTheoremSymbol{% + \@bbsphack + \edef\thm@tmp{\expandafter\expandafter\expandafter\thm@meaning + \expandafter\meaning\csname\InTheoType Symbol\endcsname\relax}% + \protected@write\@auxout{}% + {\string\global\string\def\string\mark% + \roman{curr\InTheoType ctr}\InTheoType \roman{end\InTheoType ctr}% + {\thm@tmp}}% + \@eesphack} +} % end of option [thmmarks] +\DeclareOption{leqno}{% + \if@thmmarks + \PackageInfo{\basename}{Option `leqno' loaded}% + \gdef\SetMark@endeqn#1{\hss\llap{#1}} + \gdef\SetMark@endeqnarray#1{\hss\llap{#1}} + \fi}% +\DeclareOption{fleqn}{% +\if@thmmarks + \PackageInfo{\basename}{Option `fleqn' loaded}% + \renewcommand\[{\relax + \ifmmode\@badmath + \else + \begin{trivlist}% + \@beginparpenalty\predisplaypenalty + \@endparpenalty\postdisplaypenalty + \item[]\leavevmode + \hb@xt@\linewidth\bgroup $\m@th\displaystyle %$ + \hskip\mathindent\bgroup + \stepcounter{end\InTheoType ctr}% + \@ifundefined{mark\roman{curr\InTheoType ctr}% + \InTheoType\roman{end\InTheoType ctr}}{\relax}% + {\ifx\csname\InTheoType Symbol\endcsname\@empty\else + \boxmaxdepth=.5ex\begin{array}[b]{l}% + \boxmaxdepth=\maxdimen\displaystyle\fi}% + \addtocounter{end\InTheoType ctr}{-1}% + \fi} + \renewcommand\]{% + \stepcounter{end\InTheoType ctr}% + \@ifundefined{mark\roman{curr\InTheoType ctr}% + \InTheoType\roman{end\InTheoType ctr}}{\relax}% + {\ifx\csname\InTheoType Symbol\endcsname\@empty\else + \end{array}\fi}% + \addtocounter{end\InTheoType ctr}{-1}% + \relax\ifmmode + \egroup $\hfil\PotEndMark{}% $ + \egroup + \end{trivlist}% + \else \@badmath + \fi} +\gdef\endequation{% + $\hfil % $ + \displaywidth\linewidth\hbox{\@eqnnum \PotEndMark{\SetMark@endeqn}}% + \egroup + \endtrivlist} +\gdef\endeqnarray{% + \global\let\Oldeqnnum=\@eqnnum + \gdef\@eqnnum{\Oldeqnnum\PotEndMark{\SetMark@endeqnarray}}% + \@@eqncr + \egroup + \global\advance\c@equation\m@ne$$% $$ + \global\@ignoretrue + \global\let\@eqnnum\Oldeqnnum} +\fi}% end of option fleqn +\DeclareOption{amsmath}{% +\if@thmmarks + \PackageInfo{\basename}{Option `amsmath' loaded}% +\newdimen\thm@amstmpdepth +\gdef\TagsPlusEndmarks{% + \global\let\Old@maketag@@@=\maketag@@@ + \global\let\Old@df@tag=\df@tag + \if@eqnsw\SetTagPlusEndMark\else + \iftag@\SetTagPlusEndMark + \else\SetOnlyEndMark + \fi\fi} +\gdef\SetOnlyEndMark{% + \global\tag@true + \iftagsleft@ + \gdef\df@tag{\hbox + to \displaywidth{\hss\PotEndMark{\maketag@@@}}}% + \else + \gdef\df@tag{\PotEndMark{\maketag@@@}}% + \fi} +\gdef\SetTagPlusEndMark{% + \iftagsleft@ + \gdef\maketag@@@##1{% + \hbox to \displaywidth{\m@th\normalfont##1% + \PotEndMark{\hss}}}% + \else + \gdef\maketag@@@##1{\hbox{\m@th\normalfont##1% + \llap{\hss\PotEndMark{\raisebox{-1.3em}}}}}% + \fi} +\gdef\RestoreTags{% + \global\let\maketag@@@=\Old@maketag@@@ + \global\let\df@tag=\Old@df@tag} +\gdef\endgather{% + \TagsPlusEndmarks % <<<<<<<<< + \math@cr + \black@\totwidth@ + \egroup + $$% + \RestoreTags % <<<<<<<<< + \global\@ignoretrue} +\expandafter\let\csname endgather*\endcsname\endgather +\def\endalign{% + \ifingather@\else % <<<<<<<<< + \TagsPlusEndmarks\fi % <<<<<<<<< + \math@cr + \black@\totwidth@ + \egroup + \ifingather@ + \restorealignstate@ + \egroup + \nonumber + \ifnum0=`{\fi}% + \else + $$% + \RestoreTags % <<<<<<<<< + \fi + \global\@ignoretrue} +\expandafter\let\csname endalign*\endcsname\endalign +\let\endxalignat\endalign +\expandafter\let\csname endxalignat*\endcsname\endalign +\let\endxxalignat\endalign +\let\endalignat\endalign +\expandafter\let\csname endalignat*\endcsname\endalign +\let\endflalign\endalign +\expandafter\let\csname endflalign*\endcsname\endalign +\def\lendmultline@{% + \@eqnswfalse\tag@true\tagsleft@false + \rendmultline@} +\def\rendmultline@{% + \TagsPlusEndmarks % <<<<<<<<< + \iftag@ + \begingroup + \ifshifttag@ + \hskip\multlinegap + \llap{\vtop{% + \raise@tag + \normalbaselines + \setbox\@ne\null + \dp\@ne\lineht@ + \box\@ne + \hbox{\strut@\make@display@tag}% + }}% + \else + \hskip\multlinetaggap + \make@display@tag + \fi + \endgroup + \else + \hskip\multlinegap + \fi + \hfilneg + \math@cr + \egroup$$% + \RestoreTags} % <<<<<<<<< +\def\[{% + \relax\ifmmode% \RIfM@ <<<<<<<<<<<<<<<<<<<<<<<<<<<< + \@badmath + \else + \DN@{% + $$% + \ingather@true + \inany@true + \def\\{\@amsmath@err{\Invalid@@\\}\@eha}% + \tabskip\@mathmargin + \halign to \displaywidth\bgroup + \if@fleqn\else\hfil\fi + \setboxz@h{$\m@th\displaystyle{####}$}% + \global\totwidth@\wdz@ + \global\thm@amstmpdepth\dp0% <<<<<<<<<<<< + \boxz@ + \tabskip 0pt plus 1000pt%<<<<<<<<<<<<<< + & ####% <<<<<<<<<<<<<<<<<<<<<<<< + \tabskip 0pt% + \cr + }% + \@xp\next@ + \fi} +\def\]{% + \relax\ifmmode% \RIfM@ <<<<<<<<<< + \DN@{% + \PotEndMark{&\raisebox{-\thm@amstmpdepth}}% <<<<<<<<< + \crcr + \black@\totwidth@ + \egroup + $$% + }% + \@xp\next@ + \else + \@badmath + \fi} +\def\equation{\gather\def\\{\@amsmath@err{\Invalid@@\\}\@eha}} +\def\endequation{\endgather} +\renewenvironment{equation*}{\equation}{\nonumber\endequation} +\else\PackageError{\basename}{Option amsmath cannot be used without + option thmmarks.}\@eha +\fi +}% end of option amsmath +\let\thm@usestd\@undefined +\DeclareOption{standard}{\let\thm@usestd\relax} +\let\thm@noconfig\@undefined +\DeclareOption{noconfig}{\let\thm@noconfig\relax} +\gdef\InTheoType{None} +\def\output@None{None} +\def\None{None} +\gdef\newtheoremstyle#1#2#3{% + \expandafter\@ifundefined{th@#1}% + {\expandafter\gdef\csname th@#1\endcsname{% + \def\@begintheorem####1####2{#2}% + \def\@opargbegintheorem####1####2####3{#3}}}% + {\PackageError{\basename}{Theorem style #1 already defined}\@eha}} +\gdef\renewtheoremstyle#1#2#3{% + \expandafter\@ifundefined{th@#1}% + {\PackageError{\basename}{Theorem style #1 undefined}\@ehc}% + {}% + \expandafter\let\csname th@#1\endcsname\relax + \newtheoremstyle{#1}{#2}{#3}} +\newtheoremstyle{plain}% + {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}% + {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ (##3)\theorem@separator]} +\newtheoremstyle{break}% + {\item\hbox to \textwidth{\theorem@headerfont ##1\ + ##2\theorem@separator\hfill}}% + {\item\hbox to \textwidth{\theorem@headerfont ##1\ ##2\ + (##3)\theorem@separator\hfill}} +\newtheoremstyle{change}% + {\item[\hskip\labelsep \theorem@headerfont ##2\ ##1\theorem@separator]}% + {\item[\hskip\labelsep \theorem@headerfont ##2\ ##1\ (##3)\theorem@separator]} +\newtheoremstyle{changebreak}% + {\item\hbox to \textwidth{\theorem@headerfont ##2\ + ##1\theorem@separator\hfill}}% + {\item\hbox to \textwidth{\theorem@headerfont ##2\ ##1\ + (##3)\theorem@separator\hfill}} +\newtheoremstyle{margin}% + {\item[\theorem@headerfont \llap{##2}\hskip\labelsep ##1\theorem@separator]}% + {\item[\theorem@headerfont \llap{##2}\hskip\labelsep ##1\ (##3)\theorem@separator]} +\newtheoremstyle{marginbreak}% + {\item\hbox to \textwidth{\theorem@headerfont \llap{##2}\hskip\labelsep + ##1\theorem@separator\hfill}}% + {\item\hbox to \textwidth{\theorem@headerfont + \llap{##2}\hskip\labelsep + ##1\ (##3)\theorem@separator\hfill}} +\newtheoremstyle{nonumberplain}% + {\item[\theorem@headerfont\hskip\labelsep ##1\theorem@separator]}% + {\item[\theorem@headerfont\hskip \labelsep ##1\ (##3)\theorem@separator]} +\newtheoremstyle{nonumberbreak}% + {\item\hbox to \textwidth{\theorem@headerfont\hskip\labelsep + ##1\theorem@separator\hfill}}% + {\item\hbox to \textwidth{\theorem@headerfont\hskip\labelsep + ##1\ (##3)\theorem@separator\hfill}} +\newtheoremstyle{empty}% + {\item~\hfill}% + {\item\hbox to \textwidth{\theorem@headerfont##3\hfill}} +\@namedef{th@nonumbermargin}{\th@nonumberplain} +\@namedef{th@nonumberchange}{\th@nonumberplain} +\@namedef{th@nonumbermarginbreak}{\th@nonumberbreak} +\@namedef{th@nonumberchangebreak}{\th@nonumberbreak} +\@namedef{th@plainNo}{\th@nonumberplain} +\@namedef{th@breakNo}{\th@nonumberplain} +\@namedef{th@marginNo}{\th@nonumberplain} +\@namedef{th@changeNo}{\th@nonumberplain} +\@namedef{th@marginbreakNo}{\th@nonumberbreak} +\@namedef{th@changebreakNo}{\th@nonumberbreak} +\gdef\theoremstyle#1{% + \@ifundefined{th@#1}{\@warning + {Unknown theoremstyle `#1'. Using `plain'}% + \theorem@style{plain}}% + {\theorem@style{#1}}} +\newtoks\theorem@style +\newtoks\theorem@@style +\global\theoremstyle{plain} +\newtoks\theorembodyfont +\global\theorembodyfont{\itshape} +\newtoks\theoremnumbering +\global\theoremnumbering{arabic} +\newskip\theorempreskipamount +\newskip\theorempostskipamount +\global\theorempreskipamount\topsep +\global\theorempostskipamount\topsep +\newdimen\theoremindent +\global\theoremindent0cm +\newdimen\theorem@indent +\newtoks\theoremheaderfont +\global\theoremheaderfont{\normalfont\bfseries} +\def\theorem@headerfont{\normalfont\bfseries} +\newtoks\theoremseparator +\global\theoremseparator{} +\def\theorem@separator{} +\newtoks\theoremsymbol +\global\theoremsymbol{} +\newtoks\qedsymbol +\global\qedsymbol{} +\DeclareOption{amsthm}{% + \PackageInfo{\basename}{Option `amsthm' loaded}% +\def\swapnumbers{\PackageError{\basename}{swapnumbers not implemented. + Use theoremstyle change instead.}\@eha} + +\gdef\th@plain{% + \def\theorem@headerfont{\normalfont\bfseries}\itshape% + \def\@begintheorem##1##2{% + \item[\hskip\labelsep \theorem@headerfont ##1\ ##2.]}% + \def\@opargbegintheorem##1##2##3{% + \item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ (##3).]}} +\gdef\th@nonumberplain{% + \def\theorem@headerfont{\normalfont\bfseries}\itshape% + \def\@begintheorem##1##2{% + \item[\hskip\labelsep \theorem@headerfont ##1.]}% + \def\@opargbegintheorem##1##2##3{% + \item[\hskip\labelsep \theorem@headerfont ##1\ (##3).]}} +\gdef\th@definition{% + \th@plain\def\theorem@headerfont{\normalfont\bfseries}\itshape} +\gdef\th@nonumberdefinition{% + \th@nonumberplain\def\theorem@headerfont{\normalfont\bfseries}\itshape} +\gdef\th@remark{% + \th@plain\def\theorem@headerfont{\itshape}\normalfont} +\gdef\th@nonumberremark{% + \th@nonumberplain\def\theorem@headerfont{\itshape}\normalfont} +\newcounter{proof}% +\if@thmmarks + \newcounter{currproofctr}% + \newcounter{endproofctr}% +\fi +\newcommand{\openbox}{\leavevmode + \hbox to.77778em{% + \hfil\vrule + \vbox to.675em{\hrule width.6em\vfil\hrule}% + \vrule\hfil}} +\gdef\proofSymbol{\openbox} +\newcommand{\proofname}{Proof} +\newenvironment{proof}[1][\proofname]{ + \th@nonumberplain + \def\theorem@headerfont{\itshape}% + \normalfont + \theoremsymbol{\ensuremath{_\blacksquare}} + \@thm{proof}{proof}{#1}}% + {\@endtheorem} +}% end of option amsthm +\newskip\thm@topsepadd +\gdef\newtheorem{% + \@ifstar + {\edef\@tempa{{nonumber\the\theorem@style}}% + \expandafter\theorem@@style\@tempa}% + {\edef\@tempa{{\the\theorem@style}}% + \expandafter\theorem@@style\@tempa}% + \@newtheorem} + +\gdef\renewtheorem{% + \@ifstar + {\edef\@tempa{{nonumber\the\theorem@style}}% + \expandafter\theorem@@style\@tempa}% + {\edef\@tempa{{\the\theorem@style}}% + \expandafter\theorem@@style\@tempa}% + \@renewtheorem} +\gdef\@newtheorem#1{% + \thm@tempiffalse + \expandafter\@ifdefinable\csname #1\endcsname + {\expandafter\@ifdefinable\csname #1*\endcsname + {\thm@tempiftrue + \thm@definelthm{#1}% for lists + \if@thmmarks + \expandafter\@ifundefined{c@curr#1ctr}% + {\newcounter{curr#1ctr}}{}% + \expandafter\@ifundefined{c@end#1ctr}% + {\newcounter{end#1ctr}}{}% + \fi + \expandafter\xdef\csname #1Symbol\endcsname{\the\theoremsymbol}% + \expandafter\gdef\csname#1\endcsname{% + \let\thm@starredenv\@undefined + \csname mkheader@#1\endcsname}% + \expandafter\gdef\csname#1*\endcsname{% + \let\thm@starredenv\relax + \csname mkheader@#1\endcsname}% + \def\@tempa{\expandafter\noexpand\csname end#1\endcsname}% + \expandafter\xdef\csname end#1*\endcsname{\@tempa}% + \expandafter\xdef\csname setparms@#1\endcsname + {\noexpand \def \noexpand \theorem@headerfont + {\the\theoremheaderfont\noexpand\theorem@checkbold}% + \noexpand \def \noexpand \theorem@separator + {\the\theoremseparator}% + \noexpand \def \noexpand \theorem@indent + {\the\theoremindent}% + \the \theorembodyfont + \noexpand\csname th@\the \theorem@@style \endcsname}}}% + \@ifnextchar[{\@othm{#1}}{\@nthm{#1}}}% MUST NOT BE IN ANY IF !!! +\gdef\@renewtheorem#1{% + \expandafter\@ifundefined{#1}% + {\PackageError{\basename}{Theorem style #1 undefined}\@ehc}% + {}% + \expandafter\let\csname #1\endcsname\relax + \expandafter\let\csname #1*\endcsname\relax + \newtheorem{#1}} +\gdef\@nthm#1#2{% + \expandafter\xdef\csname num@addtheoremline#1\endcsname{% + \noexpand\@num@addtheoremline{#1}{#2}}% + \expandafter\xdef\csname nonum@addtheoremline#1\endcsname{% + \noexpand\@nonum@addtheoremline{#1}{#2}}% + \expandafter\xdef\csname output@#1\endcsname{#2}% + \@ifnextchar[{\@xnthm{#1}{#2}}{\@ynthm{#1}{#2}}} +\gdef\@othm#1[#2]#3{% + \@ifundefined{c@#2}{\@nocounterr{#2}}% + {\ifthm@tempif + \global\@namedef{the#1}{\@nameuse{the#2}}% + \expandafter\xdef\csname num@addtheoremline#1\endcsname{% + \noexpand\@num@addtheoremline{#1}{#3}}% + \expandafter\xdef\csname nonum@addtheoremline#1\endcsname{% + \noexpand\@nonum@addtheoremline{#1}{#3}}% + \expandafter\xdef\csname output@#1\endcsname{#3}% + \expandafter\gdef\csname mkheader@#1\endcsname + {\csname setparms@#1\endcsname + \@thm{#1}{#2}{#3}}% + \global\@namedef{end#1}{\@endtheorem}\fi}} +\gdef\@xnthm#1#2[#3]{% + \ifthm@tempif + \expandafter\@ifundefined{c@#1}% + {\@definecounter{#1}}{}% + \@newctr{#1}[#3]% + \expandafter\xdef\csname the#1\endcsname{% + \expandafter\noexpand\csname the#3\endcsname \@thmcountersep + {\noexpand\csname\the\theoremnumbering\endcsname{#1}}}% + \expandafter\gdef\csname mkheader@#1\endcsname + {\csname setparms@#1\endcsname + \@thm{#1}{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}\fi} +\gdef\@ynthm#1#2{% + \ifthm@tempif + \expandafter\@ifundefined{c@#1}% + {\@definecounter{#1}}{}% + \expandafter\xdef\csname the#1\endcsname + {\noexpand\csname\the\theoremnumbering\endcsname{#1}}% + \expandafter\gdef\csname mkheader@#1\endcsname + {\csname setparms@#1\endcsname + \@thm{#1}{#1}{#2}}% + \global\@namedef{end#1}{\@endtheorem}\fi} +\gdef\@thm#1#2#3{% + \if@thmmarks + \stepcounter{end\InTheoType ctr}% + \fi + \renewcommand{\InTheoType}{#1}% + \if@thmmarks + \stepcounter{curr#1ctr}% + \setcounter{end#1ctr}{0}% + \fi + \refstepcounter{#2}% + \thm@topsepadd \theorempostskipamount % cf. latex.ltx: \@trivlist + \ifvmode \advance\thm@topsepadd\partopsep\fi + \trivlist + \@topsep \theorempreskipamount + \@topsepadd \thm@topsepadd % used by \@endparenv + \advance\linewidth -\theorem@indent + \advance\@totalleftmargin \theorem@indent + \parshape \@ne \@totalleftmargin \linewidth + \@ifnextchar[{\@ythm{#1}{#2}{#3}}{\@xthm{#1}{#2}{#3}}} +\def\@xthm#1#2#3{% + \@begintheorem{#3}{\csname the#2\endcsname}% + \ifx\thm@starredenv\@undefined + \thm@thmcaption{#1}{{#3}{\csname the#2\endcsname}{}}\fi + \ignorespaces} +\def\@ythm#1#2#3[#4]{% + \expandafter\global\expandafter\def\csname#1name\endcsname{#4}% + \@opargbegintheorem{#3}{\csname the#2\endcsname}{#4}% + \ifx\thm@starredenv\@undefined + \thm@thmcaption{#1}{{#3}{\csname the#2\endcsname}{#4}}\fi% + \ignorespaces} +\DeclareOption{thref}{%********************************* + \PackageInfo{\basename}{Option `thref' loaded}% +\def\label#1{ + \@ifnextchar[%] + {\label@optarg{#1}}% + {\label@optarg{#1}% + [\csname output@\InTheoType\endcsname]}} +\def\label@optarg#1[#2]{\@bsphack + \protected@write\@auxout{}% + {\string\newlabel{#1}{{\@currentlabel}{\thepage}}[#2]}% + \@esphack} +\def\@newl@bel#1#2#3{% + \@ifundefined{#1@#2}% + \relax + {\gdef \@multiplelabels {% + \@latex@warning@no@line{There were multiply-defined labels}}% + \@latex@warning@no@line{Label `#2' multiply defined}}% + \global\@namedef{#1@#2}{#3}% + \@ifnextchar[{\set@labeltype#1#2}{\relax}%] + } +\def\set@labeltype#1#2[#3]{\global\@namedef{#1@#2@type}{#3}} +\@ifpackageloaded{babel}% + {\message{ntheorem-babel adapation loaded}% + \def\newlabel#1#2{% + \@ifnextchar[{\nth@bbl@newlabel{#1}{#2}}%] + {\nth@bbl@newlabel{#1}{#2}[None]}}% + \def\nth@bbl@newlabel#1#2[#3]{% + \@safe@activestrue\bbl@newlabel{#1}{#2}[#3]\@safe@activesfalse}}% + \relax +\def\thref#1{% + \expandafter\ifx\csname r@#1@type\endcsname\None + \PackageWarning{\basename}{thref: Reference Type of `#1' on page + \thepage \space undefined}\G@refundefinedtrue + \else\csname r@#1@type\endcsname~\fi% + \expandafter\@setref\csname r@#1\endcsname\@firstoftwo{#1}} +}% end of option thref +\def\thm@thmcaption#1#2{\thm@@thmcaption{#1}#2} +\def\thm@@thmcaption#1#2#3#4{% + \thm@parseforwriting{#4}% + \edef\thm@t{{#2}{#3}{\thm@tmp}}% + \addcontentsline{thm}{#1}{\thm@t}} +\def\theoremlistall{% + \let\thm@@thmlstart=\relax + \let\thm@@thmlend=\relax +%%DV Use a fith argument (supplied by hyperref) and do the links manually + \def\thm@@thmline##1##2##3##4##5{% + \ifx\\##5\\% + \@dottedtocline{-2}{0em}{2.3em}% + {\protect\numberline{##2}##3}% + {##4} + \else + \ifhy@linktocpage + \@dottedtocline{-2}{0em}{2.3em}% + {\protect\numberline{##2}##3}% + {\hyper@linkstart{link}{##5}{##4}\hyper@linkend} + \else + \@dottedtocline{-2}{0em}{2.3em}% + {\hyper@linkstart{link}{##5}{\protect\numberline{##2}##3}% + \hyper@linkend}% + {##4} + \fi + \fi}} +%%DV \def\thm@@thmline##1##2##3##4{% +%%DV \@dottedtocline{-2}{0em}{2.3em}% +%%DV {\protect\numberline{##2}##3}% +%%DV {##4}}} +\def\theoremlistallname{% + \let\thm@@thmlstart=\relax + \let\thm@@thmlend=\relax +%%DV Use a fith argument (supplied by hyperref) and do the links manually + \def\thm@@thmline##1##2##3##4##5{% + \ifx\\##5\\% + \@dottedtocline{-2}{0em}{2.3em}% + {##1 \protect\numberline{##2}##3}% + {##4} + \else + \ifhy@linktocpage + \@dottedtocline{-2}{0em}{2.3em}% + {##1 \protect\numberline{##2}##3}% + {\hyper@linkstart{link}{##5}{##4}\hyper@linkend} + \else + \@dottedtocline{-2}{0em}{2.3em}% + {\hyper@linkstart{link}{##5}% + {##1 \protect\numberline{##2}##3}\hyper@linkend}% + {##4} + \fi + \fi}} +%%DV \def\thm@@thmline##1##2##3##4{% +%%DV \@dottedtocline{-2}{0em}{2.3em}% +%%DV {##1 \protect\numberline{##2}##3}% +%%DV {##4}}} +\def\theoremlistoptional{% + \let\thm@@thmlstart=\relax + \let\thm@@thmlend=\relax +%%DV Use a fith argument (supplied by hyperref) and do the links manually + \def\thm@@thmline##1##2##3##4##5{% + \ifx\empty ##3% + \else% + \ifx\\##5\\% + \@dottedtocline{-2}{0em}{2.3em}% + {\protect\numberline{##2}##3}% + {##4} + \else + \ifhy@linktocpage + \@dottedtocline{-2}{0em}{2.3em}% + {\protect\numberline{##2}##3}% + {\hyper@linkstart{link}{##5}{##4}\hyper@linkend} + \else + \@dottedtocline{-2}{0em}{2.3em}% + {\hyper@linkstart{link}{##5}{\protect\numberline{##2}##3}% + \hyper@linkend}% + {##4} + \fi + \fi + \fi}} +%%DV \def\thm@@thmline##1##2##3##4{% +%%DV \ifx\empty ##3% +%%DV \else% +%%DV \@dottedtocline{-2}{0em}{2.3em}% +%%DV {\protect\numberline{##2}##3}% +%%DV {##4}% +%%DV \fi}} +\def\theoremlistoptname{% + \let\thm@@thmlstart=\relax + \let\thm@@thmlend=\relax +%%DV Use a fith argument (supplied by hyperref) and do the links manually + \def\thm@@thmline##1##2##3##4##5{% + \ifx\empty ##3% + \else + \ifx\\##5\\% + \@dottedtocline{-2}{0em}{2.3em}% + {##1 \protect\numberline{##2}##3}% + {##4} + \else + \ifhy@linktocpage + \@dottedtocline{-2}{0em}{2.3em}% + {##1 \protect\numberline{##2}##3}% + {\hyper@linkstart{link}{##5}{##4}\hyper@linkend} + \else + \@dottedtocline{-2}{0em}{2.3em}% + {\hyper@linkstart{link}{##5}% + {##1 \protect\numberline{##2}##3}\hyper@linkend}% + {##4} + \fi + \fi + \fi}} +%%DV \def\thm@@thmline##1##2##3##4{% +%%DV \ifx\empty ##3% +%%DV \else% +%%DV \@dottedtocline{-2}{0em}{2.3em}% +%%DV {##1 \protect\numberline{##2}##3}% +%%DV {##4}% +%%DV \fi}} +\theoremlistall +\def\theoremlisttype#1{% + \@ifundefined{thm@thml@#1}% + {\PackageError{\basename}{Listtype #1 not defined}\@eha} + {\csname thm@thml@#1\endcsname}} +\def\thm@thml@all{\theoremlistall} +\def\thm@thml@opt{\theoremlistoptional} +\def\thm@thml@optname{\theoremlistoptname} +\def\thm@thml@allname{\theoremlistallname} +\def\newtheoremlisttype#1#2#3#4{% + \@ifundefined{thm@thml@#1}% + {\expandafter\gdef\csname thm@thml@#1\endcsname{% + \def\thm@@thmlstart{#2}% + \def\thm@@thmline####1####2####3####4{#3}% + \def\thm@@thmlend{#4}}% + }{\PackageError{\basename}{list type #1 already defined}\@eha}} +\def\renewtheoremlisttype#1#2#3#4{% + \@ifundefined{thm@thml@#1}% + {\PackageError{\basename}{List type #1 not defined}\@ehc}{}% + \expandafter\let\csname thm@thml@#1\endcsname\relax + \newtheoremlisttype{#1}{#2}{#3}{#4}} +%%DV Use a third argument (supplied by hyperref) +\def\thm@thmline#1#2#3{\thm@@thmline#1{#2}{#3}} +%%DV\def\thm@thmline#1#2{\thm@@thmline#1{#2}} +%%DV Use a third argument (supplied by hyperref) +\long\def\thm@lgobble#1#2#3{\ignorespaces} +%%DV\long\def\thm@lgobble#1#2{\ignorespaces} +\def\thm@definelthm#1{% + \expandafter\gdef\csname l@#1\endcsname{\thm@lgobble}% + \expandafter\gdef\csname thm@listdo#1\endcsname{\thm@lgobble}} +\long\def\thm@inlistdo#1#2{#2}% +\def\listtheorems#1{\begingroup% + \c@tocdepth=-2% + \def\thm@list{#1}\thm@processlist% + \endgroup} +\def\thm@processlist{% + \begingroup% + \typeout{** Generating table of \thm@list}% +%%DV: don't use hyperref's \contentsline !! Use the normal definition. + \def\contentsline##1{\csname l@##1\endcsname} + \thm@@thmlstart + \@for\thm@currentlist:=\thm@list\do{% + \ifx\thm@currentlist\@empty\else% + \expandafter\gdef\csname l@\thm@currentlist\endcsname{\thm@thmline}% + \expandafter\gdef\csname thm@listdo\thm@currentlist\endcsname{\thm@inlistdo}% + \fi% + }% + \@input{\jobname .thm}% + \thm@@thmlend% + \@for\thm@currentlist:=\thm@list\do{% + \ifx\thm@currentlist\@empty\else% + \expandafter\gdef\csname l@\thm@currentlist\endcsname{\thm@lgobble}% + \expandafter\gdef\csname thm@listdo\thm@currentlist\endcsname{\thm@lgobble}% + \fi% + }% + \endgroup} +\def\thm@enablelistoftheorems{% + \begingroup% + \makeatletter% + \if@filesw% + \expandafter\newwrite\csname tf@thm\endcsname% + \immediate\openout \csname tf@thm\endcsname \jobname.thm\relax% + \fi% + \@nobreakfalse% + \endgroup} +\def\addtheoremline{\@ifstar{\nonum@addtheoremline}{\num@addtheoremline}} +\def\nonum@addtheoremline#1{\csname nonum@addtheoremline#1\endcsname}% +\def\num@addtheoremline#1{\csname num@addtheoremline#1\endcsname}% +\def\@nonum@addtheoremline#1#2#3{% + \thm@parseforwriting{#3}% + \edef\thm@t{{#2}{}{\thm@tmp}}% + \addcontentsline{thm}{#1}{\thm@t}} +\def\@num@addtheoremline#1#2#3{% + \thm@parseforwriting{#3}% + \edef\thm@t{{#2}{\csname the#1\endcsname}{\thm@tmp}}% + \addcontentsline{thm}{#1}{\thm@t}} +\long\def\addtotheoremfile{% + \@ifnextchar[{\@@addtotheoremfile}{\@addtotheoremfile}} +\long\def\@addtotheoremfile#1{% + \thm@parseforwriting{#1}% + \protected@write\@auxout% + {}{\string\@writefile{thm}{\thm@tmp}}} +\long\def\@@addtotheoremfile[#1]#2{% + \thm@parseforwriting{#2}% + \protected@write\@auxout% + {}{\string\@writefile{thm}{\string\theoremlistdo{#1}{\thm@tmp}}}} +\long\def\theoremlistdo#1#2{\csname thm@listdo#1\endcsname{#1}{#2}} +\AtEndDocument{\thm@enablelistoftheorems} +\def\thm@meaning#1->#2\relax{#2}% remove "macro:->" +\long\def\thm@parseforwriting#1{% + \def\thm@tmp{#1}% + \edef\thm@tmp{\expandafter\thm@meaning\meaning\thm@tmp\relax}} +\def\theorem@checkbold{\if b\expandafter\@car\f@series\@nil\boldmath\fi} +\def\@greek#1{\theorem@checkbold% + \ifcase#1\or$\alpha$\or$\beta$\or$\gamma$\or$\delta$\or$\varepsilon$% + \or$\zeta$\or$\eta$\or$\vartheta$\or$\iota$\or$\kappa$\or$\lambda$\or$% + \mu$\or$\nu$\or$\xi$\or$ o$\or$\varpi$\or$\varrho$\or$\varsigma$\or$\tau$% + \or$\upsilon$\or$\varphi$\or$\chi$\or$\psi$\or$\omega$\else\@ctrerr\fi} +\def\@Greek#1{\theorem@checkbold% + \ifcase#1\or A\or B\or$\Gamma$\or$\Delta$\or E% + \or Z\or H\or$\Theta$\or I\or K\or$\Lambda$\or M% + \or N\or$\Xi$\or O\or$\Pi$\or P\or$\Sigma$\or T% + \or$\Upsilon$\or$\Phi$\or X\or$\Psi$\or$\Omega$\else\@ctrerr\fi} +\def\greek#1{\@greek{\csname c@#1\endcsname}} +\def\Greek#1{\@Greek{\csname c@#1\endcsname}} +\ProcessOptions\relax +\ifx\thm@noconfig\@undefined +\InputIfFileExists{ntheorem.cfg}% + {\PackageInfo{\basename}{Local config file ntheorem.cfg used}}% + {\ifx\thm@usestd\@undefined% + \else% + \InputIfFileExists{ntheorem.std}% + {\PackageInfo{\basename}{Standard config file ntheorem.std used}}{} + \fi} +\fi +\endinput +%% +%% End of file `ntheorem.sty'. diff --git a/macros/latex/contrib/hyperref/psdmapshortnames.pl b/macros/latex/contrib/hyperref/psdmapshortnames.pl new file mode 100644 index 0000000000..4af924c932 --- /dev/null +++ b/macros/latex/contrib/hyperref/psdmapshortnames.pl @@ -0,0 +1,133 @@ +#!/usr/bin/env perl +use strict; +$^W=1; + +# File: psdmapshortnames.pl +# Date: 2012-07-12 +# Copyright (c) 2012 by Heiko Oberdiek. +# +# This file is part of the `Hyperref Bundle'. +# ------------------------------------------- +# +# This work may be distributed and/or modified under the +# conditions of the LaTeX Project Public License, either version 1.3 +# of this license or (at your option) any later version. +# The latest version of this license is in +# http://www.latex-project.org/lppl.txt +# and version 1.3 or later is part of all distributions of LaTeX +# version 2005/12/01 or later. +# +# This work has the LPPL maintenance status `maintained'. +# +# The Current Maintainer of this work is Heiko Oberdiek. +# +# The list of all files belonging to the `Hyperref Bundle' is +# given in the file `manifest.txt'. + +my $file_org = 'hyperref.dtx'; +my $file_bak = 'hyperref.dtx.bak'; +my $file_tmp = 'hyperref.dtx.tmp'; + +my @lines_map; +my $cmd_map = 'psdmapshortnames'; +my $found_map_beg = 0; +my $found_map_end = 0; + +my @lines_alias; +my $cmd_alias = 'psdaliasnames'; +my $found_alias_beg = 0; +my $found_alias_end = 0; + +open(IN, '<', $file_org) or die "!!! Error: Cannot open `$file_org'!\n"; +binmode(IN); +unlink $file_tmp if -f $file_tmp; +open(OUT, '>', $file_tmp) or die "!!! Error: Cannot open `$file_org'!\n"; +binmode(OUT); + +while (<IN>) { + print OUT; + if (/^\\newcommand\*\{\\$cmd_map\}\{\%\s*$/) { + $found_map_beg = 1; + print OUT @lines_map; + while (<IN>) { + if (/^\}\% \\$cmd_map$/) { + print OUT; + $found_map_end = 1; + last; + } + if (/^\}/) { + print OUT; + last; + } + } + } + if (/^\\DeclareTextCommand\{\\text(\w+)\}\{PU\}\{[\\\d\w]+\}\%\*/) { + my $name = $1; + push @lines_map, " \\let\\$name\\text$name\n"; + } + + if (/^\\newcommand\*\{\\$cmd_alias\}\{\%\s*$/) { + $found_alias_beg = 1; + print OUT @lines_alias; + while (<IN>) { + if (/^\}\% \\$cmd_alias$/) { + print OUT; + $found_alias_end = 1; + last; + } + if (/^\}/) { + print OUT; + last; + } + } + } + if (/^%\* \\([A-Za-z@]+)\s+->\s+\\(\w+)(\s|$)/) { + my $name_old = $1; + my $name_new = $2; + push @lines_alias, " \\let\\$name_new\\$name_old\n"; + } +} + +close(IN); +close(OUT); + +$found_map_beg or die "!!! Error: Definition for \\$cmd_map not found!\n"; +$found_map_end or die "!!! Error: End of \\$cmd_map not found!\n"; + +$found_alias_beg or die "!!! Error: Definition for \\$cmd_alias not found!\n"; +$found_alias_end or die "!!! Error: End of \\$cmd_alias not found!\n"; + +my $count_map = @lines_map; +print "* $count_map map entries found.\n"; + +my $count_alias = @lines_alias; +print "* $count_alias alias entries found.\n"; + +use Digest::MD5; + +open(IN, '<', $file_org) or die "!!! Error: Cannot open `$file_org'!\n"; +binmode(IN); +my $md5_org = Digest::MD5->new->addfile(*IN)->hexdigest; +close(IN); +print "* 0x$md5_org = md5($file_org)\n"; + +open(IN, '<', $file_tmp) or die "!!! Error: Cannot open `$file_tmp'!\n"; +binmode(IN); +my $md5_tmp = Digest::MD5->new->addfile(*IN)->hexdigest; +close(IN); +print "* 0x$md5_tmp = md5($file_tmp)\n"; + +if ($md5_org eq $md5_tmp) { + print "* Done, nothing to do.\n"; + exit(0); +} + +unlink $file_bak if -f $file_bak; +rename $file_org, $file_bak or die "!!! Error: Moving `$file_org' to `$file_bak' failed!\n"; +print "* $file_org -> $file_bak\n"; +rename $file_tmp, $file_org or die "!!! Error: Moving `$file_tmp' to `$file_org' failed!\n"; +print "* $file_tmp -> $file_org\n"; + +print "* Done.\n"; + +__END__ diff --git a/macros/latex/contrib/hyperref/xr-hyper.sty b/macros/latex/contrib/hyperref/xr-hyper.sty new file mode 100644 index 0000000000..0f36f39a11 --- /dev/null +++ b/macros/latex/contrib/hyperref/xr-hyper.sty @@ -0,0 +1,120 @@ +%% xr package (beta release) + +%% Copyright (C) 1993-1997 David Carlisle + +%% This is a modified version of the xr package from the Standard LaTeX +%% tools distribution. It has some internal changes to cooperate with +%% the hyperref package, and one new user level argument, also mainly of +%% use for hyperref. +%% If no problems are reported the version in the tools distribution +%% will be updated to match this at the next LaTeX release. + +%% \externaldocument[prefix]{document}[URL] + +%% The `document' referred to by the main argument is the file +%% document.aux +%% which must be somewhere on TeX's input path. +%% Some packages (eg hyperref) really need to know the location of the +%% final document rather than the aux file. By default this is assumed +%% to be `document.dvi'. A package may redefine the command \XR@ext to +%% change this default extension (eg some of the hyperref backends +%% define this to be `document.pdf'). However sometimes the final +%% document may be in a position unrelated to the aux file, or the +%% browser may not be able to find files at an arbitrary point in +%% TeX's input path, so the new final optional argument allows a full +%% URL to the final document to be specified. +%% +%% \externaldocument{file}[http://here.xxx.edu/this/path/to/file.dvi] +%% +%% Unless a package redefines \XR@addfile, the optional URL argument +%% will be ignored. +%% +%% This version (beta2) also has another improvement unrelated +%% to the hyperref support. Olivier Michel pointed out that +%% if the aux file was not on texinputs you could not always go +%% \externaldocument{/some/path/to/file} +%% specifically that worked if file.aux was a `simple' document with +%% one aux file, but if \include had been used, the `sub' aux files +%% would not be found by xr in the remote directory. +%% This version calls \filename@parse to get the directory name of the +%% remote directory, which is then explicitly prepended to the names of +%% any included aux files. +%% +%% History +%% +%% 1997/10/06 v6.00beta2 +%% +%% 1999/09/01 v6.00beta3 +%% Definitions of \XR@addURL corrected (Heiko Oberdiek). +%% +%% 2000/03/22 v6.00beta4 +%% \xdef changed to \protected@xdef. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{xr-hyper} + [2000/03/22 v6.00beta4 eXternal References (DPC)] + +\def\externaldocument{\@testopt\XR@{}} +\def\XR@[#1]#2{\@testopt{\XR@@{#1}{#2}}{#2.\XR@ext}} + +\def\XR@@#1#2[#3]{{% + \makeatletter + \def\XR@prefix{#1}% + \def\XR@URL{#3}% + \filename@parse{#2}% + \XR@next#2.aux\relax\\}} +\def\XR@next#1\relax#2\\{% + \edef\XR@list{#2}% + \XR@loop{#1}} +\def\XR@aux{% + \ifx\XR@list\@empty\else\expandafter\XR@explist\fi} + +\def\XR@explist{\expandafter\XR@next\XR@list\\} +\def\XR@loop#1{% +\def\f{#1}%\show\f +\openin\@inputcheck#1\relax + \ifeof\@inputcheck + \PackageWarning{xr}{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}% + \expandafter\XR@aux + \else + \PackageInfo{xr}{IMPORTING LABELS FROM #1}% + \expandafter\XR@read\fi} +\def\XR@read{% + \read\@inputcheck to\XR@line + \expandafter\XR@test\XR@line...\XR@} +\long\def\XR@test#1#2#3#4\XR@{% + \ifx#1\newlabel + \expandafter\protected@xdef\csname r@\XR@prefix#2\endcsname + {\XR@addURL{#3}}% + \else\ifx#1\@input + \edef\XR@list{\XR@list\filename@area#2\relax}% + \fi\fi + \ifeof\@inputcheck\expandafter\XR@aux + \else\expandafter\XR@read\fi} + +\providecommand*{\XR@addURL}[1]{#1} +% The above definition doesn't actually use the URL, hyperref 6 could +% make a definition like so to put the URL in the fifth field of its +% ref structure. + +\@ifpackageloaded{hyperref}{% + \PackageWarningNoLine{xr-hyper}{Load package `hyperref' after `xr-hyper'}% +}{} + +%\def\XR@addURL#1{\XR@@dURL#1{}{}{}{}\\} + +%\def\XR@@dURL#1#2#3#4#5\\{% +% {#1}{#2}% +% \if!#4!% +% \else +% {#3}{#4}{\XR@URL}% +% \fi +%} + +\providecommand\XR@ext{dvi} + +\endinput +%% +%% End of file `xr.sty'. + + |